@lucca-front/ng 22.0.5 → 22.0.6-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/README.md +6 -0
  2. package/fesm2022/lucca-front-ng-approbation-inbox.mjs +5 -4
  3. package/fesm2022/lucca-front-ng-approbation-inbox.mjs.map +1 -1
  4. package/fesm2022/lucca-front-ng-dialog.mjs +22 -15
  5. package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
  6. package/fesm2022/lucca-front-ng-filter-pills.mjs +4 -4
  7. package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
  8. package/fesm2022/lucca-front-ng-scroll.mjs +2 -3
  9. package/fesm2022/lucca-front-ng-scroll.mjs.map +1 -1
  10. package/llms/SKILL.md +248 -0
  11. package/llms/references/components/activity-feed/activity-feed.component.md +292 -0
  12. package/llms/references/components/activity-feed/activity-feed.md +90 -0
  13. package/llms/references/components/animations/animations.component.md +11 -0
  14. package/llms/references/components/animations/animations.md +7 -0
  15. package/llms/references/components/api-select/api-select.md +40 -0
  16. package/llms/references/components/app-layout/app-layout.component.md +65 -0
  17. package/llms/references/components/app-layout/app-layout.md +81 -0
  18. package/llms/references/components/approbation-inbox/approbation-inbox.component.md +960 -0
  19. package/llms/references/components/approbation-inbox/approbation-inbox.md +135 -0
  20. package/llms/references/components/avatar/avatar.component.md +563 -0
  21. package/llms/references/components/avatar/avatar.md +93 -0
  22. package/llms/references/components/box/box.component.md +119 -0
  23. package/llms/references/components/box/box.md +88 -0
  24. package/llms/references/components/breadcrumbs/breadcrumbs.component.md +59 -0
  25. package/llms/references/components/breadcrumbs/breadcrumbs.md +87 -0
  26. package/llms/references/components/bubble-icon/bubble-icon.component.md +56 -0
  27. package/llms/references/components/bubble-icon/bubble-icon.md +72 -0
  28. package/llms/references/components/bubble-illustration/bubble-illustration.component.md +54 -0
  29. package/llms/references/components/bubble-illustration/bubble-illustration.md +77 -0
  30. package/llms/references/components/button/button.component.md +252 -0
  31. package/llms/references/components/button/button.md +124 -0
  32. package/llms/references/components/calendar/calendar.component.md +708 -0
  33. package/llms/references/components/calendar/calendar.md +104 -0
  34. package/llms/references/components/calendar2/calendar2.md +64 -0
  35. package/llms/references/components/callout/callout.component.md +237 -0
  36. package/llms/references/components/callout/callout.md +243 -0
  37. package/llms/references/components/callout-disclosure/callout-disclosure.component.md +230 -0
  38. package/llms/references/components/callout-disclosure/callout-disclosure.md +196 -0
  39. package/llms/references/components/callout-popover/callout-popover.component.md +170 -0
  40. package/llms/references/components/callout-popover/callout-popover.md +201 -0
  41. package/llms/references/components/card/card.component.md +62 -0
  42. package/llms/references/components/card/card.md +8 -0
  43. package/llms/references/components/checkbox/checkbox.component.md +50 -0
  44. package/llms/references/components/checkbox/checkbox.md +74 -0
  45. package/llms/references/components/chip/chip.component.md +131 -0
  46. package/llms/references/components/chip/chip.md +95 -0
  47. package/llms/references/components/clear/clear.component.md +38 -0
  48. package/llms/references/components/clear/clear.md +79 -0
  49. package/llms/references/components/code/code.component.md +33 -0
  50. package/llms/references/components/code/code.md +47 -0
  51. package/llms/references/components/color/color.md +32 -0
  52. package/llms/references/components/color-input/color-input.md +33 -0
  53. package/llms/references/components/color-picker/color-picker.component.md +29 -0
  54. package/llms/references/components/color-picker/color-picker.md +25 -0
  55. package/llms/references/components/comment/comment.component.md +436 -0
  56. package/llms/references/components/comment/comment.md +125 -0
  57. package/llms/references/components/container/container.component.md +41 -0
  58. package/llms/references/components/container/container.md +74 -0
  59. package/llms/references/components/core-select-department/core-select-department.md +37 -0
  60. package/llms/references/components/core-select-establishment/core-select-establishment.md +40 -0
  61. package/llms/references/components/core-select-job-qualification/core-select-job-qualification.md +25 -0
  62. package/llms/references/components/core-select-occupation-category/core-select-occupation-category.md +25 -0
  63. package/llms/references/components/core-select-user/core-select-user.md +75 -0
  64. package/llms/references/components/data-presentation/data-presentation.component.md +47 -0
  65. package/llms/references/components/data-presentation/data-presentation.md +49 -0
  66. package/llms/references/components/data-table/data-table.component.md +1603 -0
  67. package/llms/references/components/data-table/data-table.md +290 -0
  68. package/llms/references/components/date/date.component.md +31 -0
  69. package/llms/references/components/date/date.md +140 -0
  70. package/llms/references/components/dateinput/dateinput.component.md +99 -0
  71. package/llms/references/components/dateinput/dateinput.md +198 -0
  72. package/llms/references/components/daterangeinput/daterangeinput.component.md +49 -0
  73. package/llms/references/components/daterangeinput/daterangeinput.md +186 -0
  74. package/llms/references/components/departmentselect/departmentselect.component.md +43 -0
  75. package/llms/references/components/departmentselect/departmentselect.md +43 -0
  76. package/llms/references/components/dialog/dialog.component.md +462 -0
  77. package/llms/references/components/dialog/dialog.md +335 -0
  78. package/llms/references/components/divider/divider.component.md +35 -0
  79. package/llms/references/components/divider/divider.md +88 -0
  80. package/llms/references/components/dropdown/dropdown.component.md +272 -0
  81. package/llms/references/components/dropdown/dropdown.md +172 -0
  82. package/llms/references/components/duration-picker/duration-picker.md +155 -0
  83. package/llms/references/components/empty-state/empty-state.component.md +226 -0
  84. package/llms/references/components/empty-state/empty-state.md +62 -0
  85. package/llms/references/components/errorpage/errorpage.component.md +57 -0
  86. package/llms/references/components/errorpage/errorpage.md +75 -0
  87. package/llms/references/components/establishmentselect/establishmentselect.component.md +30 -0
  88. package/llms/references/components/establishmentselect/establishmentselect.md +42 -0
  89. package/llms/references/components/fancy-dialog/fancy-dialog.component.md +9 -0
  90. package/llms/references/components/fancy-dialog/fancy-dialog.md +107 -0
  91. package/llms/references/components/fancybox/fancybox.component.md +48 -0
  92. package/llms/references/components/fancybox/fancybox.md +75 -0
  93. package/llms/references/components/fieldset/fieldset.component.md +86 -0
  94. package/llms/references/components/fieldset/fieldset.md +119 -0
  95. package/llms/references/components/filedropzone/filedropzone.component.md +16 -0
  96. package/llms/references/components/filedropzone/filedropzone.md +61 -0
  97. package/llms/references/components/fileentry/fileentry.component.md +58 -0
  98. package/llms/references/components/fileentry/fileentry.md +246 -0
  99. package/llms/references/components/fileupload/fileupload.component.md +91 -0
  100. package/llms/references/components/fileupload/fileupload.md +246 -0
  101. package/llms/references/components/filterbar/filterbar.component.md +302 -0
  102. package/llms/references/components/filterbar/filterbar.md +134 -0
  103. package/llms/references/components/filterpills/filterpills.component.md +60 -0
  104. package/llms/references/components/filterpills/filterpills.md +180 -0
  105. package/llms/references/components/footer/footer.component.md +66 -0
  106. package/llms/references/components/footer/footer.md +115 -0
  107. package/llms/references/components/form/form.md +37 -0
  108. package/llms/references/components/form-field/form-field.component.md +46 -0
  109. package/llms/references/components/form-field/form-field.md +231 -0
  110. package/llms/references/components/form-header/form-header.md +29 -0
  111. package/llms/references/components/form-label/form-label.component.md +106 -0
  112. package/llms/references/components/form-label/form-label.md +98 -0
  113. package/llms/references/components/gauge/gauge.component.md +55 -0
  114. package/llms/references/components/gauge/gauge.md +73 -0
  115. package/llms/references/components/grid/grid.component.md +15 -0
  116. package/llms/references/components/grid/grid.md +112 -0
  117. package/llms/references/components/highlight-data/highlight-data.component.md +279 -0
  118. package/llms/references/components/highlight-data/highlight-data.md +115 -0
  119. package/llms/references/components/highlight-section/highlight-section.component.md +185 -0
  120. package/llms/references/components/highlight-section/highlight-section.md +48 -0
  121. package/llms/references/components/highlight-text/highlight-text.component.md +49 -0
  122. package/llms/references/components/highlight-text/highlight-text.md +29 -0
  123. package/llms/references/components/horizontalnavigation/horizontalnavigation.component.md +232 -0
  124. package/llms/references/components/horizontalnavigation/horizontalnavigation.md +95 -0
  125. package/llms/references/components/icons/icons.component.md +59 -0
  126. package/llms/references/components/icons/icons.md +185 -0
  127. package/llms/references/components/impersonation/impersonation.component.md +52 -0
  128. package/llms/references/components/impersonation/impersonation.md +52 -0
  129. package/llms/references/components/index-table/index-table.component.md +2528 -0
  130. package/llms/references/components/index-table/index-table.md +243 -0
  131. package/llms/references/components/inlinemessage/inlinemessage.component.md +58 -0
  132. package/llms/references/components/inlinemessage/inlinemessage.md +57 -0
  133. package/llms/references/components/input-framed/input-framed.component.md +714 -0
  134. package/llms/references/components/input-framed/input-framed.md +50 -0
  135. package/llms/references/components/link/link.component.md +153 -0
  136. package/llms/references/components/link/link.md +124 -0
  137. package/llms/references/components/listbox/listbox.component.md +11 -0
  138. package/llms/references/components/listbox/listbox.md +101 -0
  139. package/llms/references/components/listing/listing.component.md +366 -0
  140. package/llms/references/components/listing/listing.md +105 -0
  141. package/llms/references/components/loading/loading.component.md +37 -0
  142. package/llms/references/components/loading/loading.md +91 -0
  143. package/llms/references/components/main-layout/main-layout.component.md +146 -0
  144. package/llms/references/components/main-layout/main-layout.md +78 -0
  145. package/llms/references/components/mobile-push/mobile-push.component.md +62 -0
  146. package/llms/references/components/mobile-push/mobile-push.md +70 -0
  147. package/llms/references/components/mobileheader/mobileheader.component.md +31 -0
  148. package/llms/references/components/mobileheader/mobileheader.md +8 -0
  149. package/llms/references/components/mobilenavigation/mobilenavigation.component.md +43 -0
  150. package/llms/references/components/mobilenavigation/mobilenavigation.md +8 -0
  151. package/llms/references/components/modal/modal.component.md +37 -0
  152. package/llms/references/components/modal/modal.md +61 -0
  153. package/llms/references/components/multi-select/multi-select.component.md +39 -0
  154. package/llms/references/components/multi-select/multi-select.md +426 -0
  155. package/llms/references/components/multilanguagefield/multilanguagefield.component.md +84 -0
  156. package/llms/references/components/multilanguagefield/multilanguagefield.md +362 -0
  157. package/llms/references/components/newbadge/newbadge.component.md +23 -0
  158. package/llms/references/components/newbadge/newbadge.md +38 -0
  159. package/llms/references/components/number-format-input/number-format-input.md +46 -0
  160. package/llms/references/components/number-input/number-input.md +49 -0
  161. package/llms/references/components/numbers/numbers.component.md +46 -0
  162. package/llms/references/components/numbers/numbers.md +7 -0
  163. package/llms/references/components/numericbadge/numericbadge.component.md +66 -0
  164. package/llms/references/components/numericbadge/numericbadge.md +84 -0
  165. package/llms/references/components/onboarding-empty-state/onboarding-empty-state.md +47 -0
  166. package/llms/references/components/pageheader/pageheader.component.md +389 -0
  167. package/llms/references/components/pageheader/pageheader.md +144 -0
  168. package/llms/references/components/pagination/pagination.component.md +96 -0
  169. package/llms/references/components/pagination/pagination.md +107 -0
  170. package/llms/references/components/phonenumberfield/phonenumberfield.component.md +35 -0
  171. package/llms/references/components/phonenumberfield/phonenumberfield.md +131 -0
  172. package/llms/references/components/plg-push/plg-push.component.md +91 -0
  173. package/llms/references/components/plg-push/plg-push.md +82 -0
  174. package/llms/references/components/popover/popover.component.md +130 -0
  175. package/llms/references/components/popover/popover.md +235 -0
  176. package/llms/references/components/popover2/popover2.component.md +103 -0
  177. package/llms/references/components/popover2/popover2.md +89 -0
  178. package/llms/references/components/progress-bar/progress-bar.component.md +33 -0
  179. package/llms/references/components/progress-bar/progress-bar.md +51 -0
  180. package/llms/references/components/progress-stepper/progress-stepper.component.md +281 -0
  181. package/llms/references/components/progress-stepper/progress-stepper.md +70 -0
  182. package/llms/references/components/radiofield/radiofield.component.md +295 -0
  183. package/llms/references/components/radiofield/radiofield.md +122 -0
  184. package/llms/references/components/readmore/readmore.component.md +60 -0
  185. package/llms/references/components/readmore/readmore.md +88 -0
  186. package/llms/references/components/resource-card/resource-card.component.md +216 -0
  187. package/llms/references/components/resource-card/resource-card.md +106 -0
  188. package/llms/references/components/richtextinput/richtextinput.component.md +298 -0
  189. package/llms/references/components/richtextinput/richtextinput.md +275 -0
  190. package/llms/references/components/scroll/scroll.md +45 -0
  191. package/llms/references/components/scrollbox/scrollbox.component.md +63 -0
  192. package/llms/references/components/scrollbox/scrollbox.md +49 -0
  193. package/llms/references/components/section-empty-state/section-empty-state.component.md +9 -0
  194. package/llms/references/components/section-empty-state/section-empty-state.md +41 -0
  195. package/llms/references/components/segmented-control-tabs/segmented-control-tabs.md +50 -0
  196. package/llms/references/components/segmentedcontrol/segmentedcontrol.component.md +198 -0
  197. package/llms/references/components/segmentedcontrol/segmentedcontrol.md +108 -0
  198. package/llms/references/components/select/select.component.md +237 -0
  199. package/llms/references/components/select/select.md +57 -0
  200. package/llms/references/components/select-templating/select-templating.md +117 -0
  201. package/llms/references/components/sidepanel/sidepanel.component.md +56 -0
  202. package/llms/references/components/sidepanel/sidepanel.md +7 -0
  203. package/llms/references/components/simple-select/simple-select.component.md +39 -0
  204. package/llms/references/components/simple-select/simple-select.md +291 -0
  205. package/llms/references/components/skeleton/skeleton.component.md +133 -0
  206. package/llms/references/components/skeleton/skeleton.md +212 -0
  207. package/llms/references/components/skiplinks/skiplinks.component.md +91 -0
  208. package/llms/references/components/skiplinks/skiplinks.md +73 -0
  209. package/llms/references/components/software-icon/software-icon.component.md +61 -0
  210. package/llms/references/components/software-icon/software-icon.md +107 -0
  211. package/llms/references/components/sortable-list/sortable-list.component.md +141 -0
  212. package/llms/references/components/sortable-list/sortable-list.md +84 -0
  213. package/llms/references/components/statusbadge/statusbadge.component.md +56 -0
  214. package/llms/references/components/statusbadge/statusbadge.md +63 -0
  215. package/llms/references/components/switchfield/switchfield.component.md +114 -0
  216. package/llms/references/components/switchfield/switchfield.md +56 -0
  217. package/llms/references/components/tableofcontent/tableofcontent.component.md +55 -0
  218. package/llms/references/components/tableofcontent/tableofcontent.md +41 -0
  219. package/llms/references/components/tags/tags.component.md +112 -0
  220. package/llms/references/components/tags/tags.md +115 -0
  221. package/llms/references/components/text-flow/text-flow.component.md +71 -0
  222. package/llms/references/components/text-flow/text-flow.md +63 -0
  223. package/llms/references/components/textareafield/textareafield.component.md +69 -0
  224. package/llms/references/components/textareafield/textareafield.md +113 -0
  225. package/llms/references/components/textfield/textfield.component.md +617 -0
  226. package/llms/references/components/textfield/textfield.md +161 -0
  227. package/llms/references/components/tile/tile.component.md +91 -0
  228. package/llms/references/components/tile/tile.md +92 -0
  229. package/llms/references/components/time/time.component.md +270 -0
  230. package/llms/references/components/time/time.md +127 -0
  231. package/llms/references/components/time-picker/time-picker.md +63 -0
  232. package/llms/references/components/timelines/timelines.component.md +159 -0
  233. package/llms/references/components/timelines/timelines.md +8 -0
  234. package/llms/references/components/title-and-text/title-and-text.component.md +14 -0
  235. package/llms/references/components/title-and-text/title-and-text.md +60 -0
  236. package/llms/references/components/toasts/toasts.component.md +54 -0
  237. package/llms/references/components/toasts/toasts.md +112 -0
  238. package/llms/references/components/tooltip/tooltip.component.md +86 -0
  239. package/llms/references/components/tooltip/tooltip.md +217 -0
  240. package/llms/references/components/treeselect/treeselect.component.md +62 -0
  241. package/llms/references/components/treeselect/treeselect.md +58 -0
  242. package/llms/references/components/user-select/user-select.md +52 -0
  243. package/llms/references/components/userpopover/userpopover.component.md +50 -0
  244. package/llms/references/components/userpopover/userpopover.md +136 -0
  245. package/llms/references/components/verticalnavigation/verticalnavigation.component.md +236 -0
  246. package/llms/references/components/verticalnavigation/verticalnavigation.md +115 -0
  247. package/llms/references/migrations.md +32 -0
  248. package/llms/references/tools/angular-api.md +337 -0
  249. package/llms/references/tools/animations.md +173 -0
  250. package/llms/references/tools/mixins.md +106 -0
  251. package/llms/references/tools/numbers.md +81 -0
  252. package/llms/references/tools/scrollbox.md +59 -0
  253. package/llms/references/tools/utilitaires.md +951 -0
  254. package/llms/references/types/BubbleIllustration.md +5 -0
  255. package/llms/references/types/DecorativePalette.md +5 -0
  256. package/llms/references/types/Gap.md +5 -0
  257. package/llms/references/types/HighlightDataIllustration.md +5 -0
  258. package/llms/references/types/HighlightSectionIllustration.md +5 -0
  259. package/llms/references/types/LuccaIcon.md +5 -0
  260. package/llms/references/types/MainLayoutIllustrationEndStart.md +5 -0
  261. package/llms/references/types/MainLayoutIllustrationStartEnd.md +5 -0
  262. package/llms.txt +221 -0
  263. package/package.json +12 -6
  264. package/types/lucca-front-ng-approbation-inbox.d.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-filter-pills.mjs","sources":["../../../packages/ng/filter-pills/core/tokens.ts","../../../packages/ng/filter-pills/core/filter-pill-displayer.directive.ts","../../../packages/ng/filter-pills/core/filter-pill-label.directive.ts","../../../packages/ng/filter-pills/translations.ts","../../../packages/ng/filter-pills/filter-pills.translate.ts","../../../packages/ng/filter-pills/filter-pill/filter-pill.component.ts","../../../packages/ng/filter-pills/filter-pill/filter-pill.component.html","../../../packages/ng/filter-pills/filter-bar/filter-bar.token.ts","../../../packages/ng/filter-pills/filter-bar/filter-bar.component.ts","../../../packages/ng/filter-pills/filter-bar/filter-bar.component.html","../../../packages/ng/filter-pills/filter-view-selector/filter-view-selector.component.ts","../../../packages/ng/filter-pills/filter-view-selector/filter-view-selector.component.html","../../../packages/ng/filter-pills/filter-bar/filter-pill-addon.directive.ts","../../../packages/ng/filter-pills/lucca-front-ng-filter-pills.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FilterPillInputComponent } from './filter-pill-input-component';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\n\nexport const FILTER_PILL_INPUT_COMPONENT = new InjectionToken<FilterPillInputComponent>('FilterPills:InputComponent');\n\nexport const FILTER_PILL_HOST_COMPONENT = new InjectionToken<FilterPillComponent>('FilterPills:HostComponent');\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\n\ninterface FilterPillDisplayerContext {\n\tlabel: string;\n\tplaceholder: string;\n\tisEmpty: boolean;\n}\n\n@Directive({\n\tselector: '[luFilterPillDisplayer]',\n})\nexport class FilterPillDisplayerDirective {\n\t#filterPillComponentRef = inject(FilterPillComponent, { optional: true });\n\n\t#templateRef = inject(TemplateRef);\n\n\tconstructor() {\n\t\tif (this.#filterPillComponentRef) {\n\t\t\tthis.#filterPillComponentRef.pillTpl = this.#templateRef;\n\t\t}\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillDisplayerDirective, _ctx: unknown): _ctx is FilterPillDisplayerContext {\n\t\treturn true;\n\t}\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\nimport { FILTER_PILL_INPUT_COMPONENT } from './tokens';\n\ninterface FilterPillLabelContext {\n\tlabel: string;\n\tplaceholder: string;\n\tisEmpty: boolean;\n\tcolon: string;\n}\n\n@Directive({\n\tselector: '[luFilterPillLabel]',\n})\nexport class FilterPillLabelDirective {\n\t#filterPillComponentRef = inject(FilterPillComponent, { optional: true });\n\t#parentComponentRef = inject(FILTER_PILL_INPUT_COMPONENT, { optional: true, skipSelf: true });\n\n\t#templateRef = inject(TemplateRef);\n\n\tconstructor() {\n\t\tif (this.#filterPillComponentRef && this.#parentComponentRef && !this.#parentComponentRef.parentInput) {\n\t\t\tthis.#filterPillComponentRef.customLabelTpl.set(this.#templateRef);\n\t\t}\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillLabelDirective, _ctx: unknown): _ctx is FilterPillLabelContext {\n\t\treturn true;\n\t}\n}\n","export const Translations = {\n\tfr: {\n\t\tclear: 'Vider ce champ',\n\t\tplaceholder: 'Aucune valeur sélectionnée',\n\t\tadditionalFilters: 'Filtres supplémentaires',\n\t\tautoApplyAnnouncement: 'La liste des résultats se met à jour automatiquement.',\n\t\tselectView: 'Sélectionner une vue',\n\t\tviewOptions: 'Options de la vue : {{viewName}}',\n\t\trenameView: 'Modifier le nom',\n\t\tdeleteView: 'Supprimer',\n\t\tsaveView: 'Enregistrer la vue',\n\t\tsaveModification: 'Enregistrer les modifications',\n\t\tsaveNewView: 'Enregistrer en tant que nouvelle vue',\n\t},\n\tpt: {\n\t\tclear: 'Esvaziar este campo',\n\t\tplaceholder: 'Nenhum valor selecionado',\n\t\tadditionalFilters: 'Filtros adicionais',\n\t\tautoApplyAnnouncement: 'A lista de resultados é atualizada automaticamente.',\n\t\tselectView: 'Selecionar uma vista',\n\t\tviewOptions: 'Opções da visualização: {{viewName}}',\n\t\trenameView: 'Alterar o nome',\n\t\tdeleteView: 'Eliminar',\n\t\tsaveView: 'Guardar a vista',\n\t\tsaveModification: 'Guardar as alterações',\n\t\tsaveNewView: 'Guardar como nova vista',\n\t},\n\tes: {\n\t\tclear: 'Vaciar este campo',\n\t\tplaceholder: 'Ningún valor seleccionado',\n\t\tadditionalFilters: 'Filtros adicionales',\n\t\tautoApplyAnnouncement: 'La lista de resultados se actualiza automáticamente.',\n\t\tselectView: 'Seleccionar una vista',\n\t\tviewOptions: 'Opciones de la vista: {{viewName}}',\n\t\trenameView: 'Editar el nombre',\n\t\tdeleteView: 'Eliminar',\n\t\tsaveView: 'Guardar vista',\n\t\tsaveModification: 'Guardar los cambios',\n\t\tsaveNewView: 'Guardar como vista nueva',\n\t},\n\t'nl-BE': {\n\t\tclear: 'Dit veld leegmaken',\n\t\tplaceholder: 'Geen waarde geselecteerd',\n\t\tadditionalFilters: 'Extra filters',\n\t\tautoApplyAnnouncement: 'De resultatenlijst wordt automatisch bijgewerkt.',\n\t\tselectView: 'Selecteer een weergave',\n\t\tviewOptions: 'Opties van de weergave: {{viewName}}',\n\t\trenameView: 'De naam wijzigen',\n\t\tdeleteView: 'Verwijderen',\n\t\tsaveView: 'De weergave opslaan',\n\t\tsaveModification: 'Wijzigingen opslaan',\n\t\tsaveNewView: 'Opslaan als nieuwe weergave',\n\t},\n\tnl: {\n\t\tclear: 'Dit veld leegmaken',\n\t\tplaceholder: 'Geen waarde geselecteerd',\n\t\tadditionalFilters: 'Extra filters',\n\t\tautoApplyAnnouncement: 'De resultatenlijst wordt automatisch bijgewerkt.',\n\t\tselectView: 'Selecteer een weergave',\n\t\tviewOptions: 'Opties van de weergave: {{viewName}}',\n\t\trenameView: 'De naam wijzigen',\n\t\tdeleteView: 'Verwijderen',\n\t\tsaveView: 'De weergave opslaan',\n\t\tsaveModification: 'Wijzigingen opslaan',\n\t\tsaveNewView: 'Opslaan als nieuwe weergave',\n\t},\n\tit: {\n\t\tclear: 'Vuotare questo campo',\n\t\tplaceholder: 'Nessun valore selezionato',\n\t\tadditionalFilters: 'Filtri aggiuntivi',\n\t\tautoApplyAnnouncement: \"L'elenco dei risultati si aggiorna automaticamente.\",\n\t\tselectView: 'Selezionare una vista',\n\t\tviewOptions: 'Opzioni della vista: {{viewName}}',\n\t\trenameView: 'Modificare il nome',\n\t\tdeleteView: 'Elimina',\n\t\tsaveView: 'Salva la vista',\n\t\tsaveModification: 'Salva le modifiche',\n\t\tsaveNewView: 'Salva come nuova vista',\n\t},\n\tde: {\n\t\tclear: 'Den Inhalt aus diesem Feld entfernen',\n\t\tplaceholder: 'Kein Wert ausgewählt',\n\t\tadditionalFilters: 'Zusätzliche Filter',\n\t\tautoApplyAnnouncement: 'Die Ergebnisliste wird automatisch aktualisiert.',\n\t\tselectView: 'Eine Ansicht auswählen',\n\t\tviewOptions: 'Ansichtsoptionen: {{viewName}}',\n\t\trenameView: 'Name bearbeiten',\n\t\tdeleteView: 'Löschen',\n\t\tsaveView: 'Ansicht speichern',\n\t\tsaveModification: 'Änderungen speichern',\n\t\tsaveNewView: 'Als neue Ansicht speichern',\n\t},\n\ten: {\n\t\tclear: 'Empty this field',\n\t\tplaceholder: 'No value selected',\n\t\tadditionalFilters: 'Additional filters',\n\t\tautoApplyAnnouncement: 'The results list updates automatically.',\n\t\tselectView: 'Select a view',\n\t\tviewOptions: 'View options: {{viewName}}',\n\t\trenameView: 'Edit name',\n\t\tdeleteView: 'Delete',\n\t\tsaveView: 'Save view',\n\t\tsaveModification: 'Save changes',\n\t\tsaveNewView: 'Save as new view',\n\t},\n\tpl: {\n\t\tclear: 'Wyczyść to pole',\n\t\tplaceholder: 'Nie wybrano żadnej wartości',\n\t\tadditionalFilters: 'Dodatkowe filtry',\n\t\tautoApplyAnnouncement: 'Lista wyników aktualizuje się automatycznie.',\n\t\tselectView: 'Wybierz widok',\n\t\tviewOptions: 'Opcje widoku: {{viewName}}',\n\t\trenameView: 'Zmień nazwę',\n\t\tdeleteView: 'Usuń',\n\t\tsaveView: 'Save view',\n\t\tsaveModification: 'Save changes',\n\t\tsaveNewView: 'Save as new view',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_FILTER_PILLS_TRANSLATIONS = new InjectionToken('LuFilterPillsTranslations', {\n\tfactory: () => luFilterPillsTranslations,\n});\n\nexport interface LuFilterPillsLabel {\n\tclear: string;\n\tplaceholder: string;\n\tadditionalFilters: string;\n\tautoApplyAnnouncement: string;\n\tselectView: string;\n\tviewOptions: string;\n\trenameView: string;\n\tdeleteView: string;\n}\n\nexport const luFilterPillsTranslations: LuTranslation<LuFilterPillsLabel> = Translations;\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChild,\n\teffect,\n\tElementRef,\n\tforwardRef,\n\tinject,\n\tinput,\n\tLOCALE_ID,\n\tmodel,\n\tsignal,\n\tTemplateRef,\n\tuntracked,\n\tviewChild,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { ClearComponent } from '@lucca-front/ng/clear';\nimport { intlInputOptions, luBooleanAttribute } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { FILTER_PILL_HOST_COMPONENT, FILTER_PILL_INPUT_COMPONENT, FilterPillInputComponent } from '../core';\nimport { LU_FILTER_PILLS_TRANSLATIONS } from '../filter-pills.translate';\n\n@Component({\n\tselector: 'lu-filter-pill',\n\timports: [PopoverDirective, FormsModule, IconComponent, NgTemplateOutlet, LuTooltipModule, ClearComponent],\n\ttemplateUrl: './filter-pill.component.html',\n\tstyleUrl: './filter-pill.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: FILTER_PILL_HOST_COMPONENT,\n\t\t\tuseExisting: forwardRef(() => FilterPillComponent),\n\t\t},\n\t],\n\thost: {\n\t\tclass: 'filterPillWrapper',\n\t\t'[class.is-hidden]': 'isHiddenClass',\n\t\t'[class.mod-checkbox]': 'isModCheckbox',\n\t\t'[class.is-filled]': 'isFilled',\n\t\t'[class.is-comboboxHidden]': 'hideCombobox',\n\t\t'(click)': 'hostClick()',\n\t},\n})\nexport class FilterPillComponent {\n\treadonly intl = input(...intlInputOptions(LU_FILTER_PILLS_TRANSLATIONS));\n\n\t#locale = inject(LOCALE_ID);\n\n\treadonly elementRef = inject(ElementRef);\n\n\treadonly layout = computed(() => this.inputComponentRef()?.filterPillLayout?.() || 'default');\n\n\t// The easy way to grab input component, will work in most cases\n\treadonly childInputComponentRef = contentChild(FILTER_PILL_INPUT_COMPONENT);\n\n\t// The harder way, because child has to register itself to the host, might become the default approach if this is required too much\n\t// (like when child isn't created when component inits or it's too deep)\n\treadonly registeredInputComponentRef = signal<FilterPillInputComponent | null>(null);\n\n\treadonly inputComponentRef = computed(() => this.registeredInputComponentRef() || this.childInputComponentRef());\n\n\treadonly popoverRef = viewChild(PopoverDirective);\n\n\tpillTpl: TemplateRef<unknown>;\n\n\treadonly labelTpl = computed(() => this.customLabelTpl() || this.defaultLabelTpl());\n\n\treadonly defaultLabelTpl = viewChild<TemplateRef<unknown>>('defaultLabel');\n\n\treadonly customLabelTpl = signal<TemplateRef<unknown> | null>(null);\n\n\treadonly name = input<string>();\n\n\treadonly optional = input(false, { transform: luBooleanAttribute });\n\n\treadonly disabled = computed(() => this.inputComponentRef()?.filterPillDisabled?.() || false);\n\n\tget isHiddenClass() {\n\t\treturn this.isHidden();\n\t}\n\n\treadonly displayed = model(false);\n\n\tprotected readonly isHidden = computed(() => this.optional() && !this.displayed());\n\n\tpopoverPositions: ConnectionPositionPair[] = [\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'bottom' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'top' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t];\n\n\treadonly label = input.required<string>();\n\n\treadonly placeholder = computed(() => this.placeholderOverride() ?? this.intl().placeholder);\n\treadonly placeholderOverride = input<string | null>(null, { alias: 'placeholder' });\n\n\treadonly icon = input<LuccaIcon>();\n\n\treadonly defaultIcon = computed<LuccaIcon>(() => this.inputComponentRef()?.getDefaultFilterPillIcon?.() ?? 'arrowChevronBottom');\n\n\treadonly displayedIcon = computed(() => this.icon() || this.defaultIcon());\n\n\treadonly shouldHideCombobox = computed(() => this.inputComponentRef()?.hideCombobox?.() ?? false);\n\n\treadonly inputIsEmpty = computed(() => this.inputComponentRef()?.isFilterPillEmpty() ?? true);\n\treadonly inputIsClearable = computed(() => this.inputComponentRef()?.isFilterPillClearable() ?? false);\n\n\treadonly shouldShowColon = computed(() => this.inputComponentRef()?.showColon?.() || !this.inputIsEmpty());\n\n\treadonly colonDisplay = computed(() => {\n\t\tif (!this.shouldShowColon()) {\n\t\t\treturn '';\n\t\t}\n\t\tif (this.#locale.split('-')[0] === 'fr') {\n\t\t\treturn ' :';\n\t\t}\n\t\treturn ':';\n\t});\n\n\treadonly modCheckbox = computed(() => this.layout() === 'checkable');\n\n\tget isModCheckbox() {\n\t\treturn this.modCheckbox();\n\t}\n\n\tget isFilled() {\n\t\treturn !this.inputIsEmpty();\n\t}\n\n\tget hideCombobox() {\n\t\treturn this.shouldHideCombobox();\n\t}\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst ref = this.inputComponentRef();\n\t\t\tif (ref) {\n\t\t\t\tuntracked(() => {\n\t\t\t\t\tref.enableFilterPillMode?.();\n\t\t\t\t\tref.registerFilterPillClosePopover(this.closePopover);\n\t\t\t\t\tref.registerFilterPillUpdatePosition?.(this.updatePosition);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\t// When an optional filter pill has a value, it must be displayed\n\t\t\tif (this.optional() && !this.inputIsEmpty() && !untracked(this.displayed)) {\n\t\t\t\tthis.displayed.set(true);\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\t// When an optional filter pill is hidden, its value must be clear\n\t\t\tif (this.optional() && !this.displayed() && !untracked(this.inputIsEmpty)) {\n\t\t\t\tthis.clear();\n\t\t\t}\n\t\t});\n\t}\n\n\thostClick(): void {\n\t\tthis.inputComponentRef()?.onFilterPillClick?.();\n\t}\n\n\tpopoverOpened(): void {\n\t\tthis.inputComponentRef()?.onFilterPillOpened?.();\n\t}\n\n\tpopoverClosed(): void {\n\t\tthis.inputComponentRef()?.onFilterPillClosed?.();\n\t}\n\n\tclosePopover = () => {\n\t\t// `onFilterPillClosed` is notified by the `luPopoverClosed` binding, which also covers\n\t\t// closes the input never asked for (outside click, Escape handled by the popover)\n\t\tthis.popoverRef()?.close();\n\t};\n\n\tupdatePosition = () => {\n\t\tthis.popoverRef()?.updatePosition();\n\t};\n\n\tclear(): void {\n\t\tthis.inputComponentRef()?.clearFilterPillValue();\n\t}\n\n\tregisterInput(input: FilterPillInputComponent): void {\n\t\tthis.registeredInputComponentRef.set(input);\n\t}\n}\n","@if (!isHidden()) {\n\t@if (layout() === \"default\") {\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tclass=\"filterPill\"\n\t\t\t[attr.disabled]=\"disabled() ? 'disabled' : null\"\n\t\t\t[class.is-filled]=\"!this.inputIsEmpty()\"\n\t\t\t[attr.aria-expanded]=\"popoverRef.opened()\"\n\t\t\t(keydown.arrowDown)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n\t\t\t(keydown.arrowUp)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n\t\t\t[luPopover2]=\"pillContent\"\n\t\t\t[luPopoverAnchor]=\"elementRef\"\n\t\t\t[luPopoverNoCloseButton]=\"true\"\n\t\t\t[customPositions]=\"popoverPositions\"\n\t\t\t(luPopoverOpened)=\"popoverOpened()\"\n\t\t\t(luPopoverClosed)=\"popoverClosed()\"\n\t\t\t#filterPillRef\n\t\t\t#popoverRef=\"luPopover2\"\n\t\t>\n\t\t\t<span class=\"filterPill-label\">\n\t\t\t\t<ng-container\n\t\t\t\t\t*ngTemplateOutlet=\"\n\t\t\t\t\t\tlabelTpl();\n\t\t\t\t\t\tcontext: { label: label(), isEmpty: inputIsEmpty(), placeholder: placeholder(), colon: colonDisplay() }\n\t\t\t\t\t\"\n\t\t\t\t/>\n\t\t\t</span>\n\t\t\t<span\n\t\t\t\tclass=\"filterPill-value\"\n\t\t\t\tluTooltip\n\t\t\t\tluTooltipWhenEllipsis\n\t\t\t\t[luTooltipDisabled]=\"inputIsEmpty()\"\n\t\t\t\t[luTooltipTriggerAnchor]=\"filterPillRef\"\n\t\t\t>\n\t\t\t\t<ng-container *ngTemplateOutlet=\"pillTpl; context: { label: label(), isEmpty: inputIsEmpty() }\" />\n\t\t\t\t@if (inputIsEmpty() && !disabled()) {\n\t\t\t\t\t{{ placeholder() }}\n\t\t\t\t}\n\t\t\t</span>\n\t\t\t<span class=\"filterPill-toggle\">\n\t\t\t\t<lu-icon [icon]=\"displayedIcon()\" size=\"S\" />\n\t\t\t</span>\n\t\t</button>\n\t\t@if (inputIsClearable()) {\n\t\t\t<lu-clear class=\"filterPill_clear\" (onClear)=\"clear(); popoverRef.opened() ? null : filterPillRef.focus()\">{{\n\t\t\t\tintl().clear\n\t\t\t}}</lu-clear>\n\t\t}\n\t} @else {\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"\n\t\t\t\tlabelTpl();\n\t\t\t\tcontext: { label: label(), isEmpty: inputIsEmpty(), placeholder: placeholder(), colon: colonDisplay() }\n\t\t\t\"\n\t\t/>\n\t}\n}\n<ng-template #pillContent>\n\t<div class=\"filterPill_popover-content popover-contentOptional\">\n\t\t<ng-content />\n\t</div>\n</ng-template>\n<ng-template #defaultLabel>{{ label() }}{{ colonDisplay() }}</ng-template>\n","import { InjectionToken } from '@angular/core';\nimport { FilterBarComponent } from './filter-bar.component';\n\nexport const LU_FILTER_BAR_INSTANCE = new InjectionToken<FilterBarComponent>('LU_FILTER_BAR_INSTANCE');\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, contentChildren, forwardRef, input, signal, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { intlInputOptions, luBooleanAttribute } from '@lucca-front/ng/core';\nimport { DividerComponent } from '@lucca-front/ng/divider';\nimport { FormLabelComponent } from '@lucca-front/ng/form-label';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { ScrollBoxComponent } from '@lucca-front/ng/scroll-box';\nimport { LuTooltipTriggerDirective } from '@lucca-front/ng/tooltip';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\nimport { LU_FILTER_PILLS_TRANSLATIONS } from '../filter-pills.translate';\nimport { LU_FILTER_BAR_INSTANCE } from './filter-bar.token';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-filter-bar',\n\timports: [IconComponent, LuTooltipTriggerDirective, PopoverDirective, DividerComponent, ScrollBoxComponent, FormsModule, NgTemplateOutlet, FormLabelComponent],\n\ttemplateUrl: './filter-bar.component.html',\n\tstyleUrl: './filter-bar.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'filterBar',\n\t\t'[attr.aria-describedby]': 'manualApply() ? null : autoApplyAnnouncementId',\n\t},\n\tproviders: [\n\t\t{\n\t\t\tprovide: LU_FILTER_BAR_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => FilterBarComponent),\n\t\t},\n\t],\n})\nexport class FilterBarComponent {\n\treadonly intl = input(...intlInputOptions(LU_FILTER_PILLS_TRANSLATIONS));\n\n\t/**\n\t * Set when results only update after an explicit \"Apply\" action, to remove the hidden message\n\t * telling assistive technology users that the results list updates automatically\n\t */\n\treadonly manualApply = input(false, { transform: luBooleanAttribute });\n\n\treadonly autoApplyAnnouncementId = `filterBar-autoApplyAnnouncement-${nextId++}`;\n\n\treadonly addonBefore = signal<TemplateRef<unknown> | null>(null);\n\treadonly addonAfter = signal<TemplateRef<unknown> | null>(null);\n\n\tpopoverPositions: ConnectionPositionPair[] = [\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'bottom' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'top' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t];\n\n\treadonly pills = contentChildren(FilterPillComponent, { descendants: true });\n\n\treadonly optionalPills = computed(() => this.pills().filter((pill) => pill.optional()));\n}\n","@if (!manualApply()) {\n\t<span class=\"pr-u-mask\" [attr.id]=\"autoApplyAnnouncementId\">{{ intl().autoApplyAnnouncement }}</span>\n}\n<lu-scroll-box class=\"filterBar-scrollBox\">\n\t<div class=\"filterBar-scrollBox-group\">\n\t\t@if (addonBefore()) {\n\t\t\t<ng-container *ngTemplateOutlet=\"addonBefore()\" />\n\n\t\t\t<lu-divider class=\"filterBar-divider\" />\n\t\t}\n\t\t@if (optionalPills().length > 0) {\n\t\t\t<button\n\t\t\t\tclass=\"filterPill mod-button\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t[luTooltip]=\"intl().additionalFilters\"\n\t\t\t\tluTooltipOnlyForDisplay\n\t\t\t\t[luPopover2]=\"contentOptionsTpl\"\n\t\t\t\tluPopoverNoCloseButton\n\t\t\t\t[customPositions]=\"popoverPositions\"\n\t\t\t>\n\t\t\t\t<lu-icon class=\"filterPill-icon\" icon=\"filtersDescending\" [alt]=\"intl().additionalFilters\" />\n\t\t\t</button>\n\t\t}\n\n\t\t<ng-content />\n\t</div>\n\n\t@if (addonAfter()) {\n\t\t<div class=\"filterBar-scrollBox-export\">\n\t\t\t<ng-container *ngTemplateOutlet=\"addonAfter()\" />\n\t\t</div>\n\t}\n</lu-scroll-box>\n\n<ng-template #contentOptionsTpl>\n\t<form class=\"filterPill_popover-content popover-contentOptional\">\n\t\t@for (pill of optionalPills(); track pill.name(); let index = $index) {\n\t\t\t<div class=\"form-field mod-selectOption filterPill_popover-content-option\">\n\t\t\t\t<label luFormLabel [attr.for]=\"`filterPillOptions${index}`\">{{ pill.label() }}</label>\n\t\t\t\t<span class=\"checkboxField\">\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tclass=\"checkboxField-input\"\n\t\t\t\t\t\t[name]=\"pill.name() ?? ''\"\n\t\t\t\t\t\t[attr.id]=\"'filterPillOptions' + index\"\n\t\t\t\t\t\t[(ngModel)]=\"pill.displayed\"\n\t\t\t\t\t/>\n\t\t\t\t\t<span class=\"checkboxField-icon\" aria-hidden=\"true\"><span class=\"checkboxField-icon-check\"></span></span>\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t}\n\t</form>\n</ng-template>\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, computed, input, model, output, viewChild, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent } from '@lucca-front/ng/button';\nimport { intlInputOptions, IntlParamsPipe } from '@lucca-front/ng/core';\nimport { DropdownActionComponent, DropdownItemComponent, DropdownMenuComponent, LuDropdownTriggerDirective } from '@lucca-front/ng/dropdown';\nimport { FormLabelComponent } from '@lucca-front/ng/form-label';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { LU_FILTER_PILLS_TRANSLATIONS } from '../filter-pills.translate';\n\n// Same convention as `lu-select` (see @lucca-front/ng/core-select). Duplicated locally because core-select\n// depends on filter-pills, so importing it here would introduce a circular dependency between entry points.\nexport type LuOptionComparer<T> = (a: T, b: T) => boolean;\nexport const filterViewDefaultOptionComparer: LuOptionComparer<unknown> = (a, b) => JSON.stringify(a) === JSON.stringify(b);\nexport const filterViewDefaultOptionKey: (option: unknown) => unknown = (option) => option;\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-filter-view-selector',\n\timports: [ButtonComponent, IconComponent, PopoverDirective, FormLabelComponent, LuDropdownTriggerDirective, DropdownMenuComponent, DropdownItemComponent, DropdownActionComponent, IntlParamsPipe],\n\ttemplateUrl: './filter-view-selector.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'filterBar-viewSelector',\n\t\t'(keydown.arrowDown)': 'popoverRef()?.openPopover()',\n\t},\n})\nexport class FilterViewSelectorComponent<T> {\n\treadonly intl = input(...intlInputOptions(LU_FILTER_PILLS_TRANSLATIONS));\n\n\treadonly popoverRef = viewChild(PopoverDirective);\n\n\t/** The list of saved views to pick from. */\n\treadonly views = input.required<T[]>();\n\n\t/** The currently selected view (two-way bindable). */\n\treadonly selectedView = model<T | null>(null);\n\n\t/** How to display a view. Defaults to reading its `name` property. */\n\treadonly viewLabel = input<(view: T) => string>((view) => (view as { name: string }).name);\n\n\t/** How to compare two views for selection. Same convention as `lu-select` — defaults to a structural comparison. */\n\treadonly optionComparer = input<LuOptionComparer<T>>(filterViewDefaultOptionComparer);\n\n\t/** Stable identity used for `@for` tracking. Same convention as `lu-select` — defaults to identity. */\n\treadonly optionKey = input<(view: T) => unknown>(filterViewDefaultOptionKey);\n\n\t/** Emitted when the user asks to rename a view. */\n\treadonly renameView = output<T>();\n\n\t/** Emitted when the user asks to delete a view. */\n\treadonly deleteView = output<T>();\n\n\t/** Aligns the popover under the trigger, like the filter pills do. */\n\tprotected readonly popoverPositions: ConnectionPositionPair[] = [\n\t\tnew ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }, -4, 0),\n\t\tnew ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }, -4, 0),\n\t];\n\n\t/** Shared `name` so all the radios of a given selector belong to the same group. */\n\tprotected readonly groupName = `filterViewSelector-${nextId++}`;\n\n\tprotected readonly selectedLabel = computed(() => {\n\t\tconst selected = this.selectedView();\n\t\treturn selected != null ? this.viewLabel()(selected) : null;\n\t});\n\n\tprotected isSelected(view: T): boolean {\n\t\tconst selected = this.selectedView();\n\t\tif (selected == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.optionComparer()(selected, view);\n\t}\n\n\tprotected inputId(index: number): string {\n\t\treturn `${this.groupName}-${index}`;\n\t}\n\n\tprotected viewOptionsLabel(view: T): string {\n\t\treturn `${this.intl().viewOptions} : ${this.viewLabel()(view)}`;\n\t}\n\n\tprotected selectView(view: T): void {\n\t\tthis.selectedView.set(view);\n\t\tthis.popoverRef()?.close();\n\t}\n}\n","<button\n\ttype=\"button\"\n\tluButton=\"outlined\"\n\tsize=\"S\"\n\tdisclosure\n\tluPopoverNoCloseButton\n\t[luPopover2]=\"viewsPopover\"\n\t[customPositions]=\"popoverPositions\"\n>\n\t@if (selectedLabel(); as label) {\n\t\t<span class=\"pr-u-mask\">{{ intl().selectView }} - </span>\n\t\t{{ label }}\n\t} @else {\n\t\t{{ intl().selectView }}\n\t}\n\t<lu-icon icon=\"arrowChevronBottom\" />\n</button>\n\n<ng-template #viewsPopover>\n\t<div class=\"filterPill_popover-content popover-contentOptional\">\n\t\t@for (view of views(); track optionKey()(view); let index = $index) {\n\t\t\t<div class=\"filterPill_popover-content-option\">\n\t\t\t\t<label luFormLabel [attr.for]=\"inputId(index)\">{{ viewLabel()(view) }}</label>\n\t\t\t\t<span class=\"filterPill_popover-content-option-input\">\n\t\t\t\t\t<input type=\"radio\" [attr.id]=\"inputId(index)\" [attr.name]=\"groupName\" [checked]=\"isSelected(view)\" (change)=\"selectView(view)\" />\n\t\t\t\t</span>\n\t\t\t\t<button type=\"button\" class=\"filterPill_popover-content-option-actions\" size=\"XS\" luButton=\"ghost\" [luDropdown]=\"optionsDropdown\">\n\t\t\t\t\t<lu-icon icon=\"menuDots\" [alt]=\"intl().viewOptions | intlParams: { viewName: viewLabel()(view) }\" />\n\t\t\t\t</button>\n\n\t\t\t\t<ng-template #optionsDropdown>\n\t\t\t\t\t<lu-dropdown-menu>\n\t\t\t\t\t\t<lu-dropdown-item>\n\t\t\t\t\t\t\t<button type=\"button\" lu-dropdown-action (click)=\"renameView.emit(view); popoverRef()?.close()\">\n\t\t\t\t\t\t\t\t<lu-icon icon=\"edit\" />\n\t\t\t\t\t\t\t\t{{ intl().renameView }}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</lu-dropdown-item>\n\t\t\t\t\t\t<lu-dropdown-item>\n\t\t\t\t\t\t\t<button type=\"button\" lu-dropdown-action critical (click)=\"deleteView.emit(view); popoverRef()?.close()\">\n\t\t\t\t\t\t\t\t<lu-icon icon=\"trash\" />\n\t\t\t\t\t\t\t\t{{ intl().deleteView }}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</lu-dropdown-item>\n\t\t\t\t\t</lu-dropdown-menu>\n\t\t\t\t</ng-template>\n\t\t\t</div>\n\t\t}\n\t</div>\n</ng-template>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { FilterBarComponent } from './filter-bar.component';\n\n@Directive({\n\tselector: '[luFilterPillAddonBefore]',\n})\nexport class FilterPillAddonBeforeDirective {\n\tconstructor() {\n\t\tinject(FilterBarComponent).addonBefore.set(inject(TemplateRef));\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillAddonBeforeDirective, _ctx: unknown): _ctx is void {\n\t\treturn true;\n\t}\n}\n\n@Directive({\n\tselector: '[luFilterPillAddonAfter]',\n})\nexport class FilterPillAddonAfterDirective {\n\tconstructor() {\n\t\tinject(FilterBarComponent).addonAfter.set(inject(TemplateRef));\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillAddonAfterDirective, _ctx: unknown): _ctx is void {\n\t\treturn true;\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["nextId","i1"],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-filter-pills.mjs","sources":["../../../packages/ng/filter-pills/core/tokens.ts","../../../packages/ng/filter-pills/core/filter-pill-displayer.directive.ts","../../../packages/ng/filter-pills/core/filter-pill-label.directive.ts","../../../packages/ng/filter-pills/translations.ts","../../../packages/ng/filter-pills/filter-pills.translate.ts","../../../packages/ng/filter-pills/filter-pill/filter-pill.component.ts","../../../packages/ng/filter-pills/filter-pill/filter-pill.component.html","../../../packages/ng/filter-pills/filter-bar/filter-bar.token.ts","../../../packages/ng/filter-pills/filter-bar/filter-bar.component.ts","../../../packages/ng/filter-pills/filter-bar/filter-bar.component.html","../../../packages/ng/filter-pills/filter-view-selector/filter-view-selector.component.ts","../../../packages/ng/filter-pills/filter-view-selector/filter-view-selector.component.html","../../../packages/ng/filter-pills/filter-bar/filter-pill-addon.directive.ts","../../../packages/ng/filter-pills/lucca-front-ng-filter-pills.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FilterPillInputComponent } from './filter-pill-input-component';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\n\nexport const FILTER_PILL_INPUT_COMPONENT = new InjectionToken<FilterPillInputComponent>('FilterPills:InputComponent');\n\nexport const FILTER_PILL_HOST_COMPONENT = new InjectionToken<FilterPillComponent>('FilterPills:HostComponent');\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\n\ninterface FilterPillDisplayerContext {\n\tlabel: string;\n\tplaceholder: string;\n\tisEmpty: boolean;\n}\n\n@Directive({\n\tselector: '[luFilterPillDisplayer]',\n})\nexport class FilterPillDisplayerDirective {\n\t#filterPillComponentRef = inject(FilterPillComponent, { optional: true });\n\n\t#templateRef = inject(TemplateRef);\n\n\tconstructor() {\n\t\tif (this.#filterPillComponentRef) {\n\t\t\tthis.#filterPillComponentRef.pillTpl = this.#templateRef;\n\t\t}\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillDisplayerDirective, _ctx: unknown): _ctx is FilterPillDisplayerContext {\n\t\treturn true;\n\t}\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\nimport { FILTER_PILL_INPUT_COMPONENT } from './tokens';\n\ninterface FilterPillLabelContext {\n\tlabel: string;\n\tplaceholder: string;\n\tisEmpty: boolean;\n\tcolon: string;\n}\n\n@Directive({\n\tselector: '[luFilterPillLabel]',\n})\nexport class FilterPillLabelDirective {\n\t#filterPillComponentRef = inject(FilterPillComponent, { optional: true });\n\t#parentComponentRef = inject(FILTER_PILL_INPUT_COMPONENT, { optional: true, skipSelf: true });\n\n\t#templateRef = inject(TemplateRef);\n\n\tconstructor() {\n\t\tif (this.#filterPillComponentRef && this.#parentComponentRef && !this.#parentComponentRef.parentInput) {\n\t\t\tthis.#filterPillComponentRef.customLabelTpl.set(this.#templateRef);\n\t\t}\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillLabelDirective, _ctx: unknown): _ctx is FilterPillLabelContext {\n\t\treturn true;\n\t}\n}\n","export const Translations = {\n\tfr: {\n\t\tclear: 'Vider ce champ',\n\t\tplaceholder: 'Aucune valeur sélectionnée',\n\t\tadditionalFilters: 'Filtres supplémentaires',\n\t\tautoApplyAnnouncement: 'La liste des résultats se met à jour automatiquement.',\n\t\tselectView: 'Sélectionner une vue',\n\t\tviewOptions: 'Options de la vue : {{viewName}}',\n\t\trenameView: 'Modifier le nom',\n\t\tdeleteView: 'Supprimer',\n\t\tsaveView: 'Enregistrer la vue',\n\t\tsaveModification: 'Enregistrer les modifications',\n\t\tsaveNewView: 'Enregistrer en tant que nouvelle vue',\n\t},\n\tpt: {\n\t\tclear: 'Esvaziar este campo',\n\t\tplaceholder: 'Nenhum valor selecionado',\n\t\tadditionalFilters: 'Filtros adicionais',\n\t\tautoApplyAnnouncement: 'A lista de resultados é atualizada automaticamente.',\n\t\tselectView: 'Selecionar uma vista',\n\t\tviewOptions: 'Opções da visualização: {{viewName}}',\n\t\trenameView: 'Alterar o nome',\n\t\tdeleteView: 'Eliminar',\n\t\tsaveView: 'Guardar a vista',\n\t\tsaveModification: 'Guardar as alterações',\n\t\tsaveNewView: 'Guardar como nova vista',\n\t},\n\tes: {\n\t\tclear: 'Vaciar este campo',\n\t\tplaceholder: 'Ningún valor seleccionado',\n\t\tadditionalFilters: 'Filtros adicionales',\n\t\tautoApplyAnnouncement: 'La lista de resultados se actualiza automáticamente.',\n\t\tselectView: 'Seleccionar una vista',\n\t\tviewOptions: 'Opciones de la vista: {{viewName}}',\n\t\trenameView: 'Editar el nombre',\n\t\tdeleteView: 'Eliminar',\n\t\tsaveView: 'Guardar vista',\n\t\tsaveModification: 'Guardar los cambios',\n\t\tsaveNewView: 'Guardar como vista nueva',\n\t},\n\t'nl-BE': {\n\t\tclear: 'Dit veld leegmaken',\n\t\tplaceholder: 'Geen waarde geselecteerd',\n\t\tadditionalFilters: 'Extra filters',\n\t\tautoApplyAnnouncement: 'De resultatenlijst wordt automatisch bijgewerkt.',\n\t\tselectView: 'Selecteer een weergave',\n\t\tviewOptions: 'Opties van de weergave: {{viewName}}',\n\t\trenameView: 'De naam wijzigen',\n\t\tdeleteView: 'Verwijderen',\n\t\tsaveView: 'De weergave opslaan',\n\t\tsaveModification: 'Wijzigingen opslaan',\n\t\tsaveNewView: 'Opslaan als nieuwe weergave',\n\t},\n\tnl: {\n\t\tclear: 'Dit veld leegmaken',\n\t\tplaceholder: 'Geen waarde geselecteerd',\n\t\tadditionalFilters: 'Extra filters',\n\t\tautoApplyAnnouncement: 'De resultatenlijst wordt automatisch bijgewerkt.',\n\t\tselectView: 'Selecteer een weergave',\n\t\tviewOptions: 'Opties van de weergave: {{viewName}}',\n\t\trenameView: 'De naam wijzigen',\n\t\tdeleteView: 'Verwijderen',\n\t\tsaveView: 'De weergave opslaan',\n\t\tsaveModification: 'Wijzigingen opslaan',\n\t\tsaveNewView: 'Opslaan als nieuwe weergave',\n\t},\n\tit: {\n\t\tclear: 'Vuotare questo campo',\n\t\tplaceholder: 'Nessun valore selezionato',\n\t\tadditionalFilters: 'Filtri aggiuntivi',\n\t\tautoApplyAnnouncement: \"L'elenco dei risultati si aggiorna automaticamente.\",\n\t\tselectView: 'Selezionare una vista',\n\t\tviewOptions: 'Opzioni della vista: {{viewName}}',\n\t\trenameView: 'Modificare il nome',\n\t\tdeleteView: 'Elimina',\n\t\tsaveView: 'Salva la vista',\n\t\tsaveModification: 'Salva le modifiche',\n\t\tsaveNewView: 'Salva come nuova vista',\n\t},\n\tde: {\n\t\tclear: 'Den Inhalt aus diesem Feld entfernen',\n\t\tplaceholder: 'Kein Wert ausgewählt',\n\t\tadditionalFilters: 'Zusätzliche Filter',\n\t\tautoApplyAnnouncement: 'Die Ergebnisliste wird automatisch aktualisiert.',\n\t\tselectView: 'Eine Ansicht auswählen',\n\t\tviewOptions: 'Ansichtsoptionen: {{viewName}}',\n\t\trenameView: 'Name bearbeiten',\n\t\tdeleteView: 'Löschen',\n\t\tsaveView: 'Ansicht speichern',\n\t\tsaveModification: 'Änderungen speichern',\n\t\tsaveNewView: 'Als neue Ansicht speichern',\n\t},\n\ten: {\n\t\tclear: 'Empty this field',\n\t\tplaceholder: 'No value selected',\n\t\tadditionalFilters: 'Additional filters',\n\t\tautoApplyAnnouncement: 'The results list updates automatically.',\n\t\tselectView: 'Select a view',\n\t\tviewOptions: 'View options: {{viewName}}',\n\t\trenameView: 'Edit name',\n\t\tdeleteView: 'Delete',\n\t\tsaveView: 'Save view',\n\t\tsaveModification: 'Save changes',\n\t\tsaveNewView: 'Save as new view',\n\t},\n\tpl: {\n\t\tclear: 'Wyczyść to pole',\n\t\tplaceholder: 'Nie wybrano żadnej wartości',\n\t\tadditionalFilters: 'Dodatkowe filtry',\n\t\tautoApplyAnnouncement: 'Lista wyników aktualizuje się automatycznie.',\n\t\tselectView: 'Wybierz widok',\n\t\tviewOptions: 'Opcje widoku: {{viewName}}',\n\t\trenameView: 'Zmień nazwę',\n\t\tdeleteView: 'Usuń',\n\t\tsaveView: 'Save view',\n\t\tsaveModification: 'Save changes',\n\t\tsaveNewView: 'Save as new view',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_FILTER_PILLS_TRANSLATIONS = new InjectionToken('LuFilterPillsTranslations', {\n\tfactory: () => luFilterPillsTranslations,\n});\n\nexport interface LuFilterPillsLabel {\n\tclear: string;\n\tplaceholder: string;\n\tadditionalFilters: string;\n\tautoApplyAnnouncement: string;\n\tselectView: string;\n\tviewOptions: string;\n\trenameView: string;\n\tdeleteView: string;\n}\n\nexport const luFilterPillsTranslations: LuTranslation<LuFilterPillsLabel> = Translations;\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChild,\n\teffect,\n\tElementRef,\n\tforwardRef,\n\tinject,\n\tinput,\n\tLOCALE_ID,\n\tmodel,\n\tsignal,\n\tTemplateRef,\n\tuntracked,\n\tviewChild,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { ClearComponent } from '@lucca-front/ng/clear';\nimport { intlInputOptions, luBooleanAttribute } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { FILTER_PILL_HOST_COMPONENT, FILTER_PILL_INPUT_COMPONENT, FilterPillInputComponent } from '../core';\nimport { LU_FILTER_PILLS_TRANSLATIONS } from '../filter-pills.translate';\n\n@Component({\n\tselector: 'lu-filter-pill',\n\timports: [PopoverDirective, FormsModule, IconComponent, NgTemplateOutlet, LuTooltipModule, ClearComponent],\n\ttemplateUrl: './filter-pill.component.html',\n\tstyleUrl: './filter-pill.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: FILTER_PILL_HOST_COMPONENT,\n\t\t\tuseExisting: forwardRef(() => FilterPillComponent),\n\t\t},\n\t],\n\thost: {\n\t\tclass: 'filterPillWrapper',\n\t\t'[class.is-hidden]': 'isHiddenClass',\n\t\t'[class.mod-checkbox]': 'isModCheckbox',\n\t\t'[class.is-filled]': 'isFilled',\n\t\t'[class.is-comboboxHidden]': 'hideCombobox',\n\t\t'(click)': 'hostClick()',\n\t},\n})\nexport class FilterPillComponent {\n\treadonly intl = input(...intlInputOptions(LU_FILTER_PILLS_TRANSLATIONS));\n\n\t#locale = inject(LOCALE_ID);\n\n\treadonly elementRef = inject(ElementRef);\n\n\treadonly layout = computed(() => this.inputComponentRef()?.filterPillLayout?.() || 'default');\n\n\t// The easy way to grab input component, will work in most cases\n\treadonly childInputComponentRef = contentChild(FILTER_PILL_INPUT_COMPONENT);\n\n\t// The harder way, because child has to register itself to the host, might become the default approach if this is required too much\n\t// (like when child isn't created when component inits or it's too deep)\n\treadonly registeredInputComponentRef = signal<FilterPillInputComponent | null>(null);\n\n\treadonly inputComponentRef = computed(() => this.registeredInputComponentRef() || this.childInputComponentRef());\n\n\treadonly popoverRef = viewChild(PopoverDirective);\n\n\tpillTpl: TemplateRef<unknown>;\n\n\treadonly labelTpl = computed(() => this.customLabelTpl() || this.defaultLabelTpl());\n\n\treadonly defaultLabelTpl = viewChild<TemplateRef<unknown>>('defaultLabel');\n\n\treadonly customLabelTpl = signal<TemplateRef<unknown> | null>(null);\n\n\treadonly name = input<string>();\n\n\treadonly optional = input(false, { transform: luBooleanAttribute });\n\n\treadonly disabled = computed(() => this.inputComponentRef()?.filterPillDisabled?.() || false);\n\n\tget isHiddenClass() {\n\t\treturn this.isHidden();\n\t}\n\n\treadonly displayed = model(false);\n\n\tprotected readonly isHidden = computed(() => this.optional() && !this.displayed());\n\n\tpopoverPositions: ConnectionPositionPair[] = [\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'bottom' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'top' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t];\n\n\treadonly label = input.required<string>();\n\n\treadonly placeholder = computed(() => this.placeholderOverride() ?? this.intl().placeholder);\n\treadonly placeholderOverride = input<string | null>(null, { alias: 'placeholder' });\n\n\treadonly icon = input<LuccaIcon>();\n\n\treadonly defaultIcon = computed<LuccaIcon>(() => this.inputComponentRef()?.getDefaultFilterPillIcon?.() ?? 'arrowChevronBottom');\n\n\treadonly displayedIcon = computed(() => this.icon() || this.defaultIcon());\n\n\treadonly shouldHideCombobox = computed(() => this.inputComponentRef()?.hideCombobox?.() ?? false);\n\n\treadonly inputIsEmpty = computed(() => this.inputComponentRef()?.isFilterPillEmpty() ?? true);\n\treadonly inputIsClearable = computed(() => this.inputComponentRef()?.isFilterPillClearable() ?? false);\n\n\treadonly shouldShowColon = computed(() => this.inputComponentRef()?.showColon?.() || !this.inputIsEmpty());\n\n\treadonly colonDisplay = computed(() => {\n\t\tif (!this.shouldShowColon()) {\n\t\t\treturn '';\n\t\t}\n\t\tif (this.#locale.split('-')[0] === 'fr') {\n\t\t\treturn ' :';\n\t\t}\n\t\treturn ':';\n\t});\n\n\treadonly modCheckbox = computed(() => this.layout() === 'checkable');\n\n\tget isModCheckbox() {\n\t\treturn this.modCheckbox();\n\t}\n\n\tget isFilled() {\n\t\treturn !this.inputIsEmpty();\n\t}\n\n\tget hideCombobox() {\n\t\treturn this.shouldHideCombobox();\n\t}\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst ref = this.inputComponentRef();\n\t\t\tif (ref) {\n\t\t\t\tuntracked(() => {\n\t\t\t\t\tref.enableFilterPillMode?.();\n\t\t\t\t\tref.registerFilterPillClosePopover(this.closePopover);\n\t\t\t\t\tref.registerFilterPillUpdatePosition?.(this.updatePosition);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\t// When an optional filter pill has a value, it must be displayed\n\t\t\tif (this.optional() && !this.inputIsEmpty() && !untracked(this.displayed)) {\n\t\t\t\tthis.displayed.set(true);\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\t// When an optional filter pill is hidden, its value must be clear\n\t\t\tif (this.optional() && !this.displayed() && !untracked(this.inputIsEmpty)) {\n\t\t\t\tthis.clear();\n\t\t\t}\n\t\t});\n\t}\n\n\thostClick(): void {\n\t\tthis.inputComponentRef()?.onFilterPillClick?.();\n\t}\n\n\tpopoverOpened(): void {\n\t\tthis.inputComponentRef()?.onFilterPillOpened?.();\n\t}\n\n\tpopoverClosed(): void {\n\t\tthis.inputComponentRef()?.onFilterPillClosed?.();\n\t}\n\n\tclosePopover = () => {\n\t\t// `onFilterPillClosed` is notified by the `luPopoverClosed` binding, which also covers\n\t\t// closes the input never asked for (outside click, Escape handled by the popover)\n\t\tthis.popoverRef()?.close();\n\t};\n\n\tupdatePosition = () => {\n\t\tthis.popoverRef()?.updatePosition();\n\t};\n\n\tclear(): void {\n\t\tthis.inputComponentRef()?.clearFilterPillValue();\n\t}\n\n\tregisterInput(input: FilterPillInputComponent): void {\n\t\tthis.registeredInputComponentRef.set(input);\n\t}\n}\n","@if (!isHidden()) {\n\t@if (layout() === \"default\") {\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tclass=\"filterPill\"\n\t\t\t[attr.disabled]=\"disabled() ? 'disabled' : null\"\n\t\t\t[class.is-filled]=\"!this.inputIsEmpty()\"\n\t\t\t[attr.aria-expanded]=\"popoverRef.opened()\"\n\t\t\t(keydown.arrowDown)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n\t\t\t(keydown.arrowUp)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n\t\t\t[luPopover2]=\"pillContent\"\n\t\t\t[luPopoverAnchor]=\"elementRef\"\n\t\t\t[luPopoverNoCloseButton]=\"true\"\n\t\t\t[customPositions]=\"popoverPositions\"\n\t\t\t(luPopoverOpened)=\"popoverOpened()\"\n\t\t\t(luPopoverClosed)=\"popoverClosed()\"\n\t\t\t#filterPillRef\n\t\t\t#popoverRef=\"luPopover2\"\n\t\t>\n\t\t\t<span class=\"filterPill-label\">\n\t\t\t\t<ng-container\n\t\t\t\t\t*ngTemplateOutlet=\"\n\t\t\t\t\t\tlabelTpl();\n\t\t\t\t\t\tcontext: { label: label(), isEmpty: inputIsEmpty(), placeholder: placeholder(), colon: colonDisplay() }\n\t\t\t\t\t\"\n\t\t\t\t/>\n\t\t\t</span>\n\t\t\t<span\n\t\t\t\tclass=\"filterPill-value\"\n\t\t\t\tluTooltip\n\t\t\t\tluTooltipWhenEllipsis\n\t\t\t\t[luTooltipDisabled]=\"inputIsEmpty()\"\n\t\t\t\t[luTooltipTriggerAnchor]=\"filterPillRef\"\n\t\t\t>\n\t\t\t\t<ng-container *ngTemplateOutlet=\"pillTpl; context: { label: label(), isEmpty: inputIsEmpty() }\" />\n\t\t\t\t@if (inputIsEmpty() && !disabled()) {\n\t\t\t\t\t{{ placeholder() }}\n\t\t\t\t}\n\t\t\t</span>\n\t\t\t<span class=\"filterPill-toggle\">\n\t\t\t\t<lu-icon [icon]=\"displayedIcon()\" size=\"S\" />\n\t\t\t</span>\n\t\t</button>\n\t\t@if (inputIsClearable() && !disabled()) {\n\t\t\t<lu-clear class=\"filterPill_clear\" (onClear)=\"clear(); popoverRef.opened() ? null : filterPillRef.focus()\">{{\n\t\t\t\tintl().clear\n\t\t\t}}</lu-clear>\n\t\t}\n\t} @else {\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"\n\t\t\t\tlabelTpl();\n\t\t\t\tcontext: { label: label(), isEmpty: inputIsEmpty(), placeholder: placeholder(), colon: colonDisplay() }\n\t\t\t\"\n\t\t/>\n\t}\n}\n<ng-template #pillContent>\n\t<div class=\"filterPill_popover-content popover-contentOptional\">\n\t\t<ng-content />\n\t</div>\n</ng-template>\n<ng-template #defaultLabel>{{ label() }}{{ colonDisplay() }}</ng-template>\n","import { InjectionToken } from '@angular/core';\nimport { FilterBarComponent } from './filter-bar.component';\n\nexport const LU_FILTER_BAR_INSTANCE = new InjectionToken<FilterBarComponent>('LU_FILTER_BAR_INSTANCE');\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, contentChildren, forwardRef, input, signal, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { intlInputOptions, luBooleanAttribute } from '@lucca-front/ng/core';\nimport { DividerComponent } from '@lucca-front/ng/divider';\nimport { FormLabelComponent } from '@lucca-front/ng/form-label';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { ScrollBoxComponent } from '@lucca-front/ng/scroll-box';\nimport { LuTooltipTriggerDirective } from '@lucca-front/ng/tooltip';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\nimport { LU_FILTER_PILLS_TRANSLATIONS } from '../filter-pills.translate';\nimport { LU_FILTER_BAR_INSTANCE } from './filter-bar.token';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-filter-bar',\n\timports: [IconComponent, LuTooltipTriggerDirective, PopoverDirective, DividerComponent, ScrollBoxComponent, FormsModule, NgTemplateOutlet, FormLabelComponent],\n\ttemplateUrl: './filter-bar.component.html',\n\tstyleUrl: './filter-bar.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'filterBar',\n\t\t'[attr.aria-describedby]': 'manualApply() ? null : autoApplyAnnouncementId',\n\t},\n\tproviders: [\n\t\t{\n\t\t\tprovide: LU_FILTER_BAR_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => FilterBarComponent),\n\t\t},\n\t],\n})\nexport class FilterBarComponent {\n\treadonly intl = input(...intlInputOptions(LU_FILTER_PILLS_TRANSLATIONS));\n\n\t/**\n\t * Set when results only update after an explicit \"Apply\" action, to remove the hidden message\n\t * telling assistive technology users that the results list updates automatically\n\t */\n\treadonly manualApply = input(false, { transform: luBooleanAttribute });\n\n\treadonly autoApplyAnnouncementId = `filterBar-autoApplyAnnouncement-${nextId++}`;\n\n\treadonly addonBefore = signal<TemplateRef<unknown> | null>(null);\n\treadonly addonAfter = signal<TemplateRef<unknown> | null>(null);\n\n\tpopoverPositions: ConnectionPositionPair[] = [\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'bottom' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'top' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t];\n\n\treadonly pills = contentChildren(FilterPillComponent, { descendants: true });\n\n\treadonly optionalPills = computed(() => this.pills().filter((pill) => pill.optional()));\n}\n","@if (!manualApply()) {\n\t<span class=\"pr-u-mask\" [attr.id]=\"autoApplyAnnouncementId\">{{ intl().autoApplyAnnouncement }}</span>\n}\n<lu-scroll-box class=\"filterBar-scrollBox\">\n\t<div class=\"filterBar-scrollBox-group\">\n\t\t@if (addonBefore()) {\n\t\t\t<ng-container *ngTemplateOutlet=\"addonBefore()\" />\n\n\t\t\t<lu-divider class=\"filterBar-divider\" />\n\t\t}\n\t\t@if (optionalPills().length > 0) {\n\t\t\t<button\n\t\t\t\tclass=\"filterPill mod-button\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t[luTooltip]=\"intl().additionalFilters\"\n\t\t\t\tluTooltipOnlyForDisplay\n\t\t\t\t[luPopover2]=\"contentOptionsTpl\"\n\t\t\t\tluPopoverNoCloseButton\n\t\t\t\t[customPositions]=\"popoverPositions\"\n\t\t\t>\n\t\t\t\t<lu-icon class=\"filterPill-icon\" icon=\"filtersDescending\" [alt]=\"intl().additionalFilters\" />\n\t\t\t</button>\n\t\t}\n\n\t\t<ng-content />\n\t</div>\n\n\t@if (addonAfter()) {\n\t\t<div class=\"filterBar-scrollBox-export\">\n\t\t\t<ng-container *ngTemplateOutlet=\"addonAfter()\" />\n\t\t</div>\n\t}\n</lu-scroll-box>\n\n<ng-template #contentOptionsTpl>\n\t<form class=\"filterPill_popover-content popover-contentOptional\">\n\t\t@for (pill of optionalPills(); track pill.name(); let index = $index) {\n\t\t\t<div class=\"form-field mod-selectOption filterPill_popover-content-option\">\n\t\t\t\t<label luFormLabel [attr.for]=\"`filterPillOptions${index}`\">{{ pill.label() }}</label>\n\t\t\t\t<span class=\"checkboxField\">\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tclass=\"checkboxField-input\"\n\t\t\t\t\t\t[name]=\"pill.name() ?? ''\"\n\t\t\t\t\t\t[attr.id]=\"'filterPillOptions' + index\"\n\t\t\t\t\t\t[(ngModel)]=\"pill.displayed\"\n\t\t\t\t\t/>\n\t\t\t\t\t<span class=\"checkboxField-icon\" aria-hidden=\"true\"><span class=\"checkboxField-icon-check\"></span></span>\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t}\n\t</form>\n</ng-template>\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, computed, input, model, output, viewChild, ViewEncapsulation } from '@angular/core';\nimport { ButtonComponent } from '@lucca-front/ng/button';\nimport { intlInputOptions, IntlParamsPipe } from '@lucca-front/ng/core';\nimport { DropdownActionComponent, DropdownItemComponent, DropdownMenuComponent, LuDropdownTriggerDirective } from '@lucca-front/ng/dropdown';\nimport { FormLabelComponent } from '@lucca-front/ng/form-label';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { LU_FILTER_PILLS_TRANSLATIONS } from '../filter-pills.translate';\n\n// Same convention as `lu-select` (see @lucca-front/ng/core-select). Duplicated locally because core-select\n// depends on filter-pills, so importing it here would introduce a circular dependency between entry points.\nexport type LuOptionComparer<T> = (a: T, b: T) => boolean;\nexport const filterViewDefaultOptionComparer: LuOptionComparer<unknown> = (a, b) => JSON.stringify(a) === JSON.stringify(b);\nexport const filterViewDefaultOptionKey: (option: unknown) => unknown = (option) => option;\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-filter-view-selector',\n\timports: [ButtonComponent, IconComponent, PopoverDirective, FormLabelComponent, LuDropdownTriggerDirective, DropdownMenuComponent, DropdownItemComponent, DropdownActionComponent, IntlParamsPipe],\n\ttemplateUrl: './filter-view-selector.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'filterBar-viewSelector',\n\t\t'(keydown.arrowDown)': 'popoverRef()?.openPopover()',\n\t},\n})\nexport class FilterViewSelectorComponent<T> {\n\treadonly intl = input(...intlInputOptions(LU_FILTER_PILLS_TRANSLATIONS));\n\n\treadonly popoverRef = viewChild(PopoverDirective);\n\n\t/** The list of saved views to pick from. */\n\treadonly views = input.required<T[]>();\n\n\t/** The currently selected view (two-way bindable). */\n\treadonly selectedView = model<T | null>(null);\n\n\t/** How to display a view. Defaults to reading its `name` property. */\n\treadonly viewLabel = input<(view: T) => string>((view) => (view as { name: string }).name);\n\n\t/** How to compare two views for selection. Same convention as `lu-select` — defaults to a structural comparison. */\n\treadonly optionComparer = input<LuOptionComparer<T>>(filterViewDefaultOptionComparer);\n\n\t/** Stable identity used for `@for` tracking. Same convention as `lu-select` — defaults to identity. */\n\treadonly optionKey = input<(view: T) => unknown>(filterViewDefaultOptionKey);\n\n\t/** Emitted when the user asks to rename a view. */\n\treadonly renameView = output<T>();\n\n\t/** Emitted when the user asks to delete a view. */\n\treadonly deleteView = output<T>();\n\n\t/** Aligns the popover under the trigger, like the filter pills do. */\n\tprotected readonly popoverPositions: ConnectionPositionPair[] = [\n\t\tnew ConnectionPositionPair({ originX: 'start', originY: 'bottom' }, { overlayX: 'start', overlayY: 'top' }, -4, 0),\n\t\tnew ConnectionPositionPair({ originX: 'start', originY: 'top' }, { overlayX: 'start', overlayY: 'bottom' }, -4, 0),\n\t];\n\n\t/** Shared `name` so all the radios of a given selector belong to the same group. */\n\tprotected readonly groupName = `filterViewSelector-${nextId++}`;\n\n\tprotected readonly selectedLabel = computed(() => {\n\t\tconst selected = this.selectedView();\n\t\treturn selected != null ? this.viewLabel()(selected) : null;\n\t});\n\n\tprotected isSelected(view: T): boolean {\n\t\tconst selected = this.selectedView();\n\t\tif (selected == null) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.optionComparer()(selected, view);\n\t}\n\n\tprotected inputId(index: number): string {\n\t\treturn `${this.groupName}-${index}`;\n\t}\n\n\tprotected viewOptionsLabel(view: T): string {\n\t\treturn `${this.intl().viewOptions} : ${this.viewLabel()(view)}`;\n\t}\n\n\tprotected selectView(view: T): void {\n\t\tthis.selectedView.set(view);\n\t\tthis.popoverRef()?.close();\n\t}\n}\n","<button\n\ttype=\"button\"\n\tluButton=\"outlined\"\n\tsize=\"S\"\n\tdisclosure\n\tluPopoverNoCloseButton\n\t[luPopover2]=\"viewsPopover\"\n\t[customPositions]=\"popoverPositions\"\n>\n\t@if (selectedLabel(); as label) {\n\t\t<span class=\"pr-u-mask\">{{ intl().selectView }} - </span>\n\t\t{{ label }}\n\t} @else {\n\t\t{{ intl().selectView }}\n\t}\n\t<lu-icon icon=\"arrowChevronBottom\" />\n</button>\n\n<ng-template #viewsPopover>\n\t<div class=\"filterPill_popover-content popover-contentOptional\">\n\t\t@for (view of views(); track optionKey()(view); let index = $index) {\n\t\t\t<div class=\"filterPill_popover-content-option\">\n\t\t\t\t<label luFormLabel [attr.for]=\"inputId(index)\">{{ viewLabel()(view) }}</label>\n\t\t\t\t<span class=\"filterPill_popover-content-option-input\">\n\t\t\t\t\t<input type=\"radio\" [attr.id]=\"inputId(index)\" [attr.name]=\"groupName\" [checked]=\"isSelected(view)\" (change)=\"selectView(view)\" />\n\t\t\t\t</span>\n\t\t\t\t<button type=\"button\" class=\"filterPill_popover-content-option-actions\" size=\"XS\" luButton=\"ghost\" [luDropdown]=\"optionsDropdown\">\n\t\t\t\t\t<lu-icon icon=\"menuDots\" [alt]=\"intl().viewOptions | intlParams: { viewName: viewLabel()(view) }\" />\n\t\t\t\t</button>\n\n\t\t\t\t<ng-template #optionsDropdown>\n\t\t\t\t\t<lu-dropdown-menu>\n\t\t\t\t\t\t<lu-dropdown-item>\n\t\t\t\t\t\t\t<button type=\"button\" lu-dropdown-action (click)=\"renameView.emit(view); popoverRef()?.close()\">\n\t\t\t\t\t\t\t\t<lu-icon icon=\"edit\" />\n\t\t\t\t\t\t\t\t{{ intl().renameView }}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</lu-dropdown-item>\n\t\t\t\t\t\t<lu-dropdown-item>\n\t\t\t\t\t\t\t<button type=\"button\" lu-dropdown-action critical (click)=\"deleteView.emit(view); popoverRef()?.close()\">\n\t\t\t\t\t\t\t\t<lu-icon icon=\"trash\" />\n\t\t\t\t\t\t\t\t{{ intl().deleteView }}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</lu-dropdown-item>\n\t\t\t\t\t</lu-dropdown-menu>\n\t\t\t\t</ng-template>\n\t\t\t</div>\n\t\t}\n\t</div>\n</ng-template>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { FilterBarComponent } from './filter-bar.component';\n\n@Directive({\n\tselector: '[luFilterPillAddonBefore]',\n})\nexport class FilterPillAddonBeforeDirective {\n\tconstructor() {\n\t\tinject(FilterBarComponent).addonBefore.set(inject(TemplateRef));\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillAddonBeforeDirective, _ctx: unknown): _ctx is void {\n\t\treturn true;\n\t}\n}\n\n@Directive({\n\tselector: '[luFilterPillAddonAfter]',\n})\nexport class FilterPillAddonAfterDirective {\n\tconstructor() {\n\t\tinject(FilterBarComponent).addonAfter.set(inject(TemplateRef));\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillAddonAfterDirective, _ctx: unknown): _ctx is void {\n\t\treturn true;\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["nextId","i1"],"mappings":";;;;;;;;;;;;;;;;;;MAIa,2BAA2B,GAAG,IAAI,cAAc,CAA2B,4BAA4B;MAEvG,0BAA0B,GAAG,IAAI,cAAc,CAAsB,2BAA2B;;MCMhG,4BAA4B,CAAA;IACxC,uBAAuB,GAAG,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAEzE,IAAA,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;AAElC,IAAA,WAAA,GAAA;AACC,QAAA,IAAI,IAAI,CAAC,uBAAuB,EAAE;YACjC,IAAI,CAAC,uBAAuB,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY;QACzD;IACD;AAEO,IAAA,OAAO,sBAAsB,CAAC,IAAkC,EAAE,IAAa,EAAA;AACrF,QAAA,OAAO,IAAI;IACZ;8GAbY,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,iBAAA;;;MCGY,wBAAwB,CAAA;IACpC,uBAAuB,GAAG,MAAM,CAAC,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACzE,IAAA,mBAAmB,GAAG,MAAM,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAE7F,IAAA,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC;AAElC,IAAA,WAAA,GAAA;AACC,QAAA,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE;YACtG,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;QACnE;IACD;AAEO,IAAA,OAAO,sBAAsB,CAAC,IAA8B,EAAE,IAAa,EAAA;AACjF,QAAA,OAAO,IAAI;IACZ;8GAdY,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAxB,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,iBAAA;;;ACbM,MAAM,YAAY,GAAG;AAC3B,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,gBAAgB;AACvB,QAAA,WAAW,EAAE,4BAA4B;AACzC,QAAA,iBAAiB,EAAE,yBAAyB;AAC5C,QAAA,qBAAqB,EAAE,uDAAuD;AAC9E,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,WAAW,EAAE,kCAAkC;AAC/C,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,UAAU,EAAE,WAAW;AACvB,QAAA,QAAQ,EAAE,oBAAoB;AAC9B,QAAA,gBAAgB,EAAE,+BAA+B;AACjD,QAAA,WAAW,EAAE,sCAAsC;AACnD,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,qBAAqB;AAC5B,QAAA,WAAW,EAAE,0BAA0B;AACvC,QAAA,iBAAiB,EAAE,oBAAoB;AACvC,QAAA,qBAAqB,EAAE,qDAAqD;AAC5E,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,WAAW,EAAE,sCAAsC;AACnD,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,QAAQ,EAAE,iBAAiB;AAC3B,QAAA,gBAAgB,EAAE,uBAAuB;AACzC,QAAA,WAAW,EAAE,yBAAyB;AACtC,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,mBAAmB;AAC1B,QAAA,WAAW,EAAE,2BAA2B;AACxC,QAAA,iBAAiB,EAAE,qBAAqB;AACxC,QAAA,qBAAqB,EAAE,sDAAsD;AAC7E,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,WAAW,EAAE,oCAAoC;AACjD,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,gBAAgB,EAAE,qBAAqB;AACvC,QAAA,WAAW,EAAE,0BAA0B;AACvC,KAAA;AACD,IAAA,OAAO,EAAE;AACR,QAAA,KAAK,EAAE,oBAAoB;AAC3B,QAAA,WAAW,EAAE,0BAA0B;AACvC,QAAA,iBAAiB,EAAE,eAAe;AAClC,QAAA,qBAAqB,EAAE,kDAAkD;AACzE,QAAA,UAAU,EAAE,wBAAwB;AACpC,QAAA,WAAW,EAAE,sCAAsC;AACnD,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,QAAQ,EAAE,qBAAqB;AAC/B,QAAA,gBAAgB,EAAE,qBAAqB;AACvC,QAAA,WAAW,EAAE,6BAA6B;AAC1C,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,oBAAoB;AAC3B,QAAA,WAAW,EAAE,0BAA0B;AACvC,QAAA,iBAAiB,EAAE,eAAe;AAClC,QAAA,qBAAqB,EAAE,kDAAkD;AACzE,QAAA,UAAU,EAAE,wBAAwB;AACpC,QAAA,WAAW,EAAE,sCAAsC;AACnD,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,QAAQ,EAAE,qBAAqB;AAC/B,QAAA,gBAAgB,EAAE,qBAAqB;AACvC,QAAA,WAAW,EAAE,6BAA6B;AAC1C,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,sBAAsB;AAC7B,QAAA,WAAW,EAAE,2BAA2B;AACxC,QAAA,iBAAiB,EAAE,mBAAmB;AACtC,QAAA,qBAAqB,EAAE,qDAAqD;AAC5E,QAAA,UAAU,EAAE,uBAAuB;AACnC,QAAA,WAAW,EAAE,mCAAmC;AAChD,QAAA,UAAU,EAAE,oBAAoB;AAChC,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,QAAQ,EAAE,gBAAgB;AAC1B,QAAA,gBAAgB,EAAE,oBAAoB;AACtC,QAAA,WAAW,EAAE,wBAAwB;AACrC,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,sCAAsC;AAC7C,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,iBAAiB,EAAE,oBAAoB;AACvC,QAAA,qBAAqB,EAAE,kDAAkD;AACzE,QAAA,UAAU,EAAE,wBAAwB;AACpC,QAAA,WAAW,EAAE,gCAAgC;AAC7C,QAAA,UAAU,EAAE,iBAAiB;AAC7B,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,QAAQ,EAAE,mBAAmB;AAC7B,QAAA,gBAAgB,EAAE,sBAAsB;AACxC,QAAA,WAAW,EAAE,4BAA4B;AACzC,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,kBAAkB;AACzB,QAAA,WAAW,EAAE,mBAAmB;AAChC,QAAA,iBAAiB,EAAE,oBAAoB;AACvC,QAAA,qBAAqB,EAAE,yCAAyC;AAChE,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,WAAW,EAAE,4BAA4B;AACzC,QAAA,UAAU,EAAE,WAAW;AACvB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,gBAAgB,EAAE,cAAc;AAChC,QAAA,WAAW,EAAE,kBAAkB;AAC/B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,KAAK,EAAE,iBAAiB;AACxB,QAAA,WAAW,EAAE,6BAA6B;AAC1C,QAAA,iBAAiB,EAAE,kBAAkB;AACrC,QAAA,qBAAqB,EAAE,8CAA8C;AACrE,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,WAAW,EAAE,4BAA4B;AACzC,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,UAAU,EAAE,MAAM;AAClB,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,gBAAgB,EAAE,cAAc;AAChC,QAAA,WAAW,EAAE,kBAAkB;AAC/B,KAAA;CACD;;MClHY,4BAA4B,GAAG,IAAI,cAAc,CAAC,2BAA2B,EAAE;AAC3F,IAAA,OAAO,EAAE,MAAM,yBAAyB;AACxC,CAAA;AAaM,MAAM,yBAAyB,GAAsC;;MCiC/D,mBAAmB,CAAA;AAG/B,IAAA,OAAO;AA+BP,IAAA,IAAI,aAAa,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;IACvB;AAyDA,IAAA,IAAI,aAAa,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE;IAC1B;AAEA,IAAA,IAAI,QAAQ,GAAA;AACX,QAAA,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE;IAC5B;AAEA,IAAA,IAAI,YAAY,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,kBAAkB,EAAE;IACjC;AAEA,IAAA,WAAA,GAAA;AAxGS,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,GAAG,gBAAgB,CAAC,4BAA4B,CAAC;iFAAC;AAExE,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;AAElB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAE/B,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAE,gBAAgB,IAAI,IAAI,SAAS;mFAAC;;QAGpF,IAAA,CAAA,sBAAsB,GAAG,YAAY,CAAC,2BAA2B;mGAAC;;;QAIlE,IAAA,CAAA,2BAA2B,GAAG,MAAM,CAAkC,IAAI;wGAAC;AAE3E,QAAA,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,2BAA2B,EAAE,IAAI,IAAI,CAAC,sBAAsB,EAAE;8FAAC;QAEvG,IAAA,CAAA,UAAU,GAAG,SAAS,CAAC,gBAAgB;uFAAC;AAIxC,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,IAAI,IAAI,CAAC,eAAe,EAAE;qFAAC;QAE1E,IAAA,CAAA,eAAe,GAAG,SAAS,CAAuB,cAAc;4FAAC;QAEjE,IAAA,CAAA,cAAc,GAAG,MAAM,CAA8B,IAAI;2FAAC;AAE1D,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK;4FAAU;QAEtB,IAAA,CAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,gFAAI,SAAS,EAAE,kBAAkB,EAAA,CAAG;AAE1D,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAE,kBAAkB,IAAI,IAAI,KAAK;qFAAC;QAMpF,IAAA,CAAA,SAAS,GAAG,KAAK,CAAC,KAAK;sFAAC;AAEd,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;qFAAC;AAElF,QAAA,IAAA,CAAA,gBAAgB,GAA6B;YAC5C,IAAI,sBAAsB,CACzB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EACvC;AACC,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,KAAK;AACf,aAAA,EACD,CAAC,CAAC,EACF,CAAC,CACD;YACD,IAAI,sBAAsB,CACzB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EACpC;AACC,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,QAAQ;AAClB,aAAA,EACD,CAAC,CAAC,EACF,CAAC,CACD;SACD;QAEQ,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ;kFAAU;AAEhC,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW;wFAAC;QACnF,IAAA,CAAA,mBAAmB,GAAG,KAAK,CAAgB,IAAI,2FAAI,KAAK,EAAE,aAAa,EAAA,CAAG;AAE1E,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK;4FAAa;AAEzB,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAY,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAE,wBAAwB,IAAI,IAAI,oBAAoB;wFAAC;AAEvH,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,WAAW,EAAE;0FAAC;AAEjE,QAAA,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAE,YAAY,IAAI,IAAI,KAAK;+FAAC;AAExF,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAE,iBAAiB,EAAE,IAAI,IAAI;yFAAC;AACpF,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAE,qBAAqB,EAAE,IAAI,KAAK;6FAAC;AAE7F,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,EAAE,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;4FAAC;AAEjG,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAK;AACrC,YAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE;AAC5B,gBAAA,OAAO,EAAE;YACV;AACA,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AACxC,gBAAA,OAAO,IAAI;YACZ;AACA,YAAA,OAAO,GAAG;QACX,CAAC;yFAAC;QAEO,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,KAAK,WAAW;wFAAC;QAqDpE,IAAA,CAAA,YAAY,GAAG,MAAK;;;AAGnB,YAAA,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE;AAC3B,QAAA,CAAC;QAED,IAAA,CAAA,cAAc,GAAG,MAAK;AACrB,YAAA,IAAI,CAAC,UAAU,EAAE,EAAE,cAAc,EAAE;AACpC,QAAA,CAAC;QA9CA,MAAM,CAAC,MAAK;AACX,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,EAAE;YACpC,IAAI,GAAG,EAAE;gBACR,SAAS,CAAC,MAAK;AACd,oBAAA,GAAG,CAAC,oBAAoB,IAAI;AAC5B,oBAAA,GAAG,CAAC,8BAA8B,CAAC,IAAI,CAAC,YAAY,CAAC;oBACrD,GAAG,CAAC,gCAAgC,GAAG,IAAI,CAAC,cAAc,CAAC;AAC5D,gBAAA,CAAC,CAAC;YACH;AACD,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;;AAEX,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AAC1E,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YACzB;AACD,QAAA,CAAC,CAAC;QAEF,MAAM,CAAC,MAAK;;AAEX,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;gBAC1E,IAAI,CAAC,KAAK,EAAE;YACb;AACD,QAAA,CAAC,CAAC;IACH;IAEA,SAAS,GAAA;AACR,QAAA,IAAI,CAAC,iBAAiB,EAAE,EAAE,iBAAiB,IAAI;IAChD;IAEA,aAAa,GAAA;AACZ,QAAA,IAAI,CAAC,iBAAiB,EAAE,EAAE,kBAAkB,IAAI;IACjD;IAEA,aAAa,GAAA;AACZ,QAAA,IAAI,CAAC,iBAAiB,EAAE,EAAE,kBAAkB,IAAI;IACjD;IAYA,KAAK,GAAA;AACJ,QAAA,IAAI,CAAC,iBAAiB,EAAE,EAAE,oBAAoB,EAAE;IACjD;AAEA,IAAA,aAAa,CAAC,KAA+B,EAAA;AAC5C,QAAA,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC;IAC5C;8GAhKY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,mBAAA,EAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,aAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,cAAA,EAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,EAAA,SAAA,EAfpB;AACV,YAAA;AACC,gBAAA,OAAO,EAAE,0BAA0B;AACnC,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,aAAA;AACD,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAoB8C,2BAA2B,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAQ1C,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtEjD,itEA+DA,8hjBD/BW,gBAAgB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,uCAAA,EAAA,oBAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,eAAe,ojBAAE,cAAc,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAoB7F,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAtB/B,SAAS;+BACC,gBAAgB,EAAA,OAAA,EACjB,CAAC,gBAAgB,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,CAAC,iBAG3F,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,0BAA0B;AACnC,4BAAA,WAAW,EAAE,UAAU,CAAC,yBAAyB,CAAC;AAClD,yBAAA;qBACD,EAAA,IAAA,EACK;AACL,wBAAA,KAAK,EAAE,mBAAmB;AAC1B,wBAAA,mBAAmB,EAAE,eAAe;AACpC,wBAAA,sBAAsB,EAAE,eAAe;AACvC,wBAAA,mBAAmB,EAAE,UAAU;AAC/B,wBAAA,2BAA2B,EAAE,cAAc;AAC3C,wBAAA,SAAS,EAAE,aAAa;AACxB,qBAAA,EAAA,QAAA,EAAA,itEAAA,EAAA,MAAA,EAAA,CAAA,s+iBAAA,CAAA,EAAA;6NAY8C,2BAA2B,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAQ1C,gBAAgB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CAMW,cAAc,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;MEzE7D,sBAAsB,GAAG,IAAI,cAAc,CAAqB,wBAAwB;;ACYrG,IAAIA,QAAM,GAAG,CAAC;MAoBD,kBAAkB,CAAA;AAlB/B,IAAA,WAAA,GAAA;AAmBU,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,GAAG,gBAAgB,CAAC,4BAA4B,CAAC;iFAAC;AAExE;;;AAGG;QACM,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,KAAK,mFAAI,SAAS,EAAE,kBAAkB,EAAA,CAAG;AAE7D,QAAA,IAAA,CAAA,uBAAuB,GAAG,CAAA,gCAAA,EAAmCA,QAAM,EAAE,EAAE;QAEvE,IAAA,CAAA,WAAW,GAAG,MAAM,CAA8B,IAAI;wFAAC;QACvD,IAAA,CAAA,UAAU,GAAG,MAAM,CAA8B,IAAI;uFAAC;AAE/D,QAAA,IAAA,CAAA,gBAAgB,GAA6B;YAC5C,IAAI,sBAAsB,CACzB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EACvC;AACC,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,KAAK;AACf,aAAA,EACD,CAAC,CAAC,EACF,CAAC,CACD;YACD,IAAI,sBAAsB,CACzB,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EACpC;AACC,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,QAAQ;AAClB,aAAA,EACD,CAAC,CAAC,EACF,CAAC,CACD;SACD;QAEQ,IAAA,CAAA,KAAK,GAAG,eAAe,CAAC,mBAAmB,6EAAI,WAAW,EAAE,IAAI,EAAA,CAAG;QAEnE,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;0FAAC;AACvF,IAAA;8GAtCY,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,uBAAA,EAAA,gDAAA,EAAA,EAAA,cAAA,EAAA,WAAA,EAAA,EAAA,SAAA,EAPnB;AACV,YAAA;AACC,gBAAA,OAAO,EAAE,sBAAsB;AAC/B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,kBAAkB,CAAC;AACjD,aAAA;AACD,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAqCgC,mBAAmB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtErD,g2DAqDA,ujdDlCW,aAAa,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,yBAAyB,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,yBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,wBAAA,EAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,uCAAA,EAAA,oBAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,kHAAE,kBAAkB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,oJAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,yEAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,oJAAE,kBAAkB,EAAA,QAAA,EAAA,yCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,MAAA,EAAA,eAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAgBjJ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAlB9B,SAAS;+BACC,eAAe,EAAA,OAAA,EAChB,CAAC,aAAa,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAA,aAAA,EAG/I,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,IAAA,EACzC;AACL,wBAAA,KAAK,EAAE,WAAW;AAClB,wBAAA,yBAAyB,EAAE,gDAAgD;qBAC3E,EAAA,SAAA,EACU;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,sBAAsB;AAC/B,4BAAA,WAAW,EAAE,UAAU,CAAC,wBAAwB,CAAC;AACjD,yBAAA;AACD,qBAAA,EAAA,QAAA,EAAA,g2DAAA,EAAA,MAAA,EAAA,CAAA,+/cAAA,CAAA,EAAA;AAqCgC,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,aAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,mBAAmB,CAAA,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEzDrE,MAAM,+BAA+B,GAA8B,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;AACnH,MAAM,0BAA0B,GAAiC,CAAC,MAAM,KAAK;AAEpF,IAAI,MAAM,GAAG,CAAC;MAaD,2BAA2B,CAAA;AAXxC,IAAA,WAAA,GAAA;AAYU,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,GAAG,gBAAgB,CAAC,4BAA4B,CAAC;iFAAC;QAE/D,IAAA,CAAA,UAAU,GAAG,SAAS,CAAC,gBAAgB;uFAAC;;QAGxC,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ;kFAAO;;QAG7B,IAAA,CAAA,YAAY,GAAG,KAAK,CAAW,IAAI;yFAAC;;QAGpC,IAAA,CAAA,SAAS,GAAG,KAAK,CAAsB,CAAC,IAAI,KAAM,IAAyB,CAAC,IAAI;sFAAC;;QAGjF,IAAA,CAAA,cAAc,GAAG,KAAK,CAAsB,+BAA+B;2FAAC;;QAG5E,IAAA,CAAA,SAAS,GAAG,KAAK,CAAuB,0BAA0B;sFAAC;;QAGnE,IAAA,CAAA,UAAU,GAAG,MAAM,EAAK;;QAGxB,IAAA,CAAA,UAAU,GAAG,MAAM,EAAK;;AAGd,QAAA,IAAA,CAAA,gBAAgB,GAA6B;YAC/D,IAAI,sBAAsB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YAClH,IAAI,sBAAsB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SAClH;;AAGkB,QAAA,IAAA,CAAA,SAAS,GAAG,CAAA,mBAAA,EAAsB,MAAM,EAAE,EAAE;AAE5C,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAC,MAAK;AAChD,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE;AACpC,YAAA,OAAO,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI;QAC5D,CAAC;0FAAC;AAsBF,IAAA;AApBU,IAAA,UAAU,CAAC,IAAO,EAAA;AAC3B,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE;AACpC,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AACrB,YAAA,OAAO,KAAK;QACb;QACA,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC;IAC7C;AAEU,IAAA,OAAO,CAAC,KAAa,EAAA;AAC9B,QAAA,OAAO,GAAG,IAAI,CAAC,SAAS,CAAA,CAAA,EAAI,KAAK,EAAE;IACpC;AAEU,IAAA,gBAAgB,CAAC,IAAO,EAAA;AACjC,QAAA,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,CAAA,GAAA,EAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE;IAChE;AAEU,IAAA,UAAU,CAAC,IAAO,EAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC;AAC3B,QAAA,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE;IAC3B;8GA3DY,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,mBAAA,EAAA,6BAAA,EAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAGP,gBAAgB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChCjD,89DAkDA,4CD9BW,eAAe,EAAA,QAAA,EAAA,8FAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,gBAAgB,8dAAE,kBAAkB,EAAA,QAAA,EAAA,yCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,MAAA,EAAA,eAAA,EAAA,YAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,0BAA0B,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,qBAAqB,6DAAE,qBAAqB,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,uBAAuB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FASrL,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAXvC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAAA,OAAA,EAC1B,CAAC,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,cAAc,CAAC,EAAA,eAAA,EAEjL,uBAAuB,CAAC,MAAM,EAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI,EAAA,IAAA,EAC/B;AACL,wBAAA,KAAK,EAAE,wBAAwB;AAC/B,wBAAA,qBAAqB,EAAE,6BAA6B;AACpD,qBAAA,EAAA,QAAA,EAAA,89DAAA,EAAA;oLAK+B,gBAAgB,CAAA,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,cAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,IAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;ME1BpC,8BAA8B,CAAA;AAC1C,IAAA,WAAA,GAAA;AACC,QAAA,MAAM,CAAC,kBAAkB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAChE;AAEO,IAAA,OAAO,sBAAsB,CAAC,IAAoC,EAAE,IAAa,EAAA;AACvF,QAAA,OAAO,IAAI;IACZ;8GAPY,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAH1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,iBAAA;;MAcY,6BAA6B,CAAA;AACzC,IAAA,WAAA,GAAA;AACC,QAAA,MAAM,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/D;AAEO,IAAA,OAAO,sBAAsB,CAAC,IAAmC,EAAE,IAAa,EAAA;AACtF,QAAA,OAAO,IAAI;IACZ;8GAPY,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,iBAAA;;;AClBD;;AAEG;;"}
@@ -12,12 +12,12 @@ import { debounceTime } from 'rxjs/operators';
12
12
  class LuScrollDirective {
13
13
  #destroyRef;
14
14
  #scrollSubject;
15
- #scroll$;
16
15
  scroll(event) {
17
16
  this.#scrollSubject.next(event);
18
17
  }
19
18
  ngOnInit() {
20
- this.#scroll$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((scrollEvent) => this.emitScrollEvents(scrollEvent));
19
+ // Built here rather than in a field initializer, so that `debounceTime` holds the consumer's value
20
+ this.#scrollSubject.pipe(debounceTime(this.debounceTime()), takeUntilDestroyed(this.#destroyRef)).subscribe((scrollEvent) => this.emitScrollEvents(scrollEvent));
21
21
  }
22
22
  emitScrollEvents($event) {
23
23
  this.onScroll.emit($event);
@@ -53,7 +53,6 @@ class LuScrollDirective {
53
53
  this.onScrollRight = output();
54
54
  this.#destroyRef = inject(DestroyRef);
55
55
  this.#scrollSubject = new Subject();
56
- this.#scroll$ = this.#scrollSubject.asObservable().pipe(debounceTime(this.debounceTime()));
57
56
  }
58
57
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: LuScrollDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
59
58
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.4", type: LuScrollDirective, isStandalone: true, selector: "[luScroll]", inputs: { debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onScroll: "onScroll", onScrollTop: "onScrollTop", onScrollBottom: "onScrollBottom", onScrollLeft: "onScrollLeft", onScrollRight: "onScrollRight" }, host: { listeners: { "scroll": "scroll($event)" } }, exportAs: ["luScroll"], ngImport: i0 }); }
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-scroll.mjs","sources":["../../../packages/ng/scroll/scroll.directive.ts","../../../packages/ng/scroll/scroll.module.ts","../../../packages/ng/scroll/lucca-front-ng-scroll.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport { DestroyRef, Directive, ElementRef, inject, input, OnInit, output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { luNumberAttribute } from '@lucca-front/ng/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { ILuScrollable } from './scroll.model';\n\n/**\n * emits on scroll events\n */\n@Directive({\n\tselector: '[luScroll]',\n\texportAs: 'luScroll',\n\thost: {\n\t\t'(scroll)': 'scroll($event)',\n\t},\n})\nexport class LuScrollDirective implements ILuScrollable, OnInit {\n\treadonly debounceTime = input(100, { transform: luNumberAttribute });\n\treadonly onScroll = output<Event>();\n\treadonly onScrollTop = output<Event>();\n\treadonly onScrollBottom = output<Event>();\n\treadonly onScrollLeft = output<Event>();\n\treadonly onScrollRight = output<Event>();\n\n\t#destroyRef = inject(DestroyRef);\n\n\t#scrollSubject = new Subject<Event>();\n\treadonly #scroll$ = this.#scrollSubject.asObservable().pipe(debounceTime(this.debounceTime()));\n\n\tscroll(event: Event) {\n\t\tthis.#scrollSubject.next(event);\n\t}\n\n\tngOnInit(): void {\n\t\tthis.#scroll$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe((scrollEvent) => this.emitScrollEvents(scrollEvent));\n\t}\n\tprivate emitScrollEvents($event: Event) {\n\t\tthis.onScroll.emit($event);\n\n\t\tconst target = $event.target;\n\t\tif (target instanceof Element) {\n\t\t\tconst scrollLeft = target.scrollLeft;\n\t\t\tconst scrollTop = target.scrollTop;\n\t\t\tif (scrollLeft === 0) {\n\t\t\t\tthis.onScrollLeft.emit($event);\n\t\t\t}\n\t\t\tif (scrollTop === 0) {\n\t\t\t\tthis.onScrollTop.emit($event);\n\t\t\t}\n\t\t\tconst scrollWidth = target.scrollWidth;\n\t\t\tconst scrollHeight = target.scrollHeight;\n\t\t\tconst eltHeight = this._elementRef.nativeElement.clientHeight;\n\t\t\tconst eltWidth = this._elementRef.nativeElement.clientWidth;\n\t\t\tif (scrollWidth - scrollLeft - eltWidth < 10) {\n\t\t\t\tthis.onScrollRight.emit($event);\n\t\t\t}\n\t\t\tif (scrollHeight - scrollTop - eltHeight < 10) {\n\t\t\t\tthis.onScrollBottom.emit($event);\n\t\t\t}\n\t\t}\n\t}\n\tconstructor(protected _elementRef: ElementRef<HTMLElement>) {}\n}\n","import { NgModule } from '@angular/core';\nimport { LuScrollDirective } from './scroll.directive';\n\n/**\n * @deprecated use `LuScrollDirective` instead\n */\n@NgModule({\n\timports: [LuScrollDirective],\n\texports: [LuScrollDirective],\n})\nexport class LuScrollModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-scroll.mjs","sources":["../../../packages/ng/scroll/scroll.directive.ts","../../../packages/ng/scroll/scroll.module.ts","../../../packages/ng/scroll/lucca-front-ng-scroll.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/no-output-on-prefix */\nimport { DestroyRef, Directive, ElementRef, inject, input, OnInit, output } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { luNumberAttribute } from '@lucca-front/ng/core';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { ILuScrollable } from './scroll.model';\n\n/**\n * emits on scroll events\n */\n@Directive({\n\tselector: '[luScroll]',\n\texportAs: 'luScroll',\n\thost: {\n\t\t'(scroll)': 'scroll($event)',\n\t},\n})\nexport class LuScrollDirective implements ILuScrollable, OnInit {\n\treadonly debounceTime = input(100, { transform: luNumberAttribute });\n\treadonly onScroll = output<Event>();\n\treadonly onScrollTop = output<Event>();\n\treadonly onScrollBottom = output<Event>();\n\treadonly onScrollLeft = output<Event>();\n\treadonly onScrollRight = output<Event>();\n\n\t#destroyRef = inject(DestroyRef);\n\n\t#scrollSubject = new Subject<Event>();\n\n\tscroll(event: Event) {\n\t\tthis.#scrollSubject.next(event);\n\t}\n\n\tngOnInit(): void {\n\t\t// Built here rather than in a field initializer, so that `debounceTime` holds the consumer's value\n\t\tthis.#scrollSubject.pipe(debounceTime(this.debounceTime()), takeUntilDestroyed(this.#destroyRef)).subscribe((scrollEvent) => this.emitScrollEvents(scrollEvent));\n\t}\n\tprivate emitScrollEvents($event: Event) {\n\t\tthis.onScroll.emit($event);\n\n\t\tconst target = $event.target;\n\t\tif (target instanceof Element) {\n\t\t\tconst scrollLeft = target.scrollLeft;\n\t\t\tconst scrollTop = target.scrollTop;\n\t\t\tif (scrollLeft === 0) {\n\t\t\t\tthis.onScrollLeft.emit($event);\n\t\t\t}\n\t\t\tif (scrollTop === 0) {\n\t\t\t\tthis.onScrollTop.emit($event);\n\t\t\t}\n\t\t\tconst scrollWidth = target.scrollWidth;\n\t\t\tconst scrollHeight = target.scrollHeight;\n\t\t\tconst eltHeight = this._elementRef.nativeElement.clientHeight;\n\t\t\tconst eltWidth = this._elementRef.nativeElement.clientWidth;\n\t\t\tif (scrollWidth - scrollLeft - eltWidth < 10) {\n\t\t\t\tthis.onScrollRight.emit($event);\n\t\t\t}\n\t\t\tif (scrollHeight - scrollTop - eltHeight < 10) {\n\t\t\t\tthis.onScrollBottom.emit($event);\n\t\t\t}\n\t\t}\n\t}\n\tconstructor(protected _elementRef: ElementRef<HTMLElement>) {}\n}\n","import { NgModule } from '@angular/core';\nimport { LuScrollDirective } from './scroll.directive';\n\n/**\n * @deprecated use `LuScrollDirective` instead\n */\n@NgModule({\n\timports: [LuScrollDirective],\n\texports: [LuScrollDirective],\n})\nexport class LuScrollModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/llms/SKILL.md ADDED
@@ -0,0 +1,248 @@
1
+ ---
2
+ name: lucca-front-22-0
3
+ description: >
4
+ Design system Lucca Front / Prisme (Angular), versions 22.0.x. À charger pour tout fichier d'un projet qui dépend de @lucca-front/ng ou @lucca-front/scss,
5
+ ou contenant des sélecteurs lu-*, pr-* ou des directives commençant par 'lu' (ex: luButton, luTooltip, luForm).
6
+ ---
7
+
8
+ # Design System Prisme — Lucca Front 22.0
9
+
10
+ **RÈGLE** : Avant toute génération ou modification de code impliquant `lu-*`, `luX` ou `pr-*`, consulte la documentation du composant ci-dessous. Sans cette consultation, toute réponse est invalide.
11
+
12
+ ## 1. Version
13
+
14
+ Cette skill couvre **Lucca Front 22.0.x** (patchs publiés : 22.0.0). La **mineure** est celle installée sur le projet — tous les chemins ci-dessous lui sont relatifs, il n'y a pas de mineure à résoudre.
15
+
16
+ **Détecte le patch installé** (obligatoire, ne le suppose jamais) :
17
+
18
+ 1. en priorité `node_modules/@lucca-front/ng/package.json` → champ `version` (version résolue exacte, ex: `22.0.0`) ;
19
+ 2. à défaut, la dépendance `@lucca-front/ng` (ou `@lucca-front/scss`) dans le `package.json` du projet (ex: `^22.0.0` → `22.0.0`).
20
+
21
+ La documentation `references/` reflète le **dernier patch publié : 22.0.0**. Si le patch du projet est **antérieur**, les correctifs livrés après sa version sont décrits dans `fixes/` (voir §2) — ils ne sont **pas** dans son code : consulte tous les `fixes/<M-m-p>.md` de version **strictement supérieure** au patch installé et ignore ces changements.
22
+
23
+ **Vérifie la cohérence entre la version détectée et cette skill avant de coder.** Dans chacun de ces cas, **arrête-toi et demande à l'utilisateur** — ne suppose jamais une version, ne code pas :
24
+
25
+ - la **mineure** détectée n'est pas `22.0` (ex: le projet est monté de version mais la skill n'a pas été mise à jour, ou la mauvaise skill est chargée) ;
26
+ - le **patch** détecté est **postérieur** à 22.0.0 (dernier patch connu de cette skill → skill périmée, l'API réelle peut différer) ;
27
+ - le patch (ou la version `@lucca-front/ng`) **ne peut pas être déterminé**.
28
+
29
+ ## 2. Chemins
30
+
31
+ Compose le chemin du fichier à partir du slug du composant. **Ne devine jamais un chemin** : seuls les fichiers réellement présents font foi. Si un chemin composé n'existe pas, ne le remplace pas par une supposition — vérifie le slug dans la liste §6.
32
+
33
+ ### Composant `<slug>`
34
+
35
+ | Fichier | Chemin |
36
+ |---------|--------|
37
+ | API Angular + Changelog | `./references/components/<slug>/<slug>.md` |
38
+ | Exemples (Angular + HTML, stories incluses) | `./references/components/<slug>/<slug>.component.md` |
39
+ | Design (do/don't, usage) | `https://lucca-front.lucca.io/v22.0.6-rc.1/storybook/llms/references/components/<slug>/<slug>.design.md` |
40
+ | Figma (variantes, node IDs) | `https://lucca-front.lucca.io/v22.0.6-rc.1/storybook/llms/references/components/<slug>/<slug>.figma.md` |
41
+
42
+ Le changelog du composant est la **dernière section `## Changelog`** du fichier API `<slug>.md` (diff structurel cumulatif + notes de release).
43
+
44
+ ### Types partagés
45
+
46
+ Certaines propriétés d'API référencent un type énuméré documenté à part (ex: `LuccaIcon`, `BubbleIllustration`) :
47
+
48
+ `./references/types/<TypeName>.md`
49
+
50
+ Le lien exact (nom et chemin du type) est donné dans la section « Type definitions » du fichier API du composant. Tous les composants n'ont pas de types partagés.
51
+
52
+ ### Documentation transverse
53
+
54
+ `https://lucca-front.lucca.io/v22.0.6-rc.1/storybook/llms/references/documentation/<dossier>/<slug>.md`
55
+
56
+ ### Outils
57
+
58
+ `./references/tools/<slug>.md`
59
+ Slugs : animations, mixins, numbers, scrollbox, utilitaires, angular-api (providers/tokens/pipes/services des packages sans composant, avec leurs dépréciations)
60
+
61
+ ### Migrations (montée de version)
62
+
63
+ `./references/migrations.md` — codemods de migration (`ng generate @lucca-front/ng:<nom>`) cumulatifs jusqu'à cette version, avec leur version d'introduction.
64
+
65
+ ### Correctifs de patch (fixes/)
66
+
67
+ `./fixes/<M-m-p>.md` — un fichier par patch publié de la mineure (delta vs le patch précédent : API, types partagés, codemods, sources de stories). _(aucun patch publié après le .0 pour l'instant)_
68
+
69
+ À consulter quand : le projet est sur un patch **antérieur** à 22.0.0 (les fixes postérieurs à sa version décrivent des correctifs absents de son code), ou pour comprendre ce qu'un patch précis a changé.
70
+
71
+ ### Exemple
72
+
73
+ Bouton → API : `./references/components/button/button.md`, Figma : `https://lucca-front.lucca.io/v22.0.6-rc.1/storybook/llms/references/components/button/button.figma.md`
74
+
75
+ ## 3. Quand consulter quoi
76
+
77
+ | Cas d'usage | Consulter |
78
+ |-------------|-----------|
79
+ | Écrire du code Angular | API (.md) → Exemples (.component.md) → section `## Changelog` du .md |
80
+ | Intégrer depuis maquette Figma | Figma (.figma.md) → Tokens → Guidelines dev UI |
81
+ | Créer une maquette Figma (Code → Figma) | Figma (.figma.md) → Design (`<slug>.design.md`) |
82
+ | Review de code | API → Guidelines dev UI → Contenu (si textes) → Patterns (si UX) |
83
+ | Conventions de rédaction | Contenu (dossier `content/`) |
84
+ | Design patterns | Patterns (dossier `patterns/`) |
85
+ | Tokens CSS | Tokens (dossier `tokens/`) |
86
+ | Mixins / animations SCSS | Outils (dossier `tools/`) |
87
+ | Composant déprécié | `https://lucca-front.lucca.io/v22.0.6-rc.1/storybook/llms/references/documentation/deprecated/deprecated.md` |
88
+ | Monter de version | `./references/migrations.md` + la section `## Changelog` du `<slug>.md` de chaque composant touché |
89
+ | Projet sur un patch antérieur à 22.0.0 / comportement inattendu sur un patch | `./fixes/<M-m-p>.md` |
90
+
91
+ ## 4. Workflow Code
92
+
93
+ 1. Lis l'API du composant (`<slug>.md`) — selectors, inputs, types exacts.
94
+ 2. Consulte les exemples (`<slug>.component.md`) — chaque story est une section `###`.
95
+ 3. Vérifie la section `## Changelog` (fin du `<slug>.md`) si comportement inattendu.
96
+
97
+ ⚠️ Ne te fie **jamais** à ta mémoire pour les noms de propriétés ou types. Seul le `.md` fait foi.
98
+
99
+ ## 5. Workflow Code → Figma
100
+
101
+ 1. Lis le fichier Figma (`<slug>.figma.md`) — variantes, node IDs, liens Figma.
102
+ 2. Utilise les **noms Figma** (pas Angular) pour les propriétés. Ils peuvent différer.
103
+ 3. Pour les guidelines visuelles → `<slug>.design.md`.
104
+
105
+ ⚠️ Les `.figma.md` reflètent l'état actuel de Figma.
106
+
107
+ ## 6. Composants
108
+
109
+ - activity-feed
110
+ - animations
111
+ - api-select
112
+ - app-layout
113
+ - approbation-inbox
114
+ - avatar
115
+ - box
116
+ - breadcrumbs
117
+ - bubble-icon
118
+ - bubble-illustration
119
+ - button
120
+ - calendar
121
+ - calendar2
122
+ - callout
123
+ - callout-disclosure
124
+ - callout-popover
125
+ - card
126
+ - checkbox
127
+ - chip
128
+ - clear
129
+ - code
130
+ - color
131
+ - color-input
132
+ - color-picker
133
+ - comment
134
+ - container
135
+ - core-select-department
136
+ - core-select-establishment
137
+ - core-select-job-qualification
138
+ - core-select-occupation-category
139
+ - core-select-user
140
+ - data-presentation
141
+ - data-table
142
+ - date
143
+ - dateinput
144
+ - daterangeinput
145
+ - departmentselect
146
+ - dialog
147
+ - divider
148
+ - dropdown
149
+ - duration-picker
150
+ - empty-state
151
+ - errorpage
152
+ - establishmentselect
153
+ - fancy-dialog
154
+ - fancybox
155
+ - fieldset
156
+ - filedropzone
157
+ - fileentry
158
+ - fileupload
159
+ - filterbar
160
+ - filterpills
161
+ - footer
162
+ - form
163
+ - form-field
164
+ - form-header
165
+ - form-label
166
+ - gauge
167
+ - grid
168
+ - highlight-data
169
+ - highlight-section
170
+ - highlight-text
171
+ - horizontalnavigation
172
+ - icons
173
+ - impersonation
174
+ - index-table
175
+ - inlinemessage
176
+ - input-framed
177
+ - link
178
+ - listbox
179
+ - listing
180
+ - loading
181
+ - main-layout
182
+ - mobile-push
183
+ - mobileheader
184
+ - mobilenavigation
185
+ - modal
186
+ - multi-select
187
+ - multilanguagefield
188
+ - newbadge
189
+ - number-format-input
190
+ - number-input
191
+ - numbers
192
+ - numericbadge
193
+ - onboarding-empty-state
194
+ - pageheader
195
+ - pagination
196
+ - phonenumberfield
197
+ - plg-push
198
+ - popover
199
+ - popover2
200
+ - progress-bar
201
+ - progress-stepper
202
+ - radiofield
203
+ - readmore
204
+ - resource-card
205
+ - richtextinput
206
+ - scroll
207
+ - scrollbox
208
+ - section-empty-state
209
+ - segmented-control-tabs
210
+ - segmentedcontrol
211
+ - select
212
+ - select-templating
213
+ - sidepanel
214
+ - simple-select
215
+ - skeleton
216
+ - skiplinks
217
+ - software-icon
218
+ - sortable-list
219
+ - statusbadge
220
+ - switchfield
221
+ - tableofcontent
222
+ - tags
223
+ - text-flow
224
+ - textareafield
225
+ - textfield
226
+ - tile
227
+ - time
228
+ - time-picker
229
+ - timelines
230
+ - title-and-text
231
+ - toasts
232
+ - tooltip
233
+ - treeselect
234
+ - user-select
235
+ - userpopover
236
+ - verticalnavigation
237
+
238
+ ## 7. Documentation transverse
239
+
240
+ - **Tokens** (dossier `tokens/`) : Couleurs (`couleurs`), Typographie (`typographie`), Espacements (`espacements`), Élévations (`elevations`), Arrondis (`arrondis`), Design tokens (`design-tokens`), Noms des logiciels (`noms-de-logiciels`)
241
+ - **Contenu & Rédaction** (dossier `content/`) : Notre voix, 100 % humaine (`voix-humaine`), Règles de ponctuation, de typographie (`ponctuation-typographie`), Grammaire, orthographe (`grammaire-orthographe`), Singulier ou pluriel ? (`singulier-pluriel`), Possessifs « mon, ma, mes, votre, vos » et pronoms « je, vous » (`possessifs-pronoms`), Infinitif ou impératif ? (`infinitif-imperatif`), Verbes d'action à utiliser (`verbes-action`), Nombres (`nombres`), Dates (`dates`), Accessibilité (`accessibilite-contenu`), 4 critères essentiels pour notre contenu (`criteres-essentiels`), Blocage sur le contenu ? (`blocage-contenu`), Face au jargon, que faire ? (`jargon`), Ressources pour définitions (`ressources-definitions`), Tester clarté et efficacité du contenu (`tester-clarte`), Messages d'erreur (`messages-erreur`)
242
+ - **Guidelines** (dossier `guidelines/`) : Guidelines dev UI (`guidelines-dev-ui`)
243
+ - **Design Patterns** (dossier `patterns/`) : Nos 10 principes Design (`regles-or`), Identification des pages (`identification-pages`), Card et box (`card-et-box`), Dialogs de confirmation (`dialogs-confirmation`), Actions de suppression (`actions-suppression`), Emails (`emails`), Feedback (`feedback`), Vues, filtres et navigation dans une page (`vues-filtres-navigation`), Structure en accordéon (`structure-accordeon`), Responsive design (`responsive-design`), Pattern IA (`pattern-ia`), Widgets (`widgets`), Cycle de vie d'une ressource (`cycle-vie-ressource`), Parcours de création de ressource : avec action de diffusion (`parcours-creation-ressource`), Parcours de création de ressource : sans action de diffusion (`parcours-creation-ressource-sans-diffusion`), Conception d'un formulaire (`conception-formulaire`), Gestion des erreurs (`gestion-erreurs-formulaire`), Champs conditionnels (`champs-conditionnels`), Quitter un formulaire (`quitter-formulaire`), Aide contextuelle (`aide-contextuelle`), Champs effaçables (`champs-effacables`), Placeholders (`placeholders`), Modes d’affichage (`modes-affichage`), Traduction d'un formulaire (`traduction-formulaire`), Navigation mobile (`navigation-mobile`), Push Notification mobile (`push-notification-mobile`)
244
+
245
+ ## 8. Composants dépréciés
246
+
247
+ Consulte `https://lucca-front.lucca.io/v22.0.6-rc.1/storybook/llms/references/documentation/deprecated/deprecated.md` avant d'utiliser un composant inconnu.
248
+ Ne génère **jamais** de code utilisant un composant déprécié — propose son remplacement.