ngx-tethys 18.0.0 → 18.0.2

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 (614) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/action/styles/action.scss +1 -1
  3. package/action/styles/mixin.scss +8 -3
  4. package/alert/styles/mixin.scss +3 -10
  5. package/back-top/examples/custom/custom.scss +3 -1
  6. package/badge/examples/basic/basic.component.scss +3 -1
  7. package/badge/examples/custom-color/custom-color.component.scss +3 -1
  8. package/badge/examples/overflow/overflow.component.scss +3 -1
  9. package/badge/examples/state-point/state-point.component.scss +3 -1
  10. package/badge/examples/type/type.component.scss +3 -1
  11. package/badge/styles/badge.scss +1 -1
  12. package/badge/styles/mixin.scss +2 -16
  13. package/button/styles/button.scss +8 -7
  14. package/button/styles/mixin.scss +22 -15
  15. package/carousel/styles/variables.scss +1 -1
  16. package/cascader/cascader.service.d.ts +1 -1
  17. package/cascader/styles/cascader.scss +3 -6
  18. package/collapse/examples/custom/custom.component.scss +3 -1
  19. package/color-picker/parts/inputs/inputs.component.d.ts +1 -0
  20. package/color-picker/styles/inputs.scss +8 -1
  21. package/color-picker/styles/saturation.scss +3 -3
  22. package/core/debounce-time.d.ts +8 -0
  23. package/core/index.d.ts +1 -0
  24. package/date-picker/styles/decade-panel.scss +1 -1
  25. package/date-picker/styles/mixin.scss +1 -1
  26. package/date-picker/styles/picker.scss +3 -0
  27. package/date-picker/styles/variables.scss +1 -4
  28. package/date-picker/styles/year-panel.scss +1 -1
  29. package/drag-drop/examples/tree-drag/tree-drag.component.scss +0 -1
  30. package/dropdown/styles/dropdown.scss +1 -1
  31. package/esm2022/action/action.component.mjs +4 -4
  32. package/esm2022/action/action.module.mjs +4 -4
  33. package/esm2022/action/actions.component.mjs +3 -3
  34. package/esm2022/affix/affix.component.mjs +4 -4
  35. package/esm2022/affix/affix.module.mjs +4 -4
  36. package/esm2022/alert/alert.component.mjs +3 -3
  37. package/esm2022/alert/alert.directive.mjs +3 -3
  38. package/esm2022/alert/alert.module.mjs +4 -4
  39. package/esm2022/anchor/anchor-link.component.mjs +4 -4
  40. package/esm2022/anchor/anchor.component.mjs +4 -4
  41. package/esm2022/anchor/anchor.module.mjs +4 -4
  42. package/esm2022/arrow-switcher/arrow-switcher.component.mjs +3 -3
  43. package/esm2022/arrow-switcher/module.mjs +4 -4
  44. package/esm2022/autocomplete/autocomplete.component.mjs +4 -4
  45. package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +3 -3
  46. package/esm2022/autocomplete/module.mjs +4 -4
  47. package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +3 -3
  48. package/esm2022/autocomplete/overlay/autocomplete.service.mjs +3 -3
  49. package/esm2022/avatar/avatar-list/avatar-list.component.mjs +3 -3
  50. package/esm2022/avatar/avatar.component.mjs +4 -4
  51. package/esm2022/avatar/avatar.module.mjs +4 -4
  52. package/esm2022/avatar/avatar.pipe.mjs +9 -9
  53. package/esm2022/avatar/avatar.service.mjs +3 -3
  54. package/esm2022/back-top/back-top.component.mjs +3 -3
  55. package/esm2022/back-top/back-top.module.mjs +4 -4
  56. package/esm2022/badge/badge.component.mjs +3 -3
  57. package/esm2022/badge/badge.module.mjs +4 -4
  58. package/esm2022/breadcrumb/breadcrumb-item.component.mjs +4 -4
  59. package/esm2022/breadcrumb/breadcrumb.component.mjs +3 -3
  60. package/esm2022/breadcrumb/module.mjs +4 -4
  61. package/esm2022/button/button-group.component.mjs +3 -3
  62. package/esm2022/button/button-icon.component.mjs +3 -3
  63. package/esm2022/button/button.component.mjs +4 -4
  64. package/esm2022/button/button.module.mjs +4 -4
  65. package/esm2022/calendar/calendar-cells.mjs +6 -6
  66. package/esm2022/calendar/calendar-header.component.mjs +3 -3
  67. package/esm2022/calendar/calendar.component.mjs +3 -3
  68. package/esm2022/calendar/module.mjs +4 -4
  69. package/esm2022/card/card.component.mjs +3 -3
  70. package/esm2022/card/card.module.mjs +4 -4
  71. package/esm2022/card/content.component.mjs +3 -3
  72. package/esm2022/card/header.component.mjs +3 -3
  73. package/esm2022/carousel/carousel-item.directive.mjs +4 -4
  74. package/esm2022/carousel/carousel.component.mjs +7 -7
  75. package/esm2022/carousel/carousel.service.mjs +4 -4
  76. package/esm2022/carousel/module.mjs +4 -4
  77. package/esm2022/cascader/cascader-li.component.mjs +3 -3
  78. package/esm2022/cascader/cascader-search-option.component.mjs +6 -6
  79. package/esm2022/cascader/cascader.component.mjs +7 -7
  80. package/esm2022/cascader/cascader.service.mjs +9 -21
  81. package/esm2022/cascader/module.mjs +4 -4
  82. package/esm2022/checkbox/checkbox.component.mjs +3 -3
  83. package/esm2022/checkbox/module.mjs +4 -4
  84. package/esm2022/collapse/collapse-item.component.mjs +4 -4
  85. package/esm2022/collapse/collapse.component.mjs +3 -3
  86. package/esm2022/collapse/module.mjs +4 -4
  87. package/esm2022/color-picker/color-picker-custom-panel.component.mjs +3 -3
  88. package/esm2022/color-picker/color-picker-panel.component.mjs +3 -3
  89. package/esm2022/color-picker/color-picker.component.mjs +4 -4
  90. package/esm2022/color-picker/coordinates.directive.mjs +3 -3
  91. package/esm2022/color-picker/helpers/rgba.class.mjs +1 -1
  92. package/esm2022/color-picker/module.mjs +4 -4
  93. package/esm2022/color-picker/parts/alpha/alpha.component.mjs +3 -3
  94. package/esm2022/color-picker/parts/hue/hue.component.mjs +3 -3
  95. package/esm2022/color-picker/parts/indicator/indicator.component.mjs +3 -3
  96. package/esm2022/color-picker/parts/inputs/inputs.component.mjs +20 -10
  97. package/esm2022/color-picker/parts/saturation/saturation.component.mjs +3 -3
  98. package/esm2022/comment/comment-actions.directive.mjs +3 -3
  99. package/esm2022/comment/comment-content.directive.mjs +3 -3
  100. package/esm2022/comment/comment.component.mjs +3 -3
  101. package/esm2022/comment/comment.module.mjs +4 -4
  102. package/esm2022/copy/copy.directive.mjs +3 -3
  103. package/esm2022/copy/module.mjs +4 -4
  104. package/esm2022/core/click-positioner.mjs +3 -3
  105. package/esm2022/core/debounce-time.mjs +11 -0
  106. package/esm2022/core/index.mjs +2 -1
  107. package/esm2022/core/overlay/abstract-overlay-container.mjs +1 -1
  108. package/esm2022/core/overlay/overlay.directive.mjs +1 -1
  109. package/esm2022/core/overlay/portal-directives.mjs +3 -3
  110. package/esm2022/core/scroll.mjs +4 -4
  111. package/esm2022/core/store/store.mjs +3 -3
  112. package/esm2022/core/translate.mjs +3 -3
  113. package/esm2022/core/update-host-class.service.mjs +3 -3
  114. package/esm2022/date-picker/abstract-picker.component.mjs +3 -3
  115. package/esm2022/date-picker/abstract-picker.directive.mjs +4 -4
  116. package/esm2022/date-picker/base-picker.component.mjs +4 -4
  117. package/esm2022/date-picker/date-helper.service.mjs +3 -3
  118. package/esm2022/date-picker/date-picker.component.mjs +3 -3
  119. package/esm2022/date-picker/date-picker.directive.mjs +3 -3
  120. package/esm2022/date-picker/date-picker.module.mjs +4 -4
  121. package/esm2022/date-picker/date-picker.service.mjs +3 -3
  122. package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +3 -3
  123. package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +3 -3
  124. package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +3 -3
  125. package/esm2022/date-picker/lib/date/date-header.component.mjs +3 -3
  126. package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +3 -3
  127. package/esm2022/date-picker/lib/date/date-table.component.mjs +4 -4
  128. package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +3 -3
  129. package/esm2022/date-picker/lib/decade/decade-header.component.mjs +3 -3
  130. package/esm2022/date-picker/lib/decade/decade-table.component.mjs +3 -3
  131. package/esm2022/date-picker/lib/lib-packer.module.mjs +4 -4
  132. package/esm2022/date-picker/lib/month/month-header.component.mjs +3 -3
  133. package/esm2022/date-picker/lib/month/month-table.component.mjs +3 -3
  134. package/esm2022/date-picker/lib/popups/date-popup.component.mjs +4 -4
  135. package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +3 -3
  136. package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +3 -3
  137. package/esm2022/date-picker/lib/year/year-header.component.mjs +3 -3
  138. package/esm2022/date-picker/lib/year/year-table.component.mjs +3 -3
  139. package/esm2022/date-picker/month-picker.component.mjs +4 -4
  140. package/esm2022/date-picker/picker.component.mjs +5 -5
  141. package/esm2022/date-picker/picker.pipes.mjs +12 -12
  142. package/esm2022/date-picker/picker.validators.mjs +6 -6
  143. package/esm2022/date-picker/quarter-picker.component.mjs +4 -4
  144. package/esm2022/date-picker/range-picker.component.mjs +4 -4
  145. package/esm2022/date-picker/range-picker.directive.mjs +3 -3
  146. package/esm2022/date-picker/week-picker.component.mjs +4 -4
  147. package/esm2022/date-picker/year-picker.component.mjs +4 -4
  148. package/esm2022/date-range/date-range.component.mjs +4 -4
  149. package/esm2022/date-range/module.mjs +4 -4
  150. package/esm2022/date-range/optional-dates/optional-dates.component.mjs +3 -3
  151. package/esm2022/dialog/body/dialog-body.component.mjs +3 -3
  152. package/esm2022/dialog/confirm/confirm.component.mjs +3 -3
  153. package/esm2022/dialog/dialog-container.component.mjs +3 -3
  154. package/esm2022/dialog/dialog.module.mjs +4 -4
  155. package/esm2022/dialog/dialog.service.mjs +3 -3
  156. package/esm2022/dialog/footer/dialog-footer.component.mjs +3 -3
  157. package/esm2022/dialog/header/dialog-header.component.mjs +3 -3
  158. package/esm2022/divider/divider.component.mjs +3 -3
  159. package/esm2022/divider/divider.module.mjs +4 -4
  160. package/esm2022/dot/dot.component.mjs +4 -4
  161. package/esm2022/dot/dot.module.mjs +4 -4
  162. package/esm2022/drag-drop/drag-content.directive.mjs +4 -4
  163. package/esm2022/drag-drop/drag-drop.service.mjs +3 -3
  164. package/esm2022/drag-drop/drag-handle.directive.mjs +4 -4
  165. package/esm2022/drag-drop/drag.directive.mjs +3 -3
  166. package/esm2022/drag-drop/drop-container.directive.mjs +3 -3
  167. package/esm2022/drag-drop/module.mjs +4 -4
  168. package/esm2022/dropdown/dropdown-active.directive.mjs +4 -4
  169. package/esm2022/dropdown/dropdown-menu-item.directive.mjs +21 -21
  170. package/esm2022/dropdown/dropdown-menu.component.mjs +12 -12
  171. package/esm2022/dropdown/dropdown-submenu.component.mjs +4 -4
  172. package/esm2022/dropdown/dropdown.directive.mjs +3 -3
  173. package/esm2022/dropdown/module.mjs +4 -4
  174. package/esm2022/empty/empty.component.mjs +3 -3
  175. package/esm2022/empty/empty.config.mjs +3 -3
  176. package/esm2022/empty/empty.module.mjs +4 -4
  177. package/esm2022/flexible-text/flexible-text.component.mjs +3 -3
  178. package/esm2022/flexible-text/flexible-text.module.mjs +4 -4
  179. package/esm2022/form/form-group-error/form-group-error.component.mjs +3 -3
  180. package/esm2022/form/form-group-label.directive.mjs +3 -3
  181. package/esm2022/form/form-group.component.mjs +4 -4
  182. package/esm2022/form/form-submit.directive.mjs +3 -3
  183. package/esm2022/form/form-validator-loader.mjs +3 -3
  184. package/esm2022/form/form-validator.service.mjs +3 -3
  185. package/esm2022/form/form.directive.mjs +3 -3
  186. package/esm2022/form/from-group-footer/form-group-footer.component.mjs +4 -4
  187. package/esm2022/form/module.mjs +4 -4
  188. package/esm2022/form/validator/confirm-validator.directive.mjs +3 -3
  189. package/esm2022/form/validator/max-validator.directive.mjs +3 -3
  190. package/esm2022/form/validator/min-validator.directive.mjs +3 -3
  191. package/esm2022/form/validator/unique-validator.directive.mjs +4 -4
  192. package/esm2022/fullscreen/fullscreen-launch.directive.mjs +3 -3
  193. package/esm2022/fullscreen/fullscreen-ref.mjs +3 -2
  194. package/esm2022/fullscreen/fullscreen.component.mjs +4 -4
  195. package/esm2022/fullscreen/fullscreen.module.mjs +4 -4
  196. package/esm2022/fullscreen/fullscreen.service.mjs +4 -4
  197. package/esm2022/grid/flex.mjs +12 -12
  198. package/esm2022/grid/module.mjs +4 -4
  199. package/esm2022/grid/thy-col.directive.mjs +3 -3
  200. package/esm2022/grid/thy-grid-item.component.mjs +4 -4
  201. package/esm2022/grid/thy-grid.component.mjs +7 -7
  202. package/esm2022/grid/thy-row.directive.mjs +3 -3
  203. package/esm2022/guider/guider-hint/guider-hint.component.mjs +3 -3
  204. package/esm2022/guider/guider-manager.mjs +3 -3
  205. package/esm2022/guider/guider.directive.mjs +4 -4
  206. package/esm2022/guider/guider.module.mjs +4 -4
  207. package/esm2022/guider/guider.service.mjs +3 -3
  208. package/esm2022/icon/icon-registry.mjs +4 -4
  209. package/esm2022/icon/icon.component.mjs +4 -4
  210. package/esm2022/icon/icon.module.mjs +4 -4
  211. package/esm2022/image/image-group.component.mjs +4 -4
  212. package/esm2022/image/image.directive.mjs +4 -4
  213. package/esm2022/image/image.service.mjs +3 -3
  214. package/esm2022/image/module.mjs +4 -4
  215. package/esm2022/image/preview/image-preview.component.mjs +4 -4
  216. package/esm2022/input/input-count.component.mjs +4 -4
  217. package/esm2022/input/input-group.component.mjs +4 -4
  218. package/esm2022/input/input-search.component.mjs +4 -4
  219. package/esm2022/input/input.component.mjs +4 -4
  220. package/esm2022/input/input.directive.mjs +4 -4
  221. package/esm2022/input/module.mjs +4 -4
  222. package/esm2022/input-number/input-number.component.mjs +3 -3
  223. package/esm2022/input-number/module.mjs +4 -4
  224. package/esm2022/layout/content-main.component.mjs +6 -6
  225. package/esm2022/layout/content-section.component.mjs +6 -6
  226. package/esm2022/layout/content.component.mjs +6 -6
  227. package/esm2022/layout/header.component.mjs +6 -6
  228. package/esm2022/layout/layout.component.mjs +6 -6
  229. package/esm2022/layout/layout.module.mjs +4 -4
  230. package/esm2022/layout/sidebar-content.component.mjs +6 -6
  231. package/esm2022/layout/sidebar-footer.component.mjs +6 -6
  232. package/esm2022/layout/sidebar-header.component.mjs +6 -6
  233. package/esm2022/layout/sidebar.component.mjs +7 -7
  234. package/esm2022/list/list-item-meta.component.mjs +3 -3
  235. package/esm2022/list/list-item.component.mjs +3 -3
  236. package/esm2022/list/list.component.mjs +3 -3
  237. package/esm2022/list/list.module.mjs +4 -4
  238. package/esm2022/list/selection/selection-list.mjs +3 -3
  239. package/esm2022/loading/loading.component.mjs +3 -3
  240. package/esm2022/loading/loading.module.mjs +4 -4
  241. package/esm2022/mention/mention.directive.mjs +3 -3
  242. package/esm2022/mention/mention.module.mjs +4 -4
  243. package/esm2022/mention/suggestions/suggestions.component.mjs +4 -4
  244. package/esm2022/menu/divider/menu-divider.component.mjs +3 -3
  245. package/esm2022/menu/group/menu-group.component.mjs +3 -3
  246. package/esm2022/menu/item/action/menu-item-action.component.mjs +4 -4
  247. package/esm2022/menu/item/icon/menu-item-icon.component.mjs +3 -3
  248. package/esm2022/menu/item/menu-item.component.mjs +3 -3
  249. package/esm2022/menu/item/name/menu-item-name.component.mjs +3 -3
  250. package/esm2022/menu/menu.component.mjs +3 -3
  251. package/esm2022/menu/menu.module.mjs +4 -4
  252. package/esm2022/message/abstract/abstract-message-container.component.mjs +4 -4
  253. package/esm2022/message/abstract/abstract-message.component.mjs +4 -4
  254. package/esm2022/message/abstract/abstract-message.service.mjs +1 -1
  255. package/esm2022/message/message-container.component.mjs +3 -3
  256. package/esm2022/message/message-queue.service.mjs +3 -3
  257. package/esm2022/message/message.component.mjs +3 -3
  258. package/esm2022/message/message.service.mjs +3 -3
  259. package/esm2022/message/module.mjs +4 -4
  260. package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +3 -3
  261. package/esm2022/nav/icon-nav/icon-nav.component.mjs +3 -3
  262. package/esm2022/nav/nav-ink-bar.directive.mjs +3 -3
  263. package/esm2022/nav/nav-item.directive.mjs +4 -4
  264. package/esm2022/nav/nav.component.mjs +3 -3
  265. package/esm2022/nav/nav.module.mjs +4 -4
  266. package/esm2022/nav/nav.pipe.mjs +3 -3
  267. package/esm2022/notify/module.mjs +4 -4
  268. package/esm2022/notify/notify-container.component.mjs +3 -3
  269. package/esm2022/notify/notify-queue.service.mjs +3 -3
  270. package/esm2022/notify/notify.component.mjs +5 -5
  271. package/esm2022/notify/notify.service.mjs +3 -3
  272. package/esm2022/pagination/pagination.component.mjs +29 -29
  273. package/esm2022/pagination/pagination.module.mjs +4 -4
  274. package/esm2022/pagination/pagination.pipe.mjs +3 -3
  275. package/esm2022/popover/body/popover-body.component.mjs +3 -3
  276. package/esm2022/popover/header/popover-header.component.mjs +4 -4
  277. package/esm2022/popover/module.mjs +4 -4
  278. package/esm2022/popover/popover-container.component.mjs +3 -3
  279. package/esm2022/popover/popover.directive.mjs +3 -3
  280. package/esm2022/popover/popover.service.mjs +3 -3
  281. package/esm2022/progress/progress-circle.component.mjs +3 -3
  282. package/esm2022/progress/progress-strip.component.mjs +3 -3
  283. package/esm2022/progress/progress.component.mjs +3 -3
  284. package/esm2022/progress/progress.module.mjs +4 -4
  285. package/esm2022/property/module.mjs +4 -4
  286. package/esm2022/property/properties.component.mjs +3 -3
  287. package/esm2022/property/property-item.component.mjs +4 -4
  288. package/esm2022/property-operation/group/property-operation-group.component.mjs +3 -3
  289. package/esm2022/property-operation/module.mjs +4 -4
  290. package/esm2022/property-operation/property-operation.component.mjs +4 -4
  291. package/esm2022/radio/button/radio-button.component.mjs +3 -3
  292. package/esm2022/radio/group/radio-group.component.mjs +3 -3
  293. package/esm2022/radio/module.mjs +4 -4
  294. package/esm2022/radio/radio.component.mjs +3 -3
  295. package/esm2022/rate/module.mjs +4 -4
  296. package/esm2022/rate/rate-item.component.mjs +3 -3
  297. package/esm2022/rate/rate.component.mjs +3 -3
  298. package/esm2022/resizable/module.mjs +4 -4
  299. package/esm2022/resizable/resizable.directive.mjs +3 -3
  300. package/esm2022/resizable/resizable.service.mjs +4 -4
  301. package/esm2022/resizable/resize-handle.component.mjs +4 -4
  302. package/esm2022/resizable/resize-handles.component.mjs +3 -3
  303. package/esm2022/result/result.component.mjs +3 -3
  304. package/esm2022/result/result.module.mjs +4 -4
  305. package/esm2022/segment/segment-item.component.mjs +3 -3
  306. package/esm2022/segment/segment.component.mjs +4 -4
  307. package/esm2022/segment/segment.module.mjs +4 -4
  308. package/esm2022/select/custom-select/custom-select.component.mjs +3 -3
  309. package/esm2022/select/module.mjs +4 -4
  310. package/esm2022/select/native-select/native-select.component.mjs +3 -3
  311. package/esm2022/shared/base-form-check.component.mjs +4 -4
  312. package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +4 -4
  313. package/esm2022/shared/directives/thy-autofocus.directive.mjs +4 -4
  314. package/esm2022/shared/directives/thy-contextmenu.directive.mjs +4 -4
  315. package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +4 -4
  316. package/esm2022/shared/directives/thy-drag-drop.directive.mjs +4 -4
  317. package/esm2022/shared/directives/thy-enter.directive.mjs +4 -4
  318. package/esm2022/shared/directives/thy-scroll.directive.mjs +4 -4
  319. package/esm2022/shared/directives/thy-show.mjs +4 -4
  320. package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +3 -3
  321. package/esm2022/shared/directives/view-outlet.directive.mjs +4 -4
  322. package/esm2022/shared/ng-transclude.directive.mjs +3 -3
  323. package/esm2022/shared/option/group/option-group.component.mjs +4 -4
  324. package/esm2022/shared/option/list-option/list-option.component.mjs +3 -3
  325. package/esm2022/shared/option/module.mjs +4 -4
  326. package/esm2022/shared/option/option-group.component.mjs +3 -3
  327. package/esm2022/shared/option/option.component.mjs +4 -4
  328. package/esm2022/shared/option/options-container.component.mjs +3 -3
  329. package/esm2022/shared/select/module.mjs +4 -4
  330. package/esm2022/shared/select/select-control/select-control.component.mjs +3 -3
  331. package/esm2022/shared/shared.module.mjs +4 -4
  332. package/esm2022/skeleton/module.mjs +4 -4
  333. package/esm2022/skeleton/skeleton-circle.component.mjs +3 -3
  334. package/esm2022/skeleton/skeleton-rectangle.component.mjs +3 -3
  335. package/esm2022/skeleton/skeleton.component.mjs +3 -3
  336. package/esm2022/skeleton/stylized/bullet-list.component.mjs +3 -3
  337. package/esm2022/skeleton/stylized/list.component.mjs +3 -3
  338. package/esm2022/skeleton/stylized/paragraph.component.mjs +3 -3
  339. package/esm2022/slide/drawer/drawer-container.directive.mjs +3 -3
  340. package/esm2022/slide/slide-body/slide-body-section.component.mjs +3 -3
  341. package/esm2022/slide/slide-body/slide-body.component.mjs +3 -3
  342. package/esm2022/slide/slide-container.component.mjs +3 -3
  343. package/esm2022/slide/slide-footer/slide-footer.component.mjs +3 -3
  344. package/esm2022/slide/slide-header/slide-header.component.mjs +3 -3
  345. package/esm2022/slide/slide-layout/slide-layout.component.mjs +3 -3
  346. package/esm2022/slide/slide-ref.service.mjs +3 -3
  347. package/esm2022/slide/slide.module.mjs +4 -4
  348. package/esm2022/slide/slide.service.mjs +3 -3
  349. package/esm2022/slider/slider.component.mjs +4 -4
  350. package/esm2022/slider/slider.module.mjs +4 -4
  351. package/esm2022/space/space.component.mjs +6 -6
  352. package/esm2022/space/space.module.mjs +4 -4
  353. package/esm2022/statistic/statistic.component.mjs +3 -3
  354. package/esm2022/statistic/statistic.module.mjs +4 -4
  355. package/esm2022/stepper/step-header.component.mjs +3 -3
  356. package/esm2022/stepper/step.component.mjs +3 -3
  357. package/esm2022/stepper/stepper-button.directive.mjs +6 -6
  358. package/esm2022/stepper/stepper.component.mjs +3 -3
  359. package/esm2022/stepper/stepper.module.mjs +4 -4
  360. package/esm2022/strength/strength.component.mjs +3 -3
  361. package/esm2022/strength/strength.module.mjs +4 -4
  362. package/esm2022/switch/switch.component.mjs +3 -3
  363. package/esm2022/switch/switch.module.mjs +4 -4
  364. package/esm2022/table/pipes/drag.pipe.mjs +3 -3
  365. package/esm2022/table/pipes/table.pipe.mjs +3 -3
  366. package/esm2022/table/table-column.component.mjs +3 -3
  367. package/esm2022/table/table-skeleton.component.mjs +3 -3
  368. package/esm2022/table/table.component.mjs +5 -5
  369. package/esm2022/table/table.module.mjs +4 -4
  370. package/esm2022/tabs/tab-content.component.mjs +3 -3
  371. package/esm2022/tabs/tab.component.mjs +3 -3
  372. package/esm2022/tabs/tabs.component.mjs +4 -4
  373. package/esm2022/tabs/tabs.module.mjs +4 -4
  374. package/esm2022/tag/tag.component.mjs +3 -3
  375. package/esm2022/tag/tag.module.mjs +4 -4
  376. package/esm2022/tag/tags.component.mjs +3 -3
  377. package/esm2022/testing/data-transfer.mjs +1 -1
  378. package/esm2022/time-picker/inner/inner-time-picker.component.mjs +4 -4
  379. package/esm2022/time-picker/inner/inner-time-picker.config.mjs +3 -3
  380. package/esm2022/time-picker/inner/inner-time-picker.store.mjs +3 -3
  381. package/esm2022/time-picker/time-picker-panel.component.mjs +4 -4
  382. package/esm2022/time-picker/time-picker.component.mjs +4 -4
  383. package/esm2022/time-picker/time-picker.module.mjs +4 -4
  384. package/esm2022/timeline/timeline-item.component.mjs +4 -4
  385. package/esm2022/timeline/timeline.component.mjs +4 -4
  386. package/esm2022/timeline/timeline.module.mjs +4 -4
  387. package/esm2022/timeline/timeline.service.mjs +3 -3
  388. package/esm2022/tooltip/tooltip.component.mjs +3 -3
  389. package/esm2022/tooltip/tooltip.directive.mjs +3 -3
  390. package/esm2022/tooltip/tooltip.module.mjs +4 -4
  391. package/esm2022/tooltip/tooltip.service.mjs +3 -3
  392. package/esm2022/transfer/transfer-list.component.mjs +4 -4
  393. package/esm2022/transfer/transfer.component.mjs +3 -3
  394. package/esm2022/transfer/transfer.module.mjs +4 -4
  395. package/esm2022/tree/tree-node.component.mjs +4 -4
  396. package/esm2022/tree/tree.component.mjs +5 -5
  397. package/esm2022/tree/tree.module.mjs +4 -4
  398. package/esm2022/tree/tree.pipe.mjs +3 -3
  399. package/esm2022/tree/tree.service.mjs +3 -3
  400. package/esm2022/tree-select/module.mjs +4 -4
  401. package/esm2022/tree-select/tree-select.component.mjs +13 -12
  402. package/esm2022/typography/bg-color.directive.mjs +3 -3
  403. package/esm2022/typography/module.mjs +4 -4
  404. package/esm2022/typography/text/text.component.mjs +3 -3
  405. package/esm2022/typography/text-color.directive.mjs +3 -3
  406. package/esm2022/upload/file-drop.directive.mjs +7 -6
  407. package/esm2022/upload/file-select-base.mjs +3 -3
  408. package/esm2022/upload/file-select.component.mjs +4 -4
  409. package/esm2022/upload/module.mjs +4 -4
  410. package/esm2022/upload/upload.service.mjs +3 -3
  411. package/esm2022/util/logger/logger.mjs +1 -1
  412. package/esm2022/version.mjs +2 -2
  413. package/esm2022/vote/vote.component.mjs +3 -3
  414. package/esm2022/vote/vote.module.mjs +4 -4
  415. package/esm2022/watermark/watermark.directive.mjs +3 -3
  416. package/esm2022/watermark/watermark.module.mjs +4 -4
  417. package/fesm2022/ngx-tethys-action.mjs +10 -10
  418. package/fesm2022/ngx-tethys-action.mjs.map +1 -1
  419. package/fesm2022/ngx-tethys-affix.mjs +7 -7
  420. package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
  421. package/fesm2022/ngx-tethys-alert.mjs +10 -10
  422. package/fesm2022/ngx-tethys-anchor.mjs +10 -10
  423. package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
  424. package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
  425. package/fesm2022/ngx-tethys-autocomplete.mjs +16 -16
  426. package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
  427. package/fesm2022/ngx-tethys-avatar.mjs +22 -22
  428. package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
  429. package/fesm2022/ngx-tethys-back-top.mjs +7 -7
  430. package/fesm2022/ngx-tethys-badge.mjs +7 -7
  431. package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
  432. package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
  433. package/fesm2022/ngx-tethys-button.mjs +13 -13
  434. package/fesm2022/ngx-tethys-button.mjs.map +1 -1
  435. package/fesm2022/ngx-tethys-calendar.mjs +16 -16
  436. package/fesm2022/ngx-tethys-card.mjs +13 -13
  437. package/fesm2022/ngx-tethys-carousel.mjs +16 -16
  438. package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
  439. package/fesm2022/ngx-tethys-cascader.mjs +25 -37
  440. package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
  441. package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
  442. package/fesm2022/ngx-tethys-collapse.mjs +10 -10
  443. package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
  444. package/fesm2022/ngx-tethys-color-picker.mjs +47 -37
  445. package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
  446. package/fesm2022/ngx-tethys-comment.mjs +13 -13
  447. package/fesm2022/ngx-tethys-copy.mjs +7 -7
  448. package/fesm2022/ngx-tethys-core.mjs +30 -20
  449. package/fesm2022/ngx-tethys-core.mjs.map +1 -1
  450. package/fesm2022/ngx-tethys-date-picker.mjs +117 -117
  451. package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
  452. package/fesm2022/ngx-tethys-date-range.mjs +10 -10
  453. package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
  454. package/fesm2022/ngx-tethys-dialog.mjs +22 -22
  455. package/fesm2022/ngx-tethys-divider.mjs +7 -7
  456. package/fesm2022/ngx-tethys-dot.mjs +7 -7
  457. package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
  458. package/fesm2022/ngx-tethys-drag-drop.mjs +19 -19
  459. package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
  460. package/fesm2022/ngx-tethys-dropdown.mjs +46 -46
  461. package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
  462. package/fesm2022/ngx-tethys-empty.mjs +10 -10
  463. package/fesm2022/ngx-tethys-flexible-text.mjs +7 -7
  464. package/fesm2022/ngx-tethys-form.mjs +40 -40
  465. package/fesm2022/ngx-tethys-form.mjs.map +1 -1
  466. package/fesm2022/ngx-tethys-fullscreen.mjs +15 -14
  467. package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
  468. package/fesm2022/ngx-tethys-grid.mjs +31 -31
  469. package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
  470. package/fesm2022/ngx-tethys-guider.mjs +16 -16
  471. package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
  472. package/fesm2022/ngx-tethys-icon.mjs +10 -10
  473. package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
  474. package/fesm2022/ngx-tethys-image.mjs +16 -16
  475. package/fesm2022/ngx-tethys-image.mjs.map +1 -1
  476. package/fesm2022/ngx-tethys-input-number.mjs +7 -7
  477. package/fesm2022/ngx-tethys-input.mjs +19 -19
  478. package/fesm2022/ngx-tethys-input.mjs.map +1 -1
  479. package/fesm2022/ngx-tethys-layout.mjs +58 -58
  480. package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
  481. package/fesm2022/ngx-tethys-list.mjs +16 -16
  482. package/fesm2022/ngx-tethys-loading.mjs +7 -7
  483. package/fesm2022/ngx-tethys-mention.mjs +10 -10
  484. package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
  485. package/fesm2022/ngx-tethys-menu.mjs +25 -25
  486. package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
  487. package/fesm2022/ngx-tethys-message.mjs +22 -22
  488. package/fesm2022/ngx-tethys-message.mjs.map +1 -1
  489. package/fesm2022/ngx-tethys-nav.mjs +22 -22
  490. package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
  491. package/fesm2022/ngx-tethys-notify.mjs +17 -17
  492. package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
  493. package/fesm2022/ngx-tethys-pagination.mjs +34 -34
  494. package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
  495. package/fesm2022/ngx-tethys-popover.mjs +19 -19
  496. package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
  497. package/fesm2022/ngx-tethys-progress.mjs +13 -13
  498. package/fesm2022/ngx-tethys-property-operation.mjs +10 -10
  499. package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
  500. package/fesm2022/ngx-tethys-property.mjs +10 -10
  501. package/fesm2022/ngx-tethys-property.mjs.map +1 -1
  502. package/fesm2022/ngx-tethys-radio.mjs +13 -13
  503. package/fesm2022/ngx-tethys-rate.mjs +10 -10
  504. package/fesm2022/ngx-tethys-resizable.mjs +16 -16
  505. package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
  506. package/fesm2022/ngx-tethys-result.mjs +7 -7
  507. package/fesm2022/ngx-tethys-segment.mjs +10 -10
  508. package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
  509. package/fesm2022/ngx-tethys-select.mjs +10 -10
  510. package/fesm2022/ngx-tethys-shared.mjs +66 -66
  511. package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
  512. package/fesm2022/ngx-tethys-skeleton.mjs +22 -22
  513. package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
  514. package/fesm2022/ngx-tethys-slide.mjs +31 -31
  515. package/fesm2022/ngx-tethys-slider.mjs +7 -7
  516. package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
  517. package/fesm2022/ngx-tethys-space.mjs +10 -10
  518. package/fesm2022/ngx-tethys-statistic.mjs +7 -7
  519. package/fesm2022/ngx-tethys-stepper.mjs +19 -19
  520. package/fesm2022/ngx-tethys-strength.mjs +7 -7
  521. package/fesm2022/ngx-tethys-switch.mjs +7 -7
  522. package/fesm2022/ngx-tethys-table.mjs +20 -20
  523. package/fesm2022/ngx-tethys-table.mjs.map +1 -1
  524. package/fesm2022/ngx-tethys-tabs.mjs +13 -13
  525. package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
  526. package/fesm2022/ngx-tethys-tag.mjs +10 -10
  527. package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
  528. package/fesm2022/ngx-tethys-time-picker.mjs +19 -19
  529. package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
  530. package/fesm2022/ngx-tethys-timeline.mjs +13 -13
  531. package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
  532. package/fesm2022/ngx-tethys-tooltip.mjs +13 -13
  533. package/fesm2022/ngx-tethys-transfer.mjs +10 -10
  534. package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
  535. package/fesm2022/ngx-tethys-tree-select.mjs +16 -15
  536. package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
  537. package/fesm2022/ngx-tethys-tree.mjs +17 -17
  538. package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
  539. package/fesm2022/ngx-tethys-typography.mjs +13 -13
  540. package/fesm2022/ngx-tethys-upload.mjs +18 -17
  541. package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
  542. package/fesm2022/ngx-tethys-util.mjs.map +1 -1
  543. package/fesm2022/ngx-tethys-vote.mjs +7 -7
  544. package/fesm2022/ngx-tethys-watermark.mjs +7 -7
  545. package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
  546. package/fesm2022/ngx-tethys.mjs +1 -1
  547. package/fesm2022/ngx-tethys.mjs.map +1 -1
  548. package/flexible-text/examples/placement/placement.component.scss +3 -1
  549. package/form/styles/form-check.scss +2 -3
  550. package/form/styles/mixin.scss +1 -1
  551. package/grid/examples/basic/basic.component.scss +5 -3
  552. package/grid/examples/flex/flex.component.scss +5 -3
  553. package/grid/examples/gap/gap.component.scss +5 -3
  554. package/grid/examples/offset/offset.component.scss +5 -3
  555. package/grid/examples/responsive/responsive.component.scss +6 -4
  556. package/grid/examples/row-col/row-col.component.scss +5 -3
  557. package/grid/examples/span/span.component.scss +5 -3
  558. package/guider/styles/guider-tip.scss +6 -6
  559. package/loading/styles/loading.scss +3 -3
  560. package/menu/examples/basic/basic.component.scss +3 -1
  561. package/menu/examples/divider/divider.component.scss +3 -1
  562. package/menu/examples/group/group.component.scss +3 -1
  563. package/menu/examples/theme/theme.component.scss +2 -2
  564. package/nav/examples/basic/basic.component.scss +3 -5
  565. package/nav/examples/extra/extra.component.scss +3 -1
  566. package/nav/examples/fill/fill.component.scss +3 -1
  567. package/nav/examples/lite/lite.component.scss +3 -1
  568. package/nav/examples/pills/pills.component.scss +3 -1
  569. package/nav/examples/responsive/responsive.component.scss +3 -1
  570. package/nav/examples/size/size.component.scss +3 -1
  571. package/nav/examples/tabs/tabs.component.scss +3 -1
  572. package/nav/examples/type/type.component.scss +3 -4
  573. package/nav/examples/vertical/vertical.component.scss +3 -1
  574. package/nav/nav.component.d.ts +1 -1
  575. package/nav/styles/mixin.scss +26 -10
  576. package/notify/styles/notify.scss +2 -2
  577. package/package.json +1 -1
  578. package/pagination/pagination.component.d.ts +3 -3
  579. package/pagination/styles/pagination.scss +1 -0
  580. package/progress/styles/progress-strip.scss +1 -1
  581. package/property-operation/styles/property-operation.scss +1 -15
  582. package/resizable/examples/layout/layout.style.scss +7 -5
  583. package/resizable/examples/table/table.style.scss +3 -1
  584. package/resizable/resize-handle.component.d.ts +4 -1
  585. package/schematics/version.d.ts +1 -1
  586. package/schematics/version.js +1 -1
  587. package/segment/styles/mixin.scss +8 -5
  588. package/segment/styles/segment.scss +1 -1
  589. package/shared/option/styles/option.mixin.scss +6 -6
  590. package/shared/option/styles/select-dropdown.scss +3 -1
  591. package/shared/select/select-control/select-control.scss +1 -1
  592. package/space/examples/align/align.component.scss +3 -2
  593. package/statistic/examples/prefix-suffix/prefix-suffix.component.scss +3 -1
  594. package/styles/bootstrap/_type.scss +8 -8
  595. package/styles/bootstrap/mixins/_transition.scss +3 -1
  596. package/styles/mixins/close.scss +4 -1
  597. package/styles/mixins/shadow.scss +3 -1
  598. package/styles/mixins/tables.scss +3 -166
  599. package/styles/modules/cdk/drag-drop.scss +1 -1
  600. package/styles/modules/link.scss +1 -1
  601. package/styles/modules/tables.scss +0 -1
  602. package/styles/variables.scss +73 -41
  603. package/switch/styles/mixin.scss +1 -1
  604. package/table/styles/table.scss +1 -1
  605. package/tabs/styles/tabs.scss +1 -0
  606. package/tag/styles/mixin.scss +10 -5
  607. package/tag/styles/tag.scss +4 -4
  608. package/tree/styles/tree.scss +0 -8
  609. package/tree-select/styles/tree-select.scss +4 -1
  610. package/tree-select/tree-select.component.d.ts +3 -3
  611. package/watermark/examples/basic/basic.component.scss +3 -1
  612. package/watermark/examples/custom/custom.component.scss +8 -0
  613. package/watermark/styles/watermark.scss +1 -2
  614. package/tabs/examples/basic/basic.component.scss +0 -5
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-util.mjs","sources":["../../../src/util/date/functions.ts","../../../src/util/date/tiny-date.ts","../../../src/util/helpers/helpers.ts","../../../src/util/dom.ts","../../../src/util/immutable.ts","../../../src/util/references.ts","../../../src/util/ng.ts","../../../src/util/logger/logger.ts","../../../src/util/ngx-tethys-util.ts"],"sourcesContent":["import * as dateFns from 'date-fns';\n\nexport const differenceInCalendarDays = dateFns.differenceInCalendarDays;\nexport const differenceInCalendarMonths = dateFns.differenceInCalendarMonths;\nexport const differenceInCalendarYears = dateFns.differenceInCalendarYears;\nexport const differenceInCalendarQuarters = dateFns.differenceInCalendarQuarters;\nexport const differenceInWeeks = dateFns.differenceInWeeks;\nexport const differenceInHours = dateFns.differenceInHours;\nexport const differenceInMinutes = dateFns.differenceInMinutes;\nexport const differenceInSeconds = dateFns.differenceInSeconds;\nexport const isSameDay = dateFns.isSameDay;\nexport const isSameHour = dateFns.isSameHour;\nexport const isSameMinute = dateFns.isSameMinute;\nexport const isSameMonth = dateFns.isSameMonth;\nexport const isSameSecond = dateFns.isSameSecond;\nexport const isSameYear = dateFns.isSameYear;\nexport const isSameQuarter = dateFns.isSameQuarter;\nexport const isToday = dateFns.isToday;\nexport const isTomorrow = dateFns.isTomorrow;\nexport const isValid = dateFns.isValid;\nexport const setYear = dateFns.setYear;\nexport const startOfMonth = dateFns.startOfMonth;\nexport const startOfWeek = dateFns.startOfWeek;\nexport const addMonths = dateFns.addMonths;\nexport const addYears = dateFns.addYears;\nexport const setDay = dateFns.setDay;\nexport const setMonth = dateFns.setMonth;\nexport const setQuarter = dateFns.setQuarter;\nexport const getUnixTime = dateFns.getUnixTime;\nexport const startOfDay = dateFns.startOfDay;\nexport const endOfDay = dateFns.endOfDay;\nexport const fromUnixTime = dateFns.fromUnixTime;\nexport const isWeekend = dateFns.isWeekend;\nexport const getWeek = dateFns.getWeek;\nexport const getDaysInMonth = dateFns.getDaysInMonth;\nexport const addSeconds = dateFns.addSeconds;\nexport const addMinutes = dateFns.addMinutes;\nexport const addHours = dateFns.addHours;\nexport const addWeeks = dateFns.addWeeks;\nexport const addQuarters = dateFns.addQuarters;\nexport const startOfQuarter = dateFns.startOfQuarter;\nexport const startOfYear = dateFns.startOfYear;\nexport const endOfWeek = dateFns.endOfWeek;\nexport const endOfMonth = dateFns.endOfMonth;\nexport const endOfQuarter = dateFns.endOfQuarter;\nexport const endOfYear = dateFns.endOfYear;\nexport const format = dateFns.format;\nexport const getQuarter = dateFns.getQuarter;\nexport const addDays = dateFns.addDays;\nexport const subMilliseconds = dateFns.subMilliseconds;\nexport const subSeconds = dateFns.subSeconds;\nexport const subMinutes = dateFns.subMinutes;\nexport const subHours = dateFns.subHours;\nexport const subDays = dateFns.subDays;\nexport const subBusinessDays = dateFns.subBusinessDays;\nexport const subWeeks = dateFns.subWeeks;\nexport const subMonths = dateFns.subMonths;\nexport const subQuarters = dateFns.subQuarters;\nexport const subYears = dateFns.subYears;\n","import {\n differenceInCalendarDays,\n differenceInCalendarMonths,\n differenceInCalendarYears,\n differenceInCalendarQuarters,\n differenceInWeeks,\n differenceInHours,\n differenceInMinutes,\n differenceInSeconds,\n isSameDay,\n isSameHour,\n isSameMinute,\n isSameMonth,\n isSameSecond,\n isSameYear,\n isSameQuarter,\n isToday,\n isTomorrow,\n isValid,\n setYear,\n startOfMonth,\n startOfWeek,\n addMonths,\n addYears,\n setDay,\n setMonth,\n setQuarter,\n getUnixTime,\n startOfDay,\n endOfDay,\n fromUnixTime,\n isWeekend,\n getWeek,\n getDaysInMonth,\n addSeconds,\n addMinutes,\n addHours,\n addWeeks,\n addQuarters,\n startOfQuarter,\n startOfYear,\n endOfWeek,\n endOfMonth,\n endOfQuarter,\n endOfYear,\n format,\n getQuarter,\n addDays\n} from './functions';\n\nimport { Locale } from 'date-fns';\n\nexport type TinyDateCompareGrain = 'decade' | 'year' | 'quarter' | 'month' | 'week' | 'day' | 'hour' | 'minute' | 'second';\n\nexport type WeekDayIndex = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport type TinyDateType = TinyDate | Date | null;\n\nexport function sortRangeValue(rangeValue: TinyDate[]): TinyDate[] {\n if (Array.isArray(rangeValue)) {\n const [start, end] = rangeValue;\n return start && end && start.isAfterSecond(end) ? [end, start] : [start, end];\n }\n return rangeValue;\n}\n\nexport class TinyDate implements Record<string, any> {\n nativeDate: Date;\n\n constructor(date?: Date | string | number) {\n if (date) {\n if (date instanceof Date) {\n this.nativeDate = date;\n } else if (typeof date === 'string' || typeof date === 'number') {\n this.nativeDate = new Date(date);\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throw new Error(\n `The input date type is not supported expect Date | string | number | { date: number; with_time: 0 | 1}, actual ${JSON.stringify(\n date\n )}`\n );\n }\n } else {\n this.nativeDate = new Date();\n }\n }\n\n static fromUnixTime(unixTime: number): TinyDate {\n return new TinyDate(fromUnixTime(unixTime));\n }\n\n // get\n getTime(): number {\n return this.nativeDate.getTime();\n }\n\n getDate(): number {\n return this.nativeDate.getDate();\n }\n\n getYear(): number {\n return this.nativeDate.getFullYear();\n }\n\n getQuarter(): number {\n return getQuarter(this.nativeDate);\n }\n\n getMonth(): number {\n return this.nativeDate.getMonth();\n }\n\n getWeek(options: { locale?: Locale; weekStartsOn?: WeekDayIndex } = { weekStartsOn: 1 }): number {\n return getWeek(this.nativeDate, options);\n }\n\n getDay(): number {\n return this.nativeDate.getDay();\n }\n\n getHours(): number {\n return this.nativeDate.getHours();\n }\n\n getMinutes(): number {\n return this.nativeDate.getMinutes();\n }\n\n getSeconds(): number {\n return this.nativeDate.getSeconds();\n }\n\n getMilliseconds(): number {\n return this.nativeDate.getMilliseconds();\n }\n\n getDaysInMonth() {\n return getDaysInMonth(this.nativeDate);\n }\n\n getDaysInQuarter() {\n return differenceInCalendarDays(this.endOfQuarter().addSeconds(1).nativeDate, this.startOfQuarter().nativeDate);\n }\n\n // set\n setDate(amount: number): TinyDate {\n const date = new Date(this.nativeDate);\n date.setDate(amount);\n return new TinyDate(date);\n }\n\n setHms(hour: number, minute: number, second: number): TinyDate {\n const date = new Date(this.nativeDate);\n date.setHours(hour, minute, second);\n return new TinyDate(date);\n }\n\n setYear(year: number): TinyDate {\n return new TinyDate(setYear(this.nativeDate, year));\n }\n\n setMonth(month: number): TinyDate {\n return new TinyDate(setMonth(this.nativeDate, month));\n }\n\n setQuarter(quarter: number) {\n return new TinyDate(setQuarter(this.nativeDate, quarter));\n }\n\n setDay(day: number, options?: { weekStartsOn: WeekDayIndex }): TinyDate {\n return new TinyDate(setDay(this.nativeDate, day, options));\n }\n\n // add\n addYears(amount: number): TinyDate {\n return new TinyDate(addYears(this.nativeDate, amount));\n }\n\n addQuarters(amount: number): TinyDate {\n return new TinyDate(addQuarters(this.nativeDate, amount));\n }\n\n addMonths(amount: number): TinyDate {\n return new TinyDate(addMonths(this.nativeDate, amount));\n }\n\n addWeeks(amount: number): TinyDate {\n return new TinyDate(addWeeks(this.nativeDate, amount));\n }\n\n addDays(amount: number): TinyDate {\n return new TinyDate(addDays(this.nativeDate, amount));\n }\n addHours(amount: number): TinyDate {\n return new TinyDate(addHours(this.nativeDate, amount));\n }\n\n addSeconds(amount: number): TinyDate {\n return new TinyDate(addSeconds(this.nativeDate, amount));\n }\n\n addMinutes(amount: number): TinyDate {\n return new TinyDate(addMinutes(this.nativeDate, amount));\n }\n\n // isSame\n\n isSame(date: TinyDateType, grain: TinyDateCompareGrain = 'day'): boolean {\n let fn;\n switch (grain) {\n case 'decade':\n fn = (pre: Date, next: Date) => Math.abs(pre.getFullYear() - next.getFullYear()) < 11;\n break;\n case 'year':\n fn = isSameYear;\n break;\n case 'month':\n fn = isSameMonth;\n break;\n case 'quarter':\n fn = isSameQuarter;\n break;\n case 'day':\n fn = isSameDay;\n break;\n case 'hour':\n fn = isSameHour;\n break;\n case 'minute':\n fn = isSameMinute;\n break;\n case 'second':\n fn = isSameSecond;\n break;\n default:\n fn = isSameDay;\n break;\n }\n return fn(this.nativeDate, this.toNativeDate(date));\n }\n\n isSameYear(date: TinyDateType): boolean {\n return this.isSame(date, 'year');\n }\n\n isSameMonth(date: TinyDateType): boolean {\n return this.isSame(date, 'month');\n }\n\n isSameQuarter(date: TinyDateType): boolean {\n return this.isSame(date, 'quarter');\n }\n\n isSameDay(date: TinyDateType): boolean {\n return this.isSame(date, 'day');\n }\n\n isSameHour(date: TinyDateType): boolean {\n return this.isSame(date, 'hour');\n }\n\n isSameMinute(date: TinyDateType): boolean {\n return this.isSame(date, 'minute');\n }\n\n isSameSecond(date: TinyDateType): boolean {\n return this.isSame(date, 'second');\n }\n\n // isBefore and isAfter\n isBeforeYear(date: TinyDateType): boolean {\n return this.compare(date, 'year');\n }\n\n isBeforeQuarter(date: TinyDate): boolean {\n return this.compare(date, 'quarter');\n }\n\n isBeforeMonth(date: TinyDateType): boolean {\n return this.compare(date, 'month');\n }\n\n isBeforeWeek(date: TinyDateType): boolean {\n return this.compare(date, 'week');\n }\n\n isBeforeDay(date: TinyDateType): boolean {\n return this.compare(date, 'day');\n }\n\n isBeforeHour(date: TinyDateType): boolean {\n return this.compare(date, 'hour');\n }\n\n isBeforeMinute(date: TinyDateType): boolean {\n return this.compare(date, 'minute');\n }\n\n isBeforeSecond(date: TinyDateType): boolean {\n return this.compare(date, 'second');\n }\n\n isAfterYear(date: TinyDateType): boolean {\n return this.compare(date, 'year', false);\n }\n\n isAfterQuarter(date: TinyDate): boolean {\n return this.compare(date, 'quarter', false);\n }\n\n isAfterMonth(date: TinyDateType): boolean {\n return this.compare(date, 'month', false);\n }\n\n isAfterWeek(date: TinyDateType): boolean {\n return this.compare(date, 'week', false);\n }\n\n isAfterDay(date: TinyDateType): boolean {\n return this.compare(date, 'day', false);\n }\n\n isAfterHour(date: TinyDateType): boolean {\n return this.compare(date, 'hour', false);\n }\n\n isAfterMinute(date: TinyDateType): boolean {\n return this.compare(date, 'minute', false);\n }\n\n isAfterSecond(date: TinyDateType): boolean {\n return this.compare(date, 'second', false);\n }\n\n // is\n isWeekend() {\n return isWeekend(this.nativeDate);\n }\n\n isToday(): boolean {\n return isToday(this.nativeDate);\n }\n\n isTomorrow(): boolean {\n return isTomorrow(this.nativeDate);\n }\n\n isValid(): boolean {\n return isValid(this.nativeDate);\n }\n\n // startOf and endOf\n startOfYear(): TinyDate {\n return new TinyDate(startOfYear(this.nativeDate));\n }\n\n startOfQuarter(): TinyDate {\n return new TinyDate(startOfQuarter(this.nativeDate));\n }\n\n startOfMonth(): TinyDate {\n return new TinyDate(startOfMonth(this.nativeDate));\n }\n\n startOfWeek(options?: { locale?: Locale; weekStartsOn?: WeekDayIndex }): TinyDate {\n return new TinyDate(startOfWeek(this.nativeDate, options));\n }\n\n startOfDay(): TinyDate {\n return new TinyDate(startOfDay(this.nativeDate));\n }\n\n endOfYear(): TinyDate {\n return new TinyDate(endOfYear(this.nativeDate));\n }\n\n endOfQuarter(): TinyDate {\n return new TinyDate(endOfQuarter(this.nativeDate));\n }\n\n endOfMonth(): TinyDate {\n return new TinyDate(endOfMonth(this.nativeDate));\n }\n\n endOfWeek(options?: { locale?: Locale; weekStartsOn?: WeekDayIndex }): TinyDate {\n return new TinyDate(endOfWeek(this.nativeDate, options));\n }\n\n endOfDay(): TinyDate {\n return new TinyDate(endOfDay(this.nativeDate));\n }\n\n // other\n format(\n mat: string,\n options?: {\n locale?: Locale;\n weekStartsOn?: WeekDayIndex;\n firstWeekContainsDate?: number;\n useAdditionalWeekYearTokens?: boolean;\n useAdditionalDayOfYearTokens?: boolean;\n }\n ) {\n return format(this.nativeDate, mat, options);\n }\n\n calendarStart(options?: { weekStartsOn: WeekDayIndex | undefined }): TinyDate {\n return new TinyDate(startOfWeek(startOfMonth(this.nativeDate), options));\n }\n\n clone(): TinyDate {\n return new TinyDate(new Date(this.nativeDate));\n }\n\n getUnixTime(): number {\n return getUnixTime(this.nativeDate);\n }\n\n compare(date: TinyDateType, grain: TinyDateCompareGrain = 'day', isBefore: boolean = true): boolean {\n if (date === null) {\n return false;\n }\n let fn;\n switch (grain) {\n case 'year':\n fn = differenceInCalendarYears;\n break;\n case 'quarter':\n fn = differenceInCalendarQuarters;\n break;\n case 'month':\n fn = differenceInCalendarMonths;\n break;\n case 'day':\n fn = differenceInCalendarDays;\n break;\n case 'week':\n fn = differenceInWeeks;\n break;\n case 'hour':\n fn = differenceInHours;\n break;\n case 'minute':\n fn = differenceInMinutes;\n break;\n case 'second':\n fn = differenceInSeconds;\n break;\n default:\n fn = differenceInCalendarDays;\n break;\n }\n return isBefore ? fn(this.nativeDate, this.toNativeDate(date)) < 0 : fn(this.nativeDate, this.toNativeDate(date)) > 0;\n }\n\n private toNativeDate(date: any): Date {\n return date instanceof TinyDate ? date.nativeDate : date;\n }\n}\n","import { _isNumberValue, coerceCssPixelValue as coerceCssPixel } from '@angular/cdk/coercion';\nimport { ElementRef, TemplateRef } from '@angular/core';\n\nexport function isUndefined(value: any): value is undefined {\n return value === undefined;\n}\n\nexport function isNull(value: any): value is null {\n return value === null;\n}\n\nexport function isUndefinedOrNull(value: any): value is undefined | null {\n return isUndefined(value) || isNull(value);\n}\n\nexport function isArray<T = any>(value: any): value is Array<T> {\n return value && baseGetTag(value) === '[object Array]';\n}\n\nexport function isEmpty(value?: any): boolean {\n return !(isArray(value) && value.length > 0);\n}\n\nexport function isString(value?: any): value is string {\n return typeof value == 'string' || (!isArray(value) && isObjectLike(value) && baseGetTag(value) === '[object String]');\n}\n\nfunction isObjectLike(value: any): value is object {\n return value !== null && typeof value === 'object';\n}\n\nfunction baseGetTag(value: any) {\n const objectProto = Object.prototype;\n const hasOwnProperty = objectProto.hasOwnProperty;\n const toString = objectProto.toString;\n const symToStringTag = typeof Symbol !== 'undefined' ? Symbol.toStringTag : undefined;\n\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n if (!(symToStringTag && symToStringTag in Object(value))) {\n return toString.call(value);\n }\n const isOwn = hasOwnProperty.call(value, symToStringTag);\n const tag = value[symToStringTag];\n let unmasked = false;\n try {\n value[symToStringTag] = undefined;\n unmasked = true;\n } catch (e) {}\n\n const result = toString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === 'number' || (isObjectLike(value) && baseGetTag(value) === '[object Number]');\n}\n\nexport function isObject(value: any): value is object {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n const type = typeof value;\n return !!value && (type === 'object' || type === 'function');\n}\n\nexport function isFunction(value: any): value is Function {\n const type = typeof value;\n return !!value && type === 'function';\n}\n\nexport function isDate(value: any): value is Date {\n const type = typeof value;\n return !!value && type === 'object' && !!value.getTime;\n}\n\nexport function coerceArray<T>(value: T | T[]): T[] {\n return Array.isArray(value) ? value : [value];\n}\n\nexport function get(object: any, path: string, defaultValue?: any): any {\n const paths = path.split('.');\n let result = object[paths.shift()];\n while (result && paths.length) {\n result = result[paths.shift()];\n }\n return result === undefined ? defaultValue : result;\n}\n\nexport function set(object: any, path: string, value: any): void {\n if (object == null) {\n return object;\n }\n const paths = path.split('.');\n let index = -1;\n const length = paths.length;\n const lastIndex = length - 1;\n let nested = object;\n while (nested !== null && ++index < length) {\n const key = paths[index];\n if (isObject(nested)) {\n if (index === lastIndex) {\n nested[key] = value;\n nested = nested[key];\n break;\n } else {\n if (nested[key] == null) {\n nested[key] = {};\n }\n }\n }\n nested = nested[key];\n }\n return object;\n}\n\nexport function isBoolean(value: any): value is boolean {\n return value === true || value === false || (isObjectLike(value) && baseGetTag(value) === '[object Boolean]');\n}\n\nexport function isClass(value: any): value is Function {\n return isFunction(value) && /^\\s*class\\s+/.test(value.toString());\n}\n\nexport function htmlElementIsEmpty(element: HTMLElement) {\n if (element && element.childNodes) {\n const nodes = element.childNodes;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (node.nodeType === Node.ELEMENT_NODE && (node as HTMLElement).outerHTML.toString().trim().length !== 0) {\n return false;\n } else if (node.nodeType === Node.TEXT_NODE && node.textContent.toString().trim().length !== 0) {\n return false;\n } else if (node.nodeType !== Node.COMMENT_NODE) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport function hexToRgb(hexValue: string, alpha?: number): string {\n const rgx = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n const hex = hexValue.replace(rgx, (m: any, r: any, g: any, b: any) => r + r + g + g + b + b);\n const rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (!rgb) return;\n const resultR = parseInt(rgb[1], 16);\n const resultG = parseInt(rgb[2], 16);\n const resultB = parseInt(rgb[3], 16);\n if (!isUndefinedOrNull(alpha)) {\n return `rgba(${resultR}, ${resultG}, ${resultB}, ${alpha})`;\n } else {\n return `rgb(${resultR}, ${resultG}, ${resultB})`;\n }\n}\n\nexport function dateToUnixTimestamp(date: Date | number): number {\n if (isNumber(date)) {\n if (date.toString().length === 10) {\n return date as number;\n } else {\n return parseInt(((date as number) / 1000).toFixed(0), 10);\n }\n } else {\n return parseInt(((date as Date).getTime() / 1000).toFixed(0), 10);\n }\n}\n\nexport function clamp(value: number, min = 0, max = 100) {\n return Math.max(min, Math.min(max, value));\n}\n\nexport function keyBy<T>(array: T[], key: T extends object ? keyof T : never): { [key: string]: T } {\n const result: { [key: string]: T } = {};\n array.forEach(item => {\n const keyValue = item[key];\n (result as any)[keyValue] = item;\n });\n return result;\n}\n\nexport function indexKeyBy<T>(array: T[], key: T extends object ? keyof T : never): { [key: string]: number } {\n const result: { [key: string]: number } = {};\n array.forEach((item, index) => {\n const keyValue = item[key];\n (result as any)[keyValue] = index;\n });\n return result;\n}\n\nfunction upperFirst(string: string): string {\n return string.slice(0, 1).toUpperCase() + string.slice(1);\n}\n\nexport function camelCase(values: string[]): string {\n if (isArray(values)) {\n return values.reduce((result, word, index) => {\n word = word.toLowerCase();\n return result + (index ? upperFirst(word) : word);\n }, '');\n } else {\n return;\n }\n}\n\nexport function generateRandomStr() {\n return Math.random().toString(36).substring(2);\n}\n\nexport function isTemplateRef<C = any>(value: any): value is TemplateRef<C> {\n return value instanceof TemplateRef;\n}\n\nexport function isHTMLElement(value: any): value is HTMLElement {\n return value instanceof HTMLElement;\n}\n\nexport function isElementRef(value: any): value is ElementRef {\n return value instanceof ElementRef;\n}\n\n/**\n * fix angular cdk's coerceBooleanProperty will transform 0 to true\n */\nexport function coerceBooleanProperty(value: boolean | string | number): boolean {\n if (value === '' || (value && value !== 'false')) {\n return true;\n } else {\n return false;\n }\n}\n\nexport type FunctionProp<T> = (...args: any[]) => T;\n\n/**\n * @deprecated Please use Angular cdk's coerceNumberProperty instead\n */\nexport function coerceNumberValue(value: number | string): number;\n/**\n * @deprecated Please use Angular cdk's coerceNumberProperty instead\n */\nexport function coerceNumberValue<D>(value: number | string, fallback: D): number | D;\n/**\n * @deprecated Please use Angular cdk's coerceNumberProperty instead\n */\nexport function coerceNumberValue(value: number | string, fallbackValue: number = 0): number {\n return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\n\n/**\n * @deprecated Please use Angular cdk's coerceCssPixelValue instead\n */\nexport function coerceCssPixelValue(value: number | string): string {\n value = _isNumberValue(value) ? Number(value) : value;\n return coerceCssPixel(value);\n}\n\nexport function valueFunctionProp<T>(prop: FunctionProp<T>, ...args: any[]): T {\n return typeof prop === 'function' ? prop(...args) : prop;\n}\n\nexport function shallowEqual(objA?: Record<string, any>, objB?: Record<string, any>): boolean {\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n return false;\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n const bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n for (let idx = 0; idx < keysA.length; idx++) {\n const key = keysA[idx];\n if (!bHasOwnProperty(key)) {\n return false;\n }\n if (objA[key] !== objB[key]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function concatArray<TItem>(items: TItem | TItem[], originalItems: TItem | TItem[] = []): TItem[] {\n let _originalItems: TItem[] = [];\n if (!originalItems) {\n _originalItems = [];\n } else {\n _originalItems = coerceArray(originalItems);\n }\n if (items) {\n if (isArray(items)) {\n return [..._originalItems, ...items];\n } else {\n return [..._originalItems, items];\n }\n } else {\n return _originalItems;\n }\n}\n\nexport function humanizeBytes(bytes: number, noSpace = false, fractionDigits = 1): string {\n if (bytes === 0) {\n return '0 Byte';\n }\n\n const k = 1024;\n const sizes: string[] = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\n const i: number = Math.floor(Math.log(bytes) / Math.log(k));\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(fractionDigits)) + (noSpace ? '' : ' ') + sizes[i];\n}\n\nexport function isFloat(value: string): boolean {\n if (!value) {\n return false;\n }\n\n return /^[-+]?([0-9]+([.][0-9]*)?|[.][0-9]+)([Ee][-+]?[0-9]+)?$/.test(value);\n}\n","import { ElementRef } from '@angular/core';\nimport * as helpers from './helpers';\n\nconst proto = Element.prototype;\nconst vendor =\n proto.matches ||\n proto['matchesSelector'] ||\n proto['webkitMatchesSelector'] ||\n proto['mozMatchesSelector'] ||\n proto['msMatchesSelector'] ||\n proto['oMatchesSelector'];\n\nexport function fallbackMatches(el: Element | Node, selector: string) {\n const nodes = el.parentNode.querySelectorAll(selector);\n for (let i = 0; i < nodes.length; i++) {\n if (nodes[i] === el) {\n return true;\n }\n }\n return false;\n}\n/**\n * Match `el` to `selector`.\n */\nexport function match(el: Element | Node, selector: string) {\n if (vendor) {\n return vendor.call(el, selector);\n }\n return fallbackMatches(el, selector);\n}\n\nexport function isDocument(element: any): element is Document {\n return (\n (typeof element !== 'undefined' && element instanceof Document) || (element.nodeType && element.nodeType === element.DOCUMENT_NODE)\n );\n}\n\nexport function isElement(element: any) {\n return (\n (typeof HTMLElement !== 'undefined' && element instanceof HTMLElement) ||\n (element && element.nodeType && element.nodeType === element.ELEMENT_NODE)\n );\n}\n\nexport function getWindow(elem: any) {\n return elem != null && elem === elem.window ? elem : elem.nodeType === 9 && elem.defaultView;\n}\n\nexport function getElementOffset(elem: HTMLElement) {\n let docElem, win, rect, doc;\n\n if (!elem) {\n return;\n }\n // Support: IE<=11+\n // Running getBoundingClientRect on a\n // disconnected node in IE throws an error\n if (!elem.getClientRects().length) {\n return { top: 0, left: 0 };\n }\n rect = elem.getBoundingClientRect();\n\n // Make sure element is not hidden (display: none)\n if (rect.width || rect.height) {\n doc = elem.ownerDocument;\n win = getWindow(doc);\n docElem = doc.documentElement;\n\n return {\n top: rect.top + win.pageYOffset - docElem.clientTop,\n left: rect.left + win.pageXOffset - docElem.clientLeft,\n height: rect.height,\n width: rect.width\n };\n }\n return rect;\n}\n\nexport function getOffset(element: HTMLElement, container: HTMLElement | Window): { left: number; top: number } | null {\n if (!element || !element.getClientRects().length) {\n return null;\n }\n const rect = element.getBoundingClientRect();\n\n if (rect.width || rect.height) {\n if (container === window) {\n const documentElement = element.ownerDocument!.documentElement!;\n return {\n top: rect.top - documentElement.clientTop,\n left: rect.left - documentElement.clientLeft\n };\n }\n const containerRect = (container as HTMLElement).getBoundingClientRect();\n return {\n top: rect.top - containerRect.top,\n left: rect.left - containerRect.left\n };\n }\n\n return rect;\n}\n\nexport function getClientSize(): { width: number; height: number } {\n const width = document.documentElement.clientWidth;\n const height = window.innerHeight || document.documentElement.clientHeight;\n return {\n width,\n height\n };\n}\n\nexport type ElementSelector = HTMLElement | ElementRef | string;\n\nexport function getHTMLElementBySelector(selector: ElementSelector, defaultElementRef: ElementRef): HTMLElement {\n if (!selector) {\n return defaultElementRef.nativeElement;\n } else if (selector === 'body') {\n return document.body;\n } else if (helpers.isString(selector)) {\n return document.querySelector(selector as string);\n } else if (selector instanceof ElementRef) {\n return selector.nativeElement;\n } else {\n return selector as HTMLElement;\n }\n}\n\nexport function isInputOrTextarea(element: HTMLElement) {\n return ['INPUT', 'TEXTAREA'].indexOf(element.nodeName) >= 0;\n}\n\nexport function isWindow(container: Element | Window): container is Window {\n return typeof window !== 'undefined' && container === window;\n}\n\nexport interface SimpleRect {\n top: number;\n left: number;\n width?: number;\n height?: number;\n bottom?: number;\n}\n\nexport function getContainerRect(container: Element | Window): SimpleRect {\n return !isWindow(container)\n ? container.getBoundingClientRect()\n : {\n top: 0,\n left: 0,\n bottom: 0\n };\n}\n\nexport function getStyleAsText(styles?: any): string {\n if (!styles) {\n return '';\n }\n\n return Object.keys(styles)\n .map(key => {\n const val = styles[key];\n return `${key}:${typeof val === 'string' ? val : val + 'px'}`;\n })\n .join(';');\n}\n\nexport function isTouchEvent(event: MouseEvent | TouchEvent): event is TouchEvent {\n return event.type.startsWith('touch');\n}\n\n/**\n * Assert wrapper element whether only contains icon.\n */\nexport function assertIconOnly(wrapperElement: Element): boolean {\n const listOfNode = Array.from(wrapperElement.childNodes);\n const iconCount = listOfNode.filter(node => ['THY-ICON', 'I'].includes(node.nodeName)).length;\n const noText = listOfNode.every(node => node.nodeName !== '#text');\n const noSpan = listOfNode.every(node => node.nodeName !== 'SPAN');\n const isIconOnly = noSpan && noText && iconCount >= 1;\n return isIconOnly;\n}\n\n/**\n *\n * calc position x,y point\n *\n * CASE (width <= clientWidth && height <= clientHeight):\n *\n * ------------- clientWidth -------------\n * | |\n * | ------ width ------ |\n * | | | |\n * | | | |\n * client height | |\n * Height | | |\n * | | | |\n * | ------------------- |\n * | |\n * | |\n * ---------------------------------------\n * fixedPosition = { x: 0, y: 0 }\n *\n *\n *\n * CASE (width > clientWidth || height > clientHeight):\n *\n * ------------- clientWidth -------------\n * | | |\n * | top |\n * | | |\n * |--left--|--------------- width -----------------\n * | | |\n * client | |\n * Height | |\n * | | |\n * | | |\n * | height |\n * | | |\n * ---------| |\n * | |\n * | |\n * | |\n * ----------------------------------------\n *\n *\n * - left || top > 0\n * left -> 0 || top -> 0\n *\n * - (left + width) < clientWidth || (top + height) < clientHeight\n * - left | top + width | height < clientWidth | clientHeight -> Back left | top + width | height === clientWidth | clientHeight\n *\n * DEFAULT:\n * - hold position\n *\n */\nexport function getFitContentPosition(params: {\n width: number;\n height: number;\n left: number;\n top: number;\n clientWidth: number;\n clientHeight: number;\n}): { x?: number; y?: number } {\n let fixPos = {};\n\n if (params.width <= params.clientWidth && params.height <= params.clientHeight) {\n fixPos = {\n x: 0,\n y: 0\n };\n }\n\n if (params.width > params.clientWidth || params.height > params.clientHeight) {\n fixPos = {\n x: fitPoint(params.left, params.width, params.clientWidth),\n y: fitPoint(params.top, params.height, params.clientHeight)\n };\n }\n\n return fixPos;\n}\n\nfunction fitPoint(start: number, size: number, clientSize: number): number | null {\n const startAddSize = start + size;\n const offsetStart = (size - clientSize) / 2;\n let distance: number | null = null;\n\n if (size > clientSize) {\n if (start > 0) {\n distance = offsetStart;\n }\n if (start < 0 && startAddSize < clientSize) {\n distance = -offsetStart;\n }\n } else {\n if (start < 0 || startAddSize > clientSize) {\n distance = start < 0 ? offsetStart : -offsetStart;\n }\n }\n\n return distance;\n}\n\nexport function elementMatchClosest(element: HTMLElement, selectors: string | string[]) {\n let matched = false;\n if (element && element.closest) {\n matched = !!helpers.coerceArray(selectors).find(selector => {\n return element.closest(selector);\n });\n }\n return matched;\n}\n","import { Id } from 'ngx-tethys/types';\nimport { coerceArray, isFunction, isUndefinedOrNull } from './helpers';\n\nexport interface EntityAddOptions {\n prepend?: boolean;\n\n afterId?: Id;\n}\n\nexport interface EntityMoveOptions {\n afterId?: Id;\n\n toIndex?: number;\n}\n\nexport interface ProducerOptions {\n idKey?: string;\n}\n\nexport class Producer<TEntity> {\n private idKey = '_id';\n\n private entities: TEntity[];\n\n constructor(entities: TEntity[], options?: ProducerOptions) {\n this.entities = entities || [];\n if (options && options.idKey) {\n this.idKey = options.idKey;\n }\n }\n\n /**\n * Add an entity or entities.\n *\n * @example\n * produce([users]).add(Entity);\n * produce([users]).add([Entity, Entity]);\n * produce([users]).add(Entity, { prepend: true });\n * produce([users]).add(Entity, { afterId: '' });\n */\n add(entity: TEntity | TEntity[], addOptions?: EntityAddOptions): TEntity[] {\n const addEntities = coerceArray(entity);\n if (addEntities.length === 0) {\n return this.entities;\n }\n if (addOptions && (addOptions.afterId || addOptions.prepend)) {\n if (addOptions.afterId) {\n const entities = [...this.entities];\n const index =\n this.entities.findIndex(item => {\n return item[this.idKey] === addOptions.afterId;\n }) + 1;\n entities.splice(index, 0, ...addEntities);\n this.entities = [...entities];\n } else if (addOptions.prepend) {\n this.entities = [...addEntities, ...this.entities];\n }\n } else {\n this.entities = [...this.entities, ...addEntities];\n }\n return this.entities;\n }\n\n /**\n *\n * Update an entity or entities.\n *\n * @example\n * produce([users]).update(3, {\n * name: 'New Name'\n * });\n *\n * produce([users]).update(3, entity => {\n * return {\n * ...entity,\n * name: 'New Name'\n * }\n * });\n *\n * produce([users]).update([1,2,3], {\n * name: 'New Name'\n * });\n */\n update(id: Id | Id[] | null, newStateFn: (entity: Readonly<TEntity>) => Partial<TEntity>): TEntity[];\n update(id: Id | Id[] | null, newState?: Partial<TEntity>): TEntity[];\n update(\n idsOrFn: Id | Id[] | null | Partial<TEntity> | ((entity: Readonly<TEntity>) => boolean),\n newStateOrFn?: ((entity: Readonly<TEntity>) => Partial<TEntity>) | Partial<TEntity>\n ): TEntity[] {\n const ids = coerceArray(idsOrFn);\n\n for (let i = 0; i < this.entities.length; i++) {\n const oldEntity = this.entities[i];\n if (ids.indexOf(oldEntity[this.idKey]) >= 0) {\n const newState = isFunction(newStateOrFn) ? (newStateOrFn as any)(oldEntity) : newStateOrFn;\n this.entities[i] = { ...(oldEntity as any), ...newState };\n }\n }\n return [...this.entities];\n }\n\n /**\n *\n * Remove one or more entities:\n *\n * @example\n * produce([users]).remove(5);\n * produce([users]).remove([1,2,3]);\n * produce([users]).remove(entity => entity.id === 1);\n */\n remove(id: Id | Id[]): TEntity[];\n remove(predicate: (entity: Readonly<TEntity>) => boolean): TEntity[];\n remove(idsOrFn?: Id | Id[] | ((entity: Readonly<TEntity>) => boolean)): TEntity[] {\n if (isFunction(idsOrFn)) {\n this.entities = this.entities.filter(entity => {\n return !(idsOrFn as any)(entity);\n });\n } else {\n const ids = coerceArray(idsOrFn);\n this.entities = this.entities.filter(entity => {\n return ids.indexOf(entity[this.idKey]) === -1;\n });\n }\n return this.entities;\n }\n\n /**\n *\n * Move one or more entities:\n *\n * @example\n * produce([users]).move(5, {afterId: 2});\n * produce([users]).move(5, {toIndex: 0});\n */\n move(id: Id, moveOptions?: EntityMoveOptions): TEntity[] {\n const fromIndex = this.entities.findIndex(item => item[this.idKey] === id);\n let toIndex = 0;\n const newEntities = [...this.entities];\n\n if (!id || fromIndex < 0) {\n return [...this.entities];\n }\n\n if (moveOptions) {\n if (!isUndefinedOrNull(moveOptions.afterId)) {\n toIndex = this.entities.findIndex(item => item[this.idKey] === moveOptions.afterId);\n } else if (moveOptions.toIndex) {\n toIndex = moveOptions.toIndex;\n }\n }\n toIndex = Math.max(0, Math.min(this.entities.length - 1, toIndex));\n if (toIndex === fromIndex) {\n return [...this.entities];\n } else {\n const target = this.entities[fromIndex];\n const delta = toIndex < fromIndex ? -1 : 1;\n\n for (let i = fromIndex; i !== toIndex; i += delta) {\n newEntities[i] = newEntities[i + delta];\n }\n newEntities[toIndex] = target;\n return [...newEntities];\n }\n }\n}\n\nexport function produce<TEntity>(entities: TEntity[], options?: ProducerOptions) {\n return new Producer(entities, options);\n}\n","import { keyBy, indexKeyBy } from './helpers';\n\n// 抽取数据中的Item类型,不是数组直接返回对象的类型\nexport type ArrayInferExtract<T> = T extends Array<infer P> ? P : T;\nexport type ArrayAlwaysExtract<T> = T extends Array<infer P> ? P : never;\n// 抽取 References 中 Object 类型, 如果是数组取数组 Item 类型\nexport type ReferenceObjectExtract<T> = {\n [key in keyof T]: ArrayInferExtract<T[key]> extends object ? ArrayInferExtract<T[key]> : never;\n};\n// 收取 References 中所有的属性 Names,如果ArrayInferExtract不是对象,返回 never\nexport type ReferenceExtractNames<T> = { [key in keyof T]: ArrayInferExtract<T[key]> extends object ? key : never };\nexport type ReferenceArrayExtractNames<T> = { [key in keyof T]: T[key] extends Array<object> ? key : never };\n// 排除 ReferenceExtractNames 抽取 Names 中的 never,只保留是对象的 Names\nexport type ReferenceExtractAllowNames<T> = {\n [key in ReferenceExtractNames<T>[keyof T]]: ReferenceExtractNames<T>[key];\n};\nexport type ReferenceArrayExtractAllowNames<T> = {\n [key in ReferenceArrayExtractNames<T>[keyof T]]: ReferenceExtractNames<T>[key];\n};\n\n/**\n * 根据 ReferenceExtractAllowKeys 抽取出的 Object Keys 组合新的对象\n * @example ReferenceExtractAllowKeys<{\n users: { uid: string; name: string }[];\n info: { id: number; name: string };\n departments: { dept: number }[];\n ids: string[];\n id: string;\n }> => {\n users: \"uid\" | \"name\",\n info: \"id\" | \"name\",\n departments: \"dept\"\n\n }\n */\nexport type ReferenceExtractAllowKeys<T> = {\n [key in keyof ReferenceExtractAllowNames<T>]?: keyof ReferenceObjectExtract<T>[key];\n};\n// 只允许 reference 是 Array 的 Keys\nexport type ReferenceArrayExtractAllowKeys<T> = {\n [key in keyof ReferenceArrayExtractAllowNames<T>]?: keyof ReferenceObjectExtract<T>[key];\n};\n\nfunction getReferenceIdKey<TReferences>(referenceKey: string, idKeys: ReferenceArrayExtractAllowKeys<TReferences>) {\n if (idKeys && idKeys[referenceKey]) {\n return idKeys[referenceKey];\n } else {\n return '_id';\n }\n}\n\n/**\n * Append references to original references\n * @example\n * mergeReferences({departments: [{ _id: '1', name: 'name-1'}]}, {departments: [{ _id: '3', name: 'name-3'}]})\n * mergeReferences({users: [{ uid: '1', name: 'name-1'}]}, {users: [{ uid: '3', name: 'name-3'}]}, { users: \"uid\" })\n * @param originalReferences original references\n * @param references append references\n * @param idKeys references 's id key, default is '_id'\n *\n * @returns TReferences\n */\nexport function mergeReferences<TReferences>(\n originalReferences: TReferences,\n references: Partial<TReferences>,\n idKeys?: ReferenceArrayExtractAllowKeys<TReferences>\n): TReferences {\n for (const key in references) {\n if (references.hasOwnProperty(key)) {\n const reference = references[key];\n const referenceIdKey = getReferenceIdKey<TReferences>(key, idKeys);\n const originalReference = originalReferences[key];\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !originalReference) {\n throw new Error(`original reference must exist when append new reference: ${key}`);\n }\n if (originalReference instanceof Array) {\n // original reference id index map\n const originalReferenceIdIndexMap = indexKeyBy<ReferenceExtractAllowKeys<TReferences>>(\n originalReferences[key] as any,\n referenceIdKey\n );\n // append reference is array\n if (reference instanceof Array) {\n reference.forEach((item: TReferences[Extract<keyof TReferences, string>]) => {\n const itemId = item[referenceIdKey];\n const index = originalReferenceIdIndexMap[itemId];\n if (index >= 0) {\n originalReference[index] = { ...originalReference[index], ...item };\n } else {\n (originalReferences as any)[key] = [...(originalReferences[key] as any), item];\n }\n });\n } else {\n // append reference is not array, support append signal object to array reference\n const itemId = reference[referenceIdKey];\n const index = originalReferenceIdIndexMap[itemId];\n if (itemId >= 0) {\n originalReference[index] = { ...originalReference[index], ...reference };\n } else {\n (originalReferences as any)[key] = [...(originalReferences[key] as any), reference];\n }\n }\n } else {\n originalReferences[key] = { ...originalReferences[key], ...reference };\n }\n }\n }\n\n return originalReferences;\n}\n\n/**\n * Build dictionary for references\n * @param references references\n * @param idKeys references 's id key, default is '_id'\n */\nexport function buildReferencesKeyBy<TReferences>(\n references: Partial<TReferences>,\n idKeys?: Partial<ReferenceArrayExtractAllowKeys<TReferences>>\n) {\n const result: { [key in keyof TReferences]?: { [key: string]: ArrayInferExtract<TReferences[key]> } } = {};\n for (const key in references) {\n if (references.hasOwnProperty(key)) {\n const referenceIdKey = getReferenceIdKey<TReferences>(key, idKeys);\n const reference = references[key];\n if (reference instanceof Array) {\n const originalReferenceIdMap = keyBy<ArrayInferExtract<TReferences>>(reference, referenceIdKey);\n (result as any)[key] = originalReferenceIdMap;\n }\n }\n }\n return result;\n}\n","import { SimpleChanges } from '@angular/core';\n\nexport function hasLaterChange(changes: SimpleChanges): boolean {\n const hasChange = Object.keys(changes).find(key => {\n return changes[key] && !changes[key].isFirstChange();\n });\n return !!hasChange;\n}\n","import { isDevMode } from '@angular/core';\n\nconst record: Record<string, boolean> = {};\n\nlet logWarnDeprecation = true;\n\nexport const PREFIX = '[NGX-TETHYS]:';\n\nfunction notRecorded(...args: any[]): boolean {\n const asRecord = args.reduce((acc, c) => acc + c.toString(), '');\n\n if (record[asRecord]) {\n return false;\n } else {\n record[asRecord] = true;\n return true;\n }\n}\n\nfunction consoleCommonBehavior(consoleFunc: (...args: any) => void, ...args: any[]): void {\n if (isDevMode() && notRecorded(...args)) {\n consoleFunc(...args);\n }\n}\n\n// Warning should only be printed in dev mode and only once.\nexport const warn = (...args: any[]) => consoleCommonBehavior((...arg: any[]) => console.warn(PREFIX, ...arg), ...args);\n\nexport function createWarnDeprecation(prefix: string): (...args: any[]) => void {\n return (...args: any[]) => {\n const stack = new Error().stack;\n return consoleCommonBehavior((...arg: any[]) => {\n if (logWarnDeprecation) {\n console.warn(prefix, 'deprecated:', ...arg, stack);\n }\n }, ...args);\n };\n}\n\nexport const warnDeprecation = createWarnDeprecation(PREFIX);\n\n// Log should only be printed in dev mode.\nexport const log = (...args: any[]) => {\n if (isDevMode()) {\n console.log(PREFIX, ...args);\n }\n};\n\nexport function setWarnDeprecation(enabled: boolean) {\n logWarnDeprecation = enabled;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["coerceCssPixel","helpers.isString","helpers.coerceArray"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-util.mjs","sources":["../../../src/util/date/functions.ts","../../../src/util/date/tiny-date.ts","../../../src/util/helpers/helpers.ts","../../../src/util/dom.ts","../../../src/util/immutable.ts","../../../src/util/references.ts","../../../src/util/ng.ts","../../../src/util/logger/logger.ts","../../../src/util/ngx-tethys-util.ts"],"sourcesContent":["import * as dateFns from 'date-fns';\n\nexport const differenceInCalendarDays = dateFns.differenceInCalendarDays;\nexport const differenceInCalendarMonths = dateFns.differenceInCalendarMonths;\nexport const differenceInCalendarYears = dateFns.differenceInCalendarYears;\nexport const differenceInCalendarQuarters = dateFns.differenceInCalendarQuarters;\nexport const differenceInWeeks = dateFns.differenceInWeeks;\nexport const differenceInHours = dateFns.differenceInHours;\nexport const differenceInMinutes = dateFns.differenceInMinutes;\nexport const differenceInSeconds = dateFns.differenceInSeconds;\nexport const isSameDay = dateFns.isSameDay;\nexport const isSameHour = dateFns.isSameHour;\nexport const isSameMinute = dateFns.isSameMinute;\nexport const isSameMonth = dateFns.isSameMonth;\nexport const isSameSecond = dateFns.isSameSecond;\nexport const isSameYear = dateFns.isSameYear;\nexport const isSameQuarter = dateFns.isSameQuarter;\nexport const isToday = dateFns.isToday;\nexport const isTomorrow = dateFns.isTomorrow;\nexport const isValid = dateFns.isValid;\nexport const setYear = dateFns.setYear;\nexport const startOfMonth = dateFns.startOfMonth;\nexport const startOfWeek = dateFns.startOfWeek;\nexport const addMonths = dateFns.addMonths;\nexport const addYears = dateFns.addYears;\nexport const setDay = dateFns.setDay;\nexport const setMonth = dateFns.setMonth;\nexport const setQuarter = dateFns.setQuarter;\nexport const getUnixTime = dateFns.getUnixTime;\nexport const startOfDay = dateFns.startOfDay;\nexport const endOfDay = dateFns.endOfDay;\nexport const fromUnixTime = dateFns.fromUnixTime;\nexport const isWeekend = dateFns.isWeekend;\nexport const getWeek = dateFns.getWeek;\nexport const getDaysInMonth = dateFns.getDaysInMonth;\nexport const addSeconds = dateFns.addSeconds;\nexport const addMinutes = dateFns.addMinutes;\nexport const addHours = dateFns.addHours;\nexport const addWeeks = dateFns.addWeeks;\nexport const addQuarters = dateFns.addQuarters;\nexport const startOfQuarter = dateFns.startOfQuarter;\nexport const startOfYear = dateFns.startOfYear;\nexport const endOfWeek = dateFns.endOfWeek;\nexport const endOfMonth = dateFns.endOfMonth;\nexport const endOfQuarter = dateFns.endOfQuarter;\nexport const endOfYear = dateFns.endOfYear;\nexport const format = dateFns.format;\nexport const getQuarter = dateFns.getQuarter;\nexport const addDays = dateFns.addDays;\nexport const subMilliseconds = dateFns.subMilliseconds;\nexport const subSeconds = dateFns.subSeconds;\nexport const subMinutes = dateFns.subMinutes;\nexport const subHours = dateFns.subHours;\nexport const subDays = dateFns.subDays;\nexport const subBusinessDays = dateFns.subBusinessDays;\nexport const subWeeks = dateFns.subWeeks;\nexport const subMonths = dateFns.subMonths;\nexport const subQuarters = dateFns.subQuarters;\nexport const subYears = dateFns.subYears;\n","import {\n differenceInCalendarDays,\n differenceInCalendarMonths,\n differenceInCalendarYears,\n differenceInCalendarQuarters,\n differenceInWeeks,\n differenceInHours,\n differenceInMinutes,\n differenceInSeconds,\n isSameDay,\n isSameHour,\n isSameMinute,\n isSameMonth,\n isSameSecond,\n isSameYear,\n isSameQuarter,\n isToday,\n isTomorrow,\n isValid,\n setYear,\n startOfMonth,\n startOfWeek,\n addMonths,\n addYears,\n setDay,\n setMonth,\n setQuarter,\n getUnixTime,\n startOfDay,\n endOfDay,\n fromUnixTime,\n isWeekend,\n getWeek,\n getDaysInMonth,\n addSeconds,\n addMinutes,\n addHours,\n addWeeks,\n addQuarters,\n startOfQuarter,\n startOfYear,\n endOfWeek,\n endOfMonth,\n endOfQuarter,\n endOfYear,\n format,\n getQuarter,\n addDays\n} from './functions';\n\nimport { Locale } from 'date-fns';\n\nexport type TinyDateCompareGrain = 'decade' | 'year' | 'quarter' | 'month' | 'week' | 'day' | 'hour' | 'minute' | 'second';\n\nexport type WeekDayIndex = 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport type TinyDateType = TinyDate | Date | null;\n\nexport function sortRangeValue(rangeValue: TinyDate[]): TinyDate[] {\n if (Array.isArray(rangeValue)) {\n const [start, end] = rangeValue;\n return start && end && start.isAfterSecond(end) ? [end, start] : [start, end];\n }\n return rangeValue;\n}\n\nexport class TinyDate implements Record<string, any> {\n nativeDate: Date;\n\n constructor(date?: Date | string | number) {\n if (date) {\n if (date instanceof Date) {\n this.nativeDate = date;\n } else if (typeof date === 'string' || typeof date === 'number') {\n this.nativeDate = new Date(date);\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throw new Error(\n `The input date type is not supported expect Date | string | number | { date: number; with_time: 0 | 1}, actual ${JSON.stringify(\n date\n )}`\n );\n }\n } else {\n this.nativeDate = new Date();\n }\n }\n\n static fromUnixTime(unixTime: number): TinyDate {\n return new TinyDate(fromUnixTime(unixTime));\n }\n\n // get\n getTime(): number {\n return this.nativeDate.getTime();\n }\n\n getDate(): number {\n return this.nativeDate.getDate();\n }\n\n getYear(): number {\n return this.nativeDate.getFullYear();\n }\n\n getQuarter(): number {\n return getQuarter(this.nativeDate);\n }\n\n getMonth(): number {\n return this.nativeDate.getMonth();\n }\n\n getWeek(options: { locale?: Locale; weekStartsOn?: WeekDayIndex } = { weekStartsOn: 1 }): number {\n return getWeek(this.nativeDate, options);\n }\n\n getDay(): number {\n return this.nativeDate.getDay();\n }\n\n getHours(): number {\n return this.nativeDate.getHours();\n }\n\n getMinutes(): number {\n return this.nativeDate.getMinutes();\n }\n\n getSeconds(): number {\n return this.nativeDate.getSeconds();\n }\n\n getMilliseconds(): number {\n return this.nativeDate.getMilliseconds();\n }\n\n getDaysInMonth() {\n return getDaysInMonth(this.nativeDate);\n }\n\n getDaysInQuarter() {\n return differenceInCalendarDays(this.endOfQuarter().addSeconds(1).nativeDate, this.startOfQuarter().nativeDate);\n }\n\n // set\n setDate(amount: number): TinyDate {\n const date = new Date(this.nativeDate);\n date.setDate(amount);\n return new TinyDate(date);\n }\n\n setHms(hour: number, minute: number, second: number): TinyDate {\n const date = new Date(this.nativeDate);\n date.setHours(hour, minute, second);\n return new TinyDate(date);\n }\n\n setYear(year: number): TinyDate {\n return new TinyDate(setYear(this.nativeDate, year));\n }\n\n setMonth(month: number): TinyDate {\n return new TinyDate(setMonth(this.nativeDate, month));\n }\n\n setQuarter(quarter: number) {\n return new TinyDate(setQuarter(this.nativeDate, quarter));\n }\n\n setDay(day: number, options?: { weekStartsOn: WeekDayIndex }): TinyDate {\n return new TinyDate(setDay(this.nativeDate, day, options));\n }\n\n // add\n addYears(amount: number): TinyDate {\n return new TinyDate(addYears(this.nativeDate, amount));\n }\n\n addQuarters(amount: number): TinyDate {\n return new TinyDate(addQuarters(this.nativeDate, amount));\n }\n\n addMonths(amount: number): TinyDate {\n return new TinyDate(addMonths(this.nativeDate, amount));\n }\n\n addWeeks(amount: number): TinyDate {\n return new TinyDate(addWeeks(this.nativeDate, amount));\n }\n\n addDays(amount: number): TinyDate {\n return new TinyDate(addDays(this.nativeDate, amount));\n }\n addHours(amount: number): TinyDate {\n return new TinyDate(addHours(this.nativeDate, amount));\n }\n\n addSeconds(amount: number): TinyDate {\n return new TinyDate(addSeconds(this.nativeDate, amount));\n }\n\n addMinutes(amount: number): TinyDate {\n return new TinyDate(addMinutes(this.nativeDate, amount));\n }\n\n // isSame\n\n isSame(date: TinyDateType, grain: TinyDateCompareGrain = 'day'): boolean {\n let fn;\n switch (grain) {\n case 'decade':\n fn = (pre: Date, next: Date) => Math.abs(pre.getFullYear() - next.getFullYear()) < 11;\n break;\n case 'year':\n fn = isSameYear;\n break;\n case 'month':\n fn = isSameMonth;\n break;\n case 'quarter':\n fn = isSameQuarter;\n break;\n case 'day':\n fn = isSameDay;\n break;\n case 'hour':\n fn = isSameHour;\n break;\n case 'minute':\n fn = isSameMinute;\n break;\n case 'second':\n fn = isSameSecond;\n break;\n default:\n fn = isSameDay;\n break;\n }\n return fn(this.nativeDate, this.toNativeDate(date));\n }\n\n isSameYear(date: TinyDateType): boolean {\n return this.isSame(date, 'year');\n }\n\n isSameMonth(date: TinyDateType): boolean {\n return this.isSame(date, 'month');\n }\n\n isSameQuarter(date: TinyDateType): boolean {\n return this.isSame(date, 'quarter');\n }\n\n isSameDay(date: TinyDateType): boolean {\n return this.isSame(date, 'day');\n }\n\n isSameHour(date: TinyDateType): boolean {\n return this.isSame(date, 'hour');\n }\n\n isSameMinute(date: TinyDateType): boolean {\n return this.isSame(date, 'minute');\n }\n\n isSameSecond(date: TinyDateType): boolean {\n return this.isSame(date, 'second');\n }\n\n // isBefore and isAfter\n isBeforeYear(date: TinyDateType): boolean {\n return this.compare(date, 'year');\n }\n\n isBeforeQuarter(date: TinyDate): boolean {\n return this.compare(date, 'quarter');\n }\n\n isBeforeMonth(date: TinyDateType): boolean {\n return this.compare(date, 'month');\n }\n\n isBeforeWeek(date: TinyDateType): boolean {\n return this.compare(date, 'week');\n }\n\n isBeforeDay(date: TinyDateType): boolean {\n return this.compare(date, 'day');\n }\n\n isBeforeHour(date: TinyDateType): boolean {\n return this.compare(date, 'hour');\n }\n\n isBeforeMinute(date: TinyDateType): boolean {\n return this.compare(date, 'minute');\n }\n\n isBeforeSecond(date: TinyDateType): boolean {\n return this.compare(date, 'second');\n }\n\n isAfterYear(date: TinyDateType): boolean {\n return this.compare(date, 'year', false);\n }\n\n isAfterQuarter(date: TinyDate): boolean {\n return this.compare(date, 'quarter', false);\n }\n\n isAfterMonth(date: TinyDateType): boolean {\n return this.compare(date, 'month', false);\n }\n\n isAfterWeek(date: TinyDateType): boolean {\n return this.compare(date, 'week', false);\n }\n\n isAfterDay(date: TinyDateType): boolean {\n return this.compare(date, 'day', false);\n }\n\n isAfterHour(date: TinyDateType): boolean {\n return this.compare(date, 'hour', false);\n }\n\n isAfterMinute(date: TinyDateType): boolean {\n return this.compare(date, 'minute', false);\n }\n\n isAfterSecond(date: TinyDateType): boolean {\n return this.compare(date, 'second', false);\n }\n\n // is\n isWeekend() {\n return isWeekend(this.nativeDate);\n }\n\n isToday(): boolean {\n return isToday(this.nativeDate);\n }\n\n isTomorrow(): boolean {\n return isTomorrow(this.nativeDate);\n }\n\n isValid(): boolean {\n return isValid(this.nativeDate);\n }\n\n // startOf and endOf\n startOfYear(): TinyDate {\n return new TinyDate(startOfYear(this.nativeDate));\n }\n\n startOfQuarter(): TinyDate {\n return new TinyDate(startOfQuarter(this.nativeDate));\n }\n\n startOfMonth(): TinyDate {\n return new TinyDate(startOfMonth(this.nativeDate));\n }\n\n startOfWeek(options?: { locale?: Locale; weekStartsOn?: WeekDayIndex }): TinyDate {\n return new TinyDate(startOfWeek(this.nativeDate, options));\n }\n\n startOfDay(): TinyDate {\n return new TinyDate(startOfDay(this.nativeDate));\n }\n\n endOfYear(): TinyDate {\n return new TinyDate(endOfYear(this.nativeDate));\n }\n\n endOfQuarter(): TinyDate {\n return new TinyDate(endOfQuarter(this.nativeDate));\n }\n\n endOfMonth(): TinyDate {\n return new TinyDate(endOfMonth(this.nativeDate));\n }\n\n endOfWeek(options?: { locale?: Locale; weekStartsOn?: WeekDayIndex }): TinyDate {\n return new TinyDate(endOfWeek(this.nativeDate, options));\n }\n\n endOfDay(): TinyDate {\n return new TinyDate(endOfDay(this.nativeDate));\n }\n\n // other\n format(\n mat: string,\n options?: {\n locale?: Locale;\n weekStartsOn?: WeekDayIndex;\n firstWeekContainsDate?: number;\n useAdditionalWeekYearTokens?: boolean;\n useAdditionalDayOfYearTokens?: boolean;\n }\n ) {\n return format(this.nativeDate, mat, options);\n }\n\n calendarStart(options?: { weekStartsOn: WeekDayIndex | undefined }): TinyDate {\n return new TinyDate(startOfWeek(startOfMonth(this.nativeDate), options));\n }\n\n clone(): TinyDate {\n return new TinyDate(new Date(this.nativeDate));\n }\n\n getUnixTime(): number {\n return getUnixTime(this.nativeDate);\n }\n\n compare(date: TinyDateType, grain: TinyDateCompareGrain = 'day', isBefore: boolean = true): boolean {\n if (date === null) {\n return false;\n }\n let fn;\n switch (grain) {\n case 'year':\n fn = differenceInCalendarYears;\n break;\n case 'quarter':\n fn = differenceInCalendarQuarters;\n break;\n case 'month':\n fn = differenceInCalendarMonths;\n break;\n case 'day':\n fn = differenceInCalendarDays;\n break;\n case 'week':\n fn = differenceInWeeks;\n break;\n case 'hour':\n fn = differenceInHours;\n break;\n case 'minute':\n fn = differenceInMinutes;\n break;\n case 'second':\n fn = differenceInSeconds;\n break;\n default:\n fn = differenceInCalendarDays;\n break;\n }\n return isBefore ? fn(this.nativeDate, this.toNativeDate(date)) < 0 : fn(this.nativeDate, this.toNativeDate(date)) > 0;\n }\n\n private toNativeDate(date: any): Date {\n return date instanceof TinyDate ? date.nativeDate : date;\n }\n}\n","import { _isNumberValue, coerceCssPixelValue as coerceCssPixel } from '@angular/cdk/coercion';\nimport { ElementRef, TemplateRef } from '@angular/core';\n\nexport function isUndefined(value: any): value is undefined {\n return value === undefined;\n}\n\nexport function isNull(value: any): value is null {\n return value === null;\n}\n\nexport function isUndefinedOrNull(value: any): value is undefined | null {\n return isUndefined(value) || isNull(value);\n}\n\nexport function isArray<T = any>(value: any): value is Array<T> {\n return value && baseGetTag(value) === '[object Array]';\n}\n\nexport function isEmpty(value?: any): boolean {\n return !(isArray(value) && value.length > 0);\n}\n\nexport function isString(value?: any): value is string {\n return typeof value == 'string' || (!isArray(value) && isObjectLike(value) && baseGetTag(value) === '[object String]');\n}\n\nfunction isObjectLike(value: any): value is object {\n return value !== null && typeof value === 'object';\n}\n\nfunction baseGetTag(value: any) {\n const objectProto = Object.prototype;\n const hasOwnProperty = objectProto.hasOwnProperty;\n const toString = objectProto.toString;\n const symToStringTag = typeof Symbol !== 'undefined' ? Symbol.toStringTag : undefined;\n\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n if (!(symToStringTag && symToStringTag in Object(value))) {\n return toString.call(value);\n }\n const isOwn = hasOwnProperty.call(value, symToStringTag);\n const tag = value[symToStringTag];\n let unmasked = false;\n try {\n value[symToStringTag] = undefined;\n unmasked = true;\n } catch (e) {}\n\n const result = toString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === 'number' || (isObjectLike(value) && baseGetTag(value) === '[object Number]');\n}\n\nexport function isObject(value: any): value is object {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n const type = typeof value;\n return !!value && (type === 'object' || type === 'function');\n}\n\nexport function isFunction(value: any): value is Function {\n const type = typeof value;\n return !!value && type === 'function';\n}\n\nexport function isDate(value: any): value is Date {\n const type = typeof value;\n return !!value && type === 'object' && !!value.getTime;\n}\n\nexport function coerceArray<T>(value: T | T[]): T[] {\n return Array.isArray(value) ? value : [value];\n}\n\nexport function get(object: any, path: string, defaultValue?: any): any {\n const paths = path.split('.');\n let result = object[paths.shift()];\n while (result && paths.length) {\n result = result[paths.shift()];\n }\n return result === undefined ? defaultValue : result;\n}\n\nexport function set(object: any, path: string, value: any): void {\n if (object == null) {\n return object;\n }\n const paths = path.split('.');\n let index = -1;\n const length = paths.length;\n const lastIndex = length - 1;\n let nested = object;\n while (nested !== null && ++index < length) {\n const key = paths[index];\n if (isObject(nested)) {\n if (index === lastIndex) {\n nested[key] = value;\n nested = nested[key];\n break;\n } else {\n if (nested[key] == null) {\n nested[key] = {};\n }\n }\n }\n nested = nested[key];\n }\n return object;\n}\n\nexport function isBoolean(value: any): value is boolean {\n return value === true || value === false || (isObjectLike(value) && baseGetTag(value) === '[object Boolean]');\n}\n\nexport function isClass(value: any): value is Function {\n return isFunction(value) && /^\\s*class\\s+/.test(value.toString());\n}\n\nexport function htmlElementIsEmpty(element: HTMLElement) {\n if (element && element.childNodes) {\n const nodes = element.childNodes;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (node.nodeType === Node.ELEMENT_NODE && (node as HTMLElement).outerHTML.toString().trim().length !== 0) {\n return false;\n } else if (node.nodeType === Node.TEXT_NODE && node.textContent.toString().trim().length !== 0) {\n return false;\n } else if (node.nodeType !== Node.COMMENT_NODE) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport function hexToRgb(hexValue: string, alpha?: number): string {\n const rgx = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n const hex = hexValue.replace(rgx, (m: any, r: any, g: any, b: any) => r + r + g + g + b + b);\n const rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (!rgb) return;\n const resultR = parseInt(rgb[1], 16);\n const resultG = parseInt(rgb[2], 16);\n const resultB = parseInt(rgb[3], 16);\n if (!isUndefinedOrNull(alpha)) {\n return `rgba(${resultR}, ${resultG}, ${resultB}, ${alpha})`;\n } else {\n return `rgb(${resultR}, ${resultG}, ${resultB})`;\n }\n}\n\nexport function dateToUnixTimestamp(date: Date | number): number {\n if (isNumber(date)) {\n if (date.toString().length === 10) {\n return date as number;\n } else {\n return parseInt(((date as number) / 1000).toFixed(0), 10);\n }\n } else {\n return parseInt(((date as Date).getTime() / 1000).toFixed(0), 10);\n }\n}\n\nexport function clamp(value: number, min = 0, max = 100) {\n return Math.max(min, Math.min(max, value));\n}\n\nexport function keyBy<T>(array: T[], key: T extends object ? keyof T : never): { [key: string]: T } {\n const result: { [key: string]: T } = {};\n array.forEach(item => {\n const keyValue = item[key];\n (result as any)[keyValue] = item;\n });\n return result;\n}\n\nexport function indexKeyBy<T>(array: T[], key: T extends object ? keyof T : never): { [key: string]: number } {\n const result: { [key: string]: number } = {};\n array.forEach((item, index) => {\n const keyValue = item[key];\n (result as any)[keyValue] = index;\n });\n return result;\n}\n\nfunction upperFirst(string: string): string {\n return string.slice(0, 1).toUpperCase() + string.slice(1);\n}\n\nexport function camelCase(values: string[]): string {\n if (isArray(values)) {\n return values.reduce((result, word, index) => {\n word = word.toLowerCase();\n return result + (index ? upperFirst(word) : word);\n }, '');\n } else {\n return;\n }\n}\n\nexport function generateRandomStr() {\n return Math.random().toString(36).substring(2);\n}\n\nexport function isTemplateRef<C = any>(value: any): value is TemplateRef<C> {\n return value instanceof TemplateRef;\n}\n\nexport function isHTMLElement(value: any): value is HTMLElement {\n return value instanceof HTMLElement;\n}\n\nexport function isElementRef(value: any): value is ElementRef {\n return value instanceof ElementRef;\n}\n\n/**\n * fix angular cdk's coerceBooleanProperty will transform 0 to true\n */\nexport function coerceBooleanProperty(value: boolean | string | number): boolean {\n if (value === '' || (value && value !== 'false')) {\n return true;\n } else {\n return false;\n }\n}\n\nexport type FunctionProp<T> = (...args: any[]) => T;\n\n/**\n * @deprecated Please use Angular cdk's coerceNumberProperty instead\n */\nexport function coerceNumberValue(value: number | string): number;\n/**\n * @deprecated Please use Angular cdk's coerceNumberProperty instead\n */\nexport function coerceNumberValue<D>(value: number | string, fallback: D): number | D;\n/**\n * @deprecated Please use Angular cdk's coerceNumberProperty instead\n */\nexport function coerceNumberValue(value: number | string, fallbackValue: number = 0): number {\n return _isNumberValue(value) ? Number(value) : fallbackValue;\n}\n\n/**\n * @deprecated Please use Angular cdk's coerceCssPixelValue instead\n */\nexport function coerceCssPixelValue(value: number | string): string {\n value = _isNumberValue(value) ? Number(value) : value;\n return coerceCssPixel(value);\n}\n\nexport function valueFunctionProp<T>(prop: FunctionProp<T>, ...args: any[]): T {\n return typeof prop === 'function' ? prop(...args) : prop;\n}\n\nexport function shallowEqual(objA?: Record<string, any>, objB?: Record<string, any>): boolean {\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n return false;\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n const bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n for (let idx = 0; idx < keysA.length; idx++) {\n const key = keysA[idx];\n if (!bHasOwnProperty(key)) {\n return false;\n }\n if (objA[key] !== objB[key]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function concatArray<TItem>(items: TItem | TItem[], originalItems: TItem | TItem[] = []): TItem[] {\n let _originalItems: TItem[] = [];\n if (!originalItems) {\n _originalItems = [];\n } else {\n _originalItems = coerceArray(originalItems);\n }\n if (items) {\n if (isArray(items)) {\n return [..._originalItems, ...items];\n } else {\n return [..._originalItems, items];\n }\n } else {\n return _originalItems;\n }\n}\n\nexport function humanizeBytes(bytes: number, noSpace = false, fractionDigits = 1): string {\n if (bytes === 0) {\n return '0 Byte';\n }\n\n const k = 1024;\n const sizes: string[] = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];\n const i: number = Math.floor(Math.log(bytes) / Math.log(k));\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(fractionDigits)) + (noSpace ? '' : ' ') + sizes[i];\n}\n\nexport function isFloat(value: string): boolean {\n if (!value) {\n return false;\n }\n\n return /^[-+]?([0-9]+([.][0-9]*)?|[.][0-9]+)([Ee][-+]?[0-9]+)?$/.test(value);\n}\n","import { ElementRef } from '@angular/core';\nimport * as helpers from './helpers';\n\nconst proto = Element.prototype;\nconst vendor =\n proto.matches ||\n proto['matchesSelector'] ||\n proto['webkitMatchesSelector'] ||\n proto['mozMatchesSelector'] ||\n proto['msMatchesSelector'] ||\n proto['oMatchesSelector'];\n\nexport function fallbackMatches(el: Element | Node, selector: string) {\n const nodes = el.parentNode.querySelectorAll(selector);\n for (let i = 0; i < nodes.length; i++) {\n if (nodes[i] === el) {\n return true;\n }\n }\n return false;\n}\n/**\n * Match `el` to `selector`.\n */\nexport function match(el: Element | Node, selector: string) {\n if (vendor) {\n return vendor.call(el, selector);\n }\n return fallbackMatches(el, selector);\n}\n\nexport function isDocument(element: any): element is Document {\n return (\n (typeof element !== 'undefined' && element instanceof Document) || (element.nodeType && element.nodeType === element.DOCUMENT_NODE)\n );\n}\n\nexport function isElement(element: any) {\n return (\n (typeof HTMLElement !== 'undefined' && element instanceof HTMLElement) ||\n (element && element.nodeType && element.nodeType === element.ELEMENT_NODE)\n );\n}\n\nexport function getWindow(elem: any) {\n return elem != null && elem === elem.window ? elem : elem.nodeType === 9 && elem.defaultView;\n}\n\nexport function getElementOffset(elem: HTMLElement) {\n let docElem, win, rect, doc;\n\n if (!elem) {\n return;\n }\n // Support: IE<=11+\n // Running getBoundingClientRect on a\n // disconnected node in IE throws an error\n if (!elem.getClientRects().length) {\n return { top: 0, left: 0 };\n }\n rect = elem.getBoundingClientRect();\n\n // Make sure element is not hidden (display: none)\n if (rect.width || rect.height) {\n doc = elem.ownerDocument;\n win = getWindow(doc);\n docElem = doc.documentElement;\n\n return {\n top: rect.top + win.pageYOffset - docElem.clientTop,\n left: rect.left + win.pageXOffset - docElem.clientLeft,\n height: rect.height,\n width: rect.width\n };\n }\n return rect;\n}\n\nexport function getOffset(element: HTMLElement, container: HTMLElement | Window): { left: number; top: number } | null {\n if (!element || !element.getClientRects().length) {\n return null;\n }\n const rect = element.getBoundingClientRect();\n\n if (rect.width || rect.height) {\n if (container === window) {\n const documentElement = element.ownerDocument!.documentElement!;\n return {\n top: rect.top - documentElement.clientTop,\n left: rect.left - documentElement.clientLeft\n };\n }\n const containerRect = (container as HTMLElement).getBoundingClientRect();\n return {\n top: rect.top - containerRect.top,\n left: rect.left - containerRect.left\n };\n }\n\n return rect;\n}\n\nexport function getClientSize(): { width: number; height: number } {\n const width = document.documentElement.clientWidth;\n const height = window.innerHeight || document.documentElement.clientHeight;\n return {\n width,\n height\n };\n}\n\nexport type ElementSelector = HTMLElement | ElementRef | string;\n\nexport function getHTMLElementBySelector(selector: ElementSelector, defaultElementRef: ElementRef): HTMLElement {\n if (!selector) {\n return defaultElementRef.nativeElement;\n } else if (selector === 'body') {\n return document.body;\n } else if (helpers.isString(selector)) {\n return document.querySelector(selector as string);\n } else if (selector instanceof ElementRef) {\n return selector.nativeElement;\n } else {\n return selector as HTMLElement;\n }\n}\n\nexport function isInputOrTextarea(element: HTMLElement) {\n return ['INPUT', 'TEXTAREA'].indexOf(element.nodeName) >= 0;\n}\n\nexport function isWindow(container: Element | Window): container is Window {\n return typeof window !== 'undefined' && container === window;\n}\n\nexport interface SimpleRect {\n top: number;\n left: number;\n width?: number;\n height?: number;\n bottom?: number;\n}\n\nexport function getContainerRect(container: Element | Window): SimpleRect {\n return !isWindow(container)\n ? container.getBoundingClientRect()\n : {\n top: 0,\n left: 0,\n bottom: 0\n };\n}\n\nexport function getStyleAsText(styles?: any): string {\n if (!styles) {\n return '';\n }\n\n return Object.keys(styles)\n .map(key => {\n const val = styles[key];\n return `${key}:${typeof val === 'string' ? val : val + 'px'}`;\n })\n .join(';');\n}\n\nexport function isTouchEvent(event: MouseEvent | TouchEvent): event is TouchEvent {\n return event.type.startsWith('touch');\n}\n\n/**\n * Assert wrapper element whether only contains icon.\n */\nexport function assertIconOnly(wrapperElement: Element): boolean {\n const listOfNode = Array.from(wrapperElement.childNodes);\n const iconCount = listOfNode.filter(node => ['THY-ICON', 'I'].includes(node.nodeName)).length;\n const noText = listOfNode.every(node => node.nodeName !== '#text');\n const noSpan = listOfNode.every(node => node.nodeName !== 'SPAN');\n const isIconOnly = noSpan && noText && iconCount >= 1;\n return isIconOnly;\n}\n\n/**\n *\n * calc position x,y point\n *\n * CASE (width <= clientWidth && height <= clientHeight):\n *\n * ------------- clientWidth -------------\n * | |\n * | ------ width ------ |\n * | | | |\n * | | | |\n * client height | |\n * Height | | |\n * | | | |\n * | ------------------- |\n * | |\n * | |\n * ---------------------------------------\n * fixedPosition = { x: 0, y: 0 }\n *\n *\n *\n * CASE (width > clientWidth || height > clientHeight):\n *\n * ------------- clientWidth -------------\n * | | |\n * | top |\n * | | |\n * |--left--|--------------- width -----------------\n * | | |\n * client | |\n * Height | |\n * | | |\n * | | |\n * | height |\n * | | |\n * ---------| |\n * | |\n * | |\n * | |\n * ----------------------------------------\n *\n *\n * - left || top > 0\n * left -> 0 || top -> 0\n *\n * - (left + width) < clientWidth || (top + height) < clientHeight\n * - left | top + width | height < clientWidth | clientHeight -> Back left | top + width | height === clientWidth | clientHeight\n *\n * DEFAULT:\n * - hold position\n *\n */\nexport function getFitContentPosition(params: {\n width: number;\n height: number;\n left: number;\n top: number;\n clientWidth: number;\n clientHeight: number;\n}): { x?: number; y?: number } {\n let fixPos = {};\n\n if (params.width <= params.clientWidth && params.height <= params.clientHeight) {\n fixPos = {\n x: 0,\n y: 0\n };\n }\n\n if (params.width > params.clientWidth || params.height > params.clientHeight) {\n fixPos = {\n x: fitPoint(params.left, params.width, params.clientWidth),\n y: fitPoint(params.top, params.height, params.clientHeight)\n };\n }\n\n return fixPos;\n}\n\nfunction fitPoint(start: number, size: number, clientSize: number): number | null {\n const startAddSize = start + size;\n const offsetStart = (size - clientSize) / 2;\n let distance: number | null = null;\n\n if (size > clientSize) {\n if (start > 0) {\n distance = offsetStart;\n }\n if (start < 0 && startAddSize < clientSize) {\n distance = -offsetStart;\n }\n } else {\n if (start < 0 || startAddSize > clientSize) {\n distance = start < 0 ? offsetStart : -offsetStart;\n }\n }\n\n return distance;\n}\n\nexport function elementMatchClosest(element: HTMLElement, selectors: string | string[]) {\n let matched = false;\n if (element && element.closest) {\n matched = !!helpers.coerceArray(selectors).find(selector => {\n return element.closest(selector);\n });\n }\n return matched;\n}\n","import { Id } from 'ngx-tethys/types';\nimport { coerceArray, isFunction, isUndefinedOrNull } from './helpers';\n\nexport interface EntityAddOptions {\n prepend?: boolean;\n\n afterId?: Id;\n}\n\nexport interface EntityMoveOptions {\n afterId?: Id;\n\n toIndex?: number;\n}\n\nexport interface ProducerOptions {\n idKey?: string;\n}\n\nexport class Producer<TEntity> {\n private idKey = '_id';\n\n private entities: TEntity[];\n\n constructor(entities: TEntity[], options?: ProducerOptions) {\n this.entities = entities || [];\n if (options && options.idKey) {\n this.idKey = options.idKey;\n }\n }\n\n /**\n * Add an entity or entities.\n *\n * @example\n * produce([users]).add(Entity);\n * produce([users]).add([Entity, Entity]);\n * produce([users]).add(Entity, { prepend: true });\n * produce([users]).add(Entity, { afterId: '' });\n */\n add(entity: TEntity | TEntity[], addOptions?: EntityAddOptions): TEntity[] {\n const addEntities = coerceArray(entity);\n if (addEntities.length === 0) {\n return this.entities;\n }\n if (addOptions && (addOptions.afterId || addOptions.prepend)) {\n if (addOptions.afterId) {\n const entities = [...this.entities];\n const index =\n this.entities.findIndex(item => {\n return item[this.idKey] === addOptions.afterId;\n }) + 1;\n entities.splice(index, 0, ...addEntities);\n this.entities = [...entities];\n } else if (addOptions.prepend) {\n this.entities = [...addEntities, ...this.entities];\n }\n } else {\n this.entities = [...this.entities, ...addEntities];\n }\n return this.entities;\n }\n\n /**\n *\n * Update an entity or entities.\n *\n * @example\n * produce([users]).update(3, {\n * name: 'New Name'\n * });\n *\n * produce([users]).update(3, entity => {\n * return {\n * ...entity,\n * name: 'New Name'\n * }\n * });\n *\n * produce([users]).update([1,2,3], {\n * name: 'New Name'\n * });\n */\n update(id: Id | Id[] | null, newStateFn: (entity: Readonly<TEntity>) => Partial<TEntity>): TEntity[];\n update(id: Id | Id[] | null, newState?: Partial<TEntity>): TEntity[];\n update(\n idsOrFn: Id | Id[] | null | Partial<TEntity> | ((entity: Readonly<TEntity>) => boolean),\n newStateOrFn?: ((entity: Readonly<TEntity>) => Partial<TEntity>) | Partial<TEntity>\n ): TEntity[] {\n const ids = coerceArray(idsOrFn);\n\n for (let i = 0; i < this.entities.length; i++) {\n const oldEntity = this.entities[i];\n if (ids.indexOf(oldEntity[this.idKey]) >= 0) {\n const newState = isFunction(newStateOrFn) ? (newStateOrFn as any)(oldEntity) : newStateOrFn;\n this.entities[i] = { ...(oldEntity as any), ...newState };\n }\n }\n return [...this.entities];\n }\n\n /**\n *\n * Remove one or more entities:\n *\n * @example\n * produce([users]).remove(5);\n * produce([users]).remove([1,2,3]);\n * produce([users]).remove(entity => entity.id === 1);\n */\n remove(id: Id | Id[]): TEntity[];\n remove(predicate: (entity: Readonly<TEntity>) => boolean): TEntity[];\n remove(idsOrFn?: Id | Id[] | ((entity: Readonly<TEntity>) => boolean)): TEntity[] {\n if (isFunction(idsOrFn)) {\n this.entities = this.entities.filter(entity => {\n return !(idsOrFn as any)(entity);\n });\n } else {\n const ids = coerceArray(idsOrFn);\n this.entities = this.entities.filter(entity => {\n return ids.indexOf(entity[this.idKey]) === -1;\n });\n }\n return this.entities;\n }\n\n /**\n *\n * Move one or more entities:\n *\n * @example\n * produce([users]).move(5, {afterId: 2});\n * produce([users]).move(5, {toIndex: 0});\n */\n move(id: Id, moveOptions?: EntityMoveOptions): TEntity[] {\n const fromIndex = this.entities.findIndex(item => item[this.idKey] === id);\n let toIndex = 0;\n const newEntities = [...this.entities];\n\n if (!id || fromIndex < 0) {\n return [...this.entities];\n }\n\n if (moveOptions) {\n if (!isUndefinedOrNull(moveOptions.afterId)) {\n toIndex = this.entities.findIndex(item => item[this.idKey] === moveOptions.afterId);\n } else if (moveOptions.toIndex) {\n toIndex = moveOptions.toIndex;\n }\n }\n toIndex = Math.max(0, Math.min(this.entities.length - 1, toIndex));\n if (toIndex === fromIndex) {\n return [...this.entities];\n } else {\n const target = this.entities[fromIndex];\n const delta = toIndex < fromIndex ? -1 : 1;\n\n for (let i = fromIndex; i !== toIndex; i += delta) {\n newEntities[i] = newEntities[i + delta];\n }\n newEntities[toIndex] = target;\n return [...newEntities];\n }\n }\n}\n\nexport function produce<TEntity>(entities: TEntity[], options?: ProducerOptions) {\n return new Producer(entities, options);\n}\n","import { keyBy, indexKeyBy } from './helpers';\n\n// 抽取数据中的Item类型,不是数组直接返回对象的类型\nexport type ArrayInferExtract<T> = T extends Array<infer P> ? P : T;\nexport type ArrayAlwaysExtract<T> = T extends Array<infer P> ? P : never;\n// 抽取 References 中 Object 类型, 如果是数组取数组 Item 类型\nexport type ReferenceObjectExtract<T> = {\n [key in keyof T]: ArrayInferExtract<T[key]> extends object ? ArrayInferExtract<T[key]> : never;\n};\n// 收取 References 中所有的属性 Names,如果ArrayInferExtract不是对象,返回 never\nexport type ReferenceExtractNames<T> = { [key in keyof T]: ArrayInferExtract<T[key]> extends object ? key : never };\nexport type ReferenceArrayExtractNames<T> = { [key in keyof T]: T[key] extends Array<object> ? key : never };\n// 排除 ReferenceExtractNames 抽取 Names 中的 never,只保留是对象的 Names\nexport type ReferenceExtractAllowNames<T> = {\n [key in ReferenceExtractNames<T>[keyof T]]: ReferenceExtractNames<T>[key];\n};\nexport type ReferenceArrayExtractAllowNames<T> = {\n [key in ReferenceArrayExtractNames<T>[keyof T]]: ReferenceExtractNames<T>[key];\n};\n\n/**\n * 根据 ReferenceExtractAllowKeys 抽取出的 Object Keys 组合新的对象\n * @example ReferenceExtractAllowKeys<{\n users: { uid: string; name: string }[];\n info: { id: number; name: string };\n departments: { dept: number }[];\n ids: string[];\n id: string;\n }> => {\n users: \"uid\" | \"name\",\n info: \"id\" | \"name\",\n departments: \"dept\"\n\n }\n */\nexport type ReferenceExtractAllowKeys<T> = {\n [key in keyof ReferenceExtractAllowNames<T>]?: keyof ReferenceObjectExtract<T>[key];\n};\n// 只允许 reference 是 Array 的 Keys\nexport type ReferenceArrayExtractAllowKeys<T> = {\n [key in keyof ReferenceArrayExtractAllowNames<T>]?: keyof ReferenceObjectExtract<T>[key];\n};\n\nfunction getReferenceIdKey<TReferences>(referenceKey: string, idKeys: ReferenceArrayExtractAllowKeys<TReferences>) {\n if (idKeys && idKeys[referenceKey]) {\n return idKeys[referenceKey];\n } else {\n return '_id';\n }\n}\n\n/**\n * Append references to original references\n * @example\n * mergeReferences({departments: [{ _id: '1', name: 'name-1'}]}, {departments: [{ _id: '3', name: 'name-3'}]})\n * mergeReferences({users: [{ uid: '1', name: 'name-1'}]}, {users: [{ uid: '3', name: 'name-3'}]}, { users: \"uid\" })\n * @param originalReferences original references\n * @param references append references\n * @param idKeys references 's id key, default is '_id'\n *\n * @returns TReferences\n */\nexport function mergeReferences<TReferences>(\n originalReferences: TReferences,\n references: Partial<TReferences>,\n idKeys?: ReferenceArrayExtractAllowKeys<TReferences>\n): TReferences {\n for (const key in references) {\n if (references.hasOwnProperty(key)) {\n const reference = references[key];\n const referenceIdKey = getReferenceIdKey<TReferences>(key, idKeys);\n const originalReference = originalReferences[key];\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !originalReference) {\n throw new Error(`original reference must exist when append new reference: ${key}`);\n }\n if (originalReference instanceof Array) {\n // original reference id index map\n const originalReferenceIdIndexMap = indexKeyBy<ReferenceExtractAllowKeys<TReferences>>(\n originalReferences[key] as any,\n referenceIdKey\n );\n // append reference is array\n if (reference instanceof Array) {\n reference.forEach((item: TReferences[Extract<keyof TReferences, string>]) => {\n const itemId = item[referenceIdKey];\n const index = originalReferenceIdIndexMap[itemId];\n if (index >= 0) {\n originalReference[index] = { ...originalReference[index], ...item };\n } else {\n (originalReferences as any)[key] = [...(originalReferences[key] as any), item];\n }\n });\n } else {\n // append reference is not array, support append signal object to array reference\n const itemId = reference[referenceIdKey];\n const index = originalReferenceIdIndexMap[itemId];\n if (itemId >= 0) {\n originalReference[index] = { ...originalReference[index], ...reference };\n } else {\n (originalReferences as any)[key] = [...(originalReferences[key] as any), reference];\n }\n }\n } else {\n originalReferences[key] = { ...originalReferences[key], ...reference };\n }\n }\n }\n\n return originalReferences;\n}\n\n/**\n * Build dictionary for references\n * @param references references\n * @param idKeys references 's id key, default is '_id'\n */\nexport function buildReferencesKeyBy<TReferences>(\n references: Partial<TReferences>,\n idKeys?: Partial<ReferenceArrayExtractAllowKeys<TReferences>>\n) {\n const result: { [key in keyof TReferences]?: { [key: string]: ArrayInferExtract<TReferences[key]> } } = {};\n for (const key in references) {\n if (references.hasOwnProperty(key)) {\n const referenceIdKey = getReferenceIdKey<TReferences>(key, idKeys);\n const reference = references[key];\n if (reference instanceof Array) {\n const originalReferenceIdMap = keyBy<ArrayInferExtract<TReferences>>(reference, referenceIdKey);\n (result as any)[key] = originalReferenceIdMap;\n }\n }\n }\n return result;\n}\n","import { SimpleChanges } from '@angular/core';\n\nexport function hasLaterChange(changes: SimpleChanges): boolean {\n const hasChange = Object.keys(changes).find(key => {\n return changes[key] && !changes[key].isFirstChange();\n });\n return !!hasChange;\n}\n","import { isDevMode } from '@angular/core';\n\nconst record: Record<string, boolean> = {};\n\nlet logWarnDeprecation = true;\n\nexport const PREFIX = '[NGX-TETHYS]:';\n\nfunction notRecorded(...args: any[]): boolean {\n const asRecord = args.reduce((acc, c) => acc + c.toString(), '');\n\n if (record[asRecord]) {\n return false;\n } else {\n record[asRecord] = true;\n return true;\n }\n}\n\nfunction consoleCommonBehavior(consoleFunc: (...args: any) => void, ...args: any[]): void {\n if (isDevMode() && notRecorded(...args)) {\n consoleFunc(...args);\n }\n}\n\n// Warning should only be printed in dev mode and only once.\nexport const warn = (...args: any[]) => consoleCommonBehavior((...arg: any[]) => console.warn(PREFIX, ...arg), ...args);\n\nexport function createWarnDeprecation(prefix: string): (...args: any[]) => void {\n return (...args: any[]) => {\n const stack = new Error().stack;\n return consoleCommonBehavior(\n (...arg: any[]) => {\n if (logWarnDeprecation) {\n console.warn(prefix, 'deprecated:', ...arg, stack);\n }\n },\n ...args\n );\n };\n}\n\nexport const warnDeprecation = createWarnDeprecation(PREFIX);\n\n// Log should only be printed in dev mode.\nexport const log = (...args: any[]) => {\n if (isDevMode()) {\n console.log(PREFIX, ...args);\n }\n};\n\nexport function setWarnDeprecation(enabled: boolean) {\n logWarnDeprecation = enabled;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["coerceCssPixel","helpers.isString","helpers.coerceArray"],"mappings":"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"}
@@ -92,10 +92,10 @@ class ThyVote {
92
92
  classNames.push(`thy-vote-${this._layout}-size-${this._size}`);
93
93
  this.hostRenderer.updateClass(classNames);
94
94
  }
95
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyVote, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
96
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.1.4", type: ThyVote, isStandalone: true, selector: "thy-vote,[thyVote]", inputs: { thySize: "thySize", thyVote: "thyVote", thyRound: ["thyRound", "thyRound", coerceBooleanProperty], thyLayout: "thyLayout", thyVoteCount: "thyVoteCount", thyIcon: "thyIcon", thyHasVoted: ["thyHasVoted", "thyHasVoted", coerceBooleanProperty], thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty] }, host: { properties: { "class.thy-vote-disabled": "thyDisabled", "class.thy-vote": "this.class", "class.has-voted": "this._hasVoted" } }, queries: [{ propertyName: "voteIcon", first: true, predicate: ["voteIcon"], descendants: true }], ngImport: i0, template: "<thy-icon *ngIf=\"!voteIcon\" [thyIconName]=\"thyIcon\" [thyIconType]=\"_hasVoted ? 'fill' : ''\"></thy-icon>\n<ng-container *ngIf=\"voteIcon\" [ngTemplateOutlet]=\"voteIcon\"></ng-container>\n<div>{{ thyVoteCount }}</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyVote, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
96
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.0", type: ThyVote, isStandalone: true, selector: "thy-vote,[thyVote]", inputs: { thySize: "thySize", thyVote: "thyVote", thyRound: ["thyRound", "thyRound", coerceBooleanProperty], thyLayout: "thyLayout", thyVoteCount: "thyVoteCount", thyIcon: "thyIcon", thyHasVoted: ["thyHasVoted", "thyHasVoted", coerceBooleanProperty], thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty] }, host: { properties: { "class.thy-vote-disabled": "thyDisabled", "class.thy-vote": "this.class", "class.has-voted": "this._hasVoted" } }, queries: [{ propertyName: "voteIcon", first: true, predicate: ["voteIcon"], descendants: true }], ngImport: i0, template: "<thy-icon *ngIf=\"!voteIcon\" [thyIconName]=\"thyIcon\" [thyIconType]=\"_hasVoted ? 'fill' : ''\"></thy-icon>\n<ng-container *ngIf=\"voteIcon\" [ngTemplateOutlet]=\"voteIcon\"></ng-container>\n<div>{{ thyVoteCount }}</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
97
97
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyVote, decorators: [{
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyVote, decorators: [{
99
99
  type: Component,
100
100
  args: [{ selector: 'thy-vote,[thyVote]', host: {
101
101
  '[class.thy-vote-disabled]': `thyDisabled`
@@ -131,11 +131,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
131
131
  }] } });
132
132
 
133
133
  class ThyVoteModule {
134
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyVoteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
135
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: ThyVoteModule, imports: [CommonModule, ThySharedModule, ThyIconModule, ThyVote], exports: [ThyVote] }); }
136
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyVoteModule, imports: [CommonModule, ThySharedModule, ThyIconModule, ThyVote] }); }
134
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyVoteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
135
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: ThyVoteModule, imports: [CommonModule, ThySharedModule, ThyIconModule, ThyVote], exports: [ThyVote] }); }
136
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyVoteModule, imports: [CommonModule, ThySharedModule, ThyIconModule, ThyVote] }); }
137
137
  }
138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyVoteModule, decorators: [{
138
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyVoteModule, decorators: [{
139
139
  type: NgModule,
140
140
  args: [{
141
141
  imports: [CommonModule, ThySharedModule, ThyIconModule, ThyVote],
@@ -172,10 +172,10 @@ class ThyWatermarkDirective {
172
172
  };
173
173
  });
174
174
  }
175
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyWatermarkDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
176
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.1.4", type: ThyWatermarkDirective, isStandalone: true, selector: "[thyWatermark]", inputs: { thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty], thyWatermark: "thyWatermark", thyCanvasConfig: "thyCanvasConfig" }, usesOnChanges: true, ngImport: i0 }); }
175
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyWatermarkDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
176
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.0", type: ThyWatermarkDirective, isStandalone: true, selector: "[thyWatermark]", inputs: { thyDisabled: ["thyDisabled", "thyDisabled", coerceBooleanProperty], thyWatermark: "thyWatermark", thyCanvasConfig: "thyCanvasConfig" }, usesOnChanges: true, ngImport: i0 }); }
177
177
  }
178
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyWatermarkDirective, decorators: [{
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyWatermarkDirective, decorators: [{
179
179
  type: Directive,
180
180
  args: [{
181
181
  selector: '[thyWatermark]',
@@ -191,11 +191,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
191
191
  }] } });
192
192
 
193
193
  class ThyWatermarkModule {
194
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyWatermarkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
195
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.4", ngImport: i0, type: ThyWatermarkModule, imports: [CommonModule, ThySharedModule, ThyWatermarkDirective], exports: [ThyWatermarkDirective] }); }
196
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyWatermarkModule, imports: [CommonModule, ThySharedModule] }); }
194
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyWatermarkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
195
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.0", ngImport: i0, type: ThyWatermarkModule, imports: [CommonModule, ThySharedModule, ThyWatermarkDirective], exports: [ThyWatermarkDirective] }); }
196
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyWatermarkModule, imports: [CommonModule, ThySharedModule] }); }
197
197
  }
198
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ThyWatermarkModule, decorators: [{
198
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: ThyWatermarkModule, decorators: [{
199
199
  type: NgModule,
200
200
  args: [{
201
201
  imports: [CommonModule, ThySharedModule, ThyWatermarkDirective],
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys-watermark.mjs","sources":["../../../src/watermark/config.ts","../../../src/watermark/watermark.directive.ts","../../../src/watermark/watermark.module.ts","../../../src/watermark/ngx-tethys-watermark.ts"],"sourcesContent":["export const DEFAULT_WATERMARK_CONFIG = {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n opacity: '0.8',\n 'background-repeat': 'repeat',\n 'pointer-events': 'none',\n 'z-index': 2147483647,\n 'background-image': ''\n};\n\nexport const DEFAULT_CANVAS_CONFIG = {\n degree: 15,\n color: 'rgba(51, 51, 51, 0.12)',\n fontSize: 12,\n textLineHeight: 20,\n gutter: [250, 200]\n};\n","import { Directive, Input, ElementRef, OnInit, SimpleChanges, OnChanges, inject, DestroyRef } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DEFAULT_WATERMARK_CONFIG, DEFAULT_CANVAS_CONFIG } from './config';\nimport { MutationObserverFactory } from '@angular/cdk/observers';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport interface ThyCanvasConfigType {\n degree?: number;\n color?: string;\n fontSize?: number | string;\n textLineHeight?: number;\n gutter?: number[];\n}\n\n/**\n * 水印指令\n * @name thyWatermark\n */\n@Directive({\n selector: '[thyWatermark]',\n standalone: true\n})\nexport class ThyWatermarkDirective implements OnInit, OnChanges {\n /**\n * 是否禁用,默认为 false\n */\n @Input({ transform: coerceBooleanProperty })\n thyDisabled: boolean = false;\n\n content: string;\n /**\n * 水印内容\n */\n @Input()\n set thyWatermark(value: string) {\n value = value?.replace(/^\\\"|\\\"$/g, '');\n this.content = !!value ? value : '';\n }\n\n /**\n * canvas样式配置\n */\n @Input() thyCanvasConfig: ThyCanvasConfigType;\n\n private createWatermark$ = new Subject<string>();\n\n private observer: MutationObserver;\n\n private canvas: HTMLCanvasElement;\n\n private wmDiv: HTMLElement;\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(private el: ElementRef) {}\n\n ngOnInit() {\n if (!this.thyDisabled) {\n this.createWatermark$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.observeAttributes()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {});\n });\n this.createWatermark();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thyWatermark, thyDisabled } = changes;\n const thyWatermarkChange = () => {\n if (thyWatermark.firstChange) return;\n if (thyWatermark.currentValue) {\n this.refreshWatermark();\n }\n };\n const thyDisabledChange = () => {\n if (thyDisabled.firstChange) return;\n thyDisabled?.currentValue ? this.removeWatermark() : this.refreshWatermark();\n };\n thyWatermark && thyWatermarkChange();\n thyDisabled && thyDisabledChange();\n }\n\n private refreshWatermark() {\n this.removeWatermark();\n this.createWatermark();\n }\n\n private removeWatermark() {\n if (this.wmDiv) {\n this.wmDiv.remove();\n this.wmDiv = null;\n }\n }\n\n createCanvas() {\n let { gutter, fontSize, color, degree, textLineHeight } = {\n ...DEFAULT_CANVAS_CONFIG,\n ...(this.thyCanvasConfig || {})\n };\n\n const [xGutter, yGutter] = gutter;\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n\n const getFakeSize = () => {\n const fakeBox = document.createElement('div');\n const fakeBoxStyle = {\n position: 'absolute',\n top: 0,\n left: 0,\n display: 'inline-block',\n 'font-size': `${parseFloat('' + fontSize)}px`,\n 'word-wrap': 'break-word',\n 'font-family': 'inherit',\n 'white-space': 'pre-line'\n };\n const styleStr = Object.keys(fakeBoxStyle).reduce((pre, next) => ((pre += `${next}:${fakeBoxStyle[next]};`), pre), '');\n fakeBox.setAttribute('style', styleStr);\n\n fakeBox.innerHTML = this.content.replace(/(\\\\n)/gm, '</br>');\n document.querySelector('body').insertBefore(fakeBox, document.querySelector('body').firstChild);\n const { width, height } = fakeBox.getBoundingClientRect();\n fakeBox.remove();\n return { width, height };\n };\n const { width: fakeBoxWidth, height: fakeBoxHeight } = getFakeSize();\n\n const angle = (degree * Math.PI) / 180;\n const contentArr = this.content.split('\\\\n');\n const canvasHeight = Math.sin(angle) * fakeBoxWidth + fakeBoxHeight;\n\n let start = Math.ceil(Math.sin(angle) * fakeBoxWidth * Math.sin(angle));\n const canvasWidth = start + fakeBoxWidth;\n canvas.setAttribute('width', '' + (canvasWidth + xGutter));\n canvas.setAttribute('height', '' + (canvasHeight + yGutter));\n\n ctx.font = `${parseFloat('' + fontSize)}px microsoft yahei`;\n ctx.textAlign = 'center';\n ctx.textBaseline = 'top';\n ctx.fillStyle = color;\n ctx.rotate(0 - (degree * Math.PI) / 180);\n contentArr.map((k, i) => {\n ctx.fillText(k, -start + Math.ceil(canvasWidth / 2), Math.sin(angle) * canvasWidth + textLineHeight * i);\n start += Math.sin(angle) * textLineHeight;\n });\n this.canvas = canvas;\n return canvas;\n }\n\n private createWatermark(isRefresh = true) {\n const watermarkDiv = this.wmDiv || document.createElement('div');\n\n const background = !isRefresh ? this.canvas.toDataURL() : this.createCanvas().toDataURL();\n const watermarkStyle = {\n ...DEFAULT_WATERMARK_CONFIG,\n 'background-image': `url(${background})`\n };\n\n const styleStr = Object.keys(watermarkStyle).reduce((pre, next) => ((pre += `${next}:${watermarkStyle[next]};`), pre), '');\n watermarkDiv.setAttribute('style', styleStr);\n\n if (!this.wmDiv) {\n const parentNode = this.el.nativeElement;\n watermarkDiv.classList.add(`_vm`);\n this.wmDiv = watermarkDiv;\n parentNode.insertBefore(watermarkDiv, parentNode.firstChild);\n }\n this.createWatermark$.next('');\n }\n\n private observeAttributes() {\n this.observer?.disconnect();\n return new Observable(observe => {\n const stream = new Subject<MutationRecord[]>();\n this.observer = new MutationObserverFactory().create(mutations => stream.next(mutations));\n if (this.observer) {\n this.observer.observe(this.wmDiv, {\n attributes: true\n });\n }\n stream.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (this.wmDiv) {\n this?.observer?.disconnect();\n this.createWatermark(false);\n }\n });\n observe.next(stream);\n return () => {\n this.observer?.disconnect();\n };\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyWatermarkDirective } from './watermark.directive';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyWatermarkDirective],\n exports: [ThyWatermarkDirective],\n providers: []\n})\nexport class ThyWatermarkModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ngx-tethys-watermark.mjs","sources":["../../../src/watermark/config.ts","../../../src/watermark/watermark.directive.ts","../../../src/watermark/watermark.module.ts","../../../src/watermark/ngx-tethys-watermark.ts"],"sourcesContent":["export const DEFAULT_WATERMARK_CONFIG = {\n position: 'absolute',\n top: 0,\n left: 0,\n width: '100%',\n height: '100%',\n opacity: '0.8',\n 'background-repeat': 'repeat',\n 'pointer-events': 'none',\n 'z-index': 2147483647,\n 'background-image': ''\n};\n\nexport const DEFAULT_CANVAS_CONFIG = {\n degree: 15,\n color: 'rgba(51, 51, 51, 0.12)',\n fontSize: 12,\n textLineHeight: 20,\n gutter: [250, 200]\n};\n","import { Directive, Input, ElementRef, OnInit, SimpleChanges, OnChanges, inject, DestroyRef } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { DEFAULT_WATERMARK_CONFIG, DEFAULT_CANVAS_CONFIG } from './config';\nimport { MutationObserverFactory } from '@angular/cdk/observers';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\nexport interface ThyCanvasConfigType {\n degree?: number;\n color?: string;\n fontSize?: number | string;\n textLineHeight?: number;\n gutter?: number[];\n}\n\n/**\n * 水印指令\n * @name thyWatermark\n */\n@Directive({\n selector: '[thyWatermark]',\n standalone: true\n})\nexport class ThyWatermarkDirective implements OnInit, OnChanges {\n /**\n * 是否禁用,默认为 false\n */\n @Input({ transform: coerceBooleanProperty })\n thyDisabled: boolean = false;\n\n content: string;\n /**\n * 水印内容\n */\n @Input()\n set thyWatermark(value: string) {\n value = value?.replace(/^\\\"|\\\"$/g, '');\n this.content = !!value ? value : '';\n }\n\n /**\n * canvas样式配置\n */\n @Input() thyCanvasConfig: ThyCanvasConfigType;\n\n private createWatermark$ = new Subject<string>();\n\n private observer: MutationObserver;\n\n private canvas: HTMLCanvasElement;\n\n private wmDiv: HTMLElement;\n\n private readonly destroyRef = inject(DestroyRef);\n\n constructor(private el: ElementRef) {}\n\n ngOnInit() {\n if (!this.thyDisabled) {\n this.createWatermark$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n this.observeAttributes()\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {});\n });\n this.createWatermark();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n const { thyWatermark, thyDisabled } = changes;\n const thyWatermarkChange = () => {\n if (thyWatermark.firstChange) return;\n if (thyWatermark.currentValue) {\n this.refreshWatermark();\n }\n };\n const thyDisabledChange = () => {\n if (thyDisabled.firstChange) return;\n thyDisabled?.currentValue ? this.removeWatermark() : this.refreshWatermark();\n };\n thyWatermark && thyWatermarkChange();\n thyDisabled && thyDisabledChange();\n }\n\n private refreshWatermark() {\n this.removeWatermark();\n this.createWatermark();\n }\n\n private removeWatermark() {\n if (this.wmDiv) {\n this.wmDiv.remove();\n this.wmDiv = null;\n }\n }\n\n createCanvas() {\n let { gutter, fontSize, color, degree, textLineHeight } = {\n ...DEFAULT_CANVAS_CONFIG,\n ...(this.thyCanvasConfig || {})\n };\n\n const [xGutter, yGutter] = gutter;\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n\n const getFakeSize = () => {\n const fakeBox = document.createElement('div');\n const fakeBoxStyle = {\n position: 'absolute',\n top: 0,\n left: 0,\n display: 'inline-block',\n 'font-size': `${parseFloat('' + fontSize)}px`,\n 'word-wrap': 'break-word',\n 'font-family': 'inherit',\n 'white-space': 'pre-line'\n };\n const styleStr = Object.keys(fakeBoxStyle).reduce((pre, next) => ((pre += `${next}:${fakeBoxStyle[next]};`), pre), '');\n fakeBox.setAttribute('style', styleStr);\n\n fakeBox.innerHTML = this.content.replace(/(\\\\n)/gm, '</br>');\n document.querySelector('body').insertBefore(fakeBox, document.querySelector('body').firstChild);\n const { width, height } = fakeBox.getBoundingClientRect();\n fakeBox.remove();\n return { width, height };\n };\n const { width: fakeBoxWidth, height: fakeBoxHeight } = getFakeSize();\n\n const angle = (degree * Math.PI) / 180;\n const contentArr = this.content.split('\\\\n');\n const canvasHeight = Math.sin(angle) * fakeBoxWidth + fakeBoxHeight;\n\n let start = Math.ceil(Math.sin(angle) * fakeBoxWidth * Math.sin(angle));\n const canvasWidth = start + fakeBoxWidth;\n canvas.setAttribute('width', '' + (canvasWidth + xGutter));\n canvas.setAttribute('height', '' + (canvasHeight + yGutter));\n\n ctx.font = `${parseFloat('' + fontSize)}px microsoft yahei`;\n ctx.textAlign = 'center';\n ctx.textBaseline = 'top';\n ctx.fillStyle = color;\n ctx.rotate(0 - (degree * Math.PI) / 180);\n contentArr.map((k, i) => {\n ctx.fillText(k, -start + Math.ceil(canvasWidth / 2), Math.sin(angle) * canvasWidth + textLineHeight * i);\n start += Math.sin(angle) * textLineHeight;\n });\n this.canvas = canvas;\n return canvas;\n }\n\n private createWatermark(isRefresh = true) {\n const watermarkDiv = this.wmDiv || document.createElement('div');\n\n const background = !isRefresh ? this.canvas.toDataURL() : this.createCanvas().toDataURL();\n const watermarkStyle = {\n ...DEFAULT_WATERMARK_CONFIG,\n 'background-image': `url(${background})`\n };\n\n const styleStr = Object.keys(watermarkStyle).reduce((pre, next) => ((pre += `${next}:${watermarkStyle[next]};`), pre), '');\n watermarkDiv.setAttribute('style', styleStr);\n\n if (!this.wmDiv) {\n const parentNode = this.el.nativeElement;\n watermarkDiv.classList.add(`_vm`);\n this.wmDiv = watermarkDiv;\n parentNode.insertBefore(watermarkDiv, parentNode.firstChild);\n }\n this.createWatermark$.next('');\n }\n\n private observeAttributes() {\n this.observer?.disconnect();\n return new Observable(observe => {\n const stream = new Subject<MutationRecord[]>();\n this.observer = new MutationObserverFactory().create(mutations => stream.next(mutations));\n if (this.observer) {\n this.observer.observe(this.wmDiv, {\n attributes: true\n });\n }\n stream.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {\n if (this.wmDiv) {\n this?.observer?.disconnect();\n this.createWatermark(false);\n }\n });\n observe.next(stream);\n return () => {\n this.observer?.disconnect();\n };\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThyWatermarkDirective } from './watermark.directive';\n\n@NgModule({\n imports: [CommonModule, ThySharedModule, ThyWatermarkDirective],\n exports: [ThyWatermarkDirective],\n providers: []\n})\nexport class ThyWatermarkModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Version } from '@angular/core';
2
2
 
3
- const VERSION = new Version('18.0.0');
3
+ const VERSION = new Version('18.0.2');
4
4
 
5
5
  /**
6
6
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('18.0.0');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ;;ACF3C;;AAEG;;;;"}
1
+ {"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('18.0.2');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ;;ACF3C;;AAEG;;;;"}
@@ -1,3 +1,5 @@
1
+ @use 'variables.scss' as variables2;
2
+
1
3
  .flexible-content {
2
4
  margin-left: 60px;
3
5
  .flexible-top {
@@ -21,7 +23,7 @@
21
23
  width: 120px;
22
24
  height: 36px;
23
25
  line-height: 36px;
24
- border: 1px solid #eee;
26
+ border: 1px solid variables2.$gray-200;
25
27
  border-radius: 4px;
26
28
  }
27
29
  }