@odx/angular 5.7.4 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (658) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/animations/lib/expand.d.ts +44 -0
  3. package/animations/lib/fade.d.ts +70 -0
  4. package/animations/lib/slide.d.ts +21 -0
  5. package/animations/lib/wait-for-child-animations.d.ts +38 -0
  6. package/breakpoints/lib/breakpoints.config.d.ts +38 -0
  7. package/breakpoints/lib/breakpoints.service.d.ts +43 -0
  8. package/breakpoints/lib/directives/match-breakpoints.directive.d.ts +36 -0
  9. package/breakpoints/lib/helpers/configure-breakpoint.d.ts +19 -0
  10. package/cdk/a11y/lib/directives/interactive.directive.d.ts +32 -0
  11. package/cdk/a11y/lib/directives/list-focus-manager-option.directive.d.ts +22 -0
  12. package/cdk/a11y/lib/directives/list-focus-manager.directive.d.ts +17 -0
  13. package/cdk/active-indicator/lib/active-indicator.directive.d.ts +63 -0
  14. package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +53 -0
  15. package/cdk/checkbox-control/lib/checkbox-control.directive.d.ts +3 -0
  16. package/cdk/connected-overlay/lib/connected-overlay.service.d.ts +44 -0
  17. package/cdk/connected-overlay/lib/helpers/compute-overlay-position.d.ts +10 -0
  18. package/cdk/connected-overlay/lib/models/connected-overlay-ref.d.ts +49 -0
  19. package/cdk/custom-form-control/lib/custom-form-control.d.ts +108 -0
  20. package/cdk/custom-form-control/lib/input-control.directive.d.ts +75 -0
  21. package/cdk/dynamic-view/lib/dynamic-view.directive.d.ts +25 -0
  22. package/cdk/dynamic-view/lib/dynamic-view.service.d.ts +30 -0
  23. package/cdk/dynamic-view/lib/helpers/create-projectable-nodes.d.ts +22 -0
  24. package/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.d.ts +22 -0
  25. package/cdk/dynamic-view/lib/helpers/is-dynamic-view.d.ts +22 -0
  26. package/cdk/dynamic-view/lib/models/dynamic-component-ref.d.ts +39 -0
  27. package/cdk/dynamic-view/lib/models/dynamic-template-ref.d.ts +36 -0
  28. package/cdk/event-plugins/lib/event-plugins.config.d.ts +35 -0
  29. package/cdk/event-plugins/lib/models/event-plugin.d.ts +57 -0
  30. package/cdk/event-plugins/lib/plugins/debounce-event-plugin.d.ts +32 -0
  31. package/cdk/event-plugins/lib/plugins/defer-event-plugin.d.ts +24 -0
  32. package/cdk/expandable/lib/directives/expandable-container.directive.d.ts +41 -0
  33. package/cdk/expandable/lib/directives/expandable-item.directive.d.ts +47 -0
  34. package/cdk/option-control/lib/option-control.d.ts +47 -0
  35. package/cdk/radio-group-control/lib/radio-control.directive.d.ts +8 -0
  36. package/cdk/radio-group-control/lib/radio-group-control.directive.d.ts +11 -0
  37. package/components/accordion/lib/accordion.component.d.ts +8 -0
  38. package/components/accordion/lib/components/accordion-item/accordion-item.component.d.ts +37 -1
  39. package/components/accordion/lib/directives/accordion-item-title.d.ts +3 -0
  40. package/components/action-group/action-group.component.d.ts +6 -0
  41. package/components/area-header/area-header.component.d.ts +8 -0
  42. package/components/area-header/directives/area-header-content.directive.d.ts +3 -0
  43. package/components/area-header/directives/area-header-subtitle.directive.d.ts +3 -0
  44. package/components/autocomplete/lib/autocomplete.component.d.ts +17 -0
  45. package/components/avatar/lib/avatar.component.d.ts +8 -0
  46. package/components/badge/lib/badge.component.d.ts +10 -0
  47. package/components/badge/lib/badge.directive.d.ts +15 -0
  48. package/components/bar/lib/bar.component.d.ts +7 -0
  49. package/components/bar/lib/directives/bar-button.directive.d.ts +3 -0
  50. package/components/bar/lib/directives/bar-label.directive.d.ts +3 -0
  51. package/components/breadcrumbs/lib/breadcrumbs.component.d.ts +3 -0
  52. package/components/button/lib/button.component.d.ts +10 -0
  53. package/components/button-group/lib/button-group.component.d.ts +15 -0
  54. package/components/calendar/lib/calendar.component.d.ts +48 -0
  55. package/components/calendar/lib/calendar.config.d.ts +41 -93
  56. package/components/calendar/lib/calendar.service.d.ts +48 -0
  57. package/components/calendar/lib/components/calendar-header/calendar-header.component.d.ts +24 -0
  58. package/components/calendar/lib/components/calendar-month/calendar-month.component.d.ts +6 -0
  59. package/components/calendar/lib/components/calendar-year/calendar-year.component.d.ts +6 -0
  60. package/components/calendar/lib/components/calendar-years/calendar-years.component.d.ts +6 -0
  61. package/components/calendar/lib/daterange.service.d.ts +16 -0
  62. package/components/calendar/lib/directives/calendar-cell.directive.d.ts +37 -9
  63. package/components/calendar/lib/directives/calendar-view.directive.d.ts +41 -9
  64. package/components/calendar/lib/pipes/date-label.pipe.d.ts +12 -21
  65. package/components/calendar/lib/services/calendar-month.service.d.ts +1 -0
  66. package/components/calendar/lib/services/calendar-year.service.d.ts +1 -0
  67. package/components/calendar/lib/services/calendar-years.service.d.ts +1 -0
  68. package/components/calendar/lib/utils/check-cell-in-range.d.ts +1 -0
  69. package/components/calendar/lib/utils/check-identical-date.d.ts +1 -0
  70. package/components/calendar/lib/utils/get-A11y-label.d.ts +2 -2
  71. package/components/calendar/lib/utils/is-date-disabled.d.ts +1 -0
  72. package/components/calendar/lib/utils/parse-date.d.ts +1 -0
  73. package/components/calendar/lib/utils/validate-daterange.d.ts +1 -0
  74. package/components/calendar/lib/utils/validate-max-date.d.ts +1 -0
  75. package/components/calendar/lib/utils/validate-min-date.d.ts +1 -0
  76. package/components/calendar/lib/utils/validate-next-date-set.d.ts +1 -0
  77. package/components/calendar/lib/utils/validate-previous-date-set.d.ts +1 -0
  78. package/components/checkbox/lib/checkbox.component.d.ts +32 -0
  79. package/components/checkbox/lib/checkbox.validator.d.ts +23 -0
  80. package/components/chip/lib/components/chip/chip.component.d.ts +14 -0
  81. package/components/chip/lib/components/chip-list/chip-list.component.d.ts +3 -0
  82. package/components/chip/lib/components/chip-list-row/chip-list-row.component.d.ts +3 -0
  83. package/components/circular-progress/lib/circular-progress.component.d.ts +20 -0
  84. package/components/content-box/lib/content-box.component.d.ts +3 -0
  85. package/components/content-box/lib/directives/content-box-footer.directive.d.ts +3 -0
  86. package/components/content-box/lib/directives/content-box-header.directive.d.ts +3 -0
  87. package/components/datepicker/lib/datepicker.component.d.ts +47 -0
  88. package/components/datepicker/lib/datepicker.config.d.ts +19 -0
  89. package/components/datepicker/lib/directives/datepicker-input-control.directive.d.ts +30 -0
  90. package/components/datepicker/lib/utils/get-datepicker-input-pattern.d.ts +2 -0
  91. package/components/datepicker/lib/utils/get-datepicker-input-value-as-date.d.ts +1 -0
  92. package/components/daterangepicker/lib/daterangepicker.component.d.ts +89 -0
  93. package/components/daterangepicker/lib/daterangepicker.config.d.ts +19 -0
  94. package/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.d.ts +30 -0
  95. package/components/daterangepicker/lib/range.validator.d.ts +15 -0
  96. package/components/daterangepicker/lib/required.validator.d.ts +6 -0
  97. package/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.d.ts +2 -0
  98. package/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.d.ts +1 -0
  99. package/components/dropdown/lib/dropdown.component.d.ts +16 -0
  100. package/components/dropdown/lib/dropdown.directive.d.ts +67 -0
  101. package/components/dropdown/lib/helpers/close-current-dropdown.d.ts +5 -0
  102. package/components/error-page/lib/error-page.component.d.ts +7 -0
  103. package/components/error-page/lib/error-page.config.d.ts +18 -0
  104. package/components/footer/lib/footer.component.d.ts +9 -6
  105. package/components/footer/lib/footer.config.d.ts +2 -0
  106. package/components/form-field/lib/components/form-field-info/form-field-info.component.d.ts +13 -0
  107. package/components/form-field/lib/components/form-group/form-group.component.d.ts +16 -0
  108. package/components/form-field/lib/directives/form-field-control.directive.d.ts +5 -0
  109. package/components/form-field/lib/directives/form-field-error.directive.d.ts +6 -0
  110. package/components/form-field/lib/directives/form-field-hint.directive.d.ts +3 -0
  111. package/components/form-field/lib/directives/form-field-label.directive.d.ts +3 -0
  112. package/components/form-field/lib/directives/form.directive.d.ts +13 -0
  113. package/components/form-field/lib/form-field.component.d.ts +20 -0
  114. package/components/form-field/lib/form-field.service.d.ts +42 -0
  115. package/components/form-field/lib/services/form-field-error.service.d.ts +24 -0
  116. package/components/header/lib/directives/header-avatar.directive.d.ts +4 -0
  117. package/components/header/lib/directives/header-title.directive.d.ts +3 -0
  118. package/components/header/lib/header.component.d.ts +3 -0
  119. package/components/header-navigation/lib/directives/header-navigation-link.directive.d.ts +3 -0
  120. package/components/header-navigation/lib/header-navigation.component.d.ts +6 -0
  121. package/components/icon/lib/helpers/unpack-icon-identifier.d.ts +14 -0
  122. package/components/icon/lib/icon.component.d.ts +24 -0
  123. package/components/icon/lib/icon.config.d.ts +26 -0
  124. package/components/inline-message/lib/inline-message.component.d.ts +13 -0
  125. package/components/link/link.directive.d.ts +3 -0
  126. package/components/list/lib/components/expandable-list-item/expandable-list-item.component.d.ts +6 -0
  127. package/components/list/lib/components/list-item/list-item.component.d.ts +17 -1
  128. package/components/list/lib/list.component.d.ts +5 -0
  129. package/components/loading-spinner/lib/loading-spinner.component.d.ts +8 -0
  130. package/components/loading-spinner/lib/loading-spinner.directive.d.ts +22 -0
  131. package/components/logo/logo.directive.d.ts +15 -0
  132. package/components/main-menu/lib/directives/main-menu-button.directive.d.ts +5 -1
  133. package/components/main-menu/lib/directives/main-menu-close.directive.d.ts +3 -0
  134. package/components/main-menu/lib/directives/main-menu-item.directive.d.ts +16 -0
  135. package/components/main-menu/lib/helpers/create-main-menu-links.d.ts +1 -0
  136. package/components/main-menu/lib/main-menu.component.d.ts +42 -0
  137. package/components/main-menu/lib/main-menu.config.d.ts +31 -0
  138. package/components/main-menu/lib/main-menu.service.d.ts +28 -0
  139. package/components/mainfilter-group/lib/mainfilter-group.component.d.ts +4 -0
  140. package/components/menu/lib/directives/menu-item.directive.d.ts +6 -0
  141. package/components/menu/lib/menu.component.d.ts +13 -1
  142. package/components/menu/lib/menu.directive.d.ts +31 -0
  143. package/components/modal/lib/components/basic-modal/basic-modal.component.d.ts +14 -0
  144. package/components/modal/lib/components/modal-footer/modal-footer.component.d.ts +3 -0
  145. package/components/modal/lib/components/modal-header/modal-header.component.d.ts +9 -0
  146. package/components/modal/lib/components/modal-hero/modal-hero.component.d.ts +21 -0
  147. package/components/modal/lib/directives/modal-close.directive.d.ts +25 -1
  148. package/components/modal/lib/directives/modal-content.directive.d.ts +3 -0
  149. package/components/modal/lib/directives/modal-dismiss.directive.d.ts +18 -1
  150. package/components/modal/lib/helpers/inject-modal-ref.d.ts +21 -0
  151. package/components/modal/lib/helpers/provide-modal-ref.d.ts +9 -0
  152. package/components/modal/lib/modal.component.d.ts +25 -0
  153. package/components/modal/lib/modal.config.d.ts +33 -0
  154. package/components/modal/lib/modal.directive.d.ts +29 -0
  155. package/components/modal/lib/modal.service.d.ts +54 -0
  156. package/components/modal/lib/models/modal-ref.d.ts +34 -0
  157. package/components/navigation-back/lib/navigation-back.component.d.ts +3 -0
  158. package/components/notification/lib/components/notification-center/notification-center.component.d.ts +0 -2
  159. package/components/notification/lib/directives/notification-center.directive.d.ts +18 -4
  160. package/components/notification/lib/helpers/get-notifications-by-tag.d.ts +1 -0
  161. package/components/notification/lib/helpers/sort-notifications.d.ts +1 -0
  162. package/components/notification/lib/helpers/to-notification-collection.d.ts +1 -0
  163. package/components/notification/lib/models/notification-feature.d.ts +15 -0
  164. package/components/notification/lib/notification.config.d.ts +54 -0
  165. package/components/notification/lib/notification.logger.d.ts +1 -0
  166. package/components/notification/lib/notification.service.d.ts +55 -0
  167. package/components/notification/lib/notification.tokens.d.ts +3 -0
  168. package/components/notification/lib/services/notification-center.service.d.ts +9 -0
  169. package/components/paginator/lib/paginator.component.d.ts +89 -0
  170. package/components/paginator/lib/paginator.config.d.ts +24 -2
  171. package/components/progress/lib/progress.component.d.ts +15 -0
  172. package/components/radio-group/lib/radio-group.component.d.ts +11 -0
  173. package/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.d.ts +19 -0
  174. package/components/rail-navigation/lib/rail-navigation.component.d.ts +26 -0
  175. package/components/rich-list/lib/components/rich-list-content/rich-list-content.component.d.ts +4 -0
  176. package/components/rich-list/lib/components/rich-list-header/rich-list-header.component.d.ts +4 -0
  177. package/components/rich-list/lib/components/rich-list-item/rich-list-item.component.d.ts +9 -1
  178. package/components/rich-list/lib/rich-list.component.d.ts +9 -2
  179. package/components/select/lib/components/select-option/select-option.component.d.ts +39 -2
  180. package/components/select/lib/directives/select-input-control.directive.d.ts +11 -0
  181. package/components/select/lib/pipes/select-search-filter.pipe.d.ts +10 -0
  182. package/components/select/lib/select.component.d.ts +59 -0
  183. package/components/slider/lib/slider.directive.d.ts +19 -0
  184. package/components/spinbox/lib/spinbox.component.d.ts +16 -0
  185. package/components/switch/lib/switch.component.d.ts +10 -0
  186. package/components/switch/lib/switch.validator.d.ts +12 -0
  187. package/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.d.ts +28 -0
  188. package/components/tab-bar/lib/tab-bar.component.d.ts +69 -0
  189. package/components/table/lib/components/check-cell/check-cell.component.d.ts +18 -0
  190. package/components/table/lib/components/header-title/header-title.component.d.ts +33 -1
  191. package/components/table/lib/directives/table-cell.directive.d.ts +4 -0
  192. package/components/table/lib/directives/table-row.directive.d.ts +4 -0
  193. package/components/table/lib/table.component.d.ts +36 -0
  194. package/components/timepicker/lib/timepicker.component.d.ts +11 -2
  195. package/components/timepicker/lib/utils/generate-time-stamps.d.ts +2 -1
  196. package/components/timepicker/lib/utils/ngx-mask-helper.d.ts +2 -2
  197. package/components/toast/lib/toast.config.d.ts +26 -0
  198. package/components/toast/lib/toast.service.d.ts +35 -0
  199. package/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.d.ts +11 -0
  200. package/components/toggle-button-group/lib/toggle-button-group.component.d.ts +12 -0
  201. package/components/tooltip/lib/tooltip.component.d.ts +20 -0
  202. package/components/tooltip/lib/tooltip.directive.d.ts +35 -0
  203. package/components/wizard/lib/components/wizard-step/wizard-step.component.d.ts +34 -0
  204. package/components/wizard/lib/wizard.component.d.ts +20 -0
  205. package/esm2022/animations/lib/expand.mjs +45 -1
  206. package/esm2022/animations/lib/fade.mjs +71 -1
  207. package/esm2022/animations/lib/slide.mjs +22 -1
  208. package/esm2022/animations/lib/wait-for-child-animations.mjs +39 -1
  209. package/esm2022/breakpoints/lib/breakpoints.config.mjs +39 -1
  210. package/esm2022/breakpoints/lib/breakpoints.service.mjs +44 -1
  211. package/esm2022/breakpoints/lib/directives/match-breakpoints.directive.mjs +37 -1
  212. package/esm2022/breakpoints/lib/helpers/configure-breakpoint.mjs +20 -1
  213. package/esm2022/cdk/a11y/lib/directives/interactive.directive.mjs +33 -1
  214. package/esm2022/cdk/a11y/lib/directives/list-focus-manager-option.directive.mjs +23 -1
  215. package/esm2022/cdk/a11y/lib/directives/list-focus-manager.directive.mjs +18 -1
  216. package/esm2022/cdk/active-indicator/lib/active-indicator.directive.mjs +64 -1
  217. package/esm2022/cdk/autocomplete-control/lib/autocomplete-control.mjs +39 -1
  218. package/esm2022/cdk/checkbox-control/lib/checkbox-control.directive.mjs +4 -1
  219. package/esm2022/cdk/connected-overlay/lib/connected-overlay.service.mjs +45 -1
  220. package/esm2022/cdk/connected-overlay/lib/helpers/compute-overlay-position.mjs +11 -1
  221. package/esm2022/cdk/connected-overlay/lib/models/connected-overlay-ref.mjs +50 -1
  222. package/esm2022/cdk/custom-form-control/lib/custom-form-control.mjs +109 -3
  223. package/esm2022/cdk/custom-form-control/lib/input-control.directive.mjs +76 -1
  224. package/esm2022/cdk/dynamic-view/lib/dynamic-view.directive.mjs +18 -1
  225. package/esm2022/cdk/dynamic-view/lib/dynamic-view.service.mjs +31 -1
  226. package/esm2022/cdk/dynamic-view/lib/helpers/create-projectable-nodes.mjs +23 -1
  227. package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-text-content.mjs +23 -1
  228. package/esm2022/cdk/dynamic-view/lib/helpers/is-dynamic-view.mjs +23 -1
  229. package/esm2022/cdk/dynamic-view/lib/models/dynamic-component-ref.mjs +40 -1
  230. package/esm2022/cdk/dynamic-view/lib/models/dynamic-template-ref.mjs +37 -1
  231. package/esm2022/cdk/event-plugins/lib/event-plugins.config.mjs +36 -1
  232. package/esm2022/cdk/event-plugins/lib/models/event-plugin.mjs +45 -1
  233. package/esm2022/cdk/event-plugins/lib/plugins/debounce-event-plugin.mjs +33 -1
  234. package/esm2022/cdk/event-plugins/lib/plugins/defer-event-plugin.mjs +25 -1
  235. package/esm2022/cdk/expandable/lib/directives/expandable-container.directive.mjs +42 -1
  236. package/esm2022/cdk/expandable/lib/directives/expandable-item.directive.mjs +48 -1
  237. package/esm2022/cdk/option-control/lib/option-control.mjs +48 -1
  238. package/esm2022/cdk/radio-group-control/lib/radio-control.directive.mjs +9 -1
  239. package/esm2022/cdk/radio-group-control/lib/radio-group-control.directive.mjs +12 -1
  240. package/esm2022/components/accordion/lib/accordion.component.mjs +9 -1
  241. package/esm2022/components/accordion/lib/components/accordion-item/accordion-item.component.mjs +31 -1
  242. package/esm2022/components/accordion/lib/directives/accordion-item-title.mjs +4 -1
  243. package/esm2022/components/action-group/action-group.component.mjs +7 -1
  244. package/esm2022/components/area-header/area-header.component.mjs +9 -1
  245. package/esm2022/components/area-header/directives/area-header-content.directive.mjs +4 -1
  246. package/esm2022/components/area-header/directives/area-header-subtitle.directive.mjs +4 -1
  247. package/esm2022/components/autocomplete/lib/autocomplete.component.mjs +18 -1
  248. package/esm2022/components/avatar/lib/avatar.component.mjs +9 -1
  249. package/esm2022/components/badge/lib/badge.component.mjs +11 -1
  250. package/esm2022/components/badge/lib/badge.directive.mjs +16 -1
  251. package/esm2022/components/bar/lib/bar.component.mjs +8 -1
  252. package/esm2022/components/bar/lib/directives/bar-button.directive.mjs +4 -1
  253. package/esm2022/components/bar/lib/directives/bar-label.directive.mjs +4 -1
  254. package/esm2022/components/breadcrumbs/lib/breadcrumbs.component.mjs +4 -1
  255. package/esm2022/components/button/lib/button.component.mjs +11 -1
  256. package/esm2022/components/button-group/lib/button-group.component.mjs +16 -1
  257. package/esm2022/components/calendar/lib/calendar.component.mjs +35 -1
  258. package/esm2022/components/calendar/lib/calendar.config.mjs +18 -12
  259. package/esm2022/components/calendar/lib/calendar.service.mjs +49 -1
  260. package/esm2022/components/calendar/lib/components/calendar-header/calendar-header.component.mjs +19 -1
  261. package/esm2022/components/calendar/lib/components/calendar-month/calendar-month.component.mjs +9 -3
  262. package/esm2022/components/calendar/lib/components/calendar-year/calendar-year.component.mjs +9 -3
  263. package/esm2022/components/calendar/lib/components/calendar-years/calendar-years.component.mjs +9 -3
  264. package/esm2022/components/calendar/lib/daterange.service.mjs +17 -1
  265. package/esm2022/components/calendar/lib/directives/calendar-cell.directive.mjs +27 -2
  266. package/esm2022/components/calendar/lib/directives/calendar-view.directive.mjs +39 -1
  267. package/esm2022/components/calendar/lib/pipes/date-label.pipe.mjs +27 -9
  268. package/esm2022/components/calendar/lib/services/calendar-month.service.mjs +2 -1
  269. package/esm2022/components/calendar/lib/services/calendar-year.service.mjs +2 -1
  270. package/esm2022/components/calendar/lib/services/calendar-years.service.mjs +2 -1
  271. package/esm2022/components/calendar/lib/utils/check-cell-in-range.mjs +2 -1
  272. package/esm2022/components/calendar/lib/utils/check-identical-date.mjs +2 -1
  273. package/esm2022/components/calendar/lib/utils/get-A11y-label.mjs +11 -8
  274. package/esm2022/components/calendar/lib/utils/is-date-disabled.mjs +2 -1
  275. package/esm2022/components/calendar/lib/utils/parse-date.mjs +2 -1
  276. package/esm2022/components/calendar/lib/utils/validate-daterange.mjs +2 -1
  277. package/esm2022/components/calendar/lib/utils/validate-max-date.mjs +2 -1
  278. package/esm2022/components/calendar/lib/utils/validate-min-date.mjs +2 -1
  279. package/esm2022/components/calendar/lib/utils/validate-next-date-set.mjs +2 -1
  280. package/esm2022/components/calendar/lib/utils/validate-previous-date-set.mjs +2 -1
  281. package/esm2022/components/checkbox/lib/checkbox.component.mjs +33 -1
  282. package/esm2022/components/checkbox/lib/checkbox.validator.mjs +24 -1
  283. package/esm2022/components/chip/lib/components/chip/chip.component.mjs +15 -1
  284. package/esm2022/components/chip/lib/components/chip-list/chip-list.component.mjs +4 -1
  285. package/esm2022/components/chip/lib/components/chip-list-row/chip-list-row.component.mjs +4 -1
  286. package/esm2022/components/circular-progress/lib/circular-progress.component.mjs +21 -1
  287. package/esm2022/components/content-box/lib/content-box.component.mjs +4 -1
  288. package/esm2022/components/content-box/lib/directives/content-box-footer.directive.mjs +4 -1
  289. package/esm2022/components/content-box/lib/directives/content-box-header.directive.mjs +4 -1
  290. package/esm2022/components/datepicker/lib/datepicker.component.mjs +33 -1
  291. package/esm2022/components/datepicker/lib/datepicker.config.mjs +20 -1
  292. package/esm2022/components/datepicker/lib/directives/datepicker-input-control.directive.mjs +31 -1
  293. package/esm2022/components/datepicker/lib/utils/get-datepicker-input-pattern.mjs +3 -1
  294. package/esm2022/components/datepicker/lib/utils/get-datepicker-input-value-as-date.mjs +2 -1
  295. package/esm2022/components/daterangepicker/lib/daterangepicker.component.mjs +65 -1
  296. package/esm2022/components/daterangepicker/lib/daterangepicker.config.mjs +20 -1
  297. package/esm2022/components/daterangepicker/lib/directives/daterangepicker-input-control.directive.mjs +31 -1
  298. package/esm2022/components/daterangepicker/lib/range.validator.mjs +16 -1
  299. package/esm2022/components/daterangepicker/lib/required.validator.mjs +15 -1
  300. package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-pattern.mjs +3 -1
  301. package/esm2022/components/daterangepicker/lib/utils/get-daterangepicker-input-value-as-date.mjs +2 -1
  302. package/esm2022/components/dropdown/lib/dropdown.component.mjs +8 -1
  303. package/esm2022/components/dropdown/lib/dropdown.directive.mjs +55 -1
  304. package/esm2022/components/dropdown/lib/helpers/close-current-dropdown.mjs +6 -1
  305. package/esm2022/components/error-page/lib/error-page.component.mjs +8 -1
  306. package/esm2022/components/error-page/lib/error-page.config.mjs +9 -1
  307. package/esm2022/components/footer/lib/footer.component.mjs +10 -7
  308. package/esm2022/components/footer/lib/footer.config.mjs +3 -1
  309. package/esm2022/components/form-field/lib/components/form-field-info/form-field-info.component.mjs +14 -1
  310. package/esm2022/components/form-field/lib/components/form-group/form-group.component.mjs +13 -1
  311. package/esm2022/components/form-field/lib/directives/form-field-control.directive.mjs +6 -1
  312. package/esm2022/components/form-field/lib/directives/form-field-error.directive.mjs +4 -1
  313. package/esm2022/components/form-field/lib/directives/form-field-hint.directive.mjs +4 -1
  314. package/esm2022/components/form-field/lib/directives/form-field-label.directive.mjs +4 -1
  315. package/esm2022/components/form-field/lib/directives/form.directive.mjs +14 -1
  316. package/esm2022/components/form-field/lib/form-field.component.mjs +14 -1
  317. package/esm2022/components/form-field/lib/form-field.service.mjs +43 -1
  318. package/esm2022/components/form-field/lib/services/form-field-error.service.mjs +25 -1
  319. package/esm2022/components/header/lib/directives/header-avatar.directive.mjs +5 -1
  320. package/esm2022/components/header/lib/directives/header-title.directive.mjs +4 -1
  321. package/esm2022/components/header/lib/header.component.mjs +4 -1
  322. package/esm2022/components/header-navigation/lib/directives/header-navigation-link.directive.mjs +4 -1
  323. package/esm2022/components/header-navigation/lib/header-navigation.component.mjs +4 -1
  324. package/esm2022/components/icon/lib/helpers/unpack-icon-identifier.mjs +15 -1
  325. package/esm2022/components/icon/lib/icon.component.mjs +25 -1
  326. package/esm2022/components/icon/lib/icon.config.mjs +20 -1
  327. package/esm2022/components/inline-message/lib/inline-message.component.mjs +14 -1
  328. package/esm2022/components/link/link.directive.mjs +4 -1
  329. package/esm2022/components/list/lib/components/expandable-list-item/expandable-list-item.component.mjs +7 -1
  330. package/esm2022/components/list/lib/components/list-item/list-item.component.mjs +18 -2
  331. package/esm2022/components/list/lib/list.component.mjs +6 -1
  332. package/esm2022/components/loading-spinner/lib/loading-spinner.component.mjs +10 -2
  333. package/esm2022/components/loading-spinner/lib/loading-spinner.directive.mjs +23 -1
  334. package/esm2022/components/logo/logo.directive.mjs +16 -1
  335. package/esm2022/components/main-menu/lib/directives/main-menu-button.directive.mjs +5 -1
  336. package/esm2022/components/main-menu/lib/directives/main-menu-close.directive.mjs +4 -1
  337. package/esm2022/components/main-menu/lib/directives/main-menu-item.directive.mjs +17 -1
  338. package/esm2022/components/main-menu/lib/helpers/create-main-menu-links.mjs +2 -1
  339. package/esm2022/components/main-menu/lib/main-menu.component.mjs +37 -1
  340. package/esm2022/components/main-menu/lib/main-menu.config.mjs +32 -1
  341. package/esm2022/components/main-menu/lib/main-menu.service.mjs +29 -1
  342. package/esm2022/components/mainfilter-group/lib/mainfilter-group.component.mjs +5 -1
  343. package/esm2022/components/menu/lib/directives/menu-item.directive.mjs +7 -1
  344. package/esm2022/components/menu/lib/menu.component.mjs +13 -1
  345. package/esm2022/components/menu/lib/menu.directive.mjs +19 -1
  346. package/esm2022/components/modal/lib/components/basic-modal/basic-modal.component.mjs +15 -1
  347. package/esm2022/components/modal/lib/components/modal-footer/modal-footer.component.mjs +4 -1
  348. package/esm2022/components/modal/lib/components/modal-header/modal-header.component.mjs +4 -1
  349. package/esm2022/components/modal/lib/components/modal-hero/modal-hero.component.mjs +12 -1
  350. package/esm2022/components/modal/lib/directives/modal-close.directive.mjs +25 -1
  351. package/esm2022/components/modal/lib/directives/modal-content.directive.mjs +4 -1
  352. package/esm2022/components/modal/lib/directives/modal-dismiss.directive.mjs +18 -1
  353. package/esm2022/components/modal/lib/helpers/inject-modal-ref.mjs +22 -1
  354. package/esm2022/components/modal/lib/helpers/provide-modal-ref.mjs +10 -1
  355. package/esm2022/components/modal/lib/modal.component.mjs +21 -2
  356. package/esm2022/components/modal/lib/modal.config.mjs +34 -1
  357. package/esm2022/components/modal/lib/modal.directive.mjs +25 -1
  358. package/esm2022/components/modal/lib/modal.service.mjs +39 -1
  359. package/esm2022/components/modal/lib/models/modal-ref.mjs +34 -1
  360. package/esm2022/components/navigation-back/lib/navigation-back.component.mjs +4 -1
  361. package/esm2022/components/notification/lib/components/notification-center/notification-center.component.mjs +1 -3
  362. package/esm2022/components/notification/lib/directives/notification-center.directive.mjs +19 -5
  363. package/esm2022/components/notification/lib/helpers/get-notifications-by-tag.mjs +2 -1
  364. package/esm2022/components/notification/lib/helpers/sort-notifications.mjs +2 -1
  365. package/esm2022/components/notification/lib/helpers/to-notification-collection.mjs +2 -1
  366. package/esm2022/components/notification/lib/models/notification-feature.mjs +16 -1
  367. package/esm2022/components/notification/lib/notification.config.mjs +45 -1
  368. package/esm2022/components/notification/lib/notification.logger.mjs +2 -1
  369. package/esm2022/components/notification/lib/notification.service.mjs +56 -1
  370. package/esm2022/components/notification/lib/notification.tokens.mjs +4 -1
  371. package/esm2022/components/notification/lib/services/notification-center.service.mjs +10 -1
  372. package/esm2022/components/paginator/lib/paginator.component.mjs +90 -1
  373. package/esm2022/components/paginator/lib/paginator.config.mjs +29 -1
  374. package/esm2022/components/progress/lib/progress.component.mjs +16 -1
  375. package/esm2022/components/radio-group/lib/radio-group.component.mjs +13 -2
  376. package/esm2022/components/rail-navigation/lib/components/rail-navigation-item/rail-navigation-item.component.mjs +17 -1
  377. package/esm2022/components/rail-navigation/lib/rail-navigation.component.mjs +27 -1
  378. package/esm2022/components/rich-list/lib/components/rich-list-content/rich-list-content.component.mjs +5 -1
  379. package/esm2022/components/rich-list/lib/components/rich-list-header/rich-list-header.component.mjs +5 -1
  380. package/esm2022/components/rich-list/lib/components/rich-list-item/rich-list-item.component.mjs +10 -2
  381. package/esm2022/components/rich-list/lib/rich-list.component.mjs +10 -3
  382. package/esm2022/components/select/lib/components/select-option/select-option.component.mjs +47 -6
  383. package/esm2022/components/select/lib/directives/select-input-control.directive.mjs +12 -2
  384. package/esm2022/components/select/lib/pipes/select-search-filter.pipe.mjs +11 -1
  385. package/esm2022/components/select/lib/select.component.mjs +56 -2
  386. package/esm2022/components/slider/lib/slider.directive.mjs +20 -1
  387. package/esm2022/components/spinbox/lib/spinbox.component.mjs +17 -1
  388. package/esm2022/components/switch/lib/switch.component.mjs +11 -1
  389. package/esm2022/components/switch/lib/switch.validator.mjs +13 -1
  390. package/esm2022/components/tab-bar/lib/components/tab-bar-item/tab-bar-item.component.mjs +29 -1
  391. package/esm2022/components/tab-bar/lib/tab-bar.component.mjs +70 -1
  392. package/esm2022/components/table/lib/components/check-cell/check-cell.component.mjs +19 -1
  393. package/esm2022/components/table/lib/components/header-title/header-title.component.mjs +30 -2
  394. package/esm2022/components/table/lib/directives/table-cell.directive.mjs +5 -1
  395. package/esm2022/components/table/lib/directives/table-row.directive.mjs +5 -1
  396. package/esm2022/components/table/lib/table.component.mjs +30 -1
  397. package/esm2022/components/timepicker/lib/timepicker.component.mjs +15 -6
  398. package/esm2022/components/timepicker/lib/utils/generate-time-stamps.mjs +5 -3
  399. package/esm2022/components/timepicker/lib/utils/ngx-mask-helper.mjs +3 -3
  400. package/esm2022/components/toast/lib/toast.config.mjs +27 -1
  401. package/esm2022/components/toast/lib/toast.service.mjs +36 -1
  402. package/esm2022/components/toggle-button-group/lib/components/toggle-button/toggle-button.component.mjs +12 -1
  403. package/esm2022/components/toggle-button-group/lib/toggle-button-group.component.mjs +14 -2
  404. package/esm2022/components/tooltip/lib/tooltip.component.mjs +18 -1
  405. package/esm2022/components/tooltip/lib/tooltip.directive.mjs +36 -1
  406. package/esm2022/components/wizard/lib/components/wizard-step/wizard-step.component.mjs +35 -1
  407. package/esm2022/components/wizard/lib/wizard.component.mjs +21 -1
  408. package/esm2022/internal/lib/helpers/fast-equals.mjs +3 -0
  409. package/esm2022/internal/lib/helpers/index.mjs +2 -1
  410. package/esm2022/internal/translate/lib/translate.config.mjs +32 -1
  411. package/esm2022/internal/translate/lib/translate.service.mjs +30 -1
  412. package/esm2022/lib/controllers/controller.mjs +26 -1
  413. package/esm2022/lib/controllers/disabled.controller.mjs +60 -1
  414. package/esm2022/lib/controllers/readonly.controller.mjs +57 -1
  415. package/esm2022/lib/directives/click-outside.directive.mjs +30 -1
  416. package/esm2022/lib/directives/delegate-focus.directive.mjs +15 -1
  417. package/esm2022/lib/services/window-ref.mjs +67 -1
  418. package/esm2022/lib/tokens/identity-matcher.mjs +25 -1
  419. package/esm2022/lib/tokens/string-search-handler.mjs +25 -1
  420. package/esm2022/lib/tokens/stringify.mjs +26 -1
  421. package/esm2022/localization/lib/features/with-http-language-header.mjs +54 -1
  422. package/esm2022/localization/lib/features/with-http-language-query-param.mjs +52 -1
  423. package/esm2022/localization/lib/loaders/browser-language-loader.mjs +33 -1
  424. package/esm2022/localization/lib/localization.config.mjs +73 -5
  425. package/esm2022/localization/lib/localization.logger.mjs +3 -0
  426. package/esm2022/localization/lib/localization.service.mjs +59 -29
  427. package/esm2022/rxjs/index.mjs +2 -2
  428. package/esm2022/rxjs/lib/delay-until.mjs +23 -1
  429. package/esm2022/rxjs/lib/from-element-mutation.mjs +22 -1
  430. package/esm2022/rxjs/lib/from-element-resize.mjs +25 -1
  431. package/esm2022/rxjs/lib/from-events.mjs +25 -1
  432. package/esm2022/rxjs/lib/from-query-list.mjs +24 -0
  433. package/esm2022/sdk/lib/application-environment.mjs +51 -1
  434. package/esm2022/theming/lib/helpers/prefers-dark-theme.mjs +19 -1
  435. package/esm2022/theming/lib/helpers/resolve-theme.mjs +26 -1
  436. package/esm2022/theming/lib/helpers/theme-storage.mjs +43 -1
  437. package/esm2022/theming/lib/theming.config.mjs +34 -1
  438. package/esm2022/theming/lib/theming.service.mjs +32 -1
  439. package/esm2022/utils/lib/decorators/pure.mjs +52 -1
  440. package/esm2022/utils/lib/helpers/angular.mjs +37 -1
  441. package/esm2022/utils/lib/helpers/array.mjs +5 -1
  442. package/esm2022/utils/lib/helpers/build-url.mjs +21 -1
  443. package/esm2022/utils/lib/helpers/build-website-url.mjs +3 -2
  444. package/esm2022/utils/lib/helpers/cache-storage-client.mjs +52 -1
  445. package/esm2022/utils/lib/helpers/coercion.mjs +18 -1
  446. package/esm2022/utils/lib/helpers/debounce.mjs +28 -1
  447. package/esm2022/utils/lib/helpers/defer-fn.mjs +21 -1
  448. package/esm2022/utils/lib/helpers/dom.mjs +71 -1
  449. package/esm2022/utils/lib/helpers/get-axis.mjs +21 -1
  450. package/esm2022/utils/lib/helpers/get-language-code.mjs +18 -1
  451. package/esm2022/utils/lib/helpers/get-opposite-side.mjs +22 -1
  452. package/esm2022/utils/lib/helpers/get-side.mjs +18 -1
  453. package/esm2022/utils/lib/helpers/get-unique-id.mjs +34 -1
  454. package/esm2022/utils/lib/helpers/match-url.mjs +41 -1
  455. package/esm2022/utils/lib/helpers/ng-changes.mjs +30 -1
  456. package/esm2022/utils/lib/helpers/provide-config.mjs +57 -1
  457. package/esm2022/utils/lib/helpers/queue.mjs +84 -1
  458. package/esm2022/utils/lib/helpers/type-guards.mjs +58 -1
  459. package/esm2022/utils/lib/helpers/until-destroyed.mjs +39 -1
  460. package/fesm2022/odx-angular-animations.mjs +173 -0
  461. package/fesm2022/odx-angular-animations.mjs.map +1 -1
  462. package/fesm2022/odx-angular-breakpoints.mjs +136 -0
  463. package/fesm2022/odx-angular-breakpoints.mjs.map +1 -1
  464. package/fesm2022/odx-angular-cdk-a11y.mjs +71 -0
  465. package/fesm2022/odx-angular-cdk-a11y.mjs.map +1 -1
  466. package/fesm2022/odx-angular-cdk-active-indicator.mjs +63 -0
  467. package/fesm2022/odx-angular-cdk-active-indicator.mjs.map +1 -1
  468. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +38 -0
  469. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
  470. package/fesm2022/odx-angular-cdk-checkbox-control.mjs +3 -0
  471. package/fesm2022/odx-angular-cdk-checkbox-control.mjs.map +1 -1
  472. package/fesm2022/odx-angular-cdk-connected-overlay.mjs +103 -0
  473. package/fesm2022/odx-angular-cdk-connected-overlay.mjs.map +1 -1
  474. package/fesm2022/odx-angular-cdk-custom-form-control.mjs +183 -2
  475. package/fesm2022/odx-angular-cdk-custom-form-control.mjs.map +1 -1
  476. package/fesm2022/odx-angular-cdk-dynamic-view.mjs +188 -0
  477. package/fesm2022/odx-angular-cdk-dynamic-view.mjs.map +1 -1
  478. package/fesm2022/odx-angular-cdk-event-plugins.mjs +135 -0
  479. package/fesm2022/odx-angular-cdk-event-plugins.mjs.map +1 -1
  480. package/fesm2022/odx-angular-cdk-expandable.mjs +88 -0
  481. package/fesm2022/odx-angular-cdk-expandable.mjs.map +1 -1
  482. package/fesm2022/odx-angular-cdk-option-control.mjs +47 -0
  483. package/fesm2022/odx-angular-cdk-option-control.mjs.map +1 -1
  484. package/fesm2022/odx-angular-cdk-radio-group-control.mjs +19 -0
  485. package/fesm2022/odx-angular-cdk-radio-group-control.mjs.map +1 -1
  486. package/fesm2022/odx-angular-components-accordion.mjs +41 -0
  487. package/fesm2022/odx-angular-components-accordion.mjs.map +1 -1
  488. package/fesm2022/odx-angular-components-action-group.mjs +6 -0
  489. package/fesm2022/odx-angular-components-action-group.mjs.map +1 -1
  490. package/fesm2022/odx-angular-components-area-header.mjs +14 -0
  491. package/fesm2022/odx-angular-components-area-header.mjs.map +1 -1
  492. package/fesm2022/odx-angular-components-autocomplete.mjs +17 -0
  493. package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
  494. package/fesm2022/odx-angular-components-avatar.mjs +8 -0
  495. package/fesm2022/odx-angular-components-avatar.mjs.map +1 -1
  496. package/fesm2022/odx-angular-components-badge.mjs +25 -0
  497. package/fesm2022/odx-angular-components-badge.mjs.map +1 -1
  498. package/fesm2022/odx-angular-components-bar.mjs +13 -0
  499. package/fesm2022/odx-angular-components-bar.mjs.map +1 -1
  500. package/fesm2022/odx-angular-components-breadcrumbs.mjs +3 -0
  501. package/fesm2022/odx-angular-components-breadcrumbs.mjs.map +1 -1
  502. package/fesm2022/odx-angular-components-button-group.mjs +15 -0
  503. package/fesm2022/odx-angular-components-button-group.mjs.map +1 -1
  504. package/fesm2022/odx-angular-components-button.mjs +10 -0
  505. package/fesm2022/odx-angular-components-button.mjs.map +1 -1
  506. package/fesm2022/odx-angular-components-calendar.mjs +270 -33
  507. package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
  508. package/fesm2022/odx-angular-components-checkbox.mjs +55 -0
  509. package/fesm2022/odx-angular-components-checkbox.mjs.map +1 -1
  510. package/fesm2022/odx-angular-components-chip.mjs +20 -0
  511. package/fesm2022/odx-angular-components-chip.mjs.map +1 -1
  512. package/fesm2022/odx-angular-components-circular-progress.mjs +20 -0
  513. package/fesm2022/odx-angular-components-circular-progress.mjs.map +1 -1
  514. package/fesm2022/odx-angular-components-content-box.mjs +9 -0
  515. package/fesm2022/odx-angular-components-content-box.mjs.map +1 -1
  516. package/fesm2022/odx-angular-components-datepicker.mjs +84 -0
  517. package/fesm2022/odx-angular-components-datepicker.mjs.map +1 -1
  518. package/fesm2022/odx-angular-components-daterangepicker.mjs +145 -0
  519. package/fesm2022/odx-angular-components-daterangepicker.mjs.map +1 -1
  520. package/fesm2022/odx-angular-components-dropdown.mjs +66 -0
  521. package/fesm2022/odx-angular-components-dropdown.mjs.map +1 -1
  522. package/fesm2022/odx-angular-components-error-page.mjs +15 -0
  523. package/fesm2022/odx-angular-components-error-page.mjs.map +1 -1
  524. package/fesm2022/odx-angular-components-footer.mjs +11 -6
  525. package/fesm2022/odx-angular-components-footer.mjs.map +1 -1
  526. package/fesm2022/odx-angular-components-form-field.mjs +131 -0
  527. package/fesm2022/odx-angular-components-form-field.mjs.map +1 -1
  528. package/fesm2022/odx-angular-components-header-navigation.mjs +6 -0
  529. package/fesm2022/odx-angular-components-header-navigation.mjs.map +1 -1
  530. package/fesm2022/odx-angular-components-header.mjs +10 -0
  531. package/fesm2022/odx-angular-components-header.mjs.map +1 -1
  532. package/fesm2022/odx-angular-components-icon.mjs +57 -0
  533. package/fesm2022/odx-angular-components-icon.mjs.map +1 -1
  534. package/fesm2022/odx-angular-components-inline-message.mjs +13 -0
  535. package/fesm2022/odx-angular-components-inline-message.mjs.map +1 -1
  536. package/fesm2022/odx-angular-components-link.mjs +3 -0
  537. package/fesm2022/odx-angular-components-link.mjs.map +1 -1
  538. package/fesm2022/odx-angular-components-list.mjs +28 -1
  539. package/fesm2022/odx-angular-components-list.mjs.map +1 -1
  540. package/fesm2022/odx-angular-components-loading-spinner.mjs +30 -0
  541. package/fesm2022/odx-angular-components-loading-spinner.mjs.map +1 -1
  542. package/fesm2022/odx-angular-components-logo.mjs +15 -0
  543. package/fesm2022/odx-angular-components-logo.mjs.map +1 -1
  544. package/fesm2022/odx-angular-components-main-menu.mjs +119 -0
  545. package/fesm2022/odx-angular-components-main-menu.mjs.map +1 -1
  546. package/fesm2022/odx-angular-components-mainfilter-group.mjs +4 -0
  547. package/fesm2022/odx-angular-components-mainfilter-group.mjs.map +1 -1
  548. package/fesm2022/odx-angular-components-menu.mjs +36 -0
  549. package/fesm2022/odx-angular-components-menu.mjs.map +1 -1
  550. package/fesm2022/odx-angular-components-modal.mjs +252 -0
  551. package/fesm2022/odx-angular-components-modal.mjs.map +1 -1
  552. package/fesm2022/odx-angular-components-navigation-back.mjs +3 -0
  553. package/fesm2022/odx-angular-components-navigation-back.mjs.map +1 -1
  554. package/fesm2022/odx-angular-components-notification.mjs +148 -6
  555. package/fesm2022/odx-angular-components-notification.mjs.map +1 -1
  556. package/fesm2022/odx-angular-components-paginator.mjs +117 -0
  557. package/fesm2022/odx-angular-components-paginator.mjs.map +1 -1
  558. package/fesm2022/odx-angular-components-progress.mjs +15 -0
  559. package/fesm2022/odx-angular-components-progress.mjs.map +1 -1
  560. package/fesm2022/odx-angular-components-radio-group.mjs +11 -0
  561. package/fesm2022/odx-angular-components-radio-group.mjs.map +1 -1
  562. package/fesm2022/odx-angular-components-rail-navigation.mjs +42 -0
  563. package/fesm2022/odx-angular-components-rail-navigation.mjs.map +1 -1
  564. package/fesm2022/odx-angular-components-rich-list.mjs +26 -3
  565. package/fesm2022/odx-angular-components-rich-list.mjs.map +1 -1
  566. package/fesm2022/odx-angular-components-select.mjs +122 -7
  567. package/fesm2022/odx-angular-components-select.mjs.map +1 -1
  568. package/fesm2022/odx-angular-components-slider.mjs +19 -0
  569. package/fesm2022/odx-angular-components-slider.mjs.map +1 -1
  570. package/fesm2022/odx-angular-components-spinbox.mjs +16 -0
  571. package/fesm2022/odx-angular-components-spinbox.mjs.map +1 -1
  572. package/fesm2022/odx-angular-components-switch.mjs +22 -0
  573. package/fesm2022/odx-angular-components-switch.mjs.map +1 -1
  574. package/fesm2022/odx-angular-components-tab-bar.mjs +97 -0
  575. package/fesm2022/odx-angular-components-tab-bar.mjs.map +1 -1
  576. package/fesm2022/odx-angular-components-table.mjs +84 -1
  577. package/fesm2022/odx-angular-components-table.mjs.map +1 -1
  578. package/fesm2022/odx-angular-components-timepicker.mjs +20 -9
  579. package/fesm2022/odx-angular-components-timepicker.mjs.map +1 -1
  580. package/fesm2022/odx-angular-components-toast.mjs +61 -0
  581. package/fesm2022/odx-angular-components-toast.mjs.map +1 -1
  582. package/fesm2022/odx-angular-components-toggle-button-group.mjs +23 -0
  583. package/fesm2022/odx-angular-components-toggle-button-group.mjs.map +1 -1
  584. package/fesm2022/odx-angular-components-tooltip.mjs +52 -0
  585. package/fesm2022/odx-angular-components-tooltip.mjs.map +1 -1
  586. package/fesm2022/odx-angular-components-wizard.mjs +54 -0
  587. package/fesm2022/odx-angular-components-wizard.mjs.map +1 -1
  588. package/fesm2022/odx-angular-internal-translate.mjs +60 -0
  589. package/fesm2022/odx-angular-internal-translate.mjs.map +1 -1
  590. package/fesm2022/odx-angular-internal.mjs +4 -1
  591. package/fesm2022/odx-angular-internal.mjs.map +1 -1
  592. package/fesm2022/odx-angular-localization.mjs +269 -32
  593. package/fesm2022/odx-angular-localization.mjs.map +1 -1
  594. package/fesm2022/odx-angular-rxjs.mjs +115 -5
  595. package/fesm2022/odx-angular-rxjs.mjs.map +1 -1
  596. package/fesm2022/odx-angular-sdk.mjs +50 -0
  597. package/fesm2022/odx-angular-sdk.mjs.map +1 -1
  598. package/fesm2022/odx-angular-theming.mjs +149 -0
  599. package/fesm2022/odx-angular-theming.mjs.map +1 -1
  600. package/fesm2022/odx-angular-utils.mjs +709 -1
  601. package/fesm2022/odx-angular-utils.mjs.map +1 -1
  602. package/fesm2022/odx-angular.mjs +322 -0
  603. package/fesm2022/odx-angular.mjs.map +1 -1
  604. package/internal/lib/helpers/fast-equals.d.ts +1 -0
  605. package/internal/lib/helpers/index.d.ts +1 -0
  606. package/internal/translate/lib/translate.config.d.ts +31 -0
  607. package/internal/translate/lib/translate.service.d.ts +29 -0
  608. package/lib/controllers/controller.d.ts +25 -0
  609. package/lib/controllers/disabled.controller.d.ts +59 -0
  610. package/lib/controllers/readonly.controller.d.ts +56 -0
  611. package/lib/directives/click-outside.directive.d.ts +29 -0
  612. package/lib/directives/delegate-focus.directive.d.ts +14 -0
  613. package/lib/services/window-ref.d.ts +66 -0
  614. package/lib/tokens/identity-matcher.d.ts +41 -0
  615. package/lib/tokens/string-search-handler.d.ts +39 -0
  616. package/lib/tokens/stringify.d.ts +42 -0
  617. package/localization/lib/features/with-http-language-header.d.ts +63 -0
  618. package/localization/lib/features/with-http-language-query-param.d.ts +61 -0
  619. package/localization/lib/loaders/browser-language-loader.d.ts +32 -0
  620. package/localization/lib/localization.config.d.ts +81 -2
  621. package/localization/lib/localization.logger.d.ts +3 -0
  622. package/localization/lib/localization.service.d.ts +42 -7
  623. package/package.json +8 -7
  624. package/rxjs/index.d.ts +1 -1
  625. package/rxjs/lib/delay-until.d.ts +22 -0
  626. package/rxjs/lib/from-element-mutation.d.ts +21 -0
  627. package/rxjs/lib/from-element-resize.d.ts +24 -0
  628. package/rxjs/lib/from-events.d.ts +24 -0
  629. package/rxjs/lib/from-query-list.d.ts +22 -0
  630. package/sdk/lib/application-environment.d.ts +59 -0
  631. package/theming/lib/helpers/prefers-dark-theme.d.ts +18 -0
  632. package/theming/lib/helpers/resolve-theme.d.ts +25 -0
  633. package/theming/lib/helpers/theme-storage.d.ts +42 -0
  634. package/theming/lib/theming.config.d.ts +46 -0
  635. package/theming/lib/theming.service.d.ts +31 -0
  636. package/utils/lib/decorators/pure.d.ts +51 -0
  637. package/utils/lib/helpers/angular.d.ts +36 -0
  638. package/utils/lib/helpers/array.d.ts +4 -0
  639. package/utils/lib/helpers/build-url.d.ts +20 -0
  640. package/utils/lib/helpers/build-website-url.d.ts +2 -1
  641. package/utils/lib/helpers/cache-storage-client.d.ts +51 -0
  642. package/utils/lib/helpers/coercion.d.ts +17 -0
  643. package/utils/lib/helpers/debounce.d.ts +27 -0
  644. package/utils/lib/helpers/defer-fn.d.ts +20 -0
  645. package/utils/lib/helpers/dom.d.ts +70 -0
  646. package/utils/lib/helpers/get-axis.d.ts +20 -0
  647. package/utils/lib/helpers/get-language-code.d.ts +17 -0
  648. package/utils/lib/helpers/get-opposite-side.d.ts +21 -0
  649. package/utils/lib/helpers/get-side.d.ts +17 -0
  650. package/utils/lib/helpers/get-unique-id.d.ts +33 -0
  651. package/utils/lib/helpers/match-url.d.ts +40 -0
  652. package/utils/lib/helpers/ng-changes.d.ts +52 -0
  653. package/utils/lib/helpers/provide-config.d.ts +56 -0
  654. package/utils/lib/helpers/queue.d.ts +83 -0
  655. package/utils/lib/helpers/type-guards.d.ts +57 -0
  656. package/utils/lib/helpers/until-destroyed.d.ts +38 -0
  657. package/esm2022/rxjs/lib/form-query-list.mjs +0 -5
  658. package/rxjs/lib/form-query-list.d.ts +0 -3
@@ -1,21 +1,72 @@
1
+ /**
2
+ * The HTTP 'Etag' header, used for web cache validation.
3
+ */
1
4
  export const HTTP_ETAG_HEADER = 'Etag';
5
+ /**
6
+ * The HTTP 'If-None-Match' header, used in conditional requests to compare against the ETag.
7
+ */
2
8
  export const HTTP_IF_NONE_MATCH_HEADER = 'If-None-Match';
9
+ /**
10
+ * The HTTP 'Cache-Control' header, used to specify directives for caching mechanisms in requests and responses.
11
+ */
3
12
  export const HTTP_CACHE_CONTROL_HEADER = 'Cache-Control';
13
+ /**
14
+ * A client for managing cache storage for web applications. It simplifies interactions with the Cache Storage API,
15
+ * allowing for the caching, retrieval, and deletion of request responses. This class uses HTTP caching headers to
16
+ * optimize network requests and cache management.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * // Creating an instance of CacheStorageClient
21
+ * const cacheClient = new CacheStorageClient('my-cache');
22
+ *
23
+ * // Requesting and caching data
24
+ * cacheClient.request('https://api.example.com/data').then(data => {
25
+ * console.log(data);
26
+ * });
27
+ *
28
+ * // Deleting a specific cache entry
29
+ * cacheClient.delete('https://api.example.com/data');
30
+ *
31
+ * // Clearing all cache entries
32
+ * cacheClient.deleteAll();
33
+ * ```
34
+ */
4
35
  export class CacheStorageClient {
5
36
  constructor(cacheKey, cacheStorage = window.caches) {
6
37
  this.cacheKey = cacheKey;
7
38
  this.cacheStorage = cacheStorage;
8
39
  }
40
+ /**
41
+ * Deletes a specific cache entry.
42
+ *
43
+ * @param {RequestInfo | URL} request - The request or URL to delete from the cache.
44
+ * @returns {Promise<boolean>} A promise that resolves to a boolean indicating whether the deletion was successful.
45
+ */
9
46
  async delete(request) {
10
47
  const cache = await this.getCache();
11
48
  return cache.delete(request);
12
49
  }
50
+ /**
51
+ * Deletes all entries from the cache.
52
+ *
53
+ * @returns {Promise<void>} A promise that resolves when all entries have been deleted.
54
+ */
13
55
  async deleteAll() {
14
56
  const cache = await this.getCache();
15
57
  for (const key of await cache.keys()) {
16
58
  await cache.delete(key);
17
59
  }
18
60
  }
61
+ /**
62
+ * Performs a request, caching the response if applicable. If a response is cached for the request and still valid,
63
+ * it returns the cached response instead of making a new network request.
64
+ *
65
+ * @template T - The expected response data type.
66
+ * @param {RequestInfo | URL} requestInfo - The request information or URL to fetch and cache.
67
+ * @param {(response: Response) => boolean} [shouldDelete=({ status }) => status >= 400 && status < 500] - An optional function to determine if the cache entry should be deleted based on the response.
68
+ * @returns {Promise<T | null>} A promise that resolves to the response data, or null if the request fails.
69
+ */
19
70
  async request(requestInfo, shouldDelete = ({ status }) => status >= 400 && status < 500) {
20
71
  const cache = await this.getCache();
21
72
  const request = await this.prepareRequest(cache, requestInfo);
@@ -50,4 +101,4 @@ export class CacheStorageClient {
50
101
  return cache.match(request).then((res) => res ?? null);
51
102
  }
52
103
  }
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtc3RvcmFnZS1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2NhY2hlLXN0b3JhZ2UtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztBQUN2QyxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxlQUFlLENBQUM7QUFDekQsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsZUFBZSxDQUFDO0FBRXpELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDbUIsUUFBZ0IsRUFDaEIsZUFBZSxNQUFNLENBQUMsTUFBTTtRQUQ1QixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQ2hCLGlCQUFZLEdBQVosWUFBWSxDQUFnQjtJQUM1QyxDQUFDO0lBRUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUEwQjtRQUM1QyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVwQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFTO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BDLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDcEMsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3pCO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPLENBQUksV0FBOEIsRUFBRSxlQUFlLENBQUMsRUFBRSxNQUFNLEVBQVksRUFBRSxFQUFFLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxNQUFNLEdBQUcsR0FBRztRQUM1SCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwQyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzlELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEQsSUFBSSxRQUFRLElBQUksWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDeEMsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzdCO1FBQ0QsT0FBTyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFUyxLQUFLLENBQUMsUUFBUTtRQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRVMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFZLEVBQUUsV0FBOEI7UUFDekUsTUFBTSxjQUFjLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sSUFBSSxHQUFHLGNBQWMsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksSUFBSSxFQUFFO1lBQ1IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDdEQ7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRVMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFZLEVBQUUsT0FBZ0I7UUFDeEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELE1BQU0sWUFBWSxHQUFHLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDdkUsSUFBSSxZQUFZLEtBQUssVUFBVSxFQUFFO1lBQy9CLE1BQU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUU1QixPQUFPLFFBQVEsQ0FBQztTQUNqQjtRQUNELElBQUksUUFBUSxFQUFFLEVBQUUsRUFBRTtZQUNoQixNQUFNLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0RDtRQUVELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgSFRUUF9FVEFHX0hFQURFUiA9ICdFdGFnJztcbmV4cG9ydCBjb25zdCBIVFRQX0lGX05PTkVfTUFUQ0hfSEVBREVSID0gJ0lmLU5vbmUtTWF0Y2gnO1xuZXhwb3J0IGNvbnN0IEhUVFBfQ0FDSEVfQ09OVFJPTF9IRUFERVIgPSAnQ2FjaGUtQ29udHJvbCc7XG5cbmV4cG9ydCBjbGFzcyBDYWNoZVN0b3JhZ2VDbGllbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhY2hlS2V5OiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYWNoZVN0b3JhZ2UgPSB3aW5kb3cuY2FjaGVzLFxuICApIHt9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZShyZXF1ZXN0OiBSZXF1ZXN0SW5mbyB8IFVSTCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNhY2hlID0gYXdhaXQgdGhpcy5nZXRDYWNoZSgpO1xuXG4gICAgcmV0dXJuIGNhY2hlLmRlbGV0ZShyZXF1ZXN0KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWxldGVBbGwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgY2FjaGUgPSBhd2FpdCB0aGlzLmdldENhY2hlKCk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgYXdhaXQgY2FjaGUua2V5cygpKSB7XG4gICAgICBhd2FpdCBjYWNoZS5kZWxldGUoa2V5KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVxdWVzdDxUPihyZXF1ZXN0SW5mbzogUmVxdWVzdEluZm8gfCBVUkwsIHNob3VsZERlbGV0ZSA9ICh7IHN0YXR1cyB9OiBSZXNwb25zZSkgPT4gc3RhdHVzID49IDQwMCAmJiBzdGF0dXMgPCA1MDApOiBQcm9taXNlPFQgfCBudWxsPiB7XG4gICAgY29uc3QgY2FjaGUgPSBhd2FpdCB0aGlzLmdldENhY2hlKCk7XG4gICAgY29uc3QgcmVxdWVzdCA9IGF3YWl0IHRoaXMucHJlcGFyZVJlcXVlc3QoY2FjaGUsIHJlcXVlc3RJbmZvKTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuc2VuZFJlcXVlc3QoY2FjaGUsIHJlcXVlc3QpO1xuICAgIGlmIChyZXNwb25zZSAmJiBzaG91bGREZWxldGU/LihyZXNwb25zZSkpIHtcbiAgICAgIGF3YWl0IGNhY2hlLmRlbGV0ZShyZXF1ZXN0KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlPy5qc29uKCkgPz8gbnVsbDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBnZXRDYWNoZSgpOiBQcm9taXNlPENhY2hlPiB7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVTdG9yYWdlLm9wZW4odGhpcy5jYWNoZUtleSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgcHJlcGFyZVJlcXVlc3QoY2FjaGU6IENhY2hlLCByZXF1ZXN0SW5mbzogUmVxdWVzdEluZm8gfCBVUkwpOiBQcm9taXNlPFJlcXVlc3Q+IHtcbiAgICBjb25zdCBjYWNoZWRSZXNwb25zZSA9IGF3YWl0IGNhY2hlLm1hdGNoKHJlcXVlc3RJbmZvKTtcbiAgICBjb25zdCBldGFnID0gY2FjaGVkUmVzcG9uc2U/LmhlYWRlcnM/LmdldChIVFRQX0VUQUdfSEVBREVSKSA/PyBudWxsO1xuICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgUmVxdWVzdChyZXF1ZXN0SW5mbyk7XG4gICAgaWYgKGV0YWcpIHtcbiAgICAgIHJlcXVlc3QuaGVhZGVycy5zZXQoSFRUUF9JRl9OT05FX01BVENIX0hFQURFUiwgZXRhZyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlcXVlc3Q7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgc2VuZFJlcXVlc3QoY2FjaGU6IENhY2hlLCByZXF1ZXN0OiBSZXF1ZXN0KTogUHJvbWlzZTxSZXNwb25zZSB8IG51bGw+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKHJlcXVlc3QpLmNhdGNoKCgpID0+IG51bGwpO1xuICAgIGNvbnN0IGNhY2hlQ29udHJvbCA9IHJlc3BvbnNlPy5oZWFkZXJzPy5nZXQoSFRUUF9DQUNIRV9DT05UUk9MX0hFQURFUik7XG4gICAgaWYgKGNhY2hlQ29udHJvbCA9PT0gJ25vLWNhY2hlJykge1xuICAgICAgYXdhaXQgY2FjaGUuZGVsZXRlKHJlcXVlc3QpO1xuXG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfVxuICAgIGlmIChyZXNwb25zZT8ub2spIHtcbiAgICAgIGF3YWl0IGNhY2hlLnB1dChyZXF1ZXN0LCByZXNwb25zZSkuY2F0Y2goKCkgPT4gbnVsbCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNhY2hlLm1hdGNoKHJlcXVlc3QpLnRoZW4oKHJlcykgPT4gcmVzID8/IG51bGwpO1xuICB9XG59XG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUtc3RvcmFnZS1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2NhY2hlLXN0b3JhZ2UtY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDO0FBRXZDOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsZUFBZSxDQUFDO0FBRXpEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsZUFBZSxDQUFDO0FBRXpEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQkc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQ21CLFFBQWdCLEVBQ2hCLGVBQWUsTUFBTSxDQUFDLE1BQU07UUFENUIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQixpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7SUFDNUMsQ0FBQztJQUVKOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUEwQjtRQUM1QyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVwQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsU0FBUztRQUNwQixNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwQyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3BDLE1BQU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLEtBQUssQ0FBQyxPQUFPLENBQUksV0FBOEIsRUFBRSxlQUFlLENBQUMsRUFBRSxNQUFNLEVBQVksRUFBRSxFQUFFLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxNQUFNLEdBQUcsR0FBRztRQUM1SCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwQyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzlELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEQsSUFBSSxRQUFRLElBQUksWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDeEMsTUFBTSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzdCO1FBQ0QsT0FBTyxRQUFRLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFFUyxLQUFLLENBQUMsUUFBUTtRQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRVMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFZLEVBQUUsV0FBOEI7UUFDekUsTUFBTSxjQUFjLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sSUFBSSxHQUFHLGNBQWMsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLElBQUksSUFBSSxDQUFDO1FBQ3BFLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksSUFBSSxFQUFFO1lBQ1IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDdEQ7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRVMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFZLEVBQUUsT0FBZ0I7UUFDeEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELE1BQU0sWUFBWSxHQUFHLFFBQVEsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFDdkUsSUFBSSxZQUFZLEtBQUssVUFBVSxFQUFFO1lBQy9CLE1BQU0sS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUU1QixPQUFPLFFBQVEsQ0FBQztTQUNqQjtRQUNELElBQUksUUFBUSxFQUFFLEVBQUUsRUFBRTtZQUNoQixNQUFNLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN0RDtRQUVELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUN6RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBIVFRQICdFdGFnJyBoZWFkZXIsIHVzZWQgZm9yIHdlYiBjYWNoZSB2YWxpZGF0aW9uLlxuICovXG5leHBvcnQgY29uc3QgSFRUUF9FVEFHX0hFQURFUiA9ICdFdGFnJztcblxuLyoqXG4gKiBUaGUgSFRUUCAnSWYtTm9uZS1NYXRjaCcgaGVhZGVyLCB1c2VkIGluIGNvbmRpdGlvbmFsIHJlcXVlc3RzIHRvIGNvbXBhcmUgYWdhaW5zdCB0aGUgRVRhZy5cbiAqL1xuZXhwb3J0IGNvbnN0IEhUVFBfSUZfTk9ORV9NQVRDSF9IRUFERVIgPSAnSWYtTm9uZS1NYXRjaCc7XG5cbi8qKlxuICogVGhlIEhUVFAgJ0NhY2hlLUNvbnRyb2wnIGhlYWRlciwgdXNlZCB0byBzcGVjaWZ5IGRpcmVjdGl2ZXMgZm9yIGNhY2hpbmcgbWVjaGFuaXNtcyBpbiByZXF1ZXN0cyBhbmQgcmVzcG9uc2VzLlxuICovXG5leHBvcnQgY29uc3QgSFRUUF9DQUNIRV9DT05UUk9MX0hFQURFUiA9ICdDYWNoZS1Db250cm9sJztcblxuLyoqXG4gKiBBIGNsaWVudCBmb3IgbWFuYWdpbmcgY2FjaGUgc3RvcmFnZSBmb3Igd2ViIGFwcGxpY2F0aW9ucy4gSXQgc2ltcGxpZmllcyBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgQ2FjaGUgU3RvcmFnZSBBUEksXG4gKiBhbGxvd2luZyBmb3IgdGhlIGNhY2hpbmcsIHJldHJpZXZhbCwgYW5kIGRlbGV0aW9uIG9mIHJlcXVlc3QgcmVzcG9uc2VzLiBUaGlzIGNsYXNzIHVzZXMgSFRUUCBjYWNoaW5nIGhlYWRlcnMgdG9cbiAqIG9wdGltaXplIG5ldHdvcmsgcmVxdWVzdHMgYW5kIGNhY2hlIG1hbmFnZW1lbnQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiAvLyBDcmVhdGluZyBhbiBpbnN0YW5jZSBvZiBDYWNoZVN0b3JhZ2VDbGllbnRcbiAqIGNvbnN0IGNhY2hlQ2xpZW50ID0gbmV3IENhY2hlU3RvcmFnZUNsaWVudCgnbXktY2FjaGUnKTtcbiAqXG4gKiAvLyBSZXF1ZXN0aW5nIGFuZCBjYWNoaW5nIGRhdGFcbiAqIGNhY2hlQ2xpZW50LnJlcXVlc3QoJ2h0dHBzOi8vYXBpLmV4YW1wbGUuY29tL2RhdGEnKS50aGVuKGRhdGEgPT4ge1xuICogICBjb25zb2xlLmxvZyhkYXRhKTtcbiAqIH0pO1xuICpcbiAqIC8vIERlbGV0aW5nIGEgc3BlY2lmaWMgY2FjaGUgZW50cnlcbiAqIGNhY2hlQ2xpZW50LmRlbGV0ZSgnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vZGF0YScpO1xuICpcbiAqIC8vIENsZWFyaW5nIGFsbCBjYWNoZSBlbnRyaWVzXG4gKiBjYWNoZUNsaWVudC5kZWxldGVBbGwoKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQ2FjaGVTdG9yYWdlQ2xpZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYWNoZUtleTogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FjaGVTdG9yYWdlID0gd2luZG93LmNhY2hlcyxcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBEZWxldGVzIGEgc3BlY2lmaWMgY2FjaGUgZW50cnkuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVxdWVzdEluZm8gfCBVUkx9IHJlcXVlc3QgLSBUaGUgcmVxdWVzdCBvciBVUkwgdG8gZGVsZXRlIGZyb20gdGhlIGNhY2hlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZGVsZXRpb24gd2FzIHN1Y2Nlc3NmdWwuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZGVsZXRlKHJlcXVlc3Q6IFJlcXVlc3RJbmZvIHwgVVJMKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgY2FjaGUgPSBhd2FpdCB0aGlzLmdldENhY2hlKCk7XG5cbiAgICByZXR1cm4gY2FjaGUuZGVsZXRlKHJlcXVlc3QpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgYWxsIGVudHJpZXMgZnJvbSB0aGUgY2FjaGUuXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBlbnRyaWVzIGhhdmUgYmVlbiBkZWxldGVkLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGRlbGV0ZUFsbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjYWNoZSA9IGF3YWl0IHRoaXMuZ2V0Q2FjaGUoKTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBhd2FpdCBjYWNoZS5rZXlzKCkpIHtcbiAgICAgIGF3YWl0IGNhY2hlLmRlbGV0ZShrZXkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBhIHJlcXVlc3QsIGNhY2hpbmcgdGhlIHJlc3BvbnNlIGlmIGFwcGxpY2FibGUuIElmIGEgcmVzcG9uc2UgaXMgY2FjaGVkIGZvciB0aGUgcmVxdWVzdCBhbmQgc3RpbGwgdmFsaWQsXG4gICAqIGl0IHJldHVybnMgdGhlIGNhY2hlZCByZXNwb25zZSBpbnN0ZWFkIG9mIG1ha2luZyBhIG5ldyBuZXR3b3JrIHJlcXVlc3QuXG4gICAqXG4gICAqIEB0ZW1wbGF0ZSBUIC0gVGhlIGV4cGVjdGVkIHJlc3BvbnNlIGRhdGEgdHlwZS5cbiAgICogQHBhcmFtIHtSZXF1ZXN0SW5mbyB8IFVSTH0gcmVxdWVzdEluZm8gLSBUaGUgcmVxdWVzdCBpbmZvcm1hdGlvbiBvciBVUkwgdG8gZmV0Y2ggYW5kIGNhY2hlLlxuICAgKiBAcGFyYW0geyhyZXNwb25zZTogUmVzcG9uc2UpID0+IGJvb2xlYW59IFtzaG91bGREZWxldGU9KHsgc3RhdHVzIH0pID0+IHN0YXR1cyA+PSA0MDAgJiYgc3RhdHVzIDwgNTAwXSAtIEFuIG9wdGlvbmFsIGZ1bmN0aW9uIHRvIGRldGVybWluZSBpZiB0aGUgY2FjaGUgZW50cnkgc2hvdWxkIGJlIGRlbGV0ZWQgYmFzZWQgb24gdGhlIHJlc3BvbnNlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUIHwgbnVsbD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSByZXNwb25zZSBkYXRhLCBvciBudWxsIGlmIHRoZSByZXF1ZXN0IGZhaWxzLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlcXVlc3Q8VD4ocmVxdWVzdEluZm86IFJlcXVlc3RJbmZvIHwgVVJMLCBzaG91bGREZWxldGUgPSAoeyBzdGF0dXMgfTogUmVzcG9uc2UpID0+IHN0YXR1cyA+PSA0MDAgJiYgc3RhdHVzIDwgNTAwKTogUHJvbWlzZTxUIHwgbnVsbD4ge1xuICAgIGNvbnN0IGNhY2hlID0gYXdhaXQgdGhpcy5nZXRDYWNoZSgpO1xuICAgIGNvbnN0IHJlcXVlc3QgPSBhd2FpdCB0aGlzLnByZXBhcmVSZXF1ZXN0KGNhY2hlLCByZXF1ZXN0SW5mbyk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCB0aGlzLnNlbmRSZXF1ZXN0KGNhY2hlLCByZXF1ZXN0KTtcbiAgICBpZiAocmVzcG9uc2UgJiYgc2hvdWxkRGVsZXRlPy4ocmVzcG9uc2UpKSB7XG4gICAgICBhd2FpdCBjYWNoZS5kZWxldGUocmVxdWVzdCk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZT8uanNvbigpID8/IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZ2V0Q2FjaGUoKTogUHJvbWlzZTxDYWNoZT4ge1xuICAgIHJldHVybiB0aGlzLmNhY2hlU3RvcmFnZS5vcGVuKHRoaXMuY2FjaGVLZXkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHByZXBhcmVSZXF1ZXN0KGNhY2hlOiBDYWNoZSwgcmVxdWVzdEluZm86IFJlcXVlc3RJbmZvIHwgVVJMKTogUHJvbWlzZTxSZXF1ZXN0PiB7XG4gICAgY29uc3QgY2FjaGVkUmVzcG9uc2UgPSBhd2FpdCBjYWNoZS5tYXRjaChyZXF1ZXN0SW5mbyk7XG4gICAgY29uc3QgZXRhZyA9IGNhY2hlZFJlc3BvbnNlPy5oZWFkZXJzPy5nZXQoSFRUUF9FVEFHX0hFQURFUikgPz8gbnVsbDtcbiAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFJlcXVlc3QocmVxdWVzdEluZm8pO1xuICAgIGlmIChldGFnKSB7XG4gICAgICByZXF1ZXN0LmhlYWRlcnMuc2V0KEhUVFBfSUZfTk9ORV9NQVRDSF9IRUFERVIsIGV0YWcpO1xuICAgIH1cblxuICAgIHJldHVybiByZXF1ZXN0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNlbmRSZXF1ZXN0KGNhY2hlOiBDYWNoZSwgcmVxdWVzdDogUmVxdWVzdCk6IFByb21pc2U8UmVzcG9uc2UgfCBudWxsPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChyZXF1ZXN0KS5jYXRjaCgoKSA9PiBudWxsKTtcbiAgICBjb25zdCBjYWNoZUNvbnRyb2wgPSByZXNwb25zZT8uaGVhZGVycz8uZ2V0KEhUVFBfQ0FDSEVfQ09OVFJPTF9IRUFERVIpO1xuICAgIGlmIChjYWNoZUNvbnRyb2wgPT09ICduby1jYWNoZScpIHtcbiAgICAgIGF3YWl0IGNhY2hlLmRlbGV0ZShyZXF1ZXN0KTtcblxuICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH1cbiAgICBpZiAocmVzcG9uc2U/Lm9rKSB7XG4gICAgICBhd2FpdCBjYWNoZS5wdXQocmVxdWVzdCwgcmVzcG9uc2UpLmNhdGNoKCgpID0+IG51bGwpO1xuICAgIH1cblxuICAgIHJldHVybiBjYWNoZS5tYXRjaChyZXF1ZXN0KS50aGVuKChyZXMpID0+IHJlcyA/PyBudWxsKTtcbiAgfVxufVxuIl19
@@ -1,6 +1,23 @@
1
1
  import { coerceArray } from '@angular/cdk/coercion';
2
+ /**
3
+ * Coerces a value to an array. If the value is already an array, it is returned directly.
4
+ * If the value is not an array, it is wrapped in an array. This utility is useful for
5
+ * handling values that can be either single values or arrays, ensuring consistent array handling.
6
+ *
7
+ * @param {string | string[]} value - The value to coerce to an array. Can be a single string or an array of strings.
8
+ * @returns {string[]} The coerced value as an array of strings.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * // Coercing a single string to an array
13
+ * console.log(arrayAttribute('singleValue')); // Outputs: ['singleValue']
14
+ *
15
+ * // Returning an array directly
16
+ * console.log(arrayAttribute(['value1', 'value2'])); // Outputs: ['value1', 'value2']
17
+ * ```
18
+ */
2
19
  export function arrayAttribute(value) {
3
20
  return coerceArray(value);
4
21
  }
5
22
  export { coerceArray, coerceCssPixelValue, coerceElement, coerceStringArray } from '@angular/cdk/coercion';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lcmNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2NvZXJjaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQXdCO0lBQ3JELE9BQU8sV0FBVyxDQUFTLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFFRCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gYXJyYXlBdHRyaWJ1dGUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICByZXR1cm4gY29lcmNlQXJyYXk8c3RyaW5nPih2YWx1ZSk7XG59XG5cbmV4cG9ydCB7IGNvZXJjZUFycmF5LCBjb2VyY2VDc3NQaXhlbFZhbHVlLCBjb2VyY2VFbGVtZW50LCBjb2VyY2VTdHJpbmdBcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29lcmNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2NvZXJjaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRDs7Ozs7Ozs7Ozs7Ozs7OztHQWdCRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsS0FBd0I7SUFDckQsT0FBTyxXQUFXLENBQVMsS0FBSyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5cbi8qKlxuICogQ29lcmNlcyBhIHZhbHVlIHRvIGFuIGFycmF5LiBJZiB0aGUgdmFsdWUgaXMgYWxyZWFkeSBhbiBhcnJheSwgaXQgaXMgcmV0dXJuZWQgZGlyZWN0bHkuXG4gKiBJZiB0aGUgdmFsdWUgaXMgbm90IGFuIGFycmF5LCBpdCBpcyB3cmFwcGVkIGluIGFuIGFycmF5LiBUaGlzIHV0aWxpdHkgaXMgdXNlZnVsIGZvclxuICogaGFuZGxpbmcgdmFsdWVzIHRoYXQgY2FuIGJlIGVpdGhlciBzaW5nbGUgdmFsdWVzIG9yIGFycmF5cywgZW5zdXJpbmcgY29uc2lzdGVudCBhcnJheSBoYW5kbGluZy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IHN0cmluZ1tdfSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjb2VyY2UgdG8gYW4gYXJyYXkuIENhbiBiZSBhIHNpbmdsZSBzdHJpbmcgb3IgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqIEByZXR1cm5zIHtzdHJpbmdbXX0gVGhlIGNvZXJjZWQgdmFsdWUgYXMgYW4gYXJyYXkgb2Ygc3RyaW5ncy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIENvZXJjaW5nIGEgc2luZ2xlIHN0cmluZyB0byBhbiBhcnJheVxuICogY29uc29sZS5sb2coYXJyYXlBdHRyaWJ1dGUoJ3NpbmdsZVZhbHVlJykpOyAvLyBPdXRwdXRzOiBbJ3NpbmdsZVZhbHVlJ11cbiAqXG4gKiAvLyBSZXR1cm5pbmcgYW4gYXJyYXkgZGlyZWN0bHlcbiAqIGNvbnNvbGUubG9nKGFycmF5QXR0cmlidXRlKFsndmFsdWUxJywgJ3ZhbHVlMiddKSk7IC8vIE91dHB1dHM6IFsndmFsdWUxJywgJ3ZhbHVlMiddXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFycmF5QXR0cmlidXRlKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIGNvZXJjZUFycmF5PHN0cmluZz4odmFsdWUpO1xufVxuXG5leHBvcnQgeyBjb2VyY2VBcnJheSwgY29lcmNlQ3NzUGl4ZWxWYWx1ZSwgY29lcmNlRWxlbWVudCwgY29lcmNlU3RyaW5nQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuIl19
@@ -1,3 +1,30 @@
1
+ /**
2
+ * Creates a debounced function that delays invoking the provided function until after `delay` milliseconds
3
+ * have elapsed since the last time the debounced function was invoked. Optionally, the function can be
4
+ * triggered immediately on the first call, then debounced for subsequent calls.
5
+ *
6
+ * @template Args - A tuple representing the types of arguments the `func` accepts.
7
+ * @param {(...args: Args) => void} func - The function to debounce.
8
+ * @param {number} delay - The number of milliseconds to delay.
9
+ * @param {boolean} [immediate=false] - Whether to trigger the function immediately on the first call,
10
+ * and then debounce subsequent calls.
11
+ * @returns {(...args: Args) => void} A new, debounced function.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * // Example usage with a window resize event
16
+ * const handleResize = debounce(() => {
17
+ * console.log('Window resized');
18
+ * }, 250);
19
+ * window.addEventListener('resize', handleResize);
20
+ *
21
+ * // Example using immediate invocation
22
+ * const processKeyPress = debounce((event) => {
23
+ * console.log('Key pressed:', event.key);
24
+ * }, 200, true);
25
+ * document.addEventListener('keypress', processKeyPress);
26
+ * ```
27
+ */
1
28
  export function debounce(func, delay, immediate = false) {
2
29
  let timeout = null;
3
30
  return function (...args) {
@@ -18,4 +45,4 @@ export function debounce(func, delay, immediate = false) {
18
45
  }
19
46
  };
20
47
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2RlYm91bmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxRQUFRLENBQXlCLElBQTZCLEVBQUUsS0FBYSxFQUFFLFNBQVMsR0FBRyxLQUFLO0lBQzlHLElBQUksT0FBTyxHQUFrQixJQUFJLENBQUM7SUFFbEMsT0FBTyxVQUF5QixHQUFHLElBQVU7UUFDM0MsNERBQTREO1FBQzVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQztRQUNyQixNQUFNLGVBQWUsR0FBRyxTQUFTLElBQUksT0FBTyxLQUFLLElBQUksQ0FBQztRQUN0RCxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFDcEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxHQUFHLFVBQVUsQ0FBQztZQUNuQixPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2YsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDM0I7UUFDSCxDQUFDLEVBQUUsS0FBSyxDQUFzQixDQUFDO1FBQy9CLElBQUksZUFBZSxFQUFFO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBkZWJvdW5jZTxBcmdzIGV4dGVuZHMgdW5rbm93bltdPihmdW5jOiAoLi4uYXJnczogQXJncykgPT4gdm9pZCwgZGVsYXk6IG51bWJlciwgaW1tZWRpYXRlID0gZmFsc2UpOiAoLi4uYXJnczogQXJncykgPT4gdm9pZCB7XG4gIGxldCB0aW1lb3V0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICByZXR1cm4gZnVuY3Rpb24gKHRoaXM6IHVua25vd24sIC4uLmFyZ3M6IEFyZ3MpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXNcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcztcbiAgICBjb25zdCBjYWxsSW1tZWRpYXRlbHkgPSBpbW1lZGlhdGUgJiYgdGltZW91dCA9PT0gbnVsbDtcbiAgICBpZiAodGltZW91dCAhPT0gbnVsbCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVvdXQpO1xuICAgIH1cbiAgICB0aW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICB0aW1lb3V0ID0gbnVsbDtcbiAgICAgIGlmICghY2FsbEltbWVkaWF0ZWx5KSB7XG4gICAgICAgIGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncyk7XG4gICAgICB9XG4gICAgfSwgZGVsYXkpIGFzIHVua25vd24gYXMgbnVtYmVyO1xuICAgIGlmIChjYWxsSW1tZWRpYXRlbHkpIHtcbiAgICAgIGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncyk7XG4gICAgfVxuICB9O1xufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2RlYm91bmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQXlCLElBQTZCLEVBQUUsS0FBYSxFQUFFLFNBQVMsR0FBRyxLQUFLO0lBQzlHLElBQUksT0FBTyxHQUFrQixJQUFJLENBQUM7SUFFbEMsT0FBTyxVQUF5QixHQUFHLElBQVU7UUFDM0MsNERBQTREO1FBQzVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQztRQUNyQixNQUFNLGVBQWUsR0FBRyxTQUFTLElBQUksT0FBTyxLQUFLLElBQUksQ0FBQztRQUN0RCxJQUFJLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFDcEIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxHQUFHLFVBQVUsQ0FBQztZQUNuQixPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2YsSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7YUFDM0I7UUFDSCxDQUFDLEVBQUUsS0FBSyxDQUFzQixDQUFDO1FBQy9CLElBQUksZUFBZSxFQUFFO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzNCO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ3JlYXRlcyBhIGRlYm91bmNlZCBmdW5jdGlvbiB0aGF0IGRlbGF5cyBpbnZva2luZyB0aGUgcHJvdmlkZWQgZnVuY3Rpb24gdW50aWwgYWZ0ZXIgYGRlbGF5YCBtaWxsaXNlY29uZHNcbiAqIGhhdmUgZWxhcHNlZCBzaW5jZSB0aGUgbGFzdCB0aW1lIHRoZSBkZWJvdW5jZWQgZnVuY3Rpb24gd2FzIGludm9rZWQuIE9wdGlvbmFsbHksIHRoZSBmdW5jdGlvbiBjYW4gYmVcbiAqIHRyaWdnZXJlZCBpbW1lZGlhdGVseSBvbiB0aGUgZmlyc3QgY2FsbCwgdGhlbiBkZWJvdW5jZWQgZm9yIHN1YnNlcXVlbnQgY2FsbHMuXG4gKlxuICogQHRlbXBsYXRlIEFyZ3MgLSBBIHR1cGxlIHJlcHJlc2VudGluZyB0aGUgdHlwZXMgb2YgYXJndW1lbnRzIHRoZSBgZnVuY2AgYWNjZXB0cy5cbiAqIEBwYXJhbSB7KC4uLmFyZ3M6IEFyZ3MpID0+IHZvaWR9IGZ1bmMgLSBUaGUgZnVuY3Rpb24gdG8gZGVib3VuY2UuXG4gKiBAcGFyYW0ge251bWJlcn0gZGVsYXkgLSBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byBkZWxheS5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2ltbWVkaWF0ZT1mYWxzZV0gLSBXaGV0aGVyIHRvIHRyaWdnZXIgdGhlIGZ1bmN0aW9uIGltbWVkaWF0ZWx5IG9uIHRoZSBmaXJzdCBjYWxsLFxuICogYW5kIHRoZW4gZGVib3VuY2Ugc3Vic2VxdWVudCBjYWxscy5cbiAqIEByZXR1cm5zIHsoLi4uYXJnczogQXJncykgPT4gdm9pZH0gQSBuZXcsIGRlYm91bmNlZCBmdW5jdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIEV4YW1wbGUgdXNhZ2Ugd2l0aCBhIHdpbmRvdyByZXNpemUgZXZlbnRcbiAqIGNvbnN0IGhhbmRsZVJlc2l6ZSA9IGRlYm91bmNlKCgpID0+IHtcbiAqICAgY29uc29sZS5sb2coJ1dpbmRvdyByZXNpemVkJyk7XG4gKiB9LCAyNTApO1xuICogd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGhhbmRsZVJlc2l6ZSk7XG4gKlxuICogLy8gRXhhbXBsZSB1c2luZyBpbW1lZGlhdGUgaW52b2NhdGlvblxuICogY29uc3QgcHJvY2Vzc0tleVByZXNzID0gZGVib3VuY2UoKGV2ZW50KSA9PiB7XG4gKiAgIGNvbnNvbGUubG9nKCdLZXkgcHJlc3NlZDonLCBldmVudC5rZXkpO1xuICogfSwgMjAwLCB0cnVlKTtcbiAqIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJywgcHJvY2Vzc0tleVByZXNzKTtcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVib3VuY2U8QXJncyBleHRlbmRzIHVua25vd25bXT4oZnVuYzogKC4uLmFyZ3M6IEFyZ3MpID0+IHZvaWQsIGRlbGF5OiBudW1iZXIsIGltbWVkaWF0ZSA9IGZhbHNlKTogKC4uLmFyZ3M6IEFyZ3MpID0+IHZvaWQge1xuICBsZXQgdGltZW91dDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uICh0aGlzOiB1bmtub3duLCAuLi5hcmdzOiBBcmdzKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXM7XG4gICAgY29uc3QgY2FsbEltbWVkaWF0ZWx5ID0gaW1tZWRpYXRlICYmIHRpbWVvdXQgPT09IG51bGw7XG4gICAgaWYgKHRpbWVvdXQgIT09IG51bGwpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0KTtcbiAgICB9XG4gICAgdGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgdGltZW91dCA9IG51bGw7XG4gICAgICBpZiAoIWNhbGxJbW1lZGlhdGVseSkge1xuICAgICAgICBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuICAgICAgfVxuICAgIH0sIGRlbGF5KSBhcyB1bmtub3duIGFzIG51bWJlcjtcbiAgICBpZiAoY2FsbEltbWVkaWF0ZWx5KSB7XG4gICAgICBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -1,4 +1,24 @@
1
+ /**
2
+ * Defers the execution of a function until the current call stack is clear.
3
+ * This is achieved by using `setTimeout` with a delay of `0`, effectively placing the function
4
+ * at the end of the event queue and allowing the browser to complete any pending tasks before execution.
5
+ *
6
+ * @param {() => void} fn - The function to be deferred.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * // Deferring a simple function
11
+ * deferFn(() => console.log('This will be logged after the current execution context completes.'));
12
+ *
13
+ * // Using deferFn to update the UI after a synchronous operation
14
+ * function updateUI() {
15
+ * // UI update logic here
16
+ * }
17
+ * // Assume we're inside a synchronous block of code that updates data
18
+ * deferFn(updateUI); // Ensures UI is updated after data changes are fully applied
19
+ * ```
20
+ */
1
21
  export function deferFn(fn) {
2
22
  setTimeout(fn, 0);
3
23
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmZXItZm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2RlZmVyLWZuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxPQUFPLENBQUMsRUFBYztJQUNwQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gZGVmZXJGbihmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICBzZXRUaW1lb3V0KGZuLCAwKTtcbn1cbiJdfQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmZXItZm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2RlZmVyLWZuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxFQUFjO0lBQ3BDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGVmZXJzIHRoZSBleGVjdXRpb24gb2YgYSBmdW5jdGlvbiB1bnRpbCB0aGUgY3VycmVudCBjYWxsIHN0YWNrIGlzIGNsZWFyLlxuICogVGhpcyBpcyBhY2hpZXZlZCBieSB1c2luZyBgc2V0VGltZW91dGAgd2l0aCBhIGRlbGF5IG9mIGAwYCwgZWZmZWN0aXZlbHkgcGxhY2luZyB0aGUgZnVuY3Rpb25cbiAqIGF0IHRoZSBlbmQgb2YgdGhlIGV2ZW50IHF1ZXVlIGFuZCBhbGxvd2luZyB0aGUgYnJvd3NlciB0byBjb21wbGV0ZSBhbnkgcGVuZGluZyB0YXNrcyBiZWZvcmUgZXhlY3V0aW9uLlxuICpcbiAqIEBwYXJhbSB7KCkgPT4gdm9pZH0gZm4gLSBUaGUgZnVuY3Rpb24gdG8gYmUgZGVmZXJyZWQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiAvLyBEZWZlcnJpbmcgYSBzaW1wbGUgZnVuY3Rpb25cbiAqIGRlZmVyRm4oKCkgPT4gY29uc29sZS5sb2coJ1RoaXMgd2lsbCBiZSBsb2dnZWQgYWZ0ZXIgdGhlIGN1cnJlbnQgZXhlY3V0aW9uIGNvbnRleHQgY29tcGxldGVzLicpKTtcbiAqXG4gKiAvLyBVc2luZyBkZWZlckZuIHRvIHVwZGF0ZSB0aGUgVUkgYWZ0ZXIgYSBzeW5jaHJvbm91cyBvcGVyYXRpb25cbiAqIGZ1bmN0aW9uIHVwZGF0ZVVJKCkge1xuICogICAvLyBVSSB1cGRhdGUgbG9naWMgaGVyZVxuICogfVxuICogLy8gQXNzdW1lIHdlJ3JlIGluc2lkZSBhIHN5bmNocm9ub3VzIGJsb2NrIG9mIGNvZGUgdGhhdCB1cGRhdGVzIGRhdGFcbiAqIGRlZmVyRm4odXBkYXRlVUkpOyAvLyBFbnN1cmVzIFVJIGlzIHVwZGF0ZWQgYWZ0ZXIgZGF0YSBjaGFuZ2VzIGFyZSBmdWxseSBhcHBsaWVkXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmVyRm4oZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgc2V0VGltZW91dChmbiwgMCk7XG59XG4iXX0=
@@ -1,19 +1,56 @@
1
1
  import { isNumber, isString } from './type-guards';
2
+ /**
3
+ * Applies a set of CSS styles to an HTML element.
4
+ *
5
+ * @param {HTMLElement} element - The element to apply styles to.
6
+ * @param {Partial<CSSStyleDeclaration | Record<keyof CSSStyleDeclaration, string | null>>} styles - An object containing CSS properties and values to apply.
7
+ */
2
8
  export function applyStyles(element, styles) {
3
9
  Object.assign(element.style, styles);
4
10
  }
11
+ /**
12
+ * Converts a boolean value to a corresponding attribute string.
13
+ *
14
+ * @param {boolean} state - The boolean state to convert.
15
+ * @returns {string} 'true' if the state is true; otherwise, 'false'.
16
+ */
5
17
  export function booleanToAttributeString(state) {
6
18
  return booleanToOptionalAttributeString(state) ?? 'false';
7
19
  }
20
+ /**
21
+ * Converts a boolean value to 'true' or null, useful for setting attributes based on boolean conditions.
22
+ *
23
+ * @param {boolean} state - The boolean state to convert.
24
+ * @returns {string | null} 'true' if the state is true; otherwise, null.
25
+ */
8
26
  export function booleanToOptionalAttributeString(state) {
9
27
  return state ? 'true' : null;
10
28
  }
29
+ /**
30
+ * Converts a numeric value to a pixel string, appending 'px' to the number.
31
+ *
32
+ * @param {unknown} value - The value to convert to pixels.
33
+ * @returns {`${number}px`} The value in pixels, or '0px' if the input is not a number.
34
+ */
11
35
  export function px(value) {
12
36
  return isNumber(value) ? `${value}px` : '0px';
13
37
  }
38
+ /**
39
+ * Generates a CSS translate3d string for given x and y values.
40
+ *
41
+ * @param {string | 0} x - The translation value along the x-axis.
42
+ * @param {string | 0} y - The translation value along the y-axis.
43
+ * @returns {`translate3d(${string | 0}, ${string | 0}, 0)`} The CSS translate3d value.
44
+ */
14
45
  export function cssTranslate(x, y) {
15
46
  return `translate3d(${x}, ${y}, 0)`;
16
47
  }
48
+ /**
49
+ * Disables or re-enables CSS transitions on an element.
50
+ *
51
+ * @param {HTMLElement} element - The element to modify.
52
+ * @param {boolean} disabled - Whether to disable CSS transitions.
53
+ */
17
54
  export function disableCSSTransitions(element, disabled) {
18
55
  if (disabled) {
19
56
  applyStyles(element, { transition: 'none' });
@@ -23,9 +60,21 @@ export function disableCSSTransitions(element, disabled) {
23
60
  applyStyles(element, { transition: null });
24
61
  }
25
62
  }
63
+ /**
64
+ * Forces the browser to reflow the layout, useful for triggering CSS transitions or animations.
65
+ *
66
+ * @param {HTMLElement} element - The element to force a reflow on.
67
+ */
26
68
  export function forceLayoutReflow(element) {
27
69
  element.offsetHeight;
28
70
  }
71
+ /**
72
+ * Sets an attribute on an HTML element, converting the value to a string if necessary.
73
+ *
74
+ * @param {HTMLElement} element - The element to set the attribute on.
75
+ * @param {string} attribute - The name of the attribute to set.
76
+ * @param {unknown} value - The value of the attribute; will be converted to a string if it's not null or undefined.
77
+ */
29
78
  export function setAttribute(element, attribute, value) {
30
79
  if (isString(value) || isNumber(value)) {
31
80
  element.setAttribute(attribute, value.toString());
@@ -34,6 +83,12 @@ export function setAttribute(element, attribute, value) {
34
83
  element.toggleAttribute(attribute, !!value);
35
84
  }
36
85
  }
86
+ /**
87
+ * Creates a ResizeObserver instance safely, falling back to a dummy if the API is not supported.
88
+ *
89
+ * @param {ResizeObserverCallback} callback - The callback to execute when an observed element's size changes.
90
+ * @returns {ResizeObserver} A ResizeObserver instance or a dummy object with no-op methods if unsupported.
91
+ */
37
92
  export function createResizeObserver(callback) {
38
93
  try {
39
94
  return new ResizeObserver(callback);
@@ -42,6 +97,13 @@ export function createResizeObserver(callback) {
42
97
  return { observe: () => void 0, disconnect: () => void 0, unobserve: () => void 0 };
43
98
  }
44
99
  }
100
+ /**
101
+ * Creates a MutationObserver instance safely, falling back to a dummy if the API is not supported.
102
+ *
103
+ * @param {Subscriber<MutationRecord>} observer - The RxJS Subscriber to emit next values to.
104
+ * @param {(mutations: MutationRecord[]) => boolean} callback - The callback that determines whether to notify the observer based on mutations.
105
+ * @returns {MutationObserver} A MutationObserver instance or a dummy object with no-op methods if unsupported.
106
+ */
45
107
  export function createMutationObserver(observer, callback) {
46
108
  try {
47
109
  return new MutationObserver((mutations) => {
@@ -54,6 +116,14 @@ export function createMutationObserver(observer, callback) {
54
116
  return { disconnect: () => void 0, observe: () => void 0, takeRecords: () => [] };
55
117
  }
56
118
  }
119
+ /**
120
+ * Checks whether one element contains another in the DOM tree.
121
+ *
122
+ * @param {Element | null} parent - The parent element.
123
+ * @param {Element | null} other - The element to check for containment.
124
+ * @param {boolean} [inclusive=true] - Whether to consider an element as containing itself.
125
+ * @returns {boolean} True if the parent contains the other element; false otherwise.
126
+ */
57
127
  export function containsElement(parent, other, inclusive = true) {
58
128
  if (!parent || !other)
59
129
  return false;
@@ -61,4 +131,4 @@ export function containsElement(parent, other, inclusive = true) {
61
131
  return false;
62
132
  return parent.contains(other);
63
133
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3V0aWxzL3NyYy9saWIvaGVscGVycy9kb20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxPQUFvQixFQUFFLE1BQXVGO0lBQ3ZJLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUFDLEtBQWM7SUFDckQsT0FBTyxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUM7QUFDNUQsQ0FBQztBQUVELE1BQU0sVUFBVSxnQ0FBZ0MsQ0FBQyxLQUFjO0lBQzdELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLEVBQUUsQ0FBQyxLQUFjO0lBQy9CLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDaEQsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsQ0FBYSxFQUFFLENBQWE7SUFDdkQsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztBQUN0QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFDLE9BQW9CLEVBQUUsUUFBaUI7SUFDM0UsSUFBSSxRQUFRLEVBQUU7UUFDWixXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7S0FDOUM7U0FBTTtRQUNMLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLFdBQVcsQ0FBQyxPQUFPLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUM1QztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsT0FBb0I7SUFDcEQsT0FBTyxDQUFDLFlBQVksQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFvQixFQUFFLFNBQWlCLEVBQUUsS0FBZTtJQUNuRixJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDdEMsT0FBTyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7S0FDbkQ7U0FBTTtRQUNMLE9BQU8sQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUM3QztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsUUFBZ0M7SUFDbkUsSUFBSTtRQUNGLE9BQU8sSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7S0FDckM7SUFBQyxNQUFNO1FBQ04sT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7S0FDckY7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFFBQW9DLEVBQUUsUUFBa0Q7SUFDN0gsSUFBSTtRQUNGLE9BQU8sSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ3hDLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUN2QixRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzdCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUFDLE9BQU8sS0FBSyxFQUFFO1FBQ2QsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO0tBQ25GO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBdUIsRUFBRSxLQUFzQixFQUFFLFNBQVMsR0FBRyxJQUFJO0lBQy9GLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDcEMsSUFBSSxDQUFDLFNBQVMsSUFBSSxNQUFNLEtBQUssS0FBSztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ2pELE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3Vic2NyaWJlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNOdW1iZXIsIGlzU3RyaW5nIH0gZnJvbSAnLi90eXBlLWd1YXJkcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVN0eWxlcyhlbGVtZW50OiBIVE1MRWxlbWVudCwgc3R5bGVzOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24gfCBSZWNvcmQ8a2V5b2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiwgc3RyaW5nIHwgbnVsbD4+KTogdm9pZCB7XG4gIE9iamVjdC5hc3NpZ24oZWxlbWVudC5zdHlsZSwgc3R5bGVzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJvb2xlYW5Ub0F0dHJpYnV0ZVN0cmluZyhzdGF0ZTogYm9vbGVhbik6IHN0cmluZyB7XG4gIHJldHVybiBib29sZWFuVG9PcHRpb25hbEF0dHJpYnV0ZVN0cmluZyhzdGF0ZSkgPz8gJ2ZhbHNlJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJvb2xlYW5Ub09wdGlvbmFsQXR0cmlidXRlU3RyaW5nKHN0YXRlOiBib29sZWFuKTogc3RyaW5nIHwgbnVsbCB7XG4gIHJldHVybiBzdGF0ZSA/ICd0cnVlJyA6IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBweCh2YWx1ZTogdW5rbm93bik6IGAke251bWJlcn1weGAge1xuICByZXR1cm4gaXNOdW1iZXIodmFsdWUpID8gYCR7dmFsdWV9cHhgIDogJzBweCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjc3NUcmFuc2xhdGUoeDogc3RyaW5nIHwgMCwgeTogc3RyaW5nIHwgMCk6IGB0cmFuc2xhdGUzZCgke3N0cmluZyB8IDB9LCAke3N0cmluZyB8IDB9LCAwKWAge1xuICByZXR1cm4gYHRyYW5zbGF0ZTNkKCR7eH0sICR7eX0sIDApYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRpc2FibGVDU1NUcmFuc2l0aW9ucyhlbGVtZW50OiBIVE1MRWxlbWVudCwgZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgaWYgKGRpc2FibGVkKSB7XG4gICAgYXBwbHlTdHlsZXMoZWxlbWVudCwgeyB0cmFuc2l0aW9uOiAnbm9uZScgfSk7XG4gIH0gZWxzZSB7XG4gICAgZm9yY2VMYXlvdXRSZWZsb3coZWxlbWVudCk7XG4gICAgYXBwbHlTdHlsZXMoZWxlbWVudCwgeyB0cmFuc2l0aW9uOiBudWxsIH0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmb3JjZUxheW91dFJlZmxvdyhlbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICBlbGVtZW50Lm9mZnNldEhlaWdodDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEF0dHJpYnV0ZShlbGVtZW50OiBIVE1MRWxlbWVudCwgYXR0cmlidXRlOiBzdHJpbmcsIHZhbHVlPzogdW5rbm93bikge1xuICBpZiAoaXNTdHJpbmcodmFsdWUpIHx8IGlzTnVtYmVyKHZhbHVlKSkge1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUudG9TdHJpbmcoKSk7XG4gIH0gZWxzZSB7XG4gICAgZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoYXR0cmlidXRlLCAhIXZhbHVlKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVzaXplT2JzZXJ2ZXIoY2FsbGJhY2s6IFJlc2l6ZU9ic2VydmVyQ2FsbGJhY2spOiBSZXNpemVPYnNlcnZlciB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIG5ldyBSZXNpemVPYnNlcnZlcihjYWxsYmFjayk7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiB7IG9ic2VydmU6ICgpID0+IHZvaWQgMCwgZGlzY29ubmVjdDogKCkgPT4gdm9pZCAwLCB1bm9ic2VydmU6ICgpID0+IHZvaWQgMCB9O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNdXRhdGlvbk9ic2VydmVyKG9ic2VydmVyOiBTdWJzY3JpYmVyPE11dGF0aW9uUmVjb3JkPiwgY2FsbGJhY2s6IChtdXRhdGlvbnM6IE11dGF0aW9uUmVjb3JkW10pID0+IGJvb2xlYW4pOiBNdXRhdGlvbk9ic2VydmVyIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9ucykgPT4ge1xuICAgICAgaWYgKGNhbGxiYWNrKG11dGF0aW9ucykpIHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dChtdXRhdGlvbnNbMF0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiB7IGRpc2Nvbm5lY3Q6ICgpID0+IHZvaWQgMCwgb2JzZXJ2ZTogKCkgPT4gdm9pZCAwLCB0YWtlUmVjb3JkczogKCkgPT4gW10gfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFpbnNFbGVtZW50KHBhcmVudD86IEVsZW1lbnQgfCBudWxsLCBvdGhlcj86IEVsZW1lbnQgfCBudWxsLCBpbmNsdXNpdmUgPSB0cnVlKTogYm9vbGVhbiB7XG4gIGlmICghcGFyZW50IHx8ICFvdGhlcikgcmV0dXJuIGZhbHNlO1xuICBpZiAoIWluY2x1c2l2ZSAmJiBwYXJlbnQgPT09IG90aGVyKSByZXR1cm4gZmFsc2U7XG4gIHJldHVybiBwYXJlbnQuY29udGFpbnMob3RoZXIpO1xufVxuIl19
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3V0aWxzL3NyYy9saWIvaGVscGVycy9kb20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUFDLE9BQW9CLEVBQUUsTUFBdUY7SUFDdkksTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxLQUFjO0lBQ3JELE9BQU8sZ0NBQWdDLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDO0FBQzVELENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxnQ0FBZ0MsQ0FBQyxLQUFjO0lBQzdELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUMvQixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsRUFBRSxDQUFDLEtBQWM7SUFDL0IsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztBQUNoRCxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxDQUFhLEVBQUUsQ0FBYTtJQUN2RCxPQUFPLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQ3RDLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxPQUFvQixFQUFFLFFBQWlCO0lBQzNFLElBQUksUUFBUSxFQUFFO1FBQ1osV0FBVyxDQUFDLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0tBQzlDO1NBQU07UUFDTCxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7S0FDNUM7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxPQUFvQjtJQUNwRCxPQUFPLENBQUMsWUFBWSxDQUFDO0FBQ3ZCLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUFDLE9BQW9CLEVBQUUsU0FBaUIsRUFBRSxLQUFlO0lBQ25GLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN0QyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztLQUNuRDtTQUFNO1FBQ0wsT0FBTyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzdDO0FBQ0gsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLFFBQWdDO0lBQ25FLElBQUk7UUFDRixPQUFPLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQ3JDO0lBQUMsTUFBTTtRQUNOLE9BQU8sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0tBQ3JGO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxRQUFvQyxFQUFFLFFBQWtEO0lBQzdILElBQUk7UUFDRixPQUFPLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUN4QyxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDdkIsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM3QjtRQUNILENBQUMsQ0FBQyxDQUFDO0tBQ0o7SUFBQyxPQUFPLEtBQUssRUFBRTtRQUNkLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztLQUNuRjtBQUNILENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxNQUF1QixFQUFFLEtBQXNCLEVBQUUsU0FBUyxHQUFHLElBQUk7SUFDL0YsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUNwQyxJQUFJLENBQUMsU0FBUyxJQUFJLE1BQU0sS0FBSyxLQUFLO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDakQsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJzY3JpYmVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpc051bWJlciwgaXNTdHJpbmcgfSBmcm9tICcuL3R5cGUtZ3VhcmRzJztcblxuLyoqXG4gKiBBcHBsaWVzIGEgc2V0IG9mIENTUyBzdHlsZXMgdG8gYW4gSFRNTCBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnQgLSBUaGUgZWxlbWVudCB0byBhcHBseSBzdHlsZXMgdG8uXG4gKiBAcGFyYW0ge1BhcnRpYWw8Q1NTU3R5bGVEZWNsYXJhdGlvbiB8IFJlY29yZDxrZXlvZiBDU1NTdHlsZURlY2xhcmF0aW9uLCBzdHJpbmcgfCBudWxsPj59IHN0eWxlcyAtIEFuIG9iamVjdCBjb250YWluaW5nIENTUyBwcm9wZXJ0aWVzIGFuZCB2YWx1ZXMgdG8gYXBwbHkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBseVN0eWxlcyhlbGVtZW50OiBIVE1MRWxlbWVudCwgc3R5bGVzOiBQYXJ0aWFsPENTU1N0eWxlRGVjbGFyYXRpb24gfCBSZWNvcmQ8a2V5b2YgQ1NTU3R5bGVEZWNsYXJhdGlvbiwgc3RyaW5nIHwgbnVsbD4+KTogdm9pZCB7XG4gIE9iamVjdC5hc3NpZ24oZWxlbWVudC5zdHlsZSwgc3R5bGVzKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGJvb2xlYW4gdmFsdWUgdG8gYSBjb3JyZXNwb25kaW5nIGF0dHJpYnV0ZSBzdHJpbmcuXG4gKlxuICogQHBhcmFtIHtib29sZWFufSBzdGF0ZSAtIFRoZSBib29sZWFuIHN0YXRlIHRvIGNvbnZlcnQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAndHJ1ZScgaWYgdGhlIHN0YXRlIGlzIHRydWU7IG90aGVyd2lzZSwgJ2ZhbHNlJy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJvb2xlYW5Ub0F0dHJpYnV0ZVN0cmluZyhzdGF0ZTogYm9vbGVhbik6IHN0cmluZyB7XG4gIHJldHVybiBib29sZWFuVG9PcHRpb25hbEF0dHJpYnV0ZVN0cmluZyhzdGF0ZSkgPz8gJ2ZhbHNlJztcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGJvb2xlYW4gdmFsdWUgdG8gJ3RydWUnIG9yIG51bGwsIHVzZWZ1bCBmb3Igc2V0dGluZyBhdHRyaWJ1dGVzIGJhc2VkIG9uIGJvb2xlYW4gY29uZGl0aW9ucy5cbiAqXG4gKiBAcGFyYW0ge2Jvb2xlYW59IHN0YXRlIC0gVGhlIGJvb2xlYW4gc3RhdGUgdG8gY29udmVydC5cbiAqIEByZXR1cm5zIHtzdHJpbmcgfCBudWxsfSAndHJ1ZScgaWYgdGhlIHN0YXRlIGlzIHRydWU7IG90aGVyd2lzZSwgbnVsbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJvb2xlYW5Ub09wdGlvbmFsQXR0cmlidXRlU3RyaW5nKHN0YXRlOiBib29sZWFuKTogc3RyaW5nIHwgbnVsbCB7XG4gIHJldHVybiBzdGF0ZSA/ICd0cnVlJyA6IG51bGw7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBudW1lcmljIHZhbHVlIHRvIGEgcGl4ZWwgc3RyaW5nLCBhcHBlbmRpbmcgJ3B4JyB0byB0aGUgbnVtYmVyLlxuICpcbiAqIEBwYXJhbSB7dW5rbm93bn0gdmFsdWUgLSBUaGUgdmFsdWUgdG8gY29udmVydCB0byBwaXhlbHMuXG4gKiBAcmV0dXJucyB7YCR7bnVtYmVyfXB4YH0gVGhlIHZhbHVlIGluIHBpeGVscywgb3IgJzBweCcgaWYgdGhlIGlucHV0IGlzIG5vdCBhIG51bWJlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHB4KHZhbHVlOiB1bmtub3duKTogYCR7bnVtYmVyfXB4YCB7XG4gIHJldHVybiBpc051bWJlcih2YWx1ZSkgPyBgJHt2YWx1ZX1weGAgOiAnMHB4Jztcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgYSBDU1MgdHJhbnNsYXRlM2Qgc3RyaW5nIGZvciBnaXZlbiB4IGFuZCB5IHZhbHVlcy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZyB8IDB9IHggLSBUaGUgdHJhbnNsYXRpb24gdmFsdWUgYWxvbmcgdGhlIHgtYXhpcy5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgMH0geSAtIFRoZSB0cmFuc2xhdGlvbiB2YWx1ZSBhbG9uZyB0aGUgeS1heGlzLlxuICogQHJldHVybnMge2B0cmFuc2xhdGUzZCgke3N0cmluZyB8IDB9LCAke3N0cmluZyB8IDB9LCAwKWB9IFRoZSBDU1MgdHJhbnNsYXRlM2QgdmFsdWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjc3NUcmFuc2xhdGUoeDogc3RyaW5nIHwgMCwgeTogc3RyaW5nIHwgMCk6IGB0cmFuc2xhdGUzZCgke3N0cmluZyB8IDB9LCAke3N0cmluZyB8IDB9LCAwKWAge1xuICByZXR1cm4gYHRyYW5zbGF0ZTNkKCR7eH0sICR7eX0sIDApYDtcbn1cblxuLyoqXG4gKiBEaXNhYmxlcyBvciByZS1lbmFibGVzIENTUyB0cmFuc2l0aW9ucyBvbiBhbiBlbGVtZW50LlxuICpcbiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnQgLSBUaGUgZWxlbWVudCB0byBtb2RpZnkuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IGRpc2FibGVkIC0gV2hldGhlciB0byBkaXNhYmxlIENTUyB0cmFuc2l0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpc2FibGVDU1NUcmFuc2l0aW9ucyhlbGVtZW50OiBIVE1MRWxlbWVudCwgZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgaWYgKGRpc2FibGVkKSB7XG4gICAgYXBwbHlTdHlsZXMoZWxlbWVudCwgeyB0cmFuc2l0aW9uOiAnbm9uZScgfSk7XG4gIH0gZWxzZSB7XG4gICAgZm9yY2VMYXlvdXRSZWZsb3coZWxlbWVudCk7XG4gICAgYXBwbHlTdHlsZXMoZWxlbWVudCwgeyB0cmFuc2l0aW9uOiBudWxsIH0pO1xuICB9XG59XG5cbi8qKlxuICogRm9yY2VzIHRoZSBicm93c2VyIHRvIHJlZmxvdyB0aGUgbGF5b3V0LCB1c2VmdWwgZm9yIHRyaWdnZXJpbmcgQ1NTIHRyYW5zaXRpb25zIG9yIGFuaW1hdGlvbnMuXG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudCAtIFRoZSBlbGVtZW50IHRvIGZvcmNlIGEgcmVmbG93IG9uLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9yY2VMYXlvdXRSZWZsb3coZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG59XG5cbi8qKlxuICogU2V0cyBhbiBhdHRyaWJ1dGUgb24gYW4gSFRNTCBlbGVtZW50LCBjb252ZXJ0aW5nIHRoZSB2YWx1ZSB0byBhIHN0cmluZyBpZiBuZWNlc3NhcnkuXG4gKlxuICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxlbWVudCAtIFRoZSBlbGVtZW50IHRvIHNldCB0aGUgYXR0cmlidXRlIG9uLlxuICogQHBhcmFtIHtzdHJpbmd9IGF0dHJpYnV0ZSAtIFRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGUgdG8gc2V0LlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZSAtIFRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlOyB3aWxsIGJlIGNvbnZlcnRlZCB0byBhIHN0cmluZyBpZiBpdCdzIG5vdCBudWxsIG9yIHVuZGVmaW5lZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNldEF0dHJpYnV0ZShlbGVtZW50OiBIVE1MRWxlbWVudCwgYXR0cmlidXRlOiBzdHJpbmcsIHZhbHVlPzogdW5rbm93bikge1xuICBpZiAoaXNTdHJpbmcodmFsdWUpIHx8IGlzTnVtYmVyKHZhbHVlKSkge1xuICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHJpYnV0ZSwgdmFsdWUudG9TdHJpbmcoKSk7XG4gIH0gZWxzZSB7XG4gICAgZWxlbWVudC50b2dnbGVBdHRyaWJ1dGUoYXR0cmlidXRlLCAhIXZhbHVlKTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBSZXNpemVPYnNlcnZlciBpbnN0YW5jZSBzYWZlbHksIGZhbGxpbmcgYmFjayB0byBhIGR1bW15IGlmIHRoZSBBUEkgaXMgbm90IHN1cHBvcnRlZC5cbiAqXG4gKiBAcGFyYW0ge1Jlc2l6ZU9ic2VydmVyQ2FsbGJhY2t9IGNhbGxiYWNrIC0gVGhlIGNhbGxiYWNrIHRvIGV4ZWN1dGUgd2hlbiBhbiBvYnNlcnZlZCBlbGVtZW50J3Mgc2l6ZSBjaGFuZ2VzLlxuICogQHJldHVybnMge1Jlc2l6ZU9ic2VydmVyfSBBIFJlc2l6ZU9ic2VydmVyIGluc3RhbmNlIG9yIGEgZHVtbXkgb2JqZWN0IHdpdGggbm8tb3AgbWV0aG9kcyBpZiB1bnN1cHBvcnRlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlc2l6ZU9ic2VydmVyKGNhbGxiYWNrOiBSZXNpemVPYnNlcnZlckNhbGxiYWNrKTogUmVzaXplT2JzZXJ2ZXIge1xuICB0cnkge1xuICAgIHJldHVybiBuZXcgUmVzaXplT2JzZXJ2ZXIoY2FsbGJhY2spO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4geyBvYnNlcnZlOiAoKSA9PiB2b2lkIDAsIGRpc2Nvbm5lY3Q6ICgpID0+IHZvaWQgMCwgdW5vYnNlcnZlOiAoKSA9PiB2b2lkIDAgfTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZXMgYSBNdXRhdGlvbk9ic2VydmVyIGluc3RhbmNlIHNhZmVseSwgZmFsbGluZyBiYWNrIHRvIGEgZHVtbXkgaWYgdGhlIEFQSSBpcyBub3Qgc3VwcG9ydGVkLlxuICpcbiAqIEBwYXJhbSB7U3Vic2NyaWJlcjxNdXRhdGlvblJlY29yZD59IG9ic2VydmVyIC0gVGhlIFJ4SlMgU3Vic2NyaWJlciB0byBlbWl0IG5leHQgdmFsdWVzIHRvLlxuICogQHBhcmFtIHsobXV0YXRpb25zOiBNdXRhdGlvblJlY29yZFtdKSA9PiBib29sZWFufSBjYWxsYmFjayAtIFRoZSBjYWxsYmFjayB0aGF0IGRldGVybWluZXMgd2hldGhlciB0byBub3RpZnkgdGhlIG9ic2VydmVyIGJhc2VkIG9uIG11dGF0aW9ucy5cbiAqIEByZXR1cm5zIHtNdXRhdGlvbk9ic2VydmVyfSBBIE11dGF0aW9uT2JzZXJ2ZXIgaW5zdGFuY2Ugb3IgYSBkdW1teSBvYmplY3Qgd2l0aCBuby1vcCBtZXRob2RzIGlmIHVuc3VwcG9ydGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTXV0YXRpb25PYnNlcnZlcihvYnNlcnZlcjogU3Vic2NyaWJlcjxNdXRhdGlvblJlY29yZD4sIGNhbGxiYWNrOiAobXV0YXRpb25zOiBNdXRhdGlvblJlY29yZFtdKSA9PiBib29sZWFuKTogTXV0YXRpb25PYnNlcnZlciB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnMpID0+IHtcbiAgICAgIGlmIChjYWxsYmFjayhtdXRhdGlvbnMpKSB7XG4gICAgICAgIG9ic2VydmVyLm5leHQobXV0YXRpb25zWzBdKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXR1cm4geyBkaXNjb25uZWN0OiAoKSA9PiB2b2lkIDAsIG9ic2VydmU6ICgpID0+IHZvaWQgMCwgdGFrZVJlY29yZHM6ICgpID0+IFtdIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBvbmUgZWxlbWVudCBjb250YWlucyBhbm90aGVyIGluIHRoZSBET00gdHJlZS5cbiAqXG4gKiBAcGFyYW0ge0VsZW1lbnQgfCBudWxsfSBwYXJlbnQgLSBUaGUgcGFyZW50IGVsZW1lbnQuXG4gKiBAcGFyYW0ge0VsZW1lbnQgfCBudWxsfSBvdGhlciAtIFRoZSBlbGVtZW50IHRvIGNoZWNrIGZvciBjb250YWlubWVudC5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2luY2x1c2l2ZT10cnVlXSAtIFdoZXRoZXIgdG8gY29uc2lkZXIgYW4gZWxlbWVudCBhcyBjb250YWluaW5nIGl0c2VsZi5cbiAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHRoZSBwYXJlbnQgY29udGFpbnMgdGhlIG90aGVyIGVsZW1lbnQ7IGZhbHNlIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnRhaW5zRWxlbWVudChwYXJlbnQ/OiBFbGVtZW50IHwgbnVsbCwgb3RoZXI/OiBFbGVtZW50IHwgbnVsbCwgaW5jbHVzaXZlID0gdHJ1ZSk6IGJvb2xlYW4ge1xuICBpZiAoIXBhcmVudCB8fCAhb3RoZXIpIHJldHVybiBmYWxzZTtcbiAgaWYgKCFpbmNsdXNpdmUgJiYgcGFyZW50ID09PSBvdGhlcikgcmV0dXJuIGZhbHNlO1xuICByZXR1cm4gcGFyZW50LmNvbnRhaW5zKG90aGVyKTtcbn1cbiJdfQ==
@@ -1,5 +1,25 @@
1
1
  import { Axis, Side } from '../types';
2
2
  import { getSide } from './get-side';
3
+ /**
4
+ * Determines the axis associated with a given position. The function first extracts the side from the position,
5
+ * then evaluates whether that side corresponds to the X-axis (left or right) or the Y-axis (top or bottom).
6
+ *
7
+ * @param {Position} position - The position string, which includes a side (top, bottom, left, right) and possibly an alignment.
8
+ * @returns {Axis} The axis (X or Y) associated with the given position's side.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * // Determining the axis for different positions
13
+ * console.log(getAxis('top-left')); // Outputs: 'Y'
14
+ * console.log(getAxis('right')); // Outputs: 'X'
15
+ *
16
+ * // Using getAxis in UI element positioning logic
17
+ * const elementPosition = 'bottom';
18
+ * const axis = getAxis(elementPosition);
19
+ * // Assuming a function that adjusts UI elements based on the axis
20
+ * adjustElementAlongAxis(axis);
21
+ * ```
22
+ */
3
23
  export function getAxis(position) {
4
24
  const side = getSide(position);
5
25
  switch (side) {
@@ -11,4 +31,4 @@ export function getAxis(position) {
11
31
  return Axis.X;
12
32
  }
13
33
  }
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWF4aXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2dldC1heGlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQVksSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFckMsTUFBTSxVQUFVLE9BQU8sQ0FBQyxRQUFrQjtJQUN4QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFL0IsUUFBUSxJQUFJLEVBQUU7UUFDWixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDZCxLQUFLLElBQUksQ0FBQyxNQUFNO1lBQ2QsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQztRQUNmLEtBQUssSUFBSSxDQUFDLEtBQUs7WUFDYixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7S0FDakI7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXhpcywgUG9zaXRpb24sIFNpZGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRTaWRlIH0gZnJvbSAnLi9nZXQtc2lkZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBeGlzKHBvc2l0aW9uOiBQb3NpdGlvbik6IEF4aXMge1xuICBjb25zdCBzaWRlID0gZ2V0U2lkZShwb3NpdGlvbik7XG5cbiAgc3dpdGNoIChzaWRlKSB7XG4gICAgY2FzZSBTaWRlLlRPUDpcbiAgICBjYXNlIFNpZGUuQk9UVE9NOlxuICAgICAgcmV0dXJuIEF4aXMuWTtcbiAgICBjYXNlIFNpZGUuTEVGVDpcbiAgICBjYXNlIFNpZGUuUklHSFQ6XG4gICAgICByZXR1cm4gQXhpcy5YO1xuICB9XG59XG4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWF4aXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2dldC1heGlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQVksSUFBSSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFckM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFDLFFBQWtCO0lBQ3hDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUUvQixRQUFRLElBQUksRUFBRTtRQUNaLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNkLEtBQUssSUFBSSxDQUFDLE1BQU07WUFDZCxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEIsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2YsS0FBSyxJQUFJLENBQUMsS0FBSztZQUNiLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQztLQUNqQjtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBeGlzLCBQb3NpdGlvbiwgU2lkZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGdldFNpZGUgfSBmcm9tICcuL2dldC1zaWRlJztcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHRoZSBheGlzIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIHBvc2l0aW9uLiBUaGUgZnVuY3Rpb24gZmlyc3QgZXh0cmFjdHMgdGhlIHNpZGUgZnJvbSB0aGUgcG9zaXRpb24sXG4gKiB0aGVuIGV2YWx1YXRlcyB3aGV0aGVyIHRoYXQgc2lkZSBjb3JyZXNwb25kcyB0byB0aGUgWC1heGlzIChsZWZ0IG9yIHJpZ2h0KSBvciB0aGUgWS1heGlzICh0b3Agb3IgYm90dG9tKS5cbiAqXG4gKiBAcGFyYW0ge1Bvc2l0aW9ufSBwb3NpdGlvbiAtIFRoZSBwb3NpdGlvbiBzdHJpbmcsIHdoaWNoIGluY2x1ZGVzIGEgc2lkZSAodG9wLCBib3R0b20sIGxlZnQsIHJpZ2h0KSBhbmQgcG9zc2libHkgYW4gYWxpZ25tZW50LlxuICogQHJldHVybnMge0F4aXN9IFRoZSBheGlzIChYIG9yIFkpIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gcG9zaXRpb24ncyBzaWRlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogLy8gRGV0ZXJtaW5pbmcgdGhlIGF4aXMgZm9yIGRpZmZlcmVudCBwb3NpdGlvbnNcbiAqIGNvbnNvbGUubG9nKGdldEF4aXMoJ3RvcC1sZWZ0JykpOyAvLyBPdXRwdXRzOiAnWSdcbiAqIGNvbnNvbGUubG9nKGdldEF4aXMoJ3JpZ2h0JykpOyAgICAvLyBPdXRwdXRzOiAnWCdcbiAqXG4gKiAvLyBVc2luZyBnZXRBeGlzIGluIFVJIGVsZW1lbnQgcG9zaXRpb25pbmcgbG9naWNcbiAqIGNvbnN0IGVsZW1lbnRQb3NpdGlvbiA9ICdib3R0b20nO1xuICogY29uc3QgYXhpcyA9IGdldEF4aXMoZWxlbWVudFBvc2l0aW9uKTtcbiAqIC8vIEFzc3VtaW5nIGEgZnVuY3Rpb24gdGhhdCBhZGp1c3RzIFVJIGVsZW1lbnRzIGJhc2VkIG9uIHRoZSBheGlzXG4gKiBhZGp1c3RFbGVtZW50QWxvbmdBeGlzKGF4aXMpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBeGlzKHBvc2l0aW9uOiBQb3NpdGlvbik6IEF4aXMge1xuICBjb25zdCBzaWRlID0gZ2V0U2lkZShwb3NpdGlvbik7XG5cbiAgc3dpdGNoIChzaWRlKSB7XG4gICAgY2FzZSBTaWRlLlRPUDpcbiAgICBjYXNlIFNpZGUuQk9UVE9NOlxuICAgICAgcmV0dXJuIEF4aXMuWTtcbiAgICBjYXNlIFNpZGUuTEVGVDpcbiAgICBjYXNlIFNpZGUuUklHSFQ6XG4gICAgICByZXR1cm4gQXhpcy5YO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,22 @@
1
+ /**
2
+ * Extracts the language code from a language string that may include both a language and a region code.
3
+ * The function supports language strings formatted with either a hyphen (`-`) or an underscore (`_`) as the separator.
4
+ *
5
+ * @param {string} language - The complete language string, potentially including both language and region codes.
6
+ * @returns {string} The extracted language code, converted to lower case.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * // Extracting language code from a language-region string
11
+ * console.log(getLanguageCode('en-US')); // Outputs: 'en'
12
+ * console.log(getLanguageCode('zh_CN')); // Outputs: 'zh'
13
+ *
14
+ * // Handling language codes without region codes
15
+ * console.log(getLanguageCode('fr')); // Outputs: 'fr'
16
+ * ```
17
+ */
1
18
  export function getLanguageCode(language) {
2
19
  const [languageCode] = language.split(/-|_/);
3
20
  return languageCode?.toLowerCase();
4
21
  }
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWxhbmd1YWdlLWNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2dldC1sYW5ndWFnZS1jb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxlQUFlLENBQUMsUUFBZ0I7SUFDOUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFN0MsT0FBTyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7QUFDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBnZXRMYW5ndWFnZUNvZGUobGFuZ3VhZ2U6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IFtsYW5ndWFnZUNvZGVdID0gbGFuZ3VhZ2Uuc3BsaXQoLy18Xy8pO1xuXG4gIHJldHVybiBsYW5ndWFnZUNvZGU/LnRvTG93ZXJDYXNlKCk7XG59XG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWxhbmd1YWdlLWNvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2dldC1sYW5ndWFnZS1jb2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FBQyxRQUFnQjtJQUM5QyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUU3QyxPQUFPLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHRyYWN0cyB0aGUgbGFuZ3VhZ2UgY29kZSBmcm9tIGEgbGFuZ3VhZ2Ugc3RyaW5nIHRoYXQgbWF5IGluY2x1ZGUgYm90aCBhIGxhbmd1YWdlIGFuZCBhIHJlZ2lvbiBjb2RlLlxuICogVGhlIGZ1bmN0aW9uIHN1cHBvcnRzIGxhbmd1YWdlIHN0cmluZ3MgZm9ybWF0dGVkIHdpdGggZWl0aGVyIGEgaHlwaGVuIChgLWApIG9yIGFuIHVuZGVyc2NvcmUgKGBfYCkgYXMgdGhlIHNlcGFyYXRvci5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbGFuZ3VhZ2UgLSBUaGUgY29tcGxldGUgbGFuZ3VhZ2Ugc3RyaW5nLCBwb3RlbnRpYWxseSBpbmNsdWRpbmcgYm90aCBsYW5ndWFnZSBhbmQgcmVnaW9uIGNvZGVzLlxuICogQHJldHVybnMge3N0cmluZ30gVGhlIGV4dHJhY3RlZCBsYW5ndWFnZSBjb2RlLCBjb252ZXJ0ZWQgdG8gbG93ZXIgY2FzZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIEV4dHJhY3RpbmcgbGFuZ3VhZ2UgY29kZSBmcm9tIGEgbGFuZ3VhZ2UtcmVnaW9uIHN0cmluZ1xuICogY29uc29sZS5sb2coZ2V0TGFuZ3VhZ2VDb2RlKCdlbi1VUycpKTsgLy8gT3V0cHV0czogJ2VuJ1xuICogY29uc29sZS5sb2coZ2V0TGFuZ3VhZ2VDb2RlKCd6aF9DTicpKTsgLy8gT3V0cHV0czogJ3poJ1xuICpcbiAqIC8vIEhhbmRsaW5nIGxhbmd1YWdlIGNvZGVzIHdpdGhvdXQgcmVnaW9uIGNvZGVzXG4gKiBjb25zb2xlLmxvZyhnZXRMYW5ndWFnZUNvZGUoJ2ZyJykpOyAgICAvLyBPdXRwdXRzOiAnZnInXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExhbmd1YWdlQ29kZShsYW5ndWFnZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgW2xhbmd1YWdlQ29kZV0gPSBsYW5ndWFnZS5zcGxpdCgvLXxfLyk7XG5cbiAgcmV0dXJuIGxhbmd1YWdlQ29kZT8udG9Mb3dlckNhc2UoKTtcbn1cbiJdfQ==
@@ -1,5 +1,26 @@
1
1
  import { Side } from '../types';
2
2
  import { getSide } from './get-side';
3
+ /**
4
+ * Determines the opposite side for a given position. This function is useful for scenarios
5
+ * where you need to dynamically calculate the positioning or alignment opposite to the current one,
6
+ * such as inverting tooltips, popovers, or any UI elements that adjust based on available viewport space.
7
+ *
8
+ * @param {Position} position - The position string, which includes a side and possibly an alignment.
9
+ * @returns {Side} The opposite side relative to the provided position's side.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * // Getting the opposite side of a given position
14
+ * console.log(getOppositeSide('top-left')); // Outputs: 'bottom'
15
+ * console.log(getOppositeSide('right')); // Outputs: 'left'
16
+ *
17
+ * // Using getOppositeSide to adjust UI elements
18
+ * const currentSide = 'left';
19
+ * const newPosition = getOppositeSide(currentSide);
20
+ * // Assuming an element's position or orientation needs to be dynamically updated
21
+ * updateElementPosition(newPosition);
22
+ * ```
23
+ */
3
24
  export function getOppositeSide(position) {
4
25
  switch (getSide(position)) {
5
26
  case Side.TOP:
@@ -12,4 +33,4 @@ export function getOppositeSide(position) {
12
33
  return Side.RIGHT;
13
34
  }
14
35
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW9wcG9zaXRlLXNpZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2dldC1vcHBvc2l0ZS1zaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBWSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVyQyxNQUFNLFVBQVUsZUFBZSxDQUFDLFFBQWtCO0lBQ2hELFFBQVEsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3pCLEtBQUssSUFBSSxDQUFDLEdBQUc7WUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsS0FBSyxJQUFJLENBQUMsS0FBSztZQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztRQUNuQixLQUFLLElBQUksQ0FBQyxNQUFNO1lBQ2QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ2xCLEtBQUssSUFBSSxDQUFDLElBQUk7WUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDckI7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9zaXRpb24sIFNpZGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRTaWRlIH0gZnJvbSAnLi9nZXQtc2lkZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPcHBvc2l0ZVNpZGUocG9zaXRpb246IFBvc2l0aW9uKTogU2lkZSB7XG4gIHN3aXRjaCAoZ2V0U2lkZShwb3NpdGlvbikpIHtcbiAgICBjYXNlIFNpZGUuVE9QOlxuICAgICAgcmV0dXJuIFNpZGUuQk9UVE9NO1xuICAgIGNhc2UgU2lkZS5SSUdIVDpcbiAgICAgIHJldHVybiBTaWRlLkxFRlQ7XG4gICAgY2FzZSBTaWRlLkJPVFRPTTpcbiAgICAgIHJldHVybiBTaWRlLlRPUDtcbiAgICBjYXNlIFNpZGUuTEVGVDpcbiAgICAgIHJldHVybiBTaWRlLlJJR0hUO1xuICB9XG59XG4iXX0=
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW9wcG9zaXRlLXNpZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2dldC1vcHBvc2l0ZS1zaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBWSxJQUFJLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVyQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFDLFFBQWtCO0lBQ2hELFFBQVEsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ3pCLEtBQUssSUFBSSxDQUFDLEdBQUc7WUFDWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDckIsS0FBSyxJQUFJLENBQUMsS0FBSztZQUNiLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztRQUNuQixLQUFLLElBQUksQ0FBQyxNQUFNO1lBQ2QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ2xCLEtBQUssSUFBSSxDQUFDLElBQUk7WUFDWixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7S0FDckI7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9zaXRpb24sIFNpZGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRTaWRlIH0gZnJvbSAnLi9nZXQtc2lkZSc7XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB0aGUgb3Bwb3NpdGUgc2lkZSBmb3IgYSBnaXZlbiBwb3NpdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyB1c2VmdWwgZm9yIHNjZW5hcmlvc1xuICogd2hlcmUgeW91IG5lZWQgdG8gZHluYW1pY2FsbHkgY2FsY3VsYXRlIHRoZSBwb3NpdGlvbmluZyBvciBhbGlnbm1lbnQgb3Bwb3NpdGUgdG8gdGhlIGN1cnJlbnQgb25lLFxuICogc3VjaCBhcyBpbnZlcnRpbmcgdG9vbHRpcHMsIHBvcG92ZXJzLCBvciBhbnkgVUkgZWxlbWVudHMgdGhhdCBhZGp1c3QgYmFzZWQgb24gYXZhaWxhYmxlIHZpZXdwb3J0IHNwYWNlLlxuICpcbiAqIEBwYXJhbSB7UG9zaXRpb259IHBvc2l0aW9uIC0gVGhlIHBvc2l0aW9uIHN0cmluZywgd2hpY2ggaW5jbHVkZXMgYSBzaWRlIGFuZCBwb3NzaWJseSBhbiBhbGlnbm1lbnQuXG4gKiBAcmV0dXJucyB7U2lkZX0gVGhlIG9wcG9zaXRlIHNpZGUgcmVsYXRpdmUgdG8gdGhlIHByb3ZpZGVkIHBvc2l0aW9uJ3Mgc2lkZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIEdldHRpbmcgdGhlIG9wcG9zaXRlIHNpZGUgb2YgYSBnaXZlbiBwb3NpdGlvblxuICogY29uc29sZS5sb2coZ2V0T3Bwb3NpdGVTaWRlKCd0b3AtbGVmdCcpKTsgLy8gT3V0cHV0czogJ2JvdHRvbSdcbiAqIGNvbnNvbGUubG9nKGdldE9wcG9zaXRlU2lkZSgncmlnaHQnKSk7ICAgIC8vIE91dHB1dHM6ICdsZWZ0J1xuICpcbiAqIC8vIFVzaW5nIGdldE9wcG9zaXRlU2lkZSB0byBhZGp1c3QgVUkgZWxlbWVudHNcbiAqIGNvbnN0IGN1cnJlbnRTaWRlID0gJ2xlZnQnO1xuICogY29uc3QgbmV3UG9zaXRpb24gPSBnZXRPcHBvc2l0ZVNpZGUoY3VycmVudFNpZGUpO1xuICogLy8gQXNzdW1pbmcgYW4gZWxlbWVudCdzIHBvc2l0aW9uIG9yIG9yaWVudGF0aW9uIG5lZWRzIHRvIGJlIGR5bmFtaWNhbGx5IHVwZGF0ZWRcbiAqIHVwZGF0ZUVsZW1lbnRQb3NpdGlvbihuZXdQb3NpdGlvbik7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldE9wcG9zaXRlU2lkZShwb3NpdGlvbjogUG9zaXRpb24pOiBTaWRlIHtcbiAgc3dpdGNoIChnZXRTaWRlKHBvc2l0aW9uKSkge1xuICAgIGNhc2UgU2lkZS5UT1A6XG4gICAgICByZXR1cm4gU2lkZS5CT1RUT007XG4gICAgY2FzZSBTaWRlLlJJR0hUOlxuICAgICAgcmV0dXJuIFNpZGUuTEVGVDtcbiAgICBjYXNlIFNpZGUuQk9UVE9NOlxuICAgICAgcmV0dXJuIFNpZGUuVE9QO1xuICAgIGNhc2UgU2lkZS5MRUZUOlxuICAgICAgcmV0dXJuIFNpZGUuUklHSFQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,21 @@
1
+ /**
2
+ * Extracts the side part from a position string. The position format generally combines
3
+ * a side (e.g., "top", "bottom", "left", "right") with an optional alignment
4
+ * (e.g., "left", "center", "right" for vertical positions or "top", "middle", "bottom" for horizontal positions).
5
+ *
6
+ * @param {Position} position - The position string from which to extract the side.
7
+ * @returns {Side} The side part of the position, indicating the general placement direction.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * // Extracting the side from a position with alignment
12
+ * console.log(getSide('top-left')); // Outputs: 'top'
13
+ *
14
+ * // Extracting the side from a simple position
15
+ * console.log(getSide('bottom')); // Outputs: 'bottom'
16
+ * ```
17
+ */
1
18
  export function getSide(position) {
2
19
  return position.split('-')[0];
3
20
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXNpZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2dldC1zaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sVUFBVSxPQUFPLENBQUMsUUFBa0I7SUFDeEMsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBUyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb3NpdGlvbiwgU2lkZSB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpZGUocG9zaXRpb246IFBvc2l0aW9uKTogU2lkZSB7XG4gIHJldHVybiBwb3NpdGlvbi5zcGxpdCgnLScpWzBdIGFzIFNpZGU7XG59XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXNpZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvdXRpbHMvc3JjL2xpYi9oZWxwZXJzL2dldC1zaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxRQUFrQjtJQUN4QyxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFTLENBQUM7QUFDeEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvc2l0aW9uLCBTaWRlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBzaWRlIHBhcnQgZnJvbSBhIHBvc2l0aW9uIHN0cmluZy4gVGhlIHBvc2l0aW9uIGZvcm1hdCBnZW5lcmFsbHkgY29tYmluZXNcbiAqIGEgc2lkZSAoZS5nLiwgXCJ0b3BcIiwgXCJib3R0b21cIiwgXCJsZWZ0XCIsIFwicmlnaHRcIikgd2l0aCBhbiBvcHRpb25hbCBhbGlnbm1lbnRcbiAqIChlLmcuLCBcImxlZnRcIiwgXCJjZW50ZXJcIiwgXCJyaWdodFwiIGZvciB2ZXJ0aWNhbCBwb3NpdGlvbnMgb3IgXCJ0b3BcIiwgXCJtaWRkbGVcIiwgXCJib3R0b21cIiBmb3IgaG9yaXpvbnRhbCBwb3NpdGlvbnMpLlxuICpcbiAqIEBwYXJhbSB7UG9zaXRpb259IHBvc2l0aW9uIC0gVGhlIHBvc2l0aW9uIHN0cmluZyBmcm9tIHdoaWNoIHRvIGV4dHJhY3QgdGhlIHNpZGUuXG4gKiBAcmV0dXJucyB7U2lkZX0gVGhlIHNpZGUgcGFydCBvZiB0aGUgcG9zaXRpb24sIGluZGljYXRpbmcgdGhlIGdlbmVyYWwgcGxhY2VtZW50IGRpcmVjdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIEV4dHJhY3RpbmcgdGhlIHNpZGUgZnJvbSBhIHBvc2l0aW9uIHdpdGggYWxpZ25tZW50XG4gKiBjb25zb2xlLmxvZyhnZXRTaWRlKCd0b3AtbGVmdCcpKTsgLy8gT3V0cHV0czogJ3RvcCdcbiAqXG4gKiAvLyBFeHRyYWN0aW5nIHRoZSBzaWRlIGZyb20gYSBzaW1wbGUgcG9zaXRpb25cbiAqIGNvbnNvbGUubG9nKGdldFNpZGUoJ2JvdHRvbScpKTsgLy8gT3V0cHV0czogJ2JvdHRvbSdcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2lkZShwb3NpdGlvbjogUG9zaXRpb24pOiBTaWRlIHtcbiAgcmV0dXJuIHBvc2l0aW9uLnNwbGl0KCctJylbMF0gYXMgU2lkZTtcbn1cbiJdfQ==
@@ -1,9 +1,42 @@
1
1
  let uniqueIdCache = {};
2
+ /**
3
+ * Generates a unique identifier for a given key. If the key has previously been used,
4
+ * the function increments a counter associated with that key to ensure uniqueness.
5
+ * The generated ID is in the format of `${key}-${counter}`.
6
+ *
7
+ * @param {string} key - The key for which to generate a unique identifier.
8
+ * @returns {string} A unique identifier string based on the provided key.
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * const id1 = getUniqueId('component');
13
+ * console.log(id1); // Outputs: "component-1"
14
+ *
15
+ * const id2 = getUniqueId('component');
16
+ * console.log(id2); // Outputs: "component-2"
17
+ * ```
18
+ */
2
19
  export function getUniqueId(key) {
3
20
  uniqueIdCache[key] = (uniqueIdCache[key] ?? 0) + 1;
4
21
  return `${key}-${uniqueIdCache[key]}`;
5
22
  }
23
+ /**
24
+ * Clears the cache used by `getUniqueId` to generate unique identifiers. This function
25
+ * resets all counters associated with each key, effectively restarting the generation
26
+ * of unique IDs from their initial state.
27
+ *
28
+ * This can be useful in scenarios such as testing or when starting a new session that
29
+ * requires resetting the state of unique ID generation.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * getUniqueId('component'); // Returns "component-1"
34
+ * getUniqueId('component'); // Returns "component-2"
35
+ * clearUniqueIdCache();
36
+ * getUniqueId('component'); // Returns "component-1" after cache reset
37
+ * ```
38
+ */
6
39
  export function clearUniqueIdCache() {
7
40
  uniqueIdCache = {};
8
41
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXVuaXF1ZS1pZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci91dGlscy9zcmMvbGliL2hlbHBlcnMvZ2V0LXVuaXF1ZS1pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFJLGFBQWEsR0FBOEIsRUFBRSxDQUFDO0FBRWxELE1BQU0sVUFBVSxXQUFXLENBQUMsR0FBVztJQUNyQyxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRW5ELE9BQU8sR0FBRyxHQUFHLElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7QUFDeEMsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsibGV0IHVuaXF1ZUlkQ2FjaGU6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7fTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFVuaXF1ZUlkKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgdW5pcXVlSWRDYWNoZVtrZXldID0gKHVuaXF1ZUlkQ2FjaGVba2V5XSA/PyAwKSArIDE7XG5cbiAgcmV0dXJuIGAke2tleX0tJHt1bmlxdWVJZENhY2hlW2tleV19YDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFyVW5pcXVlSWRDYWNoZSgpOiB2b2lkIHtcbiAgdW5pcXVlSWRDYWNoZSA9IHt9O1xufVxuIl19
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXVuaXF1ZS1pZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci91dGlscy9zcmMvbGliL2hlbHBlcnMvZ2V0LXVuaXF1ZS1pZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFJLGFBQWEsR0FBOEIsRUFBRSxDQUFDO0FBRWxEOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxHQUFXO0lBQ3JDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFbkQsT0FBTyxHQUFHLEdBQUcsSUFBSSxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztBQUN4QyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQjtJQUNoQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0FBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgdW5pcXVlSWRDYWNoZTogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9O1xuXG4vKipcbiAqIEdlbmVyYXRlcyBhIHVuaXF1ZSBpZGVudGlmaWVyIGZvciBhIGdpdmVuIGtleS4gSWYgdGhlIGtleSBoYXMgcHJldmlvdXNseSBiZWVuIHVzZWQsXG4gKiB0aGUgZnVuY3Rpb24gaW5jcmVtZW50cyBhIGNvdW50ZXIgYXNzb2NpYXRlZCB3aXRoIHRoYXQga2V5IHRvIGVuc3VyZSB1bmlxdWVuZXNzLlxuICogVGhlIGdlbmVyYXRlZCBJRCBpcyBpbiB0aGUgZm9ybWF0IG9mIGAke2tleX0tJHtjb3VudGVyfWAuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgZm9yIHdoaWNoIHRvIGdlbmVyYXRlIGEgdW5pcXVlIGlkZW50aWZpZXIuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIHVuaXF1ZSBpZGVudGlmaWVyIHN0cmluZyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQga2V5LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogY29uc3QgaWQxID0gZ2V0VW5pcXVlSWQoJ2NvbXBvbmVudCcpO1xuICogY29uc29sZS5sb2coaWQxKTsgLy8gT3V0cHV0czogXCJjb21wb25lbnQtMVwiXG4gKlxuICogY29uc3QgaWQyID0gZ2V0VW5pcXVlSWQoJ2NvbXBvbmVudCcpO1xuICogY29uc29sZS5sb2coaWQyKTsgLy8gT3V0cHV0czogXCJjb21wb25lbnQtMlwiXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFVuaXF1ZUlkKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgdW5pcXVlSWRDYWNoZVtrZXldID0gKHVuaXF1ZUlkQ2FjaGVba2V5XSA/PyAwKSArIDE7XG5cbiAgcmV0dXJuIGAke2tleX0tJHt1bmlxdWVJZENhY2hlW2tleV19YDtcbn1cblxuLyoqXG4gKiBDbGVhcnMgdGhlIGNhY2hlIHVzZWQgYnkgYGdldFVuaXF1ZUlkYCB0byBnZW5lcmF0ZSB1bmlxdWUgaWRlbnRpZmllcnMuIFRoaXMgZnVuY3Rpb25cbiAqIHJlc2V0cyBhbGwgY291bnRlcnMgYXNzb2NpYXRlZCB3aXRoIGVhY2gga2V5LCBlZmZlY3RpdmVseSByZXN0YXJ0aW5nIHRoZSBnZW5lcmF0aW9uXG4gKiBvZiB1bmlxdWUgSURzIGZyb20gdGhlaXIgaW5pdGlhbCBzdGF0ZS5cbiAqXG4gKiBUaGlzIGNhbiBiZSB1c2VmdWwgaW4gc2NlbmFyaW9zIHN1Y2ggYXMgdGVzdGluZyBvciB3aGVuIHN0YXJ0aW5nIGEgbmV3IHNlc3Npb24gdGhhdFxuICogcmVxdWlyZXMgcmVzZXR0aW5nIHRoZSBzdGF0ZSBvZiB1bmlxdWUgSUQgZ2VuZXJhdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGdldFVuaXF1ZUlkKCdjb21wb25lbnQnKTsgLy8gUmV0dXJucyBcImNvbXBvbmVudC0xXCJcbiAqIGdldFVuaXF1ZUlkKCdjb21wb25lbnQnKTsgLy8gUmV0dXJucyBcImNvbXBvbmVudC0yXCJcbiAqIGNsZWFyVW5pcXVlSWRDYWNoZSgpO1xuICogZ2V0VW5pcXVlSWQoJ2NvbXBvbmVudCcpOyAvLyBSZXR1cm5zIFwiY29tcG9uZW50LTFcIiBhZnRlciBjYWNoZSByZXNldFxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjbGVhclVuaXF1ZUlkQ2FjaGUoKTogdm9pZCB7XG4gIHVuaXF1ZUlkQ2FjaGUgPSB7fTtcbn1cbiJdfQ==
@@ -1,8 +1,48 @@
1
1
  import { isString } from './type-guards';
2
+ /**
3
+ * Checks if a given value is a valid URL matcher, which can be either a string or a regular expression.
4
+ * This function serves as a type guard to facilitate URL matching operations by verifying the type of the filter.
5
+ *
6
+ * @param {unknown} value - The value to check for being a valid URL matcher.
7
+ * @returns {value is string | RegExp} `true` if the value is a string or RegExp, indicating it can be used for URL matching; otherwise, `false`.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * // Checking a string URL matcher
12
+ * console.log(isUrlMatcher('https://example.com')); // true
13
+ *
14
+ * // Checking a RegExp URL matcher
15
+ * console.log(isUrlMatcher(/https:\/\/example\.com/)); // true
16
+ *
17
+ * // Checking a non-matcher value
18
+ * console.log(isUrlMatcher(123)); // false
19
+ * ```
20
+ */
2
21
  export function isUrlMatcher(value) {
3
22
  return isString(value) || value instanceof RegExp;
4
23
  }
24
+ /**
25
+ * Determines if a given URL matches a specified filter, which can be either a string or a regular expression.
26
+ * For string filters, the function checks if the URL starts with the filter value. For RegExp filters,
27
+ * it checks if the URL matches the regular expression pattern.
28
+ *
29
+ * @param {string} url - The URL to be checked against the filter.
30
+ * @param {string | RegExp} filter - The filter used to match the URL, which can be a prefix string or a RegExp pattern.
31
+ * @returns {boolean} `true` if the URL matches the filter; otherwise, `false`.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * // Matching a URL with a string filter
36
+ * console.log(matchUrl('https://example.com/page', 'https://example.com')); // true
37
+ *
38
+ * // Matching a URL with a RegExp filter
39
+ * console.log(matchUrl('https://example.com/page', /example\.com\/page/)); // true
40
+ *
41
+ * // A non-matching example
42
+ * console.log(matchUrl('https://example.com/page', 'https://another.com')); // false
43
+ * ```
44
+ */
5
45
  export function matchUrl(url, filter) {
6
46
  return isString(filter) ? url.startsWith(filter) : !!url.match(filter);
7
47
  }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtdXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3V0aWxzL3NyYy9saWIvaGVscGVycy9tYXRjaC11cmwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQWM7SUFDekMsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxZQUFZLE1BQU0sQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxHQUFXLEVBQUUsTUFBdUI7SUFDM0QsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3pFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gJy4vdHlwZS1ndWFyZHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNVcmxNYXRjaGVyKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgc3RyaW5nIHwgUmVnRXhwIHtcbiAgcmV0dXJuIGlzU3RyaW5nKHZhbHVlKSB8fCB2YWx1ZSBpbnN0YW5jZW9mIFJlZ0V4cDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoVXJsKHVybDogc3RyaW5nLCBmaWx0ZXI6IHN0cmluZyB8IFJlZ0V4cCk6IGJvb2xlYW4ge1xuICByZXR1cm4gaXNTdHJpbmcoZmlsdGVyKSA/IHVybC5zdGFydHNXaXRoKGZpbHRlcikgOiAhIXVybC5tYXRjaChmaWx0ZXIpO1xufVxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0Y2gtdXJsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3V0aWxzL3NyYy9saWIvaGVscGVycy9tYXRjaC11cmwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFjO0lBQ3pDLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssWUFBWSxNQUFNLENBQUM7QUFDcEQsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CRztBQUNILE1BQU0sVUFBVSxRQUFRLENBQUMsR0FBVyxFQUFFLE1BQXVCO0lBQzNELE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN6RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICcuL3R5cGUtZ3VhcmRzJztcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBnaXZlbiB2YWx1ZSBpcyBhIHZhbGlkIFVSTCBtYXRjaGVyLCB3aGljaCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGEgcmVndWxhciBleHByZXNzaW9uLlxuICogVGhpcyBmdW5jdGlvbiBzZXJ2ZXMgYXMgYSB0eXBlIGd1YXJkIHRvIGZhY2lsaXRhdGUgVVJMIG1hdGNoaW5nIG9wZXJhdGlvbnMgYnkgdmVyaWZ5aW5nIHRoZSB0eXBlIG9mIHRoZSBmaWx0ZXIuXG4gKlxuICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBjaGVjayBmb3IgYmVpbmcgYSB2YWxpZCBVUkwgbWF0Y2hlci5cbiAqIEByZXR1cm5zIHt2YWx1ZSBpcyBzdHJpbmcgfCBSZWdFeHB9IGB0cnVlYCBpZiB0aGUgdmFsdWUgaXMgYSBzdHJpbmcgb3IgUmVnRXhwLCBpbmRpY2F0aW5nIGl0IGNhbiBiZSB1c2VkIGZvciBVUkwgbWF0Y2hpbmc7IG90aGVyd2lzZSwgYGZhbHNlYC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIENoZWNraW5nIGEgc3RyaW5nIFVSTCBtYXRjaGVyXG4gKiBjb25zb2xlLmxvZyhpc1VybE1hdGNoZXIoJ2h0dHBzOi8vZXhhbXBsZS5jb20nKSk7IC8vIHRydWVcbiAqXG4gKiAvLyBDaGVja2luZyBhIFJlZ0V4cCBVUkwgbWF0Y2hlclxuICogY29uc29sZS5sb2coaXNVcmxNYXRjaGVyKC9odHRwczpcXC9cXC9leGFtcGxlXFwuY29tLykpOyAvLyB0cnVlXG4gKlxuICogLy8gQ2hlY2tpbmcgYSBub24tbWF0Y2hlciB2YWx1ZVxuICogY29uc29sZS5sb2coaXNVcmxNYXRjaGVyKDEyMykpOyAvLyBmYWxzZVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1VybE1hdGNoZXIodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBzdHJpbmcgfCBSZWdFeHAge1xuICByZXR1cm4gaXNTdHJpbmcodmFsdWUpIHx8IHZhbHVlIGluc3RhbmNlb2YgUmVnRXhwO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBnaXZlbiBVUkwgbWF0Y2hlcyBhIHNwZWNpZmllZCBmaWx0ZXIsIHdoaWNoIGNhbiBiZSBlaXRoZXIgYSBzdHJpbmcgb3IgYSByZWd1bGFyIGV4cHJlc3Npb24uXG4gKiBGb3Igc3RyaW5nIGZpbHRlcnMsIHRoZSBmdW5jdGlvbiBjaGVja3MgaWYgdGhlIFVSTCBzdGFydHMgd2l0aCB0aGUgZmlsdGVyIHZhbHVlLiBGb3IgUmVnRXhwIGZpbHRlcnMsXG4gKiBpdCBjaGVja3MgaWYgdGhlIFVSTCBtYXRjaGVzIHRoZSByZWd1bGFyIGV4cHJlc3Npb24gcGF0dGVybi5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gVGhlIFVSTCB0byBiZSBjaGVja2VkIGFnYWluc3QgdGhlIGZpbHRlci5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgUmVnRXhwfSBmaWx0ZXIgLSBUaGUgZmlsdGVyIHVzZWQgdG8gbWF0Y2ggdGhlIFVSTCwgd2hpY2ggY2FuIGJlIGEgcHJlZml4IHN0cmluZyBvciBhIFJlZ0V4cCBwYXR0ZXJuLlxuICogQHJldHVybnMge2Jvb2xlYW59IGB0cnVlYCBpZiB0aGUgVVJMIG1hdGNoZXMgdGhlIGZpbHRlcjsgb3RoZXJ3aXNlLCBgZmFsc2VgLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogLy8gTWF0Y2hpbmcgYSBVUkwgd2l0aCBhIHN0cmluZyBmaWx0ZXJcbiAqIGNvbnNvbGUubG9nKG1hdGNoVXJsKCdodHRwczovL2V4YW1wbGUuY29tL3BhZ2UnLCAnaHR0cHM6Ly9leGFtcGxlLmNvbScpKTsgLy8gdHJ1ZVxuICpcbiAqIC8vIE1hdGNoaW5nIGEgVVJMIHdpdGggYSBSZWdFeHAgZmlsdGVyXG4gKiBjb25zb2xlLmxvZyhtYXRjaFVybCgnaHR0cHM6Ly9leGFtcGxlLmNvbS9wYWdlJywgL2V4YW1wbGVcXC5jb21cXC9wYWdlLykpOyAvLyB0cnVlXG4gKlxuICogLy8gQSBub24tbWF0Y2hpbmcgZXhhbXBsZVxuICogY29uc29sZS5sb2cobWF0Y2hVcmwoJ2h0dHBzOi8vZXhhbXBsZS5jb20vcGFnZScsICdodHRwczovL2Fub3RoZXIuY29tJykpOyAvLyBmYWxzZVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaFVybCh1cmw6IHN0cmluZywgZmlsdGVyOiBzdHJpbmcgfCBSZWdFeHApOiBib29sZWFuIHtcbiAgcmV0dXJuIGlzU3RyaW5nKGZpbHRlcikgPyB1cmwuc3RhcnRzV2l0aChmaWx0ZXIpIDogISF1cmwubWF0Y2goZmlsdGVyKTtcbn1cbiJdfQ==