structra-ui 0.1.15 → 0.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/app/_utils/date-pt-br.utils.mjs +82 -0
- package/esm2022/app/_utils/decimal-br.utils.mjs +154 -0
- package/esm2022/app/_utils/estados-br.data.mjs +37 -0
- package/esm2022/app/_utils/integer-br.utils.mjs +48 -0
- package/esm2022/app/_utils/integer-value.utils.mjs +19 -0
- package/esm2022/app/_utils/scroll/body-scroll-lock.util.mjs +97 -0
- package/esm2022/app/app-shell/_models/breadcrumb-item.model.mjs +2 -0
- package/esm2022/app/app-shell/app-shell-sidebar-template.directive.mjs +29 -0
- package/esm2022/app/app-shell/app-shell.component.mjs +105 -0
- package/esm2022/app/app-shell/breadcrumb/breadcrumb.component.mjs +18 -0
- package/esm2022/app/app-shell/index.mjs +19 -0
- package/esm2022/app/app-shell/sidebar/app-sidebar-toolbar.directive.mjs +23 -0
- package/esm2022/app/app-shell/sidebar/shell-sidebar-toggle.component.mjs +36 -0
- package/esm2022/app/app-shell/sidebar/sidebar.component.mjs +84 -0
- package/esm2022/app/app-shell/sidebar-reveal.constants.mjs +9 -0
- package/esm2022/app/app-shell/topbar/topbar.component.mjs +14 -0
- package/esm2022/app/app-shell/user-menu/user-menu.component.mjs +52 -0
- package/esm2022/app/buttons/base-button/base-button.component.mjs +97 -0
- package/esm2022/app/buttons/index.mjs +2 -0
- package/esm2022/app/data-display/_models/card-item-view.model.mjs +2 -0
- package/esm2022/app/data-display/_models/data-display.models.mjs +2 -0
- package/esm2022/app/data-display/_models/data-grid-column.model.mjs +2 -0
- package/esm2022/app/data-display/_models/index.mjs +2 -0
- package/esm2022/app/data-display/adaptive-data-view/adaptive-data-view.component.mjs +124 -0
- package/esm2022/app/data-display/card-list/card-list.component.mjs +208 -0
- package/esm2022/app/data-display/dashboard-section/dashboard-section.component.mjs +25 -0
- package/esm2022/app/data-display/data-card/data-card.component.mjs +40 -0
- package/esm2022/app/data-display/data-grid/data-grid-actions-cell-renderer.component.mjs +41 -0
- package/esm2022/app/data-display/data-grid/data-grid.component.mjs +253 -0
- package/esm2022/app/data-display/data-list/data-list.component.mjs +40 -0
- package/esm2022/app/data-display/data-toolbar/data-toolbar.component.mjs +12 -0
- package/esm2022/app/data-display/details-field/details-field.component.mjs +21 -0
- package/esm2022/app/data-display/details-view/details-view.component.mjs +44 -0
- package/esm2022/app/data-display/empty-state/empty-state-overlay.util.mjs +19 -0
- package/esm2022/app/data-display/empty-state/empty-state.component.mjs +30 -0
- package/esm2022/app/data-display/index.mjs +19 -0
- package/esm2022/app/data-display/list-item/list-item.component.mjs +59 -0
- package/esm2022/app/data-display/stat-card/stat-card.component.mjs +59 -0
- package/esm2022/app/data-display/status-badge/status-badge.component.mjs +41 -0
- package/esm2022/app/data-display/table-empty-state/table-empty-state.component.mjs +31 -0
- package/esm2022/app/data-display/table-toolbar/table-toolbar.component.mjs +22 -0
- package/esm2022/app/dialogs/_models/lib-dialog-size.model.mjs +8 -0
- package/esm2022/app/dialogs/_utils/app-lib-light-block-scroll-strategy.mjs +22 -0
- package/esm2022/app/dialogs/_utils/lib-dialog-panel-classes.mjs +6 -0
- package/esm2022/app/dialogs/app-dialog/app-dialog.component.mjs +200 -0
- package/esm2022/app/dialogs/app-dialog/dialog-footer.directive.mjs +15 -0
- package/esm2022/app/dialogs/confirm-dialog/confirm-dialog-data.model.mjs +2 -0
- package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.component.mjs +36 -0
- package/esm2022/app/dialogs/confirm-dialog/confirm-dialog.service.mjs +47 -0
- package/esm2022/app/dialogs/index.mjs +12 -0
- package/esm2022/app/dialogs/loading-dialog/loading-dialog-data.model.mjs +2 -0
- package/esm2022/app/dialogs/loading-dialog/loading-dialog.component.mjs +19 -0
- package/esm2022/app/dialogs/loading-dialog/loading-dialog.service.mjs +38 -0
- package/esm2022/app/dialogs/toast/toast-host.component.mjs +65 -0
- package/esm2022/app/dialogs/toast/toast.models.mjs +2 -0
- package/esm2022/app/dialogs/toast/toast.service.mjs +76 -0
- package/esm2022/app/fields/checkbox-fields/_base/boolean-field.directive.mjs +158 -0
- package/esm2022/app/fields/checkbox-fields/checkbox-field/checkbox-field.component.mjs +36 -0
- package/esm2022/app/fields/checkbox-fields/index.mjs +4 -0
- package/esm2022/app/fields/checkbox-fields/switch-field/switch-field.component.mjs +35 -0
- package/esm2022/app/fields/dropdown-fields/_base/dropdown-base/dropdown-base.component.mjs +117 -0
- package/esm2022/app/fields/dropdown-fields/_base/dropdown-multi-option-field.base.mjs +152 -0
- package/esm2022/app/fields/dropdown-fields/_base/dropdown-option-field.base.mjs +149 -0
- package/esm2022/app/fields/dropdown-fields/_base/dropdown-trigger-blur.util.mjs +32 -0
- package/esm2022/app/fields/dropdown-fields/_models/dropdown-list-bindings.model.mjs +2 -0
- package/esm2022/app/fields/dropdown-fields/_models/dropdown-search-page-requested.model.mjs +2 -0
- package/esm2022/app/fields/dropdown-fields/_models/index.mjs +2 -0
- package/esm2022/app/fields/dropdown-fields/_models/select-option.model.mjs +2 -0
- package/esm2022/app/fields/dropdown-fields/_models/select-pagination.model.mjs +2 -0
- package/esm2022/app/fields/dropdown-fields/dropdown-search-field/dropdown-search-field.component.mjs +520 -0
- package/esm2022/app/fields/dropdown-fields/index.mjs +7 -0
- package/esm2022/app/fields/dropdown-fields/multiselect-field/multiselect-field.component.mjs +379 -0
- package/esm2022/app/fields/dropdown-fields/select-field/select-field.component.mjs +359 -0
- package/esm2022/app/fields/input-fields/_base/base-field.component.mjs +151 -0
- package/esm2022/app/fields/input-fields/_base/base-field.directive.mjs +224 -0
- package/esm2022/app/fields/input-fields/_base/masked-text-field.base.mjs +135 -0
- package/esm2022/app/fields/input-fields/_base/ng-control-field.directive.mjs +127 -0
- package/esm2022/app/fields/input-fields/_models/field-common-inputs.model.mjs +2 -0
- package/esm2022/app/fields/input-fields/_models/index.mjs +2 -0
- package/esm2022/app/fields/input-fields/_utils/mask-complete.validators.mjs +61 -0
- package/esm2022/app/fields/input-fields/_utils/mask-format.utils.mjs +40 -0
- package/esm2022/app/fields/input-fields/cep-field/cep-field.component.mjs +48 -0
- package/esm2022/app/fields/input-fields/cpf-cnpj-field/cpf-cnpj-field.component.mjs +61 -0
- package/esm2022/app/fields/input-fields/date-field/date-field.component.mjs +147 -0
- package/esm2022/app/fields/input-fields/decimal-field/decimal-field.component.mjs +166 -0
- package/esm2022/app/fields/input-fields/index.mjs +22 -0
- package/esm2022/app/fields/input-fields/input-mask-field/input-mask-field.component.mjs +52 -0
- package/esm2022/app/fields/input-fields/integer-field/integer-field.component.mjs +143 -0
- package/esm2022/app/fields/input-fields/password-field/password-field.component.mjs +130 -0
- package/esm2022/app/fields/input-fields/phone-field/phone-field.component.mjs +66 -0
- package/esm2022/app/fields/input-fields/text-field/text-field.component.mjs +90 -0
- package/esm2022/app/fields/input-fields/textarea-field/textarea-field.component.mjs +125 -0
- package/esm2022/app/form-layout/_models/form-layout.model.mjs +48 -0
- package/esm2022/app/form-layout/_models/form-tabs.model.mjs +2 -0
- package/esm2022/app/form-layout/_models/index.mjs +2 -0
- package/esm2022/app/form-layout/_models/validation-summary.model.mjs +2 -0
- package/esm2022/app/form-layout/form-actions/form-actions.component.mjs +55 -0
- package/esm2022/app/form-layout/form-col/form-col.component.mjs +76 -0
- package/esm2022/app/form-layout/form-group/form-group.component.mjs +358 -0
- package/esm2022/app/form-layout/form-group/form-path.utils.mjs +65 -0
- package/esm2022/app/form-layout/form-group/form-root-invalid-ui-refresh.util.mjs +54 -0
- package/esm2022/app/form-layout/form-row/form-row.component.mjs +49 -0
- package/esm2022/app/form-layout/form-section/form-section.component.mjs +43 -0
- package/esm2022/app/form-layout/form-tab/form-tab.component.mjs +67 -0
- package/esm2022/app/form-layout/form-tabs/form-tabs.component.mjs +126 -0
- package/esm2022/app/form-layout/index.mjs +14 -0
- package/esm2022/app/form-layout/layout-stack/layout-stack.component.mjs +56 -0
- package/esm2022/app/form-layout/validation-summary/validation-summary.component.mjs +343 -0
- package/esm2022/app/loading/skeleton-loading/index.mjs +7 -0
- package/esm2022/app/loading/skeleton-loading/skeleton-block/skeleton-block.component.mjs +43 -0
- package/esm2022/app/loading/skeleton-loading/skeleton-card/skeleton-card.component.mjs +23 -0
- package/esm2022/app/loading/skeleton-loading/skeleton-field-shell/skeleton-field-shell.component.mjs +34 -0
- package/esm2022/app/loading/skeleton-loading/skeleton-list/skeleton-list.component.mjs +38 -0
- package/esm2022/app/loading/skeleton-loading/skeleton-table/skeleton-table.component.mjs +37 -0
- package/esm2022/app/loading/skeleton-loading/skeleton-text/skeleton-text.component.mjs +45 -0
- package/esm2022/app/menus/_models/drawer-side.model.mjs +8 -0
- package/esm2022/app/menus/_models/drawer-size.model.mjs +8 -0
- package/esm2022/app/menus/_models/menu-dropdown-placement.model.mjs +12 -0
- package/esm2022/app/menus/_models/menu-item.model.mjs +6 -0
- package/esm2022/app/menus/_utils/menu-connected-positions.util.mjs +41 -0
- package/esm2022/app/menus/_utils/menu-rows.util.mjs +39 -0
- package/esm2022/app/menus/_utils/submenu-connected-positions.util.mjs +23 -0
- package/esm2022/app/menus/action-menu/action-menu.component.mjs +48 -0
- package/esm2022/app/menus/context-menu/context-menu.component.mjs +112 -0
- package/esm2022/app/menus/drawer/drawer.component.mjs +142 -0
- package/esm2022/app/menus/dropdown-menu/dropdown-menu.component.mjs +99 -0
- package/esm2022/app/menus/index.mjs +11 -0
- package/esm2022/app/menus/menu-divider/menu-divider.component.mjs +14 -0
- package/esm2022/app/menus/menu-group/menu-group.component.mjs +32 -0
- package/esm2022/app/menus/menu-list/menu-list.component.mjs +399 -0
- package/esm2022/app/overlay/_models/overlay-placement.model.mjs +11 -0
- package/esm2022/app/overlay/_utils/anchored-overlay-positions.util.mjs +84 -0
- package/esm2022/app/overlay/anchored-overlay/anchored-overlay.component.mjs +121 -0
- package/esm2022/app/overlay/index.mjs +21 -0
- package/esm2022/app/overlay/popover/popover-body-template.directive.mjs +17 -0
- package/esm2022/app/overlay/popover/popover-footer-template.directive.mjs +17 -0
- package/esm2022/app/overlay/popover/popover-trigger.directive.mjs +15 -0
- package/esm2022/app/overlay/popover/popover.component.mjs +93 -0
- package/esm2022/app/overlay/tooltip/tooltip-panel-template.directive.mjs +20 -0
- package/esm2022/app/overlay/tooltip/tooltip.component.mjs +118 -0
- package/esm2022/app/theme/app-theme.service.mjs +49 -0
- package/esm2022/app/theme/index.mjs +2 -0
- package/esm2022/structra-public-api.mjs +18 -0
- package/esm2022/structra-ui.mjs +5 -0
- package/esm2022/structra-version.mjs +3 -0
- package/fesm2022/structra-ui.mjs +8971 -0
- package/fesm2022/structra-ui.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/package.json +15 -6
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { Directive, Input, booleanAttribute } from '@angular/core';
|
|
2
|
+
import { NgControlFieldDirective } from '../../input-fields/_base/ng-control-field.directive';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Base para multiselect: valor `unknown[]`, opções, índice ativo (teclado) e comparação.
|
|
6
|
+
*/
|
|
7
|
+
export class DropdownMultiOptionFieldBase extends NgControlFieldDirective {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.filledUi = false;
|
|
11
|
+
this._options = [];
|
|
12
|
+
this._compareWith = Object.is;
|
|
13
|
+
/** Lista de opções ainda a carregar. */
|
|
14
|
+
this.optionsLoading = false;
|
|
15
|
+
this.activeIndex = 0;
|
|
16
|
+
}
|
|
17
|
+
get options() {
|
|
18
|
+
return this._options;
|
|
19
|
+
}
|
|
20
|
+
set options(value) {
|
|
21
|
+
this._options = value ?? [];
|
|
22
|
+
}
|
|
23
|
+
/** Alias de {@link options}. */
|
|
24
|
+
set itemsInput(value) {
|
|
25
|
+
this._options = value ?? [];
|
|
26
|
+
}
|
|
27
|
+
get compareWith() {
|
|
28
|
+
return this._compareWith;
|
|
29
|
+
}
|
|
30
|
+
set compareWith(fn) {
|
|
31
|
+
this._compareWith = fn ?? Object.is;
|
|
32
|
+
}
|
|
33
|
+
/** Alias de {@link compareWith}. */
|
|
34
|
+
set compareBy(fn) {
|
|
35
|
+
this._compareWith = fn ?? Object.is;
|
|
36
|
+
}
|
|
37
|
+
refreshMultiFilledUi() {
|
|
38
|
+
const vals = this.internalValue;
|
|
39
|
+
this.filledUi = Array.isArray(vals) && vals.length > 0;
|
|
40
|
+
}
|
|
41
|
+
emitModelValue(value) {
|
|
42
|
+
super.emitModelValue(value);
|
|
43
|
+
this.refreshMultiFilledUi();
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Opções com as selecionadas primeiro (mesma ordem relativa que em `options`).
|
|
47
|
+
*/
|
|
48
|
+
get listOptions() {
|
|
49
|
+
const src = this._options;
|
|
50
|
+
if (src.length === 0) {
|
|
51
|
+
return src;
|
|
52
|
+
}
|
|
53
|
+
const vals = this.internalValue;
|
|
54
|
+
if (!Array.isArray(vals) || vals.length === 0) {
|
|
55
|
+
return src;
|
|
56
|
+
}
|
|
57
|
+
const picked = [];
|
|
58
|
+
const rest = [];
|
|
59
|
+
for (const o of src) {
|
|
60
|
+
if (o.disabled) {
|
|
61
|
+
rest.push(o);
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const sel = vals.some((v) => this.matches(o.value, v));
|
|
65
|
+
if (sel) {
|
|
66
|
+
picked.push(o);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
rest.push(o);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return [...picked, ...rest];
|
|
73
|
+
}
|
|
74
|
+
finishMultiTouch() {
|
|
75
|
+
queueMicrotask(() => {
|
|
76
|
+
this.notifyTouched();
|
|
77
|
+
this.cdr.markForCheck();
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
trackOption(_index, opt) {
|
|
81
|
+
return opt.value;
|
|
82
|
+
}
|
|
83
|
+
isSelected(opt) {
|
|
84
|
+
const vals = this.internalValue;
|
|
85
|
+
if (!Array.isArray(vals) || vals.length === 0) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
return vals.some((v) => this.matches(opt.value, v));
|
|
89
|
+
}
|
|
90
|
+
findOptionByValue(value) {
|
|
91
|
+
if (value == null) {
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
return this._options.find((o) => !o.disabled && this.matches(o.value, value));
|
|
95
|
+
}
|
|
96
|
+
matches(a, b) {
|
|
97
|
+
return this._compareWith(a, b);
|
|
98
|
+
}
|
|
99
|
+
syncActiveIndexToFirstEnabled() {
|
|
100
|
+
const list = this.listOptions;
|
|
101
|
+
const idx = list.findIndex((o) => !o.disabled);
|
|
102
|
+
this.activeIndex = idx >= 0 ? idx : 0;
|
|
103
|
+
}
|
|
104
|
+
firstEnabledIndex() {
|
|
105
|
+
const list = this.listOptions;
|
|
106
|
+
const i = list.findIndex((o) => !o.disabled);
|
|
107
|
+
return i >= 0 ? i : 0;
|
|
108
|
+
}
|
|
109
|
+
lastEnabledIndex() {
|
|
110
|
+
const list = this.listOptions;
|
|
111
|
+
for (let i = list.length - 1; i >= 0; i--) {
|
|
112
|
+
if (!list[i].disabled) {
|
|
113
|
+
return i;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return 0;
|
|
117
|
+
}
|
|
118
|
+
stepActive(delta) {
|
|
119
|
+
let i = this.activeIndex;
|
|
120
|
+
const list = this.listOptions;
|
|
121
|
+
const n = list.length;
|
|
122
|
+
if (n === 0) {
|
|
123
|
+
return 0;
|
|
124
|
+
}
|
|
125
|
+
for (let step = 0; step < n; step++) {
|
|
126
|
+
i = (i + delta + n) % n;
|
|
127
|
+
if (!list[i].disabled) {
|
|
128
|
+
return i;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return this.activeIndex;
|
|
132
|
+
}
|
|
133
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownMultiOptionFieldBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
134
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.12", type: DropdownMultiOptionFieldBase, inputs: { options: "options", itemsInput: ["items", "itemsInput"], compareWith: "compareWith", compareBy: "compareBy", optionsLoading: ["optionsLoading", "optionsLoading", booleanAttribute] }, usesInheritance: true, ngImport: i0 }); }
|
|
135
|
+
}
|
|
136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownMultiOptionFieldBase, decorators: [{
|
|
137
|
+
type: Directive
|
|
138
|
+
}], propDecorators: { options: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}], itemsInput: [{
|
|
141
|
+
type: Input,
|
|
142
|
+
args: ['items']
|
|
143
|
+
}], compareWith: [{
|
|
144
|
+
type: Input
|
|
145
|
+
}], compareBy: [{
|
|
146
|
+
type: Input,
|
|
147
|
+
args: ['compareBy']
|
|
148
|
+
}], optionsLoading: [{
|
|
149
|
+
type: Input,
|
|
150
|
+
args: [{ transform: booleanAttribute }]
|
|
151
|
+
}] } });
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbXVsdGktb3B0aW9uLWZpZWxkLmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2ZpZWxkcy9kcm9wZG93bi1maWVsZHMvX2Jhc2UvZHJvcGRvd24tbXVsdGktb3B0aW9uLWZpZWxkLmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scURBQXFELENBQUM7O0FBRzlGOztHQUVHO0FBRUgsTUFBTSxPQUFnQiw0QkFBNkIsU0FBUSx1QkFFMUQ7SUFIRDs7UUFJRSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRVQsYUFBUSxHQUEyQyxFQUFFLENBQUM7UUFnQnRELGlCQUFZLEdBQXdDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFnQnRFLHdDQUF3QztRQUNBLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBRS9ELGdCQUFXLEdBQUcsQ0FBQyxDQUFDO0tBZ0hqQjtJQWpKQyxJQUNJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQTZDO1FBQ3ZELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLElBQ0ksVUFBVSxDQUFDLEtBQTZDO1FBQzFELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBSUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxFQUF1QztRQUNyRCxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsSUFBSSxNQUFNLENBQUMsRUFBRSxD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eyBEaXJlY3RpdmUsIElucHV0LCBib29sZWFuQXR0cmlidXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nQ29udHJvbEZpZWxkRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vaW5wdXQtZmllbGRzL19iYXNlL25nLWNvbnRyb2wtZmllbGQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgVWlTZWxlY3RPcHRpb24gfSBmcm9tICcuLi9fbW9kZWxzL3NlbGVjdC1vcHRpb24ubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIEJhc2UgcGFyYSBtdWx0aXNlbGVjdDogdmFsb3IgYHVua25vd25bXWAsIG9ww6fDtWVzLCDDrW5kaWNlIGF0aXZvICh0ZWNsYWRvKSBlIGNvbXBhcmHDp8Ojby5cclxuICovXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHJvcGRvd25NdWx0aU9wdGlvbkZpZWxkQmFzZSBleHRlbmRzIE5nQ29udHJvbEZpZWxkRGlyZWN0aXZlPFxyXG4gIHVua25vd25bXVxyXG4+IHtcclxuICBmaWxsZWRVaSA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9vcHRpb25zOiBSZWFkb25seUFycmF5PFVpU2VsZWN0T3B0aW9uPHVua25vd24+PiA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBvcHRpb25zKCk6IFJlYWRvbmx5QXJyYXk8VWlTZWxlY3RPcHRpb248dW5rbm93bj4+IHtcclxuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xyXG4gIH1cclxuICBzZXQgb3B0aW9ucyh2YWx1ZTogUmVhZG9ubHlBcnJheTxVaVNlbGVjdE9wdGlvbjx1bmtub3duPj4pIHtcclxuICAgIHRoaXMuX29wdGlvbnMgPSB2YWx1ZSA/PyBbXTtcclxuICB9XHJcblxyXG4gIC8qKiBBbGlhcyBkZSB7QGxpbmsgb3B0aW9uc30uICovXHJcbiAgQElucHV0KCdpdGVtcycpXHJcbiAgc2V0IGl0ZW1zSW5wdXQodmFsdWU6IFJlYWRvbmx5QXJyYXk8VWlTZWxlY3RPcHRpb248dW5rbm93bj4+KSB7XHJcbiAgICB0aGlzLl9vcHRpb25zID0gdmFsdWUgPz8gW107XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jb21wYXJlV2l0aDogKGE6IHVua25vd24sIGI6IHVua25vd24pID0+IGJvb2xlYW4gPSBPYmplY3QuaXM7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGNvbXBhcmVXaXRoKCk6IChhOiB1bmtub3duLCBiOiB1bmtub3duKSA9PiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9jb21wYXJlV2l0aDtcclxuICB9XHJcbiAgc2V0IGNvbXBhcmVXaXRoKGZuOiAoYTogdW5rbm93biwgYjogdW5rbm93bikgPT4gYm9vbGVhbikge1xyXG4gICAgdGhpcy5fY29tcGFyZVdpdGggPSBmbiA/PyBPYmplY3QuaXM7XHJcbiAgfVxyXG5cclxuICAvKiogQWxpYXMgZGUge0BsaW5rIGNvbXBhcmVXaXRofS4gKi9cclxuICBASW5wdXQoJ2NvbXBhcmVCeScpXHJcbiAgc2V0IGNvbXBhcmVCeShmbjogKGE6IHVua25vd24sIGI6IHVua25vd24pID0+IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2NvbXBhcmVXaXRoID0gZm4gPz8gT2JqZWN0LmlzO1xyXG4gIH1cclxuXHJcbiAgLyoqIExpc3RhIGRlIG9ww6fDtWVzIGFpbmRhIGEgY2FycmVnYXIuICovXHJcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIG9wdGlvbnNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIGFjdGl2ZUluZGV4ID0gMDtcclxuXHJcbiAgcHJvdGVjdGVkIHJlZnJlc2hNdWx0aUZpbGxlZFVpKCk6IHZvaWQge1xyXG4gICAgY29uc3QgdmFscyA9IHRoaXMuaW50ZXJuYWxWYWx1ZTtcclxuICAgIHRoaXMuZmlsbGVkVWkgPSBBcnJheS5pc0FycmF5KHZhbHMpICYmIHZhbHMubGVuZ3RoID4gMDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBvdmVycmlkZSBlbWl0TW9kZWxWYWx1ZSh2YWx1ZTogdW5rbm93bltdIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgc3VwZXIuZW1pdE1vZGVsVmFsdWUodmFsdWUpO1xyXG4gICAgdGhpcy5yZWZyZXNoTXVsdGlGaWxsZWRVaSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3DDp8O1ZXMgY29tIGFzIHNlbGVjaW9uYWRhcyBwcmltZWlybyAobWVzbWEgb3JkZW0gcmVsYXRpdmEgcXVlIGVtIGBvcHRpb25zYCkuXHJcbiAgICovXHJcbiAgZ2V0IGxpc3RPcHRpb25zKCk6IFJlYWRvbmx5QXJyYXk8VWlTZWxlY3RPcHRpb248dW5rbm93bj4+IHtcclxuICAgIGNvbnN0IHNyYyA9IHRoaXMuX29wdGlvbnM7XHJcbiAgICBpZiAoc3JjLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gc3JjO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdmFscyA9IHRoaXMuaW50ZXJuYWxWYWx1ZTtcclxuICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWxzKSB8fCB2YWxzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gc3JjO1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGlja2VkOiBVaVNlbGVjdE9wdGlvbjx1bmtub3duPltdID0gW107XHJcbiAgICBjb25zdCByZXN0OiBVaVNlbGVjdE9wdGlvbjx1bmtub3duPltdID0gW107XHJcbiAgICBmb3IgKGNvbnN0IG8gb2Ygc3JjKSB7XHJcbiAgICAgIGlmIChvLmRpc2FibGVkKSB7XHJcbiAgICAgICAgcmVzdC5wdXNoKG8pO1xyXG4gICAgICAgIGNvbnRpbnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHNlbCA9IHZhbHMuc29tZSgodikgPT4gdGhpcy5tYXRjaGVzKG8udmFsdWUsIHYpKTtcclxuICAgICAgaWYgKHNlbCkge1xyXG4gICAgICAgIHBpY2tlZC5wdXNoKG8pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJlc3QucHVzaChvKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIFsuLi5waWNrZWQsIC4uLnJlc3RdO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGZpbmlzaE11bHRpVG91Y2goKTogdm9pZCB7XHJcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XHJcbiAgICAgIHRoaXMubm90aWZ5VG91Y2hlZCgpO1xyXG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tPcHRpb24oX2luZGV4OiBudW1iZXIsIG9wdDogVWlTZWxlY3RPcHRpb248dW5rbm93bj4pOiB1bmtub3duIHtcclxuICAgIHJldHVybiBvcHQudmFsdWU7XHJcbiAgfVxyXG5cclxuICBpc1NlbGVjdGVkKG9wdDogVWlTZWxlY3RPcHRpb248dW5rbm93bj4pOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHZhbHMgPSB0aGlzLmludGVybmFsVmFsdWU7XHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFscykgfHwgdmFscy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHMuc29tZSgodikgPT4gdGhpcy5tYXRjaGVzKG9wdC52YWx1ZSwgdikpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGZpbmRPcHRpb25CeVZhbHVlKFxyXG4gICAgdmFsdWU6IHVua25vd24gfCBudWxsLFxyXG4gICk6IFVpU2VsZWN0T3B0aW9uPHVua25vd24+IHwgdW5kZWZpbmVkIHtcclxuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5maW5kKFxyXG4gICAgICAobykgPT4gIW8uZGlzYWJsZWQgJiYgdGhpcy5tYXRjaGVzKG8udmFsdWUsIHZhbHVlKSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgbWF0Y2hlcyhhOiB1bmtub3duLCBiOiB1bmtub3duKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29tcGFyZVdpdGgoYSwgYik7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgc3luY0FjdGl2ZUluZGV4VG9GaXJzdEVuYWJsZWQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5saXN0T3B0aW9ucztcclxuICAgIGNvbnN0IGlkeCA9IGxpc3QuZmluZEluZGV4KChvKSA9PiAhby5kaXNhYmxlZCk7XHJcbiAgICB0aGlzLmFjdGl2ZUluZGV4ID0gaWR4ID49IDAgPyBpZHggOiAwO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGZpcnN0RW5hYmxlZEluZGV4KCk6IG51bWJlciB7XHJcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5saXN0T3B0aW9ucztcclxuICAgIGNvbnN0IGkgPSBsaXN0LmZpbmRJbmRleCgobykgPT4gIW8uZGlzYWJsZWQpO1xyXG4gICAgcmV0dXJuIGkgPj0gMCA/IGkgOiAwO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGxhc3RFbmFibGVkSW5kZXgoKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxpc3RPcHRpb25zO1xyXG4gICAgZm9yIChsZXQgaSA9IGxpc3QubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcclxuICAgICAgaWYgKCFsaXN0W2ldLmRpc2FibGVkKSB7XHJcbiAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiAwO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHN0ZXBBY3RpdmUoZGVsdGE6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICBsZXQgaSA9IHRoaXMuYWN0aXZlSW5kZXg7XHJcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5saXN0T3B0aW9ucztcclxuICAgIGNvbnN0IG4gPSBsaXN0Lmxlbmd0aDtcclxuICAgIGlmIChuID09PSAwKSB7XHJcbiAgICAgIHJldHVybiAwO1xyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgc3RlcCA9IDA7IHN0ZXAgPCBuOyBzdGVwKyspIHtcclxuICAgICAgaSA9IChpICsgZGVsdGEgKyBuKSAlIG47XHJcbiAgICAgIGlmICghbGlzdFtpXS5kaXNhYmxlZCkge1xyXG4gICAgICAgIHJldHVybiBpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVJbmRleDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { Directive, Input, booleanAttribute } from '@angular/core';
|
|
2
|
+
import { NgControlFieldDirective } from '../../input-fields/_base/ng-control-field.directive';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Lógica comum de select / combobox: opções, índice ativo, comparação e
|
|
6
|
+
* `notifyTouched` após seleção (evita flicker vermelho → válido no frame em que o valor ainda não atualizou o `FormControl`).
|
|
7
|
+
*/
|
|
8
|
+
export class DropdownOptionFieldBase extends NgControlFieldDirective {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
/** Estado “tem valor” para o label flutuante (evita getter no template). */
|
|
12
|
+
this.filledUi = false;
|
|
13
|
+
this._options = [];
|
|
14
|
+
this._compareWith = Object.is;
|
|
15
|
+
/** Lista de opções ainda a carregar (painel aberto ou primeiro fetch). */
|
|
16
|
+
this.optionsLoading = false;
|
|
17
|
+
this.activeIndex = 0;
|
|
18
|
+
}
|
|
19
|
+
get options() {
|
|
20
|
+
return this._options;
|
|
21
|
+
}
|
|
22
|
+
set options(value) {
|
|
23
|
+
this._options = value ?? [];
|
|
24
|
+
}
|
|
25
|
+
/** Alias de {@link options}. */
|
|
26
|
+
set itemsInput(value) {
|
|
27
|
+
this._options = value ?? [];
|
|
28
|
+
}
|
|
29
|
+
get compareWith() {
|
|
30
|
+
return this._compareWith;
|
|
31
|
+
}
|
|
32
|
+
set compareWith(fn) {
|
|
33
|
+
this._compareWith = fn ?? Object.is;
|
|
34
|
+
}
|
|
35
|
+
/** Alias de {@link compareWith}. */
|
|
36
|
+
set compareBy(fn) {
|
|
37
|
+
this._compareWith = fn ?? Object.is;
|
|
38
|
+
}
|
|
39
|
+
refreshFilledUi() {
|
|
40
|
+
const v = this.internalValue;
|
|
41
|
+
this.filledUi = v != null && v !== '';
|
|
42
|
+
}
|
|
43
|
+
writeValue(value) {
|
|
44
|
+
super.writeValue(value);
|
|
45
|
+
this.refreshFilledUi();
|
|
46
|
+
}
|
|
47
|
+
emitModelValue(value) {
|
|
48
|
+
super.emitModelValue(value);
|
|
49
|
+
this.refreshFilledUi();
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Opções na ordem de exibição no painel: valor atual (se existir em `options`) em primeiro lugar.
|
|
53
|
+
*/
|
|
54
|
+
get listOptions() {
|
|
55
|
+
const src = this._options;
|
|
56
|
+
if (src.length === 0) {
|
|
57
|
+
return src;
|
|
58
|
+
}
|
|
59
|
+
const iv = this.internalValue;
|
|
60
|
+
if (iv == null || iv === '') {
|
|
61
|
+
return src;
|
|
62
|
+
}
|
|
63
|
+
const idx = src.findIndex((o) => !o.disabled && this.matches(o.value, iv));
|
|
64
|
+
if (idx <= 0) {
|
|
65
|
+
return src;
|
|
66
|
+
}
|
|
67
|
+
const selected = src[idx];
|
|
68
|
+
const rest = src.filter((_, i) => i !== idx);
|
|
69
|
+
return [selected, ...rest];
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Chamar após `emitModelValue` + fechar painel ao **escolher** um item.
|
|
73
|
+
* Adia `notifyTouched` para o próximo microtask para o validador já ver o valor novo.
|
|
74
|
+
*/
|
|
75
|
+
finishSelectionTouch() {
|
|
76
|
+
queueMicrotask(() => {
|
|
77
|
+
this.notifyTouched();
|
|
78
|
+
this.cdr.markForCheck();
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
trackOption(_index, opt) {
|
|
82
|
+
return opt.value;
|
|
83
|
+
}
|
|
84
|
+
isSelected(opt) {
|
|
85
|
+
return this.matches(opt.value, this.internalValue);
|
|
86
|
+
}
|
|
87
|
+
findOptionByValue(value) {
|
|
88
|
+
if (value == null) {
|
|
89
|
+
return undefined;
|
|
90
|
+
}
|
|
91
|
+
return this._options.find((o) => !o.disabled && this.matches(o.value, value));
|
|
92
|
+
}
|
|
93
|
+
matches(a, b) {
|
|
94
|
+
return this._compareWith(a, b);
|
|
95
|
+
}
|
|
96
|
+
syncActiveIndexFromValue(value) {
|
|
97
|
+
const list = this.listOptions;
|
|
98
|
+
const idx = list.findIndex((o) => !o.disabled && this.matches(o.value, value));
|
|
99
|
+
this.activeIndex = idx >= 0 ? idx : this.firstEnabledIndex();
|
|
100
|
+
}
|
|
101
|
+
firstEnabledIndex() {
|
|
102
|
+
const list = this.listOptions;
|
|
103
|
+
const i = list.findIndex((o) => !o.disabled);
|
|
104
|
+
return i >= 0 ? i : 0;
|
|
105
|
+
}
|
|
106
|
+
lastEnabledIndex() {
|
|
107
|
+
const list = this.listOptions;
|
|
108
|
+
for (let i = list.length - 1; i >= 0; i--) {
|
|
109
|
+
if (!list[i].disabled) {
|
|
110
|
+
return i;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return 0;
|
|
114
|
+
}
|
|
115
|
+
stepActive(delta) {
|
|
116
|
+
let i = this.activeIndex;
|
|
117
|
+
const list = this.listOptions;
|
|
118
|
+
const n = list.length;
|
|
119
|
+
if (n === 0) {
|
|
120
|
+
return 0;
|
|
121
|
+
}
|
|
122
|
+
for (let step = 0; step < n; step++) {
|
|
123
|
+
i = (i + delta + n) % n;
|
|
124
|
+
if (!list[i].disabled) {
|
|
125
|
+
return i;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return this.activeIndex;
|
|
129
|
+
}
|
|
130
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownOptionFieldBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
131
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.12", type: DropdownOptionFieldBase, inputs: { options: "options", itemsInput: ["items", "itemsInput"], compareWith: "compareWith", compareBy: "compareBy", optionsLoading: ["optionsLoading", "optionsLoading", booleanAttribute] }, usesInheritance: true, ngImport: i0 }); }
|
|
132
|
+
}
|
|
133
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DropdownOptionFieldBase, decorators: [{
|
|
134
|
+
type: Directive
|
|
135
|
+
}], propDecorators: { options: [{
|
|
136
|
+
type: Input
|
|
137
|
+
}], itemsInput: [{
|
|
138
|
+
type: Input,
|
|
139
|
+
args: ['items']
|
|
140
|
+
}], compareWith: [{
|
|
141
|
+
type: Input
|
|
142
|
+
}], compareBy: [{
|
|
143
|
+
type: Input,
|
|
144
|
+
args: ['compareBy']
|
|
145
|
+
}], optionsLoading: [{
|
|
146
|
+
type: Input,
|
|
147
|
+
args: [{ transform: booleanAttribute }]
|
|
148
|
+
}] } });
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tb3B0aW9uLWZpZWxkLmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2ZpZWxkcy9kcm9wZG93bi1maWVsZHMvX2Jhc2UvZHJvcGRvd24tb3B0aW9uLWZpZWxkLmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scURBQXFELENBQUM7O0FBRzlGOzs7R0FHRztBQUVILE1BQU0sT0FBZ0IsdUJBQXdCLFNBQVEsdUJBQXVDO0lBRDdGOztRQUVFLDRFQUE0RTtRQUM1RSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRVQsYUFBUSxHQUEyQyxFQUFFLENBQUM7UUFnQnRELGlCQUFZLEdBQXdDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFnQnRFLDBFQUEwRTtRQUNsQyxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUUvRCxnQkFBVyxHQUFHLENBQUMsQ0FBQztLQWlIakI7SUFsSkMsSUFDSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUE2QztRQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELGdDQUFnQztJQUNoQyxJQUNJLFVBQVUsQ0FBQyxLQUE2QztRQUMxRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUlELElBQ0ksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxXQUFXLENBQUMsRUFBdUM7UUFDckQsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLElBQUksTUFBTSxDQUFDLEVB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LElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDekIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUM5QixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ1osT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO1FBQ0QsS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3RCLE9BQU8sQ0FBQyxDQUFDO1lBQ1gsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQzsrR0F2Sm1CLHVCQUF1QjttR0FBdkIsdUJBQXVCLDhLQXFDdkIsZ0JBQWdCOzs0RkFyQ2hCLHVCQUF1QjtrQkFENUMsU0FBUzs4QkFRSixPQUFPO3NCQURWLEtBQUs7Z0JBVUYsVUFBVTtzQkFEYixLQUFLO3VCQUFDLE9BQU87Z0JBUVYsV0FBVztzQkFEZCxLQUFLO2dCQVVGLFNBQVM7c0JBRFosS0FBSzt1QkFBQyxXQUFXO2dCQU1zQixjQUFjO3NCQUFyRCxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgYm9vbGVhbkF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ0NvbnRyb2xGaWVsZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2lucHV0LWZpZWxkcy9fYmFzZS9uZy1jb250cm9sLWZpZWxkLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFVpU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vX21vZGVscy9zZWxlY3Qtb3B0aW9uLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBMw7NnaWNhIGNvbXVtIGRlIHNlbGVjdCAvIGNvbWJvYm94OiBvcMOnw7Vlcywgw61uZGljZSBhdGl2bywgY29tcGFyYcOnw6NvIGVcclxuICogYG5vdGlmeVRvdWNoZWRgIGFww7NzIHNlbGXDp8OjbyAoZXZpdGEgZmxpY2tlciB2ZXJtZWxobyDihpIgdsOhbGlkbyBubyBmcmFtZSBlbSBxdWUgbyB2YWxvciBhaW5kYSBuw6NvIGF0dWFsaXpvdSBvIGBGb3JtQ29udHJvbGApLlxyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEcm9wZG93bk9wdGlvbkZpZWxkQmFzZSBleHRlbmRzIE5nQ29udHJvbEZpZWxkRGlyZWN0aXZlPHVua25vd24gfCBudWxsPiB7XHJcbiAgLyoqIEVzdGFkbyDigJx0ZW0gdmFsb3LigJ0gcGFyYSBvIGxhYmVsIGZsdXR1YW50ZSAoZXZpdGEgZ2V0dGVyIG5vIHRlbXBsYXRlKS4gKi9cclxuICBmaWxsZWRVaSA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIF9vcHRpb25zOiBSZWFkb25seUFycmF5PFVpU2VsZWN0T3B0aW9uPHVua25vd24+PiA9IFtdO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBvcHRpb25zKCk6IFJlYWRvbmx5QXJyYXk8VWlTZWxlY3RPcHRpb248dW5rbm93bj4+IHtcclxuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xyXG4gIH1cclxuICBzZXQgb3B0aW9ucyh2YWx1ZTogUmVhZG9ubHlBcnJheTxVaVNlbGVjdE9wdGlvbjx1bmtub3duPj4pIHtcclxuICAgIHRoaXMuX29wdGlvbnMgPSB2YWx1ZSA/PyBbXTtcclxuICB9XHJcblxyXG4gIC8qKiBBbGlhcyBkZSB7QGxpbmsgb3B0aW9uc30uICovXHJcbiAgQElucHV0KCdpdGVtcycpXHJcbiAgc2V0IGl0ZW1zSW5wdXQodmFsdWU6IFJlYWRvbmx5QXJyYXk8VWlTZWxlY3RPcHRpb248dW5rbm93bj4+KSB7XHJcbiAgICB0aGlzLl9vcHRpb25zID0gdmFsdWUgPz8gW107XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jb21wYXJlV2l0aDogKGE6IHVua25vd24sIGI6IHVua25vd24pID0+IGJvb2xlYW4gPSBPYmplY3QuaXM7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGNvbXBhcmVXaXRoKCk6IChhOiB1bmtub3duLCBiOiB1bmtub3duKSA9PiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9jb21wYXJlV2l0aDtcclxuICB9XHJcbiAgc2V0IGNvbXBhcmVXaXRoKGZuOiAoYTogdW5rbm93biwgYjogdW5rbm93bikgPT4gYm9vbGVhbikge1xyXG4gICAgdGhpcy5fY29tcGFyZVdpdGggPSBmbiA/PyBPYmplY3QuaXM7XHJcbiAgfVxyXG5cclxuICAvKiogQWxpYXMgZGUge0BsaW5rIGNvbXBhcmVXaXRofS4gKi9cclxuICBASW5wdXQoJ2NvbXBhcmVCeScpXHJcbiAgc2V0IGNvbXBhcmVCeShmbjogKGE6IHVua25vd24sIGI6IHVua25vd24pID0+IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX2NvbXBhcmVXaXRoID0gZm4gPz8gT2JqZWN0LmlzO1xyXG4gIH1cclxuXHJcbiAgLyoqIExpc3RhIGRlIG9ww6fDtWVzIGFpbmRhIGEgY2FycmVnYXIgKHBhaW5lbCBhYmVydG8gb3UgcHJpbWVpcm8gZmV0Y2gpLiAqL1xyXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBvcHRpb25zTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBhY3RpdmVJbmRleCA9IDA7XHJcblxyXG4gIHByb3RlY3RlZCByZWZyZXNoRmlsbGVkVWkoKTogdm9pZCB7XHJcbiAgICBjb25zdCB2ID0gdGhpcy5pbnRlcm5hbFZhbHVlO1xyXG4gICAgdGhpcy5maWxsZWRVaSA9IHYgIT0gbnVsbCAmJiB2ICE9PSAnJztcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IHVua25vd24gfCBudWxsKTogdm9pZCB7XHJcbiAgICBzdXBlci53cml0ZVZhbHVlKHZhbHVlKTtcclxuICAgIHRoaXMucmVmcmVzaEZpbGxlZFVpKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZW1pdE1vZGVsVmFsdWUodmFsdWU6IHVua25vd24gfCBudWxsKTogdm9pZCB7XHJcbiAgICBzdXBlci5lbWl0TW9kZWxWYWx1ZSh2YWx1ZSk7XHJcbiAgICB0aGlzLnJlZnJlc2hGaWxsZWRVaSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3DDp8O1ZXMgbmEgb3JkZW0gZGUgZXhpYmnDp8OjbyBubyBwYWluZWw6IHZhbG9yIGF0dWFsIChzZSBleGlzdGlyIGVtIGBvcHRpb25zYCkgZW0gcHJpbWVpcm8gbHVnYXIuXHJcbiAgICovXHJcbiAgZ2V0IGxpc3RPcHRpb25zKCk6IFJlYWRvbmx5QXJyYXk8VWlTZWxlY3RPcHRpb248dW5rbm93bj4+IHtcclxuICAgIGNvbnN0IHNyYyA9IHRoaXMuX29wdGlvbnM7XHJcbiAgICBpZiAoc3JjLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICByZXR1cm4gc3JjO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaXYgPSB0aGlzLmludGVybmFsVmFsdWU7XHJcbiAgICBpZiAoaXYgPT0gbnVsbCB8fCBpdiA9PT0gJycpIHtcclxuICAgICAgcmV0dXJuIHNyYztcclxuICAgIH1cclxuICAgIGNvbnN0IGlkeCA9IHNyYy5maW5kSW5kZXgoXHJcbiAgICAgIChvKSA9PiAhby5kaXNhYmxlZCAmJiB0aGlzLm1hdGNoZXMoby52YWx1ZSwgaXYpLFxyXG4gICAgKTtcclxuICAgIGlmIChpZHggPD0gMCkge1xyXG4gICAgICByZXR1cm4gc3JjO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBzcmNbaWR4XTtcclxuICAgIGNvbnN0IHJlc3QgPSBzcmMuZmlsdGVyKChfLCBpKSA9PiBpICE9PSBpZHgpO1xyXG4gICAgcmV0dXJuIFtzZWxlY3RlZCwgLi4ucmVzdF07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGFtYXIgYXDDs3MgYGVtaXRNb2RlbFZhbHVlYCArIGZlY2hhciBwYWluZWwgYW8gKiplc2NvbGhlcioqIHVtIGl0ZW0uXHJcbiAgICogQWRpYSBgbm90aWZ5VG91Y2hlZGAgcGFyYSBvIHByw7N4aW1vIG1pY3JvdGFzayBwYXJhIG8gdmFsaWRhZG9yIGrDoSB2ZXIgbyB2YWxvciBub3ZvLlxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBmaW5pc2hTZWxlY3Rpb25Ub3VjaCgpOiB2b2lkIHtcclxuICAgIHF1ZXVlTWljcm90YXNrKCgpID0+IHtcclxuICAgICAgdGhpcy5ub3RpZnlUb3VjaGVkKCk7XHJcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB0cmFja09wdGlvbihfaW5kZXg6IG51bWJlciwgb3B0OiBVaVNlbGVjdE9wdGlvbjx1bmtub3duPik6IHVua25vd24ge1xyXG4gICAgcmV0dXJuIG9wdC52YWx1ZTtcclxuICB9XHJcblxyXG4gIGlzU2VsZWN0ZWQob3B0OiBVaVNlbGVjdE9wdGlvbjx1bmtub3duPik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubWF0Y2hlcyhvcHQudmFsdWUsIHRoaXMuaW50ZXJuYWxWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZmluZE9wdGlvbkJ5VmFsdWUoXHJcbiAgICB2YWx1ZTogdW5rbm93biB8IG51bGwsXHJcbiAgKTogVWlTZWxlY3RPcHRpb248dW5rbm93bj4gfCB1bmRlZmluZWQge1xyXG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9vcHRpb25zLmZpbmQoXHJcbiAgICAgIChvKSA9PiAhby5kaXNhYmxlZCAmJiB0aGlzLm1hdGNoZXMoby52YWx1ZSwgdmFsdWUpLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBtYXRjaGVzKGE6IHVua25vd24sIGI6IHVua25vd24pOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9jb21wYXJlV2l0aChhLCBiKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBzeW5jQWN0aXZlSW5kZXhGcm9tVmFsdWUodmFsdWU6IHVua25vd24gfCBudWxsKTogdm9pZCB7XHJcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5saXN0T3B0aW9ucztcclxuICAgIGNvbnN0IGlkeCA9IGxpc3QuZmluZEluZGV4KFxyXG4gICAgICAobykgPT4gIW8uZGlzYWJsZWQgJiYgdGhpcy5tYXRjaGVzKG8udmFsdWUsIHZhbHVlKSxcclxuICAgICk7XHJcbiAgICB0aGlzLmFjdGl2ZUluZGV4ID0gaWR4ID49IDAgPyBpZHggOiB0aGlzLmZpcnN0RW5hYmxlZEluZGV4KCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgZmlyc3RFbmFibGVkSW5kZXgoKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxpc3RPcHRpb25zO1xyXG4gICAgY29uc3QgaSA9IGxpc3QuZmluZEluZGV4KChvKSA9PiAhby5kaXNhYmxlZCk7XHJcbiAgICByZXR1cm4gaSA+PSAwID8gaSA6IDA7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgbGFzdEVuYWJsZWRJbmRleCgpOiBudW1iZXIge1xyXG4gICAgY29uc3QgbGlzdCA9IHRoaXMubGlzdE9wdGlvbnM7XHJcbiAgICBmb3IgKGxldCBpID0gbGlzdC5sZW5ndGggLSAxOyBpID49IDA7IGktLSkge1xyXG4gICAgICBpZiAoIWxpc3RbaV0uZGlzYWJsZWQpIHtcclxuICAgICAgICByZXR1cm4gaTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIDA7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgc3RlcEFjdGl2ZShkZWx0YTogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIGxldCBpID0gdGhpcy5hY3RpdmVJbmRleDtcclxuICAgIGNvbnN0IGxpc3QgPSB0aGlzLmxpc3RPcHRpb25zO1xyXG4gICAgY29uc3QgbiA9IGxpc3QubGVuZ3RoO1xyXG4gICAgaWYgKG4gPT09IDApIHtcclxuICAgICAgcmV0dXJuIDA7XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCBzdGVwID0gMDsgc3RlcCA8IG47IHN0ZXArKykge1xyXG4gICAgICBpID0gKGkgKyBkZWx0YSArIG4pICUgbjtcclxuICAgICAgaWYgKCFsaXN0W2ldLmRpc2FibGVkKSB7XHJcbiAgICAgICAgcmV0dXJuIGk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZUluZGV4O1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Após `blur` no trigger ou na lista: se o painel está aberto e o foco não ficou
|
|
3
|
+
* dentro da **origem do overlay** (valor + chevron / input; não o botão limpar do `base-field`)
|
|
4
|
+
* nem no overlay CDK, fecha o painel.
|
|
5
|
+
*/
|
|
6
|
+
export function scheduleCloseDropdownPanelOnTriggerBlur(options) {
|
|
7
|
+
setTimeout(() => {
|
|
8
|
+
const rt = options.blurRelatedTarget;
|
|
9
|
+
if (rt && typeof rt.closest === 'function') {
|
|
10
|
+
if (options.triggerRoot.contains(rt) || rt.closest('.cdk-overlay-container')) {
|
|
11
|
+
options.notifyTouched();
|
|
12
|
+
options.afterBlur?.();
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const a = document.activeElement;
|
|
17
|
+
if (a && options.triggerRoot.contains(a)) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (a && typeof a.closest === 'function') {
|
|
21
|
+
if (a.closest('.cdk-overlay-container')) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (options.isPanelOpen()) {
|
|
26
|
+
options.closePanel();
|
|
27
|
+
}
|
|
28
|
+
options.notifyTouched();
|
|
29
|
+
options.afterBlur?.();
|
|
30
|
+
}, 0);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tdHJpZ2dlci1ibHVyLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2ZpZWxkcy9kcm9wZG93bi1maWVsZHMvX2Jhc2UvZHJvcGRvd24tdHJpZ2dlci1ibHVyLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSx1Q0FBdUMsQ0FBQyxPQVl2RDtJQUNDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsaUJBQW1ELENBQUM7UUFDdkUsSUFBSSxFQUFFLElBQUksT0FBTyxFQUFFLENBQUMsT0FBTyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzNDLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUM7Z0JBQzdFLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDeEIsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7Z0JBQ3RCLE9BQU87WUFDVCxDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUM7UUFDakMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLE9BQVEsQ0FBaUIsQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDMUQsSUFBSyxDQUFpQixDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pELE9BQU87WUFDVCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDMUIsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEIsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7SUFDeEIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ1IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBBcMOzcyBgYmx1cmAgbm8gdHJpZ2dlciBvdSBuYSBsaXN0YTogc2UgbyBwYWluZWwgZXN0w6EgYWJlcnRvIGUgbyBmb2NvIG7Do28gZmljb3VcclxuICogZGVudHJvIGRhICoqb3JpZ2VtIGRvIG92ZXJsYXkqKiAodmFsb3IgKyBjaGV2cm9uIC8gaW5wdXQ7IG7Do28gbyBib3TDo28gbGltcGFyIGRvIGBiYXNlLWZpZWxkYClcclxuICogbmVtIG5vIG92ZXJsYXkgQ0RLLCBmZWNoYSBvIHBhaW5lbC5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBzY2hlZHVsZUNsb3NlRHJvcGRvd25QYW5lbE9uVHJpZ2dlckJsdXIob3B0aW9uczoge1xyXG4gIHRyaWdnZXJSb290OiBIVE1MRWxlbWVudDtcclxuICBpc1BhbmVsT3BlbjogKCkgPT4gYm9vbGVhbjtcclxuICBjbG9zZVBhbmVsOiAoKSA9PiB2b2lkO1xyXG4gIG5vdGlmeVRvdWNoZWQ6ICgpID0+IHZvaWQ7XHJcbiAgLyoqIENvcnJlIGRlcG9pcyBkZSBmZWNoYXIgLyBgbm90aWZ5VG91Y2hlZGAgKGV4LjogbGltcGFyIHRleHRvIMOzcmbDo28gbm8gY29tYm9ib3ggZGUgcGVzcXVpc2EpLiAqL1xyXG4gIGFmdGVyQmx1cj86ICgpID0+IHZvaWQ7XHJcbiAgLyoqXHJcbiAgICogYEZvY3VzRXZlbnQucmVsYXRlZFRhcmdldGAgZG8gYGJsdXJgIG5vIHRyaWdnZXIg4oCUIHF1YW5kbyBvIGZvY28gcGFzc2EgcGFyYSBhIGxpc3RhIG5vIG92ZXJsYXlcclxuICAgKiAoTXVsdGlTZWxlY3Qgbm8gdG9xdWUpLCBhbGd1bnMgYnJvd3NlcnMgcHJlZW5jaGVtIGlzdG8gYW50ZXMgZGUgYGFjdGl2ZUVsZW1lbnRgIGFjdHVhbGl6YXIuXHJcbiAgICovXHJcbiAgYmx1clJlbGF0ZWRUYXJnZXQ/OiBFdmVudFRhcmdldCB8IG51bGw7XHJcbn0pOiB2b2lkIHtcclxuICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgIGNvbnN0IHJ0ID0gb3B0aW9ucy5ibHVyUmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQ7XHJcbiAgICBpZiAocnQgJiYgdHlwZW9mIHJ0LmNsb3Nlc3QgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgaWYgKG9wdGlvbnMudHJpZ2dlclJvb3QuY29udGFpbnMocnQpIHx8IHJ0LmNsb3Nlc3QoJy5jZGstb3ZlcmxheS1jb250YWluZXInKSkge1xyXG4gICAgICAgIG9wdGlvbnMubm90aWZ5VG91Y2hlZCgpO1xyXG4gICAgICAgIG9wdGlvbnMuYWZ0ZXJCbHVyPy4oKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGNvbnN0IGEgPSBkb2N1bWVudC5hY3RpdmVFbGVtZW50O1xyXG4gICAgaWYgKGEgJiYgb3B0aW9ucy50cmlnZ2VyUm9vdC5jb250YWlucyhhKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoYSAmJiB0eXBlb2YgKGEgYXMgSFRNTEVsZW1lbnQpLmNsb3Nlc3QgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgaWYgKChhIGFzIEhUTUxFbGVtZW50KS5jbG9zZXN0KCcuY2RrLW92ZXJsYXktY29udGFpbmVyJykpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChvcHRpb25zLmlzUGFuZWxPcGVuKCkpIHtcclxuICAgICAgb3B0aW9ucy5jbG9zZVBhbmVsKCk7XHJcbiAgICB9XHJcbiAgICBvcHRpb25zLm5vdGlmeVRvdWNoZWQoKTtcclxuICAgIG9wdGlvbnMuYWZ0ZXJCbHVyPy4oKTtcclxuICB9LCAwKTtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGlzdC1iaW5kaW5ncy5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZmllbGRzL2Ryb3Bkb3duLWZpZWxkcy9fbW9kZWxzL2Ryb3Bkb3duLWxpc3QtYmluZGluZ3MubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVWlTZWxlY3RPcHRpb24gfSBmcm9tICcuL3NlbGVjdC1vcHRpb24ubW9kZWwnO1xyXG5cclxuLyoqXHJcbiAqIENvbnRyYXRvIGRvY3VtZW50YWwgcGFyYSBjYW1wb3MgY29tIGxpc3RhIGRlIG9ww6fDtWVzIChgc2VsZWN0YCwgYG11bHRpc2VsZWN0YCwgYGRyb3Bkb3duLXNlYXJjaGApLlxyXG4gKlxyXG4gKiAqKkNhbsOzbmljb3MgLyBhbGlhc2VzKipcclxuICogLSBgb3B0aW9uc2AgfCBgaXRlbXNgIOKAlCBtZXNtYSBsaXN0YVxyXG4gKiAtIGBjb21wYXJlV2l0aGAgfCBgY29tcGFyZUJ5YCDigJQgbWVzbWEgZnVuw6fDo29cclxuICogLSBgcGFnaW5hdGlvbmAgfCBgcGFnZWFibGVgIOKAlCBzw7MgZW0gYHNlbGVjdGAgZSBgbXVsdGlzZWxlY3RgXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duTGlzdEJpbmRpbmdzPFQgPSB1bmtub3duPiB7XHJcbiAgb3B0aW9uczogUmVhZG9ubHlBcnJheTxVaVNlbGVjdE9wdGlvbjxUPj47XHJcbiAgY29tcGFyZVdpdGg6IChhOiB1bmtub3duLCBiOiB1bmtub3duKSA9PiBib29sZWFuO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tc2VhcmNoLXBhZ2UtcmVxdWVzdGVkLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9maWVsZHMvZHJvcGRvd24tZmllbGRzL19tb2RlbHMvZHJvcGRvd24tc2VhcmNoLXBhZ2UtcmVxdWVzdGVkLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUGVkaWRvIGRlIHDDoWdpbmEgcGFyYSBvIGNhbXBvIGNvbSBidXNjYSArIHNjcm9sbCBpbmZpbml0by4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBEcm9wZG93blNlYXJjaFBhZ2VSZXF1ZXN0ZWQge1xyXG4gIHBhZ2U6IG51bWJlcjtcclxuICBwYWdlU2l6ZTogbnVtYmVyO1xyXG4gIC8qKiBGaWx0cm8gYXR1YWwgKGFww7NzIEVudGVyKS4gVmF6aW8gPSBsaXN0YXIgdHVkbyBwYWdpbmFkby4gKi9cclxuICBxdWVyeTogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2ZpZWxkcy9kcm9wZG93bi1maWVsZHMvX21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgeyBVaVNlbGVjdE9wdGlvbiB9IGZyb20gJy4vc2VsZWN0LW9wdGlvbi5tb2RlbCc7XHJcbmV4cG9ydCB0eXBlIHsgU2VsZWN0UGFnZVJlcXVlc3RlZCB9IGZyb20gJy4vc2VsZWN0LXBhZ2luYXRpb24ubW9kZWwnO1xyXG5leHBvcnQgdHlwZSB7IERyb3Bkb3duU2VhcmNoUGFnZVJlcXVlc3RlZCB9IGZyb20gJy4vZHJvcGRvd24tc2VhcmNoLXBhZ2UtcmVxdWVzdGVkLm1vZGVsJztcclxuZXhwb3J0IHR5cGUgeyBEcm9wZG93bkxpc3RCaW5kaW5ncyB9IGZyb20gJy4vZHJvcGRvd24tbGlzdC1iaW5kaW5ncy5tb2RlbCc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvZmllbGRzL2Ryb3Bkb3duLWZpZWxkcy9fbW9kZWxzL3NlbGVjdC1vcHRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVWlTZWxlY3RPcHRpb248VCA9IHVua25vd24+IHtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHZhbHVlOiBUO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXBhZ2luYXRpb24ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2ZpZWxkcy9kcm9wZG93bi1maWVsZHMvX21vZGVscy9zZWxlY3QtcGFnaW5hdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEV2ZW50byBlbWl0aWRvIHBlbG8gc2VsZWN0IHBhZ2luYWRvIGFvIHByZWNpc2FyIGRlIG1haXMgZGFkb3MgKGV4LjogYmFja2VuZCAvIGNvbWJvYm94KS4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RQYWdlUmVxdWVzdGVkIHtcclxuICAvKiogUMOhZ2luYSAwLWJhc2VkICgwID0gcHJpbWVpcm9zIGBwYWdlU2l6ZWAgaXRlbnMpLiAqL1xyXG4gIHBhZ2U6IG51bWJlcjtcclxuICBwYWdlU2l6ZTogbnVtYmVyO1xyXG59XHJcbiJdfQ==
|