@leanix/components 0.4.531 → 0.4.532
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/fesm2022/leanix-components.mjs +365 -365
- package/fesm2022/leanix-components.mjs.map +1 -1
- package/lib/core-ui/tooltip/tooltip.directive.d.ts +1 -1
- package/lib/forms-ui/components/keyboard-select.directive.d.ts +1 -1
- package/lib/forms-ui/models/base-select.directive.d.ts +1 -1
- package/lib/tab-ui/components/tab-group/tab-group.component.d.ts +1 -1
- package/package.json +10 -14
- package/esm2022/index.mjs +0 -145
- package/esm2022/leanix-components.mjs +0 -5
- package/esm2022/lib/core-ui/components/avatar/avatar.component.mjs +0 -40
- package/esm2022/lib/core-ui/components/avatar/avatar.helpers.mjs +0 -49
- package/esm2022/lib/core-ui/components/avatar/avatar.model.mjs +0 -33
- package/esm2022/lib/core-ui/components/avatar-group/avatar-group.component.mjs +0 -75
- package/esm2022/lib/core-ui/components/badge/badge.component.mjs +0 -58
- package/esm2022/lib/core-ui/components/banner/banner.component.mjs +0 -68
- package/esm2022/lib/core-ui/components/banner/banner.models.mjs +0 -12
- package/esm2022/lib/core-ui/components/button/button.component.mjs +0 -179
- package/esm2022/lib/core-ui/components/button-group/button-group.component.mjs +0 -28
- package/esm2022/lib/core-ui/components/card/card.component.mjs +0 -26
- package/esm2022/lib/core-ui/components/collapsible/collapsible.component.mjs +0 -52
- package/esm2022/lib/core-ui/components/counter/counter.component.mjs +0 -30
- package/esm2022/lib/core-ui/components/ellipsis/ellipsis.component.mjs +0 -143
- package/esm2022/lib/core-ui/components/empty-state/empty-state.component.mjs +0 -41
- package/esm2022/lib/core-ui/components/icon-scale/icon-scale.component.mjs +0 -36
- package/esm2022/lib/core-ui/components/skeleton/skeleton.component.mjs +0 -44
- package/esm2022/lib/core-ui/components/spinner/spinner.component.mjs +0 -26
- package/esm2022/lib/core-ui/components/stepper/stepper.component.mjs +0 -70
- package/esm2022/lib/core-ui/components/table/table-header/table-header.component.mjs +0 -128
- package/esm2022/lib/core-ui/components/table/table.component.mjs +0 -77
- package/esm2022/lib/core-ui/components/tiny-spinner/tiny-spinner.component.mjs +0 -14
- package/esm2022/lib/core-ui/components/tokenizer/token/token.component.mjs +0 -20
- package/esm2022/lib/core-ui/components/tokenizer/tokenizer-overflow-popover/tokenizer-overflow-popover.component.mjs +0 -44
- package/esm2022/lib/core-ui/components/tokenizer/tokenizer.component.mjs +0 -149
- package/esm2022/lib/core-ui/core-ui.constants.mjs +0 -240
- package/esm2022/lib/core-ui/core-ui.module.mjs +0 -206
- package/esm2022/lib/core-ui/directives/after-view-init.directive.mjs +0 -33
- package/esm2022/lib/core-ui/directives/autoclose-group.service.mjs +0 -39
- package/esm2022/lib/core-ui/directives/autoclose.directive.mjs +0 -43
- package/esm2022/lib/core-ui/directives/autofocus.directive.mjs +0 -36
- package/esm2022/lib/core-ui/functions/core-css.helpers.mjs +0 -52
- package/esm2022/lib/core-ui/functions/highlight-text.function.mjs +0 -80
- package/esm2022/lib/core-ui/linkify/linkify.pipe.mjs +0 -146
- package/esm2022/lib/core-ui/linkify/unlinkify.pipe.mjs +0 -51
- package/esm2022/lib/core-ui/pipes/br.pipe.mjs +0 -24
- package/esm2022/lib/core-ui/pipes/contrast-color.pipe.mjs +0 -21
- package/esm2022/lib/core-ui/pipes/custom-date.pipe.mjs +0 -28
- package/esm2022/lib/core-ui/pipes/display-avatars.pipe.mjs +0 -37
- package/esm2022/lib/core-ui/pipes/highlight-range.pipe.mjs +0 -29
- package/esm2022/lib/core-ui/pipes/highlight-term.pipe.mjs +0 -57
- package/esm2022/lib/core-ui/pipes/lx-is-uuid.pipe.mjs +0 -22
- package/esm2022/lib/core-ui/pipes/lx-time-ago.pipe.mjs +0 -29
- package/esm2022/lib/core-ui/pipes/lx-translate.pipe.mjs +0 -50
- package/esm2022/lib/core-ui/pipes/markdown.pipe.mjs +0 -32
- package/esm2022/lib/core-ui/pipes/nbsp.pipe.mjs +0 -17
- package/esm2022/lib/core-ui/pipes/sort.pipe.mjs +0 -55
- package/esm2022/lib/core-ui/pipes/translation-after.pipe.mjs +0 -29
- package/esm2022/lib/core-ui/pipes/translation-before.pipe.mjs +0 -54
- package/esm2022/lib/core-ui/pipes/translation-between.pipe.mjs +0 -68
- package/esm2022/lib/core-ui/pipes/unescape-curly-braces.pipe.mjs +0 -17
- package/esm2022/lib/core-ui/services/resize-observer.service.mjs +0 -112
- package/esm2022/lib/core-ui/tooltip/to-cdk-position.function.mjs +0 -74
- package/esm2022/lib/core-ui/tooltip/tooltip-position.interface.mjs +0 -7
- package/esm2022/lib/core-ui/tooltip/tooltip.component.mjs +0 -26
- package/esm2022/lib/core-ui/tooltip/tooltip.directive.mjs +0 -117
- package/esm2022/lib/forms-ui/components/basic-dropdown/basic-dropdown.component.mjs +0 -139
- package/esm2022/lib/forms-ui/components/basic-dropdown-item/basic-dropdown-item.component.mjs +0 -38
- package/esm2022/lib/forms-ui/components/breadcrumb/breadcrumb.component.mjs +0 -55
- package/esm2022/lib/forms-ui/components/cdk-options-dropdown/cdk-options-dropdown.component.mjs +0 -215
- package/esm2022/lib/forms-ui/components/cdk-options-sub-dropdown/cdk-options-sub-dropdown.component.mjs +0 -135
- package/esm2022/lib/forms-ui/components/currency/currency-input.component.mjs +0 -159
- package/esm2022/lib/forms-ui/components/currency/currency-symbol-map.constant.mjs +0 -105
- package/esm2022/lib/forms-ui/components/currency/currency-symbol.component.mjs +0 -24
- package/esm2022/lib/forms-ui/components/date-input/date-input.component.mjs +0 -347
- package/esm2022/lib/forms-ui/components/date-picker-ui/date-formatter.mjs +0 -8
- package/esm2022/lib/forms-ui/components/date-picker-ui/datepicker-inner.component.mjs +0 -312
- package/esm2022/lib/forms-ui/components/date-picker-ui/datepicker-ui.module.mjs +0 -20
- package/esm2022/lib/forms-ui/components/date-picker-ui/datepicker.component.mjs +0 -206
- package/esm2022/lib/forms-ui/components/date-picker-ui/datepicker.config.mjs +0 -29
- package/esm2022/lib/forms-ui/components/date-picker-ui/daypicker.component.mjs +0 -319
- package/esm2022/lib/forms-ui/components/date-picker-ui/isBs3.mjs +0 -2
- package/esm2022/lib/forms-ui/components/date-picker-ui/monthpicker.component.mjs +0 -149
- package/esm2022/lib/forms-ui/components/date-picker-ui/yearpicker.component.mjs +0 -151
- package/esm2022/lib/forms-ui/components/drag-and-drop-list/constants.mjs +0 -5
- package/esm2022/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list-item/drag-and-drop-list-item.component.mjs +0 -49
- package/esm2022/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.mjs +0 -120
- package/esm2022/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.module.mjs +0 -39
- package/esm2022/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-item/keyboard-sortable-item.directive.mjs +0 -137
- package/esm2022/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-list/keyboard-sortable-list.directive.mjs +0 -38
- package/esm2022/lib/forms-ui/components/error-message/error-message.component.mjs +0 -16
- package/esm2022/lib/forms-ui/components/expanded-dropdown/expanded-dropdown.component.mjs +0 -26
- package/esm2022/lib/forms-ui/components/form-error/form-error.component.mjs +0 -44
- package/esm2022/lib/forms-ui/components/icon/icon.component.mjs +0 -45
- package/esm2022/lib/forms-ui/components/input/input.component.mjs +0 -48
- package/esm2022/lib/forms-ui/components/keyboard-select.directive.mjs +0 -126
- package/esm2022/lib/forms-ui/components/multi-select/multi-select-selection/multi-select-selection.component.mjs +0 -28
- package/esm2022/lib/forms-ui/components/multi-select/multi-select.component.mjs +0 -318
- package/esm2022/lib/forms-ui/components/option/option.component.mjs +0 -99
- package/esm2022/lib/forms-ui/components/option-group/option-group.component.mjs +0 -29
- package/esm2022/lib/forms-ui/components/option-group-dropdown/option-group-dropdown.component.mjs +0 -123
- package/esm2022/lib/forms-ui/components/options-dropdown/options-dropdown.component.mjs +0 -297
- package/esm2022/lib/forms-ui/components/options-sub-dropdown/options-sub-dropdown.component.mjs +0 -94
- package/esm2022/lib/forms-ui/components/picker/picker-trigger.directive.mjs +0 -47
- package/esm2022/lib/forms-ui/components/picker/picker.component.mjs +0 -218
- package/esm2022/lib/forms-ui/components/picker-option/picker-option.component.mjs +0 -118
- package/esm2022/lib/forms-ui/components/pill-item/pill-item.component.mjs +0 -33
- package/esm2022/lib/forms-ui/components/pill-list/pill-list.component.mjs +0 -58
- package/esm2022/lib/forms-ui/components/responsive-input/responsive-input.component.mjs +0 -101
- package/esm2022/lib/forms-ui/components/select-list/select-list.component.mjs +0 -178
- package/esm2022/lib/forms-ui/components/single-select/single-select.component.mjs +0 -290
- package/esm2022/lib/forms-ui/components/sorting-dropdown/sorting-dropdown.component.mjs +0 -71
- package/esm2022/lib/forms-ui/components/sorting-dropdown-trigger/sorting-dropdown-trigger.component.mjs +0 -21
- package/esm2022/lib/forms-ui/components/switch/switch.component.mjs +0 -51
- package/esm2022/lib/forms-ui/directives/contenteditable.directive.mjs +0 -130
- package/esm2022/lib/forms-ui/directives/form-error.directive.mjs +0 -121
- package/esm2022/lib/forms-ui/directives/form-submit.directive.mjs +0 -29
- package/esm2022/lib/forms-ui/directives/keyboard-action-source.directive.mjs +0 -63
- package/esm2022/lib/forms-ui/directives/mark-invalid.directive.mjs +0 -39
- package/esm2022/lib/forms-ui/directives/max-length-counter.directive.mjs +0 -131
- package/esm2022/lib/forms-ui/directives/select-dropdown.directive.mjs +0 -32
- package/esm2022/lib/forms-ui/directives/selectable-item.directive.mjs +0 -34
- package/esm2022/lib/forms-ui/directives/selected-option.directive.mjs +0 -27
- package/esm2022/lib/forms-ui/forms-ui.module.mjs +0 -270
- package/esm2022/lib/forms-ui/helpers/key-codes.constants.mjs +0 -13
- package/esm2022/lib/forms-ui/helpers/keyboard-navigation.helpers.mjs +0 -38
- package/esm2022/lib/forms-ui/models/base-select.directive.mjs +0 -183
- package/esm2022/lib/forms-ui/models/dropdown-item.interface.mjs +0 -2
- package/esm2022/lib/forms-ui/models/single-select-padding.interface.mjs +0 -2
- package/esm2022/lib/forms-ui/models/sorting.interface.mjs +0 -7
- package/esm2022/lib/forms-ui/pipes/filter-selection.pipe.mjs +0 -33
- package/esm2022/lib/forms-ui/pipes/filter-term.pipe.mjs +0 -29
- package/esm2022/lib/forms-ui/pipes/format-number.pipe.mjs +0 -66
- package/esm2022/lib/forms-ui/validators/date-in-foreseeable-future.validator.mjs +0 -26
- package/esm2022/lib/forms-ui/validators/string-not-in-array.validator.mjs +0 -30
- package/esm2022/lib/modal-ui/components/modal/modal.component.mjs +0 -264
- package/esm2022/lib/modal-ui/components/modal-footer/modal-footer.component.mjs +0 -16
- package/esm2022/lib/modal-ui/components/modal-header/modal-header.component.mjs +0 -19
- package/esm2022/lib/modal-ui/directives/modal-content.directive.mjs +0 -14
- package/esm2022/lib/modal-ui/modal.constants.mjs +0 -18
- package/esm2022/lib/modal-ui/modal.module.mjs +0 -47
- package/esm2022/lib/popover-ui/components/popover/popover.component.mjs +0 -228
- package/esm2022/lib/popover-ui/directives/popover-click.directive.mjs +0 -52
- package/esm2022/lib/popover-ui/directives/popover-content.directive.mjs +0 -17
- package/esm2022/lib/popover-ui/directives/popover-hover.directive.mjs +0 -88
- package/esm2022/lib/popover-ui/popover-ui.module.mjs +0 -21
- package/esm2022/lib/shared/date-helpers.mjs +0 -35
- package/esm2022/lib/shared/html-helpers.function.mjs +0 -34
- package/esm2022/lib/shared/misc-helpers.mjs +0 -24
- package/esm2022/lib/shared/observe.mjs +0 -40
- package/esm2022/lib/tab-ui/components/tab/tab.component.mjs +0 -118
- package/esm2022/lib/tab-ui/components/tab-group/tab-group-key-codes.enum.mjs +0 -12
- package/esm2022/lib/tab-ui/components/tab-group/tab-group.component.mjs +0 -150
- package/esm2022/lib/tab-ui/tab-ui.module.mjs +0 -20
- package/esm2022/ui5/icons/lx-icons.json +0 -177
- package/esm2022/ui5/icons/register-icons.mjs +0 -14
- package/esm2022/ui5/index.mjs +0 -8
- package/esm2022/ui5/leanix-components-ui5.mjs +0 -5
- package/esm2022/ui5/ui5.provider.mjs +0 -29
@@ -1,38 +0,0 @@
|
|
1
|
-
import { __decorate } from "tslib";
|
2
|
-
import { Directive, Input } from '@angular/core';
|
3
|
-
import { merge } from 'rxjs';
|
4
|
-
import { filter, switchMap, take } from 'rxjs/operators';
|
5
|
-
import { Observe } from '../../../../shared/observe';
|
6
|
-
import { DRAG_AND_DROP_LIST_TRANSLATION_NAME } from '../constants';
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
import * as i1 from "@ngx-translate/core";
|
9
|
-
export class KeyboardSortableListDirective {
|
10
|
-
constructor(translateService) {
|
11
|
-
this.translateService = translateService;
|
12
|
-
}
|
13
|
-
ngAfterViewInit() {
|
14
|
-
this.setupControlsTooltipToBeShownOnFirstFocusedItem();
|
15
|
-
}
|
16
|
-
setupControlsTooltipToBeShownOnFirstFocusedItem() {
|
17
|
-
const firstFocusEventOnADraggableItem$ = this.keyboardSortableItems$.pipe(filter((items) => items && items.length > 0), switchMap((items) => merge(...items.filter((item) => item.isSortable).map((item) => item.focusWithKeyboard))), take(1));
|
18
|
-
firstFocusEventOnADraggableItem$.subscribe((item) => {
|
19
|
-
item.tooltipDirective.content = this.translateService.instant(`${DRAG_AND_DROP_LIST_TRANSLATION_NAME}.helpTooltip`);
|
20
|
-
item.tooltipDirective.show();
|
21
|
-
});
|
22
|
-
}
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KeyboardSortableListDirective, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
24
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: KeyboardSortableListDirective, isStandalone: true, selector: "[lxKeyboardSortableList]", inputs: { keyboardSortableItems: "keyboardSortableItems" }, ngImport: i0 }); }
|
25
|
-
}
|
26
|
-
__decorate([
|
27
|
-
Observe('keyboardSortableItems')
|
28
|
-
], KeyboardSortableListDirective.prototype, "keyboardSortableItems$", void 0);
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KeyboardSortableListDirective, decorators: [{
|
30
|
-
type: Directive,
|
31
|
-
args: [{
|
32
|
-
selector: '[lxKeyboardSortableList]',
|
33
|
-
standalone: true
|
34
|
-
}]
|
35
|
-
}], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { keyboardSortableItems$: [], keyboardSortableItems: [{
|
36
|
-
type: Input
|
37
|
-
}] } });
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtc29ydGFibGUtbGlzdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2RyYWctYW5kLWRyb3AtbGlzdC9rZXlib2FyZC1zb3J0YWJsZS1saXN0L2tleWJvYXJkLXNvcnRhYmxlLWxpc3QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEUsT0FBTyxFQUFjLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFPbkUsTUFBTSxPQUFPLDZCQUE2QjtJQUl4QyxZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUFHLENBQUM7SUFFMUQsZUFBZTtRQUNiLElBQUksQ0FBQywrQ0FBK0MsRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFTywrQ0FBK0M7UUFDckQsTUFBTSxnQ0FBZ0MsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUN2RSxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUM1QyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsRUFDN0csSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSLENBQUM7UUFFRixnQ0FBZ0MsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxtQ0FBbUMsY0FBYyxDQUFDLENBQUM7WUFDcEgsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FyQlUsNkJBQTZCO2tHQUE3Qiw2QkFBNkI7O0FBQ0U7SUFBekMsT0FBTyxDQUFDLHVCQUF1QixDQUFDOzZFQUE4RTsyRkFEcEcsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjtxRkFFMkMsc0JBQXNCLE1BQ3ZELHFCQUFxQjtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmUgfSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvb2JzZXJ2ZSc7XG5pbXBvcnQgeyBEUkFHX0FORF9EUk9QX0xJU1RfVFJBTlNMQVRJT05fTkFNRSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBLZXlib2FyZFNvcnRhYmxlSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uL2tleWJvYXJkLXNvcnRhYmxlLWl0ZW0va2V5Ym9hcmQtc29ydGFibGUtaXRlbS5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbHhLZXlib2FyZFNvcnRhYmxlTGlzdF0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEtleWJvYXJkU29ydGFibGVMaXN0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBPYnNlcnZlKCdrZXlib2FyZFNvcnRhYmxlSXRlbXMnKSBwcml2YXRlIGtleWJvYXJkU29ydGFibGVJdGVtcyQhOiBPYnNlcnZhYmxlPEtleWJvYXJkU29ydGFibGVJdGVtRGlyZWN0aXZlW10+O1xuICBASW5wdXQoKSBrZXlib2FyZFNvcnRhYmxlSXRlbXMhOiBLZXlib2FyZFNvcnRhYmxlSXRlbURpcmVjdGl2ZVtdIHwgbnVsbDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0dXBDb250cm9sc1Rvb2x0aXBUb0JlU2hvd25PbkZpcnN0Rm9jdXNlZEl0ZW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBDb250cm9sc1Rvb2x0aXBUb0JlU2hvd25PbkZpcnN0Rm9jdXNlZEl0ZW0oKSB7XG4gICAgY29uc3QgZmlyc3RGb2N1c0V2ZW50T25BRHJhZ2dhYmxlSXRlbSQgPSB0aGlzLmtleWJvYXJkU29ydGFibGVJdGVtcyQucGlwZShcbiAgICAgIGZpbHRlcigoaXRlbXMpID0+IGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCA+IDApLFxuICAgICAgc3dpdGNoTWFwKChpdGVtcykgPT4gbWVyZ2UoLi4uaXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmlzU29ydGFibGUpLm1hcCgoaXRlbSkgPT4gaXRlbS5mb2N1c1dpdGhLZXlib2FyZCkpKSxcbiAgICAgIHRha2UoMSlcbiAgICApO1xuXG4gICAgZmlyc3RGb2N1c0V2ZW50T25BRHJhZ2dhYmxlSXRlbSQuc3Vic2NyaWJlKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLnRvb2x0aXBEaXJlY3RpdmUuY29udGVudCA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGAke0RSQUdfQU5EX0RST1BfTElTVF9UUkFOU0xBVElPTl9OQU1FfS5oZWxwVG9vbHRpcGApO1xuICAgICAgaXRlbS50b29sdGlwRGlyZWN0aXZlLnNob3coKTtcbiAgICB9KTtcbiAgfVxufVxuIl19
|
@@ -1,16 +0,0 @@
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, signal, viewChild } from '@angular/core';
|
2
|
-
import * as i0 from "@angular/core";
|
3
|
-
export class ErrorMessageComponent {
|
4
|
-
constructor() {
|
5
|
-
this.dynamicErrorMessage = signal('');
|
6
|
-
this.wrapper = viewChild.required('contentWrapper');
|
7
|
-
this.computedErrorMessage = computed(() => this.dynamicErrorMessage() || this.wrapper().nativeElement.innerText);
|
8
|
-
}
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ErrorMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
10
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: ErrorMessageComponent, isStandalone: true, selector: "lx-error-message", viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["contentWrapper"], descendants: true, isSignal: true }], ngImport: i0, template: "<span #contentWrapper hidden>\n <ng-content />\n</span>\n\n@if (computedErrorMessage()) {\n <div class=\"error\">\n {{ computedErrorMessage() }}\n </div>\n}\n", styles: [".error{color:#f96464;padding:4px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
11
|
-
}
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ErrorMessageComponent, decorators: [{
|
13
|
-
type: Component,
|
14
|
-
args: [{ selector: 'lx-error-message', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<span #contentWrapper hidden>\n <ng-content />\n</span>\n\n@if (computedErrorMessage()) {\n <div class=\"error\">\n {{ computedErrorMessage() }}\n </div>\n}\n", styles: [".error{color:#f96464;padding:4px}\n"] }]
|
15
|
-
}] });
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItbWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2Vycm9yLW1lc3NhZ2UvZXJyb3ItbWVzc2FnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2Vycm9yLW1lc3NhZ2UvZXJyb3ItbWVzc2FnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBYyxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVM1RyxNQUFNLE9BQU8scUJBQXFCO0lBUGxDO1FBUWtCLHdCQUFtQixHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNoQyxZQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBOEIsZ0JBQWdCLENBQUMsQ0FBQztRQUNuRix5QkFBb0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUN2SDs4R0FKWSxxQkFBcUI7a0dBQXJCLHFCQUFxQix1TUNUbEMsc0tBU0E7OzJGREFhLHFCQUFxQjtrQkFQakMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIEVsZW1lbnRSZWYsIHNpZ25hbCwgdmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LWVycm9yLW1lc3NhZ2UnLFxuICB0ZW1wbGF0ZVVybDogJy4vZXJyb3ItbWVzc2FnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Vycm9yLW1lc3NhZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRXJyb3JNZXNzYWdlQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IGR5bmFtaWNFcnJvck1lc3NhZ2UgPSBzaWduYWwoJycpO1xuICBwcml2YXRlIHJlYWRvbmx5IHdyYXBwZXIgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MU3BhbkVsZW1lbnQ+PignY29udGVudFdyYXBwZXInKTtcbiAgcHJvdGVjdGVkIGNvbXB1dGVkRXJyb3JNZXNzYWdlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5keW5hbWljRXJyb3JNZXNzYWdlKCkgfHwgdGhpcy53cmFwcGVyKCkubmF0aXZlRWxlbWVudC5pbm5lclRleHQpO1xufVxuIiwiPHNwYW4gI2NvbnRlbnRXcmFwcGVyIGhpZGRlbj5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvc3Bhbj5cblxuQGlmIChjb21wdXRlZEVycm9yTWVzc2FnZSgpKSB7XG4gIDxkaXYgY2xhc3M9XCJlcnJvclwiPlxuICAgIHt7IGNvbXB1dGVkRXJyb3JNZXNzYWdlKCkgfX1cbiAgPC9kaXY+XG59XG4iXX0=
|
@@ -1,26 +0,0 @@
|
|
1
|
-
import { AsyncPipe, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
|
2
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
3
|
-
import { TranslateModule } from '@ngx-translate/core';
|
4
|
-
import { SelectableItemDirective } from '../../directives/selectable-item.directive';
|
5
|
-
import { KeyboardSelectDirective } from '../keyboard-select.directive';
|
6
|
-
import * as i0 from "@angular/core";
|
7
|
-
import * as i1 from "@ngx-translate/core";
|
8
|
-
export class ExpandedDropdownComponent extends KeyboardSelectDirective {
|
9
|
-
constructor() {
|
10
|
-
super(...arguments);
|
11
|
-
this.NAME = 'BasicDropdownComponent';
|
12
|
-
this.options = [];
|
13
|
-
this.onChooseItem = new EventEmitter();
|
14
|
-
}
|
15
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ExpandedDropdownComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
16
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: ExpandedDropdownComponent, isStandalone: true, selector: "lx-expanded-dropdown", inputs: { options: "options" }, outputs: { onChooseItem: "onChooseItem" }, usesInheritance: true, ngImport: i0, template: "<ul role=\"listbox\" class=\"options lxThinScrollbar\" #keyboardSelectContainer>\n <li *ngIf=\"options?.length === 0\" tabindex=\"-1\" id=\"noOption\" class=\"option noOptionsAvailable\">\n {{ NAME + '.noResults' | translate }}\n </li>\n <li\n *ngFor=\"let option of options; let index = index\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n class=\"option keyboardSelectable\"\n (click)=\"onChooseItem.emit(option.id)\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n role=\"option\"\n [attr.aria-selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n >\n <ng-container>\n <ng-container *ngTemplateOutlet=\"simpleStringDisplay; context: { $implicit: option, index: index }\" />\n </ng-container>\n <ng-template #simpleStringDisplay>\n <span [title]=\"option.name\">\n {{ option.name }}\n </span>\n </ng-template>\n <div class=\"iconContainer\">\n <svg\n width=\"32px\"\n height=\"32px\"\n viewBox=\"0 0 32 32\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <g id=\"choose-workspace-D\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g id=\"choose-a-workspace-D\" transform=\"translate(-911.000000, -429.000000)\">\n <g id=\"Group-3\" transform=\"translate(471.000000, 249.000000)\">\n <g id=\"Button/Text/Primary/Medium\" transform=\"translate(440.000000, 180.000000)\">\n <g id=\"UI/Shape/Rectangle-rounded-2px\" fill=\"#0070f2\">\n <circle id=\"\uD83C\uDFA8-Style\" cx=\"16\" cy=\"16\" r=\"16\" />\n </g>\n <g id=\"Icons/basic/refresh\" transform=\"translate(7.000000, 11.000000)\" fill=\"#FFFFFF\" fill-rule=\"nonzero\">\n <g id=\"arrow-right\" transform=\"translate(3.772240, 0.000000)\">\n <path\n d=\"M5.41769476,0.0873198725 L4.92588162,0.579133017 C4.80947996,0.695534673 4.80947996,0.88427129 4.92588162,1.00069779 L8.77935771,4.85414904 L0.298083627,4.85414904 C0.133466944,4.85414904 0,4.98761598 0,5.15223266 L0,5.84776113 C0,6.01237781 0.133466944,6.14584475 0.298083627,6.14584475 L8.77935771,6.14584475 L4.92588162,9.99932084 C4.80947996,10.1157225 4.80947996,10.3044591 4.92588162,10.4208856 L5.41769476,10.9126988 C5.53409642,11.0291004 5.72283304,11.0291004 5.83925953,10.9126988 L11.0411666,5.7107917 C11.1575682,5.59439004 11.1575682,5.40565343 11.0411666,5.28922693 L5.83923469,0.0873198725 C5.72283304,-0.0291066242 5.53409642,-0.0291066242 5.41769476,0.0873198725 Z\"\n id=\"Path\"\n />\n </g>\n </g>\n </g>\n </g>\n </g>\n </g>\n </svg>\n </div>\n </li>\n</ul>\n", styles: [".options{list-style:none;margin:0;padding:0;overflow-y:auto;max-height:200px}.options:hover .selected{background-color:#fff}.optionSearch{padding:2px}.option{display:flex;justify-content:space-between;font-size:var(--lxFontLargeSize, 16px);height:40px;align-items:center;padding:4px 12px;border-bottom:1px solid #e1e5eb}.option:hover{background-color:#e1e5eb!important}.option.selected{background:#eaedf1}.option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iconContainer{display:none}.option:hover .iconContainer{display:flex}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: SelectableItemDirective, selector: "[lxSelectableItem]", inputs: ["scrollInContainer", "lxSelectableItem"], outputs: ["select"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
17
|
-
}
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ExpandedDropdownComponent, decorators: [{
|
19
|
-
type: Component,
|
20
|
-
args: [{ selector: 'lx-expanded-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, NgFor, SelectableItemDirective, NgTemplateOutlet, AsyncPipe, TranslateModule], template: "<ul role=\"listbox\" class=\"options lxThinScrollbar\" #keyboardSelectContainer>\n <li *ngIf=\"options?.length === 0\" tabindex=\"-1\" id=\"noOption\" class=\"option noOptionsAvailable\">\n {{ NAME + '.noResults' | translate }}\n </li>\n <li\n *ngFor=\"let option of options; let index = index\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n class=\"option keyboardSelectable\"\n (click)=\"onChooseItem.emit(option.id)\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n role=\"option\"\n [attr.aria-selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n >\n <ng-container>\n <ng-container *ngTemplateOutlet=\"simpleStringDisplay; context: { $implicit: option, index: index }\" />\n </ng-container>\n <ng-template #simpleStringDisplay>\n <span [title]=\"option.name\">\n {{ option.name }}\n </span>\n </ng-template>\n <div class=\"iconContainer\">\n <svg\n width=\"32px\"\n height=\"32px\"\n viewBox=\"0 0 32 32\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <g id=\"choose-workspace-D\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g id=\"choose-a-workspace-D\" transform=\"translate(-911.000000, -429.000000)\">\n <g id=\"Group-3\" transform=\"translate(471.000000, 249.000000)\">\n <g id=\"Button/Text/Primary/Medium\" transform=\"translate(440.000000, 180.000000)\">\n <g id=\"UI/Shape/Rectangle-rounded-2px\" fill=\"#0070f2\">\n <circle id=\"\uD83C\uDFA8-Style\" cx=\"16\" cy=\"16\" r=\"16\" />\n </g>\n <g id=\"Icons/basic/refresh\" transform=\"translate(7.000000, 11.000000)\" fill=\"#FFFFFF\" fill-rule=\"nonzero\">\n <g id=\"arrow-right\" transform=\"translate(3.772240, 0.000000)\">\n <path\n d=\"M5.41769476,0.0873198725 L4.92588162,0.579133017 C4.80947996,0.695534673 4.80947996,0.88427129 4.92588162,1.00069779 L8.77935771,4.85414904 L0.298083627,4.85414904 C0.133466944,4.85414904 0,4.98761598 0,5.15223266 L0,5.84776113 C0,6.01237781 0.133466944,6.14584475 0.298083627,6.14584475 L8.77935771,6.14584475 L4.92588162,9.99932084 C4.80947996,10.1157225 4.80947996,10.3044591 4.92588162,10.4208856 L5.41769476,10.9126988 C5.53409642,11.0291004 5.72283304,11.0291004 5.83925953,10.9126988 L11.0411666,5.7107917 C11.1575682,5.59439004 11.1575682,5.40565343 11.0411666,5.28922693 L5.83923469,0.0873198725 C5.72283304,-0.0291066242 5.53409642,-0.0291066242 5.41769476,0.0873198725 Z\"\n id=\"Path\"\n />\n </g>\n </g>\n </g>\n </g>\n </g>\n </g>\n </svg>\n </div>\n </li>\n</ul>\n", styles: [".options{list-style:none;margin:0;padding:0;overflow-y:auto;max-height:200px}.options:hover .selected{background-color:#fff}.optionSearch{padding:2px}.option{display:flex;justify-content:space-between;font-size:var(--lxFontLargeSize, 16px);height:40px;align-items:center;padding:4px 12px;border-bottom:1px solid #e1e5eb}.option:hover{background-color:#e1e5eb!important}.option.selected{background:#eaedf1}.option span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iconContainer{display:none}.option:hover .iconContainer{display:flex}\n"] }]
|
21
|
-
}], propDecorators: { options: [{
|
22
|
-
type: Input
|
23
|
-
}], onChooseItem: [{
|
24
|
-
type: Output
|
25
|
-
}] } });
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kZWQtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvY29tcG9uZW50cy9leHBhbmRlZC1kcm9wZG93bi9leHBhbmRlZC1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2V4cGFuZGVkLWRyb3Bkb3duL2V4cGFuZGVkLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBaUIsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUNyRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBVXZFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx1QkFBdUI7SUFSdEU7O1FBU1csU0FBSSxHQUFHLHdCQUF3QixDQUFDO1FBRWhDLFlBQU8sR0FBVSxFQUFFLENBQUM7UUFFbkIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBQ3JEOzhHQU5ZLHlCQUF5QjtrR0FBekIseUJBQXlCLGtMQ2R0QywwNkZBd0RBLDhsQkQ1Q1ksSUFBSSw2RkFBRSxLQUFLLG1IQUFFLHVCQUF1Qix1SUFBRSxnQkFBZ0IsK0lBQUUsU0FBUyw2Q0FBRSxlQUFlOzsyRkFFakYseUJBQXlCO2tCQVJyQyxTQUFTOytCQUNFLHNCQUFzQixtQkFHZix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLGVBQWUsQ0FBQzs4QkFLcEYsT0FBTztzQkFBZixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nRm9yLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3RhYmxlSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvc2VsZWN0YWJsZS1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBLZXlib2FyZFNlbGVjdERpcmVjdGl2ZSB9IGZyb20gJy4uL2tleWJvYXJkLXNlbGVjdC5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1leHBhbmRlZC1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnZXhwYW5kZWQtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnZXhwYW5kZWQtZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmLCBOZ0ZvciwgU2VsZWN0YWJsZUl0ZW1EaXJlY3RpdmUsIE5nVGVtcGxhdGVPdXRsZXQsIEFzeW5jUGlwZSwgVHJhbnNsYXRlTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBFeHBhbmRlZERyb3Bkb3duQ29tcG9uZW50IGV4dGVuZHMgS2V5Ym9hcmRTZWxlY3REaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcmVhZG9ubHkgTkFNRSA9ICdCYXNpY0Ryb3Bkb3duQ29tcG9uZW50JztcblxuICBASW5wdXQoKSBvcHRpb25zOiBhbnlbXSA9IFtdO1xuXG4gIEBPdXRwdXQoKSBvbkNob29zZUl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbn1cbiIsIjx1bCByb2xlPVwibGlzdGJveFwiIGNsYXNzPVwib3B0aW9ucyBseFRoaW5TY3JvbGxiYXJcIiAja2V5Ym9hcmRTZWxlY3RDb250YWluZXI+XG4gIDxsaSAqbmdJZj1cIm9wdGlvbnM/Lmxlbmd0aCA9PT0gMFwiIHRhYmluZGV4PVwiLTFcIiBpZD1cIm5vT3B0aW9uXCIgY2xhc3M9XCJvcHRpb24gbm9PcHRpb25zQXZhaWxhYmxlXCI+XG4gICAge3sgTkFNRSArICcubm9SZXN1bHRzJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2xpPlxuICA8bGlcbiAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnM7IGxldCBpbmRleCA9IGluZGV4XCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICBseFNlbGVjdGFibGVJdGVtXG4gICAgW3Njcm9sbEluQ29udGFpbmVyXT1cImtleWJvYXJkU2VsZWN0Q29udGFpbmVyXCJcbiAgICAjaXRlbVxuICAgIGNsYXNzPVwib3B0aW9uIGtleWJvYXJkU2VsZWN0YWJsZVwiXG4gICAgKGNsaWNrKT1cIm9uQ2hvb3NlSXRlbS5lbWl0KG9wdGlvbi5pZClcIlxuICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtLCAoc2VsZWN0ZWRJdGVtJCB8IGFzeW5jKT8uZWxlbWVudClcIlxuICAgIHJvbGU9XCJvcHRpb25cIlxuICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSwgKHNlbGVjdGVkSXRlbSQgfCBhc3luYyk/LmVsZW1lbnQpXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2ltcGxlU3RyaW5nRGlzcGxheTsgY29udGV4dDogeyAkaW1wbGljaXQ6IG9wdGlvbiwgaW5kZXg6IGluZGV4IH1cIiAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjc2ltcGxlU3RyaW5nRGlzcGxheT5cbiAgICAgIDxzcGFuIFt0aXRsZV09XCJvcHRpb24ubmFtZVwiPlxuICAgICAgICB7eyBvcHRpb24ubmFtZSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImljb25Db250YWluZXJcIj5cbiAgICAgIDxzdmdcbiAgICAgICAgd2lkdGg9XCIzMnB4XCJcbiAgICAgICAgaGVpZ2h0PVwiMzJweFwiXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMzIgMzJcIlxuICAgICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiXG4gICAgICA+XG4gICAgICAgIDxnIGlkPVwiY2hvb3NlLXdvcmtzcGFjZS1EXCIgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjFcIiBmaWxsPVwibm9uZVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj5cbiAgICAgICAgICA8ZyBpZD1cImNob29zZS1hLXdvcmtzcGFjZS1EXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKC05MTEuMDAwMDAwLCAtNDI5LjAwMDAwMClcIj5cbiAgICAgICAgICAgIDxnIGlkPVwiR3JvdXAtM1wiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSg0NzEuMDAwMDAwLCAyNDkuMDAwMDAwKVwiPlxuICAgICAgICAgICAgICA8ZyBpZD1cIkJ1dHRvbi9UZXh0L1ByaW1hcnkvTWVkaXVtXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDQ0MC4wMDAwMDAsIDE4MC4wMDAwMDApXCI+XG4gICAgICAgICAgICAgICAgPGcgaWQ9XCJVSS9TaGFwZS9SZWN0YW5nbGUtcm91bmRlZC0ycHhcIiBmaWxsPVwiIzAwNzBmMlwiPlxuICAgICAgICAgICAgICAgICAgPGNpcmNsZSBpZD1cIvCfjqgtU3R5bGVcIiBjeD1cIjE2XCIgY3k9XCIxNlwiIHI9XCIxNlwiIC8+XG4gICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICAgIDxnIGlkPVwiSWNvbnMvYmFzaWMvcmVmcmVzaFwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSg3LjAwMDAwMCwgMTEuMDAwMDAwKVwiIGZpbGw9XCIjRkZGRkZGXCIgZmlsbC1ydWxlPVwibm9uemVyb1wiPlxuICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJhcnJvdy1yaWdodFwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgzLjc3MjI0MCwgMC4wMDAwMDApXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgZD1cIk01LjQxNzY5NDc2LDAuMDg3MzE5ODcyNSBMNC45MjU4ODE2MiwwLjU3OTEzMzAxNyBDNC44MDk0Nzk5NiwwLjY5NTUzNDY3MyA0LjgwOTQ3OTk2LDAuODg0MjcxMjkgNC45MjU4ODE2MiwxLjAwMDY5Nzc5IEw4Ljc3OTM1NzcxLDQuODU0MTQ5MDQgTDAuMjk4MDgzNjI3LDQuODU0MTQ5MDQgQzAuMTMzNDY2OTQ0LDQuODU0MTQ5MDQgMCw0Ljk4NzYxNTk4IDAsNS4xNTIyMzI2NiBMMCw1Ljg0Nzc2MTEzIEMwLDYuMDEyMzc3ODEgMC4xMzM0NjY5NDQsNi4xNDU4NDQ3NSAwLjI5ODA4MzYyNyw2LjE0NTg0NDc1IEw4Ljc3OTM1NzcxLDYuMTQ1ODQ0NzUgTDQuOTI1ODgxNjIsOS45OTkzMjA4NCBDNC44MDk0Nzk5NiwxMC4xMTU3MjI1IDQuODA5NDc5OTYsMTAuMzA0NDU5MSA0LjkyNTg4MTYyLDEwLjQyMDg4NTYgTDUuNDE3Njk0NzYsMTAuOTEyNjk4OCBDNS41MzQwOTY0MiwxMS4wMjkxMDA0IDUuNzIyODMzMDQsMTEuMDI5MTAwNCA1LjgzOTI1OTUzLDEwLjkxMjY5ODggTDExLjA0MTE2NjYsNS43MTA3OTE3IEMxMS4xNTc1NjgyLDUuNTk0MzkwMDQgMTEuMTU3NTY4Miw1LjQwNTY1MzQzIDExLjA0MTE2NjYsNS4yODkyMjY5MyBMNS44MzkyMzQ2OSwwLjA4NzMxOTg3MjUgQzUuNzIyODMzMDQsLTAuMDI5MTA2NjI0MiA1LjUzNDA5NjQyLC0wLjAyOTEwNjYyNDIgNS40MTc2OTQ3NiwwLjA4NzMxOTg3MjUgWlwiXG4gICAgICAgICAgICAgICAgICAgICAgaWQ9XCJQYXRoXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICA8L2c+XG4gICAgICAgIDwvZz5cbiAgICAgIDwvc3ZnPlxuICAgIDwvZGl2PlxuICA8L2xpPlxuPC91bD5cbiJdfQ==
|
@@ -1,44 +0,0 @@
|
|
1
|
-
import { NgFor } from '@angular/common';
|
2
|
-
import { Component, Input } from '@angular/core';
|
3
|
-
import { TranslateModule } from '@ngx-translate/core';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "@ngx-translate/core";
|
6
|
-
export class FormErrorComponent {
|
7
|
-
constructor() {
|
8
|
-
/** @internal */
|
9
|
-
this.translationKeys = [];
|
10
|
-
}
|
11
|
-
ngOnInit() {
|
12
|
-
this.formSubscription = this.form.valueChanges.subscribe(() => {
|
13
|
-
this.translationKeys = this.getTranslationKeys();
|
14
|
-
});
|
15
|
-
}
|
16
|
-
ngOnChanges(_changes) {
|
17
|
-
this.translationKeys = this.getTranslationKeys();
|
18
|
-
}
|
19
|
-
ngOnDestroy() {
|
20
|
-
if (this.formSubscription)
|
21
|
-
this.formSubscription.unsubscribe();
|
22
|
-
}
|
23
|
-
/** @internal */
|
24
|
-
getTranslationKeys() {
|
25
|
-
const formControl = this.form.get(this.controlName);
|
26
|
-
if (formControl && formControl.errors) {
|
27
|
-
return Object.keys(formControl.errors).map((errorKey) => `${this.namespace}.errors.${this.controlName}.${errorKey}`);
|
28
|
-
}
|
29
|
-
return [];
|
30
|
-
}
|
31
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FormErrorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
32
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FormErrorComponent, isStandalone: true, selector: "lx-form-error", inputs: { namespace: "namespace", form: "form", controlName: "controlName" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"error\" *ngFor=\"let key of translationKeys\">\n {{ key | translate }}\n</div>\n", styles: [".error{color:#f96464;padding:4px}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
|
33
|
-
}
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FormErrorComponent, decorators: [{
|
35
|
-
type: Component,
|
36
|
-
args: [{ selector: 'lx-form-error', standalone: true, imports: [NgFor, TranslateModule], template: "<div class=\"error\" *ngFor=\"let key of translationKeys\">\n {{ key | translate }}\n</div>\n", styles: [".error{color:#f96464;padding:4px}\n"] }]
|
37
|
-
}], propDecorators: { namespace: [{
|
38
|
-
type: Input
|
39
|
-
}], form: [{
|
40
|
-
type: Input
|
41
|
-
}], controlName: [{
|
42
|
-
type: Input
|
43
|
-
}] } });
|
44
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lcnJvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQStDLE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBVXRELE1BQU0sT0FBTyxrQkFBa0I7SUFQL0I7UUFZRSxnQkFBZ0I7UUFDaEIsb0JBQWUsR0FBYSxFQUFFLENBQUM7S0F5QmhDO0lBdEJDLFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM1RCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUF1QjtRQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCO1lBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsa0JBQWtCO1FBQ2hCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRCxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsV0FBVyxJQUFJLENBQUMsV0FBVyxJQUFJLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkgsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs4R0E5QlUsa0JBQWtCO2tHQUFsQixrQkFBa0IsNEtDYi9CLGdHQUdBLDZGRFFZLEtBQUssa0hBQUUsZUFBZTs7MkZBRXJCLGtCQUFrQjtrQkFQOUIsU0FBUzsrQkFDRSxlQUFlLGNBR2IsSUFBSSxXQUNQLENBQUMsS0FBSyxFQUFFLGVBQWUsQ0FBQzs4QkFHakIsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0ZvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtZm9ybS1lcnJvcicsXG4gIHRlbXBsYXRlVXJsOiAnZm9ybS1lcnJvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydmb3JtLWVycm9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0ZvciwgVHJhbnNsYXRlTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRXJyb3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgQElucHV0KCkgcHVibGljIG5hbWVzcGFjZSE6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGZvcm0hOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBASW5wdXQoKSBwdWJsaWMgY29udHJvbE5hbWUhOiBzdHJpbmc7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICB0cmFuc2xhdGlvbktleXM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgZm9ybVN1YnNjcmlwdGlvbiE6IFN1YnNjcmlwdGlvbjtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmZvcm1TdWJzY3JpcHRpb24gPSB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnRyYW5zbGF0aW9uS2V5cyA9IHRoaXMuZ2V0VHJhbnNsYXRpb25LZXlzKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhfY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIHRoaXMudHJhbnNsYXRpb25LZXlzID0gdGhpcy5nZXRUcmFuc2xhdGlvbktleXMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmZvcm1TdWJzY3JpcHRpb24pIHRoaXMuZm9ybVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBnZXRUcmFuc2xhdGlvbktleXMoKSB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KHRoaXMuY29udHJvbE5hbWUpO1xuICAgIGlmIChmb3JtQ29udHJvbCAmJiBmb3JtQ29udHJvbC5lcnJvcnMpIHtcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhmb3JtQ29udHJvbC5lcnJvcnMpLm1hcCgoZXJyb3JLZXkpID0+IGAke3RoaXMubmFtZXNwYWNlfS5lcnJvcnMuJHt0aGlzLmNvbnRyb2xOYW1lfS4ke2Vycm9yS2V5fWApO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJlcnJvclwiICpuZ0Zvcj1cImxldCBrZXkgb2YgdHJhbnNsYXRpb25LZXlzXCI+XG4gIHt7IGtleSB8IHRyYW5zbGF0ZSB9fVxuPC9kaXY+XG4iXX0=
|
@@ -1,45 +0,0 @@
|
|
1
|
-
import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
|
2
|
-
import * as i0 from "@angular/core";
|
3
|
-
/**
|
4
|
-
* @ignore
|
5
|
-
* Displays Font Awesome icons.
|
6
|
-
*/
|
7
|
-
export class IconComponent {
|
8
|
-
constructor() {
|
9
|
-
this.NAME = 'IconComponent';
|
10
|
-
this.color = '#000';
|
11
|
-
this.fontAwsomeStyle = 'regular';
|
12
|
-
this.size = '14px';
|
13
|
-
this.iconStyleMap = {
|
14
|
-
solid: 'fas',
|
15
|
-
regular: 'far',
|
16
|
-
light: 'fal'
|
17
|
-
};
|
18
|
-
this.iconStyle = 'far';
|
19
|
-
}
|
20
|
-
ngOnChanges(changes) {
|
21
|
-
if ('fontAwsomeStyle' in changes) {
|
22
|
-
this.iconStyle = this.iconStyleMap[this.fontAwsomeStyle];
|
23
|
-
}
|
24
|
-
}
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
26
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: IconComponent, isStandalone: true, selector: "lx-icon", inputs: { name: "name", color: "color", fontAwsomeStyle: "fontAwsomeStyle", size: "size", title: "title" }, host: { properties: { "style.height": "this.size" } }, usesOnChanges: true, ngImport: i0, template: "<i [attr.title]=\"title\" [class]=\"iconStyle + ' fa-' + name\" [style.color]=\"color\" [style.fontSize]=\"size\"></i>\n", styles: [":host{display:inline-block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
27
|
-
}
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: IconComponent, decorators: [{
|
29
|
-
type: Component,
|
30
|
-
args: [{ selector: 'lx-icon', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<i [attr.title]=\"title\" [class]=\"iconStyle + ' fa-' + name\" [style.color]=\"color\" [style.fontSize]=\"size\"></i>\n", styles: [":host{display:inline-block}\n"] }]
|
31
|
-
}], propDecorators: { name: [{
|
32
|
-
type: Input
|
33
|
-
}], color: [{
|
34
|
-
type: Input
|
35
|
-
}], fontAwsomeStyle: [{
|
36
|
-
type: Input
|
37
|
-
}], size: [{
|
38
|
-
type: Input
|
39
|
-
}, {
|
40
|
-
type: HostBinding,
|
41
|
-
args: ['style.height']
|
42
|
-
}], title: [{
|
43
|
-
type: Input
|
44
|
-
}] } });
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDOztBQVNqSDs7O0dBR0c7QUFRSCxNQUFNLE9BQU8sYUFBYTtJQVAxQjtRQVFXLFNBQUksR0FBRyxlQUFlLENBQUM7UUFNdkIsVUFBSyxHQUFXLE1BQU0sQ0FBQztRQUN2QixvQkFBZSxHQUFrQyxTQUFTLENBQUM7UUFDOUIsU0FBSSxHQUFXLE1BQU0sQ0FBQztRQUdwRCxpQkFBWSxHQUFVO1lBQzVCLEtBQUssRUFBRSxLQUFLO1lBQ1osT0FBTyxFQUFFLEtBQUs7WUFDZCxLQUFLLEVBQUUsS0FBSztTQUNiLENBQUM7UUFFRixjQUFTLEdBQXlCLEtBQUssQ0FBQztLQU96QztJQUxDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLGlCQUFpQixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNILENBQUM7OEdBeEJVLGFBQWE7a0dBQWIsYUFBYSwyUENwQjFCLDBIQUNBOzsyRkRtQmEsYUFBYTtrQkFQekIsU0FBUzsrQkFDRSxTQUFTLG1CQUdGLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSTs4QkFRUCxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ2dDLElBQUk7c0JBQXpDLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsY0FBYztnQkFDM0IsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBmYXMgaXMgc29saWQsXG4gKiBmYXIgaXMgcmVndWxhcixcbiAqIGZhbCBpcyBsaWdodFxuICovXG50eXBlIEZvbnRBd2Vzb21lSWNvblN0eWxlID0gJ2ZhcycgfCAnZmFyJyB8ICdmYWwnO1xuXG4vKipcbiAqIEBpZ25vcmVcbiAqIERpc3BsYXlzIEZvbnQgQXdlc29tZSBpY29ucy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtaWNvbicsXG4gIHRlbXBsYXRlVXJsOiAnaWNvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydpY29uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIEljb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICByZWFkb25seSBOQU1FID0gJ0ljb25Db21wb25lbnQnO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgaWNvbiBpcyB0aGUgcGFydCB0aGF0IGNvbWVzIGFmdGVyIHRoZSBcImZhLVwiIGluIHRoZSBDU1MgY2xhc3MuXG4gICAqL1xuICBASW5wdXQoKSBuYW1lITogc3RyaW5nO1xuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nID0gJyMwMDAnO1xuICBASW5wdXQoKSBmb250QXdzb21lU3R5bGU6ICdzb2xpZCcgfCAncmVndWxhcicgfCAnbGlnaHQnID0gJ3JlZ3VsYXInO1xuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodCcpIHNpemU6IHN0cmluZyA9ICcxNHB4JztcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBpY29uU3R5bGVNYXAgPSA8Y29uc3Q+e1xuICAgIHNvbGlkOiAnZmFzJyxcbiAgICByZWd1bGFyOiAnZmFyJyxcbiAgICBsaWdodDogJ2ZhbCdcbiAgfTtcblxuICBpY29uU3R5bGU6IEZvbnRBd2Vzb21lSWNvblN0eWxlID0gJ2Zhcic7XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICgnZm9udEF3c29tZVN0eWxlJyBpbiBjaGFuZ2VzKSB7XG4gICAgICB0aGlzLmljb25TdHlsZSA9IHRoaXMuaWNvblN0eWxlTWFwW3RoaXMuZm9udEF3c29tZVN0eWxlXTtcbiAgICB9XG4gIH1cbn1cbiIsIjxpIFthdHRyLnRpdGxlXT1cInRpdGxlXCIgW2NsYXNzXT1cImljb25TdHlsZSArICcgZmEtJyArIG5hbWVcIiBbc3R5bGUuY29sb3JdPVwiY29sb3JcIiBbc3R5bGUuZm9udFNpemVdPVwic2l6ZVwiPjwvaT5cbiJdfQ==
|
@@ -1,48 +0,0 @@
|
|
1
|
-
import { Component, HostBinding, Input, Optional } from '@angular/core';
|
2
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
3
|
-
import { Subject } from 'rxjs';
|
4
|
-
import { startWith, takeUntil } from 'rxjs/operators';
|
5
|
-
import * as i0 from "@angular/core";
|
6
|
-
import * as i1 from "@angular/forms";
|
7
|
-
export class InputComponent {
|
8
|
-
constructor(ngControl) {
|
9
|
-
this.ngControl = ngControl;
|
10
|
-
this.error = false;
|
11
|
-
this.disabled = false;
|
12
|
-
this.destroyed$ = new Subject();
|
13
|
-
}
|
14
|
-
ngOnInit() {
|
15
|
-
if (!this.ngControl)
|
16
|
-
return;
|
17
|
-
this.ngControl.statusChanges?.pipe(startWith(null), takeUntil(this.destroyed$)).subscribe(() => this.updateStatus());
|
18
|
-
}
|
19
|
-
updateStatus() {
|
20
|
-
const isInvalid = this.ngControl?.invalid;
|
21
|
-
const isTouched = this.ngControl?.touched;
|
22
|
-
const isDirty = this.ngControl?.dirty;
|
23
|
-
this.error = !!(isInvalid && (isTouched || isDirty));
|
24
|
-
this.disabled = !!this.ngControl?.disabled;
|
25
|
-
}
|
26
|
-
ngOnDestroy() {
|
27
|
-
this.destroyed$.next();
|
28
|
-
}
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputComponent, deps: [{ token: i1.NgControl, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: InputComponent, isStandalone: true, selector: "input[lx-input]", inputs: { error: "error", disabled: "disabled" }, host: { properties: { "class.error": "this.error", "class.disabled": "this.disabled" } }, ngImport: i0, template: ``, isInline: true, styles: [":host{height:32px;padding:8px;border-radius:3px;border:solid 1px #99a5bb;outline:0;color:#2a303d}:host:focus{border-color:#99c6fa}:host.error{border-color:#f96464}:host.lx-max-length-counter-input.error{color:#f96464}:host.lx-max-length-counter-input.error+span.lx-max-length-counter{color:#f96464}:host.lx-max-length-counter-input+span.lx-max-length-counter{font-size:var(--lxFontSize, 14px);float:right;margin-left:auto;margin-top:2px}:host.disabled{background-color:#f0f2f5;color:#61779d}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }] }); }
|
31
|
-
}
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: InputComponent, decorators: [{
|
33
|
-
type: Component,
|
34
|
-
args: [{ selector: 'input[lx-input]', template: ``, standalone: true, imports: [ReactiveFormsModule], styles: [":host{height:32px;padding:8px;border-radius:3px;border:solid 1px #99a5bb;outline:0;color:#2a303d}:host:focus{border-color:#99c6fa}:host.error{border-color:#f96464}:host.lx-max-length-counter-input.error{color:#f96464}:host.lx-max-length-counter-input.error+span.lx-max-length-counter{color:#f96464}:host.lx-max-length-counter-input+span.lx-max-length-counter{font-size:var(--lxFontSize, 14px);float:right;margin-left:auto;margin-top:2px}:host.disabled{background-color:#f0f2f5;color:#61779d}\n"] }]
|
35
|
-
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
36
|
-
type: Optional
|
37
|
-
}] }], propDecorators: { error: [{
|
38
|
-
type: Input
|
39
|
-
}, {
|
40
|
-
type: HostBinding,
|
41
|
-
args: ['class.error']
|
42
|
-
}], disabled: [{
|
43
|
-
type: Input
|
44
|
-
}, {
|
45
|
-
type: HostBinding,
|
46
|
-
args: ['class.disabled']
|
47
|
-
}] } });
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvY29tcG9uZW50cy9pbnB1dC9pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFhLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFVdEQsTUFBTSxPQUFPLGNBQWM7SUFNekIsWUFBK0IsU0FBcUI7UUFBckIsY0FBUyxHQUFULFNBQVMsQ0FBWTtRQUxmLFVBQUssR0FBRyxLQUFLLENBQUM7UUFDWCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpELGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBRWMsQ0FBQztJQUV4RCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUU1QixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDdkgsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7UUFDMUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUM7UUFDMUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7UUFFdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQztJQUM3QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDekIsQ0FBQzs4R0F6QlUsY0FBYztrR0FBZCxjQUFjLHVOQUpmLEVBQUUsc2pCQUVGLG1CQUFtQjs7MkZBRWxCLGNBQWM7a0JBUjFCLFNBQVM7K0JBRUUsaUJBQWlCLFlBRWpCLEVBQUUsY0FDQSxJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsQ0FBQzs7MEJBUWpCLFFBQVE7eUNBTGdCLEtBQUs7c0JBQXpDLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsYUFBYTtnQkFDSyxRQUFRO3NCQUEvQyxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdpbnB1dFtseC1pbnB1dF0nLFxuICBzdHlsZVVybHM6IFsnaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgdGVtcGxhdGU6IGBgLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbUmVhY3RpdmVGb3Jtc01vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnY2xhc3MuZXJyb3InKSBlcnJvciA9IGZhbHNlO1xuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc2FibGVkJykgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHB1YmxpYyBuZ0NvbnRyb2w/OiBOZ0NvbnRyb2wpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLm5nQ29udHJvbCkgcmV0dXJuO1xuXG4gICAgdGhpcy5uZ0NvbnRyb2wuc3RhdHVzQ2hhbmdlcz8ucGlwZShzdGFydFdpdGgobnVsbCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVTdGF0dXMoKSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0YXR1cygpIHtcbiAgICBjb25zdCBpc0ludmFsaWQgPSB0aGlzLm5nQ29udHJvbD8uaW52YWxpZDtcbiAgICBjb25zdCBpc1RvdWNoZWQgPSB0aGlzLm5nQ29udHJvbD8udG91Y2hlZDtcbiAgICBjb25zdCBpc0RpcnR5ID0gdGhpcy5uZ0NvbnRyb2w/LmRpcnR5O1xuXG4gICAgdGhpcy5lcnJvciA9ICEhKGlzSW52YWxpZCAmJiAoaXNUb3VjaGVkIHx8IGlzRGlydHkpKTtcbiAgICB0aGlzLmRpc2FibGVkID0gISF0aGlzLm5nQ29udHJvbD8uZGlzYWJsZWQ7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG59XG4iXX0=
|
@@ -1,126 +0,0 @@
|
|
1
|
-
import { Directive, EventEmitter, Input, Output, ViewChild, ViewChildren } from '@angular/core';
|
2
|
-
import { BehaviorSubject, Observable, ReplaySubject, Subject, combineLatest } from 'rxjs';
|
3
|
-
import { delay, distinctUntilChanged, filter, map, startWith, takeUntil, withLatestFrom } from 'rxjs/operators';
|
4
|
-
import { SelectableItemDirective } from '../directives/selectable-item.directive';
|
5
|
-
import * as i0 from "@angular/core";
|
6
|
-
export var KeyboardSelectAction;
|
7
|
-
(function (KeyboardSelectAction) {
|
8
|
-
KeyboardSelectAction["PREV"] = "PREV";
|
9
|
-
KeyboardSelectAction["NEXT"] = "NEXT";
|
10
|
-
KeyboardSelectAction["FIRST"] = "FIRST";
|
11
|
-
KeyboardSelectAction["LAST"] = "LAST";
|
12
|
-
KeyboardSelectAction["LEFT"] = "LEFT";
|
13
|
-
KeyboardSelectAction["RIGHT"] = "RIGHT";
|
14
|
-
KeyboardSelectAction["EXECUTE"] = "EXECUTE";
|
15
|
-
KeyboardSelectAction["UNSELECT"] = "UNSELECT";
|
16
|
-
KeyboardSelectAction["CLOSE"] = "CLOSE";
|
17
|
-
})(KeyboardSelectAction || (KeyboardSelectAction = {}));
|
18
|
-
export class KeyboardSelectDirective {
|
19
|
-
constructor() {
|
20
|
-
/** @internal */
|
21
|
-
this.cdkOverlayOpenState = new ReplaySubject(1);
|
22
|
-
/** @internal */
|
23
|
-
this.cdkOverlayOpen$ = this.cdkOverlayOpenState.asObservable().pipe(startWith(false), distinctUntilChanged());
|
24
|
-
/** @internal */
|
25
|
-
this.overlayPositioning = false;
|
26
|
-
this.keyboardSelectAction = new Observable();
|
27
|
-
this.selectedItemIndexChange = new EventEmitter(true); // TODO: this is just index change from navigating (highlighting)
|
28
|
-
/** @internal */
|
29
|
-
this.destroyed$ = new Subject();
|
30
|
-
// Beware: If the list of items is empty, there might not come a -1 because Angular only updates the ViewChildren lazily.
|
31
|
-
this.selectedItemIndex$ = new BehaviorSubject(-1);
|
32
|
-
this.selectedItemSubject$ = new BehaviorSubject(null);
|
33
|
-
}
|
34
|
-
/** @internal */
|
35
|
-
get selectedItem$() {
|
36
|
-
return this.selectedItemSubject$.asObservable();
|
37
|
-
}
|
38
|
-
/** @internal */
|
39
|
-
select(index) {
|
40
|
-
this.selectedItemIndex$.next(index);
|
41
|
-
}
|
42
|
-
ngAfterViewInit() {
|
43
|
-
const itemsChanges$ = this._items.changes.pipe(startWith(this._items));
|
44
|
-
this.keyboardSelectAction
|
45
|
-
.pipe(filter((action) => !!action), withLatestFrom(this.selectedItemIndex$, itemsChanges$), takeUntil(this.destroyed$))
|
46
|
-
.subscribe(([action, index, items]) => this.adaptSelectedIndexBasedOnKeyboardSelectAction(action, index, items));
|
47
|
-
this.keyboardSelectAction
|
48
|
-
.pipe(filter((keyboardSelectAction) => keyboardSelectAction === KeyboardSelectAction.EXECUTE), withLatestFrom(this.selectedItem$, (_, item) => item), takeUntil(this.destroyed$))
|
49
|
-
.subscribe((item) => item?.select?.emit());
|
50
|
-
this.selectedItemIndex$.pipe(takeUntil(this.destroyed$)).subscribe((index) => {
|
51
|
-
this.selectedItemIndexChange.emit(index);
|
52
|
-
});
|
53
|
-
combineLatest([itemsChanges$, this.selectedItemIndex$])
|
54
|
-
.pipe(delay(0), map(([items, index]) => {
|
55
|
-
if (index > -1) {
|
56
|
-
return items.toArray()[index] ?? null;
|
57
|
-
}
|
58
|
-
else {
|
59
|
-
return null;
|
60
|
-
}
|
61
|
-
}), takeUntil(this.destroyed$))
|
62
|
-
.subscribe(this.selectedItemSubject$);
|
63
|
-
this.selectedItem$
|
64
|
-
.pipe(filter((item) => !!item), distinctUntilChanged(), takeUntil(this.destroyed$))
|
65
|
-
.subscribe((item) => item?.scrollToItem());
|
66
|
-
}
|
67
|
-
/** @internal */
|
68
|
-
isItemSelected(item, selectedItem) {
|
69
|
-
return selectedItem && item === selectedItem.nativeElement;
|
70
|
-
}
|
71
|
-
adaptSelectedIndexBasedOnKeyboardSelectAction(keyboardSelectAction, currentIndex, items) {
|
72
|
-
if (keyboardSelectAction === KeyboardSelectAction.PREV) {
|
73
|
-
this.selectedItemIndex$.next(this.prev(currentIndex));
|
74
|
-
}
|
75
|
-
else if (keyboardSelectAction === KeyboardSelectAction.NEXT) {
|
76
|
-
this.selectedItemIndex$.next(this.next(currentIndex, items));
|
77
|
-
}
|
78
|
-
else if (keyboardSelectAction === KeyboardSelectAction.LAST) {
|
79
|
-
this.selectedItemIndex$.next(this.last(items));
|
80
|
-
}
|
81
|
-
else if (keyboardSelectAction === KeyboardSelectAction.FIRST) {
|
82
|
-
this.selectedItemIndex$.next(0);
|
83
|
-
}
|
84
|
-
else if (keyboardSelectAction === KeyboardSelectAction.UNSELECT) {
|
85
|
-
this.selectedItemIndex$.next(-1);
|
86
|
-
}
|
87
|
-
}
|
88
|
-
prev(index) {
|
89
|
-
if (index > -1) {
|
90
|
-
return index - 1;
|
91
|
-
}
|
92
|
-
else {
|
93
|
-
return index;
|
94
|
-
}
|
95
|
-
}
|
96
|
-
next(index, items) {
|
97
|
-
if (items.length - 1 > index) {
|
98
|
-
return index + 1;
|
99
|
-
}
|
100
|
-
else {
|
101
|
-
return index;
|
102
|
-
}
|
103
|
-
}
|
104
|
-
last(items) {
|
105
|
-
return items.length - 1;
|
106
|
-
}
|
107
|
-
ngOnDestroy() {
|
108
|
-
this.destroyed$.next();
|
109
|
-
}
|
110
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KeyboardSelectDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
111
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: KeyboardSelectDirective, inputs: { keyboardSelectAction: "keyboardSelectAction" }, outputs: { selectedItemIndexChange: "selectedItemIndexChange" }, viewQueries: [{ propertyName: "keyboardSelectContainer", first: true, predicate: ["keyboardSelectContainer"], descendants: true, static: true }, { propertyName: "_items", predicate: SelectableItemDirective, descendants: true }], ngImport: i0 }); }
|
112
|
-
}
|
113
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: KeyboardSelectDirective, decorators: [{
|
114
|
-
type: Directive
|
115
|
-
}], propDecorators: { keyboardSelectAction: [{
|
116
|
-
type: Input
|
117
|
-
}], selectedItemIndexChange: [{
|
118
|
-
type: Output
|
119
|
-
}], _items: [{
|
120
|
-
type: ViewChildren,
|
121
|
-
args: [SelectableItemDirective]
|
122
|
-
}], keyboardSelectContainer: [{
|
123
|
-
type: ViewChild,
|
124
|
-
args: ['keyboardSelectContainer', { static: true }]
|
125
|
-
}] } });
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtc2VsZWN0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2NvbXBvbmVudHMva2V5Ym9hcmQtc2VsZWN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUVOLFNBQVMsRUFDVCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUYsT0FBTyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBR2xGLE1BQU0sQ0FBTixJQUFZLG9CQVVYO0FBVkQsV0FBWSxvQkFBb0I7SUFDOUIscUNBQWEsQ0FBQTtJQUNiLHFDQUFhLENBQUE7SUFDYix1Q0FBZSxDQUFBO0lBQ2YscUNBQWEsQ0FBQTtJQUNiLHFDQUFhLENBQUE7SUFDYix1Q0FBZSxDQUFBO0lBQ2YsMkNBQW1CLENBQUE7SUFDbkIsNkNBQXFCLENBQUE7SUFDckIsdUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBVlcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQVUvQjtBQUdELE1BQU0sT0FBTyx1QkFBdUI7SUFEcEM7UUFFRSxnQkFBZ0I7UUFDaEIsd0JBQW1CLEdBQUcsSUFBSSxhQUFhLENBQVUsQ0FBQyxDQUFDLENBQUM7UUFDcEQsZ0JBQWdCO1FBQ2hCLG9CQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQ3pHLGdCQUFnQjtRQUNoQix1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDM0IseUJBQW9CLEdBQUcsSUFBSSxVQUFVLEVBQStCLENBQUM7UUFDcEUsNEJBQXVCLEdBQUcsSUFBSSxZQUFZLENBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxpRUFBaUU7UUFRckksZ0JBQWdCO1FBQ1AsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFPMUMseUhBQXlIO1FBQ3hHLHVCQUFrQixHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckQseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBQXNCLElBQUksQ0FBQyxDQUFDO0tBbUd4RjtJQTFHQyxnQkFBZ0I7SUFDaEIsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQU1ELGdCQUFnQjtJQUNULE1BQU0sQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRXZFLElBQUksQ0FBQyxvQkFBb0I7YUFDdEIsSUFBSSxDQUNILE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBa0MsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFDNUQsY0FBYyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxhQUFhLENBQUMsRUFDdEQsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDM0I7YUFDQSxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyw2Q0FBNkMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFbkgsSUFBSSxDQUFDLG9CQUFvQjthQUN0QixJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDLG9CQUFvQixLQUFLLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxFQUN2RixjQUFjLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUNyRCxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMzQjthQUNBLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRTdDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzNFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFFSCxhQUFhLENBQUMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7YUFDcEQsSUFBSSxDQUNILEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDUixHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQW9DLEVBQUUsRUFBRTtZQUN4RCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNmLE9BQU8sS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQztZQUN4QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDM0I7YUFDQSxTQUFTLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLGFBQWE7YUFDZixJQUFJLENBQ0gsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQ3hCLG9CQUFvQixFQUFFLEVBQ3RCLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQzNCO2FBQ0EsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ1QsY0FBYyxDQUFDLElBQWlCLEVBQUUsWUFBcUM7UUFDNUUsT0FBTyxZQUFZLElBQUksSUFBSSxLQUFLLFlBQVksQ0FBQyxhQUFhLENBQUM7SUFDN0QsQ0FBQztJQUVPLDZDQUE2QyxDQUNuRCxvQkFBMEMsRUFDMUMsWUFBb0IsRUFDcEIsS0FBOEI7UUFFOUIsSUFBSSxvQkFBb0IsS0FBSyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDO2FBQU0sSUFBSSxvQkFBb0IsS0FBSyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQzthQUFNLElBQUksb0JBQW9CLEtBQUssb0JBQW9CLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDakQsQ0FBQzthQUFNLElBQUksb0JBQW9CLEtBQUssb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDL0QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxDQUFDO2FBQU0sSUFBSSxvQkFBb0IsS0FBSyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7SUFFTyxJQUFJLENBQUMsS0FBYTtRQUN4QixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2YsT0FBTyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVPLElBQUksQ0FBQyxLQUFhLEVBQUUsS0FBOEI7UUFDeEQsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUM3QixPQUFPLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDbkIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRU8sSUFBSSxDQUFDLEtBQThCO1FBQ3pDLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3pCLENBQUM7OEdBNUhVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLG1UQVdwQix1QkFBdUI7OzJGQVgxQix1QkFBdUI7a0JBRG5DLFNBQVM7OEJBUUMsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNJLHVCQUF1QjtzQkFBaEMsTUFBTTtnQkFHZ0MsTUFBTTtzQkFBNUMsWUFBWTt1QkFBQyx1QkFBdUI7Z0JBR21CLHVCQUF1QjtzQkFBOUUsU0FBUzt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0LCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgd2l0aExhdGVzdEZyb20gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTZWxlY3RhYmxlSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvc2VsZWN0YWJsZS1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEcm9wZG93bkl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvZHJvcGRvd24taXRlbS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgZW51bSBLZXlib2FyZFNlbGVjdEFjdGlvbiB7XG4gIFBSRVYgPSAnUFJFVicsXG4gIE5FWFQgPSAnTkVYVCcsXG4gIEZJUlNUID0gJ0ZJUlNUJyxcbiAgTEFTVCA9ICdMQVNUJyxcbiAgTEVGVCA9ICdMRUZUJyxcbiAgUklHSFQgPSAnUklHSFQnLFxuICBFWEVDVVRFID0gJ0VYRUNVVEUnLFxuICBVTlNFTEVDVCA9ICdVTlNFTEVDVCcsXG4gIENMT1NFID0gJ0NMT1NFJ1xufVxuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBLZXlib2FyZFNlbGVjdERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgY2RrT3ZlcmxheU9wZW5TdGF0ZSA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICAvKiogQGludGVybmFsICovXG4gIGNka092ZXJsYXlPcGVuJCA9IHRoaXMuY2RrT3ZlcmxheU9wZW5TdGF0ZS5hc09ic2VydmFibGUoKS5waXBlKHN0YXJ0V2l0aChmYWxzZSksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAvKiogQGludGVybmFsICovXG4gIG92ZXJsYXlQb3NpdGlvbmluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBrZXlib2FyZFNlbGVjdEFjdGlvbiA9IG5ldyBPYnNlcnZhYmxlPEtleWJvYXJkU2VsZWN0QWN0aW9uIHwgbnVsbD4oKTtcbiAgQE91dHB1dCgpIHNlbGVjdGVkSXRlbUluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KHRydWUpOyAvLyBUT0RPOiB0aGlzIGlzIGp1c3QgaW5kZXggY2hhbmdlIGZyb20gbmF2aWdhdGluZyAoaGlnaGxpZ2h0aW5nKVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQFZpZXdDaGlsZHJlbihTZWxlY3RhYmxlSXRlbURpcmVjdGl2ZSkgX2l0ZW1zITogUXVlcnlMaXN0PERyb3Bkb3duSXRlbT47XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBAVmlld0NoaWxkKCdrZXlib2FyZFNlbGVjdENvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pIGtleWJvYXJkU2VsZWN0Q29udGFpbmVyITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAvKiogQGludGVybmFsICovXG4gIGdldCBzZWxlY3RlZEl0ZW0kKCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRJdGVtU3ViamVjdCQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvLyBCZXdhcmU6IElmIHRoZSBsaXN0IG9mIGl0ZW1zIGlzIGVtcHR5LCB0aGVyZSBtaWdodCBub3QgY29tZSBhIC0xIGJlY2F1c2UgQW5ndWxhciBvbmx5IHVwZGF0ZXMgdGhlIFZpZXdDaGlsZHJlbiBsYXppbHkuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2VsZWN0ZWRJdGVtSW5kZXgkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KC0xKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3RlZEl0ZW1TdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RHJvcGRvd25JdGVtIHwgbnVsbD4obnVsbCk7XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgc2VsZWN0KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbUluZGV4JC5uZXh0KGluZGV4KTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBpdGVtc0NoYW5nZXMkID0gdGhpcy5faXRlbXMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLl9pdGVtcykpO1xuXG4gICAgdGhpcy5rZXlib2FyZFNlbGVjdEFjdGlvblxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoYWN0aW9uKTogYWN0aW9uIGlzIEtleWJvYXJkU2VsZWN0QWN0aW9uID0+ICEhYWN0aW9uKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5zZWxlY3RlZEl0ZW1JbmRleCQsIGl0ZW1zQ2hhbmdlcyQpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoW2FjdGlvbiwgaW5kZXgsIGl0ZW1zXSkgPT4gdGhpcy5hZGFwdFNlbGVjdGVkSW5kZXhCYXNlZE9uS2V5Ym9hcmRTZWxlY3RBY3Rpb24oYWN0aW9uLCBpbmRleCwgaXRlbXMpKTtcblxuICAgIHRoaXMua2V5Ym9hcmRTZWxlY3RBY3Rpb25cbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGtleWJvYXJkU2VsZWN0QWN0aW9uKSA9PiBrZXlib2FyZFNlbGVjdEFjdGlvbiA9PT0gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uRVhFQ1VURSksXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuc2VsZWN0ZWRJdGVtJCwgKF8sIGl0ZW0pID0+IGl0ZW0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoaXRlbSkgPT4gaXRlbT8uc2VsZWN0Py5lbWl0KCkpO1xuXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW1JbmRleCQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSkuc3Vic2NyaWJlKChpbmRleCkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1JbmRleENoYW5nZS5lbWl0KGluZGV4KTtcbiAgICB9KTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW2l0ZW1zQ2hhbmdlcyQsIHRoaXMuc2VsZWN0ZWRJdGVtSW5kZXgkXSlcbiAgICAgIC5waXBlKFxuICAgICAgICBkZWxheSgwKSxcbiAgICAgICAgbWFwKChbaXRlbXMsIGluZGV4XTogW1F1ZXJ5TGlzdDxEcm9wZG93bkl0ZW0+LCBudW1iZXJdKSA9PiB7XG4gICAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtcy50b0FycmF5KClbaW5kZXhdID8/IG51bGw7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuc2VsZWN0ZWRJdGVtU3ViamVjdCQpO1xuXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0kXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChpdGVtKSA9PiAhIWl0ZW0pLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoaXRlbSkgPT4gaXRlbT8uc2Nyb2xsVG9JdGVtKCkpO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgaXNJdGVtU2VsZWN0ZWQoaXRlbTogSFRNTEVsZW1lbnQsIHNlbGVjdGVkSXRlbTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pIHtcbiAgICByZXR1cm4gc2VsZWN0ZWRJdGVtICYmIGl0ZW0gPT09IHNlbGVjdGVkSXRlbS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBhZGFwdFNlbGVjdGVkSW5kZXhCYXNlZE9uS2V5Ym9hcmRTZWxlY3RBY3Rpb24oXG4gICAga2V5Ym9hcmRTZWxlY3RBY3Rpb246IEtleWJvYXJkU2VsZWN0QWN0aW9uLFxuICAgIGN1cnJlbnRJbmRleDogbnVtYmVyLFxuICAgIGl0ZW1zOiBRdWVyeUxpc3Q8RHJvcGRvd25JdGVtPlxuICApIHtcbiAgICBpZiAoa2V5Ym9hcmRTZWxlY3RBY3Rpb24gPT09IEtleWJvYXJkU2VsZWN0QWN0aW9uLlBSRVYpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtSW5kZXgkLm5leHQodGhpcy5wcmV2KGN1cnJlbnRJbmRleCkpO1xuICAgIH0gZWxzZSBpZiAoa2V5Ym9hcmRTZWxlY3RBY3Rpb24gPT09IEtleWJvYXJkU2VsZWN0QWN0aW9uLk5FWFQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtSW5kZXgkLm5leHQodGhpcy5uZXh0KGN1cnJlbnRJbmRleCwgaXRlbXMpKTtcbiAgICB9IGVsc2UgaWYgKGtleWJvYXJkU2VsZWN0QWN0aW9uID09PSBLZXlib2FyZFNlbGVjdEFjdGlvbi5MQVNUKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbUluZGV4JC5uZXh0KHRoaXMubGFzdChpdGVtcykpO1xuICAgIH0gZWxzZSBpZiAoa2V5Ym9hcmRTZWxlY3RBY3Rpb24gPT09IEtleWJvYXJkU2VsZWN0QWN0aW9uLkZJUlNUKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbUluZGV4JC5uZXh0KDApO1xuICAgIH0gZWxzZSBpZiAoa2V5Ym9hcmRTZWxlY3RBY3Rpb24gPT09IEtleWJvYXJkU2VsZWN0QWN0aW9uLlVOU0VMRUNUKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbUluZGV4JC5uZXh0KC0xKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHByZXYoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHJldHVybiBpbmRleCAtIDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG5leHQoaW5kZXg6IG51bWJlciwgaXRlbXM6IFF1ZXJ5TGlzdDxEcm9wZG93bkl0ZW0+KTogbnVtYmVyIHtcbiAgICBpZiAoaXRlbXMubGVuZ3RoIC0gMSA+IGluZGV4KSB7XG4gICAgICByZXR1cm4gaW5kZXggKyAxO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsYXN0KGl0ZW1zOiBRdWVyeUxpc3Q8RHJvcGRvd25JdGVtPik6IG51bWJlciB7XG4gICAgcmV0dXJuIGl0ZW1zLmxlbmd0aCAtIDE7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG59XG4iXX0=
|
@@ -1,28 +0,0 @@
|
|
1
|
-
import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
|
2
|
-
import { ChangeDetectionStrategy, Component, ContentChild, EventEmitter, Output, TemplateRef, input } from '@angular/core';
|
3
|
-
import { TokenComponent } from '../../../../core-ui/components/tokenizer/token/token.component';
|
4
|
-
import { TokenizerComponent } from '../../../../core-ui/components/tokenizer/tokenizer.component';
|
5
|
-
import { SelectableItemDirective } from '../../../directives/selectable-item.directive';
|
6
|
-
import { KeyboardSelectDirective } from '../../keyboard-select.directive';
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
export class MultiSelectSelectionComponent extends KeyboardSelectDirective {
|
9
|
-
constructor() {
|
10
|
-
super(...arguments);
|
11
|
-
this.selection = input();
|
12
|
-
this.tokenize = input(true);
|
13
|
-
this.removeItem = new EventEmitter();
|
14
|
-
this.selectionTemplate = null;
|
15
|
-
}
|
16
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MultiSelectSelectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
17
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: MultiSelectSelectionComponent, isStandalone: true, selector: "lx-multi-select-selection", inputs: { selection: { classPropertyName: "selection", publicName: "selection", isSignal: true, isRequired: false, transformFunction: null }, tokenize: { classPropertyName: "tokenize", publicName: "tokenize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { removeItem: "removeItem" }, queries: [{ propertyName: "selectionTemplate", first: true, predicate: ["innerSelectionTemplate"], descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ul>\n <lx-tokenizer [active]=\"tokenize()\">\n @for (selectedItem of selection(); track $index) {\n <lx-token>\n <li\n lxSelectableItem\n #item\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n (select)=\"removeItem.emit(selectedItem)\"\n >\n <ng-container *ngTemplateOutlet=\"selectionTemplate; context: { $implicit: selectedItem }\" />\n </li>\n </lx-token>\n }\n </lx-tokenizer>\n</ul>\n", styles: [":host{display:block;overflow:hidden;overflow-x:auto;scrollbar-width:none}ul{display:block;margin:0!important;padding:0!important}li{display:inline}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: SelectableItemDirective, selector: "[lxSelectableItem]", inputs: ["scrollInContainer", "lxSelectableItem"], outputs: ["select"] }, { kind: "component", type: TokenizerComponent, selector: "lx-tokenizer", inputs: ["active"], outputs: ["overflowPlaceholderClick"] }, { kind: "component", type: TokenComponent, selector: "lx-token" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
18
|
-
}
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: MultiSelectSelectionComponent, decorators: [{
|
20
|
-
type: Component,
|
21
|
-
args: [{ selector: 'lx-multi-select-selection', standalone: true, imports: [AsyncPipe, NgTemplateOutlet, SelectableItemDirective, TokenizerComponent, TokenComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul>\n <lx-tokenizer [active]=\"tokenize()\">\n @for (selectedItem of selection(); track $index) {\n <lx-token>\n <li\n lxSelectableItem\n #item\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n (select)=\"removeItem.emit(selectedItem)\"\n >\n <ng-container *ngTemplateOutlet=\"selectionTemplate; context: { $implicit: selectedItem }\" />\n </li>\n </lx-token>\n }\n </lx-tokenizer>\n</ul>\n", styles: [":host{display:block;overflow:hidden;overflow-x:auto;scrollbar-width:none}ul{display:block;margin:0!important;padding:0!important}li{display:inline}\n"] }]
|
22
|
-
}], propDecorators: { removeItem: [{
|
23
|
-
type: Output
|
24
|
-
}], selectionTemplate: [{
|
25
|
-
type: ContentChild,
|
26
|
-
args: ['innerSelectionTemplate', { read: TemplateRef, static: true }]
|
27
|
-
}] } });
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktc2VsZWN0LXNlbGVjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL211bHRpLXNlbGVjdC9tdWx0aS1zZWxlY3Qtc2VsZWN0aW9uL211bHRpLXNlbGVjdC1zZWxlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvY29tcG9uZW50cy9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LXNlbGVjdGlvbi9tdWx0aS1zZWxlY3Qtc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0gsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQVUxRSxNQUFNLE9BQU8sNkJBQThCLFNBQVEsdUJBQXVCO0lBUjFFOztRQVNFLGNBQVMsR0FBRyxLQUFLLEVBQWdCLENBQUM7UUFDbEMsYUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUViLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTBCLHNCQUFpQixHQUE0QixJQUFJLENBQUM7S0FDaEk7OEdBUFksNkJBQTZCO2tHQUE3Qiw2QkFBNkIsaWZBTVEsV0FBVyxrRUNyQjdELDJmQWdCQSwwTUROWSxTQUFTLDhDQUFFLGdCQUFnQixvSkFBRSx1QkFBdUIsdUlBQUUsa0JBQWtCLG9IQUFFLGNBQWM7OzJGQUt2Riw2QkFBNkI7a0JBUnpDLFNBQVM7K0JBQ0UsMkJBQTJCLGNBQ3pCLElBQUksV0FDUCxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLENBQUMsbUJBR2xGLHVCQUF1QixDQUFDLE1BQU07OEJBTXJDLFVBQVU7c0JBQW5CLE1BQU07Z0JBRXNFLGlCQUFpQjtzQkFBN0YsWUFBWTt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRva2VuQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS11aS9jb21wb25lbnRzL3Rva2VuaXplci90b2tlbi90b2tlbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9rZW5pemVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS11aS9jb21wb25lbnRzL3Rva2VuaXplci90b2tlbml6ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdGFibGVJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9zZWxlY3RhYmxlLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IEtleWJvYXJkU2VsZWN0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4va2V5Ym9hcmQtc2VsZWN0LmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LW11bHRpLXNlbGVjdC1zZWxlY3Rpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQXN5bmNQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0LCBTZWxlY3RhYmxlSXRlbURpcmVjdGl2ZSwgVG9rZW5pemVyQ29tcG9uZW50LCBUb2tlbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9tdWx0aS1zZWxlY3Qtc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbXVsdGktc2VsZWN0LXNlbGVjdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdFNlbGVjdGlvbkNvbXBvbmVudCBleHRlbmRzIEtleWJvYXJkU2VsZWN0RGlyZWN0aXZlIHtcbiAgc2VsZWN0aW9uID0gaW5wdXQ8YW55W10gfCBudWxsPigpO1xuICB0b2tlbml6ZSA9IGlucHV0KHRydWUpO1xuXG4gIEBPdXRwdXQoKSByZW1vdmVJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjx1bmtub3duPigpO1xuXG4gIEBDb250ZW50Q2hpbGQoJ2lubmVyU2VsZWN0aW9uVGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSkgc2VsZWN0aW9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsID0gbnVsbDtcbn1cbiIsIjx1bD5cbiAgPGx4LXRva2VuaXplciBbYWN0aXZlXT1cInRva2VuaXplKClcIj5cbiAgICBAZm9yIChzZWxlY3RlZEl0ZW0gb2Ygc2VsZWN0aW9uKCk7IHRyYWNrICRpbmRleCkge1xuICAgICAgPGx4LXRva2VuPlxuICAgICAgICA8bGlcbiAgICAgICAgICBseFNlbGVjdGFibGVJdGVtXG4gICAgICAgICAgI2l0ZW1cbiAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSwgKHNlbGVjdGVkSXRlbSQgfCBhc3luYyk/LmVsZW1lbnQpXCJcbiAgICAgICAgICAoc2VsZWN0KT1cInJlbW92ZUl0ZW0uZW1pdChzZWxlY3RlZEl0ZW0pXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWxlY3Rpb25UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IHNlbGVjdGVkSXRlbSB9XCIgLz5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvbHgtdG9rZW4+XG4gICAgfVxuICA8L2x4LXRva2VuaXplcj5cbjwvdWw+XG4iXX0=
|