@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.
- package/README.md +6 -0
- package/fesm2022/lucca-front-ng-approbation-inbox.mjs +5 -4
- package/fesm2022/lucca-front-ng-approbation-inbox.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-dialog.mjs +22 -15
- package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-filter-pills.mjs +4 -4
- package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-scroll.mjs +2 -3
- package/fesm2022/lucca-front-ng-scroll.mjs.map +1 -1
- package/llms/SKILL.md +248 -0
- package/llms/references/components/activity-feed/activity-feed.component.md +292 -0
- package/llms/references/components/activity-feed/activity-feed.md +90 -0
- package/llms/references/components/animations/animations.component.md +11 -0
- package/llms/references/components/animations/animations.md +7 -0
- package/llms/references/components/api-select/api-select.md +40 -0
- package/llms/references/components/app-layout/app-layout.component.md +65 -0
- package/llms/references/components/app-layout/app-layout.md +81 -0
- package/llms/references/components/approbation-inbox/approbation-inbox.component.md +960 -0
- package/llms/references/components/approbation-inbox/approbation-inbox.md +135 -0
- package/llms/references/components/avatar/avatar.component.md +563 -0
- package/llms/references/components/avatar/avatar.md +93 -0
- package/llms/references/components/box/box.component.md +119 -0
- package/llms/references/components/box/box.md +88 -0
- package/llms/references/components/breadcrumbs/breadcrumbs.component.md +59 -0
- package/llms/references/components/breadcrumbs/breadcrumbs.md +87 -0
- package/llms/references/components/bubble-icon/bubble-icon.component.md +56 -0
- package/llms/references/components/bubble-icon/bubble-icon.md +72 -0
- package/llms/references/components/bubble-illustration/bubble-illustration.component.md +54 -0
- package/llms/references/components/bubble-illustration/bubble-illustration.md +77 -0
- package/llms/references/components/button/button.component.md +252 -0
- package/llms/references/components/button/button.md +124 -0
- package/llms/references/components/calendar/calendar.component.md +708 -0
- package/llms/references/components/calendar/calendar.md +104 -0
- package/llms/references/components/calendar2/calendar2.md +64 -0
- package/llms/references/components/callout/callout.component.md +237 -0
- package/llms/references/components/callout/callout.md +243 -0
- package/llms/references/components/callout-disclosure/callout-disclosure.component.md +230 -0
- package/llms/references/components/callout-disclosure/callout-disclosure.md +196 -0
- package/llms/references/components/callout-popover/callout-popover.component.md +170 -0
- package/llms/references/components/callout-popover/callout-popover.md +201 -0
- package/llms/references/components/card/card.component.md +62 -0
- package/llms/references/components/card/card.md +8 -0
- package/llms/references/components/checkbox/checkbox.component.md +50 -0
- package/llms/references/components/checkbox/checkbox.md +74 -0
- package/llms/references/components/chip/chip.component.md +131 -0
- package/llms/references/components/chip/chip.md +95 -0
- package/llms/references/components/clear/clear.component.md +38 -0
- package/llms/references/components/clear/clear.md +79 -0
- package/llms/references/components/code/code.component.md +33 -0
- package/llms/references/components/code/code.md +47 -0
- package/llms/references/components/color/color.md +32 -0
- package/llms/references/components/color-input/color-input.md +33 -0
- package/llms/references/components/color-picker/color-picker.component.md +29 -0
- package/llms/references/components/color-picker/color-picker.md +25 -0
- package/llms/references/components/comment/comment.component.md +436 -0
- package/llms/references/components/comment/comment.md +125 -0
- package/llms/references/components/container/container.component.md +41 -0
- package/llms/references/components/container/container.md +74 -0
- package/llms/references/components/core-select-department/core-select-department.md +37 -0
- package/llms/references/components/core-select-establishment/core-select-establishment.md +40 -0
- package/llms/references/components/core-select-job-qualification/core-select-job-qualification.md +25 -0
- package/llms/references/components/core-select-occupation-category/core-select-occupation-category.md +25 -0
- package/llms/references/components/core-select-user/core-select-user.md +75 -0
- package/llms/references/components/data-presentation/data-presentation.component.md +47 -0
- package/llms/references/components/data-presentation/data-presentation.md +49 -0
- package/llms/references/components/data-table/data-table.component.md +1603 -0
- package/llms/references/components/data-table/data-table.md +290 -0
- package/llms/references/components/date/date.component.md +31 -0
- package/llms/references/components/date/date.md +140 -0
- package/llms/references/components/dateinput/dateinput.component.md +99 -0
- package/llms/references/components/dateinput/dateinput.md +198 -0
- package/llms/references/components/daterangeinput/daterangeinput.component.md +49 -0
- package/llms/references/components/daterangeinput/daterangeinput.md +186 -0
- package/llms/references/components/departmentselect/departmentselect.component.md +43 -0
- package/llms/references/components/departmentselect/departmentselect.md +43 -0
- package/llms/references/components/dialog/dialog.component.md +462 -0
- package/llms/references/components/dialog/dialog.md +335 -0
- package/llms/references/components/divider/divider.component.md +35 -0
- package/llms/references/components/divider/divider.md +88 -0
- package/llms/references/components/dropdown/dropdown.component.md +272 -0
- package/llms/references/components/dropdown/dropdown.md +172 -0
- package/llms/references/components/duration-picker/duration-picker.md +155 -0
- package/llms/references/components/empty-state/empty-state.component.md +226 -0
- package/llms/references/components/empty-state/empty-state.md +62 -0
- package/llms/references/components/errorpage/errorpage.component.md +57 -0
- package/llms/references/components/errorpage/errorpage.md +75 -0
- package/llms/references/components/establishmentselect/establishmentselect.component.md +30 -0
- package/llms/references/components/establishmentselect/establishmentselect.md +42 -0
- package/llms/references/components/fancy-dialog/fancy-dialog.component.md +9 -0
- package/llms/references/components/fancy-dialog/fancy-dialog.md +107 -0
- package/llms/references/components/fancybox/fancybox.component.md +48 -0
- package/llms/references/components/fancybox/fancybox.md +75 -0
- package/llms/references/components/fieldset/fieldset.component.md +86 -0
- package/llms/references/components/fieldset/fieldset.md +119 -0
- package/llms/references/components/filedropzone/filedropzone.component.md +16 -0
- package/llms/references/components/filedropzone/filedropzone.md +61 -0
- package/llms/references/components/fileentry/fileentry.component.md +58 -0
- package/llms/references/components/fileentry/fileentry.md +246 -0
- package/llms/references/components/fileupload/fileupload.component.md +91 -0
- package/llms/references/components/fileupload/fileupload.md +246 -0
- package/llms/references/components/filterbar/filterbar.component.md +302 -0
- package/llms/references/components/filterbar/filterbar.md +134 -0
- package/llms/references/components/filterpills/filterpills.component.md +60 -0
- package/llms/references/components/filterpills/filterpills.md +180 -0
- package/llms/references/components/footer/footer.component.md +66 -0
- package/llms/references/components/footer/footer.md +115 -0
- package/llms/references/components/form/form.md +37 -0
- package/llms/references/components/form-field/form-field.component.md +46 -0
- package/llms/references/components/form-field/form-field.md +231 -0
- package/llms/references/components/form-header/form-header.md +29 -0
- package/llms/references/components/form-label/form-label.component.md +106 -0
- package/llms/references/components/form-label/form-label.md +98 -0
- package/llms/references/components/gauge/gauge.component.md +55 -0
- package/llms/references/components/gauge/gauge.md +73 -0
- package/llms/references/components/grid/grid.component.md +15 -0
- package/llms/references/components/grid/grid.md +112 -0
- package/llms/references/components/highlight-data/highlight-data.component.md +279 -0
- package/llms/references/components/highlight-data/highlight-data.md +115 -0
- package/llms/references/components/highlight-section/highlight-section.component.md +185 -0
- package/llms/references/components/highlight-section/highlight-section.md +48 -0
- package/llms/references/components/highlight-text/highlight-text.component.md +49 -0
- package/llms/references/components/highlight-text/highlight-text.md +29 -0
- package/llms/references/components/horizontalnavigation/horizontalnavigation.component.md +232 -0
- package/llms/references/components/horizontalnavigation/horizontalnavigation.md +95 -0
- package/llms/references/components/icons/icons.component.md +59 -0
- package/llms/references/components/icons/icons.md +185 -0
- package/llms/references/components/impersonation/impersonation.component.md +52 -0
- package/llms/references/components/impersonation/impersonation.md +52 -0
- package/llms/references/components/index-table/index-table.component.md +2528 -0
- package/llms/references/components/index-table/index-table.md +243 -0
- package/llms/references/components/inlinemessage/inlinemessage.component.md +58 -0
- package/llms/references/components/inlinemessage/inlinemessage.md +57 -0
- package/llms/references/components/input-framed/input-framed.component.md +714 -0
- package/llms/references/components/input-framed/input-framed.md +50 -0
- package/llms/references/components/link/link.component.md +153 -0
- package/llms/references/components/link/link.md +124 -0
- package/llms/references/components/listbox/listbox.component.md +11 -0
- package/llms/references/components/listbox/listbox.md +101 -0
- package/llms/references/components/listing/listing.component.md +366 -0
- package/llms/references/components/listing/listing.md +105 -0
- package/llms/references/components/loading/loading.component.md +37 -0
- package/llms/references/components/loading/loading.md +91 -0
- package/llms/references/components/main-layout/main-layout.component.md +146 -0
- package/llms/references/components/main-layout/main-layout.md +78 -0
- package/llms/references/components/mobile-push/mobile-push.component.md +62 -0
- package/llms/references/components/mobile-push/mobile-push.md +70 -0
- package/llms/references/components/mobileheader/mobileheader.component.md +31 -0
- package/llms/references/components/mobileheader/mobileheader.md +8 -0
- package/llms/references/components/mobilenavigation/mobilenavigation.component.md +43 -0
- package/llms/references/components/mobilenavigation/mobilenavigation.md +8 -0
- package/llms/references/components/modal/modal.component.md +37 -0
- package/llms/references/components/modal/modal.md +61 -0
- package/llms/references/components/multi-select/multi-select.component.md +39 -0
- package/llms/references/components/multi-select/multi-select.md +426 -0
- package/llms/references/components/multilanguagefield/multilanguagefield.component.md +84 -0
- package/llms/references/components/multilanguagefield/multilanguagefield.md +362 -0
- package/llms/references/components/newbadge/newbadge.component.md +23 -0
- package/llms/references/components/newbadge/newbadge.md +38 -0
- package/llms/references/components/number-format-input/number-format-input.md +46 -0
- package/llms/references/components/number-input/number-input.md +49 -0
- package/llms/references/components/numbers/numbers.component.md +46 -0
- package/llms/references/components/numbers/numbers.md +7 -0
- package/llms/references/components/numericbadge/numericbadge.component.md +66 -0
- package/llms/references/components/numericbadge/numericbadge.md +84 -0
- package/llms/references/components/onboarding-empty-state/onboarding-empty-state.md +47 -0
- package/llms/references/components/pageheader/pageheader.component.md +389 -0
- package/llms/references/components/pageheader/pageheader.md +144 -0
- package/llms/references/components/pagination/pagination.component.md +96 -0
- package/llms/references/components/pagination/pagination.md +107 -0
- package/llms/references/components/phonenumberfield/phonenumberfield.component.md +35 -0
- package/llms/references/components/phonenumberfield/phonenumberfield.md +131 -0
- package/llms/references/components/plg-push/plg-push.component.md +91 -0
- package/llms/references/components/plg-push/plg-push.md +82 -0
- package/llms/references/components/popover/popover.component.md +130 -0
- package/llms/references/components/popover/popover.md +235 -0
- package/llms/references/components/popover2/popover2.component.md +103 -0
- package/llms/references/components/popover2/popover2.md +89 -0
- package/llms/references/components/progress-bar/progress-bar.component.md +33 -0
- package/llms/references/components/progress-bar/progress-bar.md +51 -0
- package/llms/references/components/progress-stepper/progress-stepper.component.md +281 -0
- package/llms/references/components/progress-stepper/progress-stepper.md +70 -0
- package/llms/references/components/radiofield/radiofield.component.md +295 -0
- package/llms/references/components/radiofield/radiofield.md +122 -0
- package/llms/references/components/readmore/readmore.component.md +60 -0
- package/llms/references/components/readmore/readmore.md +88 -0
- package/llms/references/components/resource-card/resource-card.component.md +216 -0
- package/llms/references/components/resource-card/resource-card.md +106 -0
- package/llms/references/components/richtextinput/richtextinput.component.md +298 -0
- package/llms/references/components/richtextinput/richtextinput.md +275 -0
- package/llms/references/components/scroll/scroll.md +45 -0
- package/llms/references/components/scrollbox/scrollbox.component.md +63 -0
- package/llms/references/components/scrollbox/scrollbox.md +49 -0
- package/llms/references/components/section-empty-state/section-empty-state.component.md +9 -0
- package/llms/references/components/section-empty-state/section-empty-state.md +41 -0
- package/llms/references/components/segmented-control-tabs/segmented-control-tabs.md +50 -0
- package/llms/references/components/segmentedcontrol/segmentedcontrol.component.md +198 -0
- package/llms/references/components/segmentedcontrol/segmentedcontrol.md +108 -0
- package/llms/references/components/select/select.component.md +237 -0
- package/llms/references/components/select/select.md +57 -0
- package/llms/references/components/select-templating/select-templating.md +117 -0
- package/llms/references/components/sidepanel/sidepanel.component.md +56 -0
- package/llms/references/components/sidepanel/sidepanel.md +7 -0
- package/llms/references/components/simple-select/simple-select.component.md +39 -0
- package/llms/references/components/simple-select/simple-select.md +291 -0
- package/llms/references/components/skeleton/skeleton.component.md +133 -0
- package/llms/references/components/skeleton/skeleton.md +212 -0
- package/llms/references/components/skiplinks/skiplinks.component.md +91 -0
- package/llms/references/components/skiplinks/skiplinks.md +73 -0
- package/llms/references/components/software-icon/software-icon.component.md +61 -0
- package/llms/references/components/software-icon/software-icon.md +107 -0
- package/llms/references/components/sortable-list/sortable-list.component.md +141 -0
- package/llms/references/components/sortable-list/sortable-list.md +84 -0
- package/llms/references/components/statusbadge/statusbadge.component.md +56 -0
- package/llms/references/components/statusbadge/statusbadge.md +63 -0
- package/llms/references/components/switchfield/switchfield.component.md +114 -0
- package/llms/references/components/switchfield/switchfield.md +56 -0
- package/llms/references/components/tableofcontent/tableofcontent.component.md +55 -0
- package/llms/references/components/tableofcontent/tableofcontent.md +41 -0
- package/llms/references/components/tags/tags.component.md +112 -0
- package/llms/references/components/tags/tags.md +115 -0
- package/llms/references/components/text-flow/text-flow.component.md +71 -0
- package/llms/references/components/text-flow/text-flow.md +63 -0
- package/llms/references/components/textareafield/textareafield.component.md +69 -0
- package/llms/references/components/textareafield/textareafield.md +113 -0
- package/llms/references/components/textfield/textfield.component.md +617 -0
- package/llms/references/components/textfield/textfield.md +161 -0
- package/llms/references/components/tile/tile.component.md +91 -0
- package/llms/references/components/tile/tile.md +92 -0
- package/llms/references/components/time/time.component.md +270 -0
- package/llms/references/components/time/time.md +127 -0
- package/llms/references/components/time-picker/time-picker.md +63 -0
- package/llms/references/components/timelines/timelines.component.md +159 -0
- package/llms/references/components/timelines/timelines.md +8 -0
- package/llms/references/components/title-and-text/title-and-text.component.md +14 -0
- package/llms/references/components/title-and-text/title-and-text.md +60 -0
- package/llms/references/components/toasts/toasts.component.md +54 -0
- package/llms/references/components/toasts/toasts.md +112 -0
- package/llms/references/components/tooltip/tooltip.component.md +86 -0
- package/llms/references/components/tooltip/tooltip.md +217 -0
- package/llms/references/components/treeselect/treeselect.component.md +62 -0
- package/llms/references/components/treeselect/treeselect.md +58 -0
- package/llms/references/components/user-select/user-select.md +52 -0
- package/llms/references/components/userpopover/userpopover.component.md +50 -0
- package/llms/references/components/userpopover/userpopover.md +136 -0
- package/llms/references/components/verticalnavigation/verticalnavigation.component.md +236 -0
- package/llms/references/components/verticalnavigation/verticalnavigation.md +115 -0
- package/llms/references/migrations.md +32 -0
- package/llms/references/tools/angular-api.md +337 -0
- package/llms/references/tools/animations.md +173 -0
- package/llms/references/tools/mixins.md +106 -0
- package/llms/references/tools/numbers.md +81 -0
- package/llms/references/tools/scrollbox.md +59 -0
- package/llms/references/tools/utilitaires.md +951 -0
- package/llms/references/types/BubbleIllustration.md +5 -0
- package/llms/references/types/DecorativePalette.md +5 -0
- package/llms/references/types/Gap.md +5 -0
- package/llms/references/types/HighlightDataIllustration.md +5 -0
- package/llms/references/types/HighlightSectionIllustration.md +5 -0
- package/llms/references/types/LuccaIcon.md +5 -0
- package/llms/references/types/MainLayoutIllustrationEndStart.md +5 -0
- package/llms/references/types/MainLayoutIllustrationStartEnd.md +5 -0
- package/llms.txt +221 -0
- package/package.json +12 -6
- 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.
|