summaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/ng2/components/popover/popover.component.ts
diff options
context:
space:
mode:
authorTal Gitelman <tg851x@intl.att.com>2017-12-10 18:55:03 +0200
committerTal Gitelman <tg851x@intl.att.com>2017-12-10 19:33:38 +0200
commit51d50f0ef642e0f996a1c8b8d2ef4838bdfec892 (patch)
tree3ac236a864d74d19b0f5c9020891a7a7e5c31b44 /catalog-ui/src/app/ng2/components/popover/popover.component.ts
parentb5cc2e0695f195716d6ccdc65e73807a6632ec70 (diff)
Final commit to master merge from
Change-Id: Ib464f9a8828437c86fe6def8af238aaf83473507 Issue-ID: SDC-714 Signed-off-by: Tal Gitelman <tg851x@intl.att.com>
Diffstat (limited to 'catalog-ui/src/app/ng2/components/popover/popover.component.ts')
-rw-r--r--catalog-ui/src/app/ng2/components/popover/popover.component.ts179
1 files changed, 0 insertions, 179 deletions
diff --git a/catalog-ui/src/app/ng2/components/popover/popover.component.ts b/catalog-ui/src/app/ng2/components/popover/popover.component.ts
deleted file mode 100644
index e976bc7bf2..0000000000
--- a/catalog-ui/src/app/ng2/components/popover/popover.component.ts
+++ /dev/null
@@ -1,179 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-import { Directive, HostListener, ComponentRef, ViewContainerRef, ComponentFactoryResolver, ComponentFactory, Input, OnChanges, SimpleChange, Output, EventEmitter } from "@angular/core";
-import {PopoverContentComponent} from "./popover-content.component";
-
-@Directive({
- selector: "[popover]",
- exportAs: "popover"
-})
-export class PopoverComponent implements OnChanges {
-
- protected PopoverComponent = PopoverContentComponent;
- protected popover: ComponentRef<PopoverContentComponent>;
- protected visible: boolean;
-
-
- constructor(protected viewContainerRef: ViewContainerRef,
- protected resolver: ComponentFactoryResolver) {
- }
-
- @Input("popover")
- content: string|PopoverContentComponent;
-
- @Input()
- popoverDisabled: boolean;
-
- @Input()
- popoverAnimation: boolean;
-
- @Input()
- popoverPlacement: "top"|"bottom"|"left"|"right"|"auto"|"auto top"|"auto bottom"|"auto left"|"auto right";
-
- @Input()
- popoverTitle: string;
-
- @Input()
- popoverOnHover: boolean = false;
-
- @Input()
- popoverCloseOnClickOutside: boolean;
-
- @Input()
- popoverCloseOnMouseOutside: boolean;
-
- @Input()
- popoverDismissTimeout: number = 0;
-
- @Output()
- onShown = new EventEmitter<PopoverComponent>();
-
- @Output()
- onHidden = new EventEmitter<PopoverComponent>();
-
- @HostListener("click")
- showOrHideOnClick(): void {
- if (this.popoverOnHover) return;
- if (this.popoverDisabled) return;
- this.toggle();
- }
-
- @HostListener("focusin")
- @HostListener("mouseenter")
- showOnHover(): void {
- if (!this.popoverOnHover) return;
- if (this.popoverDisabled) return;
- this.show();
- }
-
- @HostListener("focusout")
- @HostListener("mouseleave")
- hideOnHover(): void {
- if (this.popoverCloseOnMouseOutside) return;
- if (!this.popoverOnHover) return;
- if (this.popoverDisabled) return;
- this.hide();
- }
-
- ngOnChanges(changes: {[propertyName: string]: SimpleChange}) {
- if (changes["popoverDisabled"]) {
- if (changes["popoverDisabled"].currentValue) {
- this.hide();
- }
- }
- }
-
- toggle() {
- if (!this.visible) {
- this.show();
- } else {
- this.hide();
- }
- }
-
- show() {
- if (this.visible) return;
-
- this.visible = true;
- if (typeof this.content === "string") {
- const factory = this.resolver.resolveComponentFactory(this.PopoverComponent);
- if (!this.visible)
- return;
-
- this.popover = this.viewContainerRef.createComponent(factory);
- const popover = this.popover.instance as PopoverContentComponent;
- popover.popover = this;
- popover.content = this.content as string;
- if (this.popoverPlacement !== undefined)
- popover.placement = this.popoverPlacement;
- if (this.popoverAnimation !== undefined)
- popover.animation = this.popoverAnimation;
- if (this.popoverTitle !== undefined)
- popover.title = this.popoverTitle;
- if (this.popoverCloseOnClickOutside !== undefined)
- popover.closeOnClickOutside = this.popoverCloseOnClickOutside;
- if (this.popoverCloseOnMouseOutside !== undefined)
- popover.closeOnMouseOutside = this.popoverCloseOnMouseOutside;
-
- popover.onCloseFromOutside.subscribe(() => this.hide());
- if (this.popoverDismissTimeout > 0)
- setTimeout(() => this.hide(), this.popoverDismissTimeout);
- } else {
- const popover = this.content as PopoverContentComponent;
- popover.popover = this;
- if (this.popoverPlacement !== undefined)
- popover.placement = this.popoverPlacement;
- if (this.popoverAnimation !== undefined)
- popover.animation = this.popoverAnimation;
- if (this.popoverTitle !== undefined)
- popover.title = this.popoverTitle;
- if (this.popoverCloseOnClickOutside !== undefined)
- popover.closeOnClickOutside = this.popoverCloseOnClickOutside;
- if (this.popoverCloseOnMouseOutside !== undefined)
- popover.closeOnMouseOutside = this.popoverCloseOnMouseOutside;
-
- popover.onCloseFromOutside.subscribe(() => this.hide());
- if (this.popoverDismissTimeout > 0)
- setTimeout(() => this.hide(), this.popoverDismissTimeout);
- popover.show();
- }
-
- this.onShown.emit(this);
- }
-
- hide() {
- if (!this.visible) return;
-
- this.visible = false;
- if (this.popover)
- this.popover.destroy();
-
- if (this.content instanceof PopoverContentComponent)
- (this.content as PopoverContentComponent).hideFromPopover();
-
- this.onHidden.emit(this);
- }
-
- getElement() {
- return this.viewContainerRef.element.nativeElement;
- }
-
-}