@fundamental-ngx/cdk 0.44.1-rc.3 → 0.45.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/esm2022/utils/directives/auto-complete/auto-complete.directive.mjs +3 -27
- package/esm2022/utils/directives/auto-complete/auto-complete.module.mjs +5 -5
- package/esm2022/utils/directives/clicked/clicked.directive.mjs +1 -25
- package/esm2022/utils/directives/disabled/disabled-behavior.directive.mjs +1 -25
- package/esm2022/utils/directives/disabled/disabled-behavior.module.mjs +5 -5
- package/esm2022/utils/directives/focus-key-manager/focus-key-manager-helpers.module.mjs +6 -22
- package/esm2022/utils/directives/focus-key-manager/focus-key-manager-item.directive.mjs +3 -27
- package/esm2022/utils/directives/focus-key-manager/focus-key-manager-list.directive.mjs +3 -27
- package/esm2022/utils/directives/focusable-item/focusable-item.directive.mjs +1 -25
- package/esm2022/utils/directives/focusable-item/focusable-item.module.mjs +5 -5
- package/esm2022/utils/directives/focusable-list/focusable-list.directive.mjs +1 -25
- package/esm2022/utils/directives/focusable-list/focusable-list.module.mjs +7 -7
- package/esm2022/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.mjs +3 -27
- package/esm2022/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.mjs +5 -5
- package/esm2022/utils/directives/initial-focus/initial-focus.directive.mjs +4 -54
- package/esm2022/utils/directives/initial-focus/initial-focus.module.mjs +5 -5
- package/esm2022/utils/directives/line-clamp/line-clamp.directive.mjs +3 -50
- package/esm2022/utils/directives/line-clamp/line-clamp.module.mjs +5 -21
- package/esm2022/utils/directives/only-digits/only-digits.directive.mjs +3 -27
- package/esm2022/utils/directives/only-digits/only-digits.module.mjs +5 -5
- package/esm2022/utils/directives/overflow-list/overflow-list-item.directive.mjs +3 -27
- package/esm2022/utils/directives/overflow-list/overflow-list.directive.mjs +3 -27
- package/esm2022/utils/directives/overflow-list/overflow-list.module.mjs +6 -22
- package/esm2022/utils/directives/readonly/readonly-behavior.directive.mjs +3 -27
- package/esm2022/utils/directives/readonly/readonly-behavior.module.mjs +5 -5
- package/esm2022/utils/directives/repeat/repeat.directive.mjs +5 -36
- package/esm2022/utils/directives/repeat/repeat.module.mjs +5 -5
- package/esm2022/utils/directives/resize/resize-handle.directive.mjs +3 -27
- package/esm2022/utils/directives/resize/resize.directive.mjs +3 -27
- package/esm2022/utils/directives/resize/resize.module.mjs +6 -6
- package/esm2022/utils/directives/template/template.directive.mjs +3 -27
- package/esm2022/utils/directives/template/template.module.mjs +5 -5
- package/esm2022/utils/directives/truncate/truncate.directive.mjs +3 -27
- package/esm2022/utils/directives/truncate/truncate.module.mjs +5 -5
- package/esm2022/utils/drag-and-drop/dnd-list/dnd-list.directive.mjs +2 -21
- package/esm2022/utils/services/index.mjs +1 -2
- package/esm2022/utils/toast/base-toast.service.mjs +1 -10
- package/esm2022/utils/utils.module.mjs +3 -4
- package/fesm2022/fundamental-ngx-cdk-utils.mjs +446 -1139
- package/fesm2022/fundamental-ngx-cdk-utils.mjs.map +1 -1
- package/fundamental-ngx-cdk-v0.45.0.tgz +0 -0
- package/package.json +2 -2
- package/utils/directives/auto-complete/auto-complete.directive.d.ts +1 -6
- package/utils/directives/auto-complete/auto-complete.module.d.ts +1 -1
- package/utils/directives/clicked/clicked.directive.d.ts +0 -5
- package/utils/directives/disabled/disabled-behavior.directive.d.ts +0 -5
- package/utils/directives/disabled/disabled-behavior.module.d.ts +1 -1
- package/utils/directives/focus-key-manager/focus-key-manager-helpers.module.d.ts +1 -1
- package/utils/directives/focus-key-manager/focus-key-manager-item.directive.d.ts +1 -6
- package/utils/directives/focus-key-manager/focus-key-manager-list.directive.d.ts +1 -6
- package/utils/directives/focusable-item/focusable-item.directive.d.ts +0 -5
- package/utils/directives/focusable-item/focusable-item.module.d.ts +1 -1
- package/utils/directives/focusable-list/focusable-list.directive.d.ts +0 -5
- package/utils/directives/focusable-list/focusable-list.module.d.ts +2 -2
- package/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.d.ts +1 -6
- package/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.d.ts +1 -1
- package/utils/directives/initial-focus/initial-focus.directive.d.ts +1 -12
- package/utils/directives/initial-focus/initial-focus.module.d.ts +1 -1
- package/utils/directives/line-clamp/line-clamp.directive.d.ts +1 -10
- package/utils/directives/line-clamp/line-clamp.module.d.ts +1 -1
- package/utils/directives/only-digits/only-digits.directive.d.ts +1 -6
- package/utils/directives/only-digits/only-digits.module.d.ts +1 -1
- package/utils/directives/overflow-list/overflow-list-item.directive.d.ts +1 -6
- package/utils/directives/overflow-list/overflow-list.directive.d.ts +1 -6
- package/utils/directives/overflow-list/overflow-list.module.d.ts +1 -1
- package/utils/directives/readonly/readonly-behavior.directive.d.ts +1 -6
- package/utils/directives/readonly/readonly-behavior.module.d.ts +1 -1
- package/utils/directives/repeat/repeat.directive.d.ts +1 -12
- package/utils/directives/repeat/repeat.module.d.ts +1 -1
- package/utils/directives/resize/resize-handle.directive.d.ts +1 -6
- package/utils/directives/resize/resize.directive.d.ts +1 -6
- package/utils/directives/resize/resize.module.d.ts +1 -1
- package/utils/directives/template/template.directive.d.ts +1 -6
- package/utils/directives/template/template.module.d.ts +1 -1
- package/utils/directives/truncate/truncate.directive.d.ts +1 -6
- package/utils/directives/truncate/truncate.module.d.ts +1 -1
- package/utils/drag-and-drop/dnd-list/dnd-list.directive.d.ts +1 -10
- package/utils/services/index.d.ts +0 -1
- package/utils/toast/base-toast.service.d.ts +0 -5
- package/esm2022/utils/services/themes.service.mjs +0 -135
- package/fundamental-ngx-cdk-v0.44.1-rc.3.tgz +0 -0
- package/utils/services/themes.service.d.ts +0 -48
|
@@ -4,36 +4,12 @@ import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
|
4
4
|
import { ENTER, ESCAPE, F2, MAC_ENTER } from '@angular/cdk/keycodes';
|
|
5
5
|
import { FDK_FOCUSABLE_ITEM_DIRECTIVE } from './focusable-item.tokens';
|
|
6
6
|
import { TabbableElementService } from '../../services';
|
|
7
|
-
import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
|
|
8
7
|
import { LiveAnnouncer } from '@angular/cdk/a11y';
|
|
9
8
|
import { FocusableObserver } from './focusable.observer';
|
|
10
9
|
import { fromEvent, Subject } from 'rxjs';
|
|
11
10
|
import { KeyUtil } from '../../functions';
|
|
12
11
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
13
12
|
import * as i0 from "@angular/core";
|
|
14
|
-
export class DeprecatedFocusableItemDirective extends DeprecatedSelector {
|
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DeprecatedFocusableItemDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
16
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: DeprecatedFocusableItemDirective, isStandalone: true, selector: "[fnFocusableItem]", providers: [
|
|
17
|
-
{
|
|
18
|
-
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
19
|
-
useValue: getDeprecatedModel('[fdkFocusableItem]', '[fnFocusableItem]')
|
|
20
|
-
}
|
|
21
|
-
], usesInheritance: true, ngImport: i0 }); }
|
|
22
|
-
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DeprecatedFocusableItemDirective, decorators: [{
|
|
24
|
-
type: Directive,
|
|
25
|
-
args: [{
|
|
26
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
27
|
-
selector: '[fnFocusableItem]',
|
|
28
|
-
standalone: true,
|
|
29
|
-
providers: [
|
|
30
|
-
{
|
|
31
|
-
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
32
|
-
useValue: getDeprecatedModel('[fdkFocusableItem]', '[fnFocusableItem]')
|
|
33
|
-
}
|
|
34
|
-
]
|
|
35
|
-
}]
|
|
36
|
-
}] });
|
|
37
13
|
export class FocusableItemDirective {
|
|
38
14
|
/** Whether the item is focusable. Default is true. */
|
|
39
15
|
set fdkFocusableItem(val) {
|
|
@@ -223,4 +199,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
223
199
|
type: HostBinding,
|
|
224
200
|
args: ['attr.tabindex']
|
|
225
201
|
}] } });
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1pdGVtL2ZvY3VzYWJsZS1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNILFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFzQmhFLE1BQU0sT0FBTyxnQ0FBaUMsU0FB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TUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgRU5URVIsIEVTQ0FQRSwgRjIsIE1BQ19FTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFIH0gZnJvbSAnLi9mb2N1c2FibGUtaXRlbS50b2tlbnMnO1xuaW1wb3J0IHsgVGFiYmFibGVFbGVtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7XG4gICAgRGVwcmVjYXRlZFNlbGVjdG9yLFxuICAgIEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgIGdldERlcHJlY2F0ZWRNb2RlbFxufSBmcm9tICcuLi8uLi9kZXByZWNhdGVkLXNlbGVjdG9yLmNsYXNzJztcbmltcG9ydCB7IExpdmVBbm5vdW5jZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBGb2N1c2FibGVPYnNlcnZlciB9IGZyb20gJy4vZm9jdXNhYmxlLm9ic2VydmVyJztcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbnVsbGFibGUnO1xuaW1wb3J0IHsgS2V5VXRpbCB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBGb2N1c2FibGVJdGVtIH0gZnJvbSAnLi9mb2N1c2FibGUuaXRlbSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmV4cG9ydCB0eXBlIENlbGxGb2N1c2VkRXZlbnRBbm5vdW5jZXIgPSBOdWxsYWJsZTwocG9zaXRpb246IEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbikgPT4gc3RyaW5nPjtcblxuZXhwb3J0IGludGVyZmFjZSBGb2N1c2FibGVJdGVtUG9zaXRpb24ge1xuICAgIHJvd0luZGV4OiBudW1iZXI7XG4gICAgY29sSW5kZXg6IG51bWJlcjtcbiAgICB0b3RhbFJvd3M6IG51bWJlcjtcbiAgICB0b3RhbENvbHM6IG51bWJlcjtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmbkZvY3VzYWJsZUl0ZW1dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICAgICAgICAgIHVzZVZhbHVlOiBnZXREZXByZWNhdGVkTW9kZWwoJ1tmZGtGb2N1c2FibGVJdGVtXScsICdbZm5Gb2N1c2FibGVJdGVtXScpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERlcHJlY2F0ZWRGb2N1c2FibGVJdGVtRGlyZWN0aXZlIGV4dGVuZHMgRGVwcmVjYXRlZFNlbGVjdG9yIHt9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka0ZvY3VzYWJsZUl0ZW1dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIEZvY3VzYWJsZUl0ZW0ge1xuICAgIC8qKiBXaGV0aGVyIHRoZSBpdGVtIGlzIGZvY3VzYWJsZS4gRGVmYXVsdCBpcyB0cnVlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZka0ZvY3VzYWJsZUl0ZW0odmFsOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbCk7XG4gICAgICAgIHRoaXMuc2V0VGFiYmFibGUodGhpcy5fZm9jdXNhYmxlKTtcbiAgICB9XG5cbiAgICBnZXQgZmRrRm9jdXNhYmxlSXRlbSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzYWJsZTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24sIHdoaWNoIHJldHVybnMgYSBzdHJpbmcgdG8gYmUgYW5ub3VuY2VkIGJ5IHNjcmVlbi1yZWFkZXIgd2hlbmV2ZXIgYW4gaXRlbSB3aGljaCBpcyBpbiBncmlkIHJlY2VpdmVzIGZvY3VzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2VsbEZvY3VzZWRFdmVudEFubm91bmNlcjogQ2VsbEZvY3VzZWRFdmVudEFubm91bmNlciA9IHRoaXMuX2RlZmF1bHRJdGVtRm9jdXNlZEV2ZW50QW5ub3VuY2VyO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2VsbCByZWNlaXZlcyBmb2N1cywgbm90IGJlaW5nIGVtaXR0ZWQgd2hlbiBmb2N1cyBtb3ZlcyBiZXR3ZWVuIGl0ZW0ncyBjaGlsZHJlbi4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjZWxsRm9jdXNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNhYmxlSXRlbVBvc2l0aW9uPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBrZXlkb3duID0gbmV3IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Bvc2l0aW9uOiBGb2N1c2FibGVJdGVtUG9zaXRpb247XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gICAgZ2V0IF90YWJpbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFiYmFibGUgPyAwIDogLTE7XG4gICAgfVxuXG4gICAgLyoqIEVsZW1lbnQgcmVmZXJlbmNlLiAqL1xuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF96b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzYWJsZSA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RhYmJhYmxlRWxlbWVudHMgPSBuZXcgTWFwPEhUTUxFbGVtZW50LCBudW1iZXI+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RhYmJhYmxlID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdGltZXJJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNhYmxlT2JzZXJ2ZXIgPSBpbmplY3QoRm9jdXNhYmxlT2JzZXJ2ZXIpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFiYmFibGVFbGVtZW50U2VydmljZSA9IGluamVjdChUYWJiYWJsZUVsZW1lbnRTZXJ2aWNlKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xpdmVBbm5vdW5jZXIgPSBpbmplY3QoTGl2ZUFubm91bmNlcik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZU9ic2VydmVyXG4gICAgICAgICAgICAub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYsIGZhbHNlKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpc0ZvY3VzYWJsZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghaXNGb2N1c2FibGUgJiYgaXNGb2N1c2FibGUgIT09IHRoaXMuZmRrRm9jdXNhYmxlSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZka0ZvY3VzYWJsZUl0ZW0gPSBpc0ZvY3VzYWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2ZvY3VzaW4nKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9vbkZvY3VzaW4oKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZm9jdXNvdXQnKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vbkZvY3Vzb3V0KCk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2tleWRvd24nKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZWxlbWVudCA9ICgpOiBIVE1MRWxlbWVudCA9PiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaXNGb2N1c2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb2N1c2FibGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKiogU2V0IHRhYmJhYmxlIHN0YXRlICovXG4gICAgc2V0VGFiYmFibGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFiYmFibGUgPSBzdGF0ZTtcblxuICAgICAgICBpZiAoc3RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2VuYWJsZVRhYmJhYmxlRWxlbWVudHMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVUYWJiYWJsZUVsZW1lbnRzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgYXN5bmMgX29uRm9jdXNpbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCF0aGlzLmZka0ZvY3VzYWJsZUl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl90aW1lcklkICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl90aW1lcklkKTtcbiAgICAgICAgICAgIHRoaXMuX3RpbWVySWQgPSBudWxsO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3Bvc2l0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNlbGxGb2N1c2VkLm5leHQodGhpcy5fcG9zaXRpb24pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5jZWxsRm9jdXNlZEV2ZW50QW5ub3VuY2VyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGl2ZUFubm91bmNlci5jbGVhcigpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX2xpdmVBbm5vdW5jZXIuYW5ub3VuY2UodGhpcy5jZWxsRm9jdXNlZEV2ZW50QW5ub3VuY2VyKHRoaXMuX3Bvc2l0aW9uKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29uRm9jdXNvdXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mZGtGb2N1c2FibGVJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaW1lb3V0IGlzIG5lZWRlZCB0byBwcmV2ZW50IGZvY3Vzb3V0IGV2ZW50IGZyb20gYmVpbmcgZW1pdHRlZCB3aGVuIGZvY3VzIG1vdmVzIGJldHdlZW4gaXRlbSdzIGNoaWxkcmVuLlxuICAgICAgICB0aGlzLl90aW1lcklkID0gc2V0VGltZW91dCgoKSA9PiAodGhpcy5fdGltZXJJZCA9IG51bGwpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZmRrRm9jdXNhYmxlSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNGb2N1c2VkID0gdGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHNob3VsZEZvY3VzQ2hpbGQgPSBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBNQUNfRU5URVIsIEYyXSkgJiYgIWV2ZW50LnNoaWZ0S2V5ICYmIGlzRm9jdXNlZDtcbiAgICAgICAgY29uc3Qgc2hvdWxkRm9jdXNDZWxsID1cbiAgICAgICAgICAgICgoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIEYyKSAmJiBldmVudC5zaGlmdEtleSkgfHwgS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIEVTQ0FQRSkpICYmICFpc0ZvY3VzZWQ7XG5cbiAgICAgICAgaWYgKHNob3VsZEZvY3VzQ2hpbGQpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICBjb25zdCB0YWJiYWJsZUVsZW1lbnQgPSB0aGlzLl90YWJiYWJsZUVsZW1lbnRTZXJ2aWNlLmdldFRhYmJhYmxlRWxlbWVudChcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0YWJiYWJsZUVsZW1lbnQ/LmZvY3VzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChzaG91bGRGb2N1c0NlbGwpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmtleWRvd24ubmV4dChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2VuYWJsZVRhYmJhYmxlRWxlbWVudHMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl90YWJiYWJsZUVsZW1lbnRzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3RhYmJhYmxlRWxlbWVudHMuZm9yRWFjaCgodGFiSW5kZXgsIGVsZW1lbnQpID0+IChlbGVtZW50LnRhYkluZGV4ID0gdGFiSW5kZXgpKTtcbiAgICAgICAgdGhpcy5fdGFiYmFibGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Rpc2FibGVUYWJiYWJsZUVsZW1lbnRzKCk6IHZvaWQge1xuICAgICAgICAvLyBTaW5jZSB3ZSBjYW5ub3Qgc2VsZWN0IGJ5IHRhYmluZGV4IGF0dHJpYnV0ZSAobGlua3MsIGlucHV0cywgYnV0dG9ucyBtaWdodCBub3QgaGF2ZSBvbmUgYnV0IHN0aWxsIGNhbiBiZSBmb2N1c2FibGUpLFxuICAgICAgICAvLyBTZWxlY3QgYWxsIGVsZW1lbnRzIGZyb20gdGhlIGNlbGwgYW5kIGZpbHRlciBieSB0YWJJbmRleCBwcm9wZXJ0eS5cbiAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PignKicpKVxuICAgICAgICAgICAgLmZpbHRlcigoZWxtKSA9PiBlbG0udGFiSW5kZXggPj0gMClcbiAgICAgICAgICAgIC5mb3JFYWNoKChlbG0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl90YWJiYWJsZUVsZW1lbnRzLnNldChlbG0sIGVsbS50YWJJbmRleCk7XG4gICAgICAgICAgICAgICAgZWxtLnRhYkluZGV4ID0gLTE7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RlZmF1bHRJdGVtRm9jdXNlZEV2ZW50QW5ub3VuY2VyKHBvc2l0aW9uOiBGb2N1c2FibGVJdGVtUG9zaXRpb24pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYENvbHVtbiAke3Bvc2l0aW9uLmNvbEluZGV4ICsgMX0gb2YgJHtwb3NpdGlvbi50b3RhbENvbHN9LCByb3c6ICR7cG9zaXRpb24ucm93SW5kZXggKyAxfSBvZiAke1xuICAgICAgICAgICAgcG9zaXRpb24udG90YWxSb3dzXG4gICAgICAgIH1gO1xuICAgIH1cbn1cbiJdfQ==
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1pdGVtL2ZvY3VzYWJsZS1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUNILFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBZ0IscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFxQmhFLE1BQU0sT0FBTyxzQkFBc0I7SUFDL0Isc0RBQXNEO0lBQ3RELElBQ0ksZ0JBQWdCLENBQUMsR0FBaUI7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxxQkFBcUIs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QUMsUUFBUSxHQUFHLENBQUMsT0FDMUYsUUFBUSxDQUFDLFNBQ2IsRUFBRSxDQUFDO0lBQ1AsQ0FBQzs4R0FuTlEsc0JBQXNCO2tHQUF0QixzQkFBc0IsaVJBUHBCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLDRCQUE0QjtnQkFDckMsV0FBVyxFQUFFLHNCQUFzQjthQUN0QztTQUNKOzsyRkFFUSxzQkFBc0I7a0JBVmxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsNEJBQTRCOzRCQUNyQyxXQUFXLHdCQUF3Qjt5QkFDdEM7cUJBQ0o7aUJBQ0o7MEVBSU8sZ0JBQWdCO3NCQURuQixLQUFLO2dCQVlOLHlCQUF5QjtzQkFEeEIsS0FBSztnQkFLRyxXQUFXO3NCQURuQixNQUFNO2dCQVdILFNBQVM7c0JBRFosV0FBVzt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEVOVEVSLCBFU0NBUEUsIEYyLCBNQUNfRU5URVIgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuaW1wb3J0IHsgRkRLX0ZPQ1VTQUJMRV9JVEVNX0RJUkVDVElWRSB9IGZyb20gJy4vZm9jdXNhYmxlLWl0ZW0udG9rZW5zJztcbmltcG9ydCB7IFRhYmJhYmxlRWxlbWVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBMaXZlQW5ub3VuY2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgRm9jdXNhYmxlT2JzZXJ2ZXIgfSBmcm9tICcuL2ZvY3VzYWJsZS5vYnNlcnZlcic7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL251bGxhYmxlJztcbmltcG9ydCB7IEtleVV0aWwgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgRm9jdXNhYmxlSXRlbSB9IGZyb20gJy4vZm9jdXNhYmxlLml0ZW0nO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5leHBvcnQgdHlwZSBDZWxsRm9jdXNlZEV2ZW50QW5ub3VuY2VyID0gTnVsbGFibGU8KHBvc2l0aW9uOiBGb2N1c2FibGVJdGVtUG9zaXRpb24pID0+IHN0cmluZz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9jdXNhYmxlSXRlbVBvc2l0aW9uIHtcbiAgICByb3dJbmRleDogbnVtYmVyO1xuICAgIGNvbEluZGV4OiBudW1iZXI7XG4gICAgdG90YWxSb3dzOiBudW1iZXI7XG4gICAgdG90YWxDb2xzOiBudW1iZXI7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka0ZvY3VzYWJsZUl0ZW1dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IEZvY3VzYWJsZUl0ZW1EaXJlY3RpdmVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIEZvY3VzYWJsZUl0ZW0ge1xuICAgIC8qKiBXaGV0aGVyIHRoZSBpdGVtIGlzIGZvY3VzYWJsZS4gRGVmYXVsdCBpcyB0cnVlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZka0ZvY3VzYWJsZUl0ZW0odmFsOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbCk7XG4gICAgICAgIHRoaXMuc2V0VGFiYmFibGUodGhpcy5fZm9jdXNhYmxlKTtcbiAgICB9XG5cbiAgICBnZXQgZmRrRm9jdXNhYmxlSXRlbSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzYWJsZTtcbiAgICB9XG5cbiAgICAvKiogRnVuY3Rpb24sIHdoaWNoIHJldHVybnMgYSBzdHJpbmcgdG8gYmUgYW5ub3VuY2VkIGJ5IHNjcmVlbi1yZWFkZXIgd2hlbmV2ZXIgYW4gaXRlbSB3aGljaCBpcyBpbiBncmlkIHJlY2VpdmVzIGZvY3VzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2VsbEZvY3VzZWRFdmVudEFubm91bmNlcjogQ2VsbEZvY3VzZWRFdmVudEFubm91bmNlciA9IHRoaXMuX2RlZmF1bHRJdGVtRm9jdXNlZEV2ZW50QW5ub3VuY2VyO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgY2VsbCByZWNlaXZlcyBmb2N1cywgbm90IGJlaW5nIGVtaXR0ZWQgd2hlbiBmb2N1cyBtb3ZlcyBiZXR3ZWVuIGl0ZW0ncyBjaGlsZHJlbi4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBjZWxsRm9jdXNlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNhYmxlSXRlbVBvc2l0aW9uPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBrZXlkb3duID0gbmV3IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Bvc2l0aW9uOiBGb2N1c2FibGVJdGVtUG9zaXRpb247XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gICAgZ2V0IF90YWJpbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFiYmFibGUgPyAwIDogLTE7XG4gICAgfVxuXG4gICAgLyoqIEVsZW1lbnQgcmVmZXJlbmNlLiAqL1xuICAgIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF96b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzYWJsZSA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RhYmJhYmxlRWxlbWVudHMgPSBuZXcgTWFwPEhUTUxFbGVtZW50LCBudW1iZXI+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RhYmJhYmxlID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdGltZXJJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNhYmxlT2JzZXJ2ZXIgPSBpbmplY3QoRm9jdXNhYmxlT2JzZXJ2ZXIpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFiYmFibGVFbGVtZW50U2VydmljZSA9IGluamVjdChUYWJiYWJsZUVsZW1lbnRTZXJ2aWNlKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2xpdmVBbm5vdW5jZXIgPSBpbmplY3QoTGl2ZUFubm91bmNlcik7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RvY3VtZW50ID0gaW5qZWN0KERPQ1VNRU5UKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZU9ic2VydmVyXG4gICAgICAgICAgICAub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYsIGZhbHNlKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChpc0ZvY3VzYWJsZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghaXNGb2N1c2FibGUgJiYgaXNGb2N1c2FibGUgIT09IHRoaXMuZmRrRm9jdXNhYmxlSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZka0ZvY3VzYWJsZUl0ZW0gPSBpc0ZvY3VzYWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgIGZyb21FdmVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2ZvY3VzaW4nKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9vbkZvY3VzaW4oKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgZnJvbUV2ZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnZm9jdXNvdXQnKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vbkZvY3Vzb3V0KCk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGZyb21FdmVudDxLZXlib2FyZEV2ZW50Pih0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ2tleWRvd24nKVxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZWxlbWVudCA9ICgpOiBIVE1MRWxlbWVudCA9PiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaXNGb2N1c2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb2N1c2FibGU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKiogU2V0IHRhYmJhYmxlIHN0YXRlICovXG4gICAgc2V0VGFiYmFibGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFiYmFibGUgPSBzdGF0ZTtcblxuICAgICAgICBpZiAoc3RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2VuYWJsZVRhYmJhYmxlRWxlbWVudHMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVUYWJiYWJsZUVsZW1lbnRzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgYXN5bmMgX29uRm9jdXNpbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCF0aGlzLmZka0ZvY3VzYWJsZUl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl90aW1lcklkICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl90aW1lcklkKTtcbiAgICAgICAgICAgIHRoaXMuX3RpbWVySWQgPSBudWxsO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX3Bvc2l0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmNlbGxGb2N1c2VkLm5leHQodGhpcy5fcG9zaXRpb24pO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5jZWxsRm9jdXNlZEV2ZW50QW5ub3VuY2VyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbGl2ZUFubm91bmNlci5jbGVhcigpO1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX2xpdmVBbm5vdW5jZXIuYW5ub3VuY2UodGhpcy5jZWxsRm9jdXNlZEV2ZW50QW5ub3VuY2VyKHRoaXMuX3Bvc2l0aW9uKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29uRm9jdXNvdXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5mZGtGb2N1c2FibGVJdGVtKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaW1lb3V0IGlzIG5lZWRlZCB0byBwcmV2ZW50IGZvY3Vzb3V0IGV2ZW50IGZyb20gYmVpbmcgZW1pdHRlZCB3aGVuIGZvY3VzIG1vdmVzIGJldHdlZW4gaXRlbSdzIGNoaWxkcmVuLlxuICAgICAgICB0aGlzLl90aW1lcklkID0gc2V0VGltZW91dCgoKSA9PiAodGhpcy5fdGltZXJJZCA9IG51bGwpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZmRrRm9jdXNhYmxlSXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNGb2N1c2VkID0gdGhpcy5fZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHNob3VsZEZvY3VzQ2hpbGQgPSBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBNQUNfRU5URVIsIEYyXSkgJiYgIWV2ZW50LnNoaWZ0S2V5ICYmIGlzRm9jdXNlZDtcbiAgICAgICAgY29uc3Qgc2hvdWxkRm9jdXNDZWxsID1cbiAgICAgICAgICAgICgoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIEYyKSAmJiBldmVudC5zaGlmdEtleSkgfHwgS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIEVTQ0FQRSkpICYmICFpc0ZvY3VzZWQ7XG5cbiAgICAgICAgaWYgKHNob3VsZEZvY3VzQ2hpbGQpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICBjb25zdCB0YWJiYWJsZUVsZW1lbnQgPSB0aGlzLl90YWJiYWJsZUVsZW1lbnRTZXJ2aWNlLmdldFRhYmJhYmxlRWxlbWVudChcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICB0cnVlXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB0YWJiYWJsZUVsZW1lbnQ/LmZvY3VzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChzaG91bGRGb2N1c0NlbGwpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICB0aGlzLmtleWRvd24ubmV4dChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2VuYWJsZVRhYmJhYmxlRWxlbWVudHMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl90YWJiYWJsZUVsZW1lbnRzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3RhYmJhYmxlRWxlbWVudHMuZm9yRWFjaCgodGFiSW5kZXgsIGVsZW1lbnQpID0+IChlbGVtZW50LnRhYkluZGV4ID0gdGFiSW5kZXgpKTtcbiAgICAgICAgdGhpcy5fdGFiYmFibGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2Rpc2FibGVUYWJiYWJsZUVsZW1lbnRzKCk6IHZvaWQge1xuICAgICAgICAvLyBTaW5jZSB3ZSBjYW5ub3Qgc2VsZWN0IGJ5IHRhYmluZGV4IGF0dHJpYnV0ZSAobGlua3MsIGlucHV0cywgYnV0dG9ucyBtaWdodCBub3QgaGF2ZSBvbmUgYnV0IHN0aWxsIGNhbiBiZSBmb2N1c2FibGUpLFxuICAgICAgICAvLyBTZWxlY3QgYWxsIGVsZW1lbnRzIGZyb20gdGhlIGNlbGwgYW5kIGZpbHRlciBieSB0YWJJbmRleCBwcm9wZXJ0eS5cbiAgICAgICAgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PignKicpKVxuICAgICAgICAgICAgLmZpbHRlcigoZWxtKSA9PiBlbG0udGFiSW5kZXggPj0gMClcbiAgICAgICAgICAgIC5mb3JFYWNoKChlbG0pID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl90YWJiYWJsZUVsZW1lbnRzLnNldChlbG0sIGVsbS50YWJJbmRleCk7XG4gICAgICAgICAgICAgICAgZWxtLnRhYkluZGV4ID0gLTE7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RlZmF1bHRJdGVtRm9jdXNlZEV2ZW50QW5ub3VuY2VyKHBvc2l0aW9uOiBGb2N1c2FibGVJdGVtUG9zaXRpb24pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYENvbHVtbiAke3Bvc2l0aW9uLmNvbEluZGV4ICsgMX0gb2YgJHtwb3NpdGlvbi50b3RhbENvbHN9LCByb3c6ICR7cG9zaXRpb24ucm93SW5kZXggKyAxfSBvZiAke1xuICAgICAgICAgICAgcG9zaXRpb24udG90YWxSb3dzXG4gICAgICAgIH1gO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
|
-
import { FocusableItemDirective
|
|
2
|
+
import { FocusableItemDirective } from './focusable-item.directive';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class FocusableItemModule {
|
|
5
5
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FocusableItemModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: FocusableItemModule, imports: [FocusableItemDirective
|
|
6
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: FocusableItemModule, imports: [FocusableItemDirective], exports: [FocusableItemDirective] }); }
|
|
7
7
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FocusableItemModule }); }
|
|
8
8
|
}
|
|
9
9
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FocusableItemModule, decorators: [{
|
|
10
10
|
type: NgModule,
|
|
11
11
|
args: [{
|
|
12
|
-
imports: [FocusableItemDirective
|
|
13
|
-
exports: [FocusableItemDirective
|
|
12
|
+
imports: [FocusableItemDirective],
|
|
13
|
+
exports: [FocusableItemDirective]
|
|
14
14
|
}]
|
|
15
15
|
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWl0ZW0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1pdGVtL2ZvY3VzYWJsZS1pdGVtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQU1wRSxNQUFNLE9BQU8sbUJBQW1COzhHQUFuQixtQkFBbUI7K0dBQW5CLG1CQUFtQixZQUhsQixzQkFBc0IsYUFDdEIsc0JBQXNCOytHQUV2QixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBSi9CLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ2pDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2N1c2FibGVJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9mb2N1c2FibGUtaXRlbS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtGb2N1c2FibGVJdGVtRGlyZWN0aXZlXSxcbiAgICBleHBvcnRzOiBbRm9jdXNhYmxlSXRlbURpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgRm9jdXNhYmxlSXRlbU1vZHVsZSB7fVxuIl19
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { DOCUMENT } from '@angular/common';
|
|
2
2
|
import { ContentChildren, DestroyRef, Directive, ElementRef, EventEmitter, HostBinding, HostListener, inject, Input, Output, QueryList, Renderer2 } from '@angular/core';
|
|
3
3
|
import { finalize, map, startWith, takeUntil, tap } from 'rxjs/operators';
|
|
4
|
-
import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
|
|
5
4
|
import { FDK_FOCUSABLE_ITEM_DIRECTIVE, FocusableObserver, isItemFocusable } from '../focusable-item';
|
|
6
5
|
import { FDK_FOCUSABLE_LIST_DIRECTIVE } from './focusable-list.tokens';
|
|
7
6
|
import { merge, Subject } from 'rxjs';
|
|
@@ -14,29 +13,6 @@ import { getItemElement } from '../focusable-item/get-item-element';
|
|
|
14
13
|
import { destroyObservable } from '../../helpers';
|
|
15
14
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
16
15
|
import * as i0 from "@angular/core";
|
|
17
|
-
export class DeprecatedFocusableListDirective extends DeprecatedSelector {
|
|
18
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DeprecatedFocusableListDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
19
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: DeprecatedFocusableListDirective, isStandalone: true, selector: "[fnFocusableList]", providers: [
|
|
20
|
-
{
|
|
21
|
-
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
22
|
-
useValue: getDeprecatedModel('[fdkFocusableList]', '[fnFocusableList]')
|
|
23
|
-
}
|
|
24
|
-
], usesInheritance: true, ngImport: i0 }); }
|
|
25
|
-
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DeprecatedFocusableListDirective, decorators: [{
|
|
27
|
-
type: Directive,
|
|
28
|
-
args: [{
|
|
29
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
30
|
-
selector: '[fnFocusableList]',
|
|
31
|
-
standalone: true,
|
|
32
|
-
providers: [
|
|
33
|
-
{
|
|
34
|
-
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
35
|
-
useValue: getDeprecatedModel('[fdkFocusableList]', '[fnFocusableList]')
|
|
36
|
-
}
|
|
37
|
-
]
|
|
38
|
-
}]
|
|
39
|
-
}] });
|
|
40
16
|
export class FocusableListDirective {
|
|
41
17
|
/** Whether the whole list should be focusable, handy in grids. */
|
|
42
18
|
set focusable(value) {
|
|
@@ -320,4 +296,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
320
296
|
type: HostListener,
|
|
321
297
|
args: ['focus']
|
|
322
298
|
}] } });
|
|
323
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWxpc3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1saXN0L2ZvY3VzYWJsZS1saXN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUVILGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUUsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUNILDRCQUE0QixFQUc1QixpQkFBaUIsRUFDakIsZUFBZSxFQUNsQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkUsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0s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QUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFJlbmRlcmVyMixcbiAgICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmluYWxpemUsIG1hcCwgc3RhcnRXaXRoLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbiB9IGZyb20gJy4uL2ZvY3VzYWJsZS1pdGVtL2ZvY3VzYWJsZS1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQge1xuICAgIERlcHJlY2F0ZWRTZWxlY3RvcixcbiAgICBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICBnZXREZXByZWNhdGVkTW9kZWxcbn0gZnJvbSAnLi4vLi4vZGVwcmVjYXRlZC1zZWxlY3Rvci5jbGFzcyc7XG5pbXBvcnQge1xuICAgIEZES19GT0NVU0FCTEVfSVRFTV9ESVJFQ1RJVkUsXG4gICAgRm9jdXNhYmxlSXRlbSxcbiAgICBGb2N1c2FibGVMaXN0UG9zaXRpb24sXG4gICAgRm9jdXNhYmxlT2JzZXJ2ZXIsXG4gICAgaXNJdGVtRm9jdXNhYmxlXG59IGZyb20gJy4uL2ZvY3VzYWJsZS1pdGVtJztcbmltcG9ydCB7IEZES19GT0NVU0FCTEVfTElTVF9ESVJFQ1RJVkUgfSBmcm9tICcuL2ZvY3VzYWJsZS1saXN0LnRva2Vucyc7XG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbnVsbGFibGUnO1xuaW1wb3J0IHsgRm9jdXNLZXlNYW5hZ2VyLCBMaXZlQW5ub3VuY2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgaW50ZXJzZWN0aW9uT2JzZXJ2YWJsZSwgS2V5VXRpbCB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBFTlRFUiwgRVNDQVBFLCBGMiwgTUFDX0VOVEVSIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IHNjcm9sbEludG9WaWV3LCBTY3JvbGxQb3NpdGlvbiB9IGZyb20gJy4vc2Nyb2xsJztcbmltcG9ydCB7IGdldEl0ZW1FbGVtZW50IH0gZnJvbSAnLi4vZm9jdXNhYmxlLWl0ZW0vZ2V0LWl0ZW0tZWxlbWVudCc7XG5pbXBvcnQgeyBkZXN0cm95T2JzZXJ2YWJsZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvY3VzYWJsZUxpc3RJdGVtRm9jdXNlZEV2ZW50IHtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIHRvdGFsOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9jdXNhYmxlTGlzdEtleWRvd25FdmVudCB7XG4gICAgbGlzdDogRm9jdXNhYmxlTGlzdERpcmVjdGl2ZTtcbiAgICBldmVudDogS2V5Ym9hcmRFdmVudDtcbiAgICBhY3RpdmVJdGVtSW5kZXg6IE51bGxhYmxlPG51bWJlcj47XG59XG5cbmludGVyZmFjZSBGb2N1c2FibGVMaXN0Q29uZmlnIHtcbiAgICB3cmFwPzogYm9vbGVhbjtcbiAgICBkaXJlY3Rpb24/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnO1xuICAgIGNvbnRlbnREaXJlY3Rpb24/OiAnbHRyJyB8ICdydGwnIHwgbnVsbDtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1tmbkZvY3VzYWJsZUxpc3RdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICAgICAgICAgIHVzZVZhbHVlOiBnZXREZXByZWNhdGVkTW9kZWwoJ1tmZGtGb2N1c2FibGVMaXN0XScsICdbZm5Gb2N1c2FibGVMaXN0XScpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIERlcHJlY2F0ZWRGb2N1c2FibGVMaXN0RGlyZWN0aXZlIGV4dGVuZHMgRGVwcmVjYXRlZFNlbGVjdG9yIHt9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka0ZvY3VzYWJsZUxpc3RdJyxcbiAgICBleHBvcnRBczogJ2Zka0ZvY3VzYWJsZUxpc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZES19GT0NVU0FCTEVfTElTVF9ESVJFQ1RJVkUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogRm9jdXNhYmxlTGlzdERpcmVjdGl2ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2N1c2FibGVMaXN0RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBXaGV0aGVyIHRoZSB3aG9sZSBsaXN0IHNob3VsZCBiZSBmb2N1c2FibGUsIGhhbmR5IGluIGdyaWRzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZvY3VzYWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgdGhpcy5zZXRUYWJiYWJsZSh0aGlzLl9mb2N1c2FibGUpO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb2N1c2FibGU7XG4gICAgfVxuXG4gICAgLyoqIERpcmVjdGlvbiBvZiBuYXZpZ2F0aW9uLiBTaG91bGQgYmUgc2V0IHRvICdncmlkJyB3aGVuIGxpc3QgaXMgYSBwYXJ0IG9mIGdyaWQuICovXG4gICAgQElucHV0KClcbiAgICBuYXZpZ2F0aW9uRGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnIHwgJ2dyaWQnID0gJ3ZlcnRpY2FsJztcblxuICAgIC8qKiBEaXJlY3Rpb24gb2YgdGhlIGNvbnRlbnQuICovXG4gICAgQElucHV0KClcbiAgICBjb250ZW50RGlyZWN0aW9uOiAnbHRyJyB8ICdydGwnIHwgbnVsbCA9ICdsdHInO1xuXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJlcyB3cmFwcGluZyBtb2RlIHdoaWNoIGRldGVybWluZXMgd2hldGhlciB0aGUgYWN0aXZlIGl0ZW0gd2lsbCB3cmFwIHRvIHRoZSBvdGhlciBlbmQgb2YgbGlzdCB3aGVuIHRoZXJlIGFyZSBubyBtb3JlIGl0ZW1zIGluIHRoZSBnaXZlbiBkaXJlY3Rpb24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB3cmFwID0gZmFsc2U7XG5cbiAgICAvKiogRnVuY3Rpb24sIHdoaWNoIHJldHVybnMgYSBzdHJpbmcgdG8gYmUgYW5ub3VuY2VkIGJ5IHNjcmVlbi1yZWFkZXIgd2hlbmV2ZXIgYW4gcm93IHdoaWNoIGlzIGluIGdyaWQgcmVjZWl2ZXMgZm9jdXMuICovXG4gICAgQElucHV0KClcbiAgICBsaXN0Rm9jdXNlZEV2ZW50QW5ub3VuY2VyOiAocG9zaXRpb246IEZvY3VzYWJsZUxpc3RQb3NpdGlvbikgPT4gc3RyaW5nID0gdGhpcy5fZGVmYXVsdExpc3RGb2N1c2VkRXZlbnRBbm5vdW5jZXI7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGxpc3QncyBpdGVtIGZvY3VzZWQsIGNvbnRhaW5zIGl0ZW0ncyBwb3NpdGlvbiBpbmZvLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGl0ZW1Gb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c2FibGVMaXN0SXRlbUZvY3VzZWRFdmVudD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcmVhZG9ubHkgX3Byb2plY3RlZEZvY3VzYWJsZUl0ZW1zOiBRdWVyeUxpc3Q8Rm9jdXNhYmxlSXRlbT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfZm9jdXNhYmxlSXRlbXMoKTogUXVlcnlMaXN0PEZvY3VzYWJsZUl0ZW0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zID8gdGhpcy5faXRlbXMgOiB0aGlzLl9wcm9qZWN0ZWRGb2N1c2FibGVJdGVtcztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pdGVtczogUXVlcnlMaXN0PEZvY3VzYWJsZUl0ZW0+IHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfZ3JpZEl0ZW1Gb2N1c2VkJCA9IG5ldyBTdWJqZWN0PEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX2dyaWRMaXN0Rm9jdXNlZCQgPSBuZXcgU3ViamVjdDxGb2N1c2FibGVMaXN0UG9zaXRpb24+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9rZXlkb3duJCA9IG5ldyBTdWJqZWN0PEZvY3VzYWJsZUxpc3RLZXlkb3duRXZlbnQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pc1Zpc2libGUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2ZvY3VzYWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9ncmlkUG9zaXRpb246IHsgcm93SW5kZXg6IG51bWJlcjsgdG90YWxSb3dzOiBudW1iZXIgfTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfa2V5TWFuYWdlcj86IEZvY3VzS2V5TWFuYWdlcjxGb2N1c2FibGVJdGVtPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdGFiYmFibGUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVmcmVzaEl0ZW1zJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yZWZyZXNoJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9saXZlQW5ub3VuY2VyID0gaW5qZWN0KExpdmVBbm5vdW5jZXIpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNhYmxlT2JzZXJ2ZXIgPSBpbmplY3QoRm9jdXNhYmxlT2JzZXJ2ZXIpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gICAgZ2V0IF90YWJpbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFiYmFibGUgPyAwIDogLTE7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgaW50ZXJzZWN0aW9uT2JzZXJ2YWJsZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHsgdGhyZXNob2xkOiAwLjI1IH0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGlzVmlzaWJsZSkgPT4gKHRoaXMuX2lzVmlzaWJsZSA9IGlzVmlzaWJsZVswXT8uaXNJbnRlcnNlY3RpbmcpKTtcblxuICAgICAgICB0aGlzLl9mb2N1c2FibGVPYnNlcnZlclxuICAgICAgICAgICAgLm9ic2VydmUodGhpcy5fZWxlbWVudFJlZiwgZmFsc2UpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGlzRm9jdXNhYmxlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc0ZvY3VzYWJsZSAmJiBpc0ZvY3VzYWJsZSAhPT0gdGhpcy5mb2N1c2FibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c2FibGUgPSBpc0ZvY3VzYWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIF9vbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gQWxyZWFkeSBoYW5kbGVkXG4gICAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc0ZvY3VzZWQgPSB0aGlzLl9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHNob3VsZEZvY3VzQ2hpbGQgPSBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBNQUNfRU5URVIsIEYyXSkgJiYgIWV2ZW50LnNoaWZ0S2V5ICYmIGlzRm9jdXNlZDtcbiAgICAgICAgY29uc3Qgc2hvdWxkRm9jdXNMaXN0ID1cbiAgICAgICAgICAgICgoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIEYyKSAmJiBldmVudC5zaGlmdEtleSkgfHwgS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIEVTQ0FQRSkpICYmICFpc0ZvY3VzZWQ7XG5cbiAgICAgICAgaWYgKHNob3VsZEZvY3VzQ2hpbGQpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0oMCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChzaG91bGRGb2N1c0xpc3QpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLmZvY3VzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2tleWRvd24kLm5leHQoeyBsaXN0OiB0aGlzLCBldmVudCwgYWN0aXZlSXRlbUluZGV4OiB0aGlzLl9rZXlNYW5hZ2VyPy5hY3RpdmVJdGVtSW5kZXggPz8gbnVsbCB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBhc3luYyBfb25Gb2N1cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX2dyaWRQb3NpdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fZ3JpZExpc3RGb2N1c2VkJC5uZXh0KHRoaXMuX2dyaWRQb3NpdGlvbik7XG5cbiAgICAgICAgICAgIHRoaXMuX2xpdmVBbm5vdW5jZXIuY2xlYXIoKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2xpdmVBbm5vdW5jZXIuYW5ub3VuY2UodGhpcy5saXN0Rm9jdXNlZEV2ZW50QW5ub3VuY2VyKHRoaXMuX2dyaWRQb3NpdGlvbikpO1xuXG4gICAgICAgICAgICB0aGlzLnNldFRhYmJhYmxlKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fa2V5TWFuYWdlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXNbJ3dyYXAnXSkge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlciA9IHRoaXMuX2tleU1hbmFnZXIud2l0aFdyYXAoY2hhbmdlc1snd3JhcCddLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlc1snbmF2aWdhdGlvbkRpcmVjdGlvbiddKSB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVOYXZpZ2F0aW9uRGlyZWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdGVuT25JdGVtcygpO1xuICAgIH1cblxuICAgIC8qKiBTZXQgaXRlbXMgcHJvZ3JhbW1hdGljYWxseS4gKi9cbiAgICBzZXRJdGVtcyhpdGVtczogUXVlcnlMaXN0PEZvY3VzYWJsZUl0ZW0+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2l0ZW1zID0gaXRlbXM7XG4gICAgICAgIHRoaXMuX2xpc3Rlbk9uSXRlbXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqIFNldCBhY3RpdmUgaXRlbSBpbiBsaXN0ICovXG4gICAgc2V0QWN0aXZlSXRlbShpbmRleDogbnVtYmVyLCBzY3JvbGxQb3NpdGlvbj86IFNjcm9sbFBvc2l0aW9uKTogdm9pZCB7XG4gICAgICAgIGxldCBhdmFpbGFibGVJbmRleDtcblxuICAgICAgICB0aGlzLl9mb2N1c2FibGVJdGVtcy5maW5kKChpdGVtLCBpdGVtSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtSW5kZXggPj0gaW5kZXggJiYgaXNJdGVtRm9jdXNhYmxlKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgYXZhaWxhYmxlSW5kZXggPSBpdGVtSW5kZXg7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGF2YWlsYWJsZUluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHNjcm9sbEludG9WaWV3KGdldEl0ZW1FbGVtZW50KHRoaXMuX2ZvY3VzYWJsZUl0ZW1zLmdldChhdmFpbGFibGVJbmRleCkpLCBzY3JvbGxQb3NpdGlvbik7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKGF2YWlsYWJsZUluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBGb2N1cyB3aG9sZSBsaXN0ICovXG4gICAgZm9jdXMoc2Nyb2xsUG9zaXRpb24/OiBTY3JvbGxQb3NpdGlvbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2FibGUpIHtcbiAgICAgICAgICAgIHNjcm9sbEludG9WaWV3KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgc2Nyb2xsUG9zaXRpb24pO1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogU2V0IHRhYmJhYmxlIHN0YXRlICovXG4gICAgc2V0VGFiYmFibGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFiYmFibGUgPSBzdGF0ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF91cGRhdGVOYXZpZ2F0aW9uRGlyZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2tleU1hbmFnZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5hdmlnYXRpb25EaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSB0aGlzLl9rZXlNYW5hZ2VyLndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKHRydWUpO1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlciA9IHRoaXMuX2tleU1hbmFnZXIud2l0aEhvcml6b250YWxPcmllbnRhdGlvbihudWxsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSB0aGlzLl9rZXlNYW5hZ2VyLndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSB0aGlzLl9rZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5jb250ZW50RGlyZWN0aW9uIHx8ICdsdHInKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldEl0ZW1zVGFiYmFibGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5zZXRUYWJiYWJsZShzdGF0ZSkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldEdyaWRQb3NpdGlvbihwb3NpdGlvbjogRm9jdXNhYmxlTGlzdFBvc2l0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2dyaWRQb3NpdGlvbiA9IHBvc2l0aW9uO1xuXG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZUl0ZW1zLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aCh0aGlzLl9mb2N1c2FibGVJdGVtcyksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW1zKSA9PlxuICAgICAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goXG4gICAgICAgICAgICAgICAgICAgIChpdGVtLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtLl9wb3NpdGlvbiA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLl9ncmlkUG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sSW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsQ29sczogdGhpcy5fZm9jdXNhYmxlSXRlbXMubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbml0aWFsaXplRm9jdXNNYW5hZ2VyKGl0ZW1zOiBGb2N1c2FibGVJdGVtW10sIGNvbmZpZzogRm9jdXNhYmxlTGlzdENvbmZpZyA9IHt9KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlZnJlc2hJdGVtcyQubmV4dCgpO1xuXG4gICAgICAgIGxldCBrZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcjxhbnk+KGl0ZW1zKS53aXRoSG9tZUFuZEVuZCgpO1xuXG4gICAgICAgIGlmIChjb25maWcud3JhcCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGtleU1hbmFnZXIgPSBrZXlNYW5hZ2VyLndpdGhXcmFwKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZmlnLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgICBrZXlNYW5hZ2VyID0ga2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKGNvbmZpZy5jb250ZW50RGlyZWN0aW9uIHx8ICdsdHInKTsgLy8gc2hvdWxkIGJlIHJlcGxhY2VkXG5cbiAgICAgICAgICAgIC8vIFZlcnRpY2FsIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCwgc28gbGV0J3MgZGlzYWJsZSBpdCBoZXJlIGluIGNvbnNpc3RlbmN5IHB1cnBvc2VzXG4gICAgICAgICAgICBrZXlNYW5hZ2VyID0ga2V5TWFuYWdlci53aXRoVmVydGljYWxPcmllbnRhdGlvbihmYWxzZSk7XG4gICAgICAgIH1cblxuICAgICAgICBrZXlNYW5hZ2VyLnNraXBQcmVkaWNhdGUoKGkpID0+ICFpc0l0ZW1Gb2N1c2FibGUoaSkpO1xuXG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSBrZXlNYW5hZ2VyO1xuXG4gICAgICAgIGNvbnN0IGZvY3VzTGlzdGVuZXJEZXN0cm95ZXJzID0gaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT5cbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmxpc3RlbihnZXRJdGVtRWxlbWVudChpdGVtKSwgJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpcmVjdGl2ZUl0ZW0gPSB0aGlzLl9mb2N1c2FibGVJdGVtcy5nZXQoaW5kZXgpO1xuICAgICAgICAgICAgICAgIGlmICghZGlyZWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2dyaWRQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9ncmlkSXRlbUZvY3VzZWQkLm5leHQoZGlyZWN0aXZlSXRlbS5fcG9zaXRpb24hKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1Gb2N1c2VkLm5leHQoeyBpbmRleCwgdG90YWw6IGl0ZW1zLmxlbmd0aCB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9mb2N1c2FibGVJdGVtcy5mb3JFYWNoKChpKSA9PiBpLnNldFRhYmJhYmxlKGkgPT09IGRpcmVjdGl2ZUl0ZW0pKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKGluZGV4KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgbWVyZ2UoLi4uaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLmtleWRvd24pKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBBbHJlYWR5IGhhbmRsZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXI/Lm9uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKG1lcmdlKHRoaXMuX3JlZnJlc2hJdGVtcyQsIGRlc3Ryb3lPYnNlcnZhYmxlKHRoaXMuX2Rlc3Ryb3lSZWYpKSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gZm9jdXNMaXN0ZW5lckRlc3Ryb3llcnMuZm9yRWFjaCgoZCkgPT4gZCgpKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RlZmF1bHRMaXN0Rm9jdXNlZEV2ZW50QW5ub3VuY2VyKHBvc2l0aW9uOiBGb2N1c2FibGVMaXN0UG9zaXRpb24pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYFJvdzogJHtwb3NpdGlvbi5yb3dJbmRleCArIDF9IG9mICR7cG9zaXRpb24udG90YWxSb3dzfSwgdXNlIEYyIGJ1dHRvbiB0byBkaXZlIGluIGFuZCBmb2N1cyBsaXN0J3MgaXRlbWA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Pbkl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZWZyZXNoJCA9IG1lcmdlKHRoaXMuX3JlZnJlc2gkLCBkZXN0cm95T2JzZXJ2YWJsZSh0aGlzLl9kZXN0cm95UmVmKSk7XG4gICAgICAgIHRoaXMuX3JlZnJlc2gkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlSXRlbXMuY2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLl9mb2N1c2FibGVJdGVtcy50b0FycmF5KCkpLFxuICAgICAgICAgICAgICAgIHRhcCgoaXRlbXM6IEZvY3VzYWJsZUl0ZW1bXSk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSB0aGlzLm5hdmlnYXRpb25EaXJlY3Rpb24gPT09ICdncmlkJyA/ICdob3Jpem9udGFsJyA6IHRoaXMubmF2aWdhdGlvbkRpcmVjdGlvbjtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplRm9jdXNNYW5hZ2VyKGl0ZW1zLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50RGlyZWN0aW9uOiB0aGlzLmNvbnRlbnREaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICB3cmFwOiB0aGlzLndyYXBcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHJlZnJlc2gkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
299
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWxpc3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1saXN0L2ZvY3VzYWJsZS1saXN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUVILGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUVaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUUsT0FBTyxFQUNILDRCQUE0QixFQUc1QixpQkFBaUIsRUFDakIsZUFBZSxFQUNsQixNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXRDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkUsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckUsT0FBTyxFQUFFLGNBQWMsRUFBa0IsTUFB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QjtvQkFDOUIsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsNEJBQTRCOzRCQUNyQyxXQUFXLHdCQUF3Qjt5QkFDdEM7cUJBQ0o7aUJBQ0o7MEVBSU8sU0FBUztzQkFEWixLQUFLO2dCQWFOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFPTixJQUFJO3NCQURILEtBQUs7Z0JBS04seUJBQXlCO3NCQUR4QixLQUFLO2dCQUtHLFdBQVc7c0JBRG5CLE1BQU07Z0JBS0Usd0JBQXdCO3NCQURoQyxlQUFlO3VCQUFDLDRCQUE0QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkF3RGhFLFNBQVM7c0JBRFosV0FBVzt1QkFBQyxlQUFlO2dCQXVCNUIsVUFBVTtzQkFEVCxZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkErQjdCLFFBQVE7c0JBRGIsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgaW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBSZW5kZXJlcjIsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpbmFsaXplLCBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGb2N1c2FibGVJdGVtUG9zaXRpb24gfSBmcm9tICcuLi9mb2N1c2FibGUtaXRlbS9mb2N1c2FibGUtaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtcbiAgICBGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFLFxuICAgIEZvY3VzYWJsZUl0ZW0sXG4gICAgRm9jdXNhYmxlTGlzdFBvc2l0aW9uLFxuICAgIEZvY3VzYWJsZU9ic2VydmVyLFxuICAgIGlzSXRlbUZvY3VzYWJsZVxufSBmcm9tICcuLi9mb2N1c2FibGUtaXRlbSc7XG5pbXBvcnQgeyBGREtfRk9DVVNBQkxFX0xJU1RfRElSRUNUSVZFIH0gZnJvbSAnLi9mb2N1c2FibGUtbGlzdC50b2tlbnMnO1xuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL251bGxhYmxlJztcbmltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciwgTGl2ZUFubm91bmNlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IGludGVyc2VjdGlvbk9ic2VydmFibGUsIEtleVV0aWwgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgRU5URVIsIEVTQ0FQRSwgRjIsIE1BQ19FTlRFUiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBzY3JvbGxJbnRvVmlldywgU2Nyb2xsUG9zaXRpb24gfSBmcm9tICcuL3Njcm9sbCc7XG5pbXBvcnQgeyBnZXRJdGVtRWxlbWVudCB9IGZyb20gJy4uL2ZvY3VzYWJsZS1pdGVtL2dldC1pdGVtLWVsZW1lbnQnO1xuaW1wb3J0IHsgZGVzdHJveU9ic2VydmFibGUgfSBmcm9tICcuLi8uLi9oZWxwZXJzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuZXhwb3J0IGludGVyZmFjZSBGb2N1c2FibGVMaXN0SXRlbUZvY3VzZWRFdmVudCB7XG4gICAgaW5kZXg6IG51bWJlcjtcbiAgICB0b3RhbDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZvY3VzYWJsZUxpc3RLZXlkb3duRXZlbnQge1xuICAgIGxpc3Q6IEZvY3VzYWJsZUxpc3REaXJlY3RpdmU7XG4gICAgZXZlbnQ6IEtleWJvYXJkRXZlbnQ7XG4gICAgYWN0aXZlSXRlbUluZGV4OiBOdWxsYWJsZTxudW1iZXI+O1xufVxuXG5pbnRlcmZhY2UgRm9jdXNhYmxlTGlzdENvbmZpZyB7XG4gICAgd3JhcD86IGJvb2xlYW47XG4gICAgZGlyZWN0aW9uPzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJztcbiAgICBjb250ZW50RGlyZWN0aW9uPzogJ2x0cicgfCAncnRsJyB8IG51bGw7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka0ZvY3VzYWJsZUxpc3RdJyxcbiAgICBleHBvcnRBczogJ2Zka0ZvY3VzYWJsZUxpc3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZES19GT0NVU0FCTEVfTElTVF9ESVJFQ1RJVkUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogRm9jdXNhYmxlTGlzdERpcmVjdGl2ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBGb2N1c2FibGVMaXN0RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKiBXaGV0aGVyIHRoZSB3aG9sZSBsaXN0IHNob3VsZCBiZSBmb2N1c2FibGUsIGhhbmR5IGluIGdyaWRzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZvY3VzYWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgdGhpcy5zZXRUYWJiYWJsZSh0aGlzLl9mb2N1c2FibGUpO1xuICAgIH1cblxuICAgIGdldCBmb2N1c2FibGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb2N1c2FibGU7XG4gICAgfVxuXG4gICAgLyoqIERpcmVjdGlvbiBvZiBuYXZpZ2F0aW9uLiBTaG91bGQgYmUgc2V0IHRvICdncmlkJyB3aGVuIGxpc3QgaXMgYSBwYXJ0IG9mIGdyaWQuICovXG4gICAgQElucHV0KClcbiAgICBuYXZpZ2F0aW9uRGlyZWN0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnIHwgJ2dyaWQnID0gJ3ZlcnRpY2FsJztcblxuICAgIC8qKiBEaXJlY3Rpb24gb2YgdGhlIGNvbnRlbnQuICovXG4gICAgQElucHV0KClcbiAgICBjb250ZW50RGlyZWN0aW9uOiAnbHRyJyB8ICdydGwnIHwgbnVsbCA9ICdsdHInO1xuXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJlcyB3cmFwcGluZyBtb2RlIHdoaWNoIGRldGVybWluZXMgd2hldGhlciB0aGUgYWN0aXZlIGl0ZW0gd2lsbCB3cmFwIHRvIHRoZSBvdGhlciBlbmQgb2YgbGlzdCB3aGVuIHRoZXJlIGFyZSBubyBtb3JlIGl0ZW1zIGluIHRoZSBnaXZlbiBkaXJlY3Rpb24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB3cmFwID0gZmFsc2U7XG5cbiAgICAvKiogRnVuY3Rpb24sIHdoaWNoIHJldHVybnMgYSBzdHJpbmcgdG8gYmUgYW5ub3VuY2VkIGJ5IHNjcmVlbi1yZWFkZXIgd2hlbmV2ZXIgYW4gcm93IHdoaWNoIGlzIGluIGdyaWQgcmVjZWl2ZXMgZm9jdXMuICovXG4gICAgQElucHV0KClcbiAgICBsaXN0Rm9jdXNlZEV2ZW50QW5ub3VuY2VyOiAocG9zaXRpb246IEZvY3VzYWJsZUxpc3RQb3NpdGlvbikgPT4gc3RyaW5nID0gdGhpcy5fZGVmYXVsdExpc3RGb2N1c2VkRXZlbnRBbm5vdW5jZXI7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIGxpc3QncyBpdGVtIGZvY3VzZWQsIGNvbnRhaW5zIGl0ZW0ncyBwb3NpdGlvbiBpbmZvLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGl0ZW1Gb2N1c2VkID0gbmV3IEV2ZW50RW1pdHRlcjxGb2N1c2FibGVMaXN0SXRlbUZvY3VzZWRFdmVudD4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihGREtfRk9DVVNBQkxFX0lURU1fRElSRUNUSVZFLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcmVhZG9ubHkgX3Byb2plY3RlZEZvY3VzYWJsZUl0ZW1zOiBRdWVyeUxpc3Q8Rm9jdXNhYmxlSXRlbT47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfZm9jdXNhYmxlSXRlbXMoKTogUXVlcnlMaXN0PEZvY3VzYWJsZUl0ZW0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zID8gdGhpcy5faXRlbXMgOiB0aGlzLl9wcm9qZWN0ZWRGb2N1c2FibGVJdGVtcztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pdGVtczogUXVlcnlMaXN0PEZvY3VzYWJsZUl0ZW0+IHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWFkb25seSBfZ3JpZEl0ZW1Gb2N1c2VkJCA9IG5ldyBTdWJqZWN0PEZvY3VzYWJsZUl0ZW1Qb3NpdGlvbj4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcmVhZG9ubHkgX2dyaWRMaXN0Rm9jdXNlZCQgPSBuZXcgU3ViamVjdDxGb2N1c2FibGVMaXN0UG9zaXRpb24+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHJlYWRvbmx5IF9rZXlkb3duJCA9IG5ldyBTdWJqZWN0PEZvY3VzYWJsZUxpc3RLZXlkb3duRXZlbnQ+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pc1Zpc2libGUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgX2ZvY3VzYWJsZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9ncmlkUG9zaXRpb246IHsgcm93SW5kZXg6IG51bWJlcjsgdG90YWxSb3dzOiBudW1iZXIgfTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfa2V5TWFuYWdlcj86IEZvY3VzS2V5TWFuYWdlcjxGb2N1c2FibGVJdGVtPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdGFiYmFibGUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVmcmVzaEl0ZW1zJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yZWZyZXNoJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9yZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gPSBpbmplY3QoRWxlbWVudFJlZik7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9saXZlQW5ub3VuY2VyID0gaW5qZWN0KExpdmVBbm5vdW5jZXIpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9jdXNhYmxlT2JzZXJ2ZXIgPSBpbmplY3QoRm9jdXNhYmxlT2JzZXJ2ZXIpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudCA9IGluamVjdChET0NVTUVOVCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpXG4gICAgZ2V0IF90YWJpbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFiYmFibGUgPyAwIDogLTE7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgaW50ZXJzZWN0aW9uT2JzZXJ2YWJsZSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIHsgdGhyZXNob2xkOiAwLjI1IH0pXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGlzVmlzaWJsZSkgPT4gKHRoaXMuX2lzVmlzaWJsZSA9IGlzVmlzaWJsZVswXT8uaXNJbnRlcnNlY3RpbmcpKTtcblxuICAgICAgICB0aGlzLl9mb2N1c2FibGVPYnNlcnZlclxuICAgICAgICAgICAgLm9ic2VydmUodGhpcy5fZWxlbWVudFJlZiwgZmFsc2UpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGlzRm9jdXNhYmxlKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc0ZvY3VzYWJsZSAmJiBpc0ZvY3VzYWJsZSAhPT0gdGhpcy5mb2N1c2FibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c2FibGUgPSBpc0ZvY3VzYWJsZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIF9vbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gQWxyZWFkeSBoYW5kbGVkXG4gICAgICAgIGlmIChldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBpc0ZvY3VzZWQgPSB0aGlzLl9kb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IHNob3VsZEZvY3VzQ2hpbGQgPSBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgW0VOVEVSLCBNQUNfRU5URVIsIEYyXSkgJiYgIWV2ZW50LnNoaWZ0S2V5ICYmIGlzRm9jdXNlZDtcbiAgICAgICAgY29uc3Qgc2hvdWxkRm9jdXNMaXN0ID1cbiAgICAgICAgICAgICgoS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIEYyKSAmJiBldmVudC5zaGlmdEtleSkgfHwgS2V5VXRpbC5pc0tleUNvZGUoZXZlbnQsIEVTQ0FQRSkpICYmICFpc0ZvY3VzZWQ7XG5cbiAgICAgICAgaWYgKHNob3VsZEZvY3VzQ2hpbGQpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLnNldEFjdGl2ZUl0ZW0oMCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChzaG91bGRGb2N1c0xpc3QpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgICAgICB0aGlzLmZvY3VzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2tleWRvd24kLm5leHQoeyBsaXN0OiB0aGlzLCBldmVudCwgYWN0aXZlSXRlbUluZGV4OiB0aGlzLl9rZXlNYW5hZ2VyPy5hY3RpdmVJdGVtSW5kZXggPz8gbnVsbCB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzJylcbiAgICBhc3luYyBfb25Gb2N1cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX2dyaWRQb3NpdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fZ3JpZExpc3RGb2N1c2VkJC5uZXh0KHRoaXMuX2dyaWRQb3NpdGlvbik7XG5cbiAgICAgICAgICAgIHRoaXMuX2xpdmVBbm5vdW5jZXIuY2xlYXIoKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2xpdmVBbm5vdW5jZXIuYW5ub3VuY2UodGhpcy5saXN0Rm9jdXNlZEV2ZW50QW5ub3VuY2VyKHRoaXMuX2dyaWRQb3NpdGlvbikpO1xuXG4gICAgICAgICAgICB0aGlzLnNldFRhYmJhYmxlKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fa2V5TWFuYWdlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXNbJ3dyYXAnXSkge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlciA9IHRoaXMuX2tleU1hbmFnZXIud2l0aFdyYXAoY2hhbmdlc1snd3JhcCddLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlc1snbmF2aWdhdGlvbkRpcmVjdGlvbiddKSB7XG4gICAgICAgICAgICB0aGlzLl91cGRhdGVOYXZpZ2F0aW9uRGlyZWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGlzdGVuT25JdGVtcygpO1xuICAgIH1cblxuICAgIC8qKiBTZXQgaXRlbXMgcHJvZ3JhbW1hdGljYWxseS4gKi9cbiAgICBzZXRJdGVtcyhpdGVtczogUXVlcnlMaXN0PEZvY3VzYWJsZUl0ZW0+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2l0ZW1zID0gaXRlbXM7XG4gICAgICAgIHRoaXMuX2xpc3Rlbk9uSXRlbXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgLyoqIFNldCBhY3RpdmUgaXRlbSBpbiBsaXN0ICovXG4gICAgc2V0QWN0aXZlSXRlbShpbmRleDogbnVtYmVyLCBzY3JvbGxQb3NpdGlvbj86IFNjcm9sbFBvc2l0aW9uKTogdm9pZCB7XG4gICAgICAgIGxldCBhdmFpbGFibGVJbmRleDtcblxuICAgICAgICB0aGlzLl9mb2N1c2FibGVJdGVtcy5maW5kKChpdGVtLCBpdGVtSW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpdGVtSW5kZXggPj0gaW5kZXggJiYgaXNJdGVtRm9jdXNhYmxlKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgYXZhaWxhYmxlSW5kZXggPSBpdGVtSW5kZXg7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGF2YWlsYWJsZUluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHNjcm9sbEludG9WaWV3KGdldEl0ZW1FbGVtZW50KHRoaXMuX2ZvY3VzYWJsZUl0ZW1zLmdldChhdmFpbGFibGVJbmRleCkpLCBzY3JvbGxQb3NpdGlvbik7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKGF2YWlsYWJsZUluZGV4KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBGb2N1cyB3aG9sZSBsaXN0ICovXG4gICAgZm9jdXMoc2Nyb2xsUG9zaXRpb24/OiBTY3JvbGxQb3NpdGlvbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb2N1c2FibGUpIHtcbiAgICAgICAgICAgIHNjcm9sbEludG9WaWV3KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgc2Nyb2xsUG9zaXRpb24pO1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogU2V0IHRhYmJhYmxlIHN0YXRlICovXG4gICAgc2V0VGFiYmFibGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGFiYmFibGUgPSBzdGF0ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF91cGRhdGVOYXZpZ2F0aW9uRGlyZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2tleU1hbmFnZXIpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm5hdmlnYXRpb25EaXJlY3Rpb24gPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSB0aGlzLl9rZXlNYW5hZ2VyLndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKHRydWUpO1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlciA9IHRoaXMuX2tleU1hbmFnZXIud2l0aEhvcml6b250YWxPcmllbnRhdGlvbihudWxsKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSB0aGlzLl9rZXlNYW5hZ2VyLndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSB0aGlzLl9rZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5jb250ZW50RGlyZWN0aW9uIHx8ICdsdHInKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldEl0ZW1zVGFiYmFibGUoc3RhdGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4gaXRlbS5zZXRUYWJiYWJsZShzdGF0ZSkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldEdyaWRQb3NpdGlvbihwb3NpdGlvbjogRm9jdXNhYmxlTGlzdFBvc2l0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2dyaWRQb3NpdGlvbiA9IHBvc2l0aW9uO1xuXG4gICAgICAgIHRoaXMuX2ZvY3VzYWJsZUl0ZW1zLmNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKHN0YXJ0V2l0aCh0aGlzLl9mb2N1c2FibGVJdGVtcyksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGl0ZW1zKSA9PlxuICAgICAgICAgICAgICAgIGl0ZW1zLmZvckVhY2goXG4gICAgICAgICAgICAgICAgICAgIChpdGVtLCBpbmRleCkgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIChpdGVtLl9wb3NpdGlvbiA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi50aGlzLl9ncmlkUG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sSW5kZXg6IGluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsQ29sczogdGhpcy5fZm9jdXNhYmxlSXRlbXMubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbml0aWFsaXplRm9jdXNNYW5hZ2VyKGl0ZW1zOiBGb2N1c2FibGVJdGVtW10sIGNvbmZpZzogRm9jdXNhYmxlTGlzdENvbmZpZyA9IHt9KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlZnJlc2hJdGVtcyQubmV4dCgpO1xuXG4gICAgICAgIGxldCBrZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcjxhbnk+KGl0ZW1zKS53aXRoSG9tZUFuZEVuZCgpO1xuXG4gICAgICAgIGlmIChjb25maWcud3JhcCAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGtleU1hbmFnZXIgPSBrZXlNYW5hZ2VyLndpdGhXcmFwKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZmlnLmRpcmVjdGlvbiA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgICBrZXlNYW5hZ2VyID0ga2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKGNvbmZpZy5jb250ZW50RGlyZWN0aW9uIHx8ICdsdHInKTsgLy8gc2hvdWxkIGJlIHJlcGxhY2VkXG5cbiAgICAgICAgICAgIC8vIFZlcnRpY2FsIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCwgc28gbGV0J3MgZGlzYWJsZSBpdCBoZXJlIGluIGNvbnNpc3RlbmN5IHB1cnBvc2VzXG4gICAgICAgICAgICBrZXlNYW5hZ2VyID0ga2V5TWFuYWdlci53aXRoVmVydGljYWxPcmllbnRhdGlvbihmYWxzZSk7XG4gICAgICAgIH1cblxuICAgICAgICBrZXlNYW5hZ2VyLnNraXBQcmVkaWNhdGUoKGkpID0+ICFpc0l0ZW1Gb2N1c2FibGUoaSkpO1xuXG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXIgPSBrZXlNYW5hZ2VyO1xuXG4gICAgICAgIGNvbnN0IGZvY3VzTGlzdGVuZXJEZXN0cm95ZXJzID0gaXRlbXMubWFwKChpdGVtLCBpbmRleCkgPT5cbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmxpc3RlbihnZXRJdGVtRWxlbWVudChpdGVtKSwgJ2ZvY3VzJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRpcmVjdGl2ZUl0ZW0gPSB0aGlzLl9mb2N1c2FibGVJdGVtcy5nZXQoaW5kZXgpO1xuICAgICAgICAgICAgICAgIGlmICghZGlyZWN0aXZlSXRlbSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2dyaWRQb3NpdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLW5vbi1udWxsLWFzc2VydGlvblxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9ncmlkSXRlbUZvY3VzZWQkLm5leHQoZGlyZWN0aXZlSXRlbS5fcG9zaXRpb24hKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1Gb2N1c2VkLm5leHQoeyBpbmRleCwgdG90YWw6IGl0ZW1zLmxlbmd0aCB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9mb2N1c2FibGVJdGVtcy5mb3JFYWNoKChpKSA9PiBpLnNldFRhYmJhYmxlKGkgPT09IGRpcmVjdGl2ZUl0ZW0pKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKGluZGV4KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgbWVyZ2UoLi4uaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLmtleWRvd24pKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFwKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBBbHJlYWR5IGhhbmRsZWRcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2tleU1hbmFnZXI/Lm9uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKG1lcmdlKHRoaXMuX3JlZnJlc2hJdGVtcyQsIGRlc3Ryb3lPYnNlcnZhYmxlKHRoaXMuX2Rlc3Ryb3lSZWYpKSksXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4gZm9jdXNMaXN0ZW5lckRlc3Ryb3llcnMuZm9yRWFjaCgoZCkgPT4gZCgpKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RlZmF1bHRMaXN0Rm9jdXNlZEV2ZW50QW5ub3VuY2VyKHBvc2l0aW9uOiBGb2N1c2FibGVMaXN0UG9zaXRpb24pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYFJvdzogJHtwb3NpdGlvbi5yb3dJbmRleCArIDF9IG9mICR7cG9zaXRpb24udG90YWxSb3dzfSwgdXNlIEYyIGJ1dHRvbiB0byBkaXZlIGluIGFuZCBmb2N1cyBsaXN0J3MgaXRlbWA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Pbkl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZWZyZXNoJCA9IG1lcmdlKHRoaXMuX3JlZnJlc2gkLCBkZXN0cm95T2JzZXJ2YWJsZSh0aGlzLl9kZXN0cm95UmVmKSk7XG4gICAgICAgIHRoaXMuX3JlZnJlc2gkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fZm9jdXNhYmxlSXRlbXMuY2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB0aGlzLl9mb2N1c2FibGVJdGVtcy50b0FycmF5KCkpLFxuICAgICAgICAgICAgICAgIHRhcCgoaXRlbXM6IEZvY3VzYWJsZUl0ZW1bXSk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSB0aGlzLm5hdmlnYXRpb25EaXJlY3Rpb24gPT09ICdncmlkJyA/ICdob3Jpem9udGFsJyA6IHRoaXMubmF2aWdhdGlvbkRpcmVjdGlvbjtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplRm9jdXNNYW5hZ2VyKGl0ZW1zLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50RGlyZWN0aW9uOiB0aGlzLmNvbnRlbnREaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICB3cmFwOiB0aGlzLndyYXBcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHJlZnJlc2gkKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
|
-
import { FocusableListDirective
|
|
3
|
-
import {
|
|
2
|
+
import { FocusableListDirective } from './focusable-list.directive';
|
|
3
|
+
import { FocusableItemDirective } from '../focusable-item';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export class FocusableListModule {
|
|
6
6
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FocusableListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: FocusableListModule, imports: [
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FocusableListModule
|
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: FocusableListModule, imports: [FocusableItemDirective, FocusableListDirective], exports: [FocusableItemDirective, FocusableListDirective] }); }
|
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FocusableListModule }); }
|
|
9
9
|
}
|
|
10
10
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: FocusableListModule, decorators: [{
|
|
11
11
|
type: NgModule,
|
|
12
12
|
args: [{
|
|
13
|
-
imports: [
|
|
14
|
-
exports: [
|
|
13
|
+
imports: [FocusableItemDirective, FocusableListDirective],
|
|
14
|
+
exports: [FocusableItemDirective, FocusableListDirective]
|
|
15
15
|
}]
|
|
16
16
|
}] });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXNhYmxlLWxpc3QubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2ZvY3VzYWJsZS1saXN0L2ZvY3VzYWJsZS1saXN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQU0zRCxNQUFNLE9BQU8sbUJBQW1COzhHQUFuQixtQkFBbUI7K0dBQW5CLG1CQUFtQixZQUhsQixzQkFBc0IsRUFBRSxzQkFBc0IsYUFDOUMsc0JBQXNCLEVBQUUsc0JBQXNCOytHQUUvQyxtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBSi9CLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUM7b0JBQ3pELE9BQU8sRUFBRSxDQUFDLHNCQUFzQixFQUFFLHNCQUFzQixDQUFDO2lCQUM1RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2N1c2FibGVMaXN0RGlyZWN0aXZlIH0gZnJvbSAnLi9mb2N1c2FibGUtbGlzdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uL2ZvY3VzYWJsZS1pdGVtJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbRm9jdXNhYmxlSXRlbURpcmVjdGl2ZSwgRm9jdXNhYmxlTGlzdERpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW0ZvY3VzYWJsZUl0ZW1EaXJlY3RpdmUsIEZvY3VzYWJsZUxpc3REaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIEZvY3VzYWJsZUxpc3RNb2R1bGUge31cbiJdfQ==
|
package/esm2022/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.mjs
CHANGED
|
@@ -1,31 +1,7 @@
|
|
|
1
1
|
import { Directive, ElementRef, HostListener, Inject } from '@angular/core';
|
|
2
2
|
import { DOCUMENT } from '@angular/common';
|
|
3
3
|
import { IgnoreClickOnSelectionDirectiveToken } from './tokens';
|
|
4
|
-
import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
|
|
5
4
|
import * as i0 from "@angular/core";
|
|
6
|
-
export class DeprecatedIgnoreClickOnSelectionDirective extends DeprecatedSelector {
|
|
7
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DeprecatedIgnoreClickOnSelectionDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: DeprecatedIgnoreClickOnSelectionDirective, isStandalone: true, selector: "[fdIgnoreClickOnSelection]", providers: [
|
|
9
|
-
{
|
|
10
|
-
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
11
|
-
useValue: getDeprecatedModel('[fdkIgnoreClickOnSelection]', '[fdIgnoreClickOnSelection]')
|
|
12
|
-
}
|
|
13
|
-
], usesInheritance: true, ngImport: i0 }); }
|
|
14
|
-
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DeprecatedIgnoreClickOnSelectionDirective, decorators: [{
|
|
16
|
-
type: Directive,
|
|
17
|
-
args: [{
|
|
18
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
19
|
-
selector: '[fdIgnoreClickOnSelection]',
|
|
20
|
-
standalone: true,
|
|
21
|
-
providers: [
|
|
22
|
-
{
|
|
23
|
-
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
24
|
-
useValue: getDeprecatedModel('[fdkIgnoreClickOnSelection]', '[fdIgnoreClickOnSelection]')
|
|
25
|
-
}
|
|
26
|
-
]
|
|
27
|
-
}]
|
|
28
|
-
}] });
|
|
29
5
|
/**
|
|
30
6
|
* Directive will stop propagation and prevent default of click, if selected area is coming from
|
|
31
7
|
* directive's host element. This gives ability to not cancel all clicks on element, just the ones
|
|
@@ -50,7 +26,7 @@ export class IgnoreClickOnSelectionDirective {
|
|
|
50
26
|
}
|
|
51
27
|
}
|
|
52
28
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: IgnoreClickOnSelectionDirective, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
53
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: IgnoreClickOnSelectionDirective, isStandalone: true, selector: "[fdkIgnoreClickOnSelection]
|
|
29
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.0", type: IgnoreClickOnSelectionDirective, isStandalone: true, selector: "[fdkIgnoreClickOnSelection]", host: { listeners: { "click": "clicked($event)" } }, providers: [
|
|
54
30
|
{
|
|
55
31
|
provide: IgnoreClickOnSelectionDirectiveToken,
|
|
56
32
|
useExisting: IgnoreClickOnSelectionDirective
|
|
@@ -60,7 +36,7 @@ export class IgnoreClickOnSelectionDirective {
|
|
|
60
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: IgnoreClickOnSelectionDirective, decorators: [{
|
|
61
37
|
type: Directive,
|
|
62
38
|
args: [{
|
|
63
|
-
selector: '[fdkIgnoreClickOnSelection]
|
|
39
|
+
selector: '[fdkIgnoreClickOnSelection]',
|
|
64
40
|
standalone: true,
|
|
65
41
|
providers: [
|
|
66
42
|
{
|
|
@@ -76,4 +52,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
76
52
|
type: HostListener,
|
|
77
53
|
args: ['click', ['$event']]
|
|
78
54
|
}] } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdub3JlLWNsaWNrLW9uLXNlbGVjdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvaWdub3JlLWNsaWNrLW9uLXNlbGVjdGlvbi9pZ25vcmUtY2xpY2stb24tc2VsZWN0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBRWhFOzs7O0dBSUc7QUFXSCxNQUFNLE9BQU8sK0JBQStCO0lBQ3hDLGNBQWM7SUFDZCxZQUFzQyxRQUFrQixFQUFVLFdBQW9DO1FBQWhFLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7SUFBRyxDQUFDO0lBRTFHLDBGQUEwRjtJQUUxRixPQUFPLENBQUMsTUFBa0I7UUFDdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMvQyxJQUFJLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUN2QixJQUNJLFNBQVMsQ0FBQyxVQUFVO2dCQUNwQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO29CQUM1RCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUNwRjtnQkFDRSxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUMzQjtTQUNKO0lBQ0wsQ0FBQzs4R0FsQlEsK0JBQStCLGtCQUVwQixRQUFRO2tHQUZuQiwrQkFBK0IsK0hBUDdCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLG9DQUFvQztnQkFDN0MsV0FBVyxFQUFFLCtCQUErQjthQUMvQztTQUNKOzsyRkFFUSwrQkFBK0I7a0JBVjNDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsb0NBQW9DOzRCQUM3QyxXQUFXLGlDQUFpQzt5QkFDL0M7cUJBQ0o7aUJBQ0o7OzBCQUdnQixNQUFNOzJCQUFDLFFBQVE7cUVBSTVCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJZ25vcmVDbGlja09uU2VsZWN0aW9uRGlyZWN0aXZlVG9rZW4gfSBmcm9tICcuL3Rva2Vucyc7XG5cbi8qKlxuICogRGlyZWN0aXZlIHdpbGwgc3RvcCBwcm9wYWdhdGlvbiBhbmQgcHJldmVudCBkZWZhdWx0IG9mIGNsaWNrLCBpZiBzZWxlY3RlZCBhcmVhIGlzIGNvbWluZyBmcm9tXG4gKiBkaXJlY3RpdmUncyBob3N0IGVsZW1lbnQuIFRoaXMgZ2l2ZXMgYWJpbGl0eSB0byBub3QgY2FuY2VsIGFsbCBjbGlja3Mgb24gZWxlbWVudCwganVzdCB0aGUgb25lc1xuICogd2hpY2ggaW5jbHVkZSBzZWxlY3Rpb25cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrSWdub3JlQ2xpY2tPblNlbGVjdGlvbl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IElnbm9yZUNsaWNrT25TZWxlY3Rpb25EaXJlY3RpdmVUb2tlbixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBJZ25vcmVDbGlja09uU2VsZWN0aW9uRGlyZWN0aXZlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIElnbm9yZUNsaWNrT25TZWxlY3Rpb25EaXJlY3RpdmUge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7fVxuXG4gICAgLyoqIEhvc3QgY2xpY2sgbGlzdGVuZXIuIENoZWNrcyBmb3Igc2VsZWN0aW9uIGV4aXN0ZW5jZSBhbmQgaWYgZmluZHMgb25lLCBjaGVja3MgYW5jaG9yICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIGNsaWNrZWQoJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIGlmIChzZWxlY3Rpb24/LnRvU3RyaW5nKCkpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb24uYW5jaG9yTm9kZSAmJlxuICAgICAgICAgICAgICAgICh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaXNTYW1lTm9kZShzZWxlY3Rpb24uYW5jaG9yTm9kZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlzU2FtZU5vZGUoc2VsZWN0aW9uLmFuY2hvck5vZGUucGFyZW50RWxlbWVudCkpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
package/esm2022/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.mjs
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
|
-
import { IgnoreClickOnSelectionDirective
|
|
2
|
+
import { IgnoreClickOnSelectionDirective } from './ignore-click-on-selection.directive';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
export class IgnoreClickOnSelectionModule {
|
|
5
5
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: IgnoreClickOnSelectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: IgnoreClickOnSelectionModule, imports: [IgnoreClickOnSelectionDirective
|
|
6
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.0", ngImport: i0, type: IgnoreClickOnSelectionModule, imports: [IgnoreClickOnSelectionDirective], exports: [IgnoreClickOnSelectionDirective] }); }
|
|
7
7
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: IgnoreClickOnSelectionModule }); }
|
|
8
8
|
}
|
|
9
9
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: IgnoreClickOnSelectionModule, decorators: [{
|
|
10
10
|
type: NgModule,
|
|
11
11
|
args: [{
|
|
12
|
-
imports: [IgnoreClickOnSelectionDirective
|
|
13
|
-
exports: [IgnoreClickOnSelectionDirective
|
|
12
|
+
imports: [IgnoreClickOnSelectionDirective],
|
|
13
|
+
exports: [IgnoreClickOnSelectionDirective]
|
|
14
14
|
}]
|
|
15
15
|
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdub3JlLWNsaWNrLW9uLXNlbGVjdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvaWdub3JlLWNsaWNrLW9uLXNlbGVjdGlvbi9pZ25vcmUtY2xpY2stb24tc2VsZWN0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQU14RixNQUFNLE9BQU8sNEJBQTRCOzhHQUE1Qiw0QkFBNEI7K0dBQTVCLDRCQUE0QixZQUgzQiwrQkFBK0IsYUFDL0IsK0JBQStCOytHQUVoQyw0QkFBNEI7OzJGQUE1Qiw0QkFBNEI7a0JBSnhDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsK0JBQStCLENBQUM7b0JBQzFDLE9BQU8sRUFBRSxDQUFDLCtCQUErQixDQUFDO2lCQUM3QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZ25vcmVDbGlja09uU2VsZWN0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9pZ25vcmUtY2xpY2stb24tc2VsZWN0aW9uLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0lnbm9yZUNsaWNrT25TZWxlY3Rpb25EaXJlY3RpdmVdLFxuICAgIGV4cG9ydHM6IFtJZ25vcmVDbGlja09uU2VsZWN0aW9uRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBJZ25vcmVDbGlja09uU2VsZWN0aW9uTW9kdWxlIHt9XG4iXX0=
|