@tetacom/ng-components 1.0.147 → 1.0.149

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 (177) hide show
  1. package/assets/color-icons.svg +49 -521
  2. package/assets/file-icons.svg +0 -1
  3. package/assets/icons.svg +205 -138
  4. package/common/model/view-type.model.d.ts +1 -0
  5. package/component/accordion/accordion-item/accordion-item.component.d.ts +4 -1
  6. package/component/avatar/avatar/avatar.component.d.ts +17 -0
  7. package/component/avatar/avatar.module.d.ts +9 -0
  8. package/component/avatar/model/avatar-color.enum.d.ts +20 -0
  9. package/component/avatar/public-api.d.ts +2 -0
  10. package/component/button/button/button.component.d.ts +4 -1
  11. package/component/checkbox/checkbox/checkbox.component.d.ts +2 -1
  12. package/component/date-picker/base-calendar.d.ts +49 -0
  13. package/component/date-picker/base-picker.d.ts +60 -0
  14. package/component/date-picker/date-picker/date-calendar/date-calendar.component.d.ts +20 -0
  15. package/component/date-picker/date-picker/date-picker.component.d.ts +38 -68
  16. package/component/date-picker/date-picker.module.d.ts +19 -15
  17. package/component/date-picker/date-range/date-range.component.d.ts +46 -0
  18. package/component/date-picker/date-range/range-calendar/range-calendar.component.d.ts +39 -0
  19. package/component/date-picker/day-picker/day-item/day-item.component.d.ts +9 -0
  20. package/component/date-picker/day-picker/day-picker.component.d.ts +30 -0
  21. package/component/date-picker/model/from-to.model.d.ts +4 -0
  22. package/component/date-picker/model/min-max-date.model.d.ts +4 -0
  23. package/component/date-picker/month-picker/month-picker.component.d.ts +16 -50
  24. package/component/date-picker/public-api.d.ts +5 -4
  25. package/component/date-picker/year-picker/scroll-to-selected-year.directive.d.ts +11 -0
  26. package/component/date-picker/year-picker/year-picker.component.d.ts +24 -0
  27. package/component/divider/divider/divider.component.d.ts +10 -0
  28. package/component/divider/divider.module.d.ts +8 -0
  29. package/component/divider/public-api.d.ts +2 -0
  30. package/component/dropdown/dropdown-base.d.ts +3 -1
  31. package/component/icon/icon-file/icon-file.component.d.ts +9 -3
  32. package/component/icon/icon-file/icon-file.module.d.ts +9 -0
  33. package/component/icon/icon.module.d.ts +4 -5
  34. package/component/icon/public-api.d.ts +1 -0
  35. package/component/input/input/input.component.d.ts +3 -1
  36. package/component/message/model/message.d.ts +3 -0
  37. package/component/public-api.d.ts +2 -0
  38. package/component/select/select/select.component.d.ts +4 -1
  39. package/component/switch/switch/switch.component.d.ts +4 -1
  40. package/directive/hint/hint.directive.d.ts +3 -1
  41. package/esm2020/common/model/view-type.model.mjs +2 -0
  42. package/esm2020/component/accordion/accordion/accordion.component.mjs +3 -2
  43. package/esm2020/component/accordion/accordion-head/accordion-head.component.mjs +3 -2
  44. package/esm2020/component/accordion/accordion-item/accordion-item.component.mjs +13 -3
  45. package/esm2020/component/avatar/avatar/avatar.component.mjs +57 -0
  46. package/esm2020/component/avatar/avatar.module.mjs +28 -0
  47. package/esm2020/component/avatar/model/avatar-color.enum.mjs +22 -0
  48. package/esm2020/component/avatar/public-api.mjs +3 -0
  49. package/esm2020/component/button/button/button.component.mjs +18 -3
  50. package/esm2020/component/checkbox/checkbox/checkbox.component.mjs +6 -3
  51. package/esm2020/component/date-picker/base-calendar.mjs +99 -0
  52. package/esm2020/component/date-picker/base-picker.mjs +102 -0
  53. package/esm2020/component/date-picker/date-picker/date-calendar/date-calendar.component.mjs +49 -0
  54. package/esm2020/component/date-picker/date-picker/date-picker.component.mjs +141 -234
  55. package/esm2020/component/date-picker/date-picker.module.mjs +41 -41
  56. package/esm2020/component/date-picker/date-range/date-range.component.mjs +211 -0
  57. package/esm2020/component/date-picker/date-range/range-calendar/range-calendar.component.mjs +108 -0
  58. package/esm2020/component/date-picker/day-picker/day-item/day-item.component.mjs +15 -0
  59. package/esm2020/component/date-picker/day-picker/day-picker.component.mjs +113 -0
  60. package/esm2020/component/date-picker/model/from-to.model.mjs +2 -0
  61. package/esm2020/component/date-picker/model/min-max-date.model.mjs +2 -0
  62. package/esm2020/component/date-picker/month-picker/month-picker.component.mjs +33 -236
  63. package/esm2020/component/date-picker/public-api.mjs +6 -5
  64. package/esm2020/component/date-picker/year-picker/scroll-to-selected-year.directive.mjs +26 -0
  65. package/esm2020/component/date-picker/year-picker/year-picker.component.mjs +48 -0
  66. package/esm2020/component/divider/divider/divider.component.mjs +18 -0
  67. package/esm2020/component/divider/divider.module.mjs +20 -0
  68. package/esm2020/component/divider/public-api.mjs +3 -0
  69. package/esm2020/component/dropdown/dropdown/dropdown.component.mjs +3 -2
  70. package/esm2020/component/dropdown/dropdown-base.mjs +6 -2
  71. package/esm2020/component/dropdown/dropdown.directive.mjs +1 -1
  72. package/esm2020/component/expand-card/expand-card/expand-card.component.mjs +1 -1
  73. package/esm2020/component/expand-card/expand-item/expand-item.component.mjs +1 -1
  74. package/esm2020/component/expand-panel/expand-panel/expand-panel.component.mjs +1 -1
  75. package/esm2020/component/file-upload/file-upload-area/file-upload-area.component.mjs +1 -1
  76. package/esm2020/component/filter/date-filter/date-filter.component.mjs +1 -1
  77. package/esm2020/component/filter/list-filter/list-filter.component.mjs +1 -1
  78. package/esm2020/component/filter/numeric-filter/numeric-filter.component.mjs +1 -1
  79. package/esm2020/component/filter/string-filter/string-filter.component.mjs +1 -1
  80. package/esm2020/component/icon/icon-file/icon-file.component.mjs +20 -6
  81. package/esm2020/component/icon/icon-file/icon-file.module.mjs +28 -0
  82. package/esm2020/component/icon/icon.module.mjs +1 -6
  83. package/esm2020/component/icon/public-api.mjs +2 -1
  84. package/esm2020/component/input/input/input.component.mjs +6 -3
  85. package/esm2020/component/input/input.module.mjs +1 -1
  86. package/esm2020/component/input/text-field/text-field.component.mjs +3 -3
  87. package/esm2020/component/message/message/message.component.mjs +4 -3
  88. package/esm2020/component/message/message-host/message-host.component.mjs +1 -1
  89. package/esm2020/component/message/model/message.mjs +2 -1
  90. package/esm2020/component/modal/dialog/dialog.component.mjs +1 -1
  91. package/esm2020/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +2 -2
  92. package/esm2020/component/public-api.mjs +4 -1
  93. package/esm2020/component/select/select/select.component.mjs +9 -4
  94. package/esm2020/component/switch/switch/switch.component.mjs +19 -7
  95. package/esm2020/component/table/default/boolean-cell/boolean-cell.component.mjs +1 -1
  96. package/esm2020/component/table/default/date-cell/date-cell.component.mjs +1 -1
  97. package/esm2020/component/table/default/date-time-cell/date-time-cell.component.mjs +1 -1
  98. package/esm2020/component/table/default/default-head-cell/default-head-cell.component.mjs +1 -1
  99. package/esm2020/component/table/default/list-cell/list-cell.component.mjs +1 -1
  100. package/esm2020/component/table/default/string-cell/string-cell.component.mjs +1 -1
  101. package/esm2020/component/table/selection-cell/selection-cell.component.mjs +1 -1
  102. package/esm2020/component/table/selection-head-cell/selection-head-cell.component.mjs +1 -1
  103. package/esm2020/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +1 -1
  104. package/esm2020/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +1 -1
  105. package/esm2020/component/table/util/table-util.mjs +4 -4
  106. package/esm2020/component/theme-switch/theme-switch/theme-switch.component.mjs +1 -1
  107. package/esm2020/directive/hint/hint.directive.mjs +6 -3
  108. package/esm2020/locale/en.mjs +3 -1
  109. package/esm2020/locale/ru.mjs +3 -1
  110. package/esm2020/locale/teta-localisation.mjs +1 -1
  111. package/fesm2015/tetacom-ng-components.mjs +2902 -3018
  112. package/fesm2015/tetacom-ng-components.mjs.map +1 -1
  113. package/fesm2020/tetacom-ng-components.mjs +5443 -5568
  114. package/fesm2020/tetacom-ng-components.mjs.map +1 -1
  115. package/locale/teta-localisation.d.ts +2 -0
  116. package/package.json +3 -2
  117. package/style/accordion.scss +28 -6
  118. package/style/assembly-library.scss +4 -1
  119. package/style/badge.scss +28 -0
  120. package/style/bottombar.scss +5 -0
  121. package/style/button.scss +16 -12
  122. package/style/checkbox.scss +26 -13
  123. package/style/chips.scss +10 -10
  124. package/style/color.scss +1 -36
  125. package/style/datepicker.scss +139 -24
  126. package/style/divider.scss +15 -0
  127. package/style/drag.scss +1 -1
  128. package/style/dropdown.scss +6 -4
  129. package/style/hint.scss +5 -5
  130. package/style/icon.scss +2 -1
  131. package/style/input.scss +32 -23
  132. package/style/layout.scss +6 -2
  133. package/style/list.scss +11 -8
  134. package/style/loader.scss +2 -2
  135. package/style/message.scss +15 -7
  136. package/style/modal.scss +3 -2
  137. package/style/navigation.scss +4 -1
  138. package/style/presets/color-presets.scss +9 -160
  139. package/style/presets/font-presets.scss +26 -25
  140. package/style/presets/view-types.scss +15 -0
  141. package/style/progress.scss +3 -3
  142. package/style/radio.scss +21 -7
  143. package/style/resize-panel.scss +2 -2
  144. package/style/scroll.scss +3 -3
  145. package/style/select.scss +26 -21
  146. package/style/shadow.scss +0 -20
  147. package/style/sidebar.scss +1 -1
  148. package/style/switch.scss +15 -10
  149. package/style/table.scss +15 -15
  150. package/style/tabs.scss +11 -11
  151. package/style/tag.scss +37 -0
  152. package/style/toggle.scss +20 -18
  153. package/style/toolbar.scss +1 -1
  154. package/style/tooltip.scss +8 -6
  155. package/style/tree.scss +4 -4
  156. package/component/date-picker/day-select/day-select.component.d.ts +0 -51
  157. package/component/date-picker/model/date-picker-mode.enum.d.ts +0 -5
  158. package/component/date-picker/month-select/month-select.component.d.ts +0 -40
  159. package/component/date-picker/service/picker-touch.service.d.ts +0 -12
  160. package/component/date-picker/time-part-control/time-part-control.component.d.ts +0 -26
  161. package/component/date-picker/util/date-picker-util.d.ts +0 -15
  162. package/component/date-picker/year-select/year-select.component.d.ts +0 -45
  163. package/esm2020/component/date-picker/day-select/day-select.component.mjs +0 -184
  164. package/esm2020/component/date-picker/model/date-picker-mode.enum.mjs +0 -7
  165. package/esm2020/component/date-picker/month-select/month-select.component.mjs +0 -148
  166. package/esm2020/component/date-picker/service/picker-touch.service.mjs +0 -34
  167. package/esm2020/component/date-picker/time-part-control/time-part-control.component.mjs +0 -73
  168. package/esm2020/component/date-picker/util/date-picker-util.mjs +0 -142
  169. package/esm2020/component/date-picker/year-select/year-select.component.mjs +0 -189
  170. package/esm2020/pipe/prepend-zero/prepend-zero.module.mjs +0 -18
  171. package/esm2020/pipe/prepend-zero/prepend-zero.pipe.mjs +0 -21
  172. package/pipe/prepend-zero/prepend-zero.module.d.ts +0 -8
  173. package/pipe/prepend-zero/prepend-zero.pipe.d.ts +0 -7
  174. package/style/tokens/basedark.tokens.css +0 -77
  175. package/style/tokens/baselight.tokens.css +0 -61
  176. package/style/tokens/global.tokens.css +0 -235
  177. package/style/tokens/utility.tokens.css +0 -1119
@@ -13,6 +13,7 @@ export class CheckboxComponent {
13
13
  this.cdr = cdr;
14
14
  this.tabindex = 0;
15
15
  this.palette = 'primary';
16
+ this.labelPosition = "right";
16
17
  /**
17
18
  * Значение
18
19
  */
@@ -100,10 +101,10 @@ export class CheckboxComponent {
100
101
  }
101
102
  }
102
103
  CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
103
- CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: CheckboxComponent, selector: "teta-checkbox", inputs: { class: "class", palette: "palette", noLabel: "noLabel", disabled: "disabled", value: "value", binary: "binary", allowNull: "allowNull" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class": "this.getClass", "class.checkbox_disabled": "this.disabled" } }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n<span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
104
+ CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: CheckboxComponent, selector: "teta-checkbox", inputs: { class: "class", palette: "palette", noLabel: "noLabel", disabled: "disabled", value: "value", binary: "binary", labelPosition: "labelPosition", allowNull: "allowNull" }, host: { listeners: { "click": "changeValue()" }, properties: { "attr.tabindex": "this.tabindex", "class": "this.getClass", "class.checkbox_disabled": "this.disabled" } }, providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], ngImport: i0, template: "<ng-container *ngIf=\"labelPosition==='right'\">\n <div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n </div>\n <span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n</ng-container>\n<ng-container *ngIf=\"labelPosition==='left'\">\n <span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n <div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n </div>\n</ng-container>\n<ng-template #content><ng-content></ng-content></ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
104
105
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: CheckboxComponent, decorators: [{
105
106
  type: Component,
106
- args: [{ selector: 'teta-checkbox', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n</div>\n<span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-content></ng-content>\n</span>\n" }]
107
+ args: [{ selector: 'teta-checkbox', providers: [CHECKBOX_CONTROL_VALUE_ACCESSOR], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"labelPosition==='right'\">\n <div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n </div>\n <span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n</ng-container>\n<ng-container *ngIf=\"labelPosition==='left'\">\n <span class=\"font-body-3\" *ngIf=\"!noLabel\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </span>\n <div class=\"checkbox__tick\" [class.checkbox__tick_active]=\"checked != false\">\n <teta-icon [name]=\"checked ? 'tick' : checked === false ? '' : 'dash'\"></teta-icon>\n </div>\n</ng-container>\n<ng-template #content><ng-content></ng-content></ng-template>\n" }]
107
108
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { tabindex: [{
108
109
  type: HostBinding,
109
110
  args: ['attr.tabindex']
@@ -125,10 +126,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
125
126
  type: Input
126
127
  }], binary: [{
127
128
  type: Input
129
+ }], labelPosition: [{
130
+ type: Input
128
131
  }], allowNull: [{
129
132
  type: Input
130
133
  }], changeValue: [{
131
134
  type: HostListener,
132
135
  args: ['click']
133
136
  }] } });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9jaGVja2JveC9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2NoZWNrYm94L2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFekUsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQVE7SUFDbEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQVNGLE1BQU0sT0FBTyxpQkFBaUI7SUFvRDVCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbkRaLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFhbEMsWUFBTyxHQUFHLFNBQVMsQ0FBQztRQXNCN0I7O1dBRUc7UUFDSyxXQUFNLEdBQVEsSUFBSSxDQUFDO0lBYWtCLENBQUM7SUEvQzlDLElBQ1ksUUFBUTtRQUNsQixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUN6QztRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFH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LGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OzhHQTFIVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix1V0FIakIsQ0FBQywrQkFBK0IsQ0FBQywwQkN0QjlDLDZRQU1BOzJGRG1CYSxpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsZUFBZSxhQUdkLENBQUMsK0JBQStCLENBQUMsbUJBQzNCLHVCQUF1QixDQUFDLE1BQU07d0dBR2pCLFFBQVE7c0JBQXJDLFdBQVc7dUJBQUMsZUFBZTtnQkFFbkIsS0FBSztzQkFBYixLQUFLO2dCQUdNLFFBQVE7c0JBRG5CLFdBQVc7dUJBQUMsT0FBTztnQkFTWCxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQU9OLFFBQVE7c0JBRlAsV0FBVzt1QkFBQyx5QkFBeUI7O3NCQUNyQyxLQUFLO2dCQUtHLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkF1Qk4sV0FBVztzQkFEVixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgZm9yd2FyZFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBjb25zdCBDSEVDS0JPWF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaGVja2JveENvbXBvbmVudCksXG4gIG11bHRpOiB0cnVlLFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1jaGVja2JveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NoZWNrYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0NIRUNLQk9YX0NPTlRST0xfVkFMVUVfQUNDRVNTT1JdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLnRhYmluZGV4JykgdGFiaW5kZXggPSAwO1xuXG4gIEBJbnB1dCgpIGNsYXNzO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBnZXRDbGFzcygpIHtcbiAgICBjb25zdCByZXN1bHQgPSBbdGhpcy5jbGFzcywgJ2NoZWNrYm94J107XG4gICAgaWYgKHRoaXMucGFsZXR0ZSkge1xuICAgICAgcmVzdWx0LnB1c2goYGNoZWNrYm94LSR7dGhpcy5wYWxldHRlfWApO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0LmpvaW4oJyAnKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHBhbGV0dGUgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIG5vTGFiZWw6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqINC60L7QvNC/0L7QvdC10L3RgiDQvdC10LDQutGC0LjQstC10L1cbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY2hlY2tib3hfZGlzYWJsZWQnKVxuICBASW5wdXQoKVxuICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqXG4gICAqIHRydWUvZmFsc2Ug0LjQu9C4IGxpc3RcbiAgICovXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnk7XG4gIC8qKlxuICAgKiB0cnVlL2ZhbHNlINC40LvQuCBsaXN0XG4gICAqL1xuICBASW5wdXQoKSBiaW5hcnk6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgYWxsb3dOdWxsOiBib29sZWFuO1xuXG4gIGNoZWNrZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqINCX0L3QsNGH0LXQvdC40LVcbiAgICovXG4gIHByaXZhdGUgbW9kZWwkOiBhbnkgPSBudWxsO1xuXG4gIGdldCBtb2RlbCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsJDtcbiAgfVxuXG4gIHNldCBtb2RlbCh2OiBhbnkpIHtcbiAgICBpZiAodiAhPT0gdGhpcy5tb2RlbCQpIHtcbiAgICAgIHRoaXMubW9kZWwkID0gdjtcbiAgICAgIHRoaXMub25DaGFuZ2Uodik7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgY2hhbmdlVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuYmluYXJ5KSB7XG4gICAgICB0aGlzLm1vZGVsID0gIXRoaXMubW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5pc0NoZWNrZWQoKSkge1xuICAgICAgICB0aGlzLmFkZFZhbHVlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbHVlKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMuaXNDaGVja2VkKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKG1vZGVsOiBhbnkpIHtcbiAgICBpZiAodGhpcy5iaW5hcnkpIHtcbiAgICAgIHRoaXMubW9kZWwkID0gbW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChtb2RlbCAmJiBtb2RlbCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIHRoaXMubW9kZWwkID0gbW9kZWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1vZGVsJCA9IFtdO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLmlzQ2hlY2tlZCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGlzQ2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5iaW5hcnkpIHtcbiAgICAgIHJldHVybiB0aGlzLmFsbG93TnVsbCA/IHRoaXMubW9kZWwgOiAhIXRoaXMubW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLm1vZGVsICYmIHRoaXMubW9kZWwuaW5kZXhPZih0aGlzLnZhbHVlKSA+PSAwO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVZhbHVlKCkge1xuICAgIHRoaXMubW9kZWwgPSB0aGlzLm1vZGVsLmZpbHRlcigodmFsOiBhbnkpID0+IHZhbCAhPT0gdGhpcy52YWx1ZSk7XG4gIH1cblxuICBhZGRWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy5tb2RlbCkge1xuICAgICAgdGhpcy5tb2RlbCA9IFsuLi50aGlzLm1vZGVsLCB0aGlzLnZhbHVlXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tb2RlbCA9IFt0aGlzLnZhbHVlXTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgb25DaGFuZ2UoXzogYW55KSB7fVxuXG4gIG9uVG91Y2hlZCgpIHt9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjaGVja2JveF9fdGlja1wiIFtjbGFzcy5jaGVja2JveF9fdGlja19hY3RpdmVdPVwiY2hlY2tlZCAhPSBmYWxzZVwiPlxuICA8dGV0YS1pY29uIFtuYW1lXT1cImNoZWNrZWQgPyAndGljaycgOiBjaGVja2VkID09PSBmYWxzZSA/ICcnIDogJ2Rhc2gnXCI+PC90ZXRhLWljb24+XG48L2Rpdj5cbjxzcGFuIGNsYXNzPVwiZm9udC1ib2R5LTNcIiAqbmdJZj1cIiFub0xhYmVsXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvc3Bhbj5cbiJdfQ==
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9jaGVja2JveC9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2NoZWNrYm94L2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssR0FFTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFekUsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQVE7SUFDbEQsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQVNGLE1BQU0sT0FBTyxpQkFBaUI7SUFvRDVCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbkRaLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFhbEMsWUFBTyxHQUFHLFNBQVMsQ0FBQztRQWlCbkIsa0JBQWEsR0FBZ0IsT0FBTyxDQUFBO1FBSzlDOztXQUVHO1FBQ0ssV0FBTSxHQUFRLElBQUksQ0FBQztJQWFrQixDQUFDO0lBL0M5QyxJQUNZLFFBQVE7UUFDbEIsTUFBTSxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3hDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7U0FDekM7UUFDRCxP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QUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs4R0ExSFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsdVlBSGpCLENBQUMsK0JBQStCLENBQUMsMEJDdEI5Qyx3ekJBaUJBOzJGRFFhLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxlQUFlLGFBR2QsQ0FBQywrQkFBK0IsQ0FBQyxtQkFDM0IsdUJBQXVCLENBQUMsTUFBTTt3R0FHakIsUUFBUTtzQkFBckMsV0FBVzt1QkFBQyxlQUFlO2dCQUVuQixLQUFLO3NCQUFiLEtBQUs7Z0JBR00sUUFBUTtzQkFEbkIsV0FBVzt1QkFBQyxPQUFPO2dCQVNYLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBT04sUUFBUTtzQkFGUCxXQUFXO3VCQUFDLHlCQUF5Qjs7c0JBQ3JDLEtBQUs7Z0JBS0csS0FBSztzQkFBYixLQUFLO2dCQUlHLE1BQU07c0JBQWQsS0FBSztnQkFDSSxhQUFhO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBdUJOLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgY29uc3QgQ0hFQ0tCT1hfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQ2hlY2tib3hDb21wb25lbnQpLFxuICBtdWx0aTogdHJ1ZSxcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtY2hlY2tib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtDSEVDS0JPWF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpIHRhYmluZGV4ID0gMDtcblxuICBASW5wdXQoKSBjbGFzcztcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgcHJpdmF0ZSBnZXQgZ2V0Q2xhc3MoKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gW3RoaXMuY2xhc3MsICdjaGVja2JveCddO1xuICAgIGlmICh0aGlzLnBhbGV0dGUpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGBjaGVja2JveC0ke3RoaXMucGFsZXR0ZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdC5qb2luKCcgJyk7XG4gIH1cblxuICBASW5wdXQoKSBwYWxldHRlID0gJ3ByaW1hcnknO1xuICBASW5wdXQoKSBub0xhYmVsOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiDQutC+0LzQv9C+0L3QtdC90YIg0L3QtdCw0LrRgtC40LLQtdC9XG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNoZWNrYm94X2Rpc2FibGVkJylcbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIC8qKlxuICAgKiB0cnVlL2ZhbHNlINC40LvQuCBsaXN0XG4gICAqL1xuICBASW5wdXQoKSB2YWx1ZTogYW55O1xuICAvKipcbiAgICogdHJ1ZS9mYWxzZSDQuNC70LggbGlzdFxuICAgKi9cbiAgQElucHV0KCkgYmluYXJ5OiBib29sZWFuO1xuICBASW5wdXQgKCkgbGFiZWxQb3NpdGlvbjonbGVmdCd8J3JpZ2h0Jz1cInJpZ2h0XCJcbiAgQElucHV0KCkgYWxsb3dOdWxsOiBib29sZWFuO1xuXG4gIGNoZWNrZWQ6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqINCX0L3QsNGH0LXQvdC40LVcbiAgICovXG4gIHByaXZhdGUgbW9kZWwkOiBhbnkgPSBudWxsO1xuXG4gIGdldCBtb2RlbCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLm1vZGVsJDtcbiAgfVxuXG4gIHNldCBtb2RlbCh2OiBhbnkpIHtcbiAgICBpZiAodiAhPT0gdGhpcy5tb2RlbCQpIHtcbiAgICAgIHRoaXMubW9kZWwkID0gdjtcbiAgICAgIHRoaXMub25DaGFuZ2Uodik7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgY2hhbmdlVmFsdWUoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuYmluYXJ5KSB7XG4gICAgICB0aGlzLm1vZGVsID0gIXRoaXMubW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5pc0NoZWNrZWQoKSkge1xuICAgICAgICB0aGlzLmFkZFZhbHVlKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVZhbHVlKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2hlY2tlZCA9IHRoaXMuaXNDaGVja2VkKCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKG1vZGVsOiBhbnkpIHtcbiAgICBpZiAodGhpcy5iaW5hcnkpIHtcbiAgICAgIHRoaXMubW9kZWwkID0gbW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChtb2RlbCAmJiBtb2RlbCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgIHRoaXMubW9kZWwkID0gbW9kZWw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1vZGVsJCA9IFtdO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNoZWNrZWQgPSB0aGlzLmlzQ2hlY2tlZCgpO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGlzQ2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5iaW5hcnkpIHtcbiAgICAgIHJldHVybiB0aGlzLmFsbG93TnVsbCA/IHRoaXMubW9kZWwgOiAhIXRoaXMubW9kZWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLm1vZGVsICYmIHRoaXMubW9kZWwuaW5kZXhPZih0aGlzLnZhbHVlKSA+PSAwO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZVZhbHVlKCkge1xuICAgIHRoaXMubW9kZWwgPSB0aGlzLm1vZGVsLmZpbHRlcigodmFsOiBhbnkpID0+IHZhbCAhPT0gdGhpcy52YWx1ZSk7XG4gIH1cblxuICBhZGRWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy5tb2RlbCkge1xuICAgICAgdGhpcy5tb2RlbCA9IFsuLi50aGlzLm1vZGVsLCB0aGlzLnZhbHVlXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tb2RlbCA9IFt0aGlzLnZhbHVlXTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpIHt9XG5cbiAgb25DaGFuZ2UoXzogYW55KSB7fVxuXG4gIG9uVG91Y2hlZCgpIHt9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFBvc2l0aW9uPT09J3JpZ2h0J1wiPlxuICA8ZGl2IGNsYXNzPVwiY2hlY2tib3hfX3RpY2tcIiBbY2xhc3MuY2hlY2tib3hfX3RpY2tfYWN0aXZlXT1cImNoZWNrZWQgIT0gZmFsc2VcIj5cbiAgICA8dGV0YS1pY29uIFtuYW1lXT1cImNoZWNrZWQgPyAndGljaycgOiBjaGVja2VkID09PSBmYWxzZSA/ICcnIDogJ2Rhc2gnXCI+PC90ZXRhLWljb24+XG4gIDwvZGl2PlxuICA8c3BhbiBjbGFzcz1cImZvbnQtYm9keS0zXCIgKm5nSWY9XCIhbm9MYWJlbFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gIDwvc3Bhbj5cbjwvbmctY29udGFpbmVyPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsUG9zaXRpb249PT0nbGVmdCdcIj5cbiAgPHNwYW4gY2xhc3M9XCJmb250LWJvZHktM1wiICpuZ0lmPVwiIW5vTGFiZWxcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICA8L3NwYW4+XG4gIDxkaXYgY2xhc3M9XCJjaGVja2JveF9fdGlja1wiIFtjbGFzcy5jaGVja2JveF9fdGlja19hY3RpdmVdPVwiY2hlY2tlZCAhPSBmYWxzZVwiPlxuICAgIDx0ZXRhLWljb24gW25hbWVdPVwiY2hlY2tlZCA/ICd0aWNrJyA6IGNoZWNrZWQgPT09IGZhbHNlID8gJycgOiAnZGFzaCdcIj48L3RldGEtaWNvbj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjY29udGVudD48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,99 @@
1
+ import { ChangeDetectionStrategy, Component } from "@angular/core";
2
+ import { BehaviorSubject, ReplaySubject } from "rxjs";
3
+ import dayjs from "dayjs";
4
+ import { DayModel } from "./model/day-model";
5
+ import * as i0 from "@angular/core";
6
+ export class BaseCalendar {
7
+ constructor(_cdr) {
8
+ this._cdr = _cdr;
9
+ this.currentMonth = new ReplaySubject(1);
10
+ this.minMax = new ReplaySubject(1);
11
+ this.currentYear = new ReplaySubject(1);
12
+ this.selectedPicker = new BehaviorSubject('day');
13
+ this.localeMonths = new Map().set('ru', ['Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'])
14
+ .set('en', ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']);
15
+ this.alive = true;
16
+ }
17
+ generateCalendar(selectedDate, year, month, minMax) {
18
+ const calendarStartDay = selectedDate.set("year", year).set("month", month).set("date", 1).startOf('week');
19
+ const calendar = new Array(42).fill(1).map((v, i) => {
20
+ return calendarStartDay.add(i, 'day');
21
+ });
22
+ return calendar.map((d) => {
23
+ return new DayModel({
24
+ date: new Date(d.toDate()),
25
+ isCurrentMonth: month === d.month(),
26
+ disabled: !this.isSuitableMinDate(d.toDate(), minMax.min) || !this.isSuitableMaxDate(d.toDate(), minMax.max),
27
+ selected: this.isSelected(d.toDate(), selectedDate.toDate())
28
+ });
29
+ });
30
+ }
31
+ isSuitableMinDate(d, minDate) {
32
+ return dayjs(new Date(minDate)).startOf('date').toDate() <= new Date(d) || minDate === null;
33
+ }
34
+ isSuitableMaxDate(d, maxDate) {
35
+ return new Date(d) < dayjs(new Date(maxDate)).endOf('date').toDate() || maxDate === null;
36
+ }
37
+ isSelected(date, selectedDate) {
38
+ const isSelectedDate = date.getDate() === selectedDate?.getDate();
39
+ const isSelectedYear = date.getFullYear() === selectedDate?.getFullYear();
40
+ const isSelectedMonth = date.getMonth() === selectedDate?.getMonth();
41
+ return isSelectedDate && isSelectedMonth && isSelectedYear && !this.isDateNull;
42
+ }
43
+ ngOnDestroy() {
44
+ this.alive = false;
45
+ }
46
+ selectPicker(entity) {
47
+ this.selectedPicker.next(entity);
48
+ }
49
+ selectMonth(month) {
50
+ this.currentMonth.next(month);
51
+ this.selectPicker("day");
52
+ }
53
+ selectYear(year) {
54
+ this.setYear(year);
55
+ this.selectPicker("day");
56
+ }
57
+ ngOnChanges(changes) {
58
+ this.changeCalendarData(this.selectedDate);
59
+ }
60
+ changeCalendarData(selectedDate) {
61
+ let date = new Date(selectedDate || new Date());
62
+ this.currentMonth.next(new Date(date).getMonth());
63
+ this.currentYear.next(new Date(date).getFullYear());
64
+ this.minMax.next({ min: this.min, max: this.max });
65
+ }
66
+ setYear(year) {
67
+ this.currentYear.next(year);
68
+ }
69
+ changeMonth(month, year) {
70
+ const { availableYear, availableMonth } = this.getAvailableMonthYear(month, year);
71
+ this.currentMonth.next(availableMonth);
72
+ this.currentYear.next(availableYear);
73
+ }
74
+ getAvailableMonthYear(month, year) {
75
+ if (month > 11) {
76
+ return { availableMonth: month - 12, availableYear: year + 1 };
77
+ }
78
+ if (month < 0) {
79
+ return { availableMonth: 12 + month, availableYear: year - 1 };
80
+ }
81
+ return { availableMonth: month, availableYear: year };
82
+ }
83
+ getMothName(month) {
84
+ return this.localeMonths.get(this.locale)[month];
85
+ }
86
+ selectDate(date) {
87
+ this.setDate.emit(date);
88
+ }
89
+ }
90
+ BaseCalendar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BaseCalendar, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
91
+ BaseCalendar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: BaseCalendar, selector: "ng-component", usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
92
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: BaseCalendar, decorators: [{
93
+ type: Component,
94
+ args: [{
95
+ template: '',
96
+ changeDetection: ChangeDetectionStrategy.OnPush
97
+ }]
98
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jYWxlbmRhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvYmFzZS1jYWxlbmRhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFLVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwRCxPQUFPLEtBQWMsTUFBTSxPQUFPLENBQUM7QUFHbkMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1CQUFtQixDQUFDOztBQU0zQyxNQUFNLE9BQWdCLFlBQVk7SUFtQmhDLFlBQWdDLElBQXVCO1FBQXZCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBVmhELGlCQUFZLEdBQTBCLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFBO1FBQ2xFLFdBQU0sR0FBbUMsSUFBSSxhQUFhLENBQWtCLENBQUMsQ0FBQyxDQUFBO1FBQzlFLGdCQUFXLEdBQTBCLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFBO1FBQ2pFLG1CQUFjLEdBQThDLElBQUksZUFBZSxDQUEyQixLQUFLLENBQUMsQ0FBQTtRQUVoSCxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDNUosR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMs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SSxDQUFDLENBQUE7UUFDL0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQWEsRUFBRSxJQUFZO1FBQy9DLElBQUksS0FBSyxHQUFHLEVBQUUsRUFBRTtZQUNkLE9BQU8sRUFBQyxjQUFjLEVBQUUsS0FBSyxHQUFHLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBQyxDQUFBO1NBQzdEO1FBQ0QsSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQ2IsT0FBTyxFQUFDLGNBQWMsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLGFBQWEsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFDLENBQUE7U0FDN0Q7UUFDRCxPQUFPLEVBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFhO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2xELENBQUM7SUFFRCxVQUFVLENBQUMsSUFBVTtRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDOzt5R0E3R21CLFlBQVk7NkZBQVosWUFBWSx5RUFIdEIsRUFBRTsyRkFHUSxZQUFZO2tCQUpqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO29CQUNaLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgUmVwbGF5U3ViamVjdH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCBkYXlqcywge0RheWpzfSBmcm9tIFwiZGF5anNcIjtcbmltcG9ydCB7dmlld1R5cGV9IGZyb20gXCIuLi8uLi9jb21tb24vbW9kZWwvdmlldy10eXBlLm1vZGVsXCI7XG5pbXBvcnQge01pbk1heERhdGVNb2RlbH0gZnJvbSBcIi4vbW9kZWwvbWluLW1heC1kYXRlLm1vZGVsXCI7XG5pbXBvcnQge0RheU1vZGVsfSBmcm9tIFwiLi9tb2RlbC9kYXktbW9kZWxcIjtcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiAnJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNhbGVuZGFyIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBhYnN0cmFjdCBzZWxlY3RlZERhdGU7XG4gIGFic3RyYWN0IGxvY2FsZTogc3RyaW5nO1xuICBhYnN0cmFjdCBvcGVuOiBib29sZWFuO1xuICBhYnN0cmFjdCB2aWV3VHlwZTogdmlld1R5cGU7XG4gIGFic3RyYWN0IG1pbjogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcbiAgYWJzdHJhY3QgaXNEYXRlTnVsbDogYm9vbGVhbjtcbiAgYWJzdHJhY3QgbWF4OiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyO1xuICBhYnN0cmFjdCBzZXREYXRlOiBFdmVudEVtaXR0ZXI8RGF0ZT47XG4gIHB1YmxpYyBjdXJyZW50TW9udGg6IFJlcGxheVN1YmplY3Q8bnVtYmVyPiA9IG5ldyBSZXBsYXlTdWJqZWN0PG51bWJlcj4oMSlcbiAgcHVibGljIG1pbk1heDogUmVwbGF5U3ViamVjdDxNaW5NYXhEYXRlTW9kZWw+ID0gbmV3IFJlcGxheVN1YmplY3Q8TWluTWF4RGF0ZU1vZGVsPigxKVxuICBwdWJsaWMgY3VycmVudFllYXI6IFJlcGxheVN1YmplY3Q8bnVtYmVyPiA9IG5ldyBSZXBsYXlTdWJqZWN0PG51bWJlcj4oMSlcbiAgcHVibGljIHNlbGVjdGVkUGlja2VyOiBCZWhhdmlvclN1YmplY3Q8J2RheScgfCAnbW9udGgnIHwgJ3llYXInPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XCJkYXlcIiB8IFwibW9udGhcIiB8IFwieWVhclwiPignZGF5JylcbiAgYWJzdHJhY3QgY2FsZW5kYXI6IERheU1vZGVsW10gfCB7IGN1cnJlbnRNb250aDogRGF5TW9kZWxbXSwgbmV4dE1vbnRoOiBEYXlNb2RlbFtdIH07XG4gIHB1YmxpYyBsb2NhbGVNb250aHMgPSBuZXcgTWFwKCkuc2V0KCdydScsIFsn0K/QvdCy0LDRgNGMJywgJ9Ck0LXQstGA0LDQu9GMJywgJ9Cc0LDRgNGCJywgJ9CQ0L/RgNC10LvRjCcsICfQnNCw0LknLCAn0JjRjtC90YwnLCAn0JjRjtC70YwnLCAn0JDQstCz0YPRgdGCJywgJ9Ch0LXQvdGC0Y/QsdGA0YwnLCAn0J7QutGC0Y/QsdGA0YwnLCAn0J3QvtGP0LHRgNGMJywgJ9CU0LXQutCw0LHRgNGMJ10pXG4gICAgLnNldCgnZW4nLCBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSlcblxuICBwdWJsaWMgYWxpdmUgPSB0cnVlO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgfVxuXG4gIGdlbmVyYXRlQ2FsZW5kYXIoc2VsZWN0ZWREYXRlOiBEYXlqcywgeWVhcjogbnVtYmVyLCBtb250aDogbnVtYmVyLCBtaW5NYXg6IE1pbk1heERhdGVNb2RlbCk6IERheU1vZGVsW10ge1xuICAgIGNvbnN0IGNhbGVuZGFyU3RhcnREYXkgPSBzZWxlY3RlZERhdGUuc2V0KFwieWVhclwiLCB5ZWFyKS5zZXQoXCJtb250aFwiLCBtb250aCkuc2V0KFwiZGF0ZVwiLCAxKS5zdGFydE9mKCd3ZWVrJyk7XG4gICAgY29uc3QgY2FsZW5kYXIgPSBuZXcgQXJyYXkoNDIpLmZpbGwoMSkubWFwKCh2LCBpKSA9PiB7XG4gICAgICByZXR1cm4gY2FsZW5kYXJTdGFydERheS5hZGQoaSwgJ2RheScpXG4gICAgfSk7XG4gICAgcmV0dXJuIGNhbGVuZGFyLm1hcCgoZCkgPT4ge1xuXG4gICAgICByZXR1cm4gbmV3IERheU1vZGVsKHtcbiAgICAgICAgZGF0ZTogbmV3IERhdGUoZC50b0RhdGUoKSksXG4gICAgICAgIGlzQ3VycmVudE1vbnRoOiBtb250aCA9PT0gZC5tb250aCgpLFxuICAgICAgICBkaXNhYmxlZDogIXRoaXMuaXNTdWl0YWJsZU1pbkRhdGUoZC50b0RhdGUoKSwgbWluTWF4Lm1pbikgfHwgIXRoaXMuaXNTdWl0YWJsZU1heERhdGUoZC50b0RhdGUoKSwgbWluTWF4Lm1heCksXG4gICAgICAgIHNlbGVjdGVkOiB0aGlzLmlzU2VsZWN0ZWQoZC50b0RhdGUoKSwgc2VsZWN0ZWREYXRlLnRvRGF0ZSgpKVxuICAgICAgfSlcbiAgICB9KVxuXG4gIH1cblxuICBpc1N1aXRhYmxlTWluRGF0ZShkOiBEYXRlLCBtaW5EYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgcmV0dXJuIGRheWpzKG5ldyBEYXRlKG1pbkRhdGUpKS5zdGFydE9mKCdkYXRlJykudG9EYXRlKCkgPD0gbmV3IERhdGUoZCkgfHwgbWluRGF0ZSA9PT0gbnVsbFxuICB9XG5cbiAgaXNTdWl0YWJsZU1heERhdGUoZDogRGF0ZSwgbWF4RGF0ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlcikge1xuICAgIHJldHVybiBuZXcgRGF0ZShkKSA8IGRheWpzKG5ldyBEYXRlKG1heERhdGUpKS5lbmRPZignZGF0ZScpLnRvRGF0ZSgpIHx8IG1heERhdGUgPT09IG51bGw7XG4gIH1cblxuICBpc1NlbGVjdGVkKGRhdGU6IERhdGUsIHNlbGVjdGVkRGF0ZTogRGF0ZSkge1xuICAgIGNvbnN0IGlzU2VsZWN0ZWREYXRlID0gZGF0ZS5nZXREYXRlKCkgPT09IHNlbGVjdGVkRGF0ZT8uZ2V0RGF0ZSgpXG4gICAgY29uc3QgaXNTZWxlY3RlZFllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCkgPT09IHNlbGVjdGVkRGF0ZT8uZ2V0RnVsbFllYXIoKVxuICAgIGNvbnN0IGlzU2VsZWN0ZWRNb250aCA9IGRhdGUuZ2V0TW9udGgoKSA9PT0gc2VsZWN0ZWREYXRlPy5nZXRNb250aCgpXG4gICAgcmV0dXJuIGlzU2VsZWN0ZWREYXRlICYmIGlzU2VsZWN0ZWRNb250aCAmJiBpc1NlbGVjdGVkWWVhciAmJiAhdGhpcy5pc0RhdGVOdWxsXG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmFsaXZlID0gZmFsc2U7XG4gIH1cblxuICBzZWxlY3RQaWNrZXIoZW50aXR5OiBcImRheVwiIHwgXCJtb250aFwiIHwgXCJ5ZWFyXCIpIHtcbiAgICB0aGlzLnNlbGVjdGVkUGlja2VyLm5leHQoZW50aXR5KVxuICB9XG5cbiAgc2VsZWN0TW9udGgobW9udGg6IG51bWJlcikge1xuICAgIHRoaXMuY3VycmVudE1vbnRoLm5leHQobW9udGgpXG4gICAgdGhpcy5zZWxlY3RQaWNrZXIoXCJkYXlcIilcbiAgfVxuXG4gIHNlbGVjdFllYXIoeWVhcjogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRZZWFyKHllYXIpXG4gICAgdGhpcy5zZWxlY3RQaWNrZXIoXCJkYXlcIilcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZUNhbGVuZGFyRGF0YSh0aGlzLnNlbGVjdGVkRGF0ZSlcbiAgfVxuXG4gIGNoYW5nZUNhbGVuZGFyRGF0YShzZWxlY3RlZERhdGU6IERhdGUgfCBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKHNlbGVjdGVkRGF0ZSB8fCBuZXcgRGF0ZSgpKTtcbiAgICB0aGlzLmN1cnJlbnRNb250aC5uZXh0KG5ldyBEYXRlKGRhdGUpLmdldE1vbnRoKCkpXG4gICAgdGhpcy5jdXJyZW50WWVhci5uZXh0KG5ldyBEYXRlKGRhdGUpLmdldEZ1bGxZZWFyKCkpXG4gICAgdGhpcy5taW5NYXgubmV4dCh7bWluOiB0aGlzLm1pbiwgbWF4OiB0aGlzLm1heH0pXG4gIH1cblxuICBzZXRZZWFyKHllYXI6IG51bWJlcikge1xuICAgIHRoaXMuY3VycmVudFllYXIubmV4dCh5ZWFyKVxuICB9XG5cbiAgY2hhbmdlTW9udGgobW9udGg6IG51bWJlciwgeWVhcjogbnVtYmVyKSB7XG4gICAgY29uc3Qge2F2YWlsYWJsZVllYXIsIGF2YWlsYWJsZU1vbnRofSA9IHRoaXMuZ2V0QXZhaWxhYmxlTW9udGhZZWFyKG1vbnRoLCB5ZWFyKVxuICAgIHRoaXMuY3VycmVudE1vbnRoLm5leHQoYXZhaWxhYmxlTW9udGgpXG4gICAgdGhpcy5jdXJyZW50WWVhci5uZXh0KGF2YWlsYWJsZVllYXIpXG4gIH1cblxuICBnZXRBdmFpbGFibGVNb250aFllYXIobW9udGg6IG51bWJlciwgeWVhcjogbnVtYmVyKSB7XG4gICAgaWYgKG1vbnRoID4gMTEpIHtcbiAgICAgIHJldHVybiB7YXZhaWxhYmxlTW9udGg6IG1vbnRoIC0gMTIsIGF2YWlsYWJsZVllYXI6IHllYXIgKyAxfVxuICAgIH1cbiAgICBpZiAobW9udGggPCAwKSB7XG4gICAgICByZXR1cm4ge2F2YWlsYWJsZU1vbnRoOiAxMiArIG1vbnRoLCBhdmFpbGFibGVZZWFyOiB5ZWFyIC0gMX1cbiAgICB9XG4gICAgcmV0dXJuIHthdmFpbGFibGVNb250aDogbW9udGgsIGF2YWlsYWJsZVllYXI6IHllYXJ9XG4gIH1cblxuICBnZXRNb3RoTmFtZShtb250aDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxlTW9udGhzLmdldCh0aGlzLmxvY2FsZSlbbW9udGhdXG4gIH1cblxuICBzZWxlY3REYXRlKGRhdGU6IERhdGUpIHtcbiAgICB0aGlzLnNldERhdGUuZW1pdChkYXRlKTtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,102 @@
1
+ import dayjs from "dayjs";
2
+ export class BasePicker {
3
+ constructor(_elementRef, _cdr, datePipe) {
4
+ this._elementRef = _elementRef;
5
+ this._cdr = _cdr;
6
+ this.datePipe = datePipe;
7
+ this.open = false;
8
+ this.placeholder = '';
9
+ this.inputText = this.checkNull();
10
+ this.openPicker = (show) => {
11
+ if (this.disabled) {
12
+ return;
13
+ }
14
+ this.open = show;
15
+ this._cdr.markForCheck();
16
+ };
17
+ }
18
+ changeInput(v) {
19
+ this.changePlaceholder(v);
20
+ }
21
+ changePlaceholder(value) {
22
+ let val = this.mask.split('');
23
+ for (let i = 0; value.length > i; i++) {
24
+ val.splice(i, 1, value[i]);
25
+ }
26
+ this.placeholder = val.join('');
27
+ this._cdr.detectChanges();
28
+ }
29
+ openChange(e) {
30
+ this.onBlur();
31
+ this.open = e;
32
+ }
33
+ checkNull() {
34
+ if (!this.date && this.allowNull) {
35
+ return null;
36
+ }
37
+ return this.datePipe.transform(new Date(), 'dd.MM.yyyy, HH:mm');
38
+ }
39
+ changeSelectedDate(date, selectedDate) {
40
+ this.setDate(date);
41
+ this.emitValue(date);
42
+ this.open = false;
43
+ }
44
+ emitValue(value) {
45
+ this.date = value;
46
+ this.selectDate.emit(value);
47
+ this.onChange(value);
48
+ }
49
+ checkEnter(e) {
50
+ if (e.key === "Enter") {
51
+ this.inputText = e.target.value;
52
+ this.onBlur();
53
+ }
54
+ if (e.key === '-') {
55
+ e.preventDefault();
56
+ }
57
+ this.open = true;
58
+ }
59
+ isAvailableLength(val, length) {
60
+ if (val?.length) {
61
+ return val.length === length;
62
+ }
63
+ return false;
64
+ }
65
+ getDateFromStr(str, separator = '.') {
66
+ const date = str?.split(separator);
67
+ const day = this.isAvailableLength((date?.[0]), 2) ? Number(date[0]) : null;
68
+ const month = this.isAvailableLength((date?.[1]), 2) ? Number(date[1]) : null;
69
+ const year = this.isAvailableLength((date?.[2]), 4) ? Number(date[2]) : null;
70
+ return { day, month, year };
71
+ }
72
+ getTimeFromStr(str, separator = ':') {
73
+ const time = str?.trim().split(separator);
74
+ const hours = this.isAvailableLength((time?.[0]), 2) ? Number(time[0]) : null;
75
+ const mins = this.isAvailableLength((time?.[1]), 2) ? Number(time[1]) : null;
76
+ return { hours, mins };
77
+ }
78
+ focus() {
79
+ this._elementRef.nativeElement.focus();
80
+ }
81
+ getLocaleString(date) {
82
+ return new Date(date).toLocaleString([], {
83
+ year: 'numeric',
84
+ month: '2-digit',
85
+ day: '2-digit',
86
+ hour: this.showTime ? '2-digit' : undefined,
87
+ minute: this.showTime ? '2-digit' : undefined,
88
+ });
89
+ }
90
+ getAvailableDate(min, max, date) {
91
+ let minDate = dayjs(new Date(min)).startOf("day").toDate();
92
+ let maxDate = dayjs(new Date(max)).endOf("day").toDate();
93
+ if (min && minDate.getTime() >= new Date(date).getTime()) {
94
+ return new Date();
95
+ }
96
+ if (max && maxDate.getTime() <= new Date(date).getTime()) {
97
+ return maxDate;
98
+ }
99
+ return new Date(date);
100
+ }
101
+ }
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1waWNrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2Jhc2UtcGlja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQVUxQixNQUFNLE9BQWdCLFVBQVU7SUF1QjlCLFlBQWdDLFdBQXVCLEVBQVcsSUFBc0IsRUFBVyxRQUFrQjtRQUFyRixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUFXLFNBQUksR0FBSixJQUFJLENBQWtCO1FBQVcsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQU45RyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBRWIsZ0JBQVcsR0FBRyxFQUFFLENBQUE7UUFDaEIsY0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQXVDcEMsZUFBVSxHQUFHLENBQUMsSUFBYSxFQUFFLEVBQUU7WUFDN0IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQixPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQztJQXpDRixDQUFDO0lBVUQsV0FBVyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDM0IsQ0FBQztJQUNELGlCQUFpQixDQUFDLEtBQWE7UUFDN0IsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDckMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENB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LEdBQTJCLEVBQUUsSUFBNEI7UUFDckcsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQzFELElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtRQUN4RCxJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDeEQsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFBO1NBQ2xCO1FBQ0QsSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3hELE9BQU8sT0FBTyxDQUFBO1NBQ2Y7UUFDRCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ3ZCLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBkYXlqcyBmcm9tIFwiZGF5anNcIjtcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlcn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7QWxpZ259IGZyb20gXCIuLi8uLi9jb21tb24vZW51bS9hbGlnbi5lbnVtXCI7XG5pbXBvcnQge1ZlcnRpY2FsQWxpZ259IGZyb20gXCIuLi8uLi9jb21tb24vZW51bS92ZXJ0aWNhbC1hbGlnbi5lbnVtXCI7XG5pbXBvcnQge1JlcGxheVN1YmplY3R9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge01hc2tpdG9PcHRpb25zfSBmcm9tIFwiQG1hc2tpdG8vY29yZVwiO1xuaW1wb3J0IHsgdmlld1R5cGUgfSBmcm9tIFwiLi4vLi4vY29tbW9uL21vZGVsL3ZpZXctdHlwZS5tb2RlbFwiO1xuaW1wb3J0IHtEYXRlUGlwZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHtEYXRlRnJvbVRvTW9kZWx9IGZyb20gXCIuL21vZGVsL2Zyb20tdG8ubW9kZWxcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VQaWNrZXIge1xuICBhYnN0cmFjdCBtYXNrOnN0cmluZztcbiAgYWJzdHJhY3QgZGF0ZTtcbiAgYWJzdHJhY3QgbG9jYWxlOiBzdHJpbmdcbiAgYWJzdHJhY3Qgc2hvd1RpbWU6IGJvb2xlYW5cbiAgYWJzdHJhY3QgbWluRGF0ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlclxuICBhYnN0cmFjdCBtYXhEYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyXG4gIGFic3RyYWN0IGludmFsaWQ6IGJvb2xlYW5cbiAgYWJzdHJhY3QgZGlzYWJsZWQ6IGJvb2xlYW5cbiAgYWJzdHJhY3QgYWxpZ246IEFsaWduXG4gIGFic3RyYWN0IHZlcnRpY2FsQWxpZ246IFZlcnRpY2FsQWxpZ25cbiAgYWJzdHJhY3Qgdmlld1R5cGU6IHZpZXdUeXBlXG4gIGFic3RyYWN0IGFwcGVuZFRvQm9keTogYm9vbGVhbjtcbiAgYWJzdHJhY3QgYmFja2Ryb3A6IGJvb2xlYW47XG4gIGFic3RyYWN0IGFsbG93TnVsbDogYm9vbGVhblxuICBhYnN0cmFjdCBpbnB1dDogRWxlbWVudFJlZjtcbiAgYWJzdHJhY3Qgc2VsZWN0RGF0ZTogRXZlbnRFbWl0dGVyPERhdGV8RGF0ZUZyb21Ub01vZGVsPlxuICBwdWJsaWMgb3BlbiA9IGZhbHNlO1xuICBhYnN0cmFjdCBzZWxlY3RlZERhdGU6UmVwbGF5U3ViamVjdDxhbnk+O1xuICBwdWJsaWMgcGxhY2Vob2xkZXIgPSAnJ1xuICBwdWJsaWMgaW5wdXRUZXh0ID0gdGhpcy5jaGVja051bGwoKTtcbiAgcHVibGljIG1hc2tpdG9PcHRpb25zOiBNYXNraXRvT3B0aW9ucztcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJvdGVjdGVkIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLHByb3RlY3RlZCBfY2RyOkNoYW5nZURldGVjdG9yUmVmLHByb3RlY3RlZCBkYXRlUGlwZTogRGF0ZVBpcGUpIHtcbiAgfVxuXG4gIGFic3RyYWN0IG9uQ2hhbmdlKGRhdGU6IERhdGUpO1xuXG4gIGFic3RyYWN0IHByZXBhcmVJbnB1dCgpO1xuXG4gIGFic3RyYWN0IG9uQmx1cigpO1xuXG4gIGFic3RyYWN0IHNldERhdGUoZGF0ZSk7XG5cbiAgY2hhbmdlSW5wdXQodikge1xuICAgIHRoaXMuY2hhbmdlUGxhY2Vob2xkZXIodilcbiAgfVxuICBjaGFuZ2VQbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgbGV0IHZhbCA9IHRoaXMubWFzay5zcGxpdCgnJyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IHZhbHVlLmxlbmd0aCA+IGk7IGkrKykge1xuICAgICAgdmFsLnNwbGljZShpLCAxLCB2YWx1ZVtpXSk7XG4gICAgfVxuXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHZhbC5qb2luKCcnKTtcbiAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cblxuICBvcGVuQ2hhbmdlKGU6Ym9vbGVhbikge1xuICAgIHRoaXMub25CbHVyKCk7XG4gICAgdGhpcy5vcGVuPWVcbiAgfVxuXG4gIGNoZWNrTnVsbCgpIHtcbiAgICBpZiAoIXRoaXMuZGF0ZSAmJiB0aGlzLmFsbG93TnVsbCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKCksICdkZC5NTS55eXl5LCBISDptbScpXG4gIH1cblxuICBvcGVuUGlja2VyID0gKHNob3c6IGJvb2xlYW4pID0+IHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLm9wZW4gPSBzaG93O1xuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfTtcblxuICBjaGFuZ2VTZWxlY3RlZERhdGUoZGF0ZSxzZWxlY3RlZERhdGU/KSB7XG4gICAgdGhpcy5zZXREYXRlKGRhdGUpXG4gICAgdGhpcy5lbWl0VmFsdWUoZGF0ZSlcbiAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgfVxuXG4gIGVtaXRWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMuZGF0ZSA9IHZhbHVlXG4gICAgdGhpcy5zZWxlY3REYXRlLmVtaXQodmFsdWUpXG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSlcbiAgfVxuXG5cblxuICBjaGVja0VudGVyKGUpIHtcbiAgICBpZiAoZS5rZXkgPT09IFwiRW50ZXJcIikge1xuICAgICAgdGhpcy5pbnB1dFRleHQ9ZS50YXJnZXQudmFsdWU7XG4gICAgICB0aGlzLm9uQmx1cigpXG4gICAgfVxuICAgIGlmKGUua2V5PT09Jy0nKXtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIH1cbiAgICB0aGlzLm9wZW4gPSB0cnVlO1xuICB9XG5cbiAgaXNBdmFpbGFibGVMZW5ndGgodmFsOiBzdHJpbmcsIGxlbmd0aDogbnVtYmVyKSB7XG4gICAgaWYgKHZhbD8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdmFsLmxlbmd0aCA9PT0gbGVuZ3RoXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgZ2V0RGF0ZUZyb21TdHIoc3RyOiBzdHJpbmcsIHNlcGFyYXRvcjogc3RyaW5nID0gJy4nKSB7XG4gICAgY29uc3QgZGF0ZSA9IHN0cj8uc3BsaXQoc2VwYXJhdG9yKVxuICAgIGNvbnN0IGRheSA9IHRoaXMuaXNBdmFpbGFibGVMZW5ndGgoKGRhdGU/LlswXSksIDIpID8gTnVtYmVyKGRhdGVbMF0pIDogbnVsbFxuICAgIGNvbnN0IG1vbnRoID0gdGhpcy5pc0F2YWlsYWJsZUxlbmd0aCgoZGF0ZT8uWzFdKSwgMikgPyBOdW1iZXIoZGF0ZVsxXSkgOiBudWxsXG4gICAgY29uc3QgeWVhciA9IHRoaXMuaXNBdmFpbGFibGVMZW5ndGgoKGRhdGU/LlsyXSksIDQpID8gTnVtYmVyKGRhdGVbMl0pIDogbnVsbFxuICAgIHJldHVybiB7ZGF5LCBtb250aCwgeWVhcn1cbiAgfVxuXG4gIGdldFRpbWVGcm9tU3RyKHN0cjogc3RyaW5nLCBzZXBhcmF0b3I6IHN0cmluZyA9ICc6Jykge1xuICAgIGNvbnN0IHRpbWUgPSBzdHI/LnRyaW0oKS5zcGxpdChzZXBhcmF0b3IpXG4gICAgY29uc3QgaG91cnMgPSB0aGlzLmlzQXZhaWxhYmxlTGVuZ3RoKCh0aW1lPy5bMF0pLCAyKSA/IE51bWJlcih0aW1lWzBdKSA6IG51bGxcbiAgICBjb25zdCBtaW5zID0gdGhpcy5pc0F2YWlsYWJsZUxlbmd0aCgodGltZT8uWzFdKSwgMikgPyBOdW1iZXIodGltZVsxXSkgOiBudWxsXG4gICAgcmV0dXJuIHtob3VycywgbWluc31cbiAgfVxuXG4gIGZvY3VzKCkge1xuICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgZ2V0TG9jYWxlU3RyaW5nKGRhdGU6IERhdGUgfCBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSkudG9Mb2NhbGVTdHJpbmcoW10sIHtcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnMi1kaWdpdCcsXG4gICAgICBkYXk6ICcyLWRpZ2l0JyxcbiAgICAgIGhvdXI6IHRoaXMuc2hvd1RpbWUgPyAnMi1kaWdpdCcgOiB1bmRlZmluZWQsXG4gICAgICBtaW51dGU6IHRoaXMuc2hvd1RpbWUgPyAnMi1kaWdpdCcgOiB1bmRlZmluZWQsXG4gICAgfSlcbiAgfVxuXG4gIGdldEF2YWlsYWJsZURhdGUobWluOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nLCBtYXg6IERhdGUgfCBudW1iZXIgfCBzdHJpbmcsIGRhdGU6IERhdGUgfCBudW1iZXIgfCBzdHJpbmcpIHtcbiAgICBsZXQgbWluRGF0ZSA9IGRheWpzKG5ldyBEYXRlKG1pbikpLnN0YXJ0T2YoXCJkYXlcIikudG9EYXRlKClcbiAgICBsZXQgbWF4RGF0ZSA9IGRheWpzKG5ldyBEYXRlKG1heCkpLmVuZE9mKFwiZGF5XCIpLnRvRGF0ZSgpXG4gICAgaWYgKG1pbiAmJiBtaW5EYXRlLmdldFRpbWUoKSA+PSBuZXcgRGF0ZShkYXRlKS5nZXRUaW1lKCkpIHtcbiAgICAgIHJldHVybiBuZXcgRGF0ZSgpXG4gICAgfVxuICAgIGlmIChtYXggJiYgbWF4RGF0ZS5nZXRUaW1lKCkgPD0gbmV3IERhdGUoZGF0ZSkuZ2V0VGltZSgpKSB7XG4gICAgICByZXR1cm4gbWF4RGF0ZVxuICAgIH1cbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZSlcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import { BaseCalendar } from "../../base-calendar";
3
+ import dayjs from "dayjs";
4
+ import { combineLatest, filter, map, takeWhile } from "rxjs";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "../../../button/button/button.component";
8
+ import * as i3 from "../../../icon/icon/icon.component";
9
+ import * as i4 from "../../day-picker/day-picker.component";
10
+ import * as i5 from "../../month-picker/month-picker.component";
11
+ import * as i6 from "../../year-picker/year-picker.component";
12
+ export class DateCalendarComponent extends BaseCalendar {
13
+ constructor(_cdr) {
14
+ super(_cdr);
15
+ this._cdr = _cdr;
16
+ this.selectedDate = new Date();
17
+ this.setDate = new EventEmitter();
18
+ this.calendar = [];
19
+ dayjs().locale('ru', { weekStart: 1 });
20
+ combineLatest([this.currentYear, this.currentMonth, this.minMax]).pipe(takeWhile(() => this.alive), filter(([currentYear, currentMonth]) => currentMonth !== null && currentYear !== null), map(([year, month, minMax]) => {
21
+ return this.generateCalendar(dayjs(new Date(this.selectedDate)).locale(this.locale), year, month, minMax);
22
+ })).subscribe((_) => {
23
+ this.calendar = _;
24
+ });
25
+ }
26
+ }
27
+ DateCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DateCalendarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
28
+ DateCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: DateCalendarComponent, selector: "teta-date-calendar", inputs: { selectedDate: "selectedDate", locale: "locale", open: "open", viewType: "viewType", min: "min", isDateNull: "isDateNull", max: "max" }, outputs: { setDate: "setDate" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"{currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async} as data\"\n class=\"datepicker-content overflow-y-auto\"\n>\n <ng-container *ngIf=\"data.selectedPicker==='day'\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button [class]=\"'change-month-button datepicker_'+viewType\" [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth-1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 \">\n <button [class]=\"'datepicker_'+viewType \" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('month')\"> {{getMothName(data.currentMonth)}}</button>\n <button [class]=\"'datepicker_'+viewType\" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('year')\">{{data.currentYear}}</button>\n </div>\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker_'+viewType\"\n (click)=\"changeMonth(data.currentMonth+1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker [viewType]=\"viewType\" (selectDate)=\"selectDate($event)\" [locale]=\"locale\"\n [calendar]=\"calendar\"></teta-day-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"data.selectedPicker==='month'\">\n <teta-month-picker [localeMoths]=\"localeMonths\" [currentYear]=\"data.currentYear\" (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\" [viewType]=\"viewType\" [locale]=\"locale\"\n (selectMonth)=\"selectMonth($event)\"></teta-month-picker>\n </ng-container>\n <ng-container *ngIf=\"data.selectedPicker==='year'\">\n <teta-year-picker [locale]=\"locale\" [viewType]=\"viewType\" (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"></teta-year-picker>\n </ng-container>\n</div>\n\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: i3.IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: i4.DayPickerComponent, selector: "teta-day-picker", inputs: ["date", "calendar", "viewType", "range", "min", "max", "locale", "hoveredDate"], outputs: ["hoveredDateChange", "selectDate"] }, { kind: "component", type: i5.MonthPickerComponent, selector: "teta-month-picker", inputs: ["locale", "selectedMonth", "viewType", "currentYear", "localeMoths"], outputs: ["selectMonth", "changeYear"] }, { kind: "component", type: i6.YearPickerComponent, selector: "teta-year-picker", inputs: ["selectedYear", "viewType", "minMax", "locale"], outputs: ["selectYear"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: DateCalendarComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'teta-date-calendar', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"{currentMonth:currentMonth|async,currentYear:currentYear|async,selectedPicker:selectedPicker|async} as data\"\n class=\"datepicker-content overflow-y-auto\"\n>\n <ng-container *ngIf=\"data.selectedPicker==='day'\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button [class]=\"'change-month-button datepicker_'+viewType\" [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth-1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowLeftKey\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 \">\n <button [class]=\"'datepicker_'+viewType \" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('month')\"> {{getMothName(data.currentMonth)}}</button>\n <button [class]=\"'datepicker_'+viewType\" teta-button view=\"ghost\" palette=\"text\"\n (click)=\"selectPicker('year')\">{{data.currentYear}}</button>\n </div>\n <teta-button [square]=\"true\" [class]=\"'change-month-button datepicker_'+viewType\"\n (click)=\"changeMonth(data.currentMonth+1,data.currentYear)\"\n palette=\"text\"\n view=\"ghost\">\n <teta-icon name=\"arrowRightKey\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker [viewType]=\"viewType\" (selectDate)=\"selectDate($event)\" [locale]=\"locale\"\n [calendar]=\"calendar\"></teta-day-picker>\n </div>\n </div>\n </ng-container>\n <ng-container *ngIf=\"data.selectedPicker==='month'\">\n <teta-month-picker [localeMoths]=\"localeMonths\" [currentYear]=\"data.currentYear\" (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\" [viewType]=\"viewType\" [locale]=\"locale\"\n (selectMonth)=\"selectMonth($event)\"></teta-month-picker>\n </ng-container>\n <ng-container *ngIf=\"data.selectedPicker==='year'\">\n <teta-year-picker [locale]=\"locale\" [viewType]=\"viewType\" (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"></teta-year-picker>\n </ng-container>\n</div>\n\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"] }]
32
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { selectedDate: [{
33
+ type: Input
34
+ }], locale: [{
35
+ type: Input
36
+ }], open: [{
37
+ type: Input
38
+ }], viewType: [{
39
+ type: Input
40
+ }], min: [{
41
+ type: Input
42
+ }], isDateNull: [{
43
+ type: Input
44
+ }], max: [{
45
+ type: Input
46
+ }], setDate: [{
47
+ type: Output
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1jYWxlbmRhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RhdGUtcGlja2VyL2RhdGUtY2FsZW5kYXIvZGF0ZS1jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RhdGUtcGlja2VyL2RhdGUtY2FsZW5kYXIvZGF0ZS1jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBUzNELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxZQUFZO0lBVXJELFlBQXFCLElBQXVCO1FBQzFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQURRLFNBQUksR0FBSixJQUFJLENBQW1CO1FBVG5DLGlCQUFZLEdBQTJCLElBQUksSUFBSSxFQUFFLENBQUM7UUFPakQsWUFBTyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzFELGFBQVEsR0FBZSxFQUFFLENBQUE7UUFHOUIsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBQ3JDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3BFLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQzNCLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxZQUFZLEtBQUssSUFBSSxJQUFJLFdBQVcsS0FBSyxJQUFJLENBQUMsRUFDdEYsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUMzRyxDQUFDLENBQUMsQ0FDSCxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2hCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQzs7a0hBdEJVLHFCQUFxQjtzR0FBckIscUJBQXFCLG9RQ3hCbEMsK3pFQTBDQTsyRkRsQmEscUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLG9CQUFvQixtQkFHYix1QkFBdUIsQ0FBQyxNQUFNO3dHQUd0QyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dmlld1R5cGV9IGZyb20gXCIuLi8uLi8uLi8uLi9jb21tb24vbW9kZWwvdmlldy10eXBlLm1vZGVsXCI7XG5cbmltcG9ydCB7QmFzZUNhbGVuZGFyfSBmcm9tIFwiLi4vLi4vYmFzZS1jYWxlbmRhclwiO1xuaW1wb3J0IHtEYXlNb2RlbH0gZnJvbSBcIi4uLy4uL21vZGVsL2RheS1tb2RlbFwiO1xuaW1wb3J0IGRheWpzIGZyb20gXCJkYXlqc1wiO1xuaW1wb3J0IHtjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgdGFrZVdoaWxlfSBmcm9tIFwicnhqc1wiO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtZGF0ZS1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLWNhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1jYWxlbmRhci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlQ2FsZW5kYXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ2FsZW5kYXIgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveXtcbiAgQElucHV0KCkgc2VsZWN0ZWREYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyID0gbmV3IERhdGUoKTtcbiAgQElucHV0KCkgbG9jYWxlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9wZW46IGJvb2xlYW47XG4gIEBJbnB1dCgpIHZpZXdUeXBlOiB2aWV3VHlwZTtcbiAgQElucHV0KCkgbWluOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyO1xuICBASW5wdXQoKSBpc0RhdGVOdWxsOiBib29sZWFuO1xuICBASW5wdXQoKSBtYXg6IERhdGUgfCBzdHJpbmcgfCBudW1iZXI7XG4gIEBPdXRwdXQoKSBzZXREYXRlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gIHB1YmxpYyBjYWxlbmRhcjogRGF5TW9kZWxbXSA9IFtdXG4gIGNvbnN0cnVjdG9yKG92ZXJyaWRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgc3VwZXIoX2NkcilcbiAgICBkYXlqcygpLmxvY2FsZSgncnUnLCB7d2Vla1N0YXJ0OiAxfSk7XG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5jdXJyZW50WWVhciwgdGhpcy5jdXJyZW50TW9udGgsIHRoaXMubWluTWF4XSkucGlwZShcbiAgICAgIHRha2VXaGlsZSgoKSA9PiB0aGlzLmFsaXZlKSxcbiAgICAgIGZpbHRlcigoW2N1cnJlbnRZZWFyLCBjdXJyZW50TW9udGhdKSA9PiBjdXJyZW50TW9udGggIT09IG51bGwgJiYgY3VycmVudFllYXIgIT09IG51bGwpLFxuICAgICAgbWFwKChbeWVhciwgbW9udGgsIG1pbk1heF0pID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVDYWxlbmRhcihkYXlqcyhuZXcgRGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSkpLmxvY2FsZSh0aGlzLmxvY2FsZSksIHllYXIsIG1vbnRoLCBtaW5NYXgpXG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKChfKSA9PiB7XG4gICAgICB0aGlzLmNhbGVuZGFyID0gXztcbiAgICB9KVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwie2N1cnJlbnRNb250aDpjdXJyZW50TW9udGh8YXN5bmMsY3VycmVudFllYXI6Y3VycmVudFllYXJ8YXN5bmMsc2VsZWN0ZWRQaWNrZXI6c2VsZWN0ZWRQaWNrZXJ8YXN5bmN9IGFzIGRhdGFcIlxuICAgICBjbGFzcz1cImRhdGVwaWNrZXItY29udGVudCBvdmVyZmxvdy15LWF1dG9cIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5zZWxlY3RlZFBpY2tlcj09PSdkYXknXCI+XG4gICAgPGRpdiBjbGFzcz1cInBhZGRpbmctaC0zIHBhZGRpbmctdi0yXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxuICAgICAgICA8dGV0YS1idXR0b24gW2NsYXNzXT1cIidjaGFuZ2UtbW9udGgtYnV0dG9uIGRhdGVwaWNrZXJfJyt2aWV3VHlwZVwiIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlTW9udGgoZGF0YS5jdXJyZW50TW9udGgtMSxkYXRhLmN1cnJlbnRZZWFyKVwiXG4gICAgICAgICAgICAgICAgICAgICBwYWxldHRlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICB2aWV3PVwiZ2hvc3RcIj5cbiAgICAgICAgICA8dGV0YS1pY29uIG5hbWU9XCJhcnJvd0xlZnRLZXlcIj48L3RldGEtaWNvbj5cbiAgICAgICAgPC90ZXRhLWJ1dHRvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnYXAtNCBmb250LWJ1dHRvbi0yIFwiPlxuICAgICAgICAgIDxidXR0b24gW2NsYXNzXT1cIidkYXRlcGlja2VyXycrdmlld1R5cGUgXCIgdGV0YS1idXR0b24gdmlldz1cImdob3N0XCIgcGFsZXR0ZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFBpY2tlcignbW9udGgnKVwiPiB7e2dldE1vdGhOYW1lKGRhdGEuY3VycmVudE1vbnRoKX19PC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvbiBbY2xhc3NdPVwiJ2RhdGVwaWNrZXJfJyt2aWV3VHlwZVwiIHRldGEtYnV0dG9uIHZpZXc9XCJnaG9zdFwiIHBhbGV0dGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQaWNrZXIoJ3llYXInKVwiPnt7ZGF0YS5jdXJyZW50WWVhcn19PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dGV0YS1idXR0b24gW3NxdWFyZV09XCJ0cnVlXCIgW2NsYXNzXT1cIidjaGFuZ2UtbW9udGgtYnV0dG9uIGRhdGVwaWNrZXJfJyt2aWV3VHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlTW9udGgoZGF0YS5jdXJyZW50TW9udGgrMSxkYXRhLmN1cnJlbnRZZWFyKVwiXG4gICAgICAgICAgICAgICAgICAgICBwYWxldHRlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICB2aWV3PVwiZ2hvc3RcIj5cbiAgICAgICAgICA8dGV0YS1pY29uIG5hbWU9XCJhcnJvd1JpZ2h0S2V5XCI+PC90ZXRhLWljb24+XG4gICAgICAgIDwvdGV0YS1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDx0ZXRhLWRheS1waWNrZXIgW3ZpZXdUeXBlXT1cInZpZXdUeXBlXCIgKHNlbGVjdERhdGUpPVwic2VsZWN0RGF0ZSgkZXZlbnQpXCIgW2xvY2FsZV09XCJsb2NhbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtjYWxlbmRhcl09XCJjYWxlbmRhclwiPjwvdGV0YS1kYXktcGlja2VyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS5zZWxlY3RlZFBpY2tlcj09PSdtb250aCdcIj5cbiAgICA8dGV0YS1tb250aC1waWNrZXIgW2xvY2FsZU1vdGhzXT1cImxvY2FsZU1vbnRoc1wiIFtjdXJyZW50WWVhcl09XCJkYXRhLmN1cnJlbnRZZWFyXCIgKGNoYW5nZVllYXIpPVwic2V0WWVhcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkTW9udGhdPVwiZGF0YS5jdXJyZW50TW9udGhcIiBbdmlld1R5cGVdPVwidmlld1R5cGVcIiBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RNb250aCk9XCJzZWxlY3RNb250aCgkZXZlbnQpXCI+PC90ZXRhLW1vbnRoLXBpY2tlcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhLnNlbGVjdGVkUGlja2VyPT09J3llYXInXCI+XG4gICAgPHRldGEteWVhci1waWNrZXIgW2xvY2FsZV09XCJsb2NhbGVcIiBbdmlld1R5cGVdPVwidmlld1R5cGVcIiAoc2VsZWN0WWVhcik9XCJzZWxlY3RZZWFyKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZFllYXJdPVwiZGF0YS5jdXJyZW50WWVhclwiPjwvdGV0YS15ZWFyLXBpY2tlcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuIl19