ngx-tethys 16.1.6 → 16.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/cascader/cascader-li.component.d.ts +2 -1
  3. package/cascader/cascader.component.d.ts +13 -3
  4. package/cascader/types.d.ts +2 -0
  5. package/date-picker/abstract-picker.component.d.ts +11 -2
  6. package/date-picker/abstract-picker.directive.d.ts +1 -0
  7. package/date-picker/lib/popups/date-popup.component.d.ts +6 -2
  8. package/date-picker/standard-types.d.ts +7 -0
  9. package/esm2022/cascader/cascader-li.component.mjs +15 -6
  10. package/esm2022/cascader/cascader.component.mjs +93 -35
  11. package/esm2022/cascader/types.mjs +1 -1
  12. package/esm2022/date-picker/abstract-picker.component.mjs +15 -2
  13. package/esm2022/date-picker/abstract-picker.directive.mjs +6 -1
  14. package/esm2022/date-picker/date-picker.component.mjs +3 -3
  15. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +21 -2
  16. package/esm2022/date-picker/month-picker.component.mjs +3 -3
  17. package/esm2022/date-picker/range-picker.component.mjs +3 -3
  18. package/esm2022/date-picker/standard-types.mjs +1 -1
  19. package/esm2022/date-picker/week-picker.component.mjs +3 -3
  20. package/esm2022/date-picker/year-picker.component.mjs +3 -3
  21. package/esm2022/select/custom-select/custom-select.component.mjs +13 -4
  22. package/esm2022/version.mjs +2 -2
  23. package/fesm2022/ngx-tethys-cascader.mjs +98 -32
  24. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  25. package/fesm2022/ngx-tethys-date-picker.mjs +49 -12
  26. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  27. package/fesm2022/ngx-tethys-select.mjs +12 -3
  28. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  29. package/fesm2022/ngx-tethys.mjs +1 -1
  30. package/fesm2022/ngx-tethys.mjs.map +1 -1
  31. package/package.json +1 -1
  32. package/schematics/version.d.ts +1 -1
  33. package/schematics/version.js +1 -1
package/CHANGELOG.md CHANGED
@@ -2,6 +2,30 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [16.1.8](https://github.com/atinc/ngx-tethys/compare/16.1.7...16.1.8) (2023-11-02)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **cascader:** reset selectionModel when writeValue #INFR-10101 ([#2883](https://github.com/atinc/ngx-tethys/issues/2883)) ([56496fd](https://github.com/atinc/ngx-tethys/commit/56496fd31cc62bd113543f34cb2bad2b2f0f5d6d)), closes [#INFR-10101](https://github.com/atinc/ngx-tethys/issues/INFR-10101)
11
+
12
+
13
+ ### Features
14
+
15
+ * **date-picker:** add event thyDateChange and deprecated shortcutValueChange #INFR-9829 ([#2865](https://github.com/atinc/ngx-tethys/issues/2865)) ([adf0f6b](https://github.com/atinc/ngx-tethys/commit/adf0f6b6fb05993ad811b62a13d64d9da86e46ee)), closes [#INFR-9829](https://github.com/atinc/ngx-tethys/issues/INFR-9829)
16
+
17
+
18
+
19
+ ## [16.1.7](https://github.com/atinc/ngx-tethys/compare/16.1.6...16.1.7) (2023-11-02)
20
+
21
+
22
+ ### Features
23
+
24
+ * **cascader:** search and select all nodes when isOnlySelectLeaf is false #INFR-10101 ([#2873](https://github.com/atinc/ngx-tethys/issues/2873)) ([f0d6751](https://github.com/atinc/ngx-tethys/commit/f0d67511309a092e9d7364009c9082d471e58517)), closes [#INFR-10101](https://github.com/atinc/ngx-tethys/issues/INFR-10101)
25
+ * **select:** #INFR-10094 dispatch toggle select panel not close when thyShowSearch is true ([#2872](https://github.com/atinc/ngx-tethys/issues/2872)) ([10c2ec1](https://github.com/atinc/ngx-tethys/commit/10c2ec19d8d6ff0024283d8a4f6c3a243eac717b))
26
+
27
+
28
+
5
29
  ## [16.1.6](https://github.com/atinc/ngx-tethys/compare/16.2.0-next...16.1.6) (2023-10-27)
6
30
 
7
31
 
@@ -11,6 +11,7 @@ export declare class ThyCascaderOptionComponent implements OnInit {
11
11
  class: string;
12
12
  item: boolean;
13
13
  active: boolean;
14
+ selected: boolean;
14
15
  get disabled(): boolean;
15
16
  get expand(): boolean;
16
17
  labelProperty: string;
@@ -19,5 +20,5 @@ export declare class ThyCascaderOptionComponent implements OnInit {
19
20
  ngOnInit(): void;
20
21
  toggleOption(value: boolean): void;
21
22
  static ɵfac: i0.ɵɵFactoryDeclaration<ThyCascaderOptionComponent, never>;
22
- static ɵcmp: i0.ɵɵComponentDeclaration<ThyCascaderOptionComponent, "[thy-cascader-option]", never, { "option": { "alias": "option"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "isOnlySelectLeaf": { "alias": "isOnlySelectLeaf"; "required": false; }; "active": { "alias": "active"; "required": false; }; "labelProperty": { "alias": "labelProperty"; "required": false; }; }, { "toggleSelectChange": "toggleSelectChange"; }, never, never, true, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<ThyCascaderOptionComponent, "[thy-cascader-option]", never, { "option": { "alias": "option"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "isOnlySelectLeaf": { "alias": "isOnlySelectLeaf"; "required": false; }; "active": { "alias": "active"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "labelProperty": { "alias": "labelProperty"; "required": false; }; }, { "toggleSelectChange": "toggleSelectChange"; }, never, never, true, never>;
23
24
  }
@@ -114,7 +114,8 @@ export declare class ThyCascaderComponent extends TabIndexDisabledControlValueAc
114
114
  */
115
115
  thyMaxTagCount: number;
116
116
  /**
117
- * @private 当多选时是否只能选择叶子项, 暂无实现
117
+ * 是否仅允许选择叶子项
118
+ * @default true
118
119
  */
119
120
  thyIsOnlySelectLeaf: boolean;
120
121
  /**
@@ -150,6 +151,10 @@ export declare class ThyCascaderComponent extends TabIndexDisabledControlValueAc
150
151
  * 清空选项时触发
151
152
  */
152
153
  thyClear: EventEmitter<void>;
154
+ /**
155
+ * 下拉选项展开和折叠状态事件
156
+ */
157
+ thyExpandStatusChange: EventEmitter<boolean>;
153
158
  cascaderOptions: QueryList<ElementRef>;
154
159
  cascaderOptionContainers: QueryList<ElementRef>;
155
160
  cdkConnectedOverlay: CdkConnectedOverlay;
@@ -196,6 +201,8 @@ export declare class ThyCascaderComponent extends TabIndexDisabledControlValueAc
196
201
  * 会导致恢复级联状态再变为搜索状态
197
202
  */
198
203
  private isSelectingSearchState;
204
+ private flattenOptions;
205
+ private leafNodes;
199
206
  ngOnInit(): void;
200
207
  private initSelectionModel;
201
208
  private initPosition;
@@ -211,6 +218,7 @@ export declare class ThyCascaderComponent extends TabIndexDisabledControlValueAc
211
218
  getOptionLabel(option: ThyCascaderOption): any;
212
219
  getOptionValue(option: ThyCascaderOption): any;
213
220
  isActivatedOption(option: ThyCascaderOption, index: number): boolean;
221
+ isSelectedOption(option: ThyCascaderOption, index: number): boolean;
214
222
  attached(): void;
215
223
  private scrollActiveElementIntoView;
216
224
  private findOption;
@@ -230,7 +238,7 @@ export declare class ThyCascaderComponent extends TabIndexDisabledControlValueAc
230
238
  private isHoverExpandTriggerAction;
231
239
  toggleClick($event: Event): void;
232
240
  toggleHover($event: Event): void;
233
- clickOption(option: ThyCascaderOption, index: number, event: Event): void;
241
+ clickOption(option: ThyCascaderOption, index: number, event: Event | boolean): void;
234
242
  mouseoverOption(option: ThyCascaderOption, index: number, event: Event): void;
235
243
  mouseleaveMenu(event: Event): void;
236
244
  onBlur(event?: FocusEvent): void;
@@ -255,10 +263,12 @@ export declare class ThyCascaderComponent extends TabIndexDisabledControlValueAc
255
263
  trackByFn(index: number, item: ThyCascaderOption): any;
256
264
  searchFilter(searchText: string): void;
257
265
  private initSearch;
266
+ private forEachColumns;
267
+ private setSearchResultList;
258
268
  private searchInLocal;
259
269
  private resetSearch;
260
270
  selectSearchResult(selectOptionData: ThyCascaderSearchOption): void;
261
271
  ngOnDestroy(): void;
262
272
  static ɵfac: i0.ɵɵFactoryDeclaration<ThyCascaderComponent, never>;
263
- static ɵcmp: i0.ɵɵComponentDeclaration<ThyCascaderComponent, "thy-cascader,[thy-cascader]", never, { "thyValueProperty": { "alias": "thyValueProperty"; "required": false; }; "thyLabelProperty": { "alias": "thyLabelProperty"; "required": false; }; "thyPlaceholder": { "alias": "thyPlaceholder"; "required": false; }; "thySize": { "alias": "thySize"; "required": false; }; "thyOptions": { "alias": "thyOptions"; "required": false; }; "thyChangeOn": { "alias": "thyChangeOn"; "required": false; }; "thyChangeOnSelect": { "alias": "thyChangeOnSelect"; "required": false; }; "thyShowInput": { "alias": "thyShowInput"; "required": false; }; "thyLabelRender": { "alias": "thyLabelRender"; "required": false; }; "thyLoadData": { "alias": "thyLoadData"; "required": false; }; "thyTriggerAction": { "alias": "thyTriggerAction"; "required": false; }; "thyExpandTriggerAction": { "alias": "thyExpandTriggerAction"; "required": false; }; "thyMenuStyle": { "alias": "thyMenuStyle"; "required": false; }; "thyMenuClassName": { "alias": "thyMenuClassName"; "required": false; }; "thyColumnClassName": { "alias": "thyColumnClassName"; "required": false; }; "thyDisabled": { "alias": "thyDisabled"; "required": false; }; "thyEmptyStateText": { "alias": "thyEmptyStateText"; "required": false; }; "thyMultiple": { "alias": "thyMultiple"; "required": false; }; "thyMaxTagCount": { "alias": "thyMaxTagCount"; "required": false; }; "thyIsOnlySelectLeaf": { "alias": "thyIsOnlySelectLeaf"; "required": false; }; "thyShowSearch": { "alias": "thyShowSearch"; "required": false; }; }, { "thyChange": "thyChange"; "thySelectionChange": "thySelectionChange"; "thySelect": "thySelect"; "thyDeselect": "thyDeselect"; "thyClear": "thyClear"; }, never, never, true, never>;
273
+ static ɵcmp: i0.ɵɵComponentDeclaration<ThyCascaderComponent, "thy-cascader,[thy-cascader]", never, { "thyValueProperty": { "alias": "thyValueProperty"; "required": false; }; "thyLabelProperty": { "alias": "thyLabelProperty"; "required": false; }; "thyPlaceholder": { "alias": "thyPlaceholder"; "required": false; }; "thySize": { "alias": "thySize"; "required": false; }; "thyOptions": { "alias": "thyOptions"; "required": false; }; "thyChangeOn": { "alias": "thyChangeOn"; "required": false; }; "thyChangeOnSelect": { "alias": "thyChangeOnSelect"; "required": false; }; "thyShowInput": { "alias": "thyShowInput"; "required": false; }; "thyLabelRender": { "alias": "thyLabelRender"; "required": false; }; "thyLoadData": { "alias": "thyLoadData"; "required": false; }; "thyTriggerAction": { "alias": "thyTriggerAction"; "required": false; }; "thyExpandTriggerAction": { "alias": "thyExpandTriggerAction"; "required": false; }; "thyMenuStyle": { "alias": "thyMenuStyle"; "required": false; }; "thyMenuClassName": { "alias": "thyMenuClassName"; "required": false; }; "thyColumnClassName": { "alias": "thyColumnClassName"; "required": false; }; "thyDisabled": { "alias": "thyDisabled"; "required": false; }; "thyEmptyStateText": { "alias": "thyEmptyStateText"; "required": false; }; "thyMultiple": { "alias": "thyMultiple"; "required": false; }; "thyMaxTagCount": { "alias": "thyMaxTagCount"; "required": false; }; "thyIsOnlySelectLeaf": { "alias": "thyIsOnlySelectLeaf"; "required": false; }; "thyShowSearch": { "alias": "thyShowSearch"; "required": false; }; }, { "thyChange": "thyChange"; "thySelectionChange": "thySelectionChange"; "thySelect": "thySelect"; "thyDeselect": "thyDeselect"; "thyClear": "thyClear"; "thyExpandStatusChange": "thyExpandStatusChange"; }, never, never, true, never>;
264
274
  }
@@ -17,4 +17,6 @@ export interface ThyCascaderSearchOption {
17
17
  valueList: Id[];
18
18
  selected: boolean;
19
19
  thyRowValue: ThyCascaderOption[];
20
+ isLeaf?: boolean;
21
+ disabled?: boolean;
20
22
  }
@@ -5,7 +5,7 @@ import { ChangeDetectorRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleCh
5
5
  import { ControlValueAccessor } from '@angular/forms';
6
6
  import { CompatibleValue, RangeAdvancedValue } from './inner-types';
7
7
  import { ThyPickerComponent } from './picker.component';
8
- import { CompatibleDate, DateEntry, DisabledDateFn, ThyDateRangeEntry, ThyPanelMode, ThyShortcutPosition, CompatiblePresets, ThyShortcutValueChange, ThyDateGranularity } from './standard-types';
8
+ import { CompatibleDate, DateEntry, DisabledDateFn, ThyDateRangeEntry, ThyPanelMode, ThyShortcutPosition, CompatiblePresets, ThyShortcutValueChange, ThyDateGranularity, ThyDateChangeEvent } from './standard-types';
9
9
  import * as i0 from "@angular/core";
10
10
  /**
11
11
  * @private
@@ -99,7 +99,15 @@ export declare abstract class AbstractPickerComponent extends TabIndexDisabledCo
99
99
  * @type ThyShortcutPreset[]
100
100
  */
101
101
  set thyShortcutPresets(presets: CompatiblePresets);
102
+ /**
103
+ * 已废弃,请使用 thyDateChange
104
+ * @deprecated please use thyDateChange
105
+ */
102
106
  readonly thyShortcutValueChange: EventEmitter<ThyShortcutValueChange>;
107
+ /**
108
+ * 日期变化的回调
109
+ */
110
+ readonly thyDateChange: EventEmitter<ThyDateChangeEvent>;
103
111
  readonly thyOpenChange: EventEmitter<boolean>;
104
112
  picker: ThyPickerComponent;
105
113
  /**
@@ -125,6 +133,7 @@ export declare abstract class AbstractPickerComponent extends TabIndexDisabledCo
125
133
  ngOnInit(): void;
126
134
  isFlexible(): void;
127
135
  onShortcutValueChange(event: ThyShortcutValueChange): void;
136
+ onDateValueChange(event: ThyDateChangeEvent): void;
128
137
  ngOnChanges(changes: SimpleChanges): void;
129
138
  ngOnDestroy(): void;
130
139
  closeOverlay(): void;
@@ -142,5 +151,5 @@ export declare abstract class AbstractPickerComponent extends TabIndexDisabledCo
142
151
  private setDefaultPlaceHolder;
143
152
  setValue(value: CompatibleDate): void;
144
153
  static ɵfac: i0.ɵɵFactoryDeclaration<AbstractPickerComponent, never>;
145
- static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractPickerComponent, never, never, { "thyMode": { "alias": "thyMode"; "required": false; }; "thyAllowClear": { "alias": "thyAllowClear"; "required": false; }; "thyAutoFocus": { "alias": "thyAutoFocus"; "required": false; }; "thyOpen": { "alias": "thyOpen"; "required": false; }; "thyDisabledDate": { "alias": "thyDisabledDate"; "required": false; }; "thyMinDate": { "alias": "thyMinDate"; "required": false; }; "thyMaxDate": { "alias": "thyMaxDate"; "required": false; }; "thyPlaceHolder": { "alias": "thyPlaceHolder"; "required": false; }; "thyReadonly": { "alias": "thyReadonly"; "required": false; }; "thyOriginClassName": { "alias": "thyOriginClassName"; "required": false; }; "thyPanelClassName": { "alias": "thyPanelClassName"; "required": false; }; "thySize": { "alias": "thySize"; "required": false; }; "thyFormat": { "alias": "thyFormat"; "required": false; }; "thyAutoStartAndEnd": { "alias": "thyAutoStartAndEnd"; "required": false; }; "thyDefaultPickerValue": { "alias": "thyDefaultPickerValue"; "required": false; }; "thySuffixIcon": { "alias": "thySuffixIcon"; "required": false; }; "thyShowShortcut": { "alias": "thyShowShortcut"; "required": false; }; "thyShortcutPosition": { "alias": "thyShortcutPosition"; "required": false; }; "thyShortcutPresets": { "alias": "thyShortcutPresets"; "required": false; }; "thyDisabled": { "alias": "thyDisabled"; "required": false; }; }, { "thyShortcutValueChange": "thyShortcutValueChange"; "thyOpenChange": "thyOpenChange"; }, never, never, false, never>;
154
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AbstractPickerComponent, never, never, { "thyMode": { "alias": "thyMode"; "required": false; }; "thyAllowClear": { "alias": "thyAllowClear"; "required": false; }; "thyAutoFocus": { "alias": "thyAutoFocus"; "required": false; }; "thyOpen": { "alias": "thyOpen"; "required": false; }; "thyDisabledDate": { "alias": "thyDisabledDate"; "required": false; }; "thyMinDate": { "alias": "thyMinDate"; "required": false; }; "thyMaxDate": { "alias": "thyMaxDate"; "required": false; }; "thyPlaceHolder": { "alias": "thyPlaceHolder"; "required": false; }; "thyReadonly": { "alias": "thyReadonly"; "required": false; }; "thyOriginClassName": { "alias": "thyOriginClassName"; "required": false; }; "thyPanelClassName": { "alias": "thyPanelClassName"; "required": false; }; "thySize": { "alias": "thySize"; "required": false; }; "thyFormat": { "alias": "thyFormat"; "required": false; }; "thyAutoStartAndEnd": { "alias": "thyAutoStartAndEnd"; "required": false; }; "thyDefaultPickerValue": { "alias": "thyDefaultPickerValue"; "required": false; }; "thySuffixIcon": { "alias": "thySuffixIcon"; "required": false; }; "thyShowShortcut": { "alias": "thyShowShortcut"; "required": false; }; "thyShortcutPosition": { "alias": "thyShortcutPosition"; "required": false; }; "thyShortcutPresets": { "alias": "thyShortcutPresets"; "required": false; }; "thyDisabled": { "alias": "thyDisabled"; "required": false; }; }, { "thyShortcutValueChange": "thyShortcutValueChange"; "thyDateChange": "thyDateChange"; "thyOpenChange": "thyOpenChange"; }, never, never, false, never>;
146
155
  }
@@ -61,6 +61,7 @@ export declare abstract class PickerDirective extends AbstractPickerComponent im
61
61
  private destroy$;
62
62
  private el;
63
63
  readonly $click: Observable<boolean>;
64
+ takeUntilDestroyed: import("rxjs").MonoTypeOperatorFunction<unknown>;
64
65
  ngOnInit(): void;
65
66
  private getInitialState;
66
67
  private openOverlay;
@@ -2,7 +2,7 @@ import { FunctionProp, TinyDate } from 'ngx-tethys/util';
2
2
  import { ChangeDetectorRef, EventEmitter, OnChanges, OnInit, SimpleChanges, TemplateRef } from '@angular/core';
3
3
  import { ThyDatePickerConfigService } from '../../date-picker.service';
4
4
  import { CompatibleValue, DatePickerFlexibleTab, RangeAdvancedValue, RangePartType } from '../../inner-types';
5
- import { CompatibleDate, CompatiblePresets, DisabledDateFn, SupportTimeOptions, ThyDateGranularity, ThyPanelMode, ThyShortcutPosition, ThyShortcutPreset, ThyShortcutValueChange } from '../../standard-types';
5
+ import { CompatibleDate, CompatiblePresets, DisabledDateFn, SupportTimeOptions, ThyDateChangeEvent, ThyDateGranularity, ThyPanelMode, ThyShortcutPosition, ThyShortcutPreset, ThyShortcutValueChange } from '../../standard-types';
6
6
  import * as i0 from "@angular/core";
7
7
  /**
8
8
  * @private
@@ -40,7 +40,11 @@ export declare class DatePopupComponent implements OnChanges, OnInit {
40
40
  readonly valueChange: EventEmitter<CompatibleValue | RangeAdvancedValue>;
41
41
  readonly resultOk: EventEmitter<void>;
42
42
  readonly showTimePickerChange: EventEmitter<boolean>;
43
+ /**
44
+ * @deprecated
45
+ */
43
46
  readonly shortcutValueChange: EventEmitter<ThyShortcutValueChange>;
47
+ readonly dateValueChange: EventEmitter<ThyDateChangeEvent>;
44
48
  prefixCls: string;
45
49
  showTimePicker: boolean;
46
50
  timeOptions: SupportTimeOptions | SupportTimeOptions[] | null;
@@ -92,5 +96,5 @@ export declare class DatePopupComponent implements OnChanges, OnInit {
92
96
  shortcutSetValue(shortcutPresets: ThyShortcutPreset): void;
93
97
  trackByFn(index: number): number;
94
98
  static ɵfac: i0.ɵɵFactoryDeclaration<DatePopupComponent, never>;
95
- static ɵcmp: i0.ɵɵComponentDeclaration<DatePopupComponent, "date-popup", ["datePopup"], { "isRange": { "alias": "isRange"; "required": false; }; "showWeek": { "alias": "showWeek"; "required": false; }; "format": { "alias": "format"; "required": false; }; "disabledDate": { "alias": "disabledDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "showToday": { "alias": "showToday"; "required": false; }; "showTime": { "alias": "showTime"; "required": false; }; "mustShowTime": { "alias": "mustShowTime"; "required": false; }; "dateRender": { "alias": "dateRender"; "required": false; }; "className": { "alias": "className"; "required": false; }; "panelMode": { "alias": "panelMode"; "required": false; }; "value": { "alias": "value"; "required": false; }; "defaultPickerValue": { "alias": "defaultPickerValue"; "required": false; }; "showShortcut": { "alias": "showShortcut"; "required": false; }; "shortcutPresets": { "alias": "shortcutPresets"; "required": false; }; "shortcutPosition": { "alias": "shortcutPosition"; "required": false; }; "flexible": { "alias": "flexible"; "required": false; }; "flexibleDateGranularity": { "alias": "flexibleDateGranularity"; "required": false; }; }, { "panelModeChange": "panelModeChange"; "calendarChange": "calendarChange"; "valueChange": "valueChange"; "resultOk": "resultOk"; "showTimePickerChange": "showTimePickerChange"; "shortcutValueChange": "shortcutValueChange"; }, never, never, true, never>;
99
+ static ɵcmp: i0.ɵɵComponentDeclaration<DatePopupComponent, "date-popup", ["datePopup"], { "isRange": { "alias": "isRange"; "required": false; }; "showWeek": { "alias": "showWeek"; "required": false; }; "format": { "alias": "format"; "required": false; }; "disabledDate": { "alias": "disabledDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "showToday": { "alias": "showToday"; "required": false; }; "showTime": { "alias": "showTime"; "required": false; }; "mustShowTime": { "alias": "mustShowTime"; "required": false; }; "dateRender": { "alias": "dateRender"; "required": false; }; "className": { "alias": "className"; "required": false; }; "panelMode": { "alias": "panelMode"; "required": false; }; "value": { "alias": "value"; "required": false; }; "defaultPickerValue": { "alias": "defaultPickerValue"; "required": false; }; "showShortcut": { "alias": "showShortcut"; "required": false; }; "shortcutPresets": { "alias": "shortcutPresets"; "required": false; }; "shortcutPosition": { "alias": "shortcutPosition"; "required": false; }; "flexible": { "alias": "flexible"; "required": false; }; "flexibleDateGranularity": { "alias": "flexibleDateGranularity"; "required": false; }; }, { "panelModeChange": "panelModeChange"; "calendarChange": "calendarChange"; "valueChange": "valueChange"; "resultOk": "resultOk"; "showTimePickerChange": "showTimePickerChange"; "shortcutValueChange": "shortcutValueChange"; "dateValueChange": "dateValueChange"; }, never, never, true, never>;
96
100
  }
@@ -43,10 +43,17 @@ export interface ThyShortcutPreset {
43
43
  value?: ThyShortcutValue | [ThyShortcutValue, ThyShortcutValue];
44
44
  disabled?: boolean;
45
45
  }
46
+ /**
47
+ * @deprecated
48
+ */
46
49
  export interface ThyShortcutValueChange {
47
50
  value: CompatibleValue;
48
51
  triggerPresets: ThyShortcutPreset;
49
52
  }
53
+ export interface ThyDateChangeEvent {
54
+ value: CompatibleValue;
55
+ triggerPreset?: ThyShortcutPreset;
56
+ }
50
57
  /**
51
58
  * @deprecated please use ThyPanelMode
52
59
  */
@@ -1,10 +1,12 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
- import { InputBoolean } from 'ngx-tethys/core';
3
- import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
4
- import { FormsModule } from '@angular/forms';
5
2
  import { ThyCheckboxComponent } from 'ngx-tethys/checkbox';
3
+ import { InputBoolean } from 'ngx-tethys/core';
6
4
  import { ThyFlexibleTextComponent } from 'ngx-tethys/flexible-text';
5
+ import { ThyRadioComponent } from 'ngx-tethys/radio';
6
+ import { ThyStopPropagationDirective } from 'ngx-tethys/shared';
7
7
  import { NgIf } from '@angular/common';
8
+ import { ChangeDetectionStrategy, Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
9
+ import { FormsModule } from '@angular/forms';
8
10
  import * as i0 from "@angular/core";
9
11
  import * as i1 from "@angular/forms";
10
12
  /**
@@ -23,6 +25,7 @@ export class ThyCascaderOptionComponent {
23
25
  this.class = 'd-flex';
24
26
  this.item = true;
25
27
  this.active = false;
28
+ this.selected = false;
26
29
  this.labelProperty = 'label';
27
30
  this.toggleSelectChange = new EventEmitter();
28
31
  }
@@ -31,7 +34,7 @@ export class ThyCascaderOptionComponent {
31
34
  this.toggleSelectChange.emit(value);
32
35
  }
33
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ThyCascaderOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
34
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: ThyCascaderOptionComponent, isStandalone: true, selector: "[thy-cascader-option]", inputs: { option: "option", multiple: "multiple", isOnlySelectLeaf: "isOnlySelectLeaf", active: "active", labelProperty: "labelProperty" }, outputs: { toggleSelectChange: "toggleSelectChange" }, host: { properties: { "class": "this.class", "class.thy-cascader-menu-item": "this.item", "class.thy-cascader-menu-item-active": "this.active", "class.thy-cascader-menu-item-disabled": "this.disabled", "class.thy-cascader-menu-item-expand": "this.expand" } }, ngImport: i0, template: "<span thyFlexibleText [thyTooltipContent]=\"option[labelProperty] || ''\" *ngIf=\"!multiple || !option.isLeaf\">\n {{ option[labelProperty] || '' }}</span\n>\n<ng-container *ngIf=\"multiple && option.isLeaf && isOnlySelectLeaf\">\n <label\n thyCheckbox\n class=\"w-100\"\n thyInline=\"true\"\n [disabled]=\"option.disabled\"\n [(ngModel)]=\"active\"\n (ngModelChange)=\"toggleOption(active)\"\n [name]=\"option.value || option._id\">\n <span thyFlexibleText [thyTooltipContent]=\"option[labelProperty] || ''\">{{ option[labelProperty] || '' }}</span>\n </label>\n</ng-container>\n\n<span\n *ngIf=\"!option.isLeaf || (option.children && option.children.length) || option.loading\"\n class=\"wtf wtf-angle-right thy-cascader-menu-item-expand-icon\">\n</span>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyFlexibleTextComponent, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "component", type: ThyCheckboxComponent, selector: "thy-checkbox,[thy-checkbox],[thyCheckbox]", inputs: ["thyIndeterminate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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 }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: ThyCascaderOptionComponent, isStandalone: true, selector: "[thy-cascader-option]", inputs: { option: "option", multiple: "multiple", isOnlySelectLeaf: "isOnlySelectLeaf", active: "active", selected: "selected", labelProperty: "labelProperty" }, outputs: { toggleSelectChange: "toggleSelectChange" }, host: { properties: { "class": "this.class", "class.thy-cascader-menu-item": "this.item", "class.thy-cascader-menu-item-active": "this.active", "class.thy-cascader-menu-item-disabled": "this.disabled", "class.thy-cascader-menu-item-expand": "this.expand" } }, ngImport: i0, template: "<div thyStopPropagation>\n <label\n *ngIf=\"multiple && (!isOnlySelectLeaf || option.isLeaf)\"\n thyCheckbox\n [disabled]=\"option.disabled\"\n [name]=\"option.value || option._id\"\n [(ngModel)]=\"selected\"\n (ngModelChange)=\"toggleOption($event)\"></label>\n <label\n *ngIf=\"!multiple && !isOnlySelectLeaf\"\n thyRadio\n [disabled]=\"option.disabled\"\n [name]=\"option.value || option._id\"\n [(ngModel)]=\"selected\"\n (ngModelChange)=\"toggleOption($event)\"></label>\n</div>\n\n<span thyFlexibleText [thyTooltipContent]=\"option[labelProperty] || ''\"> {{ option[labelProperty] || '' }}</span>\n\n<span\n *ngIf=\"!option.isLeaf || (option.children && option.children.length) || option.loading\"\n class=\"wtf wtf-angle-right thy-cascader-menu-item-expand-icon\">\n</span>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyFlexibleTextComponent, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }, { kind: "component", type: ThyCheckboxComponent, selector: "thy-checkbox,[thy-checkbox],[thyCheckbox]", inputs: ["thyIndeterminate"] }, { kind: "component", type: ThyRadioComponent, selector: "[thy-radio],[thyRadio]", inputs: ["thyValue"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyStopPropagationDirective, selector: "[thyStopPropagation]", inputs: ["thyStopPropagation"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
35
38
  }
36
39
  __decorate([
37
40
  InputBoolean(),
@@ -45,9 +48,13 @@ __decorate([
45
48
  InputBoolean(),
46
49
  __metadata("design:type", Boolean)
47
50
  ], ThyCascaderOptionComponent.prototype, "active", void 0);
51
+ __decorate([
52
+ InputBoolean(),
53
+ __metadata("design:type", Boolean)
54
+ ], ThyCascaderOptionComponent.prototype, "selected", void 0);
48
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ThyCascaderOptionComponent, decorators: [{
49
56
  type: Component,
50
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, selector: '[thy-cascader-option]', standalone: true, imports: [NgIf, ThyFlexibleTextComponent, ThyCheckboxComponent, FormsModule], template: "<span thyFlexibleText [thyTooltipContent]=\"option[labelProperty] || ''\" *ngIf=\"!multiple || !option.isLeaf\">\n {{ option[labelProperty] || '' }}</span\n>\n<ng-container *ngIf=\"multiple && option.isLeaf && isOnlySelectLeaf\">\n <label\n thyCheckbox\n class=\"w-100\"\n thyInline=\"true\"\n [disabled]=\"option.disabled\"\n [(ngModel)]=\"active\"\n (ngModelChange)=\"toggleOption(active)\"\n [name]=\"option.value || option._id\">\n <span thyFlexibleText [thyTooltipContent]=\"option[labelProperty] || ''\">{{ option[labelProperty] || '' }}</span>\n </label>\n</ng-container>\n\n<span\n *ngIf=\"!option.isLeaf || (option.children && option.children.length) || option.loading\"\n class=\"wtf wtf-angle-right thy-cascader-menu-item-expand-icon\">\n</span>\n" }]
57
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, selector: '[thy-cascader-option]', standalone: true, imports: [NgIf, ThyFlexibleTextComponent, ThyCheckboxComponent, ThyRadioComponent, FormsModule, ThyStopPropagationDirective], template: "<div thyStopPropagation>\n <label\n *ngIf=\"multiple && (!isOnlySelectLeaf || option.isLeaf)\"\n thyCheckbox\n [disabled]=\"option.disabled\"\n [name]=\"option.value || option._id\"\n [(ngModel)]=\"selected\"\n (ngModelChange)=\"toggleOption($event)\"></label>\n <label\n *ngIf=\"!multiple && !isOnlySelectLeaf\"\n thyRadio\n [disabled]=\"option.disabled\"\n [name]=\"option.value || option._id\"\n [(ngModel)]=\"selected\"\n (ngModelChange)=\"toggleOption($event)\"></label>\n</div>\n\n<span thyFlexibleText [thyTooltipContent]=\"option[labelProperty] || ''\"> {{ option[labelProperty] || '' }}</span>\n\n<span\n *ngIf=\"!option.isLeaf || (option.children && option.children.length) || option.loading\"\n class=\"wtf wtf-angle-right thy-cascader-menu-item-expand-icon\">\n</span>\n" }]
51
58
  }], ctorParameters: function () { return []; }, propDecorators: { option: [{
52
59
  type: Input
53
60
  }], multiple: [{
@@ -65,6 +72,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImpor
65
72
  args: ['class.thy-cascader-menu-item-active']
66
73
  }, {
67
74
  type: Input
75
+ }], selected: [{
76
+ type: Input
68
77
  }], disabled: [{
69
78
  type: HostBinding,
70
79
  args: ['class.thy-cascader-menu-item-disabled']
@@ -76,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImpor
76
85
  }], toggleSelectChange: [{
77
86
  type: Output
78
87
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzY2FkZXItbGkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Nhc2NhZGVyL2Nhc2NhZGVyLWxpLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jYXNjYWRlci9jYXNjYWRlci1saS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUV2Qzs7R0FFRztBQVVILE1BQU0sT0FBTywwQkFBMEI7SUFvQm5DLElBQ0ksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQ0ksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzlDLENBQUM7SUFNRDtRQTdCQSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBSWpCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUVGLFVBQUssR0FBRyxRQUFRLENBQUM7UUFFTSxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBS3pELFdBQU0sR0FBWSxLQUFLLENBQUM7UUFZZixrQkFBYSxHQUFXLE9BQU8sQ0FBQztRQUUvQix1QkFBa0IsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUUxRCxDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDO0lBRU4sWUFBWSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDOzhHQXhDUSwwQkFBMEI7a0dBQTFCLDBCQUEwQix3aEJDcEJ2QyxxeEJBb0JBLDRDREZjLElBQUksNkZBQUUsd0JBQXdCLG1PQUFFLG9CQUFvQixtSEFBRSxXQUFXOztBQUszRTtJQUNDLFlBQVksRUFBRTs7NERBQ0U7QUFFakI7SUFDQyxZQUFZLEVBQUU7O29FQUNTO0FBTXhCO0lBRUMsWUFBWSxFQUFFOzswREFDUzsyRkFsQmYsMEJBQTBCO2tCQVR0QyxTQUFTO3NDQUNXLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksWUFFM0IsdUJBQXVCLGNBRXJCLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSx3QkFBd0IsRUFBRSxvQkFBb0IsRUFBRSxXQUFXLENBQUM7MEVBR25FLE1BQU07c0JBQWQsS0FBSztnQkFJTixRQUFRO3NCQUZQLEtBQUs7Z0JBTU4sZ0JBQWdCO3NCQUZmLEtBQUs7Z0JBSWdCLEtBQUs7c0JBQTFCLFdBQVc7dUJBQUMsT0FBTztnQkFFeUIsSUFBSTtzQkFBaEQsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBSzNDLE1BQU07c0JBSEwsV0FBVzt1QkFBQyxxQ0FBcUM7O3NCQUNqRCxLQUFLO2dCQUtGLFFBQVE7c0JBRFgsV0FBVzt1QkFBQyx1Q0FBdUM7Z0JBTWhELE1BQU07c0JBRFQsV0FBVzt1QkFBQyxxQ0FBcUM7Z0JBS3pDLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeUNhc2NhZGVyT3B0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRoeUNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnbmd4LXRldGh5cy9jaGVja2JveCc7XG5pbXBvcnQgeyBUaHlGbGV4aWJsZVRleHRDb21wb25lbnQgfSBmcm9tICduZ3gtdGV0aHlzL2ZsZXhpYmxlLXRleHQnO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ1t0aHktY2FzY2FkZXItb3B0aW9uXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Nhc2NhZGVyLWxpLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBUaHlGbGV4aWJsZVRleHRDb21wb25lbnQsIFRoeUNoZWNrYm94Q29tcG9uZW50LCBGb3Jtc01vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgVGh5Q2FzY2FkZXJPcHRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgpIG9wdGlvbjogVGh5Q2FzY2FkZXJPcHRpb247XG5cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dEJvb2xlYW4oKVxuICAgIG11bHRpcGxlID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dEJvb2xlYW4oKVxuICAgIGlzT25seVNlbGVjdExlYWYgPSB0cnVlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGNsYXNzID0gJ2QtZmxleCc7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1jYXNjYWRlci1tZW51LWl0ZW0nKSBpdGVtID0gdHJ1ZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGh5LWNhc2NhZGVyLW1lbnUtaXRlbS1hY3RpdmUnKVxuICAgIEBJbnB1dCgpXG4gICAgQElucHV0Qm9vbGVhbigpXG4gICAgYWN0aXZlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1jYXNjYWRlci1tZW51LWl0ZW0tZGlzYWJsZWQnKVxuICAgIGdldCBkaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9uLmRpc2FibGVkO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MudGh5LWNhc2NhZGVyLW1lbnUtaXRlbS1leHBhbmQnKVxuICAgIGdldCBleHBhbmQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbiAmJiAhdGhpcy5vcHRpb24uaXNMZWFmO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGxhYmVsUHJvcGVydHk6IHN0cmluZyA9ICdsYWJlbCc7XG5cbiAgICBAT3V0cHV0KCkgdG9nZ2xlU2VsZWN0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHt9XG5cbiAgICBwdWJsaWMgdG9nZ2xlT3B0aW9uKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudG9nZ2xlU2VsZWN0Q2hhbmdlLmVtaXQodmFsdWUpO1xuICAgIH1cbn1cbiIsIjxzcGFuIHRoeUZsZXhpYmxlVGV4dCBbdGh5VG9vbHRpcENvbnRlbnRdPVwib3B0aW9uW2xhYmVsUHJvcGVydHldIHx8ICcnXCIgKm5nSWY9XCIhbXVsdGlwbGUgfHwgIW9wdGlvbi5pc0xlYWZcIj5cbiAge3sgb3B0aW9uW2xhYmVsUHJvcGVydHldIHx8ICcnIH19PC9zcGFuXG4+XG48bmctY29udGFpbmVyICpuZ0lmPVwibXVsdGlwbGUgJiYgb3B0aW9uLmlzTGVhZiAmJiBpc09ubHlTZWxlY3RMZWFmXCI+XG4gIDxsYWJlbFxuICAgIHRoeUNoZWNrYm94XG4gICAgY2xhc3M9XCJ3LTEwMFwiXG4gICAgdGh5SW5saW5lPVwidHJ1ZVwiXG4gICAgW2Rpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgWyhuZ01vZGVsKV09XCJhY3RpdmVcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInRvZ2dsZU9wdGlvbihhY3RpdmUpXCJcbiAgICBbbmFtZV09XCJvcHRpb24udmFsdWUgfHwgb3B0aW9uLl9pZFwiPlxuICAgIDxzcGFuIHRoeUZsZXhpYmxlVGV4dCBbdGh5VG9vbHRpcENvbnRlbnRdPVwib3B0aW9uW2xhYmVsUHJvcGVydHldIHx8ICcnXCI+e3sgb3B0aW9uW2xhYmVsUHJvcGVydHldIHx8ICcnIH19PC9zcGFuPlxuICA8L2xhYmVsPlxuPC9uZy1jb250YWluZXI+XG5cbjxzcGFuXG4gICpuZ0lmPVwiIW9wdGlvbi5pc0xlYWYgfHwgKG9wdGlvbi5jaGlsZHJlbiAmJiBvcHRpb24uY2hpbGRyZW4ubGVuZ3RoKSB8fCBvcHRpb24ubG9hZGluZ1wiXG4gIGNsYXNzPVwid3RmIHd0Zi1hbmdsZS1yaWdodCB0aHktY2FzY2FkZXItbWVudS1pdGVtLWV4cGFuZC1pY29uXCI+XG48L3NwYW4+XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzY2FkZXItbGkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Nhc2NhZGVyL2Nhc2NhZGVyLWxpLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jYXNjYWRlci9jYXNjYWRlci1saS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWhFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUk3Qzs7R0FFRztBQVVILE1BQU0sT0FBTywwQkFBMEI7SUF3Qm5DLElBQ0ksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQ0ksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQzlDLENBQUM7SUFNRDtRQWpDQSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBSWpCLHFCQUFnQixHQUFHLElBQUksQ0FBQztRQUVGLFVBQUssR0FBRyxRQUFRLENBQUM7UUFFTSxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBS3pELFdBQU0sR0FBWSxLQUFLLENBQUM7UUFJeEIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQVlqQixrQkFBYSxHQUFXLE9BQU8sQ0FBQztRQUUvQix1QkFBa0IsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUUxRCxDQUFDO0lBRWhCLFFBQVEsS0FBSSxDQUFDO0lBRU4sWUFBWSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDOzhHQTVDUSwwQkFBMEI7a0dBQTFCLDBCQUEwQiw4aUJDeEJ2Qyx3ekJBdUJBLDRDRERjLElBQUksNkZBQUUsd0JBQXdCLG1PQUFFLG9CQUFvQixvSEFBRSxpQkFBaUIsd0ZBQUUsV0FBVywrVkFBRSwyQkFBMkI7O0FBSzNIO0lBQ0MsWUFBWSxFQUFFOzs0REFDRTtBQUVqQjtJQUNDLFlBQVksRUFBRTs7b0VBQ1M7QUFNeEI7SUFFQyxZQUFZLEVBQUU7OzBEQUNTO0FBRXhCO0lBQ0MsWUFBWSxFQUFFOzs0REFDVzsyRkF0QmpCLDBCQUEwQjtrQkFUdEMsU0FBUztzQ0FDVyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFlBRTNCLHVCQUF1QixjQUVyQixJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxFQUFFLDJCQUEyQixDQUFDOzBFQUduSCxNQUFNO3NCQUFkLEtBQUs7Z0JBSU4sUUFBUTtzQkFGUCxLQUFLO2dCQU1OLGdCQUFnQjtzQkFGZixLQUFLO2dCQUlnQixLQUFLO3NCQUExQixXQUFXO3VCQUFDLE9BQU87Z0JBRXlCLElBQUk7c0JBQWhELFdBQVc7dUJBQUMsOEJBQThCO2dCQUszQyxNQUFNO3NCQUhMLFdBQVc7dUJBQUMscUNBQXFDOztzQkFDakQsS0FBSztnQkFNTixRQUFRO3NCQUZQLEtBQUs7Z0JBS0YsUUFBUTtzQkFEWCxXQUFXO3VCQUFDLHVDQUF1QztnQkFNaEQsTUFBTTtzQkFEVCxXQUFXO3VCQUFDLHFDQUFxQztnQkFLekMsYUFBYTtzQkFBckIsS0FBSztnQkFFSSxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaHlDaGVja2JveENvbXBvbmVudCB9IGZyb20gJ25neC10ZXRoeXMvY2hlY2tib3gnO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnbmd4LXRldGh5cy9jb3JlJztcbmltcG9ydCB7IFRoeUZsZXhpYmxlVGV4dENvbXBvbmVudCB9IGZyb20gJ25neC10ZXRoeXMvZmxleGlibGUtdGV4dCc7XG5pbXBvcnQgeyBUaHlSYWRpb0NvbXBvbmVudCB9IGZyb20gJ25neC10ZXRoeXMvcmFkaW8nO1xuaW1wb3J0IHsgVGh5U3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuXG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBUaHlDYXNjYWRlck9wdGlvbiB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbdGh5LWNhc2NhZGVyLW9wdGlvbl0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXNjYWRlci1saS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgVGh5RmxleGlibGVUZXh0Q29tcG9uZW50LCBUaHlDaGVja2JveENvbXBvbmVudCwgVGh5UmFkaW9Db21wb25lbnQsIEZvcm1zTW9kdWxlLCBUaHlTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeUNhc2NhZGVyT3B0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoKSBvcHRpb246IFRoeUNhc2NhZGVyT3B0aW9uO1xuXG4gICAgQElucHV0KClcbiAgICBASW5wdXRCb29sZWFuKClcbiAgICBtdWx0aXBsZSA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBASW5wdXRCb29sZWFuKClcbiAgICBpc09ubHlTZWxlY3RMZWFmID0gdHJ1ZTtcblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBjbGFzcyA9ICdkLWZsZXgnO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktY2FzY2FkZXItbWVudS1pdGVtJykgaXRlbSA9IHRydWU7XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1jYXNjYWRlci1tZW51LWl0ZW0tYWN0aXZlJylcbiAgICBASW5wdXQoKVxuICAgIEBJbnB1dEJvb2xlYW4oKVxuICAgIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBASW5wdXRCb29sZWFuKClcbiAgICBzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy50aHktY2FzY2FkZXItbWVudS1pdGVtLWRpc2FibGVkJylcbiAgICBnZXQgZGlzYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbi5kaXNhYmxlZDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRoeS1jYXNjYWRlci1tZW51LWl0ZW0tZXhwYW5kJylcbiAgICBnZXQgZXhwYW5kKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb24gJiYgIXRoaXMub3B0aW9uLmlzTGVhZjtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBsYWJlbFByb3BlcnR5OiBzdHJpbmcgPSAnbGFiZWwnO1xuXG4gICAgQE91dHB1dCgpIHRvZ2dsZVNlbGVjdENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7fVxuXG4gICAgcHVibGljIHRvZ2dsZU9wdGlvbih2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLnRvZ2dsZVNlbGVjdENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG59XG4iLCI8ZGl2IHRoeVN0b3BQcm9wYWdhdGlvbj5cbiAgPGxhYmVsXG4gICAgKm5nSWY9XCJtdWx0aXBsZSAmJiAoIWlzT25seVNlbGVjdExlYWYgfHwgb3B0aW9uLmlzTGVhZilcIlxuICAgIHRoeUNoZWNrYm94XG4gICAgW2Rpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgW25hbWVdPVwib3B0aW9uLnZhbHVlIHx8IG9wdGlvbi5faWRcIlxuICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInRvZ2dsZU9wdGlvbigkZXZlbnQpXCI+PC9sYWJlbD5cbiAgPGxhYmVsXG4gICAgKm5nSWY9XCIhbXVsdGlwbGUgJiYgIWlzT25seVNlbGVjdExlYWZcIlxuICAgIHRoeVJhZGlvXG4gICAgW2Rpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgW25hbWVdPVwib3B0aW9uLnZhbHVlIHx8IG9wdGlvbi5faWRcIlxuICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInRvZ2dsZU9wdGlvbigkZXZlbnQpXCI+PC9sYWJlbD5cbjwvZGl2PlxuXG48c3BhbiB0aHlGbGV4aWJsZVRleHQgW3RoeVRvb2x0aXBDb250ZW50XT1cIm9wdGlvbltsYWJlbFByb3BlcnR5XSB8fCAnJ1wiPiB7eyBvcHRpb25bbGFiZWxQcm9wZXJ0eV0gfHwgJycgfX08L3NwYW4+XG5cbjxzcGFuXG4gICpuZ0lmPVwiIW9wdGlvbi5pc0xlYWYgfHwgKG9wdGlvbi5jaGlsZHJlbiAmJiBvcHRpb24uY2hpbGRyZW4ubGVuZ3RoKSB8fCBvcHRpb24ubG9hZGluZ1wiXG4gIGNsYXNzPVwid3RmIHd0Zi1hbmdsZS1yaWdodCB0aHktY2FzY2FkZXItbWVudS1pdGVtLWV4cGFuZC1pY29uXCI+XG48L3NwYW4+XG4iXX0=