@tetacom/ng-components 1.4.22 → 1.5.1

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 (325) hide show
  1. package/.eslintrc.json +3 -5
  2. package/component/dropdown/dropdown-base.d.ts +1 -1
  3. package/directive/dynamic-content-base.directive.d.ts +1 -1
  4. package/directive/only-number/only-number.directive.d.ts +1 -0
  5. package/fesm2022/tetacom-ng-components.mjs +533 -497
  6. package/fesm2022/tetacom-ng-components.mjs.map +1 -1
  7. package/package.json +3 -5
  8. package/pipe/prepend-zero/prepend-zero.pipe.d.ts +7 -0
  9. package/pipe/prepend-zero/public-api.d.ts +1 -0
  10. package/pipe/public-api.d.ts +1 -0
  11. package/style/badge.scss +6 -4
  12. package/style/checkbox.scss +3 -1
  13. package/style/chips.scss +3 -1
  14. package/style/icon.scss +3 -1
  15. package/style/message.scss +3 -1
  16. package/style/navigation.scss +3 -1
  17. package/style/presets/view-types.scss +3 -1
  18. package/style/toggle.scss +3 -1
  19. package/style/toolbar.scss +3 -1
  20. package/esm2022/common/contract/auto-close-ignore-case.mjs +0 -2
  21. package/esm2022/common/contract/constructor-type.mjs +0 -2
  22. package/esm2022/common/contract/dynamic-data.mjs +0 -10
  23. package/esm2022/common/contract/i-dictionary.mjs +0 -2
  24. package/esm2022/common/contract/i-id-name.mjs +0 -2
  25. package/esm2022/common/contract/i-id.mjs +0 -2
  26. package/esm2022/common/contract/i-rect.mjs +0 -2
  27. package/esm2022/common/contract/i-tree-data.mjs +0 -2
  28. package/esm2022/common/contract/public-api.mjs +0 -10
  29. package/esm2022/common/contract/teta-content-ref.mjs +0 -8
  30. package/esm2022/common/enum/align.enum.mjs +0 -13
  31. package/esm2022/common/enum/public-api.mjs +0 -4
  32. package/esm2022/common/enum/teta-size.enum.mjs +0 -9
  33. package/esm2022/common/enum/vertical-align.enum.mjs +0 -11
  34. package/esm2022/common/model/public-api.mjs +0 -2
  35. package/esm2022/common/model/view-type.model.mjs +0 -2
  36. package/esm2022/common/public-api.mjs +0 -6
  37. package/esm2022/common/service/click.service.mjs +0 -23
  38. package/esm2022/common/service/dynamic-component.service.mjs +0 -93
  39. package/esm2022/common/service/overlay-container.service.mjs +0 -41
  40. package/esm2022/common/service/public-api.mjs +0 -4
  41. package/esm2022/common/util/array-util.mjs +0 -121
  42. package/esm2022/common/util/dom-util.mjs +0 -19
  43. package/esm2022/common/util/position-util.mjs +0 -136
  44. package/esm2022/common/util/public-api.mjs +0 -4
  45. package/esm2022/component/accordion/accordion/accordion.component.mjs +0 -17
  46. package/esm2022/component/accordion/accordion-content.directive.mjs +0 -17
  47. package/esm2022/component/accordion/accordion-head/accordion-head.component.mjs +0 -51
  48. package/esm2022/component/accordion/accordion-item/accordion-item.component.mjs +0 -62
  49. package/esm2022/component/accordion/public-api.mjs +0 -5
  50. package/esm2022/component/autocomplete/autocomplete/autocomplete.component.mjs +0 -13
  51. package/esm2022/component/autocomplete/public-api.mjs +0 -2
  52. package/esm2022/component/avatar/avatar/avatar.component.mjs +0 -55
  53. package/esm2022/component/avatar/model/avatar-color.enum.mjs +0 -22
  54. package/esm2022/component/avatar/public-api.mjs +0 -2
  55. package/esm2022/component/button/button/button.component.mjs +0 -67
  56. package/esm2022/component/button/public-api.mjs +0 -2
  57. package/esm2022/component/chart-3d/chart3d/chart3d.component.mjs +0 -241
  58. package/esm2022/component/chart-3d/model/base-3d-point.mjs +0 -2
  59. package/esm2022/component/chart-3d/model/chart-3d-options.mjs +0 -7
  60. package/esm2022/component/chart-3d/model/public-api.mjs +0 -3
  61. package/esm2022/component/chart-3d/model/series-3d.mjs +0 -7
  62. package/esm2022/component/chart-3d/public-api.mjs +0 -3
  63. package/esm2022/component/checkbox/checkbox/checkbox.component.mjs +0 -137
  64. package/esm2022/component/checkbox/public-api.mjs +0 -2
  65. package/esm2022/component/date-picker/base-calendar.mjs +0 -121
  66. package/esm2022/component/date-picker/base-picker.mjs +0 -109
  67. package/esm2022/component/date-picker/date-picker/date-calendar/date-calendar.component.mjs +0 -50
  68. package/esm2022/component/date-picker/date-picker/date-picker.component.mjs +0 -228
  69. package/esm2022/component/date-picker/date-range/date-range.component.mjs +0 -233
  70. package/esm2022/component/date-picker/date-range/range-calendar/range-calendar.component.mjs +0 -118
  71. package/esm2022/component/date-picker/day-picker/day-item/day-item.component.mjs +0 -15
  72. package/esm2022/component/date-picker/day-picker/day-picker.component.mjs +0 -118
  73. package/esm2022/component/date-picker/model/date-period.mjs +0 -7
  74. package/esm2022/component/date-picker/model/date-picker-mode.enum.mjs +0 -7
  75. package/esm2022/component/date-picker/model/day-model.mjs +0 -13
  76. package/esm2022/component/date-picker/model/from-to.model.mjs +0 -2
  77. package/esm2022/component/date-picker/model/min-max-date.model.mjs +0 -2
  78. package/esm2022/component/date-picker/model/public-api.mjs +0 -6
  79. package/esm2022/component/date-picker/month-picker/month-picker.component.mjs +0 -47
  80. package/esm2022/component/date-picker/public-api.mjs +0 -6
  81. package/esm2022/component/date-picker/year-picker/scroll-to-selected-year.directive.mjs +0 -27
  82. package/esm2022/component/date-picker/year-picker/year-picker.component.mjs +0 -48
  83. package/esm2022/component/delimiter/delimiter/delimiter.component.mjs +0 -63
  84. package/esm2022/component/delimiter/public-api.mjs +0 -2
  85. package/esm2022/component/divider/divider/divider.component.mjs +0 -18
  86. package/esm2022/component/divider/public-api.mjs +0 -2
  87. package/esm2022/component/dropdown/dropdown/dropdown.component.mjs +0 -30
  88. package/esm2022/component/dropdown/dropdown-base.mjs +0 -224
  89. package/esm2022/component/dropdown/dropdown-content.directive.mjs +0 -18
  90. package/esm2022/component/dropdown/dropdown-head.directive.mjs +0 -19
  91. package/esm2022/component/dropdown/dropdown.directive.mjs +0 -38
  92. package/esm2022/component/dropdown/public-api.mjs +0 -5
  93. package/esm2022/component/dynamic-component/popup-content/popup-content.component.mjs +0 -53
  94. package/esm2022/component/dynamic-component/public-api.mjs +0 -2
  95. package/esm2022/component/expand-card/expand-card/expand-card.component.mjs +0 -34
  96. package/esm2022/component/expand-card/expand-item/expand-item.component.mjs +0 -25
  97. package/esm2022/component/expand-card/public-api.mjs +0 -3
  98. package/esm2022/component/expand-panel/expand-panel/expand-panel.component.mjs +0 -65
  99. package/esm2022/component/expand-panel/expand-panel-content.directive.mjs +0 -17
  100. package/esm2022/component/expand-panel/expand-panel-head.directive.mjs +0 -17
  101. package/esm2022/component/expand-panel/public-api.mjs +0 -4
  102. package/esm2022/component/file-upload/file-item/file-item.component.mjs +0 -13
  103. package/esm2022/component/file-upload/file-upload-area/file-upload-area.component.mjs +0 -87
  104. package/esm2022/component/file-upload/public-api.mjs +0 -3
  105. package/esm2022/component/filter/base/filter-base.mjs +0 -10
  106. package/esm2022/component/filter/base/filter-component-base.mjs +0 -3
  107. package/esm2022/component/filter/boolean-filter/boolean-filter.component.mjs +0 -63
  108. package/esm2022/component/filter/contarct/boolean-filter.mjs +0 -8
  109. package/esm2022/component/filter/contarct/date-filter-value.mjs +0 -9
  110. package/esm2022/component/filter/contarct/date-filter.mjs +0 -11
  111. package/esm2022/component/filter/contarct/filter-component-map.mjs +0 -15
  112. package/esm2022/component/filter/contarct/filter-item.mjs +0 -34
  113. package/esm2022/component/filter/contarct/filter-state.mjs +0 -145
  114. package/esm2022/component/filter/contarct/i-filter.mjs +0 -2
  115. package/esm2022/component/filter/contarct/list-filter.mjs +0 -12
  116. package/esm2022/component/filter/contarct/numeric-filter-value.mjs +0 -10
  117. package/esm2022/component/filter/contarct/numeric-filter.mjs +0 -9
  118. package/esm2022/component/filter/contarct/sort-param.mjs +0 -14
  119. package/esm2022/component/filter/contarct/string-filter.mjs +0 -12
  120. package/esm2022/component/filter/date-filter/date-filter.component.mjs +0 -64
  121. package/esm2022/component/filter/enum/filter-type.enum.mjs +0 -10
  122. package/esm2022/component/filter/enum/list-filter-type.enum.mjs +0 -6
  123. package/esm2022/component/filter/enum/string-filter-type.enum.mjs +0 -20
  124. package/esm2022/component/filter/filter-host/filter-host.component.mjs +0 -79
  125. package/esm2022/component/filter/list-filter/list-filter.component.mjs +0 -96
  126. package/esm2022/component/filter/numeric-filter/numeric-filter.component.mjs +0 -64
  127. package/esm2022/component/filter/public-api.mjs +0 -23
  128. package/esm2022/component/filter/string-filter/string-filter.component.mjs +0 -64
  129. package/esm2022/component/icon/icon/icon.component.mjs +0 -54
  130. package/esm2022/component/icon/icon-file/icon-file.component.mjs +0 -27
  131. package/esm2022/component/icon/icon-sprite.directive.mjs +0 -34
  132. package/esm2022/component/icon/icon.service.mjs +0 -58
  133. package/esm2022/component/icon/public-api.mjs +0 -5
  134. package/esm2022/component/input/color-input/color-input.component.mjs +0 -71
  135. package/esm2022/component/input/form-group-title/form-group-title.component.mjs +0 -18
  136. package/esm2022/component/input/input/input.component.mjs +0 -38
  137. package/esm2022/component/input/public-api.mjs +0 -6
  138. package/esm2022/component/input/text-field/text-field.component.mjs +0 -94
  139. package/esm2022/component/message/message/message.component.mjs +0 -76
  140. package/esm2022/component/message/message-host/message-host.component.mjs +0 -84
  141. package/esm2022/component/message/message.service.mjs +0 -35
  142. package/esm2022/component/message/model/message.mjs +0 -23
  143. package/esm2022/component/message/public-api.mjs +0 -5
  144. package/esm2022/component/modal/dialog/dialog.component.mjs +0 -46
  145. package/esm2022/component/modal/dialog.service.mjs +0 -40
  146. package/esm2022/component/modal/modal-container/modal-container.component.mjs +0 -77
  147. package/esm2022/component/modal/modal.module.mjs +0 -32
  148. package/esm2022/component/modal/modal.service.mjs +0 -122
  149. package/esm2022/component/modal/model/current-modal.mjs +0 -3
  150. package/esm2022/component/modal/model/i-modal-config.mjs +0 -2
  151. package/esm2022/component/modal/model/i-modal-result.mjs +0 -2
  152. package/esm2022/component/modal/model/modal-close-reason.enum.mjs +0 -8
  153. package/esm2022/component/modal/model/modal-instance.mjs +0 -34
  154. package/esm2022/component/modal/public-api.mjs +0 -11
  155. package/esm2022/component/pager/model/pager-state.mjs +0 -51
  156. package/esm2022/component/pager/pager/pager.component.mjs +0 -13
  157. package/esm2022/component/pager/public-api.mjs +0 -4
  158. package/esm2022/component/pager/util/pager-util.mjs +0 -6
  159. package/esm2022/component/panel/panel/panel.component.mjs +0 -45
  160. package/esm2022/component/panel/public-api.mjs +0 -2
  161. package/esm2022/component/progress-bar/progress-bar/progress-bar.component.mjs +0 -130
  162. package/esm2022/component/progress-bar/public-api.mjs +0 -2
  163. package/esm2022/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +0 -24
  164. package/esm2022/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +0 -133
  165. package/esm2022/component/property-grid/property-grid/property-grid-item-description.directive.mjs +0 -20
  166. package/esm2022/component/property-grid/property-grid/property-grid.component.mjs +0 -97
  167. package/esm2022/component/property-grid/public-api.mjs +0 -4
  168. package/esm2022/component/public-api.mjs +0 -72
  169. package/esm2022/component/radio/public-api.mjs +0 -3
  170. package/esm2022/component/radio/radio/radio.component.mjs +0 -240
  171. package/esm2022/component/radio/radio-button/radio-button.component.mjs +0 -63
  172. package/esm2022/component/resize-panel/public-api.mjs +0 -2
  173. package/esm2022/component/resize-panel/resize-panel/resize-panel.component.mjs +0 -166
  174. package/esm2022/component/select/public-api.mjs +0 -4
  175. package/esm2022/component/select/select/select.component.mjs +0 -272
  176. package/esm2022/component/select/select-option.directive.mjs +0 -17
  177. package/esm2022/component/select/select-value.directive.mjs +0 -17
  178. package/esm2022/component/sidebar/public-api.mjs +0 -3
  179. package/esm2022/component/sidebar/sidebar/sidebar.component.mjs +0 -48
  180. package/esm2022/component/sidebar/sidebar-position.enum.mjs +0 -8
  181. package/esm2022/component/stepper/public-api.mjs +0 -2
  182. package/esm2022/component/stepper/stepper/stepper.component.mjs +0 -16
  183. package/esm2022/component/switch/public-api.mjs +0 -3
  184. package/esm2022/component/switch/switch/switch.component.mjs +0 -61
  185. package/esm2022/component/switch/switch-button/switch-button.component.mjs +0 -47
  186. package/esm2022/component/switch/switch.service.mjs +0 -21
  187. package/esm2022/component/table/base/cell-component-base.mjs +0 -158
  188. package/esm2022/component/table/base/detail-component-base.mjs +0 -3
  189. package/esm2022/component/table/base/head-cell-component-base.mjs +0 -18
  190. package/esm2022/component/table/cell/cell.component.mjs +0 -28
  191. package/esm2022/component/table/cell-host/cell-host.component.mjs +0 -56
  192. package/esm2022/component/table/contract/cell-components-map.mjs +0 -15
  193. package/esm2022/component/table/contract/column-reorder-event.mjs +0 -7
  194. package/esm2022/component/table/contract/column-resize-event.mjs +0 -7
  195. package/esm2022/component/table/contract/head-dropdown-tab.mjs +0 -2
  196. package/esm2022/component/table/contract/i-cell-coordinates.mjs +0 -2
  197. package/esm2022/component/table/contract/i-cell-event.mjs +0 -2
  198. package/esm2022/component/table/contract/i-cell-instance.mjs +0 -2
  199. package/esm2022/component/table/contract/i-cell-value.mjs +0 -2
  200. package/esm2022/component/table/contract/public-api.mjs +0 -13
  201. package/esm2022/component/table/contract/sort-event.mjs +0 -7
  202. package/esm2022/component/table/contract/table-column-store.mjs +0 -12
  203. package/esm2022/component/table/contract/table-column.mjs +0 -44
  204. package/esm2022/component/table/contract/table-row.mjs +0 -7
  205. package/esm2022/component/table/default/boolean-cell/boolean-cell.component.mjs +0 -39
  206. package/esm2022/component/table/default/date-cell/date-cell.component.mjs +0 -40
  207. package/esm2022/component/table/default/date-time-cell/date-time-cell.component.mjs +0 -40
  208. package/esm2022/component/table/default/default-head-cell/default-head-cell.component.mjs +0 -49
  209. package/esm2022/component/table/default/list-cell/list-cell.component.mjs +0 -60
  210. package/esm2022/component/table/default/numeric-cell/numeric-cell.component.mjs +0 -39
  211. package/esm2022/component/table/default/string-cell/string-cell.component.mjs +0 -40
  212. package/esm2022/component/table/enum/aggregation-type.enum.mjs +0 -9
  213. package/esm2022/component/table/enum/edit-event.enum.mjs +0 -7
  214. package/esm2022/component/table/enum/edit-type.enum.mjs +0 -7
  215. package/esm2022/component/table/enum/public-api.mjs +0 -5
  216. package/esm2022/component/table/enum/select-type.enum.mjs +0 -7
  217. package/esm2022/component/table/head-cell/head-cell.component.mjs +0 -204
  218. package/esm2022/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +0 -50
  219. package/esm2022/component/table/head-cell-host/head-cell-host.component.mjs +0 -60
  220. package/esm2022/component/table/public-api.mjs +0 -42
  221. package/esm2022/component/table/selection-cell/selection-cell.component.mjs +0 -46
  222. package/esm2022/component/table/selection-head-cell/selection-head-cell.component.mjs +0 -45
  223. package/esm2022/component/table/service/table.service.mjs +0 -650
  224. package/esm2022/component/table/table/table.component.mjs +0 -470
  225. package/esm2022/component/table/table-body/table-body.component.mjs +0 -210
  226. package/esm2022/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +0 -57
  227. package/esm2022/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.mjs +0 -89
  228. package/esm2022/component/table/table-head/table-head.component.mjs +0 -76
  229. package/esm2022/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +0 -154
  230. package/esm2022/component/table/table-head-group/table-head-group.component.mjs +0 -72
  231. package/esm2022/component/table/table-row/table-row.component.mjs +0 -42
  232. package/esm2022/component/table/util/public-api.mjs +0 -3
  233. package/esm2022/component/table/util/state-util.mjs +0 -146
  234. package/esm2022/component/table/util/table-util.mjs +0 -133
  235. package/esm2022/component/tabs/public-api.mjs +0 -11
  236. package/esm2022/component/tabs/tab/tab.component.mjs +0 -42
  237. package/esm2022/component/tabs/tab-content.directive.mjs +0 -17
  238. package/esm2022/component/tabs/tab-title.directive.mjs +0 -17
  239. package/esm2022/component/tabs/tabs/tabs.component.mjs +0 -82
  240. package/esm2022/component/theme-switch/public-api.mjs +0 -3
  241. package/esm2022/component/theme-switch/theme-switch/theme-switch.component.mjs +0 -30
  242. package/esm2022/component/theme-switch/theme-switch.service.mjs +0 -34
  243. package/esm2022/component/toggle/public-api.mjs +0 -2
  244. package/esm2022/component/toggle/toggle/toggle.component.mjs +0 -79
  245. package/esm2022/component/toolbar/public-api.mjs +0 -5
  246. package/esm2022/component/toolbar/toolbar/toolbar.component.mjs +0 -26
  247. package/esm2022/component/tree/public-api.mjs +0 -4
  248. package/esm2022/component/tree/tree/tree.component.mjs +0 -143
  249. package/esm2022/component/tree/tree-item/tree-item.component.mjs +0 -75
  250. package/esm2022/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +0 -28
  251. package/esm2022/component/tree/tree.service.mjs +0 -40
  252. package/esm2022/directive/auto-position/auto-position.directive.mjs +0 -71
  253. package/esm2022/directive/auto-position/public-api.mjs +0 -2
  254. package/esm2022/directive/click-outside/click-outside.directive.mjs +0 -66
  255. package/esm2022/directive/click-outside/public-api.mjs +0 -2
  256. package/esm2022/directive/context-menu/context-menu.directive.mjs +0 -119
  257. package/esm2022/directive/context-menu/public-api.mjs +0 -2
  258. package/esm2022/directive/disable-control/disable-control.directive.mjs +0 -35
  259. package/esm2022/directive/disable-control/public-api.mjs +0 -2
  260. package/esm2022/directive/drag-drop/drag-container.directive.mjs +0 -92
  261. package/esm2022/directive/drag-drop/drag-drop.service.mjs +0 -145
  262. package/esm2022/directive/drag-drop/drag-placeholder.directive.mjs +0 -15
  263. package/esm2022/directive/drag-drop/drag-preview.directive.mjs +0 -17
  264. package/esm2022/directive/drag-drop/drag.directive.mjs +0 -138
  265. package/esm2022/directive/drag-drop/model/drag-container-instance.mjs +0 -8
  266. package/esm2022/directive/drag-drop/model/drag-instance.mjs +0 -7
  267. package/esm2022/directive/drag-drop/model/drag-process.mjs +0 -2
  268. package/esm2022/directive/drag-drop/model/drag-selection.mjs +0 -2
  269. package/esm2022/directive/drag-drop/model/drop-event.mjs +0 -2
  270. package/esm2022/directive/drag-drop/model/drop-target.mjs +0 -2
  271. package/esm2022/directive/drag-drop/model/point.mjs +0 -2
  272. package/esm2022/directive/drag-drop/model/public-api.mjs +0 -8
  273. package/esm2022/directive/drag-drop/public-api.mjs +0 -7
  274. package/esm2022/directive/drag-sort/drag-sort-container.directive.mjs +0 -65
  275. package/esm2022/directive/drag-sort/drag-sort-event.mjs +0 -2
  276. package/esm2022/directive/drag-sort/drag-sort-item.directive.mjs +0 -111
  277. package/esm2022/directive/drag-sort/public-api.mjs +0 -4
  278. package/esm2022/directive/dynamic-content-base.directive.mjs +0 -80
  279. package/esm2022/directive/highlight/highlight.directive.mjs +0 -72
  280. package/esm2022/directive/highlight/public-api.mjs +0 -2
  281. package/esm2022/directive/hint/hint.directive.mjs +0 -102
  282. package/esm2022/directive/hint/public-api.mjs +0 -2
  283. package/esm2022/directive/let/let.directive.mjs +0 -39
  284. package/esm2022/directive/let/public-api.mjs +0 -2
  285. package/esm2022/directive/loader/loader.directive.mjs +0 -85
  286. package/esm2022/directive/loader/public-api.mjs +0 -2
  287. package/esm2022/directive/no-autofill/no-autofill.directive.mjs +0 -31
  288. package/esm2022/directive/no-autofill/public-api.mjs +0 -2
  289. package/esm2022/directive/only-number/only-number.directive.mjs +0 -184
  290. package/esm2022/directive/only-number/public-api.mjs +0 -2
  291. package/esm2022/directive/public-api.mjs +0 -19
  292. package/esm2022/directive/resize-drag/public-api.mjs +0 -2
  293. package/esm2022/directive/resize-drag/resize-drag.directive.mjs +0 -72
  294. package/esm2022/directive/scroll-into-view/public-api.mjs +0 -2
  295. package/esm2022/directive/scroll-into-view/scroll-into-view.directive.mjs +0 -41
  296. package/esm2022/directive/scrollable/public-api.mjs +0 -3
  297. package/esm2022/directive/scrollable/scrollable/scrollable.component.mjs +0 -98
  298. package/esm2022/directive/scrollable/scrollable.directive.mjs +0 -20
  299. package/esm2022/directive/teta-template/public-api.mjs +0 -2
  300. package/esm2022/directive/teta-template/teta-template.directive.mjs +0 -23
  301. package/esm2022/directive/tooltip/public-api.mjs +0 -2
  302. package/esm2022/directive/tooltip/tooltip.directive.mjs +0 -81
  303. package/esm2022/index.mjs +0 -22
  304. package/esm2022/locale/en.mjs +0 -50
  305. package/esm2022/locale/public-api.mjs +0 -5
  306. package/esm2022/locale/ru.mjs +0 -50
  307. package/esm2022/locale/teta-config.service.mjs +0 -28
  308. package/esm2022/locale/teta-localisation.mjs +0 -2
  309. package/esm2022/observable/animation-frame.mjs +0 -30
  310. package/esm2022/observable/public-api.mjs +0 -3
  311. package/esm2022/observable/zone-observable.mjs +0 -15
  312. package/esm2022/pipe/date-pipe/public-api.mjs +0 -2
  313. package/esm2022/pipe/date-pipe/teta-date.pipe.mjs +0 -43
  314. package/esm2022/pipe/number-pipe/number.pipe.mjs +0 -28
  315. package/esm2022/pipe/number-pipe/public-api.mjs +0 -2
  316. package/esm2022/pipe/public-api.mjs +0 -4
  317. package/esm2022/pipe/util/number-helper.mjs +0 -25
  318. package/esm2022/tetacom-ng-components.mjs +0 -5
  319. package/esm2022/util/bool-or-func.mjs +0 -13
  320. package/esm2022/util/date-util.mjs +0 -231
  321. package/esm2022/util/export-dom-image.mjs +0 -22
  322. package/esm2022/util/forms-util.mjs +0 -85
  323. package/esm2022/util/is-function.mjs +0 -4
  324. package/esm2022/util/public-api.mjs +0 -7
  325. package/esm2022/util/string-util.mjs +0 -9
@@ -1,118 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';
2
- import dayjs from 'dayjs';
3
- import { combineLatest, filter, map, shareReplay, takeWhile } from 'rxjs';
4
- import { BaseCalendar } from '../../base-calendar';
5
- import { YearPickerComponent } from '../../year-picker/year-picker.component';
6
- import { MonthPickerComponent } from '../../month-picker/month-picker.component';
7
- import { DayPickerComponent } from '../../day-picker/day-picker.component';
8
- import { IconComponent } from '../../../icon/icon/icon.component';
9
- import { NgClass, AsyncPipe } from '@angular/common';
10
- import { ButtonComponent } from '../../../button/button/button.component';
11
- import * as i0 from "@angular/core";
12
- export class RangeCalendarComponent extends BaseCalendar {
13
- get hoveredDate() {
14
- return this._hoveredDate;
15
- }
16
- set hoveredDate(e) {
17
- this._hoveredDate = e;
18
- this._cdr.detectChanges();
19
- }
20
- constructor(_cdr) {
21
- super(_cdr);
22
- this._cdr = _cdr;
23
- this.allowNull = true;
24
- this.hoveredDateChange = new EventEmitter();
25
- this.setDate = new EventEmitter();
26
- this._hoveredDate = null;
27
- combineLatest([this.currentYear, this.currentMonth, this.minMax])
28
- .pipe(takeWhile(() => this.alive), shareReplay({ bufferSize: 1, refCount: false }), filter(([currentYear, currentMonth]) => currentMonth !== null && currentYear !== null), map(([year, month, minMax]) => {
29
- const { availableYear, availableMonth } = this.getAvailableMonthYear(month + 1, year);
30
- return {
31
- currentMonth: this.generateCalendar(dayjs(new Date(this.selectedDate.from || new Date())).locale('ru', { weekStart: 1 }), year, month, minMax),
32
- nextMonth: this.generateCalendar(dayjs(new Date(this.selectedDate.from || new Date())).locale('ru', { weekStart: 1 }), availableYear, availableMonth, minMax),
33
- };
34
- }))
35
- .subscribe((_) => {
36
- this.calendar = _;
37
- });
38
- }
39
- getFromTo() {
40
- let dateFrom;
41
- let dateTo;
42
- if (this.selectedDate?.from) {
43
- dateFrom = new Date(this.selectedDate.from);
44
- dateTo = null;
45
- }
46
- else {
47
- if (this.allowNull) {
48
- dateFrom = this.date?.from ? new Date(this.date.from) : null;
49
- dateTo = this.date?.to ? new Date(this.date.to) : null;
50
- }
51
- else {
52
- dateFrom = this.date?.from ? new Date(this.date.from) : new Date();
53
- dateTo = this.date?.to ? new Date(this.date.to) : new Date();
54
- }
55
- }
56
- return { from: dateFrom, to: dateTo };
57
- }
58
- isSelected(d, selectedDate) {
59
- const { from, to } = this.getFromTo();
60
- return this.checkSelected(d, from) || this.checkSelected(d, to);
61
- }
62
- checkSelected(date, selectedDate) {
63
- const isSelectedDate = date.getDate() === selectedDate?.getDate();
64
- const isSelectedYear = date.getFullYear() === selectedDate?.getFullYear();
65
- const isSelectedMonth = date.getMonth() === selectedDate?.getMonth();
66
- return isSelectedDate && isSelectedMonth && isSelectedYear;
67
- }
68
- isFirstDaySuitable(m, y, max) {
69
- const { availableYear, availableMonth } = this.getAvailableMonthYear(m, y);
70
- return this.isSuitableMaxDate(dayjs(new Date(availableYear, availableMonth)).startOf('month').toDate(), max);
71
- }
72
- isLastDaySuitable(m, y, min) {
73
- const { availableYear, availableMonth } = this.getAvailableMonthYear(m, y);
74
- return this.isSuitableMinDate(dayjs(new Date(availableYear, availableMonth)).endOf('month').toDate(), min);
75
- }
76
- ngOnChanges(changes) {
77
- if (!changes?.['hoveredDate']) {
78
- this.changeCalendarData(this.selectedDate.from || this.date.from);
79
- }
80
- }
81
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RangeCalendarComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
82
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: RangeCalendarComponent, isStandalone: true, selector: "teta-range-calendar", inputs: { locale: "locale", open: "open", date: "date", viewType: "viewType", allowNull: "allowNull", selectedDate: "selectedDate", min: "min", isDateNull: "isDateNull", max: "max" }, outputs: { hoveredDateChange: "hoveredDateChange", setDate: "setDate" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (\n {\n currentMonth: currentMonth | async,\n currentYear: currentYear | async,\n selectedPicker: selectedPicker | async,\n minMax: minMax | async,\n };\n as data\n) {\n <div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker === 'day') {\n <div class=\"row\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{\n 'datepicker-arrow_hidden': !isLastDaySuitable(data.currentMonth - 1, data.currentYear, min),\n }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(data.currentMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"\n ></teta-day-picker>\n </div>\n </div>\n @if (getAvailableMonthYear(data.currentMonth + 1, data.currentYear); as availableMonthYear) {\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(availableMonthYear.availableMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ availableMonthYear.availableYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [ngClass]=\"{\n 'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth + 2, data.currentYear, max),\n }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"\n ></teta-day-picker>\n </div>\n </div>\n }\n </div>\n }\n @if (data.selectedPicker === 'month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n }\n @if (data.selectedPicker === 'year') {\n <teta-year-picker\n [minMax]=\"data.minMax\"\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n </div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "component", type: DayPickerComponent, selector: "teta-day-picker", inputs: ["date", "calendar", "viewType", "range", "min", "max", "locale", "hoveredDate"], outputs: ["hoveredDateChange", "selectDate"] }, { kind: "component", type: MonthPickerComponent, selector: "teta-month-picker", inputs: ["selectedMonth", "viewType", "currentYear", "localeMoths"], outputs: ["selectMonth", "changeYear"] }, { kind: "component", type: YearPickerComponent, selector: "teta-year-picker", inputs: ["selectedYear", "viewType", "minMax", "locale"], outputs: ["selectYear"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
83
- }
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: RangeCalendarComponent, decorators: [{
85
- type: Component,
86
- args: [{ selector: 'teta-range-calendar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
87
- ButtonComponent,
88
- NgClass,
89
- IconComponent,
90
- DayPickerComponent,
91
- MonthPickerComponent,
92
- YearPickerComponent,
93
- AsyncPipe,
94
- ], template: "@if (\n {\n currentMonth: currentMonth | async,\n currentYear: currentYear | async,\n selectedPicker: selectedPicker | async,\n minMax: minMax | async,\n };\n as data\n) {\n <div class=\"datepicker-content overflow-y-auto\">\n @if (data.selectedPicker === 'day') {\n <div class=\"row\" (wheel)=\"scrollMonth($event, data.currentMonth, data.currentYear)\">\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [ngClass]=\"{\n 'datepicker-arrow_hidden': !isLastDaySuitable(data.currentMonth - 1, data.currentYear, min),\n }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"changeMonth(data.currentMonth - 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(data.currentMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ data.currentYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.currentMonth\"\n ></teta-day-picker>\n </div>\n </div>\n @if (getAvailableMonthYear(data.currentMonth + 1, data.currentYear); as availableMonthYear) {\n <div class=\"padding-h-3 padding-v-2\">\n <div class=\"row align-center justify-content-between\">\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker-arrow_hidden datepicker_' + viewType\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <div class=\"row gap-4 font-button-2 align-center padding-left-1\">\n <p>{{ getMothName(availableMonthYear.availableMonth) }}</p>\n <button\n [class]=\"'datepicker_' + viewType\"\n teta-button\n view=\"ghost\"\n palette=\"text\"\n (click)=\"selectPicker('year')\"\n >\n {{ availableMonthYear.availableYear }}\n </button>\n </div>\n <teta-button\n [square]=\"true\"\n [ngClass]=\"{\n 'datepicker-arrow_hidden': !isFirstDaySuitable(data.currentMonth + 2, data.currentYear, max),\n }\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"changeMonth(data.currentMonth + 1, data.currentYear)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div>\n <teta-day-picker\n [(hoveredDate)]=\"hoveredDate\"\n [range]=\"getFromTo()\"\n [viewType]=\"viewType\"\n (selectDate)=\"selectDate($event)\"\n [locale]=\"locale\"\n [calendar]=\"calendar.nextMonth\"\n ></teta-day-picker>\n </div>\n </div>\n }\n </div>\n }\n @if (data.selectedPicker === 'month') {\n <teta-month-picker\n [localeMoths]=\"locale.months\"\n [currentYear]=\"data.currentYear\"\n (changeYear)=\"setYear($event)\"\n [selectedMonth]=\"data.currentMonth\"\n [viewType]=\"viewType\"\n (selectMonth)=\"selectMonth($event)\"\n ></teta-month-picker>\n }\n @if (data.selectedPicker === 'year') {\n <teta-year-picker\n [minMax]=\"data.minMax\"\n [locale]=\"locale\"\n [viewType]=\"viewType\"\n (selectYear)=\"selectYear($event)\"\n [selectedYear]=\"data.currentYear\"\n ></teta-year-picker>\n }\n </div>\n}\n", styles: [".change-month-button{-webkit-user-select:none;user-select:none}\n"] }]
95
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { locale: [{
96
- type: Input
97
- }], open: [{
98
- type: Input
99
- }], date: [{
100
- type: Input
101
- }], viewType: [{
102
- type: Input
103
- }], allowNull: [{
104
- type: Input
105
- }], selectedDate: [{
106
- type: Input
107
- }], min: [{
108
- type: Input
109
- }], isDateNull: [{
110
- type: Input
111
- }], max: [{
112
- type: Input
113
- }], hoveredDateChange: [{
114
- type: Output
115
- }], setDate: [{
116
- type: Output
117
- }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9kYXRlLXJhbmdlL3JhbmdlLWNhbGVuZGFyL3JhbmdlLWNhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvZGF0ZS1yYW5nZS9yYW5nZS1jYWxlbmRhci9yYW5nZS1jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRzFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUluRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBa0IxRSxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsWUFBWTtJQWN0RCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZ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R0FDYixrQkFBa0Isb01BQ2xCLG9CQUFvQiwyS0FDcEIsbUJBQW1CLDJJQUNuQixTQUFTOzsyRkFHQSxzQkFBc0I7a0JBaEJsQyxTQUFTOytCQUNFLHFCQUFxQixtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxlQUFlO3dCQUNmLE9BQU87d0JBQ1AsYUFBYTt3QkFDYixrQkFBa0I7d0JBQ2xCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixTQUFTO3FCQUNWO3NGQUdRLE1BQU07c0JBQWQsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDSSxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHRha2VXaGlsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyB2aWV3VHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbW1vbi9tb2RlbC92aWV3LXR5cGUubW9kZWwnO1xuaW1wb3J0IHsgQmFzZUNhbGVuZGFyIH0gZnJvbSAnLi4vLi4vYmFzZS1jYWxlbmRhcic7XG5pbXBvcnQgeyBEYXlNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVsL2RheS1tb2RlbCc7XG5pbXBvcnQgeyBEYXRlRnJvbVRvTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbC9mcm9tLXRvLm1vZGVsJztcbmltcG9ydCB7IFRldGFMb2NhbGlzYXRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi9sb2NhbGUvdGV0YS1sb2NhbGlzYXRpb24nO1xuaW1wb3J0IHsgWWVhclBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3llYXItcGlja2VyL3llYXItcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb250aFBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL21vbnRoLXBpY2tlci9tb250aC1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7IERheVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RheS1waWNrZXIvZGF5LXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2ljb24vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ0NsYXNzLCBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vYnV0dG9uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndGV0YS1yYW5nZS1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYW5nZS1jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhbmdlLWNhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE5nQ2xhc3MsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBEYXlQaWNrZXJDb21wb25lbnQsXG4gICAgTW9udGhQaWNrZXJDb21wb25lbnQsXG4gICAgWWVhclBpY2tlckNvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFJhbmdlQ2FsZW5kYXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ2FsZW5kYXIgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGxvY2FsZTogVGV0YUxvY2FsaXNhdGlvbjtcbiAgQElucHV0KCkgb3BlbjogYm9vbGVhbjtcbiAgQElucHV0KCkgZGF0ZTogRGF0ZUZyb21Ub01vZGVsO1xuICBASW5wdXQoKSB2aWV3VHlwZTogdmlld1R5cGU7XG4gIEBJbnB1dCgpIGFsbG93TnVsbCA9IHRydWU7XG4gIEBJbnB1dCgpIHNlbGVjdGVkRGF0ZTogRGF0ZUZyb21Ub01vZGVsO1xuICBASW5wdXQoKSBtaW46IERhdGUgfCBzdHJpbmcgfCBudW1iZXI7XG4gIEBJbnB1dCgpIGlzRGF0ZU51bGw6IGJvb2xlYW47XG4gIEBJbnB1dCgpIG1heDogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcbiAgQE91dHB1dCgpIGhvdmVyZWREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gIEBPdXRwdXQoKSBzZXREYXRlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gIHB1YmxpYyBjYWxlbmRhcjogeyBjdXJyZW50TW9udGg6IERheU1vZGVsW107IG5leHRNb250aDogRGF5TW9kZWxbXSB9O1xuICBwdWJsaWMgX2hvdmVyZWREYXRlOiBEYXRlID0gbnVsbDtcbiAgZ2V0IGhvdmVyZWREYXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9ob3ZlcmVkRGF0ZTtcbiAgfVxuXG4gIHNldCBob3ZlcmVkRGF0ZShlKSB7XG4gICAgdGhpcy5faG92ZXJlZERhdGUgPSBlO1xuICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihvdmVycmlkZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKF9jZHIpO1xuICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuY3VycmVudFllYXIsIHRoaXMuY3VycmVudE1vbnRoLCB0aGlzLm1pbk1heF0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVdoaWxlKCgpID0+IHRoaXMuYWxpdmUpLFxuICAgICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiBmYWxzZSB9KSxcbiAgICAgICAgZmlsdGVyKChbY3VycmVudFllYXIsIGN1cnJlbnRNb250aF0pID0+IGN1cnJlbnRNb250aCAhPT0gbnVsbCAmJiBjdXJyZW50WWVhciAhPT0gbnVsbCksXG4gICAgICAgIG1hcCgoW3llYXIsIG1vbnRoLCBtaW5NYXhdKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBhdmFpbGFibGVZZWFyLCBhdmFpbGFibGVNb250aCB9ID0gdGhpcy5nZXRBdmFpbGFibGVNb250aFllYXIobW9udGggKyAxLCB5ZWFyKTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY3VycmVudE1vbnRoOiB0aGlzLmdlbmVyYXRlQ2FsZW5kYXIoXG4gICAgICAgICAgICAgIGRheWpzKG5ldyBEYXRlKHRoaXMuc2VsZWN0ZWREYXRlLmZyb20gfHwgbmV3IERhdGUoKSkpLmxvY2FsZSgncnUnLCB7IHdlZWtTdGFydDogMSB9KSxcbiAgICAgICAgICAgICAgeWVhcixcbiAgICAgICAgICAgICAgbW9udGgsXG4gICAgICAgICAgICAgIG1pbk1heCxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBuZXh0TW9udGg6IHRoaXMuZ2VuZXJhdGVDYWxlbmRhcihcbiAgICAgICAgICAgICAgZGF5anMobmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUuZnJvbSB8fCBuZXcgRGF0ZSgpKSkubG9jYWxlKCdydScsIHsgd2Vla1N0YXJ0OiAxIH0pLFxuICAgICAgICAgICAgICBhdmFpbGFibGVZZWFyLFxuICAgICAgICAgICAgICBhdmFpbGFibGVNb250aCxcbiAgICAgICAgICAgICAgbWluTWF4LFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKF8pID0+IHtcbiAgICAgICAgdGhpcy5jYWxlbmRhciA9IF87XG4gICAgICB9KTtcbiAgfVxuXG4gIGdldEZyb21UbygpIHtcbiAgICBsZXQgZGF0ZUZyb207XG4gICAgbGV0IGRhdGVUbztcbiAgICBpZiAodGhpcy5zZWxlY3RlZERhdGU/LmZyb20pIHtcbiAgICAgIGRhdGVGcm9tID0gbmV3IERhdGUodGhpcy5zZWxlY3RlZERhdGUuZnJvbSk7XG4gICAgICBkYXRlVG8gPSBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5hbGxvd051bGwpIHtcbiAgICAgICAgZGF0ZUZyb20gPSB0aGlzLmRhdGU/LmZyb20gPyBuZXcgRGF0ZSh0aGlzLmRhdGUuZnJvbSkgOiBudWxsO1xuICAgICAgICBkYXRlVG8gPSB0aGlzLmRhdGU/LnRvID8gbmV3IERhdGUodGhpcy5kYXRlLnRvKSA6IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkYXRlRnJvbSA9IHRoaXMuZGF0ZT8uZnJvbSA/IG5ldyBEYXRlKHRoaXMuZGF0ZS5mcm9tKSA6IG5ldyBEYXRlKCk7XG4gICAgICAgIGRhdGVUbyA9IHRoaXMuZGF0ZT8udG8gPyBuZXcgRGF0ZSh0aGlzLmRhdGUudG8pIDogbmV3IERhdGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyBmcm9tOiBkYXRlRnJvbSwgdG86IGRhdGVUbyB9O1xuICB9XG5cbiAgb3ZlcnJpZGUgaXNTZWxlY3RlZChkOiBEYXRlLCBzZWxlY3RlZERhdGU6IERhdGUpIHtcbiAgICBjb25zdCB7IGZyb20sIHRvIH0gPSB0aGlzLmdldEZyb21UbygpO1xuICAgIHJldHVybiB0aGlzLmNoZWNrU2VsZWN0ZWQoZCwgZnJvbSkgfHwgdGhpcy5jaGVja1NlbGVjdGVkKGQsIHRvKTtcbiAgfVxuXG4gIGNoZWNrU2VsZWN0ZWQoZGF0ZTogRGF0ZSwgc2VsZWN0ZWREYXRlOiBEYXRlKSB7XG4gICAgY29uc3QgaXNTZWxlY3RlZERhdGUgPSBkYXRlLmdldERhdGUoKSA9PT0gc2VsZWN0ZWREYXRlPy5nZXREYXRlKCk7XG4gICAgY29uc3QgaXNTZWxlY3RlZFllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCkgPT09IHNlbGVjdGVkRGF0ZT8uZ2V0RnVsbFllYXIoKTtcbiAgICBjb25zdCBpc1NlbGVjdGVkTW9udGggPSBkYXRlLmdldE1vbnRoKCkgPT09IHNlbGVjdGVkRGF0ZT8uZ2V0TW9udGgoKTtcbiAgICByZXR1cm4gaXNTZWxlY3RlZERhdGUgJiYgaXNTZWxlY3RlZE1vbnRoICYmIGlzU2VsZWN0ZWRZZWFyO1xuICB9XG5cbiAgaXNGaXJzdERheVN1aXRhYmxlKG06IG51bWJlciwgeTogbnVtYmVyLCBtYXg6IHN0cmluZyB8IG51bWJlciB8IERhdGUpIHtcbiAgICBjb25zdCB7IGF2YWlsYWJsZVllYXIsIGF2YWlsYWJsZU1vbnRoIH0gPSB0aGlzLmdldEF2YWlsYWJsZU1vbnRoWWVhcihtLCB5KTtcbiAgICByZXR1cm4gdGhpcy5pc1N1aXRhYmxlTWF4RGF0ZShkYXlqcyhuZXcgRGF0ZShhdmFpbGFibGVZZWFyLCBhdmFpbGFibGVNb250aCkpLnN0YXJ0T2YoJ21vbnRoJykudG9EYXRlKCksIG1heCk7XG4gIH1cblxuICBpc0xhc3REYXlTdWl0YWJsZShtOiBudW1iZXIsIHk6IG51bWJlciwgbWluOiBzdHJpbmcgfCBudW1iZXIgfCBEYXRlKSB7XG4gICAgY29uc3QgeyBhdmFpbGFibGVZZWFyLCBhdmFpbGFibGVNb250aCB9ID0gdGhpcy5nZXRBdmFpbGFibGVNb250aFllYXIobSwgeSk7XG4gICAgcmV0dXJuIHRoaXMuaXNTdWl0YWJsZU1pbkRhdGUoZGF5anMobmV3IERhdGUoYXZhaWxhYmxlWWVhciwgYXZhaWxhYmxlTW9udGgpKS5lbmRPZignbW9udGgnKS50b0RhdGUoKSwgbWluKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoIWNoYW5nZXM/LlsnaG92ZXJlZERhdGUnXSkge1xuICAgICAgdGhpcy5jaGFuZ2VDYWxlbmRhckRhdGEodGhpcy5zZWxlY3RlZERhdGUuZnJvbSB8fCB0aGlzLmRhdGUuZnJvbSk7XG4gICAgfVxuICB9XG59XG4iLCJAaWYgKFxuICB7XG4gICAgY3VycmVudE1vbnRoOiBjdXJyZW50TW9udGggfCBhc3luYyxcbiAgICBjdXJyZW50WWVhcjogY3VycmVudFllYXIgfCBhc3luYyxcbiAgICBzZWxlY3RlZFBpY2tlcjogc2VsZWN0ZWRQaWNrZXIgfCBhc3luYyxcbiAgICBtaW5NYXg6IG1pbk1heCB8IGFzeW5jLFxuICB9O1xuICBhcyBkYXRhXG4pIHtcbiAgPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItY29udGVudCBvdmVyZmxvdy15LWF1dG9cIj5cbiAgICBAaWYgKGRhdGEuc2VsZWN0ZWRQaWNrZXIgPT09ICdkYXknKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKHdoZWVsKT1cInNjcm9sbE1vbnRoKCRldmVudCwgZGF0YS5jdXJyZW50TW9udGgsIGRhdGEuY3VycmVudFllYXIpXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwYWRkaW5nLWgtMyBwYWRkaW5nLXYtMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24tY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XG4gICAgICAgICAgICA8dGV0YS1idXR0b25cbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdkYXRlcGlja2VyLWFycm93X2hpZGRlbic6ICFpc0xhc3REYXlTdWl0YWJsZShkYXRhLmN1cnJlbnRNb250aCAtIDEsIGRhdGEuY3VycmVudFllYXIsIG1pbiksXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2NoYW5nZS1tb250aC1idXR0b24gZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgICAgICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlTW9udGgoZGF0YS5jdXJyZW50TW9udGggLSAxLCBkYXRhLmN1cnJlbnRZZWFyKVwiXG4gICAgICAgICAgICAgIHBhbGV0dGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgdmlldz1cImdob3N0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHRldGEtaWNvbiBuYW1lPVwiYXJyb3dMZWZ0S2V5XCIgW3BhbGV0dGVdPVwiJ3RleHQnXCI+PC90ZXRhLWljb24+XG4gICAgICAgICAgICA8L3RldGEtYnV0dG9uPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnYXAtNCBmb250LWJ1dHRvbi0yIGFsaWduLWNlbnRlciBwYWRkaW5nLWxlZnQtMVwiPlxuICAgICAgICAgICAgICA8cD57eyBnZXRNb3RoTmFtZShkYXRhLmN1cnJlbnRNb250aCkgfX08L3A+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2RhdGVwaWNrZXJfJyArIHZpZXdUeXBlXCJcbiAgICAgICAgICAgICAgICB0ZXRhLWJ1dHRvblxuICAgICAgICAgICAgICAgIHZpZXc9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgcGFsZXR0ZT1cInRleHRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQaWNrZXIoJ3llYXInKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBkYXRhLmN1cnJlbnRZZWFyIH19XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8dGV0YS1idXR0b25cbiAgICAgICAgICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2NsYXNzXT1cIidjaGFuZ2UtbW9udGgtYnV0dG9uIGRhdGVwaWNrZXItYXJyb3dfaGlkZGVuIGRhdGVwaWNrZXJfJyArIHZpZXdUeXBlXCJcbiAgICAgICAgICAgICAgcGFsZXR0ZT1cInRleHRcIlxuICAgICAgICAgICAgICB2aWV3PVwiZ2hvc3RcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8dGV0YS1pY29uIG5hbWU9XCJhcnJvd1JpZ2h0S2V5XCIgW3BhbGV0dGVdPVwiJ3RleHQnXCI+PC90ZXRhLWljb24+XG4gICAgICAgICAgICA8L3RldGEtYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8dGV0YS1kYXktcGlja2VyXG4gICAgICAgICAgICAgIFsoaG92ZXJlZERhdGUpXT1cImhvdmVyZWREYXRlXCJcbiAgICAgICAgICAgICAgW3JhbmdlXT1cImdldEZyb21UbygpXCJcbiAgICAgICAgICAgICAgW3ZpZXdUeXBlXT1cInZpZXdUeXBlXCJcbiAgICAgICAgICAgICAgKHNlbGVjdERhdGUpPVwic2VsZWN0RGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgW2xvY2FsZV09XCJsb2NhbGVcIlxuICAgICAgICAgICAgICBbY2FsZW5kYXJdPVwiY2FsZW5kYXIuY3VycmVudE1vbnRoXCJcbiAgICAgICAgICAgID48L3RldGEtZGF5LXBpY2tlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAoZ2V0QXZhaWxhYmxlTW9udGhZZWFyKGRhdGEuY3VycmVudE1vbnRoICsgMSwgZGF0YS5jdXJyZW50WWVhcik7IGFzIGF2YWlsYWJsZU1vbnRoWWVhcikge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWRkaW5nLWgtMyBwYWRkaW5nLXYtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgPHRldGEtYnV0dG9uXG4gICAgICAgICAgICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3NdPVwiJ2NoYW5nZS1tb250aC1idXR0b24gZGF0ZXBpY2tlci1hcnJvd19oaWRkZW4gZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgICAgICAgICAgIHBhbGV0dGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICB2aWV3PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHRldGEtaWNvbiBuYW1lPVwiYXJyb3dMZWZ0S2V5XCIgW3BhbGV0dGVdPVwiJ3RleHQnXCI+PC90ZXRhLWljb24+XG4gICAgICAgICAgICAgIDwvdGV0YS1idXR0b24+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZ2FwLTQgZm9udC1idXR0b24tMiBhbGlnbi1jZW50ZXIgcGFkZGluZy1sZWZ0LTFcIj5cbiAgICAgICAgICAgICAgICA8cD57eyBnZXRNb3RoTmFtZShhdmFpbGFibGVNb250aFllYXIuYXZhaWxhYmxlTW9udGgpIH19PC9wPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIFtjbGFzc109XCInZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgICAgICAgICAgICAgdGV0YS1idXR0b25cbiAgICAgICAgICAgICAgICAgIHZpZXc9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICBwYWxldHRlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UGlja2VyKCd5ZWFyJylcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IGF2YWlsYWJsZU1vbnRoWWVhci5hdmFpbGFibGVZZWFyIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8dGV0YS1idXR0b25cbiAgICAgICAgICAgICAgICBbc3F1YXJlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICdkYXRlcGlja2VyLWFycm93X2hpZGRlbic6ICFpc0ZpcnN0RGF5U3VpdGFibGUoZGF0YS5jdXJyZW50TW9udGggKyAyLCBkYXRhLmN1cnJlbnRZZWFyLCBtYXgpLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIFtjbGFzc109XCInY2hhbmdlLW1vbnRoLWJ1dHRvbiBkYXRlcGlja2VyXycgKyB2aWV3VHlwZVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZU1vbnRoKGRhdGEuY3VycmVudE1vbnRoICsgMSwgZGF0YS5jdXJyZW50WWVhcilcIlxuICAgICAgICAgICAgICAgIHBhbGV0dGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICB2aWV3PVwiZ2hvc3RcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHRldGEtaWNvbiBuYW1lPVwiYXJyb3dSaWdodEtleVwiIFtwYWxldHRlXT1cIid0ZXh0J1wiPjwvdGV0YS1pY29uPlxuICAgICAgICAgICAgICA8L3RldGEtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8dGV0YS1kYXktcGlja2VyXG4gICAgICAgICAgICAgICAgWyhob3ZlcmVkRGF0ZSldPVwiaG92ZXJlZERhdGVcIlxuICAgICAgICAgICAgICAgIFtyYW5nZV09XCJnZXRGcm9tVG8oKVwiXG4gICAgICAgICAgICAgICAgW3ZpZXdUeXBlXT1cInZpZXdUeXBlXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0RGF0ZSk9XCJzZWxlY3REYXRlKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwibG9jYWxlXCJcbiAgICAgICAgICAgICAgICBbY2FsZW5kYXJdPVwiY2FsZW5kYXIubmV4dE1vbnRoXCJcbiAgICAgICAgICAgICAgPjwvdGV0YS1kYXktcGlja2VyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICBAaWYgKGRhdGEuc2VsZWN0ZWRQaWNrZXIgPT09ICdtb250aCcpIHtcbiAgICAgIDx0ZXRhLW1vbnRoLXBpY2tlclxuICAgICAgICBbbG9jYWxlTW90aHNdPVwibG9jYWxlLm1vbnRoc1wiXG4gICAgICAgIFtjdXJyZW50WWVhcl09XCJkYXRhLmN1cnJlbnRZZWFyXCJcbiAgICAgICAgKGNoYW5nZVllYXIpPVwic2V0WWVhcigkZXZlbnQpXCJcbiAgICAgICAgW3NlbGVjdGVkTW9udGhdPVwiZGF0YS5jdXJyZW50TW9udGhcIlxuICAgICAgICBbdmlld1R5cGVdPVwidmlld1R5cGVcIlxuICAgICAgICAoc2VsZWN0TW9udGgpPVwic2VsZWN0TW9udGgoJGV2ZW50KVwiXG4gICAgICA+PC90ZXRhLW1vbnRoLXBpY2tlcj5cbiAgICB9XG4gICAgQGlmIChkYXRhLnNlbGVjdGVkUGlja2VyID09PSAneWVhcicpIHtcbiAgICAgIDx0ZXRhLXllYXItcGlja2VyXG4gICAgICAgIFttaW5NYXhdPVwiZGF0YS5taW5NYXhcIlxuICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICAgIFt2aWV3VHlwZV09XCJ2aWV3VHlwZVwiXG4gICAgICAgIChzZWxlY3RZZWFyKT1cInNlbGVjdFllYXIoJGV2ZW50KVwiXG4gICAgICAgIFtzZWxlY3RlZFllYXJdPVwiZGF0YS5jdXJyZW50WWVhclwiXG4gICAgICA+PC90ZXRhLXllYXItcGlja2VyPlxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=
@@ -1,15 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
- import { DayModel } from '../../model/day-model';
3
- import * as i0 from "@angular/core";
4
- export class DayItemComponent {
5
- ngOnInit() { }
6
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.1", type: DayItemComponent, isStandalone: true, selector: "teta-day-item", inputs: { day: "day" }, ngImport: i0, template: "<p>{{ day.date.getDate() }}</p>\n", styles: [""], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8
- }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayItemComponent, decorators: [{
10
- type: Component,
11
- args: [{ selector: 'teta-day-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<p>{{ day.date.getDate() }}</p>\n" }]
12
- }], propDecorators: { day: [{
13
- type: Input
14
- }] } });
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9kYXktcGlja2VyL2RheS1pdGVtL2RheS1pdGVtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvZGF5LXBpY2tlci9kYXktaXRlbS9kYXktaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBU2pELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsUUFBUSxLQUFVLENBQUM7OEdBSFIsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsaUdDVjdCLG1DQUNBOzsyRkRTYSxnQkFBZ0I7a0JBUDVCLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUk7OEJBR1AsR0FBRztzQkFBWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF5TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbC9kYXktbW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ZXRhLWRheS1pdGVtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RheS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF5LWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIERheUl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBkYXk6IERheU1vZGVsO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cbn1cbiIsIjxwPnt7IGRheS5kYXRlLmdldERhdGUoKSB9fTwvcD5cbiJdfQ==
@@ -1,118 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
2
- import dayjs from 'dayjs';
3
- import { DayItemComponent } from './day-item/day-item.component';
4
- import { NgClass } from '@angular/common';
5
- import * as i0 from "@angular/core";
6
- export class DayPickerComponent {
7
- constructor() {
8
- this.date = new Date();
9
- this.hoveredDateChange = new EventEmitter();
10
- this.selectDate = new EventEmitter();
11
- }
12
- isInRange(day, from, to) {
13
- const matchesMinDate = dayjs(new Date(from)).startOf('date').toDate() <= day.date;
14
- const matchesMaxDate = day.date < dayjs(new Date(to)).endOf('date').toDate();
15
- return matchesMinDate && matchesMaxDate;
16
- }
17
- isHoveredRange(day) {
18
- if (!this.range?.to && this.range?.from) {
19
- return (this.isInRange(day, this.range.from, this.hoveredDate) || this.isInRange(day, this.hoveredDate, this.range.from));
20
- }
21
- return false;
22
- }
23
- isActiveRange(day) {
24
- if (this.range?.from && this.range?.to) {
25
- return this.isInRange(day, this.range.from, this.range.to);
26
- }
27
- return false;
28
- }
29
- pickDate(day) {
30
- if (!day.disabled) {
31
- this.selectDate.emit(day.date);
32
- }
33
- }
34
- getRangeActiveClass(d) {
35
- if (this.range && new Date(this.range?.from).getTime() !== new Date(this.range?.to).getTime()) {
36
- if (this.range.to) {
37
- return this.getClassStaticItem(d);
38
- }
39
- else {
40
- if (this.hoveredDate.getTime() === d.date.getTime()) {
41
- return this.getClassHoveredItem();
42
- }
43
- else {
44
- return this.getClassSelectedItem(d);
45
- }
46
- }
47
- }
48
- return '';
49
- }
50
- hover(date) {
51
- if (date?.getTime() !== this.hoveredDate?.getTime()) {
52
- this.hoveredDate = date;
53
- this.hoveredDateChange.emit(date);
54
- }
55
- }
56
- getClassStaticItem(d) {
57
- const from = dayjs(new Date(this.range.from)).startOf('day').toDate();
58
- const to = dayjs(new Date(this.range.to)).startOf('day').toDate();
59
- const itemDate = dayjs(new Date(d.date)).startOf('day').toDate();
60
- if (from.getTime() === itemDate.getTime()) {
61
- return 'datepicker-date_active-first';
62
- }
63
- if (to.getTime() === itemDate.getTime()) {
64
- return 'datepicker-date_active-second';
65
- }
66
- return '';
67
- }
68
- getClassHoveredItem() {
69
- if (new Date(this.range.from) > this.hoveredDate) {
70
- return 'datepicker-date_active-first';
71
- }
72
- if (new Date(this.range.from) < this.hoveredDate) {
73
- return 'datepicker-date_active-second';
74
- }
75
- return '';
76
- }
77
- getClassSelectedItem(d) {
78
- if (d.selected && d.date < this.hoveredDate) {
79
- return 'datepicker-date_active-first';
80
- }
81
- if (d.selected && d.date > this.hoveredDate) {
82
- return 'datepicker-date_active-second';
83
- }
84
- return '';
85
- }
86
- ngOnChanges(changes) {
87
- const arr = [...this.locale.daysShort];
88
- arr.push(arr.shift());
89
- this.dayOrder = arr;
90
- }
91
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
92
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: DayPickerComponent, isStandalone: true, selector: "teta-day-picker", inputs: { date: "date", calendar: "calendar", viewType: "viewType", range: "range", min: "min", max: "max", locale: "locale", hoveredDate: "hoveredDate" }, outputs: { hoveredDateChange: "hoveredDateChange", selectDate: "selectDate" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day.date.getTime()) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day),\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: DayItemComponent, selector: "teta-day-item", inputs: ["day"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
93
- }
94
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: DayPickerComponent, decorators: [{
95
- type: Component,
96
- args: [{ selector: 'teta-day-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, DayItemComponent], template: "<div class=\"datepicker-week font-caption\">\n @for (day of dayOrder; track day) {\n <p class=\"datepicker-day\">\n {{ day }}\n </p>\n }\n</div>\n<div class=\"datepicker-picker color-text-90 font-body-3\">\n @for (day of calendar; track day.date.getTime()) {\n <div\n [class]=\"getRangeActiveClass(day) + ' datepicker-date font-body-3 datepicker_' + viewType\"\n (mouseenter)=\"hover(day.date)\"\n (click)=\"pickDate(day)\"\n [ngClass]=\"{\n 'datepicker-date_active': day.selected || (day.date === hoveredDate && range && !range.to),\n 'datepicker-date-range_hover': range && isHoveredRange(day),\n 'datepicker-date_disabled': day.disabled,\n 'color-text-30': day.disabled || (!range && !day.isCurrentMonth),\n 'datepicker-date-range_disabled': !day.isCurrentMonth && range,\n 'datepicker-date-range_active': isActiveRange(day),\n }\"\n >\n <teta-day-item [day]=\"day\"></teta-day-item>\n </div>\n }\n</div>\n" }]
97
- }], ctorParameters: () => [], propDecorators: { date: [{
98
- type: Input
99
- }], calendar: [{
100
- type: Input
101
- }], viewType: [{
102
- type: Input
103
- }], range: [{
104
- type: Input
105
- }], min: [{
106
- type: Input
107
- }], max: [{
108
- type: Input
109
- }], locale: [{
110
- type: Input
111
- }], hoveredDate: [{
112
- type: Input
113
- }], hoveredDateChange: [{
114
- type: Output
115
- }], selectDate: [{
116
- type: Output
117
- }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RheS1waWNrZXIvZGF5LXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL2RheS1waWNrZXIvZGF5LXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFHMUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVUxQyxNQUFNLE9BQU8sa0JBQWtCO0lBWTdCO1FBWFMsU0FBSSxHQUEyQixJQUFJLElBQUksRUFBRSxDQUFDO1FBUXpDLHNCQUFpQixHQUF3QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2xFLGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUVyRCxDQUFDO0lBRWhCLFNBQVMsQ0FBQyxHQUFhLEVBQUUsSUFBNEIsRUFBRSxFQUEwQjtRQUMvRSxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQztRQUNsRixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUs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Q0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO0lBQ3RCLENBQUM7OEdBckdVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDJVQ3pCL0IsKytCQTBCQSwwRERIWSxPQUFPLG9GQUFFLGdCQUFnQjs7MkZBRXhCLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUM7d0RBRzNCLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXlNb2RlbCB9IGZyb20gJy4uL21vZGVsL2RheS1tb2RlbCc7XG5pbXBvcnQgeyBEYXRlRnJvbVRvTW9kZWwgfSBmcm9tICcuLi9tb2RlbC9mcm9tLXRvLm1vZGVsJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgeyB2aWV3VHlwZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9tb2RlbC92aWV3LXR5cGUubW9kZWwnO1xuaW1wb3J0IHsgVGV0YUxvY2FsaXNhdGlvbiB9IGZyb20gJy4uLy4uLy4uL2xvY2FsZS90ZXRhLWxvY2FsaXNhdGlvbic7XG5pbXBvcnQgeyBEYXlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9kYXktaXRlbS9kYXktaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtZGF5LXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXktcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGF5LXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIERheUl0ZW1Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXlQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkYXRlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyID0gbmV3IERhdGUoKTtcbiAgQElucHV0KCkgY2FsZW5kYXI6IERheU1vZGVsW107XG4gIEBJbnB1dCgpIHZpZXdUeXBlOiB2aWV3VHlwZTtcbiAgQElucHV0KCkgcmFuZ2U/OiBEYXRlRnJvbVRvTW9kZWw7XG4gIEBJbnB1dCgpIG1pbjogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcbiAgQElucHV0KCkgbWF4OiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyO1xuICBASW5wdXQoKSBsb2NhbGU6IFRldGFMb2NhbGlzYXRpb247XG4gIEBJbnB1dCgpIGhvdmVyZWREYXRlPzogRGF0ZTtcbiAgQE91dHB1dCgpIGhvdmVyZWREYXRlQ2hhbmdlPzogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBAT3V0cHV0KCkgc2VsZWN0RGF0ZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICBwdWJsaWMgZGF5T3JkZXI6IHN0cmluZ1tdO1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgaXNJblJhbmdlKGRheTogRGF5TW9kZWwsIGZyb206IERhdGUgfCBudW1iZXIgfCBzdHJpbmcsIHRvOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nKSB7XG4gICAgY29uc3QgbWF0Y2hlc01pbkRhdGUgPSBkYXlqcyhuZXcgRGF0ZShmcm9tKSkuc3RhcnRPZignZGF0ZScpLnRvRGF0ZSgpIDw9IGRheS5kYXRlO1xuICAgIGNvbnN0IG1hdGNoZXNNYXhEYXRlID0gZGF5LmRhdGUgPCBkYXlqcyhuZXcgRGF0ZSh0bykpLmVuZE9mKCdkYXRlJykudG9EYXRlKCk7XG4gICAgcmV0dXJuIG1hdGNoZXNNaW5EYXRlICYmIG1hdGNoZXNNYXhEYXRlO1xuICB9XG5cbiAgaXNIb3ZlcmVkUmFuZ2UoZGF5OiBEYXlNb2RlbCkge1xuICAgIGlmICghdGhpcy5yYW5nZT8udG8gJiYgdGhpcy5yYW5nZT8uZnJvbSkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5pc0luUmFuZ2UoZGF5LCB0aGlzLnJhbmdlLmZyb20sIHRoaXMuaG92ZXJlZERhdGUpIHx8IHRoaXMuaXNJblJhbmdlKGRheSwgdGhpcy5ob3ZlcmVkRGF0ZSwgdGhpcy5yYW5nZS5mcm9tKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaXNBY3RpdmVSYW5nZShkYXk6IERheU1vZGVsKSB7XG4gICAgaWYgKHRoaXMucmFuZ2U/LmZyb20gJiYgdGhpcy5yYW5nZT8udG8pIHtcbiAgICAgIHJldHVybiB0aGlzLmlzSW5SYW5nZShkYXksIHRoaXMucmFuZ2UuZnJvbSwgdGhpcy5yYW5nZS50byk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHBpY2tEYXRlKGRheTogRGF5TW9kZWwpIHtcbiAgICBpZiAoIWRheS5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5zZWxlY3REYXRlLmVtaXQoZGF5LmRhdGUpO1xuICAgIH1cbiAgfVxuXG4gIGdldFJhbmdlQWN0aXZlQ2xhc3MoZDogRGF5TW9kZWwpIHtcbiAgICBpZiAodGhpcy5yYW5nZSAmJiBuZXcgRGF0ZSh0aGlzLnJhbmdlPy5mcm9tKS5nZXRUaW1lKCkgIT09IG5ldyBEYXRlKHRoaXMucmFuZ2U/LnRvKS5nZXRUaW1lKCkpIHtcbiAgICAgIGlmICh0aGlzLnJhbmdlLnRvKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENsYXNzU3RhdGljSXRlbShkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLmhvdmVyZWREYXRlLmdldFRpbWUoKSA9PT0gZC5kYXRlLmdldFRpbWUoKSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldENsYXNzSG92ZXJlZEl0ZW0oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRDbGFzc1NlbGVjdGVkSXRlbShkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBob3ZlcihkYXRlOiBEYXRlKSB7XG4gICAgaWYgKGRhdGU/LmdldFRpbWUoKSAhPT0gdGhpcy5ob3ZlcmVkRGF0ZT8uZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLmhvdmVyZWREYXRlID0gZGF0ZTtcbiAgICAgIHRoaXMuaG92ZXJlZERhdGVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgICB9XG4gIH1cblxuICBnZXRDbGFzc1N0YXRpY0l0ZW0oZDogRGF5TW9kZWwpIHtcbiAgICBjb25zdCBmcm9tID0gZGF5anMobmV3IERhdGUodGhpcy5yYW5nZS5mcm9tKSkuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG4gICAgY29uc3QgdG8gPSBkYXlqcyhuZXcgRGF0ZSh0aGlzLnJhbmdlLnRvKSkuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG4gICAgY29uc3QgaXRlbURhdGUgPSBkYXlqcyhuZXcgRGF0ZShkLmRhdGUpKS5zdGFydE9mKCdkYXknKS50b0RhdGUoKTtcbiAgICBpZiAoZnJvbS5nZXRUaW1lKCkgPT09IGl0ZW1EYXRlLmdldFRpbWUoKSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLWZpcnN0JztcbiAgICB9XG4gICAgaWYgKHRvLmdldFRpbWUoKSA9PT0gaXRlbURhdGUuZ2V0VGltZSgpKSB7XG4gICAgICByZXR1cm4gJ2RhdGVwaWNrZXItZGF0ZV9hY3RpdmUtc2Vjb25kJztcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0Q2xhc3NIb3ZlcmVkSXRlbSgpIHtcbiAgICBpZiAobmV3IERhdGUodGhpcy5yYW5nZS5mcm9tKSA+IHRoaXMuaG92ZXJlZERhdGUpIHtcbiAgICAgIHJldHVybiAnZGF0ZXBpY2tlci1kYXRlX2FjdGl2ZS1maXJzdCc7XG4gICAgfVxuICAgIGlmIChuZXcgRGF0ZSh0aGlzLnJhbmdlLmZyb20pIDwgdGhpcy5ob3ZlcmVkRGF0ZSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLXNlY29uZCc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldENsYXNzU2VsZWN0ZWRJdGVtKGQ6IERheU1vZGVsKSB7XG4gICAgaWYgKGQuc2VsZWN0ZWQgJiYgZC5kYXRlIDwgdGhpcy5ob3ZlcmVkRGF0ZSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLWZpcnN0JztcbiAgICB9XG4gICAgaWYgKGQuc2VsZWN0ZWQgJiYgZC5kYXRlID4gdGhpcy5ob3ZlcmVkRGF0ZSkge1xuICAgICAgcmV0dXJuICdkYXRlcGlja2VyLWRhdGVfYWN0aXZlLXNlY29uZCc7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBhcnIgPSBbLi4udGhpcy5sb2NhbGUuZGF5c1Nob3J0XTtcbiAgICBhcnIucHVzaChhcnIuc2hpZnQoKSk7XG4gICAgdGhpcy5kYXlPcmRlciA9IGFycjtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItd2VlayBmb250LWNhcHRpb25cIj5cbiAgQGZvciAoZGF5IG9mIGRheU9yZGVyOyB0cmFjayBkYXkpIHtcbiAgICA8cCBjbGFzcz1cImRhdGVwaWNrZXItZGF5XCI+XG4gICAgICB7eyBkYXkgfX1cbiAgICA8L3A+XG4gIH1cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImRhdGVwaWNrZXItcGlja2VyIGNvbG9yLXRleHQtOTAgZm9udC1ib2R5LTNcIj5cbiAgQGZvciAoZGF5IG9mIGNhbGVuZGFyOyB0cmFjayBkYXkuZGF0ZS5nZXRUaW1lKCkpIHtcbiAgICA8ZGl2XG4gICAgICBbY2xhc3NdPVwiZ2V0UmFuZ2VBY3RpdmVDbGFzcyhkYXkpICsgJyBkYXRlcGlja2VyLWRhdGUgZm9udC1ib2R5LTMgZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgKG1vdXNlZW50ZXIpPVwiaG92ZXIoZGF5LmRhdGUpXCJcbiAgICAgIChjbGljayk9XCJwaWNrRGF0ZShkYXkpXCJcbiAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgJ2RhdGVwaWNrZXItZGF0ZV9hY3RpdmUnOiBkYXkuc2VsZWN0ZWQgfHwgKGRheS5kYXRlID09PSBob3ZlcmVkRGF0ZSAmJiByYW5nZSAmJiAhcmFuZ2UudG8pLFxuICAgICAgICAnZGF0ZXBpY2tlci1kYXRlLXJhbmdlX2hvdmVyJzogcmFuZ2UgJiYgaXNIb3ZlcmVkUmFuZ2UoZGF5KSxcbiAgICAgICAgJ2RhdGVwaWNrZXItZGF0ZV9kaXNhYmxlZCc6IGRheS5kaXNhYmxlZCxcbiAgICAgICAgJ2NvbG9yLXRleHQtMzAnOiBkYXkuZGlzYWJsZWQgfHwgKCFyYW5nZSAmJiAhZGF5LmlzQ3VycmVudE1vbnRoKSxcbiAgICAgICAgJ2RhdGVwaWNrZXItZGF0ZS1yYW5nZV9kaXNhYmxlZCc6ICFkYXkuaXNDdXJyZW50TW9udGggJiYgcmFuZ2UsXG4gICAgICAgICdkYXRlcGlja2VyLWRhdGUtcmFuZ2VfYWN0aXZlJzogaXNBY3RpdmVSYW5nZShkYXkpLFxuICAgICAgfVwiXG4gICAgPlxuICAgICAgPHRldGEtZGF5LWl0ZW0gW2RheV09XCJkYXlcIj48L3RldGEtZGF5LWl0ZW0+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
@@ -1,7 +0,0 @@
1
- export class DatePeriod {
2
- constructor(start, end) {
3
- this.start = start;
4
- this.end = end;
5
- }
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1wZXJpb2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL21vZGVsL2RhdGUtcGVyaW9kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxVQUFVO0lBSXJCLFlBQVksS0FBVyxFQUFFLEdBQVM7UUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIERhdGVQZXJpb2Qge1xuICBzdGFydDogRGF0ZTtcbiAgZW5kOiBEYXRlO1xuXG4gIGNvbnN0cnVjdG9yKHN0YXJ0OiBEYXRlLCBlbmQ6IERhdGUpIHtcbiAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7XG4gICAgdGhpcy5lbmQgPSBlbmQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +0,0 @@
1
- export var DatePickerMode;
2
- (function (DatePickerMode) {
3
- DatePickerMode[DatePickerMode["date"] = 0] = "date";
4
- DatePickerMode[DatePickerMode["month"] = 1] = "month";
5
- DatePickerMode[DatePickerMode["year"] = 2] = "year";
6
- })(DatePickerMode || (DatePickerMode = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItbW9kZS5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9tb2RlbC9kYXRlLXBpY2tlci1tb2RlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksY0FJWDtBQUpELFdBQVksY0FBYztJQUN4QixtREFBSSxDQUFBO0lBQ0oscURBQUssQ0FBQTtJQUNMLG1EQUFJLENBQUE7QUFDTixDQUFDLEVBSlcsY0FBYyxLQUFkLGNBQWMsUUFJekIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBEYXRlUGlja2VyTW9kZSB7XG4gIGRhdGUsXG4gIG1vbnRoLFxuICB5ZWFyLFxufVxuIl19
@@ -1,13 +0,0 @@
1
- export class DayModel {
2
- constructor(options) {
3
- if (options) {
4
- this.disabled = options.disabled;
5
- this.isCurrentMonth = options.isCurrentMonth;
6
- this.today = options.today;
7
- this.selected = options.selected;
8
- this.date = options.date;
9
- this.weekend = options.weekend;
10
- }
11
- }
12
- }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5LW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9tb2RlbC9kYXktbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFFBQVE7SUFRbkIsWUFBbUIsT0FPbEI7UUFDQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQztZQUM3QyxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztZQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBEYXlNb2RlbCB7XG4gIGRpc2FibGVkOiBib29sZWFuO1xuICBpc0N1cnJlbnRNb250aDogYm9vbGVhbjtcbiAgdG9kYXk6IGJvb2xlYW47XG4gIHNlbGVjdGVkOiBib29sZWFuO1xuICBkYXRlOiBEYXRlO1xuICB3ZWVrZW5kOiBib29sZWFuO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zPzoge1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICBpc0N1cnJlbnRNb250aD86IGJvb2xlYW47XG4gICAgdG9kYXk/OiBib29sZWFuO1xuICAgIHNlbGVjdGVkPzogYm9vbGVhbjtcbiAgICBkYXRlOiBEYXRlO1xuICAgIHdlZWtlbmQ/OiBib29sZWFuO1xuICB9KSB7XG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSBvcHRpb25zLmRpc2FibGVkO1xuICAgICAgdGhpcy5pc0N1cnJlbnRNb250aCA9IG9wdGlvbnMuaXNDdXJyZW50TW9udGg7XG4gICAgICB0aGlzLnRvZGF5ID0gb3B0aW9ucy50b2RheTtcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSBvcHRpb25zLnNlbGVjdGVkO1xuICAgICAgdGhpcy5kYXRlID0gb3B0aW9ucy5kYXRlO1xuICAgICAgdGhpcy53ZWVrZW5kID0gb3B0aW9ucy53ZWVrZW5kO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbS10by5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvbW9kZWwvZnJvbS10by5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBEYXRlRnJvbVRvTW9kZWwge1xuICBmcm9tOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyO1xuICB0bzogRGF0ZSB8IHN0cmluZyB8IG51bWJlcjtcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluLW1heC1kYXRlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci9tb2RlbC9taW4tbWF4LWRhdGUubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTWluTWF4RGF0ZU1vZGVsIHtcbiAgbWluOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyO1xuICBtYXg6IERhdGUgfCBzdHJpbmcgfCBudW1iZXI7XG59XG4iXX0=
@@ -1,6 +0,0 @@
1
- export * from './day-model';
2
- export * from './from-to.model';
3
- export * from './date-period';
4
- export * from './date-picker-mode.enum';
5
- export * from './min-max-date.model';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvbW9kZWwvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGF5LW1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vZnJvbS10by5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGUtcGVyaW9kJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS1waWNrZXItbW9kZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbWluLW1heC1kYXRlLm1vZGVsJztcbiJdfQ==
@@ -1,47 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { NgClass } from '@angular/common';
3
- import { IconComponent } from '../../icon/icon/icon.component';
4
- import { ButtonComponent } from '../../button/button/button.component';
5
- import * as i0 from "@angular/core";
6
- export class MonthPickerComponent {
7
- constructor() {
8
- this.selectedMonth = 1;
9
- this.selectMonth = new EventEmitter();
10
- this.changeYear = new EventEmitter();
11
- this.months = [];
12
- }
13
- pickMonth(monthId) {
14
- this.selectMonth.emit(monthId);
15
- }
16
- pickYear(year) {
17
- this.changeYear.emit(year);
18
- }
19
- ngOnInit() {
20
- this.months = this.localeMoths.map((m, i) => {
21
- return {
22
- id: i,
23
- name: m,
24
- isSelected: this.selectedMonth === i,
25
- };
26
- });
27
- }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MonthPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: MonthPickerComponent, isStandalone: true, selector: "teta-month-picker", inputs: { selectedMonth: "selectedMonth", viewType: "viewType", currentYear: "currentYear", localeMoths: "localeMoths" }, outputs: { selectMonth: "selectMonth", changeYear: "changeYear" }, ngImport: i0, template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"pickYear(currentYear - 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <p>{{ currentYear }}</p>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"pickYear(currentYear + 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div class=\"datepicker-month font-body-3 color-text-90\" style=\"width: 100%\">\n @for (month of months; track month) {\n <div (click)=\"pickMonth(month.id)\">\n <div\n [ngClass]=\"{ 'datepicker-month_item_active': month['isSelected'] }\"\n [class]=\"'datepicker-month_item column align-center justify-content-center datepicker_' + viewType\"\n >\n <p>\n {{ month.name }}\n </p>\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[teta-button], teta-button", inputs: ["palette", "class", "view", "square", "viewType", "size"] }, { kind: "component", type: IconComponent, selector: "teta-icon", inputs: ["name", "size", "palette", "class"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
- }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: MonthPickerComponent, decorators: [{
32
- type: Component,
33
- args: [{ selector: 'teta-month-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ButtonComponent, IconComponent, NgClass], template: "<div class=\"padding-h-3 padding-v-2 gap-8 column datepicker-month-wrapper\">\n <div class=\"row align-center justify-content-between font-button-2\">\n <teta-button\n [class]=\"'change-month-button datepicker_' + viewType\"\n [square]=\"true\"\n (click)=\"pickYear(currentYear - 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowLeftKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n <p>{{ currentYear }}</p>\n <teta-button\n [square]=\"true\"\n [class]=\"'change-month-button datepicker_' + viewType\"\n (click)=\"pickYear(currentYear + 1)\"\n palette=\"text\"\n view=\"ghost\"\n >\n <teta-icon name=\"arrowRightKey\" [palette]=\"'text'\"></teta-icon>\n </teta-button>\n </div>\n <div class=\"datepicker-month font-body-3 color-text-90\" style=\"width: 100%\">\n @for (month of months; track month) {\n <div (click)=\"pickMonth(month.id)\">\n <div\n [ngClass]=\"{ 'datepicker-month_item_active': month['isSelected'] }\"\n [class]=\"'datepicker-month_item column align-center justify-content-center datepicker_' + viewType\"\n >\n <p>\n {{ month.name }}\n </p>\n </div>\n </div>\n }\n </div>\n</div>\n" }]
34
- }], ctorParameters: () => [], propDecorators: { selectedMonth: [{
35
- type: Input
36
- }], viewType: [{
37
- type: Input
38
- }], currentYear: [{
39
- type: Input
40
- }], localeMoths: [{
41
- type: Input
42
- }], selectMonth: [{
43
- type: Output
44
- }], changeYear: [{
45
- type: Output
46
- }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvbW9udGgtcGlja2VyL21vbnRoLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL21vbnRoLXBpY2tlci9tb250aC1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4RyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7QUFVdkUsTUFBTSxPQUFPLG9CQUFvQjtJQVMvQjtRQVJTLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBSXpCLGdCQUFXLEdBQXlCLElBQUksWUFBWSxFQUFVLENBQUM7UUFDL0QsZUFBVSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2pFLFdBQU0sR0FBbUIsRUFBRSxDQUFDO0lBRXBCLENBQUM7SUFFaEIsU0FBUyxDQUFDLE9BQWU7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFZO1FBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQyxPQUFPO2dCQUNMLEVBQUUsRUFBRSxDQUFDO2dCQUNMLElBQUksRUFBRSxDQUFDO2dCQUNQLFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxLQUFLLENBQUM7YUFDckMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0EzQlUsb0JBQW9CO2tHQUFwQixvQkFBb0IsMFFDZmpDLHF4Q0FxQ0EsMEREeEJZLGVBQWUsaUpBQUUsYUFBYSxvR0FBRSxPQUFPOzsyRkFFdEMsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNFLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDO3dEQUd6QyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJSWROYW1lIH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL2NvbnRyYWN0L2ktaWQtbmFtZSc7XG5pbXBvcnQgeyB2aWV3VHlwZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9tb2RlbC92aWV3LXR5cGUubW9kZWwnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaWNvbi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2J1dHRvbi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEtbW9udGgtcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vbnRoLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vbnRoLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0J1dHRvbkNvbXBvbmVudCwgSWNvbkNvbXBvbmVudCwgTmdDbGFzc10sXG59KVxuZXhwb3J0IGNsYXNzIE1vbnRoUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgc2VsZWN0ZWRNb250aDogbnVtYmVyID0gMTtcbiAgQElucHV0KCkgdmlld1R5cGU6IHZpZXdUeXBlO1xuICBASW5wdXQoKSBjdXJyZW50WWVhcjogbnVtYmVyO1xuICBASW5wdXQoKSBsb2NhbGVNb3Roczogc3RyaW5nW107XG4gIEBPdXRwdXQoKSBzZWxlY3RNb250aDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgQE91dHB1dCgpIGNoYW5nZVllYXI6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIHB1YmxpYyBtb250aHM6IElJZE5hbWU8YW55PltdID0gW107XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHBpY2tNb250aChtb250aElkOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdE1vbnRoLmVtaXQobW9udGhJZCk7XG4gIH1cblxuICBwaWNrWWVhcih5ZWFyOiBudW1iZXIpIHtcbiAgICB0aGlzLmNoYW5nZVllYXIuZW1pdCh5ZWFyKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMubW9udGhzID0gdGhpcy5sb2NhbGVNb3Rocy5tYXAoKG0sIGkpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBpLFxuICAgICAgICBuYW1lOiBtLFxuICAgICAgICBpc1NlbGVjdGVkOiB0aGlzLnNlbGVjdGVkTW9udGggPT09IGksXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicGFkZGluZy1oLTMgcGFkZGluZy12LTIgZ2FwLTggY29sdW1uIGRhdGVwaWNrZXItbW9udGgtd3JhcHBlclwiPlxuICA8ZGl2IGNsYXNzPVwicm93IGFsaWduLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBmb250LWJ1dHRvbi0yXCI+XG4gICAgPHRldGEtYnV0dG9uXG4gICAgICBbY2xhc3NdPVwiJ2NoYW5nZS1tb250aC1idXR0b24gZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgW3NxdWFyZV09XCJ0cnVlXCJcbiAgICAgIChjbGljayk9XCJwaWNrWWVhcihjdXJyZW50WWVhciAtIDEpXCJcbiAgICAgIHBhbGV0dGU9XCJ0ZXh0XCJcbiAgICAgIHZpZXc9XCJnaG9zdFwiXG4gICAgPlxuICAgICAgPHRldGEtaWNvbiBuYW1lPVwiYXJyb3dMZWZ0S2V5XCIgW3BhbGV0dGVdPVwiJ3RleHQnXCI+PC90ZXRhLWljb24+XG4gICAgPC90ZXRhLWJ1dHRvbj5cbiAgICA8cD57eyBjdXJyZW50WWVhciB9fTwvcD5cbiAgICA8dGV0YS1idXR0b25cbiAgICAgIFtzcXVhcmVdPVwidHJ1ZVwiXG4gICAgICBbY2xhc3NdPVwiJ2NoYW5nZS1tb250aC1idXR0b24gZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgKGNsaWNrKT1cInBpY2tZZWFyKGN1cnJlbnRZZWFyICsgMSlcIlxuICAgICAgcGFsZXR0ZT1cInRleHRcIlxuICAgICAgdmlldz1cImdob3N0XCJcbiAgICA+XG4gICAgICA8dGV0YS1pY29uIG5hbWU9XCJhcnJvd1JpZ2h0S2V5XCIgW3BhbGV0dGVdPVwiJ3RleHQnXCI+PC90ZXRhLWljb24+XG4gICAgPC90ZXRhLWJ1dHRvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyLW1vbnRoIGZvbnQtYm9keS0zIGNvbG9yLXRleHQtOTBcIiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgQGZvciAobW9udGggb2YgbW9udGhzOyB0cmFjayBtb250aCkge1xuICAgICAgPGRpdiAoY2xpY2spPVwicGlja01vbnRoKG1vbnRoLmlkKVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgW25nQ2xhc3NdPVwieyAnZGF0ZXBpY2tlci1tb250aF9pdGVtX2FjdGl2ZSc6IG1vbnRoWydpc1NlbGVjdGVkJ10gfVwiXG4gICAgICAgICAgW2NsYXNzXT1cIidkYXRlcGlja2VyLW1vbnRoX2l0ZW0gY29sdW1uIGFsaWduLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGRhdGVwaWNrZXJfJyArIHZpZXdUeXBlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxwPlxuICAgICAgICAgICAge3sgbW9udGgubmFtZSB9fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,6 +0,0 @@
1
- export * from './date-picker/date-picker.component';
2
- export * from './date-picker/date-calendar/date-calendar.component';
3
- export * from './date-range/date-range.component';
4
- export * from './date-range/range-calendar/range-calendar.component';
5
- export * from './model/public-api';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnQvZGF0ZS1waWNrZXIvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGUtcGlja2VyL2RhdGUtY2FsZW5kYXIvZGF0ZS1jYWxlbmRhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLXJhbmdlL2RhdGUtcmFuZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZGF0ZS1yYW5nZS9yYW5nZS1jYWxlbmRhci9yYW5nZS1jYWxlbmRhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,27 +0,0 @@
1
- import { Directive, ElementRef, Inject } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ScrollToSelectedYearDirective {
4
- constructor(el) {
5
- this.el = el;
6
- this.alive = true;
7
- }
8
- ngOnDestroy() {
9
- this.alive = false;
10
- }
11
- ngAfterViewInit() {
12
- this.el.nativeElement.scrollIntoView({ inline: 'center', block: 'center' });
13
- }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ScrollToSelectedYearDirective, deps: [{ token: ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
15
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.1", type: ScrollToSelectedYearDirective, isStandalone: true, selector: "[tetaScrollToSelectedYear]", ngImport: i0 }); }
16
- }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: ScrollToSelectedYearDirective, decorators: [{
18
- type: Directive,
19
- args: [{
20
- selector: '[tetaScrollToSelectedYear]',
21
- standalone: true,
22
- }]
23
- }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
24
- type: Inject,
25
- args: [ElementRef]
26
- }] }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLXRvLXNlbGVjdGVkLXllYXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci95ZWFyLXBpY2tlci9zY3JvbGwtdG8tc2VsZWN0ZWQteWVhci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDOztBQU16RSxNQUFNLE9BQU8sNkJBQTZCO0lBR3hDLFlBQWlELEVBQXVCO1FBQXZCLE9BQUUsR0FBRixFQUFFLENBQXFCO1FBRmpFLFVBQUssR0FBRyxJQUFJLENBQUM7SUFFdUQsQ0FBQztJQUU1RSxXQUFXO1FBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7OEdBWFUsNkJBQTZCLGtCQUdwQixVQUFVO2tHQUhuQiw2QkFBNkI7OzJGQUE3Qiw2QkFBNkI7a0JBSnpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFJYyxNQUFNOzJCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0ZXRhU2Nyb2xsVG9TZWxlY3RlZFllYXJdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsVG9TZWxlY3RlZFllYXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgYWxpdmUgPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoRWxlbWVudFJlZikgcHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZjxFbGVtZW50Pikge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmFsaXZlID0gZmFsc2U7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnNjcm9sbEludG9WaWV3KHsgaW5saW5lOiAnY2VudGVyJywgYmxvY2s6ICdjZW50ZXInIH0pO1xuICB9XG59XG4iXX0=
@@ -1,48 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
- import dayjs from 'dayjs';
3
- import { ScrollToSelectedYearDirective } from './scroll-to-selected-year.directive';
4
- import { NgClass } from '@angular/common';
5
- import * as i0 from "@angular/core";
6
- export class YearPickerComponent {
7
- constructor() {
8
- this.selectYear = new EventEmitter();
9
- }
10
- pickYear(year, disabled) {
11
- if (!disabled) {
12
- this.selectYear.emit(year);
13
- }
14
- }
15
- ngOnInit() {
16
- this.years = new Array(100).fill(1).map((v, i) => {
17
- const year = new Date().getFullYear() + (i - 50);
18
- return { id: year, isSelected: year === this.selectedYear, disabled: this.isDisabled(year) };
19
- });
20
- }
21
- isDisabled(year) {
22
- if (this.minMax) {
23
- const isSuitableMax = dayjs(new Date().setFullYear(year)).startOf('year').isAfter(new Date(this.minMax.max)) &&
24
- this.minMax.max !== null;
25
- const isSuitableMin = dayjs(new Date().setFullYear(year)).endOf('year').isBefore(new Date(this.minMax.min)) &&
26
- this.minMax.min !== null;
27
- return isSuitableMax || isSuitableMin;
28
- }
29
- return false;
30
- }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: YearPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.1", type: YearPickerComponent, isStandalone: true, selector: "teta-year-picker", inputs: { selectedYear: "selectedYear", viewType: "viewType", minMax: "minMax", locale: "locale" }, outputs: { selectYear: "selectYear" }, ngImport: i0, template: "<div class=\"column\">\n <div class=\"font-title-3 padding-v-4 padding-h-3\">\n <p>{{ locale.selectYear }}</p>\n </div>\n <div class=\"datepicker-year overflow-y-auto\">\n @for (y of years; track y) {\n <div class=\"font-button-2\" (click)=\"pickYear(y.id, y.disabled)\">\n <div\n [ngClass]=\"{ 'datepicker-year_item_active': y.isSelected, 'datepicker-year_item_disabled': y.disabled }\"\n [class]=\"'datepicker-year_item column align-center justify-content-center datepicker_' + viewType\"\n >\n @if (y.isSelected === true) {\n <div tetaScrollToSelectedYear>\n <span>{{ y.id }}</span>\n </div>\n }\n @if (!y.isSelected) {\n <div>\n <span>{{ y.id }} </span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ScrollToSelectedYearDirective, selector: "[tetaScrollToSelectedYear]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
- }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.1", ngImport: i0, type: YearPickerComponent, decorators: [{
35
- type: Component,
36
- args: [{ selector: 'teta-year-picker', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, ScrollToSelectedYearDirective], template: "<div class=\"column\">\n <div class=\"font-title-3 padding-v-4 padding-h-3\">\n <p>{{ locale.selectYear }}</p>\n </div>\n <div class=\"datepicker-year overflow-y-auto\">\n @for (y of years; track y) {\n <div class=\"font-button-2\" (click)=\"pickYear(y.id, y.disabled)\">\n <div\n [ngClass]=\"{ 'datepicker-year_item_active': y.isSelected, 'datepicker-year_item_disabled': y.disabled }\"\n [class]=\"'datepicker-year_item column align-center justify-content-center datepicker_' + viewType\"\n >\n @if (y.isSelected === true) {\n <div tetaScrollToSelectedYear>\n <span>{{ y.id }}</span>\n </div>\n }\n @if (!y.isSelected) {\n <div>\n <span>{{ y.id }} </span>\n </div>\n }\n </div>\n </div>\n }\n </div>\n</div>\n" }]
37
- }], ctorParameters: () => [], propDecorators: { selectedYear: [{
38
- type: Input
39
- }], viewType: [{
40
- type: Input
41
- }], minMax: [{
42
- type: Input
43
- }], locale: [{
44
- type: Input
45
- }], selectYear: [{
46
- type: Output
47
- }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudC9kYXRlLXBpY2tlci95ZWFyLXBpY2tlci95ZWFyLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50L2RhdGUtcGlja2VyL3llYXItcGlja2VyL3llYXItcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEcsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRzFCLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFVMUMsTUFBTSxPQUFPLG1CQUFtQjtJQVE5QjtRQUhVLGVBQVUsR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUd6RCxDQUFDO0lBRWhCLFFBQVEsQ0FBQyxJQUFZLEVBQUUsUUFBaUI7UUFDdEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQy9DLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDakQsT0FBTyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDL0YsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVk7UUFDckIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsTUFBTSxhQUFhLEdBQ2pCLEtBQUssQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDdEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDO1lBQzNCLE1BQU0sYUFBYSxHQUNqQixLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3JGLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQztZQUMzQixPQUFPLGFBQWEsSUFBSSxhQUFhLENBQUM7UUFDeEMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs4R0FsQ1UsbUJBQW1CO2tHQUFuQixtQkFBbUIsdU5DaEJoQyxpM0JBMEJBLDBERFpZLE9BQU8sb0ZBQUUsNkJBQTZCOzsyRkFFckMsbUJBQW1CO2tCQVIvQixTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLE9BQU8sRUFBRSw2QkFBNkIsQ0FBQzt3REFHeEMsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB2aWV3VHlwZSB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9tb2RlbC92aWV3LXR5cGUubW9kZWwnO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCB7IE1pbk1heERhdGVNb2RlbCB9IGZyb20gJy4uL21vZGVsL21pbi1tYXgtZGF0ZS5tb2RlbCc7XG5pbXBvcnQgeyBUZXRhTG9jYWxpc2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vbG9jYWxlL3RldGEtbG9jYWxpc2F0aW9uJztcbmltcG9ydCB7IFNjcm9sbFRvU2VsZWN0ZWRZZWFyRGlyZWN0aXZlIH0gZnJvbSAnLi9zY3JvbGwtdG8tc2VsZWN0ZWQteWVhci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3RldGEteWVhci1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4veWVhci1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi95ZWFyLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nQ2xhc3MsIFNjcm9sbFRvU2VsZWN0ZWRZZWFyRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgWWVhclBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHNlbGVjdGVkWWVhcjogbnVtYmVyO1xuICBASW5wdXQoKSB2aWV3VHlwZTogdmlld1R5cGU7XG4gIEBJbnB1dCgpIG1pbk1heD86IE1pbk1heERhdGVNb2RlbDtcbiAgQElucHV0KCkgbG9jYWxlOiBUZXRhTG9jYWxpc2F0aW9uO1xuICBAT3V0cHV0KCkgc2VsZWN0WWVhcjogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcbiAgcHVibGljIHllYXJzOiB7IGlkOiBudW1iZXI7IGlzU2VsZWN0ZWQ6IGJvb2xlYW47IGRpc2FibGVkOiBib29sZWFuIH1bXTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcGlja1llYXIoeWVhcjogbnVtYmVyLCBkaXNhYmxlZDogYm9vbGVhbikge1xuICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VsZWN0WWVhci5lbWl0KHllYXIpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMueWVhcnMgPSBuZXcgQXJyYXkoMTAwKS5maWxsKDEpLm1hcCgodiwgaSkgPT4ge1xuICAgICAgY29uc3QgeWVhciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSArIChpIC0gNTApO1xuICAgICAgcmV0dXJuIHsgaWQ6IHllYXIsIGlzU2VsZWN0ZWQ6IHllYXIgPT09IHRoaXMuc2VsZWN0ZWRZZWFyLCBkaXNhYmxlZDogdGhpcy5pc0Rpc2FibGVkKHllYXIpIH07XG4gICAgfSk7XG4gIH1cblxuICBpc0Rpc2FibGVkKHllYXI6IG51bWJlcikge1xuICAgIGlmICh0aGlzLm1pbk1heCkge1xuICAgICAgY29uc3QgaXNTdWl0YWJsZU1heCA9XG4gICAgICAgIGRheWpzKG5ldyBEYXRlKCkuc2V0RnVsbFllYXIoeWVhcikpLnN0YXJ0T2YoJ3llYXInKS5pc0FmdGVyKG5ldyBEYXRlKHRoaXMubWluTWF4Lm1heCkpICYmXG4gICAgICAgIHRoaXMubWluTWF4Lm1heCAhPT0gbnVsbDtcbiAgICAgIGNvbnN0IGlzU3VpdGFibGVNaW4gPVxuICAgICAgICBkYXlqcyhuZXcgRGF0ZSgpLnNldEZ1bGxZZWFyKHllYXIpKS5lbmRPZigneWVhcicpLmlzQmVmb3JlKG5ldyBEYXRlKHRoaXMubWluTWF4Lm1pbikpICYmXG4gICAgICAgIHRoaXMubWluTWF4Lm1pbiAhPT0gbnVsbDtcbiAgICAgIHJldHVybiBpc1N1aXRhYmxlTWF4IHx8IGlzU3VpdGFibGVNaW47XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbHVtblwiPlxuICA8ZGl2IGNsYXNzPVwiZm9udC10aXRsZS0zIHBhZGRpbmctdi00IHBhZGRpbmctaC0zXCI+XG4gICAgPHA+e3sgbG9jYWxlLnNlbGVjdFllYXIgfX08L3A+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlci15ZWFyIG92ZXJmbG93LXktYXV0b1wiPlxuICAgIEBmb3IgKHkgb2YgeWVhcnM7IHRyYWNrIHkpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmb250LWJ1dHRvbi0yXCIgKGNsaWNrKT1cInBpY2tZZWFyKHkuaWQsIHkuZGlzYWJsZWQpXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBbbmdDbGFzc109XCJ7ICdkYXRlcGlja2VyLXllYXJfaXRlbV9hY3RpdmUnOiB5LmlzU2VsZWN0ZWQsICdkYXRlcGlja2VyLXllYXJfaXRlbV9kaXNhYmxlZCc6IHkuZGlzYWJsZWQgfVwiXG4gICAgICAgICAgW2NsYXNzXT1cIidkYXRlcGlja2VyLXllYXJfaXRlbSBjb2x1bW4gYWxpZ24tY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZGF0ZXBpY2tlcl8nICsgdmlld1R5cGVcIlxuICAgICAgICA+XG4gICAgICAgICAgQGlmICh5LmlzU2VsZWN0ZWQgPT09IHRydWUpIHtcbiAgICAgICAgICAgIDxkaXYgdGV0YVNjcm9sbFRvU2VsZWN0ZWRZZWFyPlxuICAgICAgICAgICAgICA8c3Bhbj57eyB5LmlkIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoIXkuaXNTZWxlY3RlZCkge1xuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgeS5pZCB9fSA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19