@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
@@ -0,0 +1,462 @@
1
+ # dialog — Code & Implementation
2
+
3
+ 📖 [Storybook documentation](https://lucca-front.lucca.io/v22.0.0/storybook/?path=/docs/documentation-overlays-dialog-basic--docs)
4
+
5
+ ## Angular
6
+
7
+ Component selector : `lu-dialog`
8
+
9
+ ### Basic
10
+
11
+ ```html
12
+ <div class="dialog_backdrop"></div>
13
+ <div role="dialog" aria-modal="true" aria-labelledby="dialogInsideHeaderTitle1" class="dialog">
14
+ <div class="dialog-inside">
15
+ <form class="dialog-inside-formOptional">
16
+ <header class="dialog-inside-header">
17
+ <button type="button" class="dialog-inside-header-button button">
18
+ <span class="lucca-icon icon-signClose" aria-hidden="true"></span>
19
+ <span class="pr-u-mask">Fermer</span>
20
+ </button>
21
+ <div class="dialog-inside-header-container">
22
+ <h1 class="dialog-inside-header-container-title" id="dialogInsideHeaderTitle1">Title</h1>
23
+ </div>
24
+ </header>
25
+ <div class="dialog-inside-content">dialog</div>
26
+ <footer class="dialog-inside-footer footer">
27
+ <div class="footer-actions">
28
+ <button type="submit" class="button">Action</button>
29
+ <button type="button" class="button mod-ghost">Action</button>
30
+ </div>
31
+ </footer>
32
+ </form>
33
+ </div>
34
+ </div>
35
+ ```
36
+
37
+ ### Confirmation
38
+
39
+ ```js
40
+ import { ChangeDetectionStrategy, Component, inject } from '@angular/core';
41
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
42
+ import { ButtonComponent } from '@lucca-front/ng/button';
43
+ import { DialogCloseDirective, DialogComponent, DialogContentComponent, DialogDismissDirective, DialogFooterComponent, DialogHeaderAction, DialogHeaderComponent, DialogOpenDirective, LuDialogConfig, LuDialogService } from '@lucca-front/ng/dialog';
44
+ import { FormFieldComponent } from '@lucca-front/ng/form-field';
45
+ import { CheckboxInputComponent, TextInputComponent } from '@lucca-front/ng/forms';
46
+ import { IconComponent } from '@lucca-front/ng/icon';
47
+ ```
48
+
49
+ ```html
50
+ <lu-dialog #dialog>
51
+ <lu-dialog-header>
52
+ <h1>Confirmation</h1>
53
+ </lu-dialog-header>
54
+ <lu-dialog-content>Lorem ipsum dolor</lu-dialog-content>
55
+ <lu-dialog-footer>
56
+ <div class="footer-actions">
57
+ <button type="button" luButton luDialogClose>Confirm</button>
58
+ <button type="button" luButton="ghost">Cancel</button>
59
+ </div>
60
+ </lu-dialog-footer>
61
+ </lu-dialog>
62
+ ```
63
+
64
+ ### Multiple
65
+
66
+ ```js
67
+ import { OVERLAY_DEFAULT_CONFIG } from '@angular/cdk/overlay';
68
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
69
+ import { ButtonComponent } from '@lucca-front/ng/button';
70
+ import { configureLuDialog, DialogCloseDirective, DialogComponent, DialogContentComponent, DialogDismissDirective, DialogFooterComponent, DialogHeaderAction, DialogHeaderComponent, DialogOpenDirective } from '@lucca-front/ng/dialog';
71
+ import { FormFieldComponent } from '@lucca-front/ng/form-field';
72
+ import { CheckboxInputComponent, TextInputComponent } from '@lucca-front/ng/forms';
73
+ import { IconComponent } from '@lucca-front/ng/icon';
74
+ ```
75
+
76
+ ```html
77
+ @let config = { mode: "drawer", autoFocus: ".open" };
78
+
79
+ <button class="open" luButton="outlined" [luDialogOpen]="dialogTpl1" [luDialogConfig]="config">Open Dialog</button>
80
+
81
+ <ng-template #dialogTpl1>
82
+ <lu-dialog #dialog stacked>
83
+ <lu-dialog-header>
84
+ <h1>Dialog 1</h1>
85
+ </lu-dialog-header>
86
+ <lu-dialog-content>
87
+ <button class="open" luButton="outlined" [luDialogOpen]="dialogTpl2" [luDialogConfig]="config">
88
+ Open Dialog
89
+ </button>
90
+ </lu-dialog-content>
91
+ <lu-dialog-footer>
92
+ <div class="footer-actions">
93
+ <button type="button" luButton luDialogClose>Confirm</button>
94
+ <button type="button" luButton="ghost" luDialogDismiss>Cancel</button>
95
+ </div>
96
+ </lu-dialog-footer>
97
+ </lu-dialog>
98
+ </ng-template>
99
+
100
+ <ng-template #dialogTpl2>
101
+ <lu-dialog #dialog stacked>
102
+ <lu-dialog-header>
103
+ <h1>Dialog 2</h1>
104
+ </lu-dialog-header>
105
+ <lu-dialog-content>
106
+ <button class="open" luButton="outlined" [luDialogOpen]="dialogTpl3" [luDialogConfig]="config">
107
+ Open Dialog
108
+ </button>
109
+ </lu-dialog-content>
110
+ <lu-dialog-footer>
111
+ <div class="footer-actions">
112
+ <button type="button" luButton luDialogClose>Confirm</button>
113
+ <button type="button" luButton="ghost" luDialogDismiss>Cancel</button>
114
+ </div>
115
+ </lu-dialog-footer>
116
+ </lu-dialog>
117
+ </ng-template>
118
+
119
+ <ng-template #dialogTpl3>
120
+ <lu-dialog #dialog stacked>
121
+ <lu-dialog-header>
122
+ <h1>Dialog 3</h1>
123
+ </lu-dialog-header>
124
+ <lu-dialog-content>
125
+ <button class="open" luButton="outlined" [luDialogOpen]="dialogTpl4" [luDialogConfig]="config">
126
+ Open Dialog
127
+ </button>
128
+ </lu-dialog-content>
129
+ <lu-dialog-footer>
130
+ <div class="footer-actions">
131
+ <button type="button" luButton luDialogClose>Confirm</button>
132
+ <button type="button" luButton="ghost" luDialogDismiss>Cancel</button>
133
+ </div>
134
+ </lu-dialog-footer>
135
+ </lu-dialog>
136
+ </ng-template>
137
+
138
+ <ng-template #dialogTpl4>
139
+ <lu-dialog #dialog stacked>
140
+ <lu-dialog-header>
141
+ <h1>Dialog 4</h1>
142
+ </lu-dialog-header>
143
+ <lu-dialog-content>
144
+ <button class="open" luButton="outlined" [luDialogOpen]="dialogTpl5" [luDialogConfig]="config">
145
+ Open Dialog
146
+ </button>
147
+ </lu-dialog-content>
148
+ <lu-dialog-footer>
149
+ <div class="footer-actions">
150
+ <button type="button" luButton luDialogClose>Confirm</button>
151
+ <button type="button" luButton="ghost" luDialogDismiss>Cancel</button>
152
+ </div>
153
+ </lu-dialog-footer>
154
+ </lu-dialog>
155
+ </ng-template>
156
+
157
+ <ng-template #dialogTpl5>
158
+ <lu-dialog #dialog stacked>
159
+ <lu-dialog-header>
160
+ <h1>Dialog 5</h1>
161
+ </lu-dialog-header>
162
+ <lu-dialog-content>
163
+ <button class="open" luButton="outlined">This is the end</button>
164
+ </lu-dialog-content>
165
+ <lu-dialog-footer>
166
+ <div class="footer-actions">
167
+ <button type="button" luButton luDialogClose>Confirm</button>
168
+ <button type="button" luButton="ghost" luDialogDismiss>Cancel</button>
169
+ </div>
170
+ </lu-dialog-footer>
171
+ </lu-dialog>
172
+ </ng-template>
173
+ ```
174
+
175
+ ### Dialog
176
+
177
+ `LuDialogService` sert à ouvrir des dialog à travers vos applications, avec tous les attributs et la structure nécessaires à une bonne accessibilité.
178
+
179
+ Il peut être utilisé de deux manières principales: via le service ou via les directives (template-driven)
180
+
181
+ ### Imports et providers
182
+
183
+ Afin de pouvoir utiliser `LuDialogService` , vous devez appeler la fonction `configureLuDialog` en tant qu’`EnvironmentProvider` , idéalement dans `bootstrapApplication`:
184
+
185
+ Puis dans le composant qui va ouvrir votre dialog box, appelez `provideLuDialog` dans les providers:
186
+
187
+ ### Via le service
188
+
189
+ Pour ouvrir une dialog via le service, vous pouvez simplement appeler la méthode `LuDialogService.open(options: LuDialogConfig)`:
190
+
191
+ #### Envoyer des données à la dialog
192
+
193
+ Le système de dialog propose une approche qui se repose sur le composant qui contient le contenu du dialog, ce qui signifie que tout le typage se passe à un seul endroit: dans le composant.
194
+
195
+ La fonction `injectDialogData` sert à récupérer les données et sert au service à inférer le type de données attendues, la fonction `injectDialogRef`, quand à elle, permet de déclarer le type de données retournées pour un bon typage dans la `DialogRef`
196
+
197
+ Une fois le composant créé, la méthode `LuDialogService.open(options: LuDialogConfig)` vérifiera à la compilation que les options sont conformes:
198
+
199
+ #### Récupérer le résultat du dialog
200
+
201
+ `LuDialogRef` possède trois observables qui permettent de réagir aux résultats possibles de l'ouverture d'une dialog:
202
+
203
+ - `result$` permet d'observer le résultat renvoyé par un appel à la méthode `close`, si la dialog est fermé via la méthode `dismiss`, rien ne sera émis et l'observable complètera.
204
+ - `dismissed$` permet de savoir quand la dialog est fermé via un appel à la méthode `dismiss`, utilisée par défaut pour le click sur le backdrop, la croix de fermeture ou la touche Echap.
205
+ - `closed$` fusionne les deux observables ci-dessus et renvoie donc soit le résultat, soit `undefined`, en fonction de la façon donc la dialog a été fermé.
206
+
207
+ Gardons `MyDialogComponent` comme exemple:
208
+
209
+ ### Via le template
210
+
211
+ Pour créer et ouvrir une dialog depuis le template, vous pouvez utiliser les directives et composants mises à disposition:
212
+
213
+ - `luDialogOpen` qui permet de déclencher une ouverture de dialog au click sur l'élément qui porte la directive.
214
+ - `lu-dialog` pour créer le template de la dialog à ouvrir.
215
+ - `luDialogClose` pour fermer la dialog via la méthode `close` lors du click sur son élément hôte.
216
+ - `luDialogDismiss` pour fermer la dialog via la méthode `dismiss` lors du click sur son élément hôte.
217
+
218
+ #### Envoyer et reçevoir des données en Template-driven
219
+
220
+ Du fait que tout soit géré depuis le template, vous pouvez totalement ignorer la partie transmission de données car par définition,
221
+ la dialog box a accès à tout ce que le composant expose au template, fonctions et propriétés.
222
+
223
+ ### Utilisation des formulaires
224
+
225
+ Dans le cas où vous souhaitez utiliser un formulaire au sein d’une [dialog box](https://prisme.lucca.io/94310e217/p/841b0b-dialogs), il vous suffit de placer la balise `form` avec un attribut `luForm` autour du contenu de votre dialog, que celle-ci soit template-driven ou non :
226
+
227
+ ```js
228
+ import { configureLuDialog } from '@lucca-front/ng/dialog';
229
+ import { provideLuDialog } from '@lucca-front/ng/dialog';
230
+ import {DialogHeaderAction} from '@lucca-front/ng/dialog';
231
+ import { HorizontalNavigationComponent, HorizontalNavigationTabComponent } from '@lucca-front/ng/horizontal-navigation';
232
+ import { FormComponent } from '@lucca-front/ng/form';
233
+ import { FormFieldComponent } from '@lucca-front/ng/form-field';
234
+ import { CheckboxInputComponent, TextInputComponent } from '@lucca-front/ng/forms';
235
+ ```
236
+
237
+ ```ts
238
+ bootstrapApplication(App, {
239
+ providers: [configureLuDialog()],
240
+ });
241
+ ```
242
+
243
+ ```ts
244
+ @Component({
245
+ selector: 'my-component',
246
+ ...
247
+ providers: [provideLuDialog()]
248
+ })
249
+ ```
250
+
251
+ ```ts
252
+ // Tout d'abord, on récupère le service via injection
253
+ #dialog = inject(LuDialogService);
254
+
255
+ openDialog(): void {
256
+ // On appele la méthode open en lui passant un Component en content, vous pouvez également passer un TemplateRef
257
+ const dialogRef = this.#dialog.open({
258
+ content: ExampleDialogComponent
259
+ });
260
+ }
261
+ ```
262
+
263
+ ```ts
264
+ @Component({
265
+ selector: 'my-dialog',
266
+ template: `...`,
267
+ })
268
+ export class MyDialogComponent {
269
+ /**
270
+ * Vous pouvez nommer le champ de données comme vous le souhaitez, celui-ci sera automatiquement retrouvé par le service.
271
+ *
272
+ * Cependant, il doit obligatoirement être public.
273
+ */
274
+ myData = injectDialogData<{ name: string; height?: number }>();
275
+
276
+ /**
277
+ * Ici on récupère la référence au dialog ouvert et on en profite pour déclarer que ce dialog retourne un `boolean`
278
+ *
279
+ * Tout comme pour `injectDialogData`, le nom du champ importe peu, du moment qu'il est public.
280
+ */
281
+ ref = injectDialogRef<boolean>();
282
+
283
+ close(): void {
284
+ /**
285
+ * Le type de données passé à la méthode close doit correspondre au type passe à `injectDialogRef`
286
+ *
287
+ * Ce type à une valeur par défaut à `void`, donc aucune donnée ne doit être passée si aucun type n'est passé à `injectDialogRef`
288
+ */
289
+ this.ref.close(true);
290
+ }
291
+ }
292
+ ```
293
+
294
+ ```ts
295
+ this.#dialog.open({
296
+ content: MyDialogComponent,
297
+ data: { name: 'toto' }, // Fonctionne, seul name est required
298
+ });
299
+
300
+ this.#dialog.open({
301
+ content: MyDialogComponent,
302
+ // Erreur: aucun data fourni alors que le composant en a besoin
303
+ });
304
+
305
+ this.#dialog.open({
306
+ content: MyDialogComponent,
307
+ data: 25, // Erreur: data non conforme à l'interface demandée
308
+ });
309
+ ```
310
+
311
+ ```ts
312
+ const dialogRef = this.#dialog.open({
313
+ content: MyDialogComponent,
314
+ data: { name: 'toto' }, // On passe des data pour que ça fonctionne
315
+ });
316
+
317
+ // Cette logique ne sera pas déclenchée si l'utilisateur ferme la dialog via la touche Echap., la croix de fermeture ou un click sur le backdrop.
318
+ dialogRef.result$
319
+ .pipe(
320
+ switchMap((res: boolean) => {
321
+ return this.serviceMetier.modifierTruc(res);
322
+ }),
323
+ )
324
+ .subscribe(() => {
325
+ this.notification.success('Opération réussie');
326
+ });
327
+ ```
328
+
329
+ ```html
330
+ <!-- config: {"size":"M","alert":false,"mode":"default","panelClasses":[],"surfaceDefault":false} -->
331
+
332
+ <button luButton [luDialogOpen]="dialogTpl" [luDialogConfig]="config">Open Template-driven Dialog</button>
333
+
334
+ <ng-template #dialogTpl>
335
+ <lu-dialog #dialog>
336
+ <lu-dialog-header>
337
+ <h1>Template driven header</h1>
338
+ <p dialogHeaderSubtitle>Subtitle</p>
339
+ <p dialogHeaderContent>You can also add more content in header</p>
340
+ </lu-dialog-header>
341
+
342
+ <lu-dialog-content>Template-driven content</lu-dialog-content>
343
+
344
+ <lu-dialog-footer>
345
+ <div class="footer-actions">
346
+ <button type="button" luButton luDialogClose>Confirm</button>
347
+ <button type="button" luButton="ghost" luDialogDismiss>Cancel</button>
348
+ </div>
349
+ </lu-dialog-footer>
350
+ </lu-dialog>
351
+ </ng-template>
352
+ ```
353
+
354
+ ```html
355
+ <!-- config: {"size":"S","alert":false,"mode":"default","autoFocus":"first-tabbable"} -->
356
+
357
+ <button luButton [luDialogOpen]="dialogTpl" [luDialogConfig]="config">Open Template-driven Dialog</button>
358
+
359
+ <ng-template #dialogTpl>
360
+ <lu-dialog #dialog>
361
+ <lu-dialog-header>Template driven header</lu-dialog-header>
362
+
363
+ <lu-dialog-content>
364
+ <lu-form-field label="Example input">
365
+ <lu-text-input [ngModel]="example" placeholder="This will be focused if autoFocus is set to first-input" />
366
+ </lu-form-field>
367
+ </lu-dialog-content>
368
+
369
+ <lu-dialog-footer>
370
+ <div class="footer-actions">
371
+ <button type="button" luButton luDialogClose>Confirm</button>
372
+ <button type="button" luButton="ghost" luDialogDismiss>Cancel</button>
373
+ </div>
374
+ </lu-dialog-footer>
375
+ </lu-dialog>
376
+ </ng-template>
377
+ ```
378
+
379
+ ```html
380
+ <!-- config: {"size":"S","alert":false,"mode":"default","autoFocus":"first-tabbable"} -->
381
+
382
+ <button luButton [luDialogOpen]="dialogTpl" [luDialogConfig]="config">
383
+ Open Template-driven Dialog with Form inside
384
+ </button>
385
+
386
+ <ng-template #dialogTpl>
387
+ <lu-dialog #dialog>
388
+ <!--form = new FormGroup({
389
+ example: new FormControl('', Validators.required)
390
+ })-->
391
+ <form luForm [formGroup]="form">
392
+ <lu-dialog-header><h1>Template driven header</h1></lu-dialog-header>
393
+
394
+ <lu-dialog-content>
395
+ <lu-form-field label="Example input">
396
+ <lu-text-input
397
+ formControlName="example"
398
+ placeholder="This will be focused if autoFocus is set to first-input"
399
+ />
400
+ </lu-form-field>
401
+ </lu-dialog-content>
402
+
403
+ <lu-dialog-footer>
404
+ <div class="footer-actions">
405
+ <button type="submit" luButton luDialogClose>Submit</button>
406
+ <button type="button" luButton="ghost" luDialogDismiss>Cancel</button>
407
+ </div>
408
+ </lu-dialog-footer>
409
+ </form>
410
+ </lu-dialog>
411
+ </ng-template>
412
+ ```
413
+
414
+ ```html
415
+ <button luButton [luDialogOpen]="dialogTpl" [luDialogConfig]="config">Open Template-driven Dialog with action</button>
416
+
417
+ <ng-template #dialogTpl>
418
+ <lu-dialog #dialog>
419
+ <lu-dialog-header>
420
+ Template driven header
421
+ <ng-container dialogHeaderAction>
422
+ <button luButton="ghost" size="S"><lu-icon icon="menuDots" alt="More options" /></button>
423
+ </ng-container>
424
+ </lu-dialog-header>
425
+
426
+ <lu-dialog-content>Template-driven content</lu-dialog-content>
427
+
428
+ <lu-dialog-footer>
429
+ <div class="footer-actions">
430
+ <button type="button" luButton luDialogClose>Confirm</button>
431
+ <button type="button" luButton="ghost" luDialogDismiss>Cancel</button>
432
+ </div>
433
+ </lu-dialog-footer>
434
+ </lu-dialog>
435
+ </ng-template>
436
+ ```
437
+
438
+ ```html
439
+ <button luButton [luDialogOpen]="dialogTpl" [luDialogConfig]="{ mode: 'fancy' }">
440
+ Open Template-driven Fancy Dialog
441
+ </button>
442
+
443
+ <ng-template #dialogTpl>
444
+ <lu-dialog #dialog fancyIllustration="install" class="palette-undefined">
445
+ <lu-dialog-header>
446
+ <h1>Félicitations, votre souscription est terminée</h1>
447
+ </lu-dialog-header>
448
+ <lu-dialog-content>Votre contrat signé vous a été envoyé par email.</lu-dialog-content>
449
+ <lu-dialog-footer>
450
+ <div class="footer-actions">
451
+ <button type="button" luButton="outlined" luDialogClose>Fermer</button>
452
+ </div>
453
+ </lu-dialog-footer>
454
+ </lu-dialog>
455
+ </ng-template>
456
+ ```
457
+
458
+ ## HTML/CSS
459
+
460
+ Classe CSS : `.dialog`
461
+
462
+ 💡 L'ouverture d'une fenêtre de dialogue désactive le plan de document du reste de la page. Son titre doit donc être contenu dans une balise `<h1>` afin de rester valide.