@odx/angular 12.25.1 → 12.26.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.
- package/CHANGELOG.md +6 -0
- package/components/tooltip/index.d.ts +3 -1
- package/components/tooltip/lib/directives/index.d.ts +2 -0
- package/components/tooltip/lib/directives/tooltip-disabled-focusable.directive.d.ts +20 -0
- package/esm2022/components/tooltip/index.mjs +4 -2
- package/esm2022/components/tooltip/lib/directives/index.mjs +3 -0
- package/esm2022/components/tooltip/lib/directives/tooltip-disabled-focusable.directive.mjs +47 -0
- package/esm2022/components/tooltip/lib/tooltip.directive.mjs +8 -2
- package/fesm2022/odx-angular-components-tooltip.mjs +57 -5
- package/fesm2022/odx-angular-components-tooltip.mjs.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
export * from './lib/directives';
|
|
2
|
+
export * from './lib/directives/tooltip-disabled-focusable.directive';
|
|
1
3
|
export * from './lib/helpers';
|
|
2
4
|
export * from './lib/models';
|
|
3
|
-
export * from './lib/tooltip.config';
|
|
4
5
|
export * from './lib/tooltip.component';
|
|
6
|
+
export * from './lib/tooltip.config';
|
|
5
7
|
export * from './lib/tooltip.directive';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { AfterViewInit, OnDestroy } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Enables tooltips on disabled elements by implementing a "soft disabled" state.
|
|
5
|
+
*
|
|
6
|
+
* Some projects require descriptive tooltips on disabled elements. Since the `disabled`
|
|
7
|
+
* attribute natively blocks all interaction, this directive implements a focusable
|
|
8
|
+
* disabled state that allows tooltips to function while preventing actual operation.
|
|
9
|
+
* Although the element regains focusable state, it remains non-operable.
|
|
10
|
+
*/
|
|
11
|
+
export declare class TooltipDisabledFocusable implements AfterViewInit, OnDestroy {
|
|
12
|
+
static readonly attributeName = "data-disabled-focusable";
|
|
13
|
+
private readonly element;
|
|
14
|
+
ngAfterViewInit(): void;
|
|
15
|
+
ngOnDestroy(): void;
|
|
16
|
+
protected onClick(event: MouseEvent): void;
|
|
17
|
+
protected onKeydown(event: Event): void;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TooltipDisabledFocusable, never>;
|
|
19
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<TooltipDisabledFocusable, "[odxTooltip][disabled]", never, {}, {}, never, never, true, never>;
|
|
20
|
+
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
export * from './lib/directives';
|
|
2
|
+
export * from './lib/directives/tooltip-disabled-focusable.directive';
|
|
1
3
|
export * from './lib/helpers';
|
|
2
4
|
export * from './lib/models';
|
|
3
|
-
export * from './lib/tooltip.config';
|
|
4
5
|
export * from './lib/tooltip.component';
|
|
6
|
+
export * from './lib/tooltip.config';
|
|
5
7
|
export * from './lib/tooltip.directive';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90b29sdGlwL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsdURBQXVELENBQUM7QUFDdEUsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvdG9vbHRpcC1kaXNhYmxlZC1mb2N1c2FibGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2hlbHBlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rvb2x0aXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rvb2x0aXAuY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rvb2x0aXAuZGlyZWN0aXZlJztcbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** @internal */
|
|
2
|
+
export * from './tooltip-disabled-focusable.directive';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90b29sdGlwL3NyYy9saWIvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnQkFBZ0I7QUFDaEIsY0FBYyx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAaW50ZXJuYWwgKi9cbmV4cG9ydCAqIGZyb20gJy4vdG9vbHRpcC1kaXNhYmxlZC1mb2N1c2FibGUuZGlyZWN0aXZlJztcbiJdfQ==
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Directive } from '@angular/core';
|
|
2
|
+
import { injectElement } from '@odx/angular/utils';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Enables tooltips on disabled elements by implementing a "soft disabled" state.
|
|
6
|
+
*
|
|
7
|
+
* Some projects require descriptive tooltips on disabled elements. Since the `disabled`
|
|
8
|
+
* attribute natively blocks all interaction, this directive implements a focusable
|
|
9
|
+
* disabled state that allows tooltips to function while preventing actual operation.
|
|
10
|
+
* Although the element regains focusable state, it remains non-operable.
|
|
11
|
+
*/
|
|
12
|
+
export class TooltipDisabledFocusable {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.element = injectElement();
|
|
15
|
+
}
|
|
16
|
+
static { this.attributeName = 'data-disabled-focusable'; }
|
|
17
|
+
ngAfterViewInit() {
|
|
18
|
+
this.element.nativeElement.removeAttribute('disabled');
|
|
19
|
+
this.element.nativeElement.toggleAttribute(TooltipDisabledFocusable.attributeName, true);
|
|
20
|
+
}
|
|
21
|
+
ngOnDestroy() {
|
|
22
|
+
this.element.nativeElement.removeAttribute(TooltipDisabledFocusable.attributeName);
|
|
23
|
+
}
|
|
24
|
+
onClick(event) {
|
|
25
|
+
event.preventDefault();
|
|
26
|
+
event.stopImmediatePropagation();
|
|
27
|
+
}
|
|
28
|
+
onKeydown(event) {
|
|
29
|
+
event.preventDefault();
|
|
30
|
+
event.stopImmediatePropagation();
|
|
31
|
+
}
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TooltipDisabledFocusable, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
33
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TooltipDisabledFocusable, isStandalone: true, selector: "[odxTooltip][disabled]", host: { listeners: { "click": "onClick($event)", "keydown.enter": "onKeydown($event)", "keydown.space": "onKeydown($event)" } }, ngImport: i0 }); }
|
|
34
|
+
}
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TooltipDisabledFocusable, decorators: [{
|
|
36
|
+
type: Directive,
|
|
37
|
+
args: [{
|
|
38
|
+
standalone: true,
|
|
39
|
+
selector: '[odxTooltip][disabled]',
|
|
40
|
+
host: {
|
|
41
|
+
'(click)': 'onClick($event)',
|
|
42
|
+
'(keydown.enter)': 'onKeydown($event)',
|
|
43
|
+
'(keydown.space)': 'onKeydown($event)',
|
|
44
|
+
},
|
|
45
|
+
}]
|
|
46
|
+
}] });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1kaXNhYmxlZC1mb2N1c2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvdG9vbHRpcC9zcmMvbGliL2RpcmVjdGl2ZXMvdG9vbHRpcC1kaXNhYmxlZC1mb2N1c2FibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFFbkQ7Ozs7Ozs7R0FPRztBQVVILE1BQU0sT0FBTyx3QkFBd0I7SUFUckM7UUFXbUIsWUFBTyxHQUFHLGFBQWEsRUFBRSxDQUFDO0tBb0I1QzthQXJCd0Isa0JBQWEsR0FBRyx5QkFBeUIsQUFBNUIsQ0FBNkI7SUFHMUQsZUFBZTtRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLHdCQUF3QixDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsd0JBQXdCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVTLE9BQU8sQ0FBQyxLQUFpQjtRQUNqQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVTLFNBQVMsQ0FBQyxLQUFZO1FBQzlCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNuQyxDQUFDOytHQXJCVSx3QkFBd0I7bUdBQXhCLHdCQUF3Qjs7NEZBQXhCLHdCQUF3QjtrQkFUcEMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsSUFBSSxFQUFFO3dCQUNKLFNBQVMsRUFBRSxpQkFBaUI7d0JBQzVCLGlCQUFpQixFQUFFLG1CQUFtQjt3QkFDdEMsaUJBQWlCLEVBQUUsbUJBQW1CO3FCQUN2QztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcblxuLyoqXG4gKiBFbmFibGVzIHRvb2x0aXBzIG9uIGRpc2FibGVkIGVsZW1lbnRzIGJ5IGltcGxlbWVudGluZyBhIFwic29mdCBkaXNhYmxlZFwiIHN0YXRlLlxuICpcbiAqIFNvbWUgcHJvamVjdHMgcmVxdWlyZSBkZXNjcmlwdGl2ZSB0b29sdGlwcyBvbiBkaXNhYmxlZCBlbGVtZW50cy4gU2luY2UgdGhlIGBkaXNhYmxlZGBcbiAqIGF0dHJpYnV0ZSBuYXRpdmVseSBibG9ja3MgYWxsIGludGVyYWN0aW9uLCB0aGlzIGRpcmVjdGl2ZSBpbXBsZW1lbnRzIGEgZm9jdXNhYmxlXG4gKiBkaXNhYmxlZCBzdGF0ZSB0aGF0IGFsbG93cyB0b29sdGlwcyB0byBmdW5jdGlvbiB3aGlsZSBwcmV2ZW50aW5nIGFjdHVhbCBvcGVyYXRpb24uXG4gKiBBbHRob3VnaCB0aGUgZWxlbWVudCByZWdhaW5zIGZvY3VzYWJsZSBzdGF0ZSwgaXQgcmVtYWlucyBub24tb3BlcmFibGUuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tvZHhUb29sdGlwXVtkaXNhYmxlZF0nLFxuICBob3N0OiB7XG4gICAgJyhjbGljayknOiAnb25DbGljaygkZXZlbnQpJyxcbiAgICAnKGtleWRvd24uZW50ZXIpJzogJ29uS2V5ZG93bigkZXZlbnQpJyxcbiAgICAnKGtleWRvd24uc3BhY2UpJzogJ29uS2V5ZG93bigkZXZlbnQpJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpc2FibGVkRm9jdXNhYmxlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBhdHRyaWJ1dGVOYW1lID0gJ2RhdGEtZGlzYWJsZWQtZm9jdXNhYmxlJztcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnRvZ2dsZUF0dHJpYnV0ZShUb29sdGlwRGlzYWJsZWRGb2N1c2FibGUuYXR0cmlidXRlTmFtZSwgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKFRvb2x0aXBEaXNhYmxlZEZvY3VzYWJsZS5hdHRyaWJ1dGVOYW1lKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbktleWRvd24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgfVxufVxuIl19
|
|
@@ -163,7 +163,13 @@ TooltipDirective = __decorate([
|
|
|
163
163
|
export { TooltipDirective };
|
|
164
164
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
165
165
|
type: Directive,
|
|
166
|
-
args: [{
|
|
166
|
+
args: [{
|
|
167
|
+
standalone: true,
|
|
168
|
+
selector: '[odxTooltip]',
|
|
169
|
+
exportAs: 'odxTooltip',
|
|
170
|
+
providers: [EventManager],
|
|
171
|
+
host: { '[attr.aria-describedby]': 'tooltipId' },
|
|
172
|
+
}]
|
|
167
173
|
}], ctorParameters: () => [], propDecorators: { content: [{
|
|
168
174
|
type: Input,
|
|
169
175
|
args: ['odxTooltip']
|
|
@@ -180,4 +186,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
180
186
|
type: Input,
|
|
181
187
|
args: [{ alias: 'odxTooltipVisible', transform: booleanAttribute }]
|
|
182
188
|
}] } });
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90b29sdGlwL3NyYy9saWIvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBc0MsTUFBTSxlQUFlLENBQUM7QUFDakksT0FBTyxFQUF1Qix1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRWxHLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQWEsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckgsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRXZEOzs7O0dBSUc7QUFHSSxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFnQjtJQW1DM0I7Ozs7O09BS0c7SUFDSCxJQUNXLE9BQU8sQ0FBQyxLQUFpRDtRQUNsRSxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FB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RGpCLEtBQUs7dUJBQUMsbUJBQW1CO2dCQVluQixJQUFJO3NCQURWLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQVdoQixPQUFPO3NCQURiLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBpbmplY3QsIEluamVjdG9yLCBJbnB1dCwgTmdab25lLCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25uZWN0ZWRPdmVybGF5UmVmLCBDb25uZWN0ZWRPdmVybGF5U2VydmljZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvY29ubmVjdGVkLW92ZXJsYXknO1xuaW1wb3J0IHsgRHluYW1pY0NvbnRlbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQsIGRlZXBtZXJnZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBkZWxheVVudGlsIH0gZnJvbSAnQG9keC9hbmd1bGFyL3J4anMnO1xuaW1wb3J0IHsgRXZlbnRNYW5hZ2VyLCBnZXRVbmlxdWVJZCwgaGFzQ2hhbmdlZCwgaW5qZWN0RWxlbWVudCwgTmdDaGFuZ2VzLCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1lcmdlLCBTdWJqZWN0LCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHJlc29sdmVUb29sdGlwVHJpZ2dlckV2ZW50cyB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBUb29sdGlwT3B0aW9ucywgVG9vbHRpcFNpemUgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpbmplY3RUb29sdGlwQ29uZmlnIH0gZnJvbSAnLi90b29sdGlwLmNvbmZpZyc7XG5cbi8qKlxuICogVG9vbHRpcERpcmVjdGl2ZSBtYW5hZ2VzIHRvb2x0aXBzIGZvciBob3N0IGVsZW1lbnRzIGJ5IGNyZWF0aW5nIG92ZXJsYXkgY29tcG9uZW50cyBkeW5hbWljYWxseS5cbiAqIEl0IHByb3ZpZGVzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBzdWNoIGFzIGNvbnRlbnQsIGRlbGF5IHRpbWluZ3MsIHZpc2liaWxpdHksIGFuZCB0b29sdGlwIHNpemluZy5cbiAqIFRoaXMgZGlyZWN0aXZlIHVzZXMgQW5ndWxhcidzIGNvbm5lY3RlZCBvdmVybGF5IHN5c3RlbSB0byBwb3NpdGlvbiBhbmQgbWFuYWdlIHRvb2x0aXAgdmlzaWJpbGl0eS5cbiAqL1xuQENTU0NvbXBvbmVudCgndG9vbHRpcC1ob3N0JylcbkBEaXJlY3RpdmUoeyBzdGFuZGFsb25lOiB0cnVlLCBzZWxlY3RvcjogJ1tvZHhUb29sdGlwXScsIGV4cG9ydEFzOiAnb2R4VG9vbHRpcCcsIHByb3ZpZGVyczogW0V2ZW50TWFuYWdlcl0sIGhvc3Q6IHsgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ3Rvb2x0aXBJZCcgfSB9KVxuZXhwb3J0IGNsYXNzIFRvb2x0aXBEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBldmVudE1hbmFnZXIgPSBpbmplY3QoRXZlbnRNYW5hZ2VyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25uZWN0ZWRPdmVybGF5U2VydmljZSA9IGluamVjdChDb25uZWN0ZWRPdmVybGF5U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2hvd1RyaWdnZXIkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaGlkZVRyaWdnZXIkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQgPSBpbmplY3QoRE9DVU1FTlQpO1xuICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcblxuICBwcml2YXRlIGNvbm5lY3RlZE92ZXJsYXlSZWY6IENvbm5lY3RlZE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSB0b29sdGlwT3B0aW9ucyA9IGluamVjdFRvb2x0aXBDb25maWcoKTtcbiAgcHJpdmF0ZSBpZ25vcmVOZXh0VG9vbHRpcFRyaWdnZXIgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgdG9vbHRpcElkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgLyoqXG4gICAqIElucHV0IGZvciBkeW5hbWljIGNvbnRlbnQgdG8gZGlzcGxheSBpbiB0aGUgdG9vbHRpcC5cbiAgICogVGhpcyBjb250ZW50IGlzIHJlYWN0aXZlIGFuZCBjYW4gY2hhbmdlIGR5bmFtaWNhbGx5LlxuICAgKlxuICAgKiBAdHlwZSB7RHluYW1pY0NvbnRlbnQgfCBudWxsfVxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBASW5wdXQoJ29keFRvb2x0aXAnKVxuICBwdWJsaWMgY29udGVudD86IEV4Y2x1ZGU8RHluYW1pY0NvbnRlbnQsIFR5cGU8dW5rbm93bj4+IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHdoZXRoZXIgdGhlIHRvb2x0aXAgaXMgZGlzYWJsZWQuIEEgZGlzYWJsZWQgdG9vbHRpcCB3aWxsIG5vdCBiZSBkaXNwbGF5ZWQuXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdvZHhUb29sdGlwRGlzYWJsZWQnLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHRvb2x0aXAuXG4gICAqIEl0IGFsbG93cyBzZXR0aW5nIHZhcmlvdXMgYmVoYXZpb3JzIGxpa2UgZGVsYXkgYW5kIHBvc2l0aW9uaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge1BhcnRpYWw8VG9vbHRpcE9wdGlvbnM+IHwgbnVsbCB8IHVuZGVmaW5lZH1cbiAgICovXG4gIEBJbnB1dCgnb2R4VG9vbHRpcE9wdGlvbnMnKVxuICBwdWJsaWMgc2V0IG9wdGlvbnModmFsdWU6IFBhcnRpYWw8VG9vbHRpcE9wdGlvbnM+IHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMudG9vbHRpcE9wdGlvbnMgPSBkZWVwbWVyZ2UodGhpcy50b29sdGlwT3B0aW9ucywgdmFsdWUpIGFzIFRvb2x0aXBPcHRpb25zO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHNpemUgb2YgdGhlIHRvb2x0aXAuXG4gICAqXG4gICAqIEB0eXBlIHtUb29sdGlwU2l6ZX1cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgQElucHV0KCdvZHhUb29sdGlwU2l6ZScpXG4gIHB1YmxpYyBzaXplPzogVG9vbHRpcFNpemUgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQ29udHJvbHMgdGhlIHZpc2liaWxpdHkgb2YgdGhlIHRvb2x0aXAuXG4gICAqIFVzZWZ1bCBmb3IgcHJvZ3JhbW1hdGljYWxseSB0b2dnbGluZyB0aGUgdG9vbHRpcCBkaXNwbGF5LlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCh7IGFsaWFzOiAnb2R4VG9vbHRpcFZpc2libGUnLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHZpc2libGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHRvb2x0aXAgaXMgY3VycmVudGx5IG9wZW4uXG4gICAqXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cbiAgcHVibGljIGdldCBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29ubmVjdGVkT3ZlcmxheVJlZiAhPT0gbnVsbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNvbnN0IHRha2VVbnRpbERlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG4gICAgY29uc3Qgc2hvdyQgPSB0aGlzLnNob3dUcmlnZ2VyJCQucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5pc09wZW4pLFxuICAgICAgZGVsYXlVbnRpbCgoKSA9PiB0aGlzLnRvb2x0aXBPcHRpb25zLmRlbGF5SW4sIHRoaXMuaGlkZVRyaWdnZXIkJCksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5zaG93KCkpLFxuICAgICk7XG4gICAgY29uc3QgaGlkZSQgPSB0aGlzLmhpZGVUcmlnZ2VyJCQucGlwZShcbiAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmlzT3BlbiksXG4gICAgICBkZWxheVVudGlsKCgpID0+IHRoaXMudG9vbHRpcE9wdGlvbnMuZGVsYXlPdXQsIHRoaXMuc2hvd1RyaWdnZXIkJCksXG4gICAgICB0YXAoKCkgPT4gdGhpcy5oaWRlKCkpLFxuICAgICk7XG4gICAgbWVyZ2Uoc2hvdyQsIGhpZGUkKS5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogTmdDaGFuZ2VzPFRvb2x0aXBEaXJlY3RpdmU+KTogdm9pZCB7XG4gICAgaWYgKGhhc0NoYW5nZWQoY2hhbmdlcywgJ2Rpc2FibGVkJykgJiYgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5oaWRlKCk7XG4gICAgfVxuICAgIGlmIChoYXNDaGFuZ2VkKGNoYW5nZXMsIFsnY29udGVudCcsICdzaXplJ10pKSB7XG4gICAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXlSZWY/LnVwZGF0ZSh7IGNvbnRleHQ6IHsgY29udGVudDogdGhpcy5jb250ZW50LCBzaXplOiB0aGlzLnNpemUgfSB9KTtcbiAgICB9XG4gICAgaWYgKGhhc0NoYW5nZWQoY2hhbmdlcywgJ29wdGlvbnMnKSkge1xuICAgICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5UmVmPy51cGRhdGUodGhpcy50b29sdGlwT3B0aW9ucyk7XG4gICAgICB0aGlzLnJlZ2lzdGVyRXZlbnRzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnZpc2libGUgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2hvdygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5oaWRlKHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3dzIHRoZSB0b29sdGlwLCBjcmVhdGluZyBhbmQgYXR0YWNoaW5nIHRoZSBvdmVybGF5IHRvIHRoZSBob3N0IGVsZW1lbnQuXG4gICAqL1xuICBwdWJsaWMgc2hvdygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc09wZW4gfHwgdGhpcy5kaXNhYmxlZCB8fCAhdGhpcy5jb250ZW50KSByZXR1cm47XG4gICAgdGhpcy50b29sdGlwSWQgPSBnZXRVbmlxdWVJZCgnb2R4LXRvb2x0aXAnKTtcbiAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXlSZWYgPSB0aGlzLmNvbm5lY3RlZE92ZXJsYXlTZXJ2aWNlLmNyZWF0ZU92ZXJsYXkoXG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgIHtcbiAgICAgICAgLi4udGhpcy50b29sdGlwT3B0aW9ucyxcbiAgICAgICAgY29udGFpbmVyQ2xhc3M6ICdvZHgtdG9vbHRpcC1vdmVybGF5JyxcbiAgICAgICAgY29udGVudDogVG9vbHRpcENvbXBvbmVudCxcbiAgICAgICAgY29udGV4dDogeyBjb250ZW50OiB0aGlzLmNvbnRlbnQsIHNpemU6IHRoaXMuc2l6ZSA/PyB0aGlzLnRvb2x0aXBPcHRpb25zLnNpemUsIGlkOiB0aGlzLnRvb2x0aXBJZCB9LFxuICAgICAgICBzaG93QXJyb3c6IHRydWUsXG4gICAgICAgIGVuYWJsZUZhbGxiYWNrOiB0cnVlLFxuICAgICAgICBub25JbnRlcmFjdGl2ZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICB7IGhvc3Q6IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQsIGluamVjdG9yOiB0aGlzLmluamVjdG9yIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIaWRlcyB0aGUgdG9vbHRpcCwgZGV0YWNoaW5nIHRoZSBvdmVybGF5IGZyb20gdGhlIGhvc3QgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBoaWRlKGZvcmNlID0gZmFsc2UpOiB2b2lkIHtcbiAgICBpZiAoKCF0aGlzLmlzT3BlbiB8fCAodGhpcy52aXNpYmxlICYmICF0aGlzLmRpc2FibGVkKSkgJiYgIWZvcmNlKSByZXR1cm47XG4gICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5UmVmPy5jbG9zZShmb3JjZSk7XG4gICAgdGhpcy5jb25uZWN0ZWRPdmVybGF5UmVmID0gbnVsbDtcbiAgICB0aGlzLnRvb2x0aXBJZCA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyRXZlbnRzKCk6IHZvaWQge1xuICAgIGNvbnN0IFtvcGVuRXZlbnQsIGNsb3NlRXZlbnRdID0gcmVzb2x2ZVRvb2x0aXBUcmlnZ2VyRXZlbnRzKHRoaXMudG9vbHRpcE9wdGlvbnMudHJpZ2dlcik7XG4gICAgdGhpcy5ldmVudE1hbmFnZXIuZGVzdHJveUxpc3RlbmVycygpO1xuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuZXZlbnRNYW5hZ2VyLnJlZ2lzdGVyKFtvcGVuRXZlbnQsICdmb2N1c2luJ10sIChldmVudDogRXZlbnQgfCB1bmRlZmluZWQpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuaWdub3JlTmV4dFRvb2x0aXBUcmlnZ2VyICYmIGV2ZW50Py50eXBlID09PSAnZm9jdXNpbicpIHtcbiAgICAgICAgICB0aGlzLmlnbm9yZU5leHRUb29sdGlwVHJpZ2dlciA9IGZhbHNlO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNob3dUcmlnZ2VyJCQubmV4dCgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmV2ZW50TWFuYWdlci5yZWdpc3RlcihbY2xvc2VFdmVudCwgJ2ZvY3Vzb3V0J10sICgpID0+IHRoaXMuaGlkZVRyaWdnZXIkJC5uZXh0KCkpO1xuICAgICAgdGhpcy5ldmVudE1hbmFnZXIucmVnaXN0ZXIoWydrZXl1cC5lc2MnXSwgKCkgPT4gdGhpcy5oaWRlVHJpZ2dlciQkLm5leHQoKSwgJ2RvY3VtZW50Jyk7XG4gICAgICB0aGlzLmV2ZW50TWFuYWdlci5yZWdpc3RlcihcbiAgICAgICAgWydPRFhNb2RhbE9uQmVmb3JlQ2xvc2VkJywgJ3Zpc2liaWxpdHljaGFuZ2UnXSxcbiAgICAgICAgKGV2ZW50PzogRXZlbnQpID0+IHtcbiAgICAgICAgICAvLyBTZXQgdGhlIGlnbm9yZSBmbGFnIHdoZW4gdGhlIG1vZGFsIGlzIGFib3V0IHRvIGNsb3NlIG9yIHdoZW4gdGhlIGJyb3dzZXIncyB0YWIvd2luZG93IGJlY29tZXMgaW5hY3RpdmVcbiAgICAgICAgICBpZiAoZXZlbnQ/LnR5cGUgPT09ICdPRFhNb2RhbE9uQmVmb3JlQ2xvc2VkJyB8fCB0aGlzLmRvY3VtZW50LnZpc2liaWxpdHlTdGF0ZSA9PT0gJ2hpZGRlbicpIHtcbiAgICAgICAgICAgIHRoaXMuaWdub3JlTmV4dFRvb2x0aXBUcmlnZ2VyID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgICdkb2N1bWVudCcsXG4gICAgICApO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90b29sdGlwL3NyYy9saWIvdG9vbHRpcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBc0MsTUFBTSxlQUFlLENBQUM7QUFDakksT0FBTyxFQUF1Qix1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRWxHLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQWEsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckgsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRXZEOzs7O0dBSUc7QUFTSSxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFnQjtJQW1DM0I7Ozs7O09BS0c7SUFDSCxJQUNXLE9BQU8sQ0FBQyxLQUFpRDtRQUNsRSxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEtBQUssQ0FB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LE9BQU87c0JBRGpCLEtBQUs7dUJBQUMsbUJBQW1CO2dCQVluQixJQUFJO3NCQURWLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQVdoQixPQUFPO3NCQURiLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBpbmplY3QsIEluamVjdG9yLCBJbnB1dCwgTmdab25lLCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb25uZWN0ZWRPdmVybGF5UmVmLCBDb25uZWN0ZWRPdmVybGF5U2VydmljZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvY29ubmVjdGVkLW92ZXJsYXknO1xuaW1wb3J0IHsgRHluYW1pY0NvbnRlbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQsIGRlZXBtZXJnZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBkZWxheVVudGlsIH0gZnJvbSAnQG9keC9hbmd1bGFyL3J4anMnO1xuaW1wb3J0IHsgRXZlbnRNYW5hZ2VyLCBnZXRVbmlxdWVJZCwgaGFzQ2hhbmdlZCwgaW5qZWN0RWxlbWVudCwgTmdDaGFuZ2VzLCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1lcmdlLCBTdWJqZWN0LCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHJlc29sdmVUb29sdGlwVHJpZ2dlckV2ZW50cyB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBUb29sdGlwT3B0aW9ucywgVG9vbHRpcFNpemUgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi90b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpbmplY3RUb29sdGlwQ29uZmlnIH0gZnJvbSAnLi90b29sdGlwLmNvbmZpZyc7XG5cbi8qKlxuICogVG9vbHRpcERpcmVjdGl2ZSBtYW5hZ2VzIHRvb2x0aXBzIGZvciBob3N0IGVsZW1lbnRzIGJ5IGNyZWF0aW5nIG92ZXJsYXkgY29tcG9uZW50cyBkeW5hbWljYWxseS5cbiAqIEl0IHByb3ZpZGVzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBzdWNoIGFzIGNvbnRlbnQsIGRlbGF5IHRpbWluZ3MsIHZpc2liaWxpdHksIGFuZCB0b29sdGlwIHNpemluZy5cbiAqIFRoaXMgZGlyZWN0aXZlIHVzZXMgQW5ndWxhcidzIGNvbm5lY3RlZCBvdmVybGF5IHN5c3RlbSB0byBwb3NpdGlvbiBhbmQgbWFuYWdlIHRvb2x0aXAgdmlzaWJpbGl0eS5cbiAqL1xuQENTU0NvbXBvbmVudCgndG9vbHRpcC1ob3N0JylcbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ1tvZHhUb29sdGlwXScsXG4gIGV4cG9ydEFzOiAnb2R4VG9vbHRpcCcsXG4gIHByb3ZpZGVyczogW0V2ZW50TWFuYWdlcl0sXG4gIGhvc3Q6IHsgJ1thdHRyLmFyaWEtZGVzY3JpYmVkYnldJzogJ3Rvb2x0aXBJZCcgfSxcbn0pXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50TWFuYWdlciA9IGluamVjdChFdmVudE1hbmFnZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbm5lY3RlZE92ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KENvbm5lY3RlZE92ZXJsYXlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzaG93VHJpZ2dlciQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBoaWRlVHJpZ2dlciQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZSA9IGluamVjdChOZ1pvbmUpO1xuXG4gIHByaXZhdGUgY29ubmVjdGVkT3ZlcmxheVJlZjogQ29ubmVjdGVkT3ZlcmxheVJlZiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIHRvb2x0aXBPcHRpb25zID0gaW5qZWN0VG9vbHRpcENvbmZpZygpO1xuICBwcml2YXRlIGlnbm9yZU5leHRUb29sdGlwVHJpZ2dlciA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCB0b29sdGlwSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICAvKipcbiAgICogSW5wdXQgZm9yIGR5bmFtaWMgY29udGVudCB0byBkaXNwbGF5IGluIHRoZSB0b29sdGlwLlxuICAgKiBUaGlzIGNvbnRlbnQgaXMgcmVhY3RpdmUgYW5kIGNhbiBjaGFuZ2UgZHluYW1pY2FsbHkuXG4gICAqXG4gICAqIEB0eXBlIHtEeW5hbWljQ29udGVudCB8IG51bGx9XG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIEBJbnB1dCgnb2R4VG9vbHRpcCcpXG4gIHB1YmxpYyBjb250ZW50PzogRXhjbHVkZTxEeW5hbWljQ29udGVudCwgVHlwZTx1bmtub3duPj4gfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogQ29udHJvbHMgd2hldGhlciB0aGUgdG9vbHRpcCBpcyBkaXNhYmxlZC4gQSBkaXNhYmxlZCB0b29sdGlwIHdpbGwgbm90IGJlIGRpc3BsYXllZC5cbiAgICpcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoeyBhbGlhczogJ29keFRvb2x0aXBEaXNhYmxlZCcsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgdG9vbHRpcC5cbiAgICogSXQgYWxsb3dzIHNldHRpbmcgdmFyaW91cyBiZWhhdmlvcnMgbGlrZSBkZWxheSBhbmQgcG9zaXRpb25pbmcuXG4gICAqXG4gICAqIEBwYXJhbSB7UGFydGlhbDxUb29sdGlwT3B0aW9ucz4gfCBudWxsIHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgQElucHV0KCdvZHhUb29sdGlwT3B0aW9ucycpXG4gIHB1YmxpYyBzZXQgb3B0aW9ucyh2YWx1ZTogUGFydGlhbDxUb29sdGlwT3B0aW9ucz4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy50b29sdGlwT3B0aW9ucyA9IGRlZXBtZXJnZSh0aGlzLnRvb2x0aXBPcHRpb25zLCB2YWx1ZSkgYXMgVG9vbHRpcE9wdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc2l6ZSBvZiB0aGUgdG9vbHRpcC5cbiAgICpcbiAgICogQHR5cGUge1Rvb2x0aXBTaXplfVxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBASW5wdXQoJ29keFRvb2x0aXBTaXplJylcbiAgcHVibGljIHNpemU/OiBUb29sdGlwU2l6ZSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB0aGUgdmlzaWJpbGl0eSBvZiB0aGUgdG9vbHRpcC5cbiAgICogVXNlZnVsIGZvciBwcm9ncmFtbWF0aWNhbGx5IHRvZ2dsaW5nIHRoZSB0b29sdGlwIGRpc3BsYXkuXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KHsgYWxpYXM6ICdvZHhUb29sdGlwVmlzaWJsZScsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgdmlzaWJsZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgdG9vbHRpcCBpcyBjdXJyZW50bHkgb3Blbi5cbiAgICpcbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb25uZWN0ZWRPdmVybGF5UmVmICE9PSBudWxsO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgdGFrZVVudGlsRGVzdHJveWVkID0gdW50aWxEZXN0cm95ZWQoKTtcbiAgICBjb25zdCBzaG93JCA9IHRoaXMuc2hvd1RyaWdnZXIkJC5waXBlKFxuICAgICAgZmlsdGVyKCgpID0+ICF0aGlzLmlzT3BlbiksXG4gICAgICBkZWxheVVudGlsKCgpID0+IHRoaXMudG9vbHRpcE9wdGlvbnMuZGVsYXlJbiwgdGhpcy5oaWRlVHJpZ2dlciQkKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLnNob3coKSksXG4gICAgKTtcbiAgICBjb25zdCBoaWRlJCA9IHRoaXMuaGlkZVRyaWdnZXIkJC5waXBlKFxuICAgICAgZmlsdGVyKCgpID0+IHRoaXMuaXNPcGVuKSxcbiAgICAgIGRlbGF5VW50aWwoKCkgPT4gdGhpcy50b29sdGlwT3B0aW9ucy5kZWxheU91dCwgdGhpcy5zaG93VHJpZ2dlciQkKSxcbiAgICAgIHRhcCgoKSA9PiB0aGlzLmhpZGUoKSksXG4gICAgKTtcbiAgICBtZXJnZShzaG93JCwgaGlkZSQpLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVnaXN0ZXJFdmVudHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBOZ0NoYW5nZXM8VG9vbHRpcERpcmVjdGl2ZT4pOiB2b2lkIHtcbiAgICBpZiAoaGFzQ2hhbmdlZChjaGFuZ2VzLCAnZGlzYWJsZWQnKSAmJiB0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG4gICAgaWYgKGhhc0NoYW5nZWQoY2hhbmdlcywgWydjb250ZW50JywgJ3NpemUnXSkpIHtcbiAgICAgIHRoaXMuY29ubmVjdGVkT3ZlcmxheVJlZj8udXBkYXRlKHsgY29udGV4dDogeyBjb250ZW50OiB0aGlzLmNvbnRlbnQsIHNpemU6IHRoaXMuc2l6ZSB9IH0pO1xuICAgIH1cbiAgICBpZiAoaGFzQ2hhbmdlZChjaGFuZ2VzLCAnb3B0aW9ucycpKSB7XG4gICAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXlSZWY/LnVwZGF0ZSh0aGlzLnRvb2x0aXBPcHRpb25zKTtcbiAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudmlzaWJsZSAmJiAhdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5zaG93KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGUodHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogU2hvd3MgdGhlIHRvb2x0aXAsIGNyZWF0aW5nIGFuZCBhdHRhY2hpbmcgdGhlIG92ZXJsYXkgdG8gdGhlIGhvc3QgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBzaG93KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzT3BlbiB8fCB0aGlzLmRpc2FibGVkIHx8ICF0aGlzLmNvbnRlbnQpIHJldHVybjtcbiAgICB0aGlzLnRvb2x0aXBJZCA9IGdldFVuaXF1ZUlkKCdvZHgtdG9vbHRpcCcpO1xuICAgIHRoaXMuY29ubmVjdGVkT3ZlcmxheVJlZiA9IHRoaXMuY29ubmVjdGVkT3ZlcmxheVNlcnZpY2UuY3JlYXRlT3ZlcmxheShcbiAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAge1xuICAgICAgICAuLi50aGlzLnRvb2x0aXBPcHRpb25zLFxuICAgICAgICBjb250YWluZXJDbGFzczogJ29keC10b29sdGlwLW92ZXJsYXknLFxuICAgICAgICBjb250ZW50OiBUb29sdGlwQ29tcG9uZW50LFxuICAgICAgICBjb250ZXh0OiB7IGNvbnRlbnQ6IHRoaXMuY29udGVudCwgc2l6ZTogdGhpcy5zaXplID8/IHRoaXMudG9vbHRpcE9wdGlvbnMuc2l6ZSwgaWQ6IHRoaXMudG9vbHRpcElkIH0sXG4gICAgICAgIHNob3dBcnJvdzogdHJ1ZSxcbiAgICAgICAgZW5hYmxlRmFsbGJhY2s6IHRydWUsXG4gICAgICAgIG5vbkludGVyYWN0aXZlOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHsgaG9zdDogdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCwgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEhpZGVzIHRoZSB0b29sdGlwLCBkZXRhY2hpbmcgdGhlIG92ZXJsYXkgZnJvbSB0aGUgaG9zdCBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIGhpZGUoZm9yY2UgPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmICgoIXRoaXMuaXNPcGVuIHx8ICh0aGlzLnZpc2libGUgJiYgIXRoaXMuZGlzYWJsZWQpKSAmJiAhZm9yY2UpIHJldHVybjtcbiAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXlSZWY/LmNsb3NlKGZvcmNlKTtcbiAgICB0aGlzLmNvbm5lY3RlZE92ZXJsYXlSZWYgPSBudWxsO1xuICAgIHRoaXMudG9vbHRpcElkID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJFdmVudHMoKTogdm9pZCB7XG4gICAgY29uc3QgW29wZW5FdmVudCwgY2xvc2VFdmVudF0gPSByZXNvbHZlVG9vbHRpcFRyaWdnZXJFdmVudHModGhpcy50b29sdGlwT3B0aW9ucy50cmlnZ2VyKTtcbiAgICB0aGlzLmV2ZW50TWFuYWdlci5kZXN0cm95TGlzdGVuZXJzKCk7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5ldmVudE1hbmFnZXIucmVnaXN0ZXIoW29wZW5FdmVudCwgJ2ZvY3VzaW4nXSwgKGV2ZW50OiBFdmVudCB8IHVuZGVmaW5lZCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5pZ25vcmVOZXh0VG9vbHRpcFRyaWdnZXIgJiYgZXZlbnQ/LnR5cGUgPT09ICdmb2N1c2luJykge1xuICAgICAgICAgIHRoaXMuaWdub3JlTmV4dFRvb2x0aXBUcmlnZ2VyID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2hvd1RyaWdnZXIkJC5uZXh0KCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZXZlbnRNYW5hZ2VyLnJlZ2lzdGVyKFtjbG9zZUV2ZW50LCAnZm9jdXNvdXQnXSwgKCkgPT4gdGhpcy5oaWRlVHJpZ2dlciQkLm5leHQoKSk7XG4gICAgICB0aGlzLmV2ZW50TWFuYWdlci5yZWdpc3RlcihbJ2tleXVwLmVzYyddLCAoKSA9PiB0aGlzLmhpZGVUcmlnZ2VyJCQubmV4dCgpLCAnZG9jdW1lbnQnKTtcbiAgICAgIHRoaXMuZXZlbnRNYW5hZ2VyLnJlZ2lzdGVyKFxuICAgICAgICBbJ09EWE1vZGFsT25CZWZvcmVDbG9zZWQnLCAndmlzaWJpbGl0eWNoYW5nZSddLFxuICAgICAgICAoZXZlbnQ/OiBFdmVudCkgPT4ge1xuICAgICAgICAgIC8vIFNldCB0aGUgaWdub3JlIGZsYWcgd2hlbiB0aGUgbW9kYWwgaXMgYWJvdXQgdG8gY2xvc2Ugb3Igd2hlbiB0aGUgYnJvd3NlcidzIHRhYi93aW5kb3cgYmVjb21lcyBpbmFjdGl2ZVxuICAgICAgICAgIGlmIChldmVudD8udHlwZSA9PT0gJ09EWE1vZGFsT25CZWZvcmVDbG9zZWQnIHx8IHRoaXMuZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlID09PSAnaGlkZGVuJykge1xuICAgICAgICAgICAgdGhpcy5pZ25vcmVOZXh0VG9vbHRpcFRyaWdnZXIgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgJ2RvY3VtZW50JyxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { createConfigTokens, injectElement, EventManager, untilDestroyed, hasChanged, getUniqueId } from '@odx/angular/utils';
|
|
2
|
-
import { __decorate, __metadata } from 'tslib';
|
|
3
1
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { inject, Injector, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, NgZone, booleanAttribute
|
|
2
|
+
import { Directive, inject, Injector, Input, ChangeDetectionStrategy, ViewEncapsulation, Component, NgZone, booleanAttribute } from '@angular/core';
|
|
3
|
+
import { injectElement, createConfigTokens, EventManager, untilDestroyed, hasChanged, getUniqueId } from '@odx/angular/utils';
|
|
4
|
+
import { __decorate, __metadata } from 'tslib';
|
|
5
5
|
import { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';
|
|
6
6
|
import { CSSModifier, CSSComponent, deepmerge } from '@odx/angular/internal';
|
|
7
7
|
import { DOCUMENT } from '@angular/common';
|
|
@@ -9,6 +9,52 @@ import { ConnectedOverlayService } from '@odx/angular/cdk/connected-overlay';
|
|
|
9
9
|
import { delayUntil } from '@odx/angular/rxjs';
|
|
10
10
|
import { Subject, filter, tap, merge } from 'rxjs';
|
|
11
11
|
|
|
12
|
+
/**
|
|
13
|
+
* Enables tooltips on disabled elements by implementing a "soft disabled" state.
|
|
14
|
+
*
|
|
15
|
+
* Some projects require descriptive tooltips on disabled elements. Since the `disabled`
|
|
16
|
+
* attribute natively blocks all interaction, this directive implements a focusable
|
|
17
|
+
* disabled state that allows tooltips to function while preventing actual operation.
|
|
18
|
+
* Although the element regains focusable state, it remains non-operable.
|
|
19
|
+
*/
|
|
20
|
+
class TooltipDisabledFocusable {
|
|
21
|
+
constructor() {
|
|
22
|
+
this.element = injectElement();
|
|
23
|
+
}
|
|
24
|
+
static { this.attributeName = 'data-disabled-focusable'; }
|
|
25
|
+
ngAfterViewInit() {
|
|
26
|
+
this.element.nativeElement.removeAttribute('disabled');
|
|
27
|
+
this.element.nativeElement.toggleAttribute(TooltipDisabledFocusable.attributeName, true);
|
|
28
|
+
}
|
|
29
|
+
ngOnDestroy() {
|
|
30
|
+
this.element.nativeElement.removeAttribute(TooltipDisabledFocusable.attributeName);
|
|
31
|
+
}
|
|
32
|
+
onClick(event) {
|
|
33
|
+
event.preventDefault();
|
|
34
|
+
event.stopImmediatePropagation();
|
|
35
|
+
}
|
|
36
|
+
onKeydown(event) {
|
|
37
|
+
event.preventDefault();
|
|
38
|
+
event.stopImmediatePropagation();
|
|
39
|
+
}
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TooltipDisabledFocusable, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
41
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: TooltipDisabledFocusable, isStandalone: true, selector: "[odxTooltip][disabled]", host: { listeners: { "click": "onClick($event)", "keydown.enter": "onKeydown($event)", "keydown.space": "onKeydown($event)" } }, ngImport: i0 }); }
|
|
42
|
+
}
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TooltipDisabledFocusable, decorators: [{
|
|
44
|
+
type: Directive,
|
|
45
|
+
args: [{
|
|
46
|
+
standalone: true,
|
|
47
|
+
selector: '[odxTooltip][disabled]',
|
|
48
|
+
host: {
|
|
49
|
+
'(click)': 'onClick($event)',
|
|
50
|
+
'(keydown.enter)': 'onKeydown($event)',
|
|
51
|
+
'(keydown.space)': 'onKeydown($event)',
|
|
52
|
+
},
|
|
53
|
+
}]
|
|
54
|
+
}] });
|
|
55
|
+
|
|
56
|
+
/** @internal */
|
|
57
|
+
|
|
12
58
|
/**
|
|
13
59
|
* @internal
|
|
14
60
|
* Resolves the appropriate event names for the provided tooltip trigger.
|
|
@@ -276,7 +322,13 @@ TooltipDirective = __decorate([
|
|
|
276
322
|
], TooltipDirective);
|
|
277
323
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
278
324
|
type: Directive,
|
|
279
|
-
args: [{
|
|
325
|
+
args: [{
|
|
326
|
+
standalone: true,
|
|
327
|
+
selector: '[odxTooltip]',
|
|
328
|
+
exportAs: 'odxTooltip',
|
|
329
|
+
providers: [EventManager],
|
|
330
|
+
host: { '[attr.aria-describedby]': 'tooltipId' },
|
|
331
|
+
}]
|
|
280
332
|
}], ctorParameters: () => [], propDecorators: { content: [{
|
|
281
333
|
type: Input,
|
|
282
334
|
args: ['odxTooltip']
|
|
@@ -298,5 +350,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
298
350
|
* Generated bundle index. Do not edit.
|
|
299
351
|
*/
|
|
300
352
|
|
|
301
|
-
export { DefaultTooltipOptions, TooltipComponent, TooltipConfig, TooltipDefaultConfig, TooltipDirective, TooltipSize, injectTooltipConfig, provideTooltipConfig, resolveTooltipTriggerEvents };
|
|
353
|
+
export { DefaultTooltipOptions, TooltipComponent, TooltipConfig, TooltipDefaultConfig, TooltipDirective, TooltipDisabledFocusable, TooltipSize, injectTooltipConfig, provideTooltipConfig, resolveTooltipTriggerEvents };
|
|
302
354
|
//# sourceMappingURL=odx-angular-components-tooltip.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-components-tooltip.mjs","sources":["../../../../libs/angular/components/tooltip/src/lib/helpers/resolve-tooltip-trigger-events.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-size.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-options.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.config.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.html","../../../../libs/angular/components/tooltip/src/lib/tooltip.directive.ts","../../../../libs/angular/components/tooltip/src/odx-angular-components-tooltip.ts"],"sourcesContent":["import { TooltipTrigger } from '../models';\n\n/**\n * @internal\n * Resolves the appropriate event names for the provided tooltip trigger.\n *\n * @param {TooltipTrigger} trigger - The trigger to resolve.\n * @returns {[string, string | null]} - The event names for the trigger.\n */\nexport function resolveTooltipTriggerEvents(trigger: TooltipTrigger): [string, string | null] {\n if (trigger === 'click') {\n return ['click', null];\n } else {\n return ['mouseenter', 'mouseleave'];\n }\n}\n","export type TooltipSize = typeof TooltipSize[keyof typeof TooltipSize];\n\nexport const TooltipSize = {\n AUTO: 'auto',\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n} as const;\n","import { ConnectedOverlayOptions } from '@odx/angular/cdk/connected-overlay';\nimport { TooltipSize } from './tooltip-size';\nimport { TooltipTrigger } from './tooltip-trigger';\n\nexport interface TooltipOptions extends Pick<ConnectedOverlayOptions, 'position' | 'matchReferenceWidth'> {\n trigger: TooltipTrigger;\n delayIn: number;\n delayOut: number;\n size: TooltipSize;\n}\n\nexport const DefaultTooltipOptions: TooltipOptions = {\n matchReferenceWidth: false,\n size: TooltipSize.AUTO,\n trigger: 'hover',\n position: 'top',\n delayIn: 0,\n delayOut: 0,\n};\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { DefaultTooltipOptions, TooltipOptions } from './models';\n\nexport type TooltipConfig = TooltipOptions;\n\n/**\n * Utility functions generated by `createConfigTokens` to handle injection and provision of `TooltipConfig`.\n * These include tokens and functions to access and provide the default configuration for tooltips.\n *\n * `TooltipDefaultConfig` provides the default settings for tooltips.\n * `TooltipConfig` is a token that can be used to inject tooltip configuration settings.\n * `injectTooltipConfig` is a function that retrieves the current tooltip configuration.\n * `provideTooltipConfig` is a function used to specify a custom configuration for tooltips.\n *\n * @example\n * ```ts\n * // In module providers:\n * providers: [\n * provideTooltipConfig({ // ... global module configuration }),\n * ]\n *\n * // In a component or service:\n * constructor(@Inject(TooltipConfig) private readonly config: TooltipConfig) {}\n *\n * // Or using the `injectTooltipConfig` function:\n * @Component({ ... })\n * export class MyComponent {\n * private readonly config = injectTooltipConfig();\n * }\n * ```\n */\nexport const { TooltipDefaultConfig, TooltipConfig, injectTooltipConfig, provideTooltipConfig } = createConfigTokens(\n 'Tooltip',\n '@odx/angular/components/tooltip',\n {\n ...DefaultTooltipOptions,\n } as TooltipConfig,\n);\n","import { ChangeDetectionStrategy, Component, inject, Injector, Input, Type, ViewEncapsulation } from '@angular/core';\nimport { DynamicContent, DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { TooltipSize } from './models';\nimport { injectTooltipConfig } from './tooltip.config';\n\n/**\n /**\n * TooltipComponent displays contextual information related to an element when the user hovers over\n * or focuses on the element. It supports dynamic content and can be styled with different sizes.\n *\n * The component uses dynamic content rendering to provide flexible display options including text,\n * templates, or even other Angular components, making it highly customizable.\n */\n@CSSComponent('tooltip')\n@Component({\n standalone: true,\n selector: 'odx-tooltip',\n imports: [DynamicViewDirective],\n templateUrl: './tooltip.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.id]': 'id',\n role: 'tooltip',\n },\n})\nexport class TooltipComponent {\n private readonly config = injectTooltipConfig();\n protected readonly injector = inject(Injector);\n public readonly element = injectElement();\n\n /**\n * The ID attribute of the tooltip, used for accessibility purposes to link the tooltip with its owner element.\n *\n * @type {string | null}\n * @default null\n */\n @Input()\n public id: string | null = null;\n\n /**\n * The content to be displayed within the tooltip. This can be text, a template reference, or a dynamic component.\n *\n * @type {DynamicContent | null}\n */\n @Input()\n public content?: Exclude<DynamicContent, Type<unknown>> | null;\n\n /**\n * Determines the size of the tooltip. It can adjust based on the content size or be set to specific dimensions.\n * The size influences the CSS class applied to the tooltip, allowing for custom styles.\n *\n * @type {TooltipSize}\n * @default TooltipSize.AUTO from the configuration\n */\n @CSSModifier()\n @Input()\n public size: TooltipSize = this.config.size;\n}\n","<ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n","import { DOCUMENT } from '@angular/common';\nimport { booleanAttribute, Directive, inject, Injector, Input, NgZone, OnChanges, OnDestroy, OnInit, Type } from '@angular/core';\nimport { ConnectedOverlayRef, ConnectedOverlayService } from '@odx/angular/cdk/connected-overlay';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent, deepmerge } from '@odx/angular/internal';\nimport { delayUntil } from '@odx/angular/rxjs';\nimport { EventManager, getUniqueId, hasChanged, injectElement, NgChanges, untilDestroyed } from '@odx/angular/utils';\nimport { filter, merge, Subject, tap } from 'rxjs';\nimport { resolveTooltipTriggerEvents } from './helpers';\nimport { TooltipOptions, TooltipSize } from './models';\nimport { TooltipComponent } from './tooltip.component';\nimport { injectTooltipConfig } from './tooltip.config';\n\n/**\n * TooltipDirective manages tooltips for host elements by creating overlay components dynamically.\n * It provides configuration options such as content, delay timings, visibility, and tooltip sizing.\n * This directive uses Angular's connected overlay system to position and manage tooltip visibility.\n */\n@CSSComponent('tooltip-host')\n@Directive({ standalone: true, selector: '[odxTooltip]', exportAs: 'odxTooltip', providers: [EventManager], host: { '[attr.aria-describedby]': 'tooltipId' } })\nexport class TooltipDirective implements OnInit, OnChanges, OnDestroy {\n private readonly eventManager = inject(EventManager);\n private readonly connectedOverlayService = inject(ConnectedOverlayService);\n private readonly showTrigger$$ = new Subject<void>();\n private readonly hideTrigger$$ = new Subject<void>();\n private readonly document = inject(DOCUMENT);\n private readonly injector = inject(Injector);\n private readonly ngZone = inject(NgZone);\n\n private connectedOverlayRef: ConnectedOverlayRef | null = null;\n private tooltipOptions = injectTooltipConfig();\n private ignoreNextTooltipTrigger = false;\n\n protected tooltipId: string | null = null;\n public readonly element = injectElement();\n\n /**\n * Input for dynamic content to display in the tooltip.\n * This content is reactive and can change dynamically.\n *\n * @type {DynamicContent | null}\n * @default null\n */\n @Input('odxTooltip')\n public content?: Exclude<DynamicContent, Type<unknown>> | null = null;\n\n /**\n * Controls whether the tooltip is disabled. A disabled tooltip will not be displayed.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ alias: 'odxTooltipDisabled', transform: booleanAttribute })\n public disabled = false;\n\n /**\n * Configuration options for the tooltip.\n * It allows setting various behaviors like delay and positioning.\n *\n * @param {Partial<TooltipOptions> | null | undefined}\n */\n @Input('odxTooltipOptions')\n public set options(value: Partial<TooltipOptions> | null | undefined) {\n this.tooltipOptions = deepmerge(this.tooltipOptions, value) as TooltipOptions;\n }\n\n /**\n * Sets the size of the tooltip.\n *\n * @type {TooltipSize}\n * @default null\n */\n @Input('odxTooltipSize')\n public size?: TooltipSize | null = null;\n\n /**\n * Controls the visibility of the tooltip.\n * Useful for programmatically toggling the tooltip display.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ alias: 'odxTooltipVisible', transform: booleanAttribute })\n public visible = false;\n\n /**\n * Indicates whether the tooltip is currently open.\n *\n * @returns {boolean}\n */\n public get isOpen(): boolean {\n return this.connectedOverlayRef !== null;\n }\n\n constructor() {\n const takeUntilDestroyed = untilDestroyed();\n const show$ = this.showTrigger$$.pipe(\n filter(() => !this.isOpen),\n delayUntil(() => this.tooltipOptions.delayIn, this.hideTrigger$$),\n tap(() => this.show()),\n );\n const hide$ = this.hideTrigger$$.pipe(\n filter(() => this.isOpen),\n delayUntil(() => this.tooltipOptions.delayOut, this.showTrigger$$),\n tap(() => this.hide()),\n );\n merge(show$, hide$).pipe(takeUntilDestroyed()).subscribe();\n }\n\n public ngOnInit(): void {\n this.registerEvents();\n }\n\n public ngOnChanges(changes: NgChanges<TooltipDirective>): void {\n if (hasChanged(changes, 'disabled') && this.disabled) {\n this.hide();\n }\n if (hasChanged(changes, ['content', 'size'])) {\n this.connectedOverlayRef?.update({ context: { content: this.content, size: this.size } });\n }\n if (hasChanged(changes, 'options')) {\n this.connectedOverlayRef?.update(this.tooltipOptions);\n this.registerEvents();\n }\n if (this.visible && !this.disabled) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n public ngOnDestroy(): void {\n this.hide(true);\n }\n\n /**\n * Shows the tooltip, creating and attaching the overlay to the host element.\n */\n public show(): void {\n if (this.isOpen || this.disabled || !this.content) return;\n this.tooltipId = getUniqueId('odx-tooltip');\n this.connectedOverlayRef = this.connectedOverlayService.createOverlay(\n this.element.nativeElement,\n {\n ...this.tooltipOptions,\n containerClass: 'odx-tooltip-overlay',\n content: TooltipComponent,\n context: { content: this.content, size: this.size ?? this.tooltipOptions.size, id: this.tooltipId },\n showArrow: true,\n enableFallback: true,\n nonInteractive: true,\n },\n { host: this.element.nativeElement.parentElement, injector: this.injector },\n );\n }\n\n /**\n * Hides the tooltip, detaching the overlay from the host element.\n */\n public hide(force = false): void {\n if ((!this.isOpen || (this.visible && !this.disabled)) && !force) return;\n this.connectedOverlayRef?.close(force);\n this.connectedOverlayRef = null;\n this.tooltipId = null;\n }\n\n private registerEvents(): void {\n const [openEvent, closeEvent] = resolveTooltipTriggerEvents(this.tooltipOptions.trigger);\n this.eventManager.destroyListeners();\n this.ngZone.runOutsideAngular(() => {\n this.eventManager.register([openEvent, 'focusin'], (event: Event | undefined) => {\n if (this.ignoreNextTooltipTrigger && event?.type === 'focusin') {\n this.ignoreNextTooltipTrigger = false;\n return;\n }\n this.showTrigger$$.next();\n });\n this.eventManager.register([closeEvent, 'focusout'], () => this.hideTrigger$$.next());\n this.eventManager.register(['keyup.esc'], () => this.hideTrigger$$.next(), 'document');\n this.eventManager.register(\n ['ODXModalOnBeforeClosed', 'visibilitychange'],\n (event?: Event) => {\n // Set the ignore flag when the modal is about to close or when the browser's tab/window becomes inactive\n if (event?.type === 'ODXModalOnBeforeClosed' || this.document.visibilityState === 'hidden') {\n this.ignoreNextTooltipTrigger = true;\n }\n },\n 'document',\n );\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"odx-angular-components-tooltip.mjs","sources":["../../../../libs/angular/components/tooltip/src/lib/directives/tooltip-disabled-focusable.directive.ts","../../../../libs/angular/components/tooltip/src/lib/directives/index.ts","../../../../libs/angular/components/tooltip/src/lib/helpers/resolve-tooltip-trigger-events.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-size.ts","../../../../libs/angular/components/tooltip/src/lib/models/tooltip-options.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.config.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.ts","../../../../libs/angular/components/tooltip/src/lib/tooltip.component.html","../../../../libs/angular/components/tooltip/src/lib/tooltip.directive.ts","../../../../libs/angular/components/tooltip/src/odx-angular-components-tooltip.ts"],"sourcesContent":["import { AfterViewInit, Directive, OnDestroy } from '@angular/core';\nimport { injectElement } from '@odx/angular/utils';\n\n/**\n * Enables tooltips on disabled elements by implementing a \"soft disabled\" state.\n *\n * Some projects require descriptive tooltips on disabled elements. Since the `disabled`\n * attribute natively blocks all interaction, this directive implements a focusable\n * disabled state that allows tooltips to function while preventing actual operation.\n * Although the element regains focusable state, it remains non-operable.\n */\n@Directive({\n standalone: true,\n selector: '[odxTooltip][disabled]',\n host: {\n '(click)': 'onClick($event)',\n '(keydown.enter)': 'onKeydown($event)',\n '(keydown.space)': 'onKeydown($event)',\n },\n})\nexport class TooltipDisabledFocusable implements AfterViewInit, OnDestroy {\n public static readonly attributeName = 'data-disabled-focusable';\n private readonly element = injectElement();\n\n public ngAfterViewInit(): void {\n this.element.nativeElement.removeAttribute('disabled');\n this.element.nativeElement.toggleAttribute(TooltipDisabledFocusable.attributeName, true);\n }\n\n public ngOnDestroy(): void {\n this.element.nativeElement.removeAttribute(TooltipDisabledFocusable.attributeName);\n }\n\n protected onClick(event: MouseEvent): void {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n\n protected onKeydown(event: Event): void {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n}\n","/** @internal */\nexport * from './tooltip-disabled-focusable.directive';\n","import { TooltipTrigger } from '../models';\n\n/**\n * @internal\n * Resolves the appropriate event names for the provided tooltip trigger.\n *\n * @param {TooltipTrigger} trigger - The trigger to resolve.\n * @returns {[string, string | null]} - The event names for the trigger.\n */\nexport function resolveTooltipTriggerEvents(trigger: TooltipTrigger): [string, string | null] {\n if (trigger === 'click') {\n return ['click', null];\n } else {\n return ['mouseenter', 'mouseleave'];\n }\n}\n","export type TooltipSize = typeof TooltipSize[keyof typeof TooltipSize];\n\nexport const TooltipSize = {\n AUTO: 'auto',\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n} as const;\n","import { ConnectedOverlayOptions } from '@odx/angular/cdk/connected-overlay';\nimport { TooltipSize } from './tooltip-size';\nimport { TooltipTrigger } from './tooltip-trigger';\n\nexport interface TooltipOptions extends Pick<ConnectedOverlayOptions, 'position' | 'matchReferenceWidth'> {\n trigger: TooltipTrigger;\n delayIn: number;\n delayOut: number;\n size: TooltipSize;\n}\n\nexport const DefaultTooltipOptions: TooltipOptions = {\n matchReferenceWidth: false,\n size: TooltipSize.AUTO,\n trigger: 'hover',\n position: 'top',\n delayIn: 0,\n delayOut: 0,\n};\n","import { createConfigTokens } from '@odx/angular/utils';\nimport { DefaultTooltipOptions, TooltipOptions } from './models';\n\nexport type TooltipConfig = TooltipOptions;\n\n/**\n * Utility functions generated by `createConfigTokens` to handle injection and provision of `TooltipConfig`.\n * These include tokens and functions to access and provide the default configuration for tooltips.\n *\n * `TooltipDefaultConfig` provides the default settings for tooltips.\n * `TooltipConfig` is a token that can be used to inject tooltip configuration settings.\n * `injectTooltipConfig` is a function that retrieves the current tooltip configuration.\n * `provideTooltipConfig` is a function used to specify a custom configuration for tooltips.\n *\n * @example\n * ```ts\n * // In module providers:\n * providers: [\n * provideTooltipConfig({ // ... global module configuration }),\n * ]\n *\n * // In a component or service:\n * constructor(@Inject(TooltipConfig) private readonly config: TooltipConfig) {}\n *\n * // Or using the `injectTooltipConfig` function:\n * @Component({ ... })\n * export class MyComponent {\n * private readonly config = injectTooltipConfig();\n * }\n * ```\n */\nexport const { TooltipDefaultConfig, TooltipConfig, injectTooltipConfig, provideTooltipConfig } = createConfigTokens(\n 'Tooltip',\n '@odx/angular/components/tooltip',\n {\n ...DefaultTooltipOptions,\n } as TooltipConfig,\n);\n","import { ChangeDetectionStrategy, Component, inject, Injector, Input, Type, ViewEncapsulation } from '@angular/core';\nimport { DynamicContent, DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { injectElement } from '@odx/angular/utils';\nimport { TooltipSize } from './models';\nimport { injectTooltipConfig } from './tooltip.config';\n\n/**\n /**\n * TooltipComponent displays contextual information related to an element when the user hovers over\n * or focuses on the element. It supports dynamic content and can be styled with different sizes.\n *\n * The component uses dynamic content rendering to provide flexible display options including text,\n * templates, or even other Angular components, making it highly customizable.\n */\n@CSSComponent('tooltip')\n@Component({\n standalone: true,\n selector: 'odx-tooltip',\n imports: [DynamicViewDirective],\n templateUrl: './tooltip.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.id]': 'id',\n role: 'tooltip',\n },\n})\nexport class TooltipComponent {\n private readonly config = injectTooltipConfig();\n protected readonly injector = inject(Injector);\n public readonly element = injectElement();\n\n /**\n * The ID attribute of the tooltip, used for accessibility purposes to link the tooltip with its owner element.\n *\n * @type {string | null}\n * @default null\n */\n @Input()\n public id: string | null = null;\n\n /**\n * The content to be displayed within the tooltip. This can be text, a template reference, or a dynamic component.\n *\n * @type {DynamicContent | null}\n */\n @Input()\n public content?: Exclude<DynamicContent, Type<unknown>> | null;\n\n /**\n * Determines the size of the tooltip. It can adjust based on the content size or be set to specific dimensions.\n * The size influences the CSS class applied to the tooltip, allowing for custom styles.\n *\n * @type {TooltipSize}\n * @default TooltipSize.AUTO from the configuration\n */\n @CSSModifier()\n @Input()\n public size: TooltipSize = this.config.size;\n}\n","<ng-template [odxDynamicView]=\"content\" [odxDynamicViewInjector]=\"injector\" />\n","import { DOCUMENT } from '@angular/common';\nimport { booleanAttribute, Directive, inject, Injector, Input, NgZone, OnChanges, OnDestroy, OnInit, Type } from '@angular/core';\nimport { ConnectedOverlayRef, ConnectedOverlayService } from '@odx/angular/cdk/connected-overlay';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent, deepmerge } from '@odx/angular/internal';\nimport { delayUntil } from '@odx/angular/rxjs';\nimport { EventManager, getUniqueId, hasChanged, injectElement, NgChanges, untilDestroyed } from '@odx/angular/utils';\nimport { filter, merge, Subject, tap } from 'rxjs';\nimport { resolveTooltipTriggerEvents } from './helpers';\nimport { TooltipOptions, TooltipSize } from './models';\nimport { TooltipComponent } from './tooltip.component';\nimport { injectTooltipConfig } from './tooltip.config';\n\n/**\n * TooltipDirective manages tooltips for host elements by creating overlay components dynamically.\n * It provides configuration options such as content, delay timings, visibility, and tooltip sizing.\n * This directive uses Angular's connected overlay system to position and manage tooltip visibility.\n */\n@CSSComponent('tooltip-host')\n@Directive({\n standalone: true,\n selector: '[odxTooltip]',\n exportAs: 'odxTooltip',\n providers: [EventManager],\n host: { '[attr.aria-describedby]': 'tooltipId' },\n})\nexport class TooltipDirective implements OnInit, OnChanges, OnDestroy {\n private readonly eventManager = inject(EventManager);\n private readonly connectedOverlayService = inject(ConnectedOverlayService);\n private readonly showTrigger$$ = new Subject<void>();\n private readonly hideTrigger$$ = new Subject<void>();\n private readonly document = inject(DOCUMENT);\n private readonly injector = inject(Injector);\n private readonly ngZone = inject(NgZone);\n\n private connectedOverlayRef: ConnectedOverlayRef | null = null;\n private tooltipOptions = injectTooltipConfig();\n private ignoreNextTooltipTrigger = false;\n\n protected tooltipId: string | null = null;\n public readonly element = injectElement();\n\n /**\n * Input for dynamic content to display in the tooltip.\n * This content is reactive and can change dynamically.\n *\n * @type {DynamicContent | null}\n * @default null\n */\n @Input('odxTooltip')\n public content?: Exclude<DynamicContent, Type<unknown>> | null = null;\n\n /**\n * Controls whether the tooltip is disabled. A disabled tooltip will not be displayed.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ alias: 'odxTooltipDisabled', transform: booleanAttribute })\n public disabled = false;\n\n /**\n * Configuration options for the tooltip.\n * It allows setting various behaviors like delay and positioning.\n *\n * @param {Partial<TooltipOptions> | null | undefined}\n */\n @Input('odxTooltipOptions')\n public set options(value: Partial<TooltipOptions> | null | undefined) {\n this.tooltipOptions = deepmerge(this.tooltipOptions, value) as TooltipOptions;\n }\n\n /**\n * Sets the size of the tooltip.\n *\n * @type {TooltipSize}\n * @default null\n */\n @Input('odxTooltipSize')\n public size?: TooltipSize | null = null;\n\n /**\n * Controls the visibility of the tooltip.\n * Useful for programmatically toggling the tooltip display.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ alias: 'odxTooltipVisible', transform: booleanAttribute })\n public visible = false;\n\n /**\n * Indicates whether the tooltip is currently open.\n *\n * @returns {boolean}\n */\n public get isOpen(): boolean {\n return this.connectedOverlayRef !== null;\n }\n\n constructor() {\n const takeUntilDestroyed = untilDestroyed();\n const show$ = this.showTrigger$$.pipe(\n filter(() => !this.isOpen),\n delayUntil(() => this.tooltipOptions.delayIn, this.hideTrigger$$),\n tap(() => this.show()),\n );\n const hide$ = this.hideTrigger$$.pipe(\n filter(() => this.isOpen),\n delayUntil(() => this.tooltipOptions.delayOut, this.showTrigger$$),\n tap(() => this.hide()),\n );\n merge(show$, hide$).pipe(takeUntilDestroyed()).subscribe();\n }\n\n public ngOnInit(): void {\n this.registerEvents();\n }\n\n public ngOnChanges(changes: NgChanges<TooltipDirective>): void {\n if (hasChanged(changes, 'disabled') && this.disabled) {\n this.hide();\n }\n if (hasChanged(changes, ['content', 'size'])) {\n this.connectedOverlayRef?.update({ context: { content: this.content, size: this.size } });\n }\n if (hasChanged(changes, 'options')) {\n this.connectedOverlayRef?.update(this.tooltipOptions);\n this.registerEvents();\n }\n if (this.visible && !this.disabled) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n public ngOnDestroy(): void {\n this.hide(true);\n }\n\n /**\n * Shows the tooltip, creating and attaching the overlay to the host element.\n */\n public show(): void {\n if (this.isOpen || this.disabled || !this.content) return;\n this.tooltipId = getUniqueId('odx-tooltip');\n this.connectedOverlayRef = this.connectedOverlayService.createOverlay(\n this.element.nativeElement,\n {\n ...this.tooltipOptions,\n containerClass: 'odx-tooltip-overlay',\n content: TooltipComponent,\n context: { content: this.content, size: this.size ?? this.tooltipOptions.size, id: this.tooltipId },\n showArrow: true,\n enableFallback: true,\n nonInteractive: true,\n },\n { host: this.element.nativeElement.parentElement, injector: this.injector },\n );\n }\n\n /**\n * Hides the tooltip, detaching the overlay from the host element.\n */\n public hide(force = false): void {\n if ((!this.isOpen || (this.visible && !this.disabled)) && !force) return;\n this.connectedOverlayRef?.close(force);\n this.connectedOverlayRef = null;\n this.tooltipId = null;\n }\n\n private registerEvents(): void {\n const [openEvent, closeEvent] = resolveTooltipTriggerEvents(this.tooltipOptions.trigger);\n this.eventManager.destroyListeners();\n this.ngZone.runOutsideAngular(() => {\n this.eventManager.register([openEvent, 'focusin'], (event: Event | undefined) => {\n if (this.ignoreNextTooltipTrigger && event?.type === 'focusin') {\n this.ignoreNextTooltipTrigger = false;\n return;\n }\n this.showTrigger$$.next();\n });\n this.eventManager.register([closeEvent, 'focusout'], () => this.hideTrigger$$.next());\n this.eventManager.register(['keyup.esc'], () => this.hideTrigger$$.next(), 'document');\n this.eventManager.register(\n ['ODXModalOnBeforeClosed', 'visibilitychange'],\n (event?: Event) => {\n // Set the ignore flag when the modal is about to close or when the browser's tab/window becomes inactive\n if (event?.type === 'ODXModalOnBeforeClosed' || this.document.visibilityState === 'hidden') {\n this.ignoreNextTooltipTrigger = true;\n }\n },\n 'document',\n );\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAGA;;;;;;;AAOG;MAUU,wBAAwB,CAAA;AATrC,IAAA,WAAA,GAAA;QAWmB,IAAA,CAAA,OAAO,GAAG,aAAa,EAAE;AAoB3C,IAAA;aArBwB,IAAA,CAAA,aAAa,GAAG,yBAAH,CAA6B;IAG1D,eAAe,GAAA;QACpB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC;AACtD,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,wBAAwB,CAAC,aAAa,EAAE,IAAI,CAAC;IAC1F;IAEO,WAAW,GAAA;QAChB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,CAAC,wBAAwB,CAAC,aAAa,CAAC;IACpF;AAEU,IAAA,OAAO,CAAC,KAAiB,EAAA;QACjC,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,wBAAwB,EAAE;IAClC;AAEU,IAAA,SAAS,CAAC,KAAY,EAAA;QAC9B,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,wBAAwB,EAAE;IAClC;+GArBW,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,iBAAiB;AAC5B,wBAAA,iBAAiB,EAAE,mBAAmB;AACtC,wBAAA,iBAAiB,EAAE,mBAAmB;AACvC,qBAAA;AACF,iBAAA;;;ACnBD;;ACEA;;;;;;AAMG;AACG,SAAU,2BAA2B,CAAC,OAAuB,EAAA;AACjE,IAAA,IAAI,OAAO,KAAK,OAAO,EAAE;AACvB,QAAA,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;IACxB;SAAO;AACL,QAAA,OAAO,CAAC,YAAY,EAAE,YAAY,CAAC;IACrC;AACF;;ACbO,MAAM,WAAW,GAAG;AACzB,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,KAAK,EAAE,OAAO;AACd,IAAA,MAAM,EAAE,QAAQ;AAChB,IAAA,KAAK,EAAE,OAAO;;;ACKT,MAAM,qBAAqB,GAAmB;AACnD,IAAA,mBAAmB,EAAE,KAAK;IAC1B,IAAI,EAAE,WAAW,CAAC,IAAI;AACtB,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,QAAQ,EAAE,KAAK;AACf,IAAA,OAAO,EAAE,CAAC;AACV,IAAA,QAAQ,EAAE,CAAC;;;ACZb;;;;;;;;;;;;;;;;;;;;;;;;;AAyBG;AACI,MAAM,EAAE,oBAAoB,EAAE,aAAa,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,GAAG,kBAAkB,CAClH,SAAS,EACT,iCAAiC,EACjC;AACE,IAAA,GAAG,qBAAqB;AACR,CAAA;;AC7BpB;;;;;;;AAOG;AAcI,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB,CAAA;AAAtB,IAAA,WAAA,GAAA;QACY,IAAA,CAAA,MAAM,GAAG,mBAAmB,EAAE;AAC5B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC9B,IAAA,CAAA,OAAO,GAAG,aAAa,EAAE;AAEzC;;;;;AAKG;QAEI,IAAA,CAAA,EAAE,GAAkB,IAAI;AAU/B;;;;;;AAMG;AAGI,QAAA,IAAA,CAAA,IAAI,GAAgB,IAAI,CAAC,MAAM,CAAC,IAAI;AAC5C,IAAA;+GAhCY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC5B7B,sFACA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDkBY,oBAAoB,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,wBAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;AAwCvB,UAAA,CAAA;AAFN,IAAA,WAAW,EAAE;;AAE8B,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AA/BjC,gBAAgB,GAAA,UAAA,CAAA;IAb5B,YAAY,CAAC,SAAS;AAaV,CAAA,EAAA,gBAAgB,CAgC5B;4FAhCY,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAZ5B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EAAA,QAAA,EACN,aAAa,EAAA,OAAA,EACd,CAAC,oBAAoB,CAAC,EAAA,aAAA,EAEhB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACJ,wBAAA,WAAW,EAAE,IAAI;AACjB,wBAAA,IAAI,EAAE,SAAS;AAChB,qBAAA,EAAA,QAAA,EAAA,sFAAA,EAAA;8BAcM,EAAE,EAAA,CAAA;sBADR;gBASM,OAAO,EAAA,CAAA;sBADb;gBAYM,IAAI,EAAA,CAAA;sBADV;;;AE7CH;;;;AAIG;AASI,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB,CAAA;AAmC3B;;;;;AAKG;IACH,IACW,OAAO,CAAC,KAAiD,EAAA;QAClE,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAmB;IAC/E;AAqBA;;;;AAIG;AACH,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,mBAAmB,KAAK,IAAI;IAC1C;AAEA,IAAA,WAAA,GAAA;AAzEiB,QAAA,IAAA,CAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACnC,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AACzD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAQ;AACnC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAQ;AACnC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAEhC,IAAA,CAAA,mBAAmB,GAA+B,IAAI;QACtD,IAAA,CAAA,cAAc,GAAG,mBAAmB,EAAE;QACtC,IAAA,CAAA,wBAAwB,GAAG,KAAK;QAE9B,IAAA,CAAA,SAAS,GAAkB,IAAI;QACzB,IAAA,CAAA,OAAO,GAAG,aAAa,EAAE;AAEzC;;;;;;AAMG;QAEI,IAAA,CAAA,OAAO,GAAmD,IAAI;AAErE;;;;;AAKG;QAEI,IAAA,CAAA,QAAQ,GAAG,KAAK;AAavB;;;;;AAKG;QAEI,IAAA,CAAA,IAAI,GAAwB,IAAI;AAEvC;;;;;;AAMG;QAEI,IAAA,CAAA,OAAO,GAAG,KAAK;AAYpB,QAAA,MAAM,kBAAkB,GAAG,cAAc,EAAE;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAC1B,UAAU,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,EACjE,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CACvB;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CACnC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,EACzB,UAAU,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,EAClE,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CACvB;AACD,QAAA,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,EAAE;IAC5D;IAEO,QAAQ,GAAA;QACb,IAAI,CAAC,cAAc,EAAE;IACvB;AAEO,IAAA,WAAW,CAAC,OAAoC,EAAA;QACrD,IAAI,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACpD,IAAI,CAAC,IAAI,EAAE;QACb;QACA,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,EAAE;YAC5C,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3F;AACA,QAAA,IAAI,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE;YAClC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;YACrD,IAAI,CAAC,cAAc,EAAE;QACvB;QACA,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClC,IAAI,CAAC,IAAI,EAAE;QACb;aAAO;YACL,IAAI,CAAC,IAAI,EAAE;QACb;IACF;IAEO,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACjB;AAEA;;AAEG;IACI,IAAI,GAAA;QACT,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE;AACnD,QAAA,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,aAAa,CAAC;AAC3C,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,uBAAuB,CAAC,aAAa,CACnE,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B;YACE,GAAG,IAAI,CAAC,cAAc;AACtB,YAAA,cAAc,EAAE,qBAAqB;AACrC,YAAA,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE;AACnG,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,cAAc,EAAE,IAAI;AACrB,SAAA,EACD,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAC5E;IACH;AAEA;;AAEG;IACI,IAAI,CAAC,KAAK,GAAG,KAAK,EAAA;AACvB,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK;YAAE;AAClE,QAAA,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC;AACtC,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;IACvB;IAEQ,cAAc,GAAA;AACpB,QAAA,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,2BAA2B,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;AACxF,QAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE;AACpC,QAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAK;AACjC,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,KAAwB,KAAI;gBAC9E,IAAI,IAAI,CAAC,wBAAwB,IAAI,KAAK,EAAE,IAAI,KAAK,SAAS,EAAE;AAC9D,oBAAA,IAAI,CAAC,wBAAwB,GAAG,KAAK;oBACrC;gBACF;AACA,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AAC3B,YAAA,CAAC,CAAC;YACF,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;YACrF,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC;AACtF,YAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CACxB,CAAC,wBAAwB,EAAE,kBAAkB,CAAC,EAC9C,CAAC,KAAa,KAAI;;AAEhB,gBAAA,IAAI,KAAK,EAAE,IAAI,KAAK,wBAAwB,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,KAAK,QAAQ,EAAE;AAC1F,oBAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI;gBACtC;YACF,CAAC,EACD,UAAU,CACX;AACH,QAAA,CAAC,CAAC;IACJ;+GA1KW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,2IAgCsB,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,SAAA,CAAA,EAAA,IAAA,EAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,EAAA,SAAA,EA8BjB,gBAAgB,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,EAAA,EAAA,SAAA,EAjErD,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;AAGd,gBAAgB,GAAA,UAAA,CAAA;IAR5B,YAAY,CAAC,cAAc,CAAC;;AAQhB,CAAA,EAAA,gBAAgB,CA2K5B;4FA3KY,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAP5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,YAAY;oBACtB,SAAS,EAAE,CAAC,YAAY,CAAC;AACzB,oBAAA,IAAI,EAAE,EAAE,yBAAyB,EAAE,WAAW,EAAE;AACjD,iBAAA;wDAyBQ,OAAO,EAAA,CAAA;sBADb,KAAK;uBAAC,YAAY;gBAUZ,QAAQ,EAAA,CAAA;sBADd,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,gBAAgB,EAAE;gBAUxD,OAAO,EAAA,CAAA;sBADjB,KAAK;uBAAC,mBAAmB;gBAYnB,IAAI,EAAA,CAAA;sBADV,KAAK;uBAAC,gBAAgB;gBAWhB,OAAO,EAAA,CAAA;sBADb,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,gBAAgB,EAAE;;;ACxFpE;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@odx/angular",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.26.0",
|
|
4
4
|
"author": "Drägerwerk AG & Co.KGaA",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"peerDependencies": {
|
|
@@ -328,18 +328,18 @@
|
|
|
328
328
|
"esm": "./esm2022/components/icon/odx-angular-components-icon.mjs",
|
|
329
329
|
"default": "./fesm2022/odx-angular-components-icon.mjs"
|
|
330
330
|
},
|
|
331
|
-
"./components/link": {
|
|
332
|
-
"types": "./components/link/index.d.ts",
|
|
333
|
-
"esm2022": "./esm2022/components/link/odx-angular-components-link.mjs",
|
|
334
|
-
"esm": "./esm2022/components/link/odx-angular-components-link.mjs",
|
|
335
|
-
"default": "./fesm2022/odx-angular-components-link.mjs"
|
|
336
|
-
},
|
|
337
331
|
"./components/inline-message": {
|
|
338
332
|
"types": "./components/inline-message/index.d.ts",
|
|
339
333
|
"esm2022": "./esm2022/components/inline-message/odx-angular-components-inline-message.mjs",
|
|
340
334
|
"esm": "./esm2022/components/inline-message/odx-angular-components-inline-message.mjs",
|
|
341
335
|
"default": "./fesm2022/odx-angular-components-inline-message.mjs"
|
|
342
336
|
},
|
|
337
|
+
"./components/link": {
|
|
338
|
+
"types": "./components/link/index.d.ts",
|
|
339
|
+
"esm2022": "./esm2022/components/link/odx-angular-components-link.mjs",
|
|
340
|
+
"esm": "./esm2022/components/link/odx-angular-components-link.mjs",
|
|
341
|
+
"default": "./fesm2022/odx-angular-components-link.mjs"
|
|
342
|
+
},
|
|
343
343
|
"./components/list": {
|
|
344
344
|
"types": "./components/list/index.d.ts",
|
|
345
345
|
"esm2022": "./esm2022/components/list/odx-angular-components-list.mjs",
|