ngx-tethys 18.2.6 → 19.0.0-next.0

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 (950) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/badge/badge.component.d.ts +21 -3
  3. package/cascader/cascader-search-option.component.d.ts +6 -3
  4. package/core/store/store.d.ts +1 -1
  5. package/date-picker/abstract-picker.component.d.ts +1 -1
  6. package/date-picker/abstract-picker.directive.d.ts +1 -1
  7. package/date-picker/lib/calendar/calendar-header.component.d.ts +1 -1
  8. package/date-picker/lib/calendar/calendar-table.component.d.ts +1 -1
  9. package/date-range/date-range.component.d.ts +12 -2
  10. package/divider/divider.component.d.ts +2 -8
  11. package/dropdown/dropdown-menu.component.d.ts +1 -1
  12. package/empty/empty.component.d.ts +1 -4
  13. package/fesm2022/ngx-tethys-action.mjs +12 -12
  14. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  15. package/fesm2022/ngx-tethys-affix.mjs +8 -8
  16. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  17. package/fesm2022/ngx-tethys-alert.mjs +12 -12
  18. package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
  19. package/fesm2022/ngx-tethys-anchor.mjs +11 -13
  20. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  21. package/fesm2022/ngx-tethys-arrow-switcher.mjs +9 -9
  22. package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
  23. package/fesm2022/ngx-tethys-autocomplete.mjs +20 -20
  24. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  25. package/fesm2022/ngx-tethys-avatar.mjs +26 -26
  26. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  27. package/fesm2022/ngx-tethys-back-top.mjs +10 -10
  28. package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
  29. package/fesm2022/ngx-tethys-badge.mjs +9 -9
  30. package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
  31. package/fesm2022/ngx-tethys-breadcrumb.mjs +13 -15
  32. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  33. package/fesm2022/ngx-tethys-button.mjs +16 -16
  34. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  35. package/fesm2022/ngx-tethys-calendar.mjs +20 -20
  36. package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
  37. package/fesm2022/ngx-tethys-card.mjs +15 -15
  38. package/fesm2022/ngx-tethys-card.mjs.map +1 -1
  39. package/fesm2022/ngx-tethys-carousel.mjs +15 -15
  40. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  41. package/fesm2022/ngx-tethys-cascader.mjs +23 -24
  42. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  43. package/fesm2022/ngx-tethys-checkbox.mjs +9 -9
  44. package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
  45. package/fesm2022/ngx-tethys-collapse.mjs +12 -12
  46. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  47. package/fesm2022/ngx-tethys-color-picker.mjs +38 -38
  48. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  49. package/fesm2022/ngx-tethys-comment.mjs +15 -15
  50. package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
  51. package/fesm2022/ngx-tethys-copy.mjs +8 -8
  52. package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
  53. package/fesm2022/ngx-tethys-core.mjs +21 -21
  54. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  55. package/fesm2022/ngx-tethys-date-picker.mjs +141 -141
  56. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  57. package/fesm2022/ngx-tethys-date-range.mjs +14 -14
  58. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  59. package/fesm2022/ngx-tethys-dialog.mjs +27 -28
  60. package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
  61. package/fesm2022/ngx-tethys-divider.mjs +8 -9
  62. package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
  63. package/fesm2022/ngx-tethys-dot.mjs +8 -8
  64. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  65. package/fesm2022/ngx-tethys-drag-drop.mjs +20 -20
  66. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  67. package/fesm2022/ngx-tethys-dropdown.mjs +47 -48
  68. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  69. package/fesm2022/ngx-tethys-empty.mjs +12 -12
  70. package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
  71. package/fesm2022/ngx-tethys-flexible-text.mjs +8 -8
  72. package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
  73. package/fesm2022/ngx-tethys-form.mjs +44 -44
  74. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  75. package/fesm2022/ngx-tethys-fullscreen.mjs +14 -14
  76. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  77. package/fesm2022/ngx-tethys-grid.mjs +35 -38
  78. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  79. package/fesm2022/ngx-tethys-guider.mjs +18 -18
  80. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  81. package/fesm2022/ngx-tethys-i18n.mjs +23 -3
  82. package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
  83. package/fesm2022/ngx-tethys-icon.mjs +11 -11
  84. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  85. package/fesm2022/ngx-tethys-image.mjs +19 -19
  86. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  87. package/fesm2022/ngx-tethys-input-number.mjs +11 -11
  88. package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
  89. package/fesm2022/ngx-tethys-input.mjs +23 -23
  90. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  91. package/fesm2022/ngx-tethys-layout.mjs +66 -65
  92. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  93. package/fesm2022/ngx-tethys-list.mjs +19 -19
  94. package/fesm2022/ngx-tethys-list.mjs.map +1 -1
  95. package/fesm2022/ngx-tethys-loading.mjs +9 -9
  96. package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
  97. package/fesm2022/ngx-tethys-mention.mjs +12 -12
  98. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  99. package/fesm2022/ngx-tethys-menu.mjs +29 -29
  100. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  101. package/fesm2022/ngx-tethys-message.mjs +25 -26
  102. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  103. package/fesm2022/ngx-tethys-nav.mjs +24 -25
  104. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  105. package/fesm2022/ngx-tethys-notify.mjs +20 -20
  106. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  107. package/fesm2022/ngx-tethys-pagination.mjs +15 -15
  108. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  109. package/fesm2022/ngx-tethys-popover.mjs +23 -23
  110. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  111. package/fesm2022/ngx-tethys-progress.mjs +17 -17
  112. package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
  113. package/fesm2022/ngx-tethys-property-operation.mjs +12 -12
  114. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  115. package/fesm2022/ngx-tethys-property.mjs +12 -12
  116. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  117. package/fesm2022/ngx-tethys-radio.mjs +15 -15
  118. package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
  119. package/fesm2022/ngx-tethys-rate.mjs +12 -13
  120. package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
  121. package/fesm2022/ngx-tethys-resizable.mjs +17 -19
  122. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  123. package/fesm2022/ngx-tethys-result.mjs +9 -9
  124. package/fesm2022/ngx-tethys-result.mjs.map +1 -1
  125. package/fesm2022/ngx-tethys-segment.mjs +13 -13
  126. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  127. package/fesm2022/ngx-tethys-select.mjs +16 -16
  128. package/fesm2022/ngx-tethys-select.mjs.map +1 -1
  129. package/fesm2022/ngx-tethys-shared.mjs +70 -70
  130. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  131. package/fesm2022/ngx-tethys-skeleton.mjs +23 -28
  132. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  133. package/fesm2022/ngx-tethys-slide.mjs +34 -35
  134. package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
  135. package/fesm2022/ngx-tethys-slider.mjs +9 -9
  136. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  137. package/fesm2022/ngx-tethys-space.mjs +12 -12
  138. package/fesm2022/ngx-tethys-space.mjs.map +1 -1
  139. package/fesm2022/ngx-tethys-statistic.mjs +9 -9
  140. package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
  141. package/fesm2022/ngx-tethys-stepper.mjs +22 -22
  142. package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
  143. package/fesm2022/ngx-tethys-strength.mjs +8 -8
  144. package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
  145. package/fesm2022/ngx-tethys-switch.mjs +9 -9
  146. package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
  147. package/fesm2022/ngx-tethys-table.mjs +23 -23
  148. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  149. package/fesm2022/ngx-tethys-tabs.mjs +15 -16
  150. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  151. package/fesm2022/ngx-tethys-tag.mjs +11 -11
  152. package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
  153. package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
  154. package/fesm2022/ngx-tethys-time-picker.mjs +24 -24
  155. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  156. package/fesm2022/ngx-tethys-timeline.mjs +15 -16
  157. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  158. package/fesm2022/ngx-tethys-tooltip.mjs +16 -16
  159. package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
  160. package/fesm2022/ngx-tethys-transfer.mjs +13 -13
  161. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  162. package/fesm2022/ngx-tethys-tree-select.mjs +13 -13
  163. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  164. package/fesm2022/ngx-tethys-tree.mjs +19 -19
  165. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  166. package/fesm2022/ngx-tethys-typography.mjs +15 -15
  167. package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
  168. package/fesm2022/ngx-tethys-upload.mjs +17 -17
  169. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  170. package/fesm2022/ngx-tethys-util.mjs +2 -18
  171. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  172. package/fesm2022/ngx-tethys-vote.mjs +9 -9
  173. package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
  174. package/fesm2022/ngx-tethys-watermark.mjs +8 -8
  175. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  176. package/fesm2022/ngx-tethys.mjs +1 -1
  177. package/fesm2022/ngx-tethys.mjs.map +1 -1
  178. package/i18n/i18n.d.ts +6 -1
  179. package/i18n/locales/de-de.d.ts +4 -0
  180. package/i18n/locales/en-us.d.ts +4 -0
  181. package/i18n/locales/ja-jp.d.ts +4 -0
  182. package/i18n/locales/zh-hans.d.ts +4 -0
  183. package/i18n/locales/zh-hant.d.ts +4 -0
  184. package/input/input.component.d.ts +1 -1
  185. package/layout/header.component.d.ts +21 -3
  186. package/layout/sidebar.component.d.ts +8 -42
  187. package/menu/group/menu-group.component.d.ts +6 -30
  188. package/message/abstract/abstract-message-container.component.d.ts +1 -1
  189. package/message/abstract/abstract-message.component.d.ts +1 -1
  190. package/nav/nav.component.d.ts +2 -2
  191. package/package.json +1 -169
  192. package/pagination/pagination.component.d.ts +45 -5
  193. package/property/property-item.component.d.ts +4 -2
  194. package/schematics/dependencies.js +3 -3
  195. package/schematics/ng-add/index.js +7 -3
  196. package/schematics/ng-update/core/complete.js +1 -2
  197. package/schematics/ng-update/migration-collection.json +4 -4
  198. package/schematics/ng-update/{update-18 → update-19}/index.js +4 -5
  199. package/schematics/ng-update/{update-18 → update-19}/index.spec.js +4 -4
  200. package/schematics/testing/get-json-content.js +1 -2
  201. package/schematics/testing/test-app.js +1 -2
  202. package/schematics/testing/test-project.js +1 -2
  203. package/schematics/testing/test-workspace.d.ts +0 -2
  204. package/schematics/testing/test-workspace.js +2 -2
  205. package/schematics/utils/create-tree-compiler-host.js +1 -2
  206. package/schematics/utils/create-tree-ts-parse-config-host.js +2 -2
  207. package/schematics/utils/get-angular-json.js +1 -2
  208. package/schematics/utils/get-project.js +1 -2
  209. package/schematics/utils/get-workspace-tsconfig.js +1 -2
  210. package/schematics/utils/package-config.js +2 -3
  211. package/schematics/utils/update-file.service.js +2 -2
  212. package/schematics/version.d.ts +1 -1
  213. package/schematics/version.js +1 -1
  214. package/shared/base-form-check.component.d.ts +1 -1
  215. package/shared/option/list-option/list-option.component.d.ts +1 -4
  216. package/shared/select/styles/select.mixin.scss +2 -1
  217. package/skeleton/skeleton-rectangle.component.d.ts +1 -4
  218. package/skeleton/stylized/bullet-list.component.d.ts +1 -9
  219. package/styles/bootstrap/utilities/_background.scss +2 -1
  220. package/styles/bootstrap/utilities/_text.scss +1 -1
  221. package/table/table.component.d.ts +1 -1
  222. package/upload/file-select-base.d.ts +1 -1
  223. package/esm2022/action/action.component.mjs +0 -174
  224. package/esm2022/action/action.module.mjs +0 -19
  225. package/esm2022/action/actions.component.mjs +0 -57
  226. package/esm2022/action/index.mjs +0 -4
  227. package/esm2022/action/ngx-tethys-action.mjs +0 -5
  228. package/esm2022/affix/affix.component.mjs +0 -243
  229. package/esm2022/affix/affix.module.mjs +0 -18
  230. package/esm2022/affix/index.mjs +0 -3
  231. package/esm2022/affix/ngx-tethys-affix.mjs +0 -5
  232. package/esm2022/affix/respond-events.mjs +0 -11
  233. package/esm2022/alert/alert.component.mjs +0 -98
  234. package/esm2022/alert/alert.directive.mjs +0 -25
  235. package/esm2022/alert/alert.module.mjs +0 -19
  236. package/esm2022/alert/index.mjs +0 -4
  237. package/esm2022/alert/ngx-tethys-alert.mjs +0 -5
  238. package/esm2022/anchor/anchor-link.component.mjs +0 -106
  239. package/esm2022/anchor/anchor.component.mjs +0 -266
  240. package/esm2022/anchor/anchor.module.mjs +0 -20
  241. package/esm2022/anchor/index.mjs +0 -4
  242. package/esm2022/anchor/ngx-tethys-anchor.mjs +0 -5
  243. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +0 -130
  244. package/esm2022/arrow-switcher/index.mjs +0 -3
  245. package/esm2022/arrow-switcher/module.mjs +0 -21
  246. package/esm2022/arrow-switcher/ngx-tethys-arrow-switcher.mjs +0 -5
  247. package/esm2022/autocomplete/autocomplete.component.mjs +0 -182
  248. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +0 -275
  249. package/esm2022/autocomplete/index.mjs +0 -8
  250. package/esm2022/autocomplete/module.mjs +0 -67
  251. package/esm2022/autocomplete/ngx-tethys-autocomplete.mjs +0 -5
  252. package/esm2022/autocomplete/overlay/autocomplete-animations.mjs +0 -10
  253. package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +0 -64
  254. package/esm2022/autocomplete/overlay/autocomplete-ref.mjs +0 -18
  255. package/esm2022/autocomplete/overlay/autocomplete.config.mjs +0 -18
  256. package/esm2022/autocomplete/overlay/autocomplete.options.mjs +0 -6
  257. package/esm2022/autocomplete/overlay/autocomplete.service.mjs +0 -127
  258. package/esm2022/avatar/avatar-list/avatar-list.component.mjs +0 -76
  259. package/esm2022/avatar/avatar.component.mjs +0 -179
  260. package/esm2022/avatar/avatar.module.mjs +0 -33
  261. package/esm2022/avatar/avatar.pipe.mjs +0 -91
  262. package/esm2022/avatar/avatar.service.mjs +0 -27
  263. package/esm2022/avatar/index.mjs +0 -6
  264. package/esm2022/avatar/ngx-tethys-avatar.mjs +0 -5
  265. package/esm2022/back-top/back-top.component.mjs +0 -126
  266. package/esm2022/back-top/back-top.module.mjs +0 -18
  267. package/esm2022/back-top/index.mjs +0 -3
  268. package/esm2022/back-top/ngx-tethys-back-top.mjs +0 -5
  269. package/esm2022/badge/badge.component.mjs +0 -238
  270. package/esm2022/badge/badge.module.mjs +0 -18
  271. package/esm2022/badge/index.mjs +0 -3
  272. package/esm2022/badge/ngx-tethys-badge.mjs +0 -5
  273. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +0 -49
  274. package/esm2022/breadcrumb/breadcrumb.component.mjs +0 -115
  275. package/esm2022/breadcrumb/index.mjs +0 -4
  276. package/esm2022/breadcrumb/module.mjs +0 -21
  277. package/esm2022/breadcrumb/ngx-tethys-breadcrumb.mjs +0 -5
  278. package/esm2022/button/button-group.component.mjs +0 -90
  279. package/esm2022/button/button-icon.component.mjs +0 -166
  280. package/esm2022/button/button.component.mjs +0 -216
  281. package/esm2022/button/button.module.mjs +0 -20
  282. package/esm2022/button/index.mjs +0 -5
  283. package/esm2022/button/ngx-tethys-button.mjs +0 -5
  284. package/esm2022/calendar/calendar-cells.mjs +0 -35
  285. package/esm2022/calendar/calendar-header.component.mjs +0 -117
  286. package/esm2022/calendar/calendar.component.mjs +0 -122
  287. package/esm2022/calendar/index.mjs +0 -5
  288. package/esm2022/calendar/module.mjs +0 -63
  289. package/esm2022/calendar/ngx-tethys-calendar.mjs +0 -5
  290. package/esm2022/card/card.component.mjs +0 -48
  291. package/esm2022/card/card.module.mjs +0 -19
  292. package/esm2022/card/content.component.mjs +0 -58
  293. package/esm2022/card/header.component.mjs +0 -42
  294. package/esm2022/card/index.mjs +0 -5
  295. package/esm2022/card/ngx-tethys-card.mjs +0 -5
  296. package/esm2022/carousel/carousel-item.directive.mjs +0 -37
  297. package/esm2022/carousel/carousel.component.mjs +0 -290
  298. package/esm2022/carousel/carousel.service.mjs +0 -74
  299. package/esm2022/carousel/engine/carousel-base.mjs +0 -43
  300. package/esm2022/carousel/engine/carousel-fade.mjs +0 -46
  301. package/esm2022/carousel/engine/carousel-noop.mjs +0 -28
  302. package/esm2022/carousel/engine/carousel-slide.mjs +0 -62
  303. package/esm2022/carousel/engine/index.mjs +0 -5
  304. package/esm2022/carousel/index.mjs +0 -5
  305. package/esm2022/carousel/module.mjs +0 -21
  306. package/esm2022/carousel/ngx-tethys-carousel.mjs +0 -5
  307. package/esm2022/carousel/typings.mjs +0 -2
  308. package/esm2022/cascader/cascader-li.component.mjs +0 -81
  309. package/esm2022/cascader/cascader-search-option.component.mjs +0 -73
  310. package/esm2022/cascader/cascader.component.mjs +0 -768
  311. package/esm2022/cascader/cascader.service.mjs +0 -558
  312. package/esm2022/cascader/index.mjs +0 -5
  313. package/esm2022/cascader/module.mjs +0 -62
  314. package/esm2022/cascader/ngx-tethys-cascader.mjs +0 -5
  315. package/esm2022/cascader/types.mjs +0 -2
  316. package/esm2022/checkbox/checkbox.component.mjs +0 -51
  317. package/esm2022/checkbox/index.mjs +0 -4
  318. package/esm2022/checkbox/module.mjs +0 -18
  319. package/esm2022/checkbox/ngx-tethys-checkbox.mjs +0 -5
  320. package/esm2022/collapse/collapse-item.component.mjs +0 -88
  321. package/esm2022/collapse/collapse.component.mjs +0 -79
  322. package/esm2022/collapse/index.mjs +0 -4
  323. package/esm2022/collapse/module.mjs +0 -22
  324. package/esm2022/collapse/ngx-tethys-collapse.mjs +0 -5
  325. package/esm2022/color-picker/color-picker-custom-panel.component.mjs +0 -38
  326. package/esm2022/color-picker/color-picker-panel.component.mjs +0 -100
  327. package/esm2022/color-picker/color-picker.component.mjs +0 -289
  328. package/esm2022/color-picker/constant.mjs +0 -73
  329. package/esm2022/color-picker/coordinates.directive.mjs +0 -73
  330. package/esm2022/color-picker/helpers/color.class.mjs +0 -281
  331. package/esm2022/color-picker/helpers/colors-table.class.mjs +0 -155
  332. package/esm2022/color-picker/helpers/rgba.class.mjs +0 -34
  333. package/esm2022/color-picker/index.mjs +0 -14
  334. package/esm2022/color-picker/module.mjs +0 -72
  335. package/esm2022/color-picker/ngx-tethys-color-picker.mjs +0 -5
  336. package/esm2022/color-picker/parts/alpha/alpha.component.mjs +0 -64
  337. package/esm2022/color-picker/parts/hue/hue.component.mjs +0 -54
  338. package/esm2022/color-picker/parts/indicator/indicator.component.mjs +0 -26
  339. package/esm2022/color-picker/parts/inputs/inputs.component.mjs +0 -61
  340. package/esm2022/color-picker/parts/saturation/saturation.component.mjs +0 -68
  341. package/esm2022/comment/comment-actions.directive.mjs +0 -19
  342. package/esm2022/comment/comment-content.directive.mjs +0 -19
  343. package/esm2022/comment/comment.component.mjs +0 -30
  344. package/esm2022/comment/comment.module.mjs +0 -41
  345. package/esm2022/comment/index.mjs +0 -5
  346. package/esm2022/comment/ngx-tethys-comment.mjs +0 -5
  347. package/esm2022/copy/copy.directive.mjs +0 -101
  348. package/esm2022/copy/index.mjs +0 -3
  349. package/esm2022/copy/module.mjs +0 -18
  350. package/esm2022/copy/ngx-tethys-copy.mjs +0 -5
  351. package/esm2022/core/animation/animation-consts.mjs +0 -23
  352. package/esm2022/core/animation/collapse.mjs +0 -12
  353. package/esm2022/core/animation/fade.mjs +0 -7
  354. package/esm2022/core/animation/index.mjs +0 -2
  355. package/esm2022/core/animation/public-api.mjs +0 -6
  356. package/esm2022/core/animation/thumb.mjs +0 -12
  357. package/esm2022/core/animation/zoom.mjs +0 -66
  358. package/esm2022/core/behaviors/constructor.mjs +0 -5
  359. package/esm2022/core/behaviors/control-value-accessor.mjs +0 -17
  360. package/esm2022/core/behaviors/decorators.mjs +0 -47
  361. package/esm2022/core/behaviors/disabled.mjs +0 -17
  362. package/esm2022/core/behaviors/focus-control.mjs +0 -31
  363. package/esm2022/core/behaviors/index.mjs +0 -11
  364. package/esm2022/core/behaviors/initialized.mjs +0 -12
  365. package/esm2022/core/behaviors/loading-done.mjs +0 -12
  366. package/esm2022/core/behaviors/mixin.mjs +0 -5
  367. package/esm2022/core/behaviors/tabindex.mjs +0 -21
  368. package/esm2022/core/behaviors/unsubscribe.mjs +0 -23
  369. package/esm2022/core/click-positioner.mjs +0 -36
  370. package/esm2022/core/color/color.mjs +0 -13
  371. package/esm2022/core/color/index.mjs +0 -2
  372. package/esm2022/core/debounce-time.mjs +0 -11
  373. package/esm2022/core/event-dispatchers/index.mjs +0 -2
  374. package/esm2022/core/index.mjs +0 -16
  375. package/esm2022/core/ngx-tethys-core.mjs +0 -5
  376. package/esm2022/core/overlay/abstract-overlay-container.mjs +0 -53
  377. package/esm2022/core/overlay/abstract-overlay-ref.mjs +0 -160
  378. package/esm2022/core/overlay/abstract-overlay.config.mjs +0 -70
  379. package/esm2022/core/overlay/abstract-overlay.service.mjs +0 -158
  380. package/esm2022/core/overlay/index.mjs +0 -10
  381. package/esm2022/core/overlay/interface.mjs +0 -2
  382. package/esm2022/core/overlay/overlay-position-map.mjs +0 -88
  383. package/esm2022/core/overlay/overlay.directive.mjs +0 -175
  384. package/esm2022/core/overlay/portal-directives.mjs +0 -47
  385. package/esm2022/core/overlay/utils.mjs +0 -69
  386. package/esm2022/core/request-animation.mjs +0 -41
  387. package/esm2022/core/scroll-to.service.mjs +0 -33
  388. package/esm2022/core/scroll.mjs +0 -83
  389. package/esm2022/core/spacing/index.mjs +0 -2
  390. package/esm2022/core/spacing/spacing.mjs +0 -17
  391. package/esm2022/core/store/action-state.mjs +0 -11
  392. package/esm2022/core/store/action.mjs +0 -48
  393. package/esm2022/core/store/actions-stream.mjs +0 -2
  394. package/esm2022/core/store/index.mjs +0 -4
  395. package/esm2022/core/store/store.mjs +0 -125
  396. package/esm2022/core/store/types.mjs +0 -6
  397. package/esm2022/core/store/utils.mjs +0 -14
  398. package/esm2022/core/theme/index.mjs +0 -3
  399. package/esm2022/core/theme/store.mjs +0 -42
  400. package/esm2022/core/theme/theme.mjs +0 -9
  401. package/esm2022/core/translate.mjs +0 -22
  402. package/esm2022/core/update-host-class.service.mjs +0 -60
  403. package/esm2022/date-picker/abstract-picker.component.mjs +0 -318
  404. package/esm2022/date-picker/abstract-picker.directive.mjs +0 -218
  405. package/esm2022/date-picker/base-picker.component.mjs +0 -249
  406. package/esm2022/date-picker/date-helper.service.mjs +0 -37
  407. package/esm2022/date-picker/date-picker.component.mjs +0 -41
  408. package/esm2022/date-picker/date-picker.config.mjs +0 -103
  409. package/esm2022/date-picker/date-picker.directive.mjs +0 -39
  410. package/esm2022/date-picker/date-picker.module.mjs +0 -117
  411. package/esm2022/date-picker/date-picker.service.mjs +0 -31
  412. package/esm2022/date-picker/index.mjs +0 -37
  413. package/esm2022/date-picker/inner-types.mjs +0 -2
  414. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +0 -98
  415. package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +0 -92
  416. package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +0 -105
  417. package/esm2022/date-picker/lib/date/date-header.component.mjs +0 -35
  418. package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +0 -24
  419. package/esm2022/date-picker/lib/date/date-table.component.mjs +0 -149
  420. package/esm2022/date-picker/lib/date/types.mjs +0 -2
  421. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +0 -388
  422. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +0 -42
  423. package/esm2022/date-picker/lib/decade/decade-table.component.mjs +0 -81
  424. package/esm2022/date-picker/lib/lib-packer.module.mjs +0 -123
  425. package/esm2022/date-picker/lib/month/month-header.component.mjs +0 -27
  426. package/esm2022/date-picker/lib/month/month-table.component.mjs +0 -97
  427. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +0 -566
  428. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +0 -196
  429. package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +0 -98
  430. package/esm2022/date-picker/lib/year/year-header.component.mjs +0 -39
  431. package/esm2022/date-picker/lib/year/year-table.component.mjs +0 -100
  432. package/esm2022/date-picker/month-picker.component.mjs +0 -45
  433. package/esm2022/date-picker/ngx-tethys-date-picker.mjs +0 -5
  434. package/esm2022/date-picker/picker.component.mjs +0 -273
  435. package/esm2022/date-picker/picker.pipes.mjs +0 -112
  436. package/esm2022/date-picker/picker.util.mjs +0 -220
  437. package/esm2022/date-picker/picker.validators.mjs +0 -79
  438. package/esm2022/date-picker/quarter-picker.component.mjs +0 -48
  439. package/esm2022/date-picker/range-picker.component.mjs +0 -39
  440. package/esm2022/date-picker/range-picker.directive.mjs +0 -39
  441. package/esm2022/date-picker/standard-types.mjs +0 -2
  442. package/esm2022/date-picker/week-picker.component.mjs +0 -40
  443. package/esm2022/date-picker/year-picker.component.mjs +0 -48
  444. package/esm2022/date-range/date-range.class.mjs +0 -6
  445. package/esm2022/date-range/date-range.component.mjs +0 -255
  446. package/esm2022/date-range/index.mjs +0 -5
  447. package/esm2022/date-range/module.mjs +0 -50
  448. package/esm2022/date-range/ngx-tethys-date-range.mjs +0 -5
  449. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +0 -50
  450. package/esm2022/dialog/body/dialog-body.component.mjs +0 -49
  451. package/esm2022/dialog/confirm/confirm.component.mjs +0 -77
  452. package/esm2022/dialog/confirm/token.mjs +0 -3
  453. package/esm2022/dialog/confirm.config.mjs +0 -29
  454. package/esm2022/dialog/dialog-animations.mjs +0 -19
  455. package/esm2022/dialog/dialog-container.component.mjs +0 -169
  456. package/esm2022/dialog/dialog-ref.mjs +0 -35
  457. package/esm2022/dialog/dialog.config.mjs +0 -62
  458. package/esm2022/dialog/dialog.module.mjs +0 -91
  459. package/esm2022/dialog/dialog.options.mjs +0 -6
  460. package/esm2022/dialog/dialog.service.mjs +0 -145
  461. package/esm2022/dialog/footer/dialog-footer.component.mjs +0 -51
  462. package/esm2022/dialog/header/dialog-header.component.mjs +0 -87
  463. package/esm2022/dialog/index.mjs +0 -12
  464. package/esm2022/dialog/ngx-tethys-dialog.mjs +0 -5
  465. package/esm2022/divider/divider.component.mjs +0 -117
  466. package/esm2022/divider/divider.module.mjs +0 -20
  467. package/esm2022/divider/index.mjs +0 -3
  468. package/esm2022/divider/ngx-tethys-divider.mjs +0 -5
  469. package/esm2022/dot/dot.component.mjs +0 -111
  470. package/esm2022/dot/dot.module.mjs +0 -17
  471. package/esm2022/dot/index.mjs +0 -3
  472. package/esm2022/dot/ngx-tethys-dot.mjs +0 -5
  473. package/esm2022/drag-drop/drag-content.directive.mjs +0 -32
  474. package/esm2022/drag-drop/drag-drop.class.mjs +0 -7
  475. package/esm2022/drag-drop/drag-drop.service.mjs +0 -23
  476. package/esm2022/drag-drop/drag-handle.directive.mjs +0 -43
  477. package/esm2022/drag-drop/drag-ref.mjs +0 -225
  478. package/esm2022/drag-drop/drag.directive.mjs +0 -71
  479. package/esm2022/drag-drop/drop-container.class.mjs +0 -6
  480. package/esm2022/drag-drop/drop-container.directive.mjs +0 -129
  481. package/esm2022/drag-drop/index.mjs +0 -10
  482. package/esm2022/drag-drop/module.mjs +0 -27
  483. package/esm2022/drag-drop/ngx-tethys-drag-drop.mjs +0 -5
  484. package/esm2022/dropdown/dropdown-active.directive.mjs +0 -66
  485. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +0 -210
  486. package/esm2022/dropdown/dropdown-menu.component.mjs +0 -156
  487. package/esm2022/dropdown/dropdown-submenu.component.mjs +0 -83
  488. package/esm2022/dropdown/dropdown.directive.mjs +0 -189
  489. package/esm2022/dropdown/index.mjs +0 -7
  490. package/esm2022/dropdown/module.mjs +0 -79
  491. package/esm2022/dropdown/ngx-tethys-dropdown.mjs +0 -5
  492. package/esm2022/empty/empty.component.mjs +0 -183
  493. package/esm2022/empty/empty.config.mjs +0 -17
  494. package/esm2022/empty/empty.module.mjs +0 -21
  495. package/esm2022/empty/index.mjs +0 -4
  496. package/esm2022/empty/ngx-tethys-empty.mjs +0 -5
  497. package/esm2022/empty/svgs.mjs +0 -207
  498. package/esm2022/flexible-text/flexible-text.component.mjs +0 -157
  499. package/esm2022/flexible-text/flexible-text.module.mjs +0 -19
  500. package/esm2022/flexible-text/index.mjs +0 -3
  501. package/esm2022/flexible-text/ngx-tethys-flexible-text.mjs +0 -5
  502. package/esm2022/form/form-group-error/form-group-error.component.mjs +0 -53
  503. package/esm2022/form/form-group-label.directive.mjs +0 -49
  504. package/esm2022/form/form-group.component.mjs +0 -145
  505. package/esm2022/form/form-submit.directive.mjs +0 -40
  506. package/esm2022/form/form-validator-loader.mjs +0 -134
  507. package/esm2022/form/form-validator.service.mjs +0 -252
  508. package/esm2022/form/form.class.mjs +0 -8
  509. package/esm2022/form/form.directive.mjs +0 -158
  510. package/esm2022/form/from-group-footer/form-group-footer.component.mjs +0 -53
  511. package/esm2022/form/index.mjs +0 -12
  512. package/esm2022/form/module.mjs +0 -104
  513. package/esm2022/form/ngx-tethys-form.mjs +0 -5
  514. package/esm2022/form/validator/confirm-validator.directive.mjs +0 -33
  515. package/esm2022/form/validator/index.mjs +0 -5
  516. package/esm2022/form/validator/max-validator.directive.mjs +0 -41
  517. package/esm2022/form/validator/min-validator.directive.mjs +0 -41
  518. package/esm2022/form/validator/unique-validator.directive.mjs +0 -52
  519. package/esm2022/fullscreen/fullscreen-launch.directive.mjs +0 -18
  520. package/esm2022/fullscreen/fullscreen-ref.mjs +0 -151
  521. package/esm2022/fullscreen/fullscreen.component.mjs +0 -78
  522. package/esm2022/fullscreen/fullscreen.config.mjs +0 -6
  523. package/esm2022/fullscreen/fullscreen.module.mjs +0 -17
  524. package/esm2022/fullscreen/fullscreen.service.mjs +0 -47
  525. package/esm2022/fullscreen/index.mjs +0 -7
  526. package/esm2022/fullscreen/ngx-tethys-fullscreen.mjs +0 -5
  527. package/esm2022/grid/flex.mjs +0 -179
  528. package/esm2022/grid/grid.token.mjs +0 -5
  529. package/esm2022/grid/index.mjs +0 -7
  530. package/esm2022/grid/module.mjs +0 -56
  531. package/esm2022/grid/ngx-tethys-grid.mjs +0 -5
  532. package/esm2022/grid/thy-col.directive.mjs +0 -66
  533. package/esm2022/grid/thy-grid-item.component.mjs +0 -60
  534. package/esm2022/grid/thy-grid.component.mjs +0 -256
  535. package/esm2022/grid/thy-row.directive.mjs +0 -59
  536. package/esm2022/guider/guider-hint/guider-hint.component.mjs +0 -52
  537. package/esm2022/guider/guider-manager.mjs +0 -39
  538. package/esm2022/guider/guider-ref.mjs +0 -133
  539. package/esm2022/guider/guider-step-ref.mjs +0 -242
  540. package/esm2022/guider/guider.class.mjs +0 -15
  541. package/esm2022/guider/guider.directive.mjs +0 -50
  542. package/esm2022/guider/guider.module.mjs +0 -24
  543. package/esm2022/guider/guider.service.mjs +0 -76
  544. package/esm2022/guider/index.mjs +0 -9
  545. package/esm2022/guider/ngx-tethys-guider.mjs +0 -5
  546. package/esm2022/guider/utils.mjs +0 -10
  547. package/esm2022/i18n/i18n.mjs +0 -9
  548. package/esm2022/i18n/i18n.service.mjs +0 -45
  549. package/esm2022/i18n/i18n.token.mjs +0 -10
  550. package/esm2022/i18n/index.mjs +0 -10
  551. package/esm2022/i18n/locale.mjs +0 -13
  552. package/esm2022/i18n/locales/de-de.mjs +0 -130
  553. package/esm2022/i18n/locales/en-us.mjs +0 -151
  554. package/esm2022/i18n/locales/ja-jp.mjs +0 -130
  555. package/esm2022/i18n/locales/zh-hans.mjs +0 -130
  556. package/esm2022/i18n/locales/zh-hant.mjs +0 -130
  557. package/esm2022/i18n/ngx-tethys-i18n.mjs +0 -5
  558. package/esm2022/icon/config.mjs +0 -8
  559. package/esm2022/icon/icon-registry.mjs +0 -340
  560. package/esm2022/icon/icon.component.mjs +0 -198
  561. package/esm2022/icon/icon.module.mjs +0 -20
  562. package/esm2022/icon/index.mjs +0 -5
  563. package/esm2022/icon/ngx-tethys-icon.mjs +0 -5
  564. package/esm2022/image/image-group.component.mjs +0 -32
  565. package/esm2022/image/image.class.mjs +0 -2
  566. package/esm2022/image/image.config.mjs +0 -21
  567. package/esm2022/image/image.directive.mjs +0 -130
  568. package/esm2022/image/image.service.mjs +0 -58
  569. package/esm2022/image/index.mjs +0 -9
  570. package/esm2022/image/module.mjs +0 -67
  571. package/esm2022/image/ngx-tethys-image.mjs +0 -5
  572. package/esm2022/image/preview/image-preview-ref.mjs +0 -32
  573. package/esm2022/image/preview/image-preview.component.mjs +0 -413
  574. package/esm2022/image/utils.mjs +0 -13
  575. package/esm2022/input/index.mjs +0 -7
  576. package/esm2022/input/input-count.component.mjs +0 -68
  577. package/esm2022/input/input-group.component.mjs +0 -161
  578. package/esm2022/input/input-search.component.mjs +0 -152
  579. package/esm2022/input/input.component.mjs +0 -142
  580. package/esm2022/input/input.directive.mjs +0 -63
  581. package/esm2022/input/module.mjs +0 -51
  582. package/esm2022/input/ngx-tethys-input.mjs +0 -5
  583. package/esm2022/input-number/index.mjs +0 -3
  584. package/esm2022/input-number/input-number.component.mjs +0 -362
  585. package/esm2022/input-number/module.mjs +0 -22
  586. package/esm2022/input-number/ngx-tethys-input-number.mjs +0 -5
  587. package/esm2022/layout/content-main.component.mjs +0 -42
  588. package/esm2022/layout/content-section.component.mjs +0 -42
  589. package/esm2022/layout/content.component.mjs +0 -42
  590. package/esm2022/layout/header.component.mjs +0 -125
  591. package/esm2022/layout/index.mjs +0 -11
  592. package/esm2022/layout/layout.component.mjs +0 -47
  593. package/esm2022/layout/layout.module.mjs +0 -121
  594. package/esm2022/layout/ngx-tethys-layout.mjs +0 -5
  595. package/esm2022/layout/sidebar-content.component.mjs +0 -41
  596. package/esm2022/layout/sidebar-footer.component.mjs +0 -41
  597. package/esm2022/layout/sidebar-header.component.mjs +0 -54
  598. package/esm2022/layout/sidebar.component.mjs +0 -403
  599. package/esm2022/list/index.mjs +0 -7
  600. package/esm2022/list/list-item-meta.component.mjs +0 -38
  601. package/esm2022/list/list-item.component.mjs +0 -25
  602. package/esm2022/list/list.component.mjs +0 -41
  603. package/esm2022/list/list.module.mjs +0 -22
  604. package/esm2022/list/ngx-tethys-list.mjs +0 -5
  605. package/esm2022/list/selection/selection-list.mjs +0 -393
  606. package/esm2022/list/selection/selection.interface.mjs +0 -2
  607. package/esm2022/loading/index.mjs +0 -3
  608. package/esm2022/loading/loading.component.mjs +0 -54
  609. package/esm2022/loading/loading.module.mjs +0 -17
  610. package/esm2022/loading/ngx-tethys-loading.mjs +0 -5
  611. package/esm2022/mention/adapter/adapter.mjs +0 -20
  612. package/esm2022/mention/adapter/editable.adapter.mjs +0 -48
  613. package/esm2022/mention/adapter/index.mjs +0 -16
  614. package/esm2022/mention/adapter/textarea.adapter.mjs +0 -58
  615. package/esm2022/mention/caret-positioner.mjs +0 -194
  616. package/esm2022/mention/index.mjs +0 -5
  617. package/esm2022/mention/interfaces.mjs +0 -2
  618. package/esm2022/mention/mention.directive.mjs +0 -160
  619. package/esm2022/mention/mention.module.mjs +0 -23
  620. package/esm2022/mention/ngx-tethys-mention.mjs +0 -5
  621. package/esm2022/mention/suggestions/suggestions.component.mjs +0 -80
  622. package/esm2022/menu/divider/menu-divider.component.mjs +0 -21
  623. package/esm2022/menu/group/menu-group.component.mjs +0 -187
  624. package/esm2022/menu/index.mjs +0 -9
  625. package/esm2022/menu/item/action/menu-item-action.component.mjs +0 -75
  626. package/esm2022/menu/item/icon/menu-item-icon.component.mjs +0 -33
  627. package/esm2022/menu/item/menu-item.component.mjs +0 -42
  628. package/esm2022/menu/item/name/menu-item-name.component.mjs +0 -32
  629. package/esm2022/menu/menu.component.mjs +0 -39
  630. package/esm2022/menu/menu.module.mjs +0 -49
  631. package/esm2022/menu/ngx-tethys-menu.mjs +0 -5
  632. package/esm2022/message/abstract/abstract-message-container.component.mjs +0 -26
  633. package/esm2022/message/abstract/abstract-message-queue.service.mjs +0 -34
  634. package/esm2022/message/abstract/abstract-message-ref.mjs +0 -22
  635. package/esm2022/message/abstract/abstract-message.component.mjs +0 -76
  636. package/esm2022/message/abstract/abstract-message.service.mjs +0 -29
  637. package/esm2022/message/abstract/index.mjs +0 -6
  638. package/esm2022/message/index.mjs +0 -9
  639. package/esm2022/message/message-container.component.mjs +0 -45
  640. package/esm2022/message/message-queue.service.mjs +0 -25
  641. package/esm2022/message/message-ref.mjs +0 -4
  642. package/esm2022/message/message.component.mjs +0 -61
  643. package/esm2022/message/message.config.mjs +0 -14
  644. package/esm2022/message/message.service.mjs +0 -92
  645. package/esm2022/message/module.mjs +0 -24
  646. package/esm2022/message/ngx-tethys-message.mjs +0 -5
  647. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +0 -43
  648. package/esm2022/nav/icon-nav/icon-nav.component.mjs +0 -45
  649. package/esm2022/nav/index.mjs +0 -7
  650. package/esm2022/nav/nav-ink-bar.directive.mjs +0 -79
  651. package/esm2022/nav/nav-item.directive.mjs +0 -98
  652. package/esm2022/nav/nav.component.mjs +0 -410
  653. package/esm2022/nav/nav.module.mjs +0 -54
  654. package/esm2022/nav/nav.pipe.mjs +0 -24
  655. package/esm2022/nav/ngx-tethys-nav.mjs +0 -5
  656. package/esm2022/ngx-tethys.mjs +0 -5
  657. package/esm2022/notify/index.mjs +0 -8
  658. package/esm2022/notify/module.mjs +0 -24
  659. package/esm2022/notify/ngx-tethys-notify.mjs +0 -5
  660. package/esm2022/notify/notify-container.component.mjs +0 -31
  661. package/esm2022/notify/notify-queue.service.mjs +0 -30
  662. package/esm2022/notify/notify-ref.mjs +0 -4
  663. package/esm2022/notify/notify.component.mjs +0 -99
  664. package/esm2022/notify/notify.config.mjs +0 -14
  665. package/esm2022/notify/notify.service.mjs +0 -97
  666. package/esm2022/pagination/index.mjs +0 -6
  667. package/esm2022/pagination/ngx-tethys-pagination.mjs +0 -5
  668. package/esm2022/pagination/pagination.class.mjs +0 -2
  669. package/esm2022/pagination/pagination.component.mjs +0 -366
  670. package/esm2022/pagination/pagination.config.mjs +0 -30
  671. package/esm2022/pagination/pagination.module.mjs +0 -43
  672. package/esm2022/pagination/pagination.pipe.mjs +0 -53
  673. package/esm2022/popover/body/popover-body.component.mjs +0 -25
  674. package/esm2022/popover/header/popover-header.component.mjs +0 -54
  675. package/esm2022/popover/index.mjs +0 -10
  676. package/esm2022/popover/module.mjs +0 -47
  677. package/esm2022/popover/ngx-tethys-popover.mjs +0 -5
  678. package/esm2022/popover/popover-animations.mjs +0 -22
  679. package/esm2022/popover/popover-container.component.mjs +0 -125
  680. package/esm2022/popover/popover-ref.mjs +0 -25
  681. package/esm2022/popover/popover.config.mjs +0 -38
  682. package/esm2022/popover/popover.directive.mjs +0 -157
  683. package/esm2022/popover/popover.options.mjs +0 -6
  684. package/esm2022/popover/popover.service.mjs +0 -201
  685. package/esm2022/progress/index.mjs +0 -6
  686. package/esm2022/progress/interfaces.mjs +0 -2
  687. package/esm2022/progress/ngx-tethys-progress.mjs +0 -5
  688. package/esm2022/progress/progress-circle.component.mjs +0 -136
  689. package/esm2022/progress/progress-strip.component.mjs +0 -54
  690. package/esm2022/progress/progress.component.mjs +0 -142
  691. package/esm2022/progress/progress.module.mjs +0 -20
  692. package/esm2022/property/index.mjs +0 -4
  693. package/esm2022/property/module.mjs +0 -20
  694. package/esm2022/property/ngx-tethys-property.mjs +0 -5
  695. package/esm2022/property/properties.component.mjs +0 -59
  696. package/esm2022/property/property-item.component.mjs +0 -175
  697. package/esm2022/property-operation/group/property-operation-group.component.mjs +0 -20
  698. package/esm2022/property-operation/index.mjs +0 -4
  699. package/esm2022/property-operation/module.mjs +0 -21
  700. package/esm2022/property-operation/ngx-tethys-property-operation.mjs +0 -5
  701. package/esm2022/property-operation/property-operation.component.mjs +0 -183
  702. package/esm2022/public-api.mjs +0 -2
  703. package/esm2022/radio/button/radio-button.component.mjs +0 -56
  704. package/esm2022/radio/group/radio-group.component.mjs +0 -138
  705. package/esm2022/radio/index.mjs +0 -5
  706. package/esm2022/radio/module.mjs +0 -20
  707. package/esm2022/radio/ngx-tethys-radio.mjs +0 -5
  708. package/esm2022/radio/radio.component.mjs +0 -58
  709. package/esm2022/rate/index.mjs +0 -4
  710. package/esm2022/rate/module.mjs +0 -23
  711. package/esm2022/rate/ngx-tethys-rate.mjs +0 -5
  712. package/esm2022/rate/rate-item.component.mjs +0 -76
  713. package/esm2022/rate/rate.component.mjs +0 -244
  714. package/esm2022/resizable/index.mjs +0 -8
  715. package/esm2022/resizable/interface.mjs +0 -2
  716. package/esm2022/resizable/module.mjs +0 -19
  717. package/esm2022/resizable/ngx-tethys-resizable.mjs +0 -5
  718. package/esm2022/resizable/resizable.directive.mjs +0 -363
  719. package/esm2022/resizable/resizable.service.mjs +0 -69
  720. package/esm2022/resizable/resize-handle.component.mjs +0 -104
  721. package/esm2022/resizable/resize-handles.component.mjs +0 -64
  722. package/esm2022/resizable/utils.mjs +0 -14
  723. package/esm2022/result/index.mjs +0 -3
  724. package/esm2022/result/ngx-tethys-result.mjs +0 -5
  725. package/esm2022/result/result.component.mjs +0 -43
  726. package/esm2022/result/result.module.mjs +0 -17
  727. package/esm2022/segment/index.mjs +0 -5
  728. package/esm2022/segment/ngx-tethys-segment.mjs +0 -5
  729. package/esm2022/segment/segment-item.component.mjs +0 -87
  730. package/esm2022/segment/segment.component.mjs +0 -143
  731. package/esm2022/segment/segment.module.mjs +0 -20
  732. package/esm2022/segment/segment.token.mjs +0 -3
  733. package/esm2022/segment/types.mjs +0 -2
  734. package/esm2022/select/custom-select/custom-select.component.mjs +0 -904
  735. package/esm2022/select/index.mjs +0 -5
  736. package/esm2022/select/module.mjs +0 -62
  737. package/esm2022/select/native-select/native-select.component.mjs +0 -98
  738. package/esm2022/select/ngx-tethys-select.mjs +0 -5
  739. package/esm2022/select/select.config.mjs +0 -21
  740. package/esm2022/shared/base-form-check.component.mjs +0 -120
  741. package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +0 -57
  742. package/esm2022/shared/directives/thy-autofocus.directive.mjs +0 -60
  743. package/esm2022/shared/directives/thy-contextmenu.directive.mjs +0 -39
  744. package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +0 -43
  745. package/esm2022/shared/directives/thy-drag-drop.directive.mjs +0 -51
  746. package/esm2022/shared/directives/thy-enter.directive.mjs +0 -43
  747. package/esm2022/shared/directives/thy-scroll.directive.mjs +0 -84
  748. package/esm2022/shared/directives/thy-show.mjs +0 -59
  749. package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +0 -57
  750. package/esm2022/shared/directives/view-outlet.directive.mjs +0 -85
  751. package/esm2022/shared/index.mjs +0 -16
  752. package/esm2022/shared/ng-transclude.directive.mjs +0 -32
  753. package/esm2022/shared/ngx-tethys-shared.mjs +0 -5
  754. package/esm2022/shared/option/group/option-group.component.mjs +0 -92
  755. package/esm2022/shared/option/index.mjs +0 -9
  756. package/esm2022/shared/option/list-option/list-option.component.mjs +0 -96
  757. package/esm2022/shared/option/module.mjs +0 -29
  758. package/esm2022/shared/option/option-group.component.mjs +0 -25
  759. package/esm2022/shared/option/option.component.mjs +0 -181
  760. package/esm2022/shared/option/option.token.mjs +0 -14
  761. package/esm2022/shared/option/options-container.component.mjs +0 -29
  762. package/esm2022/shared/option/select-option-base.mjs +0 -3
  763. package/esm2022/shared/select/index.mjs +0 -3
  764. package/esm2022/shared/select/module.mjs +0 -27
  765. package/esm2022/shared/select/select-control/select-control.component.mjs +0 -280
  766. package/esm2022/shared/shared.module.mjs +0 -71
  767. package/esm2022/skeleton/index.mjs +0 -9
  768. package/esm2022/skeleton/module.mjs +0 -27
  769. package/esm2022/skeleton/ngx-tethys-skeleton.mjs +0 -5
  770. package/esm2022/skeleton/skeleton-circle.component.mjs +0 -92
  771. package/esm2022/skeleton/skeleton-rectangle.component.mjs +0 -100
  772. package/esm2022/skeleton/skeleton.component.mjs +0 -32
  773. package/esm2022/skeleton/skeleton.config.mjs +0 -8
  774. package/esm2022/skeleton/stylized/bullet-list.component.mjs +0 -124
  775. package/esm2022/skeleton/stylized/list.component.mjs +0 -95
  776. package/esm2022/skeleton/stylized/paragraph.component.mjs +0 -107
  777. package/esm2022/slide/drawer/drawer-container.directive.mjs +0 -21
  778. package/esm2022/slide/index.mjs +0 -13
  779. package/esm2022/slide/ngx-tethys-slide.mjs +0 -5
  780. package/esm2022/slide/slide-animations.mjs +0 -24
  781. package/esm2022/slide/slide-body/slide-body-section.component.mjs +0 -41
  782. package/esm2022/slide/slide-body/slide-body.component.mjs +0 -25
  783. package/esm2022/slide/slide-container.component.mjs +0 -192
  784. package/esm2022/slide/slide-footer/slide-footer.component.mjs +0 -26
  785. package/esm2022/slide/slide-header/slide-header.component.mjs +0 -59
  786. package/esm2022/slide/slide-layout/slide-layout.component.mjs +0 -27
  787. package/esm2022/slide/slide-ref.service.mjs +0 -32
  788. package/esm2022/slide/slide.config.mjs +0 -38
  789. package/esm2022/slide/slide.module.mjs +0 -65
  790. package/esm2022/slide/slide.service.mjs +0 -104
  791. package/esm2022/slider/index.mjs +0 -3
  792. package/esm2022/slider/ngx-tethys-slider.mjs +0 -5
  793. package/esm2022/slider/slider.component.mjs +0 -346
  794. package/esm2022/slider/slider.module.mjs +0 -19
  795. package/esm2022/space/index.mjs +0 -3
  796. package/esm2022/space/ngx-tethys-space.mjs +0 -5
  797. package/esm2022/space/space.component.mjs +0 -88
  798. package/esm2022/space/space.module.mjs +0 -17
  799. package/esm2022/statistic/index.mjs +0 -3
  800. package/esm2022/statistic/ngx-tethys-statistic.mjs +0 -5
  801. package/esm2022/statistic/statistic.component.mjs +0 -184
  802. package/esm2022/statistic/statistic.module.mjs +0 -20
  803. package/esm2022/stepper/index.mjs +0 -6
  804. package/esm2022/stepper/ngx-tethys-stepper.mjs +0 -5
  805. package/esm2022/stepper/step-header.component.mjs +0 -40
  806. package/esm2022/stepper/step.component.mjs +0 -32
  807. package/esm2022/stepper/stepper-button.directive.mjs +0 -56
  808. package/esm2022/stepper/stepper.component.mjs +0 -105
  809. package/esm2022/stepper/stepper.module.mjs +0 -21
  810. package/esm2022/strength/index.mjs +0 -3
  811. package/esm2022/strength/ngx-tethys-strength.mjs +0 -5
  812. package/esm2022/strength/strength.component.mjs +0 -122
  813. package/esm2022/strength/strength.module.mjs +0 -17
  814. package/esm2022/switch/index.mjs +0 -3
  815. package/esm2022/switch/ngx-tethys-switch.mjs +0 -5
  816. package/esm2022/switch/switch.component.mjs +0 -181
  817. package/esm2022/switch/switch.module.mjs +0 -17
  818. package/esm2022/table/enums/column-skeleton-type.mjs +0 -8
  819. package/esm2022/table/enums/index.mjs +0 -2
  820. package/esm2022/table/index.mjs +0 -9
  821. package/esm2022/table/ngx-tethys-table.mjs +0 -5
  822. package/esm2022/table/pipes/drag.pipe.mjs +0 -20
  823. package/esm2022/table/pipes/table.pipe.mjs +0 -20
  824. package/esm2022/table/table-column.component.mjs +0 -200
  825. package/esm2022/table/table-skeleton.component.mjs +0 -165
  826. package/esm2022/table/table.component.mjs +0 -966
  827. package/esm2022/table/table.interface.mjs +0 -7
  828. package/esm2022/table/table.module.mjs +0 -75
  829. package/esm2022/tabs/index.mjs +0 -5
  830. package/esm2022/tabs/ngx-tethys-tabs.mjs +0 -5
  831. package/esm2022/tabs/tab-content.component.mjs +0 -52
  832. package/esm2022/tabs/tab.component.mjs +0 -36
  833. package/esm2022/tabs/tabs.component.mjs +0 -139
  834. package/esm2022/tabs/tabs.module.mjs +0 -21
  835. package/esm2022/tabs/types.mjs +0 -2
  836. package/esm2022/tag/index.mjs +0 -4
  837. package/esm2022/tag/ngx-tethys-tag.mjs +0 -5
  838. package/esm2022/tag/tag.component.mjs +0 -109
  839. package/esm2022/tag/tag.module.mjs +0 -19
  840. package/esm2022/tag/tags.component.mjs +0 -24
  841. package/esm2022/testing/data-transfer.mjs +0 -55
  842. package/esm2022/testing/dispatcher-events.mjs +0 -46
  843. package/esm2022/testing/element-focus.mjs +0 -18
  844. package/esm2022/testing/events.mjs +0 -145
  845. package/esm2022/testing/index.mjs +0 -8
  846. package/esm2022/testing/ngx-tethys-testing.mjs +0 -5
  847. package/esm2022/testing/thy-icon.mjs +0 -50
  848. package/esm2022/testing/type-in-element.mjs +0 -20
  849. package/esm2022/testing/xhr-mock.mjs +0 -100
  850. package/esm2022/time-picker/index.mjs +0 -8
  851. package/esm2022/time-picker/inner/inner-time-picker.class.mjs +0 -2
  852. package/esm2022/time-picker/inner/inner-time-picker.component.mjs +0 -239
  853. package/esm2022/time-picker/inner/inner-time-picker.config.mjs +0 -45
  854. package/esm2022/time-picker/inner/inner-time-picker.store.mjs +0 -134
  855. package/esm2022/time-picker/ngx-tethys-time-picker.mjs +0 -5
  856. package/esm2022/time-picker/time-picker-controls.util.mjs +0 -118
  857. package/esm2022/time-picker/time-picker-panel.component.mjs +0 -265
  858. package/esm2022/time-picker/time-picker.component.mjs +0 -363
  859. package/esm2022/time-picker/time-picker.module.mjs +0 -54
  860. package/esm2022/time-picker/time-picker.utils.mjs +0 -131
  861. package/esm2022/timeline/index.mjs +0 -5
  862. package/esm2022/timeline/ngx-tethys-timeline.mjs +0 -5
  863. package/esm2022/timeline/timeline-item.component.mjs +0 -59
  864. package/esm2022/timeline/timeline.component.mjs +0 -156
  865. package/esm2022/timeline/timeline.module.mjs +0 -21
  866. package/esm2022/timeline/timeline.service.mjs +0 -17
  867. package/esm2022/tooltip/index.mjs +0 -9
  868. package/esm2022/tooltip/interface.mjs +0 -2
  869. package/esm2022/tooltip/ngx-tethys-tooltip.mjs +0 -5
  870. package/esm2022/tooltip/tooltip-animations.mjs +0 -23
  871. package/esm2022/tooltip/tooltip-ref.mjs +0 -147
  872. package/esm2022/tooltip/tooltip.component.mjs +0 -103
  873. package/esm2022/tooltip/tooltip.config.mjs +0 -17
  874. package/esm2022/tooltip/tooltip.directive.mjs +0 -150
  875. package/esm2022/tooltip/tooltip.module.mjs +0 -22
  876. package/esm2022/tooltip/tooltip.service.mjs +0 -28
  877. package/esm2022/transfer/index.mjs +0 -5
  878. package/esm2022/transfer/ngx-tethys-transfer.mjs +0 -5
  879. package/esm2022/transfer/transfer-list.component.mjs +0 -154
  880. package/esm2022/transfer/transfer.component.mjs +0 -180
  881. package/esm2022/transfer/transfer.interface.mjs +0 -6
  882. package/esm2022/transfer/transfer.module.mjs +0 -50
  883. package/esm2022/tree/index.mjs +0 -7
  884. package/esm2022/tree/ngx-tethys-tree.mjs +0 -5
  885. package/esm2022/tree/tree-abstract.mjs +0 -3
  886. package/esm2022/tree/tree-node.class.mjs +0 -93
  887. package/esm2022/tree/tree-node.component.mjs +0 -212
  888. package/esm2022/tree/tree.class.mjs +0 -15
  889. package/esm2022/tree/tree.component.mjs +0 -648
  890. package/esm2022/tree/tree.module.mjs +0 -74
  891. package/esm2022/tree/tree.pipe.mjs +0 -26
  892. package/esm2022/tree/tree.service.mjs +0 -187
  893. package/esm2022/tree-select/index.mjs +0 -4
  894. package/esm2022/tree-select/module.mjs +0 -52
  895. package/esm2022/tree-select/ngx-tethys-tree-select.mjs +0 -5
  896. package/esm2022/tree-select/tree-select.class.mjs +0 -2
  897. package/esm2022/tree-select/tree-select.component.mjs +0 -653
  898. package/esm2022/types/common.mjs +0 -2
  899. package/esm2022/types/dictionary.mjs +0 -2
  900. package/esm2022/types/index.mjs +0 -4
  901. package/esm2022/types/ngx-tethys-types.mjs +0 -5
  902. package/esm2022/types/pagination.mjs +0 -2
  903. package/esm2022/typography/bg-color.directive.mjs +0 -51
  904. package/esm2022/typography/index.mjs +0 -5
  905. package/esm2022/typography/module.mjs +0 -21
  906. package/esm2022/typography/ngx-tethys-typography.mjs +0 -5
  907. package/esm2022/typography/text/text.component.mjs +0 -23
  908. package/esm2022/typography/text-color.directive.mjs +0 -52
  909. package/esm2022/upload/constant.mjs +0 -75
  910. package/esm2022/upload/file-drop.directive.mjs +0 -166
  911. package/esm2022/upload/file-select-base.mjs +0 -75
  912. package/esm2022/upload/file-select.component.mjs +0 -98
  913. package/esm2022/upload/index.mjs +0 -7
  914. package/esm2022/upload/module.mjs +0 -22
  915. package/esm2022/upload/ngx-tethys-upload.mjs +0 -5
  916. package/esm2022/upload/types.mjs +0 -2
  917. package/esm2022/upload/upload.config.mjs +0 -21
  918. package/esm2022/upload/upload.service.mjs +0 -169
  919. package/esm2022/upload/util.mjs +0 -27
  920. package/esm2022/util/date/functions.mjs +0 -84
  921. package/esm2022/util/date/tiny-date.mjs +0 -362
  922. package/esm2022/util/dom.mjs +0 -247
  923. package/esm2022/util/helpers/helpers.mjs +0 -293
  924. package/esm2022/util/helpers/index.mjs +0 -2
  925. package/esm2022/util/immutable.mjs +0 -108
  926. package/esm2022/util/index.mjs +0 -16
  927. package/esm2022/util/keycodes.mjs +0 -2
  928. package/esm2022/util/logger/index.mjs +0 -2
  929. package/esm2022/util/logger/logger.mjs +0 -42
  930. package/esm2022/util/ng.mjs +0 -7
  931. package/esm2022/util/ngx-tethys-util.mjs +0 -5
  932. package/esm2022/util/references.mjs +0 -84
  933. package/esm2022/version.mjs +0 -3
  934. package/esm2022/vote/index.mjs +0 -3
  935. package/esm2022/vote/ngx-tethys-vote.mjs +0 -5
  936. package/esm2022/vote/vote.component.mjs +0 -130
  937. package/esm2022/vote/vote.module.mjs +0 -20
  938. package/esm2022/watermark/config.mjs +0 -20
  939. package/esm2022/watermark/index.mjs +0 -3
  940. package/esm2022/watermark/ngx-tethys-watermark.mjs +0 -5
  941. package/esm2022/watermark/watermark.directive.mjs +0 -178
  942. package/esm2022/watermark/watermark.module.mjs +0 -19
  943. package/schematics/ng-update/update-18/complete.d.ts +0 -3
  944. package/schematics/ng-update/update-18/complete.js +0 -13
  945. /package/schematics/ng-update/{update-18 → update-19}/class-name-migration.d.ts +0 -0
  946. /package/schematics/ng-update/{update-18 → update-19}/class-name-migration.js +0 -0
  947. /package/schematics/ng-update/{update-18 → update-19}/index.d.ts +0 -0
  948. /package/schematics/ng-update/{update-18 → update-19}/index.spec.d.ts +0 -0
  949. /package/schematics/ng-update/{update-18 → update-19}/update-data.d.ts +0 -0
  950. /package/schematics/ng-update/{update-18 → update-19}/update-data.js +0 -0
@@ -1,118 +0,0 @@
1
- import { changeTime } from './time-picker.utils';
2
- export function canChangeValue(state, event) {
3
- if (state.readonlyInput || state.disabled) {
4
- return false;
5
- }
6
- if (event) {
7
- if (event.source === 'wheel' && !state.mousewheel) {
8
- return false;
9
- }
10
- if (event.source === 'key' && !state.arrowKeys) {
11
- return false;
12
- }
13
- }
14
- return true;
15
- }
16
- export function canChangeHours(event, controls) {
17
- if (!event.step) {
18
- return false;
19
- }
20
- if (event.step > 0 && !controls.canIncrementHours) {
21
- return false;
22
- }
23
- if (event.step < 0 && !controls.canDecrementHours) {
24
- return false;
25
- }
26
- return true;
27
- }
28
- export function canChangeMinutes(event, controls) {
29
- if (!event.step) {
30
- return false;
31
- }
32
- if (event.step > 0 && !controls.canIncrementMinutes) {
33
- return false;
34
- }
35
- if (event.step < 0 && !controls.canDecrementMinutes) {
36
- return false;
37
- }
38
- return true;
39
- }
40
- export function canChangeSeconds(event, controls) {
41
- if (!event.step) {
42
- return false;
43
- }
44
- if (event.step > 0 && !controls.canIncrementSeconds) {
45
- return false;
46
- }
47
- if (event.step < 0 && !controls.canDecrementSeconds) {
48
- return false;
49
- }
50
- return true;
51
- }
52
- export function getControlsValue(state) {
53
- const { hourStep, minuteStep, secondsStep, readonlyInput, disabled, mousewheel, arrowKeys, showSpinners, showMeridian, showSeconds, meridians, min, max } = state;
54
- return {
55
- hourStep,
56
- minuteStep,
57
- secondsStep,
58
- readonlyInput,
59
- disabled,
60
- mousewheel,
61
- arrowKeys,
62
- showSpinners,
63
- showMeridian,
64
- showSeconds,
65
- meridians,
66
- min,
67
- max
68
- };
69
- }
70
- export function timePickerControls(value, state) {
71
- const hoursPerDayHalf = 12;
72
- const { min, max, hourStep, minuteStep, secondsStep, showSeconds } = state;
73
- const res = {
74
- canIncrementHours: true,
75
- canIncrementMinutes: true,
76
- canIncrementSeconds: true,
77
- canDecrementHours: true,
78
- canDecrementMinutes: true,
79
- canDecrementSeconds: true,
80
- canToggleMeridian: true
81
- };
82
- if (!value) {
83
- return res;
84
- }
85
- // compare dates
86
- if (max) {
87
- const _newHour = changeTime(value, { hour: hourStep });
88
- res.canIncrementHours = max > _newHour;
89
- if (!res.canIncrementHours) {
90
- const _newMinutes = changeTime(value, { minute: minuteStep });
91
- res.canIncrementMinutes = showSeconds ? max > _newMinutes : max >= _newMinutes;
92
- }
93
- if (!res.canIncrementMinutes) {
94
- const _newSeconds = changeTime(value, { seconds: secondsStep });
95
- res.canIncrementSeconds = max >= _newSeconds;
96
- }
97
- if (value.getHours() < hoursPerDayHalf) {
98
- res.canToggleMeridian = changeTime(value, { hour: hoursPerDayHalf }) < max;
99
- }
100
- }
101
- if (min) {
102
- const _newHour = changeTime(value, { hour: -hourStep });
103
- res.canDecrementHours = min < _newHour;
104
- if (!res.canDecrementHours) {
105
- const _newMinutes = changeTime(value, { minute: -minuteStep });
106
- res.canDecrementMinutes = showSeconds ? min < _newMinutes : min <= _newMinutes;
107
- }
108
- if (!res.canDecrementMinutes) {
109
- const _newSeconds = changeTime(value, { seconds: -secondsStep });
110
- res.canDecrementSeconds = min <= _newSeconds;
111
- }
112
- if (value.getHours() >= hoursPerDayHalf) {
113
- res.canToggleMeridian = changeTime(value, { hour: -hoursPerDayHalf }) > min;
114
- }
115
- }
116
- return res;
117
- }
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItY29udHJvbHMudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci90aW1lLXBpY2tlci1jb250cm9scy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUdqRCxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQStCLEVBQUUsS0FBdUI7SUFDbkYsSUFBSSxLQUFLLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QyxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEQsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDN0MsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxLQUFzQixFQUFFLFFBQTRCO0lBQy9FLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2hELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDaEQs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QzNCLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ2pFLEdBQUcsQ0FBQyxtQkFBbUIsR0FBRyxHQUFHLElBQUksV0FBVyxDQUFDO1FBQ2pELENBQUM7UUFFRCxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUN0QyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ2hGLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2hhbmdlVGltZSB9IGZyb20gJy4vdGltZS1waWNrZXIudXRpbHMnO1xuaW1wb3J0IHsgVGltZUNoYW5nZUV2ZW50LCBUaW1lUGlja2VyQ29tcG9uZW50U3RhdGUsIFRpbWVQaWNrZXJDb250cm9scyB9IGZyb20gJy4vaW5uZXIvaW5uZXItdGltZS1waWNrZXIuY2xhc3MnO1xuXG5leHBvcnQgZnVuY3Rpb24gY2FuQ2hhbmdlVmFsdWUoc3RhdGU6IFRpbWVQaWNrZXJDb21wb25lbnRTdGF0ZSwgZXZlbnQ/OiBUaW1lQ2hhbmdlRXZlbnQpOiBib29sZWFuIHtcbiAgICBpZiAoc3RhdGUucmVhZG9ubHlJbnB1dCB8fCBzdGF0ZS5kaXNhYmxlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudC5zb3VyY2UgPT09ICd3aGVlbCcgJiYgIXN0YXRlLm1vdXNld2hlZWwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5zb3VyY2UgPT09ICdrZXknICYmICFzdGF0ZS5hcnJvd0tleXMpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FuQ2hhbmdlSG91cnMoZXZlbnQ6IFRpbWVDaGFuZ2VFdmVudCwgY29udHJvbHM6IFRpbWVQaWNrZXJDb250cm9scyk6IGJvb2xlYW4ge1xuICAgIGlmICghZXZlbnQuc3RlcCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LnN0ZXAgPiAwICYmICFjb250cm9scy5jYW5JbmNyZW1lbnRIb3Vycykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LnN0ZXAgPCAwICYmICFjb250cm9scy5jYW5EZWNyZW1lbnRIb3Vycykge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYW5DaGFuZ2VNaW51dGVzKGV2ZW50OiBUaW1lQ2hhbmdlRXZlbnQsIGNvbnRyb2xzOiBUaW1lUGlja2VyQ29udHJvbHMpOiBib29sZWFuIHtcbiAgICBpZiAoIWV2ZW50LnN0ZXApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoZXZlbnQuc3RlcCA+IDAgJiYgIWNvbnRyb2xzLmNhbkluY3JlbWVudE1pbnV0ZXMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAoZXZlbnQuc3RlcCA8IDAgJiYgIWNvbnRyb2xzLmNhbkRlY3JlbWVudE1pbnV0ZXMpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FuQ2hhbmdlU2Vjb25kcyhldmVudDogVGltZUNoYW5nZUV2ZW50LCBjb250cm9sczogVGltZVBpY2tlckNvbnRyb2xzKTogYm9vbGVhbiB7XG4gICAgaWYgKCFldmVudC5zdGVwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGV2ZW50LnN0ZXAgPiAwICYmICFjb250cm9scy5jYW5JbmNyZW1lbnRTZWNvbmRzKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKGV2ZW50LnN0ZXAgPCAwICYmICFjb250cm9scy5jYW5EZWNyZW1lbnRTZWNvbmRzKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbnRyb2xzVmFsdWUoc3RhdGU6IFRpbWVQaWNrZXJDb21wb25lbnRTdGF0ZSk6IFRpbWVQaWNrZXJDb21wb25lbnRTdGF0ZSB7XG4gICAgY29uc3Qge1xuICAgICAgICBob3VyU3RlcCxcbiAgICAgICAgbWludXRlU3RlcCxcbiAgICAgICAgc2Vjb25kc1N0ZXAsXG4gICAgICAgIHJlYWRvbmx5SW5wdXQsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICBtb3VzZXdoZWVsLFxuICAgICAgICBhcnJvd0tleXMsXG4gICAgICAgIHNob3dTcGlubmVycyxcbiAgICAgICAgc2hvd01lcmlkaWFuLFxuICAgICAgICBzaG93U2Vjb25kcyxcbiAgICAgICAgbWVyaWRpYW5zLFxuICAgICAgICBtaW4sXG4gICAgICAgIG1heFxuICAgIH0gPSBzdGF0ZTtcblxuICAgIHJldHVybiB7XG4gICAgICAgIGhvdXJTdGVwLFxuICAgICAgICBtaW51dGVTdGVwLFxuICAgICAgICBzZWNvbmRzU3RlcCxcbiAgICAgICAgcmVhZG9ubHlJbnB1dCxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIG1vdXNld2hlZWwsXG4gICAgICAgIGFycm93S2V5cyxcbiAgICAgICAgc2hvd1NwaW5uZXJzLFxuICAgICAgICBzaG93TWVyaWRpYW4sXG4gICAgICAgIHNob3dTZWNvbmRzLFxuICAgICAgICBtZXJpZGlhbnMsXG4gICAgICAgIG1pbixcbiAgICAgICAgbWF4XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRpbWVQaWNrZXJDb250cm9scyh2YWx1ZTogRGF0ZSwgc3RhdGU6IFRpbWVQaWNrZXJDb21wb25lbnRTdGF0ZSk6IFRpbWVQaWNrZXJDb250cm9scyB7XG4gICAgY29uc3QgaG91cnNQZXJEYXlIYWxmID0gMTI7XG4gICAgY29uc3QgeyBtaW4sIG1heCwgaG91clN0ZXAsIG1pbnV0ZVN0ZXAsIHNlY29uZHNTdGVwLCBzaG93U2Vjb25kcyB9ID0gc3RhdGU7XG4gICAgY29uc3QgcmVzOiBUaW1lUGlja2VyQ29udHJvbHMgPSB7XG4gICAgICAgIGNhbkluY3JlbWVudEhvdXJzOiB0cnVlLFxuICAgICAgICBjYW5JbmNyZW1lbnRNaW51dGVzOiB0cnVlLFxuICAgICAgICBjYW5JbmNyZW1lbnRTZWNvbmRzOiB0cnVlLFxuXG4gICAgICAgIGNhbkRlY3JlbWVudEhvdXJzOiB0cnVlLFxuICAgICAgICBjYW5EZWNyZW1lbnRNaW51dGVzOiB0cnVlLFxuICAgICAgICBjYW5EZWNyZW1lbnRTZWNvbmRzOiB0cnVlLFxuXG4gICAgICAgIGNhblRvZ2dsZU1lcmlkaWFuOiB0cnVlXG4gICAgfTtcblxuICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICAvLyBjb21wYXJlIGRhdGVzXG4gICAgaWYgKG1heCkge1xuICAgICAgICBjb25zdCBfbmV3SG91ciA9IGNoYW5nZVRpbWUodmFsdWUsIHsgaG91cjogaG91clN0ZXAgfSk7XG4gICAgICAgIHJlcy5jYW5JbmNyZW1lbnRIb3VycyA9IG1heCA+IF9uZXdIb3VyO1xuXG4gICAgICAgIGlmICghcmVzLmNhbkluY3JlbWVudEhvdXJzKSB7XG4gICAgICAgICAgICBjb25zdCBfbmV3TWludXRlcyA9IGNoYW5nZVRpbWUodmFsdWUsIHsgbWludXRlOiBtaW51dGVTdGVwIH0pO1xuICAgICAgICAgICAgcmVzLmNhbkluY3JlbWVudE1pbnV0ZXMgPSBzaG93U2Vjb25kcyA/IG1heCA+IF9uZXdNaW51dGVzIDogbWF4ID49IF9uZXdNaW51dGVzO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFyZXMuY2FuSW5jcmVtZW50TWludXRlcykge1xuICAgICAgICAgICAgY29uc3QgX25ld1NlY29uZHMgPSBjaGFuZ2VUaW1lKHZhbHVlLCB7IHNlY29uZHM6IHNlY29uZHNTdGVwIH0pO1xuICAgICAgICAgICAgcmVzLmNhbkluY3JlbWVudFNlY29uZHMgPSBtYXggPj0gX25ld1NlY29uZHM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUuZ2V0SG91cnMoKSA8IGhvdXJzUGVyRGF5SGFsZikge1xuICAgICAgICAgICAgcmVzLmNhblRvZ2dsZU1lcmlkaWFuID0gY2hhbmdlVGltZSh2YWx1ZSwgeyBob3VyOiBob3Vyc1BlckRheUhhbGYgfSkgPCBtYXg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAobWluKSB7XG4gICAgICAgIGNvbnN0IF9uZXdIb3VyID0gY2hhbmdlVGltZSh2YWx1ZSwgeyBob3VyOiAtaG91clN0ZXAgfSk7XG4gICAgICAgIHJlcy5jYW5EZWNyZW1lbnRIb3VycyA9IG1pbiA8IF9uZXdIb3VyO1xuXG4gICAgICAgIGlmICghcmVzLmNhbkRlY3JlbWVudEhvdXJzKSB7XG4gICAgICAgICAgICBjb25zdCBfbmV3TWludXRlcyA9IGNoYW5nZVRpbWUodmFsdWUsIHsgbWludXRlOiAtbWludXRlU3RlcCB9KTtcbiAgICAgICAgICAgIHJlcy5jYW5EZWNyZW1lbnRNaW51dGVzID0gc2hvd1NlY29uZHMgPyBtaW4gPCBfbmV3TWludXRlcyA6IG1pbiA8PSBfbmV3TWludXRlcztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghcmVzLmNhbkRlY3JlbWVudE1pbnV0ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IF9uZXdTZWNvbmRzID0gY2hhbmdlVGltZSh2YWx1ZSwgeyBzZWNvbmRzOiAtc2Vjb25kc1N0ZXAgfSk7XG4gICAgICAgICAgICByZXMuY2FuRGVjcmVtZW50U2Vjb25kcyA9IG1pbiA8PSBfbmV3U2Vjb25kcztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh2YWx1ZS5nZXRIb3VycygpID49IGhvdXJzUGVyRGF5SGFsZikge1xuICAgICAgICAgICAgcmVzLmNhblRvZ2dsZU1lcmlkaWFuID0gY2hhbmdlVGltZSh2YWx1ZSwgeyBob3VyOiAtaG91cnNQZXJEYXlIYWxmIH0pID4gbWluO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcztcbn1cbiJdfQ==
@@ -1,265 +0,0 @@
1
- import { DecimalPipe } from '@angular/common';
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, inject, Input, NgZone, Output, ViewChild } from '@angular/core';
3
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { ThyButton } from 'ngx-tethys/button';
5
- import { reqAnimFrame } from 'ngx-tethys/core';
6
- import { injectLocale } from 'ngx-tethys/i18n';
7
- import { coerceBooleanProperty, isValid, TinyDate } from 'ngx-tethys/util';
8
- import * as i0 from "@angular/core";
9
- /**
10
- * 时间选择面板组件
11
- * @name thy-time-picker-panel
12
- */
13
- export class ThyTimePanel {
14
- constructor() {
15
- this.cdr = inject(ChangeDetectorRef);
16
- this.ngZone = inject(NgZone);
17
- this.locale = injectLocale('timePicker');
18
- /**
19
- * 小时间隔步长
20
- * @type number
21
- */
22
- this.thyHourStep = 1;
23
- /**
24
- * 分钟间隔步长
25
- * @type number
26
- */
27
- this.thyMinuteStep = 1;
28
- /**
29
- * 秒间隔步长
30
- * @type number
31
- */
32
- this.thySecondStep = 1;
33
- /**
34
- * 展示选择此刻
35
- * @type boolean
36
- */
37
- this.thyShowSelectNow = true;
38
- /**
39
- * 展示底部操作
40
- * @type boolean
41
- */
42
- this.thyShowOperations = true;
43
- /**
44
- * 选择时间触发的事件
45
- * @type EventEmitter<Date>
46
- */
47
- this.thyPickChange = new EventEmitter();
48
- /**
49
- * 关闭面板事件
50
- * @type EventEmitter<void>
51
- */
52
- this.thyClosePanel = new EventEmitter();
53
- // margin-top + 1px border
54
- this.SCROLL_OFFSET_SPACING = 5;
55
- this.SCROLL_DEFAULT_DURATION = 120;
56
- this.prefixCls = 'thy-time-picker-panel';
57
- this.hourRange = [];
58
- this.minuteRange = [];
59
- this.secondRange = [];
60
- this.showHourColumn = true;
61
- this.showMinuteColumn = true;
62
- this.showSecondColumn = true;
63
- this.showColumnCount = 3;
64
- this.onValueChangeFn = () => void 0;
65
- this.onTouchedFn = () => void 0;
66
- }
67
- /**
68
- * 展示的日期格式,支持 'HH:mm:ss' | 'HH:mm' | 'mm:ss'
69
- * @type string
70
- * @default HH:mm:ss
71
- */
72
- set thyFormat(value) {
73
- if (value) {
74
- const formatSet = new Set(value);
75
- this.showHourColumn = formatSet.has('H') || formatSet.has('h');
76
- this.showMinuteColumn = formatSet.has('m');
77
- this.showSecondColumn = formatSet.has('s');
78
- }
79
- else {
80
- this.showHourColumn = true;
81
- this.showMinuteColumn = true;
82
- this.showSecondColumn = true;
83
- }
84
- this.showColumnCount = [this.showHourColumn, this.showMinuteColumn, this.showSecondColumn].filter(m => m).length;
85
- this.cdr.markForCheck();
86
- }
87
- ngOnInit() {
88
- this.generateTimeRange();
89
- this.initialValue();
90
- setTimeout(() => {
91
- this.initialScrollPosition = true;
92
- });
93
- }
94
- generateTimeRange() {
95
- this.hourRange = this.buildTimeRange(24, this.thyHourStep);
96
- this.minuteRange = this.buildTimeRange(60, this.thyMinuteStep);
97
- this.secondRange = this.buildTimeRange(60, this.thySecondStep);
98
- }
99
- pickHours(hours, index) {
100
- this.value.setHours(hours.value);
101
- this.hour = hours.value;
102
- this.thyPickChange.emit(this.value);
103
- this.scrollTo(this.hourListRef.nativeElement, index);
104
- }
105
- pickMinutes(minutes, index) {
106
- this.value.setMinutes(minutes.value);
107
- this.minute = minutes.value;
108
- this.thyPickChange.emit(this.value);
109
- this.scrollTo(this.minuteListRef.nativeElement, index);
110
- }
111
- pickSeconds(seconds, index) {
112
- this.value.setSeconds(seconds.value);
113
- this.second = seconds.value;
114
- this.thyPickChange.emit(this.value);
115
- this.scrollTo(this.secondListRef.nativeElement, index);
116
- }
117
- selectNow() {
118
- this.value = new TinyDate()?.nativeDate;
119
- this.setHMSProperty();
120
- this.thyPickChange.emit(this.value);
121
- this.thyClosePanel.emit();
122
- }
123
- confirmPickTime() {
124
- this.onValueChangeFn(this.value || new TinyDate()?.nativeDate);
125
- this.thyClosePanel.emit();
126
- }
127
- scrollTo(container, index = 0, duration = this.SCROLL_DEFAULT_DURATION) {
128
- const offsetTop = container.children[index].offsetTop - this.SCROLL_OFFSET_SPACING;
129
- this.runScrollAnimationFrame(container, offsetTop, duration);
130
- }
131
- writeValue(value) {
132
- if (value && isValid(value)) {
133
- this.value = new TinyDate(value)?.nativeDate;
134
- this.setHMSProperty();
135
- }
136
- else {
137
- this.initialValue();
138
- }
139
- this.autoScroll(this.initialScrollPosition ? this.SCROLL_DEFAULT_DURATION : 0);
140
- this.cdr.markForCheck();
141
- }
142
- registerOnChange(fn) {
143
- this.onValueChangeFn = fn;
144
- }
145
- registerOnTouched(fn) {
146
- this.onTouchedFn = fn;
147
- }
148
- initialValue() {
149
- this.hour = 0;
150
- this.minute = 0;
151
- this.second = 0;
152
- this.value = new TinyDate().setHms(0, 0, 0).nativeDate;
153
- }
154
- buildTimeRange(length, step = 1, start = 0, disables = []) {
155
- return new Array(Math.ceil(length / step)).fill(0).map((_, i) => {
156
- const value = (i + start) * step;
157
- return {
158
- value: value,
159
- disabled: disables.indexOf(value) > -1
160
- };
161
- });
162
- }
163
- setHMSProperty() {
164
- this.hour = this.value.getHours();
165
- this.minute = this.value.getMinutes();
166
- this.second = this.value.getSeconds();
167
- }
168
- resetScrollPosition() {
169
- if (this.hourListRef) {
170
- this.hourListRef.nativeElement.scrollTop = 0;
171
- }
172
- if (this.minuteListRef) {
173
- this.minuteListRef.nativeElement.scrollTop = 0;
174
- }
175
- if (this.secondListRef) {
176
- this.secondListRef.nativeElement.scrollTop = 0;
177
- }
178
- this.initialScrollPosition = false;
179
- }
180
- runScrollAnimationFrame(container, to, duration = this.SCROLL_DEFAULT_DURATION) {
181
- if (duration <= 0) {
182
- container.scrollTop = to;
183
- return;
184
- }
185
- const offset = to - container.scrollTop;
186
- const frame = (offset / duration) * 10;
187
- this.ngZone.runOutsideAngular(() => {
188
- reqAnimFrame(() => {
189
- container.scrollTop += frame;
190
- if (container.scrollTop === to) {
191
- return;
192
- }
193
- this.runScrollAnimationFrame(container, to, duration - 10);
194
- });
195
- });
196
- }
197
- autoScroll(duration = this.SCROLL_DEFAULT_DURATION) {
198
- if (this.hourListRef) {
199
- this.scrollTo(this.hourListRef.nativeElement, this.hourRange.findIndex(m => m.value === this.hour), duration);
200
- }
201
- if (this.minuteListRef) {
202
- this.scrollTo(this.minuteListRef.nativeElement, this.minuteRange.findIndex(m => m.value === this.minute), duration);
203
- }
204
- if (this.secondListRef) {
205
- this.scrollTo(this.secondListRef.nativeElement, this.secondRange.findIndex(m => m.value === this.second), duration);
206
- }
207
- }
208
- ngOnDestroy() {
209
- // 关闭面板时有 0.2s 的动画,所以延迟 200ms 再重置滚动位置
210
- setTimeout(() => {
211
- this.resetScrollPosition();
212
- }, 200);
213
- }
214
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyTimePanel, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
215
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ThyTimePanel, isStandalone: true, selector: "thy-time-picker-panel", inputs: { thyFormat: "thyFormat", thyHourStep: "thyHourStep", thyMinuteStep: "thyMinuteStep", thySecondStep: "thySecondStep", thyShowSelectNow: ["thyShowSelectNow", "thyShowSelectNow", coerceBooleanProperty], thyShowOperations: ["thyShowOperations", "thyShowOperations", coerceBooleanProperty] }, outputs: { thyPickChange: "thyPickChange", thyClosePanel: "thyClosePanel" }, host: { properties: { "class.thy-time-picker-panel-has-bottom-operation": "thyShowOperations", "class.thy-time-picker-panel-columns-2": "showColumnCount === 2", "class.thy-time-picker-panel-columns-3": "showColumnCount === 3" }, classAttribute: "thy-time-picker-panel" }, providers: [
216
- {
217
- provide: NG_VALUE_ACCESSOR,
218
- multi: true,
219
- useExisting: forwardRef(() => ThyTimePanel)
220
- }
221
- ], viewQueries: [{ propertyName: "hourListRef", first: true, predicate: ["hourListElement"], descendants: true }, { propertyName: "minuteListRef", first: true, predicate: ["minuteListElement"], descendants: true }, { propertyName: "secondListRef", first: true, predicate: ["secondListElement"], descendants: true }], ngImport: i0, template: "<div class=\"{{ prefixCls }}-content\">\n @if (showHourColumn) {\n <ul #hourListElement class=\"{{ prefixCls }}-time-column {{ prefixCls }}-hour-column\">\n @for (time of hourRange; track $index; let i = $index) {\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"hour === time.value\"\n (click)=\"pickHours(time, i)\">\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n }\n </ul>\n }\n @if (showMinuteColumn) {\n <ul #minuteListElement class=\"{{ prefixCls }}-time-column {{ prefixCls }}-minute-column\">\n @for (time of minuteRange; track $index; let i = $index) {\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"minute === time.value\"\n (click)=\"pickMinutes(time, i)\">\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n }\n </ul>\n }\n @if (showSecondColumn) {\n <ul #secondListElement class=\"{{ prefixCls }}-time-column {{ prefixCls }}-second-column\">\n @for (time of secondRange; track $index; let i = $index) {\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"second === time.value\"\n (click)=\"pickSeconds(time, i)\">\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n }\n </ul>\n }\n</div>\n\n@if (thyShowOperations) {\n <div class=\"{{ prefixCls }}-bottom-operation\">\n @if (thyShowSelectNow) {\n <a href=\"javascript:;\" class=\"{{ prefixCls }}-time-now\" (click)=\"selectNow()\">{{ locale().now }}</a>\n }\n <button class=\"{{ prefixCls }}-time-confirm\" thyButton=\"primary\" thySize=\"xs\" class=\"confirm\" (click)=\"confirmPickTime()\">\n {{ locale().ok }}\n </button>\n </div>\n}\n", dependencies: [{ kind: "component", type: ThyButton, selector: "thy-button,[thy-button],[thyButton]", inputs: ["thyButton", "thyType", "thyLoading", "thyLoadingText", "thySize", "thyIcon", "thyBlock"] }, { kind: "pipe", type: DecimalPipe, name: "number" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
222
- }
223
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ThyTimePanel, decorators: [{
224
- type: Component,
225
- args: [{ selector: 'thy-time-picker-panel', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
226
- {
227
- provide: NG_VALUE_ACCESSOR,
228
- multi: true,
229
- useExisting: forwardRef(() => ThyTimePanel)
230
- }
231
- ], host: {
232
- class: 'thy-time-picker-panel',
233
- '[class.thy-time-picker-panel-has-bottom-operation]': `thyShowOperations`,
234
- '[class.thy-time-picker-panel-columns-2]': `showColumnCount === 2`,
235
- '[class.thy-time-picker-panel-columns-3]': `showColumnCount === 3`
236
- }, standalone: true, imports: [ThyButton, DecimalPipe], template: "<div class=\"{{ prefixCls }}-content\">\n @if (showHourColumn) {\n <ul #hourListElement class=\"{{ prefixCls }}-time-column {{ prefixCls }}-hour-column\">\n @for (time of hourRange; track $index; let i = $index) {\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"hour === time.value\"\n (click)=\"pickHours(time, i)\">\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n }\n </ul>\n }\n @if (showMinuteColumn) {\n <ul #minuteListElement class=\"{{ prefixCls }}-time-column {{ prefixCls }}-minute-column\">\n @for (time of minuteRange; track $index; let i = $index) {\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"minute === time.value\"\n (click)=\"pickMinutes(time, i)\">\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n }\n </ul>\n }\n @if (showSecondColumn) {\n <ul #secondListElement class=\"{{ prefixCls }}-time-column {{ prefixCls }}-second-column\">\n @for (time of secondRange; track $index; let i = $index) {\n <li\n class=\"{{ prefixCls }}-time-column-cell\"\n [class.thy-time-picker-panel-time-column-cell-selected]=\"second === time.value\"\n (click)=\"pickSeconds(time, i)\">\n <span class=\"{{ prefixCls }}-time-column-cell-inner\">{{ time.value | number: '2.0-0' }}</span>\n </li>\n }\n </ul>\n }\n</div>\n\n@if (thyShowOperations) {\n <div class=\"{{ prefixCls }}-bottom-operation\">\n @if (thyShowSelectNow) {\n <a href=\"javascript:;\" class=\"{{ prefixCls }}-time-now\" (click)=\"selectNow()\">{{ locale().now }}</a>\n }\n <button class=\"{{ prefixCls }}-time-confirm\" thyButton=\"primary\" thySize=\"xs\" class=\"confirm\" (click)=\"confirmPickTime()\">\n {{ locale().ok }}\n </button>\n </div>\n}\n" }]
237
- }], propDecorators: { hourListRef: [{
238
- type: ViewChild,
239
- args: ['hourListElement', { static: false }]
240
- }], minuteListRef: [{
241
- type: ViewChild,
242
- args: ['minuteListElement', { static: false }]
243
- }], secondListRef: [{
244
- type: ViewChild,
245
- args: ['secondListElement', { static: false }]
246
- }], thyFormat: [{
247
- type: Input
248
- }], thyHourStep: [{
249
- type: Input
250
- }], thyMinuteStep: [{
251
- type: Input
252
- }], thySecondStep: [{
253
- type: Input
254
- }], thyShowSelectNow: [{
255
- type: Input,
256
- args: [{ transform: coerceBooleanProperty }]
257
- }], thyShowOperations: [{
258
- type: Input,
259
- args: [{ transform: coerceBooleanProperty }]
260
- }], thyPickChange: [{
261
- type: Output
262
- }], thyClosePanel: [{
263
- type: Output
264
- }] } });
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1waWNrZXItcGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RpbWUtcGlja2VyL3RpbWUtcGlja2VyLXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3NyYy90aW1lLXBpY2tlci90aW1lLXBpY2tlci1wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUdOLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBdUIsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUUzRTs7O0dBR0c7QUFxQkgsTUFBTSxPQUFPLFlBQVk7SUFwQnpCO1FBcUJZLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLFdBQU0sR0FBZ0MsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBNEJqRTs7O1dBR0c7UUFDTSxnQkFBVyxHQUFXLENBQUMsQ0FBQztRQUVqQzs7O1dBR0c7UUFDTSxrQkFBYSxHQUFXLENBQUMs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RSxxQkFBcUIsRUFBRTtnQkFNakMsYUFBYTtzQkFBdEIsTUFBTTtnQkFNRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpZ25hbCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUaHlCdXR0b24gfSBmcm9tICduZ3gtdGV0aHlzL2J1dHRvbic7XG5pbXBvcnQgeyByZXFBbmltRnJhbWUgfSBmcm9tICduZ3gtdGV0aHlzL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0TG9jYWxlLCBUaHlUaW1lUGlja2VyTG9jYWxlIH0gZnJvbSAnbmd4LXRldGh5cy9pMThuJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgaXNWYWxpZCwgVGlueURhdGUgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuXG4vKipcbiAqIOaXtumXtOmAieaLqemdouadv+e7hOS7tlxuICogQG5hbWUgdGh5LXRpbWUtcGlja2VyLXBhbmVsXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGh5LXRpbWUtcGlja2VyLXBhbmVsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGltZS1waWNrZXItcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVGh5VGltZVBhbmVsKVxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndGh5LXRpbWUtcGlja2VyLXBhbmVsJyxcbiAgICAgICAgJ1tjbGFzcy50aHktdGltZS1waWNrZXItcGFuZWwtaGFzLWJvdHRvbS1vcGVyYXRpb25dJzogYHRoeVNob3dPcGVyYXRpb25zYCxcbiAgICAgICAgJ1tjbGFzcy50aHktdGltZS1waWNrZXItcGFuZWwtY29sdW1ucy0yXSc6IGBzaG93Q29sdW1uQ291bnQgPT09IDJgLFxuICAgICAgICAnW2NsYXNzLnRoeS10aW1lLXBpY2tlci1wYW5lbC1jb2x1bW5zLTNdJzogYHNob3dDb2x1bW5Db3VudCA9PT0gM2BcbiAgICB9LFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RoeUJ1dHRvbiwgRGVjaW1hbFBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIFRoeVRpbWVQYW5lbCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgbG9jYWxlOiBTaWduYWw8VGh5VGltZVBpY2tlckxvY2FsZT4gPSBpbmplY3RMb2NhbGUoJ3RpbWVQaWNrZXInKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2hvdXJMaXN0RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBob3VyTGlzdFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICBAVmlld0NoaWxkKCdtaW51dGVMaXN0RWxlbWVudCcsIHsgc3RhdGljOiBmYWxzZSB9KSBtaW51dGVMaXN0UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ3NlY29uZExpc3RFbGVtZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pIHNlY29uZExpc3RSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICog5bGV56S655qE5pel5pyf5qC85byP77yM5pSv5oyBICdISDptbTpzcycgfCAnSEg6bW0nIHwgJ21tOnNzJ1xuICAgICAqIEB0eXBlIHN0cmluZ1xuICAgICAqIEBkZWZhdWx0IEhIOm1tOnNzXG4gICAgICovXG4gICAgQElucHV0KCkgc2V0IHRoeUZvcm1hdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0U2V0ID0gbmV3IFNldCh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnNob3dIb3VyQ29sdW1uID0gZm9ybWF0U2V0LmhhcygnSCcpIHx8IGZvcm1hdFNldC5oYXMoJ2gnKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd01pbnV0ZUNvbHVtbiA9IGZvcm1hdFNldC5oYXMoJ20nKTtcbiAgICAgICAgICAgIHRoaXMuc2hvd1NlY29uZENvbHVtbiA9IGZvcm1hdFNldC5oYXMoJ3MnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0hvdXJDb2x1bW4gPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zaG93TWludXRlQ29sdW1uID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2hvd1NlY29uZENvbHVtbiA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zaG93Q29sdW1uQ291bnQgPSBbdGhpcy5zaG93SG91ckNvbHVtbiwgdGhpcy5zaG93TWludXRlQ29sdW1uLCB0aGlzLnNob3dTZWNvbmRDb2x1bW5dLmZpbHRlcihtID0+IG0pLmxlbmd0aDtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5bCP5pe26Ze06ZqU5q2l6ZW/XG4gICAgICogQHR5cGUgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5SG91clN0ZXA6IG51bWJlciA9IDE7XG5cbiAgICAvKipcbiAgICAgKiDliIbpkp/pl7TpmpTmraXplb9cbiAgICAgKiBAdHlwZSBudW1iZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0aHlNaW51dGVTdGVwOiBudW1iZXIgPSAxO1xuXG4gICAgLyoqXG4gICAgICog56eS6Ze06ZqU5q2l6ZW/XG4gICAgICogQHR5cGUgbnVtYmVyXG4gICAgICovXG4gICAgQElucHV0KCkgdGh5U2Vjb25kU3RlcDogbnVtYmVyID0gMTtcblxuICAgIC8qKlxuICAgICAqIOWxleekuumAieaLqeatpOWIu1xuICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlTaG93U2VsZWN0Tm93ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIOWxleekuuW6lemDqOaTjeS9nFxuICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9KSB0aHlTaG93T3BlcmF0aW9ucyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiDpgInmi6nml7bpl7Top6blj5HnmoTkuovku7ZcbiAgICAgKiBAdHlwZSBFdmVudEVtaXR0ZXI8RGF0ZT5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdGh5UGlja0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcblxuICAgIC8qKlxuICAgICAqIOWFs+mXremdouadv+S6i+S7tlxuICAgICAqIEB0eXBlIEV2ZW50RW1pdHRlcjx2b2lkPlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0aHlDbG9zZVBhbmVsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLy8gbWFyZ2luLXRvcCArIDFweCBib3JkZXJcbiAgICBTQ1JPTExfT0ZGU0VUX1NQQUNJTkcgPSA1O1xuXG4gICAgU0NST0xMX0RFRkFVTFRfRFVSQVRJT04gPSAxMjA7XG5cbiAgICBwcmVmaXhDbHMgPSAndGh5LXRpbWUtcGlja2VyLXBhbmVsJztcblxuICAgIGhvdXJSYW5nZTogUmVhZG9ubHlBcnJheTx7IHZhbHVlOiBudW1iZXI7IGRpc2FibGVkOiBib29sZWFuIH0+ID0gW107XG5cbiAgICBtaW51dGVSYW5nZTogUmVhZG9ubHlBcnJheTx7IHZhbHVlOiBudW1iZXI7IGRpc2FibGVkOiBib29sZWFuIH0+ID0gW107XG5cbiAgICBzZWNvbmRSYW5nZTogUmVhZG9ubHlBcnJheTx7IHZhbHVlOiBudW1iZXI7IGRpc2FibGVkOiBib29sZWFuIH0+ID0gW107XG5cbiAgICBzaG93SG91ckNvbHVtbiA9IHRydWU7XG5cbiAgICBzaG93TWludXRlQ29sdW1uID0gdHJ1ZTtcblxuICAgIHNob3dTZWNvbmRDb2x1bW4gPSB0cnVlO1xuXG4gICAgc2hvd0NvbHVtbkNvdW50OiBudW1iZXIgPSAzO1xuXG4gICAgdmFsdWU6IERhdGU7XG5cbiAgICBob3VyOiBudW1iZXI7XG5cbiAgICBtaW51dGU6IG51bWJlcjtcblxuICAgIHNlY29uZDogbnVtYmVyO1xuXG4gICAgaW5pdGlhbFNjcm9sbFBvc2l0aW9uOiBib29sZWFuO1xuXG4gICAgb25WYWx1ZUNoYW5nZUZuOiAodmFsOiBEYXRlKSA9PiB2b2lkID0gKCkgPT4gdm9pZCAwO1xuXG4gICAgb25Ub3VjaGVkRm46ICgpID0+IHZvaWQgPSAoKSA9PiB2b2lkIDA7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nZW5lcmF0ZVRpbWVSYW5nZSgpO1xuICAgICAgICB0aGlzLmluaXRpYWxWYWx1ZSgpO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbFNjcm9sbFBvc2l0aW9uID0gdHJ1ZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2VuZXJhdGVUaW1lUmFuZ2UoKSB7XG4gICAgICAgIHRoaXMuaG91clJhbmdlID0gdGhpcy5idWlsZFRpbWVSYW5nZSgyNCwgdGhpcy50aHlIb3VyU3RlcCk7XG4gICAgICAgIHRoaXMubWludXRlUmFuZ2UgPSB0aGlzLmJ1aWxkVGltZVJhbmdlKDYwLCB0aGlzLnRoeU1pbnV0ZVN0ZXApO1xuICAgICAgICB0aGlzLnNlY29uZFJhbmdlID0gdGhpcy5idWlsZFRpbWVSYW5nZSg2MCwgdGhpcy50aHlTZWNvbmRTdGVwKTtcbiAgICB9XG5cbiAgICBwaWNrSG91cnMoaG91cnM6IHsgdmFsdWU6IG51bWJlcjsgZGlzYWJsZWQ6IGJvb2xlYW4gfSwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnZhbHVlLnNldEhvdXJzKGhvdXJzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5ob3VyID0gaG91cnMudmFsdWU7XG4gICAgICAgIHRoaXMudGh5UGlja0NoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvKHRoaXMuaG91ckxpc3RSZWYubmF0aXZlRWxlbWVudCwgaW5kZXgpO1xuICAgIH1cblxuICAgIHBpY2tNaW51dGVzKG1pbnV0ZXM6IHsgdmFsdWU6IG51bWJlcjsgZGlzYWJsZWQ6IGJvb2xlYW4gfSwgaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLnZhbHVlLnNldE1pbnV0ZXMobWludXRlcy52YWx1ZSk7XG4gICAgICAgIHRoaXMubWludXRlID0gbWludXRlcy52YWx1ZTtcbiAgICAgICAgdGhpcy50aHlQaWNrQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG8odGhpcy5taW51dGVMaXN0UmVmLm5hdGl2ZUVsZW1lbnQsIGluZGV4KTtcbiAgICB9XG5cbiAgICBwaWNrU2Vjb25kcyhzZWNvbmRzOiB7IHZhbHVlOiBudW1iZXI7IGRpc2FibGVkOiBib29sZWFuIH0sIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy52YWx1ZS5zZXRTZWNvbmRzKHNlY29uZHMudmFsdWUpO1xuICAgICAgICB0aGlzLnNlY29uZCA9IHNlY29uZHMudmFsdWU7XG4gICAgICAgIHRoaXMudGh5UGlja0NoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLnNjcm9sbFRvKHRoaXMuc2Vjb25kTGlzdFJlZi5uYXRpdmVFbGVtZW50LCBpbmRleCk7XG4gICAgfVxuXG4gICAgc2VsZWN0Tm93KCkge1xuICAgICAgICB0aGlzLnZhbHVlID0gbmV3IFRpbnlEYXRlKCk/Lm5hdGl2ZURhdGU7XG4gICAgICAgIHRoaXMuc2V0SE1TUHJvcGVydHkoKTtcbiAgICAgICAgdGhpcy50aHlQaWNrQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMudGh5Q2xvc2VQYW5lbC5lbWl0KCk7XG4gICAgfVxuXG4gICAgY29uZmlybVBpY2tUaW1lKCkge1xuICAgICAgICB0aGlzLm9uVmFsdWVDaGFuZ2VGbih0aGlzLnZhbHVlIHx8IG5ldyBUaW55RGF0ZSgpPy5uYXRpdmVEYXRlKTtcbiAgICAgICAgdGhpcy50aHlDbG9zZVBhbmVsLmVtaXQoKTtcbiAgICB9XG5cbiAgICBzY3JvbGxUbyhjb250YWluZXI6IEhUTUxFbGVtZW50LCBpbmRleDogbnVtYmVyID0gMCwgZHVyYXRpb246IG51bWJlciA9IHRoaXMuU0NST0xMX0RFRkFVTFRfRFVSQVRJT04pIHtcbiAgICAgICAgY29uc3Qgb2Zmc2V0VG9wID0gKGNvbnRhaW5lci5jaGlsZHJlbltpbmRleF0gYXMgSFRNTEVsZW1lbnQpLm9mZnNldFRvcCAtIHRoaXMuU0NST0xMX09GRlNFVF9TUEFDSU5HO1xuICAgICAgICB0aGlzLnJ1blNjcm9sbEFuaW1hdGlvbkZyYW1lKGNvbnRhaW5lciwgb2Zmc2V0VG9wLCBkdXJhdGlvbik7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSB8IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUgJiYgaXNWYWxpZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBuZXcgVGlueURhdGUodmFsdWUpPy5uYXRpdmVEYXRlO1xuICAgICAgICAgICAgdGhpcy5zZXRITVNQcm9wZXJ0eSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbml0aWFsVmFsdWUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmF1dG9TY3JvbGwodGhpcy5pbml0aWFsU2Nyb2xsUG9zaXRpb24gPyB0aGlzLlNDUk9MTF9ERUZBVUxUX0RVUkFUSU9OIDogMCk7XG5cbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBEYXRlKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZUZuID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdGlhbFZhbHVlKCkge1xuICAgICAgICB0aGlzLmhvdXIgPSAwO1xuICAgICAgICB0aGlzLm1pbnV0ZSA9IDA7XG4gICAgICAgIHRoaXMuc2Vjb25kID0gMDtcbiAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBUaW55RGF0ZSgpLnNldEhtcygwLCAwLCAwKS5uYXRpdmVEYXRlO1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRUaW1lUmFuZ2UobGVuZ3RoOiBudW1iZXIsIHN0ZXA6IG51bWJlciA9IDEsIHN0YXJ0OiBudW1iZXIgPSAwLCBkaXNhYmxlczogbnVtYmVyW10gPSBbXSkge1xuICAgICAgICByZXR1cm4gbmV3IEFycmF5KE1hdGguY2VpbChsZW5ndGggLyBzdGVwKSkuZmlsbCgwKS5tYXAoKF8sIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gKGkgKyBzdGFydCkgKiBzdGVwO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGRpc2FibGVzLmluZGV4T2YodmFsdWUpID4gLTFcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0SE1TUHJvcGVydHkoKSB7XG4gICAgICAgIHRoaXMuaG91ciA9IHRoaXMudmFsdWUuZ2V0SG91cnMoKTtcbiAgICAgICAgdGhpcy5taW51dGUgPSB0aGlzLnZhbHVlLmdldE1pbnV0ZXMoKTtcbiAgICAgICAgdGhpcy5zZWNvbmQgPSB0aGlzLnZhbHVlLmdldFNlY29uZHMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0U2Nyb2xsUG9zaXRpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLmhvdXJMaXN0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmhvdXJMaXN0UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsVG9wID0gMDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5taW51dGVMaXN0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLm1pbnV0ZUxpc3RSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgPSAwO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnNlY29uZExpc3RSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuc2Vjb25kTGlzdFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0aWFsU2Nyb2xsUG9zaXRpb24gPSBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJ1blNjcm9sbEFuaW1hdGlvbkZyYW1lKGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsIHRvOiBudW1iZXIsIGR1cmF0aW9uOiBudW1iZXIgPSB0aGlzLlNDUk9MTF9ERUZBVUxUX0RVUkFUSU9OKSB7XG4gICAgICAgIGlmIChkdXJhdGlvbiA8PSAwKSB7XG4gICAgICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wID0gdG87XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb2Zmc2V0ID0gdG8gLSBjb250YWluZXIuc2Nyb2xsVG9wO1xuICAgICAgICBjb25zdCBmcmFtZSA9IChvZmZzZXQgLyBkdXJhdGlvbikgKiAxMDtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgICAgcmVxQW5pbUZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb250YWluZXIuc2Nyb2xsVG9wICs9IGZyYW1lO1xuICAgICAgICAgICAgICAgIGlmIChjb250YWluZXIuc2Nyb2xsVG9wID09PSB0bykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMucnVuU2Nyb2xsQW5pbWF0aW9uRnJhbWUoY29udGFpbmVyLCB0bywgZHVyYXRpb24gLSAxMCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhdXRvU2Nyb2xsKGR1cmF0aW9uOiBudW1iZXIgPSB0aGlzLlNDUk9MTF9ERUZBVUxUX0RVUkFUSU9OKSB7XG4gICAgICAgIGlmICh0aGlzLmhvdXJMaXN0UmVmKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvKFxuICAgICAgICAgICAgICAgIHRoaXMuaG91ckxpc3RSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICB0aGlzLmhvdXJSYW5nZS5maW5kSW5kZXgobSA9PiBtLnZhbHVlID09PSB0aGlzLmhvdXIpLFxuICAgICAgICAgICAgICAgIGR1cmF0aW9uXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1pbnV0ZUxpc3RSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG8oXG4gICAgICAgICAgICAgICAgdGhpcy5taW51dGVMaXN0UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgdGhpcy5taW51dGVSYW5nZS5maW5kSW5kZXgobSA9PiBtLnZhbHVlID09PSB0aGlzLm1pbnV0ZSksXG4gICAgICAgICAgICAgICAgZHVyYXRpb25cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc2Vjb25kTGlzdFJlZikge1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUbyhcbiAgICAgICAgICAgICAgICB0aGlzLnNlY29uZExpc3RSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICB0aGlzLnNlY29uZFJhbmdlLmZpbmRJbmRleChtID0+IG0udmFsdWUgPT09IHRoaXMuc2Vjb25kKSxcbiAgICAgICAgICAgICAgICBkdXJhdGlvblxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICAvLyDlhbPpl63pnaLmnb/ml7bmnIkgMC4ycyDnmoTliqjnlLvvvIzmiYDku6Xlu7bov58gMjAwbXMg5YaN6YeN572u5rua5Yqo5L2N572uXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZXNldFNjcm9sbFBvc2l0aW9uKCk7XG4gICAgICAgIH0sIDIwMCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInt7IHByZWZpeENscyB9fS1jb250ZW50XCI+XG4gIEBpZiAoc2hvd0hvdXJDb2x1bW4pIHtcbiAgICA8dWwgI2hvdXJMaXN0RWxlbWVudCBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLWNvbHVtbiB7eyBwcmVmaXhDbHMgfX0taG91ci1jb2x1bW5cIj5cbiAgICAgIEBmb3IgKHRpbWUgb2YgaG91clJhbmdlOyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgIDxsaVxuICAgICAgICAgIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uLWNlbGxcIlxuICAgICAgICAgIFtjbGFzcy50aHktdGltZS1waWNrZXItcGFuZWwtdGltZS1jb2x1bW4tY2VsbC1zZWxlY3RlZF09XCJob3VyID09PSB0aW1lLnZhbHVlXCJcbiAgICAgICAgICAoY2xpY2spPVwicGlja0hvdXJzKHRpbWUsIGkpXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ7eyBwcmVmaXhDbHMgfX0tdGltZS1jb2x1bW4tY2VsbC1pbm5lclwiPnt7IHRpbWUudmFsdWUgfCBudW1iZXI6ICcyLjAtMCcgfX08L3NwYW4+XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgPC91bD5cbiAgfVxuICBAaWYgKHNob3dNaW51dGVDb2x1bW4pIHtcbiAgICA8dWwgI21pbnV0ZUxpc3RFbGVtZW50IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uIHt7IHByZWZpeENscyB9fS1taW51dGUtY29sdW1uXCI+XG4gICAgICBAZm9yICh0aW1lIG9mIG1pbnV0ZVJhbmdlOyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgIDxsaVxuICAgICAgICAgIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uLWNlbGxcIlxuICAgICAgICAgIFtjbGFzcy50aHktdGltZS1waWNrZXItcGFuZWwtdGltZS1jb2x1bW4tY2VsbC1zZWxlY3RlZF09XCJtaW51dGUgPT09IHRpbWUudmFsdWVcIlxuICAgICAgICAgIChjbGljayk9XCJwaWNrTWludXRlcyh0aW1lLCBpKVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LXRpbWUtY29sdW1uLWNlbGwtaW5uZXJcIj57eyB0aW1lLnZhbHVlIHwgbnVtYmVyOiAnMi4wLTAnIH19PC9zcGFuPlxuICAgICAgICA8L2xpPlxuICAgICAgfVxuICAgIDwvdWw+XG4gIH1cbiAgQGlmIChzaG93U2Vjb25kQ29sdW1uKSB7XG4gICAgPHVsICNzZWNvbmRMaXN0RWxlbWVudCBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLWNvbHVtbiB7eyBwcmVmaXhDbHMgfX0tc2Vjb25kLWNvbHVtblwiPlxuICAgICAgQGZvciAodGltZSBvZiBzZWNvbmRSYW5nZTsgdHJhY2sgJGluZGV4OyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICA8bGlcbiAgICAgICAgICBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLWNvbHVtbi1jZWxsXCJcbiAgICAgICAgICBbY2xhc3MudGh5LXRpbWUtcGlja2VyLXBhbmVsLXRpbWUtY29sdW1uLWNlbGwtc2VsZWN0ZWRdPVwic2Vjb25kID09PSB0aW1lLnZhbHVlXCJcbiAgICAgICAgICAoY2xpY2spPVwicGlja1NlY29uZHModGltZSwgaSlcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLWNvbHVtbi1jZWxsLWlubmVyXCI+e3sgdGltZS52YWx1ZSB8IG51bWJlcjogJzIuMC0wJyB9fTwvc3Bhbj5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICA8L3VsPlxuICB9XG48L2Rpdj5cblxuQGlmICh0aHlTaG93T3BlcmF0aW9ucykge1xuICA8ZGl2IGNsYXNzPVwie3sgcHJlZml4Q2xzIH19LWJvdHRvbS1vcGVyYXRpb25cIj5cbiAgICBAaWYgKHRoeVNob3dTZWxlY3ROb3cpIHtcbiAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLW5vd1wiIChjbGljayk9XCJzZWxlY3ROb3coKVwiPnt7IGxvY2FsZSgpLm5vdyB9fTwvYT5cbiAgICB9XG4gICAgPGJ1dHRvbiBjbGFzcz1cInt7IHByZWZpeENscyB9fS10aW1lLWNvbmZpcm1cIiB0aHlCdXR0b249XCJwcmltYXJ5XCIgdGh5U2l6ZT1cInhzXCIgY2xhc3M9XCJjb25maXJtXCIgKGNsaWNrKT1cImNvbmZpcm1QaWNrVGltZSgpXCI+XG4gICAgICB7eyBsb2NhbGUoKS5vayB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbn1cbiJdfQ==