@lucca-front/ng 18.3.4 → 19.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (836) hide show
  1. package/core-select/api/api.directive.d.ts +1 -1
  2. package/core-select/input/select-input.component.d.ts +1 -1
  3. package/dialog/dialog-routing/dialog-routing.component.d.ts +1 -1
  4. package/dropdown/item/dropdown-item.directive.d.ts +1 -1
  5. package/dropdown/item/dropdown-item.module.d.ts +4 -1
  6. package/dropdown/panel/dropdown-panel.component.d.ts +1 -1
  7. package/dropdown/panel/dropdown-panel.module.d.ts +4 -2
  8. package/dropdown/trigger/dropdown-trigger.directive.d.ts +1 -1
  9. package/dropdown/trigger/dropdown-trigger.module.d.ts +4 -2
  10. package/fesm2022/lucca-front-ng-a11y.mjs +3 -3
  11. package/fesm2022/lucca-front-ng-a11y.mjs.map +1 -1
  12. package/fesm2022/lucca-front-ng-animations.mjs.map +1 -1
  13. package/fesm2022/lucca-front-ng-api.mjs +48 -48
  14. package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
  15. package/fesm2022/lucca-front-ng-button.mjs +3 -3
  16. package/fesm2022/lucca-front-ng-button.mjs.map +1 -1
  17. package/fesm2022/lucca-front-ng-callout.mjs +21 -21
  18. package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
  19. package/fesm2022/lucca-front-ng-comment.mjs +9 -9
  20. package/fesm2022/lucca-front-ng-comment.mjs.map +1 -1
  21. package/fesm2022/lucca-front-ng-core-select-api.mjs +9 -9
  22. package/fesm2022/lucca-front-ng-core-select-api.mjs.map +1 -1
  23. package/fesm2022/lucca-front-ng-core-select-establishment.mjs +9 -9
  24. package/fesm2022/lucca-front-ng-core-select-establishment.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs +6 -6
  26. package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs.map +1 -1
  27. package/fesm2022/lucca-front-ng-core-select-user.mjs +15 -15
  28. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  29. package/fesm2022/lucca-front-ng-core-select.mjs +36 -36
  30. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  31. package/fesm2022/lucca-front-ng-core.mjs +16 -16
  32. package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
  33. package/fesm2022/lucca-front-ng-date.mjs +48 -48
  34. package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-date2.mjs +14 -14
  36. package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
  37. package/fesm2022/lucca-front-ng-department.mjs +28 -28
  38. package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
  39. package/fesm2022/lucca-front-ng-dialog-testing.mjs.map +1 -1
  40. package/fesm2022/lucca-front-ng-dialog.mjs +39 -31
  41. package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
  42. package/fesm2022/lucca-front-ng-dropdown.mjs +39 -35
  43. package/fesm2022/lucca-front-ng-dropdown.mjs.map +1 -1
  44. package/fesm2022/lucca-front-ng-empty-state.mjs +6 -6
  45. package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
  46. package/fesm2022/lucca-front-ng-establishment.mjs +49 -49
  47. package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
  48. package/fesm2022/lucca-front-ng-form-field.mjs +6 -6
  49. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  50. package/fesm2022/lucca-front-ng-formly.mjs +81 -79
  51. package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
  52. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +10 -10
  53. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
  54. package/fesm2022/lucca-front-ng-forms.mjs +33 -33
  55. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  56. package/fesm2022/lucca-front-ng-icon.mjs +4 -4
  57. package/fesm2022/lucca-front-ng-icon.mjs.map +1 -1
  58. package/fesm2022/lucca-front-ng-inline-message.mjs +3 -3
  59. package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
  60. package/fesm2022/lucca-front-ng-input.mjs +21 -21
  61. package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
  62. package/fesm2022/lucca-front-ng-modal.mjs +22 -22
  63. package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
  64. package/fesm2022/lucca-front-ng-multi-select.mjs +44 -44
  65. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  66. package/fesm2022/lucca-front-ng-new-badge.mjs +3 -3
  67. package/fesm2022/lucca-front-ng-new-badge.mjs.map +1 -1
  68. package/fesm2022/lucca-front-ng-number-format.mjs +7 -7
  69. package/fesm2022/lucca-front-ng-number-format.mjs.map +1 -1
  70. package/fesm2022/lucca-front-ng-number.mjs +7 -7
  71. package/fesm2022/lucca-front-ng-number.mjs.map +1 -1
  72. package/fesm2022/lucca-front-ng-numeric-badge.mjs +3 -3
  73. package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
  74. package/fesm2022/lucca-front-ng-option.mjs +154 -154
  75. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  76. package/fesm2022/lucca-front-ng-plg-push.mjs +3 -3
  77. package/fesm2022/lucca-front-ng-plg-push.mjs.map +1 -1
  78. package/fesm2022/lucca-front-ng-popover.mjs +31 -26
  79. package/fesm2022/lucca-front-ng-popover.mjs.map +1 -1
  80. package/fesm2022/lucca-front-ng-popover2.mjs +9 -9
  81. package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
  82. package/fesm2022/lucca-front-ng-popup-employee.mjs +21 -21
  83. package/fesm2022/lucca-front-ng-popup-employee.mjs.map +1 -1
  84. package/fesm2022/lucca-front-ng-popup.mjs +10 -10
  85. package/fesm2022/lucca-front-ng-popup.mjs.map +1 -1
  86. package/fesm2022/lucca-front-ng-qualification.mjs +15 -15
  87. package/fesm2022/lucca-front-ng-qualification.mjs.map +1 -1
  88. package/fesm2022/lucca-front-ng-safe-content.mjs +13 -12
  89. package/fesm2022/lucca-front-ng-safe-content.mjs.map +1 -1
  90. package/fesm2022/lucca-front-ng-scroll.mjs +7 -7
  91. package/fesm2022/lucca-front-ng-scroll.mjs.map +1 -1
  92. package/fesm2022/lucca-front-ng-select.mjs +14 -14
  93. package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
  94. package/fesm2022/lucca-front-ng-sidepanel.mjs +7 -7
  95. package/fesm2022/lucca-front-ng-sidepanel.mjs.map +1 -1
  96. package/fesm2022/lucca-front-ng-simple-select.mjs +14 -14
  97. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  98. package/fesm2022/lucca-front-ng-skeleton.mjs +9 -9
  99. package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
  100. package/fesm2022/lucca-front-ng-tag.mjs +3 -3
  101. package/fesm2022/lucca-front-ng-tag.mjs.map +1 -1
  102. package/fesm2022/lucca-front-ng-time.mjs +18 -17
  103. package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
  104. package/fesm2022/lucca-front-ng-title.mjs +10 -10
  105. package/fesm2022/lucca-front-ng-title.mjs.map +1 -1
  106. package/fesm2022/lucca-front-ng-toast.mjs +11 -11
  107. package/fesm2022/lucca-front-ng-toast.mjs.map +1 -1
  108. package/fesm2022/lucca-front-ng-tooltip.mjs +22 -22
  109. package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
  110. package/fesm2022/lucca-front-ng-user.mjs +94 -85
  111. package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
  112. package/modal/modal-panel.component.d.ts +1 -1
  113. package/option/picker/option-picker-advanced.component.d.ts +1 -1
  114. package/option/picker/option-picker.component.d.ts +1 -1
  115. package/option/picker/tree-option-picker-advanced.component.d.ts +1 -1
  116. package/option/picker/tree-option-picker.component.d.ts +1 -1
  117. package/package.json +21 -131
  118. package/safe-content/safe-content.module.d.ts +3 -0
  119. package/schematics/action-icon/index.js +3 -2
  120. package/schematics/action-icon/migration.js +2 -3
  121. package/schematics/empty-state-title/index.js +2 -1
  122. package/schematics/lib/angular-template.js +6 -7
  123. package/schematics/lib/css-mapper.js +4 -4
  124. package/schematics/lib/file-update.js +2 -3
  125. package/schematics/lib/html-ast.js +4 -4
  126. package/schematics/lib/local-deps/installer.js +1 -2
  127. package/schematics/lib/local-deps/package-lock.json +30 -30
  128. package/schematics/lib/local-deps/package.json +2 -2
  129. package/schematics/lib/local-deps/postcss-selector-parser.js +1 -0
  130. package/schematics/lib/local-deps/postcss-value-parser.js +1 -0
  131. package/schematics/lib/migration-test.js +4 -5
  132. package/schematics/lib/schematics.js +1 -2
  133. package/schematics/lib/scss-ast.js +10 -11
  134. package/schematics/lib/typescript-ast.js +1 -2
  135. package/schematics/new-icons/index.js +4 -3
  136. package/schematics/new-icons/migration.js +3 -4
  137. package/schematics/ng-add/index.js +1 -2
  138. package/schematics/ng-add/tasks.js +4 -5
  139. package/schematics/palettes/index.js +1 -0
  140. package/schematics/tokens-spacing/index.js +1 -0
  141. package/select/input/select-input.component.d.ts +1 -1
  142. package/src/components/cdk/_overlay.scss +4 -0
  143. package/time/core/base-picker.component.d.ts +1 -1
  144. package/time/core/date.utils.d.ts +4 -4
  145. package/time/core/misc.utils.d.ts +1 -1
  146. package/user/picture/user-picture.component.d.ts +1 -1
  147. package/user/picture/user-picture.module.d.ts +4 -3
  148. package/user/tile/user-tile.component.d.ts +1 -1
  149. package/user/tile/user-tile.module.d.ts +4 -4
  150. package/esm2022/a11y/lucca-front-ng-a11y.mjs +0 -5
  151. package/esm2022/a11y/public-api.mjs +0 -3
  152. package/esm2022/a11y/skip-links/skip-links.component.mjs +0 -24
  153. package/esm2022/a11y/skip-links/skip-links.translate.mjs +0 -9
  154. package/esm2022/a11y/skip-links/translations.mjs +0 -51
  155. package/esm2022/animations/animation.factory.mjs +0 -15
  156. package/esm2022/animations/fade.animation.mjs +0 -8
  157. package/esm2022/animations/lucca-front-ng-animations.mjs +0 -5
  158. package/esm2022/animations/public-api.mjs +0 -5
  159. package/esm2022/animations/scale.animation.mjs +0 -126
  160. package/esm2022/animations/slide.animation.mjs +0 -110
  161. package/esm2022/api/api.model.mjs +0 -2
  162. package/esm2022/api/api.module.mjs +0 -16
  163. package/esm2022/api/lucca-front-ng-api.mjs +0 -5
  164. package/esm2022/api/public-api.mjs +0 -5
  165. package/esm2022/api/select/api-select.module.mjs +0 -19
  166. package/esm2022/api/select/feeder/api-feeder.component.mjs +0 -93
  167. package/esm2022/api/select/feeder/api-feeder.model.mjs +0 -11
  168. package/esm2022/api/select/feeder/api-feeder.module.mjs +0 -16
  169. package/esm2022/api/select/feeder/index.mjs +0 -4
  170. package/esm2022/api/select/index.mjs +0 -6
  171. package/esm2022/api/select/input/api-select-input.component.mjs +0 -52
  172. package/esm2022/api/select/input/api-select-input.module.mjs +0 -16
  173. package/esm2022/api/select/input/index.mjs +0 -3
  174. package/esm2022/api/select/pager/api-pager.component.mjs +0 -99
  175. package/esm2022/api/select/pager/api-pager.model.mjs +0 -56
  176. package/esm2022/api/select/pager/api-pager.module.mjs +0 -16
  177. package/esm2022/api/select/pager/index.mjs +0 -4
  178. package/esm2022/api/select/searcher/api-searcher.component.mjs +0 -235
  179. package/esm2022/api/select/searcher/api-searcher.model.mjs +0 -67
  180. package/esm2022/api/select/searcher/api-searcher.module.mjs +0 -16
  181. package/esm2022/api/select/searcher/index.mjs +0 -4
  182. package/esm2022/api/service/api-hybrid.service.mjs +0 -65
  183. package/esm2022/api/service/api-service.model.mjs +0 -3
  184. package/esm2022/api/service/api-v3.service.mjs +0 -72
  185. package/esm2022/api/service/api-v4.service.mjs +0 -71
  186. package/esm2022/api/service/index.mjs +0 -5
  187. package/esm2022/button/button.component.mjs +0 -90
  188. package/esm2022/button/lucca-front-ng-button.mjs +0 -5
  189. package/esm2022/button/public-api.mjs +0 -2
  190. package/esm2022/callout/callout/callout.component.mjs +0 -88
  191. package/esm2022/callout/callout-disclosure/callout-disclosure.component.mjs +0 -59
  192. package/esm2022/callout/callout-feedback-item/callout-feedback-item.component.mjs +0 -25
  193. package/esm2022/callout/callout-feedback-list/callout-feedback-list.component.mjs +0 -22
  194. package/esm2022/callout/callout-icon.pipe.mjs +0 -23
  195. package/esm2022/callout/callout-popover/callout-popover.component.mjs +0 -182
  196. package/esm2022/callout/callout-state.mjs +0 -16
  197. package/esm2022/callout/callout.translate.mjs +0 -7
  198. package/esm2022/callout/callout.utils.mjs +0 -20
  199. package/esm2022/callout/lucca-front-ng-callout.mjs +0 -5
  200. package/esm2022/callout/public-api.mjs +0 -7
  201. package/esm2022/callout/translations.mjs +0 -27
  202. package/esm2022/comment/comment/comment.component.mjs +0 -54
  203. package/esm2022/comment/comment-block/comment-block.component.mjs +0 -60
  204. package/esm2022/comment/comment-chat/comment-chat.component.mjs +0 -22
  205. package/esm2022/comment/lucca-front-ng-comment.mjs +0 -5
  206. package/esm2022/comment/public-api.mjs +0 -4
  207. package/esm2022/comment/token.mjs +0 -4
  208. package/esm2022/core/date/date-adapter.class.mjs +0 -54
  209. package/esm2022/core/date/date-adapter.interface.mjs +0 -2
  210. package/esm2022/core/date/date-granularity.enum.mjs +0 -8
  211. package/esm2022/core/date/index.mjs +0 -6
  212. package/esm2022/core/date/native/index.mjs +0 -3
  213. package/esm2022/core/date/native/native-date.adapter.mjs +0 -235
  214. package/esm2022/core/date/native/native-date.option.mjs +0 -6
  215. package/esm2022/core/date/string/index.mjs +0 -2
  216. package/esm2022/core/date/string/string-date.adapter.mjs +0 -83
  217. package/esm2022/core/event/index.mjs +0 -4
  218. package/esm2022/core/event/on-close.subscriber.mjs +0 -3
  219. package/esm2022/core/event/on-open.subscriber.mjs +0 -3
  220. package/esm2022/core/event/on-scroll-bottom.subscriber.mjs +0 -3
  221. package/esm2022/core/group/group.interface.mjs +0 -2
  222. package/esm2022/core/group/index.mjs +0 -2
  223. package/esm2022/core/id/id.generator.mjs +0 -9
  224. package/esm2022/core/id/index.mjs +0 -2
  225. package/esm2022/core/lucca-front-ng-core.mjs +0 -5
  226. package/esm2022/core/portal/index.mjs +0 -3
  227. package/esm2022/core/portal/portal-content.mjs +0 -3
  228. package/esm2022/core/portal/portal.directive.mjs +0 -107
  229. package/esm2022/core/public-api.mjs +0 -11
  230. package/esm2022/core/signal.mjs +0 -22
  231. package/esm2022/core/tools/class.mjs +0 -75
  232. package/esm2022/core/translate/index.mjs +0 -4
  233. package/esm2022/core/translate/intl-params.pipe.mjs +0 -20
  234. package/esm2022/core/translate/intl.model.mjs +0 -14
  235. package/esm2022/core/translate/translation.model.mjs +0 -2
  236. package/esm2022/core/tree/index.mjs +0 -2
  237. package/esm2022/core/tree/tree.model.mjs +0 -2
  238. package/esm2022/core/type/enum.mjs +0 -2
  239. package/esm2022/core/type/index.mjs +0 -3
  240. package/esm2022/core/type/style.mjs +0 -2
  241. package/esm2022/core-select/api/api-v3.directive.mjs +0 -81
  242. package/esm2022/core-select/api/api-v4.directive.mjs +0 -70
  243. package/esm2022/core-select/api/api.directive.mjs +0 -53
  244. package/esm2022/core-select/api/lucca-front-ng-core-select-api.mjs +0 -5
  245. package/esm2022/core-select/api/public-api.mjs +0 -4
  246. package/esm2022/core-select/displayer/displayer.directive.mjs +0 -26
  247. package/esm2022/core-select/displayer/index.mjs +0 -2
  248. package/esm2022/core-select/establishment/establishment-grouping.component.mjs +0 -21
  249. package/esm2022/core-select/establishment/establishment-grouping.service.mjs +0 -22
  250. package/esm2022/core-select/establishment/establishments.directive.mjs +0 -96
  251. package/esm2022/core-select/establishment/lucca-front-ng-core-select-establishment.mjs +0 -5
  252. package/esm2022/core-select/establishment/models.mjs +0 -2
  253. package/esm2022/core-select/establishment/public-api.mjs +0 -4
  254. package/esm2022/core-select/input/index.mjs +0 -4
  255. package/esm2022/core-select/input/select-input.component.mjs +0 -312
  256. package/esm2022/core-select/input/select-input.models.mjs +0 -37
  257. package/esm2022/core-select/input/total-count.directive.mjs +0 -33
  258. package/esm2022/core-select/job-qualification/job-qualification-grouping.component.mjs +0 -21
  259. package/esm2022/core-select/job-qualification/job-qualifications.directive.mjs +0 -78
  260. package/esm2022/core-select/job-qualification/lucca-front-ng-core-select-job-qualification.mjs +0 -5
  261. package/esm2022/core-select/job-qualification/models.mjs +0 -2
  262. package/esm2022/core-select/job-qualification/public-api.mjs +0 -3
  263. package/esm2022/core-select/lucca-front-ng-core-select.mjs +0 -5
  264. package/esm2022/core-select/option/default-option.component.mjs +0 -22
  265. package/esm2022/core-select/option/disabled.directive.mjs +0 -26
  266. package/esm2022/core-select/option/group.directive.mjs +0 -29
  267. package/esm2022/core-select/option/group.pipe.mjs +0 -43
  268. package/esm2022/core-select/option/index.mjs +0 -9
  269. package/esm2022/core-select/option/option-outlet.directive.mjs +0 -73
  270. package/esm2022/core-select/option/option.component.mjs +0 -89
  271. package/esm2022/core-select/option/option.directive.mjs +0 -26
  272. package/esm2022/core-select/option/option.token.mjs +0 -22
  273. package/esm2022/core-select/panel/index.mjs +0 -5
  274. package/esm2022/core-select/panel/key-manager.mjs +0 -79
  275. package/esm2022/core-select/panel/panel-header-template.directive.mjs +0 -25
  276. package/esm2022/core-select/panel/panel.models.mjs +0 -22
  277. package/esm2022/core-select/panel/panel.utils.mjs +0 -15
  278. package/esm2022/core-select/public-api.mjs +0 -8
  279. package/esm2022/core-select/select.model.mjs +0 -6
  280. package/esm2022/core-select/select.translate.mjs +0 -7
  281. package/esm2022/core-select/select.utils.mjs +0 -2
  282. package/esm2022/core-select/translations.mjs +0 -27
  283. package/esm2022/core-select/user/former-employees.component.mjs +0 -34
  284. package/esm2022/core-select/user/lucca-front-ng-core-select-user.mjs +0 -5
  285. package/esm2022/core-select/user/me.provider.mjs +0 -9
  286. package/esm2022/core-select/user/public-api.mjs +0 -5
  287. package/esm2022/core-select/user/translations.mjs +0 -35
  288. package/esm2022/core-select/user/user-displayer.component.mjs +0 -32
  289. package/esm2022/core-select/user/user-homonym.service.mjs +0 -63
  290. package/esm2022/core-select/user/user-option.component.mjs +0 -46
  291. package/esm2022/core-select/user/user-option.model.mjs +0 -2
  292. package/esm2022/core-select/user/user.translate.mjs +0 -7
  293. package/esm2022/core-select/user/users.directive.mjs +0 -149
  294. package/esm2022/date/adapter/date-adapter.module.mjs +0 -16
  295. package/esm2022/date/adapter/date-adapter.pipe.mjs +0 -25
  296. package/esm2022/date/adapter/index.mjs +0 -3
  297. package/esm2022/date/calendar/calendar-input.component.mjs +0 -332
  298. package/esm2022/date/calendar/calendar-input.module.mjs +0 -16
  299. package/esm2022/date/calendar/calendar-item.class.mjs +0 -43
  300. package/esm2022/date/calendar/calendar-item.factory.mjs +0 -37
  301. package/esm2022/date/calendar/calendar-item.interface.mjs +0 -2
  302. package/esm2022/date/calendar/index.mjs +0 -3
  303. package/esm2022/date/date.module.mjs +0 -20
  304. package/esm2022/date/humanize/humanize.formatter.mjs +0 -14
  305. package/esm2022/date/humanize/humanize.model.mjs +0 -2
  306. package/esm2022/date/humanize/humanize.pipe.mjs +0 -21
  307. package/esm2022/date/humanize/humanize.utils.mjs +0 -79
  308. package/esm2022/date/humanize/index.mjs +0 -5
  309. package/esm2022/date/input/date-input.directive.mjs +0 -137
  310. package/esm2022/date/input/date-input.module.mjs +0 -16
  311. package/esm2022/date/input/date-input.translate.mjs +0 -7
  312. package/esm2022/date/input/index.mjs +0 -4
  313. package/esm2022/date/input/translations.mjs +0 -43
  314. package/esm2022/date/lucca-front-ng-date.mjs +0 -5
  315. package/esm2022/date/picker/date-picker.component.mjs +0 -109
  316. package/esm2022/date/picker/date-picker.module.mjs +0 -16
  317. package/esm2022/date/picker/index.mjs +0 -3
  318. package/esm2022/date/public-api.mjs +0 -8
  319. package/esm2022/date/select/date-select-input.component.mjs +0 -106
  320. package/esm2022/date/select/date-select-input.module.mjs +0 -16
  321. package/esm2022/date/select/date-select-input.translate.mjs +0 -7
  322. package/esm2022/date/select/index.mjs +0 -4
  323. package/esm2022/date/select/translations.mjs +0 -43
  324. package/esm2022/date2/calendar.token.mjs +0 -22
  325. package/esm2022/date2/calendar2/calendar-cell-info.mjs +0 -2
  326. package/esm2022/date2/calendar2/calendar-mode.mjs +0 -2
  327. package/esm2022/date2/calendar2/calendar2-cell.directive.mjs +0 -111
  328. package/esm2022/date2/calendar2/calendar2.component.mjs +0 -279
  329. package/esm2022/date2/calendar2/calendar2.tokens.mjs +0 -4
  330. package/esm2022/date2/calendar2/cell-status.mjs +0 -2
  331. package/esm2022/date2/calendar2/date-range.mjs +0 -2
  332. package/esm2022/date2/date-format.mjs +0 -16
  333. package/esm2022/date2/date-input/date-input.component.mjs +0 -281
  334. package/esm2022/date2/date2.translate.mjs +0 -7
  335. package/esm2022/date2/lucca-front-ng-date2.mjs +0 -5
  336. package/esm2022/date2/public-api.mjs +0 -5
  337. package/esm2022/date2/repeat-times.directive.mjs +0 -27
  338. package/esm2022/date2/translations.mjs +0 -17
  339. package/esm2022/date2/utils.mjs +0 -24
  340. package/esm2022/department/department.model.mjs +0 -2
  341. package/esm2022/department/department.module.mjs +0 -16
  342. package/esm2022/department/lucca-front-ng-department.mjs +0 -5
  343. package/esm2022/department/public-api.mjs +0 -5
  344. package/esm2022/department/select/department-select.module.mjs +0 -17
  345. package/esm2022/department/select/feeder/department-feeder.component.mjs +0 -82
  346. package/esm2022/department/select/feeder/department-feeder.module.mjs +0 -16
  347. package/esm2022/department/select/feeder/index.mjs +0 -3
  348. package/esm2022/department/select/index.mjs +0 -4
  349. package/esm2022/department/select/input/department-select-input.component.mjs +0 -68
  350. package/esm2022/department/select/input/department-select-input.module.mjs +0 -16
  351. package/esm2022/department/select/input/department-select-input.translate.mjs +0 -7
  352. package/esm2022/department/select/input/index.mjs +0 -4
  353. package/esm2022/department/select/input/translations.mjs +0 -27
  354. package/esm2022/department/service/department-service.model.mjs +0 -4
  355. package/esm2022/department/service/department-v3.service.mjs +0 -46
  356. package/esm2022/department/service/department-v4.service.mjs +0 -46
  357. package/esm2022/department/service/index.mjs +0 -4
  358. package/esm2022/dialog/dialog/dialog.component.mjs +0 -31
  359. package/esm2022/dialog/dialog-content/dialog-content.component.mjs +0 -20
  360. package/esm2022/dialog/dialog-footer/dialog-footer.component.mjs +0 -13
  361. package/esm2022/dialog/dialog-header/dialog-header.component.mjs +0 -45
  362. package/esm2022/dialog/dialog-header/dialog-header.translate.mjs +0 -7
  363. package/esm2022/dialog/dialog-header/translations.mjs +0 -27
  364. package/esm2022/dialog/dialog-routing/dialog-routing.component.mjs +0 -100
  365. package/esm2022/dialog/dialog-routing/dialog-routing.models.mjs +0 -2
  366. package/esm2022/dialog/dialog-routing/dialog-routing.utils.mjs +0 -46
  367. package/esm2022/dialog/dialog-routing/index.mjs +0 -4
  368. package/esm2022/dialog/dialog.providers.mjs +0 -10
  369. package/esm2022/dialog/dialog.service.mjs +0 -75
  370. package/esm2022/dialog/directives/dialog-close.directive.mjs +0 -22
  371. package/esm2022/dialog/directives/dialog-dismiss.directive.mjs +0 -22
  372. package/esm2022/dialog/directives/dialog-open.directive.mjs +0 -35
  373. package/esm2022/dialog/lucca-front-ng-dialog.mjs +0 -5
  374. package/esm2022/dialog/model/dialog-config.mjs +0 -4
  375. package/esm2022/dialog/model/dialog-ref.mjs +0 -49
  376. package/esm2022/dialog/model/index.mjs +0 -4
  377. package/esm2022/dialog/model/injectors.mjs +0 -10
  378. package/esm2022/dialog/public-api.mjs +0 -13
  379. package/esm2022/dialog/testing/lucca-front-ng-dialog-testing.mjs +0 -5
  380. package/esm2022/dialog/testing/providers.mjs +0 -8
  381. package/esm2022/dialog/testing/public-api.mjs +0 -2
  382. package/esm2022/dropdown/dropdown.module.mjs +0 -18
  383. package/esm2022/dropdown/item/dropdown-item.directive.mjs +0 -55
  384. package/esm2022/dropdown/item/dropdown-item.model.mjs +0 -3
  385. package/esm2022/dropdown/item/dropdown-item.module.mjs +0 -17
  386. package/esm2022/dropdown/item/index.mjs +0 -4
  387. package/esm2022/dropdown/lucca-front-ng-dropdown.mjs +0 -5
  388. package/esm2022/dropdown/panel/dropdown-panel.component.mjs +0 -111
  389. package/esm2022/dropdown/panel/dropdown-panel.model.mjs +0 -2
  390. package/esm2022/dropdown/panel/dropdown-panel.module.mjs +0 -18
  391. package/esm2022/dropdown/panel/index.mjs +0 -4
  392. package/esm2022/dropdown/public-api.mjs +0 -5
  393. package/esm2022/dropdown/trigger/dropdown-trigger.directive.mjs +0 -121
  394. package/esm2022/dropdown/trigger/dropdown-trigger.module.mjs +0 -18
  395. package/esm2022/dropdown/trigger/index.mjs +0 -3
  396. package/esm2022/empty-state/empty-state-page/empty-state-page.component.mjs +0 -62
  397. package/esm2022/empty-state/empty-state-section/empty-state-section.component.mjs +0 -43
  398. package/esm2022/empty-state/lucca-front-ng-empty-state.mjs +0 -5
  399. package/esm2022/empty-state/public-api.mjs +0 -3
  400. package/esm2022/establishment/establishment.model.mjs +0 -2
  401. package/esm2022/establishment/establishment.module.mjs +0 -19
  402. package/esm2022/establishment/lucca-front-ng-establishment.mjs +0 -5
  403. package/esm2022/establishment/public-api.mjs +0 -5
  404. package/esm2022/establishment/select/establishment-select.module.mjs +0 -23
  405. package/esm2022/establishment/select/establishment-select.token.mjs +0 -4
  406. package/esm2022/establishment/select/for-legal-units/for-legal-units.directive.mjs +0 -47
  407. package/esm2022/establishment/select/for-legal-units/for-legal-units.module.mjs +0 -16
  408. package/esm2022/establishment/select/for-legal-units/index.mjs +0 -3
  409. package/esm2022/establishment/select/index.mjs +0 -7
  410. package/esm2022/establishment/select/input/establishment-select-input.component.mjs +0 -126
  411. package/esm2022/establishment/select/input/establishment-select-input.module.mjs +0 -16
  412. package/esm2022/establishment/select/input/establishment-select-input.translate.mjs +0 -7
  413. package/esm2022/establishment/select/input/index.mjs +0 -4
  414. package/esm2022/establishment/select/input/translations.mjs +0 -27
  415. package/esm2022/establishment/select/legal-unit-selector/index.mjs +0 -3
  416. package/esm2022/establishment/select/legal-unit-selector/legal-unit-selector.directive.mjs +0 -103
  417. package/esm2022/establishment/select/legal-unit-selector/legal-unit-selector.module.mjs +0 -16
  418. package/esm2022/establishment/select/searcher/establishment-searcher.component.mjs +0 -146
  419. package/esm2022/establishment/select/searcher/establishment-searcher.module.mjs +0 -16
  420. package/esm2022/establishment/select/searcher/index.mjs +0 -3
  421. package/esm2022/establishment/select/select-all/establishment-select-all.component.mjs +0 -94
  422. package/esm2022/establishment/select/select-all/establishment-select-all.module.mjs +0 -16
  423. package/esm2022/establishment/select/select-all/index.mjs +0 -3
  424. package/esm2022/establishment/service/establishment-service.model.mjs +0 -4
  425. package/esm2022/establishment/service/establishment.service.mjs +0 -37
  426. package/esm2022/establishment/service/index.mjs +0 -5
  427. package/esm2022/establishment/service/legal-unit-service.model.mjs +0 -4
  428. package/esm2022/establishment/service/legal-unit.service.mjs +0 -37
  429. package/esm2022/form-field/form-field-size.mjs +0 -2
  430. package/esm2022/form-field/form-field.component.mjs +0 -248
  431. package/esm2022/form-field/form-field.token.mjs +0 -3
  432. package/esm2022/form-field/form-field.translate.mjs +0 -7
  433. package/esm2022/form-field/input.directive.mjs +0 -36
  434. package/esm2022/form-field/lucca-front-ng-form-field.mjs +0 -5
  435. package/esm2022/form-field/public-api.mjs +0 -6
  436. package/esm2022/form-field/translations.mjs +0 -27
  437. package/esm2022/formly/formly.config.mjs +0 -79
  438. package/esm2022/formly/formly.module.mjs +0 -108
  439. package/esm2022/formly/formly.utils.mjs +0 -10
  440. package/esm2022/formly/lucca-front-ng-formly.mjs +0 -5
  441. package/esm2022/formly/public-api.mjs +0 -5
  442. package/esm2022/formly/types/api.mjs +0 -37
  443. package/esm2022/formly/types/checkbox.mjs +0 -22
  444. package/esm2022/formly/types/date.mjs +0 -22
  445. package/esm2022/formly/types/department.mjs +0 -22
  446. package/esm2022/formly/types/establishment.mjs +0 -22
  447. package/esm2022/formly/types/index.mjs +0 -12
  448. package/esm2022/formly/types/input.mjs +0 -26
  449. package/esm2022/formly/types/qualification.mjs +0 -22
  450. package/esm2022/formly/types/radios.mjs +0 -25
  451. package/esm2022/formly/types/select.mjs +0 -28
  452. package/esm2022/formly/types/textarea.mjs +0 -22
  453. package/esm2022/formly/types/user.mjs +0 -22
  454. package/esm2022/formly/wrappers/checkbox-layout.mjs +0 -30
  455. package/esm2022/formly/wrappers/error.mjs +0 -57
  456. package/esm2022/formly/wrappers/helper.mjs +0 -19
  457. package/esm2022/formly/wrappers/icon.mjs +0 -19
  458. package/esm2022/formly/wrappers/index.mjs +0 -8
  459. package/esm2022/formly/wrappers/radiosfield-layout.mjs +0 -30
  460. package/esm2022/formly/wrappers/suffix.mjs +0 -19
  461. package/esm2022/formly/wrappers/textfield-layout.mjs +0 -39
  462. package/esm2022/forms/checkbox-input/checkbox-input.component.mjs +0 -34
  463. package/esm2022/forms/form-field-id.directive.mjs +0 -52
  464. package/esm2022/forms/inject-ng-control.mjs +0 -25
  465. package/esm2022/forms/lucca-front-ng-forms.mjs +0 -5
  466. package/esm2022/forms/multilanguage-input/model/multilanguage-translation.mjs +0 -2
  467. package/esm2022/forms/multilanguage-input/multilanguage-input.component.mjs +0 -95
  468. package/esm2022/forms/multilanguage-input/multilanguage-input.translate.mjs +0 -6
  469. package/esm2022/forms/multilanguage-input/translations.mjs +0 -13
  470. package/esm2022/forms/multilanguage-input/validators.mjs +0 -7
  471. package/esm2022/forms/noop-value-accessor.directive.mjs +0 -35
  472. package/esm2022/forms/number-format-input/number-format-input.component.mjs +0 -92
  473. package/esm2022/forms/number-format-input/number-format-input.translate.mjs +0 -7
  474. package/esm2022/forms/number-format-input/translations.mjs +0 -27
  475. package/esm2022/forms/number-input/number-input.component.mjs +0 -38
  476. package/esm2022/forms/number-input/number-input.translate.mjs +0 -7
  477. package/esm2022/forms/number-input/translations.mjs +0 -27
  478. package/esm2022/forms/phone-number-input/formatter.mjs +0 -7
  479. package/esm2022/forms/phone-number-input/lucca-front-ng-forms-phone-number-input.mjs +0 -5
  480. package/esm2022/forms/phone-number-input/phone-number-format.pipe.mjs +0 -18
  481. package/esm2022/forms/phone-number-input/phone-number-input.component.mjs +0 -186
  482. package/esm2022/forms/phone-number-input/public-api.mjs +0 -6
  483. package/esm2022/forms/phone-number-input/types.mjs +0 -2
  484. package/esm2022/forms/phone-number-input/validators.mjs +0 -17
  485. package/esm2022/forms/public-api.mjs +0 -17
  486. package/esm2022/forms/radio-group-input/radio/radio.component.mjs +0 -54
  487. package/esm2022/forms/radio-group-input/radio-group-input.component.mjs +0 -45
  488. package/esm2022/forms/radio-group-input/radio-group-token.mjs +0 -3
  489. package/esm2022/forms/switch-input/switch-input.component.mjs +0 -26
  490. package/esm2022/forms/text-input/text-input-addon.mjs +0 -2
  491. package/esm2022/forms/text-input/text-input.component.mjs +0 -82
  492. package/esm2022/forms/text-input/text-input.translate.mjs +0 -7
  493. package/esm2022/forms/text-input/translations.mjs +0 -35
  494. package/esm2022/forms/textarea-input/textarea-input.component.mjs +0 -53
  495. package/esm2022/icon/icon.component.mjs +0 -29
  496. package/esm2022/icon/lucca-front-ng-icon.mjs +0 -5
  497. package/esm2022/icon/public-api.mjs +0 -2
  498. package/esm2022/inline-message/inline-message-state.mjs +0 -2
  499. package/esm2022/inline-message/inline-message.component.mjs +0 -33
  500. package/esm2022/inline-message/lucca-front-ng-inline-message.mjs +0 -5
  501. package/esm2022/inline-message/public-api.mjs +0 -3
  502. package/esm2022/input/clearer/clearer.component.mjs +0 -35
  503. package/esm2022/input/clearer/clearer.model.mjs +0 -3
  504. package/esm2022/input/clearer/clearer.module.mjs +0 -16
  505. package/esm2022/input/clearer/index.mjs +0 -4
  506. package/esm2022/input/displayer/index.mjs +0 -4
  507. package/esm2022/input/displayer/input-displayer.directive.mjs +0 -59
  508. package/esm2022/input/displayer/input-displayer.model.mjs +0 -6
  509. package/esm2022/input/displayer/input-displayer.module.mjs +0 -16
  510. package/esm2022/input/input.directive.mjs +0 -42
  511. package/esm2022/input/input.model.mjs +0 -54
  512. package/esm2022/input/input.module.mjs +0 -18
  513. package/esm2022/input/lucca-front-ng-input.mjs +0 -5
  514. package/esm2022/input/public-api.mjs +0 -6
  515. package/esm2022/lucca-front-ng.mjs +0 -5
  516. package/esm2022/modal/dialog-adapter/dialog-content-adapter/dialog-content-adapter.component.mjs +0 -100
  517. package/esm2022/modal/dialog-adapter/dialog-ref-adapter.mjs +0 -19
  518. package/esm2022/modal/lucca-front-ng-modal.mjs +0 -5
  519. package/esm2022/modal/modal-config.default.mjs +0 -17
  520. package/esm2022/modal/modal-config.model.mjs +0 -5
  521. package/esm2022/modal/modal-panel.component.mjs +0 -123
  522. package/esm2022/modal/modal-ref.factory.mjs +0 -60
  523. package/esm2022/modal/modal-ref.model.mjs +0 -11
  524. package/esm2022/modal/modal.model.mjs +0 -2
  525. package/esm2022/modal/modal.module.mjs +0 -28
  526. package/esm2022/modal/modal.service.mjs +0 -42
  527. package/esm2022/modal/modal.token.mjs +0 -9
  528. package/esm2022/modal/modal.translate.mjs +0 -7
  529. package/esm2022/modal/modal.utils.mjs +0 -9
  530. package/esm2022/modal/public-api.mjs +0 -12
  531. package/esm2022/modal/translations.mjs +0 -43
  532. package/esm2022/multi-select/displayer/counter-displayer/counter-displayer.component.mjs +0 -78
  533. package/esm2022/multi-select/displayer/default-displayer.component.mjs +0 -95
  534. package/esm2022/multi-select/displayer/default-displayer.translate.mjs +0 -7
  535. package/esm2022/multi-select/displayer/displayer-input.directive.mjs +0 -101
  536. package/esm2022/multi-select/displayer/displayer.directive.mjs +0 -26
  537. package/esm2022/multi-select/displayer/index.mjs +0 -6
  538. package/esm2022/multi-select/displayer/translations.mjs +0 -51
  539. package/esm2022/multi-select/input/index.mjs +0 -3
  540. package/esm2022/multi-select/input/panel-ref.factory.mjs +0 -119
  541. package/esm2022/multi-select/input/panel.model.mjs +0 -4
  542. package/esm2022/multi-select/input/select-all/index.mjs +0 -2
  543. package/esm2022/multi-select/input/select-all/multi-select-all-displayer.component.mjs +0 -99
  544. package/esm2022/multi-select/input/select-all/multi-select-all-header.component.mjs +0 -36
  545. package/esm2022/multi-select/input/select-all/select-all.models.mjs +0 -3
  546. package/esm2022/multi-select/input/select-all/with-select-all.directive.mjs +0 -160
  547. package/esm2022/multi-select/input/select-input.component.mjs +0 -111
  548. package/esm2022/multi-select/lucca-front-ng-multi-select.mjs +0 -5
  549. package/esm2022/multi-select/panel/index.mjs +0 -2
  550. package/esm2022/multi-select/panel/option-group-context.pipe.mjs +0 -24
  551. package/esm2022/multi-select/panel/option-selected.pipe.mjs +0 -19
  552. package/esm2022/multi-select/panel/panel.component.mjs +0 -109
  553. package/esm2022/multi-select/panel/selected-chip.directive.mjs +0 -26
  554. package/esm2022/multi-select/public-api.mjs +0 -5
  555. package/esm2022/multi-select/select.model.mjs +0 -23
  556. package/esm2022/multi-select/select.translate.mjs +0 -7
  557. package/esm2022/multi-select/select.utils.mjs +0 -32
  558. package/esm2022/multi-select/translations.mjs +0 -107
  559. package/esm2022/new-badge/lucca-front-ng-new-badge.mjs +0 -5
  560. package/esm2022/new-badge/new-badge.component.mjs +0 -20
  561. package/esm2022/new-badge/public-api.mjs +0 -2
  562. package/esm2022/number/lucca-front-ng-number.mjs +0 -5
  563. package/esm2022/number/number.module.mjs +0 -16
  564. package/esm2022/number/number.pipe.mjs +0 -36
  565. package/esm2022/number/public-api.mjs +0 -3
  566. package/esm2022/number-format/lucca-front-ng-number-format.mjs +0 -5
  567. package/esm2022/number-format/number-format.directive.mjs +0 -91
  568. package/esm2022/number-format/number-format.mjs +0 -175
  569. package/esm2022/number-format/number-format.models.mjs +0 -7
  570. package/esm2022/number-format/number-format.pipe.mjs +0 -18
  571. package/esm2022/number-format/public-api.mjs +0 -5
  572. package/esm2022/numeric-badge/lucca-front-ng-numeric-badge.mjs +0 -5
  573. package/esm2022/numeric-badge/numeric-badge.component.mjs +0 -43
  574. package/esm2022/numeric-badge/public-api.mjs +0 -2
  575. package/esm2022/option/item/index.mjs +0 -8
  576. package/esm2022/option/item/option-item.component.mjs +0 -76
  577. package/esm2022/option/item/option-item.model.mjs +0 -3
  578. package/esm2022/option/item/option-item.module.mjs +0 -16
  579. package/esm2022/option/item/translations.mjs +0 -35
  580. package/esm2022/option/item/tree-option-item.component.mjs +0 -136
  581. package/esm2022/option/item/tree-option-item.model.mjs +0 -7
  582. package/esm2022/option/item/tree-option-item.module.mjs +0 -16
  583. package/esm2022/option/item/tree-option-item.translate.mjs +0 -7
  584. package/esm2022/option/lucca-front-ng-option.mjs +0 -5
  585. package/esm2022/option/operator/feeder/index.mjs +0 -5
  586. package/esm2022/option/operator/feeder/option-feeder.component.mjs +0 -33
  587. package/esm2022/option/operator/feeder/option-feeder.module.mjs +0 -16
  588. package/esm2022/option/operator/feeder/tree-option-feeder.component.mjs +0 -33
  589. package/esm2022/option/operator/feeder/tree-option-feeder.module.mjs +0 -16
  590. package/esm2022/option/operator/for-groups/for-groups.directive.mjs +0 -89
  591. package/esm2022/option/operator/for-groups/for-groups.module.mjs +0 -16
  592. package/esm2022/option/operator/for-groups/index.mjs +0 -3
  593. package/esm2022/option/operator/for-options/for-options.directive.mjs +0 -50
  594. package/esm2022/option/operator/for-options/for-options.module.mjs +0 -16
  595. package/esm2022/option/operator/for-options/for-tree-options.directive.mjs +0 -29
  596. package/esm2022/option/operator/for-options/for-tree-options.module.mjs +0 -16
  597. package/esm2022/option/operator/for-options/index.mjs +0 -5
  598. package/esm2022/option/operator/index.mjs +0 -10
  599. package/esm2022/option/operator/option-operator.model.mjs +0 -3
  600. package/esm2022/option/operator/option-operator.module.mjs +0 -20
  601. package/esm2022/option/operator/pager/index.mjs +0 -5
  602. package/esm2022/option/operator/pager/option-pager.component.mjs +0 -53
  603. package/esm2022/option/operator/pager/option-pager.module.mjs +0 -16
  604. package/esm2022/option/operator/pager/tree-option-pager.component.mjs +0 -71
  605. package/esm2022/option/operator/pager/tree-option-pager.module.mjs +0 -16
  606. package/esm2022/option/operator/searcher/index.mjs +0 -5
  607. package/esm2022/option/operator/searcher/option-searcher.component.mjs +0 -66
  608. package/esm2022/option/operator/searcher/option-searcher.module.mjs +0 -16
  609. package/esm2022/option/operator/searcher/tree-option-searcher.component.mjs +0 -83
  610. package/esm2022/option/operator/searcher/tree-option-searcher.module.mjs +0 -16
  611. package/esm2022/option/operator/tree-option-operator.model.mjs +0 -4
  612. package/esm2022/option/operator/tree-option-operator.module.mjs +0 -19
  613. package/esm2022/option/option.module.mjs +0 -63
  614. package/esm2022/option/picker/index.mjs +0 -9
  615. package/esm2022/option/picker/option-picker-advanced.component.mjs +0 -150
  616. package/esm2022/option/picker/option-picker.component.mjs +0 -319
  617. package/esm2022/option/picker/option-picker.model.mjs +0 -69
  618. package/esm2022/option/picker/option-picker.module.mjs +0 -18
  619. package/esm2022/option/picker/tree-option-picker-advanced.component.mjs +0 -140
  620. package/esm2022/option/picker/tree-option-picker.component.mjs +0 -173
  621. package/esm2022/option/picker/tree-option-picker.model.mjs +0 -4
  622. package/esm2022/option/picker/tree-option-picker.module.mjs +0 -21
  623. package/esm2022/option/placeholder/index.mjs +0 -4
  624. package/esm2022/option/placeholder/option-placeholder.component.mjs +0 -23
  625. package/esm2022/option/placeholder/option-placeholder.module.mjs +0 -16
  626. package/esm2022/option/placeholder/option-placeholder.translate.mjs +0 -7
  627. package/esm2022/option/placeholder/translations.mjs +0 -35
  628. package/esm2022/option/public-api.mjs +0 -8
  629. package/esm2022/option/selector/all/index.mjs +0 -6
  630. package/esm2022/option/selector/all/select-all.component.mjs +0 -64
  631. package/esm2022/option/selector/all/select-all.module.mjs +0 -16
  632. package/esm2022/option/selector/all/select-all.translate.mjs +0 -7
  633. package/esm2022/option/selector/all/translations.mjs +0 -35
  634. package/esm2022/option/selector/all/tree-select-all.component.mjs +0 -67
  635. package/esm2022/option/selector/all/tree-select-all.module.mjs +0 -16
  636. package/esm2022/option/selector/index.mjs +0 -6
  637. package/esm2022/option/selector/option-selector.model.mjs +0 -3
  638. package/esm2022/option/selector/option-selector.module.mjs +0 -16
  639. package/esm2022/option/selector/tree-option-selector.model.mjs +0 -4
  640. package/esm2022/option/selector/tree-option-selector.module.mjs +0 -16
  641. package/esm2022/option/tree-option.module.mjs +0 -19
  642. package/esm2022/picker/input-picker.model.mjs +0 -4
  643. package/esm2022/picker/lucca-front-ng-picker.mjs +0 -5
  644. package/esm2022/picker/public-api.mjs +0 -2
  645. package/esm2022/plg-push/lucca-front-ng-plg-push.mjs +0 -5
  646. package/esm2022/plg-push/plg-push.component.mjs +0 -17
  647. package/esm2022/plg-push/public-api.mjs +0 -2
  648. package/esm2022/popover/animation/index.mjs +0 -2
  649. package/esm2022/popover/animation/popover.animation.mjs +0 -16
  650. package/esm2022/popover/lucca-front-ng-popover.mjs +0 -5
  651. package/esm2022/popover/panel/index.mjs +0 -4
  652. package/esm2022/popover/panel/popover-panel.component.mjs +0 -126
  653. package/esm2022/popover/panel/popover-panel.model.mjs +0 -120
  654. package/esm2022/popover/panel/popover-panel.module.mjs +0 -16
  655. package/esm2022/popover/popover.module.mjs +0 -18
  656. package/esm2022/popover/public-api.mjs +0 -6
  657. package/esm2022/popover/target/index.mjs +0 -4
  658. package/esm2022/popover/target/popover-target.directive.mjs +0 -53
  659. package/esm2022/popover/target/popover-target.model.mjs +0 -65
  660. package/esm2022/popover/target/popover-target.module.mjs +0 -16
  661. package/esm2022/popover/trigger/index.mjs +0 -4
  662. package/esm2022/popover/trigger/popover-trigger.directive.mjs +0 -186
  663. package/esm2022/popover/trigger/popover-trigger.model.mjs +0 -470
  664. package/esm2022/popover/trigger/popover-trigger.module.mjs +0 -17
  665. package/esm2022/popover2/content/popover-content/popover-content.component.mjs +0 -78
  666. package/esm2022/popover2/lucca-front-ng-popover2.mjs +0 -5
  667. package/esm2022/popover2/popover-focus-trap.mjs +0 -24
  668. package/esm2022/popover2/popover-tokens.mjs +0 -3
  669. package/esm2022/popover2/popover.directive.mjs +0 -257
  670. package/esm2022/popover2/popover.providers.mjs +0 -6
  671. package/esm2022/popover2/popover.translate.mjs +0 -7
  672. package/esm2022/popover2/popover2.translate.mjs +0 -19
  673. package/esm2022/popover2/public-api.mjs +0 -4
  674. package/esm2022/popover2/translations.mjs +0 -27
  675. package/esm2022/popup/lucca-front-ng-popup.mjs +0 -5
  676. package/esm2022/popup/popup-config.default.mjs +0 -9
  677. package/esm2022/popup/popup-config.model.mjs +0 -2
  678. package/esm2022/popup/popup-ref.factory.mjs +0 -28
  679. package/esm2022/popup/popup-ref.model.mjs +0 -139
  680. package/esm2022/popup/popup.module.mjs +0 -21
  681. package/esm2022/popup/popup.service.mjs +0 -21
  682. package/esm2022/popup/popup.token.mjs +0 -8
  683. package/esm2022/popup/public-api.mjs +0 -8
  684. package/esm2022/popup-employee/card/panel/user-popover-panel.component.mjs +0 -152
  685. package/esm2022/popup-employee/card/panel/user-popover-panel.model.mjs +0 -2
  686. package/esm2022/popup-employee/card/pipe/inject-parameter.pipe.mjs +0 -18
  687. package/esm2022/popup-employee/card/pipe/is-future.pipe.mjs +0 -32
  688. package/esm2022/popup-employee/card/pipe/leave-ends-display.pipe.mjs +0 -44
  689. package/esm2022/popup-employee/card/trigger/user-popover-trigger.directive.mjs +0 -178
  690. package/esm2022/popup-employee/lucca-front-ng-popup-employee.mjs +0 -5
  691. package/esm2022/popup-employee/popup-employee.translate.mjs +0 -7
  692. package/esm2022/popup-employee/public-api.mjs +0 -5
  693. package/esm2022/popup-employee/service/user-popover-service.model.mjs +0 -2
  694. package/esm2022/popup-employee/service/user-popover.store.mjs +0 -59
  695. package/esm2022/popup-employee/translations.mjs +0 -123
  696. package/esm2022/popup-employee/user-popover.model.mjs +0 -2
  697. package/esm2022/popup-employee/user-popover.providers.mjs +0 -14
  698. package/esm2022/public_api.mjs +0 -2
  699. package/esm2022/qualification/lucca-front-ng-qualification.mjs +0 -5
  700. package/esm2022/qualification/public-api.mjs +0 -4
  701. package/esm2022/qualification/qualification.model.mjs +0 -2
  702. package/esm2022/qualification/qualification.module.mjs +0 -19
  703. package/esm2022/qualification/select/index.mjs +0 -3
  704. package/esm2022/qualification/select/input/index.mjs +0 -4
  705. package/esm2022/qualification/select/input/qualification-select-input.component.mjs +0 -60
  706. package/esm2022/qualification/select/input/qualification-select-input.module.mjs +0 -19
  707. package/esm2022/qualification/select/input/qualification-select-input.translate.mjs +0 -7
  708. package/esm2022/qualification/select/input/translations.mjs +0 -27
  709. package/esm2022/qualification/select/qualification-select.module.mjs +0 -19
  710. package/esm2022/safe-content/lucca-front-ng-safe-content.mjs +0 -5
  711. package/esm2022/safe-content/public-api.mjs +0 -4
  712. package/esm2022/safe-content/safe-content.module.mjs +0 -18
  713. package/esm2022/safe-content/safe-external-svg.pipe.mjs +0 -42
  714. package/esm2022/safe-content/safe-html.pipe.mjs +0 -19
  715. package/esm2022/scroll/lucca-front-ng-scroll.mjs +0 -5
  716. package/esm2022/scroll/public-api.mjs +0 -4
  717. package/esm2022/scroll/scroll.directive.mjs +0 -77
  718. package/esm2022/scroll/scroll.model.mjs +0 -2
  719. package/esm2022/scroll/scroll.module.mjs +0 -16
  720. package/esm2022/select/input/index.mjs +0 -4
  721. package/esm2022/select/input/select-input.component.mjs +0 -249
  722. package/esm2022/select/input/select-input.model.mjs +0 -179
  723. package/esm2022/select/input/select-input.module.mjs +0 -19
  724. package/esm2022/select/lucca-front-ng-select.mjs +0 -5
  725. package/esm2022/select/public-api.mjs +0 -3
  726. package/esm2022/select/select.module.mjs +0 -19
  727. package/esm2022/sidepanel/lucca-front-ng-sidepanel.mjs +0 -5
  728. package/esm2022/sidepanel/public-api.mjs +0 -4
  729. package/esm2022/sidepanel/sidepanel.model.mjs +0 -32
  730. package/esm2022/sidepanel/sidepanel.module.mjs +0 -20
  731. package/esm2022/sidepanel/sidepanel.service.mjs +0 -25
  732. package/esm2022/simple-select/api/api-v3.directive.mjs +0 -6
  733. package/esm2022/simple-select/api/api-v4.directive.mjs +0 -6
  734. package/esm2022/simple-select/api/api.directive.mjs +0 -6
  735. package/esm2022/simple-select/api/lucca-front-ng-simple-select-api.mjs +0 -5
  736. package/esm2022/simple-select/api/public-api.mjs +0 -4
  737. package/esm2022/simple-select/input/index.mjs +0 -2
  738. package/esm2022/simple-select/input/panel-ref.factory.mjs +0 -106
  739. package/esm2022/simple-select/input/select-input.component.mjs +0 -60
  740. package/esm2022/simple-select/lucca-front-ng-simple-select.mjs +0 -5
  741. package/esm2022/simple-select/panel/index.mjs +0 -2
  742. package/esm2022/simple-select/panel/option-selected.pipe.mjs +0 -17
  743. package/esm2022/simple-select/panel/panel.component.mjs +0 -70
  744. package/esm2022/simple-select/public-api.mjs +0 -4
  745. package/esm2022/simple-select/select.model.mjs +0 -3
  746. package/esm2022/simple-select/select.translate.mjs +0 -7
  747. package/esm2022/simple-select/translations.mjs +0 -59
  748. package/esm2022/skeleton/lucca-front-ng-skeleton.mjs +0 -5
  749. package/esm2022/skeleton/public-api.mjs +0 -4
  750. package/esm2022/skeleton/skeleton-button/skeleton-button.component.mjs +0 -17
  751. package/esm2022/skeleton/skeleton-field/skeleton-field.component.mjs +0 -17
  752. package/esm2022/skeleton/skeleton-header/skeleton-header.component.mjs +0 -17
  753. package/esm2022/tag/lucca-front-ng-tag.mjs +0 -5
  754. package/esm2022/tag/public-api.mjs +0 -2
  755. package/esm2022/tag/tag.component.mjs +0 -61
  756. package/esm2022/time/core/base-picker.component.mjs +0 -47
  757. package/esm2022/time/core/date-primitives.mjs +0 -2
  758. package/esm2022/time/core/date.utils.mjs +0 -54
  759. package/esm2022/time/core/duration.utils.mjs +0 -55
  760. package/esm2022/time/core/math.utils.mjs +0 -17
  761. package/esm2022/time/core/misc.utils.mjs +0 -3
  762. package/esm2022/time/core/repeat-on-hold.directive.mjs +0 -73
  763. package/esm2022/time/core/time-picker-part.component.mjs +0 -148
  764. package/esm2022/time/duration-picker/duration-picker.component.mjs +0 -197
  765. package/esm2022/time/duration-picker/duration-picker.model.mjs +0 -2
  766. package/esm2022/time/duration-picker/duration-picker.translate.mjs +0 -7
  767. package/esm2022/time/duration-picker/translations.mjs +0 -43
  768. package/esm2022/time/lucca-front-ng-time.mjs +0 -5
  769. package/esm2022/time/public-api.mjs +0 -5
  770. package/esm2022/time/time-picker/time-picker.component.mjs +0 -230
  771. package/esm2022/time/time-picker/time-picker.model.mjs +0 -3
  772. package/esm2022/time/time-picker/time-picker.translate.mjs +0 -7
  773. package/esm2022/time/time-picker/translations.mjs +0 -43
  774. package/esm2022/title/lucca-front-ng-title.mjs +0 -5
  775. package/esm2022/title/public-api.mjs +0 -6
  776. package/esm2022/title/title-translate.service.mjs +0 -3
  777. package/esm2022/title/title.model.mjs +0 -2
  778. package/esm2022/title/title.module.mjs +0 -20
  779. package/esm2022/title/title.service.mjs +0 -55
  780. package/esm2022/title/title.strategy.mjs +0 -60
  781. package/esm2022/toast/lucca-front-ng-toast.mjs +0 -5
  782. package/esm2022/toast/public-api.mjs +0 -9
  783. package/esm2022/toast/toasts.component.mjs +0 -62
  784. package/esm2022/toast/toasts.model.mjs +0 -2
  785. package/esm2022/toast/toasts.module.mjs +0 -16
  786. package/esm2022/toast/toasts.service.mjs +0 -37
  787. package/esm2022/toast/toasts.translate.mjs +0 -7
  788. package/esm2022/toast/translations.mjs +0 -27
  789. package/esm2022/tooltip/animation/index.mjs +0 -2
  790. package/esm2022/tooltip/animation/tooltip.animation.mjs +0 -16
  791. package/esm2022/tooltip/lucca-front-ng-tooltip.mjs +0 -5
  792. package/esm2022/tooltip/panel/index.mjs +0 -3
  793. package/esm2022/tooltip/panel/tooltip-panel.component.mjs +0 -44
  794. package/esm2022/tooltip/panel/tooltip-panel.module.mjs +0 -16
  795. package/esm2022/tooltip/public-api.mjs +0 -5
  796. package/esm2022/tooltip/tooltip.module.mjs +0 -17
  797. package/esm2022/tooltip/trigger/ellipsis.ruler.mjs +0 -81
  798. package/esm2022/tooltip/trigger/index.mjs +0 -3
  799. package/esm2022/tooltip/trigger/tooltip-trigger.directive.mjs +0 -310
  800. package/esm2022/tooltip/trigger/tooltip-trigger.module.mjs +0 -17
  801. package/esm2022/user/display/display-format.model.mjs +0 -25
  802. package/esm2022/user/display/index.mjs +0 -4
  803. package/esm2022/user/display/user-display.module.mjs +0 -17
  804. package/esm2022/user/display/user-display.pipe.mjs +0 -72
  805. package/esm2022/user/lucca-front-ng-user.mjs +0 -5
  806. package/esm2022/user/picture/index.mjs +0 -3
  807. package/esm2022/user/picture/user-picture.component.mjs +0 -85
  808. package/esm2022/user/picture/user-picture.module.mjs +0 -19
  809. package/esm2022/user/public-api.mjs +0 -8
  810. package/esm2022/user/select/homonyms/index.mjs +0 -4
  811. package/esm2022/user/select/homonyms/user-homonyms.component.mjs +0 -72
  812. package/esm2022/user/select/homonyms/user-homonyms.module.mjs +0 -16
  813. package/esm2022/user/select/homonyms/user-homonyms.service.mjs +0 -53
  814. package/esm2022/user/select/index.mjs +0 -6
  815. package/esm2022/user/select/input/index.mjs +0 -4
  816. package/esm2022/user/select/input/translations.mjs +0 -35
  817. package/esm2022/user/select/input/user-select-input.component.mjs +0 -89
  818. package/esm2022/user/select/input/user-select-input.module.mjs +0 -19
  819. package/esm2022/user/select/input/user-select-input.translate.mjs +0 -7
  820. package/esm2022/user/select/me/index.mjs +0 -3
  821. package/esm2022/user/select/me/me-option.directive.mjs +0 -123
  822. package/esm2022/user/select/me/me-option.module.mjs +0 -16
  823. package/esm2022/user/select/searcher/index.mjs +0 -4
  824. package/esm2022/user/select/searcher/translations.mjs +0 -27
  825. package/esm2022/user/select/searcher/user-searcher.component.mjs +0 -187
  826. package/esm2022/user/select/searcher/user-searcher.module.mjs +0 -16
  827. package/esm2022/user/select/searcher/user-searcher.translate.mjs +0 -7
  828. package/esm2022/user/select/user-select.module.mjs +0 -22
  829. package/esm2022/user/service/index.mjs +0 -3
  830. package/esm2022/user/service/user-service.model.mjs +0 -4
  831. package/esm2022/user/service/user-v3.service.mjs +0 -51
  832. package/esm2022/user/tile/index.mjs +0 -3
  833. package/esm2022/user/tile/user-tile.component.mjs +0 -63
  834. package/esm2022/user/tile/user-tile.module.mjs +0 -20
  835. package/esm2022/user/user.model.mjs +0 -2
  836. package/esm2022/user/user.module.mjs +0 -19
@@ -35,10 +35,10 @@ class BasePickerComponent {
35
35
  this.minutesPart?.focus();
36
36
  }
37
37
  }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BasePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: BasePickerComponent, selector: "ng-component", inputs: { step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange" }, viewQueries: [{ propertyName: "hoursPart", first: true, predicate: ["hoursPart"], descendants: true }, { propertyName: "minutesPart", first: true, predicate: ["minutesPart"], descendants: true }], ngImport: i0, template: '', isInline: true }); }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: BasePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.3", type: BasePickerComponent, isStandalone: true, selector: "ng-component", inputs: { step: { classPropertyName: "step", publicName: "step", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { disabled: "disabledChange" }, viewQueries: [{ propertyName: "hoursPart", first: true, predicate: ["hoursPart"], descendants: true }, { propertyName: "minutesPart", first: true, predicate: ["minutesPart"], descendants: true }], ngImport: i0, template: '', isInline: true }); }
40
40
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BasePickerComponent, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: BasePickerComponent, decorators: [{
42
42
  type: Component,
43
43
  args: [{
44
44
  template: '',
@@ -183,10 +183,10 @@ class RepeatOnHoldDirective {
183
183
  window.removeEventListener('mouseup', this.onWindowMouseUp);
184
184
  this.cancelAnimationFrame();
185
185
  }
186
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RepeatOnHoldDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
187
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: RepeatOnHoldDirective, isStandalone: true, selector: "[luRepeatOnHold]", outputs: { hold: "hold" }, ngImport: i0 }); }
186
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: RepeatOnHoldDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
187
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.3", type: RepeatOnHoldDirective, isStandalone: true, selector: "[luRepeatOnHold]", outputs: { hold: "hold" }, ngImport: i0 }); }
188
188
  }
189
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: RepeatOnHoldDirective, decorators: [{
189
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: RepeatOnHoldDirective, decorators: [{
190
190
  type: Directive,
191
191
  args: [{
192
192
  selector: '[luRepeatOnHold]',
@@ -317,10 +317,10 @@ class TimePickerPartComponent {
317
317
  this.timePickerInput.nativeElement.focus();
318
318
  }
319
319
  }
320
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TimePickerPartComponent, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component }); }
321
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: TimePickerPartComponent, isStandalone: true, selector: "lu-time-picker-part", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, decimalConf: { classPropertyName: "decimalConf", publicName: "decimalConf", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, display: { classPropertyName: "display", publicName: "display", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, displayArrows: { classPropertyName: "displayArrows", publicName: "displayArrows", isSignal: true, isRequired: false, transformFunction: null }, isReadonly: { classPropertyName: "isReadonly", publicName: "isReadonly", isSignal: true, isRequired: false, transformFunction: null }, hideValue: { classPropertyName: "hideValue", publicName: "hideValue", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", prevRequest: "prevRequest", nextRequest: "nextRequest", inputControlClick: "inputControlClick", touched: "touched" }, viewQueries: [{ propertyName: "timePickerInput", first: true, predicate: ["timePickerInput"], descendants: true }], ngImport: i0, template: "<div class=\"timePicker-fieldset-group-textfield\">\n\t<label class=\"formLabel u-mask\" id=\"{{inputId}}-label\" for=\"{{inputId}}-input\">{{ label() }}</label>\n\t<div class=\"timePicker-fieldset-group-textfield\">\n\t\t<input\n\t\t\t#timePickerInput\n\t\t\ttype=\"text\"\n\t\t\tluInput\n\t\t\tluInputStandalone\n\t\t\tinputmode=\"numeric\"\n\t\t\tid=\"{{inputId}}-input\"\n\t\t\tclass=\"timePicker-fieldset-group-textfield-input\"\n\t\t\tattr.aria-labelledby=\"{{inputId}}-label\"\n\t\t\tautocomplete=\"off\"\n\t\t\t[value]=\"hideValue() ? null : value()\"\n\t\t\t(input)=\"keysInputHandler($event)\"\n\t\t\t(click)=\"clickHandler($event)\"\n\t\t\t(keydown)=\"keydownHandler($event)\"\n\t\t\t(blur)=\"touched.emit()\"\n\t\t\t(focus)=\"timePickerInput.select()\"\n\t\t/>\n\t\t<span aria-hidden=\"true\" class=\"timePicker-fieldset-group-textfield-display\">{{ valueLabel() }}</span>\n\t</div>\n\t@if (displayArrows()) {\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"up()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t</button>\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"down()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t</button>\n\t}\n</div>\n", dependencies: [{ kind: "directive", type: RepeatOnHoldDirective, selector: "[luRepeatOnHold]", outputs: ["hold"] }, { kind: "directive", type: InputDirective, selector: "[luInput]", inputs: ["luInputStandalone"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
320
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TimePickerPartComponent, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component }); }
321
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: TimePickerPartComponent, isStandalone: true, selector: "lu-time-picker-part", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, decimalConf: { classPropertyName: "decimalConf", publicName: "decimalConf", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, display: { classPropertyName: "display", publicName: "display", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, displayArrows: { classPropertyName: "displayArrows", publicName: "displayArrows", isSignal: true, isRequired: false, transformFunction: null }, isReadonly: { classPropertyName: "isReadonly", publicName: "isReadonly", isSignal: true, isRequired: false, transformFunction: null }, hideValue: { classPropertyName: "hideValue", publicName: "hideValue", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, focused: { classPropertyName: "focused", publicName: "focused", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", prevRequest: "prevRequest", nextRequest: "nextRequest", inputControlClick: "inputControlClick", touched: "touched" }, viewQueries: [{ propertyName: "timePickerInput", first: true, predicate: ["timePickerInput"], descendants: true }], ngImport: i0, template: "<div class=\"timePicker-fieldset-group-textfield\">\n\t<label class=\"formLabel u-mask\" id=\"{{inputId}}-label\" for=\"{{inputId}}-input\">{{ label() }}</label>\n\t<div class=\"timePicker-fieldset-group-textfield\">\n\t\t<input\n\t\t\t#timePickerInput\n\t\t\ttype=\"text\"\n\t\t\tluInput\n\t\t\tluInputStandalone\n\t\t\tinputmode=\"numeric\"\n\t\t\tid=\"{{inputId}}-input\"\n\t\t\tclass=\"timePicker-fieldset-group-textfield-input\"\n\t\t\tattr.aria-labelledby=\"{{inputId}}-label\"\n\t\t\tautocomplete=\"off\"\n\t\t\t[value]=\"hideValue() ? null : value()\"\n\t\t\t(input)=\"keysInputHandler($event)\"\n\t\t\t(click)=\"clickHandler($event)\"\n\t\t\t(keydown)=\"keydownHandler($event)\"\n\t\t\t(blur)=\"touched.emit()\"\n\t\t\t(focus)=\"timePickerInput.select()\"\n\t\t/>\n\t\t<span aria-hidden=\"true\" class=\"timePicker-fieldset-group-textfield-display\">{{ valueLabel() }}</span>\n\t</div>\n\t@if (displayArrows()) {\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"up()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t</button>\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"down()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t</button>\n\t}\n</div>\n", dependencies: [{ kind: "directive", type: RepeatOnHoldDirective, selector: "[luRepeatOnHold]", outputs: ["hold"] }, { kind: "directive", type: InputDirective, selector: "[luInput]", inputs: ["luInputStandalone"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
322
322
  }
323
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TimePickerPartComponent, decorators: [{
323
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TimePickerPartComponent, decorators: [{
324
324
  type: Component,
325
325
  args: [{ selector: 'lu-time-picker-part', standalone: true, imports: [RepeatOnHoldDirective, DecimalPipe, InputDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"timePicker-fieldset-group-textfield\">\n\t<label class=\"formLabel u-mask\" id=\"{{inputId}}-label\" for=\"{{inputId}}-input\">{{ label() }}</label>\n\t<div class=\"timePicker-fieldset-group-textfield\">\n\t\t<input\n\t\t\t#timePickerInput\n\t\t\ttype=\"text\"\n\t\t\tluInput\n\t\t\tluInputStandalone\n\t\t\tinputmode=\"numeric\"\n\t\t\tid=\"{{inputId}}-input\"\n\t\t\tclass=\"timePicker-fieldset-group-textfield-input\"\n\t\t\tattr.aria-labelledby=\"{{inputId}}-label\"\n\t\t\tautocomplete=\"off\"\n\t\t\t[value]=\"hideValue() ? null : value()\"\n\t\t\t(input)=\"keysInputHandler($event)\"\n\t\t\t(click)=\"clickHandler($event)\"\n\t\t\t(keydown)=\"keydownHandler($event)\"\n\t\t\t(blur)=\"touched.emit()\"\n\t\t\t(focus)=\"timePickerInput.select()\"\n\t\t/>\n\t\t<span aria-hidden=\"true\" class=\"timePicker-fieldset-group-textfield-display\">{{ valueLabel() }}</span>\n\t</div>\n\t@if (displayArrows()) {\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"up()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t</button>\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"down()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t</button>\n\t}\n</div>\n" }]
326
326
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -552,8 +552,8 @@ class DurationPickerComponent extends BasePickerComponent {
552
552
  this.focusPart('hours');
553
553
  }
554
554
  }
555
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DurationPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
556
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.1", type: DurationPickerComponent, isStandalone: true, selector: "lu-duration-picker", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, displayArrows: { classPropertyName: "displayArrows", publicName: "displayArrows", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, hideZeroValue: { classPropertyName: "hideZeroValue", publicName: "hideZeroValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", durationChange: "durationChange" }, providers: [
555
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: DurationPickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
556
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.3", type: DurationPickerComponent, isStandalone: true, selector: "lu-duration-picker", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, displayArrows: { classPropertyName: "displayArrows", publicName: "displayArrows", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, hideZeroValue: { classPropertyName: "hideZeroValue", publicName: "hideZeroValue", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", durationChange: "durationChange" }, providers: [
557
557
  {
558
558
  provide: NG_VALUE_ACCESSOR,
559
559
  useExisting: forwardRef(() => DurationPickerComponent),
@@ -561,7 +561,7 @@ class DurationPickerComponent extends BasePickerComponent {
561
561
  },
562
562
  ], usesInheritance: true, ngImport: i0, template: "<div [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></legend>\n\t\t<lu-time-picker-part\n\t\t\t#hoursPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[label]=\"intl.timePickerHours\"\n\t\t\t[value]=\"hours()\"\n\t\t\t[decimalConf]=\"hoursDecimalConf\"\n\t\t\t[hideValue]=\"shouldHideValue()\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t(valueChange)=\"hoursInputHandler($event)\"\n\t\t\t(nextRequest)=\"focusPart('minutes')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('hours', $event)\"\n\t\t/>\n\t\t<div aria-hidden=\"true\" [ngClass]=\"fieldsetSuffixClasses()\">{{ separator }}</div>\n\t\t<lu-time-picker-part\n\t\t\t#minutesPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[label]=\"intl.timePickerMinutes\"\n\t\t\t[value]=\"minutes()\"\n\t\t\t[max]=\"59\"\n\t\t\t[hideValue]=\"shouldHideValue()\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t[disabled]=\"disabled() || !minutesIncrement()\"\n\t\t\t(valueChange)=\"minutesInputHandler($event)\"\n\t\t\t(prevRequest)=\"focusPart('hours')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('minutes', $event)\"\n\t\t/>\n\t</fieldset>\n</div>\n", styles: [".timePicker{--components-timepicker-border: var(--palettes-neutral-300);--components-timepicker-background: var(--palettes-neutral-0);--components-timepicker-color: var(--palettes-neutral-800);--components-timepicker-fontSize: var(--sizes-M-fontSize);--components-timepicker-lineHeight: var(--sizes-M-lineHeight);--components-timepicker-input-height: 2rem;--components-timepicker-input-width: 1.5rem;--components-timepicker-padding: 0;--components-timepicker-paddingInput-inline: var(--pr-t-spacings-50);--components-timepicker-paddingInput-block: var(--pr-t-spacings-100);--components-timepicker-separator-left: 2.375rem;padding:var(--components-timepicker-padding);width:fit-content}.timePicker-fieldset{display:flex;align-items:center;box-shadow:0 0 0 1px var(--components-timepicker-border);border-radius:var(--commons-borderRadius-M);padding:0;border:0;margin:0;background-color:var(--components-timepicker-background);color:var(--components-timepicker-color);font-size:var(--components-timepicker-fontSize);line-height:var(--components-timepicker-lineHeight);position:relative;cursor:text}.timePicker-fieldset:hover{--components-timepicker-border: var(--palettes-neutral-400)}.timePicker-fieldset:focus-within{outline:2px solid var(--palettes-product-700);outline-offset:3px}.timePicker-fieldset-groupSeparator{pointer-events:none;display:grid;place-items:center;text-align:center;width:var(--pr-t-spacings-200);margin:0 calc(var(--pr-t-spacings-100) * -1);position:relative;left:calc(var(--pr-t-spacings-25) * -1)}.timePicker-fieldset-group{position:relative}.timePicker-fieldset-group~.timePicker-fieldset-group{margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-group-textfield{background-color:transparent}.timePicker-fieldset-group-textfield-input{display:flex;align-items:center;justify-content:center;border:0;height:var(--components-timepicker-input-height);width:var(--components-timepicker-input-width);outline:none;color:inherit;background-color:transparent;text-align:center;padding:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);box-sizing:content-box;opacity:.0001}.timePicker-fieldset-group-textfield-input::placeholder{color:var(--component-textField-placeholder)}.timePicker-fieldset-group-textfield-input:focus-visible+.timePicker-fieldset-group-textfield-display{background-color:var(--palettes-primary-100)}.timePicker-fieldset-group-textfield-display{position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);pointer-events:none;display:grid;place-items:center}.timePicker-fieldset-group-stepper{position:absolute;bottom:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);border:0;padding:0;height:1rem;width:1rem;left:50%;transform:translate(-50%);background-color:transparent;color:var(--palettes-neutral-600);display:inline-flex;justify-content:center;align-items:center;border-radius:var(--commons-borderRadius-M);outline:none;opacity:1;transition-property:opacity;transition-duration:var(--commons-animations-durations-fast);cursor:pointer}.timePicker-fieldset-group-stepper:hover{background-color:var(--palettes-neutral-50);color:var(--palettes-neutral-800)}.timePicker-fieldset-group-stepper:disabled{cursor:default;color:var(--palettes-neutral-500);pointer-events:none}.timePicker-fieldset-group-stepper .lucca-icon{--icon-size: 1rem}.timePicker-fieldset-group-stepper+.timePicker-fieldset-group-stepper{top:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);bottom:auto}.timePicker-fieldset-meridiem{width:calc(var(--components-timepicker-input-width) + var(--components-timepicker-paddingInput-block) * 2);position:relative;align-self:stretch;margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-meridiem:after{content:\"\";position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);display:grid;place-items:center;text-align:right}.timePicker-fieldset-meridiem:has(input:focus):after{background-color:var(--palettes-primary-100)}.timePicker-fieldset-meridiem:has(#anteMeridiem:checked):after{content:\"AM\"}.timePicker-fieldset-meridiem:has(#postMeridiem:checked):after{content:\"PM\"}.timePicker-fieldset-meridiem-ante,.timePicker-fieldset-meridiem-post{border:0;clip:rect(1px,1px,1px,1px);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;contain:paint}.timePicker.mod-S{--components-timepicker-fontSize: var(--sizes-S-fontSize);--components-timepicker-lineHeight: var(--sizes-S-lineHeight);--components-timepicker-paddingInput-inline: var(--pr-t-spacings-25);--components-timepicker-paddingInput-block: var(--pr-t-spacings-75);--components-timepicker-input-height: 1.75rem;--components-timepicker-input-width: 1.25rem;--components-timepicker-separator-left: 1.875rem}.timePicker.mod-stepper{--components-timepicker-padding: var(--pr-t-spacings-300) 0}.timePicker.mod-stepperHover:not(:hover,:focus-within) .timePicker-fieldset-group-stepper{opacity:0}.timePicker:has([aria-invalid=true]){--components-timepicker-background: var(--palettes-error-50);--components-timepicker-border: var(--palettes-error-400)}.timePicker:has([aria-invalid=true]):hover{--components-timepicker-border: var(--palettes-error-600)}.timePicker:has([disabled]){--components-timepicker-background: var(--commons-disabled-background);--components-timepicker-border: var(--commons-disabled-placeholder);--components-timepicker-color: var(--palettes-neutral-700)}lu-duration-picker{display:inline-flex}\n"], dependencies: [{ kind: "component", type: TimePickerPartComponent, selector: "lu-time-picker-part", inputs: ["label", "decimalConf", "value", "display", "max", "displayArrows", "isReadonly", "hideValue", "disabled", "focused"], outputs: ["valueChange", "prevRequest", "nextRequest", "inputControlClick", "touched"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
563
563
  }
564
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: DurationPickerComponent, decorators: [{
564
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: DurationPickerComponent, decorators: [{
565
565
  type: Component,
566
566
  args: [{ selector: 'lu-duration-picker', standalone: true, imports: [TimePickerPartComponent, NgClass], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
567
567
  {
@@ -728,7 +728,8 @@ class TimePickerComponent extends BasePickerComponent {
728
728
  }
729
729
  focusPart(type) {
730
730
  if (type === 'meridiem') {
731
- this.ampmDisplay() === 'AM' ? this.anteMeridiemRef?.nativeElement?.focus() : this.postMeridiemRef?.nativeElement?.focus();
731
+ const elementToFocus = this.ampmDisplay() === 'AM' ? this.anteMeridiemRef?.nativeElement : this.postMeridiemRef?.nativeElement;
732
+ elementToFocus?.focus();
732
733
  }
733
734
  else {
734
735
  super.focusPart(type);
@@ -778,7 +779,7 @@ class TimePickerComponent extends BasePickerComponent {
778
779
  this.value.set(value);
779
780
  this.onChange?.(value);
780
781
  }
781
- catch (e) {
782
+ catch {
782
783
  // do nothing
783
784
  }
784
785
  }
@@ -866,8 +867,8 @@ class TimePickerComponent extends BasePickerComponent {
866
867
  value: createIsoTimeFromHoursAndMinutes(hours, minutes),
867
868
  });
868
869
  }
869
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TimePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
870
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: TimePickerComponent, isStandalone: true, selector: "lu-time-picker", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, displayArrows: { classPropertyName: "displayArrows", publicName: "displayArrows", isSignal: true, isRequired: false, transformFunction: null }, forceMeridiemDisplay: { classPropertyName: "forceMeridiemDisplay", publicName: "forceMeridiemDisplay", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", timeChange: "timeChange" }, providers: [
870
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TimePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
871
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.0.3", type: TimePickerComponent, isStandalone: true, selector: "lu-time-picker", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, displayArrows: { classPropertyName: "displayArrows", publicName: "displayArrows", isSignal: true, isRequired: false, transformFunction: null }, forceMeridiemDisplay: { classPropertyName: "forceMeridiemDisplay", publicName: "forceMeridiemDisplay", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", timeChange: "timeChange" }, providers: [
871
872
  {
872
873
  provide: NG_VALUE_ACCESSOR,
873
874
  useExisting: forwardRef(() => TimePickerComponent),
@@ -875,7 +876,7 @@ class TimePickerComponent extends BasePickerComponent {
875
876
  },
876
877
  ], viewQueries: [{ propertyName: "anteMeridiemRef", first: true, predicate: ["anteMeridiemRef"], descendants: true }, { propertyName: "postMeridiemRef", first: true, predicate: ["postMeridiemRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></legend>\n\t\t<lu-time-picker-part\n\t\t\t#hoursPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[label]=\"intl.timePickerHours\"\n\t\t\t[value]=\"hours()\"\n\t\t\t[display]=\"hoursDisplay()\"\n\t\t\t[max]=\"maxHours()\"\n\t\t\t[decimalConf]=\"hoursDecimalConf\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t(touched)=\"onTouched?.()\"\n\t\t\t(valueChange)=\"hoursInputHandler($event)\"\n\t\t\t(nextRequest)=\"focusPart('minutes')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('hours', $event)\"\n\t\t/>\n\t\t<div aria-hidden=\"true\" class=\"timePicker-fieldset-groupSeparator\">{{ separator }}</div>\n\t\t<lu-time-picker-part\n\t\t\t#minutesPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[label]=\"intl.timePickerMinutes\"\n\t\t\t[value]=\"minutesDisplay()\"\n\t\t\t[max]=\"59\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t(touched)=\"onTouched?.()\"\n\t\t\t[disabled]=\"disabled() || !minutesIncrement()\"\n\t\t\t(valueChange)=\"minutesInputHandler($event)\"\n\t\t\t(prevRequest)=\"focusPart('hours')\"\n\t\t\t(nextRequest)=\"focusPart('meridiem')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('minutes', $event)\"\n\t\t/>\n\t\t@if (enableMeridiemDisplay()) {\n\t\t<div\n\t\t\tclass=\"timePicker-fieldset-meridiem\"\n\t\t\t(copy)=\"copyHandler($event)\"\n\t\t\t(paste)=\"pasteHandler($event)\"\n\t\t\t(keydown.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.P)=\"postMeridiemRef.click()\"\n\t\t\t(keydown.shift.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.shift.P)=\"postMeridiemRef.click()\"\n\t\t\t(click)=\"ampmDisplay() === 'AM' ? anteMeridiemRef.focus() : postMeridiemRef.focus()\"\n\t\t>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-ante\">\n\t\t\t\t<label for=\"anteMeridiem\">AM</label>\n\t\t\t\t<input\n\t\t\t\t\t#anteMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tname=\"meridiem\"\n\t\t\t\t\tid=\"anteMeridiem\"\n\t\t\t\t\tvalue=\"AM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-post\">\n\t\t\t\t<label for=\"postMeridiem\">PM</label>\n\t\t\t\t<input\n\t\t\t\t\t#postMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tname=\"meridiem\"\n\t\t\t\t\tid=\"postMeridiem\"\n\t\t\t\t\tvalue=\"PM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t@if (displayArrows()) {\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t\t\t</button>\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t\t\t</button>\n\t\t\t}\n\t\t</div>\n\t\t}\n\t</fieldset>\n</div>\n", styles: [".timePicker{--components-timepicker-border: var(--palettes-neutral-300);--components-timepicker-background: var(--palettes-neutral-0);--components-timepicker-color: var(--palettes-neutral-800);--components-timepicker-fontSize: var(--sizes-M-fontSize);--components-timepicker-lineHeight: var(--sizes-M-lineHeight);--components-timepicker-input-height: 2rem;--components-timepicker-input-width: 1.5rem;--components-timepicker-padding: 0;--components-timepicker-paddingInput-inline: var(--pr-t-spacings-50);--components-timepicker-paddingInput-block: var(--pr-t-spacings-100);--components-timepicker-separator-left: 2.375rem;padding:var(--components-timepicker-padding);width:fit-content}.timePicker-fieldset{display:flex;align-items:center;box-shadow:0 0 0 1px var(--components-timepicker-border);border-radius:var(--commons-borderRadius-M);padding:0;border:0;margin:0;background-color:var(--components-timepicker-background);color:var(--components-timepicker-color);font-size:var(--components-timepicker-fontSize);line-height:var(--components-timepicker-lineHeight);position:relative;cursor:text}.timePicker-fieldset:hover{--components-timepicker-border: var(--palettes-neutral-400)}.timePicker-fieldset:focus-within{outline:2px solid var(--palettes-product-700);outline-offset:3px}.timePicker-fieldset-groupSeparator{pointer-events:none;display:grid;place-items:center;text-align:center;width:var(--pr-t-spacings-200);margin:0 calc(var(--pr-t-spacings-100) * -1);position:relative;left:calc(var(--pr-t-spacings-25) * -1)}.timePicker-fieldset-group{position:relative}.timePicker-fieldset-group~.timePicker-fieldset-group{margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-group-textfield{background-color:transparent}.timePicker-fieldset-group-textfield-input{display:flex;align-items:center;justify-content:center;border:0;height:var(--components-timepicker-input-height);width:var(--components-timepicker-input-width);outline:none;color:inherit;background-color:transparent;text-align:center;padding:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);box-sizing:content-box;opacity:.0001}.timePicker-fieldset-group-textfield-input::placeholder{color:var(--component-textField-placeholder)}.timePicker-fieldset-group-textfield-input:focus-visible+.timePicker-fieldset-group-textfield-display{background-color:var(--palettes-primary-100)}.timePicker-fieldset-group-textfield-display{position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);pointer-events:none;display:grid;place-items:center}.timePicker-fieldset-group-stepper{position:absolute;bottom:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);border:0;padding:0;height:1rem;width:1rem;left:50%;transform:translate(-50%);background-color:transparent;color:var(--palettes-neutral-600);display:inline-flex;justify-content:center;align-items:center;border-radius:var(--commons-borderRadius-M);outline:none;opacity:1;transition-property:opacity;transition-duration:var(--commons-animations-durations-fast);cursor:pointer}.timePicker-fieldset-group-stepper:hover{background-color:var(--palettes-neutral-50);color:var(--palettes-neutral-800)}.timePicker-fieldset-group-stepper:disabled{cursor:default;color:var(--palettes-neutral-500);pointer-events:none}.timePicker-fieldset-group-stepper .lucca-icon{--icon-size: 1rem}.timePicker-fieldset-group-stepper+.timePicker-fieldset-group-stepper{top:calc(var(--components-timepicker-input-height) + var(--pr-t-spacings-150) + 1px);bottom:auto}.timePicker-fieldset-meridiem{width:calc(var(--components-timepicker-input-width) + var(--components-timepicker-paddingInput-block) * 2);position:relative;align-self:stretch;margin-left:calc(var(--pr-t-spacings-50) * -1)}.timePicker-fieldset-meridiem:after{content:\"\";position:absolute;inset:var(--components-timepicker-paddingInput-inline) var(--components-timepicker-paddingInput-block);border-radius:var(--commons-borderRadius-M);display:grid;place-items:center;text-align:right}.timePicker-fieldset-meridiem:has(input:focus):after{background-color:var(--palettes-primary-100)}.timePicker-fieldset-meridiem:has(#anteMeridiem:checked):after{content:\"AM\"}.timePicker-fieldset-meridiem:has(#postMeridiem:checked):after{content:\"PM\"}.timePicker-fieldset-meridiem-ante,.timePicker-fieldset-meridiem-post{border:0;clip:rect(1px,1px,1px,1px);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;contain:paint}.timePicker.mod-S{--components-timepicker-fontSize: var(--sizes-S-fontSize);--components-timepicker-lineHeight: var(--sizes-S-lineHeight);--components-timepicker-paddingInput-inline: var(--pr-t-spacings-25);--components-timepicker-paddingInput-block: var(--pr-t-spacings-75);--components-timepicker-input-height: 1.75rem;--components-timepicker-input-width: 1.25rem;--components-timepicker-separator-left: 1.875rem}.timePicker.mod-stepper{--components-timepicker-padding: var(--pr-t-spacings-300) 0}.timePicker.mod-stepperHover:not(:hover,:focus-within) .timePicker-fieldset-group-stepper{opacity:0}.timePicker:has([aria-invalid=true]){--components-timepicker-background: var(--palettes-error-50);--components-timepicker-border: var(--palettes-error-400)}.timePicker:has([aria-invalid=true]):hover{--components-timepicker-border: var(--palettes-error-600)}.timePicker:has([disabled]){--components-timepicker-background: var(--commons-disabled-background);--components-timepicker-border: var(--commons-disabled-placeholder);--components-timepicker-color: var(--palettes-neutral-700)}lu-time-picker{display:inline-flex}\n"], dependencies: [{ kind: "component", type: TimePickerPartComponent, selector: "lu-time-picker-part", inputs: ["label", "decimalConf", "value", "display", "max", "displayArrows", "isReadonly", "hideValue", "disabled", "focused"], outputs: ["valueChange", "prevRequest", "nextRequest", "inputControlClick", "touched"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
877
878
  }
878
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: TimePickerComponent, decorators: [{
879
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: TimePickerComponent, decorators: [{
879
880
  type: Component,
880
881
  args: [{ selector: 'lu-time-picker', standalone: true, imports: [TimePickerPartComponent, NgClass, FormsModule, RepeatOnHoldDirective], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
881
882
  {
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-time.mjs","sources":["../../../packages/ng/time/core/base-picker.component.ts","../../../packages/ng/time/core/misc.utils.ts","../../../packages/ng/time/core/duration.utils.ts","../../../packages/ng/time/core/math.utils.ts","../../../packages/ng/time/core/repeat-on-hold.directive.ts","../../../packages/ng/time/core/time-picker-part.component.ts","../../../packages/ng/time/core/time-picker-part.component.html","../../../packages/ng/time/duration-picker/duration-picker.model.ts","../../../packages/ng/time/duration-picker/translations.ts","../../../packages/ng/time/duration-picker/duration-picker.translate.ts","../../../packages/ng/time/duration-picker/duration-picker.component.ts","../../../packages/ng/time/duration-picker/duration-picker.component.html","../../../packages/ng/time/core/date.utils.ts","../../../packages/ng/time/time-picker/time-picker.model.ts","../../../packages/ng/time/time-picker/translations.ts","../../../packages/ng/time/time-picker/time-picker.translate.ts","../../../packages/ng/time/time-picker/time-picker.component.ts","../../../packages/ng/time/time-picker/time-picker.component.html","../../../packages/ng/time/lucca-front-ng-time.ts"],"sourcesContent":["import { Component, computed, input, model, ViewChild } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ISO8601Duration, ISO8601Time } from './date-primitives';\nimport { TimePickerPartComponent } from './time-picker-part.component';\n\n@Component({\n\ttemplate: '',\n})\nexport abstract class BasePickerComponent implements ControlValueAccessor {\n\tonChange: (value: ISO8601Time | ISO8601Duration) => void;\n\tonTouched: () => void;\n\n\tstep = input<ISO8601Duration>(null);\n\n\tdisabled = model(false);\n\n\tsize = input<'S' | 'M'>();\n\n\t@ViewChild('hoursPart')\n\thoursPart?: TimePickerPartComponent;\n\n\t@ViewChild('minutesPart')\n\tminutesPart?: TimePickerPartComponent;\n\n\tprotected hoursIncrement = computed(() => this.getHoursIncrement());\n\tprotected minutesIncrement = computed(() => this.getMinutesIncrement());\n\n\tregisterOnChange(fn: () => void): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tabstract writeValue(value: ISO8601Time | ISO8601Duration): void;\n\n\tabstract getHoursIncrement(): number;\n\n\tabstract getMinutesIncrement(): number;\n\n\tprotected focusPart(type: 'hours' | 'minutes') {\n\t\tthis.onTouched?.();\n\t\tif (type === 'hours') {\n\t\t\tif (this.hoursIncrement() === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.hoursPart?.focus();\n\t\t}\n\t\tif (type === 'minutes') {\n\t\t\tif (this.minutesIncrement() === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.minutesPart?.focus();\n\t\t}\n\t}\n}\n","export const isNil = <T>(value: T | null | undefined): value is null | undefined => typeof value === 'undefined' || value === null;\n\nexport const isNotNil = <T>(value: T): value is NonNullable<T> => !isNil(value);\n\nexport type PickerControlDirection = 'up' | 'down';\n","import { Duration } from 'date-fns';\nimport { ISO8601Duration } from './date-primitives';\nimport { isNotNil } from './misc.utils';\n\nexport type NonNullableDateFnsDuration = {\n\tyears: number;\n\tmonths: number;\n\tdays: number;\n\thours: number;\n\tminutes: number;\n\tseconds: number;\n};\n\ntype DateFnsDuration = Duration;\n\nconst ISO8601DurationRegExp =\n\t/^(?<sign>-)?P(?:(?<years>-?\\d+)Y)?(?:(?<months>-?\\d+)M)?(?:(?<weeks>-?\\d+)W)?(?:(?<days>-?\\d+)D)?(?:T(?:(?<hours>-?\\d+)H)?(?:(?<minutes>-?\\d+)M)?(?:(?<seconds>-?\\d+(?:\\.\\d+)?)S)?)?$/;\n\n// TODO memoize\nexport const isoDurationToDateFnsDuration = (isoDuration: ISO8601Duration): NonNullableDateFnsDuration => {\n\tconst matches = ISO8601DurationRegExp.exec(isoDuration);\n\n\tconst groups = matches?.groups;\n\n\tif (!groups) {\n\t\tthrow new Error(`Invalid ISO 8601 duration: ${isoDuration}`);\n\t}\n\n\tconst withSign = groups['sign'] === '-' ? -1 : 1;\n\n\tconst result: NonNullableDateFnsDuration = {\n\t\tyears: groups['years'] ? Number(groups['years']) : 0,\n\t\tmonths: groups['months'] ? Number(groups['months']) : 0,\n\t\tdays: groups['days'] ? Number(groups['days']) : 0,\n\t\thours: groups['hours'] ? Number(groups['hours']) : 0,\n\t\tminutes: groups['minutes'] ? Number(groups['minutes']) : 0,\n\t\tseconds: groups['seconds'] ? Number(groups['seconds']) : 0,\n\t};\n\n\tresult.years *= withSign;\n\tresult.months *= withSign;\n\tresult.days *= withSign;\n\tresult.hours *= withSign;\n\tresult.minutes *= withSign;\n\tresult.seconds *= withSign;\n\n\treturn result;\n};\n\nexport function isISO8601Duration(value: string): value is ISO8601Duration {\n\treturn ISO8601DurationRegExp.test(value);\n}\n\nexport const dateFnsDurationToSeconds = (durationFns: DateFnsDuration): number => {\n\tconst { years, months } = durationFns;\n\tlet { days, hours, minutes, seconds } = durationFns;\n\n\tif ((isNotNil(years) && years !== 0) || (isNotNil(months) && months !== 0)) {\n\t\tthrow new Error('years and months are not supported');\n\t}\n\n\tdays = days || 0;\n\thours = hours || 0;\n\tminutes = minutes || 0;\n\tseconds = seconds || 0;\n\n\treturn days * 24 * 60 * 60 + hours * 60 * 60 + minutes * 60 + seconds;\n};\n\nexport const isoDurationToSeconds = (duration: ISO8601Duration): number => {\n\tconst durationFns = isoDurationToDateFnsDuration(duration);\n\n\treturn dateFnsDurationToSeconds(durationFns);\n};\n\nexport const getHoursPartFromDuration = (duration: ISO8601Duration): number => {\n\treturn Math.floor(isoDurationToSeconds(duration) / 3600);\n};\n\nexport const getMinutesPartFromDuration = (duration: ISO8601Duration): number => {\n\treturn Math.floor((isoDurationToSeconds(duration) % 3600) / 60);\n};\n\nexport const createDurationFromHoursAndMinutes = (hours: number, minutes: number): ISO8601Duration => {\n\treturn `PT${hours}H${minutes}M`;\n};\n","export const roundToNearest = (value: number, step: number) => Math.round(value / step) * step;\n\nexport const floorToNearest = (value: number, step: number) => Math.floor(value / step) * step;\n\nexport const ceilToNearest = (value: number, step: number) => Math.ceil(value / step) * step;\n\n/**\n * Returns the value of n circularized between 0 and max.\n * Given n = 0 and max = 10, returns 0.\n * Given n = 10 and max = 10, returns 10.\n * Given n = 11 and max = 10, returns 1.\n * Given n = -1 and max = 10, returns 9.\n */\nexport const circularize = (n: number, max: number) => {\n\tif (n % max === 0) {\n\t\treturn n === 0 ? 0 : max;\n\t}\n\treturn ((n % max) + max) % max;\n};\n","import { Directive, ElementRef, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\n\nconst INITIAL_INTERVAL = 500;\n\n@Directive({\n\tselector: '[luRepeatOnHold]',\n\tstandalone: true,\n})\nexport class RepeatOnHoldDirective implements OnDestroy, OnInit {\n\t@Output() hold = new EventEmitter<void>();\n\n\tonMouseDown = () => {\n\t\tif (this.startTime !== undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.hold.emit();\n\t\tthis.animationFrameId = window.requestAnimationFrame(this.animationFrameHandler);\n\n\t\twindow.removeEventListener('mouseup', this.onWindowMouseUp);\n\t\twindow.addEventListener('mouseup', this.onWindowMouseUp);\n\t};\n\n\tonWindowMouseUp = () => {\n\t\tthis.cancelAnimationFrame();\n\t};\n\n\tconstructor(private elementRef: ElementRef<HTMLElement>) {}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.addEventListener('mousedown', this.onMouseDown);\n\t}\n\n\tinterval = INITIAL_INTERVAL;\n\tstartTime: number | undefined = undefined;\n\tpreviousTime: number | undefined = undefined;\n\tanimationFrameId: number | undefined = undefined;\n\n\tprivate cancelAnimationFrame(): void {\n\t\tif (this.animationFrameId) {\n\t\t\tthis.previousTime = undefined;\n\t\t\tthis.interval = INITIAL_INTERVAL;\n\t\t\tthis.startTime = undefined;\n\t\t\twindow.cancelAnimationFrame(this.animationFrameId);\n\t\t\tthis.animationFrameId = undefined;\n\t\t}\n\t}\n\n\tprivate animationFrameHandler = (time: number): void => {\n\t\tif (this.startTime === undefined) {\n\t\t\tthis.startTime = time;\n\t\t}\n\n\t\tif (this.previousTime === undefined) {\n\t\t\tthis.previousTime = time;\n\t\t}\n\n\t\tif (time - this.previousTime > this.interval) {\n\t\t\tthis.hold.emit();\n\t\t\tthis.previousTime = time;\n\t\t}\n\n\t\tif (time - this.startTime > 1000) {\n\t\t\tthis.interval = 200;\n\t\t}\n\n\t\tif (time - this.startTime > 2000) {\n\t\t\tthis.interval = 50;\n\t\t}\n\n\t\tthis.animationFrameId = window.requestAnimationFrame(this.animationFrameHandler);\n\t};\n\n\tngOnDestroy(): void {\n\t\tthis.elementRef.nativeElement.removeEventListener('mousedown', this.onMouseDown);\n\t\twindow.removeEventListener('mouseup', this.onWindowMouseUp);\n\t\tthis.cancelAnimationFrame();\n\t}\n}\n","import { DecimalPipe, formatNumber } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tEventEmitter,\n\tInject,\n\tLOCALE_ID,\n\tModelSignal,\n\tOutput,\n\tViewChild,\n\tbooleanAttribute,\n\tcomputed,\n\tinput,\n\tmodel,\n\tnumberAttribute,\n} from '@angular/core';\nimport { InputDirective } from '@lucca-front/ng/form-field';\nimport { PickerControlDirection } from './misc.utils';\nimport { RepeatOnHoldDirective } from './repeat-on-hold.directive';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-time-picker-part',\n\tstandalone: true,\n\timports: [RepeatOnHoldDirective, DecimalPipe, InputDirective],\n\ttemplateUrl: './time-picker-part.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TimePickerPartComponent {\n\tlabel = input('');\n\n\tdecimalConf = input('2.0-0');\n\n\tvalue: ModelSignal<number | '––'> = model('––');\n\n\tdisplay = input<number | '––'>();\n\n\tmax = input(0, {\n\t\ttransform: numberAttribute,\n\t});\n\n\tdisplayArrows = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tisReadonly = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\thideValue = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tdisabled = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tfocused = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t@Output() prevRequest = new EventEmitter<void>();\n\t@Output() nextRequest = new EventEmitter<void>();\n\t@Output() inputControlClick = new EventEmitter<PickerControlDirection>();\n\t@Output() touched = new EventEmitter<void>();\n\n\t@ViewChild('timePickerInput') timePickerInput?: ElementRef<HTMLInputElement>;\n\n\tvalueLabel = computed(() => {\n\t\tif (this.hideValue()) {\n\t\t\treturn ' ';\n\t\t}\n\t\tif (this.display() !== undefined) {\n\t\t\treturn this.display();\n\t\t}\n\t\tconst value = this.value();\n\t\tif (value === '––') {\n\t\t\treturn value;\n\t\t}\n\t\treturn formatNumber(value, this.locale, this.decimalConf());\n\t});\n\n\tprotected inputId = `time-picker-part-${nextId++}`;\n\n\tconstructor(@Inject(LOCALE_ID) private locale: string) {}\n\n\tarrowKeyPressed(event: KeyboardEvent, isUpArrow: boolean): void {\n\t\tevent.preventDefault();\n\t\tthis.inputControlClick.emit(isUpArrow ? 'up' : 'down');\n\t}\n\n\tkeysInputHandler(event: Event): void {\n\t\tevent.preventDefault();\n\n\t\tif (!(event.target instanceof HTMLInputElement) || !(event instanceof InputEvent)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (event.data && /\\D+/.test(event.data)) {\n\t\t\tevent.target.value = String(this.value());\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = event.target.value;\n\n\t\tlet val = value.slice(-2) || '00';\n\n\t\tif (this.max() && Number(val) * 10 > this.max()) {\n\t\t\tthis.moveRequest(event, 'next');\n\t\t}\n\n\t\tif (this.max() && Number(val) > this.max()) {\n\t\t\tval = value.slice(-1);\n\t\t}\n\n\t\tevent.target.value = val;\n\t\tthis.value.set(Number(val));\n\t}\n\n\tclearField(event: Event): void {\n\t\tif (event instanceof KeyboardEvent) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tthis.value.set(0);\n\t}\n\n\tclickHandler(event: MouseEvent) {\n\t\tevent.preventDefault();\n\t}\n\n\tup(): void {\n\t\tthis.inputControlClick.emit('up');\n\t}\n\n\tdown(): void {\n\t\tthis.inputControlClick.emit('down');\n\t}\n\n\tkeydownHandler(event: KeyboardEvent): void {\n\t\tswitch (event.key) {\n\t\t\tcase 'ArrowLeft':\n\t\t\t\tthis.moveRequest(event, 'prev');\n\t\t\t\tbreak;\n\t\t\tcase 'H':\n\t\t\tcase 'h':\n\t\t\tcase ':':\n\t\t\tcase 'ArrowRight':\n\t\t\t\tthis.moveRequest(event, 'next');\n\t\t\t\tbreak;\n\t\t\tcase 'Delete':\n\t\t\tcase 'Backspace':\n\t\t\t\tthis.clearField(event);\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\tthis.arrowKeyPressed(event, true);\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowDown':\n\t\t\t\tthis.arrowKeyPressed(event, false);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tmoveRequest(event: Event, direction: 'prev' | 'next'): void {\n\t\tevent.preventDefault();\n\n\t\tif (direction === 'prev') {\n\t\t\tthis.prevRequest.emit();\n\t\t} else {\n\t\t\tthis.nextRequest.emit();\n\t\t}\n\t}\n\n\tfocus(): void {\n\t\tif (this.timePickerInput) {\n\t\t\tthis.timePickerInput.nativeElement.focus();\n\t\t}\n\t}\n}\n","<div class=\"timePicker-fieldset-group-textfield\">\n\t<label class=\"formLabel u-mask\" id=\"{{inputId}}-label\" for=\"{{inputId}}-input\">{{ label() }}</label>\n\t<div class=\"timePicker-fieldset-group-textfield\">\n\t\t<input\n\t\t\t#timePickerInput\n\t\t\ttype=\"text\"\n\t\t\tluInput\n\t\t\tluInputStandalone\n\t\t\tinputmode=\"numeric\"\n\t\t\tid=\"{{inputId}}-input\"\n\t\t\tclass=\"timePicker-fieldset-group-textfield-input\"\n\t\t\tattr.aria-labelledby=\"{{inputId}}-label\"\n\t\t\tautocomplete=\"off\"\n\t\t\t[value]=\"hideValue() ? null : value()\"\n\t\t\t(input)=\"keysInputHandler($event)\"\n\t\t\t(click)=\"clickHandler($event)\"\n\t\t\t(keydown)=\"keydownHandler($event)\"\n\t\t\t(blur)=\"touched.emit()\"\n\t\t\t(focus)=\"timePickerInput.select()\"\n\t\t/>\n\t\t<span aria-hidden=\"true\" class=\"timePicker-fieldset-group-textfield-display\">{{ valueLabel() }}</span>\n\t</div>\n\t@if (displayArrows()) {\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"up()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t</button>\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"down()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t</button>\n\t}\n</div>\n","import { ISO8601Duration } from '../core/date-primitives';\n\nexport type DurationChangeEvent = {\n\tpreviousValue: ISO8601Duration | null;\n\tvalue: ISO8601Duration;\n} & (\n\t| {\n\t\t\tsource: 'input' | 'paste';\n\t }\n\t| { source: 'control'; part: 'minutes' | 'hours'; direction: 'up' | 'down' }\n);\n\nexport const DEFAULT_TIME_DECIMAL_PIPE_FORMAT = '2.0-0';\n","export const Translations = {\n\ten: {\n\t\ttimePickerHours: 'hours',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutes',\n\t},\n\tde: {\n\t\ttimePickerHours: 'Stunden',\n\t\ttimePickerTimeSeparator: 'Std.',\n\t\ttimePickerMinutes: 'Minuten',\n\t},\n\tfr: {\n\t\ttimePickerHours: 'heures',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutes',\n\t},\n\tit: {\n\t\ttimePickerHours: 'ore',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuti',\n\t},\n\tnl: {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\t'nl-BE': {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\tes: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n\tpt: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_DURATION_PICKER_TRANSLATIONS = new InjectionToken('LuDurationPickerTranslations', {\n\tfactory: () => luDurationPickerTranslations,\n});\n\nexport type DurationPickerTranslations = {\n\ttimePickerHours: string;\n\ttimePickerTimeSeparator: string;\n\ttimePickerMinutes: string;\n};\n\nexport const luDurationPickerTranslations: LuTranslation<DurationPickerTranslations> = Translations;\n","import { NgClass } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, forwardRef, Input, input, model, output, ViewEncapsulation } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { BasePickerComponent } from '../core/base-picker.component';\nimport { ISO8601Duration } from '../core/date-primitives';\nimport { createDurationFromHoursAndMinutes, getHoursPartFromDuration, getMinutesPartFromDuration, isISO8601Duration, isoDurationToDateFnsDuration, isoDurationToSeconds } from '../core/duration.utils';\nimport { ceilToNearest, circularize, floorToNearest, roundToNearest } from '../core/math.utils';\nimport { isNil, isNotNil, PickerControlDirection } from '../core/misc.utils';\nimport { TimePickerPartComponent } from '../core/time-picker-part.component';\nimport { DEFAULT_TIME_DECIMAL_PIPE_FORMAT, DurationChangeEvent } from './duration-picker.model';\nimport { LU_DURATION_PICKER_TRANSLATIONS } from './duration-picker.translate';\n\n@Component({\n\tselector: 'lu-duration-picker',\n\tstandalone: true,\n\timports: [TimePickerPartComponent, NgClass],\n\ttemplateUrl: './duration-picker.component.html',\n\tstyleUrls: ['./duration-picker.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => DurationPickerComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class DurationPickerComponent extends BasePickerComponent {\n\tprotected intl = getIntl(LU_DURATION_PICKER_TRANSLATIONS);\n\n\tvalue = model<ISO8601Duration>('PT0S');\n\tmax = input<ISO8601Duration>('PT99H');\n\n\tdisplayArrows = input(false, { transform: booleanAttribute });\n\n\t@Input() label: string;\n\n\thideZeroValue = input(false, { transform: booleanAttribute });\n\n\tdurationChange = output<DurationChangeEvent>();\n\n\tprotected hours = computed(() => getHoursPartFromDuration(this.value()));\n\tprotected minutes = computed(() => getMinutesPartFromDuration(this.value()));\n\tprotected shouldHideValue = computed(() => this.hideZeroValue() && this.hours() === 0 && this.minutes() === 0);\n\n\tprotected pickerClasses = computed(() => {\n\t\treturn {\n\t\t\ttimePicker: true,\n\t\t\t'mod-stepper': this.displayArrows(),\n\t\t\t'mod-stepperHover': this.displayArrows(),\n\t\t\t[`mod-${this.size()}`]: Boolean(this.size()),\n\t\t};\n\t});\n\tprotected fieldsetSuffixClasses = computed(() => {\n\t\treturn {\n\t\t\t'timePicker-fieldset-groupSeparator': true,\n\t\t\t'u-visibilityHidden': this.shouldHideValue(),\n\t\t};\n\t});\n\tprotected separator = this.intl.timePickerTimeSeparator;\n\n\tprotected hoursDecimalConf = DEFAULT_TIME_DECIMAL_PIPE_FORMAT;\n\n\twriteValue(value: ISO8601Duration): void {\n\t\tthis.value.set(value || 'PT0S');\n\t}\n\n\tsetDisabledState?(isDisabled: boolean): void {\n\t\tthis.disabled.set(isDisabled);\n\t}\n\n\tprotected hoursInputHandler(value: number | '––'): void {\n\t\tthis.setTime({\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: createDurationFromHoursAndMinutes(+value, this.minutes()),\n\t\t\tsource: 'input',\n\t\t});\n\t}\n\n\tprotected minutesInputHandler(value: number | '––'): void {\n\t\tthis.setTime({\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: createDurationFromHoursAndMinutes(this.hours(), +value),\n\t\t\tsource: 'input',\n\t\t});\n\t}\n\n\tprotected copyHandler(event: ClipboardEvent): void {\n\t\tevent.preventDefault();\n\t\t// write value to clipboard\n\t\tconst value = this.value();\n\t\tif (isNotNil(value)) {\n\t\t\tevent.clipboardData?.setData('text/plain', value);\n\t\t}\n\t}\n\n\tprotected pasteHandler(event: ClipboardEvent): void {\n\t\tevent.preventDefault();\n\t\tconst pastedValue = event.clipboardData?.getData('text/plain');\n\t\tif (isNotNil(pastedValue)) {\n\t\t\tlet value: ISO8601Duration;\n\t\t\t// If it's an iso duration, handle as-is\n\t\t\tif (isISO8601Duration(pastedValue)) {\n\t\t\t\tvalue = pastedValue;\n\t\t\t}\n\t\t\tif (/\\d?\\dh\\d\\d/.test(pastedValue)) {\n\t\t\t\tconst split = pastedValue.split('h');\n\t\t\t\tvalue = createDurationFromHoursAndMinutes(+split[0], +split[1]);\n\t\t\t}\n\t\t\tif (/\\d?\\d:\\d\\d/.test(pastedValue)) {\n\t\t\t\tconst split = pastedValue.split(':');\n\t\t\t\tvalue = createDurationFromHoursAndMinutes(+split[0], +split[1]);\n\t\t\t}\n\t\t\tif (value) {\n\t\t\t\tthis.durationChange.emit({\n\t\t\t\t\tpreviousValue: this.value(),\n\t\t\t\t\tsource: 'paste',\n\t\t\t\t\tvalue,\n\t\t\t\t});\n\t\t\t\tthis.value.set(value);\n\t\t\t\tthis.onChange?.(value);\n\t\t\t}\n\t\t}\n\t}\n\n\toverride getHoursIncrement(): number {\n\t\tconst step = this.step();\n\t\tif (isNil(step)) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst { hours } = isoDurationToDateFnsDuration(step);\n\n\t\tif (hours === 0) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 24 % hours === 0 ? hours : 1;\n\t}\n\n\toverride getMinutesIncrement(): number | null {\n\t\tconst step = this.step();\n\t\tif (isNil(step)) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst { minutes } = isoDurationToDateFnsDuration(step);\n\n\t\tif (minutes === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn 60 % minutes === 0 ? minutes : 1;\n\t}\n\n\tprivate setTime(protoEvent: DurationChangeEvent): void {\n\t\tlet hoursPart = getHoursPartFromDuration(protoEvent.value);\n\t\tconst minutesPart = getMinutesPartFromDuration(protoEvent.value);\n\n\t\tif (hoursPart < 0) {\n\t\t\thoursPart = getHoursPartFromDuration(this.max());\n\t\t\tif (isoDurationToSeconds(createDurationFromHoursAndMinutes(hoursPart, minutesPart)) > isoDurationToSeconds(this.max())) {\n\t\t\t\t// If current value with minutes is > max, decrement hours again\n\t\t\t\thoursPart--;\n\t\t\t}\n\t\t} else if (hoursPart > getHoursPartFromDuration(this.max())) {\n\t\t\thoursPart = 0;\n\t\t}\n\n\t\tconst max = isoDurationToSeconds(this.max());\n\n\t\tconst candidateTimeAsSeconds = hoursPart * 3600 + minutesPart * 60;\n\n\t\tconst seconds = roundToNearest(circularize(candidateTimeAsSeconds, max), 60);\n\n\t\tconst hours = Math.floor(seconds / 3600);\n\t\tconst minutes = Math.floor((seconds % 3600) / 60);\n\n\t\tconst result = createDurationFromHoursAndMinutes(hours, minutes);\n\n\t\tthis.value.set(result);\n\t\tthis.onChange?.(result);\n\t\tthis.durationChange.emit({\n\t\t\t...protoEvent,\n\t\t\tvalue: result,\n\t\t});\n\t}\n\n\tprotected inputControlClickHandler(part: 'hours' | 'minutes', direction: PickerControlDirection): void {\n\t\tconst val = this.value() ?? 'PT0S';\n\t\tconst hoursPart = getHoursPartFromDuration(val);\n\t\tconst minutesPart = getMinutesPartFromDuration(val);\n\n\t\tconst selectedPart = part === 'hours' ? hoursPart : minutesPart;\n\t\tconst selectedIncrement = part === 'hours' ? this.hoursIncrement() : this.minutesIncrement();\n\t\tlet modifiedVal: number;\n\n\t\tif (selectedIncrement === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (direction === 'up') {\n\t\t\tmodifiedVal = floorToNearest(selectedPart + selectedIncrement, selectedIncrement);\n\t\t} else {\n\t\t\tmodifiedVal = ceilToNearest(selectedPart - selectedIncrement, selectedIncrement);\n\t\t}\n\n\t\tconst newTime = part === 'hours' ? createDurationFromHoursAndMinutes(modifiedVal, minutesPart) : createDurationFromHoursAndMinutes(hoursPart, modifiedVal);\n\n\t\tthis.setTime({\n\t\t\tsource: 'control',\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: newTime,\n\t\t\tpart,\n\t\t\tdirection,\n\t\t});\n\t}\n\n\tpublic focus() {\n\t\tif (isNotNil(this.hoursPart)) {\n\t\t\tthis.focusPart('hours');\n\t\t}\n\t}\n}\n","<div [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></legend>\n\t\t<lu-time-picker-part\n\t\t\t#hoursPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[label]=\"intl.timePickerHours\"\n\t\t\t[value]=\"hours()\"\n\t\t\t[decimalConf]=\"hoursDecimalConf\"\n\t\t\t[hideValue]=\"shouldHideValue()\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t(valueChange)=\"hoursInputHandler($event)\"\n\t\t\t(nextRequest)=\"focusPart('minutes')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('hours', $event)\"\n\t\t/>\n\t\t<div aria-hidden=\"true\" [ngClass]=\"fieldsetSuffixClasses()\">{{ separator }}</div>\n\t\t<lu-time-picker-part\n\t\t\t#minutesPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[label]=\"intl.timePickerMinutes\"\n\t\t\t[value]=\"minutes()\"\n\t\t\t[max]=\"59\"\n\t\t\t[hideValue]=\"shouldHideValue()\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t[disabled]=\"disabled() || !minutesIncrement()\"\n\t\t\t(valueChange)=\"minutesInputHandler($event)\"\n\t\t\t(prevRequest)=\"focusPart('hours')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('minutes', $event)\"\n\t\t/>\n\t</fieldset>\n</div>\n","import { ISO8601Time } from './date-primitives';\n\nexport const castToIsoTime = (str: string) => str as ISO8601Time;\n\nexport const convertStringToIsoTime = (time: string): ISO8601Time => {\n\tif (/^\\d{1,2}:\\d{2}:\\d{2}$/.test(time)) {\n\t\treturn castToIsoTime(time);\n\t}\n\n\tif (/^\\d{1,2}:\\d{2}$/.test(time)) {\n\t\treturn castToIsoTime(`${time}:00`);\n\t}\n\n\tif (/^\\d{1,2}h\\d{2}$/.test(time)) {\n\t\treturn convertStringToIsoTime(time.replace('h', ':'));\n\t}\n\n\tthrow new Error(`Invalid time format: ${time}`);\n};\n\nexport const createIsoTimeFromHoursAndMinutes = (hours: number, minutes: number, seconds: number = 0): ISO8601Time => {\n\tconst hoursStr = hours.toString().padStart(2, '0');\n\tconst minutesStr = minutes.toString().padStart(2, '0');\n\tconst secondsStr = seconds.toString().padStart(2, '0');\n\n\treturn `${hoursStr}:${minutesStr}:${secondsStr}`;\n};\n\nexport const isoTimeToSeconds = (time: ISO8601Time): number => {\n\treturn getHoursPartFromIsoTime(time) * 3600 + getMinutesPartFromIsoTime(time) * 60 + getSecondsPartFromIsoTime(time);\n};\n\nexport const getHoursPartFromIsoTime = (time: ISO8601Time): number => Number(time.split(':')[0]) || 0;\n\nexport const getMinutesPartFromIsoTime = (time: ISO8601Time): number => Number(time.split(':')[1]) || 0;\nexport const getSecondsPartFromIsoTime = (time: ISO8601Time): number => Number(time.split(':')[2]) || 0;\n\nexport const getHoursDisplayPartFromIsoTime = (time: ISO8601Time, ampm = false): number | '––' => {\n\tconst hours = time.split(':')[0];\n\tif (hours === '––') {\n\t\treturn hours;\n\t}\n\tif (ampm) {\n\t\t// Most consistent impl is to create a date and ask date-fns\n\t\treturn formatAMPM(Number(hours)).hours;\n\t}\n\treturn Number(hours);\n};\n\nexport const formatAMPM = (inputHours: number): { hours: number; suffix: 'AM' | 'PM' } => {\n\tlet hours = inputHours;\n\tconst suffix = hours >= 12 ? 'PM' : 'AM';\n\thours = hours % 12;\n\thours = hours ? hours : 12; // 0 should be 12\n\treturn {\n\t\thours,\n\t\tsuffix,\n\t};\n};\n\nexport const getMinutesDisplayPartFromIsoTime = (time: ISO8601Time): number | '––' => {\n\tconst minutes = time.split(':')[1];\n\tif (minutes === '––') {\n\t\treturn minutes;\n\t}\n\treturn Number(minutes);\n};\n","import { ISO8601Time } from '../core/date-primitives';\n\nexport type TimeChangeEvent = {\n\tpreviousValue: ISO8601Time | null;\n\tvalue: ISO8601Time;\n} & (\n\t| {\n\t\t\tsource: 'input' | 'paste';\n\t }\n\t| { source: 'control'; part: 'minutes' | 'hours'; direction: 'up' | 'down' }\n);\nexport const DEFAULT_MIN_TIME: ISO8601Time = '--:--:--';\n\nexport const DEFAULT_TIME_DECIMAL_PIPE_FORMAT = '2.0-0';\n","export const Translations = {\n\ten: {\n\t\ttimePickerHours: 'hours',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutes',\n\t},\n\tde: {\n\t\ttimePickerHours: 'Stunden',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'Minuten',\n\t},\n\tfr: {\n\t\ttimePickerHours: 'heures',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutes',\n\t},\n\tit: {\n\t\ttimePickerHours: 'ore',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuti',\n\t},\n\tnl: {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\t'nl-BE': {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\tes: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n\tpt: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_TIME_PICKER_TRANSLATIONS = new InjectionToken('LuTimePickerTranslations', {\n\tfactory: () => luTimePickerTranslations,\n});\n\nexport type TimePickerTranslations = {\n\ttimePickerHours: string;\n\ttimePickerTimeSeparator: string;\n\ttimePickerMinutes: string;\n};\n\nexport const luTimePickerTranslations: LuTranslation<TimePickerTranslations> = Translations;\n","import { NgClass } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, ElementRef, forwardRef, inject, Input, input, LOCALE_ID, model, output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { BasePickerComponent } from '../core/base-picker.component';\nimport { ISO8601Time } from '../core/date-primitives';\nimport {\n\tconvertStringToIsoTime,\n\tcreateIsoTimeFromHoursAndMinutes,\n\tformatAMPM,\n\tgetHoursDisplayPartFromIsoTime,\n\tgetHoursPartFromIsoTime,\n\tgetMinutesDisplayPartFromIsoTime,\n\tgetMinutesPartFromIsoTime,\n\tisoTimeToSeconds,\n} from '../core/date.utils';\nimport { isoDurationToDateFnsDuration } from '../core/duration.utils';\nimport { ceilToNearest, circularize, floorToNearest, roundToNearest } from '../core/math.utils';\nimport { isNil, isNotNil, PickerControlDirection } from '../core/misc.utils';\nimport { TimePickerPartComponent } from '../core/time-picker-part.component';\nimport { DEFAULT_MIN_TIME, DEFAULT_TIME_DECIMAL_PIPE_FORMAT, TimeChangeEvent } from './time-picker.model';\nimport { LU_TIME_PICKER_TRANSLATIONS } from './time-picker.translate';\nimport { RepeatOnHoldDirective } from '../core/repeat-on-hold.directive';\n\nconst MAX_TIME = '23:59:59';\n\n@Component({\n\tselector: 'lu-time-picker',\n\tstandalone: true,\n\timports: [TimePickerPartComponent, NgClass, FormsModule, RepeatOnHoldDirective],\n\ttemplateUrl: './time-picker.component.html',\n\tstyleUrls: ['./time-picker.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => TimePickerComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class TimePickerComponent extends BasePickerComponent {\n\tprotected intl = getIntl(LU_TIME_PICKER_TRANSLATIONS);\n\tprotected localeId = inject(LOCALE_ID);\n\n\t@ViewChild('anteMeridiemRef')\n\tanteMeridiemRef: ElementRef<HTMLInputElement>;\n\n\t@ViewChild('postMeridiemRef')\n\tpostMeridiemRef: ElementRef<HTMLInputElement>;\n\n\tvalue = model<ISO8601Time>('--:--:--');\n\tmax = input<ISO8601Time>(MAX_TIME);\n\n\tdisplayArrows = input(false, { transform: booleanAttribute });\n\n\tforceMeridiemDisplay = input<boolean | null>(null);\n\n\tenableMeridiemDisplay = computed(() => {\n\t\tif (this.forceMeridiemDisplay() !== null) {\n\t\t\treturn this.forceMeridiemDisplay();\n\t\t}\n\t\t// We can't ask the API if time should include meridiem so the easiest was to just make it format a static date.\n\t\treturn Intl.DateTimeFormat(this.localeId, {\n\t\t\ttimeStyle: 'short',\n\t\t\tdateStyle: 'short',\n\t\t})\n\t\t\t.format(new Date('1/1/1 17:00:00'))\n\t\t\t.includes('PM');\n\t});\n\n\t@Input() label: string;\n\n\ttimeChange = output<TimeChangeEvent>();\n\n\tprotected hoursDisplay = computed(() => getHoursDisplayPartFromIsoTime(this.value(), this.enableMeridiemDisplay()));\n\tprotected minutesDisplay = computed(() => getMinutesDisplayPartFromIsoTime(this.value()));\n\n\tprotected hours = computed(() => getHoursPartFromIsoTime(this.value()));\n\tprotected minutes = computed(() => getMinutesPartFromIsoTime(this.value()));\n\tprotected pickerClasses = computed(() => {\n\t\treturn {\n\t\t\ttimePicker: true,\n\t\t\t'mod-stepper': this.displayArrows(),\n\t\t\t'mod-stepperHover': this.displayArrows(),\n\t\t\t[`mod-${this.size()}`]: Boolean(this.size()),\n\t\t};\n\t});\n\tprotected separator = this.intl.timePickerTimeSeparator;\n\n\tprotected hoursDecimalConf = DEFAULT_TIME_DECIMAL_PIPE_FORMAT;\n\n\tprotected maxHours = computed(() => {\n\t\tif (this.enableMeridiemDisplay()) {\n\t\t\treturn 12;\n\t\t}\n\t\treturn getHoursPartFromIsoTime(this.max() ?? '23:59:59');\n\t});\n\n\tprotected ampmDisplay = computed(() => {\n\t\treturn formatAMPM(this.hours()).suffix;\n\t});\n\n\tprotected override focusPart(type: 'hours' | 'minutes' | 'meridiem') {\n\t\tif (type === 'meridiem') {\n\t\t\tthis.ampmDisplay() === 'AM' ? this.anteMeridiemRef?.nativeElement?.focus() : this.postMeridiemRef?.nativeElement?.focus();\n\t\t} else {\n\t\t\tsuper.focusPart(type);\n\t\t}\n\t}\n\n\twriteValue(value: ISO8601Time): void {\n\t\tthis.value.set(value || '––:––:––');\n\t}\n\n\tsetDisabledState?(isDisabled: boolean): void {\n\t\tthis.disabled.set(isDisabled);\n\t}\n\n\tprotected hoursInputHandler(value: number | '––'): void {\n\t\tthis.setTime({\n\t\t\tpreviousValue: this.value(),\n\t\t\t// Mostly for compiler because we never set the time to –– with input handler\n\t\t\tvalue: createIsoTimeFromHoursAndMinutes(+value, this.minutes()),\n\t\t\tsource: 'input',\n\t\t});\n\t}\n\n\tprotected minutesInputHandler(value: number | '––'): void {\n\t\tthis.setTime({\n\t\t\tpreviousValue: this.value(),\n\t\t\t// Mostly for compiler because we never set the time to –– with input handler\n\t\t\tvalue: createIsoTimeFromHoursAndMinutes(this.hours(), +value),\n\t\t\tsource: 'input',\n\t\t});\n\t}\n\n\tprotected copyHandler(event: ClipboardEvent): void {\n\t\tevent.preventDefault();\n\t\t// write value to clipboard\n\t\tconst value = this.value();\n\t\tif (isNotNil(value)) {\n\t\t\tevent.clipboardData?.setData('text/plain', value);\n\t\t}\n\t}\n\n\tprotected pasteHandler(event: ClipboardEvent): void {\n\t\tevent.preventDefault();\n\t\tconst pastedValue = event.clipboardData?.getData('text/plain');\n\t\tif (isNotNil(pastedValue)) {\n\t\t\ttry {\n\t\t\t\tconst value = convertStringToIsoTime(pastedValue);\n\t\t\t\tthis.timeChange.emit({\n\t\t\t\t\tpreviousValue: this.value(),\n\t\t\t\t\tsource: 'paste',\n\t\t\t\t\tvalue,\n\t\t\t\t});\n\t\t\t\tthis.value.set(value);\n\t\t\t\tthis.onChange?.(value);\n\t\t\t} catch (e) {\n\t\t\t\t// do nothing\n\t\t\t}\n\t\t}\n\t}\n\n\toverride getHoursIncrement(): number {\n\t\tconst step = this.step();\n\t\tif (isNil(step)) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst { hours } = isoDurationToDateFnsDuration(step);\n\n\t\tif (hours === 0) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 24 % hours === 0 ? hours : 1;\n\t}\n\n\toverride getMinutesIncrement(): number | null {\n\t\tconst step = this.step();\n\t\tif (isNil(step)) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst { minutes } = isoDurationToDateFnsDuration(step);\n\n\t\tif (minutes === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn 60 % minutes === 0 ? minutes : 1;\n\t}\n\n\tprivate setTime(protoEvent: TimeChangeEvent): void {\n\t\tconst hoursPart = getHoursPartFromIsoTime(protoEvent.value);\n\t\tconst minutesPart = getMinutesPartFromIsoTime(protoEvent.value);\n\n\t\tconst max = isoTimeToSeconds(this.max());\n\n\t\tconst candidateTimeAsSeconds = hoursPart * 3600 + minutesPart * 60;\n\n\t\tconst seconds = roundToNearest(circularize(candidateTimeAsSeconds, max), 60);\n\n\t\tconst hours = Math.floor(seconds / 3600);\n\t\tconst minutes = Math.floor((seconds % 3600) / 60);\n\n\t\tconst result = createIsoTimeFromHoursAndMinutes(hours, minutes);\n\n\t\tthis.value.set(result);\n\t\tthis.onChange?.(result);\n\t\tthis.timeChange.emit({\n\t\t\t...protoEvent,\n\t\t\tvalue: result,\n\t\t});\n\t}\n\n\tprotected inputControlClickHandler(part: 'hours' | 'minutes', direction: PickerControlDirection): void {\n\t\tconst val = this.value() ?? DEFAULT_MIN_TIME;\n\t\tconst hoursPart = getHoursPartFromIsoTime(val);\n\t\tconst minutesPart = getMinutesPartFromIsoTime(val);\n\n\t\tconst selectedPart = part === 'hours' ? hoursPart : minutesPart;\n\t\tconst selectedIncrement = part === 'hours' ? this.hoursIncrement() : this.minutesIncrement();\n\t\tlet modifiedVal: number;\n\n\t\tif (selectedIncrement === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (direction === 'up') {\n\t\t\tmodifiedVal = floorToNearest(selectedPart + selectedIncrement, selectedIncrement);\n\t\t} else {\n\t\t\tmodifiedVal = ceilToNearest(selectedPart - selectedIncrement, selectedIncrement);\n\t\t}\n\n\t\tconst newTime = part === 'hours' ? createIsoTimeFromHoursAndMinutes(modifiedVal, minutesPart) : createIsoTimeFromHoursAndMinutes(hoursPart, modifiedVal);\n\n\t\tthis.setTime({\n\t\t\tsource: 'control',\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: newTime,\n\t\t\tpart,\n\t\t\tdirection,\n\t\t});\n\t}\n\n\tpublic focus() {\n\t\tif (isNotNil(this.hoursPart)) {\n\t\t\tthis.focusPart('hours');\n\t\t}\n\t}\n\n\tswitchMeridiem(newValue: 'AM' | 'PM') {\n\t\tlet hours = getHoursPartFromIsoTime(this.value());\n\t\tconst minutes = getMinutesPartFromIsoTime(this.value());\n\t\tif (newValue === 'PM') {\n\t\t\thours = circularize(hours + 12, 23);\n\t\t} else {\n\t\t\thours = circularize(hours - 12, 23);\n\t\t}\n\t\tthis.setTime({\n\t\t\tsource: 'input',\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: createIsoTimeFromHoursAndMinutes(hours, minutes),\n\t\t});\n\t}\n}\n","<div [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></legend>\n\t\t<lu-time-picker-part\n\t\t\t#hoursPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[label]=\"intl.timePickerHours\"\n\t\t\t[value]=\"hours()\"\n\t\t\t[display]=\"hoursDisplay()\"\n\t\t\t[max]=\"maxHours()\"\n\t\t\t[decimalConf]=\"hoursDecimalConf\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t(touched)=\"onTouched?.()\"\n\t\t\t(valueChange)=\"hoursInputHandler($event)\"\n\t\t\t(nextRequest)=\"focusPart('minutes')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('hours', $event)\"\n\t\t/>\n\t\t<div aria-hidden=\"true\" class=\"timePicker-fieldset-groupSeparator\">{{ separator }}</div>\n\t\t<lu-time-picker-part\n\t\t\t#minutesPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[label]=\"intl.timePickerMinutes\"\n\t\t\t[value]=\"minutesDisplay()\"\n\t\t\t[max]=\"59\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t(touched)=\"onTouched?.()\"\n\t\t\t[disabled]=\"disabled() || !minutesIncrement()\"\n\t\t\t(valueChange)=\"minutesInputHandler($event)\"\n\t\t\t(prevRequest)=\"focusPart('hours')\"\n\t\t\t(nextRequest)=\"focusPart('meridiem')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('minutes', $event)\"\n\t\t/>\n\t\t@if (enableMeridiemDisplay()) {\n\t\t<div\n\t\t\tclass=\"timePicker-fieldset-meridiem\"\n\t\t\t(copy)=\"copyHandler($event)\"\n\t\t\t(paste)=\"pasteHandler($event)\"\n\t\t\t(keydown.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.P)=\"postMeridiemRef.click()\"\n\t\t\t(keydown.shift.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.shift.P)=\"postMeridiemRef.click()\"\n\t\t\t(click)=\"ampmDisplay() === 'AM' ? anteMeridiemRef.focus() : postMeridiemRef.focus()\"\n\t\t>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-ante\">\n\t\t\t\t<label for=\"anteMeridiem\">AM</label>\n\t\t\t\t<input\n\t\t\t\t\t#anteMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tname=\"meridiem\"\n\t\t\t\t\tid=\"anteMeridiem\"\n\t\t\t\t\tvalue=\"AM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-post\">\n\t\t\t\t<label for=\"postMeridiem\">PM</label>\n\t\t\t\t<input\n\t\t\t\t\t#postMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tname=\"meridiem\"\n\t\t\t\t\tid=\"postMeridiem\"\n\t\t\t\t\tvalue=\"PM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t@if (displayArrows()) {\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t\t\t</button>\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t\t\t</button>\n\t\t\t}\n\t\t</div>\n\t\t}\n\t</fieldset>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["DEFAULT_TIME_DECIMAL_PIPE_FORMAT","Translations"],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-time.mjs","sources":["../../../packages/ng/time/core/base-picker.component.ts","../../../packages/ng/time/core/misc.utils.ts","../../../packages/ng/time/core/duration.utils.ts","../../../packages/ng/time/core/math.utils.ts","../../../packages/ng/time/core/repeat-on-hold.directive.ts","../../../packages/ng/time/core/time-picker-part.component.ts","../../../packages/ng/time/core/time-picker-part.component.html","../../../packages/ng/time/duration-picker/duration-picker.model.ts","../../../packages/ng/time/duration-picker/translations.ts","../../../packages/ng/time/duration-picker/duration-picker.translate.ts","../../../packages/ng/time/duration-picker/duration-picker.component.ts","../../../packages/ng/time/duration-picker/duration-picker.component.html","../../../packages/ng/time/core/date.utils.ts","../../../packages/ng/time/time-picker/time-picker.model.ts","../../../packages/ng/time/time-picker/translations.ts","../../../packages/ng/time/time-picker/time-picker.translate.ts","../../../packages/ng/time/time-picker/time-picker.component.ts","../../../packages/ng/time/time-picker/time-picker.component.html","../../../packages/ng/time/lucca-front-ng-time.ts"],"sourcesContent":["import { Component, computed, input, model, ViewChild } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { ISO8601Duration, ISO8601Time } from './date-primitives';\nimport { TimePickerPartComponent } from './time-picker-part.component';\n\n@Component({\n\ttemplate: '',\n})\nexport abstract class BasePickerComponent implements ControlValueAccessor {\n\tonChange: (value: ISO8601Time | ISO8601Duration) => void;\n\tonTouched: () => void;\n\n\tstep = input<ISO8601Duration>(null);\n\n\tdisabled = model(false);\n\n\tsize = input<'S' | 'M'>();\n\n\t@ViewChild('hoursPart')\n\thoursPart?: TimePickerPartComponent;\n\n\t@ViewChild('minutesPart')\n\tminutesPart?: TimePickerPartComponent;\n\n\tprotected hoursIncrement = computed(() => this.getHoursIncrement());\n\tprotected minutesIncrement = computed(() => this.getMinutesIncrement());\n\n\tregisterOnChange(fn: () => void): void {\n\t\tthis.onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis.onTouched = fn;\n\t}\n\n\tabstract writeValue(value: ISO8601Time | ISO8601Duration): void;\n\n\tabstract getHoursIncrement(): number;\n\n\tabstract getMinutesIncrement(): number;\n\n\tprotected focusPart(type: 'hours' | 'minutes') {\n\t\tthis.onTouched?.();\n\t\tif (type === 'hours') {\n\t\t\tif (this.hoursIncrement() === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.hoursPart?.focus();\n\t\t}\n\t\tif (type === 'minutes') {\n\t\t\tif (this.minutesIncrement() === 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.minutesPart?.focus();\n\t\t}\n\t}\n}\n","export const isNil = <T>(value: T | null | undefined): value is null | undefined => typeof value === 'undefined' || value === null;\n\nexport const isNotNil = <T>(value: T): value is NonNullable<T> => !isNil(value);\n\nexport type PickerControlDirection = 'up' | 'down';\n","import { Duration } from 'date-fns';\nimport { ISO8601Duration } from './date-primitives';\nimport { isNotNil } from './misc.utils';\n\nexport type NonNullableDateFnsDuration = {\n\tyears: number;\n\tmonths: number;\n\tdays: number;\n\thours: number;\n\tminutes: number;\n\tseconds: number;\n};\n\ntype DateFnsDuration = Duration;\n\nconst ISO8601DurationRegExp =\n\t/^(?<sign>-)?P(?:(?<years>-?\\d+)Y)?(?:(?<months>-?\\d+)M)?(?:(?<weeks>-?\\d+)W)?(?:(?<days>-?\\d+)D)?(?:T(?:(?<hours>-?\\d+)H)?(?:(?<minutes>-?\\d+)M)?(?:(?<seconds>-?\\d+(?:\\.\\d+)?)S)?)?$/;\n\n// TODO memoize\nexport const isoDurationToDateFnsDuration = (isoDuration: ISO8601Duration): NonNullableDateFnsDuration => {\n\tconst matches = ISO8601DurationRegExp.exec(isoDuration);\n\n\tconst groups = matches?.groups;\n\n\tif (!groups) {\n\t\tthrow new Error(`Invalid ISO 8601 duration: ${isoDuration}`);\n\t}\n\n\tconst withSign = groups['sign'] === '-' ? -1 : 1;\n\n\tconst result: NonNullableDateFnsDuration = {\n\t\tyears: groups['years'] ? Number(groups['years']) : 0,\n\t\tmonths: groups['months'] ? Number(groups['months']) : 0,\n\t\tdays: groups['days'] ? Number(groups['days']) : 0,\n\t\thours: groups['hours'] ? Number(groups['hours']) : 0,\n\t\tminutes: groups['minutes'] ? Number(groups['minutes']) : 0,\n\t\tseconds: groups['seconds'] ? Number(groups['seconds']) : 0,\n\t};\n\n\tresult.years *= withSign;\n\tresult.months *= withSign;\n\tresult.days *= withSign;\n\tresult.hours *= withSign;\n\tresult.minutes *= withSign;\n\tresult.seconds *= withSign;\n\n\treturn result;\n};\n\nexport function isISO8601Duration(value: string): value is ISO8601Duration {\n\treturn ISO8601DurationRegExp.test(value);\n}\n\nexport const dateFnsDurationToSeconds = (durationFns: DateFnsDuration): number => {\n\tconst { years, months } = durationFns;\n\tlet { days, hours, minutes, seconds } = durationFns;\n\n\tif ((isNotNil(years) && years !== 0) || (isNotNil(months) && months !== 0)) {\n\t\tthrow new Error('years and months are not supported');\n\t}\n\n\tdays = days || 0;\n\thours = hours || 0;\n\tminutes = minutes || 0;\n\tseconds = seconds || 0;\n\n\treturn days * 24 * 60 * 60 + hours * 60 * 60 + minutes * 60 + seconds;\n};\n\nexport const isoDurationToSeconds = (duration: ISO8601Duration): number => {\n\tconst durationFns = isoDurationToDateFnsDuration(duration);\n\n\treturn dateFnsDurationToSeconds(durationFns);\n};\n\nexport const getHoursPartFromDuration = (duration: ISO8601Duration): number => {\n\treturn Math.floor(isoDurationToSeconds(duration) / 3600);\n};\n\nexport const getMinutesPartFromDuration = (duration: ISO8601Duration): number => {\n\treturn Math.floor((isoDurationToSeconds(duration) % 3600) / 60);\n};\n\nexport const createDurationFromHoursAndMinutes = (hours: number, minutes: number): ISO8601Duration => {\n\treturn `PT${hours}H${minutes}M`;\n};\n","export const roundToNearest = (value: number, step: number) => Math.round(value / step) * step;\n\nexport const floorToNearest = (value: number, step: number) => Math.floor(value / step) * step;\n\nexport const ceilToNearest = (value: number, step: number) => Math.ceil(value / step) * step;\n\n/**\n * Returns the value of n circularized between 0 and max.\n * Given n = 0 and max = 10, returns 0.\n * Given n = 10 and max = 10, returns 10.\n * Given n = 11 and max = 10, returns 1.\n * Given n = -1 and max = 10, returns 9.\n */\nexport const circularize = (n: number, max: number) => {\n\tif (n % max === 0) {\n\t\treturn n === 0 ? 0 : max;\n\t}\n\treturn ((n % max) + max) % max;\n};\n","import { Directive, ElementRef, EventEmitter, OnDestroy, OnInit, Output } from '@angular/core';\n\nconst INITIAL_INTERVAL = 500;\n\n@Directive({\n\tselector: '[luRepeatOnHold]',\n\tstandalone: true,\n})\nexport class RepeatOnHoldDirective implements OnDestroy, OnInit {\n\t@Output() hold = new EventEmitter<void>();\n\n\tonMouseDown = () => {\n\t\tif (this.startTime !== undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.hold.emit();\n\t\tthis.animationFrameId = window.requestAnimationFrame(this.animationFrameHandler);\n\n\t\twindow.removeEventListener('mouseup', this.onWindowMouseUp);\n\t\twindow.addEventListener('mouseup', this.onWindowMouseUp);\n\t};\n\n\tonWindowMouseUp = () => {\n\t\tthis.cancelAnimationFrame();\n\t};\n\n\tconstructor(private elementRef: ElementRef<HTMLElement>) {}\n\n\tngOnInit(): void {\n\t\tthis.elementRef.nativeElement.addEventListener('mousedown', this.onMouseDown);\n\t}\n\n\tinterval = INITIAL_INTERVAL;\n\tstartTime: number | undefined = undefined;\n\tpreviousTime: number | undefined = undefined;\n\tanimationFrameId: number | undefined = undefined;\n\n\tprivate cancelAnimationFrame(): void {\n\t\tif (this.animationFrameId) {\n\t\t\tthis.previousTime = undefined;\n\t\t\tthis.interval = INITIAL_INTERVAL;\n\t\t\tthis.startTime = undefined;\n\t\t\twindow.cancelAnimationFrame(this.animationFrameId);\n\t\t\tthis.animationFrameId = undefined;\n\t\t}\n\t}\n\n\tprivate animationFrameHandler = (time: number): void => {\n\t\tif (this.startTime === undefined) {\n\t\t\tthis.startTime = time;\n\t\t}\n\n\t\tif (this.previousTime === undefined) {\n\t\t\tthis.previousTime = time;\n\t\t}\n\n\t\tif (time - this.previousTime > this.interval) {\n\t\t\tthis.hold.emit();\n\t\t\tthis.previousTime = time;\n\t\t}\n\n\t\tif (time - this.startTime > 1000) {\n\t\t\tthis.interval = 200;\n\t\t}\n\n\t\tif (time - this.startTime > 2000) {\n\t\t\tthis.interval = 50;\n\t\t}\n\n\t\tthis.animationFrameId = window.requestAnimationFrame(this.animationFrameHandler);\n\t};\n\n\tngOnDestroy(): void {\n\t\tthis.elementRef.nativeElement.removeEventListener('mousedown', this.onMouseDown);\n\t\twindow.removeEventListener('mouseup', this.onWindowMouseUp);\n\t\tthis.cancelAnimationFrame();\n\t}\n}\n","import { DecimalPipe, formatNumber } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tElementRef,\n\tEventEmitter,\n\tInject,\n\tLOCALE_ID,\n\tModelSignal,\n\tOutput,\n\tViewChild,\n\tbooleanAttribute,\n\tcomputed,\n\tinput,\n\tmodel,\n\tnumberAttribute,\n} from '@angular/core';\nimport { InputDirective } from '@lucca-front/ng/form-field';\nimport { PickerControlDirection } from './misc.utils';\nimport { RepeatOnHoldDirective } from './repeat-on-hold.directive';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-time-picker-part',\n\tstandalone: true,\n\timports: [RepeatOnHoldDirective, DecimalPipe, InputDirective],\n\ttemplateUrl: './time-picker-part.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TimePickerPartComponent {\n\tlabel = input('');\n\n\tdecimalConf = input('2.0-0');\n\n\tvalue: ModelSignal<number | '––'> = model('––');\n\n\tdisplay = input<number | '––'>();\n\n\tmax = input(0, {\n\t\ttransform: numberAttribute,\n\t});\n\n\tdisplayArrows = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tisReadonly = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\thideValue = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tdisabled = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\tfocused = input(false, {\n\t\ttransform: booleanAttribute,\n\t});\n\n\t@Output() prevRequest = new EventEmitter<void>();\n\t@Output() nextRequest = new EventEmitter<void>();\n\t@Output() inputControlClick = new EventEmitter<PickerControlDirection>();\n\t@Output() touched = new EventEmitter<void>();\n\n\t@ViewChild('timePickerInput') timePickerInput?: ElementRef<HTMLInputElement>;\n\n\tvalueLabel = computed(() => {\n\t\tif (this.hideValue()) {\n\t\t\treturn ' ';\n\t\t}\n\t\tif (this.display() !== undefined) {\n\t\t\treturn this.display();\n\t\t}\n\t\tconst value = this.value();\n\t\tif (value === '––') {\n\t\t\treturn value;\n\t\t}\n\t\treturn formatNumber(value, this.locale, this.decimalConf());\n\t});\n\n\tprotected inputId = `time-picker-part-${nextId++}`;\n\n\tconstructor(@Inject(LOCALE_ID) private locale: string) {}\n\n\tarrowKeyPressed(event: KeyboardEvent, isUpArrow: boolean): void {\n\t\tevent.preventDefault();\n\t\tthis.inputControlClick.emit(isUpArrow ? 'up' : 'down');\n\t}\n\n\tkeysInputHandler(event: Event): void {\n\t\tevent.preventDefault();\n\n\t\tif (!(event.target instanceof HTMLInputElement) || !(event instanceof InputEvent)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (event.data && /\\D+/.test(event.data)) {\n\t\t\tevent.target.value = String(this.value());\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = event.target.value;\n\n\t\tlet val = value.slice(-2) || '00';\n\n\t\tif (this.max() && Number(val) * 10 > this.max()) {\n\t\t\tthis.moveRequest(event, 'next');\n\t\t}\n\n\t\tif (this.max() && Number(val) > this.max()) {\n\t\t\tval = value.slice(-1);\n\t\t}\n\n\t\tevent.target.value = val;\n\t\tthis.value.set(Number(val));\n\t}\n\n\tclearField(event: Event): void {\n\t\tif (event instanceof KeyboardEvent) {\n\t\t\tevent.preventDefault();\n\t\t}\n\n\t\tthis.value.set(0);\n\t}\n\n\tclickHandler(event: MouseEvent) {\n\t\tevent.preventDefault();\n\t}\n\n\tup(): void {\n\t\tthis.inputControlClick.emit('up');\n\t}\n\n\tdown(): void {\n\t\tthis.inputControlClick.emit('down');\n\t}\n\n\tkeydownHandler(event: KeyboardEvent): void {\n\t\tswitch (event.key) {\n\t\t\tcase 'ArrowLeft':\n\t\t\t\tthis.moveRequest(event, 'prev');\n\t\t\t\tbreak;\n\t\t\tcase 'H':\n\t\t\tcase 'h':\n\t\t\tcase ':':\n\t\t\tcase 'ArrowRight':\n\t\t\t\tthis.moveRequest(event, 'next');\n\t\t\t\tbreak;\n\t\t\tcase 'Delete':\n\t\t\tcase 'Backspace':\n\t\t\t\tthis.clearField(event);\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowUp':\n\t\t\t\tthis.arrowKeyPressed(event, true);\n\t\t\t\tbreak;\n\t\t\tcase 'ArrowDown':\n\t\t\t\tthis.arrowKeyPressed(event, false);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tmoveRequest(event: Event, direction: 'prev' | 'next'): void {\n\t\tevent.preventDefault();\n\n\t\tif (direction === 'prev') {\n\t\t\tthis.prevRequest.emit();\n\t\t} else {\n\t\t\tthis.nextRequest.emit();\n\t\t}\n\t}\n\n\tfocus(): void {\n\t\tif (this.timePickerInput) {\n\t\t\tthis.timePickerInput.nativeElement.focus();\n\t\t}\n\t}\n}\n","<div class=\"timePicker-fieldset-group-textfield\">\n\t<label class=\"formLabel u-mask\" id=\"{{inputId}}-label\" for=\"{{inputId}}-input\">{{ label() }}</label>\n\t<div class=\"timePicker-fieldset-group-textfield\">\n\t\t<input\n\t\t\t#timePickerInput\n\t\t\ttype=\"text\"\n\t\t\tluInput\n\t\t\tluInputStandalone\n\t\t\tinputmode=\"numeric\"\n\t\t\tid=\"{{inputId}}-input\"\n\t\t\tclass=\"timePicker-fieldset-group-textfield-input\"\n\t\t\tattr.aria-labelledby=\"{{inputId}}-label\"\n\t\t\tautocomplete=\"off\"\n\t\t\t[value]=\"hideValue() ? null : value()\"\n\t\t\t(input)=\"keysInputHandler($event)\"\n\t\t\t(click)=\"clickHandler($event)\"\n\t\t\t(keydown)=\"keydownHandler($event)\"\n\t\t\t(blur)=\"touched.emit()\"\n\t\t\t(focus)=\"timePickerInput.select()\"\n\t\t/>\n\t\t<span aria-hidden=\"true\" class=\"timePicker-fieldset-group-textfield-display\">{{ valueLabel() }}</span>\n\t</div>\n\t@if (displayArrows()) {\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"up()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t</button>\n\t<button class=\"timePicker-fieldset-group-stepper\" type=\"button\" tabindex=\"-1\" aria-hidden=\"true\" luRepeatOnHold (hold)=\"down()\">\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t</button>\n\t}\n</div>\n","import { ISO8601Duration } from '../core/date-primitives';\n\nexport type DurationChangeEvent = {\n\tpreviousValue: ISO8601Duration | null;\n\tvalue: ISO8601Duration;\n} & (\n\t| {\n\t\t\tsource: 'input' | 'paste';\n\t }\n\t| { source: 'control'; part: 'minutes' | 'hours'; direction: 'up' | 'down' }\n);\n\nexport const DEFAULT_TIME_DECIMAL_PIPE_FORMAT = '2.0-0';\n","export const Translations = {\n\ten: {\n\t\ttimePickerHours: 'hours',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutes',\n\t},\n\tde: {\n\t\ttimePickerHours: 'Stunden',\n\t\ttimePickerTimeSeparator: 'Std.',\n\t\ttimePickerMinutes: 'Minuten',\n\t},\n\tfr: {\n\t\ttimePickerHours: 'heures',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutes',\n\t},\n\tit: {\n\t\ttimePickerHours: 'ore',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuti',\n\t},\n\tnl: {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\t'nl-BE': {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\tes: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n\tpt: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: 'h',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_DURATION_PICKER_TRANSLATIONS = new InjectionToken('LuDurationPickerTranslations', {\n\tfactory: () => luDurationPickerTranslations,\n});\n\nexport type DurationPickerTranslations = {\n\ttimePickerHours: string;\n\ttimePickerTimeSeparator: string;\n\ttimePickerMinutes: string;\n};\n\nexport const luDurationPickerTranslations: LuTranslation<DurationPickerTranslations> = Translations;\n","import { NgClass } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, forwardRef, Input, input, model, output, ViewEncapsulation } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { BasePickerComponent } from '../core/base-picker.component';\nimport { ISO8601Duration } from '../core/date-primitives';\nimport { createDurationFromHoursAndMinutes, getHoursPartFromDuration, getMinutesPartFromDuration, isISO8601Duration, isoDurationToDateFnsDuration, isoDurationToSeconds } from '../core/duration.utils';\nimport { ceilToNearest, circularize, floorToNearest, roundToNearest } from '../core/math.utils';\nimport { isNil, isNotNil, PickerControlDirection } from '../core/misc.utils';\nimport { TimePickerPartComponent } from '../core/time-picker-part.component';\nimport { DEFAULT_TIME_DECIMAL_PIPE_FORMAT, DurationChangeEvent } from './duration-picker.model';\nimport { LU_DURATION_PICKER_TRANSLATIONS } from './duration-picker.translate';\n\n@Component({\n\tselector: 'lu-duration-picker',\n\tstandalone: true,\n\timports: [TimePickerPartComponent, NgClass],\n\ttemplateUrl: './duration-picker.component.html',\n\tstyleUrls: ['./duration-picker.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => DurationPickerComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class DurationPickerComponent extends BasePickerComponent {\n\tprotected intl = getIntl(LU_DURATION_PICKER_TRANSLATIONS);\n\n\tvalue = model<ISO8601Duration>('PT0S');\n\tmax = input<ISO8601Duration>('PT99H');\n\n\tdisplayArrows = input(false, { transform: booleanAttribute });\n\n\t@Input() label: string;\n\n\thideZeroValue = input(false, { transform: booleanAttribute });\n\n\tdurationChange = output<DurationChangeEvent>();\n\n\tprotected hours = computed(() => getHoursPartFromDuration(this.value()));\n\tprotected minutes = computed(() => getMinutesPartFromDuration(this.value()));\n\tprotected shouldHideValue = computed(() => this.hideZeroValue() && this.hours() === 0 && this.minutes() === 0);\n\n\tprotected pickerClasses = computed(() => {\n\t\treturn {\n\t\t\ttimePicker: true,\n\t\t\t'mod-stepper': this.displayArrows(),\n\t\t\t'mod-stepperHover': this.displayArrows(),\n\t\t\t[`mod-${this.size()}`]: Boolean(this.size()),\n\t\t};\n\t});\n\tprotected fieldsetSuffixClasses = computed(() => {\n\t\treturn {\n\t\t\t'timePicker-fieldset-groupSeparator': true,\n\t\t\t'u-visibilityHidden': this.shouldHideValue(),\n\t\t};\n\t});\n\tprotected separator = this.intl.timePickerTimeSeparator;\n\n\tprotected hoursDecimalConf = DEFAULT_TIME_DECIMAL_PIPE_FORMAT;\n\n\twriteValue(value: ISO8601Duration): void {\n\t\tthis.value.set(value || 'PT0S');\n\t}\n\n\tsetDisabledState?(isDisabled: boolean): void {\n\t\tthis.disabled.set(isDisabled);\n\t}\n\n\tprotected hoursInputHandler(value: number | '––'): void {\n\t\tthis.setTime({\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: createDurationFromHoursAndMinutes(+value, this.minutes()),\n\t\t\tsource: 'input',\n\t\t});\n\t}\n\n\tprotected minutesInputHandler(value: number | '––'): void {\n\t\tthis.setTime({\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: createDurationFromHoursAndMinutes(this.hours(), +value),\n\t\t\tsource: 'input',\n\t\t});\n\t}\n\n\tprotected copyHandler(event: ClipboardEvent): void {\n\t\tevent.preventDefault();\n\t\t// write value to clipboard\n\t\tconst value = this.value();\n\t\tif (isNotNil(value)) {\n\t\t\tevent.clipboardData?.setData('text/plain', value);\n\t\t}\n\t}\n\n\tprotected pasteHandler(event: ClipboardEvent): void {\n\t\tevent.preventDefault();\n\t\tconst pastedValue = event.clipboardData?.getData('text/plain');\n\t\tif (isNotNil(pastedValue)) {\n\t\t\tlet value: ISO8601Duration;\n\t\t\t// If it's an iso duration, handle as-is\n\t\t\tif (isISO8601Duration(pastedValue)) {\n\t\t\t\tvalue = pastedValue;\n\t\t\t}\n\t\t\tif (/\\d?\\dh\\d\\d/.test(pastedValue)) {\n\t\t\t\tconst split = pastedValue.split('h');\n\t\t\t\tvalue = createDurationFromHoursAndMinutes(+split[0], +split[1]);\n\t\t\t}\n\t\t\tif (/\\d?\\d:\\d\\d/.test(pastedValue)) {\n\t\t\t\tconst split = pastedValue.split(':');\n\t\t\t\tvalue = createDurationFromHoursAndMinutes(+split[0], +split[1]);\n\t\t\t}\n\t\t\tif (value) {\n\t\t\t\tthis.durationChange.emit({\n\t\t\t\t\tpreviousValue: this.value(),\n\t\t\t\t\tsource: 'paste',\n\t\t\t\t\tvalue,\n\t\t\t\t});\n\t\t\t\tthis.value.set(value);\n\t\t\t\tthis.onChange?.(value);\n\t\t\t}\n\t\t}\n\t}\n\n\toverride getHoursIncrement(): number {\n\t\tconst step = this.step();\n\t\tif (isNil(step)) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst { hours } = isoDurationToDateFnsDuration(step);\n\n\t\tif (hours === 0) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 24 % hours === 0 ? hours : 1;\n\t}\n\n\toverride getMinutesIncrement(): number | null {\n\t\tconst step = this.step();\n\t\tif (isNil(step)) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst { minutes } = isoDurationToDateFnsDuration(step);\n\n\t\tif (minutes === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn 60 % minutes === 0 ? minutes : 1;\n\t}\n\n\tprivate setTime(protoEvent: DurationChangeEvent): void {\n\t\tlet hoursPart = getHoursPartFromDuration(protoEvent.value);\n\t\tconst minutesPart = getMinutesPartFromDuration(protoEvent.value);\n\n\t\tif (hoursPart < 0) {\n\t\t\thoursPart = getHoursPartFromDuration(this.max());\n\t\t\tif (isoDurationToSeconds(createDurationFromHoursAndMinutes(hoursPart, minutesPart)) > isoDurationToSeconds(this.max())) {\n\t\t\t\t// If current value with minutes is > max, decrement hours again\n\t\t\t\thoursPart--;\n\t\t\t}\n\t\t} else if (hoursPart > getHoursPartFromDuration(this.max())) {\n\t\t\thoursPart = 0;\n\t\t}\n\n\t\tconst max = isoDurationToSeconds(this.max());\n\n\t\tconst candidateTimeAsSeconds = hoursPart * 3600 + minutesPart * 60;\n\n\t\tconst seconds = roundToNearest(circularize(candidateTimeAsSeconds, max), 60);\n\n\t\tconst hours = Math.floor(seconds / 3600);\n\t\tconst minutes = Math.floor((seconds % 3600) / 60);\n\n\t\tconst result = createDurationFromHoursAndMinutes(hours, minutes);\n\n\t\tthis.value.set(result);\n\t\tthis.onChange?.(result);\n\t\tthis.durationChange.emit({\n\t\t\t...protoEvent,\n\t\t\tvalue: result,\n\t\t});\n\t}\n\n\tprotected inputControlClickHandler(part: 'hours' | 'minutes', direction: PickerControlDirection): void {\n\t\tconst val = this.value() ?? 'PT0S';\n\t\tconst hoursPart = getHoursPartFromDuration(val);\n\t\tconst minutesPart = getMinutesPartFromDuration(val);\n\n\t\tconst selectedPart = part === 'hours' ? hoursPart : minutesPart;\n\t\tconst selectedIncrement = part === 'hours' ? this.hoursIncrement() : this.minutesIncrement();\n\t\tlet modifiedVal: number;\n\n\t\tif (selectedIncrement === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (direction === 'up') {\n\t\t\tmodifiedVal = floorToNearest(selectedPart + selectedIncrement, selectedIncrement);\n\t\t} else {\n\t\t\tmodifiedVal = ceilToNearest(selectedPart - selectedIncrement, selectedIncrement);\n\t\t}\n\n\t\tconst newTime = part === 'hours' ? createDurationFromHoursAndMinutes(modifiedVal, minutesPart) : createDurationFromHoursAndMinutes(hoursPart, modifiedVal);\n\n\t\tthis.setTime({\n\t\t\tsource: 'control',\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: newTime,\n\t\t\tpart,\n\t\t\tdirection,\n\t\t});\n\t}\n\n\tpublic focus() {\n\t\tif (isNotNil(this.hoursPart)) {\n\t\t\tthis.focusPart('hours');\n\t\t}\n\t}\n}\n","<div [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></legend>\n\t\t<lu-time-picker-part\n\t\t\t#hoursPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[label]=\"intl.timePickerHours\"\n\t\t\t[value]=\"hours()\"\n\t\t\t[decimalConf]=\"hoursDecimalConf\"\n\t\t\t[hideValue]=\"shouldHideValue()\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t(valueChange)=\"hoursInputHandler($event)\"\n\t\t\t(nextRequest)=\"focusPart('minutes')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('hours', $event)\"\n\t\t/>\n\t\t<div aria-hidden=\"true\" [ngClass]=\"fieldsetSuffixClasses()\">{{ separator }}</div>\n\t\t<lu-time-picker-part\n\t\t\t#minutesPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[label]=\"intl.timePickerMinutes\"\n\t\t\t[value]=\"minutes()\"\n\t\t\t[max]=\"59\"\n\t\t\t[hideValue]=\"shouldHideValue()\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t[disabled]=\"disabled() || !minutesIncrement()\"\n\t\t\t(valueChange)=\"minutesInputHandler($event)\"\n\t\t\t(prevRequest)=\"focusPart('hours')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('minutes', $event)\"\n\t\t/>\n\t</fieldset>\n</div>\n","import { ISO8601Time } from './date-primitives';\n\nexport const castToIsoTime = (str: string) => str as ISO8601Time;\n\nexport const convertStringToIsoTime = (time: string): ISO8601Time => {\n\tif (/^\\d{1,2}:\\d{2}:\\d{2}$/.test(time)) {\n\t\treturn castToIsoTime(time);\n\t}\n\n\tif (/^\\d{1,2}:\\d{2}$/.test(time)) {\n\t\treturn castToIsoTime(`${time}:00`);\n\t}\n\n\tif (/^\\d{1,2}h\\d{2}$/.test(time)) {\n\t\treturn convertStringToIsoTime(time.replace('h', ':'));\n\t}\n\n\tthrow new Error(`Invalid time format: ${time}`);\n};\n\nexport const createIsoTimeFromHoursAndMinutes = (hours: number, minutes: number, seconds: number = 0): ISO8601Time => {\n\tconst hoursStr = hours.toString().padStart(2, '0');\n\tconst minutesStr = minutes.toString().padStart(2, '0');\n\tconst secondsStr = seconds.toString().padStart(2, '0');\n\n\treturn `${hoursStr}:${minutesStr}:${secondsStr}`;\n};\n\nexport const isoTimeToSeconds = (time: ISO8601Time): number => {\n\treturn getHoursPartFromIsoTime(time) * 3600 + getMinutesPartFromIsoTime(time) * 60 + getSecondsPartFromIsoTime(time);\n};\n\nexport const getHoursPartFromIsoTime = (time: ISO8601Time): number => Number(time.split(':')[0]) || 0;\n\nexport const getMinutesPartFromIsoTime = (time: ISO8601Time): number => Number(time.split(':')[1]) || 0;\nexport const getSecondsPartFromIsoTime = (time: ISO8601Time): number => Number(time.split(':')[2]) || 0;\n\nexport const getHoursDisplayPartFromIsoTime = (time: ISO8601Time, ampm = false): number | '––' => {\n\tconst hours = time.split(':')[0];\n\tif (hours === '––') {\n\t\treturn hours;\n\t}\n\tif (ampm) {\n\t\t// Most consistent impl is to create a date and ask date-fns\n\t\treturn formatAMPM(Number(hours)).hours;\n\t}\n\treturn Number(hours);\n};\n\nexport const formatAMPM = (inputHours: number): { hours: number; suffix: 'AM' | 'PM' } => {\n\tlet hours = inputHours;\n\tconst suffix = hours >= 12 ? 'PM' : 'AM';\n\thours = hours % 12;\n\thours = hours ? hours : 12; // 0 should be 12\n\treturn {\n\t\thours,\n\t\tsuffix,\n\t};\n};\n\nexport const getMinutesDisplayPartFromIsoTime = (time: ISO8601Time): number | '––' => {\n\tconst minutes = time.split(':')[1];\n\tif (minutes === '––') {\n\t\treturn minutes;\n\t}\n\treturn Number(minutes);\n};\n","import { ISO8601Time } from '../core/date-primitives';\n\nexport type TimeChangeEvent = {\n\tpreviousValue: ISO8601Time | null;\n\tvalue: ISO8601Time;\n} & (\n\t| {\n\t\t\tsource: 'input' | 'paste';\n\t }\n\t| { source: 'control'; part: 'minutes' | 'hours'; direction: 'up' | 'down' }\n);\nexport const DEFAULT_MIN_TIME: ISO8601Time = '--:--:--';\n\nexport const DEFAULT_TIME_DECIMAL_PIPE_FORMAT = '2.0-0';\n","export const Translations = {\n\ten: {\n\t\ttimePickerHours: 'hours',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutes',\n\t},\n\tde: {\n\t\ttimePickerHours: 'Stunden',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'Minuten',\n\t},\n\tfr: {\n\t\ttimePickerHours: 'heures',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutes',\n\t},\n\tit: {\n\t\ttimePickerHours: 'ore',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuti',\n\t},\n\tnl: {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\t'nl-BE': {\n\t\ttimePickerHours: 'uren',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minuten',\n\t},\n\tes: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n\tpt: {\n\t\ttimePickerHours: 'horas',\n\t\ttimePickerTimeSeparator: ':',\n\t\ttimePickerMinutes: 'minutos',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_TIME_PICKER_TRANSLATIONS = new InjectionToken('LuTimePickerTranslations', {\n\tfactory: () => luTimePickerTranslations,\n});\n\nexport type TimePickerTranslations = {\n\ttimePickerHours: string;\n\ttimePickerTimeSeparator: string;\n\ttimePickerMinutes: string;\n};\n\nexport const luTimePickerTranslations: LuTranslation<TimePickerTranslations> = Translations;\n","import { NgClass } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, ElementRef, forwardRef, inject, Input, input, LOCALE_ID, model, output, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { BasePickerComponent } from '../core/base-picker.component';\nimport { ISO8601Time } from '../core/date-primitives';\nimport {\n\tconvertStringToIsoTime,\n\tcreateIsoTimeFromHoursAndMinutes,\n\tformatAMPM,\n\tgetHoursDisplayPartFromIsoTime,\n\tgetHoursPartFromIsoTime,\n\tgetMinutesDisplayPartFromIsoTime,\n\tgetMinutesPartFromIsoTime,\n\tisoTimeToSeconds,\n} from '../core/date.utils';\nimport { isoDurationToDateFnsDuration } from '../core/duration.utils';\nimport { ceilToNearest, circularize, floorToNearest, roundToNearest } from '../core/math.utils';\nimport { isNil, isNotNil, PickerControlDirection } from '../core/misc.utils';\nimport { RepeatOnHoldDirective } from '../core/repeat-on-hold.directive';\nimport { TimePickerPartComponent } from '../core/time-picker-part.component';\nimport { DEFAULT_MIN_TIME, DEFAULT_TIME_DECIMAL_PIPE_FORMAT, TimeChangeEvent } from './time-picker.model';\nimport { LU_TIME_PICKER_TRANSLATIONS } from './time-picker.translate';\n\nconst MAX_TIME = '23:59:59';\n\n@Component({\n\tselector: 'lu-time-picker',\n\tstandalone: true,\n\timports: [TimePickerPartComponent, NgClass, FormsModule, RepeatOnHoldDirective],\n\ttemplateUrl: './time-picker.component.html',\n\tstyleUrls: ['./time-picker.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => TimePickerComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class TimePickerComponent extends BasePickerComponent {\n\tprotected intl = getIntl(LU_TIME_PICKER_TRANSLATIONS);\n\tprotected localeId = inject(LOCALE_ID);\n\n\t@ViewChild('anteMeridiemRef')\n\tanteMeridiemRef: ElementRef<HTMLInputElement>;\n\n\t@ViewChild('postMeridiemRef')\n\tpostMeridiemRef: ElementRef<HTMLInputElement>;\n\n\tvalue = model<ISO8601Time>('--:--:--');\n\tmax = input<ISO8601Time>(MAX_TIME);\n\n\tdisplayArrows = input(false, { transform: booleanAttribute });\n\n\tforceMeridiemDisplay = input<boolean | null>(null);\n\n\tenableMeridiemDisplay = computed(() => {\n\t\tif (this.forceMeridiemDisplay() !== null) {\n\t\t\treturn this.forceMeridiemDisplay();\n\t\t}\n\t\t// We can't ask the API if time should include meridiem so the easiest was to just make it format a static date.\n\t\treturn Intl.DateTimeFormat(this.localeId, {\n\t\t\ttimeStyle: 'short',\n\t\t\tdateStyle: 'short',\n\t\t})\n\t\t\t.format(new Date('1/1/1 17:00:00'))\n\t\t\t.includes('PM');\n\t});\n\n\t@Input() label: string;\n\n\ttimeChange = output<TimeChangeEvent>();\n\n\tprotected hoursDisplay = computed(() => getHoursDisplayPartFromIsoTime(this.value(), this.enableMeridiemDisplay()));\n\tprotected minutesDisplay = computed(() => getMinutesDisplayPartFromIsoTime(this.value()));\n\n\tprotected hours = computed(() => getHoursPartFromIsoTime(this.value()));\n\tprotected minutes = computed(() => getMinutesPartFromIsoTime(this.value()));\n\tprotected pickerClasses = computed(() => {\n\t\treturn {\n\t\t\ttimePicker: true,\n\t\t\t'mod-stepper': this.displayArrows(),\n\t\t\t'mod-stepperHover': this.displayArrows(),\n\t\t\t[`mod-${this.size()}`]: Boolean(this.size()),\n\t\t};\n\t});\n\tprotected separator = this.intl.timePickerTimeSeparator;\n\n\tprotected hoursDecimalConf = DEFAULT_TIME_DECIMAL_PIPE_FORMAT;\n\n\tprotected maxHours = computed(() => {\n\t\tif (this.enableMeridiemDisplay()) {\n\t\t\treturn 12;\n\t\t}\n\t\treturn getHoursPartFromIsoTime(this.max() ?? '23:59:59');\n\t});\n\n\tprotected ampmDisplay = computed(() => {\n\t\treturn formatAMPM(this.hours()).suffix;\n\t});\n\n\tprotected override focusPart(type: 'hours' | 'minutes' | 'meridiem') {\n\t\tif (type === 'meridiem') {\n\t\t\tconst elementToFocus = this.ampmDisplay() === 'AM' ? this.anteMeridiemRef?.nativeElement : this.postMeridiemRef?.nativeElement;\n\t\t\telementToFocus?.focus();\n\t\t} else {\n\t\t\tsuper.focusPart(type);\n\t\t}\n\t}\n\n\twriteValue(value: ISO8601Time): void {\n\t\tthis.value.set(value || '––:––:––');\n\t}\n\n\tsetDisabledState?(isDisabled: boolean): void {\n\t\tthis.disabled.set(isDisabled);\n\t}\n\n\tprotected hoursInputHandler(value: number | '––'): void {\n\t\tthis.setTime({\n\t\t\tpreviousValue: this.value(),\n\t\t\t// Mostly for compiler because we never set the time to –– with input handler\n\t\t\tvalue: createIsoTimeFromHoursAndMinutes(+value, this.minutes()),\n\t\t\tsource: 'input',\n\t\t});\n\t}\n\n\tprotected minutesInputHandler(value: number | '––'): void {\n\t\tthis.setTime({\n\t\t\tpreviousValue: this.value(),\n\t\t\t// Mostly for compiler because we never set the time to –– with input handler\n\t\t\tvalue: createIsoTimeFromHoursAndMinutes(this.hours(), +value),\n\t\t\tsource: 'input',\n\t\t});\n\t}\n\n\tprotected copyHandler(event: ClipboardEvent): void {\n\t\tevent.preventDefault();\n\t\t// write value to clipboard\n\t\tconst value = this.value();\n\t\tif (isNotNil(value)) {\n\t\t\tevent.clipboardData?.setData('text/plain', value);\n\t\t}\n\t}\n\n\tprotected pasteHandler(event: ClipboardEvent): void {\n\t\tevent.preventDefault();\n\t\tconst pastedValue = event.clipboardData?.getData('text/plain');\n\t\tif (isNotNil(pastedValue)) {\n\t\t\ttry {\n\t\t\t\tconst value = convertStringToIsoTime(pastedValue);\n\t\t\t\tthis.timeChange.emit({\n\t\t\t\t\tpreviousValue: this.value(),\n\t\t\t\t\tsource: 'paste',\n\t\t\t\t\tvalue,\n\t\t\t\t});\n\t\t\t\tthis.value.set(value);\n\t\t\t\tthis.onChange?.(value);\n\t\t\t} catch {\n\t\t\t\t// do nothing\n\t\t\t}\n\t\t}\n\t}\n\n\toverride getHoursIncrement(): number {\n\t\tconst step = this.step();\n\t\tif (isNil(step)) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst { hours } = isoDurationToDateFnsDuration(step);\n\n\t\tif (hours === 0) {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn 24 % hours === 0 ? hours : 1;\n\t}\n\n\toverride getMinutesIncrement(): number | null {\n\t\tconst step = this.step();\n\t\tif (isNil(step)) {\n\t\t\treturn 1;\n\t\t}\n\n\t\tconst { minutes } = isoDurationToDateFnsDuration(step);\n\n\t\tif (minutes === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn 60 % minutes === 0 ? minutes : 1;\n\t}\n\n\tprivate setTime(protoEvent: TimeChangeEvent): void {\n\t\tconst hoursPart = getHoursPartFromIsoTime(protoEvent.value);\n\t\tconst minutesPart = getMinutesPartFromIsoTime(protoEvent.value);\n\n\t\tconst max = isoTimeToSeconds(this.max());\n\n\t\tconst candidateTimeAsSeconds = hoursPart * 3600 + minutesPart * 60;\n\n\t\tconst seconds = roundToNearest(circularize(candidateTimeAsSeconds, max), 60);\n\n\t\tconst hours = Math.floor(seconds / 3600);\n\t\tconst minutes = Math.floor((seconds % 3600) / 60);\n\n\t\tconst result = createIsoTimeFromHoursAndMinutes(hours, minutes);\n\n\t\tthis.value.set(result);\n\t\tthis.onChange?.(result);\n\t\tthis.timeChange.emit({\n\t\t\t...protoEvent,\n\t\t\tvalue: result,\n\t\t});\n\t}\n\n\tprotected inputControlClickHandler(part: 'hours' | 'minutes', direction: PickerControlDirection): void {\n\t\tconst val = this.value() ?? DEFAULT_MIN_TIME;\n\t\tconst hoursPart = getHoursPartFromIsoTime(val);\n\t\tconst minutesPart = getMinutesPartFromIsoTime(val);\n\n\t\tconst selectedPart = part === 'hours' ? hoursPart : minutesPart;\n\t\tconst selectedIncrement = part === 'hours' ? this.hoursIncrement() : this.minutesIncrement();\n\t\tlet modifiedVal: number;\n\n\t\tif (selectedIncrement === null) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (direction === 'up') {\n\t\t\tmodifiedVal = floorToNearest(selectedPart + selectedIncrement, selectedIncrement);\n\t\t} else {\n\t\t\tmodifiedVal = ceilToNearest(selectedPart - selectedIncrement, selectedIncrement);\n\t\t}\n\n\t\tconst newTime = part === 'hours' ? createIsoTimeFromHoursAndMinutes(modifiedVal, minutesPart) : createIsoTimeFromHoursAndMinutes(hoursPart, modifiedVal);\n\n\t\tthis.setTime({\n\t\t\tsource: 'control',\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: newTime,\n\t\t\tpart,\n\t\t\tdirection,\n\t\t});\n\t}\n\n\tpublic focus() {\n\t\tif (isNotNil(this.hoursPart)) {\n\t\t\tthis.focusPart('hours');\n\t\t}\n\t}\n\n\tswitchMeridiem(newValue: 'AM' | 'PM') {\n\t\tlet hours = getHoursPartFromIsoTime(this.value());\n\t\tconst minutes = getMinutesPartFromIsoTime(this.value());\n\t\tif (newValue === 'PM') {\n\t\t\thours = circularize(hours + 12, 23);\n\t\t} else {\n\t\t\thours = circularize(hours - 12, 23);\n\t\t}\n\t\tthis.setTime({\n\t\t\tsource: 'input',\n\t\t\tpreviousValue: this.value(),\n\t\t\tvalue: createIsoTimeFromHoursAndMinutes(hours, minutes),\n\t\t});\n\t}\n}\n","<div [ngClass]=\"pickerClasses()\" (copy)=\"copyHandler($event)\" (paste)=\"pasteHandler($event)\">\n\t<fieldset class=\"timePicker-fieldset\" [disabled]=\"disabled()\">\n\t\t<legend><span class=\"u-mask\">{{ label }}</span></legend>\n\t\t<lu-time-picker-part\n\t\t\t#hoursPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[disabled]=\"disabled()\"\n\t\t\t[label]=\"intl.timePickerHours\"\n\t\t\t[value]=\"hours()\"\n\t\t\t[display]=\"hoursDisplay()\"\n\t\t\t[max]=\"maxHours()\"\n\t\t\t[decimalConf]=\"hoursDecimalConf\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t(touched)=\"onTouched?.()\"\n\t\t\t(valueChange)=\"hoursInputHandler($event)\"\n\t\t\t(nextRequest)=\"focusPart('minutes')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('hours', $event)\"\n\t\t/>\n\t\t<div aria-hidden=\"true\" class=\"timePicker-fieldset-groupSeparator\">{{ separator }}</div>\n\t\t<lu-time-picker-part\n\t\t\t#minutesPart\n\t\t\tclass=\"timePicker-fieldset-group\"\n\t\t\t[label]=\"intl.timePickerMinutes\"\n\t\t\t[value]=\"minutesDisplay()\"\n\t\t\t[max]=\"59\"\n\t\t\t[displayArrows]=\"displayArrows()\"\n\t\t\t(touched)=\"onTouched?.()\"\n\t\t\t[disabled]=\"disabled() || !minutesIncrement()\"\n\t\t\t(valueChange)=\"minutesInputHandler($event)\"\n\t\t\t(prevRequest)=\"focusPart('hours')\"\n\t\t\t(nextRequest)=\"focusPart('meridiem')\"\n\t\t\t(inputControlClick)=\"inputControlClickHandler('minutes', $event)\"\n\t\t/>\n\t\t@if (enableMeridiemDisplay()) {\n\t\t<div\n\t\t\tclass=\"timePicker-fieldset-meridiem\"\n\t\t\t(copy)=\"copyHandler($event)\"\n\t\t\t(paste)=\"pasteHandler($event)\"\n\t\t\t(keydown.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.P)=\"postMeridiemRef.click()\"\n\t\t\t(keydown.shift.A)=\"anteMeridiemRef.click()\"\n\t\t\t(keydown.shift.P)=\"postMeridiemRef.click()\"\n\t\t\t(click)=\"ampmDisplay() === 'AM' ? anteMeridiemRef.focus() : postMeridiemRef.focus()\"\n\t\t>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-ante\">\n\t\t\t\t<label for=\"anteMeridiem\">AM</label>\n\t\t\t\t<input\n\t\t\t\t\t#anteMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tname=\"meridiem\"\n\t\t\t\t\tid=\"anteMeridiem\"\n\t\t\t\t\tvalue=\"AM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div class=\"timePicker-fieldset-meridiem-post\">\n\t\t\t\t<label for=\"postMeridiem\">PM</label>\n\t\t\t\t<input\n\t\t\t\t\t#postMeridiemRef\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tname=\"meridiem\"\n\t\t\t\t\tid=\"postMeridiem\"\n\t\t\t\t\tvalue=\"PM\"\n\t\t\t\t\t[ngModel]=\"ampmDisplay()\"\n\t\t\t\t\t(ngModelChange)=\"switchMeridiem($event)\"\n\t\t\t\t\t(click)=\"$event.stopPropagation()\"\n\t\t\t\t\t(keydown.arrowleft)=\"$event.preventDefault();focusPart('minutes')\"\n\t\t\t\t\t(keydown.arrowright)=\"$event.preventDefault()\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t@if (displayArrows()) {\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-northArrow\"></span>\n\t\t\t</button>\n\t\t\t<button\n\t\t\t\tclass=\"timePicker-fieldset-group-stepper\"\n\t\t\t\ttype=\"button\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\taria-hidden=\"true\"\n\t\t\t\t(click)=\"switchMeridiem(ampmDisplay() === 'AM' ? 'PM' : 'AM')\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-southArrow\"></span>\n\t\t\t</button>\n\t\t\t}\n\t\t</div>\n\t\t}\n\t</fieldset>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["DEFAULT_TIME_DECIMAL_PIPE_FORMAT","Translations"],"mappings":"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"}