@ng-nest/ui 15.0.6 → 15.0.7

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 (166) hide show
  1. package/core/functions/date.d.ts +1 -0
  2. package/date-picker/date-picker.property.d.ts +129 -3
  3. package/date-picker/date-range-portal.component.d.ts +9 -8
  4. package/date-picker/date-range.component.d.ts +12 -10
  5. package/date-picker/picker-date.component.d.ts +15 -6
  6. package/esm2020/core/functions/date.mjs +20 -29
  7. package/esm2020/date-picker/date-picker.property.mjs +23 -2
  8. package/esm2020/date-picker/date-range-portal.component.mjs +36 -33
  9. package/esm2020/date-picker/date-range.component.mjs +75 -53
  10. package/esm2020/date-picker/picker-date.component.mjs +133 -17
  11. package/esm2020/input/input.component.mjs +2 -2
  12. package/esm2020/loading/loading.component.mjs +13 -6
  13. package/esm2020/loading/loading.property.mjs +1 -1
  14. package/esm2020/switch/switch.component.mjs +13 -6
  15. package/esm2020/switch/switch.module.mjs +6 -4
  16. package/esm2020/switch/switch.property.mjs +33 -4
  17. package/esm2020/table/drag.directive.mjs +13 -5
  18. package/esm2020/table/table-head.component.mjs +20 -6
  19. package/esm2020/table/table.property.mjs +23 -2
  20. package/fesm2015/ng-nest-ui-anchor.mjs +1 -0
  21. package/fesm2015/ng-nest-ui-api.mjs +1 -0
  22. package/fesm2015/ng-nest-ui-auto-complete.mjs +1 -0
  23. package/fesm2015/ng-nest-ui-avatar.mjs +1 -0
  24. package/fesm2015/ng-nest-ui-back-top.mjs +1 -0
  25. package/fesm2015/ng-nest-ui-badge.mjs +1 -0
  26. package/fesm2015/ng-nest-ui-base-form.mjs +1 -0
  27. package/fesm2015/ng-nest-ui-border.mjs +1 -0
  28. package/fesm2015/ng-nest-ui-button.mjs +1 -0
  29. package/fesm2015/ng-nest-ui-calendar.mjs +1 -0
  30. package/fesm2015/ng-nest-ui-card.mjs +1 -0
  31. package/fesm2015/ng-nest-ui-carousel.mjs +1 -0
  32. package/fesm2015/ng-nest-ui-cascade.mjs +1 -0
  33. package/fesm2015/ng-nest-ui-checkbox.mjs +1 -0
  34. package/fesm2015/ng-nest-ui-collapse.mjs +1 -0
  35. package/fesm2015/ng-nest-ui-color-picker.mjs +1 -0
  36. package/fesm2015/ng-nest-ui-color.mjs +1 -0
  37. package/fesm2015/ng-nest-ui-comment.mjs +1 -0
  38. package/fesm2015/ng-nest-ui-container.mjs +1 -0
  39. package/fesm2015/ng-nest-ui-core.mjs +20 -29
  40. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  41. package/fesm2015/ng-nest-ui-date-picker.mjs +262 -99
  42. package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
  43. package/fesm2015/ng-nest-ui-dialog.mjs +1 -0
  44. package/fesm2015/ng-nest-ui-drawer.mjs +1 -0
  45. package/fesm2015/ng-nest-ui-dropdown.mjs +1 -0
  46. package/fesm2015/ng-nest-ui-find.mjs +1 -0
  47. package/fesm2015/ng-nest-ui-highlight.mjs +1 -0
  48. package/fesm2015/ng-nest-ui-icon.mjs +1 -0
  49. package/fesm2015/ng-nest-ui-image.mjs +1 -0
  50. package/fesm2015/ng-nest-ui-inner.mjs +1 -0
  51. package/fesm2015/ng-nest-ui-input-number.mjs +1 -0
  52. package/fesm2015/ng-nest-ui-input.mjs +1 -1
  53. package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
  54. package/fesm2015/ng-nest-ui-link.mjs +1 -0
  55. package/fesm2015/ng-nest-ui-list.mjs +1 -0
  56. package/fesm2015/ng-nest-ui-loading.mjs +12 -5
  57. package/fesm2015/ng-nest-ui-loading.mjs.map +1 -1
  58. package/fesm2015/ng-nest-ui-menu.mjs +1 -0
  59. package/fesm2015/ng-nest-ui-message-box.mjs +1 -0
  60. package/fesm2015/ng-nest-ui-message.mjs +1 -0
  61. package/fesm2015/ng-nest-ui-notification.mjs +1 -0
  62. package/fesm2015/ng-nest-ui-pagination.mjs +1 -0
  63. package/fesm2015/ng-nest-ui-popconfirm.mjs +1 -0
  64. package/fesm2015/ng-nest-ui-popover.mjs +1 -0
  65. package/fesm2015/ng-nest-ui-progress.mjs +1 -0
  66. package/fesm2015/ng-nest-ui-radio.mjs +1 -0
  67. package/fesm2015/ng-nest-ui-rate.mjs +1 -0
  68. package/fesm2015/ng-nest-ui-result.mjs +1 -0
  69. package/fesm2015/ng-nest-ui-select.mjs +1 -0
  70. package/fesm2015/ng-nest-ui-skeleton.mjs +1 -0
  71. package/fesm2015/ng-nest-ui-slider-select.mjs +1 -0
  72. package/fesm2015/ng-nest-ui-slider.mjs +1 -0
  73. package/fesm2015/ng-nest-ui-steps.mjs +1 -0
  74. package/fesm2015/ng-nest-ui-switch.mjs +48 -11
  75. package/fesm2015/ng-nest-ui-switch.mjs.map +1 -1
  76. package/fesm2015/ng-nest-ui-table.mjs +53 -10
  77. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  78. package/fesm2015/ng-nest-ui-tabs.mjs +1 -0
  79. package/fesm2015/ng-nest-ui-tag.mjs +1 -0
  80. package/fesm2015/ng-nest-ui-text-retract.mjs +1 -0
  81. package/fesm2015/ng-nest-ui-textarea.mjs +1 -0
  82. package/fesm2015/ng-nest-ui-timeline.mjs +1 -0
  83. package/fesm2015/ng-nest-ui-tooltip.mjs +1 -0
  84. package/fesm2015/ng-nest-ui-transfer.mjs +1 -0
  85. package/fesm2015/ng-nest-ui-tree-file.mjs +1 -0
  86. package/fesm2015/ng-nest-ui-tree-select.mjs +1 -0
  87. package/fesm2015/ng-nest-ui-tree.mjs +1 -0
  88. package/fesm2015/ng-nest-ui-upload.mjs +1 -0
  89. package/fesm2020/ng-nest-ui-anchor.mjs +1 -0
  90. package/fesm2020/ng-nest-ui-api.mjs +1 -0
  91. package/fesm2020/ng-nest-ui-auto-complete.mjs +1 -0
  92. package/fesm2020/ng-nest-ui-avatar.mjs +1 -0
  93. package/fesm2020/ng-nest-ui-back-top.mjs +1 -0
  94. package/fesm2020/ng-nest-ui-badge.mjs +1 -0
  95. package/fesm2020/ng-nest-ui-base-form.mjs +1 -0
  96. package/fesm2020/ng-nest-ui-border.mjs +1 -0
  97. package/fesm2020/ng-nest-ui-button.mjs +1 -0
  98. package/fesm2020/ng-nest-ui-calendar.mjs +1 -0
  99. package/fesm2020/ng-nest-ui-card.mjs +1 -0
  100. package/fesm2020/ng-nest-ui-carousel.mjs +1 -0
  101. package/fesm2020/ng-nest-ui-cascade.mjs +1 -0
  102. package/fesm2020/ng-nest-ui-checkbox.mjs +1 -0
  103. package/fesm2020/ng-nest-ui-collapse.mjs +1 -0
  104. package/fesm2020/ng-nest-ui-color-picker.mjs +1 -0
  105. package/fesm2020/ng-nest-ui-color.mjs +1 -0
  106. package/fesm2020/ng-nest-ui-comment.mjs +1 -0
  107. package/fesm2020/ng-nest-ui-container.mjs +1 -0
  108. package/fesm2020/ng-nest-ui-core.mjs +20 -29
  109. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  110. package/fesm2020/ng-nest-ui-date-picker.mjs +261 -99
  111. package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
  112. package/fesm2020/ng-nest-ui-dialog.mjs +1 -0
  113. package/fesm2020/ng-nest-ui-drawer.mjs +1 -0
  114. package/fesm2020/ng-nest-ui-dropdown.mjs +1 -0
  115. package/fesm2020/ng-nest-ui-find.mjs +1 -0
  116. package/fesm2020/ng-nest-ui-highlight.mjs +1 -0
  117. package/fesm2020/ng-nest-ui-icon.mjs +1 -0
  118. package/fesm2020/ng-nest-ui-image.mjs +1 -0
  119. package/fesm2020/ng-nest-ui-inner.mjs +1 -0
  120. package/fesm2020/ng-nest-ui-input-number.mjs +1 -0
  121. package/fesm2020/ng-nest-ui-input.mjs +1 -1
  122. package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
  123. package/fesm2020/ng-nest-ui-link.mjs +1 -0
  124. package/fesm2020/ng-nest-ui-list.mjs +1 -0
  125. package/fesm2020/ng-nest-ui-loading.mjs +12 -5
  126. package/fesm2020/ng-nest-ui-loading.mjs.map +1 -1
  127. package/fesm2020/ng-nest-ui-menu.mjs +1 -0
  128. package/fesm2020/ng-nest-ui-message-box.mjs +1 -0
  129. package/fesm2020/ng-nest-ui-message.mjs +1 -0
  130. package/fesm2020/ng-nest-ui-notification.mjs +1 -0
  131. package/fesm2020/ng-nest-ui-pagination.mjs +1 -0
  132. package/fesm2020/ng-nest-ui-popconfirm.mjs +1 -0
  133. package/fesm2020/ng-nest-ui-popover.mjs +1 -0
  134. package/fesm2020/ng-nest-ui-progress.mjs +1 -0
  135. package/fesm2020/ng-nest-ui-radio.mjs +1 -0
  136. package/fesm2020/ng-nest-ui-rate.mjs +1 -0
  137. package/fesm2020/ng-nest-ui-result.mjs +1 -0
  138. package/fesm2020/ng-nest-ui-select.mjs +1 -0
  139. package/fesm2020/ng-nest-ui-skeleton.mjs +1 -0
  140. package/fesm2020/ng-nest-ui-slider-select.mjs +1 -0
  141. package/fesm2020/ng-nest-ui-slider.mjs +1 -0
  142. package/fesm2020/ng-nest-ui-steps.mjs +1 -0
  143. package/fesm2020/ng-nest-ui-switch.mjs +48 -11
  144. package/fesm2020/ng-nest-ui-switch.mjs.map +1 -1
  145. package/fesm2020/ng-nest-ui-table.mjs +53 -10
  146. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  147. package/fesm2020/ng-nest-ui-tabs.mjs +1 -0
  148. package/fesm2020/ng-nest-ui-tag.mjs +1 -0
  149. package/fesm2020/ng-nest-ui-text-retract.mjs +1 -0
  150. package/fesm2020/ng-nest-ui-textarea.mjs +1 -0
  151. package/fesm2020/ng-nest-ui-timeline.mjs +1 -0
  152. package/fesm2020/ng-nest-ui-tooltip.mjs +1 -0
  153. package/fesm2020/ng-nest-ui-transfer.mjs +1 -0
  154. package/fesm2020/ng-nest-ui-tree-file.mjs +1 -0
  155. package/fesm2020/ng-nest-ui-tree-select.mjs +1 -0
  156. package/fesm2020/ng-nest-ui-tree.mjs +1 -0
  157. package/fesm2020/ng-nest-ui-upload.mjs +1 -0
  158. package/loading/loading.component.d.ts +1 -0
  159. package/loading/loading.property.d.ts +1 -1
  160. package/package.json +1 -1
  161. package/switch/switch.component.d.ts +2 -1
  162. package/switch/switch.module.d.ts +3 -1
  163. package/switch/switch.property.d.ts +42 -1
  164. package/table/drag.directive.d.ts +12 -2
  165. package/table/table-head.component.d.ts +11 -1
  166. package/table/table.property.d.ts +50 -1
@@ -1,5 +1,6 @@
1
1
  export declare type XDate = string | Date | number;
2
2
  export declare function XToDate(date: XDate): Date;
3
+ export declare function XAddMilliseconds(date: XDate, amount: number): Date;
3
4
  export declare function XAddSeconds(date: XDate, amount: number): Date;
4
5
  export declare function XAddMinutes(date: XDate, amount: number): Date;
5
6
  export declare function XAddHours(date: XDate, amount: number): Date;
@@ -227,7 +227,7 @@ export declare class XPickerDateProperty extends XProperty {
227
227
  * @zh_CN 选中的日期
228
228
  * @en_US Selected date
229
229
  */
230
- model?: Date;
230
+ model?: Date | null;
231
231
  /**
232
232
  * @zh_CN 日期显示模板
233
233
  * @en_US Date display template
@@ -267,7 +267,7 @@ export declare class XPickerDateProperty extends XProperty {
267
267
  * @zh_CN 范围日期
268
268
  * @en_US Range date
269
269
  */
270
- rangeValue: number[];
270
+ rangeValue: (number | null)[];
271
271
  /**
272
272
  * @zh_CN 当前选择的是开始/结束日期
273
273
  * @en_US The current choice is the start / end date
@@ -303,8 +303,134 @@ export declare class XPickerDateProperty extends XProperty {
303
303
  * @en_US display date event
304
304
  */
305
305
  displayChange: EventEmitter<Date>;
306
+ /**
307
+ * @zh_CN 范围日期 mouseenter 事件
308
+ * @en_US Date mouseenter event
309
+ */
310
+ rangeTdMouseenter: EventEmitter<XDateCell>;
311
+ /**
312
+ * @zh_CN 范围日期 mouseleave 事件
313
+ * @en_US Date mouseleave event
314
+ */
315
+ rangeTdMouseleave: EventEmitter<XDateCell>;
316
+ /**
317
+ * @zh_CN 范围中的日期点击事件
318
+ * @en_US Range date click event
319
+ */
320
+ rangeDateClick: EventEmitter<XDateCell>;
306
321
  static ɵfac: i0.ɵɵFactoryDeclaration<XPickerDateProperty, never>;
307
- static ɵcmp: i0.ɵɵComponentDeclaration<XPickerDateProperty, "ng-component", never, { "type": "type"; "display": "display"; "model": "model"; "dateTemp": "dateTemp"; "showHeader": "showHeader"; "rangePicker": "rangePicker"; "lastYearBtn": "lastYearBtn"; "lastMonthBtn": "lastMonthBtn"; "nextYearBtn": "nextYearBtn"; "nextMonthBtn": "nextMonthBtn"; "rangeValue": "rangeValue"; "rangeType": "rangeType"; }, { "typeChange": "typeChange"; "modelChange": "modelChange"; "rangeChange": "rangeChange"; "yearChange": "yearChange"; "monthChange": "monthChange"; "displayChange": "displayChange"; }, never, never, false, never>;
322
+ static ɵcmp: i0.ɵɵComponentDeclaration<XPickerDateProperty, "ng-component", never, { "type": "type"; "display": "display"; "model": "model"; "dateTemp": "dateTemp"; "showHeader": "showHeader"; "rangePicker": "rangePicker"; "lastYearBtn": "lastYearBtn"; "lastMonthBtn": "lastMonthBtn"; "nextYearBtn": "nextYearBtn"; "nextMonthBtn": "nextMonthBtn"; "rangeValue": "rangeValue"; "rangeType": "rangeType"; }, { "typeChange": "typeChange"; "modelChange": "modelChange"; "rangeChange": "rangeChange"; "yearChange": "yearChange"; "monthChange": "monthChange"; "displayChange": "displayChange"; "rangeTdMouseenter": "rangeTdMouseenter"; "rangeTdMouseleave": "rangeTdMouseleave"; "rangeDateClick": "rangeDateClick"; }, never, never, false, never>;
323
+ }
324
+ /**
325
+ * @zh_CN 单个日期数据对象
326
+ * @en_US 单个日期数据对象
327
+ */
328
+ export interface XDateCell {
329
+ /**
330
+ * @zh_CN 日期
331
+ * @en_US Date
332
+ */
333
+ date?: Date;
334
+ /**
335
+ * @zh_CN 上个月或下个月的日期
336
+ * @en_US Date of the previous or next month
337
+ */
338
+ isLastOrNext?: boolean;
339
+ /**
340
+ * @zh_CN 当天
341
+ * @en_US Same day
342
+ */
343
+ isNow?: boolean;
344
+ /**
345
+ * @zh_CN 当月第一天
346
+ * @en_US The first day of the month
347
+ */
348
+ isFirstDay?: boolean;
349
+ /**
350
+ * @zh_CN 当月最后一天
351
+ * @en_US The last day of the month
352
+ */
353
+ isLastDay?: boolean;
354
+ /**
355
+ * @zh_CN 范围内日期
356
+ * @en_US 范围内日期
357
+ */
358
+ isInRange?: boolean;
359
+ /**
360
+ * @zh_CN 范围内 hover 选中
361
+ * @en_US 范围内 hover 选中
362
+ */
363
+ isInRangeHover?: boolean;
364
+ /**
365
+ * @zh_CN 范围内 hover 当前日期左边
366
+ * @en_US 范围内 hover 当前日期左边
367
+ */
368
+ isInRangeHoverLeft?: boolean;
369
+ /**
370
+ * @zh_CN 范围内 hover 当前日期右边
371
+ * @en_US 范围内 hover 当前日期右边
372
+ */
373
+ isInRangeHoverRight?: boolean;
374
+ /**
375
+ * @zh_CN 选中开始左边
376
+ * @en_US Range start left
377
+ */
378
+ isRangeStartLeft?: boolean;
379
+ /**
380
+ * @zh_CN 选中开始右边
381
+ * @en_US Range start right
382
+ */
383
+ isRangeStartRight?: boolean;
384
+ /**
385
+ * @zh_CN 选中结束左边
386
+ * @en_US Range start left
387
+ */
388
+ isRangeEndLeft?: boolean;
389
+ /**
390
+ * @zh_CN 选中结束右边
391
+ * @en_US Range start right
392
+ */
393
+ isRangeEndRight?: boolean;
394
+ /**
395
+ * @zh_CN 范围 hover
396
+ * @en_US Range hover
397
+ */
398
+ isRangeHover?: boolean;
399
+ /**
400
+ * @zh_CN hover 当前开始
401
+ * @en_US Range hover start
402
+ */
403
+ isRangeHoverStart?: boolean;
404
+ /**
405
+ * @zh_CN hover 当前结束
406
+ * @en_US End date
407
+ */
408
+ isRangeHoverEnd?: boolean;
409
+ /**
410
+ * @zh_CN hover 开始左边
411
+ * @en_US Range hover start left
412
+ */
413
+ isRangeHoverStartLeft?: boolean;
414
+ /**
415
+ * @zh_CN hover 开始右边
416
+ * @en_US Range hover start right
417
+ */
418
+ isRangeHoverStartRight?: boolean;
419
+ /**
420
+ * @zh_CN hover 结束左边
421
+ * @en_US Range hover end left
422
+ */
423
+ isRangeHoverEndLeft?: boolean;
424
+ /**
425
+ * @zh_CN hover 结束右边
426
+ * @en_US Range hover end right
427
+ */
428
+ isRangeHoverEndRight?: boolean;
429
+ /**
430
+ * @zh_CN 当前选中日期
431
+ * @en_US Current selected date
432
+ */
433
+ isActive?: boolean;
308
434
  }
309
435
  /**
310
436
  * @zh_CN 当前选择的是开始/结束日期
@@ -18,25 +18,26 @@ export declare class XDateRangePortalComponent implements OnInit, OnDestroy, Aft
18
18
  type: XDatePickerType;
19
19
  display: Date;
20
20
  model: Date;
21
- startModel: Date;
22
- endModel: Date;
21
+ startModel: Date | null;
22
+ endModel: Date | null;
23
23
  startYear: number;
24
24
  startDisplay: Date;
25
25
  endDisplay: Date;
26
- value: number[];
26
+ value: (number | null)[];
27
27
  valueChange: Subject<number[]>;
28
28
  positionChange: Subject<any>;
29
- inputActiveChange: Subject<'start' | 'end'>;
29
+ activeTypeChange: Subject<'start' | 'end'>;
30
30
  activeType: 'start' | 'end';
31
31
  animating: Function;
32
32
  closePortal: Function;
33
33
  destroyPortal: Function;
34
- nodeEmit: (date: Date[], sure?: boolean) => void;
35
- startNodeEmit: (date: Date) => void;
36
- endNodeEmit: (date: Date) => void;
34
+ nodeEmit: (date: Date[], close?: boolean) => void;
35
+ startNodeEmit: (date: Date | null, close?: boolean) => void;
36
+ endNodeEmit: (date: Date | null, close?: boolean) => void;
37
37
  locale: XI18nDatePicker;
38
38
  time: number;
39
39
  preset: XDatePickerPreset[];
40
+ nodeClickCount: number;
40
41
  private _type;
41
42
  private _unSubject;
42
43
  constructor(datePipe: DatePipe, lowerCasePipe: LowerCasePipe, cdr: ChangeDetectorRef, i18n: XI18nService);
@@ -47,7 +48,7 @@ export declare class XDateRangePortalComponent implements OnInit, OnDestroy, Aft
47
48
  stopPropagation(event: Event): void;
48
49
  setDefault(): void;
49
50
  setDisplay(date: Date): void;
50
- dateChange(date: Date, type: 'start' | 'end'): void;
51
+ dateChange(date: Date): void;
51
52
  typeChange(type: XDatePickerType): void;
52
53
  monthChange(date: Date): void;
53
54
  yearChange(date: Date): void;
@@ -2,7 +2,7 @@ import { XPortalService, XPortalOverlayRef } from '@ng-nest/ui/portal';
2
2
  import { Subject } from 'rxjs';
3
3
  import { OnInit, ChangeDetectorRef, Renderer2, ElementRef, OnChanges, ViewContainerRef, SimpleChanges } from '@angular/core';
4
4
  import { XDatePickerModelType, XDateRangeProperty } from './date-picker.property';
5
- import { XConfigService, XBoolean } from '@ng-nest/ui/core';
5
+ import { XConfigService } from '@ng-nest/ui/core';
6
6
  import { XInputComponent, XInputGroupComponent } from '@ng-nest/ui/input';
7
7
  import { DatePipe } from '@angular/common';
8
8
  import { Overlay, OverlayConfig } from '@angular/cdk/overlay';
@@ -21,8 +21,9 @@ export declare class XDateRangeComponent extends XDateRangeProperty implements O
21
21
  inputStartCom: XInputComponent;
22
22
  inputEndCom: XInputComponent;
23
23
  modelType: XDatePickerModelType;
24
- numberValue: number[];
24
+ numberValue: (number | null)[];
25
25
  isInput: boolean;
26
+ showClearable: boolean;
26
27
  get getRequired(): boolean | "";
27
28
  writeValue(value: any): void;
28
29
  enter: boolean;
@@ -38,12 +39,10 @@ export declare class XDateRangeComponent extends XDateRangeProperty implements O
38
39
  valueChange: Subject<any>;
39
40
  dataChange: Subject<any>;
40
41
  positionChange: Subject<any>;
41
- inputActiveChange: Subject<string>;
42
42
  closeSubject: Subject<void>;
43
+ activeTypeChange: Subject<"end" | "start">;
43
44
  startDisplay: string | number;
44
45
  endDisplay: string | number;
45
- startActive: XBoolean;
46
- endActive: XBoolean;
47
46
  activeType?: 'start' | 'end';
48
47
  private _unSubject;
49
48
  constructor(renderer: Renderer2, configService: XConfigService, cdr: ChangeDetectorRef, portalService: XPortalService, viewContainerRef: ViewContainerRef, datePipe: DatePipe, overlay: Overlay);
@@ -56,19 +55,22 @@ export declare class XDateRangeComponent extends XDateRangeProperty implements O
56
55
  menter(): void;
57
56
  mleave(): void;
58
57
  clearEmit(): void;
58
+ onIconClick(event: Event): void;
59
59
  modelChange(): void;
60
- getValue(): number[] | Date[] | (string | null)[];
60
+ getValue(): (number | null)[] | Date[] | (string | null)[];
61
+ getNumberValue(): any;
61
62
  portalAttached(): boolean | undefined;
62
63
  closePortal(): boolean;
63
64
  destroyPortal(): void;
64
65
  showPortal($event: Event, type?: 'start' | 'end'): void;
65
66
  setPosition(config: OverlayConfig): void;
66
67
  setInstance(): void;
67
- startNodeClick(node: Date): void;
68
- endNodeClick(node: Date): void;
69
- onNodeClick(dates: Date[], sure?: boolean): void;
68
+ startNodeClick(node?: Date, close?: boolean): void;
69
+ endNodeClick(node?: Date, close?: boolean): void;
70
+ onNodeClick(dates: Date[], close?: boolean): void;
70
71
  onInput(): void;
71
- setDisplayValue(dateNumber: number[]): void;
72
+ onFocus(type: 'start' | 'end'): void;
73
+ setDisplayValue(dateNumber: (number | null)[]): void;
72
74
  setPlacement(): import("@angular/cdk/overlay").PositionStrategy;
73
75
  setPortal(): void;
74
76
  setClassMap(): void;
@@ -1,6 +1,6 @@
1
1
  import { ChangeDetectorRef, Renderer2, OnChanges, SimpleChanges } from '@angular/core';
2
2
  import { XConfigService } from '@ng-nest/ui/core';
3
- import { XDatePickerType, XPickerDateProperty } from './date-picker.property';
3
+ import { XDateCell, XDatePickerType, XPickerDateProperty } from './date-picker.property';
4
4
  import { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';
5
5
  import { DatePipe, LowerCasePipe } from '@angular/common';
6
6
  import * as i0 from "@angular/core";
@@ -13,25 +13,34 @@ export declare class XPickerDateComponent extends XPickerDateProperty implements
13
13
  i18n: XI18nService;
14
14
  titles: string[];
15
15
  now: Date;
16
- dates: Date[][];
16
+ dates: XDateCell[];
17
+ weekDates: XDateCell[][];
18
+ clickCell?: XDateCell;
17
19
  locale: XI18nDatePicker;
18
20
  private _unSubject;
19
- get rangeStart(): number | "";
20
- get rangeEnd(): number | "";
21
+ get rangeStart(): number | "" | null;
22
+ get rangeEnd(): number | "" | null;
21
23
  constructor(renderer: Renderer2, datePipe: DatePipe, lowerCasePipe: LowerCasePipe, cdr: ChangeDetectorRef, configService: XConfigService, i18n: XI18nService);
22
24
  ngOnInit(): void;
23
25
  ngOnChanges(simples: SimpleChanges): void;
24
26
  ngOnDestroy(): void;
25
27
  init(): void;
28
+ isStartDate(date: Date): boolean | undefined;
29
+ isEndDate(date: Date): boolean | undefined;
30
+ setDatesState(cell: XDateCell): void;
31
+ onTdMouseenter(cell: XDateCell, isEmit?: boolean): void;
32
+ onTdMouseleave(cell: XDateCell, isEmit?: boolean): void;
33
+ clearState(...cells: XDateCell[]): void;
26
34
  setDays(date: Date): void;
27
- dateClick(date: Date): void;
35
+ setDayState(cell: XDateCell): XDateCell;
36
+ dateClick(cell: XDateCell): void;
28
37
  getLocaleMonth(date: Date): any;
29
38
  rangeDisabled(date: Date): boolean;
30
39
  setDisplay(date: Date): void;
31
40
  nextMonth(num: number): void;
32
41
  nextYear(num: number): void;
33
42
  typeOnChange(type: XDatePickerType): void;
34
- trackByNode(_index: number, item: string | Date): string | Date;
43
+ trackByNode(_index: number, item: string | Date | XDateCell): string | Date | XDateCell;
35
44
  static ɵfac: i0.ɵɵFactoryDeclaration<XPickerDateComponent, never>;
36
45
  static ɵcmp: i0.ɵɵComponentDeclaration<XPickerDateComponent, "x-picker-date", never, {}, {}, never, never, false, never>;
37
46
  }
@@ -7,35 +7,23 @@ export function XToDate(date) {
7
7
  return new Date(Date.parse(date));
8
8
  }
9
9
  }
10
- export function XAddSeconds(date, amount) {
10
+ export function XAddMilliseconds(date, amount) {
11
11
  let dt = XToDate(date);
12
12
  if (!isNaN(dt.valueOf()) && amount) {
13
- dt.setSeconds(dt.getSeconds() + amount);
14
- return dt;
13
+ return new Date(dt.getTime() + amount);
15
14
  }
16
15
  else {
17
16
  return date;
18
17
  }
19
18
  }
19
+ export function XAddSeconds(date, amount) {
20
+ return XAddMilliseconds(date, amount * 1000);
21
+ }
20
22
  export function XAddMinutes(date, amount) {
21
- let dt = XToDate(date);
22
- if (!isNaN(dt.valueOf()) && amount) {
23
- dt.setMinutes(dt.getMinutes() + amount);
24
- return dt;
25
- }
26
- else {
27
- return date;
28
- }
23
+ return XAddMilliseconds(date, amount * 60000);
29
24
  }
30
25
  export function XAddHours(date, amount) {
31
- let dt = XToDate(date);
32
- if (!isNaN(dt.valueOf()) && amount) {
33
- dt.setHours(dt.getHours() + amount);
34
- return dt;
35
- }
36
- else {
37
- return date;
38
- }
26
+ return XAddMilliseconds(date, amount * 3600000);
39
27
  }
40
28
  export function XAddDays(date, amount) {
41
29
  let dt = XToDate(date);
@@ -50,7 +38,17 @@ export function XAddDays(date, amount) {
50
38
  export function XAddMonths(date, amount) {
51
39
  let dt = XToDate(date);
52
40
  if (!isNaN(dt.valueOf()) && amount) {
53
- dt.setMonth(dt.getMonth() + amount);
41
+ const day = dt.getDate();
42
+ const month = dt.getMonth();
43
+ const endMonth = new Date(dt);
44
+ endMonth.setMonth(month + amount + 1, 0);
45
+ const endDay = endMonth.getDate();
46
+ if (day >= endDay) {
47
+ return endMonth;
48
+ }
49
+ else {
50
+ dt.setFullYear(endMonth.getFullYear(), endMonth.getMonth(), day);
51
+ }
54
52
  return dt;
55
53
  }
56
54
  else {
@@ -58,13 +56,6 @@ export function XAddMonths(date, amount) {
58
56
  }
59
57
  }
60
58
  export function XAddYears(date, amount) {
61
- let dt = XToDate(date);
62
- if (!isNaN(dt.valueOf()) && amount) {
63
- dt.setFullYear(dt.getFullYear() + amount);
64
- return dt;
65
- }
66
- else {
67
- return date;
68
- }
59
+ return XAddMonths(date, amount * 12);
69
60
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2NvcmUvZnVuY3Rpb25zL2RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxJQUFXO0lBQ2pDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNwQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3ZCO1NBQU07UUFDTCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBYyxDQUFDLENBQUMsQ0FBQztLQUM3QztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLElBQVcsRUFBRSxNQUFjO0lBQ3JELElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLE1BQU0sRUFBRTtRQUNsQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUN4QyxPQUFPLEVBQUUsQ0FBQztLQUNYO1NBQU07UUFDTCxPQUFPLElBQVksQ0FBQztLQUNyQjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLElBQVcsRUFBRSxNQUFjO0lBQ3JELElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLE1BQU0sRUFBRTtRQUNsQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUN4QyxPQUFPLEVBQUUsQ0FBQztLQUNYO1NBQU07UUFDTCxPQUFPLElBQVksQ0FBQztLQUNyQjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLElBQVcsRUFBRSxNQUFjO0lBQ25ELElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLE1BQU0sRUFBRTtRQUNsQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUNwQyxPQUFPLEVBQUUsQ0FBQztLQUNYO1NBQU07UUFDTCxPQUFPLElBQVksQ0FBQztLQUNyQjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLElBQVcsRUFBRSxNQUFjO0lBQ2xELElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLE1BQU0sRUFBRTtRQUNsQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLEVBQUUsQ0FBQztLQUNYO1NBQU07UUFDTCxPQUFPLElBQVksQ0FBQztLQUNyQjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLElBQVcsRUFBRSxNQUFjO0lBQ3BELElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLE1BQU0sRUFBRTtRQUNsQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUNwQyxPQUFPLEVBQUUsQ0FBQztLQUNYO1NBQU07UUFDTCxPQUFPLElBQVksQ0FBQztLQUNyQjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLElBQVcsRUFBRSxNQUFjO0lBQ25ELElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLE1BQU0sRUFBRTtRQUNsQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUMxQyxPQUFPLEVBQUUsQ0FBQztLQUNYO1NBQU07UUFDTCxPQUFPLElBQVksQ0FBQztLQUNyQjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBYSXNEYXRlLCBYSXNOdW1iZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCB0eXBlIFhEYXRlID0gc3RyaW5nIHwgRGF0ZSB8IG51bWJlcjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBYVG9EYXRlKGRhdGU6IFhEYXRlKTogRGF0ZSB7XHJcbiAgaWYgKFhJc0RhdGUoZGF0ZSkgfHwgWElzTnVtYmVyKGRhdGUpKSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLnBhcnNlKGRhdGUgYXMgc3RyaW5nKSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gWEFkZFNlY29uZHMoZGF0ZTogWERhdGUsIGFtb3VudDogbnVtYmVyKTogRGF0ZSB7XHJcbiAgbGV0IGR0ID0gWFRvRGF0ZShkYXRlKTtcclxuICBpZiAoIWlzTmFOKGR0LnZhbHVlT2YoKSkgJiYgYW1vdW50KSB7XHJcbiAgICBkdC5zZXRTZWNvbmRzKGR0LmdldFNlY29uZHMoKSArIGFtb3VudCk7XHJcbiAgICByZXR1cm4gZHQ7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBkYXRlIGFzIERhdGU7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gWEFkZE1pbnV0ZXMoZGF0ZTogWERhdGUsIGFtb3VudDogbnVtYmVyKTogRGF0ZSB7XHJcbiAgbGV0IGR0ID0gWFRvRGF0ZShkYXRlKTtcclxuICBpZiAoIWlzTmFOKGR0LnZhbHVlT2YoKSkgJiYgYW1vdW50KSB7XHJcbiAgICBkdC5zZXRNaW51dGVzKGR0LmdldE1pbnV0ZXMoKSArIGFtb3VudCk7XHJcbiAgICByZXR1cm4gZHQ7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBkYXRlIGFzIERhdGU7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gWEFkZEhvdXJzKGRhdGU6IFhEYXRlLCBhbW91bnQ6IG51bWJlcik6IERhdGUge1xyXG4gIGxldCBkdCA9IFhUb0RhdGUoZGF0ZSk7XHJcbiAgaWYgKCFpc05hTihkdC52YWx1ZU9mKCkpICYmIGFtb3VudCkge1xyXG4gICAgZHQuc2V0SG91cnMoZHQuZ2V0SG91cnMoKSArIGFtb3VudCk7XHJcbiAgICByZXR1cm4gZHQ7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBkYXRlIGFzIERhdGU7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gWEFkZERheXMoZGF0ZTogWERhdGUsIGFtb3VudDogbnVtYmVyKTogRGF0ZSB7XHJcbiAgbGV0IGR0ID0gWFRvRGF0ZShkYXRlKTtcclxuICBpZiAoIWlzTmFOKGR0LnZhbHVlT2YoKSkgJiYgYW1vdW50KSB7XHJcbiAgICBkdC5zZXREYXRlKGR0LmdldERhdGUoKSArIGFtb3VudCk7XHJcbiAgICByZXR1cm4gZHQ7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBkYXRlIGFzIERhdGU7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gWEFkZE1vbnRocyhkYXRlOiBYRGF0ZSwgYW1vdW50OiBudW1iZXIpOiBEYXRlIHtcclxuICBsZXQgZHQgPSBYVG9EYXRlKGRhdGUpO1xyXG4gIGlmICghaXNOYU4oZHQudmFsdWVPZigpKSAmJiBhbW91bnQpIHtcclxuICAgIGR0LnNldE1vbnRoKGR0LmdldE1vbnRoKCkgKyBhbW91bnQpO1xyXG4gICAgcmV0dXJuIGR0O1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZGF0ZSBhcyBEYXRlO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFhBZGRZZWFycyhkYXRlOiBYRGF0ZSwgYW1vdW50OiBudW1iZXIpOiBEYXRlIHtcclxuICBsZXQgZHQgPSBYVG9EYXRlKGRhdGUpO1xyXG4gIGlmICghaXNOYU4oZHQudmFsdWVPZigpKSAmJiBhbW91bnQpIHtcclxuICAgIGR0LnNldEZ1bGxZZWFyKGR0LmdldEZ1bGxZZWFyKCkgKyBhbW91bnQpO1xyXG4gICAgcmV0dXJuIGR0O1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZGF0ZSBhcyBEYXRlO1xyXG4gIH1cclxufVxyXG4iXX0=
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2NvcmUvZnVuY3Rpb25zL2RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxJQUFXO0lBQ2pDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUNwQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ3ZCO1NBQU07UUFDTCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBYyxDQUFDLENBQUMsQ0FBQztLQUM3QztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBVyxFQUFFLE1BQWM7SUFDMUQsSUFBSSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksTUFBTSxFQUFFO1FBQ2xDLE9BQU8sSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0tBQ3hDO1NBQU07UUFDTCxPQUFPLElBQVksQ0FBQztLQUNyQjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLElBQVcsRUFBRSxNQUFjO0lBQ3JELE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyxJQUFJLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxJQUFXLEVBQUUsTUFBYztJQUNyRCxPQUFPLGdCQUFnQixDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsSUFBVyxFQUFFLE1BQWM7SUFDbkQsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLElBQVcsRUFBRSxNQUFjO0lBQ2xELElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLE1BQU0sRUFBRTtRQUNsQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUNsQyxPQUFPLEVBQUUsQ0FBQztLQUNYO1NBQU07UUFDTCxPQUFPLElBQVksQ0FBQztLQUNyQjtBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLElBQVcsRUFBRSxNQUFjO0lBQ3BELElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLE1BQU0sRUFBRTtRQUNsQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVCLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xDLElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRTtZQUNqQixPQUFPLFFBQVEsQ0FBQztTQUNqQjthQUFNO1lBQ0wsRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ2xFO1FBQ0QsT0FBTyxFQUFFLENBQUM7S0FDWDtTQUFNO1FBQ0wsT0FBTyxJQUFZLENBQUM7S0FDckI7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxJQUFXLEVBQUUsTUFBYztJQUNuRCxPQUFPLFVBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBYSXNEYXRlLCBYSXNOdW1iZXIgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcclxuXHJcbmV4cG9ydCB0eXBlIFhEYXRlID0gc3RyaW5nIHwgRGF0ZSB8IG51bWJlcjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBYVG9EYXRlKGRhdGU6IFhEYXRlKTogRGF0ZSB7XHJcbiAgaWYgKFhJc0RhdGUoZGF0ZSkgfHwgWElzTnVtYmVyKGRhdGUpKSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShEYXRlLnBhcnNlKGRhdGUgYXMgc3RyaW5nKSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gWEFkZE1pbGxpc2Vjb25kcyhkYXRlOiBYRGF0ZSwgYW1vdW50OiBudW1iZXIpOiBEYXRlIHtcclxuICBsZXQgZHQgPSBYVG9EYXRlKGRhdGUpO1xyXG4gIGlmICghaXNOYU4oZHQudmFsdWVPZigpKSAmJiBhbW91bnQpIHtcclxuICAgIHJldHVybiBuZXcgRGF0ZShkdC5nZXRUaW1lKCkgKyBhbW91bnQpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZGF0ZSBhcyBEYXRlO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFhBZGRTZWNvbmRzKGRhdGU6IFhEYXRlLCBhbW91bnQ6IG51bWJlcik6IERhdGUge1xyXG4gIHJldHVybiBYQWRkTWlsbGlzZWNvbmRzKGRhdGUsIGFtb3VudCAqIDEwMDApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gWEFkZE1pbnV0ZXMoZGF0ZTogWERhdGUsIGFtb3VudDogbnVtYmVyKTogRGF0ZSB7XHJcbiAgcmV0dXJuIFhBZGRNaWxsaXNlY29uZHMoZGF0ZSwgYW1vdW50ICogNjAwMDApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gWEFkZEhvdXJzKGRhdGU6IFhEYXRlLCBhbW91bnQ6IG51bWJlcik6IERhdGUge1xyXG4gIHJldHVybiBYQWRkTWlsbGlzZWNvbmRzKGRhdGUsIGFtb3VudCAqIDM2MDAwMDApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gWEFkZERheXMoZGF0ZTogWERhdGUsIGFtb3VudDogbnVtYmVyKTogRGF0ZSB7XHJcbiAgbGV0IGR0ID0gWFRvRGF0ZShkYXRlKTtcclxuICBpZiAoIWlzTmFOKGR0LnZhbHVlT2YoKSkgJiYgYW1vdW50KSB7XHJcbiAgICBkdC5zZXREYXRlKGR0LmdldERhdGUoKSArIGFtb3VudCk7XHJcbiAgICByZXR1cm4gZHQ7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBkYXRlIGFzIERhdGU7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gWEFkZE1vbnRocyhkYXRlOiBYRGF0ZSwgYW1vdW50OiBudW1iZXIpOiBEYXRlIHtcclxuICBsZXQgZHQgPSBYVG9EYXRlKGRhdGUpO1xyXG4gIGlmICghaXNOYU4oZHQudmFsdWVPZigpKSAmJiBhbW91bnQpIHtcclxuICAgIGNvbnN0IGRheSA9IGR0LmdldERhdGUoKTtcclxuICAgIGNvbnN0IG1vbnRoID0gZHQuZ2V0TW9udGgoKTtcclxuICAgIGNvbnN0IGVuZE1vbnRoID0gbmV3IERhdGUoZHQpO1xyXG4gICAgZW5kTW9udGguc2V0TW9udGgobW9udGggKyBhbW91bnQgKyAxLCAwKTtcclxuICAgIGNvbnN0IGVuZERheSA9IGVuZE1vbnRoLmdldERhdGUoKTtcclxuICAgIGlmIChkYXkgPj0gZW5kRGF5KSB7XHJcbiAgICAgIHJldHVybiBlbmRNb250aDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGR0LnNldEZ1bGxZZWFyKGVuZE1vbnRoLmdldEZ1bGxZZWFyKCksIGVuZE1vbnRoLmdldE1vbnRoKCksIGRheSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZHQ7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBkYXRlIGFzIERhdGU7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gWEFkZFllYXJzKGRhdGU6IFhEYXRlLCBhbW91bnQ6IG51bWJlcik6IERhdGUge1xyXG4gIHJldHVybiBYQWRkTW9udGhzKGRhdGUsIGFtb3VudCAqIDEyKTtcclxufVxyXG4iXX0=
@@ -241,10 +241,25 @@ export class XPickerDateProperty extends XProperty {
241
241
  * @en_US display date event
242
242
  */
243
243
  this.displayChange = new EventEmitter();
244
+ /**
245
+ * @zh_CN 范围日期 mouseenter 事件
246
+ * @en_US Date mouseenter event
247
+ */
248
+ this.rangeTdMouseenter = new EventEmitter();
249
+ /**
250
+ * @zh_CN 范围日期 mouseleave 事件
251
+ * @en_US Date mouseleave event
252
+ */
253
+ this.rangeTdMouseleave = new EventEmitter();
254
+ /**
255
+ * @zh_CN 范围中的日期点击事件
256
+ * @en_US Range date click event
257
+ */
258
+ this.rangeDateClick = new EventEmitter();
244
259
  }
245
260
  }
246
261
  /** @nocollapse */ XPickerDateProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XPickerDateProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
247
- /** @nocollapse */ XPickerDateProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerDateProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", dateTemp: "dateTemp", showHeader: "showHeader", rangePicker: "rangePicker", lastYearBtn: "lastYearBtn", lastMonthBtn: "lastMonthBtn", nextYearBtn: "nextYearBtn", nextMonthBtn: "nextMonthBtn", rangeValue: "rangeValue", rangeType: "rangeType" }, outputs: { typeChange: "typeChange", modelChange: "modelChange", rangeChange: "rangeChange", yearChange: "yearChange", monthChange: "monthChange", displayChange: "displayChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
262
+ /** @nocollapse */ XPickerDateProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XPickerDateProperty, selector: "ng-component", inputs: { type: "type", display: "display", model: "model", dateTemp: "dateTemp", showHeader: "showHeader", rangePicker: "rangePicker", lastYearBtn: "lastYearBtn", lastMonthBtn: "lastMonthBtn", nextYearBtn: "nextYearBtn", nextMonthBtn: "nextMonthBtn", rangeValue: "rangeValue", rangeType: "rangeType" }, outputs: { typeChange: "typeChange", modelChange: "modelChange", rangeChange: "rangeChange", yearChange: "yearChange", monthChange: "monthChange", displayChange: "displayChange", rangeTdMouseenter: "rangeTdMouseenter", rangeTdMouseleave: "rangeTdMouseleave", rangeDateClick: "rangeDateClick" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
248
263
  __decorate([
249
264
  XInputBoolean()
250
265
  ], XPickerDateProperty.prototype, "showHeader", void 0);
@@ -302,6 +317,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
302
317
  type: Output
303
318
  }], displayChange: [{
304
319
  type: Output
320
+ }], rangeTdMouseenter: [{
321
+ type: Output
322
+ }], rangeTdMouseleave: [{
323
+ type: Output
324
+ }], rangeDateClick: [{
325
+ type: Output
305
326
  }] } });
306
327
  /**
307
328
  * PickerMonth
@@ -439,4 +460,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
439
460
  }], startChange: [{
440
461
  type: Output
441
462
  }] } });
442
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGFBQWEsRUFDYixTQUFTLEVBR1QsV0FBVyxFQUdYLFlBQVksRUFHYixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7O0FBRTNFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFDakQsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDO0FBRW5DOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHFCQUEwQjtJQURuRTs7UUFFRTs7O1dBR0c7UUFDTSxTQUFJLEdBQW9CLE1BQU0sQ0FBQztRQTBCeEM7OztXQUdHO1FBQ3NCLFdBQU0sR0FBNkIsRUFBRSxDQUFDO1FBQy9EOzs7V0FHRztRQUNPLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBQ2pEOzttSUF6Q1ksbUJBQW1CO3VIQUFuQixtQkFBbUIsZ1FBRFQsRUFBRTtBQVdvQztJQUFqRCxXQUFXLENBQVMsYUFBYSxFQUFFLFlBQVksQ0FBQzttREFBaUI7QUFLTDtJQUE1RCxXQUFXLENBQVcsYUFBYSxFQUFFLElBQUksQ0FBQztJQUFFLGFBQWEsRUFBRTtzREFBc0I7QUFLN0I7SUFBcEQsV0FBVyxDQUFVLGFBQWEsRUFBRSxjQUFjLENBQUM7c0RBQXFCO0FBSzVCO0lBQTVDLFdBQVcsQ0FBUSxhQUFhLEVBQUUsUUFBUSxDQUFDO2lEQUF1QjtBQUtOO0lBQTVELGFBQWEsRUFBRTtJ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QUFJLElBQUksRUFBRSxDQUFDO1FBTXBDOzs7V0FHRztRQUN1QixlQUFVLEdBQWEsSUFBSSxDQUFDO1FBQ3REOzs7V0FHRztRQUNPLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNqRDs7O1dBR0c7UUFDTyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFDM0Q7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBQ3BEOzttSUFwQ1ksbUJBQW1CO3VIQUFuQixtQkFBbUIsa1FBRFQsRUFBRTtBQXFCRztJQUFoQixhQUFhLEVBQUU7dURBQTZCOzJGQXBCM0MsbUJBQW1CO2tCQUQvQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs4QkFNaEIsSUFBSTtzQkFBWixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS29CLFVBQVU7c0JBQW5DLEtBQUs7Z0JBS0ksV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxVQUFVO3NCQUFuQixNQUFNO2dCQUtHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIFhJbnB1dEJvb2xlYW4sXHJcbiAgWFByb3BlcnR5LFxyXG4gIFhCb29sZWFuLFxyXG4gIFhDb3JuZXIsXHJcbiAgWFdpdGhDb25maWcsXHJcbiAgWFNpemUsXHJcbiAgWFRlbXBsYXRlLFxyXG4gIFhEYXRhQ29udmVydCxcclxuICBYRGF0YSxcclxuICBYSWRlbnRpdHlQcm9wZXJ0eVxyXG59IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBYRm9ybU9wdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG4vKipcclxuICogRGF0ZVBpY2tlclxyXG4gKiBAc2VsZWN0b3IgeC1kYXRlLXBpY2tlclxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhEYXRlUGlja2VyUHJlZml4ID0gJ3gtZGF0ZS1waWNrZXInO1xyXG5jb25zdCBYX0NPTkZJR19OQU1FID0gJ2RhdGVQaWNrZXInO1xyXG5cclxuLyoqXHJcbiAqIERhdGVQaWNrZXIgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhEYXRlUGlja2VyUHJvcGVydHkgZXh0ZW5kcyBYQ29udHJvbFZhbHVlQWNjZXNzb3I8YW55PiBpbXBsZW1lbnRzIFhEYXRlUGlja2VyT3B0aW9uIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoLzlvI/ljJbnsbvlnotcclxuICAgKiBAZW5fVVMgRm9ybWF0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nPihYX0NPTkZJR19OQU1FLCAneXl5eS1NTS1kZCcpIGZvcm1hdD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5riF6Zmk5oyJ6ZKuXHJcbiAgICogQGVuX1VTIENsZWFyIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgdHJ1ZSkgQFhJbnB1dEJvb2xlYW4oKSBjbGVhcmFibGU/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bGV56S65pa55L2NXHJcbiAgICogQGVuX1VTIERpc3BsYXkgcG9zaXRpb25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WENvcm5lcj4oWF9DT05GSUdfTkFNRSwgJ2JvdHRvbS1zdGFydCcpIHBsYWNlbWVudD86IFhDb3JuZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWwuuWvuFxyXG4gICAqIEBlbl9VUyBTaXplXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhTaXplPihYX0NPTkZJR19OQU1FLCAnbWVkaXVtJykgb3ZlcnJpZGUgc2l6ZSE6IFhTaXplO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrovrnmoYZcclxuICAgKiBAZW5fVVMgRGlzcGxheSBCb3JkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfTkFNRSwgdHJ1ZSkgYm9yZGVyZWQhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b+r5o236YCJ5oup5oyJ6ZKu77yM5pSv5oyB5LuK5aSpLOaYqOWkqSzmmI7lpKlcclxuICAgKiBAZW5fVVMgUXVpY2sgc2VsZWN0aW9uIGJ1dHRvbiwgc3VwcG9ydCB0b2RheSwgeWVzdGVyZGF5LCB0b21vcnJvd1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYRGF0YUNvbnZlcnQoKSBwcmVzZXQ6IFhEYXRhPFhEYXRlUGlja2VyUHJlc2V0PiA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnngrnlh7vnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgTm9kZSBjbGljayBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBub2RlRW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG59XHJcblxyXG4vKipcclxuICogRGF0ZVBpY2tlciBPcHRpb25cclxuICogQHVuZG9jdW1lbnQgdHJ1ZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYRGF0ZVBpY2tlck9wdGlvbiBleHRlbmRzIFhGb3JtT3B0aW9uIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIENob29zZSBhIHR5cGVcclxuICAgKi9cclxuICB0eXBlPzogWERhdGVQaWNrZXJUeXBlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoLzlvI/ljJbnsbvlnotcclxuICAgKiBAZW5fVVMgRm9ybWF0IHR5cGVcclxuICAgKi9cclxuICBmb3JtYXQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa4hemZpOaMiemSrlxyXG4gICAqIEBlbl9VUyBDbGVhciBidXR0b25cclxuICAgKi9cclxuICBjbGVhcmFibGU/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bGV56S65pa55L2NXHJcbiAgICogQGVuX1VTIERpc3BsYXkgcG9zaXRpb25cclxuICAgKi9cclxuICBwbGFjZW1lbnQ/OiBYQ29ybmVyO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsLrlr7hcclxuICAgKiBAZW5fVVMgU2l6ZVxyXG4gICAqL1xyXG4gIHNpemU/OiBYU2l6ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S66L655qGGXHJcbiAgICogQGVuX1VTIERpc3BsYXkgQm9yZGVyXHJcbiAgICovXHJcbiAgYm9yZGVyZWQ/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YmN572u5qCH562+XHJcbiAgICogQGVuX1VTIEJlZm9yZSBsYWJlbFxyXG4gICAqL1xyXG4gIGJlZm9yZT86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5ZCO572u5qCH562+XHJcbiAgICogQGVuX1VTIEFmdGVyIGxhYmVsXHJcbiAgICovXHJcbiAgYWZ0ZXI/OiBYVGVtcGxhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueeCueWHu+eahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBOb2RlIGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgbm9kZUNsaWNrPzogKHZhbHVlOiBudW1iZXIpID0+IHZvaWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEYXRlUmFuZ2VcclxuICogQHNlbGVjdG9yIHgtZGF0ZS1yYW5nZVxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhEYXRlUmFuZ2VQcmVmaXggPSAneC1kYXRlLXJhbmdlJztcclxuY29uc3QgWF9DT05GSUdfUkFOR0VfTkFNRSA9ICdkYXRlUmFuZ2UnO1xyXG5cclxuLyoqXHJcbiAqIERhdGVSYW5nZSBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWERhdGVSYW5nZVByb3BlcnR5IGV4dGVuZHMgWENvbnRyb2xWYWx1ZUFjY2Vzc29yPGFueT4gaW1wbGVtZW50cyBYRGF0ZVJhbmdlT3B0aW9uIHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoLzlvI/ljJbnsbvlnotcclxuICAgKiBAZW5fVVMgRm9ybWF0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8c3RyaW5nPihYX0NPTkZJR19SQU5HRV9OQU1FLCAneXl5eS1NTS1kZCcpIGZvcm1hdD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5riF6Zmk5oyJ6ZKuXHJcbiAgICogQGVuX1VTIENsZWFyIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfUkFOR0VfTkFNRSwgdHJ1ZSkgQFhJbnB1dEJvb2xlYW4oKSBjbGVhcmFibGU/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bGV56S65pa55L2NXHJcbiAgICogQGVuX1VTIERpc3BsYXkgcG9zaXRpb25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WENvcm5lcj4oWF9DT05GSUdfUkFOR0VfTkFNRSwgJ2JvdHRvbS1zdGFydCcpIHBsYWNlbWVudD86IFhDb3JuZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWwuuWvuFxyXG4gICAqIEBlbl9VUyBTaXplXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhTaXplPihYX0NPTkZJR19SQU5HRV9OQU1FLCAnbWVkaXVtJykgb3ZlcnJpZGUgc2l6ZSE6IFhTaXplO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrovrnmoYZcclxuICAgKiBAZW5fVVMgRGlzcGxheSBCb3JkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIEBYV2l0aENvbmZpZzxYQm9vbGVhbj4oWF9DT05GSUdfUkFOR0VfTkFNRSwgdHJ1ZSkgYm9yZGVyZWQhOiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b+r5o236YCJ5oup5oyJ6ZKu77yM5pSv5oyB5LuK5aSpLOaYqOWkqSzmmI7lpKlcclxuICAgKiBAZW5fVVMgUXVpY2sgc2VsZWN0aW9uIGJ1dHRvbiwgc3VwcG9ydCB0b2RheSwgeWVzdGVyZGF5LCB0b21vcnJvd1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYRGF0YUNvbnZlcnQoKSBwcmVzZXQ6IFhEYXRhPFhEYXRlUGlja2VyUHJlc2V0PiA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnngrnlh7vnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgTm9kZSBjbGljayBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBub2RlRW1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyW10+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEYXRlUmFuZ2UgT3B0aW9uXHJcbiAqIEB1bmRvY3VtZW50IHRydWVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWERhdGVSYW5nZU9wdGlvbiBleHRlbmRzIFhGb3JtT3B0aW9uIHtcclxuICAvKipcclxuICAgKiBAemhfQ04gdGFiIOmUruaOp+WItuasoeW6j1xyXG4gICAqIEBlbl9VUyBUYWIga2V5IGNvbnRyb2wgb3JkZXJcclxuICAgKi9cclxuICB0YWJpbmRleD86IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDlv6vmjbfpgInmi6nmjInpkq5cclxuICogQGVuX1VTIFF1aWNrIHNlbGVjdGlvbiBidXR0b25cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWERhdGVQaWNrZXJQcmVzZXQgZXh0ZW5kcyBYSWRlbnRpdHlQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiHquWumuS5ieWHveaVsFxyXG4gICAqIEBlbl9VUyBDdXN0b20gZnVuY3Rpb25cclxuICAgKi9cclxuICBmdW5jOiAoKSA9PiBEYXRlO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOaXpeacn+mAieaLqeexu+Wei1xyXG4gKiBAZW5fVVMgRGF0ZSBzZWxlY3Rpb24gdHlwZVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnIHwgJ21vbnRoJyB8ICd5ZWFyJyB8ICdkYXRlLXRpbWUnIHwgJ2RhdGUtaG91cicgfCAnZGF0ZS1taW51dGUnO1xyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDml6XmnJ/mlbDmja7nsbvlnotcclxuICogQGVuX1VTIERhdGUgZGF0YSB0eXBlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYRGF0ZVBpY2tlck1vZGVsVHlwZSA9ICdkYXRlJyB8ICdudW1iZXInIHwgJ3N0cmluZyc7XHJcblxyXG4vKipcclxuICogRGF0ZVBpY2tlciBQb3J0YWxcclxuICogQHNlbGVjdG9yIHgtZGF0ZS1waWNrZXItcG9ydGFsXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWERhdGVQaWNrZXJQb3J0YWxQcmVmaXggPSAneC1kYXRlLXBpY2tlci1wb3J0YWwnO1xyXG5cclxuLyoqXHJcbiAqIERhdGVSYW5nZSBQb3J0YWxcclxuICogQHNlbGVjdG9yIHgtZGF0ZS1yYW5nZS1wb3J0YWxcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYRGF0ZVJhbmdlUG9ydGFsUHJlZml4ID0gJ3gtZGF0ZS1yYW5nZS1wb3J0YWwnO1xyXG5cclxuLyoqXHJcbiAqIFBpY2tlckRhdGVcclxuICogQHNlbGVjdG9yIHgtcGlja2VyLWRhdGVcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYUGlja2VyRGF0ZVByZWZpeCA9ICd4LXBpY2tlci1kYXRlJztcclxuXHJcbi8qKlxyXG4gKiBQaWNrZXJEYXRlIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYUGlja2VyRGF0ZVByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrnmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgRGF0ZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNwbGF5ID0gbmV3IERhdGUoKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5pel5pyfXHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBtb2RlbD86IERhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaXpeacn+aYvuekuuaooeadv1xyXG4gICAqIEBlbl9VUyBEYXRlIGRpc3BsYXkgdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBkYXRlVGVtcD86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuWIh+aNouaMiemSrlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHN3aXRjaCBidXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIHNob3dIZWFkZXI6IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu06YCJ5oupXHJcbiAgICogQGVuX1VTIFJhbmdlIHBpY2tlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgcmFuZ2VQaWNrZXI/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5LiA5bm0XHJcbiAgICogQGVuX1VTIExhc3QgeWVhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbGFzdFllYXJCdG46IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5pyIXHJcbiAgICogQGVuX1VTIExhc3QgbW9udGhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGxhc3RNb250aEJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIvkuIDlubRcclxuICAgKiBAZW5fVVMgTmV4dCB5ZWFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBuZXh0WWVhckJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIrmnIhcclxuICAgKiBAZW5fVVMgTmV4dCBtb250aFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbmV4dE1vbnRoQnRuOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOaXpeacn1xyXG4gICAqIEBlbl9VUyBSYW5nZSBkYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcmFuZ2VWYWx1ZTogbnVtYmVyW10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5oup55qE5piv5byA5aeLL+e7k+adn+aXpeacn1xyXG4gICAqIEBlbl9VUyBUaGUgY3VycmVudCBjaG9pY2UgaXMgdGhlIHN0YXJ0IC8gZW5kIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSByYW5nZVR5cGUhOiBYRGF0ZVBpY2tlclJhbmdUeXBlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdHlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVQaWNrZXJUeXBlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTY29wZSBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVbXT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5bm055qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFllYXIgY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHllYXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5pyI55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIE1vbnRoIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBtb250aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrml6XmnJ/kuovku7ZcclxuICAgKiBAZW5fVVMgZGlzcGxheSBkYXRlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGRpc3BsYXlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5b2T5YmN6YCJ5oup55qE5piv5byA5aeLL+e7k+adn+aXpeacn1xyXG4gKiBAZW5fVVMgVGhlIGN1cnJlbnQgY2hvaWNlIGlzIHRoZSBzdGFydCAvIGVuZCBkYXRlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYRGF0ZVBpY2tlclJhbmdUeXBlID0gJ3N0YXJ0JyB8ICdlbmQnO1xyXG5cclxuLyoqXHJcbiAqIFBpY2tlck1vbnRoXHJcbiAqIEBzZWxlY3RvciB4LXBpY2tlci1tb250aFxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhQaWNrZXJNb250aFByZWZpeCA9ICd4LXBpY2tlci1tb250aCc7XHJcblxyXG4vKipcclxuICogUGlja2VyTW9udGggUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhQaWNrZXJNb250aFByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrnmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgRGF0ZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNwbGF5OiBEYXRlID0gbmV3IERhdGUoKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5pel5pyfXHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBtb2RlbD86IERhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaciOS7veaYvuekuuaooeadv1xyXG4gICAqIEBlbl9VUyBNb250aCBkaXNwbGF5IHRlbXBsYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgbW9udGhUZW1wPzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65YiH5o2i5oyJ6ZKuXHJcbiAgICogQGVuX1VTIERpc3BsYXkgc3dpdGNoIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgc2hvd0hlYWRlcjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieaLqeexu+Wei1xyXG4gICAqIEBlbl9VUyBTZWxlY3QgdHlwZVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB0eXBlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxYRGF0ZVBpY2tlclR5cGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTY29wZSBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVbXT4oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFBpY2tlclllYXJcclxuICogQHNlbGVjdG9yIHgtcGlja2VyLXllYXJcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYUGlja2VyWWVhclByZWZpeCA9ICd4LXBpY2tlci15ZWFyJztcclxuXHJcbi8qKlxyXG4gKiBQaWNrZXJZZWFyIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYUGlja2VyWWVhclByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrnmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgRGF0ZSBkaXNwbGF5ZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBkaXNwbGF5OiBEYXRlID0gbmV3IERhdGUoKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5pel5pyfXHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBtb2RlbD86IERhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuWIh+aNouaMiemSrlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHN3aXRjaCBidXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIHNob3dIZWFkZXI6IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNlbGVjdGVkIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG1vZGVsQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdHlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVQaWNrZXJUeXBlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvIDlp4vlubTku73lj5jljJbnmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU3RhcnQgeWVhciBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgc3RhcnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxufVxyXG4iXX0=
463
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIucHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGFBQWEsRUFDYixTQUFTLEVBR1QsV0FBVyxFQUdYLFlBQVksRUFHYixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFlLE1BQU0sdUJBQXVCLENBQUM7O0FBRTNFOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxlQUFlLENBQUM7QUFDakQsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDO0FBRW5DOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHFCQUEwQjtJQURuRTs7UUFFRTs7O1dBR0c7UUFDTSxTQUFJLEdBQW9CLE1BQU0sQ0FBQztRQTBCeEM7OztXQUdHO1FBQ3NCLFdBQU0sR0FBNkIsRUFBRSxDQUFDO1FBQy9EOzs7V0FHRztRQUNPLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBQ2pEOzttSUF6Q1ksbUJBQW1CO3VIQUFuQixtQkFBbUIsZ1FBRFQsRUFBRTtBQVdvQztJQUFqRCxXQUFXLENBQVMsYUFBYSxFQUFFLFlBQVksQ0FBQzttREFBaUI7QUFLTDtJQUE1RCxXQUFXLENBQVcsYUFBYSxFQUFFLElBQUksQ0FBQztJQUFFLGFBQWEsRUFBRTtzREFBc0I7QUFLN0I7SUFBcEQsV0FBVyxDQUFVLGFBQWEsRUFBRSxjQUFjLENBQUM7c0RBQXFCO0FBSzVCO0lBQTVDLFdBQVcsQ0FBUSxhQUFhLEVBQUUsUUFBUSxDQUFDO2lEQUF1QjtBQUtOO0lBQTVELGFBQWEsRUFBRTtJ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QUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTTs7QUFHVDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsZUFBZSxDQUFDO0FBRWpEOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFNBQVM7SUFEbEQ7O1FBRUU7OztXQUdHO1FBQ00sU0FBSSxHQUFvQixNQUFNLENBQUM7UUFDeEM7OztXQUdHO1FBQ00sWUFBTyxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7UUFNcEM7OztXQUdHO1FBQ3VCLGVBQVUsR0FBYSxJQUFJLENBQUM7UUFDdEQ7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2pEOzs7V0FHRztRQUNPLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUMzRDs7O1dBR0c7UUFDTyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0FDcEQ7O21JQXBDWSxtQkFBbUI7dUhBQW5CLG1CQUFtQixrUUFEVCxFQUFFO0FBcUJHO0lBQWhCLGFBQWEsRUFBRTt1REFBNkI7MkZBcEIzQyxtQkFBbUI7a0JBRC9CLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzhCQU1oQixJQUFJO3NCQUFaLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFLb0IsVUFBVTtzQkFBbkMsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgWElucHV0Qm9vbGVhbixcclxuICBYUHJvcGVydHksXHJcbiAgWEJvb2xlYW4sXHJcbiAgWENvcm5lcixcclxuICBYV2l0aENvbmZpZyxcclxuICBYU2l6ZSxcclxuICBYVGVtcGxhdGUsXHJcbiAgWERhdGFDb252ZXJ0LFxyXG4gIFhEYXRhLFxyXG4gIFhJZGVudGl0eVByb3BlcnR5XHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IElucHV0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgVGVtcGxhdGVSZWYsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ29udHJvbFZhbHVlQWNjZXNzb3IsIFhGb3JtT3B0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvYmFzZS1mb3JtJztcclxuXHJcbi8qKlxyXG4gKiBEYXRlUGlja2VyXHJcbiAqIEBzZWxlY3RvciB4LWRhdGUtcGlja2VyXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWERhdGVQaWNrZXJQcmVmaXggPSAneC1kYXRlLXBpY2tlcic7XHJcbmNvbnN0IFhfQ09ORklHX05BTUUgPSAnZGF0ZVBpY2tlcic7XHJcblxyXG4vKipcclxuICogRGF0ZVBpY2tlciBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWERhdGVQaWNrZXJQcm9wZXJ0eSBleHRlbmRzIFhDb250cm9sVmFsdWVBY2Nlc3Nvcjxhbnk+IGltcGxlbWVudHMgWERhdGVQaWNrZXJPcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagvOW8j+WMluexu+Wei1xyXG4gICAqIEBlbl9VUyBGb3JtYXQgdHlwZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxzdHJpbmc+KFhfQ09ORklHX05BTUUsICd5eXl5LU1NLWRkJykgZm9ybWF0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuIXpmaTmjInpkq5cclxuICAgKiBAZW5fVVMgQ2xlYXIgYnV0dG9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCB0cnVlKSBAWElucHV0Qm9vbGVhbigpIGNsZWFyYWJsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXnpLrmlrnkvY1cclxuICAgKiBAZW5fVVMgRGlzcGxheSBwb3NpdGlvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQ29ybmVyPihYX0NPTkZJR19OQU1FLCAnYm90dG9tLXN0YXJ0JykgcGxhY2VtZW50PzogWENvcm5lcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bC65a+4XHJcbiAgICogQGVuX1VTIFNpemVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WFNpemU+KFhfQ09ORklHX05BTUUsICdtZWRpdW0nKSBvdmVycmlkZSBzaXplITogWFNpemU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuui+ueahhlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IEJvcmRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCB0cnVlKSBib3JkZXJlZCE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlv6vmjbfpgInmi6nmjInpkq7vvIzmlK/mjIHku4rlpKks5pio5aSpLOaYjuWkqVxyXG4gICAqIEBlbl9VUyBRdWljayBzZWxlY3Rpb24gYnV0dG9uLCBzdXBwb3J0IHRvZGF5LCB5ZXN0ZXJkYXksIHRvbW9ycm93XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhEYXRhQ29udmVydCgpIHByZXNldDogWERhdGE8WERhdGVQaWNrZXJQcmVzZXQ+ID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueeCueWHu+eahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBOb2RlIGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG5vZGVFbWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEYXRlUGlja2VyIE9wdGlvblxyXG4gKiBAdW5kb2N1bWVudCB0cnVlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhEYXRlUGlja2VyT3B0aW9uIGV4dGVuZHMgWEZvcm1PcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgQ2hvb3NlIGEgdHlwZVxyXG4gICAqL1xyXG4gIHR5cGU/OiBYRGF0ZVBpY2tlclR5cGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagvOW8j+WMluexu+Wei1xyXG4gICAqIEBlbl9VUyBGb3JtYXQgdHlwZVxyXG4gICAqL1xyXG4gIGZvcm1hdD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5riF6Zmk5oyJ6ZKuXHJcbiAgICogQGVuX1VTIENsZWFyIGJ1dHRvblxyXG4gICAqL1xyXG4gIGNsZWFyYWJsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXnpLrmlrnkvY1cclxuICAgKiBAZW5fVVMgRGlzcGxheSBwb3NpdGlvblxyXG4gICAqL1xyXG4gIHBsYWNlbWVudD86IFhDb3JuZXI7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWwuuWvuFxyXG4gICAqIEBlbl9VUyBTaXplXHJcbiAgICovXHJcbiAgc2l6ZT86IFhTaXplO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrovrnmoYZcclxuICAgKiBAZW5fVVMgRGlzcGxheSBCb3JkZXJcclxuICAgKi9cclxuICBib3JkZXJlZD86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliY3nva7moIfnrb5cclxuICAgKiBAZW5fVVMgQmVmb3JlIGxhYmVsXHJcbiAgICovXHJcbiAgYmVmb3JlPzogWFRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlkI7nva7moIfnrb5cclxuICAgKiBAZW5fVVMgQWZ0ZXIgbGFiZWxcclxuICAgKi9cclxuICBhZnRlcj86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K554K55Ye755qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIE5vZGUgY2xpY2sgZXZlbnRcclxuICAgKi9cclxuICBub2RlQ2xpY2s/OiAodmFsdWU6IG51bWJlcikgPT4gdm9pZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIERhdGVSYW5nZVxyXG4gKiBAc2VsZWN0b3IgeC1kYXRlLXJhbmdlXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWERhdGVSYW5nZVByZWZpeCA9ICd4LWRhdGUtcmFuZ2UnO1xyXG5jb25zdCBYX0NPTkZJR19SQU5HRV9OQU1FID0gJ2RhdGVSYW5nZSc7XHJcblxyXG4vKipcclxuICogRGF0ZVJhbmdlIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYRGF0ZVJhbmdlUHJvcGVydHkgZXh0ZW5kcyBYQ29udHJvbFZhbHVlQWNjZXNzb3I8YW55PiBpbXBsZW1lbnRzIFhEYXRlUmFuZ2VPcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagvOW8j+WMluexu+Wei1xyXG4gICAqIEBlbl9VUyBGb3JtYXQgdHlwZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxzdHJpbmc+KFhfQ09ORklHX1JBTkdFX05BTUUsICd5eXl5LU1NLWRkJykgZm9ybWF0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmuIXpmaTmjInpkq5cclxuICAgKiBAZW5fVVMgQ2xlYXIgYnV0dG9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19SQU5HRV9OQU1FLCB0cnVlKSBAWElucHV0Qm9vbGVhbigpIGNsZWFyYWJsZT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsZXnpLrmlrnkvY1cclxuICAgKiBAZW5fVVMgRGlzcGxheSBwb3NpdGlvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYQ29ybmVyPihYX0NPTkZJR19SQU5HRV9OQU1FLCAnYm90dG9tLXN0YXJ0JykgcGxhY2VtZW50PzogWENvcm5lcjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bC65a+4XHJcbiAgICogQGVuX1VTIFNpemVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WFNpemU+KFhfQ09ORklHX1JBTkdFX05BTUUsICdtZWRpdW0nKSBvdmVycmlkZSBzaXplITogWFNpemU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuui+ueahhlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IEJvcmRlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19SQU5HRV9OQU1FLCB0cnVlKSBib3JkZXJlZCE6IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlv6vmjbfpgInmi6nmjInpkq7vvIzmlK/mjIHku4rlpKks5pio5aSpLOaYjuWkqVxyXG4gICAqIEBlbl9VUyBRdWljayBzZWxlY3Rpb24gYnV0dG9uLCBzdXBwb3J0IHRvZGF5LCB5ZXN0ZXJkYXksIHRvbW9ycm93XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhEYXRhQ29udmVydCgpIHByZXNldDogWERhdGE8WERhdGVQaWNrZXJQcmVzZXQ+ID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueeCueWHu+eahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBOb2RlIGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG5vZGVFbWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXJbXT4oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIERhdGVSYW5nZSBPcHRpb25cclxuICogQHVuZG9jdW1lbnQgdHJ1ZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYRGF0ZVJhbmdlT3B0aW9uIGV4dGVuZHMgWEZvcm1PcHRpb24ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiB0YWIg6ZSu5o6n5Yi25qyh5bqPXHJcbiAgICogQGVuX1VTIFRhYiBrZXkgY29udHJvbCBvcmRlclxyXG4gICAqL1xyXG4gIHRhYmluZGV4PzogbnVtYmVyO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOW/q+aNt+mAieaLqeaMiemSrlxyXG4gKiBAZW5fVVMgUXVpY2sgc2VsZWN0aW9uIGJ1dHRvblxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYRGF0ZVBpY2tlclByZXNldCBleHRlbmRzIFhJZGVudGl0eVByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6Ieq5a6a5LmJ5Ye95pWwXHJcbiAgICogQGVuX1VTIEN1c3RvbSBmdW5jdGlvblxyXG4gICAqL1xyXG4gIGZ1bmM6ICgpID0+IERhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5pel5pyf6YCJ5oup57G75Z6LXHJcbiAqIEBlbl9VUyBEYXRlIHNlbGVjdGlvbiB0eXBlXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZScgfCAnbW9udGgnIHwgJ3llYXInIHwgJ2RhdGUtdGltZScgfCAnZGF0ZS1ob3VyJyB8ICdkYXRlLW1pbnV0ZSc7XHJcblxyXG4vKipcclxuICogQHpoX0NOIOaXpeacn+aVsOaNruexu+Wei1xyXG4gKiBAZW5fVVMgRGF0ZSBkYXRhIHR5cGVcclxuICovXHJcbmV4cG9ydCB0eXBlIFhEYXRlUGlja2VyTW9kZWxUeXBlID0gJ2RhdGUnIHwgJ251bWJlcicgfCAnc3RyaW5nJztcclxuXHJcbi8qKlxyXG4gKiBEYXRlUGlja2VyIFBvcnRhbFxyXG4gKiBAc2VsZWN0b3IgeC1kYXRlLXBpY2tlci1wb3J0YWxcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYRGF0ZVBpY2tlclBvcnRhbFByZWZpeCA9ICd4LWRhdGUtcGlja2VyLXBvcnRhbCc7XHJcblxyXG4vKipcclxuICogRGF0ZVJhbmdlIFBvcnRhbFxyXG4gKiBAc2VsZWN0b3IgeC1kYXRlLXJhbmdlLXBvcnRhbFxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhEYXRlUmFuZ2VQb3J0YWxQcmVmaXggPSAneC1kYXRlLXJhbmdlLXBvcnRhbCc7XHJcblxyXG4vKipcclxuICogUGlja2VyRGF0ZVxyXG4gKiBAc2VsZWN0b3IgeC1waWNrZXItZGF0ZVxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhQaWNrZXJEYXRlUHJlZml4ID0gJ3gtcGlja2VyLWRhdGUnO1xyXG5cclxuLyoqXHJcbiAqIFBpY2tlckRhdGUgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhQaWNrZXJEYXRlUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuueahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc3BsYXkgPSBuZXcgRGF0ZSgpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1vZGVsPzogRGF0ZSB8IG51bGw7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaXpeacn+aYvuekuuaooeadv1xyXG4gICAqIEBlbl9VUyBEYXRlIGRpc3BsYXkgdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBkYXRlVGVtcD86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuuWIh+aNouaMiemSrlxyXG4gICAqIEBlbl9VUyBEaXNwbGF5IHN3aXRjaCBidXR0b25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIHNob3dIZWFkZXI6IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu06YCJ5oupXHJcbiAgICogQGVuX1VTIFJhbmdlIHBpY2tlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgcmFuZ2VQaWNrZXI/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5LiA5bm0XHJcbiAgICogQGVuX1VTIExhc3QgeWVhclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbGFzdFllYXJCdG46IFhCb29sZWFuID0gdHJ1ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LiK5pyIXHJcbiAgICogQGVuX1VTIExhc3QgbW9udGhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGxhc3RNb250aEJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIvkuIDlubRcclxuICAgKiBAZW5fVVMgTmV4dCB5ZWFyXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBuZXh0WWVhckJ0bjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuIrmnIhcclxuICAgKiBAZW5fVVMgTmV4dCBtb250aFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgbmV4dE1vbnRoQnRuOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOaXpeacn1xyXG4gICAqIEBlbl9VUyBSYW5nZSBkYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcmFuZ2VWYWx1ZTogKG51bWJlciB8IG51bGwpW10gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5oup55qE5piv5byA5aeLL+e7k+adn+aXpeacn1xyXG4gICAqIEBlbl9VUyBUaGUgY3VycmVudCBjaG9pY2UgaXMgdGhlIHN0YXJ0IC8gZW5kIGRhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSByYW5nZVR5cGUhOiBYRGF0ZVBpY2tlclJhbmdUeXBlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBAT3V0cHV0KCkgdHlwZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVQaWNrZXJUeXBlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTY29wZSBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGVbXT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5bm055qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFllYXIgY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHllYXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5pyI55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIE1vbnRoIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBtb250aENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrml6XmnJ/kuovku7ZcclxuICAgKiBAZW5fVVMgZGlzcGxheSBkYXRlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGRpc3BsYXlDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiMg+WbtOaXpeacnyBtb3VzZWVudGVyIOS6i+S7tlxyXG4gICAqIEBlbl9VUyBEYXRlIG1vdXNlZW50ZXIgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcmFuZ2VUZE1vdXNlZW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFhEYXRlQ2VsbD4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05pel5pyfIG1vdXNlbGVhdmUg5LqL5Lu2XHJcbiAgICogQGVuX1VTIERhdGUgbW91c2VsZWF2ZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZVRkTW91c2VsZWF2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVDZWxsPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TkuK3nmoTml6XmnJ/ngrnlh7vkuovku7ZcclxuICAgKiBAZW5fVVMgUmFuZ2UgZGF0ZSBjbGljayBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZURhdGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8WERhdGVDZWxsPigpO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIOWNleS4quaXpeacn+aVsOaNruWvueixoVxyXG4gKiBAZW5fVVMg5Y2V5Liq5pel5pyf5pWw5o2u5a+56LGhXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhEYXRlQ2VsbCB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlXHJcbiAgICovXHJcbiAgZGF0ZT86IERhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOS4iuS4quaciOaIluS4i+S4quaciOeahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlIG9mIHRoZSBwcmV2aW91cyBvciBuZXh0IG1vbnRoXHJcbiAgICovXHJcbiAgaXNMYXN0T3JOZXh0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5aSpXHJcbiAgICogQGVuX1VTIFNhbWUgZGF5XHJcbiAgICovXHJcbiAgaXNOb3c/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPmnIjnrKzkuIDlpKlcclxuICAgKiBAZW5fVVMgVGhlIGZpcnN0IGRheSBvZiB0aGUgbW9udGhcclxuICAgKi9cclxuICBpc0ZpcnN0RGF5PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5pyI5pyA5ZCO5LiA5aSpXHJcbiAgICogQGVuX1VTIFRoZSBsYXN0IGRheSBvZiB0aGUgbW9udGhcclxuICAgKi9cclxuICBpc0xhc3REYXk/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TlhoXml6XmnJ9cclxuICAgKiBAZW5fVVMg6IyD5Zu05YaF5pel5pyfXHJcbiAgICovXHJcbiAgaXNJblJhbmdlPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05YaFIGhvdmVyIOmAieS4rVxyXG4gICAqIEBlbl9VUyDojIPlm7TlhoUgaG92ZXIg6YCJ5LitXHJcbiAgICovXHJcbiAgaXNJblJhbmdlSG92ZXI/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TlhoUgaG92ZXIg5b2T5YmN5pel5pyf5bem6L65XHJcbiAgICogQGVuX1VTIOiMg+WbtOWGhSBob3ZlciDlvZPliY3ml6XmnJ/lt6bovrlcclxuICAgKi9cclxuICBpc0luUmFuZ2VIb3ZlckxlZnQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDojIPlm7TlhoUgaG92ZXIg5b2T5YmN5pel5pyf5Y+z6L65XHJcbiAgICogQGVuX1VTIOiMg+WbtOWGhSBob3ZlciDlvZPliY3ml6XmnJ/lj7PovrlcclxuICAgKi9cclxuICBpc0luUmFuZ2VIb3ZlclJpZ2h0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit5byA5aeL5bem6L65XHJcbiAgICogQGVuX1VTIFJhbmdlIHN0YXJ0IGxlZnRcclxuICAgKi9cclxuICBpc1JhbmdlU3RhcnRMZWZ0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit5byA5aeL5Y+z6L65XHJcbiAgICogQGVuX1VTIFJhbmdlIHN0YXJ0IHJpZ2h0XHJcbiAgICovXHJcbiAgaXNSYW5nZVN0YXJ0UmlnaHQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nu5PmnZ/lt6bovrlcclxuICAgKiBAZW5fVVMgUmFuZ2Ugc3RhcnQgbGVmdFxyXG4gICAqL1xyXG4gIGlzUmFuZ2VFbmRMZWZ0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5Lit57uT5p2f5Y+z6L65XHJcbiAgICogQGVuX1VTIFJhbmdlIHN0YXJ0IHJpZ2h0XHJcbiAgICovXHJcbiAgaXNSYW5nZUVuZFJpZ2h0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu0IGhvdmVyXHJcbiAgICogQGVuX1VTIFJhbmdlIGhvdmVyXHJcbiAgICovXHJcbiAgaXNSYW5nZUhvdmVyPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04gaG92ZXIg5b2T5YmN5byA5aeLXHJcbiAgICogQGVuX1VTIFJhbmdlIGhvdmVyIHN0YXJ0XHJcbiAgICovXHJcbiAgaXNSYW5nZUhvdmVyU3RhcnQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBob3ZlciDlvZPliY3nu5PmnZ9cclxuICAgKiBAZW5fVVMgRW5kIGRhdGVcclxuICAgKi9cclxuICBpc1JhbmdlSG92ZXJFbmQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBob3ZlciDlvIDlp4vlt6bovrlcclxuICAgKiBAZW5fVVMgUmFuZ2UgaG92ZXIgc3RhcnQgbGVmdFxyXG4gICAqL1xyXG4gIGlzUmFuZ2VIb3ZlclN0YXJ0TGVmdD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIGhvdmVyIOW8gOWni+WPs+i+uVxyXG4gICAqIEBlbl9VUyBSYW5nZSBob3ZlciBzdGFydCByaWdodFxyXG4gICAqL1xyXG4gIGlzUmFuZ2VIb3ZlclN0YXJ0UmlnaHQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBob3ZlciDnu5PmnZ/lt6bovrlcclxuICAgKiBAZW5fVVMgUmFuZ2UgaG92ZXIgZW5kIGxlZnRcclxuICAgKi9cclxuICBpc1JhbmdlSG92ZXJFbmRMZWZ0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04gaG92ZXIg57uT5p2f5Y+z6L65XHJcbiAgICogQGVuX1VTIFJhbmdlIGhvdmVyIGVuZCByaWdodFxyXG4gICAqL1xyXG4gIGlzUmFuZ2VIb3ZlckVuZFJpZ2h0PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN6YCJ5Lit5pel5pyfXHJcbiAgICogQGVuX1VTIEN1cnJlbnQgc2VsZWN0ZWQgZGF0ZVxyXG4gICAqL1xyXG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDlvZPliY3pgInmi6nnmoTmmK/lvIDlp4sv57uT5p2f5pel5pyfXHJcbiAqIEBlbl9VUyBUaGUgY3VycmVudCBjaG9pY2UgaXMgdGhlIHN0YXJ0IC8gZW5kIGRhdGVcclxuICovXHJcbmV4cG9ydCB0eXBlIFhEYXRlUGlja2VyUmFuZ1R5cGUgPSAnc3RhcnQnIHwgJ2VuZCc7XHJcblxyXG4vKipcclxuICogUGlja2VyTW9udGhcclxuICogQHNlbGVjdG9yIHgtcGlja2VyLW1vbnRoXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWFBpY2tlck1vbnRoUHJlZml4ID0gJ3gtcGlja2VyLW1vbnRoJztcclxuXHJcbi8qKlxyXG4gKiBQaWNrZXJNb250aCBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFBpY2tlck1vbnRoUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuueahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc3BsYXk6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1vZGVsPzogRGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pyI5Lu95pi+56S65qih5p2/XHJcbiAgICogQGVuX1VTIE1vbnRoIGRpc3BsYXkgdGVtcGxhdGVcclxuICAgKi9cclxuICBASW5wdXQoKSBtb250aFRlbXA/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmmL7npLrliIfmjaLmjInpkq5cclxuICAgKiBAZW5fVVMgRGlzcGxheSBzd2l0Y2ggYnV0dG9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBzaG93SGVhZGVyOiBYQm9vbGVhbiA9IHRydWU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieS4reeahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTZWxlY3RlZCBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBtb2RlbENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5oup57G75Z6LXHJcbiAgICogQGVuX1VTIFNlbGVjdCB0eXBlXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIHR5cGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFhEYXRlUGlja2VyVHlwZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IyD5Zu05Y+Y5YyW55qE5LqL5Lu2XHJcbiAgICogQGVuX1VTIFNjb3BlIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSByYW5nZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVtdPigpO1xyXG59XHJcblxyXG4vKipcclxuICogUGlja2VyWWVhclxyXG4gKiBAc2VsZWN0b3IgeC1waWNrZXIteWVhclxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhQaWNrZXJZZWFyUHJlZml4ID0gJ3gtcGlja2VyLXllYXInO1xyXG5cclxuLyoqXHJcbiAqIFBpY2tlclllYXIgUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhQaWNrZXJZZWFyUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInmi6nnsbvlnotcclxuICAgKiBAZW5fVVMgU2VsZWN0IHR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKSB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOaYvuekuueahOaXpeacn1xyXG4gICAqIEBlbl9VUyBEYXRlIGRpc3BsYXllZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpc3BsYXk6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTml6XmnJ9cclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1vZGVsPzogRGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5pi+56S65YiH5o2i5oyJ6ZKuXHJcbiAgICogQGVuX1VTIERpc3BsYXkgc3dpdGNoIGJ1dHRvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgc2hvd0hlYWRlcjogWEJvb2xlYW4gPSB0cnVlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK3nmoTkuovku7ZcclxuICAgKiBAZW5fVVMgU2VsZWN0ZWQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieaLqeexu+Wei1xyXG4gICAqIEBlbl9VUyBTZWxlY3QgdHlwZVxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSB0eXBlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxYRGF0ZVBpY2tlclR5cGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW8gOWni+W5tOS7veWPmOWMlueahOS6i+S7tlxyXG4gICAqIEBlbl9VUyBTdGFydCB5ZWFyIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBzdGFydENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG59XHJcbiJdfQ==