@ifsworld/granite-components 6.2.2 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZzd29ybGQtZ3Jhbml0ZS1jb21wb25lbnRzLXRvb2x0aXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy90b29sdGlwL3NyYy9pZnN3b3JsZC1ncmFuaXRlLWNvbXBvbmVudHMtdG9vbHRpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export * from './lib/tooltip.module';
2
+ export * from './lib/tooltip.component';
3
+ export * from './lib/tooltip-trigger-for.directive';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy90b29sdGlwL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3Rvb2x0aXAubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rvb2x0aXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rvb2x0aXAtdHJpZ2dlci1mb3IuZGlyZWN0aXZlJztcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export class GraniteTooltipConstants {
2
+ }
3
+ GraniteTooltipConstants.OFFSET_Y = 8;
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1jb25zdGFudHMubGlicmFyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZ3Jhbml0ZS1jb21wb25lbnRzL3Rvb2x0aXAvc3JjL2xpYi90b29sdGlwLWNvbnN0YW50cy5saWJyYXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyx1QkFBdUI7O0FBQ2xCLGdDQUFRLEdBQVcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEdyYW5pdGVUb29sdGlwQ29uc3RhbnRzIHtcbiAgc3RhdGljIHJlYWRvbmx5IE9GRlNFVF9ZOiBudW1iZXIgPSA4O1xufVxuIl19
@@ -0,0 +1,134 @@
1
+ import { FocusMonitor } from '@angular/cdk/a11y';
2
+ import { ConnectionPositionPair, Overlay, } from '@angular/cdk/overlay';
3
+ import { TemplatePortal } from '@angular/cdk/portal';
4
+ import { Directive, ElementRef, Input, ViewContainerRef, } from '@angular/core';
5
+ import { fromEvent, Subject } from 'rxjs';
6
+ import { takeUntil } from 'rxjs/operators';
7
+ import { GraniteTooltipConstants } from './tooltip-constants.library';
8
+ import { GraniteTooltipComponent } from './tooltip.component';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/cdk/overlay";
11
+ import * as i2 from "@angular/cdk/a11y";
12
+ export class GraniteTooltipTriggerForDirective {
13
+ constructor(_elementRef, _overlay, _viewContainerRef, _focusMonitor) {
14
+ this._elementRef = _elementRef;
15
+ this._overlay = _overlay;
16
+ this._viewContainerRef = _viewContainerRef;
17
+ this._focusMonitor = _focusMonitor;
18
+ this.hideDelay = 0;
19
+ this.showDelay = 0;
20
+ this.showOnKeyboardFocus = false;
21
+ this.showOnClick = false;
22
+ this._destroy = new Subject();
23
+ }
24
+ ngOnInit() {
25
+ this._createOverlay();
26
+ }
27
+ ngOnChanges(changes) {
28
+ if (changes.showOnKeyboardFocus) {
29
+ this._handleKeyboardFocus();
30
+ }
31
+ if (changes.showOnClick) {
32
+ this._handleClick();
33
+ }
34
+ }
35
+ ngOnDestroy() {
36
+ this._detachOverlay(this.hideDelay);
37
+ this._destroy.next();
38
+ this._destroy.complete();
39
+ }
40
+ _handleMouseenter() {
41
+ if (!this.showOnClick) {
42
+ this._attachOverlay(this.showDelay);
43
+ }
44
+ }
45
+ _handleMouseleave() {
46
+ this._detachOverlay(this.hideDelay);
47
+ }
48
+ _handleClick() {
49
+ fromEvent(this._getTriggerElement(), 'click')
50
+ .pipe(takeUntil(this._destroy))
51
+ .subscribe(() => {
52
+ this._attachOverlay(this.showDelay);
53
+ });
54
+ }
55
+ _handleKeyboardFocus() {
56
+ this._focusMonitor
57
+ .monitor(this._getTriggerElement())
58
+ .pipe(takeUntil(this._destroy))
59
+ .subscribe((origin) => {
60
+ if (!origin) {
61
+ this._detachOverlay(this.hideDelay);
62
+ }
63
+ else if (origin === 'keyboard') {
64
+ this._attachOverlay(this.hideDelay);
65
+ }
66
+ });
67
+ }
68
+ _createOverlay() {
69
+ const scrollStrategy = this._overlay.scrollStrategies.reposition();
70
+ const positionStrategy = this._overlay
71
+ .position()
72
+ .flexibleConnectedTo(this._getTriggerElement())
73
+ .withPositions([
74
+ new ConnectionPositionPair({ originX: 'center', originY: 'bottom' }, { overlayX: 'center', overlayY: 'top' }, undefined, GraniteTooltipConstants.OFFSET_Y, 'granite-tooltip-position-below'),
75
+ new ConnectionPositionPair({ originX: 'center', originY: 'top' }, { overlayX: 'center', overlayY: 'bottom' }, undefined, -GraniteTooltipConstants.OFFSET_Y, 'granite-tooltip-position-above'),
76
+ ])
77
+ .withPush(true);
78
+ this._overlayRef = this._overlay.create({
79
+ positionStrategy,
80
+ scrollStrategy,
81
+ });
82
+ this._overlayRef
83
+ .backdropClick()
84
+ .pipe(takeUntil(this._destroy))
85
+ .subscribe(() => {
86
+ this._detachOverlay(this.hideDelay);
87
+ });
88
+ }
89
+ _attachOverlay(delay) {
90
+ if (!this._overlayRef.hasAttached()) {
91
+ clearTimeout(this._detachOverlayTimeoutId);
92
+ this._attachOverlayTimeoutId = window.setTimeout(() => {
93
+ const portal = new TemplatePortal(this.tooltip._templateRef, this._viewContainerRef);
94
+ this._overlayRef.attach(portal);
95
+ }, delay);
96
+ }
97
+ }
98
+ _detachOverlay(delay) {
99
+ if (this._overlayRef.hasAttached()) {
100
+ clearTimeout(this._attachOverlayTimeoutId);
101
+ this._detachOverlayTimeoutId = window.setTimeout(() => {
102
+ this._overlayRef.detach();
103
+ this._detachOverlayTimeoutId = null;
104
+ }, delay);
105
+ }
106
+ }
107
+ _getTriggerElement() {
108
+ return this._elementRef.nativeElement;
109
+ }
110
+ }
111
+ GraniteTooltipTriggerForDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipTriggerForDirective, deps: [{ token: i0.ElementRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive });
112
+ GraniteTooltipTriggerForDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: GraniteTooltipTriggerForDirective, selector: "[graniteTooltipTriggerFor]", inputs: { tooltip: ["graniteTooltipTriggerFor", "tooltip"], hideDelay: "hideDelay", showDelay: "showDelay", showOnKeyboardFocus: "showOnKeyboardFocus", showOnClick: "showOnClick" }, host: { listeners: { "mouseenter": "_handleMouseenter($event)", "mouseleave": "_handleMouseleave($event)" } }, usesOnChanges: true, ngImport: i0 });
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipTriggerForDirective, decorators: [{
114
+ type: Directive,
115
+ args: [{
116
+ selector: '[graniteTooltipTriggerFor]',
117
+ host: {
118
+ '(mouseenter)': '_handleMouseenter($event)',
119
+ '(mouseleave)': '_handleMouseleave($event)',
120
+ },
121
+ }]
122
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i2.FocusMonitor }]; }, propDecorators: { tooltip: [{
123
+ type: Input,
124
+ args: ['graniteTooltipTriggerFor']
125
+ }], hideDelay: [{
126
+ type: Input
127
+ }], showDelay: [{
128
+ type: Input
129
+ }], showOnKeyboardFocus: [{
130
+ type: Input
131
+ }], showOnClick: [{
132
+ type: Input
133
+ }] } });
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC10cmlnZ2VyLWZvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy90b29sdGlwL3NyYy9saWIvdG9vbHRpcC10cmlnZ2VyLWZvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsT0FBTyxHQUVSLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLEtBQUssRUFLTCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBUzlELE1BQU0sT0FBTyxpQ0FBaUM7SUF3QjVDLFlBQ1UsV0FBdUIsRUFDdkIsUUFBaUIsRUFDakIsaUJBQW1DLEVBQ25DLGFBQTJCO1FBSDNCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGFBQVEsR0FBUixRQUFRLENBQVM7UUFDakIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQXJCckMsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUd0QixjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBR3RCLHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQUdyQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztR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QUFDO1NBQ1g7SUFDSCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDeEMsQ0FBQzs7K0hBaEpVLGlDQUFpQzttSEFBakMsaUNBQWlDOzRGQUFqQyxpQ0FBaUM7a0JBUDdDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsSUFBSSxFQUFFO3dCQUNKLGNBQWMsRUFBRSwyQkFBMkI7d0JBQzNDLGNBQWMsRUFBRSwyQkFBMkI7cUJBQzVDO2lCQUNGO2lMQUtDLE9BQU87c0JBRE4sS0FBSzt1QkFBQywwQkFBMEI7Z0JBSWpDLFNBQVM7c0JBRFIsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sbUJBQW1CO3NCQURsQixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gIENvbm5lY3Rpb25Qb3NpdGlvblBhaXIsXG4gIE92ZXJsYXksXG4gIE92ZXJsYXlSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IFRlbXBsYXRlUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBHcmFuaXRlVG9vbHRpcENvbnN0YW50cyB9IGZyb20gJy4vdG9vbHRpcC1jb25zdGFudHMubGlicmFyeSc7XG5pbXBvcnQgeyBHcmFuaXRlVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vdG9vbHRpcC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZ3Jhbml0ZVRvb2x0aXBUcmlnZ2VyRm9yXScsXG4gIGhvc3Q6IHtcbiAgICAnKG1vdXNlZW50ZXIpJzogJ19oYW5kbGVNb3VzZWVudGVyKCRldmVudCknLFxuICAgICcobW91c2VsZWF2ZSknOiAnX2hhbmRsZU1vdXNlbGVhdmUoJGV2ZW50KScsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEdyYW5pdGVUb29sdGlwVHJpZ2dlckZvckRpcmVjdGl2ZVxuICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0LCBPbkNoYW5nZXNcbntcbiAgQElucHV0KCdncmFuaXRlVG9vbHRpcFRyaWdnZXJGb3InKVxuICB0b29sdGlwOiBHcmFuaXRlVG9vbHRpcENvbXBvbmVudDtcblxuICBASW5wdXQoKVxuICBoaWRlRGVsYXk6IG51bWJlciA9IDA7XG5cbiAgQElucHV0KClcbiAgc2hvd0RlbGF5OiBudW1iZXIgPSAwO1xuXG4gIEBJbnB1dCgpXG4gIHNob3dPbktleWJvYXJkRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBzaG93T25DbGljazogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgX2Rlc3Ryb3k6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIHByaXZhdGUgX2RldGFjaE92ZXJsYXlUaW1lb3V0SWQ6IG51bWJlciB8IG51bGw7XG4gIHByaXZhdGUgX2F0dGFjaE92ZXJsYXlUaW1lb3V0SWQ6IG51bWJlciB8IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgX3ZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBfZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3JcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2NyZWF0ZU92ZXJsYXkoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5zaG93T25LZXlib2FyZEZvY3VzKSB7XG4gICAgICB0aGlzLl9oYW5kbGVLZXlib2FyZEZvY3VzKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzLnNob3dPbkNsaWNrKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbGljaygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2RldGFjaE92ZXJsYXkodGhpcy5oaWRlRGVsYXkpO1xuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxuXG4gIF9oYW5kbGVNb3VzZWVudGVyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG93T25DbGljaykge1xuICAgICAgdGhpcy5fYXR0YWNoT3ZlcmxheSh0aGlzLnNob3dEZWxheSk7XG4gICAgfVxuICB9XG5cbiAgX2hhbmRsZU1vdXNlbGVhdmUoKTogdm9pZCB7XG4gICAgdGhpcy5fZGV0YWNoT3ZlcmxheSh0aGlzLmhpZGVEZWxheSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVDbGljaygpOiB2b2lkIHtcbiAgICBmcm9tRXZlbnQodGhpcy5fZ2V0VHJpZ2dlckVsZW1lbnQoKSwgJ2NsaWNrJylcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9hdHRhY2hPdmVybGF5KHRoaXMuc2hvd0RlbGF5KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5Ym9hcmRGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLl9mb2N1c01vbml0b3JcbiAgICAgIC5tb25pdG9yKHRoaXMuX2dldFRyaWdnZXJFbGVtZW50KCkpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpXG4gICAgICAuc3Vic2NyaWJlKChvcmlnaW4pID0+IHtcbiAgICAgICAgaWYgKCFvcmlnaW4pIHtcbiAgICAgICAgICB0aGlzLl9kZXRhY2hPdmVybGF5KHRoaXMuaGlkZURlbGF5KTtcbiAgICAgICAgfSBlbHNlIGlmIChvcmlnaW4gPT09ICdrZXlib2FyZCcpIHtcbiAgICAgICAgICB0aGlzLl9hdHRhY2hPdmVybGF5KHRoaXMuaGlkZURlbGF5KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVPdmVybGF5KCk6IHZvaWQge1xuICAgIGNvbnN0IHNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKTtcbiAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5fb3ZlcmxheVxuICAgICAgLnBvc2l0aW9uKClcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuX2dldFRyaWdnZXJFbGVtZW50KCkpXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKFxuICAgICAgICAgIHsgb3JpZ2luWDogJ2NlbnRlcicsIG9yaWdpblk6ICdib3R0b20nIH0sXG4gICAgICAgICAgeyBvdmVybGF5WDogJ2NlbnRlcicsIG92ZXJsYXlZOiAndG9wJyB9LFxuICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICBHcmFuaXRlVG9vbHRpcENvbnN0YW50cy5PRkZTRVRfWSxcbiAgICAgICAgICAnZ3Jhbml0ZS10b29sdGlwLXBvc2l0aW9uLWJlbG93J1xuICAgICAgICApLFxuICAgICAgICBuZXcgQ29ubmVjdGlvblBvc2l0aW9uUGFpcihcbiAgICAgICAgICB7IG9yaWdpblg6ICdjZW50ZXInLCBvcmlnaW5ZOiAndG9wJyB9LFxuICAgICAgICAgIHsgb3ZlcmxheVg6ICdjZW50ZXInLCBvdmVybGF5WTogJ2JvdHRvbScgfSxcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgLUdyYW5pdGVUb29sdGlwQ29uc3RhbnRzLk9GRlNFVF9ZLFxuICAgICAgICAgICdncmFuaXRlLXRvb2x0aXAtcG9zaXRpb24tYWJvdmUnXG4gICAgICAgICksXG4gICAgICBdKVxuICAgICAgLndpdGhQdXNoKHRydWUpO1xuXG4gICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgICBzY3JvbGxTdHJhdGVneSxcbiAgICB9KTtcblxuICAgIHRoaXMuX292ZXJsYXlSZWZcbiAgICAgIC5iYWNrZHJvcENsaWNrKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLl9kZXRhY2hPdmVybGF5KHRoaXMuaGlkZURlbGF5KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfYXR0YWNoT3ZlcmxheShkZWxheTogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9kZXRhY2hPdmVybGF5VGltZW91dElkKTtcblxuICAgICAgdGhpcy5fYXR0YWNoT3ZlcmxheVRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgY29uc3QgcG9ydGFsID0gbmV3IFRlbXBsYXRlUG9ydGFsKFxuICAgICAgICAgIHRoaXMudG9vbHRpcC5fdGVtcGxhdGVSZWYsXG4gICAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZlxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuICAgICAgfSwgZGVsYXkpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2RldGFjaE92ZXJsYXkoZGVsYXk6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9hdHRhY2hPdmVybGF5VGltZW91dElkKTtcblxuICAgICAgdGhpcy5fZGV0YWNoT3ZlcmxheVRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICAgICAgdGhpcy5fZGV0YWNoT3ZlcmxheVRpbWVvdXRJZCA9IG51bGw7XG4gICAgICB9LCBkZWxheSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VHJpZ2dlckVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuIl19
@@ -0,0 +1,14 @@
1
+ import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class GraniteTooltipComponent {
4
+ }
5
+ GraniteTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ GraniteTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: GraniteTooltipComponent, selector: "granite-tooltip", viewQueries: [{ propertyName: "_templateRef", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<ng-template>\n <div class=\"granite-tooltip\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".granite-tooltip{background-color:var(--granite-color-background-inverse);color:var(--granite-color-text-inverse);font-size:var(--granite-font-size-body-small);line-height:var(--granite-line-height-regular);padding:var(--granite-spacing-s);margin:0 var(--granite-spacing-xs);border-radius:.25rem;position:relative;filter:drop-shadow(var(--granite-shadow-m))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'granite-tooltip', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template>\n <div class=\"granite-tooltip\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".granite-tooltip{background-color:var(--granite-color-background-inverse);color:var(--granite-color-text-inverse);font-size:var(--granite-font-size-body-small);line-height:var(--granite-line-height-regular);padding:var(--granite-spacing-s);margin:0 var(--granite-spacing-xs);border-radius:.25rem;position:relative;filter:drop-shadow(var(--granite-shadow-m))}\n"] }]
10
+ }], propDecorators: { _templateRef: [{
11
+ type: ViewChild,
12
+ args: [TemplateRef]
13
+ }] } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy90b29sdGlwL3NyYy9saWIvdG9vbHRpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy90b29sdGlwL3NyYy9saWIvdG9vbHRpcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOztBQVF2QixNQUFNLE9BQU8sdUJBQXVCOztxSEFBdkIsdUJBQXVCO3lHQUF2Qix1QkFBdUIscUdBQ3ZCLFdBQVcsZ0RDZHhCLDZHQUtBOzRGRFFhLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTs4QkFHdkIsWUFBWTtzQkFBbkMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dyYW5pdGUtdG9vbHRpcCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90b29sdGlwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdG9vbHRpcC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgR3Jhbml0ZVRvb2x0aXBDb21wb25lbnQge1xuICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmKSBfdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT47XG59XG4iLCI8bmctdGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJncmFuaXRlLXRvb2x0aXBcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { GraniteTooltipComponent } from './tooltip.component';
4
+ import { GraniteTooltipTriggerForDirective } from './tooltip-trigger-for.directive';
5
+ import * as i0 from "@angular/core";
6
+ export class GraniteTooltipModule {
7
+ }
8
+ GraniteTooltipModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ GraniteTooltipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipModule, declarations: [GraniteTooltipComponent, GraniteTooltipTriggerForDirective], imports: [CommonModule], exports: [GraniteTooltipComponent, GraniteTooltipTriggerForDirective] });
10
+ GraniteTooltipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipModule, imports: [[CommonModule]] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipModule, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ imports: [CommonModule],
15
+ declarations: [GraniteTooltipComponent, GraniteTooltipTriggerForDirective],
16
+ exports: [GraniteTooltipComponent, GraniteTooltipTriggerForDirective],
17
+ }]
18
+ }] });
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2dyYW5pdGUtY29tcG9uZW50cy90b29sdGlwL3NyYy9saWIvdG9vbHRpcC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBT3BGLE1BQU0sT0FBTyxvQkFBb0I7O2tIQUFwQixvQkFBb0I7bUhBQXBCLG9CQUFvQixpQkFIaEIsdUJBQXVCLEVBQUUsaUNBQWlDLGFBRC9ELFlBQVksYUFFWix1QkFBdUIsRUFBRSxpQ0FBaUM7bUhBRXpELG9CQUFvQixZQUp0QixDQUFDLFlBQVksQ0FBQzs0RkFJWixvQkFBb0I7a0JBTGhDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxpQ0FBaUMsQ0FBQztvQkFDMUUsT0FBTyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsaUNBQWlDLENBQUM7aUJBQ3RFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBHcmFuaXRlVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4vdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR3Jhbml0ZVRvb2x0aXBUcmlnZ2VyRm9yRGlyZWN0aXZlIH0gZnJvbSAnLi90b29sdGlwLXRyaWdnZXItZm9yLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtHcmFuaXRlVG9vbHRpcENvbXBvbmVudCwgR3Jhbml0ZVRvb2x0aXBUcmlnZ2VyRm9yRGlyZWN0aXZlXSxcbiAgZXhwb3J0czogW0dyYW5pdGVUb29sdGlwQ29tcG9uZW50LCBHcmFuaXRlVG9vbHRpcFRyaWdnZXJGb3JEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBHcmFuaXRlVG9vbHRpcE1vZHVsZSB7fVxuIl19
@@ -0,0 +1,169 @@
1
+ import * as i0 from '@angular/core';
2
+ import { TemplateRef, Component, ChangeDetectionStrategy, ViewChild, Directive, Input, NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i1 from '@angular/cdk/overlay';
5
+ import { ConnectionPositionPair } from '@angular/cdk/overlay';
6
+ import { TemplatePortal } from '@angular/cdk/portal';
7
+ import { Subject, fromEvent } from 'rxjs';
8
+ import { takeUntil } from 'rxjs/operators';
9
+ import * as i2 from '@angular/cdk/a11y';
10
+
11
+ class GraniteTooltipComponent {
12
+ }
13
+ GraniteTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ GraniteTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: GraniteTooltipComponent, selector: "granite-tooltip", viewQueries: [{ propertyName: "_templateRef", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<ng-template>\n <div class=\"granite-tooltip\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".granite-tooltip{background-color:var(--granite-color-background-inverse);color:var(--granite-color-text-inverse);font-size:var(--granite-font-size-body-small);line-height:var(--granite-line-height-regular);padding:var(--granite-spacing-s);margin:0 var(--granite-spacing-xs);border-radius:.25rem;position:relative;filter:drop-shadow(var(--granite-shadow-m))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipComponent, decorators: [{
16
+ type: Component,
17
+ args: [{ selector: 'granite-tooltip', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template>\n <div class=\"granite-tooltip\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".granite-tooltip{background-color:var(--granite-color-background-inverse);color:var(--granite-color-text-inverse);font-size:var(--granite-font-size-body-small);line-height:var(--granite-line-height-regular);padding:var(--granite-spacing-s);margin:0 var(--granite-spacing-xs);border-radius:.25rem;position:relative;filter:drop-shadow(var(--granite-shadow-m))}\n"] }]
18
+ }], propDecorators: { _templateRef: [{
19
+ type: ViewChild,
20
+ args: [TemplateRef]
21
+ }] } });
22
+
23
+ class GraniteTooltipConstants {
24
+ }
25
+ GraniteTooltipConstants.OFFSET_Y = 8;
26
+
27
+ class GraniteTooltipTriggerForDirective {
28
+ constructor(_elementRef, _overlay, _viewContainerRef, _focusMonitor) {
29
+ this._elementRef = _elementRef;
30
+ this._overlay = _overlay;
31
+ this._viewContainerRef = _viewContainerRef;
32
+ this._focusMonitor = _focusMonitor;
33
+ this.hideDelay = 0;
34
+ this.showDelay = 0;
35
+ this.showOnKeyboardFocus = false;
36
+ this.showOnClick = false;
37
+ this._destroy = new Subject();
38
+ }
39
+ ngOnInit() {
40
+ this._createOverlay();
41
+ }
42
+ ngOnChanges(changes) {
43
+ if (changes.showOnKeyboardFocus) {
44
+ this._handleKeyboardFocus();
45
+ }
46
+ if (changes.showOnClick) {
47
+ this._handleClick();
48
+ }
49
+ }
50
+ ngOnDestroy() {
51
+ this._detachOverlay(this.hideDelay);
52
+ this._destroy.next();
53
+ this._destroy.complete();
54
+ }
55
+ _handleMouseenter() {
56
+ if (!this.showOnClick) {
57
+ this._attachOverlay(this.showDelay);
58
+ }
59
+ }
60
+ _handleMouseleave() {
61
+ this._detachOverlay(this.hideDelay);
62
+ }
63
+ _handleClick() {
64
+ fromEvent(this._getTriggerElement(), 'click')
65
+ .pipe(takeUntil(this._destroy))
66
+ .subscribe(() => {
67
+ this._attachOverlay(this.showDelay);
68
+ });
69
+ }
70
+ _handleKeyboardFocus() {
71
+ this._focusMonitor
72
+ .monitor(this._getTriggerElement())
73
+ .pipe(takeUntil(this._destroy))
74
+ .subscribe((origin) => {
75
+ if (!origin) {
76
+ this._detachOverlay(this.hideDelay);
77
+ }
78
+ else if (origin === 'keyboard') {
79
+ this._attachOverlay(this.hideDelay);
80
+ }
81
+ });
82
+ }
83
+ _createOverlay() {
84
+ const scrollStrategy = this._overlay.scrollStrategies.reposition();
85
+ const positionStrategy = this._overlay
86
+ .position()
87
+ .flexibleConnectedTo(this._getTriggerElement())
88
+ .withPositions([
89
+ new ConnectionPositionPair({ originX: 'center', originY: 'bottom' }, { overlayX: 'center', overlayY: 'top' }, undefined, GraniteTooltipConstants.OFFSET_Y, 'granite-tooltip-position-below'),
90
+ new ConnectionPositionPair({ originX: 'center', originY: 'top' }, { overlayX: 'center', overlayY: 'bottom' }, undefined, -GraniteTooltipConstants.OFFSET_Y, 'granite-tooltip-position-above'),
91
+ ])
92
+ .withPush(true);
93
+ this._overlayRef = this._overlay.create({
94
+ positionStrategy,
95
+ scrollStrategy,
96
+ });
97
+ this._overlayRef
98
+ .backdropClick()
99
+ .pipe(takeUntil(this._destroy))
100
+ .subscribe(() => {
101
+ this._detachOverlay(this.hideDelay);
102
+ });
103
+ }
104
+ _attachOverlay(delay) {
105
+ if (!this._overlayRef.hasAttached()) {
106
+ clearTimeout(this._detachOverlayTimeoutId);
107
+ this._attachOverlayTimeoutId = window.setTimeout(() => {
108
+ const portal = new TemplatePortal(this.tooltip._templateRef, this._viewContainerRef);
109
+ this._overlayRef.attach(portal);
110
+ }, delay);
111
+ }
112
+ }
113
+ _detachOverlay(delay) {
114
+ if (this._overlayRef.hasAttached()) {
115
+ clearTimeout(this._attachOverlayTimeoutId);
116
+ this._detachOverlayTimeoutId = window.setTimeout(() => {
117
+ this._overlayRef.detach();
118
+ this._detachOverlayTimeoutId = null;
119
+ }, delay);
120
+ }
121
+ }
122
+ _getTriggerElement() {
123
+ return this._elementRef.nativeElement;
124
+ }
125
+ }
126
+ GraniteTooltipTriggerForDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipTriggerForDirective, deps: [{ token: i0.ElementRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive });
127
+ GraniteTooltipTriggerForDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: GraniteTooltipTriggerForDirective, selector: "[graniteTooltipTriggerFor]", inputs: { tooltip: ["graniteTooltipTriggerFor", "tooltip"], hideDelay: "hideDelay", showDelay: "showDelay", showOnKeyboardFocus: "showOnKeyboardFocus", showOnClick: "showOnClick" }, host: { listeners: { "mouseenter": "_handleMouseenter($event)", "mouseleave": "_handleMouseleave($event)" } }, usesOnChanges: true, ngImport: i0 });
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipTriggerForDirective, decorators: [{
129
+ type: Directive,
130
+ args: [{
131
+ selector: '[graniteTooltipTriggerFor]',
132
+ host: {
133
+ '(mouseenter)': '_handleMouseenter($event)',
134
+ '(mouseleave)': '_handleMouseleave($event)',
135
+ },
136
+ }]
137
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i2.FocusMonitor }]; }, propDecorators: { tooltip: [{
138
+ type: Input,
139
+ args: ['graniteTooltipTriggerFor']
140
+ }], hideDelay: [{
141
+ type: Input
142
+ }], showDelay: [{
143
+ type: Input
144
+ }], showOnKeyboardFocus: [{
145
+ type: Input
146
+ }], showOnClick: [{
147
+ type: Input
148
+ }] } });
149
+
150
+ class GraniteTooltipModule {
151
+ }
152
+ GraniteTooltipModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
153
+ GraniteTooltipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipModule, declarations: [GraniteTooltipComponent, GraniteTooltipTriggerForDirective], imports: [CommonModule], exports: [GraniteTooltipComponent, GraniteTooltipTriggerForDirective] });
154
+ GraniteTooltipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipModule, imports: [[CommonModule]] });
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipModule, decorators: [{
156
+ type: NgModule,
157
+ args: [{
158
+ imports: [CommonModule],
159
+ declarations: [GraniteTooltipComponent, GraniteTooltipTriggerForDirective],
160
+ exports: [GraniteTooltipComponent, GraniteTooltipTriggerForDirective],
161
+ }]
162
+ }] });
163
+
164
+ /**
165
+ * Generated bundle index. Do not edit.
166
+ */
167
+
168
+ export { GraniteTooltipComponent, GraniteTooltipModule, GraniteTooltipTriggerForDirective };
169
+ //# sourceMappingURL=ifsworld-granite-components-tooltip.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ifsworld-granite-components-tooltip.mjs","sources":["../../../../libs/granite-components/tooltip/src/lib/tooltip.component.ts","../../../../libs/granite-components/tooltip/src/lib/tooltip.component.html","../../../../libs/granite-components/tooltip/src/lib/tooltip-constants.library.ts","../../../../libs/granite-components/tooltip/src/lib/tooltip-trigger-for.directive.ts","../../../../libs/granite-components/tooltip/src/lib/tooltip.module.ts","../../../../libs/granite-components/tooltip/src/ifsworld-granite-components-tooltip.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'granite-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GraniteTooltipComponent {\n @ViewChild(TemplateRef) _templateRef: TemplateRef<any>;\n}\n","<ng-template>\n <div class=\"granite-tooltip\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","export class GraniteTooltipConstants {\n static readonly OFFSET_Y: number = 8;\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n ConnectionPositionPair,\n Overlay,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewContainerRef,\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { GraniteTooltipConstants } from './tooltip-constants.library';\nimport { GraniteTooltipComponent } from './tooltip.component';\n\n@Directive({\n selector: '[graniteTooltipTriggerFor]',\n host: {\n '(mouseenter)': '_handleMouseenter($event)',\n '(mouseleave)': '_handleMouseleave($event)',\n },\n})\nexport class GraniteTooltipTriggerForDirective\n implements OnDestroy, OnInit, OnChanges\n{\n @Input('graniteTooltipTriggerFor')\n tooltip: GraniteTooltipComponent;\n\n @Input()\n hideDelay: number = 0;\n\n @Input()\n showDelay: number = 0;\n\n @Input()\n showOnKeyboardFocus: boolean = false;\n\n @Input()\n showOnClick: boolean = false;\n\n private _overlayRef: OverlayRef;\n private _destroy: Subject<void> = new Subject();\n\n private _detachOverlayTimeoutId: number | null;\n private _attachOverlayTimeoutId: number | null;\n\n constructor(\n private _elementRef: ElementRef,\n private _overlay: Overlay,\n private _viewContainerRef: ViewContainerRef,\n private _focusMonitor: FocusMonitor\n ) {}\n\n ngOnInit(): void {\n this._createOverlay();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.showOnKeyboardFocus) {\n this._handleKeyboardFocus();\n }\n if (changes.showOnClick) {\n this._handleClick();\n }\n }\n\n ngOnDestroy(): void {\n this._detachOverlay(this.hideDelay);\n this._destroy.next();\n this._destroy.complete();\n }\n\n _handleMouseenter(): void {\n if (!this.showOnClick) {\n this._attachOverlay(this.showDelay);\n }\n }\n\n _handleMouseleave(): void {\n this._detachOverlay(this.hideDelay);\n }\n\n private _handleClick(): void {\n fromEvent(this._getTriggerElement(), 'click')\n .pipe(takeUntil(this._destroy))\n .subscribe(() => {\n this._attachOverlay(this.showDelay);\n });\n }\n\n private _handleKeyboardFocus(): void {\n this._focusMonitor\n .monitor(this._getTriggerElement())\n .pipe(takeUntil(this._destroy))\n .subscribe((origin) => {\n if (!origin) {\n this._detachOverlay(this.hideDelay);\n } else if (origin === 'keyboard') {\n this._attachOverlay(this.hideDelay);\n }\n });\n }\n\n private _createOverlay(): void {\n const scrollStrategy = this._overlay.scrollStrategies.reposition();\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this._getTriggerElement())\n .withPositions([\n new ConnectionPositionPair(\n { originX: 'center', originY: 'bottom' },\n { overlayX: 'center', overlayY: 'top' },\n undefined,\n GraniteTooltipConstants.OFFSET_Y,\n 'granite-tooltip-position-below'\n ),\n new ConnectionPositionPair(\n { originX: 'center', originY: 'top' },\n { overlayX: 'center', overlayY: 'bottom' },\n undefined,\n -GraniteTooltipConstants.OFFSET_Y,\n 'granite-tooltip-position-above'\n ),\n ])\n .withPush(true);\n\n this._overlayRef = this._overlay.create({\n positionStrategy,\n scrollStrategy,\n });\n\n this._overlayRef\n .backdropClick()\n .pipe(takeUntil(this._destroy))\n .subscribe(() => {\n this._detachOverlay(this.hideDelay);\n });\n }\n\n private _attachOverlay(delay: number): void {\n if (!this._overlayRef.hasAttached()) {\n clearTimeout(this._detachOverlayTimeoutId);\n\n this._attachOverlayTimeoutId = window.setTimeout(() => {\n const portal = new TemplatePortal(\n this.tooltip._templateRef,\n this._viewContainerRef\n );\n this._overlayRef.attach(portal);\n }, delay);\n }\n }\n\n private _detachOverlay(delay: number): void {\n if (this._overlayRef.hasAttached()) {\n clearTimeout(this._attachOverlayTimeoutId);\n\n this._detachOverlayTimeoutId = window.setTimeout(() => {\n this._overlayRef.detach();\n this._detachOverlayTimeoutId = null;\n }, delay);\n }\n }\n\n private _getTriggerElement(): HTMLInputElement {\n return this._elementRef.nativeElement;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GraniteTooltipComponent } from './tooltip.component';\nimport { GraniteTooltipTriggerForDirective } from './tooltip-trigger-for.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [GraniteTooltipComponent, GraniteTooltipTriggerForDirective],\n exports: [GraniteTooltipComponent, GraniteTooltipTriggerForDirective],\n})\nexport class GraniteTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ import * as i0 from '@angular/core';
2
+ import { TemplateRef, Component, ChangeDetectionStrategy, ViewChild, Directive, Input, NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import * as i2 from '@angular/cdk/a11y';
5
+ import * as i1 from '@angular/cdk/overlay';
6
+ import { ConnectionPositionPair } from '@angular/cdk/overlay';
7
+ import { TemplatePortal } from '@angular/cdk/portal';
8
+ import { Subject, fromEvent } from 'rxjs';
9
+ import { takeUntil } from 'rxjs/operators';
10
+
11
+ class GraniteTooltipComponent {
12
+ }
13
+ GraniteTooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
14
+ GraniteTooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: GraniteTooltipComponent, selector: "granite-tooltip", viewQueries: [{ propertyName: "_templateRef", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: "<ng-template>\n <div class=\"granite-tooltip\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".granite-tooltip{background-color:var(--granite-color-background-inverse);color:var(--granite-color-text-inverse);font-size:var(--granite-font-size-body-small);line-height:var(--granite-line-height-regular);padding:var(--granite-spacing-s);margin:0 var(--granite-spacing-xs);border-radius:.25rem;position:relative;filter:drop-shadow(var(--granite-shadow-m))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipComponent, decorators: [{
16
+ type: Component,
17
+ args: [{ selector: 'granite-tooltip', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template>\n <div class=\"granite-tooltip\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".granite-tooltip{background-color:var(--granite-color-background-inverse);color:var(--granite-color-text-inverse);font-size:var(--granite-font-size-body-small);line-height:var(--granite-line-height-regular);padding:var(--granite-spacing-s);margin:0 var(--granite-spacing-xs);border-radius:.25rem;position:relative;filter:drop-shadow(var(--granite-shadow-m))}\n"] }]
18
+ }], propDecorators: { _templateRef: [{
19
+ type: ViewChild,
20
+ args: [TemplateRef]
21
+ }] } });
22
+
23
+ class GraniteTooltipConstants {
24
+ }
25
+ GraniteTooltipConstants.OFFSET_Y = 8;
26
+
27
+ class GraniteTooltipTriggerForDirective {
28
+ constructor(_elementRef, _overlay, _viewContainerRef, _focusMonitor) {
29
+ this._elementRef = _elementRef;
30
+ this._overlay = _overlay;
31
+ this._viewContainerRef = _viewContainerRef;
32
+ this._focusMonitor = _focusMonitor;
33
+ this.hideDelay = 0;
34
+ this.showDelay = 0;
35
+ this.showOnKeyboardFocus = false;
36
+ this.showOnClick = false;
37
+ this._destroy = new Subject();
38
+ }
39
+ ngOnInit() {
40
+ this._createOverlay();
41
+ }
42
+ ngOnChanges(changes) {
43
+ if (changes.showOnKeyboardFocus) {
44
+ this._handleKeyboardFocus();
45
+ }
46
+ if (changes.showOnClick) {
47
+ this._handleClick();
48
+ }
49
+ }
50
+ ngOnDestroy() {
51
+ this._detachOverlay(this.hideDelay);
52
+ this._destroy.next();
53
+ this._destroy.complete();
54
+ }
55
+ _handleMouseenter() {
56
+ if (!this.showOnClick) {
57
+ this._attachOverlay(this.showDelay);
58
+ }
59
+ }
60
+ _handleMouseleave() {
61
+ this._detachOverlay(this.hideDelay);
62
+ }
63
+ _handleClick() {
64
+ fromEvent(this._getTriggerElement(), 'click')
65
+ .pipe(takeUntil(this._destroy))
66
+ .subscribe(() => {
67
+ this._attachOverlay(this.showDelay);
68
+ });
69
+ }
70
+ _handleKeyboardFocus() {
71
+ this._focusMonitor
72
+ .monitor(this._getTriggerElement())
73
+ .pipe(takeUntil(this._destroy))
74
+ .subscribe((origin) => {
75
+ if (!origin) {
76
+ this._detachOverlay(this.hideDelay);
77
+ }
78
+ else if (origin === 'keyboard') {
79
+ this._attachOverlay(this.hideDelay);
80
+ }
81
+ });
82
+ }
83
+ _createOverlay() {
84
+ const scrollStrategy = this._overlay.scrollStrategies.reposition();
85
+ const positionStrategy = this._overlay
86
+ .position()
87
+ .flexibleConnectedTo(this._getTriggerElement())
88
+ .withPositions([
89
+ new ConnectionPositionPair({ originX: 'center', originY: 'bottom' }, { overlayX: 'center', overlayY: 'top' }, undefined, GraniteTooltipConstants.OFFSET_Y, 'granite-tooltip-position-below'),
90
+ new ConnectionPositionPair({ originX: 'center', originY: 'top' }, { overlayX: 'center', overlayY: 'bottom' }, undefined, -GraniteTooltipConstants.OFFSET_Y, 'granite-tooltip-position-above'),
91
+ ])
92
+ .withPush(true);
93
+ this._overlayRef = this._overlay.create({
94
+ positionStrategy,
95
+ scrollStrategy,
96
+ });
97
+ this._overlayRef
98
+ .backdropClick()
99
+ .pipe(takeUntil(this._destroy))
100
+ .subscribe(() => {
101
+ this._detachOverlay(this.hideDelay);
102
+ });
103
+ }
104
+ _attachOverlay(delay) {
105
+ if (!this._overlayRef.hasAttached()) {
106
+ clearTimeout(this._detachOverlayTimeoutId);
107
+ this._attachOverlayTimeoutId = window.setTimeout(() => {
108
+ const portal = new TemplatePortal(this.tooltip._templateRef, this._viewContainerRef);
109
+ this._overlayRef.attach(portal);
110
+ }, delay);
111
+ }
112
+ }
113
+ _detachOverlay(delay) {
114
+ if (this._overlayRef.hasAttached()) {
115
+ clearTimeout(this._attachOverlayTimeoutId);
116
+ this._detachOverlayTimeoutId = window.setTimeout(() => {
117
+ this._overlayRef.detach();
118
+ this._detachOverlayTimeoutId = null;
119
+ }, delay);
120
+ }
121
+ }
122
+ _getTriggerElement() {
123
+ return this._elementRef.nativeElement;
124
+ }
125
+ }
126
+ GraniteTooltipTriggerForDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipTriggerForDirective, deps: [{ token: i0.ElementRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Directive });
127
+ GraniteTooltipTriggerForDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.11", type: GraniteTooltipTriggerForDirective, selector: "[graniteTooltipTriggerFor]", inputs: { tooltip: ["graniteTooltipTriggerFor", "tooltip"], hideDelay: "hideDelay", showDelay: "showDelay", showOnKeyboardFocus: "showOnKeyboardFocus", showOnClick: "showOnClick" }, host: { listeners: { "mouseenter": "_handleMouseenter($event)", "mouseleave": "_handleMouseleave($event)" } }, usesOnChanges: true, ngImport: i0 });
128
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipTriggerForDirective, decorators: [{
129
+ type: Directive,
130
+ args: [{
131
+ selector: '[graniteTooltipTriggerFor]',
132
+ host: {
133
+ '(mouseenter)': '_handleMouseenter($event)',
134
+ '(mouseleave)': '_handleMouseleave($event)',
135
+ },
136
+ }]
137
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i2.FocusMonitor }]; }, propDecorators: { tooltip: [{
138
+ type: Input,
139
+ args: ['graniteTooltipTriggerFor']
140
+ }], hideDelay: [{
141
+ type: Input
142
+ }], showDelay: [{
143
+ type: Input
144
+ }], showOnKeyboardFocus: [{
145
+ type: Input
146
+ }], showOnClick: [{
147
+ type: Input
148
+ }] } });
149
+
150
+ class GraniteTooltipModule {
151
+ }
152
+ GraniteTooltipModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
153
+ GraniteTooltipModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipModule, declarations: [GraniteTooltipComponent, GraniteTooltipTriggerForDirective], imports: [CommonModule], exports: [GraniteTooltipComponent, GraniteTooltipTriggerForDirective] });
154
+ GraniteTooltipModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipModule, imports: [[CommonModule]] });
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GraniteTooltipModule, decorators: [{
156
+ type: NgModule,
157
+ args: [{
158
+ imports: [CommonModule],
159
+ declarations: [GraniteTooltipComponent, GraniteTooltipTriggerForDirective],
160
+ exports: [GraniteTooltipComponent, GraniteTooltipTriggerForDirective],
161
+ }]
162
+ }] });
163
+
164
+ /**
165
+ * Generated bundle index. Do not edit.
166
+ */
167
+
168
+ export { GraniteTooltipComponent, GraniteTooltipModule, GraniteTooltipTriggerForDirective };
169
+ //# sourceMappingURL=ifsworld-granite-components-tooltip.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ifsworld-granite-components-tooltip.mjs","sources":["../../../../libs/granite-components/tooltip/src/lib/tooltip.component.ts","../../../../libs/granite-components/tooltip/src/lib/tooltip.component.html","../../../../libs/granite-components/tooltip/src/lib/tooltip-constants.library.ts","../../../../libs/granite-components/tooltip/src/lib/tooltip-trigger-for.directive.ts","../../../../libs/granite-components/tooltip/src/lib/tooltip.module.ts","../../../../libs/granite-components/tooltip/src/ifsworld-granite-components-tooltip.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\n\n@Component({\n selector: 'granite-tooltip',\n templateUrl: './tooltip.component.html',\n styleUrls: ['./tooltip.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GraniteTooltipComponent {\n @ViewChild(TemplateRef) _templateRef: TemplateRef<any>;\n}\n","<ng-template>\n <div class=\"granite-tooltip\">\n <ng-content></ng-content>\n </div>\n</ng-template>\n","export class GraniteTooltipConstants {\n static readonly OFFSET_Y: number = 8;\n}\n","import { FocusMonitor } from '@angular/cdk/a11y';\nimport {\n ConnectionPositionPair,\n Overlay,\n OverlayRef,\n} from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewContainerRef,\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { GraniteTooltipConstants } from './tooltip-constants.library';\nimport { GraniteTooltipComponent } from './tooltip.component';\n\n@Directive({\n selector: '[graniteTooltipTriggerFor]',\n host: {\n '(mouseenter)': '_handleMouseenter($event)',\n '(mouseleave)': '_handleMouseleave($event)',\n },\n})\nexport class GraniteTooltipTriggerForDirective\n implements OnDestroy, OnInit, OnChanges\n{\n @Input('graniteTooltipTriggerFor')\n tooltip: GraniteTooltipComponent;\n\n @Input()\n hideDelay: number = 0;\n\n @Input()\n showDelay: number = 0;\n\n @Input()\n showOnKeyboardFocus: boolean = false;\n\n @Input()\n showOnClick: boolean = false;\n\n private _overlayRef: OverlayRef;\n private _destroy: Subject<void> = new Subject();\n\n private _detachOverlayTimeoutId: number | null;\n private _attachOverlayTimeoutId: number | null;\n\n constructor(\n private _elementRef: ElementRef,\n private _overlay: Overlay,\n private _viewContainerRef: ViewContainerRef,\n private _focusMonitor: FocusMonitor\n ) {}\n\n ngOnInit(): void {\n this._createOverlay();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.showOnKeyboardFocus) {\n this._handleKeyboardFocus();\n }\n if (changes.showOnClick) {\n this._handleClick();\n }\n }\n\n ngOnDestroy(): void {\n this._detachOverlay(this.hideDelay);\n this._destroy.next();\n this._destroy.complete();\n }\n\n _handleMouseenter(): void {\n if (!this.showOnClick) {\n this._attachOverlay(this.showDelay);\n }\n }\n\n _handleMouseleave(): void {\n this._detachOverlay(this.hideDelay);\n }\n\n private _handleClick(): void {\n fromEvent(this._getTriggerElement(), 'click')\n .pipe(takeUntil(this._destroy))\n .subscribe(() => {\n this._attachOverlay(this.showDelay);\n });\n }\n\n private _handleKeyboardFocus(): void {\n this._focusMonitor\n .monitor(this._getTriggerElement())\n .pipe(takeUntil(this._destroy))\n .subscribe((origin) => {\n if (!origin) {\n this._detachOverlay(this.hideDelay);\n } else if (origin === 'keyboard') {\n this._attachOverlay(this.hideDelay);\n }\n });\n }\n\n private _createOverlay(): void {\n const scrollStrategy = this._overlay.scrollStrategies.reposition();\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this._getTriggerElement())\n .withPositions([\n new ConnectionPositionPair(\n { originX: 'center', originY: 'bottom' },\n { overlayX: 'center', overlayY: 'top' },\n undefined,\n GraniteTooltipConstants.OFFSET_Y,\n 'granite-tooltip-position-below'\n ),\n new ConnectionPositionPair(\n { originX: 'center', originY: 'top' },\n { overlayX: 'center', overlayY: 'bottom' },\n undefined,\n -GraniteTooltipConstants.OFFSET_Y,\n 'granite-tooltip-position-above'\n ),\n ])\n .withPush(true);\n\n this._overlayRef = this._overlay.create({\n positionStrategy,\n scrollStrategy,\n });\n\n this._overlayRef\n .backdropClick()\n .pipe(takeUntil(this._destroy))\n .subscribe(() => {\n this._detachOverlay(this.hideDelay);\n });\n }\n\n private _attachOverlay(delay: number): void {\n if (!this._overlayRef.hasAttached()) {\n clearTimeout(this._detachOverlayTimeoutId);\n\n this._attachOverlayTimeoutId = window.setTimeout(() => {\n const portal = new TemplatePortal(\n this.tooltip._templateRef,\n this._viewContainerRef\n );\n this._overlayRef.attach(portal);\n }, delay);\n }\n }\n\n private _detachOverlay(delay: number): void {\n if (this._overlayRef.hasAttached()) {\n clearTimeout(this._attachOverlayTimeoutId);\n\n this._detachOverlayTimeoutId = window.setTimeout(() => {\n this._overlayRef.detach();\n this._detachOverlayTimeoutId = null;\n }, delay);\n }\n }\n\n private _getTriggerElement(): HTMLInputElement {\n return this._elementRef.nativeElement;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GraniteTooltipComponent } from './tooltip.component';\nimport { GraniteTooltipTriggerForDirective } from './tooltip-trigger-for.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [GraniteTooltipComponent, GraniteTooltipTriggerForDirective],\n exports: [GraniteTooltipComponent, GraniteTooltipTriggerForDirective],\n})\nexport class GraniteTooltipModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ifsworld/granite-components",
3
- "version": "6.2.2",
3
+ "version": "7.0.0",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": ">=13.0.0",
6
6
  "@angular/common": ">=13.0.0",
@@ -45,6 +45,14 @@
45
45
  "es2015": "./fesm2015/ifsworld-granite-components-table.mjs",
46
46
  "node": "./fesm2015/ifsworld-granite-components-table.mjs",
47
47
  "default": "./fesm2020/ifsworld-granite-components-table.mjs"
48
+ },
49
+ "./tooltip": {
50
+ "types": "./tooltip/ifsworld-granite-components-tooltip.d.ts",
51
+ "esm2020": "./esm2020/tooltip/ifsworld-granite-components-tooltip.mjs",
52
+ "es2020": "./fesm2020/ifsworld-granite-components-tooltip.mjs",
53
+ "es2015": "./fesm2015/ifsworld-granite-components-tooltip.mjs",
54
+ "node": "./fesm2015/ifsworld-granite-components-tooltip.mjs",
55
+ "default": "./fesm2020/ifsworld-granite-components-tooltip.mjs"
48
56
  }
49
57
  },
50
58
  "sideEffects": false
@@ -0,0 +1,3 @@
1
+ # @ifsworld/granite-components/tooltip
2
+
3
+ Secondary entry point of `@ifsworld/granite-components`. It can be used by importing from `@ifsworld/granite-components/tooltip`.
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@ifsworld/granite-components/tooltip" />
5
+ export * from './index';
@@ -0,0 +1,3 @@
1
+ export * from './lib/tooltip.module';
2
+ export * from './lib/tooltip.component';
3
+ export * from './lib/tooltip-trigger-for.directive';
@@ -0,0 +1,3 @@
1
+ export declare class GraniteTooltipConstants {
2
+ static readonly OFFSET_Y: number;
3
+ }
@@ -0,0 +1,34 @@
1
+ import { FocusMonitor } from '@angular/cdk/a11y';
2
+ import { Overlay } from '@angular/cdk/overlay';
3
+ import { ElementRef, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewContainerRef } from '@angular/core';
4
+ import { GraniteTooltipComponent } from './tooltip.component';
5
+ import * as i0 from "@angular/core";
6
+ export declare class GraniteTooltipTriggerForDirective implements OnDestroy, OnInit, OnChanges {
7
+ private _elementRef;
8
+ private _overlay;
9
+ private _viewContainerRef;
10
+ private _focusMonitor;
11
+ tooltip: GraniteTooltipComponent;
12
+ hideDelay: number;
13
+ showDelay: number;
14
+ showOnKeyboardFocus: boolean;
15
+ showOnClick: boolean;
16
+ private _overlayRef;
17
+ private _destroy;
18
+ private _detachOverlayTimeoutId;
19
+ private _attachOverlayTimeoutId;
20
+ constructor(_elementRef: ElementRef, _overlay: Overlay, _viewContainerRef: ViewContainerRef, _focusMonitor: FocusMonitor);
21
+ ngOnInit(): void;
22
+ ngOnChanges(changes: SimpleChanges): void;
23
+ ngOnDestroy(): void;
24
+ _handleMouseenter(): void;
25
+ _handleMouseleave(): void;
26
+ private _handleClick;
27
+ private _handleKeyboardFocus;
28
+ private _createOverlay;
29
+ private _attachOverlay;
30
+ private _detachOverlay;
31
+ private _getTriggerElement;
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<GraniteTooltipTriggerForDirective, never>;
33
+ static ɵdir: i0.ɵɵDirectiveDeclaration<GraniteTooltipTriggerForDirective, "[graniteTooltipTriggerFor]", never, { "tooltip": "graniteTooltipTriggerFor"; "hideDelay": "hideDelay"; "showDelay": "showDelay"; "showOnKeyboardFocus": "showOnKeyboardFocus"; "showOnClick": "showOnClick"; }, {}, never>;
34
+ }
@@ -0,0 +1,7 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class GraniteTooltipComponent {
4
+ _templateRef: TemplateRef<any>;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<GraniteTooltipComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<GraniteTooltipComponent, "granite-tooltip", never, {}, {}, never, ["*"]>;
7
+ }
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./tooltip.component";
3
+ import * as i2 from "./tooltip-trigger-for.directive";
4
+ import * as i3 from "@angular/common";
5
+ export declare class GraniteTooltipModule {
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<GraniteTooltipModule, never>;
7
+ static ɵmod: i0.ɵɵNgModuleDeclaration<GraniteTooltipModule, [typeof i1.GraniteTooltipComponent, typeof i2.GraniteTooltipTriggerForDirective], [typeof i3.CommonModule], [typeof i1.GraniteTooltipComponent, typeof i2.GraniteTooltipTriggerForDirective]>;
8
+ static ɵinj: i0.ɵɵInjectorDeclaration<GraniteTooltipModule>;
9
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "module": "../fesm2015/ifsworld-granite-components-tooltip.mjs",
3
+ "es2020": "../fesm2020/ifsworld-granite-components-tooltip.mjs",
4
+ "esm2020": "../esm2020/tooltip/ifsworld-granite-components-tooltip.mjs",
5
+ "fesm2020": "../fesm2020/ifsworld-granite-components-tooltip.mjs",
6
+ "fesm2015": "../fesm2015/ifsworld-granite-components-tooltip.mjs",
7
+ "typings": "ifsworld-granite-components-tooltip.d.ts",
8
+ "sideEffects": false,
9
+ "name": "@ifsworld/granite-components/tooltip"
10
+ }