@odx/angular 12.7.0 → 12.8.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 +11 -0
- package/cdk/autocomplete-control/index.d.ts +1 -0
- package/cdk/autocomplete-control/lib/directives/highlight-search-result.directive.d.ts +19 -0
- package/cdk/autocomplete-control/lib/directives/index.d.ts +1 -0
- package/components/main-menu/lib/main-menu.component.d.ts +0 -1
- package/components/modal/lib/modal.component.d.ts +1 -1
- package/esm2022/cdk/autocomplete-control/index.mjs +2 -1
- package/esm2022/cdk/autocomplete-control/lib/directives/highlight-search-result.directive.mjs +43 -0
- package/esm2022/cdk/autocomplete-control/lib/directives/index.mjs +2 -0
- package/esm2022/cdk/connected-overlay/lib/connected-overlay.component.mjs +2 -2
- package/esm2022/components/main-menu/lib/main-menu.component.mjs +4 -8
- package/esm2022/components/modal/lib/modal.component.mjs +8 -10
- package/esm2022/components/toast/lib/components/toast-container/toast-container.component.mjs +6 -5
- package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +43 -2
- package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
- package/fesm2022/odx-angular-cdk-connected-overlay.mjs +1 -1
- package/fesm2022/odx-angular-cdk-connected-overlay.mjs.map +1 -1
- package/fesm2022/odx-angular-components-main-menu.mjs +3 -7
- package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
- package/fesm2022/odx-angular-components-modal.mjs +7 -6
- package/fesm2022/odx-angular-components-modal.mjs.map +1 -1
- package/fesm2022/odx-angular-components-toast.mjs +5 -4
- package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @odx/angular
|
|
2
2
|
|
|
3
|
+
## 12.8.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 1534f03: Fixed product fruits newsfeed alignment. Fixed error for "no method hidePopover()".
|
|
8
|
+
- 0fa3302: added the HighlightSearch directive for highlighting search results
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- eaa0e3d: fixed: events propagation for file inputs in modals
|
|
13
|
+
|
|
3
14
|
## 12.7.0
|
|
4
15
|
|
|
5
16
|
### Minor Changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class HighlightSearchDirective {
|
|
3
|
+
private readonly sanitizer;
|
|
4
|
+
protected highlightedText: import("@angular/core").Signal<import("@angular/platform-browser").SafeHtml>;
|
|
5
|
+
/**
|
|
6
|
+
* Search string
|
|
7
|
+
* @required
|
|
8
|
+
* @type string
|
|
9
|
+
*/
|
|
10
|
+
odxHighlightSearch: import("@angular/core").InputSignal<string>;
|
|
11
|
+
/**
|
|
12
|
+
* Text to highlight
|
|
13
|
+
* @required
|
|
14
|
+
* @type string
|
|
15
|
+
*/
|
|
16
|
+
text: import("@angular/core").InputSignal<string>;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<HighlightSearchDirective, never>;
|
|
18
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<HighlightSearchDirective, "odx-highlight", never, { "odxHighlightSearch": { "alias": "odxHighlightSearch"; "required": true; "isSignal": true; }; "text": { "alias": "text"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './highlight-search-result.directive';
|
|
@@ -60,7 +60,6 @@ export declare class MainMenuComponent implements AfterViewInit {
|
|
|
60
60
|
*/
|
|
61
61
|
close(): void;
|
|
62
62
|
private slideMenuInner;
|
|
63
|
-
private isPopoverElement;
|
|
64
63
|
static ɵfac: i0.ɵɵFactoryDeclaration<MainMenuComponent, never>;
|
|
65
64
|
static ɵcmp: i0.ɵɵComponentDeclaration<MainMenuComponent, "odx-main-menu", never, { "title": { "alias": "title"; "required": true; }; "subtitle": { "alias": "subtitle"; "required": false; }; "copyright": { "alias": "copyright"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; }, { "menuOpen": "menuOpen"; }, never, ["*", "[odxLink]"], true, never>;
|
|
66
65
|
static ngAcceptInputType_isOpen: unknown;
|
|
@@ -42,7 +42,7 @@ export declare class ModalComponent implements OnChanges {
|
|
|
42
42
|
constructor();
|
|
43
43
|
ngOnChanges(changes: NgChanges<ModalComponent>): void;
|
|
44
44
|
protected preventNativeDismiss(event: KeyboardEvent): void;
|
|
45
|
-
protected handleDialogClose(): void;
|
|
45
|
+
protected handleDialogClose({ target }: KeyboardEvent): void;
|
|
46
46
|
static ɵfac: i0.ɵɵFactoryDeclaration<ModalComponent, never>;
|
|
47
47
|
static ɵcmp: i0.ɵɵComponentDeclaration<ModalComponent, "dialog[odx-dialog-modal]", never, { "content": { "alias": "content"; "required": false; }; }, {}, never, never, true, never>;
|
|
48
48
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export * from './lib/autocomplete-control';
|
|
2
|
+
export * from './lib/directives';
|
|
2
3
|
export * from './lib/pipes';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2F1dG9jb21wbGV0ZS1jb250cm9sL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9hdXRvY29tcGxldGUtY29udHJvbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzJztcbiJdfQ==
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { computed, Directive, inject, input, SecurityContext } from '@angular/core';
|
|
2
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class HighlightSearchDirective {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.sanitizer = inject(DomSanitizer);
|
|
7
|
+
this.highlightedText = computed(() => {
|
|
8
|
+
const search = this.odxHighlightSearch().trim();
|
|
9
|
+
const text = this.sanitizer.sanitize(SecurityContext.HTML, this.text()) ?? '';
|
|
10
|
+
if (!search) {
|
|
11
|
+
return text;
|
|
12
|
+
}
|
|
13
|
+
const regex = new RegExp(search.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'gi');
|
|
14
|
+
const highlightedText = text.replace(regex, '<mark>$&</mark>');
|
|
15
|
+
return this.sanitizer.bypassSecurityTrustHtml(highlightedText);
|
|
16
|
+
});
|
|
17
|
+
/**
|
|
18
|
+
* Search string
|
|
19
|
+
* @required
|
|
20
|
+
* @type string
|
|
21
|
+
*/
|
|
22
|
+
this.odxHighlightSearch = input.required();
|
|
23
|
+
/**
|
|
24
|
+
* Text to highlight
|
|
25
|
+
* @required
|
|
26
|
+
* @type string
|
|
27
|
+
*/
|
|
28
|
+
this.text = input.required();
|
|
29
|
+
}
|
|
30
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HighlightSearchDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
31
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: HighlightSearchDirective, isStandalone: true, selector: "odx-highlight", inputs: { odxHighlightSearch: { classPropertyName: "odxHighlightSearch", publicName: "odxHighlightSearch", isSignal: true, isRequired: true, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "innerHTML": "highlightedText()" } }, ngImport: i0 }); }
|
|
32
|
+
}
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HighlightSearchDirective, decorators: [{
|
|
34
|
+
type: Directive,
|
|
35
|
+
args: [{
|
|
36
|
+
selector: 'odx-highlight',
|
|
37
|
+
standalone: true,
|
|
38
|
+
host: {
|
|
39
|
+
'[innerHTML]': 'highlightedText()',
|
|
40
|
+
},
|
|
41
|
+
}]
|
|
42
|
+
}] });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlnaGxpZ2h0LXNlYXJjaC1yZXN1bHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9hdXRvY29tcGxldGUtY29udHJvbC9zcmMvbGliL2RpcmVjdGl2ZXMvaGlnaGxpZ2h0LXNlYXJjaC1yZXN1bHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFTekQsTUFBTSxPQUFPLHdCQUF3QjtJQVByQztRQVFtQixjQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXhDLG9CQUFlLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN4QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNoRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUU5RSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1osT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM5RSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1lBRS9ELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQztRQUVIOzs7O1dBSUc7UUFDSSx1QkFBa0IsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFFckQ7Ozs7V0FJRztRQUNJLFNBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7S0FDeEM7K0dBOUJZLHdCQUF3QjttR0FBeEIsd0JBQXdCOzs0RkFBeEIsd0JBQXdCO2tCQVBwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLGFBQWEsRUFBRSxtQkFBbUI7cUJBQ25DO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSwgaW5qZWN0LCBpbnB1dCwgU2VjdXJpdHlDb250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnb2R4LWhpZ2hsaWdodCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICAnW2lubmVySFRNTF0nOiAnaGlnaGxpZ2h0ZWRUZXh0KCknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBIaWdobGlnaHRTZWFyY2hEaXJlY3RpdmUge1xuICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuXG4gIHByb3RlY3RlZCBoaWdobGlnaHRlZFRleHQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VhcmNoID0gdGhpcy5vZHhIaWdobGlnaHRTZWFyY2goKS50cmltKCk7XG4gICAgY29uc3QgdGV4dCA9IHRoaXMuc2FuaXRpemVyLnNhbml0aXplKFNlY3VyaXR5Q29udGV4dC5IVE1MLCB0aGlzLnRleHQoKSkgPz8gJyc7XG5cbiAgICBpZiAoIXNlYXJjaCkge1xuICAgICAgcmV0dXJuIHRleHQ7XG4gICAgfVxuXG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKHNlYXJjaC5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgJ1xcXFwkJicpLCAnZ2knKTtcbiAgICBjb25zdCBoaWdobGlnaHRlZFRleHQgPSB0ZXh0LnJlcGxhY2UocmVnZXgsICc8bWFyaz4kJjwvbWFyaz4nKTtcblxuICAgIHJldHVybiB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChoaWdobGlnaHRlZFRleHQpO1xuICB9KTtcblxuICAvKipcbiAgICogU2VhcmNoIHN0cmluZ1xuICAgKiBAcmVxdWlyZWRcbiAgICogQHR5cGUgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgb2R4SGlnaGxpZ2h0U2VhcmNoID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBUZXh0IHRvIGhpZ2hsaWdodFxuICAgKiBAcmVxdWlyZWRcbiAgICogQHR5cGUgc3RyaW5nXG4gICAqL1xuICBwdWJsaWMgdGV4dCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './highlight-search-result.directive';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2F1dG9jb21wbGV0ZS1jb250cm9sL3NyYy9saWIvZGlyZWN0aXZlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9oaWdobGlnaHQtc2VhcmNoLXJlc3VsdC5kaXJlY3RpdmUnO1xuIl19
|
|
@@ -21,7 +21,7 @@ let ConnectedOverlayComponent = class ConnectedOverlayComponent {
|
|
|
21
21
|
ngOnInit() {
|
|
22
22
|
this.options.hooks?.beforeOpen?.();
|
|
23
23
|
deferFn(() => {
|
|
24
|
-
this.element.nativeElement?.showPopover?.();
|
|
24
|
+
this.element.nativeElement?.isConnected && this.element.nativeElement?.showPopover?.();
|
|
25
25
|
this.options.hooks?.afterOpen?.();
|
|
26
26
|
});
|
|
27
27
|
}
|
|
@@ -80,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
80
80
|
}], closed: [{
|
|
81
81
|
type: Output
|
|
82
82
|
}] } });
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGVkLW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2Nkay9jb25uZWN0ZWQtb3ZlcmxheS9zcmMvbGliL2Nvbm5lY3RlZC1vdmVybGF5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jZGsvY29ubmVjdGVkLW92ZXJsYXkvc3JjL2xpYi9jb25uZWN0ZWQtb3ZlcmxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFFBQVEsRUFDUixLQUFLLEVBQ0wsTUFBTSxFQUlOLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWtCLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDMUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBbUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25ELE9BQU8sRUFBMkIsOEJBQThCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBVzVFLElBQU0seUJBQXlCLEdBQS9CLE1BQU0seUJBQXlCO0lBQS9CO1FBQ1ksU0FBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMs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Q3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0EzRVUseUJBQXlCO21HQUF6Qix5QkFBeUIsOGJDakN0Qyw4U0FJQSwyQ0R3QlksVUFBVSwrQkFBRSxvQkFBb0I7O0FBSy9CLHlCQUF5QjtJQVRyQyxZQUFZLENBQUMsdUJBQXVCLENBQUM7R0FTekIseUJBQXlCLENBNEVyQzs7NEZBNUVZLHlCQUF5QjtrQkFSckMsU0FBUztpQ0FDSSxJQUFJLFlBQ04seUNBQXlDLFdBQzFDLENBQUMsVUFBVSxFQUFFLG9CQUFvQixDQUFDLG1CQUUxQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzhCQVUzQixjQUFjO3NCQUR2QixTQUFTO3VCQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTVCLFlBQVk7c0JBRHJCLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFNN0IsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxNQUFNO3NCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmlydHVhbEVsZW1lbnQsIGF1dG9VcGRhdGUgfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgRHluYW1pY1ZpZXdEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgTmdDaGFuZ2VzLCBTaWRlLCBkZWZlckZuLCBnZXRTaWRlLCBoYXNDaGFuZ2VkLCBpbmplY3RFbGVtZW50LCBpc1ByZXNlbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY29tcHV0ZU92ZXJsYXlQb3NpdGlvbiB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBDb25uZWN0ZWRPdmVybGF5T3B0aW9ucywgRGVmYXVsdENvbm5lY3RlZE92ZXJsYXlPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5AQ1NTQ29tcG9uZW50KCdjZGstY29ubmVjdGVkLW92ZXJsYXknKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LWNvbm5lY3RlZC1vdmVybGF5W3BvcG92ZXI9XCJtYW51YWxcIl0nLFxuICBpbXBvcnRzOiBbQ29yZU1vZHVsZSwgRHluYW1pY1ZpZXdEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJ2Nvbm5lY3RlZC1vdmVybGF5LmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIENvbm5lY3RlZE92ZXJsYXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgcG9zaXRpb25VcGRhdGVyOiAoKCkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcm90ZWN0ZWQgb3ZlcmxheVNpZGU/OiBTaWRlO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcm90ZWN0ZWQgY29udGVudEVsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdhcnJvdycsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByb3RlY3RlZCBhcnJvd0VsZW1lbnQhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmVmZXJlbmNlRWxlbWVudCE6IFZpcnR1YWxFbGVtZW50O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvcHRpb25zOiBDb25uZWN0ZWRPdmVybGF5T3B0aW9ucyA9IERlZmF1bHRDb25uZWN0ZWRPdmVybGF5T3B0aW9ucztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNsb3NlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3B0aW9ucy5ob29rcz8uYmVmb3JlT3Blbj8uKCk7XG4gICAgZGVmZXJGbigoKSA9PiB7XG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudD8uaXNDb25uZWN0ZWQgJiYgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ/LnNob3dQb3BvdmVyPy4oKTtcbiAgICAgIHRoaXMub3B0aW9ucy5ob29rcz8uYWZ0ZXJPcGVuPy4oKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBOZ0NoYW5nZXM8Q29ubmVjdGVkT3ZlcmxheUNvbXBvbmVudD4pOiB2b2lkIHtcbiAgICBpZiAoaGFzQ2hhbmdlZChjaGFuZ2VzLCBbJ29wdGlvbnMnXSwgZmFsc2UpKSB7XG4gICAgICB0aGlzLm92ZXJsYXlTaWRlID0gZ2V0U2lkZSh0aGlzLm9wdGlvbnMucG9zaXRpb24pO1xuICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgnb2R4LWNkay1jb25uZWN0ZWQtb3ZlcmxheS0tbm9uLWludGVyYWN0aXZlJywgdGhpcy5vcHRpb25zLm5vbkludGVyYWN0aXZlID8/IGZhbHNlKTtcbiAgICB9XG4gICAgaWYgKGhhc0NoYW5nZWQoY2hhbmdlcywgWydyZWZlcmVuY2VFbGVtZW50JywgJ29wdGlvbnMnXSwgZmFsc2UpKSB7XG4gICAgICB0aGlzLnN0b3BQb3NpdGlvblVwZGF0ZXIoKTtcbiAgICAgIHRoaXMuc3RhcnRQb3NpdGlvblVwZGF0ZXIoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vcHRpb25zLmhvb2tzPy5iZWZvcmVDbG9zZT8uKCk7XG4gICAgdGhpcy5zdG9wUG9zaXRpb25VcGRhdGVyKCk7XG4gICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ/LmhpZGVQb3BvdmVyPy4oKTtcbiAgICB0aGlzLmNsb3NlZC5uZXh0KCk7XG4gICAgdGhpcy5vcHRpb25zLmhvb2tzPy5hZnRlckNsb3NlPy4oKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhcnRQb3NpdGlvblVwZGF0ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5wb3NpdGlvblVwZGF0ZXIgPSB0aGlzLnpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgIGF1dG9VcGRhdGUodGhpcy5yZWZlcmVuY2VFbGVtZW50LCB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgKCkgPT4gdGhpcy51cGRhdGVQb3NpdGlvbigpLCB7XG4gICAgICAgIGVsZW1lbnRSZXNpemU6IGlzUHJlc2VudCh3aW5kb3cuUmVzaXplT2JzZXJ2ZXIpLFxuICAgICAgICBhbmltYXRpb25GcmFtZTogdGhpcy5vcHRpb25zLnVwZGF0ZU9uQW5pbWF0aW9uRnJhbWUsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdG9wUG9zaXRpb25VcGRhdGVyKCk6IHZvaWQge1xuICAgIHRoaXMucG9zaXRpb25VcGRhdGVyPy4oKTtcbiAgICB0aGlzLnBvc2l0aW9uVXBkYXRlciA9IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZVBvc2l0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBjb21wdXRlT3ZlcmxheVBvc2l0aW9uKFxuICAgICAgdGhpcy5yZWZlcmVuY2VFbGVtZW50LFxuICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICB0aGlzLmNvbnRlbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICB0aGlzLmFycm93RWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgdGhpcy5vcHRpb25zLFxuICAgICkudGhlbigoeyBwbGFjZW1lbnQgfSkgPT4ge1xuICAgICAgdGhpcy5vdmVybGF5U2lkZSA9IGdldFNpZGUocGxhY2VtZW50KTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm9keC1jZGstY29ubmVjdGVkLW92ZXJsYXlfX2NvbnRlbnQge3sgb3B0aW9ucy5jb250YWluZXJDbGFzcyB9fVwiICNjb250ZW50PlxuICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cIm9wdGlvbnMuY29udGVudFwiIFtvZHhEeW5hbWljVmlld0NvbnRleHRdPVwib3B0aW9ucy5jb250ZXh0XCIgW29keER5bmFtaWNWaWV3SW5qZWN0b3JdPVwiaW5qZWN0b3JcIiAvPlxuICA8ZGl2IGNsYXNzPVwib2R4LWNkay1jb25uZWN0ZWQtb3ZlcmxheS1hcnJvd1wiICNhcnJvdz48L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -84,14 +84,10 @@ let MainMenuComponent = class MainMenuComponent {
|
|
|
84
84
|
this.mainMenuService.close();
|
|
85
85
|
}
|
|
86
86
|
slideMenuInner(isOpen = false) {
|
|
87
|
-
const
|
|
88
|
-
if (!
|
|
87
|
+
const nativeElement = this.menuInner?.nativeElement;
|
|
88
|
+
if (!nativeElement?.isConnected)
|
|
89
89
|
return;
|
|
90
|
-
|
|
91
|
-
nativeElement[method]();
|
|
92
|
-
}
|
|
93
|
-
isPopoverElement(element) {
|
|
94
|
-
return element.hasAttribute('popover') && 'showPopover' in element && 'hidePopover' in element;
|
|
90
|
+
(isOpen ? nativeElement.showPopover : nativeElement.hidePopover)?.();
|
|
95
91
|
}
|
|
96
92
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MainMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
97
93
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MainMenuComponent, isStandalone: true, selector: "odx-main-menu", inputs: { title: "title", subtitle: "subtitle", copyright: "copyright", isOpen: ["isOpen", "isOpen", booleanAttribute] }, outputs: { menuOpen: "menuOpen" }, host: { listeners: { "window:keyup.esc": "close()" }, properties: { "class.is-open": "isOpen" } }, providers: [provideTranslations(mainMenuTranslations)], viewQueries: [{ propertyName: "menuInner", first: true, predicate: ["menuInner"], descendants: true }], ngImport: i0, template: "<aside class=\"odx-main-menu__inner\" [ngClass]=\"(isOpen$ | async) ? 'opened' : 'closed'\" #menuInner popover=\"auto\" cdkTrapFocus cdkTrapFocusAutoCapture>\n <div class=\"odx-main-menu__actions\">\n <button class=\"odx-main-menu__close\" odxButton disabled=\"false\" (click)=\"close()\"><odx-icon name=\"close\" iconSet=\"core\" /></button>\n </div>\n <odx-area-header class=\"odx-main-menu__header\" size=\"large\">\n <ng-template [odxDynamicView]=\"title\" />\n @if (subtitle) {\n <odx-area-header-subtitle>\n <ng-template [odxDynamicView]=\"subtitle\" />\n </odx-area-header-subtitle>\n }\n </odx-area-header>\n <nav class=\"odx-main-menu__content\">\n <ng-content />\n </nav>\n <div class=\"odx-main-menu__info\">\n <ng-content select=\"[odxLink]\" />\n @for (link of mainMenuLinks$ | async; track $index) {\n <a odxLink [href]=\"link.url\" target=\"_blank\">\n {{ link.name | odxTranslate | async }}\n </a>\n }\n </div>\n <div class=\"odx-main-menu__footer\">\n <odx-logo variant=\"inverse\" />\n @if (copyright) {\n <p class=\"odx-text odx-text--small\">\n <ng-template [odxDynamicView]=\"copyright\" />\n </p>\n }\n </div>\n</aside>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "ngmodule", type: CoreModule }, { kind: "ngmodule", type: AreaHeaderModule }, { kind: "component", type: i4.AreaHeaderComponent, selector: "odx-area-header", inputs: ["size"] }, { kind: "directive", type: i4.AreaHeaderSubtitleDirective, selector: "odx-area-header-subtitle" }, { kind: "component", type: i5.ButtonComponent, selector: "button[odxButton], a[odxButton]", inputs: ["variant", "size"] }, { kind: "component", type: i6.IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "directive", type: LogoDirective, selector: "odx-logo", inputs: ["size", "variant"] }, { kind: "pipe", type: TranslatePipe, name: "odxTranslate" }, { kind: "directive", type: LinkDirective, selector: "a[odxLink]" }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
@@ -122,4 +118,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
122
118
|
type: HostListener,
|
|
123
119
|
args: ['window:keyup.esc']
|
|
124
120
|
}] } });
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL21haW4tbWVudS9zcmMvbGliL21haW4tbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9tYWluLW1lbnUvc3JjL2xpYi9tYWluLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFzQixvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0s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WDdCLFlBQVksQ0FBQyxXQUFXLENBQUM7R0FXYixpQkFBaUIsQ0E0RjdCOzs0RkE1RlksaUJBQWlCO2tCQVY3QixTQUFTOytCQUNFLGVBQWUsaUJBRVYsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsQ0FBQyxhQUMzSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLENBQUMsY0FDMUMsSUFBSSxRQUNWLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFOzhCQWdCOUIsS0FBSztzQkFEWCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFVbEIsUUFBUTtzQkFEZCxLQUFLO2dCQVVDLFNBQVM7c0JBRGYsS0FBSztnQkFVSyxNQUFNO3NCQURoQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQW9CL0IsUUFBUTtzQkFEZCxNQUFNO2dCQUlBLFNBQVM7c0JBRGYsU0FBUzt1QkFBQyxXQUFXO2dCQWdCZixLQUFLO3NCQURYLFlBQVk7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBBMTF5TW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IER5bmFtaWNUZXh0Q29udGVudCwgRHluYW1pY1ZpZXdEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBBcmVhSGVhZGVyTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYXJlYS1oZWFkZXInO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IExpbmtEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9saW5rJztcbmltcG9ydCB7IExvZ29EaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9sb2dvJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlLCBwcm92aWRlVHJhbnNsYXRpb25zIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsL3RyYW5zbGF0ZSc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50LCB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY3JlYXRlTWFpbk1lbnVMaW5rcyQgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IG1haW5NZW51VHJhbnNsYXRpb25zIGZyb20gJy4vbWFpbi1tZW51LmkxOG4nO1xuaW1wb3J0IHsgTWFpbk1lbnVTZXJ2aWNlIH0gZnJvbSAnLi9tYWluLW1lbnUuc2VydmljZSc7XG5cbi8qKlxuICogVGhlIGBNYWluTWVudUNvbXBvbmVudGAgcHJvdmlkZXMgYSBjb21wcmVoZW5zaXZlIHVzZXIgaW50ZXJmYWNlIGNvbXBvbmVudCBmb3IgZGlzcGxheWluZyBhIG5hdmlnYXRpb24gbWVudSB3aXRoaW4gYW4gYXBwbGljYXRpb24uXG4gKiBJdCBzdXBwb3J0cyBkeW5hbWljIGNvbnRlbnQgZm9yIHRpdGxlcywgc3VidGl0bGVzLCBhbmQgY29weXJpZ2h0IHRleHQsIGFuZCBjYW4gZHluYW1pY2FsbHkgcmVuZGVyIGFkZGl0aW9uYWwgbGlua3MuXG4gKiBUaGUgbWVudSBpbmNsdWRlcyBhbmltYXRpb25zIGZvciBvcGVuaW5nIGFuZCBjbG9zaW5nIHN0YXRlcywgYW5kIGNhbiBiZSBjb250cm9sbGVkIHByb2dyYW1tYXRpY2FsbHkgb3IgdmlhIHVzZXIgaW50ZXJhY3Rpb24uXG4gKi9cbkBDU1NDb21wb25lbnQoJ21haW4tbWVudScpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZHgtbWFpbi1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21haW4tbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbQTExeU1vZHVsZSwgQ29yZU1vZHVsZSwgQXJlYUhlYWRlck1vZHVsZSwgQnV0dG9uQ29tcG9uZW50LCBJY29uQ29tcG9uZW50LCBMb2dvRGlyZWN0aXZlLCBUcmFuc2xhdGVQaXBlLCBMaW5rRGlyZWN0aXZlLCBEeW5hbWljVmlld0RpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVUcmFuc2xhdGlvbnMobWFpbk1lbnVUcmFuc2xhdGlvbnMpXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDogeyAnW2NsYXNzLmlzLW9wZW5dJzogJ2lzT3BlbicgfSxcbn0pXG5leHBvcnQgY2xhc3MgTWFpbk1lbnVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbWFpbk1lbnVTZXJ2aWNlID0gaW5qZWN0KE1haW5NZW51U2VydmljZSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBtYWluTWVudUxpbmtzJCA9IGNyZWF0ZU1haW5NZW51TGlua3MkKCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpc09wZW4kID0gdGhpcy5tYWluTWVudVNlcnZpY2UuaXNPcGVuJC5waXBlKHRhcCgoaXNPcGVuOiBib29sZWFuKSA9PiB0aGlzLnNsaWRlTWVudUlubmVyKGlzT3BlbikpKTtcbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgLyoqXG4gICAqIElucHV0IHByb3BlcnR5IGZvciB0aGUgdGl0bGUgb2YgdGhlIG1lbnUuIFRoZSBjb250ZW50IGlzIGR5bmFtaWMsIGFsbG93aW5nIGNvbXBsZXggY29udGVudCBzdHJ1Y3R1cmVzXG4gICAqIGxpa2UgdHJhbnNsYXRpb25zIG9yIGN1c3RvbSBjb21wb25lbnRzLlxuICAgKlxuICAgKiBAdHlwZSB7RHluYW1pY1RleHRDb250ZW50fVxuICAgKi9cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIHRpdGxlITogRHluYW1pY1RleHRDb250ZW50O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBpbnB1dCBwcm9wZXJ0eSBmb3IgdGhlIHN1YnRpdGxlIG9mIHRoZSBtZW51LlxuICAgKlxuICAgKiBAdHlwZSB7RHluYW1pY1RleHRDb250ZW50IHwgbnVsbH1cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHN1YnRpdGxlPzogRHluYW1pY1RleHRDb250ZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGlucHV0IHByb3BlcnR5IGZvciB0aGUgY29weXJpZ2h0IHRleHQgb2YgdGhlIG1lbnUuXG4gICAqXG4gICAqIEB0eXBlIHtEeW5hbWljVGV4dENvbnRlbnQgfCBudWxsfVxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgY29weXJpZ2h0PzogRHluYW1pY1RleHRDb250ZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIElucHV0IHByb3BlcnR5IHRvIGNvbnRyb2wgdGhlIG9wZW4gc3RhdGUgb2YgdGhlIG1lbnUuIFVzZXMgYm9vbGVhbiB0cmFuc2Zvcm1hdGlvbiB0byBoYW5kbGUgdHJ1ZS9mYWxzZSBzdGF0ZXMuXG4gICAqIENoYW5naW5nIHRoaXMgcHJvcGVydHkgd2lsbCB0b2dnbGUgdGhlIG1lbnUncyBvcGVuIHN0YXRlIHZpYSB0aGUgTWFpbk1lbnVTZXJ2aWNlLlxuICAgKlxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHZhbHVlIC0gVGhlIG9wZW4gc3RhdGUgb2YgdGhlIG1lbnUuXG4gICAqL1xuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgcHVibGljIHNldCBpc09wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLm1haW5NZW51U2VydmljZS50b2dnbGUodmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgb3BlbiBzdGF0ZSBvZiB0aGUgbWVudSBmcm9tIHRoZSBNYWluTWVudVNlcnZpY2UuXG4gICAqXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgdGhlIG1lbnUgaXMgb3BlbiwgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5tYWluTWVudVNlcnZpY2UuaXNPcGVuKCk7XG4gIH1cblxuICAvKipcbiAgICogT3V0cHV0cyB0aGUgb2JzZXJ2YWJsZSB0aGF0IHRyYWNrcyB0aGUgb3BlbiBzdGF0ZSBvZiB0aGUgbWVudS5cbiAgICpcbiAgICogQGVtaXRzIHtib29sZWFufSBUaGUgb3BlbiBzdGF0ZSBvZiB0aGUgbWVudS5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgbWVudU9wZW4gPSB0aGlzLm1haW5NZW51U2VydmljZS5pc09wZW4kO1xuXG4gIEBWaWV3Q2hpbGQoJ21lbnVJbm5lcicpXG4gIHB1YmxpYyBtZW51SW5uZXIhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGZyb21FdmVudDxFdmVudD4odGhpcy5tZW51SW5uZXI/Lm5hdGl2ZUVsZW1lbnQsICd0b2dnbGUnKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoZSkgPT4gJ25ld1N0YXRlJyBpbiBlICYmIHRoaXMubWFpbk1lbnVTZXJ2aWNlLnRvZ2dsZShlLm5ld1N0YXRlID09PSAnb3BlbicpKSxcbiAgICAgICAgdGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG1lbnUuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5dXAuZXNjJylcbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMubWFpbk1lbnVTZXJ2aWNlLmNsb3NlKCk7XG4gIH1cblxuICBwcml2YXRlIHNsaWRlTWVudUlubmVyKGlzT3BlbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgY29uc3QgeyBuYXRpdmVFbGVtZW50IH0gPSB0aGlzLm1lbnVJbm5lciB8fCB7fTtcbiAgICBpZiAoIShuYXRpdmVFbGVtZW50ICYmIHRoaXMuaXNQb3BvdmVyRWxlbWVudChuYXRpdmVFbGVtZW50KSkpIHJldHVybjtcbiAgICBjb25zdCBtZXRob2QgPSBpc09wZW4gPyAnc2hvd1BvcG92ZXInIDogJ2hpZGVQb3BvdmVyJztcbiAgICBuYXRpdmVFbGVtZW50W21ldGhvZF0oKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNQb3BvdmVyRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGVsZW1lbnQgaXMgSFRNTEVsZW1lbnQgJiB7IHNob3dQb3BvdmVyOiAoKSA9PiB2b2lkOyBoaWRlUG9wb3ZlcjogKCkgPT4gdm9pZCB9IHtcbiAgICByZXR1cm4gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3BvcG92ZXInKSAmJiAnc2hvd1BvcG92ZXInIGluIGVsZW1lbnQgJiYgJ2hpZGVQb3BvdmVyJyBpbiBlbGVtZW50O1xuICB9XG59XG4iLCI8YXNpZGUgY2xhc3M9XCJvZHgtbWFpbi1tZW51X19pbm5lclwiIFtuZ0NsYXNzXT1cIihpc09wZW4kIHwgYXN5bmMpID8gJ29wZW5lZCcgOiAnY2xvc2VkJ1wiICNtZW51SW5uZXIgcG9wb3Zlcj1cImF1dG9cIiBjZGtUcmFwRm9jdXMgY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmU+XG4gIDxkaXYgY2xhc3M9XCJvZHgtbWFpbi1tZW51X19hY3Rpb25zXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm9keC1tYWluLW1lbnVfX2Nsb3NlXCIgb2R4QnV0dG9uIGRpc2FibGVkPVwiZmFsc2VcIiAoY2xpY2spPVwiY2xvc2UoKVwiPjxvZHgtaWNvbiBuYW1lPVwiY2xvc2VcIiBpY29uU2V0PVwiY29yZVwiIC8+PC9idXR0b24+XG4gIDwvZGl2PlxuICA8b2R4LWFyZWEtaGVhZGVyIGNsYXNzPVwib2R4LW1haW4tbWVudV9faGVhZGVyXCIgc2l6ZT1cImxhcmdlXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJ0aXRsZVwiIC8+XG4gICAgQGlmIChzdWJ0aXRsZSkge1xuICAgICAgPG9keC1hcmVhLWhlYWRlci1zdWJ0aXRsZT5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJzdWJ0aXRsZVwiIC8+XG4gICAgICA8L29keC1hcmVhLWhlYWRlci1zdWJ0aXRsZT5cbiAgICB9XG4gIDwvb2R4LWFyZWEtaGVhZGVyPlxuICA8bmF2IGNsYXNzPVwib2R4LW1haW4tbWVudV9fY29udGVudFwiPlxuICAgIDxuZy1jb250ZW50IC8+XG4gIDwvbmF2PlxuICA8ZGl2IGNsYXNzPVwib2R4LW1haW4tbWVudV9faW5mb1wiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvZHhMaW5rXVwiIC8+XG4gICAgQGZvciAobGluayBvZiBtYWluTWVudUxpbmtzJCB8IGFzeW5jOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxhIG9keExpbmsgW2hyZWZdPVwibGluay51cmxcIiB0YXJnZXQ9XCJfYmxhbmtcIj5cbiAgICAgICAge3sgbGluay5uYW1lIHwgb2R4VHJhbnNsYXRlIHwgYXN5bmMgfX1cbiAgICAgIDwvYT5cbiAgICB9XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwib2R4LW1haW4tbWVudV9fZm9vdGVyXCI+XG4gICAgPG9keC1sb2dvIHZhcmlhbnQ9XCJpbnZlcnNlXCIgLz5cbiAgICBAaWYgKGNvcHlyaWdodCkge1xuICAgICAgPHAgY2xhc3M9XCJvZHgtdGV4dCBvZHgtdGV4dC0tc21hbGxcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJjb3B5cmlnaHRcIiAvPlxuICAgICAgPC9wPlxuICAgIH1cbiAgPC9kaXY+XG48L2FzaWRlPlxuIl19
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL21haW4tbWVudS9zcmMvbGliL21haW4tbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9tYWluLW1lbnUvc3JjL2xpYi9tYWluLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFzQixvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0s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QUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixDQUFDLGFBQzNJLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxjQUMxQyxJQUFJLFFBQ1YsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUU7OEJBZ0I5QixLQUFLO3NCQURYLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQVVsQixRQUFRO3NCQURkLEtBQUs7Z0JBVUMsU0FBUztzQkFEZixLQUFLO2dCQVVLLE1BQU07c0JBRGhCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBb0IvQixRQUFRO3NCQURkLE1BQU07Z0JBSUEsU0FBUztzQkFEZixTQUFTO3VCQUFDLFdBQVc7Z0JBZ0JmLEtBQUs7c0JBRFgsWUFBWTt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRHluYW1pY1RleHRDb250ZW50LCBEeW5hbWljVmlld0RpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3JztcbmltcG9ydCB7IEFyZWFIZWFkZXJNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9hcmVhLWhlYWRlcic7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgTGlua0RpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2xpbmsnO1xuaW1wb3J0IHsgTG9nb0RpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2xvZ28nO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUsIHByb3ZpZGVUcmFuc2xhdGlvbnMgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwvdHJhbnNsYXRlJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQsIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGZyb21FdmVudCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjcmVhdGVNYWluTWVudUxpbmtzJCB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgbWFpbk1lbnVUcmFuc2xhdGlvbnMgZnJvbSAnLi9tYWluLW1lbnUuaTE4bic7XG5pbXBvcnQgeyBNYWluTWVudVNlcnZpY2UgfSBmcm9tICcuL21haW4tbWVudS5zZXJ2aWNlJztcblxuLyoqXG4gKiBUaGUgYE1haW5NZW51Q29tcG9uZW50YCBwcm92aWRlcyBhIGNvbXByZWhlbnNpdmUgdXNlciBpbnRlcmZhY2UgY29tcG9uZW50IGZvciBkaXNwbGF5aW5nIGEgbmF2aWdhdGlvbiBtZW51IHdpdGhpbiBhbiBhcHBsaWNhdGlvbi5cbiAqIEl0IHN1cHBvcnRzIGR5bmFtaWMgY29udGVudCBmb3IgdGl0bGVzLCBzdWJ0aXRsZXMsIGFuZCBjb3B5cmlnaHQgdGV4dCwgYW5kIGNhbiBkeW5hbWljYWxseSByZW5kZXIgYWRkaXRpb25hbCBsaW5rcy5cbiAqIFRoZSBtZW51IGluY2x1ZGVzIGFuaW1hdGlvbnMgZm9yIG9wZW5pbmcgYW5kIGNsb3Npbmcgc3RhdGVzLCBhbmQgY2FuIGJlIGNvbnRyb2xsZWQgcHJvZ3JhbW1hdGljYWxseSBvciB2aWEgdXNlciBpbnRlcmFjdGlvbi5cbiAqL1xuQENTU0NvbXBvbmVudCgnbWFpbi1tZW51JylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC1tYWluLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFpbi1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGltcG9ydHM6IFtBMTF5TW9kdWxlLCBDb3JlTW9kdWxlLCBBcmVhSGVhZGVyTW9kdWxlLCBCdXR0b25Db21wb25lbnQsIEljb25Db21wb25lbnQsIExvZ29EaXJlY3RpdmUsIFRyYW5zbGF0ZVBpcGUsIExpbmtEaXJlY3RpdmUsIER5bmFtaWNWaWV3RGlyZWN0aXZlXSxcbiAgcHJvdmlkZXJzOiBbcHJvdmlkZVRyYW5zbGF0aW9ucyhtYWluTWVudVRyYW5zbGF0aW9ucyldLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7ICdbY2xhc3MuaXMtb3Blbl0nOiAnaXNPcGVuJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBNYWluTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IHRha2VVbnRpbERlc3Ryb3llZCA9IHVudGlsRGVzdHJveWVkKCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBtYWluTWVudVNlcnZpY2UgPSBpbmplY3QoTWFpbk1lbnVTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1haW5NZW51TGlua3MkID0gY3JlYXRlTWFpbk1lbnVMaW5rcyQoKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzT3BlbiQgPSB0aGlzLm1haW5NZW51U2VydmljZS5pc09wZW4kLnBpcGUodGFwKChpc09wZW46IGJvb2xlYW4pID0+IHRoaXMuc2xpZGVNZW51SW5uZXIoaXNPcGVuKSkpO1xuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQoKTtcblxuICAvKipcbiAgICogSW5wdXQgcHJvcGVydHkgZm9yIHRoZSB0aXRsZSBvZiB0aGUgbWVudS4gVGhlIGNvbnRlbnQgaXMgZHluYW1pYywgYWxsb3dpbmcgY29tcGxleCBjb250ZW50IHN0cnVjdHVyZXNcbiAgICogbGlrZSB0cmFuc2xhdGlvbnMgb3IgY3VzdG9tIGNvbXBvbmVudHMuXG4gICAqXG4gICAqIEB0eXBlIHtEeW5hbWljVGV4dENvbnRlbnR9XG4gICAqL1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBwdWJsaWMgdGl0bGUhOiBEeW5hbWljVGV4dENvbnRlbnQ7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIGlucHV0IHByb3BlcnR5IGZvciB0aGUgc3VidGl0bGUgb2YgdGhlIG1lbnUuXG4gICAqXG4gICAqIEB0eXBlIHtEeW5hbWljVGV4dENvbnRlbnQgfCBudWxsfVxuICAgKiBAZGVmYXVsdCBudWxsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc3VidGl0bGU/OiBEeW5hbWljVGV4dENvbnRlbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogT3B0aW9uYWwgaW5wdXQgcHJvcGVydHkgZm9yIHRoZSBjb3B5cmlnaHQgdGV4dCBvZiB0aGUgbWVudS5cbiAgICpcbiAgICogQHR5cGUge0R5bmFtaWNUZXh0Q29udGVudCB8IG51bGx9XG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjb3B5cmlnaHQ/OiBEeW5hbWljVGV4dENvbnRlbnQgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogSW5wdXQgcHJvcGVydHkgdG8gY29udHJvbCB0aGUgb3BlbiBzdGF0ZSBvZiB0aGUgbWVudS4gVXNlcyBib29sZWFuIHRyYW5zZm9ybWF0aW9uIHRvIGhhbmRsZSB0cnVlL2ZhbHNlIHN0YXRlcy5cbiAgICogQ2hhbmdpbmcgdGhpcyBwcm9wZXJ0eSB3aWxsIHRvZ2dsZSB0aGUgbWVudSdzIG9wZW4gc3RhdGUgdmlhIHRoZSBNYWluTWVudVNlcnZpY2UuXG4gICAqXG4gICAqIEBwYXJhbSB7Ym9vbGVhbn0gdmFsdWUgLSBUaGUgb3BlbiBzdGF0ZSBvZiB0aGUgbWVudS5cbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgc2V0IGlzT3Blbih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMubWFpbk1lbnVTZXJ2aWNlLnRvZ2dsZSh2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCBvcGVuIHN0YXRlIG9mIHRoZSBtZW51IGZyb20gdGhlIE1haW5NZW51U2VydmljZS5cbiAgICpcbiAgICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgbWVudSBpcyBvcGVuLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICovXG4gIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1haW5NZW51U2VydmljZS5pc09wZW4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPdXRwdXRzIHRoZSBvYnNlcnZhYmxlIHRoYXQgdHJhY2tzIHRoZSBvcGVuIHN0YXRlIG9mIHRoZSBtZW51LlxuICAgKlxuICAgKiBAZW1pdHMge2Jvb2xlYW59IFRoZSBvcGVuIHN0YXRlIG9mIHRoZSBtZW51LlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBtZW51T3BlbiA9IHRoaXMubWFpbk1lbnVTZXJ2aWNlLmlzT3BlbiQ7XG5cbiAgQFZpZXdDaGlsZCgnbWVudUlubmVyJylcbiAgcHVibGljIG1lbnVJbm5lciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgZnJvbUV2ZW50PEV2ZW50Pih0aGlzLm1lbnVJbm5lcj8ubmF0aXZlRWxlbWVudCwgJ3RvZ2dsZScpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKChlKSA9PiAnbmV3U3RhdGUnIGluIGUgJiYgdGhpcy5tYWluTWVudVNlcnZpY2UudG9nZ2xlKGUubmV3U3RhdGUgPT09ICdvcGVuJykpLFxuICAgICAgICB0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgbWVudS5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXl1cC5lc2MnKVxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5tYWluTWVudVNlcnZpY2UuY2xvc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2xpZGVNZW51SW5uZXIoaXNPcGVuID0gZmFsc2UpOiB2b2lkIHtcbiAgICBjb25zdCBuYXRpdmVFbGVtZW50ID0gdGhpcy5tZW51SW5uZXI/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFuYXRpdmVFbGVtZW50Py5pc0Nvbm5lY3RlZCkgcmV0dXJuO1xuXG4gICAgKGlzT3BlbiA/IG5hdGl2ZUVsZW1lbnQuc2hvd1BvcG92ZXIgOiBuYXRpdmVFbGVtZW50LmhpZGVQb3BvdmVyKT8uKCk7XG4gIH1cbn1cbiIsIjxhc2lkZSBjbGFzcz1cIm9keC1tYWluLW1lbnVfX2lubmVyXCIgW25nQ2xhc3NdPVwiKGlzT3BlbiQgfCBhc3luYykgPyAnb3BlbmVkJyA6ICdjbG9zZWQnXCIgI21lbnVJbm5lciBwb3BvdmVyPVwiYXV0b1wiIGNka1RyYXBGb2N1cyBjZGtUcmFwRm9jdXNBdXRvQ2FwdHVyZT5cbiAgPGRpdiBjbGFzcz1cIm9keC1tYWluLW1lbnVfX2FjdGlvbnNcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwib2R4LW1haW4tbWVudV9fY2xvc2VcIiBvZHhCdXR0b24gZGlzYWJsZWQ9XCJmYWxzZVwiIChjbGljayk9XCJjbG9zZSgpXCI+PG9keC1pY29uIG5hbWU9XCJjbG9zZVwiIGljb25TZXQ9XCJjb3JlXCIgLz48L2J1dHRvbj5cbiAgPC9kaXY+XG4gIDxvZHgtYXJlYS1oZWFkZXIgY2xhc3M9XCJvZHgtbWFpbi1tZW51X19oZWFkZXJcIiBzaXplPVwibGFyZ2VcIj5cbiAgICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cInRpdGxlXCIgLz5cbiAgICBAaWYgKHN1YnRpdGxlKSB7XG4gICAgICA8b2R4LWFyZWEtaGVhZGVyLXN1YnRpdGxlPlxuICAgICAgICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cInN1YnRpdGxlXCIgLz5cbiAgICAgIDwvb2R4LWFyZWEtaGVhZGVyLXN1YnRpdGxlPlxuICAgIH1cbiAgPC9vZHgtYXJlYS1oZWFkZXI+XG4gIDxuYXYgY2xhc3M9XCJvZHgtbWFpbi1tZW51X19jb250ZW50XCI+XG4gICAgPG5nLWNvbnRlbnQgLz5cbiAgPC9uYXY+XG4gIDxkaXYgY2xhc3M9XCJvZHgtbWFpbi1tZW51X19pbmZvXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW29keExpbmtdXCIgLz5cbiAgICBAZm9yIChsaW5rIG9mIG1haW5NZW51TGlua3MkIHwgYXN5bmM7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGEgb2R4TGluayBbaHJlZl09XCJsaW5rLnVybFwiIHRhcmdldD1cIl9ibGFua1wiPlxuICAgICAgICB7eyBsaW5rLm5hbWUgfCBvZHhUcmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgPC9hPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJvZHgtbWFpbi1tZW51X19mb290ZXJcIj5cbiAgICA8b2R4LWxvZ28gdmFyaWFudD1cImludmVyc2VcIiAvPlxuICAgIEBpZiAoY29weXJpZ2h0KSB7XG4gICAgICA8cCBjbGFzcz1cIm9keC10ZXh0IG9keC10ZXh0LS1zbWFsbFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cImNvcHlyaWdodFwiIC8+XG4gICAgICA8L3A+XG4gICAgfVxuICA8L2Rpdj5cbjwvYXNpZGU+XG4iXX0=
|
|
@@ -3,9 +3,6 @@ import { ChangeDetectionStrategy, Component, HostListener, Injector, Input, View
|
|
|
3
3
|
import { CoreModule, detectControllerChanges } from '@odx/angular';
|
|
4
4
|
import { A11yModule } from '@odx/angular/cdk/a11y';
|
|
5
5
|
import { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';
|
|
6
|
-
import { ActionGroupComponent } from '@odx/angular/components/action-group';
|
|
7
|
-
import { ButtonComponent } from '@odx/angular/components/button';
|
|
8
|
-
import { IconComponent } from '@odx/angular/components/icon';
|
|
9
6
|
import { CSSComponent, CSSModifier } from '@odx/angular/internal';
|
|
10
7
|
import { hasChanged, injectElement, isTemplateRef } from '@odx/angular/utils';
|
|
11
8
|
import { injectModalRef } from './helpers';
|
|
@@ -55,11 +52,12 @@ let ModalComponent = class ModalComponent {
|
|
|
55
52
|
this.modalRef.options.dismissable && this.modalRef.destroy();
|
|
56
53
|
}
|
|
57
54
|
}
|
|
58
|
-
handleDialogClose() {
|
|
59
|
-
this.
|
|
55
|
+
handleDialogClose({ target }) {
|
|
56
|
+
if (target === this.element.nativeElement)
|
|
57
|
+
this.modalRef.dismiss();
|
|
60
58
|
}
|
|
61
59
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ModalComponent, isStandalone: true, selector: "dialog[odx-dialog-modal]", inputs: { content: "content" }, host: { listeners: { "keydown": "preventNativeDismiss($event)", "cancel": "handleDialogClose()", "close": "handleDialogClose()" }, properties: { "attr.id": "modalRef.options.id", "attr.aria-labelledby": "modalRef.modalTitleId", "attr.role": "\"dialog\"" } }, usesOnChanges: true, ngImport: i0, template: "<div\n [odxClickOutsideActive]=\"modalRef.isActive() && modalRef.options.dismissable && modalRef.options.interactiveBackdrop\"\n (odxClickOutside)=\"modalRef.dismiss()\"\n class=\"odx-modal__container\"\n>\n <ng-template [odxDynamicView]=\"content\" [odxDynamicViewContext]=\"withComponent ? {} : context\" [odxDynamicViewInjector]=\"injector\" />\n</div>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.ClickOutsideDirective, selector: "[odxClickOutside]", inputs: ["odxClickOutsideActive"], outputs: ["odxClickOutside"] }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
60
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ModalComponent, isStandalone: true, selector: "dialog[odx-dialog-modal]", inputs: { content: "content" }, host: { listeners: { "keydown": "preventNativeDismiss($event)", "cancel": "handleDialogClose($event)", "close": "handleDialogClose($event)" }, properties: { "attr.id": "modalRef.options.id", "attr.aria-labelledby": "modalRef.modalTitleId", "attr.role": "\"dialog\"" } }, usesOnChanges: true, ngImport: i0, template: "<div\n [odxClickOutsideActive]=\"modalRef.isActive() && modalRef.options.dismissable && modalRef.options.interactiveBackdrop\"\n (odxClickOutside)=\"modalRef.dismiss()\"\n class=\"odx-modal__container\"\n>\n <ng-template [odxDynamicView]=\"content\" [odxDynamicViewContext]=\"withComponent ? {} : context\" [odxDynamicViewInjector]=\"injector\" />\n</div>\n", dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.ClickOutsideDirective, selector: "[odxClickOutside]", inputs: ["odxClickOutsideActive"], outputs: ["odxClickOutside"] }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
63
61
|
};
|
|
64
62
|
__decorate([
|
|
65
63
|
CSSModifier(),
|
|
@@ -80,7 +78,7 @@ ModalComponent = __decorate([
|
|
|
80
78
|
export { ModalComponent };
|
|
81
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ModalComponent, decorators: [{
|
|
82
80
|
type: Component,
|
|
83
|
-
args: [{ standalone: true, selector: 'dialog[odx-dialog-modal]', imports: [A11yModule,
|
|
81
|
+
args: [{ standalone: true, selector: 'dialog[odx-dialog-modal]', imports: [A11yModule, CoreModule, DynamicViewDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
84
82
|
'[attr.id]': 'modalRef.options.id',
|
|
85
83
|
'[attr.aria-labelledby]': 'modalRef.modalTitleId',
|
|
86
84
|
'[attr.role]': '"dialog"',
|
|
@@ -92,9 +90,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
92
90
|
args: ['keydown', ['$event']]
|
|
93
91
|
}], handleDialogClose: [{
|
|
94
92
|
type: HostListener,
|
|
95
|
-
args: ['cancel']
|
|
93
|
+
args: ['cancel', ['$event']]
|
|
96
94
|
}, {
|
|
97
95
|
type: HostListener,
|
|
98
|
-
args: ['close']
|
|
96
|
+
args: ['close', ['$event']]
|
|
99
97
|
}] } });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvbW9kYWwvc3JjL2xpYi9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9tb2RhbC9zcmMvbGliL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFhLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQXNDLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekcsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQWEsVUFBVSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFFM0M7OztHQUdHO0FBZ0JJLElBQU0sY0FBYyxHQUFwQixNQUFNLGNBQWM7SUF5Q3pCO1FBeENtQixhQUFRLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFDNUIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixZQUFPLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTFDLFlBQU8sR0FBRyxhQUFhLEVBQXFCLENBQUM7UUFFN0Q7Ozs7V0FJRztRQUVJLFNBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFFekM7Ozs7V0FJRztRQUVJLFlBQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFFL0M7Ozs7O1dBS0c7UUFFSSxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQVkzQix1QkFBdUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNwRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBa0M7UUFDbkQsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO0lBR1Msb0JBQW9CLENBQUMsS0FBb0I7UUFDakQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQztJQUlTLGlCQUFpQixDQUFDLEVBQUUsTUFBTSxFQUFpQjtRQUNuRCxJQUFJLE1BQU0sS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWE7WUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3JFLENBQUM7K0dBakVVLGNBQWM7bUdBQWQsY0FBYyx3WkMzQjNCLDJXQU9BLDJDRFdZLFVBQVUscUxBQUUsVUFBVSwrQkFBRSxvQkFBb0I7O0FBc0IvQztJQUROLFdBQVcsRUFBRTs7NENBQzJCO0FBUWxDO0lBRE4sV0FBVyxFQUFFOzsrQ0FDaUM7QUFTeEM7SUFETixXQUFXLEVBQUU7O3FEQUNlO0FBOUJsQixjQUFjO0lBZjFCLFlBQVksQ0FBQyxPQUFPLENBQUM7O0dBZVQsY0FBYyxDQWtFMUI7OzRGQWxFWSxjQUFjO2tCQWQxQixTQUFTO2lDQUNJLElBQUksWUFFTiwwQkFBMEIsV0FFM0IsQ0FBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLG9CQUFvQixDQUFDLG1CQUN0Qyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNKLFdBQVcsRUFBRSxxQkFBcUI7d0JBQ2xDLHdCQUF3QixFQUFFLHVCQUF1Qjt3QkFDakQsYUFBYSxFQUFFLFVBQVU7cUJBQzFCO3dEQWVNLElBQUksTUFRSixPQUFPLE1BU1AsYUFBYSxNQVNiLE9BQU87c0JBRGIsS0FBSztnQkFnQkksb0JBQW9CO3NCQUQ3QixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFVekIsaUJBQWlCO3NCQUYxQixZQUFZO3VCQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ2pDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgSW5wdXQsIE9uQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSwgZGV0ZWN0Q29udHJvbGxlckNoYW5nZXMgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBEeW5hbWljQ29udGVudCwgRHluYW1pY1RleHRDb250ZW50LCBEeW5hbWljVmlld0RpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvZHluYW1pYy12aWV3JztcbmltcG9ydCB7IENTU0NvbXBvbmVudCwgQ1NTTW9kaWZpZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgTmdDaGFuZ2VzLCBoYXNDaGFuZ2VkLCBpbmplY3RFbGVtZW50LCBpc1RlbXBsYXRlUmVmIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGluamVjdE1vZGFsUmVmIH0gZnJvbSAnLi9oZWxwZXJzJztcblxuLyoqXG4gKiBBIGNvbXBvbmVudCB0aGF0IHJlcHJlc2VudHMgYSBtb2RhbCBkaWFsb2cgd2l0aCBkeW5hbWljIGNvbnRlbnQgYW5kIGN1c3RvbWl6YWJsZSBhbmltYXRpb25zLlxuICogSXQgc3VwcG9ydHMgYm90aCBtb2RhbCBhbmQgc2lkZXNoZWV0IHZhcmlhbnRzIHdpdGggY29uZmlndXJhYmxlIGFuaW1hdGlvbnMgZm9yIGVhY2ggdHlwZS5cbiAqL1xuQENTU0NvbXBvbmVudCgnbW9kYWwnKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnZGlhbG9nW29keC1kaWFsb2ctbW9kYWxdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW0ExMXlNb2R1bGUsIENvcmVNb2R1bGUsIER5bmFtaWNWaWV3RGlyZWN0aXZlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuaWRdJzogJ21vZGFsUmVmLm9wdGlvbnMuaWQnLFxuICAgICdbYXR0ci5hcmlhLWxhYmVsbGVkYnldJzogJ21vZGFsUmVmLm1vZGFsVGl0bGVJZCcsXG4gICAgJ1thdHRyLnJvbGVdJzogJ1wiZGlhbG9nXCInLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIHByb3RlY3RlZCByZWFkb25seSBtb2RhbFJlZiA9IGluamVjdE1vZGFsUmVmKCk7XG4gIHByb3RlY3RlZCByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByb3RlY3RlZCByZWFkb25seSBjb250ZXh0ID0geyAkaW1wbGljaXQ6IHRoaXMubW9kYWxSZWYgfTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQ8SFRNTERpYWxvZ0VsZW1lbnQ+KCk7XG5cbiAgLyoqXG4gICAqIFNpemUgb2YgdGhlIG1vZGFsIGFzIGEgQ1NTIG1vZGlmaWVyIGJhc2VkIG9uIG1vZGFsIG9wdGlvbnMuXG4gICAqXG4gICAqIEB0eXBlIHtNb2RhbFNpemV9XG4gICAqL1xuICBAQ1NTTW9kaWZpZXIoKVxuICBwdWJsaWMgc2l6ZSA9IHRoaXMubW9kYWxSZWYub3B0aW9ucy5zaXplO1xuXG4gIC8qKlxuICAgKiBWYXJpYW50IG9mIHRoZSBtb2RhbCBhcyBhIENTUyBtb2RpZmllciB0aGF0IGluZmx1ZW5jZXMgYW5pbWF0aW9uIGNob2ljZXMuXG4gICAqXG4gICAqIEB0eXBlIHtNb2RhbFZhcmlhbnR9XG4gICAqL1xuICBAQ1NTTW9kaWZpZXIoKVxuICBwdWJsaWMgdmFyaWFudCA9IHRoaXMubW9kYWxSZWYub3B0aW9ucy52YXJpYW50O1xuXG4gIC8qKlxuICAgKiBCb29sZWFuIHRoYXQgaW5kaWNhdGVzIGlmIHRoZSBjb250ZW50IGlzIGEgY29tcG9uZW50IHR5cGUgcmF0aGVyIHRoYW4gYSB0ZW1wbGF0ZS5cbiAgICpcbiAgICogQHR5cGUge2Jvb2xlYW59XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBAQ1NTTW9kaWZpZXIoKVxuICBwdWJsaWMgd2l0aENvbXBvbmVudCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBEeW5hbWljIGNvbnRlbnQgdG8gYmUgbG9hZGVkIGludG8gdGhlIG1vZGFsLiBFeGNsdWRlcyBzaW1wbGUgdGV4dHVhbCBjb250ZW50XG4gICAqIHRvIGVuYWJsZSBjb21wbGV4IEFuZ3VsYXIgY29tcG9uZW50cyBvciB0ZW1wbGF0ZXMuXG4gICAqXG4gICAqIEB0eXBlIHtFeGNsdWRlPER5bmFtaWNDb250ZW50LCBEeW5hbWljVGV4dENvbnRlbnQ+fVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGNvbnRlbnQhOiBFeGNsdWRlPER5bmFtaWNDb250ZW50LCBEeW5hbWljVGV4dENvbnRlbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGRldGVjdENvbnRyb2xsZXJDaGFuZ2VzKHRoaXMubW9kYWxSZWYpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnNpemUgPSB0aGlzLm1vZGFsUmVmLm9wdGlvbnMuc2l6ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBOZ0NoYW5nZXM8TW9kYWxDb21wb25lbnQ+KTogdm9pZCB7XG4gICAgaWYgKGhhc0NoYW5nZWQoY2hhbmdlcywgJ2NvbnRlbnQnLCBmYWxzZSkpIHtcbiAgICAgIHRoaXMud2l0aENvbXBvbmVudCA9ICFpc1RlbXBsYXRlUmVmKHRoaXMuY29udGVudCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBwcmV2ZW50TmF0aXZlRGlzbWlzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgdGhpcy5tb2RhbFJlZi5vcHRpb25zLmRpc21pc3NhYmxlICYmIHRoaXMubW9kYWxSZWYuZGVzdHJveSgpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NhbmNlbCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2Nsb3NlJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIGhhbmRsZURpYWxvZ0Nsb3NlKHsgdGFyZ2V0IH06IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGFyZ2V0ID09PSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCkgdGhpcy5tb2RhbFJlZi5kaXNtaXNzKCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgW29keENsaWNrT3V0c2lkZUFjdGl2ZV09XCJtb2RhbFJlZi5pc0FjdGl2ZSgpICYmIG1vZGFsUmVmLm9wdGlvbnMuZGlzbWlzc2FibGUgJiYgbW9kYWxSZWYub3B0aW9ucy5pbnRlcmFjdGl2ZUJhY2tkcm9wXCJcbiAgKG9keENsaWNrT3V0c2lkZSk9XCJtb2RhbFJlZi5kaXNtaXNzKClcIlxuICBjbGFzcz1cIm9keC1tb2RhbF9fY29udGFpbmVyXCJcbj5cbiAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJjb250ZW50XCIgW29keER5bmFtaWNWaWV3Q29udGV4dF09XCJ3aXRoQ29tcG9uZW50ID8ge30gOiBjb250ZXh0XCIgW29keER5bmFtaWNWaWV3SW5qZWN0b3JdPVwiaW5qZWN0b3JcIiAvPlxuPC9kaXY+XG4iXX0=
|
package/esm2022/components/toast/lib/components/toast-container/toast-container.component.mjs
CHANGED
|
@@ -68,10 +68,11 @@ let ToastContainerComponent = class ToastContainerComponent {
|
|
|
68
68
|
this.toastService.dismiss(itemRef);
|
|
69
69
|
}
|
|
70
70
|
updatePopverPosition() {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
const el = this.element?.nativeElement;
|
|
72
|
+
if (!el?.isConnected)
|
|
73
|
+
return;
|
|
74
|
+
el.hidePopover?.();
|
|
75
|
+
deferFn(() => el.showPopover?.());
|
|
75
76
|
}
|
|
76
77
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToastContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
77
78
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ToastContainerComponent, isStandalone: true, selector: "odx-toast-container", inputs: { maxItems: ["maxItems", "maxItems", numberAttribute] }, outputs: { dismiss: "dismiss" }, ngImport: i0, template: "@for (toastRef of items$ | async; track toastRef.id) {\n <odx-toast\n @slide\n [id]=\"toastRef.id\"\n [title]=\"toastRef.item.title\"\n [description]=\"toastRef.item.description\"\n [descriptionContext]=\"toastRef.item.descriptionContext\"\n [actions]=\"toastRef.item.actions ?? []\"\n [variant]=\"toastRef.item.variant\"\n [options]=\"toastRef.options\"\n (dismiss)=\"onDismiss(toastRef)\"\n />\n}\n@if (hiddenToasts$ | async; as more) {\n <odx-chip class=\"odx-toast-container__counter\">{{ more }} more Notifications</odx-chip>\n}\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: ChipComponent, selector: "odx-chip", inputs: ["removable", "size", "variant"], outputs: ["remove"] }, { kind: "component", type: ToastItemComponent, selector: "odx-toast", inputs: ["id", "title", "description", "descriptionContext", "variant", "actions", "options"], outputs: ["dismiss"] }], animations: [
|
|
@@ -107,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
107
108
|
}], dismiss: [{
|
|
108
109
|
type: Output
|
|
109
110
|
}] } });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1jb250YWluZXIvdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1jb250YWluZXIvdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxP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QUM7Z0NBQ3BFLFlBQVksQ0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxDQUFDOzZCQUN6RSxDQUFDLENBQ0g7NEJBQ0QsVUFBVSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUN0RCxDQUFDO3FCQUNIOzhCQXFCTSxRQUFRO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQVNyQixPQUFPO3NCQUR0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ3JvdXAsIHRyYW5zaXRpb24sIHRyaWdnZXIsIHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5qZWN0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgV2luZG93UmVmIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IGNvbGxhcHNlLCBleHBhbmQsIGZhZGVJbiwgc2xpZGVJblJpZ2h0IH0gZnJvbSAnQG9keC9hbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ2hpcENvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2NoaXAnO1xuaW1wb3J0IHsgSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaGVhZGVyJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBkZWZlckZuLCBpbmplY3RFbGVtZW50LCBweCwgc2V0QXR0cmlidXRlIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9hc3RSZWYgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi90b2FzdC1pdGVtL3RvYXN0LWl0ZW0uY29tcG9uZW50JztcblxuY29uc3QgVE9BU1RfQU5JTUFUSU9OX0RFTEFZID0gJzEyNW1zJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY29udGFpbmVyIGNvbXBvbmVudCBmb3IgZGlzcGxheWluZyB0b2FzdCBub3RpZmljYXRpb25zLiBUaGlzIGNvbXBvbmVudCBtYW5hZ2VzIGFuZCBhcnJhbmdlcyB0b2FzdCBtZXNzYWdlcyxcbiAqIGhhbmRsaW5nIGFuaW1hdGlvbnMgZm9yIGVudGVyaW5nIGFuZCBsZWF2aW5nIHRvYXN0cy4gSXQgZW5zdXJlcyB0aGF0IG9ubHkgYSBsaW1pdGVkIG51bWJlciBvZiB0b2FzdHMgYXJlIHNob3duIGF0IHRoZSBzYW1lIHRpbWUsXG4gKiBiYXNlZCBvbiB0aGUgYG1heEl0ZW1zYCBpbnB1dC4gVGhlIGNvbnRhaW5lciBsaXN0ZW5zIGZvciB0b2FzdCBldmVudHMgZnJvbSB0aGUgYFRvYXN0U2VydmljZWAgdG8gdXBkYXRlIGl0cyBsaXN0IG9mIHRvYXN0cyBkeW5hbWljYWxseS5cbiAqXG4gKiBUaGUgY29tcG9uZW50IHVzZXMgYSBncm91cCBvZiBhbmltYXRpb25zIHRvIHNsaWRlIHRvYXN0cyBpbiBhbmQgb3V0IHNtb290aGx5IGFuZCBhbHNvIHByb3ZpZGVzIGFuIG91dHB1dCBmb3Igd2hlbiBhIHRvYXN0IGlzIGRpc21pc3NlZC5cbiAqIEl0J3MgZGVzaWduZWQgdG8gaW50ZWdyYXRlIHdpdGggYSBzaW5nbGUgaW5zdGFuY2UgcGVyIGFwcGxpY2F0aW9uLCBlbnN1cmluZyBubyBtb3JlIHRoYW4gb25lIHRvYXN0IGNvbnRhaW5lciBpcyBpbml0aWFsaXplZC5cbiAqL1xuQENTU0NvbXBvbmVudCgndG9hc3QtY29udGFpbmVyJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC10b2FzdC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENoaXBDb21wb25lbnQsIFRvYXN0SXRlbUNvbXBvbmVudF0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdzbGlkZScsIFtcbiAgICAgIHRyYW5zaXRpb24oXG4gICAgICAgICc6ZW50ZXInLFxuICAgICAgICBncm91cChbXG4gICAgICAgICAgdXNlQW5pbWF0aW9uKGV4cGFuZCksXG4gICAgICAgICAgdXNlQW5pbWF0aW9uKGZhZGVJbigpLCB7IHBhcmFtczogeyBkZWxheTogVE9BU1RfQU5JTUFUSU9OX0RFTEFZIH0gfSksXG4gICAgICAgICAgdXNlQW5pbWF0aW9uKHNsaWRlSW5SaWdodCwgeyBwYXJhbXM6IHsgZGVsYXk6IFRPQVNUX0FOSU1BVElPTl9ERUxBWSB9IH0pLFxuICAgICAgICBdKSxcbiAgICAgICksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBncm91cChbdXNlQW5pbWF0aW9uKGNvbGxhcHNlKV0pKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN0YXRpYyBJTklUSUFMSVpFRCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dSZWYgPSBpbmplY3QoV2luZG93UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuICBwdWJsaWMgcmVhZG9ubHkgaXRlbXMkOiBPYnNlcnZhYmxlPFRvYXN0UmVmW10+ID0gdGhpcy50b2FzdFNlcnZpY2UudG9hc3RzJC5waXBlKG1hcCgocmVmcykgPT4gcmVmcy5zbGljZSgwLCB0aGlzLm1heEl0ZW1zKSkpO1xuICBwdWJsaWMgcmVhZG9ubHkgaGlkZGVuVG9hc3RzJDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gdGhpcy50b2FzdFNlcnZpY2UudG9hc3RzJC5waXBlKG1hcCgocmVmcykgPT4gTWF0aC5tYXgoMCwgcmVmcy5sZW5ndGggLSB0aGlzLm1heEl0ZW1zKSkpO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiB0b2FzdHMgdGhhdCBjYW4gYmUgZGlzcGxheWVkIGF0IG9uY2UuXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBtYXhJdGVtcyA9IDM7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gYSB0b2FzdCBpcyBkaXNtaXNzZWQuXG4gICAqXG4gICAqIEBlbWl0cyB7VG9hc3RSZWZ9IC0gVGhlIHRvYXN0IHJlZmVyZW5jZSB0aGF0IHdhcyBkaXNtaXNzZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGRpc21pc3MgPSB0aGlzLnRvYXN0U2VydmljZS5vblRvYXN0UmVtb3ZlJDtcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3BvcG92ZXInLCAnbWFudWFsJyk7XG4gICAgaWYgKFRvYXN0Q29udGFpbmVyQ29tcG9uZW50LklOSVRJQUxJWkVEKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgb25lIHRvYXN0IGNvbnRhaW5lciBwZXIgYXBwbGljYXRpb24gYWxsb3dlZCcpO1xuICAgIH1cbiAgICBUb2FzdENvbnRhaW5lckNvbXBvbmVudC5JTklUSUFMSVpFRCA9IHRydWU7XG4gICAgY29uc3QgaGVhZGVyRWxlbWVudCA9IHRoaXMud2luZG93UmVmLnF1ZXJ5QnlDb21wb25lbnQoSGVhZGVyQ29tcG9uZW50KTtcbiAgICBpZiAoaGVhZGVyRWxlbWVudCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3RvcCcsIHB4KGhlYWRlckVsZW1lbnQub2Zmc2V0SGVpZ2h0KSk7XG4gICAgfVxuICAgIHRoaXMuaXRlbXMkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwZGF0ZVBvcHZlclBvc2l0aW9uKCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIFRvYXN0Q29udGFpbmVyQ29tcG9uZW50LklOSVRJQUxJWkVEID0gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25EaXNtaXNzKGl0ZW1SZWY6IFRvYXN0UmVmKTogdm9pZCB7XG4gICAgdGhpcy50b2FzdFNlcnZpY2UuZGlzbWlzcyhpdGVtUmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUG9wdmVyUG9zaXRpb24oKTogdm9pZCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICAodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgYW55KT8uaGlkZVBvcG92ZXI/LigpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgZGVmZXJGbigoKSA9PiAodGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgYW55KT8uc2hvd1BvcG92ZXI/LigpKTtcbiAgfVxufVxuIiwiQGZvciAodG9hc3RSZWYgb2YgaXRlbXMkIHwgYXN5bmM7IHRyYWNrIHRvYXN0UmVmLmlkKSB7XG4gIDxvZHgtdG9hc3RcbiAgICBAc2xpZGVcbiAgICBbaWRdPVwidG9hc3RSZWYuaWRcIlxuICAgIFt0aXRsZV09XCJ0b2FzdFJlZi5pdGVtLnRpdGxlXCJcbiAgICBbZGVzY3JpcHRpb25dPVwidG9hc3RSZWYuaXRlbS5kZXNjcmlwdGlvblwiXG4gICAgW2Rlc2NyaXB0aW9uQ29udGV4dF09XCJ0b2FzdFJlZi5pdGVtLmRlc2NyaXB0aW9uQ29udGV4dFwiXG4gICAgW2FjdGlvbnNdPVwidG9hc3RSZWYuaXRlbS5hY3Rpb25zID8/IFtdXCJcbiAgICBbdmFyaWFudF09XCJ0b2FzdFJlZi5pdGVtLnZhcmlhbnRcIlxuICAgIFtvcHRpb25zXT1cInRvYXN0UmVmLm9wdGlvbnNcIlxuICAgIChkaXNtaXNzKT1cIm9uRGlzbWlzcyh0b2FzdFJlZilcIlxuICAvPlxufVxuQGlmIChoaWRkZW5Ub2FzdHMkIHwgYXN5bmM7IGFzIG1vcmUpIHtcbiAgPG9keC1jaGlwIGNsYXNzPVwib2R4LXRvYXN0LWNvbnRhaW5lcl9fY291bnRlclwiPnt7IG1vcmUgfX0gbW9yZSBOb3RpZmljYXRpb25zPC9vZHgtY2hpcD5cbn1cbiJdfQ==
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1jb250YWluZXIvdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RvYXN0L3NyYy9saWIvY29tcG9uZW50cy90b2FzdC1jb250YWluZXIvdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixlQUFlLEdBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxP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RUFBRSxxQkFBcUIsRUFBRSxFQUFFLENBQUM7Z0NBQ3BFLFlBQVksQ0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsRUFBRSxDQUFDOzZCQUN6RSxDQUFDLENBQ0g7NEJBQ0QsVUFBVSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO3lCQUN0RCxDQUFDO3FCQUNIOzhCQXFCTSxRQUFRO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQVNyQixPQUFPO3NCQUR0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ3JvdXAsIHRyYW5zaXRpb24sIHRyaWdnZXIsIHVzZUFuaW1hdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5qZWN0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgV2luZG93UmVmIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IGNvbGxhcHNlLCBleHBhbmQsIGZhZGVJbiwgc2xpZGVJblJpZ2h0IH0gZnJvbSAnQG9keC9hbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgQ2hpcENvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2NoaXAnO1xuaW1wb3J0IHsgSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaGVhZGVyJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBkZWZlckZuLCBpbmplY3RFbGVtZW50LCBweCwgc2V0QXR0cmlidXRlIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9hc3RSZWYgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdG9hc3Quc2VydmljZSc7XG5pbXBvcnQgeyBUb2FzdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi90b2FzdC1pdGVtL3RvYXN0LWl0ZW0uY29tcG9uZW50JztcblxuY29uc3QgVE9BU1RfQU5JTUFUSU9OX0RFTEFZID0gJzEyNW1zJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgY29udGFpbmVyIGNvbXBvbmVudCBmb3IgZGlzcGxheWluZyB0b2FzdCBub3RpZmljYXRpb25zLiBUaGlzIGNvbXBvbmVudCBtYW5hZ2VzIGFuZCBhcnJhbmdlcyB0b2FzdCBtZXNzYWdlcyxcbiAqIGhhbmRsaW5nIGFuaW1hdGlvbnMgZm9yIGVudGVyaW5nIGFuZCBsZWF2aW5nIHRvYXN0cy4gSXQgZW5zdXJlcyB0aGF0IG9ubHkgYSBsaW1pdGVkIG51bWJlciBvZiB0b2FzdHMgYXJlIHNob3duIGF0IHRoZSBzYW1lIHRpbWUsXG4gKiBiYXNlZCBvbiB0aGUgYG1heEl0ZW1zYCBpbnB1dC4gVGhlIGNvbnRhaW5lciBsaXN0ZW5zIGZvciB0b2FzdCBldmVudHMgZnJvbSB0aGUgYFRvYXN0U2VydmljZWAgdG8gdXBkYXRlIGl0cyBsaXN0IG9mIHRvYXN0cyBkeW5hbWljYWxseS5cbiAqXG4gKiBUaGUgY29tcG9uZW50IHVzZXMgYSBncm91cCBvZiBhbmltYXRpb25zIHRvIHNsaWRlIHRvYXN0cyBpbiBhbmQgb3V0IHNtb290aGx5IGFuZCBhbHNvIHByb3ZpZGVzIGFuIG91dHB1dCBmb3Igd2hlbiBhIHRvYXN0IGlzIGRpc21pc3NlZC5cbiAqIEl0J3MgZGVzaWduZWQgdG8gaW50ZWdyYXRlIHdpdGggYSBzaW5nbGUgaW5zdGFuY2UgcGVyIGFwcGxpY2F0aW9uLCBlbnN1cmluZyBubyBtb3JlIHRoYW4gb25lIHRvYXN0IGNvbnRhaW5lciBpcyBpbml0aWFsaXplZC5cbiAqL1xuQENTU0NvbXBvbmVudCgndG9hc3QtY29udGFpbmVyJylcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29keC10b2FzdC1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENoaXBDb21wb25lbnQsIFRvYXN0SXRlbUNvbXBvbmVudF0sXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdzbGlkZScsIFtcbiAgICAgIHRyYW5zaXRpb24oXG4gICAgICAgICc6ZW50ZXInLFxuICAgICAgICBncm91cChbXG4gICAgICAgICAgdXNlQW5pbWF0aW9uKGV4cGFuZCksXG4gICAgICAgICAgdXNlQW5pbWF0aW9uKGZhZGVJbigpLCB7IHBhcmFtczogeyBkZWxheTogVE9BU1RfQU5JTUFUSU9OX0RFTEFZIH0gfSksXG4gICAgICAgICAgdXNlQW5pbWF0aW9uKHNsaWRlSW5SaWdodCwgeyBwYXJhbXM6IHsgZGVsYXk6IFRPQVNUX0FOSU1BVElPTl9ERUxBWSB9IH0pLFxuICAgICAgICBdKSxcbiAgICAgICksXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBncm91cChbdXNlQW5pbWF0aW9uKGNvbGxhcHNlKV0pKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN0YXRpYyBJTklUSUFMSVpFRCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSB3aW5kb3dSZWYgPSBpbmplY3QoV2luZG93UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRvYXN0U2VydmljZSA9IGluamVjdChUb2FzdFNlcnZpY2UpO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuICBwdWJsaWMgcmVhZG9ubHkgaXRlbXMkOiBPYnNlcnZhYmxlPFRvYXN0UmVmW10+ID0gdGhpcy50b2FzdFNlcnZpY2UudG9hc3RzJC5waXBlKG1hcCgocmVmcykgPT4gcmVmcy5zbGljZSgwLCB0aGlzLm1heEl0ZW1zKSkpO1xuICBwdWJsaWMgcmVhZG9ubHkgaGlkZGVuVG9hc3RzJDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gdGhpcy50b2FzdFNlcnZpY2UudG9hc3RzJC5waXBlKG1hcCgocmVmcykgPT4gTWF0aC5tYXgoMCwgcmVmcy5sZW5ndGggLSB0aGlzLm1heEl0ZW1zKSkpO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiB0b2FzdHMgdGhhdCBjYW4gYmUgZGlzcGxheWVkIGF0IG9uY2UuXG4gICAqXG4gICAqIEB0eXBlIHtudW1iZXJ9XG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBtYXhJdGVtcyA9IDM7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gYSB0b2FzdCBpcyBkaXNtaXNzZWQuXG4gICAqXG4gICAqIEBlbWl0cyB7VG9hc3RSZWZ9IC0gVGhlIHRvYXN0IHJlZmVyZW5jZSB0aGF0IHdhcyBkaXNtaXNzZWQuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGRpc21pc3MgPSB0aGlzLnRvYXN0U2VydmljZS5vblRvYXN0UmVtb3ZlJDtcblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHNldEF0dHJpYnV0ZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3BvcG92ZXInLCAnbWFudWFsJyk7XG4gICAgaWYgKFRvYXN0Q29udGFpbmVyQ29tcG9uZW50LklOSVRJQUxJWkVEKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ09ubHkgb25lIHRvYXN0IGNvbnRhaW5lciBwZXIgYXBwbGljYXRpb24gYWxsb3dlZCcpO1xuICAgIH1cbiAgICBUb2FzdENvbnRhaW5lckNvbXBvbmVudC5JTklUSUFMSVpFRCA9IHRydWU7XG4gICAgY29uc3QgaGVhZGVyRWxlbWVudCA9IHRoaXMud2luZG93UmVmLnF1ZXJ5QnlDb21wb25lbnQoSGVhZGVyQ29tcG9uZW50KTtcbiAgICBpZiAoaGVhZGVyRWxlbWVudCkge1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3RvcCcsIHB4KGhlYWRlckVsZW1lbnQub2Zmc2V0SGVpZ2h0KSk7XG4gICAgfVxuICAgIHRoaXMuaXRlbXMkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnVwZGF0ZVBvcHZlclBvc2l0aW9uKCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIFRvYXN0Q29udGFpbmVyQ29tcG9uZW50LklOSVRJQUxJWkVEID0gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25EaXNtaXNzKGl0ZW1SZWY6IFRvYXN0UmVmKTogdm9pZCB7XG4gICAgdGhpcy50b2FzdFNlcnZpY2UuZGlzbWlzcyhpdGVtUmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUG9wdmVyUG9zaXRpb24oKTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSB0aGlzLmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFlbD8uaXNDb25uZWN0ZWQpIHJldHVybjtcblxuICAgIGVsLmhpZGVQb3BvdmVyPy4oKTtcbiAgICBkZWZlckZuKCgpID0+IGVsLnNob3dQb3BvdmVyPy4oKSk7XG4gIH1cbn1cbiIsIkBmb3IgKHRvYXN0UmVmIG9mIGl0ZW1zJCB8IGFzeW5jOyB0cmFjayB0b2FzdFJlZi5pZCkge1xuICA8b2R4LXRvYXN0XG4gICAgQHNsaWRlXG4gICAgW2lkXT1cInRvYXN0UmVmLmlkXCJcbiAgICBbdGl0bGVdPVwidG9hc3RSZWYuaXRlbS50aXRsZVwiXG4gICAgW2Rlc2NyaXB0aW9uXT1cInRvYXN0UmVmLml0ZW0uZGVzY3JpcHRpb25cIlxuICAgIFtkZXNjcmlwdGlvbkNvbnRleHRdPVwidG9hc3RSZWYuaXRlbS5kZXNjcmlwdGlvbkNvbnRleHRcIlxuICAgIFthY3Rpb25zXT1cInRvYXN0UmVmLml0ZW0uYWN0aW9ucyA/PyBbXVwiXG4gICAgW3ZhcmlhbnRdPVwidG9hc3RSZWYuaXRlbS52YXJpYW50XCJcbiAgICBbb3B0aW9uc109XCJ0b2FzdFJlZi5vcHRpb25zXCJcbiAgICAoZGlzbWlzcyk9XCJvbkRpc21pc3ModG9hc3RSZWYpXCJcbiAgLz5cbn1cbkBpZiAoaGlkZGVuVG9hc3RzJCB8IGFzeW5jOyBhcyBtb3JlKSB7XG4gIDxvZHgtY2hpcCBjbGFzcz1cIm9keC10b2FzdC1jb250YWluZXJfX2NvdW50ZXJcIj57eyBtb3JlIH19IG1vcmUgTm90aWZpY2F0aW9uczwvb2R4LWNoaXA+XG59XG4iXX0=
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { inject, ChangeDetectorRef, EventEmitter, booleanAttribute, Directive, ViewChild, Input, Output, HostListener, InjectionToken } from '@angular/core';
|
|
3
|
+
import { inject, ChangeDetectorRef, EventEmitter, booleanAttribute, Directive, ViewChild, Input, Output, HostListener, computed, SecurityContext, input, InjectionToken } from '@angular/core';
|
|
4
4
|
import { detectControllerChanges, ODX_STRING_SEARCH_HANDLER, ODX_STRINGIFY } from '@odx/angular';
|
|
5
5
|
import { CustomFormControl } from '@odx/angular/cdk/custom-form-control';
|
|
6
6
|
import { DropdownDirective } from '@odx/angular/components/dropdown';
|
|
7
7
|
import { FormFieldComponent } from '@odx/angular/components/form-field';
|
|
8
8
|
import { untilDestroyed, injectElement, isFunction, Pure } from '@odx/angular/utils';
|
|
9
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
9
10
|
import { __decorate, __metadata } from 'tslib';
|
|
10
11
|
|
|
11
12
|
/**
|
|
@@ -198,6 +199,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
198
199
|
args: ['focusout', ['$event']]
|
|
199
200
|
}] } });
|
|
200
201
|
|
|
202
|
+
class HighlightSearchDirective {
|
|
203
|
+
constructor() {
|
|
204
|
+
this.sanitizer = inject(DomSanitizer);
|
|
205
|
+
this.highlightedText = computed(() => {
|
|
206
|
+
const search = this.odxHighlightSearch().trim();
|
|
207
|
+
const text = this.sanitizer.sanitize(SecurityContext.HTML, this.text()) ?? '';
|
|
208
|
+
if (!search) {
|
|
209
|
+
return text;
|
|
210
|
+
}
|
|
211
|
+
const regex = new RegExp(search.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'gi');
|
|
212
|
+
const highlightedText = text.replace(regex, '<mark>$&</mark>');
|
|
213
|
+
return this.sanitizer.bypassSecurityTrustHtml(highlightedText);
|
|
214
|
+
});
|
|
215
|
+
/**
|
|
216
|
+
* Search string
|
|
217
|
+
* @required
|
|
218
|
+
* @type string
|
|
219
|
+
*/
|
|
220
|
+
this.odxHighlightSearch = input.required();
|
|
221
|
+
/**
|
|
222
|
+
* Text to highlight
|
|
223
|
+
* @required
|
|
224
|
+
* @type string
|
|
225
|
+
*/
|
|
226
|
+
this.text = input.required();
|
|
227
|
+
}
|
|
228
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HighlightSearchDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
229
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: HighlightSearchDirective, isStandalone: true, selector: "odx-highlight", inputs: { odxHighlightSearch: { classPropertyName: "odxHighlightSearch", publicName: "odxHighlightSearch", isSignal: true, isRequired: true, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "innerHTML": "highlightedText()" } }, ngImport: i0 }); }
|
|
230
|
+
}
|
|
231
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: HighlightSearchDirective, decorators: [{
|
|
232
|
+
type: Directive,
|
|
233
|
+
args: [{
|
|
234
|
+
selector: 'odx-highlight',
|
|
235
|
+
standalone: true,
|
|
236
|
+
host: {
|
|
237
|
+
'[innerHTML]': 'highlightedText()',
|
|
238
|
+
},
|
|
239
|
+
}]
|
|
240
|
+
}] });
|
|
241
|
+
|
|
201
242
|
const ODX_SEARCH_FILTER_HOST = new InjectionToken('@odx/angular/cdk/autocomplete-control::SearchFilterHost');
|
|
202
243
|
class BaseSearchFilterPipe {
|
|
203
244
|
constructor() {
|
|
@@ -245,5 +286,5 @@ __decorate([
|
|
|
245
286
|
* Generated bundle index. Do not edit.
|
|
246
287
|
*/
|
|
247
288
|
|
|
248
|
-
export { AutocompleteControl, BaseSearchFilterPipe, ODX_SEARCH_FILTER_HOST };
|
|
289
|
+
export { AutocompleteControl, BaseSearchFilterPipe, HighlightSearchDirective, ODX_SEARCH_FILTER_HOST };
|
|
249
290
|
//# sourceMappingURL=odx-angular-cdk-autocomplete-control.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-cdk-autocomplete-control.mjs","sources":["../../../../libs/angular/cdk/autocomplete-control/src/lib/autocomplete-control.ts","../../../../libs/angular/cdk/autocomplete-control/src/lib/pipes/base-search-filter-pipe.ts","../../../../libs/angular/cdk/autocomplete-control/src/odx-angular-cdk-autocomplete-control.ts"],"sourcesContent":["import { ActiveDescendantKeyManager, Highlightable } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { detectControllerChanges, StringifyFn } from '@odx/angular';\nimport { CustomFormControl, InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { FormFieldComponent } from '@odx/angular/components/form-field';\nimport { injectElement, isFunction, untilDestroyed } from '@odx/angular/utils';\n\n/**\n * `AutocompleteControl` is a base directive to enhance an input field with autocomplete functionality,\n * providing keyboard navigation and selection for options displayed in a dropdown. It's designed to be extended\n * for specific implementations.\n * Extends `CustomFormControl` to provide form control behavior and state management.\n *\n * @see {CustomFormControl}\n *\n * This directive manages the open/close state of the dropdown, the loading state indication, and the interaction between\n * the autocomplete input and the dropdown options. It utilizes `ActiveDescendantKeyManager` for keyboard navigation among options.\n *\n * Extend this directive to create a fully functional autocomplete control tailored to your data type and UI requirements.\n *\n * @template T - The type of the items displayed in the autocomplete dropdown.\n */\n@Directive({\n standalone: true,\n host: {\n '[class.is-open]': 'isOpen',\n '[attr.aria-disabled]': 'isDisabled || null',\n },\n})\nexport abstract class AutocompleteControl<T> extends CustomFormControl<T | null> implements AfterViewInit {\n protected abstract readonly options?: QueryList<OptionControl<T>>;\n\n protected readonly changeDetector = inject(ChangeDetectorRef);\n protected readonly formField = inject(FormFieldComponent, { optional: true });\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n protected keyManager?: ActiveDescendantKeyManager<Highlightable>;\n protected smoothScrollEnabled = false;\n\n @ViewChild(DropdownDirective)\n protected readonly dropdown?: DropdownDirective;\n\n public abstract searchField?: InputControlDirective;\n\n public readonly element = injectElement();\n\n public get dropdownReferenceElement(): HTMLElement {\n return this.formField?.controlElement?.nativeElement ?? this.element?.nativeElement;\n }\n\n public get hasOptions(): boolean {\n return !!this.options?.length;\n }\n\n public get isOpen(): boolean {\n return !!this.dropdown?.isOpen;\n }\n\n @Input({ transform: booleanAttribute })\n public isLoading = false;\n\n /**\n * A function that converts an item of type T to a string representation.\n * Used by the AutocompleteControl component to display the selected item.\n *\n * @type {StringifyFn<T>}\n *\n * @example\n * ```ts\n * // Define a stringify function for a custom type Person\n * const stringifyPerson: StringifyFn<Person> = (person) => `${person.firstName} ${person.lastName}`;\n *\n * // Assign the stringify function to the AutocompleteControl\n * autocompleteControl.stringify = stringifyPerson;\n * ```\n */\n @Input()\n public stringify?: StringifyFn<T>;\n\n /**\n * Emits the selected option when an option is selected from the dropdown.\n *\n * @emits {T} - The selected option.\n *\n * @example\n * ```ts\n * autocompleteControl.optionSelected.subscribe((selectedOption) => {\n * console.log('Selected option:', selectedOption);\n * });\n * ```\n */\n @Output()\n public optionSelected = new EventEmitter<T>();\n\n /**\n * Event emitted before the dropdown opens.\n * @emits {void}\n *\n * @example\n * ```html\n * <odx-select (beforeDropdownOpen)=\"onBeforeDropdownOpen()\">\n * </odx-select>\n * ```\n */\n @Output()\n public beforeDropdownOpen = new EventEmitter<void>();\n\n /**\n * Event emitted after the dropdown opened.\n *\n * @emits {void}\n *\n * @example\n * ```html\n * <odx-select (afterDropdownOpen)=\"onAfterDropdownOpen()\">\n * </odx-select>\n * ```\n */\n @Output()\n public afterDropdownOpen = new EventEmitter<void>();\n\n /**\n * Event emitted before the dropdown closes.\n *\n * @emits {void}\n *\n * @example\n * ```html\n * <odx-select (beforeDropdownClose)=\"onBeforeDropdownClose()\">\n * </odx-select>\n * ```\n */\n @Output()\n public beforeDropdownClose = new EventEmitter<void>();\n\n /**\n * Event emitted after the dropdown closed.\n *\n * @emits {void}\n *\n * @example\n * ```html\n * <odx-select (afterDropdownClose)=\"onAfterDropdownClose()\">\n * </odx-select>\n * ```\n */\n @Output()\n public afterDropdownClose = new EventEmitter<void>();\n\n constructor() {\n super(null);\n detectControllerChanges(this).subscribe();\n }\n\n public ngAfterViewInit(): void {\n if (!this.options) return;\n\n this.initKeyManager(this.options.toArray());\n this.handleQueryListOption(this.options);\n this.handleSearchFieldChanges();\n }\n\n /**\n * Scrolls the specified option element into view.\n * @param {OptionControl<T>} option - The option control containing the element to scroll into view.\n * @returns {void}\n *\n * @example\n * ```ts\n * const optionControl: OptionControl<string> = { element: myOptionElement };\n * scrollOptionIntoView(optionControl);\n * ```\n */\n public scrollOptionIntoView({ element }: OptionControl<T>): void {\n const behavior = this.smoothScrollEnabled ? 'smooth' : undefined;\n if (isFunction(element.nativeElement.scrollIntoView)) {\n element.nativeElement.scrollIntoView({ block: 'center', behavior });\n }\n }\n\n protected abstract handleQueryListOption(options: QueryList<OptionControl<T>>): void;\n\n protected abstract handleSearchFieldChanges(): void;\n\n protected abstract activateSelectedOption(): void;\n\n protected initKeyManager(options: Highlightable[]): void {\n this.keyManager = new ActiveDescendantKeyManager<Highlightable>(options).withHomeAndEnd();\n }\n\n protected disableSmoothScroll(): void {\n this.smoothScrollEnabled = false;\n }\n\n protected enableSmoothScroll(): void {\n this.smoothScrollEnabled = true;\n }\n\n protected openDropdown(): void {\n this.dropdown?.open();\n }\n\n protected closeDropdown(): void {\n this.dropdown?.close();\n }\n\n protected onDropdownOpen(): void {\n this.beforeDropdownOpen.emit();\n this.activateSelectedOption();\n }\n\n protected onDropdownOpened(): void {\n this.afterDropdownOpen.emit();\n this.enableSmoothScroll();\n }\n\n protected onDropdownClose(): void {\n this.beforeDropdownClose.emit();\n this.disableSmoothScroll();\n }\n\n protected onDropdownClosed(): void {\n this.afterDropdownClose.emit();\n }\n\n @HostListener('focusout', ['$event'])\n protected handleFocusOut(event: FocusEvent): void {\n if (this.isOpen) {\n event.stopImmediatePropagation();\n }\n this.onTouched();\n }\n}\n","import { inject, InjectionToken, PipeTransform } from '@angular/core';\nimport { ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, StringifyFn, StringSearchHandler } from '@odx/angular';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { isFunction, Pure } from '@odx/angular/utils';\n\ninterface HostController {\n searchField?: InputControlDirective;\n stringify?: StringifyFn<unknown>;\n}\n\ninterface SearchFilterPipeOptions<T> {\n searchHandler?: StringSearchHandler;\n stringify?: StringifyFn<T>;\n}\n\nexport const ODX_SEARCH_FILTER_HOST = new InjectionToken<HostController>('@odx/angular/cdk/autocomplete-control::SearchFilterHost');\n\nexport abstract class BaseSearchFilterPipe implements PipeTransform {\n private readonly stringSearchHandler = inject(ODX_STRING_SEARCH_HANDLER);\n private readonly defaultStringify = inject(ODX_STRINGIFY);\n protected readonly hostController = inject(ODX_SEARCH_FILTER_HOST, { optional: true });\n\n protected get searchField(): InputControlDirective | undefined {\n return this.hostController?.searchField;\n }\n\n protected get stringify(): StringifyFn<unknown> {\n return this.hostController?.stringify ?? this.defaultStringify;\n }\n\n public transform<T>(items: T[] | null, optionsOrHandler?: SearchFilterPipeOptions<T> | StringSearchHandler): T[] | null {\n const searchHandler = this.isStringSearchHandler(optionsOrHandler) ? optionsOrHandler : optionsOrHandler?.searchHandler;\n const stringify = this.isStringSearchHandler(optionsOrHandler) ? null : optionsOrHandler?.stringify;\n if (this.searchField) {\n return this.filter(items, this.searchField.nativeElementValue, stringify ?? (this.stringify as never), searchHandler ?? this.stringSearchHandler);\n }\n return items;\n }\n\n protected queryHandler(query: string): string {\n return query?.trim() || '';\n }\n\n @Pure\n private filter<T>(items: T[] | null, query: string, stringify: StringifyFn<T>, searchHandler: StringSearchHandler): T[] | null {\n if (!items) return null;\n\n query = this.queryHandler(query);\n\n if (query === '') return items;\n\n return items.filter((item) => searchHandler(stringify(item), query));\n }\n\n private isStringSearchHandler<T>(optionsOrHandler?: SearchFilterPipeOptions<T> | StringSearchHandler): optionsOrHandler is StringSearchHandler {\n return isFunction(optionsOrHandler);\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-cdk-autocomplete-control.mjs","sources":["../../../../libs/angular/cdk/autocomplete-control/src/lib/autocomplete-control.ts","../../../../libs/angular/cdk/autocomplete-control/src/lib/directives/highlight-search-result.directive.ts","../../../../libs/angular/cdk/autocomplete-control/src/lib/pipes/base-search-filter-pipe.ts","../../../../libs/angular/cdk/autocomplete-control/src/odx-angular-cdk-autocomplete-control.ts"],"sourcesContent":["import { ActiveDescendantKeyManager, Highlightable } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { detectControllerChanges, StringifyFn } from '@odx/angular';\nimport { CustomFormControl, InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { FormFieldComponent } from '@odx/angular/components/form-field';\nimport { injectElement, isFunction, untilDestroyed } from '@odx/angular/utils';\n\n/**\n * `AutocompleteControl` is a base directive to enhance an input field with autocomplete functionality,\n * providing keyboard navigation and selection for options displayed in a dropdown. It's designed to be extended\n * for specific implementations.\n * Extends `CustomFormControl` to provide form control behavior and state management.\n *\n * @see {CustomFormControl}\n *\n * This directive manages the open/close state of the dropdown, the loading state indication, and the interaction between\n * the autocomplete input and the dropdown options. It utilizes `ActiveDescendantKeyManager` for keyboard navigation among options.\n *\n * Extend this directive to create a fully functional autocomplete control tailored to your data type and UI requirements.\n *\n * @template T - The type of the items displayed in the autocomplete dropdown.\n */\n@Directive({\n standalone: true,\n host: {\n '[class.is-open]': 'isOpen',\n '[attr.aria-disabled]': 'isDisabled || null',\n },\n})\nexport abstract class AutocompleteControl<T> extends CustomFormControl<T | null> implements AfterViewInit {\n protected abstract readonly options?: QueryList<OptionControl<T>>;\n\n protected readonly changeDetector = inject(ChangeDetectorRef);\n protected readonly formField = inject(FormFieldComponent, { optional: true });\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n protected keyManager?: ActiveDescendantKeyManager<Highlightable>;\n protected smoothScrollEnabled = false;\n\n @ViewChild(DropdownDirective)\n protected readonly dropdown?: DropdownDirective;\n\n public abstract searchField?: InputControlDirective;\n\n public readonly element = injectElement();\n\n public get dropdownReferenceElement(): HTMLElement {\n return this.formField?.controlElement?.nativeElement ?? this.element?.nativeElement;\n }\n\n public get hasOptions(): boolean {\n return !!this.options?.length;\n }\n\n public get isOpen(): boolean {\n return !!this.dropdown?.isOpen;\n }\n\n @Input({ transform: booleanAttribute })\n public isLoading = false;\n\n /**\n * A function that converts an item of type T to a string representation.\n * Used by the AutocompleteControl component to display the selected item.\n *\n * @type {StringifyFn<T>}\n *\n * @example\n * ```ts\n * // Define a stringify function for a custom type Person\n * const stringifyPerson: StringifyFn<Person> = (person) => `${person.firstName} ${person.lastName}`;\n *\n * // Assign the stringify function to the AutocompleteControl\n * autocompleteControl.stringify = stringifyPerson;\n * ```\n */\n @Input()\n public stringify?: StringifyFn<T>;\n\n /**\n * Emits the selected option when an option is selected from the dropdown.\n *\n * @emits {T} - The selected option.\n *\n * @example\n * ```ts\n * autocompleteControl.optionSelected.subscribe((selectedOption) => {\n * console.log('Selected option:', selectedOption);\n * });\n * ```\n */\n @Output()\n public optionSelected = new EventEmitter<T>();\n\n /**\n * Event emitted before the dropdown opens.\n * @emits {void}\n *\n * @example\n * ```html\n * <odx-select (beforeDropdownOpen)=\"onBeforeDropdownOpen()\">\n * </odx-select>\n * ```\n */\n @Output()\n public beforeDropdownOpen = new EventEmitter<void>();\n\n /**\n * Event emitted after the dropdown opened.\n *\n * @emits {void}\n *\n * @example\n * ```html\n * <odx-select (afterDropdownOpen)=\"onAfterDropdownOpen()\">\n * </odx-select>\n * ```\n */\n @Output()\n public afterDropdownOpen = new EventEmitter<void>();\n\n /**\n * Event emitted before the dropdown closes.\n *\n * @emits {void}\n *\n * @example\n * ```html\n * <odx-select (beforeDropdownClose)=\"onBeforeDropdownClose()\">\n * </odx-select>\n * ```\n */\n @Output()\n public beforeDropdownClose = new EventEmitter<void>();\n\n /**\n * Event emitted after the dropdown closed.\n *\n * @emits {void}\n *\n * @example\n * ```html\n * <odx-select (afterDropdownClose)=\"onAfterDropdownClose()\">\n * </odx-select>\n * ```\n */\n @Output()\n public afterDropdownClose = new EventEmitter<void>();\n\n constructor() {\n super(null);\n detectControllerChanges(this).subscribe();\n }\n\n public ngAfterViewInit(): void {\n if (!this.options) return;\n\n this.initKeyManager(this.options.toArray());\n this.handleQueryListOption(this.options);\n this.handleSearchFieldChanges();\n }\n\n /**\n * Scrolls the specified option element into view.\n * @param {OptionControl<T>} option - The option control containing the element to scroll into view.\n * @returns {void}\n *\n * @example\n * ```ts\n * const optionControl: OptionControl<string> = { element: myOptionElement };\n * scrollOptionIntoView(optionControl);\n * ```\n */\n public scrollOptionIntoView({ element }: OptionControl<T>): void {\n const behavior = this.smoothScrollEnabled ? 'smooth' : undefined;\n if (isFunction(element.nativeElement.scrollIntoView)) {\n element.nativeElement.scrollIntoView({ block: 'center', behavior });\n }\n }\n\n protected abstract handleQueryListOption(options: QueryList<OptionControl<T>>): void;\n\n protected abstract handleSearchFieldChanges(): void;\n\n protected abstract activateSelectedOption(): void;\n\n protected initKeyManager(options: Highlightable[]): void {\n this.keyManager = new ActiveDescendantKeyManager<Highlightable>(options).withHomeAndEnd();\n }\n\n protected disableSmoothScroll(): void {\n this.smoothScrollEnabled = false;\n }\n\n protected enableSmoothScroll(): void {\n this.smoothScrollEnabled = true;\n }\n\n protected openDropdown(): void {\n this.dropdown?.open();\n }\n\n protected closeDropdown(): void {\n this.dropdown?.close();\n }\n\n protected onDropdownOpen(): void {\n this.beforeDropdownOpen.emit();\n this.activateSelectedOption();\n }\n\n protected onDropdownOpened(): void {\n this.afterDropdownOpen.emit();\n this.enableSmoothScroll();\n }\n\n protected onDropdownClose(): void {\n this.beforeDropdownClose.emit();\n this.disableSmoothScroll();\n }\n\n protected onDropdownClosed(): void {\n this.afterDropdownClose.emit();\n }\n\n @HostListener('focusout', ['$event'])\n protected handleFocusOut(event: FocusEvent): void {\n if (this.isOpen) {\n event.stopImmediatePropagation();\n }\n this.onTouched();\n }\n}\n","import { computed, Directive, inject, input, SecurityContext } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Directive({\n selector: 'odx-highlight',\n standalone: true,\n host: {\n '[innerHTML]': 'highlightedText()',\n },\n})\nexport class HighlightSearchDirective {\n private readonly sanitizer = inject(DomSanitizer);\n\n protected highlightedText = computed(() => {\n const search = this.odxHighlightSearch().trim();\n const text = this.sanitizer.sanitize(SecurityContext.HTML, this.text()) ?? '';\n\n if (!search) {\n return text;\n }\n\n const regex = new RegExp(search.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'), 'gi');\n const highlightedText = text.replace(regex, '<mark>$&</mark>');\n\n return this.sanitizer.bypassSecurityTrustHtml(highlightedText);\n });\n\n /**\n * Search string\n * @required\n * @type string\n */\n public odxHighlightSearch = input.required<string>();\n\n /**\n * Text to highlight\n * @required\n * @type string\n */\n public text = input.required<string>();\n}\n","import { inject, InjectionToken, PipeTransform } from '@angular/core';\nimport { ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, StringifyFn, StringSearchHandler } from '@odx/angular';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { isFunction, Pure } from '@odx/angular/utils';\n\ninterface HostController {\n searchField?: InputControlDirective;\n stringify?: StringifyFn<unknown>;\n}\n\ninterface SearchFilterPipeOptions<T> {\n searchHandler?: StringSearchHandler;\n stringify?: StringifyFn<T>;\n}\n\nexport const ODX_SEARCH_FILTER_HOST = new InjectionToken<HostController>('@odx/angular/cdk/autocomplete-control::SearchFilterHost');\n\nexport abstract class BaseSearchFilterPipe implements PipeTransform {\n private readonly stringSearchHandler = inject(ODX_STRING_SEARCH_HANDLER);\n private readonly defaultStringify = inject(ODX_STRINGIFY);\n protected readonly hostController = inject(ODX_SEARCH_FILTER_HOST, { optional: true });\n\n protected get searchField(): InputControlDirective | undefined {\n return this.hostController?.searchField;\n }\n\n protected get stringify(): StringifyFn<unknown> {\n return this.hostController?.stringify ?? this.defaultStringify;\n }\n\n public transform<T>(items: T[] | null, optionsOrHandler?: SearchFilterPipeOptions<T> | StringSearchHandler): T[] | null {\n const searchHandler = this.isStringSearchHandler(optionsOrHandler) ? optionsOrHandler : optionsOrHandler?.searchHandler;\n const stringify = this.isStringSearchHandler(optionsOrHandler) ? null : optionsOrHandler?.stringify;\n if (this.searchField) {\n return this.filter(items, this.searchField.nativeElementValue, stringify ?? (this.stringify as never), searchHandler ?? this.stringSearchHandler);\n }\n return items;\n }\n\n protected queryHandler(query: string): string {\n return query?.trim() || '';\n }\n\n @Pure\n private filter<T>(items: T[] | null, query: string, stringify: StringifyFn<T>, searchHandler: StringSearchHandler): T[] | null {\n if (!items) return null;\n\n query = this.queryHandler(query);\n\n if (query === '') return items;\n\n return items.filter((item) => searchHandler(stringify(item), query));\n }\n\n private isStringSearchHandler<T>(optionsOrHandler?: SearchFilterPipeOptions<T> | StringSearchHandler): optionsOrHandler is StringSearchHandler {\n return isFunction(optionsOrHandler);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|