@odx/angular 1.0.0-rc.6 → 1.0.0-rc.8
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/cdk/active-indicator/lib/active-indicator.directive.d.ts +1 -0
- package/cdk/connected-overlay/README.md +3 -0
- package/cdk/connected-overlay/index.d.ts +3 -0
- package/cdk/connected-overlay/lib/connected-overlay.component.d.ts +28 -0
- package/cdk/connected-overlay/lib/connected-overlay.service.d.ts +10 -0
- package/cdk/connected-overlay/lib/helpers/compute-overlay-position.d.ts +3 -0
- package/cdk/connected-overlay/lib/helpers/get-opposite-overlay-side.d.ts +2 -0
- package/cdk/connected-overlay/lib/helpers/get-overlay-side.d.ts +2 -0
- package/cdk/connected-overlay/lib/helpers/index.d.ts +3 -0
- package/cdk/connected-overlay/lib/models/connected-overlay-options.d.ts +23 -0
- package/cdk/connected-overlay/lib/models/connected-overlay-ref.d.ts +12 -0
- package/cdk/connected-overlay/lib/models/index.d.ts +2 -0
- package/cdk/dynamic-view/lib/models/dynamic-view-options.d.ts +1 -1
- package/components/circular-progress/lib/circular-progress.component.d.ts +1 -0
- package/components/dropdown/README.md +3 -0
- package/components/dropdown/index.d.ts +4 -0
- package/components/dropdown/lib/dropdown.component.d.ts +11 -0
- package/components/dropdown/lib/dropdown.directive.d.ts +36 -0
- package/components/dropdown/lib/dropdown.module.d.ts +8 -0
- package/components/dropdown/lib/models/dropdown-options.d.ts +3 -0
- package/components/dropdown/lib/models/index.d.ts +1 -0
- package/components/inline-message/README.md +3 -0
- package/components/inline-message/index.d.ts +2 -0
- package/components/inline-message/lib/inline-message.component.d.ts +9 -0
- package/components/inline-message/lib/models/inline-message-variant.d.ts +7 -0
- package/components/launch-tile/README.md +3 -0
- package/components/launch-tile/index.d.ts +5 -0
- package/components/launch-tile/lib/components/launch-tile-footer/launch-tile-footer.component.d.ts +5 -0
- package/components/launch-tile/lib/components/launch-tile-subtitle/launch-tile-subtitle.component.d.ts +5 -0
- package/components/launch-tile/lib/directives/launch-tile-menu/launch-tile-menu.directive.d.ts +5 -0
- package/components/launch-tile/lib/launch-tile.component.d.ts +11 -0
- package/components/launch-tile/lib/launch-tile.module.d.ts +16 -0
- package/components/loading-spinner/lib/loading-spinner.component.d.ts +2 -2
- package/components/loading-spinner/lib/loading-spinner.directive.d.ts +6 -7
- package/components/select/README.md +3 -0
- package/components/select/index.d.ts +7 -0
- package/components/select/lib/abstract/index.d.ts +2 -0
- package/components/select/lib/abstract/select-control-option.d.ts +7 -0
- package/components/select/lib/abstract/select-control.d.ts +11 -0
- package/components/select/lib/components/index.d.ts +1 -0
- package/components/select/lib/components/option/option.component.d.ts +22 -0
- package/components/select/lib/directives/index.d.ts +1 -0
- package/components/select/lib/directives/select-search-field.directive.d.ts +13 -0
- package/components/select/lib/pipes/index.d.ts +1 -0
- package/components/select/lib/pipes/select-search-filter.pipe.d.ts +13 -0
- package/components/select/lib/select.component.d.ts +50 -0
- package/components/select/lib/select.module.d.ts +11 -0
- package/components/select/lib/select.tokens.d.ts +3 -0
- package/components/spinbox/README.md +3 -0
- package/components/spinbox/index.d.ts +1 -0
- package/components/spinbox/lib/spinbox.component.d.ts +25 -0
- package/components/tab-bar/README.md +3 -0
- package/components/tab-bar/index.d.ts +4 -0
- package/components/tab-bar/lib/components/index.d.ts +1 -0
- package/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.d.ts +20 -0
- package/components/tab-bar/lib/models/index.d.ts +1 -0
- package/components/tab-bar/lib/models/tab-change-event.d.ts +5 -0
- package/components/tab-bar/lib/tab-bar.component.d.ts +31 -0
- package/components/tab-bar/lib/tab-bar.config.d.ts +3 -0
- package/components/tab-bar/lib/tab-bar.module.d.ts +9 -0
- package/components/tooltip/README.md +3 -0
- package/components/tooltip/index.d.ts +3 -0
- package/components/tooltip/lib/helpers/index.d.ts +1 -0
- package/components/tooltip/lib/helpers/resolve-tooltip-trigger-events.d.ts +2 -0
- package/components/tooltip/lib/models/index.d.ts +3 -0
- package/components/tooltip/lib/models/tooltip-options.d.ts +10 -0
- package/components/tooltip/lib/models/tooltip-size.d.ts +7 -0
- package/components/tooltip/lib/models/tooltip-trigger.d.ts +1 -0
- package/components/tooltip/lib/tooltip.component.d.ts +12 -0
- package/components/tooltip/lib/tooltip.directive.d.ts +33 -0
- package/esm2020/cdk/active-indicator/lib/active-indicator.directive.mjs +8 -7
- package/esm2020/cdk/connected-overlay/index.mjs +4 -0
- package/esm2020/cdk/connected-overlay/lib/connected-overlay.component.mjs +112 -0
- package/esm2020/cdk/connected-overlay/lib/connected-overlay.service.mjs +25 -0
- package/esm2020/cdk/connected-overlay/lib/helpers/compute-overlay-position.mjs +57 -0
- package/esm2020/cdk/connected-overlay/lib/helpers/get-opposite-overlay-side.mjs +13 -0
- package/esm2020/cdk/connected-overlay/lib/helpers/get-overlay-side.mjs +4 -0
- package/esm2020/cdk/connected-overlay/lib/helpers/index.mjs +4 -0
- package/esm2020/cdk/connected-overlay/lib/models/connected-overlay-options.mjs +10 -0
- package/esm2020/cdk/connected-overlay/lib/models/connected-overlay-ref.mjs +15 -0
- package/esm2020/cdk/connected-overlay/lib/models/index.mjs +3 -0
- package/esm2020/cdk/connected-overlay/odx-angular-cdk-connected-overlay.mjs +5 -0
- package/esm2020/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +5 -3
- package/esm2020/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +4 -2
- package/esm2020/cdk/dynamic-view/lib/models/dynamic-view-options.mjs +1 -1
- package/esm2020/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +3 -3
- package/esm2020/components/circular-progress/lib/circular-progress.component.mjs +11 -4
- package/esm2020/components/dropdown/index.mjs +5 -0
- package/esm2020/components/dropdown/lib/dropdown.component.mjs +31 -0
- package/esm2020/components/dropdown/lib/dropdown.directive.mjs +137 -0
- package/esm2020/components/dropdown/lib/dropdown.module.mjs +18 -0
- package/esm2020/components/dropdown/lib/models/dropdown-options.mjs +8 -0
- package/esm2020/components/dropdown/lib/models/index.mjs +2 -0
- package/esm2020/components/dropdown/odx-angular-components-dropdown.mjs +5 -0
- package/esm2020/components/inline-message/index.mjs +3 -0
- package/esm2020/components/inline-message/lib/inline-message.component.mjs +43 -0
- package/esm2020/components/inline-message/lib/models/inline-message-variant.mjs +7 -0
- package/esm2020/components/inline-message/odx-angular-components-inline-message.mjs +5 -0
- package/esm2020/components/launch-tile/index.mjs +6 -0
- package/esm2020/components/launch-tile/lib/components/launch-tile-footer/launch-tile-footer.component.mjs +13 -0
- package/esm2020/components/launch-tile/lib/components/launch-tile-subtitle/launch-tile-subtitle.component.mjs +13 -0
- package/esm2020/components/launch-tile/lib/directives/launch-tile-menu/launch-tile-menu.directive.mjs +17 -0
- package/esm2020/components/launch-tile/lib/launch-tile.component.mjs +40 -0
- package/esm2020/components/launch-tile/lib/launch-tile.module.mjs +59 -0
- package/esm2020/components/launch-tile/odx-angular-components-launch-tile.mjs +5 -0
- package/esm2020/components/loading-spinner/lib/loading-spinner.component.mjs +7 -7
- package/esm2020/components/loading-spinner/lib/loading-spinner.directive.mjs +28 -24
- package/esm2020/components/main-menu/lib/main-menu.component.mjs +3 -3
- package/esm2020/components/select/index.mjs +8 -0
- package/esm2020/components/select/lib/abstract/index.mjs +3 -0
- package/esm2020/components/select/lib/abstract/select-control-option.mjs +2 -0
- package/esm2020/components/select/lib/abstract/select-control.mjs +2 -0
- package/esm2020/components/select/lib/components/index.mjs +2 -0
- package/esm2020/components/select/lib/components/option/option.component.mjs +78 -0
- package/esm2020/components/select/lib/directives/index.mjs +2 -0
- package/esm2020/components/select/lib/directives/select-search-field.directive.mjs +47 -0
- package/esm2020/components/select/lib/pipes/index.mjs +2 -0
- package/esm2020/components/select/lib/pipes/select-search-filter.pipe.mjs +51 -0
- package/esm2020/components/select/lib/select.component.mjs +190 -0
- package/esm2020/components/select/lib/select.module.mjs +21 -0
- package/esm2020/components/select/lib/select.tokens.mjs +3 -0
- package/esm2020/components/select/odx-angular-components-select.mjs +5 -0
- package/esm2020/components/spinbox/index.mjs +2 -0
- package/esm2020/components/spinbox/lib/spinbox.component.mjs +91 -0
- package/esm2020/components/spinbox/odx-angular-components-spinbox.mjs +5 -0
- package/esm2020/components/tab-bar/index.mjs +5 -0
- package/esm2020/components/tab-bar/lib/components/index.mjs +2 -0
- package/esm2020/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +70 -0
- package/esm2020/components/tab-bar/lib/models/index.mjs +2 -0
- package/esm2020/components/tab-bar/lib/models/tab-change-event.mjs +2 -0
- package/esm2020/components/tab-bar/lib/tab-bar.component.mjs +116 -0
- package/esm2020/components/tab-bar/lib/tab-bar.config.mjs +3 -0
- package/esm2020/components/tab-bar/lib/tab-bar.module.mjs +19 -0
- package/esm2020/components/tab-bar/odx-angular-components-tab-bar.mjs +5 -0
- package/esm2020/components/tooltip/index.mjs +4 -0
- package/esm2020/components/tooltip/lib/helpers/index.mjs +2 -0
- package/esm2020/components/tooltip/lib/helpers/resolve-tooltip-trigger-events.mjs +9 -0
- package/esm2020/components/tooltip/lib/models/index.mjs +4 -0
- package/esm2020/components/tooltip/lib/models/tooltip-options.mjs +10 -0
- package/esm2020/components/tooltip/lib/models/tooltip-size.mjs +7 -0
- package/esm2020/components/tooltip/lib/models/tooltip-trigger.mjs +2 -0
- package/esm2020/components/tooltip/lib/tooltip.component.mjs +39 -0
- package/esm2020/components/tooltip/lib/tooltip.directive.mjs +132 -0
- package/esm2020/components/tooltip/odx-angular-components-tooltip.mjs +5 -0
- package/esm2020/index.mjs +2 -1
- package/esm2020/lib/tokens/identity-matcher.mjs +7 -0
- package/esm2020/lib/tokens/index.mjs +4 -0
- package/esm2020/lib/tokens/string-search-handler.mjs +9 -0
- package/esm2020/lib/tokens/stringify.mjs +8 -0
- package/esm2020/rxjs/index.mjs +3 -1
- package/esm2020/rxjs/lib/delay-until.mjs +5 -0
- package/esm2020/rxjs/lib/form-query-list.mjs +5 -0
- package/esm2020/utils/lib/decorators/index.mjs +2 -1
- package/esm2020/utils/lib/decorators/pure.mjs +37 -0
- package/esm2020/utils/lib/helpers/defer-fn.mjs +4 -0
- package/esm2020/utils/lib/helpers/event-manager.mjs +30 -0
- package/esm2020/utils/lib/helpers/index.mjs +3 -1
- package/fesm2015/odx-angular-cdk-active-indicator.mjs +9 -6
- package/fesm2015/odx-angular-cdk-active-indicator.mjs.map +1 -1
- package/fesm2015/odx-angular-cdk-connected-overlay.mjs +234 -0
- package/fesm2015/odx-angular-cdk-connected-overlay.mjs.map +1 -0
- package/fesm2015/odx-angular-cdk-dynamic-view.mjs +6 -3
- package/fesm2015/odx-angular-cdk-dynamic-view.mjs.map +1 -1
- package/fesm2015/odx-angular-components-accordion.mjs +2 -2
- package/fesm2015/odx-angular-components-accordion.mjs.map +1 -1
- package/fesm2015/odx-angular-components-circular-progress.mjs +10 -3
- package/fesm2015/odx-angular-components-circular-progress.mjs.map +1 -1
- package/fesm2015/odx-angular-components-dropdown.mjs +185 -0
- package/fesm2015/odx-angular-components-dropdown.mjs.map +1 -0
- package/fesm2015/odx-angular-components-inline-message.mjs +55 -0
- package/fesm2015/odx-angular-components-inline-message.mjs.map +1 -0
- package/fesm2015/odx-angular-components-launch-tile.mjs +133 -0
- package/fesm2015/odx-angular-components-launch-tile.mjs.map +1 -0
- package/fesm2015/odx-angular-components-loading-spinner.mjs +75 -85
- package/fesm2015/odx-angular-components-loading-spinner.mjs.map +1 -1
- package/fesm2015/odx-angular-components-main-menu.mjs +2 -2
- package/fesm2015/odx-angular-components-main-menu.mjs.map +1 -1
- package/fesm2015/odx-angular-components-select.mjs +375 -0
- package/fesm2015/odx-angular-components-select.mjs.map +1 -0
- package/fesm2015/odx-angular-components-spinbox.mjs +100 -0
- package/fesm2015/odx-angular-components-spinbox.mjs.map +1 -0
- package/fesm2015/odx-angular-components-tab-bar.mjs +201 -0
- package/fesm2015/odx-angular-components-tab-bar.mjs.map +1 -0
- package/fesm2015/odx-angular-components-tooltip.mjs +187 -0
- package/fesm2015/odx-angular-components-tooltip.mjs.map +1 -0
- package/fesm2015/odx-angular-rxjs.mjs +10 -2
- package/fesm2015/odx-angular-rxjs.mjs.map +1 -1
- package/fesm2015/odx-angular-utils.mjs +72 -2
- package/fesm2015/odx-angular-utils.mjs.map +1 -1
- package/fesm2015/odx-angular.mjs +21 -1
- package/fesm2015/odx-angular.mjs.map +1 -1
- package/fesm2020/odx-angular-cdk-active-indicator.mjs +7 -6
- package/fesm2020/odx-angular-cdk-active-indicator.mjs.map +1 -1
- package/fesm2020/odx-angular-cdk-connected-overlay.mjs +230 -0
- package/fesm2020/odx-angular-cdk-connected-overlay.mjs.map +1 -0
- package/fesm2020/odx-angular-cdk-dynamic-view.mjs +6 -3
- package/fesm2020/odx-angular-cdk-dynamic-view.mjs.map +1 -1
- package/fesm2020/odx-angular-components-accordion.mjs +2 -2
- package/fesm2020/odx-angular-components-accordion.mjs.map +1 -1
- package/fesm2020/odx-angular-components-circular-progress.mjs +10 -3
- package/fesm2020/odx-angular-components-circular-progress.mjs.map +1 -1
- package/fesm2020/odx-angular-components-dropdown.mjs +187 -0
- package/fesm2020/odx-angular-components-dropdown.mjs.map +1 -0
- package/fesm2020/odx-angular-components-inline-message.mjs +55 -0
- package/fesm2020/odx-angular-components-inline-message.mjs.map +1 -0
- package/fesm2020/odx-angular-components-launch-tile.mjs +132 -0
- package/fesm2020/odx-angular-components-launch-tile.mjs.map +1 -0
- package/fesm2020/odx-angular-components-loading-spinner.mjs +74 -84
- package/fesm2020/odx-angular-components-loading-spinner.mjs.map +1 -1
- package/fesm2020/odx-angular-components-main-menu.mjs +2 -2
- package/fesm2020/odx-angular-components-main-menu.mjs.map +1 -1
- package/fesm2020/odx-angular-components-select.mjs +362 -0
- package/fesm2020/odx-angular-components-select.mjs.map +1 -0
- package/fesm2020/odx-angular-components-spinbox.mjs +97 -0
- package/fesm2020/odx-angular-components-spinbox.mjs.map +1 -0
- package/fesm2020/odx-angular-components-tab-bar.mjs +196 -0
- package/fesm2020/odx-angular-components-tab-bar.mjs.map +1 -0
- package/fesm2020/odx-angular-components-tooltip.mjs +192 -0
- package/fesm2020/odx-angular-components-tooltip.mjs.map +1 -0
- package/fesm2020/odx-angular-rxjs.mjs +10 -2
- package/fesm2020/odx-angular-rxjs.mjs.map +1 -1
- package/fesm2020/odx-angular-utils.mjs +71 -2
- package/fesm2020/odx-angular-utils.mjs.map +1 -1
- package/fesm2020/odx-angular.mjs +21 -1
- package/fesm2020/odx-angular.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/lib/tokens/identity-matcher.d.ts +3 -0
- package/lib/tokens/index.d.ts +3 -0
- package/lib/tokens/string-search-handler.d.ts +3 -0
- package/lib/tokens/stringify.d.ts +3 -0
- package/package.json +66 -2
- package/rxjs/index.d.ts +2 -0
- package/rxjs/lib/delay-until.d.ts +2 -0
- package/rxjs/lib/form-query-list.d.ts +3 -0
- package/utils/lib/decorators/index.d.ts +1 -0
- package/utils/lib/decorators/pure.d.ts +1 -0
- package/utils/lib/helpers/defer-fn.d.ts +1 -0
- package/utils/lib/helpers/event-manager.d.ts +12 -0
- package/utils/lib/helpers/index.d.ts +2 -0
- package/components/loading-spinner/lib/loading-spinner.service.d.ts +0 -9
- package/esm2020/components/loading-spinner/lib/loading-spinner.service.mjs +0 -17
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Directive, HostListener, Input } from '@angular/core';
|
|
3
|
+
import { CSSComponent } from '@odx/angular/internal';
|
|
4
|
+
import { injectElement, untilDestroyed } from '@odx/angular/utils';
|
|
5
|
+
import { distinctUntilChanged, fromEvent, map } from 'rxjs';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
let SelectSearchFieldDirective = class SelectSearchFieldDirective {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.takeUntilDestroyed = untilDestroyed();
|
|
10
|
+
this.element = injectElement();
|
|
11
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
12
|
+
this.notFoundContent = null;
|
|
13
|
+
this.valueChange$ = fromEvent(this.element.nativeElement, 'input').pipe(map(() => this.getValue()), distinctUntilChanged(), this.takeUntilDestroyed());
|
|
14
|
+
}
|
|
15
|
+
reset() {
|
|
16
|
+
this.element.nativeElement.value = '';
|
|
17
|
+
}
|
|
18
|
+
focus() {
|
|
19
|
+
this.element.nativeElement.focus();
|
|
20
|
+
}
|
|
21
|
+
getValue() {
|
|
22
|
+
return this.element.nativeElement.value;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
SelectSearchFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SelectSearchFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
26
|
+
SelectSearchFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: SelectSearchFieldDirective, isStandalone: true, selector: "input[odxSelectSearchField]", inputs: { notFoundContent: ["odxSelectSearchField", "notFoundContent"] }, host: { listeners: { "keydown.delete": "reset()" }, properties: { "class.odx-form-field-control": "true" } }, ngImport: i0 });
|
|
27
|
+
SelectSearchFieldDirective = __decorate([
|
|
28
|
+
CSSComponent('select__search')
|
|
29
|
+
], SelectSearchFieldDirective);
|
|
30
|
+
export { SelectSearchFieldDirective };
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SelectSearchFieldDirective, decorators: [{
|
|
32
|
+
type: Directive,
|
|
33
|
+
args: [{
|
|
34
|
+
standalone: true,
|
|
35
|
+
selector: 'input[odxSelectSearchField]',
|
|
36
|
+
host: {
|
|
37
|
+
'[class.odx-form-field-control]': 'true',
|
|
38
|
+
},
|
|
39
|
+
}]
|
|
40
|
+
}], propDecorators: { notFoundContent: [{
|
|
41
|
+
type: Input,
|
|
42
|
+
args: ['odxSelectSearchField']
|
|
43
|
+
}], reset: [{
|
|
44
|
+
type: HostListener,
|
|
45
|
+
args: ['keydown.delete']
|
|
46
|
+
}] } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNlYXJjaC1maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zZWxlY3Qvc3JjL2xpYi9kaXJlY3RpdmVzL3NlbGVjdC1zZWFyY2gtZmllbGQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBVXJELElBQU0sMEJBQTBCLEdBQWhDLE1BQU0sMEJBQTBCO0lBQWhDO1FBQ1ksdUJBQWtCLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFFdkMsWUFBTyxHQUFHLGFBQWEsRUFBb0IsQ0FBQztRQUU1RCwyREFBMkQ7UUFFcEQsb0JBQWUsR0FBMEIsSUFBSSxDQUFDO1FBRTlDLGlCQUFZLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDdkUsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUMxQixvQkFBb0IsRUFBRSxFQUN0QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FDMUIsQ0FBQztLQWNIO0lBWFEsS0FBSztRQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQzFDLENBQUM7O3dIQTFCVSwwQkFBMEI7NEdBQTFCLDBCQUEwQjtBQUExQiwwQkFBMEI7SUFSdEMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO0dBUWxCLDBCQUEwQixDQTJCdEM7U0EzQlksMEJBQTBCOzRGQUExQiwwQkFBMEI7a0JBUHRDLFNBQVM7bUJBQUM7b0JBQ1QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLElBQUksRUFBRTt3QkFDSixnQ0FBZ0MsRUFBRSxNQUFNO3FCQUN6QztpQkFDRjs4QkFRUSxlQUFlO3NCQURyQixLQUFLO3VCQUFDLHNCQUFzQjtnQkFVdEIsS0FBSztzQkFEWCxZQUFZO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRHluYW1pY0NvbnRlbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgaW5qZWN0RWxlbWVudCwgdW50aWxEZXN0cm95ZWQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZyb21FdmVudCwgbWFwIH0gZnJvbSAncnhqcyc7XG5cbkBDU1NDb21wb25lbnQoJ3NlbGVjdF9fc2VhcmNoJylcbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2lucHV0W29keFNlbGVjdFNlYXJjaEZpZWxkXScsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLm9keC1mb3JtLWZpZWxkLWNvbnRyb2xdJzogJ3RydWUnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RTZWFyY2hGaWVsZERpcmVjdGl2ZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFrZVVudGlsRGVzdHJveWVkID0gdW50aWxEZXN0cm95ZWQoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudCA9IGluamVjdEVsZW1lbnQ8SFRNTElucHV0RWxlbWVudD4oKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ29keFNlbGVjdFNlYXJjaEZpZWxkJylcbiAgcHVibGljIG5vdEZvdW5kQ29udGVudDogRHluYW1pY0NvbnRlbnQgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgdmFsdWVDaGFuZ2UkID0gZnJvbUV2ZW50KHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCAnaW5wdXQnKS5waXBlKFxuICAgIG1hcCgoKSA9PiB0aGlzLmdldFZhbHVlKCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgdGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKVxuICApO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZGVsZXRlJylcbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gIH1cblxuICBwdWJsaWMgZm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './select-search-filter.pipe';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zZWxlY3Qvc3JjL2xpYi9waXBlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zZWxlY3Qtc2VhcmNoLWZpbHRlci5waXBlJztcbiJdfQ==
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { inject, Pipe } from '@angular/core';
|
|
3
|
+
import { ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER } from '@odx/angular';
|
|
4
|
+
import { Pure } from '@odx/angular/utils';
|
|
5
|
+
import { SELECT_CONTROL } from '../select.tokens';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class SelectSearchFilterPipe {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.searchController = inject(SELECT_CONTROL, { optional: true });
|
|
10
|
+
this.stringify = inject(ODX_STRINGIFY);
|
|
11
|
+
this.stringSearchHandler = inject(ODX_STRING_SEARCH_HANDLER);
|
|
12
|
+
}
|
|
13
|
+
get searchField() {
|
|
14
|
+
return this.searchController?.searchField;
|
|
15
|
+
}
|
|
16
|
+
transform(items, searchHandler) {
|
|
17
|
+
if (this.searchField) {
|
|
18
|
+
return this.filter(items, this.searchField.getValue(), searchHandler);
|
|
19
|
+
}
|
|
20
|
+
return items;
|
|
21
|
+
}
|
|
22
|
+
filter(items, query, searchHandler) {
|
|
23
|
+
if (!items) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
query = query.trim();
|
|
27
|
+
if (query === '') {
|
|
28
|
+
return items;
|
|
29
|
+
}
|
|
30
|
+
const search = searchHandler ?? this.stringSearchHandler;
|
|
31
|
+
const stringify = this.searchController?.stringify ?? this.stringify;
|
|
32
|
+
return items.filter((item) => search(stringify(item), query));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
SelectSearchFilterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SelectSearchFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
36
|
+
SelectSearchFilterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: SelectSearchFilterPipe, isStandalone: true, name: "odxSelectSearchFilter", pure: false });
|
|
37
|
+
__decorate([
|
|
38
|
+
Pure,
|
|
39
|
+
__metadata("design:type", Function),
|
|
40
|
+
__metadata("design:paramtypes", [Object, String, Function]),
|
|
41
|
+
__metadata("design:returntype", Object)
|
|
42
|
+
], SelectSearchFilterPipe.prototype, "filter", null);
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SelectSearchFilterPipe, decorators: [{
|
|
44
|
+
type: Pipe,
|
|
45
|
+
args: [{
|
|
46
|
+
pure: false,
|
|
47
|
+
name: 'odxSelectSearchFilter',
|
|
48
|
+
standalone: true,
|
|
49
|
+
}]
|
|
50
|
+
}], propDecorators: { filter: [] } });
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXNlYXJjaC1maWx0ZXIucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3NlbGVjdC9zcmMvbGliL3BpcGVzL3NlbGVjdC1zZWFyY2gtZmlsdGVyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLHlCQUF5QixFQUF1QixNQUFNLGNBQWMsQ0FBQztBQUM3RixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQU9sRCxNQUFNLE9BQU8sc0JBQXNCO0lBTG5DO1FBTW1CLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxjQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5RCxjQUFTLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2xDLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0tBMkIxRTtJQXpCQyxJQUFZLFdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDO0lBQzVDLENBQUM7SUFFTSxTQUFTLENBQUksS0FBaUIsRUFBRSxhQUFtQztRQUN4RSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1NBQ3ZFO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBR08sTUFBTSxDQUFJLEtBQWlCLEVBQUUsS0FBYSxFQUFFLGFBQW1DO1FBQ3JGLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDaEIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE1BQU0sTUFBTSxHQUFHLGFBQWEsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDekQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRXJFLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7O29IQTdCVSxzQkFBc0I7a0hBQXRCLHNCQUFzQjtBQWdCakM7SUFBQyxJQUFJOzs7O29EQWFKOzRGQTdCVSxzQkFBc0I7a0JBTGxDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLEtBQUs7b0JBQ1gsSUFBSSxFQUFFLHVCQUF1QjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQWtCUyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPRFhfU1RSSU5HSUZZLCBPRFhfU1RSSU5HX1NFQVJDSF9IQU5ETEVSLCBTdHJpbmdTZWFyY2hIYW5kbGVyIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IFB1cmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgU2VsZWN0U2VhcmNoRmllbGREaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFNFTEVDVF9DT05UUk9MIH0gZnJvbSAnLi4vc2VsZWN0LnRva2Vucyc7XG5cbkBQaXBlKHtcbiAgcHVyZTogZmFsc2UsXG4gIG5hbWU6ICdvZHhTZWxlY3RTZWFyY2hGaWx0ZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RTZWFyY2hGaWx0ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VhcmNoQ29udHJvbGxlciA9IGluamVjdChTRUxFQ1RfQ09OVFJPTCwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdHJpbmdpZnkgPSBpbmplY3QoT0RYX1NUUklOR0lGWSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3RyaW5nU2VhcmNoSGFuZGxlciA9IGluamVjdChPRFhfU1RSSU5HX1NFQVJDSF9IQU5ETEVSKTtcblxuICBwcml2YXRlIGdldCBzZWFyY2hGaWVsZCgpOiBTZWxlY3RTZWFyY2hGaWVsZERpcmVjdGl2ZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoQ29udHJvbGxlcj8uc2VhcmNoRmllbGQ7XG4gIH1cblxuICBwdWJsaWMgdHJhbnNmb3JtPFQ+KGl0ZW1zOiBUW10gfCBudWxsLCBzZWFyY2hIYW5kbGVyPzogU3RyaW5nU2VhcmNoSGFuZGxlcik6IFRbXSB8IG51bGwge1xuICAgIGlmICh0aGlzLnNlYXJjaEZpZWxkKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXIoaXRlbXMsIHRoaXMuc2VhcmNoRmllbGQuZ2V0VmFsdWUoKSwgc2VhcmNoSGFuZGxlcik7XG4gICAgfVxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIEBQdXJlXG4gIHByaXZhdGUgZmlsdGVyPFQ+KGl0ZW1zOiBUW10gfCBudWxsLCBxdWVyeTogc3RyaW5nLCBzZWFyY2hIYW5kbGVyPzogU3RyaW5nU2VhcmNoSGFuZGxlcik6IFRbXSB8IG51bGwge1xuICAgIGlmICghaXRlbXMpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBxdWVyeSA9IHF1ZXJ5LnRyaW0oKTtcbiAgICBpZiAocXVlcnkgPT09ICcnKSB7XG4gICAgICByZXR1cm4gaXRlbXM7XG4gICAgfVxuICAgIGNvbnN0IHNlYXJjaCA9IHNlYXJjaEhhbmRsZXIgPz8gdGhpcy5zdHJpbmdTZWFyY2hIYW5kbGVyO1xuICAgIGNvbnN0IHN0cmluZ2lmeSA9IHRoaXMuc2VhcmNoQ29udHJvbGxlcj8uc3RyaW5naWZ5ID8/IHRoaXMuc3RyaW5naWZ5O1xuXG4gICAgcmV0dXJuIGl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gc2VhcmNoKHN0cmluZ2lmeShpdGVtKSwgcXVlcnkpKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
var SelectComponent_1;
|
|
2
|
+
import { __decorate, __metadata } from "tslib";
|
|
3
|
+
import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
|
|
4
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
5
|
+
import { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, EventEmitter, HostListener, inject, Input, Output, QueryList, ViewChild, ViewEncapsulation, } from '@angular/core';
|
|
6
|
+
import { CoreModule, detectControllerChanges, DisabledController, ODX_IDENTITY_MATCHER, ReadonlyController } from '@odx/angular';
|
|
7
|
+
import { CustomFormControl } from '@odx/angular/cdk/custom-form-control';
|
|
8
|
+
import { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';
|
|
9
|
+
import { DropdownDirective } from '@odx/angular/components/dropdown';
|
|
10
|
+
import { IconComponent } from '@odx/angular/components/icon';
|
|
11
|
+
import { LoadingSpinnerModule } from '@odx/angular/components/loading-spinner';
|
|
12
|
+
import { CSSComponent } from '@odx/angular/internal';
|
|
13
|
+
import { deferFn, injectElement, Transform } from '@odx/angular/utils';
|
|
14
|
+
import { filter } from 'rxjs';
|
|
15
|
+
import { OptionComponent } from './components';
|
|
16
|
+
import { SelectSearchFieldDirective } from './directives';
|
|
17
|
+
import { SELECT_CONTROL } from './select.tokens';
|
|
18
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
import * as i1 from "@angular/common";
|
|
20
|
+
import * as i2 from "@odx/angular";
|
|
21
|
+
let SelectComponent = SelectComponent_1 = class SelectComponent extends CustomFormControl {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(null);
|
|
24
|
+
this.searchFieldEnabled = false;
|
|
25
|
+
this.smoothScrollEnabled = false;
|
|
26
|
+
this.selectedOption = null;
|
|
27
|
+
this.selectedOptionText = null;
|
|
28
|
+
this.element = injectElement();
|
|
29
|
+
this.placeholder = '';
|
|
30
|
+
this.isLoading = false;
|
|
31
|
+
this.selectedOptionTemplate = null;
|
|
32
|
+
this.identityMatcher = inject(ODX_IDENTITY_MATCHER);
|
|
33
|
+
this.change = new EventEmitter();
|
|
34
|
+
detectControllerChanges(this).subscribe();
|
|
35
|
+
}
|
|
36
|
+
get hasOptions() {
|
|
37
|
+
return !!this.options && this.options.length > 0;
|
|
38
|
+
}
|
|
39
|
+
get isOpen() {
|
|
40
|
+
return !!this.dropdown?.isOpen;
|
|
41
|
+
}
|
|
42
|
+
get selectedOptionContent() {
|
|
43
|
+
return this.selectedOption ? this.selectedOptionTemplate ?? this.selectedOptionText : null;
|
|
44
|
+
}
|
|
45
|
+
ngAfterViewInit() {
|
|
46
|
+
if (!this.options)
|
|
47
|
+
return;
|
|
48
|
+
this.keyManager = new ActiveDescendantKeyManager(this.options).withHomeAndEnd().skipPredicate((item) => item.disabled);
|
|
49
|
+
this.options.changes.pipe(filter(() => this.isOpen)).subscribe(() => {
|
|
50
|
+
deferFn(() => this.activateSelectedOption());
|
|
51
|
+
this.triggerControllerChange();
|
|
52
|
+
});
|
|
53
|
+
this.searchField?.valueChange$.subscribe(() => this.triggerControllerChange());
|
|
54
|
+
}
|
|
55
|
+
registerOnChange(fn) {
|
|
56
|
+
super.registerOnChange((value) => {
|
|
57
|
+
this.updateSelectedOption();
|
|
58
|
+
fn(value);
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
selectOption(option) {
|
|
62
|
+
if (option && !option.disabled) {
|
|
63
|
+
this.updateValue(option.value ?? null);
|
|
64
|
+
}
|
|
65
|
+
this.dropdown?.close();
|
|
66
|
+
}
|
|
67
|
+
isOptionSelected(option) {
|
|
68
|
+
if (option && !option.disabled) {
|
|
69
|
+
return this.identityMatcher(option.value, this.value);
|
|
70
|
+
}
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
scrollOptionIntoView({ element }) {
|
|
74
|
+
const behavior = this.smoothScrollEnabled ? 'smooth' : undefined;
|
|
75
|
+
element.nativeElement.scrollIntoView({ block: 'center', behavior });
|
|
76
|
+
}
|
|
77
|
+
openDropdown(event) {
|
|
78
|
+
if (this.isLoading)
|
|
79
|
+
return;
|
|
80
|
+
if (this.isOpen && this.hasOptions) {
|
|
81
|
+
if (event.key === 'Enter' || event.key === 'Tab') {
|
|
82
|
+
event.preventDefault();
|
|
83
|
+
event.stopImmediatePropagation();
|
|
84
|
+
this.selectOption(this.keyManager?.activeItem);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
this.keyManager?.onKeydown(event);
|
|
89
|
+
}
|
|
90
|
+
activateSelectedOption() {
|
|
91
|
+
let activeIndex = this.options?.toArray().findIndex((option) => option.isSelected && !option.disabled);
|
|
92
|
+
if (!activeIndex || activeIndex === -1) {
|
|
93
|
+
activeIndex = this.options?.toArray().findIndex((option) => !option.disabled) ?? -1;
|
|
94
|
+
}
|
|
95
|
+
this.keyManager?.setActiveItem(activeIndex);
|
|
96
|
+
}
|
|
97
|
+
onDropdownOpen() {
|
|
98
|
+
this.activateSelectedOption();
|
|
99
|
+
if (!this.searchFieldEnabled) {
|
|
100
|
+
this.searchFieldEnabled = !!this.searchField;
|
|
101
|
+
deferFn(() => this.searchField?.focus());
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
onDropdownClose() {
|
|
105
|
+
this.disableSmoothScroll();
|
|
106
|
+
if (this.searchFieldEnabled) {
|
|
107
|
+
this.searchFieldEnabled = false;
|
|
108
|
+
this.element.nativeElement?.focus();
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
onDropdownClosed() {
|
|
112
|
+
this.searchField?.reset();
|
|
113
|
+
}
|
|
114
|
+
disableSmoothScroll() {
|
|
115
|
+
this.smoothScrollEnabled = false;
|
|
116
|
+
}
|
|
117
|
+
enableSmoothScroll() {
|
|
118
|
+
this.smoothScrollEnabled = true;
|
|
119
|
+
}
|
|
120
|
+
updateSelectedOption() {
|
|
121
|
+
this.selectedOption = this.options?.toArray()?.find((option) => option.isSelected) ?? null;
|
|
122
|
+
if (this.selectedOption) {
|
|
123
|
+
this.selectedOptionText = this.stringify?.(this.selectedOption?.value) ?? this.selectedOption.getLabel();
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
this.selectedOptionText = null;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
131
|
+
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: SelectComponent, isStandalone: true, selector: "odx-select", inputs: { placeholder: "placeholder", isLoading: "isLoading", selectedOptionTemplate: "selectedOptionTemplate", stringify: "stringify", identityMatcher: "identityMatcher" }, outputs: { change: "change" }, host: { listeners: { "click": "openDropdown($event)", "keydown": "openDropdown($event)" }, properties: { "attr.aria-disabled": "isDisabled || null", "class.is-open": "isOpen", "tabindex": "searchFieldEnabled ? -1 : 0" } }, providers: [
|
|
132
|
+
DisabledController.connect(),
|
|
133
|
+
ReadonlyController.connect(),
|
|
134
|
+
{
|
|
135
|
+
provide: SELECT_CONTROL,
|
|
136
|
+
useExisting: SelectComponent_1,
|
|
137
|
+
},
|
|
138
|
+
], queries: [{ propertyName: "searchField", first: true, predicate: SelectSearchFieldDirective, descendants: true }, { propertyName: "options", predicate: OptionComponent, descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4 }\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n (odxDropdownAfterOpen)=\"enableSmoothScroll()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-select-dropdown\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-option disabled>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-option>\n </ng-template>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "component", type: OptionComponent, selector: "odx-option", inputs: ["value"] }, { kind: "ngmodule", type: LoadingSpinnerModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
139
|
+
__decorate([
|
|
140
|
+
Transform(coerceBooleanProperty),
|
|
141
|
+
__metadata("design:type", Object)
|
|
142
|
+
], SelectComponent.prototype, "isLoading", void 0);
|
|
143
|
+
SelectComponent = SelectComponent_1 = __decorate([
|
|
144
|
+
CSSComponent('select'),
|
|
145
|
+
__metadata("design:paramtypes", [])
|
|
146
|
+
], SelectComponent);
|
|
147
|
+
export { SelectComponent };
|
|
148
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SelectComponent, decorators: [{
|
|
149
|
+
type: Component,
|
|
150
|
+
args: [{ standalone: true, selector: 'odx-select', imports: [CoreModule, DropdownDirective, IconComponent, DynamicViewDirective, OptionComponent, LoadingSpinnerModule], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
151
|
+
DisabledController.connect(),
|
|
152
|
+
ReadonlyController.connect(),
|
|
153
|
+
{
|
|
154
|
+
provide: SELECT_CONTROL,
|
|
155
|
+
useExisting: SelectComponent,
|
|
156
|
+
},
|
|
157
|
+
], host: {
|
|
158
|
+
'[attr.aria-disabled]': 'isDisabled || null',
|
|
159
|
+
'[class.is-open]': 'isOpen',
|
|
160
|
+
'[tabindex]': 'searchFieldEnabled ? -1 : 0',
|
|
161
|
+
}, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4 }\"\n [odxDropdownReferenceElement]=\"element.nativeElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n (odxDropdownAfterOpen)=\"enableSmoothScroll()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-select-dropdown\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-option disabled>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-option>\n </ng-template>\n </div>\n</ng-template>\n" }]
|
|
162
|
+
}], ctorParameters: function () { return []; }, propDecorators: { placeholder: [{
|
|
163
|
+
type: Input
|
|
164
|
+
}], isLoading: [{
|
|
165
|
+
type: Input
|
|
166
|
+
}], selectedOptionTemplate: [{
|
|
167
|
+
type: Input
|
|
168
|
+
}], stringify: [{
|
|
169
|
+
type: Input
|
|
170
|
+
}], identityMatcher: [{
|
|
171
|
+
type: Input
|
|
172
|
+
}], change: [{
|
|
173
|
+
type: Output
|
|
174
|
+
}], searchField: [{
|
|
175
|
+
type: ContentChild,
|
|
176
|
+
args: [SelectSearchFieldDirective]
|
|
177
|
+
}], options: [{
|
|
178
|
+
type: ContentChildren,
|
|
179
|
+
args: [OptionComponent, { descendants: true, emitDistinctChangesOnly: true }]
|
|
180
|
+
}], dropdown: [{
|
|
181
|
+
type: ViewChild,
|
|
182
|
+
args: [DropdownDirective]
|
|
183
|
+
}], openDropdown: [{
|
|
184
|
+
type: HostListener,
|
|
185
|
+
args: ['click', ['$event']]
|
|
186
|
+
}, {
|
|
187
|
+
type: HostListener,
|
|
188
|
+
args: ['keydown', ['$event']]
|
|
189
|
+
}] } });
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3NlbGVjdC9zcmMvbGliL3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zZWxlY3Qvc3JjL2xpYi9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQWdCLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUUsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFFVCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQW1CLG9CQUFvQixFQUFFLGtCQUFrQixFQUFlLE1BQU0sY0FBYyxDQUFDO0FBQy9KLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDckQsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUs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QixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Qsa0JBQWtCLENBQUMsT0FBTyxFQUFFO3dCQUM1QixrQkFBa0IsQ0FBQyxPQUFPLEVBQUU7d0JBQzVCOzRCQUNFLE9BQU8sRUFBRSxjQUFjOzRCQUN2QixXQUFXLGlCQUFpQjt5QkFDN0I7cUJBQ0YsUUFDSzt3QkFDSixzQkFBc0IsRUFBRSxvQkFBb0I7d0JBQzVDLGlCQUFpQixFQUFFLFFBQVE7d0JBQzNCLFlBQVksRUFBRSw2QkFBNkI7cUJBQzVDOzBFQTJCTSxXQUFXO3NCQURqQixLQUFLO2dCQUtDLFNBQVM7c0JBRGYsS0FBSztnQkFJQyxzQkFBc0I7c0JBRDVCLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO2dCQUlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBS0MsTUFBTTtzQkFGWixNQUFNO2dCQUtBLFdBQVc7c0JBRGpCLFlBQVk7dUJBQUMsMEJBQTBCO2dCQUk5QixPQUFPO3NCQURoQixlQUFlO3VCQUFDLGVBQWUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFO2dCQUk1RSxRQUFRO3NCQURqQixTQUFTO3VCQUFDLGlCQUFpQjtnQkErQ2xCLFlBQVk7c0JBRnJCLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDOztzQkFDaEMsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIGRldGVjdENvbnRyb2xsZXJDaGFuZ2VzLCBEaXNhYmxlZENvbnRyb2xsZXIsIElkZW50aXR5TWF0Y2hlciwgT0RYX0lERU5USVRZX01BVENIRVIsIFJlYWRvbmx5Q29udHJvbGxlciwgU3RyaW5naWZ5Rm4gfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ3VzdG9tRm9ybUNvbnRyb2wgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2N1c3RvbS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgRHluYW1pY1ZpZXdEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IExvYWRpbmdTcGlubmVyTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvbG9hZGluZy1zcGlubmVyJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBkZWZlckZuLCBpbmplY3RFbGVtZW50LCBUcmFuc2Zvcm0gfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZWxlY3RDb250cm9sLCBTZWxlY3RDb250cm9sT3B0aW9uIH0gZnJvbSAnLi9hYnN0cmFjdCc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgU2VsZWN0U2VhcmNoRmllbGREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgU0VMRUNUX0NPTlRST0wgfSBmcm9tICcuL3NlbGVjdC50b2tlbnMnO1xuXG5AQ1NTQ29tcG9uZW50KCdzZWxlY3QnKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LXNlbGVjdCcsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBEcm9wZG93bkRpcmVjdGl2ZSwgSWNvbkNvbXBvbmVudCwgRHluYW1pY1ZpZXdEaXJlY3RpdmUsIE9wdGlvbkNvbXBvbmVudCwgTG9hZGluZ1NwaW5uZXJNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIERpc2FibGVkQ29udHJvbGxlci5jb25uZWN0KCksXG4gICAgUmVhZG9ubHlDb250cm9sbGVyLmNvbm5lY3QoKSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBTRUxFQ1RfQ09OVFJPTCxcbiAgICAgIHVzZUV4aXN0aW5nOiBTZWxlY3RDb21wb25lbnQsXG4gICAgfSxcbiAgXSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdpc0Rpc2FibGVkIHx8IG51bGwnLFxuICAgICdbY2xhc3MuaXMtb3Blbl0nOiAnaXNPcGVuJyxcbiAgICAnW3RhYmluZGV4XSc6ICdzZWFyY2hGaWVsZEVuYWJsZWQgPyAtMSA6IDAnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQ8VCA9IHVua25vd24+IGV4dGVuZHMgQ3VzdG9tRm9ybUNvbnRyb2w8VCB8IG51bGw+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgU2VsZWN0Q29udHJvbDxUPiB7XG4gIHB1YmxpYyBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfaXNMb2FkaW5nOiBCb29sZWFuSW5wdXQ7XG5cbiAgcHJpdmF0ZSBrZXlNYW5hZ2VyPzogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8T3B0aW9uQ29tcG9uZW50PFQ+PjtcblxuICBwcm90ZWN0ZWQgc2VhcmNoRmllbGRFbmFibGVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzbW9vdGhTY3JvbGxFbmFibGVkID0gZmFsc2U7XG4gIHByb3RlY3RlZCBzZWxlY3RlZE9wdGlvbjogT3B0aW9uQ29tcG9uZW50PFQ+IHwgbnVsbCA9IG51bGw7XG4gIHByb3RlY3RlZCBzZWxlY3RlZE9wdGlvblRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuXG4gIHByb3RlY3RlZCBnZXQgaGFzT3B0aW9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm9wdGlvbnMgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmRyb3Bkb3duPy5pc09wZW47XG4gIH1cblxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkT3B0aW9uQ29udGVudCgpOiBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogVCB8IG51bGwgfT4gfCBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IHRoaXMuc2VsZWN0ZWRPcHRpb25UZW1wbGF0ZSA/PyB0aGlzLnNlbGVjdGVkT3B0aW9uVGV4dCA6IG51bGw7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgcGxhY2Vob2xkZXIgPSAnJztcblxuICBAVHJhbnNmb3JtKGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSlcbiAgQElucHV0KClcbiAgcHVibGljIGlzTG9hZGluZyA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZE9wdGlvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFQgfT4gfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc3RyaW5naWZ5PzogU3RyaW5naWZ5Rm48VCB8IG51bGw+O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpZGVudGl0eU1hdGNoZXI6IElkZW50aXR5TWF0Y2hlcjxUIHwgbnVsbD4gPSBpbmplY3QoT0RYX0lERU5USVRZX01BVENIRVIpO1xuXG4gIEBPdXRwdXQoKVxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgcHVibGljIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAQ29udGVudENoaWxkKFNlbGVjdFNlYXJjaEZpZWxkRGlyZWN0aXZlKVxuICBwdWJsaWMgc2VhcmNoRmllbGQ/OiBTZWxlY3RTZWFyY2hGaWVsZERpcmVjdGl2ZTtcblxuICBAQ29udGVudENoaWxkcmVuKE9wdGlvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSwgZW1pdERpc3RpbmN0Q2hhbmdlc09ubHk6IHRydWUgfSlcbiAgcHJvdGVjdGVkIG9wdGlvbnM/OiBRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PFQ+PjtcblxuICBAVmlld0NoaWxkKERyb3Bkb3duRGlyZWN0aXZlKVxuICBwcm90ZWN0ZWQgZHJvcGRvd24/OiBEcm9wZG93bkRpcmVjdGl2ZTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihudWxsKTtcblxuICAgIGRldGVjdENvbnRyb2xsZXJDaGFuZ2VzKHRoaXMpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucykgcmV0dXJuO1xuICAgIHRoaXMua2V5TWFuYWdlciA9IG5ldyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcih0aGlzLm9wdGlvbnMpLndpdGhIb21lQW5kRW5kKCkuc2tpcFByZWRpY2F0ZSgoaXRlbSkgPT4gaXRlbS5kaXNhYmxlZCk7XG4gICAgdGhpcy5vcHRpb25zLmNoYW5nZXMucGlwZShmaWx0ZXIoKCkgPT4gdGhpcy5pc09wZW4pKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgZGVmZXJGbigoKSA9PiB0aGlzLmFjdGl2YXRlU2VsZWN0ZWRPcHRpb24oKSk7XG4gICAgICB0aGlzLnRyaWdnZXJDb250cm9sbGVyQ2hhbmdlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5zZWFyY2hGaWVsZD8udmFsdWVDaGFuZ2UkLnN1YnNjcmliZSgoKSA9PiB0aGlzLnRyaWdnZXJDb250cm9sbGVyQ2hhbmdlKCkpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogVCB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBzdXBlci5yZWdpc3Rlck9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbigpO1xuICAgICAgZm4odmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdE9wdGlvbihvcHRpb24/OiBTZWxlY3RDb250cm9sT3B0aW9uPFQ+IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChvcHRpb24gJiYgIW9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZShvcHRpb24udmFsdWUgPz8gbnVsbCk7XG4gICAgfVxuICAgIHRoaXMuZHJvcGRvd24/LmNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgaXNPcHRpb25TZWxlY3RlZChvcHRpb246IFNlbGVjdENvbnRyb2xPcHRpb248VD4pOiBib29sZWFuIHtcbiAgICBpZiAob3B0aW9uICYmICFvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLmlkZW50aXR5TWF0Y2hlcihvcHRpb24udmFsdWUsIHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc2Nyb2xsT3B0aW9uSW50b1ZpZXcoeyBlbGVtZW50IH06IFNlbGVjdENvbnRyb2xPcHRpb248VD4pOiB2b2lkIHtcbiAgICBjb25zdCBiZWhhdmlvciA9IHRoaXMuc21vb3RoU2Nyb2xsRW5hYmxlZCA/ICdzbW9vdGgnIDogdW5kZWZpbmVkO1xuICAgIGVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnY2VudGVyJywgYmVoYXZpb3IgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgb3BlbkRyb3Bkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nKSByZXR1cm47XG4gICAgaWYgKHRoaXMuaXNPcGVuICYmIHRoaXMuaGFzT3B0aW9ucykge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbih0aGlzLmtleU1hbmFnZXI/LmFjdGl2ZUl0ZW0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMua2V5TWFuYWdlcj8ub25LZXlkb3duKGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY3RpdmF0ZVNlbGVjdGVkT3B0aW9uKCk6IHZvaWQge1xuICAgIGxldCBhY3RpdmVJbmRleCA9IHRoaXMub3B0aW9ucz8udG9BcnJheSgpLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24uaXNTZWxlY3RlZCAmJiAhb3B0aW9uLmRpc2FibGVkKTtcbiAgICBpZiAoIWFjdGl2ZUluZGV4IHx8IGFjdGl2ZUluZGV4ID09PSAtMSkge1xuICAgICAgYWN0aXZlSW5kZXggPSB0aGlzLm9wdGlvbnM/LnRvQXJyYXkoKS5maW5kSW5kZXgoKG9wdGlvbikgPT4gIW9wdGlvbi5kaXNhYmxlZCkgPz8gLTE7XG4gICAgfVxuICAgIHRoaXMua2V5TWFuYWdlcj8uc2V0QWN0aXZlSXRlbShhY3RpdmVJbmRleCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Ecm9wZG93bk9wZW4oKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmF0ZVNlbGVjdGVkT3B0aW9uKCk7XG4gICAgaWYgKCF0aGlzLnNlYXJjaEZpZWxkRW5hYmxlZCkge1xuICAgICAgdGhpcy5zZWFyY2hGaWVsZEVuYWJsZWQgPSAhIXRoaXMuc2VhcmNoRmllbGQ7XG4gICAgICBkZWZlckZuKCgpID0+IHRoaXMuc2VhcmNoRmllbGQ/LmZvY3VzKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvbkRyb3Bkb3duQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlU21vb3RoU2Nyb2xsKCk7XG4gICAgaWYgKHRoaXMuc2VhcmNoRmllbGRFbmFibGVkKSB7XG4gICAgICB0aGlzLnNlYXJjaEZpZWxkRW5hYmxlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG9uRHJvcGRvd25DbG9zZWQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hGaWVsZD8ucmVzZXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkaXNhYmxlU21vb3RoU2Nyb2xsKCk6IHZvaWQge1xuICAgIHRoaXMuc21vb3RoU2Nyb2xsRW5hYmxlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVuYWJsZVNtb290aFNjcm9sbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNtb290aFNjcm9sbEVuYWJsZWQgPSB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RlZE9wdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gdGhpcy5vcHRpb25zPy50b0FycmF5KCk/LmZpbmQoKG9wdGlvbikgPT4gb3B0aW9uLmlzU2VsZWN0ZWQpID8/IG51bGw7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRPcHRpb24pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25UZXh0ID0gdGhpcy5zdHJpbmdpZnk/Lih0aGlzLnNlbGVjdGVkT3B0aW9uPy52YWx1ZSkgPz8gdGhpcy5zZWxlY3RlZE9wdGlvbi5nZXRMYWJlbCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uVGV4dCA9IG51bGw7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgY2xhc3M9XCJvZHgtc2VsZWN0X190cmlnZ2VyXCJcbiAgW29keERyb3Bkb3duXT1cImRyb3Bkb3duQ29udGVudFwiXG4gIFtvZHhEcm9wZG93bkRpc2FibGVkXT1cImlzRGlzYWJsZWQgfHwgaXNSZWFkb25seVwiXG4gIFtvZHhEcm9wZG93bk9wdGlvbnNdPVwieyBtYXRjaFJlZmVyZW5jZVdpZHRoOiB0cnVlLCBvZmZzZXQ6IDQgfVwiXG4gIFtvZHhEcm9wZG93blJlZmVyZW5jZUVsZW1lbnRdPVwiZWxlbWVudC5uYXRpdmVFbGVtZW50XCJcbiAgW29keERyb3Bkb3duU2hvd0xvYWRlcl09XCJpc0xvYWRpbmdcIlxuICAob2R4RHJvcGRvd25CZWZvcmVPcGVuKT1cIm9uRHJvcGRvd25PcGVuKClcIlxuICAob2R4RHJvcGRvd25CZWZvcmVDbG9zZSk9XCJvbkRyb3Bkb3duQ2xvc2UoKVwiXG4gIChvZHhEcm9wZG93bkFmdGVyQ2xvc2UpPVwib25Ecm9wZG93bkNsb3NlZCgpXCJcbiAgKG9keERyb3Bkb3duQWZ0ZXJPcGVuKT1cImVuYWJsZVNtb290aFNjcm9sbCgpXCJcbj5cbiAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cIiFzZWFyY2hGaWVsZEVuYWJsZWRcIiBbbmdJZkVsc2VdPVwic2VhcmNoRmllbGRUZW1wbGF0ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJvZHgtc2VsZWN0X192YWx1ZVwiICpuZ0lmPVwic2VsZWN0ZWRPcHRpb25Db250ZW50OyBlbHNlIHBsYWNlaG9sZGVyVGVtcGxhdGVcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbb2R4RHluYW1pY1ZpZXddPVwic2VsZWN0ZWRPcHRpb25Db250ZW50XCIgW29keER5bmFtaWNWaWV3Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogdmFsdWUgfVwiPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjcGxhY2Vob2xkZXJUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwib2R4LXNlbGVjdF9fcGxhY2Vob2xkZXJcIj5cbiAgICAgIHt7IHBsYWNlaG9sZGVyIH19XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxuZy10ZW1wbGF0ZSAjc2VhcmNoRmllbGRUZW1wbGF0ZT5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbb2R4U2VsZWN0U2VhcmNoRmllbGRdXCI+PC9uZy1jb250ZW50PlxuICA8L25nLXRlbXBsYXRlPlxuICA8b2R4LWljb24gY2xhc3M9XCJvZHgtc2VsZWN0X19pbmRpY2F0b3JcIiBuYW1lPVwiY2hldnJvbi1kb3duXCI+PC9vZHgtaWNvbj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNkcm9wZG93bkNvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJvZHgtc2VsZWN0LWRyb3Bkb3duXCIgcm9sZT1cImxpc3Rib3hcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiaGFzT3B0aW9uc1wiIFtuZ0lmRWxzZV09XCJub09wdGlvbnNUZW1wbGF0ZVwiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNub09wdGlvbnNUZW1wbGF0ZT5cbiAgICAgIDxvZHgtb3B0aW9uIGRpc2FibGVkPlxuICAgICAgICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cInNlYXJjaEZpZWxkPy5ub3RGb3VuZENvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9vZHgtb3B0aW9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CoreModule } from '@odx/angular';
|
|
3
|
+
import { OptionComponent } from './components';
|
|
4
|
+
import { SelectSearchFieldDirective } from './directives';
|
|
5
|
+
import { SelectSearchFilterPipe } from './pipes';
|
|
6
|
+
import { SelectComponent } from './select.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
const modules = [SelectComponent, SelectSearchFieldDirective, SelectSearchFilterPipe, OptionComponent];
|
|
9
|
+
export class SelectModule {
|
|
10
|
+
}
|
|
11
|
+
SelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
SelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: SelectModule, imports: [SelectComponent, SelectSearchFieldDirective, SelectSearchFilterPipe, OptionComponent], exports: [CoreModule, SelectComponent, SelectSearchFieldDirective, SelectSearchFilterPipe, OptionComponent] });
|
|
13
|
+
SelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SelectModule, imports: [SelectComponent, OptionComponent, CoreModule] });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SelectModule, decorators: [{
|
|
15
|
+
type: NgModule,
|
|
16
|
+
args: [{
|
|
17
|
+
imports: modules,
|
|
18
|
+
exports: [CoreModule, ...modules],
|
|
19
|
+
}]
|
|
20
|
+
}] });
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3NlbGVjdC9zcmMvbGliL3NlbGVjdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRXJELE1BQU0sT0FBTyxHQUFHLENBQUMsZUFBZSxFQUFFLDBCQUEwQixFQUFFLHNCQUFzQixFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBTXZHLE1BQU0sT0FBTyxZQUFZOzswR0FBWixZQUFZOzJHQUFaLFlBQVksWUFOUixlQUFlLEVBQUUsMEJBQTBCLEVBQUUsc0JBQXNCLEVBQUUsZUFBZSxhQUl6RixVQUFVLEVBSkwsZUFBZSxFQUFFLDBCQUEwQixFQUFFLHNCQUFzQixFQUFFLGVBQWU7MkdBTXhGLFlBQVksWUFOUixlQUFlLEVBQXNELGVBQWUsRUFJekYsVUFBVTs0RkFFVCxZQUFZO2tCQUp4QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxPQUFPO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUM7aUJBQ2xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgT3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IFNlbGVjdFNlYXJjaEZpZWxkRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IFNlbGVjdFNlYXJjaEZpbHRlclBpcGUgfSBmcm9tICcuL3BpcGVzJztcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vc2VsZWN0LmNvbXBvbmVudCc7XG5cbmNvbnN0IG1vZHVsZXMgPSBbU2VsZWN0Q29tcG9uZW50LCBTZWxlY3RTZWFyY2hGaWVsZERpcmVjdGl2ZSwgU2VsZWN0U2VhcmNoRmlsdGVyUGlwZSwgT3B0aW9uQ29tcG9uZW50XTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogbW9kdWxlcyxcbiAgZXhwb3J0czogW0NvcmVNb2R1bGUsIC4uLm1vZHVsZXNdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const SELECT_CONTROL = new InjectionToken('@odx/angular/components/select::SelectControl');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LnRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3NlbGVjdC9zcmMvbGliL3NlbGVjdC50b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQWdCLCtDQUErQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VsZWN0Q29udHJvbCB9IGZyb20gJy4vYWJzdHJhY3QnO1xuXG5leHBvcnQgY29uc3QgU0VMRUNUX0NPTlRST0wgPSBuZXcgSW5qZWN0aW9uVG9rZW48U2VsZWN0Q29udHJvbD4oJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL3NlbGVjdDo6U2VsZWN0Q29udHJvbCcpO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWFuZ3VsYXItY29tcG9uZW50cy1zZWxlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zZWxlY3Qvc3JjL29keC1hbmd1bGFyLWNvbXBvbmVudHMtc2VsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './lib/spinbox.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zcGluYm94L3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvc3BpbmJveC5jb21wb25lbnQnO1xuIl19
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { coerceNumberProperty } from '@angular/cdk/coercion';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
4
|
+
import { detectControllerChanges, DisabledController, ReadonlyController } from '@odx/angular';
|
|
5
|
+
import { ControlDirective, CustomFormControl } from '@odx/angular/cdk/custom-form-control';
|
|
6
|
+
import { CSSComponent } from '@odx/angular/internal';
|
|
7
|
+
import { fromEvents } from '@odx/angular/rxjs';
|
|
8
|
+
import { injectElement, Transform, untilDestroyed } from '@odx/angular/utils';
|
|
9
|
+
import { filter, NEVER, startWith, switchMap, tap, timer } from 'rxjs';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
let SpinboxComponent = class SpinboxComponent extends CustomFormControl {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(0);
|
|
14
|
+
this.element = injectElement();
|
|
15
|
+
this.takeUntilDestroyed = untilDestroyed();
|
|
16
|
+
this.max = Infinity;
|
|
17
|
+
this.min = -Infinity;
|
|
18
|
+
this.step = 1;
|
|
19
|
+
detectControllerChanges(this).subscribe();
|
|
20
|
+
}
|
|
21
|
+
get inputElement() {
|
|
22
|
+
return this.control?.element.nativeElement;
|
|
23
|
+
}
|
|
24
|
+
ngAfterViewInit() {
|
|
25
|
+
this.registerPressHold(this.decrementButton).subscribe(() => {
|
|
26
|
+
this.inputElement?.stepDown();
|
|
27
|
+
this.onInputChange();
|
|
28
|
+
});
|
|
29
|
+
this.registerPressHold(this.incrementButton).subscribe(() => {
|
|
30
|
+
this.inputElement?.stepUp();
|
|
31
|
+
this.onInputChange();
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
maxSteps({ code }) {
|
|
35
|
+
if (code === 'End' && this.min !== -Infinity) {
|
|
36
|
+
this.updateValue(this.min);
|
|
37
|
+
}
|
|
38
|
+
else if (code === 'Home' && this.max !== Infinity) {
|
|
39
|
+
this.updateValue(this.max);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
checkValue() {
|
|
43
|
+
const value = coerceNumberProperty(this.inputElement.value);
|
|
44
|
+
this.updateValue(value < this.min ? this.min : value > this.max ? this.max : value);
|
|
45
|
+
}
|
|
46
|
+
onInputChange() {
|
|
47
|
+
this.updateValue(coerceNumberProperty(this.inputElement.value));
|
|
48
|
+
}
|
|
49
|
+
registerPressHold(target) {
|
|
50
|
+
return fromEvents(target.nativeElement, 'keydown', 'mousedown', 'mouseup', 'keyup').pipe(filter((event) => event?.type !== 'keydown' || ['Space', 'Enter'].includes(event.code)), tap((event) => {
|
|
51
|
+
event.preventDefault();
|
|
52
|
+
event.stopPropagation();
|
|
53
|
+
}), switchMap(({ type }) => (['mouseup', 'keyup'].includes(type) ? NEVER : timer(500, 100).pipe(startWith(undefined)))), this.takeUntilDestroyed());
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
SpinboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SpinboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
57
|
+
SpinboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: SpinboxComponent, isStandalone: true, selector: "odx-spinbox", inputs: { max: "max", min: "min", step: "step" }, providers: [DisabledController.connect(), ReadonlyController.connect()], viewQueries: [{ propertyName: "decrementButton", first: true, predicate: ["decrementButton"], descendants: true }, { propertyName: "incrementButton", first: true, predicate: ["incrementButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action odx-icon odx-icon-minus\" #decrementButton></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"onInputChange()\"\n (blur)=\"checkValue()\"\n/>\n<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action odx-icon odx-icon-plus\" #incrementButton></button>\n", dependencies: [{ kind: "directive", type: ControlDirective, selector: "[odxControl]", exportAs: ["odxControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
58
|
+
__decorate([
|
|
59
|
+
Transform(coerceNumberProperty),
|
|
60
|
+
__metadata("design:type", Object)
|
|
61
|
+
], SpinboxComponent.prototype, "max", void 0);
|
|
62
|
+
__decorate([
|
|
63
|
+
Transform(coerceNumberProperty),
|
|
64
|
+
__metadata("design:type", Object)
|
|
65
|
+
], SpinboxComponent.prototype, "min", void 0);
|
|
66
|
+
__decorate([
|
|
67
|
+
Transform(coerceNumberProperty),
|
|
68
|
+
__metadata("design:type", Object)
|
|
69
|
+
], SpinboxComponent.prototype, "step", void 0);
|
|
70
|
+
SpinboxComponent = __decorate([
|
|
71
|
+
CSSComponent('spinbox'),
|
|
72
|
+
__metadata("design:paramtypes", [])
|
|
73
|
+
], SpinboxComponent);
|
|
74
|
+
export { SpinboxComponent };
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: SpinboxComponent, decorators: [{
|
|
76
|
+
type: Component,
|
|
77
|
+
args: [{ standalone: true, selector: 'odx-spinbox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [ControlDirective], providers: [DisabledController.connect(), ReadonlyController.connect()], template: "<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action odx-icon odx-icon-minus\" #decrementButton></button>\n<input\n odxControl\n class=\"odx-spinbox__input\"\n [disabled]=\"isDisabled\"\n [readonly]=\"isReadonly\"\n type=\"number\"\n [value]=\"value\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n (keydown)=\"maxSteps($event)\"\n (change)=\"onInputChange()\"\n (blur)=\"checkValue()\"\n/>\n<button [disabled]=\"isDisabled || isReadonly\" type=\"button\" class=\"odx-spinbox__action odx-icon odx-icon-plus\" #incrementButton></button>\n" }]
|
|
78
|
+
}], ctorParameters: function () { return []; }, propDecorators: { decrementButton: [{
|
|
79
|
+
type: ViewChild,
|
|
80
|
+
args: ['decrementButton']
|
|
81
|
+
}], incrementButton: [{
|
|
82
|
+
type: ViewChild,
|
|
83
|
+
args: ['incrementButton']
|
|
84
|
+
}], max: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], min: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], step: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}] } });
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpbmJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zcGluYm94L3NyYy9saWIvc3BpbmJveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zcGluYm94L3NyYy9saWIvc3BpbmJveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7QUFDMUUsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkksT0FBTyxFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDOUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWMsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQVk1RSxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFpQixTQUFRLGlCQUF5QjtJQStCN0Q7UUFDRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUEzQkssWUFBTyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBRXpCLHVCQUFrQixH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QUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDbkgsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQzFCLENBQUM7SUFDSixDQUFDOzs4R0ExRVUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsNEdBRmhCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUMsMFFDakJ6RSxtbEJBZ0JBLDRDREFZLGdCQUFnQjtBQXNCMUI7SUFBQyxTQUFTLENBQUMsb0JBQW9CLENBQUM7OzZDQUVWO0FBRXRCO0lBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDOzs2Q0FFVDtBQUV2QjtJQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQzs7OENBRWhCO0FBN0JMLGdCQUFnQjtJQVY1QixZQUFZLENBQUMsU0FBUyxDQUFDOztHQVVYLGdCQUFnQixDQTJFNUI7U0EzRVksZ0JBQWdCOzRGQUFoQixnQkFBZ0I7a0JBVDVCLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGFBQWEsbUJBRU4sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLGdCQUFnQixDQUFDLGFBQ2hCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUM7MEVBZ0I3RCxlQUFlO3NCQUR4QixTQUFTO3VCQUFDLGlCQUFpQjtnQkFJbEIsZUFBZTtzQkFEeEIsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBS3JCLEdBQUc7c0JBRFQsS0FBSztnQkFLQyxHQUFHO3NCQURULEtBQUs7Z0JBS0MsSUFBSTtzQkFEVixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlTnVtYmVyUHJvcGVydHksIE51bWJlcklucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZXRlY3RDb250cm9sbGVyQ2hhbmdlcywgRGlzYWJsZWRDb250cm9sbGVyLCBSZWFkb25seUNvbnRyb2xsZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQ29udHJvbERpcmVjdGl2ZSwgQ3VzdG9tRm9ybUNvbnRyb2wgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2N1c3RvbS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgQ1NTQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGZyb21FdmVudHMgfSBmcm9tICdAb2R4L2FuZ3VsYXIvcnhqcyc7XG5pbXBvcnQgeyBpbmplY3RFbGVtZW50LCBUcmFuc2Zvcm0sIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGZpbHRlciwgTkVWRVIsIE9ic2VydmFibGUsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YXAsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5cbkBDU1NDb21wb25lbnQoJ3NwaW5ib3gnKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LXNwaW5ib3gnLFxuICB0ZW1wbGF0ZVVybDogJ3NwaW5ib3guY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaW1wb3J0czogW0NvbnRyb2xEaXJlY3RpdmVdLFxuICBwcm92aWRlcnM6IFtEaXNhYmxlZENvbnRyb2xsZXIuY29ubmVjdCgpLCBSZWFkb25seUNvbnRyb2xsZXIuY29ubmVjdCgpXSxcbn0pXG5leHBvcnQgY2xhc3MgU3BpbmJveENvbXBvbmVudCBleHRlbmRzIEN1c3RvbUZvcm1Db250cm9sPG51bWJlcj4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9tYXg6IE51bWJlcklucHV0O1xuICBwdWJsaWMgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX21pbjogTnVtYmVySW5wdXQ7XG4gIHB1YmxpYyBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfc3RlcDogTnVtYmVySW5wdXQ7XG5cbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQgPSBpbmplY3RFbGVtZW50KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuXG4gIHByaXZhdGUgZ2V0IGlucHV0RWxlbWVudCgpOiBIVE1MSW5wdXRFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5jb250cm9sPy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoJ2RlY3JlbWVudEJ1dHRvbicpXG4gIHByb3RlY3RlZCBkZWNyZW1lbnRCdXR0b24hOiBFbGVtZW50UmVmPEhUTUxCdXR0b25FbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdpbmNyZW1lbnRCdXR0b24nKVxuICBwcm90ZWN0ZWQgaW5jcmVtZW50QnV0dG9uITogRWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD47XG5cbiAgQFRyYW5zZm9ybShjb2VyY2VOdW1iZXJQcm9wZXJ0eSlcbiAgQElucHV0KClcbiAgcHVibGljIG1heCA9IEluZmluaXR5O1xuXG4gIEBUcmFuc2Zvcm0oY29lcmNlTnVtYmVyUHJvcGVydHkpXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtaW4gPSAtSW5maW5pdHk7XG5cbiAgQFRyYW5zZm9ybShjb2VyY2VOdW1iZXJQcm9wZXJ0eSlcbiAgQElucHV0KClcbiAgcHVibGljIHN0ZXAgPSAxO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKDApO1xuICAgIGRldGVjdENvbnRyb2xsZXJDaGFuZ2VzKHRoaXMpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZ2lzdGVyUHJlc3NIb2xkKHRoaXMuZGVjcmVtZW50QnV0dG9uKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQ/LnN0ZXBEb3duKCk7XG4gICAgICB0aGlzLm9uSW5wdXRDaGFuZ2UoKTtcbiAgICB9KTtcbiAgICB0aGlzLnJlZ2lzdGVyUHJlc3NIb2xkKHRoaXMuaW5jcmVtZW50QnV0dG9uKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQ/LnN0ZXBVcCgpO1xuICAgICAgdGhpcy5vbklucHV0Q2hhbmdlKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWF4U3RlcHMoeyBjb2RlIH06IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoY29kZSA9PT0gJ0VuZCcgJiYgdGhpcy5taW4gIT09IC1JbmZpbml0eSkge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0aGlzLm1pbik7XG4gICAgfSBlbHNlIGlmIChjb2RlID09PSAnSG9tZScgJiYgdGhpcy5tYXggIT09IEluZmluaXR5KSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRoaXMubWF4KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tWYWx1ZSgpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZSA9IGNvZXJjZU51bWJlclByb3BlcnR5KHRoaXMuaW5wdXRFbGVtZW50LnZhbHVlKTtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlIDwgdGhpcy5taW4gPyB0aGlzLm1pbiA6IHZhbHVlID4gdGhpcy5tYXggPyB0aGlzLm1heCA6IHZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbklucHV0Q2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWUoY29lcmNlTnVtYmVyUHJvcGVydHkodGhpcy5pbnB1dEVsZW1lbnQudmFsdWUpKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJQcmVzc0hvbGQodGFyZ2V0OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIHJldHVybiBmcm9tRXZlbnRzKHRhcmdldC5uYXRpdmVFbGVtZW50LCAna2V5ZG93bicsICdtb3VzZWRvd24nLCAnbW91c2V1cCcsICdrZXl1cCcpLnBpcGUoXG4gICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBldmVudD8udHlwZSAhPT0gJ2tleWRvd24nIHx8IFsnU3BhY2UnLCAnRW50ZXInXS5pbmNsdWRlcygoZXZlbnQgYXMgS2V5Ym9hcmRFdmVudCkuY29kZSkpLFxuICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH0pLFxuICAgICAgc3dpdGNoTWFwKCh7IHR5cGUgfSkgPT4gKFsnbW91c2V1cCcsICdrZXl1cCddLmluY2x1ZGVzKHR5cGUpID8gTkVWRVIgOiB0aW1lcig1MDAsIDEwMCkucGlwZShzdGFydFdpdGgodW5kZWZpbmVkKSkpKSxcbiAgICAgIHRoaXMudGFrZVVudGlsRGVzdHJveWVkKClcbiAgICApO1xuICB9XG59XG4iLCI8YnV0dG9uIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkIHx8IGlzUmVhZG9ubHlcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJvZHgtc3BpbmJveF9fYWN0aW9uIG9keC1pY29uIG9keC1pY29uLW1pbnVzXCIgI2RlY3JlbWVudEJ1dHRvbj48L2J1dHRvbj5cbjxpbnB1dFxuICBvZHhDb250cm9sXG4gIGNsYXNzPVwib2R4LXNwaW5ib3hfX2lucHV0XCJcbiAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIlxuICBbcmVhZG9ubHldPVwiaXNSZWFkb25seVwiXG4gIHR5cGU9XCJudW1iZXJcIlxuICBbdmFsdWVdPVwidmFsdWVcIlxuICBbbWluXT1cIm1pblwiXG4gIFttYXhdPVwibWF4XCJcbiAgW3N0ZXBdPVwic3RlcFwiXG4gIChrZXlkb3duKT1cIm1heFN0ZXBzKCRldmVudClcIlxuICAoY2hhbmdlKT1cIm9uSW5wdXRDaGFuZ2UoKVwiXG4gIChibHVyKT1cImNoZWNrVmFsdWUoKVwiXG4vPlxuPGJ1dHRvbiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCB8fCBpc1JlYWRvbmx5XCIgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwib2R4LXNwaW5ib3hfX2FjdGlvbiBvZHgtaWNvbiBvZHgtaWNvbi1wbHVzXCIgI2luY3JlbWVudEJ1dHRvbj48L2J1dHRvbj5cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2R4LWFuZ3VsYXItY29tcG9uZW50cy1zcGluYm94LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvc3BpbmJveC9zcmMvb2R4LWFuZ3VsYXItY29tcG9uZW50cy1zcGluYm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './lib/components';
|
|
2
|
+
export * from './lib/models';
|
|
3
|
+
export * from './lib/tab-bar.component';
|
|
4
|
+
export * from './lib/tab-bar.module';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90YWItYmFyL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1iYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RhYi1iYXIubW9kdWxlJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './tab-bar-item/tab-bar-item.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy90YWItYmFyL3NyYy9saWIvY29tcG9uZW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90YWItYmFyLWl0ZW0vdGFiLWJhci1pdGVtLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostListener, inject, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
5
|
+
import { DisabledController } from '@odx/angular';
|
|
6
|
+
import { IconComponent } from '@odx/angular/components/icon';
|
|
7
|
+
import { CSSComponent } from '@odx/angular/internal';
|
|
8
|
+
import { Transform } from '@odx/angular/utils';
|
|
9
|
+
import { TAB_BAR } from '../../tab-bar.config';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/common";
|
|
12
|
+
let TabBarItemComponent = class TabBarItemComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.disabledController = DisabledController.inject();
|
|
15
|
+
this.tabBar = inject(TAB_BAR);
|
|
16
|
+
this.isActive = false;
|
|
17
|
+
this.element = inject(ElementRef);
|
|
18
|
+
this.closable = false;
|
|
19
|
+
this.tabClose = new EventEmitter();
|
|
20
|
+
}
|
|
21
|
+
get disabled() {
|
|
22
|
+
return this.disabledController?.disabled ?? false;
|
|
23
|
+
}
|
|
24
|
+
setActiveStyles() {
|
|
25
|
+
setTimeout(() => (this.isActive = true));
|
|
26
|
+
}
|
|
27
|
+
setInactiveStyles() {
|
|
28
|
+
setTimeout(() => (this.isActive = false));
|
|
29
|
+
}
|
|
30
|
+
onClick() {
|
|
31
|
+
if (this.disabled)
|
|
32
|
+
return;
|
|
33
|
+
this.tabBar.activateItem(this);
|
|
34
|
+
}
|
|
35
|
+
handleClose(event) {
|
|
36
|
+
event.stopPropagation();
|
|
37
|
+
if (this.disabled || !this.closable)
|
|
38
|
+
return;
|
|
39
|
+
this.tabBar.removeItem(this);
|
|
40
|
+
this.tabClose.emit(this);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
TabBarItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TabBarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
44
|
+
TabBarItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TabBarItemComponent, isStandalone: true, selector: "odx-tab-bar-item", inputs: { closable: "closable" }, outputs: { tabClose: "tabClose" }, host: { attributes: { "role": "tab" }, listeners: { "click": "onClick()" }, properties: { "class.is-disabled": "disabled", "class.is-active": "isActive", "attr.aria-selected": "isActive", "class.is-closable": "closable" } }, providers: [DisabledController.connect()], ngImport: i0, template: "<ng-content select=\"odx-icon\"></ng-content>\n<ng-content></ng-content>\n<odx-icon name=\"close\" size=\"small\" *ngIf=\"closable\" (click)=\"handleClose($event)\"></odx-icon>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
45
|
+
__decorate([
|
|
46
|
+
Transform(coerceBooleanProperty),
|
|
47
|
+
__metadata("design:type", Object)
|
|
48
|
+
], TabBarItemComponent.prototype, "closable", void 0);
|
|
49
|
+
TabBarItemComponent = __decorate([
|
|
50
|
+
CSSComponent('tab-bar-item')
|
|
51
|
+
], TabBarItemComponent);
|
|
52
|
+
export { TabBarItemComponent };
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TabBarItemComponent, decorators: [{
|
|
54
|
+
type: Component,
|
|
55
|
+
args: [{ selector: 'odx-tab-bar-item', standalone: true, imports: [CommonModule, IconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DisabledController.connect()], host: {
|
|
56
|
+
'[class.is-disabled]': 'disabled',
|
|
57
|
+
'[class.is-active]': 'isActive',
|
|
58
|
+
'[attr.aria-selected]': 'isActive',
|
|
59
|
+
'[class.is-closable]': 'closable',
|
|
60
|
+
role: 'tab',
|
|
61
|
+
}, template: "<ng-content select=\"odx-icon\"></ng-content>\n<ng-content></ng-content>\n<odx-icon name=\"close\" size=\"small\" *ngIf=\"closable\" (click)=\"handleClose($event)\"></odx-icon>\n" }]
|
|
62
|
+
}], propDecorators: { closable: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], tabClose: [{
|
|
65
|
+
type: Output
|
|
66
|
+
}], onClick: [{
|
|
67
|
+
type: HostListener,
|
|
68
|
+
args: ['click']
|
|
69
|
+
}] } });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWJhci1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3RhYi1iYXIvc3JjL2xpYi9jb21wb25lbnRzL3RhYi1iYXItaXRlbS90YWItYmFyLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvdGFiLWJhci9zcmMvbGliL2NvbXBvbmVudHMvdGFiLWJhci1pdGVtL3RhYi1iYXItaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JKLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQW1CeEMsSUFBTSxtQkFBbUIsR0FBekIsTUFBTSxtQkFBbUI7SUFBekI7UUFHWSx1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNqRCxXQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWhDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFWCxZQUFPLEdBQTRCLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQVEvRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2pCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztLQXNCM0Q7SUEvQkMsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLFFBQVEsSUFBSSxLQUFLLENBQUM7SUFDcEQsQ0FBQztJQVNNLGVBQWU7UUFDcEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFHUyxPQUFPO1FBQ2YsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVTLFdBQVcsQ0FBQyxLQUFZO1FBQ2hDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs7aUhBeENVLG1CQUFtQjtxR0FBbkIsbUJBQW1CLHFXQVRuQixDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDLDBCQ2xCM0Msb0xBR0EsMkNEV1ksWUFBWSxtSUFBRSxhQUFhO0FBMkJyQztJQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQzs7cURBRVQ7QUFoQmIsbUJBQW1CO0lBakIvQixZQUFZLENBQUMsY0FBYyxDQUFDO0dBaUJoQixtQkFBbUIsQ0F5Qy9CO1NBekNZLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQWhCL0IsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxpQkFFdkIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQ25DO3dCQUNKLHFCQUFxQixFQUFFLFVBQVU7d0JBQ2pDLG1CQUFtQixFQUFFLFVBQVU7d0JBQy9CLHNCQUFzQixFQUFFLFVBQVU7d0JBQ2xDLHFCQUFxQixFQUFFLFVBQVU7d0JBQ2pDLElBQUksRUFBRSxLQUFLO3FCQUNaOzhCQWtCTSxRQUFRO3NCQURkLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxNQUFNO2dCQVlHLE9BQU87c0JBRGhCLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhpZ2hsaWdodGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERpc2FibGVkQ29udHJvbGxlciB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgVHJhbnNmb3JtIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IFRBQl9CQVIgfSBmcm9tICcuLi8uLi90YWItYmFyLmNvbmZpZyc7XG5cbkBDU1NDb21wb25lbnQoJ3RhYi1iYXItaXRlbScpXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZHgtdGFiLWJhci1pdGVtJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSWNvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi90YWItYmFyLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbRGlzYWJsZWRDb250cm9sbGVyLmNvbm5lY3QoKV0sXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmlzLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1tjbGFzcy5pcy1hY3RpdmVdJzogJ2lzQWN0aXZlJyxcbiAgICAnW2F0dHIuYXJpYS1zZWxlY3RlZF0nOiAnaXNBY3RpdmUnLFxuICAgICdbY2xhc3MuaXMtY2xvc2FibGVdJzogJ2Nsb3NhYmxlJyxcbiAgICByb2xlOiAndGFiJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgVGFiQmFySXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIEhpZ2hsaWdodGFibGUge1xuICBwdWJsaWMgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Nsb3NhYmxlOiBCb29sZWFuSW5wdXQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBkaXNhYmxlZENvbnRyb2xsZXIgPSBEaXNhYmxlZENvbnRyb2xsZXIuaW5qZWN0KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFiQmFyID0gaW5qZWN0KFRBQl9CQVIpO1xuXG4gIHByb3RlY3RlZCBpc0FjdGl2ZSA9IGZhbHNlO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRpc2FibGVkQ29udHJvbGxlcj8uZGlzYWJsZWQgPz8gZmFsc2U7XG4gIH1cblxuICBAVHJhbnNmb3JtKGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSlcbiAgQElucHV0KClcbiAgcHVibGljIGNsb3NhYmxlID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyB0YWJDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGFiQmFySXRlbUNvbXBvbmVudD4oKTtcblxuICBwdWJsaWMgc2V0QWN0aXZlU3R5bGVzKCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gKHRoaXMuaXNBY3RpdmUgPSB0cnVlKSk7XG4gIH1cblxuICBwdWJsaWMgc2V0SW5hY3RpdmVTdHlsZXMoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiAodGhpcy5pc0FjdGl2ZSA9IGZhbHNlKSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIHByb3RlY3RlZCBvbkNsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgdGhpcy50YWJCYXIuYWN0aXZhdGVJdGVtKHRoaXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNsb3NlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8ICF0aGlzLmNsb3NhYmxlKSByZXR1cm47XG4gICAgdGhpcy50YWJCYXIucmVtb3ZlSXRlbSh0aGlzKTtcbiAgICB0aGlzLnRhYkNsb3NlLmVtaXQodGhpcyk7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cIm9keC1pY29uXCI+PC9uZy1jb250ZW50PlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPG9keC1pY29uIG5hbWU9XCJjbG9zZVwiIHNpemU9XCJzbWFsbFwiICpuZ0lmPVwiY2xvc2FibGVcIiAoY2xpY2spPVwiaGFuZGxlQ2xvc2UoJGV2ZW50KVwiPjwvb2R4LWljb24+XG4iXX0=
|