@koobiq/components 18.17.0 → 18.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/actions-panel/actions-panel-config.d.ts +79 -0
- package/actions-panel/actions-panel-container.d.ts +90 -0
- package/actions-panel/actions-panel-container.scss +33 -0
- package/actions-panel/actions-panel-ref.d.ts +31 -0
- package/actions-panel/actions-panel-tokens.scss +13 -0
- package/actions-panel/actions-panel.d.ts +144 -0
- package/actions-panel/index.d.ts +5 -0
- package/actions-panel/module.d.ts +7 -0
- package/core/animation/animation.d.ts +26 -0
- package/core/form-field/form-field-ref.d.ts +4 -0
- package/core/locales/en-US.d.ts +45 -0
- package/core/locales/es-LA.d.ts +45 -0
- package/core/locales/fa-IR.d.ts +45 -0
- package/core/locales/locale-service.d.ts +315 -0
- package/core/locales/pt-BR.d.ts +45 -0
- package/core/locales/ru-RU.d.ts +45 -0
- package/core/locales/tk-TM.d.ts +45 -0
- package/core/locales/types.d.ts +6 -0
- package/core/locales/zh-CN.d.ts +45 -0
- package/core/option/option.d.ts +3 -1
- package/datepicker/calendar.component.d.ts +9 -0
- package/datepicker/datepicker-input.directive.d.ts +5 -1
- package/dl/dl.component.d.ts +3 -4
- package/dropdown/_dropdown-theme.scss +9 -10
- package/dropdown/dropdown-tokens.scss +1 -0
- package/dropdown/dropdown.component.d.ts +1 -1
- package/dropdown/dropdown.scss +5 -0
- package/dropdown/dropdown.types.d.ts +3 -1
- package/esm2022/accordion/accordion-trigger.component.mjs +1 -1
- package/esm2022/actions-panel/actions-panel-config.mjs +55 -0
- package/esm2022/actions-panel/actions-panel-container.mjs +217 -0
- package/esm2022/actions-panel/actions-panel-ref.mjs +62 -0
- package/esm2022/actions-panel/actions-panel.mjs +220 -0
- package/esm2022/actions-panel/index.mjs +6 -0
- package/esm2022/actions-panel/koobiq-components-actions-panel.mjs +5 -0
- package/esm2022/actions-panel/module.mjs +21 -0
- package/esm2022/breadcrumbs/breadcrumbs.mjs +2 -2
- package/esm2022/code-block/code-block.mjs +1 -1
- package/esm2022/core/animation/animation.mjs +29 -1
- package/esm2022/core/common-behaviors/common-module.mjs +2 -2
- package/esm2022/core/form-field/form-field-ref.mjs +1 -1
- package/esm2022/core/locales/en-US.mjs +46 -1
- package/esm2022/core/locales/es-LA.mjs +46 -1
- package/esm2022/core/locales/fa-IR.mjs +46 -1
- package/esm2022/core/locales/pt-BR.mjs +46 -1
- package/esm2022/core/locales/ru-RU.mjs +46 -1
- package/esm2022/core/locales/tk-TM.mjs +46 -1
- package/esm2022/core/locales/types.mjs +1 -1
- package/esm2022/core/locales/zh-CN.mjs +46 -1
- package/esm2022/core/option/option.mjs +10 -3
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/datepicker/calendar-header.component.mjs +1 -1
- package/esm2022/datepicker/calendar.component.mjs +20 -2
- package/esm2022/datepicker/datepicker-input.directive.mjs +22 -11
- package/esm2022/datepicker/datepicker-toggle.component.mjs +1 -1
- package/esm2022/dl/dl.component.mjs +8 -7
- package/esm2022/dropdown/dropdown-item.component.mjs +1 -1
- package/esm2022/dropdown/dropdown-trigger.directive.mjs +6 -1
- package/esm2022/dropdown/dropdown.component.mjs +4 -4
- package/esm2022/dropdown/dropdown.types.mjs +1 -1
- package/esm2022/file-upload/multiple-file-upload.component.mjs +1 -1
- package/esm2022/file-upload/single-file-upload.component.mjs +1 -1
- package/esm2022/filter-bar/filter-bar-button.mjs +30 -0
- package/esm2022/filter-bar/filter-bar.mjs +168 -0
- package/esm2022/filter-bar/filter-bar.module.mjs +65 -0
- package/esm2022/filter-bar/filter-bar.types.mjs +13 -0
- package/esm2022/filter-bar/filter-refresher.mjs +34 -0
- package/esm2022/filter-bar/filter-reset.mjs +38 -0
- package/esm2022/filter-bar/filter-search.mjs +132 -0
- package/esm2022/filter-bar/filters.mjs +225 -0
- package/esm2022/filter-bar/index.mjs +2 -0
- package/esm2022/filter-bar/koobiq-components-filter-bar.mjs +5 -0
- package/esm2022/filter-bar/pipe-add.mjs +129 -0
- package/esm2022/filter-bar/pipe.directive.mjs +55 -0
- package/esm2022/filter-bar/pipes/base-pipe.mjs +106 -0
- package/esm2022/filter-bar/pipes/pipe-button.mjs +59 -0
- package/esm2022/filter-bar/pipes/pipe-date.mjs +171 -0
- package/esm2022/filter-bar/pipes/pipe-datetime.mjs +172 -0
- package/esm2022/filter-bar/pipes/pipe-multi-select.mjs +96 -0
- package/esm2022/filter-bar/pipes/pipe-select.mjs +88 -0
- package/esm2022/filter-bar/pipes/pipe-state.mjs +45 -0
- package/esm2022/filter-bar/pipes/pipe-text.mjs +89 -0
- package/esm2022/filter-bar/pipes/pipe-title.mjs +96 -0
- package/esm2022/filter-bar/public-api.mjs +20 -0
- package/esm2022/form-field/cleaner.mjs +1 -1
- package/esm2022/form-field/form-field.mjs +13 -6
- package/esm2022/form-field/password-hint.mjs +1 -1
- package/esm2022/form-field/password-toggle.mjs +1 -1
- package/esm2022/form-field/stepper.mjs +1 -1
- package/esm2022/icon/icon-button.component.mjs +9 -9
- package/esm2022/icon/icon-item.component.mjs +10 -10
- package/esm2022/icon/icon.component.mjs +9 -12
- package/esm2022/list/list-selection.component.mjs +4 -4
- package/esm2022/modal/modal.component.mjs +1 -1
- package/esm2022/modal/modal.directive.mjs +1 -1
- package/esm2022/navbar/navbar-item.component.mjs +2 -2
- package/esm2022/overflow-items/overflow-items.mjs +151 -195
- package/esm2022/popover/popover.component.mjs +30 -10
- package/esm2022/select/select.component.mjs +3 -3
- package/esm2022/sidepanel/sidepanel-directives.mjs +2 -2
- package/esm2022/tabs/tab-header.component.mjs +1 -1
- package/esm2022/tabs/tab-nav-bar.mjs +2 -2
- package/esm2022/textarea/textarea.component.mjs +9 -5
- package/esm2022/timezone/timezone-select.component.mjs +2 -2
- package/esm2022/title/title.directive.mjs +12 -5
- package/esm2022/toast/toast.component.mjs +2 -2
- package/esm2022/tree/toggle.mjs +1 -1
- package/esm2022/tree/tree-option.component.mjs +3 -2
- package/esm2022/tree/tree-selection.component.mjs +4 -2
- package/esm2022/tree-select/tree-select.component.mjs +6 -4
- package/fesm2022/koobiq-components-accordion.mjs +1 -1
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-actions-panel.mjs +567 -0
- package/fesm2022/koobiq-components-actions-panel.mjs.map +1 -0
- package/fesm2022/koobiq-components-breadcrumbs.mjs +1 -1
- package/fesm2022/koobiq-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/koobiq-components-code-block.mjs +1 -1
- package/fesm2022/koobiq-components-code-block.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +355 -5
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-datepicker.mjs +40 -12
- package/fesm2022/koobiq-components-datepicker.mjs.map +1 -1
- package/fesm2022/koobiq-components-dl.mjs +7 -6
- package/fesm2022/koobiq-components-dl.mjs.map +1 -1
- package/fesm2022/koobiq-components-dropdown.mjs +9 -4
- package/fesm2022/koobiq-components-dropdown.mjs.map +1 -1
- package/fesm2022/koobiq-components-file-upload.mjs +2 -2
- package/fesm2022/koobiq-components-file-upload.mjs.map +1 -1
- package/fesm2022/koobiq-components-filter-bar.mjs +1596 -0
- package/fesm2022/koobiq-components-filter-bar.mjs.map +1 -0
- package/fesm2022/koobiq-components-form-field.mjs +16 -9
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +23 -26
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-list.mjs +3 -3
- package/fesm2022/koobiq-components-list.mjs.map +1 -1
- package/fesm2022/koobiq-components-modal.mjs +2 -2
- package/fesm2022/koobiq-components-modal.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +2 -2
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +152 -196
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -1
- package/fesm2022/koobiq-components-popover.mjs +29 -9
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +2 -2
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs +1 -1
- package/fesm2022/koobiq-components-sidepanel.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +2 -2
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-textarea.mjs +8 -4
- package/fesm2022/koobiq-components-textarea.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +2 -2
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +11 -4
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toast.mjs +1 -1
- package/fesm2022/koobiq-components-toast.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree-select.mjs +5 -3
- package/fesm2022/koobiq-components-tree-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tree.mjs +6 -3
- package/fesm2022/koobiq-components-tree.mjs.map +1 -1
- package/filter-bar/_filter-bar-theme.scss +61 -0
- package/filter-bar/filter-bar-button.d.ts +8 -0
- package/filter-bar/filter-bar.d.ts +55 -0
- package/filter-bar/filter-bar.module.d.ts +17 -0
- package/filter-bar/filter-bar.scss +60 -0
- package/filter-bar/filter-bar.types.d.ts +97 -0
- package/filter-bar/filter-refresher.d.ts +5 -0
- package/filter-bar/filter-refresher.scss +6 -0
- package/filter-bar/filter-reset.d.ts +11 -0
- package/filter-bar/filter-search.d.ts +25 -0
- package/filter-bar/filter-search.scss +14 -0
- package/filter-bar/filters.d.ts +72 -0
- package/filter-bar/filters.scss +92 -0
- package/filter-bar/index.d.ts +1 -0
- package/filter-bar/pipe-add.d.ts +18 -0
- package/filter-bar/pipe-add.scss +5 -0
- package/filter-bar/pipe.directive.d.ts +13 -0
- package/filter-bar/pipes/base-pipe.d.ts +40 -0
- package/filter-bar/pipes/base-pipe.scss +117 -0
- package/filter-bar/pipes/pipe-button.d.ts +13 -0
- package/filter-bar/pipes/pipe-button.scss +5 -0
- package/filter-bar/pipes/pipe-date.d.ts +41 -0
- package/filter-bar/pipes/pipe-date.scss +132 -0
- package/filter-bar/pipes/pipe-datetime.d.ts +41 -0
- package/filter-bar/pipes/pipe-multi-select.d.ts +22 -0
- package/filter-bar/pipes/pipe-multiselect.scss +15 -0
- package/filter-bar/pipes/pipe-select.d.ts +21 -0
- package/filter-bar/pipes/pipe-select.scss +3 -0
- package/filter-bar/pipes/pipe-state.d.ts +14 -0
- package/filter-bar/pipes/pipe-text.d.ts +19 -0
- package/filter-bar/pipes/pipe-title.d.ts +25 -0
- package/filter-bar/public-api.d.ts +19 -0
- package/form-field/form-field.d.ts +6 -1
- package/form-field/form-field.scss +1 -0
- package/icon/icon-button.component.d.ts +5 -3
- package/icon/icon-item.component.d.ts +5 -3
- package/icon/icon.component.d.ts +5 -4
- package/overflow-items/overflow-items.d.ts +68 -82
- package/package.json +18 -6
- package/popover/popover.component.d.ts +6 -1
- package/schematics/ng-add/index.js +5 -5
- package/select/_select-theme.scss +9 -1
- package/textarea/textarea.component.d.ts +2 -1
- package/title/title.directive.d.ts +2 -0
- package/tree-select/_tree-select-theme.scss +9 -1
- package/tree-select/tree-select.component.d.ts +1 -1
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject, viewChild, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { FormControl, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { ENTER } from '@koobiq/cdk/keycodes';
|
|
4
|
+
import { KbqButton, KbqButtonModule, KbqButtonStyles } from '@koobiq/components/button';
|
|
5
|
+
import { DateAdapter, DateFormatter, KBQ_VALIDATION, KbqComponentColors, KbqFormattersModule, PopUpPlacements } from '@koobiq/components/core';
|
|
6
|
+
import { KbqDatepickerModule } from '@koobiq/components/datepicker';
|
|
7
|
+
import { KbqDividerModule } from '@koobiq/components/divider';
|
|
8
|
+
import { KbqFormFieldModule } from '@koobiq/components/form-field';
|
|
9
|
+
import { KbqIcon } from '@koobiq/components/icon';
|
|
10
|
+
import { KbqInputModule } from '@koobiq/components/input';
|
|
11
|
+
import { KbqListModule, KbqListSelection } from '@koobiq/components/list';
|
|
12
|
+
import { KbqPopoverModule, KbqPopoverTrigger } from '@koobiq/components/popover';
|
|
13
|
+
import { KbqTimepickerModule } from '@koobiq/components/timepicker';
|
|
14
|
+
import { KbqTitleModule } from '@koobiq/components/title';
|
|
15
|
+
import { KbqBasePipe } from './base-pipe';
|
|
16
|
+
import { KbqPipeButton } from './pipe-button';
|
|
17
|
+
import { KbqPipeState } from './pipe-state';
|
|
18
|
+
import { KbqPipeTitleDirective } from './pipe-title';
|
|
19
|
+
import * as i0 from "@angular/core";
|
|
20
|
+
import * as i1 from "@angular/forms";
|
|
21
|
+
import * as i2 from "@koobiq/components/form-field";
|
|
22
|
+
import * as i3 from "@koobiq/components/input";
|
|
23
|
+
import * as i4 from "@koobiq/components/divider";
|
|
24
|
+
import * as i5 from "@koobiq/components/popover";
|
|
25
|
+
import * as i6 from "@koobiq/components/button";
|
|
26
|
+
import * as i7 from "@koobiq/components/list";
|
|
27
|
+
import * as i8 from "@koobiq/components/datepicker";
|
|
28
|
+
import * as i9 from "@koobiq/components/timepicker";
|
|
29
|
+
export class KbqPipeDatetimeComponent extends KbqBasePipe {
|
|
30
|
+
get formattedValue() {
|
|
31
|
+
if (this.start && this.end) {
|
|
32
|
+
return this.formatter.rangeShortDate(this.start, this.end);
|
|
33
|
+
}
|
|
34
|
+
return this.data.value?.name ?? '';
|
|
35
|
+
}
|
|
36
|
+
get disabled() {
|
|
37
|
+
return (!this.adapter.isDateInstance(this.formGroup.controls.start.value) ||
|
|
38
|
+
!this.adapter.isDateInstance(this.formGroup.controls.end.value) ||
|
|
39
|
+
this.formGroup.controls.start.invalid);
|
|
40
|
+
}
|
|
41
|
+
get start() {
|
|
42
|
+
return this.adapter.parse(this.data.value?.start, '');
|
|
43
|
+
}
|
|
44
|
+
get end() {
|
|
45
|
+
return this.adapter.parse(this.data.value?.end, '');
|
|
46
|
+
}
|
|
47
|
+
get isEmpty() {
|
|
48
|
+
if (this.data.value === null)
|
|
49
|
+
return true;
|
|
50
|
+
if (this.data.value?.name)
|
|
51
|
+
return false;
|
|
52
|
+
return !this.adapter.isDateInstance(this.start) || !this.adapter.isDateInstance(this.end);
|
|
53
|
+
}
|
|
54
|
+
constructor() {
|
|
55
|
+
super();
|
|
56
|
+
this.adapter = inject(DateAdapter);
|
|
57
|
+
this.formatter = inject(DateFormatter);
|
|
58
|
+
this.placements = PopUpPlacements;
|
|
59
|
+
this.styles = KbqButtonStyles;
|
|
60
|
+
this.colors = KbqComponentColors;
|
|
61
|
+
this.list = true;
|
|
62
|
+
this.showStartCalendar = false;
|
|
63
|
+
this.showEndCalendar = false;
|
|
64
|
+
this.listSelection = viewChild.required('listSelection', { read: KbqListSelection });
|
|
65
|
+
this.returnButton = viewChild.required('returnButton', { read: KbqButton });
|
|
66
|
+
this.formGroup = new FormGroup({
|
|
67
|
+
start: new FormControl(this.start),
|
|
68
|
+
end: new FormControl(this.end)
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
onKeydown($event) {
|
|
72
|
+
if (($event.ctrlKey || $event.metaKey) && $event.keyCode === ENTER) {
|
|
73
|
+
this.onApplyPeriod();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
onApplyPeriod() {
|
|
77
|
+
this.data.value = {
|
|
78
|
+
start: this.formGroup.controls.start.value.toISO(),
|
|
79
|
+
end: this.formGroup.controls.end.value.toISO()
|
|
80
|
+
};
|
|
81
|
+
this.stateChanges.next();
|
|
82
|
+
this.filterBar?.onChangePipe.next(this.data);
|
|
83
|
+
this.popover.hide();
|
|
84
|
+
}
|
|
85
|
+
onSelect(item) {
|
|
86
|
+
this.data.value = item;
|
|
87
|
+
this.stateChanges.next();
|
|
88
|
+
this.filterBar?.onChangePipe.next(this.data);
|
|
89
|
+
this.popover.hide();
|
|
90
|
+
}
|
|
91
|
+
openPeriod() {
|
|
92
|
+
this.list = false;
|
|
93
|
+
this.showStartCalendar = false;
|
|
94
|
+
this.showEndCalendar = false;
|
|
95
|
+
setTimeout(() => {
|
|
96
|
+
this.popover.updatePosition(true);
|
|
97
|
+
this.returnButton().focus();
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
openList() {
|
|
101
|
+
this.list = true;
|
|
102
|
+
setTimeout(() => this.listSelection().focus());
|
|
103
|
+
this.popover.updatePosition(true);
|
|
104
|
+
}
|
|
105
|
+
open() {
|
|
106
|
+
this.popover.show();
|
|
107
|
+
}
|
|
108
|
+
onSelectStartDate(value) {
|
|
109
|
+
this.formGroup.controls.start.setValue(value);
|
|
110
|
+
}
|
|
111
|
+
onSelectEndDate(value) {
|
|
112
|
+
this.formGroup.controls.end.setValue(value);
|
|
113
|
+
}
|
|
114
|
+
onFocusStartInput() {
|
|
115
|
+
this.showStartCalendar = true;
|
|
116
|
+
this.showEndCalendar = false;
|
|
117
|
+
this.popover.updatePosition(true);
|
|
118
|
+
}
|
|
119
|
+
onFocusEndInput() {
|
|
120
|
+
this.showEndCalendar = true;
|
|
121
|
+
this.showStartCalendar = false;
|
|
122
|
+
}
|
|
123
|
+
hideCalendars() {
|
|
124
|
+
this.showStartCalendar = false;
|
|
125
|
+
this.showEndCalendar = false;
|
|
126
|
+
}
|
|
127
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqPipeDatetimeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
128
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KbqPipeDatetimeComponent, isStandalone: true, selector: "kbq-pipe-datetime", providers: [
|
|
129
|
+
{
|
|
130
|
+
provide: KBQ_VALIDATION,
|
|
131
|
+
useValue: { useValidation: false }
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
provide: KbqBasePipe,
|
|
135
|
+
useExisting: this
|
|
136
|
+
}
|
|
137
|
+
], viewQueries: [{ propertyName: "listSelection", first: true, predicate: ["listSelection"], descendants: true, read: KbqListSelection, isSignal: true }, { propertyName: "returnButton", first: true, predicate: ["returnButton"], descendants: true, read: KbqButton, isSignal: true }, { propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"list = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (list) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"openPeriod()\" (keydown.enter)=\"openPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <i class=\"kbq kbq-icon kbq-chevron-right_16 kbq-contrast-fade\"></i>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"openList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <kbq-divider />\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <div class=\"kbq-date-period__content-header\">{{ localeData.datePipe.customPeriod }}</div>\n <div class=\"kbq-form__row kbq-form__row_with-time\">\n <label class=\"kbq-form__label flex-10\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <kbq-form-field\n class=\"kbq-date-period__date kbq-form__control\"\n [class.kbq-focused]=\"showStartCalendar\"\n >\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-form-field class=\"kbq-date-period__time kbq-form__control\">\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix></i>\n <input formControlName=\"start\" kbqTimepicker (focusin)=\"hideCalendars()\" />\n </kbq-form-field>\n </div>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <div class=\"kbq-form__row kbq-form__row_with-time\">\n <label class=\"kbq-form__label flex-10\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <kbq-form-field\n class=\"kbq-date-period__date kbq-form__control\"\n [class.kbq-focused]=\"showEndCalendar\"\n >\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-form-field class=\"kbq-date-period__time kbq-form__control\">\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix></i>\n <input formControlName=\"end\" kbqTimepicker (focusin)=\"hideCalendars()\" />\n </kbq-form-field>\n </div>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n \n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318' : 'Ctrl+' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-white);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding-top:var(--kbq-size-xs);padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:flex;flex-direction:column;padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__content-header{padding-top:var(--kbq-size-s);padding-left:var(--kbq-size-l);padding-right:var(--kbq-size-l);color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row{padding-left:var(--kbq-size-l);padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row .kbq-date-period__time{flex:1}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row.kbq-form__row_with-time .kbq-date-period__date{max-width:45%}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row.kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row.kbq-form__row_with-time .kbq-date-period__time{margin-left:-1px;max-width:45%}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row.kbq-form__row_with-time .kbq-date-period__time .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i2.KbqFormField, selector: "kbq-form-field", inputs: ["color"], exportAs: ["kbqFormField"] }, { kind: "component", type: i2.KbqHint, selector: "kbq-hint", inputs: ["color", "id", "fillTextOff", "compact"], exportAs: ["kbqHint"] }, { kind: "directive", type: i2.KbqPrefix, selector: "[kbqPrefix]" }, { kind: "directive", type: i2.KbqSuffix, selector: "[kbqSuffix]" }, { kind: "directive", type: i2.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i3.MaxValidator, selector: "[max][formControlName],[max][formControl],[max][ngModel]", inputs: ["max"] }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "component", type: i4.KbqDivider, selector: "kbq-divider", inputs: ["vertical", "inset", "paddings"] }, { kind: "ngmodule", type: KbqPopoverModule }, { kind: "directive", type: i5.KbqPopoverTrigger, selector: "[kbqPopover]", inputs: ["kbqPopoverVisible", "kbqPopoverPlacement", "kbqPopoverPlacementPriority", "hasBackdrop", "kbqPopoverHeader", "kbqPopoverContent", "kbqPopoverFooter", "kbqPopoverDisabled", "kbqTrigger", "kbqPopoverSize", "kbqPopoverClass", "hasCloseButton", "closeOnScroll", "backdropClass", "kbqPopoverArrow", "kbqPopoverOffset"], outputs: ["kbqPopoverPlacementChange", "kbqPopoverVisibleChange"], exportAs: ["kbqPopover"] }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i6.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i6.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqListModule }, { kind: "component", type: i7.KbqListSelection, selector: "kbq-list-selection", inputs: ["disabled", "autoSelect", "noUnselectLast", "horizontal", "tabIndex", "compareWith"], outputs: ["onSelectAll", "onCopy", "selectionChange"], exportAs: ["kbqListSelection"] }, { kind: "component", type: i7.KbqListOption, selector: "kbq-list-option", inputs: ["checkboxPosition", "value", "disabled", "showCheckbox", "selected"], exportAs: ["kbqListOption"] }, { kind: "ngmodule", type: KbqDatepickerModule }, { kind: "component", type: i8.KbqCalendar, selector: "kbq-calendar", inputs: ["startAt", "selected", "minDate", "maxDate", "dateFilter", "dateClass"], outputs: ["selectedChange", "yearSelected", "monthSelected", "userSelection"], exportAs: ["kbqCalendar"] }, { kind: "directive", type: i8.KbqDatepickerInput, selector: "input[kbqDatepicker], input[kbqCalendar]", inputs: ["placeholder", "required", "kbqDatepicker", "kbqCalendar", "kbqDatepickerFilter", "value", "min", "max", "disabled", "id", "kbqValidationTooltip"], outputs: ["incorrectInput", "dateChange", "dateInput"], exportAs: ["kbqDatepickerInput"] }, { kind: "ngmodule", type: KbqTimepickerModule }, { kind: "directive", type: i9.KbqTimepicker, selector: "input[kbqTimepicker]", inputs: ["placeholder", "disabled", "id", "required", "format", "min", "max", "value", "kbqValidationTooltip"], outputs: ["incorrectInput"], exportAs: ["kbqTimepicker"] }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "ngmodule", type: KbqFormattersModule }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button" }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
138
|
+
}
|
|
139
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqPipeDatetimeComponent, decorators: [{
|
|
140
|
+
type: Component,
|
|
141
|
+
args: [{ standalone: true, selector: 'kbq-pipe-datetime', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
|
142
|
+
{
|
|
143
|
+
provide: KBQ_VALIDATION,
|
|
144
|
+
useValue: { useValidation: false }
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
provide: KbqBasePipe,
|
|
148
|
+
useExisting: this
|
|
149
|
+
}
|
|
150
|
+
], imports: [
|
|
151
|
+
ReactiveFormsModule,
|
|
152
|
+
KbqFormFieldModule,
|
|
153
|
+
KbqIcon,
|
|
154
|
+
KbqInputModule,
|
|
155
|
+
KbqDividerModule,
|
|
156
|
+
KbqPopoverModule,
|
|
157
|
+
KbqButtonModule,
|
|
158
|
+
KbqListModule,
|
|
159
|
+
KbqDatepickerModule,
|
|
160
|
+
KbqTimepickerModule,
|
|
161
|
+
KbqPipeState,
|
|
162
|
+
KbqFormattersModule,
|
|
163
|
+
KbqPipeButton,
|
|
164
|
+
KbqTitleModule,
|
|
165
|
+
KbqPipeTitleDirective,
|
|
166
|
+
FormsModule
|
|
167
|
+
], template: "<button\n #popover=\"kbqPopover\"\n kbq-button\n kbqPopover\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [kbqPopoverArrow]=\"false\"\n [kbqPopoverClass]=\"'kbq-pipe-date__popover'\"\n [kbqPopoverContent]=\"content\"\n [kbqPopoverPlacement]=\"placements.BottomLeft\"\n [kbqPopoverPlacementPriority]=\"[placements.BottomLeft, placements.TopLeft]\"\n (kbqPopoverVisibleChange)=\"list = true\"\n>\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!formattedValue\">\n {{ formattedValue }}\n </span>\n</button>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #content>\n @if (list) {\n <div class=\"kbq-date-list\">\n <kbq-list-selection [ngModel]=\"data.value?.name\">\n <kbq-list-option (click)=\"openPeriod()\" (keydown.enter)=\"openPeriod()\">\n {{ localeData.datePipe?.customPeriod }}\n <i class=\"kbq kbq-icon kbq-chevron-right_16 kbq-contrast-fade\"></i>\n </kbq-list-option>\n\n @for (item of values; track item) {\n <kbq-list-option [value]=\"item.name\" (click)=\"onSelect(item)\" (keydown.enter)=\"onSelect(item)\">\n {{ item.name }}\n </kbq-list-option>\n }\n </kbq-list-selection>\n </div>\n } @else {\n <div class=\"kbq-date-period kbq-datepicker__content\" (keydown)=\"onKeydown($event)\">\n <div class=\"kbq-date-period__header\">\n <button\n #returnButton\n kbq-button\n [color]=\"colors.Theme\"\n [kbqStyle]=\"styles.Transparent\"\n (click)=\"openList()\"\n >\n <i kbq-icon=\"kbq-chevron-left_16\"></i>\n {{ localeData.datePipe.backToPeriodSelection }}\n </button>\n </div>\n\n <kbq-divider />\n\n <form class=\"kbq-date-period__content kbq-form-horizontal\" [formGroup]=\"formGroup\">\n <div class=\"kbq-date-period__content-header\">{{ localeData.datePipe.customPeriod }}</div>\n <div class=\"kbq-form__row kbq-form__row_with-time\">\n <label class=\"kbq-form__label flex-10\">{{ localeData.datePipe.customPeriodFrom }}</label>\n\n <kbq-form-field\n class=\"kbq-date-period__date kbq-form__control\"\n [class.kbq-focused]=\"showStartCalendar\"\n >\n <input\n formControlName=\"start\"\n [kbqCalendar]=\"startDateCalendar\"\n [max]=\"formGroup.controls.end.value\"\n (focusin)=\"onFocusStartInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-form-field class=\"kbq-date-period__time kbq-form__control\">\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix></i>\n <input formControlName=\"start\" kbqTimepicker (focusin)=\"hideCalendars()\" />\n </kbq-form-field>\n </div>\n\n <kbq-calendar\n #startDateCalendar\n [class.kbq-calendar_hidden]=\"!showStartCalendar\"\n (selectedChange)=\"onSelectStartDate($event)\"\n />\n\n <div class=\"kbq-form__row kbq-form__row_with-time\">\n <label class=\"kbq-form__label flex-10\">{{ localeData.datePipe.customPeriodTo }}</label>\n\n <kbq-form-field\n class=\"kbq-date-period__date kbq-form__control\"\n [class.kbq-focused]=\"showEndCalendar\"\n >\n <input\n formControlName=\"end\"\n [kbqCalendar]=\"endDateCalendar\"\n (focusin)=\"onFocusEndInput()\"\n (keydown.tab)=\"hideCalendars()\"\n />\n <i kbq-icon=\"kbq-calendar-o_16\" kbqSuffix></i>\n </kbq-form-field>\n\n <kbq-form-field class=\"kbq-date-period__time kbq-form__control\">\n <i kbq-icon=\"kbq-clock_16\" kbqPrefix></i>\n <input formControlName=\"end\" kbqTimepicker (focusin)=\"hideCalendars()\" />\n </kbq-form-field>\n </div>\n\n @if (formGroup.controls.start.invalid) {\n <kbq-hint class=\"kbq-date-period__hint\" [color]=\"'error'\">\n {{ localeData.datePipe.customPeriodErrorHint }}\n </kbq-hint>\n }\n\n <kbq-calendar\n #endDateCalendar\n [class.kbq-calendar_hidden]=\"!showEndCalendar\"\n (selectedChange)=\"onSelectEndDate($event)\"\n />\n </form>\n\n <div class=\"kbq-date-period__footer\">\n <button\n kbq-button\n [color]=\"'theme'\"\n [disabled]=\"disabled\"\n [kbqStyle]=\"'transparent'\"\n (click)=\"onApplyPeriod()\"\n >\n <span>{{ localeData.pipe.applyButton }}</span>\n \n <span class=\"kbq-button_hot-key\">{{ isMac ? '\u2318' : 'Ctrl+' }}Enter</span>\n </button>\n </div>\n </div>\n }\n</ng-template>\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ formattedValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-datepicker__content{--kbq-datepicker-size-container-padding-vertical: var(--kbq-size-m);--kbq-datepicker-size-container-border-radius: var(--kbq-size-s);--kbq-datepicker-size-header-padding-horizontal: var(--kbq-size-xxs);--kbq-datepicker-size-header-margin-bottom: var(--kbq-size-3xs);--kbq-datepicker-size-grid-padding-horizontal: var(--kbq-size-m);--kbq-datepicker-size-grid-content-gap-vertical: var(--kbq-size-3xs);--kbq-datepicker-size-grid-divider-height: 1px;--kbq-datepicker-size-grid-cell-padding-horizontal: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-padding-vertical: var(--kbq-size-s);--kbq-datepicker-size-grid-cell-border-radius: var(--kbq-size-s);--kbq-datepicker-container-background: var(--kbq-background-card);--kbq-datepicker-container-shadow: var(--kbq-shadow-popup);--kbq-datepicker-header-text: var(--kbq-foreground-contrast-tertiary);--kbq-datepicker-header-divider: var(--kbq-line-contrast-less);--kbq-datepicker-grid-cell-default-background: transparent;--kbq-datepicker-grid-cell-default-text: var(--kbq-foreground-contrast);--kbq-datepicker-grid-cell-today-background: transparent;--kbq-datepicker-grid-cell-today-text: var(--kbq-foreground-theme);--kbq-datepicker-grid-cell-states-hover-background: var(--kbq-states-background-transparent-hover);--kbq-datepicker-grid-cell-states-active-background: var(--kbq-states-background-transparent-active);--kbq-datepicker-grid-cell-states-selected-background: var(--kbq-background-contrast);--kbq-datepicker-grid-cell-states-selected-text: var(--kbq-foreground-white);--kbq-datepicker-grid-cell-states-selected-hover-background: var(--kbq-states-background-contrast-active);--kbq-datepicker-grid-cell-states-disabled-background: transparent;--kbq-datepicker-grid-cell-states-disabled-text: var(--kbq-states-foreground-disabled)}.kbq-pipe-date__popover .kbq-popover__container{max-height:unset}.kbq-pipe-date__popover .kbq-popover__content{padding:0}.kbq-pipe-date__popover .kbq-date-list{margin:var(--kbq-size-xxs) 0}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-list-text{display:flex;flex-direction:row}.kbq-pipe-date__popover .kbq-date-list .kbq-list-option .kbq-icon{margin-left:var(--kbq-size-s);align-self:center;color:var(--kbq-icon-fade-contrast-color)}.kbq-pipe-date__popover .kbq-date-period{width:320px}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header{padding-top:var(--kbq-size-xs);padding-left:var(--kbq-size-xxs);padding-right:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__header .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-divider{margin:var(--kbq-size-xxs) var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content{display:flex;flex-direction:column;padding:0;gap:var(--kbq-size-s)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-date-period__content-header{padding-top:var(--kbq-size-s);padding-left:var(--kbq-size-l);padding-right:var(--kbq-size-l);color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row{padding-left:var(--kbq-size-l);padding-right:var(--kbq-size-l)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row .kbq-date-period__date,.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row .kbq-date-period__time{flex:1}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row.kbq-form__row_with-time .kbq-date-period__date{max-width:45%}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row.kbq-form__row_with-time .kbq-date-period__date .kbq-form-field__container{border-top-right-radius:unset;border-bottom-right-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row.kbq-form__row_with-time .kbq-date-period__time{margin-left:-1px;max-width:45%}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-form__row.kbq-form__row_with-time .kbq-date-period__time .kbq-form-field__container{border-top-left-radius:unset;border-bottom-left-radius:unset}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar{position:relative;padding:var(--kbq-size-s) var(--kbq-size-s) var(--kbq-size-m);background-color:var(--kbq-background-bg-tertiary)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-calendar.kbq-calendar_hidden{display:none}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__content .kbq-hint{padding-left:var(--kbq-size-m);padding-right:var(--kbq-size-m)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer{padding:var(--kbq-size-xxs)}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button{width:100%;justify-content:flex-start}.kbq-pipe-date__popover .kbq-date-period .kbq-date-period__footer .kbq-button:not(.kbq-disabled) .kbq-button_hot-key{color:var(--kbq-foreground-contrast-secondary)}.kbq-datepicker__content{background:var(--kbq-datepicker-container-background);box-shadow:var(--kbq-datepicker-container-shadow)}.kbq-calendar__table-header{color:var(--kbq-datepicker-header-text)}.kbq-calendar__table-header-divider:after{background:var(--kbq-datepicker-header-divider)}.kbq-calendar__body-cell-content{background:var(--kbq-datepicker-grid-cell-default-background);color:var(--kbq-datepicker-grid-cell-default-text)}.kbq-calendar__body-cell-content.kbq-calendar__body-today{background:var(--kbq-datepicker-grid-cell-today-background);color:var(--kbq-datepicker-grid-cell-today-text)}.kbq-calendar__body-cell-content:hover:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-hover-background)}.kbq-calendar__body-cell-content:active:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-active-background)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled){background:var(--kbq-datepicker-grid-cell-states-selected-background);color:var(--kbq-datepicker-grid-cell-states-selected-text)}.kbq-calendar__body-cell-content.kbq-selected:not(.kbq-disabled):hover{background:var(--kbq-datepicker-grid-cell-states-selected-hover-background)}.kbq-calendar__body-cell-content.kbq-disabled{color:var(--kbq-states-foreground-disabled);background:var(--kbq-datepicker-grid-cell-states-disabled-background)}.kbq-calendar,.kbq-calendar__table-header th{font-size:var(--kbq-typography-text-normal-font-size);font-weight:var(--kbq-typography-text-normal-font-weight);line-height:var(--kbq-typography-text-normal-line-height);font-family:var(--kbq-typography-text-normal-font-family);text-transform:var(--kbq-typography-text-normal-text-transform);font-feature-settings:var(--kbq-typography-text-normal-font-feature-settings);letter-spacing:var(--kbq-typography-text-normal-letter-spacing)}\n"] }]
|
|
168
|
+
}], ctorParameters: () => [], propDecorators: { popover: [{
|
|
169
|
+
type: ViewChild,
|
|
170
|
+
args: ['popover']
|
|
171
|
+
}] } });
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1kYXRldGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZmlsdGVyLWJhci9waXBlcy9waXBlLWRhdGV0aW1lLnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9maWx0ZXItYmFyL3BpcGVzL3BpcGUtZGF0ZXRpbWUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RixPQUFPLEVBQ0gsV0FBVyxFQUNYLGFBQWEsRUFDYixjQUFjLEVBQ2Qsa0JBQWtCLEVBQ2xCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2xCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUUsT0FBTyxFQUFF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bkIsa0JBQWtCO3dCQUNsQixPQUFPO3dCQUNQLGNBQWM7d0JBQ2QsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxxQkFBcUI7d0JBQ3JCLFdBQVc7cUJBQ2Q7d0RBaURxQixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbmplY3QsIHZpZXdDaGlsZCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFTlRFUiB9IGZyb20gJ0Brb29iaXEvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEticUJ1dHRvbiwgS2JxQnV0dG9uTW9kdWxlLCBLYnFCdXR0b25TdHlsZXMgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvYnV0dG9uJztcbmltcG9ydCB7XG4gICAgRGF0ZUFkYXB0ZXIsXG4gICAgRGF0ZUZvcm1hdHRlcixcbiAgICBLQlFfVkFMSURBVElPTixcbiAgICBLYnFDb21wb25lbnRDb2xvcnMsXG4gICAgS2JxRm9ybWF0dGVyc01vZHVsZSxcbiAgICBQb3BVcFBsYWNlbWVudHNcbn0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgS2JxRGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9kYXRlcGlja2VyJztcbmltcG9ydCB7IEticURpdmlkZXJNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvZGl2aWRlcic7XG5pbXBvcnQgeyBLYnFGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBLYnFJY29uIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2ljb24nO1xuaW1wb3J0IHsgS2JxSW5wdXRNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaW5wdXQnO1xuaW1wb3J0IHsgS2JxTGlzdE1vZHVsZSwgS2JxTGlzdFNlbGVjdGlvbiB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9saXN0JztcbmltcG9ydCB7IEticVBvcG92ZXJNb2R1bGUsIEticVBvcG92ZXJUcmlnZ2VyIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgS2JxVGltZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy90aW1lcGlja2VyJztcbmltcG9ydCB7IEticVRpdGxlTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL3RpdGxlJztcbmltcG9ydCB7IEticURhdGVUaW1lVmFsdWUgfSBmcm9tICcuLi9maWx0ZXItYmFyLnR5cGVzJztcbmltcG9ydCB7IEticUJhc2VQaXBlIH0gZnJvbSAnLi9iYXNlLXBpcGUnO1xuaW1wb3J0IHsgS2JxUGlwZUJ1dHRvbiB9IGZyb20gJy4vcGlwZS1idXR0b24nO1xuaW1wb3J0IHsgS2JxUGlwZVN0YXRlIH0gZnJvbSAnLi9waXBlLXN0YXRlJztcbmltcG9ydCB7IEticVBpcGVUaXRsZURpcmVjdGl2ZSB9IGZyb20gJy4vcGlwZS10aXRsZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdrYnEtcGlwZS1kYXRldGltZScsXG4gICAgdGVtcGxhdGVVcmw6ICdwaXBlLWRhdGV0aW1lLmh0bWwnLFxuICAgIHN0eWxlVXJsczogWydiYXNlLXBpcGUuc2NzcycsICdwaXBlLWRhdGUuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEtCUV9WQUxJREFUSU9OLFxuICAgICAgICAgICAgdXNlVmFsdWU6IHsgdXNlVmFsaWRhdGlvbjogZmFsc2UgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBLYnFCYXNlUGlwZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiB0aGlzXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgS2JxRm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBLYnFJY29uLFxuICAgICAgICBLYnFJbnB1dE1vZHVsZSxcbiAgICAgICAgS2JxRGl2aWRlck1vZHVsZSxcbiAgICAgICAgS2JxUG9wb3Zlck1vZHVsZSxcbiAgICAgICAgS2JxQnV0dG9uTW9kdWxlLFxuICAgICAgICBLYnFMaXN0TW9kdWxlLFxuICAgICAgICBLYnFEYXRlcGlja2VyTW9kdWxlLFxuICAgICAgICBLYnFUaW1lcGlja2VyTW9kdWxlLFxuICAgICAgICBLYnFQaXBlU3RhdGUsXG4gICAgICAgIEticUZvcm1hdHRlcnNNb2R1bGUsXG4gICAgICAgIEticVBpcGVCdXR0b24sXG4gICAgICAgIEticVRpdGxlTW9kdWxlLFxuICAgICAgICBLYnFQaXBlVGl0bGVEaXJlY3RpdmUsXG4gICAgICAgIEZvcm1zTW9kdWxlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBLYnFQaXBlRGF0ZXRpbWVDb21wb25lbnQ8RD4gZXh0ZW5kcyBLYnFCYXNlUGlwZTxLYnFEYXRlVGltZVZhbHVlPiB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGFkYXB0ZXIgPSBpbmplY3QoRGF0ZUFkYXB0ZXIpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBmb3JtYXR0ZXIgPSBpbmplY3QoRGF0ZUZvcm1hdHRlcik7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGxhY2VtZW50cyA9IFBvcFVwUGxhY2VtZW50cztcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3R5bGVzID0gS2JxQnV0dG9uU3R5bGVzO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjb2xvcnMgPSBLYnFDb21wb25lbnRDb2xvcnM7XG5cbiAgICBwcm90ZWN0ZWQgbGlzdCA9IHRydWU7XG5cbiAgICBwcm90ZWN0ZWQgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgICBwcm90ZWN0ZWQgc2hvd1N0YXJ0Q2FsZW5kYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgc2hvd0VuZENhbGVuZGFyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBnZXQgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhcnQgJiYgdGhpcy5lbmQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZvcm1hdHRlci5yYW5nZVNob3J0RGF0ZSh0aGlzLnN0YXJ0LCB0aGlzLmVuZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLnZhbHVlPy5uYW1lID8/ICcnO1xuICAgIH1cblxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICF0aGlzLmFkYXB0ZXIuaXNEYXRlSW5zdGFuY2UodGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc3RhcnQudmFsdWUpIHx8XG4gICAgICAgICAgICAhdGhpcy5hZGFwdGVyLmlzRGF0ZUluc3RhbmNlKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmVuZC52YWx1ZSkgfHxcbiAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnN0YXJ0LmludmFsaWRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXQgc3RhcnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucGFyc2UodGhpcy5kYXRhLnZhbHVlPy5zdGFydCwgJycpO1xuICAgIH1cblxuICAgIGdldCBlbmQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucGFyc2UodGhpcy5kYXRhLnZhbHVlPy5lbmQsICcnKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBnZXQgaXNFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuZGF0YS52YWx1ZSA9PT0gbnVsbCkgcmV0dXJuIHRydWU7XG5cbiAgICAgICAgaWYgKHRoaXMuZGF0YS52YWx1ZT8ubmFtZSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHJldHVybiAhdGhpcy5hZGFwdGVyLmlzRGF0ZUluc3RhbmNlKHRoaXMuc3RhcnQpIHx8ICF0aGlzLmFkYXB0ZXIuaXNEYXRlSW5zdGFuY2UodGhpcy5lbmQpO1xuICAgIH1cblxuICAgIEBWaWV3Q2hpbGQoJ3BvcG92ZXInKSBwb3BvdmVyOiBLYnFQb3BvdmVyVHJpZ2dlcjtcbiAgICBsaXN0U2VsZWN0aW9uID0gdmlld0NoaWxkLnJlcXVpcmVkKCdsaXN0U2VsZWN0aW9uJywgeyByZWFkOiBLYnFMaXN0U2VsZWN0aW9uIH0pO1xuICAgIHJldHVybkJ1dHRvbiA9IHZpZXdDaGlsZC5yZXF1aXJlZCgncmV0dXJuQnV0dG9uJywgeyByZWFkOiBLYnFCdXR0b24gfSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLmZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICAgICAgc3RhcnQ6IG5ldyBGb3JtQ29udHJvbCh0aGlzLnN0YXJ0KSxcbiAgICAgICAgICAgIGVuZDogbmV3IEZvcm1Db250cm9sKHRoaXMuZW5kKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbktleWRvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgIGlmICgoJGV2ZW50LmN0cmxLZXkgfHwgJGV2ZW50Lm1ldGFLZXkpICYmICRldmVudC5rZXlDb2RlID09PSBFTlRFUikge1xuICAgICAgICAgICAgdGhpcy5vbkFwcGx5UGVyaW9kKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkFwcGx5UGVyaW9kKCkge1xuICAgICAgICB0aGlzLmRhdGEudmFsdWUgPSB7XG4gICAgICAgICAgICBzdGFydDogdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc3RhcnQudmFsdWUudG9JU08oKSxcbiAgICAgICAgICAgIGVuZDogdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuZW5kLnZhbHVlLnRvSVNPKClcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xuXG4gICAgICAgIHRoaXMuZmlsdGVyQmFyPy5vbkNoYW5nZVBpcGUubmV4dCh0aGlzLmRhdGEpO1xuXG4gICAgICAgIHRoaXMucG9wb3Zlci5oaWRlKCk7XG4gICAgfVxuXG4gICAgb25TZWxlY3QoaXRlbTogS2JxRGF0ZVRpbWVWYWx1ZSkge1xuICAgICAgICB0aGlzLmRhdGEudmFsdWUgPSBpdGVtO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG5cbiAgICAgICAgdGhpcy5maWx0ZXJCYXI/Lm9uQ2hhbmdlUGlwZS5uZXh0KHRoaXMuZGF0YSk7XG5cbiAgICAgICAgdGhpcy5wb3BvdmVyLmhpZGUoKTtcbiAgICB9XG5cbiAgICBvcGVuUGVyaW9kKCkge1xuICAgICAgICB0aGlzLmxpc3QgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zaG93U3RhcnRDYWxlbmRhciA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNob3dFbmRDYWxlbmRhciA9IGZhbHNlO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5wb3BvdmVyLnVwZGF0ZVBvc2l0aW9uKHRydWUpO1xuICAgICAgICAgICAgdGhpcy5yZXR1cm5CdXR0b24oKS5mb2N1cygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvcGVuTGlzdCgpIHtcbiAgICAgICAgdGhpcy5saXN0ID0gdHJ1ZTtcblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubGlzdFNlbGVjdGlvbigpLmZvY3VzKCkpO1xuICAgICAgICB0aGlzLnBvcG92ZXIudXBkYXRlUG9zaXRpb24odHJ1ZSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgb3BlbigpIHtcbiAgICAgICAgdGhpcy5wb3BvdmVyLnNob3coKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdFN0YXJ0RGF0ZSh2YWx1ZTogRCkge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zdGFydC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgb25TZWxlY3RFbmREYXRlKHZhbHVlOiBEKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLmVuZC5zZXRWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgb25Gb2N1c1N0YXJ0SW5wdXQoKSB7XG4gICAgICAgIHRoaXMuc2hvd1N0YXJ0Q2FsZW5kYXIgPSB0cnVlO1xuICAgICAgICB0aGlzLnNob3dFbmRDYWxlbmRhciA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMucG9wb3Zlci51cGRhdGVQb3NpdGlvbih0cnVlKTtcbiAgICB9XG5cbiAgICBvbkZvY3VzRW5kSW5wdXQoKSB7XG4gICAgICAgIHRoaXMuc2hvd0VuZENhbGVuZGFyID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zaG93U3RhcnRDYWxlbmRhciA9IGZhbHNlO1xuICAgIH1cblxuICAgIGhpZGVDYWxlbmRhcnMoKSB7XG4gICAgICAgIHRoaXMuc2hvd1N0YXJ0Q2FsZW5kYXIgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zaG93RW5kQ2FsZW5kYXIgPSBmYWxzZTtcbiAgICB9XG59XG4iLCI8YnV0dG9uXG4gICAgI3BvcG92ZXI9XCJrYnFQb3BvdmVyXCJcbiAgICBrYnEtYnV0dG9uXG4gICAga2JxUG9wb3ZlclxuICAgIFtkaXNhYmxlZF09XCJkYXRhLmRpc2FibGVkXCJcbiAgICBba2JxUGlwZVN0YXRlXT1cImRhdGFcIlxuICAgIFtrYnFQaXBlVGl0bGVdPVwicGlwZVRvb2x0aXBcIlxuICAgIFtrYnFQb3BvdmVyQXJyb3ddPVwiZmFsc2VcIlxuICAgIFtrYnFQb3BvdmVyQ2xhc3NdPVwiJ2ticS1waXBlLWRhdGVfX3BvcG92ZXInXCJcbiAgICBba2JxUG9wb3ZlckNvbnRlbnRdPVwiY29udGVudFwiXG4gICAgW2ticVBvcG92ZXJQbGFjZW1lbnRdPVwicGxhY2VtZW50cy5Cb3R0b21MZWZ0XCJcbiAgICBba2JxUG9wb3ZlclBsYWNlbWVudFByaW9yaXR5XT1cIltwbGFjZW1lbnRzLkJvdHRvbUxlZnQsIHBsYWNlbWVudHMuVG9wTGVmdF1cIlxuICAgIChrYnFQb3BvdmVyVmlzaWJsZUNoYW5nZSk9XCJsaXN0ID0gdHJ1ZVwiXG4+XG4gICAgPHNwYW4gI2ticVRpdGxlVGV4dCBjbGFzcz1cImticS1waXBlX19uYW1lXCI+e3sgZGF0YS5uYW1lIH19PC9zcGFuPlxuICAgIDxzcGFuICNrYnFUaXRsZVRleHQgY2xhc3M9XCJrYnEtcGlwZV9fdmFsdWVcIiBbY2xhc3Mua2JxLXBpcGVfX3ZhbHVlX2VtcHR5XT1cIiFmb3JtYXR0ZWRWYWx1ZVwiPlxuICAgICAgICB7eyBmb3JtYXR0ZWRWYWx1ZSB9fVxuICAgIDwvc3Bhbj5cbjwvYnV0dG9uPlxuXG5AaWYgKHNob3dSZW1vdmVCdXR0b24pIHtcbiAgICA8a2JxLXBpcGUtYnV0dG9uIC8+XG59XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD5cbiAgICBAaWYgKGxpc3QpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1kYXRlLWxpc3RcIj5cbiAgICAgICAgICAgIDxrYnEtbGlzdC1zZWxlY3Rpb24gW25nTW9kZWxdPVwiZGF0YS52YWx1ZT8ubmFtZVwiPlxuICAgICAgICAgICAgICAgIDxrYnEtbGlzdC1vcHRpb24gKGNsaWNrKT1cIm9wZW5QZXJpb2QoKVwiIChrZXlkb3duLmVudGVyKT1cIm9wZW5QZXJpb2QoKVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBsb2NhbGVEYXRhLmRhdGVQaXBlPy5jdXN0b21QZXJpb2QgfX1cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJrYnEga2JxLWljb24ga2JxLWNoZXZyb24tcmlnaHRfMTYga2JxLWNvbnRyYXN0LWZhZGVcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9rYnEtbGlzdC1vcHRpb24+XG5cbiAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIHZhbHVlczsgdHJhY2sgaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICA8a2JxLWxpc3Qtb3B0aW9uIFt2YWx1ZV09XCJpdGVtLm5hbWVcIiAoY2xpY2spPVwib25TZWxlY3QoaXRlbSlcIiAoa2V5ZG93bi5lbnRlcik9XCJvblNlbGVjdChpdGVtKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgIDwva2JxLWxpc3Qtb3B0aW9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwva2JxLWxpc3Qtc2VsZWN0aW9uPlxuICAgICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1kYXRlLXBlcmlvZCBrYnEtZGF0ZXBpY2tlcl9fY29udGVudFwiIChrZXlkb3duKT1cIm9uS2V5ZG93bigkZXZlbnQpXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICNyZXR1cm5CdXR0b25cbiAgICAgICAgICAgICAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiY29sb3JzLlRoZW1lXCJcbiAgICAgICAgICAgICAgICAgICAgW2ticVN0eWxlXT1cInN0eWxlcy5UcmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTGlzdCgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLWNoZXZyb24tbGVmdF8xNlwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAge3sgbG9jYWxlRGF0YS5kYXRlUGlwZS5iYWNrVG9QZXJpb2RTZWxlY3Rpb24gfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8a2JxLWRpdmlkZXIgLz5cblxuICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX2NvbnRlbnQga2JxLWZvcm0taG9yaXpvbnRhbFwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9fY29udGVudC1oZWFkZXJcIj57eyBsb2NhbGVEYXRhLmRhdGVQaXBlLmN1c3RvbVBlcmlvZCB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZm9ybV9fcm93IGticS1mb3JtX19yb3dfd2l0aC10aW1lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImticS1mb3JtX19sYWJlbCBmbGV4LTEwXCI+e3sgbG9jYWxlRGF0YS5kYXRlUGlwZS5jdXN0b21QZXJpb2RGcm9tIH19PC9sYWJlbD5cblxuICAgICAgICAgICAgICAgICAgICA8a2JxLWZvcm0tZmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX19kYXRlIGticS1mb3JtX19jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5rYnEtZm9jdXNlZF09XCJzaG93U3RhcnRDYWxlbmRhclwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2JxQ2FsZW5kYXJdPVwic3RhcnREYXRlQ2FsZW5kYXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmVuZC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvY3VzaW4pPVwib25Gb2N1c1N0YXJ0SW5wdXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24udGFiKT1cImhpZGVDYWxlbmRhcnMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtY2FsZW5kYXItb18xNlwiIGticVN1ZmZpeD48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwva2JxLWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICAgICAgPGticS1mb3JtLWZpZWxkIGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX190aW1lIGticS1mb3JtX19jb250cm9sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS1jbG9ja18xNlwiIGticVByZWZpeD48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic3RhcnRcIiBrYnFUaW1lcGlja2VyIChmb2N1c2luKT1cImhpZGVDYWxlbmRhcnMoKVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDwva2JxLWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8a2JxLWNhbGVuZGFyXG4gICAgICAgICAgICAgICAgICAgICNzdGFydERhdGVDYWxlbmRhclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Mua2JxLWNhbGVuZGFyX2hpZGRlbl09XCIhc2hvd1N0YXJ0Q2FsZW5kYXJcIlxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwib25TZWxlY3RTdGFydERhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtZm9ybV9fcm93IGticS1mb3JtX19yb3dfd2l0aC10aW1lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImticS1mb3JtX19sYWJlbCBmbGV4LTEwXCI+e3sgbG9jYWxlRGF0YS5kYXRlUGlwZS5jdXN0b21QZXJpb2RUbyB9fTwvbGFiZWw+XG5cbiAgICAgICAgICAgICAgICAgICAgPGticS1mb3JtLWZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9fZGF0ZSBrYnEtZm9ybV9fY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Mua2JxLWZvY3VzZWRdPVwic2hvd0VuZENhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2JxQ2FsZW5kYXJdPVwiZW5kRGF0ZUNhbGVuZGFyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXNpbik9XCJvbkZvY3VzRW5kSW5wdXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGtleWRvd24udGFiKT1cImhpZGVDYWxlbmRhcnMoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkga2JxLWljb249XCJrYnEtY2FsZW5kYXItb18xNlwiIGticVN1ZmZpeD48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwva2JxLWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgICAgICAgPGticS1mb3JtLWZpZWxkIGNsYXNzPVwia2JxLWRhdGUtcGVyaW9kX190aW1lIGticS1mb3JtX19jb250cm9sXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS1jbG9ja18xNlwiIGticVByZWZpeD48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZW5kXCIga2JxVGltZXBpY2tlciAoZm9jdXNpbik9XCJoaWRlQ2FsZW5kYXJzKClcIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2ticS1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgQGlmIChmb3JtR3JvdXAuY29udHJvbHMuc3RhcnQuaW52YWxpZCkge1xuICAgICAgICAgICAgICAgICAgICA8a2JxLWhpbnQgY2xhc3M9XCJrYnEtZGF0ZS1wZXJpb2RfX2hpbnRcIiBbY29sb3JdPVwiJ2Vycm9yJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgbG9jYWxlRGF0YS5kYXRlUGlwZS5jdXN0b21QZXJpb2RFcnJvckhpbnQgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9rYnEtaGludD5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8a2JxLWNhbGVuZGFyXG4gICAgICAgICAgICAgICAgICAgICNlbmREYXRlQ2FsZW5kYXJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmticS1jYWxlbmRhcl9oaWRkZW5dPVwiIXNob3dFbmRDYWxlbmRhclwiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJvblNlbGVjdEVuZERhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZm9ybT5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1kYXRlLXBlcmlvZF9fZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBrYnEtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCIndGhlbWUnXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2ticVN0eWxlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BcHBseVBlcmlvZCgpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IGxvY2FsZURhdGEucGlwZS5hcHBseUJ1dHRvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwia2JxLWJ1dHRvbl9ob3Qta2V5XCI+e3sgaXNNYWMgPyAn4oyYJyA6ICdDdHJsKycgfX1FbnRlcjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3BpcGVUb29sdGlwPlxuICAgIDxkaXYgY2xhc3M9XCJrYnEtcGlwZS10b29sdGlwX19uYW1lIGticS10ZXh0LWNvbXBhY3RcIj57eyBkYXRhLm5hbWUgfX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwia2JxLXBpcGUtdG9vbHRpcF9fdmFsdWUga2JxLXRleHQtY29tcGFjdFwiPnt7IGZvcm1hdHRlZFZhbHVlIH19PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule, UntypedFormControl } from '@angular/forms';
|
|
4
|
+
import { KbqBadgeModule } from '@koobiq/components/badge';
|
|
5
|
+
import { KbqButtonModule } from '@koobiq/components/button';
|
|
6
|
+
import { KbqDividerModule } from '@koobiq/components/divider';
|
|
7
|
+
import { KbqFormFieldModule } from '@koobiq/components/form-field';
|
|
8
|
+
import { KbqIcon } from '@koobiq/components/icon';
|
|
9
|
+
import { KbqInputModule } from '@koobiq/components/input';
|
|
10
|
+
import { KbqSelect, KbqSelectModule } from '@koobiq/components/select';
|
|
11
|
+
import { KbqTitleModule } from '@koobiq/components/title';
|
|
12
|
+
import { merge, of } from 'rxjs';
|
|
13
|
+
import { map } from 'rxjs/operators';
|
|
14
|
+
import { KbqBasePipe } from './base-pipe';
|
|
15
|
+
import { KbqPipeButton } from './pipe-button';
|
|
16
|
+
import { KbqPipeState } from './pipe-state';
|
|
17
|
+
import { KbqPipeTitleDirective } from './pipe-title';
|
|
18
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
import * as i1 from "@angular/forms";
|
|
20
|
+
import * as i2 from "@koobiq/components/button";
|
|
21
|
+
import * as i3 from "@koobiq/components/select";
|
|
22
|
+
import * as i4 from "@koobiq/components/core";
|
|
23
|
+
import * as i5 from "@koobiq/components/badge";
|
|
24
|
+
import * as i6 from "@koobiq/components/form-field";
|
|
25
|
+
import * as i7 from "@koobiq/components/input";
|
|
26
|
+
export class KbqPipeMultiSelectComponent extends KbqBasePipe {
|
|
27
|
+
constructor() {
|
|
28
|
+
super(...arguments);
|
|
29
|
+
this.searchControl = new UntypedFormControl();
|
|
30
|
+
this.compareByValue = (o1, o2) => o1?.id === o2?.id;
|
|
31
|
+
}
|
|
32
|
+
get selected() {
|
|
33
|
+
return this.data.value;
|
|
34
|
+
}
|
|
35
|
+
get isEmpty() {
|
|
36
|
+
return !this.data.value?.length;
|
|
37
|
+
}
|
|
38
|
+
ngOnInit() {
|
|
39
|
+
this.filteredOptions = merge(of(this.values), this.searchControl.valueChanges.pipe(map((value) => this.getFilteredOptions(value))));
|
|
40
|
+
}
|
|
41
|
+
onSelect(item) {
|
|
42
|
+
this.data.value = item;
|
|
43
|
+
this.filterBar?.onChangePipe.emit(this.data);
|
|
44
|
+
this.stateChanges.next();
|
|
45
|
+
}
|
|
46
|
+
onClear() {
|
|
47
|
+
this.data.value = [];
|
|
48
|
+
this.filterBar?.onChangePipe.emit(this.data);
|
|
49
|
+
this.stateChanges.next();
|
|
50
|
+
}
|
|
51
|
+
open() {
|
|
52
|
+
this.select.open();
|
|
53
|
+
}
|
|
54
|
+
getFilteredOptions(value) {
|
|
55
|
+
return value
|
|
56
|
+
? this.values.filter((item) => item.name.toLowerCase().includes(value.toLowerCase()))
|
|
57
|
+
: this.values;
|
|
58
|
+
}
|
|
59
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqPipeMultiSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KbqPipeMultiSelectComponent, isStandalone: true, selector: "kbq-pipe-multi-select", providers: [
|
|
61
|
+
{
|
|
62
|
+
provide: KbqBasePipe,
|
|
63
|
+
useExisting: this
|
|
64
|
+
}
|
|
65
|
+
], viewQueries: [{ propertyName: "select", first: true, predicate: KbqSelect, descendants: true }], usesInheritance: true, ngImport: i0, template: "<kbq-select\n #select=\"kbqSelect\"\n multiple\n [compareWith]=\"compareByValue\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n [panelClass]=\"'kbq-pipe-multiselect__panel'\"\n [tabIndex]=\"-1\"\n [value]=\"selected\"\n (selectionChange)=\"onSelect($event.value)\"\n>\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n @if (select.triggerValues.length === 1) {\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!select.triggerValue\">\n {{ select.triggerValue }}\n </span>\n } @else if (select.triggerValues.length > 1) {\n <kbq-badge [badgeColor]=\"'contrast'\" [compact]=\"true\">\n {{ select.triggerValues.length }}\n </kbq-badge>\n }\n </button>\n @if (data.search) {\n <kbq-form-field kbqFormFieldWithoutBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input kbqInput placeholder=\"Search\" type=\"text\" [formControl]=\"searchControl\" />\n <kbq-cleaner />\n </kbq-form-field>\n }\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n @for (item of filteredOptions | async; track item) {\n <kbq-option [value]=\"item\">\n @if (isTemplateRef(valueTemplate)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(valueTemplate)\"\n [ngTemplateOutletContext]=\"{ $implicit, option: item }\"\n />\n } @else {\n {{ item.name }}\n }\n </kbq-option>\n }\n</kbq-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe__multiselect .kbq-pipe__value{margin-left:var(--kbq-size-xxs)}.kbq-pipe__multiselect .kbq-badge{align-self:center;margin-left:var(--kbq-size-xs)}.kbq-pipe-multiselect__panel .kbq-select__content{max-height:404px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: KbqButtonModule }, { kind: "component", type: i2.KbqButton, selector: "[kbq-button]", inputs: ["color", "tabIndex", "kbqStyle", "disabled"] }, { kind: "directive", type: i2.KbqButtonCssStyler, selector: "[kbq-button]" }, { kind: "ngmodule", type: KbqDividerModule }, { kind: "ngmodule", type: KbqSelectModule }, { kind: "component", type: i3.KbqSelect, selector: "kbq-select", inputs: ["disabled", "tabIndex", "hiddenItemsText", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "hasBackdrop", "placeholder", "required", "multiple", "compareWith", "panelWidth", "panelMinWidth", "value", "id", "hiddenItemsTextFormatter"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["kbqSelect"] }, { kind: "directive", type: i3.KbqOptionTooltip, selector: "kbq-option" }, { kind: "component", type: i4.KbqOption, selector: "kbq-option", inputs: ["value", "userSelect", "showCheckbox", "disabled"], outputs: ["onSelectionChange"], exportAs: ["kbqOption"] }, { kind: "directive", type: i4.KbqSelectSearch, selector: "[kbqSelectSearch]", exportAs: ["kbqSelectSearch"] }, { kind: "directive", type: i4.KbqSelectMatcher, selector: "kbq-select-matcher, [kbq-select-matcher]" }, { kind: "directive", type: i4.KbqSelectSearchEmptyResult, selector: "[kbq-select-search-empty-result]", exportAs: ["kbqSelectSearchEmptyResult"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: KbqPipeState, selector: "[kbqPipeState]", inputs: ["kbqPipeState"] }, { kind: "ngmodule", type: KbqBadgeModule }, { kind: "component", type: i5.KbqBadge, selector: "kbq-badge", inputs: ["compact", "outline", "badgeColor"] }, { kind: "directive", type: i5.KbqBadgeCssStyler, selector: "kbq-badge" }, { kind: "component", type: KbqPipeButton, selector: "kbq-pipe-button" }, { kind: "ngmodule", type: KbqTitleModule }, { kind: "directive", type: KbqPipeTitleDirective, selector: "[kbqPipeTitle]", inputs: ["kbqPipeTitle"], exportAs: ["kbqPipeTitle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: KbqFormFieldModule }, { kind: "component", type: i6.KbqFormField, selector: "kbq-form-field", inputs: ["color"], exportAs: ["kbqFormField"] }, { kind: "directive", type: i6.KbqFormFieldWithoutBorders, selector: "kbq-form-field[kbqFormFieldWithoutBorders]", exportAs: ["kbqFormFieldWithoutBorders"] }, { kind: "directive", type: i6.KbqPrefix, selector: "[kbqPrefix]" }, { kind: "component", type: i6.KbqCleaner, selector: "kbq-cleaner", exportAs: ["kbqCleaner"] }, { kind: "directive", type: i6.KbqValidateDirective, selector: " input[kbqInput], input[kbqNumberInput], input[kbqInputPassword], input[kbqTimepicker], input[kbqDatepicker], textarea[kbqTextarea], kbq-select, kbq-tree-select, kbq-tag-list ", exportAs: ["KbqValidate"] }, { kind: "directive", type: i6.KbqTrim, selector: "[kbqInput], [kbqTextarea]", exportAs: ["KbqTrim"] }, { kind: "component", type: KbqIcon, selector: "[kbq-icon]", inputs: ["color", "small", "autoColor", "kbq-icon"] }, { kind: "ngmodule", type: KbqInputModule }, { kind: "directive", type: i7.KbqInput, selector: "input[kbqInput],input[kbqNumberInput]", inputs: ["errorStateMatcher", "placeholder", "disabled", "id", "required", "type", "value"], exportAs: ["kbqInput"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
66
|
+
}
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqPipeMultiSelectComponent, decorators: [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{ standalone: true, selector: 'kbq-pipe-multi-select', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
|
70
|
+
{
|
|
71
|
+
provide: KbqBasePipe,
|
|
72
|
+
useExisting: this
|
|
73
|
+
}
|
|
74
|
+
], imports: [
|
|
75
|
+
FormsModule,
|
|
76
|
+
KbqButtonModule,
|
|
77
|
+
KbqDividerModule,
|
|
78
|
+
KbqSelectModule,
|
|
79
|
+
NgClass,
|
|
80
|
+
KbqPipeState,
|
|
81
|
+
KbqBadgeModule,
|
|
82
|
+
KbqPipeButton,
|
|
83
|
+
KbqTitleModule,
|
|
84
|
+
KbqPipeTitleDirective,
|
|
85
|
+
NgTemplateOutlet,
|
|
86
|
+
KbqFormFieldModule,
|
|
87
|
+
KbqIcon,
|
|
88
|
+
KbqInputModule,
|
|
89
|
+
ReactiveFormsModule,
|
|
90
|
+
AsyncPipe
|
|
91
|
+
], template: "<kbq-select\n #select=\"kbqSelect\"\n multiple\n [compareWith]=\"compareByValue\"\n [disabled]=\"data.disabled\"\n [kbqPipeTitle]=\"pipeTooltip\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n [panelClass]=\"'kbq-pipe-multiselect__panel'\"\n [tabIndex]=\"-1\"\n [value]=\"selected\"\n (selectionChange)=\"onSelect($event.value)\"\n>\n <button\n kbq-button\n kbq-select-matcher\n [disabled]=\"data.disabled\"\n [kbqPipeState]=\"data\"\n [ngClass]=\"{ 'kbq-active': select.panelOpen }\"\n >\n <span #kbqTitleText class=\"kbq-pipe__name\">{{ data.name }}</span>\n @if (select.triggerValues.length === 1) {\n <span #kbqTitleText class=\"kbq-pipe__value\" [class.kbq-pipe__value_empty]=\"!select.triggerValue\">\n {{ select.triggerValue }}\n </span>\n } @else if (select.triggerValues.length > 1) {\n <kbq-badge [badgeColor]=\"'contrast'\" [compact]=\"true\">\n {{ select.triggerValues.length }}\n </kbq-badge>\n }\n </button>\n @if (data.search) {\n <kbq-form-field kbqFormFieldWithoutBorders kbqSelectSearch>\n <i kbq-icon=\"kbq-magnifying-glass_16\" kbqPrefix></i>\n <input kbqInput placeholder=\"Search\" type=\"text\" [formControl]=\"searchControl\" />\n <kbq-cleaner />\n </kbq-form-field>\n }\n\n <div kbq-select-search-empty-result>{{ localeData.pipe.emptySearchResult }}</div>\n\n @for (item of filteredOptions | async; track item) {\n <kbq-option [value]=\"item\">\n @if (isTemplateRef(valueTemplate)) {\n <ng-container\n [ngTemplateOutlet]=\"$any(valueTemplate)\"\n [ngTemplateOutletContext]=\"{ $implicit, option: item }\"\n />\n } @else {\n {{ item.name }}\n }\n </kbq-option>\n }\n</kbq-select>\n\n@if (showRemoveButton) {\n <kbq-pipe-button />\n}\n\n<ng-template #pipeTooltip>\n <div class=\"kbq-pipe-tooltip__name kbq-text-compact\">{{ data.name }}</div>\n <div class=\"kbq-pipe-tooltip__value kbq-text-compact\">{{ select.triggerValue }}</div>\n</ng-template>\n", styles: ["@keyframes kbq-progress{0%{background-position:0 0}to{background-position:64px 0}}.kbq-progress{position:relative}.kbq-progress:after{content:\"\";position:absolute;border-radius:inherit;inset:0;background:linear-gradient(135deg,#0000000a 12px,#ffffff1a 12px 22px,#0000000a 22px 34px,#ffffff1a 34px) repeat;background-size:32px 32px;animation:kbq-progress 1s linear infinite}.kbq-group{display:flex;flex-direction:row}.kbq-group .kbq-group_justified>.kbq-group-item{width:100%}.kbq-group .kbq-group-item+.kbq-group-item{margin-left:calc(-1 * var(--kbq-size-border-width))}.kbq-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-top-right-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-bottom-left-radius:0;border-top-left-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group{display:flex;flex-direction:column}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:first-child:not(:last-child)>.kbq-form-field__container{border-bottom-right-radius:0;border-bottom-left-radius:0}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-left-radius:var(--kbq-size-border-radius)}.kbq-vertical-group>.kbq-group-item:last-child:not(:first-child)>.kbq-form-field__container{border-top-right-radius:0;border-top-left-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child){border-radius:0}.kbq-vertical-group>.kbq-group-item:not(:first-child):not(:last-child)>.kbq-form-field__container{border-radius:0}.kbq-vertical-group .kbq-group-item+.kbq-group-item{margin-top:calc(-1 * var(--kbq-size-border-width))}.kbq-truncate-line{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kbq-no-select{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.kbq-pipe{display:flex;flex-direction:row;max-height:32px}.kbq-pipe .kbq-select .kbq-select__trigger{height:unset}.kbq-pipe .kbq-button-wrapper{max-width:320px}.kbq-pipe .kbq-pipe__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;color:var(--kbq-foreground-contrast-secondary)}.kbq-pipe .kbq-pipe__value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto}.kbq-pipe .kbq-pipe__value:not(.kbq-pipe__value_empty){margin-left:4px}.kbq-pipe .kbq-pipe__separator{z-index:1;margin-left:-1px;margin-right:0;height:12px;align-self:center;color:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-select:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after,.kbq-pipe .kbq-button:not(:hover,.kbq-active)+.kbq-pipe-button:not(:hover,.kbq-active):after{content:\"\";position:absolute;left:0;top:10px;width:1px;height:12px;background:var(--kbq-line-contrast-less)}.kbq-pipe .kbq-button.cdk-keyboard-focused{z-index:1}.kbq-pipe.kbq-pipe_disabled .kbq-pipe__name,.kbq-pipe.kbq-pipe_disabled .kbq-pipe__value{color:var(--kbq-states-foreground-disabled)}.kbq-pipe.kbq-pipe_removable .kbq-button,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button{border-bottom-right-radius:unset;border-top-right-radius:unset;border-right:none}.kbq-pipe.kbq-pipe_removable .kbq-button.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button.cdk-keyboard-focused:after{content:\"\";position:absolute;right:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe.kbq-pipe_removable .kbq-button-icon,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon{border-bottom-left-radius:unset;border-top-left-radius:unset;border-left:none}.kbq-pipe.kbq-pipe_removable .kbq-button-icon.cdk-keyboard-focused:after,.kbq-pipe.kbq-pipe_cleanable:not(.kbq-pipe_empty) .kbq-button-icon.cdk-keyboard-focused:after{content:\"\";position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--kbq-states-line-focus-theme)}.kbq-pipe-tooltip__name{color:var(--kbq-foreground-white-secondary)}.kbq-pipe-tooltip__value{color:var(--kbq-foreground-white)}\n", ".kbq-pipe__multiselect .kbq-pipe__value{margin-left:var(--kbq-size-xxs)}.kbq-pipe__multiselect .kbq-badge{align-self:center;margin-left:var(--kbq-size-xs)}.kbq-pipe-multiselect__panel .kbq-select__content{max-height:404px}\n"] }]
|
|
92
|
+
}], propDecorators: { select: [{
|
|
93
|
+
type: ViewChild,
|
|
94
|
+
args: [KbqSelect]
|
|
95
|
+
}] } });
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS1tdWx0aS1zZWxlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ZpbHRlci1iYXIvcGlwZXMvcGlwZS1tdWx0aS1zZWxlY3QudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2ZpbHRlci1iYXIvcGlwZXMvcGlwZS1tdWx0aS1zZWxlY3QuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLEtBQUssRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixD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SSxhQUMxQjt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsV0FBVzs0QkFDcEIsV0FBVyxFQUFFLElBQUk7eUJBQ3BCO3FCQUNKLFdBQ1E7d0JBQ0wsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixPQUFPO3dCQUNQLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsT0FBTzt3QkFDUCxjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsU0FBUztxQkFDWjs4QkFNcUIsTUFBTTtzQkFBM0IsU0FBUzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NsYXNzLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEticUJhZGdlTW9kdWxlIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2JhZGdlJztcbmltcG9ydCB7IEticUJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgS2JxRGl2aWRlck1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9kaXZpZGVyJztcbmltcG9ydCB7IEticUZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEticUljb24gfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBLYnFJbnB1dE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9pbnB1dCc7XG5pbXBvcnQgeyBLYnFTZWxlY3QsIEticVNlbGVjdE1vZHVsZSB9IGZyb20gJ0Brb29iaXEvY29tcG9uZW50cy9zZWxlY3QnO1xuaW1wb3J0IHsgS2JxVGl0bGVNb2R1bGUgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvdGl0bGUnO1xuaW1wb3J0IHsgbWVyZ2UsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBLYnFTZWxlY3RWYWx1ZSB9IGZyb20gJy4uL2ZpbHRlci1iYXIudHlwZXMnO1xuaW1wb3J0IHsgS2JxQmFzZVBpcGUgfSBmcm9tICcuL2Jhc2UtcGlwZSc7XG5pbXBvcnQgeyBLYnFQaXBlQnV0dG9uIH0gZnJvbSAnLi9waXBlLWJ1dHRvbic7XG5pbXBvcnQgeyBLYnFQaXBlU3RhdGUgfSBmcm9tICcuL3BpcGUtc3RhdGUnO1xuaW1wb3J0IHsgS2JxUGlwZVRpdGxlRGlyZWN0aXZlIH0gZnJvbSAnLi9waXBlLXRpdGxlJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ2ticS1waXBlLW11bHRpLXNlbGVjdCcsXG4gICAgdGVtcGxhdGVVcmw6ICdwaXBlLW11bHRpLXNlbGVjdC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnYmFzZS1waXBlLnNjc3MnLCAncGlwZS1tdWx0aXNlbGVjdC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogS2JxQmFzZVBpcGUsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogdGhpc1xuICAgICAgICB9XG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBLYnFCdXR0b25Nb2R1bGUsXG4gICAgICAgIEticURpdmlkZXJNb2R1bGUsXG4gICAgICAgIEticVNlbGVjdE1vZHVsZSxcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgS2JxUGlwZVN0YXRlLFxuICAgICAgICBLYnFCYWRnZU1vZHVsZSxcbiAgICAgICAgS2JxUGlwZUJ1dHRvbixcbiAgICAgICAgS2JxVGl0bGVNb2R1bGUsXG4gICAgICAgIEticVBpcGVUaXRsZURpcmVjdGl2ZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgS2JxRm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBLYnFJY29uLFxuICAgICAgICBLYnFJbnB1dE1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgQXN5bmNQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBLYnFQaXBlTXVsdGlTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBLYnFCYXNlUGlwZTxLYnFTZWxlY3RWYWx1ZVtdPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgc2VhcmNoQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xuICAgIGZpbHRlcmVkT3B0aW9uczogT2JzZXJ2YWJsZTxhbnlbXT47XG5cbiAgICBAVmlld0NoaWxkKEticVNlbGVjdCkgc2VsZWN0OiBLYnFTZWxlY3Q7XG5cbiAgICBnZXQgc2VsZWN0ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGEudmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5kYXRhLnZhbHVlPy5sZW5ndGg7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gbWVyZ2UoXG4gICAgICAgICAgICBvZih0aGlzLnZhbHVlcyksXG4gICAgICAgICAgICB0aGlzLnNlYXJjaENvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUobWFwKCh2YWx1ZSkgPT4gdGhpcy5nZXRGaWx0ZXJlZE9wdGlvbnModmFsdWUpKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdChpdGVtOiBLYnFTZWxlY3RWYWx1ZVtdKSB7XG4gICAgICAgIHRoaXMuZGF0YS52YWx1ZSA9IGl0ZW07XG4gICAgICAgIHRoaXMuZmlsdGVyQmFyPy5vbkNoYW5nZVBpcGUuZW1pdCh0aGlzLmRhdGEpO1xuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfVxuXG4gICAgb25DbGVhcigpIHtcbiAgICAgICAgdGhpcy5kYXRhLnZhbHVlID0gW107XG5cbiAgICAgICAgdGhpcy5maWx0ZXJCYXI/Lm9uQ2hhbmdlUGlwZS5lbWl0KHRoaXMuZGF0YSk7XG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9XG5cbiAgICBjb21wYXJlQnlWYWx1ZSA9IChvMTogYW55LCBvMjogYW55KTogYm9vbGVhbiA9PiBvMT8uaWQgPT09IG8yPy5pZDtcblxuICAgIG92ZXJyaWRlIG9wZW4oKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0Lm9wZW4oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEZpbHRlcmVkT3B0aW9ucyh2YWx1ZTogc3RyaW5nKTogS2JxU2VsZWN0VmFsdWVbXSB7XG4gICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgPyB0aGlzLnZhbHVlcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHZhbHVlLnRvTG93ZXJDYXNlKCkpKVxuICAgICAgICAgICAgOiB0aGlzLnZhbHVlcztcbiAgICB9XG59XG4iLCI8a2JxLXNlbGVjdFxuICAgICNzZWxlY3Q9XCJrYnFTZWxlY3RcIlxuICAgIG11bHRpcGxlXG4gICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVCeVZhbHVlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGF0YS5kaXNhYmxlZFwiXG4gICAgW2ticVBpcGVUaXRsZV09XCJwaXBlVG9vbHRpcFwiXG4gICAgW25nQ2xhc3NdPVwieyAna2JxLWFjdGl2ZSc6IHNlbGVjdC5wYW5lbE9wZW4gfVwiXG4gICAgW3BhbmVsQ2xhc3NdPVwiJ2ticS1waXBlLW11bHRpc2VsZWN0X19wYW5lbCdcIlxuICAgIFt0YWJJbmRleF09XCItMVwiXG4gICAgW3ZhbHVlXT1cInNlbGVjdGVkXCJcbiAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0KCRldmVudC52YWx1ZSlcIlxuPlxuICAgIDxidXR0b25cbiAgICAgICAga2JxLWJ1dHRvblxuICAgICAgICBrYnEtc2VsZWN0LW1hdGNoZXJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRhdGEuZGlzYWJsZWRcIlxuICAgICAgICBba2JxUGlwZVN0YXRlXT1cImRhdGFcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdrYnEtYWN0aXZlJzogc2VsZWN0LnBhbmVsT3BlbiB9XCJcbiAgICA+XG4gICAgICAgIDxzcGFuICNrYnFUaXRsZVRleHQgY2xhc3M9XCJrYnEtcGlwZV9fbmFtZVwiPnt7IGRhdGEubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgQGlmIChzZWxlY3QudHJpZ2dlclZhbHVlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIDxzcGFuICNrYnFUaXRsZVRleHQgY2xhc3M9XCJrYnEtcGlwZV9fdmFsdWVcIiBbY2xhc3Mua2JxLXBpcGVfX3ZhbHVlX2VtcHR5XT1cIiFzZWxlY3QudHJpZ2dlclZhbHVlXCI+XG4gICAgICAgICAgICAgICAge3sgc2VsZWN0LnRyaWdnZXJWYWx1ZSB9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICB9IEBlbHNlIGlmIChzZWxlY3QudHJpZ2dlclZhbHVlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICA8a2JxLWJhZGdlIFtiYWRnZUNvbG9yXT1cIidjb250cmFzdCdcIiBbY29tcGFjdF09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAge3sgc2VsZWN0LnRyaWdnZXJWYWx1ZXMubGVuZ3RoIH19XG4gICAgICAgICAgICA8L2ticS1iYWRnZT5cbiAgICAgICAgfVxuICAgIDwvYnV0dG9uPlxuICAgIEBpZiAoZGF0YS5zZWFyY2gpIHtcbiAgICAgICAgPGticS1mb3JtLWZpZWxkIGticUZvcm1GaWVsZFdpdGhvdXRCb3JkZXJzIGticVNlbGVjdFNlYXJjaD5cbiAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLW1hZ25pZnlpbmctZ2xhc3NfMTZcIiBrYnFQcmVmaXg+PC9pPlxuICAgICAgICAgICAgPGlucHV0IGticUlucHV0IHBsYWNlaG9sZGVyPVwiU2VhcmNoXCIgdHlwZT1cInRleHRcIiBbZm9ybUNvbnRyb2xdPVwic2VhcmNoQ29udHJvbFwiIC8+XG4gICAgICAgICAgICA8a2JxLWNsZWFuZXIgLz5cbiAgICAgICAgPC9rYnEtZm9ybS1maWVsZD5cbiAgICB9XG5cbiAgICA8ZGl2IGticS1zZWxlY3Qtc2VhcmNoLWVtcHR5LXJlc3VsdD57eyBsb2NhbGVEYXRhLnBpcGUuZW1wdHlTZWFyY2hSZXN1bHQgfX08L2Rpdj5cblxuICAgIEBmb3IgKGl0ZW0gb2YgZmlsdGVyZWRPcHRpb25zIHwgYXN5bmM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgPGticS1vcHRpb24gW3ZhbHVlXT1cIml0ZW1cIj5cbiAgICAgICAgICAgIEBpZiAoaXNUZW1wbGF0ZVJlZih2YWx1ZVRlbXBsYXRlKSkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueSh2YWx1ZVRlbXBsYXRlKVwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdCwgb3B0aW9uOiBpdGVtIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9rYnEtb3B0aW9uPlxuICAgIH1cbjwva2JxLXNlbGVjdD5cblxuQGlmIChzaG93UmVtb3ZlQnV0dG9uKSB7XG4gICAgPGticS1waXBlLWJ1dHRvbiAvPlxufVxuXG48bmctdGVtcGxhdGUgI3BpcGVUb29sdGlwPlxuICAgIDxkaXYgY2xhc3M9XCJrYnEtcGlwZS10b29sdGlwX19uYW1lIGticS10ZXh0LWNvbXBhY3RcIj57eyBkYXRhLm5hbWUgfX08L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwia2JxLXBpcGUtdG9vbHRpcF9fdmFsdWUga2JxLXRleHQtY29tcGFjdFwiPnt7IHNlbGVjdC50cmlnZ2VyVmFsdWUgfX08L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|