@ng-nest/ui 15.0.15 → 15.0.17

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 (75) hide show
  1. package/checkbox/checkbox.component.d.ts +2 -0
  2. package/checkbox/checkbox.module.d.ts +4 -3
  3. package/checkbox/checkbox.property.d.ts +42 -1
  4. package/core/functions/date.d.ts +2 -0
  5. package/date-picker/date-picker-portal.component.d.ts +1 -0
  6. package/date-picker/date-picker.module.d.ts +18 -16
  7. package/date-picker/date-picker.property.d.ts +120 -1
  8. package/date-picker/date-quarter.pipe.d.ts +9 -0
  9. package/date-picker/picker-date.component.d.ts +1 -0
  10. package/date-picker/picker-quarter.component.d.ts +45 -0
  11. package/date-picker/public-api.d.ts +2 -0
  12. package/esm2020/checkbox/checkbox.component.mjs +21 -4
  13. package/esm2020/checkbox/checkbox.module.mjs +5 -4
  14. package/esm2020/checkbox/checkbox.property.mjs +28 -2
  15. package/esm2020/core/functions/date.mjs +15 -1
  16. package/esm2020/date-picker/date-picker-portal.component.mjs +16 -4
  17. package/esm2020/date-picker/date-picker.component.mjs +12 -3
  18. package/esm2020/date-picker/date-picker.module.mjs +18 -6
  19. package/esm2020/date-picker/date-picker.property.mjs +154 -1
  20. package/esm2020/date-picker/date-quarter.pipe.mjs +19 -0
  21. package/esm2020/date-picker/date-range-portal.component.mjs +7 -6
  22. package/esm2020/date-picker/date-range.component.mjs +28 -4
  23. package/esm2020/date-picker/picker-date.component.mjs +6 -3
  24. package/esm2020/date-picker/picker-quarter.component.mjs +237 -0
  25. package/esm2020/date-picker/public-api.mjs +3 -1
  26. package/esm2020/i18n/i18n.property.mjs +1 -1
  27. package/esm2020/i18n/languages/en_GB.mjs +4 -1
  28. package/esm2020/i18n/languages/en_US.mjs +4 -1
  29. package/esm2020/i18n/languages/zh_CN.mjs +4 -1
  30. package/esm2020/i18n/languages/zh_TW.mjs +4 -1
  31. package/esm2020/radio/radio.component.mjs +28 -6
  32. package/esm2020/radio/radio.module.mjs +5 -4
  33. package/esm2020/radio/radio.property.mjs +28 -3
  34. package/esm2020/tag/tag.component.mjs +4 -4
  35. package/esm2020/tag/tag.property.mjs +22 -2
  36. package/esm2020/tree/tree.component.mjs +47 -59
  37. package/fesm2015/ng-nest-ui-checkbox.mjs +51 -7
  38. package/fesm2015/ng-nest-ui-checkbox.mjs.map +1 -1
  39. package/fesm2015/ng-nest-ui-core.mjs +15 -1
  40. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  41. package/fesm2015/ng-nest-ui-date-picker.mjs +468 -18
  42. package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
  43. package/fesm2015/ng-nest-ui-i18n.mjs +12 -0
  44. package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
  45. package/fesm2015/ng-nest-ui-radio.mjs +58 -10
  46. package/fesm2015/ng-nest-ui-radio.mjs.map +1 -1
  47. package/fesm2015/ng-nest-ui-tag.mjs +24 -4
  48. package/fesm2015/ng-nest-ui-tag.mjs.map +1 -1
  49. package/fesm2015/ng-nest-ui-tree.mjs +45 -57
  50. package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
  51. package/fesm2020/ng-nest-ui-checkbox.mjs +51 -7
  52. package/fesm2020/ng-nest-ui-checkbox.mjs.map +1 -1
  53. package/fesm2020/ng-nest-ui-core.mjs +15 -1
  54. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  55. package/fesm2020/ng-nest-ui-date-picker.mjs +467 -18
  56. package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
  57. package/fesm2020/ng-nest-ui-i18n.mjs +12 -0
  58. package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
  59. package/fesm2020/ng-nest-ui-radio.mjs +58 -10
  60. package/fesm2020/ng-nest-ui-radio.mjs.map +1 -1
  61. package/fesm2020/ng-nest-ui-tag.mjs +24 -4
  62. package/fesm2020/ng-nest-ui-tag.mjs.map +1 -1
  63. package/fesm2020/ng-nest-ui-tree.mjs +45 -57
  64. package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
  65. package/i18n/i18n.property.d.ts +3 -0
  66. package/i18n/languages/en_GB.d.ts +3 -0
  67. package/i18n/languages/en_US.d.ts +3 -0
  68. package/i18n/languages/zh_CN.d.ts +3 -0
  69. package/i18n/languages/zh_TW.d.ts +3 -0
  70. package/package.json +1 -1
  71. package/radio/radio.component.d.ts +2 -0
  72. package/radio/radio.module.d.ts +4 -3
  73. package/radio/radio.property.d.ts +38 -3
  74. package/tag/tag.property.d.ts +8 -3
  75. package/tree/tree.component.d.ts +1 -1
@@ -8,6 +8,7 @@ export declare class XCheckboxComponent extends XCheckboxProperty implements OnC
8
8
  cdr: ChangeDetectorRef;
9
9
  configService: XConfigService;
10
10
  checkbox: ElementRef<HTMLElement>;
11
+ checkboxType: 'initial' | 'button' | 'icon' | 'tag';
11
12
  writeValue(value: boolean | Array<any>): void;
12
13
  get beforeIsTemplate(): boolean;
13
14
  get afterIsTemplate(): boolean;
@@ -20,6 +21,7 @@ export declare class XCheckboxComponent extends XCheckboxProperty implements OnC
20
21
  ngOnChanges(changes: SimpleChanges): void;
21
22
  ngOnDestroy(): void;
22
23
  setClassMap(): void;
24
+ setCheckboxType(): void;
23
25
  checkboxClick(event: Event, node: XCheckboxNode): void;
24
26
  getChecked(id: any): boolean;
25
27
  private setData;
@@ -4,10 +4,11 @@ import * as i2 from "./checkbox.property";
4
4
  import * as i3 from "@angular/common";
5
5
  import * as i4 from "@angular/forms";
6
6
  import * as i5 from "@ng-nest/ui/button";
7
- import * as i6 from "@ng-nest/ui/outlet";
8
- import * as i7 from "@ng-nest/ui/base-form";
7
+ import * as i6 from "@ng-nest/ui/tag";
8
+ import * as i7 from "@ng-nest/ui/outlet";
9
+ import * as i8 from "@ng-nest/ui/base-form";
9
10
  export declare class XCheckboxModule {
10
11
  static ɵfac: i0.ɵɵFactoryDeclaration<XCheckboxModule, never>;
11
- static ɵmod: i0.ɵɵNgModuleDeclaration<XCheckboxModule, [typeof i1.XCheckboxComponent, typeof i2.XCheckboxProperty], [typeof i3.CommonModule, typeof i4.FormsModule, typeof i5.XButtonModule, typeof i6.XOutletModule, typeof i7.XBaseFormModule], [typeof i1.XCheckboxComponent]>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<XCheckboxModule, [typeof i1.XCheckboxComponent, typeof i2.XCheckboxProperty], [typeof i3.CommonModule, typeof i4.FormsModule, typeof i5.XButtonModule, typeof i6.XTagModule, typeof i7.XOutletModule, typeof i8.XBaseFormModule], [typeof i1.XCheckboxComponent]>;
12
13
  static ɵinj: i0.ɵɵInjectorDeclaration<XCheckboxModule>;
13
14
  }
@@ -1,4 +1,5 @@
1
1
  import { XData, XTemplate, XIdentityProperty, XSize, XBoolean } from '@ng-nest/ui/core';
2
+ import { XButtonType } from '@ng-nest/ui/button';
2
3
  import { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';
3
4
  import * as i0 from "@angular/core";
4
5
  /**
@@ -26,6 +27,11 @@ export declare class XCheckboxProperty extends XControlValueAccessor<boolean | A
26
27
  * @en_US Icon style
27
28
  */
28
29
  icon?: XBoolean;
30
+ /**
31
+ * @zh_CN tag 标签样式
32
+ * @en_US Tag style
33
+ */
34
+ tag?: XBoolean;
29
35
  /**
30
36
  * @zh_CN 不确定状态的样式
31
37
  * @en_US Uncertain state style
@@ -36,6 +42,21 @@ export declare class XCheckboxProperty extends XControlValueAccessor<boolean | A
36
42
  * @en_US Size
37
43
  */
38
44
  size?: XSize;
45
+ /**
46
+ * @zh_CN 按钮/图标/ tag 标签样式时生效
47
+ * @en_US Take effect when button style
48
+ */
49
+ type: XButtonType;
50
+ /**
51
+ * @zh_CN tag 标签边框
52
+ * @en_US Tag bordered
53
+ */
54
+ tagBordered: XBoolean;
55
+ /**
56
+ * @zh_CN tag 标签深色主题
57
+ * @en_US Tag dark theme
58
+ */
59
+ tagDark: XBoolean;
39
60
  /**
40
61
  * @zh_CN 前置标签
41
62
  * @en_US Before label
@@ -47,7 +68,7 @@ export declare class XCheckboxProperty extends XControlValueAccessor<boolean | A
47
68
  */
48
69
  after: XTemplate;
49
70
  static ɵfac: i0.ɵɵFactoryDeclaration<XCheckboxProperty, never>;
50
- static ɵcmp: i0.ɵɵComponentDeclaration<XCheckboxProperty, "ng-component", never, { "data": "data"; "button": "button"; "icon": "icon"; "indeterminate": "indeterminate"; "size": "size"; "before": "before"; "after": "after"; }, {}, never, never, false, never>;
71
+ static ɵcmp: i0.ɵɵComponentDeclaration<XCheckboxProperty, "ng-component", never, { "data": "data"; "button": "button"; "icon": "icon"; "tag": "tag"; "indeterminate": "indeterminate"; "size": "size"; "type": "type"; "tagBordered": "tagBordered"; "tagDark": "tagDark"; "before": "before"; "after": "after"; }, {}, never, never, false, never>;
51
72
  }
52
73
  /**
53
74
  * Checkbox Option
@@ -69,6 +90,11 @@ export interface XCheckboxOption extends XFormOption {
69
90
  * @en_US Icon style
70
91
  */
71
92
  icon?: XBoolean;
93
+ /**
94
+ * @zh_CN tag 标签样式
95
+ * @en_US Tag style
96
+ */
97
+ tag?: XBoolean;
72
98
  /**
73
99
  * @zh_CN 不确定状态的样式
74
100
  * @en_US Uncertain state style
@@ -79,6 +105,21 @@ export interface XCheckboxOption extends XFormOption {
79
105
  * @en_US Size
80
106
  */
81
107
  size?: XSize;
108
+ /**
109
+ * @zh_CN 按钮/图标/ tag 标签样式时生效
110
+ * @en_US Take effect when button style
111
+ */
112
+ type?: XButtonType;
113
+ /**
114
+ * @zh_CN tag 标签边框
115
+ * @en_US Tag bordered
116
+ */
117
+ tagBordered?: XBoolean;
118
+ /**
119
+ * @zh_CN tag 标签深色主题
120
+ * @en_US Tag dark theme
121
+ */
122
+ tagDark?: XBoolean;
82
123
  /**
83
124
  * @zh_CN 前置标签
84
125
  * @en_US Before label
@@ -10,3 +10,5 @@ export declare function XAddYears(date: XDate, amount: number): Date;
10
10
  export declare function XDateWeek(date: XDate): number | undefined;
11
11
  export declare function XDateWeekYear(date: XDate): number | undefined;
12
12
  export declare function XDateYearWeek(date: XDate): string | undefined;
13
+ export declare function XDateYearQuarter(date: XDate): string | undefined;
14
+ export declare function XDateQuarter(date: XDate): string | undefined;
@@ -49,6 +49,7 @@ export declare class XDatePickerPortalComponent implements OnInit, OnDestroy, Af
49
49
  setDisplay(date: Date): void;
50
50
  dateChange(date: Date): void;
51
51
  monthChange(date: Date): void;
52
+ quarterChange(date: Date): void;
52
53
  yearChange(date: Date): void;
53
54
  onToday(): void;
54
55
  onYesterday(): void;
@@ -3,23 +3,25 @@ import * as i1 from "./date-picker.component";
3
3
  import * as i2 from "./date-picker-portal.component";
4
4
  import * as i3 from "./picker-date.component";
5
5
  import * as i4 from "./picker-month.component";
6
- import * as i5 from "./picker-year.component";
7
- import * as i6 from "./date-picker.property";
8
- import * as i7 from "./date-range.component";
9
- import * as i8 from "./date-range-portal.component";
10
- import * as i9 from "@angular/common";
11
- import * as i10 from "@angular/forms";
12
- import * as i11 from "@ng-nest/ui/portal";
13
- import * as i12 from "@ng-nest/ui/time-picker";
14
- import * as i13 from "@ng-nest/ui/input";
15
- import * as i14 from "@ng-nest/ui/link";
16
- import * as i15 from "@ng-nest/ui/button";
17
- import * as i16 from "@ng-nest/ui/icon";
18
- import * as i17 from "@ng-nest/ui/i18n";
19
- import * as i18 from "@ng-nest/ui/base-form";
20
- import * as i19 from "@ng-nest/ui/outlet";
6
+ import * as i5 from "./picker-quarter.component";
7
+ import * as i6 from "./picker-year.component";
8
+ import * as i7 from "./date-picker.property";
9
+ import * as i8 from "./date-range.component";
10
+ import * as i9 from "./date-range-portal.component";
11
+ import * as i10 from "./date-quarter.pipe";
12
+ import * as i11 from "@angular/common";
13
+ import * as i12 from "@angular/forms";
14
+ import * as i13 from "@ng-nest/ui/portal";
15
+ import * as i14 from "@ng-nest/ui/time-picker";
16
+ import * as i15 from "@ng-nest/ui/input";
17
+ import * as i16 from "@ng-nest/ui/link";
18
+ import * as i17 from "@ng-nest/ui/button";
19
+ import * as i18 from "@ng-nest/ui/icon";
20
+ import * as i19 from "@ng-nest/ui/i18n";
21
+ import * as i20 from "@ng-nest/ui/base-form";
22
+ import * as i21 from "@ng-nest/ui/outlet";
21
23
  export declare class XDatePickerModule {
22
24
  static ɵfac: i0.ɵɵFactoryDeclaration<XDatePickerModule, never>;
23
- static ɵmod: i0.ɵɵNgModuleDeclaration<XDatePickerModule, [typeof i1.XDatePickerComponent, typeof i2.XDatePickerPortalComponent, typeof i3.XPickerDateComponent, typeof i4.XPickerMonthComponent, typeof i5.XPickerYearComponent, typeof i6.XDatePickerProperty, typeof i6.XPickerDateProperty, typeof i6.XPickerMonthProperty, typeof i6.XPickerYearProperty, typeof i7.XDateRangeComponent, typeof i8.XDateRangePortalComponent, typeof i6.XDateRangeProperty], [typeof i9.CommonModule, typeof i10.FormsModule, typeof i10.ReactiveFormsModule, typeof i11.XPortalModule, typeof i12.XTimePickerModule, typeof i13.XInputModule, typeof i14.XLinkModule, typeof i15.XButtonModule, typeof i16.XIconModule, typeof i17.XI18nModule, typeof i18.XBaseFormModule, typeof i19.XOutletModule], [typeof i1.XDatePickerComponent, typeof i7.XDateRangeComponent, typeof i2.XDatePickerPortalComponent, typeof i3.XPickerDateComponent, typeof i4.XPickerMonthComponent, typeof i5.XPickerYearComponent]>;
25
+ static ɵmod: i0.ɵɵNgModuleDeclaration<XDatePickerModule, [typeof i1.XDatePickerComponent, typeof i2.XDatePickerPortalComponent, typeof i3.XPickerDateComponent, typeof i4.XPickerMonthComponent, typeof i5.XPickerQuarterComponent, typeof i6.XPickerYearComponent, typeof i7.XDatePickerProperty, typeof i7.XPickerDateProperty, typeof i7.XPickerMonthProperty, typeof i7.XPickerQuarterProperty, typeof i7.XPickerYearProperty, typeof i8.XDateRangeComponent, typeof i9.XDateRangePortalComponent, typeof i7.XDateRangeProperty, typeof i10.XDateQuarterPipe], [typeof i11.CommonModule, typeof i12.FormsModule, typeof i12.ReactiveFormsModule, typeof i13.XPortalModule, typeof i14.XTimePickerModule, typeof i15.XInputModule, typeof i16.XLinkModule, typeof i17.XButtonModule, typeof i18.XIconModule, typeof i19.XI18nModule, typeof i20.XBaseFormModule, typeof i21.XOutletModule], [typeof i1.XDatePickerComponent, typeof i8.XDateRangeComponent, typeof i2.XDatePickerPortalComponent, typeof i3.XPickerDateComponent, typeof i4.XPickerMonthComponent, typeof i5.XPickerQuarterComponent, typeof i6.XPickerYearComponent, typeof i10.XDateQuarterPipe]>;
24
26
  static ɵinj: i0.ɵɵInjectorDeclaration<XDatePickerModule>;
25
27
  }
@@ -267,7 +267,7 @@ export interface XDateRangePreset extends XIdentityProperty {
267
267
  * @zh_CN 日期选择类型
268
268
  * @en_US Date selection type
269
269
  */
270
- export declare type XDatePickerType = 'date' | 'week' | 'month' | 'year' | 'date-time' | 'date-hour' | 'date-minute';
270
+ export declare type XDatePickerType = 'date' | 'week' | 'month' | 'quarter' | 'year' | 'date-time' | 'date-hour' | 'date-minute';
271
271
  /**
272
272
  * @zh_CN 日期数据类型
273
273
  * @en_US Date data type
@@ -657,6 +657,125 @@ export declare class XPickerMonthProperty extends XProperty {
657
657
  static ɵfac: i0.ɵɵFactoryDeclaration<XPickerMonthProperty, never>;
658
658
  static ɵcmp: i0.ɵɵComponentDeclaration<XPickerMonthProperty, "ng-component", never, { "type": "type"; "display": "display"; "model": "model"; "monthTemp": "monthTemp"; "showHeader": "showHeader"; "rangePicker": "rangePicker"; "lastYearBtn": "lastYearBtn"; "nextYearBtn": "nextYearBtn"; "rangeValue": "rangeValue"; "rangeType": "rangeType"; "disabledDate": "disabledDate"; }, { "modelChange": "modelChange"; "typeChange": "typeChange"; "rangeChange": "rangeChange"; "yearChange": "yearChange"; "monthChange": "monthChange"; "displayChange": "displayChange"; "rangeTdMouseenter": "rangeTdMouseenter"; "rangeTdMouseleave": "rangeTdMouseleave"; "rangeDateClick": "rangeDateClick"; }, never, never, false, never>;
659
659
  }
660
+ /**
661
+ * PickerQuarter
662
+ * @selector x-picker-quarter
663
+ * @decorator component
664
+ */
665
+ export declare const XPickerQuarterPrefix = "x-picker-quarter";
666
+ /**
667
+ * PickerQuarter Property
668
+ */
669
+ export declare class XPickerQuarterProperty extends XProperty {
670
+ /**
671
+ * @zh_CN 选择类型
672
+ * @en_US Select type
673
+ */
674
+ type: XDatePickerType;
675
+ /**
676
+ * @zh_CN 显示的日期
677
+ * @en_US Date displayed
678
+ */
679
+ display: Date;
680
+ /**
681
+ * @zh_CN 选中的日期
682
+ * @en_US Selected date
683
+ */
684
+ model?: Date | null;
685
+ /**
686
+ * @zh_CN 季度显示模板
687
+ * @en_US Month display template
688
+ */
689
+ quarterTemp?: TemplateRef<any>;
690
+ /**
691
+ * @zh_CN 显示切换按钮
692
+ * @en_US Display switch button
693
+ */
694
+ showHeader: XBoolean;
695
+ /**
696
+ * @zh_CN 范围选择
697
+ * @en_US Range picker
698
+ */
699
+ rangePicker?: XBoolean;
700
+ /**
701
+ * @zh_CN 上一年
702
+ * @en_US Last year
703
+ */
704
+ lastYearBtn: XBoolean;
705
+ /**
706
+ * @zh_CN 下一年
707
+ * @en_US Next year
708
+ */
709
+ nextYearBtn: XBoolean;
710
+ /**
711
+ * @zh_CN 范围月份
712
+ * @en_US Range date
713
+ */
714
+ rangeValue: (number | null)[];
715
+ /**
716
+ * @zh_CN 当前选择的是开始/结束日期
717
+ * @en_US The current choice is the start / end date
718
+ */
719
+ rangeType: XDatePickerRangType;
720
+ /**
721
+ * @zh_CN 禁用的日期
722
+ * @en_US Disabled date
723
+ */
724
+ disabledDate?: XDatePickerDisabledDate;
725
+ /**
726
+ * @zh_CN 选中的事件
727
+ * @en_US Selected event
728
+ */
729
+ modelChange: EventEmitter<Date>;
730
+ /**
731
+ * @zh_CN 选择类型
732
+ * @en_US Select type
733
+ */
734
+ typeChange: EventEmitter<XDatePickerType>;
735
+ /**
736
+ * @zh_CN 范围变化的事件
737
+ * @en_US Scope change event
738
+ */
739
+ rangeChange: EventEmitter<Date[]>;
740
+ /**
741
+ * @zh_CN 选年的事件
742
+ * @en_US Year change event
743
+ */
744
+ yearChange: EventEmitter<number>;
745
+ /**
746
+ * @zh_CN 选月的事件
747
+ * @en_US Month change event
748
+ */
749
+ monthChange: EventEmitter<number>;
750
+ /**
751
+ * @zh_CN 显示季度事件
752
+ * @en_US display date event
753
+ */
754
+ displayChange: EventEmitter<Date>;
755
+ /**
756
+ * @zh_CN 范围季度 mouseenter 事件
757
+ * @en_US Date mouseenter event
758
+ */
759
+ rangeTdMouseenter: EventEmitter<XDateCell>;
760
+ /**
761
+ * @zh_CN 范围季度 mouseleave 事件
762
+ * @en_US Date mouseleave event
763
+ */
764
+ rangeTdMouseleave: EventEmitter<XDateCell>;
765
+ /**
766
+ * @zh_CN 范围中的季度点击事件
767
+ * @en_US Range date click event
768
+ */
769
+ rangeDateClick: EventEmitter<XDateCell>;
770
+ static ɵfac: i0.ɵɵFactoryDeclaration<XPickerQuarterProperty, never>;
771
+ static ɵcmp: i0.ɵɵComponentDeclaration<XPickerQuarterProperty, "ng-component", never, { "type": "type"; "display": "display"; "model": "model"; "quarterTemp": "quarterTemp"; "showHeader": "showHeader"; "rangePicker": "rangePicker"; "lastYearBtn": "lastYearBtn"; "nextYearBtn": "nextYearBtn"; "rangeValue": "rangeValue"; "rangeType": "rangeType"; "disabledDate": "disabledDate"; }, { "modelChange": "modelChange"; "typeChange": "typeChange"; "rangeChange": "rangeChange"; "yearChange": "yearChange"; "monthChange": "monthChange"; "displayChange": "displayChange"; "rangeTdMouseenter": "rangeTdMouseenter"; "rangeTdMouseleave": "rangeTdMouseleave"; "rangeDateClick": "rangeDateClick"; }, never, never, false, never>;
772
+ }
773
+ /**
774
+ * DateQuarter
775
+ * @selector xDateQuarter
776
+ * @decorator pipe
777
+ */
778
+ export declare const XDateQuarterPrefix = "xDateQuarter";
660
779
  /**
661
780
  * PickerYear
662
781
  * @selector x-picker-year
@@ -0,0 +1,9 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import { XDate } from '@ng-nest/ui/core';
3
+ import * as i0 from "@angular/core";
4
+ export declare class XDateQuarterPipe implements PipeTransform {
5
+ constructor();
6
+ transform(input?: XDate, includeYear?: boolean): string;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<XDateQuarterPipe, never>;
8
+ static ɵpipe: i0.ɵɵPipeDeclaration<XDateQuarterPipe, "xDateQuarter", false>;
9
+ }
@@ -20,6 +20,7 @@ export declare class XPickerDateComponent extends XPickerDateProperty implements
20
20
  private _unSubject;
21
21
  get rangeStart(): number | "" | null;
22
22
  get rangeEnd(): number | "" | null;
23
+ get isWeek(): boolean;
23
24
  get isWeekRange(): import("@ng-nest/ui/core").XBoolean | undefined;
24
25
  get isNotWeekRange(): import("@ng-nest/ui/core").XBoolean | undefined;
25
26
  isDisabled(date: Date): boolean;
@@ -0,0 +1,45 @@
1
+ import { ChangeDetectorRef, Renderer2, OnChanges, SimpleChanges } from '@angular/core';
2
+ import { XConfigService } from '@ng-nest/ui/core';
3
+ import { XDateCell, XDatePickerType, XPickerQuarterProperty } from './date-picker.property';
4
+ import { DatePipe, LowerCasePipe } from '@angular/common';
5
+ import { XI18nDatePicker, XI18nService } from '@ng-nest/ui/i18n';
6
+ import { XDateQuarterPipe } from './date-quarter.pipe';
7
+ import * as i0 from "@angular/core";
8
+ export declare class XPickerQuarterComponent extends XPickerQuarterProperty implements OnChanges {
9
+ renderer: Renderer2;
10
+ datePipe: DatePipe;
11
+ lowerCasePipe: LowerCasePipe;
12
+ dateQuarterPipe: XDateQuarterPipe;
13
+ cdr: ChangeDetectorRef;
14
+ configService: XConfigService;
15
+ i18n: XI18nService;
16
+ now: Date;
17
+ dates: XDateCell[];
18
+ chunkDates: XDateCell[][];
19
+ locale: XI18nDatePicker;
20
+ private _unSubject;
21
+ get rangeStart(): number | "" | null;
22
+ get rangeEnd(): number | "" | null;
23
+ isDisabled(date: Date): boolean;
24
+ constructor(renderer: Renderer2, datePipe: DatePipe, lowerCasePipe: LowerCasePipe, dateQuarterPipe: XDateQuarterPipe, cdr: ChangeDetectorRef, configService: XConfigService, i18n: XI18nService);
25
+ ngOnInit(): void;
26
+ ngOnChanges(simples: SimpleChanges): void;
27
+ init(): void;
28
+ isStartQuarter(date: Date): boolean | undefined;
29
+ isEndQuarter(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;
34
+ setQuarters(date: Date): void;
35
+ setDayState(cell: XDateCell): XDateCell;
36
+ quarterClick(cell: XDateCell): void;
37
+ getLocaleQuarter(date: Date): string;
38
+ rangeDisabled(date: Date): boolean;
39
+ setDisplay(date: Date): void;
40
+ nextYear(num: number): void;
41
+ typeOnChange(type: XDatePickerType): void;
42
+ trackByQuarter(_index: number, item: string | Date | XDateCell): string | Date | XDateCell;
43
+ static ɵfac: i0.ɵɵFactoryDeclaration<XPickerQuarterComponent, never>;
44
+ static ɵcmp: i0.ɵɵComponentDeclaration<XPickerQuarterComponent, "x-picker-quarter", never, {}, {}, never, never, false, never>;
45
+ }
@@ -4,6 +4,8 @@ export * from './date-range.component';
4
4
  export * from './date-range-portal.component';
5
5
  export * from './picker-date.component';
6
6
  export * from './picker-month.component';
7
+ export * from './picker-quarter.component';
7
8
  export * from './picker-year.component';
8
9
  export * from './date-picker.module';
9
10
  export * from './date-picker.property';
11
+ export * from './date-quarter.pipe';
@@ -7,7 +7,8 @@ import * as i0 from "@angular/core";
7
7
  import * as i1 from "@ng-nest/ui/core";
8
8
  import * as i2 from "@angular/common";
9
9
  import * as i3 from "@ng-nest/ui/button";
10
- import * as i4 from "@ng-nest/ui/outlet";
10
+ import * as i4 from "@ng-nest/ui/tag";
11
+ import * as i5 from "@ng-nest/ui/outlet";
11
12
  export class XCheckboxComponent extends XCheckboxProperty {
12
13
  constructor(renderer, elementRef, cdr, configService) {
13
14
  super();
@@ -35,6 +36,7 @@ export class XCheckboxComponent extends XCheckboxProperty {
35
36
  ngOnInit() {
36
37
  this.setFlex(this.checkbox.nativeElement, this.renderer, this.justify, this.align, this.direction);
37
38
  this.setClassMap();
39
+ this.setCheckboxType();
38
40
  }
39
41
  ngOnChanges(changes) {
40
42
  const { data } = changes;
@@ -48,6 +50,21 @@ export class XCheckboxComponent extends XCheckboxProperty {
48
50
  XClearClass(this.labelMap);
49
51
  this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;
50
52
  }
53
+ setCheckboxType() {
54
+ if (this.button) {
55
+ this.checkboxType = 'button';
56
+ }
57
+ else if (this.icon) {
58
+ this.checkboxType = 'icon';
59
+ }
60
+ else if (this.tag) {
61
+ this.checkboxType = 'tag';
62
+ }
63
+ else {
64
+ this.checkboxType = 'initial';
65
+ }
66
+ this.cdr.detectChanges();
67
+ }
51
68
  checkboxClick(event, node) {
52
69
  event.preventDefault();
53
70
  if (this.disabled || node.disabled)
@@ -93,12 +110,12 @@ export class XCheckboxComponent extends XCheckboxProperty {
93
110
  }
94
111
  }
95
112
  /** @nocollapse */ XCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XCheckboxComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
96
- /** @nocollapse */ XCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XCheckboxComponent, selector: "x-checkbox", providers: [XValueAccessor(XCheckboxComponent)], viewQueries: [{ propertyName: "checkbox", first: true, predicate: ["checkbox"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #checkbox\r\n class=\"x-checkbox\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-checkbox-button]=\"button\"\r\n [class.x-checkbox-icon]=\"icon\"\r\n [class.x-checkbox-after]=\"after\"\r\n [class.x-checkbox-before]=\"before\"\r\n [class.x-checkbox-after-template]=\"afterIsTemplate\"\r\n [class.x-checkbox-before-template]=\"beforeIsTemplate\"\r\n>\r\n <label *ngIf=\"label\" [class.x-checkbox-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-checkbox-row\">\r\n <div class=\"x-checkbox-row-before\" *ngIf=\"before\">\r\n <ng-container *xOutlet=\"before\">{{ before }}</ng-container>\r\n </div>\r\n <div class=\"x-checkbox-row-list\">\r\n <ng-container *ngIf=\"button || icon; else default\">\r\n <x-buttons>\r\n <x-button\r\n *ngFor=\"let item of nodes; trackBy: trackByItem\"\r\n [icon]=\"item.icon\"\r\n [title]=\"item.title\"\r\n [size]=\"size\"\r\n [activated]=\"getChecked(item.id)\"\r\n [disabled]=\"getDisabled(item.disabled)\"\r\n attrType=\"button\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >{{ item.label }}</x-button\r\n >\r\n </x-buttons>\r\n </ng-container>\r\n </div>\r\n <div class=\"x-checkbox-row-after\" *ngIf=\"after\">\r\n <ng-container *xOutlet=\"after\">{{ after }}</ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #default>\r\n <div\r\n class=\"x-checkbox-row-item\"\r\n *ngFor=\"let item of nodes; trackBy: trackByItem\"\r\n [class.x-checked]=\"getChecked(item.id)\"\r\n [class.x-disabled]=\"disabled || item.disabled\"\r\n [class.x-indeterminate]=\"indeterminate\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >\r\n <span class=\"x-checkbox-box\"></span>\r\n <span class=\"x-checkbox-label\">\r\n <ng-container *xOutlet=\"item.label; context: { $node: item }\">{{ item.label }}</ng-container>\r\n </span>\r\n </div>\r\n</ng-template>\r\n", styles: [".x-checkbox{margin:0;padding:0;width:100%}.x-checkbox.x-flex{display:flex}.x-checkbox.x-justify-start{justify-content:flex-start}.x-checkbox.x-justify-center{justify-content:center}.x-checkbox.x-justify-end{justify-content:flex-end}.x-checkbox.x-justify-space-between{justify-content:space-between}.x-checkbox.x-justify-space-around{justify-content:space-around}.x-checkbox.x-align-start{align-items:flex-start}.x-checkbox.x-align-center{align-items:center}.x-checkbox.x-align-end{align-items:flex-end}.x-checkbox.x-direction-column{flex-direction:column}.x-checkbox.x-direction-column-reverse{flex-direction:column-reverse}.x-checkbox.x-direction-row{flex-direction:row}.x-checkbox.x-direction-row-reverse{flex-direction:row-reverse}.x-checkbox>label{display:inline-block;white-space:nowrap;height:calc(var(--x-font-size) + .875rem);line-height:calc(var(--x-font-size) + .875rem);position:relative;color:var(--x-text-300);font-weight:600}.x-checkbox>label.x-text-align-start{text-align:start}.x-checkbox>label.x-text-align-center{text-align:center}.x-checkbox>label.x-text-align-end{text-align:end}.x-checkbox-row{flex:1;display:flex;align-items:center;flex-wrap:wrap;height:calc(var(--x-font-size) + .875rem);line-height:calc(var(--x-font-size) + .875rem)}.x-checkbox-row .x-checkbox-row-before,.x-checkbox-row .x-checkbox-row-after{border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);background-color:var(--x-background-a100);padding:0 var(--x-padding-medium);height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-checkbox-row-list{position:relative;display:inline-flex;align-items:center}.x-checkbox-row-item{position:relative;display:inline-flex;align-items:center;white-space:nowrap;outline:none;margin-right:.875rem;font-size:.875rem;cursor:pointer;transition:all .3s}.x-checkbox-row-item:hover{color:var(--x-primary)}.x-checkbox-row-item:hover .x-checkbox-box{border-color:var(--x-primary)}.x-checkbox-row-item:last-child{margin-right:0}.x-checkbox-row-item.x-indeterminate .x-checkbox-box{border-color:var(--x-primary)}.x-checkbox-row-item.x-indeterminate .x-checkbox-box:after{top:50%;left:50%;width:.5rem;height:.5rem;background-color:var(--x-primary);border:0;transform:translate(-50%,-50%) scale(1);opacity:1;content:\" \"}.x-checkbox-row-item.x-checked .x-checkbox-box{border-color:var(--x-primary);background-color:var(--x-primary)}.x-checkbox-row-item.x-checked .x-checkbox-box:after{border:.125rem solid var(--x-background-100);border-top:0;border-left:0;top:.3875rem;left:.1875rem;width:.3125rem;height:.625rem;transform:rotate(40deg) scale(1) translate(-50%,-50%);opacity:1;transition:all .2s;content:\" \"}.x-checkbox-row-item.x-disabled{color:var(--x-text-400);cursor:not-allowed}.x-checkbox-row-item.x-disabled .x-checkbox-box{border-color:var(--x-border-100);background-color:var(--x-border-300)}.x-checkbox-row-item.x-disabled .x-checkbox-box:after{border-color:var(--x-text-400);background-color:transparent}.x-checkbox-button .x-checkbox-row-before,.x-checkbox-icon .x-checkbox-row-before{margin-right:0}.x-checkbox-button .x-checkbox-row-after,.x-checkbox-icon .x-checkbox-row-after{margin-left:0}.x-checkbox-box{border:var(--x-border-width) solid var(--x-border);width:1rem;height:1rem;border-radius:.0625rem;background-color:var(--x-background-a100);position:relative;display:inline-block;box-sizing:border-box;transition:all .3s}.x-checkbox-box:hover{border-color:var(--x-primary)}.x-checkbox-box:after{position:absolute;top:.35rem;left:.175rem;display:inline-block;width:.3rem;height:.6rem;border:.125rem solid var(--x-background-a100);border-top:0;border-left:0;transform:rotate(40deg) scale(0) translate(-50%,-50%);opacity:0;transition:all .3s;content:\" \"}.x-checkbox-label{margin-left:.325rem;-webkit-user-select:none;user-select:none}.x-checkbox-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-checkbox-before:not(.x-checkbox-before-template,.x-checkbox-button,.x-checkbox-icon) .x-checkbox-row-before{margin-right:var(--x-padding-medium)}.x-checkbox-before.x-checkbox-button .x-buttons:not(.x-buttons-space)>x-button:first-child .x-button,.x-checkbox-before.x-checkbox-icon .x-buttons:not(.x-buttons-space)>x-button:first-child .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox-before.x-checkbox-button .x-checkbox-row-before,.x-checkbox-before.x-checkbox-icon .x-checkbox-row-before{margin-right:0;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-before-template .x-checkbox-row-before{display:contents}.x-checkbox-before-template .x-checkbox-row-list{margin-left:var(--x-padding-medium)}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list{margin-left:0}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button{margin-left:calc(var(--x-border-width) * -1)}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button:focus{z-index:1}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input:focus,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button:focus{z-index:1}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-after:not(.x-checkbox-before-template,.x-checkbox-button,.x-checkbox-icon) .x-checkbox-row-after{margin-left:var(--x-padding-medium)}.x-checkbox-after.x-checkbox-button .x-buttons:not(.x-buttons-space)>x-button:last-child .x-button,.x-checkbox-after.x-checkbox-icon .x-buttons:not(.x-buttons-space)>x-button:last-child .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-after.x-checkbox-button .x-checkbox-row-after,.x-checkbox-after.x-checkbox-icon .x-checkbox-row-after{margin-left:0;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox-after-template .x-checkbox-row-after{display:contents}.x-checkbox-after-template .x-checkbox-row-list{margin-right:var(--x-padding-medium)}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list{margin-right:0}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button{margin-right:calc(var(--x-border-width) * -1)}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button:focus{z-index:1}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input:focus,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button:focus{z-index:1}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox.x-disabled .x-checkbox-item{color:var(--x-text-400);cursor:not-allowed}.x-checkbox.x-disabled .x-checkbox-item.x-indeterminate .x-checkbox-box:after{background-color:var(--x-text-400)}.x-checkbox.x-disabled .x-checkbox-item.x-checked .x-checkbox-box:after{background-color:transparent}.x-checkbox.x-disabled .x-checkbox-item .x-checkbox-box{border-color:var(--x-border-100);background-color:var(--x-border-300)}.x-checkbox.x-disabled .x-checkbox-item .x-checkbox-box:after{border-color:var(--x-text-400);background-color:transparent}.x-checkbox.x-invalid>label,.x-checkbox.x-required>label{color:var(--x-danger)}.x-checkbox.x-direction-row>label{padding:0 .5rem 0 0}.x-checkbox.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-checkbox.x-direction-column,.x-checkbox.x-direction-column-reverse{align-items:inherit}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.XButtonComponent, selector: "x-button" }, { kind: "component", type: i3.XButtonsComponent, selector: "x-buttons" }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
113
+ /** @nocollapse */ XCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XCheckboxComponent, selector: "x-checkbox", providers: [XValueAccessor(XCheckboxComponent)], viewQueries: [{ propertyName: "checkbox", first: true, predicate: ["checkbox"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #checkbox\r\n class=\"x-checkbox\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-checkbox-button]=\"button\"\r\n [class.x-checkbox-icon]=\"icon\"\r\n [class.x-checkbox-after]=\"after\"\r\n [class.x-checkbox-before]=\"before\"\r\n [class.x-checkbox-after-template]=\"afterIsTemplate\"\r\n [class.x-checkbox-before-template]=\"beforeIsTemplate\"\r\n>\r\n <label *ngIf=\"label\" [class.x-checkbox-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-checkbox-row\">\r\n <div class=\"x-checkbox-row-before\" *ngIf=\"before\">\r\n <ng-container *xOutlet=\"before\">{{ before }}</ng-container>\r\n </div>\r\n <div class=\"x-checkbox-row-list\" [ngSwitch]=\"checkboxType\">\r\n <ng-container *ngSwitchCase=\"'initial'\">\r\n <div\r\n class=\"x-checkbox-row-item\"\r\n *ngFor=\"let item of nodes; trackBy: trackByItem\"\r\n [class.x-checked]=\"getChecked(item.id)\"\r\n [class.x-disabled]=\"disabled || item.disabled\"\r\n [class.x-indeterminate]=\"indeterminate\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >\r\n <span class=\"x-checkbox-box\"></span>\r\n <span class=\"x-checkbox-label\">\r\n <ng-container *xOutlet=\"item.label; context: { $node: item }\">{{ item.label }}</ng-container>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'button'\">\r\n <x-buttons>\r\n <x-button\r\n *ngFor=\"let item of nodes; trackBy: trackByItem\"\r\n [icon]=\"item.icon\"\r\n [title]=\"item.title\"\r\n [size]=\"size\"\r\n [type]=\"type\"\r\n [activated]=\"getChecked(item.id)\"\r\n [disabled]=\"getDisabled(item.disabled)\"\r\n attrType=\"button\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >{{ item.label }}</x-button\r\n >\r\n </x-buttons>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'icon'\">\r\n <x-buttons>\r\n <x-button\r\n *ngFor=\"let item of nodes; trackBy: trackByItem\"\r\n [icon]=\"item.icon\"\r\n [title]=\"item.title\"\r\n [size]=\"size\"\r\n [type]=\"type\"\r\n [activated]=\"getChecked(item.id)\"\r\n [disabled]=\"getDisabled(item.disabled)\"\r\n attrType=\"button\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >{{ item.label }}</x-button\r\n >\r\n </x-buttons>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'tag'\">\r\n <x-tag\r\n *ngFor=\"let item of nodes; trackBy: trackByItem\"\r\n checked\r\n manual\r\n [type]=\"type\"\r\n [size]=\"size\"\r\n [bordered]=\"tagBordered\"\r\n [dark]=\"tagDark\"\r\n [disabled]=\"getDisabled(item.disabled)\"\r\n [selected]=\"getChecked(item.id)\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >{{ item.label }}</x-tag\r\n >\r\n </ng-container>\r\n </div>\r\n <div class=\"x-checkbox-row-after\" *ngIf=\"after\">\r\n <ng-container *xOutlet=\"after\">{{ after }}</ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #default> </ng-template>\r\n", styles: [".x-checkbox{margin:0;padding:0;width:100%}.x-checkbox.x-flex{display:flex}.x-checkbox.x-justify-start{justify-content:flex-start}.x-checkbox.x-justify-center{justify-content:center}.x-checkbox.x-justify-end{justify-content:flex-end}.x-checkbox.x-justify-space-between{justify-content:space-between}.x-checkbox.x-justify-space-around{justify-content:space-around}.x-checkbox.x-align-start{align-items:flex-start}.x-checkbox.x-align-center{align-items:center}.x-checkbox.x-align-end{align-items:flex-end}.x-checkbox.x-direction-column{flex-direction:column}.x-checkbox.x-direction-column-reverse{flex-direction:column-reverse}.x-checkbox.x-direction-row{flex-direction:row}.x-checkbox.x-direction-row-reverse{flex-direction:row-reverse}.x-checkbox>label{display:inline-block;white-space:nowrap;height:calc(var(--x-font-size) + .875rem);line-height:calc(var(--x-font-size) + .875rem);position:relative;color:var(--x-text-300);font-weight:600}.x-checkbox>label.x-text-align-start{text-align:start}.x-checkbox>label.x-text-align-center{text-align:center}.x-checkbox>label.x-text-align-end{text-align:end}.x-checkbox-row{flex:1;display:flex;align-items:center;flex-wrap:wrap;height:calc(var(--x-font-size) + .875rem);line-height:calc(var(--x-font-size) + .875rem)}.x-checkbox-row .x-checkbox-row-before,.x-checkbox-row .x-checkbox-row-after{border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);background-color:var(--x-background-a100);padding:0 var(--x-padding-medium);height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-checkbox-row-list{position:relative;display:inline-flex;align-items:center}.x-checkbox-row-list x-tag:not(:first-child){margin-left:.875rem}.x-checkbox-row-item{position:relative;display:inline-flex;align-items:center;white-space:nowrap;outline:none;margin-right:.875rem;font-size:.875rem;cursor:pointer;transition:all .3s}.x-checkbox-row-item:hover{color:var(--x-primary)}.x-checkbox-row-item:hover .x-checkbox-box{border-color:var(--x-primary)}.x-checkbox-row-item:last-child{margin-right:0}.x-checkbox-row-item.x-indeterminate .x-checkbox-box{border-color:var(--x-primary)}.x-checkbox-row-item.x-indeterminate .x-checkbox-box:after{top:50%;left:50%;width:.5rem;height:.5rem;background-color:var(--x-primary);border:0;transform:translate(-50%,-50%) scale(1);opacity:1;content:\" \"}.x-checkbox-row-item.x-checked .x-checkbox-box{border-color:var(--x-primary);background-color:var(--x-primary)}.x-checkbox-row-item.x-checked .x-checkbox-box:after{border:.125rem solid var(--x-background-100);border-top:0;border-left:0;top:.3875rem;left:.1875rem;width:.3125rem;height:.625rem;transform:rotate(40deg) scale(1) translate(-50%,-50%);opacity:1;transition:all .2s;content:\" \"}.x-checkbox-row-item.x-disabled{color:var(--x-text-400);cursor:not-allowed}.x-checkbox-row-item.x-disabled .x-checkbox-box{border-color:var(--x-border-100);background-color:var(--x-border-300)}.x-checkbox-row-item.x-disabled .x-checkbox-box:after{border-color:var(--x-text-400);background-color:transparent}.x-checkbox-button .x-checkbox-row-before,.x-checkbox-icon .x-checkbox-row-before{margin-right:0}.x-checkbox-button .x-checkbox-row-after,.x-checkbox-icon .x-checkbox-row-after{margin-left:0}.x-checkbox-box{border:var(--x-border-width) solid var(--x-border);width:1rem;height:1rem;border-radius:.0625rem;background-color:var(--x-background-a100);position:relative;display:inline-block;box-sizing:border-box;transition:all .3s}.x-checkbox-box:hover{border-color:var(--x-primary)}.x-checkbox-box:after{position:absolute;top:.35rem;left:.175rem;display:inline-block;width:.3rem;height:.6rem;border:.125rem solid var(--x-background-a100);border-top:0;border-left:0;transform:rotate(40deg) scale(0) translate(-50%,-50%);opacity:0;transition:all .3s;content:\" \"}.x-checkbox-label{margin-left:.325rem;-webkit-user-select:none;user-select:none}.x-checkbox-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-checkbox-before:not(.x-checkbox-before-template,.x-checkbox-button,.x-checkbox-icon) .x-checkbox-row-before{margin-right:var(--x-padding-medium)}.x-checkbox-before.x-checkbox-button .x-buttons:not(.x-buttons-space)>x-button:first-child .x-button,.x-checkbox-before.x-checkbox-icon .x-buttons:not(.x-buttons-space)>x-button:first-child .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox-before.x-checkbox-button .x-checkbox-row-before,.x-checkbox-before.x-checkbox-icon .x-checkbox-row-before{margin-right:0;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-before-template .x-checkbox-row-before{display:contents}.x-checkbox-before-template .x-checkbox-row-list{margin-left:var(--x-padding-medium)}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list{margin-left:0}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button{margin-left:calc(var(--x-border-width) * -1)}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button:focus{z-index:1}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input:focus,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button:focus{z-index:1}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-after:not(.x-checkbox-before-template,.x-checkbox-button,.x-checkbox-icon) .x-checkbox-row-after{margin-left:var(--x-padding-medium)}.x-checkbox-after.x-checkbox-button .x-buttons:not(.x-buttons-space)>x-button:last-child .x-button,.x-checkbox-after.x-checkbox-icon .x-buttons:not(.x-buttons-space)>x-button:last-child .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-after.x-checkbox-button .x-checkbox-row-after,.x-checkbox-after.x-checkbox-icon .x-checkbox-row-after{margin-left:0;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox-after-template .x-checkbox-row-after{display:contents}.x-checkbox-after-template .x-checkbox-row-list{margin-right:var(--x-padding-medium)}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list{margin-right:0}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button{margin-right:calc(var(--x-border-width) * -1)}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button:focus{z-index:1}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input:focus,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button:focus{z-index:1}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox.x-disabled .x-checkbox-item{color:var(--x-text-400);cursor:not-allowed}.x-checkbox.x-disabled .x-checkbox-item.x-indeterminate .x-checkbox-box:after{background-color:var(--x-text-400)}.x-checkbox.x-disabled .x-checkbox-item.x-checked .x-checkbox-box:after{background-color:transparent}.x-checkbox.x-disabled .x-checkbox-item .x-checkbox-box{border-color:var(--x-border-100);background-color:var(--x-border-300)}.x-checkbox.x-disabled .x-checkbox-item .x-checkbox-box:after{border-color:var(--x-text-400);background-color:transparent}.x-checkbox.x-invalid>label,.x-checkbox.x-required>label{color:var(--x-danger)}.x-checkbox.x-direction-row>label{padding:0 .5rem 0 0}.x-checkbox.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-checkbox.x-direction-column,.x-checkbox.x-direction-column-reverse{align-items:inherit}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.XButtonComponent, selector: "x-button" }, { kind: "component", type: i3.XButtonsComponent, selector: "x-buttons" }, { kind: "component", type: i4.XTagComponent, selector: "x-tag" }, { kind: "directive", type: i5.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
97
114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XCheckboxComponent, decorators: [{
98
115
  type: Component,
99
- args: [{ selector: `${XCheckboxPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XCheckboxComponent)], template: "<div\r\n #checkbox\r\n class=\"x-checkbox\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-checkbox-button]=\"button\"\r\n [class.x-checkbox-icon]=\"icon\"\r\n [class.x-checkbox-after]=\"after\"\r\n [class.x-checkbox-before]=\"before\"\r\n [class.x-checkbox-after-template]=\"afterIsTemplate\"\r\n [class.x-checkbox-before-template]=\"beforeIsTemplate\"\r\n>\r\n <label *ngIf=\"label\" [class.x-checkbox-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-checkbox-row\">\r\n <div class=\"x-checkbox-row-before\" *ngIf=\"before\">\r\n <ng-container *xOutlet=\"before\">{{ before }}</ng-container>\r\n </div>\r\n <div class=\"x-checkbox-row-list\">\r\n <ng-container *ngIf=\"button || icon; else default\">\r\n <x-buttons>\r\n <x-button\r\n *ngFor=\"let item of nodes; trackBy: trackByItem\"\r\n [icon]=\"item.icon\"\r\n [title]=\"item.title\"\r\n [size]=\"size\"\r\n [activated]=\"getChecked(item.id)\"\r\n [disabled]=\"getDisabled(item.disabled)\"\r\n attrType=\"button\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >{{ item.label }}</x-button\r\n >\r\n </x-buttons>\r\n </ng-container>\r\n </div>\r\n <div class=\"x-checkbox-row-after\" *ngIf=\"after\">\r\n <ng-container *xOutlet=\"after\">{{ after }}</ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #default>\r\n <div\r\n class=\"x-checkbox-row-item\"\r\n *ngFor=\"let item of nodes; trackBy: trackByItem\"\r\n [class.x-checked]=\"getChecked(item.id)\"\r\n [class.x-disabled]=\"disabled || item.disabled\"\r\n [class.x-indeterminate]=\"indeterminate\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >\r\n <span class=\"x-checkbox-box\"></span>\r\n <span class=\"x-checkbox-label\">\r\n <ng-container *xOutlet=\"item.label; context: { $node: item }\">{{ item.label }}</ng-container>\r\n </span>\r\n </div>\r\n</ng-template>\r\n", styles: [".x-checkbox{margin:0;padding:0;width:100%}.x-checkbox.x-flex{display:flex}.x-checkbox.x-justify-start{justify-content:flex-start}.x-checkbox.x-justify-center{justify-content:center}.x-checkbox.x-justify-end{justify-content:flex-end}.x-checkbox.x-justify-space-between{justify-content:space-between}.x-checkbox.x-justify-space-around{justify-content:space-around}.x-checkbox.x-align-start{align-items:flex-start}.x-checkbox.x-align-center{align-items:center}.x-checkbox.x-align-end{align-items:flex-end}.x-checkbox.x-direction-column{flex-direction:column}.x-checkbox.x-direction-column-reverse{flex-direction:column-reverse}.x-checkbox.x-direction-row{flex-direction:row}.x-checkbox.x-direction-row-reverse{flex-direction:row-reverse}.x-checkbox>label{display:inline-block;white-space:nowrap;height:calc(var(--x-font-size) + .875rem);line-height:calc(var(--x-font-size) + .875rem);position:relative;color:var(--x-text-300);font-weight:600}.x-checkbox>label.x-text-align-start{text-align:start}.x-checkbox>label.x-text-align-center{text-align:center}.x-checkbox>label.x-text-align-end{text-align:end}.x-checkbox-row{flex:1;display:flex;align-items:center;flex-wrap:wrap;height:calc(var(--x-font-size) + .875rem);line-height:calc(var(--x-font-size) + .875rem)}.x-checkbox-row .x-checkbox-row-before,.x-checkbox-row .x-checkbox-row-after{border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);background-color:var(--x-background-a100);padding:0 var(--x-padding-medium);height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-checkbox-row-list{position:relative;display:inline-flex;align-items:center}.x-checkbox-row-item{position:relative;display:inline-flex;align-items:center;white-space:nowrap;outline:none;margin-right:.875rem;font-size:.875rem;cursor:pointer;transition:all .3s}.x-checkbox-row-item:hover{color:var(--x-primary)}.x-checkbox-row-item:hover .x-checkbox-box{border-color:var(--x-primary)}.x-checkbox-row-item:last-child{margin-right:0}.x-checkbox-row-item.x-indeterminate .x-checkbox-box{border-color:var(--x-primary)}.x-checkbox-row-item.x-indeterminate .x-checkbox-box:after{top:50%;left:50%;width:.5rem;height:.5rem;background-color:var(--x-primary);border:0;transform:translate(-50%,-50%) scale(1);opacity:1;content:\" \"}.x-checkbox-row-item.x-checked .x-checkbox-box{border-color:var(--x-primary);background-color:var(--x-primary)}.x-checkbox-row-item.x-checked .x-checkbox-box:after{border:.125rem solid var(--x-background-100);border-top:0;border-left:0;top:.3875rem;left:.1875rem;width:.3125rem;height:.625rem;transform:rotate(40deg) scale(1) translate(-50%,-50%);opacity:1;transition:all .2s;content:\" \"}.x-checkbox-row-item.x-disabled{color:var(--x-text-400);cursor:not-allowed}.x-checkbox-row-item.x-disabled .x-checkbox-box{border-color:var(--x-border-100);background-color:var(--x-border-300)}.x-checkbox-row-item.x-disabled .x-checkbox-box:after{border-color:var(--x-text-400);background-color:transparent}.x-checkbox-button .x-checkbox-row-before,.x-checkbox-icon .x-checkbox-row-before{margin-right:0}.x-checkbox-button .x-checkbox-row-after,.x-checkbox-icon .x-checkbox-row-after{margin-left:0}.x-checkbox-box{border:var(--x-border-width) solid var(--x-border);width:1rem;height:1rem;border-radius:.0625rem;background-color:var(--x-background-a100);position:relative;display:inline-block;box-sizing:border-box;transition:all .3s}.x-checkbox-box:hover{border-color:var(--x-primary)}.x-checkbox-box:after{position:absolute;top:.35rem;left:.175rem;display:inline-block;width:.3rem;height:.6rem;border:.125rem solid var(--x-background-a100);border-top:0;border-left:0;transform:rotate(40deg) scale(0) translate(-50%,-50%);opacity:0;transition:all .3s;content:\" \"}.x-checkbox-label{margin-left:.325rem;-webkit-user-select:none;user-select:none}.x-checkbox-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-checkbox-before:not(.x-checkbox-before-template,.x-checkbox-button,.x-checkbox-icon) .x-checkbox-row-before{margin-right:var(--x-padding-medium)}.x-checkbox-before.x-checkbox-button .x-buttons:not(.x-buttons-space)>x-button:first-child .x-button,.x-checkbox-before.x-checkbox-icon .x-buttons:not(.x-buttons-space)>x-button:first-child .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox-before.x-checkbox-button .x-checkbox-row-before,.x-checkbox-before.x-checkbox-icon .x-checkbox-row-before{margin-right:0;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-before-template .x-checkbox-row-before{display:contents}.x-checkbox-before-template .x-checkbox-row-list{margin-left:var(--x-padding-medium)}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list{margin-left:0}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button{margin-left:calc(var(--x-border-width) * -1)}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button:focus{z-index:1}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input:focus,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button:focus{z-index:1}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-after:not(.x-checkbox-before-template,.x-checkbox-button,.x-checkbox-icon) .x-checkbox-row-after{margin-left:var(--x-padding-medium)}.x-checkbox-after.x-checkbox-button .x-buttons:not(.x-buttons-space)>x-button:last-child .x-button,.x-checkbox-after.x-checkbox-icon .x-buttons:not(.x-buttons-space)>x-button:last-child .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-after.x-checkbox-button .x-checkbox-row-after,.x-checkbox-after.x-checkbox-icon .x-checkbox-row-after{margin-left:0;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox-after-template .x-checkbox-row-after{display:contents}.x-checkbox-after-template .x-checkbox-row-list{margin-right:var(--x-padding-medium)}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list{margin-right:0}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button{margin-right:calc(var(--x-border-width) * -1)}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button:focus{z-index:1}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input:focus,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button:focus{z-index:1}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox.x-disabled .x-checkbox-item{color:var(--x-text-400);cursor:not-allowed}.x-checkbox.x-disabled .x-checkbox-item.x-indeterminate .x-checkbox-box:after{background-color:var(--x-text-400)}.x-checkbox.x-disabled .x-checkbox-item.x-checked .x-checkbox-box:after{background-color:transparent}.x-checkbox.x-disabled .x-checkbox-item .x-checkbox-box{border-color:var(--x-border-100);background-color:var(--x-border-300)}.x-checkbox.x-disabled .x-checkbox-item .x-checkbox-box:after{border-color:var(--x-text-400);background-color:transparent}.x-checkbox.x-invalid>label,.x-checkbox.x-required>label{color:var(--x-danger)}.x-checkbox.x-direction-row>label{padding:0 .5rem 0 0}.x-checkbox.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-checkbox.x-direction-column,.x-checkbox.x-direction-column-reverse{align-items:inherit}\n"] }]
116
+ args: [{ selector: `${XCheckboxPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XCheckboxComponent)], template: "<div\r\n #checkbox\r\n class=\"x-checkbox\"\r\n [class.x-flex]=\"justify || align || direction\"\r\n [class.x-disabled]=\"disabled\"\r\n [class.x-required]=\"requiredIsEmpty\"\r\n [class.x-invalid]=\"invalid\"\r\n [class.x-checkbox-button]=\"button\"\r\n [class.x-checkbox-icon]=\"icon\"\r\n [class.x-checkbox-after]=\"after\"\r\n [class.x-checkbox-before]=\"before\"\r\n [class.x-checkbox-after-template]=\"afterIsTemplate\"\r\n [class.x-checkbox-before-template]=\"beforeIsTemplate\"\r\n>\r\n <label *ngIf=\"label\" [class.x-checkbox-label-required]=\"required\" [style.width]=\"labelWidth\" [ngClass]=\"labelMap\">{{ label }}</label>\r\n <div class=\"x-checkbox-row\">\r\n <div class=\"x-checkbox-row-before\" *ngIf=\"before\">\r\n <ng-container *xOutlet=\"before\">{{ before }}</ng-container>\r\n </div>\r\n <div class=\"x-checkbox-row-list\" [ngSwitch]=\"checkboxType\">\r\n <ng-container *ngSwitchCase=\"'initial'\">\r\n <div\r\n class=\"x-checkbox-row-item\"\r\n *ngFor=\"let item of nodes; trackBy: trackByItem\"\r\n [class.x-checked]=\"getChecked(item.id)\"\r\n [class.x-disabled]=\"disabled || item.disabled\"\r\n [class.x-indeterminate]=\"indeterminate\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >\r\n <span class=\"x-checkbox-box\"></span>\r\n <span class=\"x-checkbox-label\">\r\n <ng-container *xOutlet=\"item.label; context: { $node: item }\">{{ item.label }}</ng-container>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'button'\">\r\n <x-buttons>\r\n <x-button\r\n *ngFor=\"let item of nodes; trackBy: trackByItem\"\r\n [icon]=\"item.icon\"\r\n [title]=\"item.title\"\r\n [size]=\"size\"\r\n [type]=\"type\"\r\n [activated]=\"getChecked(item.id)\"\r\n [disabled]=\"getDisabled(item.disabled)\"\r\n attrType=\"button\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >{{ item.label }}</x-button\r\n >\r\n </x-buttons>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'icon'\">\r\n <x-buttons>\r\n <x-button\r\n *ngFor=\"let item of nodes; trackBy: trackByItem\"\r\n [icon]=\"item.icon\"\r\n [title]=\"item.title\"\r\n [size]=\"size\"\r\n [type]=\"type\"\r\n [activated]=\"getChecked(item.id)\"\r\n [disabled]=\"getDisabled(item.disabled)\"\r\n attrType=\"button\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >{{ item.label }}</x-button\r\n >\r\n </x-buttons>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'tag'\">\r\n <x-tag\r\n *ngFor=\"let item of nodes; trackBy: trackByItem\"\r\n checked\r\n manual\r\n [type]=\"type\"\r\n [size]=\"size\"\r\n [bordered]=\"tagBordered\"\r\n [dark]=\"tagDark\"\r\n [disabled]=\"getDisabled(item.disabled)\"\r\n [selected]=\"getChecked(item.id)\"\r\n (click)=\"checkboxClick($event, item)\"\r\n >{{ item.label }}</x-tag\r\n >\r\n </ng-container>\r\n </div>\r\n <div class=\"x-checkbox-row-after\" *ngIf=\"after\">\r\n <ng-container *xOutlet=\"after\">{{ after }}</ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #default> </ng-template>\r\n", styles: [".x-checkbox{margin:0;padding:0;width:100%}.x-checkbox.x-flex{display:flex}.x-checkbox.x-justify-start{justify-content:flex-start}.x-checkbox.x-justify-center{justify-content:center}.x-checkbox.x-justify-end{justify-content:flex-end}.x-checkbox.x-justify-space-between{justify-content:space-between}.x-checkbox.x-justify-space-around{justify-content:space-around}.x-checkbox.x-align-start{align-items:flex-start}.x-checkbox.x-align-center{align-items:center}.x-checkbox.x-align-end{align-items:flex-end}.x-checkbox.x-direction-column{flex-direction:column}.x-checkbox.x-direction-column-reverse{flex-direction:column-reverse}.x-checkbox.x-direction-row{flex-direction:row}.x-checkbox.x-direction-row-reverse{flex-direction:row-reverse}.x-checkbox>label{display:inline-block;white-space:nowrap;height:calc(var(--x-font-size) + .875rem);line-height:calc(var(--x-font-size) + .875rem);position:relative;color:var(--x-text-300);font-weight:600}.x-checkbox>label.x-text-align-start{text-align:start}.x-checkbox>label.x-text-align-center{text-align:center}.x-checkbox>label.x-text-align-end{text-align:end}.x-checkbox-row{flex:1;display:flex;align-items:center;flex-wrap:wrap;height:calc(var(--x-font-size) + .875rem);line-height:calc(var(--x-font-size) + .875rem)}.x-checkbox-row .x-checkbox-row-before,.x-checkbox-row .x-checkbox-row-after{border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);background-color:var(--x-background-a100);padding:0 var(--x-padding-medium);height:var(--x-height-medium);line-height:var(--x-height-medium)}.x-checkbox-row-list{position:relative;display:inline-flex;align-items:center}.x-checkbox-row-list x-tag:not(:first-child){margin-left:.875rem}.x-checkbox-row-item{position:relative;display:inline-flex;align-items:center;white-space:nowrap;outline:none;margin-right:.875rem;font-size:.875rem;cursor:pointer;transition:all .3s}.x-checkbox-row-item:hover{color:var(--x-primary)}.x-checkbox-row-item:hover .x-checkbox-box{border-color:var(--x-primary)}.x-checkbox-row-item:last-child{margin-right:0}.x-checkbox-row-item.x-indeterminate .x-checkbox-box{border-color:var(--x-primary)}.x-checkbox-row-item.x-indeterminate .x-checkbox-box:after{top:50%;left:50%;width:.5rem;height:.5rem;background-color:var(--x-primary);border:0;transform:translate(-50%,-50%) scale(1);opacity:1;content:\" \"}.x-checkbox-row-item.x-checked .x-checkbox-box{border-color:var(--x-primary);background-color:var(--x-primary)}.x-checkbox-row-item.x-checked .x-checkbox-box:after{border:.125rem solid var(--x-background-100);border-top:0;border-left:0;top:.3875rem;left:.1875rem;width:.3125rem;height:.625rem;transform:rotate(40deg) scale(1) translate(-50%,-50%);opacity:1;transition:all .2s;content:\" \"}.x-checkbox-row-item.x-disabled{color:var(--x-text-400);cursor:not-allowed}.x-checkbox-row-item.x-disabled .x-checkbox-box{border-color:var(--x-border-100);background-color:var(--x-border-300)}.x-checkbox-row-item.x-disabled .x-checkbox-box:after{border-color:var(--x-text-400);background-color:transparent}.x-checkbox-button .x-checkbox-row-before,.x-checkbox-icon .x-checkbox-row-before{margin-right:0}.x-checkbox-button .x-checkbox-row-after,.x-checkbox-icon .x-checkbox-row-after{margin-left:0}.x-checkbox-box{border:var(--x-border-width) solid var(--x-border);width:1rem;height:1rem;border-radius:.0625rem;background-color:var(--x-background-a100);position:relative;display:inline-block;box-sizing:border-box;transition:all .3s}.x-checkbox-box:hover{border-color:var(--x-primary)}.x-checkbox-box:after{position:absolute;top:.35rem;left:.175rem;display:inline-block;width:.3rem;height:.6rem;border:.125rem solid var(--x-background-a100);border-top:0;border-left:0;transform:rotate(40deg) scale(0) translate(-50%,-50%);opacity:0;transition:all .3s;content:\" \"}.x-checkbox-label{margin-left:.325rem;-webkit-user-select:none;user-select:none}.x-checkbox-label-required:before{display:inline-block;margin-right:.25rem;color:var(--x-danger);line-height:1;font-size:var(--x-font-size-small);content:\"*\"}.x-checkbox-before:not(.x-checkbox-before-template,.x-checkbox-button,.x-checkbox-icon) .x-checkbox-row-before{margin-right:var(--x-padding-medium)}.x-checkbox-before.x-checkbox-button .x-buttons:not(.x-buttons-space)>x-button:first-child .x-button,.x-checkbox-before.x-checkbox-icon .x-buttons:not(.x-buttons-space)>x-button:first-child .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox-before.x-checkbox-button .x-checkbox-row-before,.x-checkbox-before.x-checkbox-icon .x-checkbox-row-before{margin-right:0;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-before-template .x-checkbox-row-before{display:contents}.x-checkbox-before-template .x-checkbox-row-list{margin-left:var(--x-padding-medium)}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list{margin-left:0}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button{margin-left:calc(var(--x-border-width) * -1)}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-list .x-button:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-list .x-button:focus{z-index:1}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input:focus,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button:hover,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input:focus,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button:hover,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button:focus{z-index:1}.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before input,.x-checkbox-before-template.x-checkbox-button .x-checkbox-row-before .x-button,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before input,.x-checkbox-before-template.x-checkbox-icon .x-checkbox-row-before .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-after:not(.x-checkbox-before-template,.x-checkbox-button,.x-checkbox-icon) .x-checkbox-row-after{margin-left:var(--x-padding-medium)}.x-checkbox-after.x-checkbox-button .x-buttons:not(.x-buttons-space)>x-button:last-child .x-button,.x-checkbox-after.x-checkbox-icon .x-buttons:not(.x-buttons-space)>x-button:last-child .x-button{border-top-right-radius:0;border-bottom-right-radius:0}.x-checkbox-after.x-checkbox-button .x-checkbox-row-after,.x-checkbox-after.x-checkbox-icon .x-checkbox-row-after{margin-left:0;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox-after-template .x-checkbox-row-after{display:contents}.x-checkbox-after-template .x-checkbox-row-list{margin-right:var(--x-padding-medium)}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list{margin-right:0}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button{margin-right:calc(var(--x-border-width) * -1)}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-list .x-button:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-list .x-button:focus{z-index:1}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input:focus,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button:hover,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input:focus,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button:hover,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button:focus{z-index:1}.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after input,.x-checkbox-after-template.x-checkbox-button .x-checkbox-row-after .x-button,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after input,.x-checkbox-after-template.x-checkbox-icon .x-checkbox-row-after .x-button{border-top-left-radius:0;border-bottom-left-radius:0}.x-checkbox.x-disabled .x-checkbox-item{color:var(--x-text-400);cursor:not-allowed}.x-checkbox.x-disabled .x-checkbox-item.x-indeterminate .x-checkbox-box:after{background-color:var(--x-text-400)}.x-checkbox.x-disabled .x-checkbox-item.x-checked .x-checkbox-box:after{background-color:transparent}.x-checkbox.x-disabled .x-checkbox-item .x-checkbox-box{border-color:var(--x-border-100);background-color:var(--x-border-300)}.x-checkbox.x-disabled .x-checkbox-item .x-checkbox-box:after{border-color:var(--x-text-400);background-color:transparent}.x-checkbox.x-invalid>label,.x-checkbox.x-required>label{color:var(--x-danger)}.x-checkbox.x-direction-row>label{padding:0 .5rem 0 0}.x-checkbox.x-direction-row-reverse>label{padding:0 0 0 .5rem}.x-checkbox.x-direction-column,.x-checkbox.x-direction-column-reverse{align-items:inherit}\n"] }]
100
117
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { checkbox: [{
101
118
  type: ViewChild,
102
119
  args: ['checkbox', { static: true }]
103
120
  }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBTXZCLFNBQVMsRUFDVCxXQUFXLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBMEQsTUFBTSxrQkFBa0IsQ0FBQztBQUM1SCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7OztBQVV2RCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsaUJBQWlCO0lBdUJ2RCxZQUNTLFFBQW1CLEVBQ25CLFVBQW1DLEVBQzFCLEdBQXNCLEVBQy9CLGFBQTZCO1FBRXBDLEtBQUssRUFBRSxDQUFDO1FBTEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixlQUFVLEdBQVYsVUFBVSxDQUF5QjtRQUMxQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFQdEMsVUFBSyxHQUFvQixFQUFFLENBQUM7UUFDNUIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUNoQixlQUFVLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQVF6QyxDQUFDO0lBM0JRLFVBQVUsQ0FBQyxLQUEyQjtRQUM3QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJ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QztJQUNuRSxDQUFDO0lBRU8sT0FBTztRQUNiLFFBQVEsQ0FBZ0IsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDbEUsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztZQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBbUI7UUFDN0MsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7a0lBM0ZVLGtCQUFrQjtzSEFBbEIsa0JBQWtCLHFDQUZsQixDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLDBMQ3ZCakQsaXJFQXlEQTsyRkRoQ2Esa0JBQWtCO2tCQVI5QixTQUFTOytCQUNFLEdBQUcsZUFBZSxFQUFFLGlCQUdmLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLG9CQUFvQixDQUFDO3NMQUdOLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxuICBUZW1wbGF0ZVJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ2hlY2tib3hQcmVmaXgsIFhDaGVja2JveE5vZGUsIFhDaGVja2JveFByb3BlcnR5IH0gZnJvbSAnLi9jaGVja2JveC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWElzQ2hhbmdlLCBYU2V0RGF0YSwgWENsZWFyQ2xhc3MsIFhDb25maWdTZXJ2aWNlLCBYQm9vbGVhbiwgWEp1c3RpZnksIFhBbGlnbiwgWERpcmVjdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WENoZWNrYm94UHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWENoZWNrYm94Q29tcG9uZW50KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhDaGVja2JveENvbXBvbmVudCBleHRlbmRzIFhDaGVja2JveFByb3BlcnR5IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBAVmlld0NoaWxkKCdjaGVja2JveCcsIHsgc3RhdGljOiB0cnVlIH0pIGNoZWNrYm94ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGJvb2xlYW4gfCBBcnJheTxhbnk+KSB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgYmVmb3JlSXNUZW1wbGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmJlZm9yZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFmdGVySXNUZW1wbGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFmdGVyIGluc3RhbmNlb2YgVGVtcGxhdGVSZWY7XHJcbiAgfVxyXG5cclxuICBnZXREaXNhYmxlZChkaXNhYmxlZD86IGJvb2xlYW4pIHtcclxuICAgIHJldHVybiAodGhpcy5kaXNhYmxlZCB8fCBkaXNhYmxlZCkgYXMgWEJvb2xlYW47XHJcbiAgfVxyXG5cclxuICBub2RlczogWENoZWNrYm94Tm9kZVtdID0gW107XHJcbiAgc2luZ2xlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0RmxleCh0aGlzLmNoZWNrYm94Lm5hdGl2ZUVsZW1lbnQsIHRoaXMucmVuZGVyZXIsIHRoaXMuanVzdGlmeSBhcyBYSnVzdGlmeSwgdGhpcy5hbGlnbiBhcyBYQWxpZ24sIHRoaXMuZGlyZWN0aW9uIGFzIFhEaXJlY3Rpb24pO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBkYXRhIH0gPSBjaGFuZ2VzO1xyXG4gICAgWElzQ2hhbmdlKGRhdGEpICYmIHRoaXMuc2V0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRDbGFzc01hcCgpIHtcclxuICAgIFhDbGVhckNsYXNzKHRoaXMubGFiZWxNYXApO1xyXG4gICAgdGhpcy5sYWJlbE1hcFtgeC10ZXh0LWFsaWduLSR7dGhpcy5sYWJlbEFsaWdufWBdID0gdGhpcy5sYWJlbEFsaWduID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tib3hDbGljayhldmVudDogRXZlbnQsIG5vZGU6IFhDaGVja2JveE5vZGUpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCBub2RlLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLmZvcm1Db250cm9sVmFsaWRhdG9yKCk7XHJcbiAgICBpZiAodGhpcy5zaW5nbGUpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9ICF0aGlzLnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9ICh0aGlzLnZhbHVlIGFzIEFycmF5PGFueT4pIHx8IFtdO1xyXG4gICAgICBsZXQgaW5kZXggPSB0aGlzLnZhbHVlLmluZGV4T2Yobm9kZS5pZCk7XHJcbiAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBbLi4udGhpcy52YWx1ZV07XHJcbiAgICAgIH0gZWxzZSB0aGlzLnZhbHVlID0gWy4uLnRoaXMudmFsdWUsIG5vZGUuaWRdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRDaGVja2VkKGlkOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLnNpbmdsZSkgcmV0dXJuIHRoaXMudmFsdWUgYXMgYm9vbGVhbjtcclxuICAgIGVsc2UgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgJiYgdGhpcy52YWx1ZS5pbmNsdWRlcyhpZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERhdGEoKSB7XHJcbiAgICBYU2V0RGF0YTxYQ2hlY2tib3hOb2RlPih0aGlzLmRhdGEsIHRoaXMuX3VuU3ViamVjdCkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMubm9kZXMgPSB4O1xyXG4gICAgICB0aGlzLnNpbmdsZSA9IHRoaXMubm9kZXMubGVuZ3RoID09PSAxO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlJdGVtKF9pbmRleDogbnVtYmVyLCBpdGVtOiBYQ2hlY2tib3hOb2RlKSB7XHJcbiAgICByZXR1cm4gaXRlbS5pZDtcclxuICB9XHJcblxyXG4gIGZvcm1Db250cm9sQ2hhbmdlcygpIHtcclxuICAgIHRoaXMuc2V0RGF0YSgpO1xyXG4gICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgI2NoZWNrYm94XHJcbiAgY2xhc3M9XCJ4LWNoZWNrYm94XCJcclxuICBbY2xhc3MueC1mbGV4XT1cImp1c3RpZnkgfHwgYWxpZ24gfHwgZGlyZWN0aW9uXCJcclxuICBbY2xhc3MueC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW2NsYXNzLngtcmVxdWlyZWRdPVwicmVxdWlyZWRJc0VtcHR5XCJcclxuICBbY2xhc3MueC1pbnZhbGlkXT1cImludmFsaWRcIlxyXG4gIFtjbGFzcy54LWNoZWNrYm94LWJ1dHRvbl09XCJidXR0b25cIlxyXG4gIFtjbGFzcy54LWNoZWNrYm94LWljb25dPVwiaWNvblwiXHJcbiAgW2NsYXNzLngtY2hlY2tib3gtYWZ0ZXJdPVwiYWZ0ZXJcIlxyXG4gIFtjbGFzcy54LWNoZWNrYm94LWJlZm9yZV09XCJiZWZvcmVcIlxyXG4gIFtjbGFzcy54LWNoZWNrYm94LWFmdGVyLXRlbXBsYXRlXT1cImFmdGVySXNUZW1wbGF0ZVwiXHJcbiAgW2NsYXNzLngtY2hlY2tib3gtYmVmb3JlLXRlbXBsYXRlXT1cImJlZm9yZUlzVGVtcGxhdGVcIlxyXG4+XHJcbiAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBbY2xhc3MueC1jaGVja2JveC1sYWJlbC1yZXF1aXJlZF09XCJyZXF1aXJlZFwiIFtzdHlsZS53aWR0aF09XCJsYWJlbFdpZHRoXCIgW25nQ2xhc3NdPVwibGFiZWxNYXBcIj57eyBsYWJlbCB9fTwvbGFiZWw+XHJcbiAgPGRpdiBjbGFzcz1cIngtY2hlY2tib3gtcm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1jaGVja2JveC1yb3ctYmVmb3JlXCIgKm5nSWY9XCJiZWZvcmVcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImJlZm9yZVwiPnt7IGJlZm9yZSB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1jaGVja2JveC1yb3ctbGlzdFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYnV0dG9uIHx8IGljb247IGVsc2UgZGVmYXVsdFwiPlxyXG4gICAgICAgIDx4LWJ1dHRvbnM+XHJcbiAgICAgICAgICA8eC1idXR0b25cclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygbm9kZXM7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCJcclxuICAgICAgICAgICAgW2ljb25dPVwiaXRlbS5pY29uXCJcclxuICAgICAgICAgICAgW3RpdGxlXT1cIml0ZW0udGl0bGVcIlxyXG4gICAgICAgICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgICAgICAgW2FjdGl2YXRlZF09XCJnZXRDaGVja2VkKGl0ZW0uaWQpXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImdldERpc2FibGVkKGl0ZW0uZGlzYWJsZWQpXCJcclxuICAgICAgICAgICAgYXR0clR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2hlY2tib3hDbGljaygkZXZlbnQsIGl0ZW0pXCJcclxuICAgICAgICAgICAgPnt7IGl0ZW0ubGFiZWwgfX08L3gtYnV0dG9uXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgPC94LWJ1dHRvbnM+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1jaGVja2JveC1yb3ctYWZ0ZXJcIiAqbmdJZj1cImFmdGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJhZnRlclwiPnt7IGFmdGVyIH19PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHQ+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJ4LWNoZWNrYm94LXJvdy1pdGVtXCJcclxuICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5vZGVzOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiXHJcbiAgICBbY2xhc3MueC1jaGVja2VkXT1cImdldENoZWNrZWQoaXRlbS5pZClcIlxyXG4gICAgW2NsYXNzLngtZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgaXRlbS5kaXNhYmxlZFwiXHJcbiAgICBbY2xhc3MueC1pbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIlxyXG4gICAgKGNsaWNrKT1cImNoZWNrYm94Q2xpY2soJGV2ZW50LCBpdGVtKVwiXHJcbiAgPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJ4LWNoZWNrYm94LWJveFwiPjwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwieC1jaGVja2JveC1sYWJlbFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiaXRlbS5sYWJlbDsgY29udGV4dDogeyAkbm9kZTogaXRlbSB9XCI+e3sgaXRlbS5sYWJlbCB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBTXZCLFNBQVMsRUFDVCxXQUFXLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBMEQsTUFBTSxrQkFBa0IsQ0FBQztBQUM1SCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFVdkQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGlCQUFpQjtJQXdCdkQsWUFDUyxRQUFtQixFQUNuQixVQUFtQyxFQUMxQixHQUFzQixFQUMvQixhQUE2QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUxELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBeUI7UUFDMUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBUHRDLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBQzVCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDaEIsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFRekMsQ0FBQztJQTNCUSxVQUFVLENBQUMsS0FBMkI7UUFDN0MsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIs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QyxDQUFDLDBMQ3ZCakQsdStHQTBGQTsyRkRqRWEsa0JBQWtCO2tCQVI5QixTQUFTOytCQUNFLEdBQUcsZUFBZSxFQUFFLGlCQUdmLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxjQUFjLG9CQUFvQixDQUFDO3NMQUdOLFFBQVE7c0JBQWhELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxuICBUZW1wbGF0ZVJlZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ2hlY2tib3hQcmVmaXgsIFhDaGVja2JveE5vZGUsIFhDaGVja2JveFByb3BlcnR5IH0gZnJvbSAnLi9jaGVja2JveC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgWElzQ2hhbmdlLCBYU2V0RGF0YSwgWENsZWFyQ2xhc3MsIFhDb25maWdTZXJ2aWNlLCBYQm9vbGVhbiwgWEp1c3RpZnksIFhBbGlnbiwgWERpcmVjdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYVmFsdWVBY2Nlc3NvciB9IGZyb20gJ0BuZy1uZXN0L3VpL2Jhc2UtZm9ybSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WENoZWNrYm94UHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWENoZWNrYm94Q29tcG9uZW50KV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhDaGVja2JveENvbXBvbmVudCBleHRlbmRzIFhDaGVja2JveFByb3BlcnR5IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBAVmlld0NoaWxkKCdjaGVja2JveCcsIHsgc3RhdGljOiB0cnVlIH0pIGNoZWNrYm94ITogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XHJcbiAgY2hlY2tib3hUeXBlITogJ2luaXRpYWwnIHwgJ2J1dHRvbicgfCAnaWNvbicgfCAndGFnJztcclxuXHJcbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYm9vbGVhbiB8IEFycmF5PGFueT4pIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGdldCBiZWZvcmVJc1RlbXBsYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYmVmb3JlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWY7XHJcbiAgfVxyXG5cclxuICBnZXQgYWZ0ZXJJc1RlbXBsYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWZ0ZXIgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcclxuICB9XHJcblxyXG4gIGdldERpc2FibGVkKGRpc2FibGVkPzogYm9vbGVhbikge1xyXG4gICAgcmV0dXJuICh0aGlzLmRpc2FibGVkIHx8IGRpc2FibGVkKSBhcyBYQm9vbGVhbjtcclxuICB9XHJcblxyXG4gIG5vZGVzOiBYQ2hlY2tib3hOb2RlW10gPSBbXTtcclxuICBzaW5nbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXHJcbiAgICBwdWJsaWMgb3ZlcnJpZGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRGbGV4KHRoaXMuY2hlY2tib3gubmF0aXZlRWxlbWVudCwgdGhpcy5yZW5kZXJlciwgdGhpcy5qdXN0aWZ5IGFzIFhKdXN0aWZ5LCB0aGlzLmFsaWduIGFzIFhBbGlnbiwgdGhpcy5kaXJlY3Rpb24gYXMgWERpcmVjdGlvbik7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICB0aGlzLnNldENoZWNrYm94VHlwZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBkYXRhIH0gPSBjaGFuZ2VzO1xyXG4gICAgWElzQ2hhbmdlKGRhdGEpICYmIHRoaXMuc2V0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRDbGFzc01hcCgpIHtcclxuICAgIFhDbGVhckNsYXNzKHRoaXMubGFiZWxNYXApO1xyXG4gICAgdGhpcy5sYWJlbE1hcFtgeC10ZXh0LWFsaWduLSR7dGhpcy5sYWJlbEFsaWdufWBdID0gdGhpcy5sYWJlbEFsaWduID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2hlY2tib3hUeXBlKCkge1xyXG4gICAgaWYgKHRoaXMuYnV0dG9uKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tib3hUeXBlID0gJ2J1dHRvbic7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuaWNvbikge1xyXG4gICAgICB0aGlzLmNoZWNrYm94VHlwZSA9ICdpY29uJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy50YWcpIHtcclxuICAgICAgdGhpcy5jaGVja2JveFR5cGUgPSAndGFnJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2hlY2tib3hUeXBlID0gJ2luaXRpYWwnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tib3hDbGljayhldmVudDogRXZlbnQsIG5vZGU6IFhDaGVja2JveE5vZGUpIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCBub2RlLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLmZvcm1Db250cm9sVmFsaWRhdG9yKCk7XHJcbiAgICBpZiAodGhpcy5zaW5nbGUpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9ICF0aGlzLnZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy52YWx1ZSA9ICh0aGlzLnZhbHVlIGFzIEFycmF5PGFueT4pIHx8IFtdO1xyXG4gICAgICBsZXQgaW5kZXggPSB0aGlzLnZhbHVlLmluZGV4T2Yobm9kZS5pZCk7XHJcbiAgICAgIGlmIChpbmRleCA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBbLi4udGhpcy52YWx1ZV07XHJcbiAgICAgIH0gZWxzZSB0aGlzLnZhbHVlID0gWy4uLnRoaXMudmFsdWUsIG5vZGUuaWRdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXRDaGVja2VkKGlkOiBhbnkpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLnNpbmdsZSkgcmV0dXJuIHRoaXMudmFsdWUgYXMgYm9vbGVhbjtcclxuICAgIGVsc2UgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgJiYgdGhpcy52YWx1ZS5pbmNsdWRlcyhpZCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERhdGEoKSB7XHJcbiAgICBYU2V0RGF0YTxYQ2hlY2tib3hOb2RlPih0aGlzLmRhdGEsIHRoaXMuX3VuU3ViamVjdCkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMubm9kZXMgPSB4O1xyXG4gICAgICB0aGlzLnNpbmdsZSA9IHRoaXMubm9kZXMubGVuZ3RoID09PSAxO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlJdGVtKF9pbmRleDogbnVtYmVyLCBpdGVtOiBYQ2hlY2tib3hOb2RlKSB7XHJcbiAgICByZXR1cm4gaXRlbS5pZDtcclxuICB9XHJcblxyXG4gIGZvcm1Db250cm9sQ2hhbmdlcygpIHtcclxuICAgIHRoaXMuc2V0RGF0YSgpO1xyXG4gICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgI2NoZWNrYm94XHJcbiAgY2xhc3M9XCJ4LWNoZWNrYm94XCJcclxuICBbY2xhc3MueC1mbGV4XT1cImp1c3RpZnkgfHwgYWxpZ24gfHwgZGlyZWN0aW9uXCJcclxuICBbY2xhc3MueC1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW2NsYXNzLngtcmVxdWlyZWRdPVwicmVxdWlyZWRJc0VtcHR5XCJcclxuICBbY2xhc3MueC1pbnZhbGlkXT1cImludmFsaWRcIlxyXG4gIFtjbGFzcy54LWNoZWNrYm94LWJ1dHRvbl09XCJidXR0b25cIlxyXG4gIFtjbGFzcy54LWNoZWNrYm94LWljb25dPVwiaWNvblwiXHJcbiAgW2NsYXNzLngtY2hlY2tib3gtYWZ0ZXJdPVwiYWZ0ZXJcIlxyXG4gIFtjbGFzcy54LWNoZWNrYm94LWJlZm9yZV09XCJiZWZvcmVcIlxyXG4gIFtjbGFzcy54LWNoZWNrYm94LWFmdGVyLXRlbXBsYXRlXT1cImFmdGVySXNUZW1wbGF0ZVwiXHJcbiAgW2NsYXNzLngtY2hlY2tib3gtYmVmb3JlLXRlbXBsYXRlXT1cImJlZm9yZUlzVGVtcGxhdGVcIlxyXG4+XHJcbiAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBbY2xhc3MueC1jaGVja2JveC1sYWJlbC1yZXF1aXJlZF09XCJyZXF1aXJlZFwiIFtzdHlsZS53aWR0aF09XCJsYWJlbFdpZHRoXCIgW25nQ2xhc3NdPVwibGFiZWxNYXBcIj57eyBsYWJlbCB9fTwvbGFiZWw+XHJcbiAgPGRpdiBjbGFzcz1cIngtY2hlY2tib3gtcm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1jaGVja2JveC1yb3ctYmVmb3JlXCIgKm5nSWY9XCJiZWZvcmVcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImJlZm9yZVwiPnt7IGJlZm9yZSB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1jaGVja2JveC1yb3ctbGlzdFwiIFtuZ1N3aXRjaF09XCJjaGVja2JveFR5cGVcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2luaXRpYWwnXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJ4LWNoZWNrYm94LXJvdy1pdGVtXCJcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5vZGVzOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiXHJcbiAgICAgICAgICBbY2xhc3MueC1jaGVja2VkXT1cImdldENoZWNrZWQoaXRlbS5pZClcIlxyXG4gICAgICAgICAgW2NsYXNzLngtZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgaXRlbS5kaXNhYmxlZFwiXHJcbiAgICAgICAgICBbY2xhc3MueC1pbmRldGVybWluYXRlXT1cImluZGV0ZXJtaW5hdGVcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNoZWNrYm94Q2xpY2soJGV2ZW50LCBpdGVtKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ4LWNoZWNrYm94LWJveFwiPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwieC1jaGVja2JveC1sYWJlbFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiaXRlbS5sYWJlbDsgY29udGV4dDogeyAkbm9kZTogaXRlbSB9XCI+e3sgaXRlbS5sYWJlbCB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2J1dHRvbidcIj5cclxuICAgICAgICA8eC1idXR0b25zPlxyXG4gICAgICAgICAgPHgtYnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5vZGVzOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiXHJcbiAgICAgICAgICAgIFtpY29uXT1cIml0ZW0uaWNvblwiXHJcbiAgICAgICAgICAgIFt0aXRsZV09XCJpdGVtLnRpdGxlXCJcclxuICAgICAgICAgICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxyXG4gICAgICAgICAgICBbYWN0aXZhdGVkXT1cImdldENoZWNrZWQoaXRlbS5pZClcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZ2V0RGlzYWJsZWQoaXRlbS5kaXNhYmxlZClcIlxyXG4gICAgICAgICAgICBhdHRyVHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJjaGVja2JveENsaWNrKCRldmVudCwgaXRlbSlcIlxyXG4gICAgICAgICAgICA+e3sgaXRlbS5sYWJlbCB9fTwveC1idXR0b25cclxuICAgICAgICAgID5cclxuICAgICAgICA8L3gtYnV0dG9ucz5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpY29uJ1wiPlxyXG4gICAgICAgIDx4LWJ1dHRvbnM+XHJcbiAgICAgICAgICA8eC1idXR0b25cclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygbm9kZXM7IHRyYWNrQnk6IHRyYWNrQnlJdGVtXCJcclxuICAgICAgICAgICAgW2ljb25dPVwiaXRlbS5pY29uXCJcclxuICAgICAgICAgICAgW3RpdGxlXT1cIml0ZW0udGl0bGVcIlxyXG4gICAgICAgICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXHJcbiAgICAgICAgICAgIFthY3RpdmF0ZWRdPVwiZ2V0Q2hlY2tlZChpdGVtLmlkKVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJnZXREaXNhYmxlZChpdGVtLmRpc2FibGVkKVwiXHJcbiAgICAgICAgICAgIGF0dHJUeXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNoZWNrYm94Q2xpY2soJGV2ZW50LCBpdGVtKVwiXHJcbiAgICAgICAgICAgID57eyBpdGVtLmxhYmVsIH19PC94LWJ1dHRvblxyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDwveC1idXR0b25zPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RhZydcIj5cclxuICAgICAgICA8eC10YWdcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5vZGVzOyB0cmFja0J5OiB0cmFja0J5SXRlbVwiXHJcbiAgICAgICAgICBjaGVja2VkXHJcbiAgICAgICAgICBtYW51YWxcclxuICAgICAgICAgIFt0eXBlXT1cInR5cGVcIlxyXG4gICAgICAgICAgW3NpemVdPVwic2l6ZVwiXHJcbiAgICAgICAgICBbYm9yZGVyZWRdPVwidGFnQm9yZGVyZWRcIlxyXG4gICAgICAgICAgW2RhcmtdPVwidGFnRGFya1wiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZ2V0RGlzYWJsZWQoaXRlbS5kaXNhYmxlZClcIlxyXG4gICAgICAgICAgW3NlbGVjdGVkXT1cImdldENoZWNrZWQoaXRlbS5pZClcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cImNoZWNrYm94Q2xpY2soJGV2ZW50LCBpdGVtKVwiXHJcbiAgICAgICAgICA+e3sgaXRlbS5sYWJlbCB9fTwveC10YWdcclxuICAgICAgICA+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1jaGVja2JveC1yb3ctYWZ0ZXJcIiAqbmdJZj1cImFmdGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJhZnRlclwiPnt7IGFmdGVyIH19PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2RlZmF1bHQ+IDwvbmctdGVtcGxhdGU+XHJcbiJdfQ==