@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,298 @@
|
|
|
1
|
+
# richtextinput — Code & Implementation
|
|
2
|
+
|
|
3
|
+
📖 [Storybook documentation](https://lucca-front.lucca.io/v22.0.0/storybook/?path=/docs/documentation-forms-fields-richtextinput-angular--docs)
|
|
4
|
+
|
|
5
|
+
## Angular
|
|
6
|
+
|
|
7
|
+
RichTextInput (`lu-rich-text-input`) est basé sur [Lexical](https://lexical.dev/).
|
|
8
|
+
|
|
9
|
+
Component selector : `lu-rich-text-input`
|
|
10
|
+
|
|
11
|
+
### Dépendances
|
|
12
|
+
|
|
13
|
+
Avant toute utilisation de `lu-rich-text-input`, il est nécessaire d'ajouter les `peerDependencies` suivantes à votre projet :
|
|
14
|
+
|
|
15
|
+
En fonction du format désiré en entrée / sortie du composant, les dépendances suivantes doivent être installées:
|
|
16
|
+
|
|
17
|
+
- HTML
|
|
18
|
+
|
|
19
|
+
- Markdown
|
|
20
|
+
|
|
21
|
+
- Plain text
|
|
22
|
+
|
|
23
|
+
### Formats d'entrée/sortie
|
|
24
|
+
Avant toute utilisation du composant, il est nécessaire de définir le formateur à utiliser.
|
|
25
|
+
|
|
26
|
+
Trois formateurs par défaut sont disponibles : sous forme de directives ou de services à provide au niveau du composant parent.
|
|
27
|
+
|
|
28
|
+
#### Markdown
|
|
29
|
+
|
|
30
|
+
* Directives disponibles :
|
|
31
|
+
* `luWithMarkdownFormatter` : formateur markdown classique, avec les balises markdown standards.
|
|
32
|
+
* `luWithMarkdownTagsFormatter` : formateur markdown avec support des [tags personnalisés](#TagTool).
|
|
33
|
+
|
|
34
|
+
* Providers
|
|
35
|
+
|
|
36
|
+
#### Plain Text
|
|
37
|
+
|
|
38
|
+
Ce formateur accepte en paramètres une liste optionnelle de `PlainTextTransformer` pour les noeuds custom.
|
|
39
|
+
|
|
40
|
+
Il peut être utilisé dans des contextes où le formatage riche n'est pas désiré, mais où l'on souhaite tout de même bénéficier d'un outil en particulier (l'outil [Tags](#TagTool) par exemple).
|
|
41
|
+
|
|
42
|
+
En conséquent:
|
|
43
|
+
- La plupart des outils n'auront aucun effet sur le contenu de l'éditeur.
|
|
44
|
+
- Il n'intègre pas les raccourcis clavier de formatage de texte (gras, italique, listes, etc...).
|
|
45
|
+
- La récupération du contenu se fait en texte brut lors du copier/coller.
|
|
46
|
+
|
|
47
|
+
### Barre d'outils
|
|
48
|
+
|
|
49
|
+
La barre d'outils du `lu-rich-text-input` est configuré directement depuis le template.
|
|
50
|
+
|
|
51
|
+
Pour plus de simplicité, une barre d'outil par défaut est mise à disposition.
|
|
52
|
+
|
|
53
|
+
Il est aussi possible de créer une barre d'outil personnalisée en assemblant les outils existant et en y ajoutant de nouvelles fonctionnalités.
|
|
54
|
+
|
|
55
|
+
Il est nécessaire d'avoir la barre d'outil pour utiliser les noeuds Lexical correspondants aux outils.
|
|
56
|
+
Pour cacher la barre d'outil tout en gardant les fonctionnalités, il est possible d'utiliser le composant `lu-rich-text-input` avec l'attribut `hideToolbar`.
|
|
57
|
+
|
|
58
|
+
#### Styles
|
|
59
|
+
|
|
60
|
+
- Bouton de style individuel
|
|
61
|
+
|
|
62
|
+
- Barre préconfigurée (Gras, Italique, Souligné)
|
|
63
|
+
|
|
64
|
+
#### Listes
|
|
65
|
+
|
|
66
|
+
- Barre préconfigurée (Puces, Numérotées)
|
|
67
|
+
|
|
68
|
+
#### Titres
|
|
69
|
+
|
|
70
|
+
- Barre préconfigurée (Paragraphe, H1, H2, H3...)
|
|
71
|
+
|
|
72
|
+
#### Liens
|
|
73
|
+
|
|
74
|
+
- Outil individuel
|
|
75
|
+
|
|
76
|
+
#### Suppression du formatage
|
|
77
|
+
|
|
78
|
+
- Outil individuel
|
|
79
|
+
|
|
80
|
+
#### <a id="TagTool"></a>Tag
|
|
81
|
+
|
|
82
|
+
- Outil individuel
|
|
83
|
+
|
|
84
|
+
L'outil prend en paramètre une liste de tag personnalisés, qu'il est possible d'insérer dans le contenu de l'éditeur, sous forme de chips.
|
|
85
|
+
|
|
86
|
+
Chaque tag est un objet avec une clé et une description optionnelle. La clé est utilisée pour l'insertion dans le contenu réel de l'éditeur, la description est uniquement utilisée pour la représentation visuelle de la balise.
|
|
87
|
+
|
|
88
|
+
Si la description n'est pas fournie, la clé sera utilisée à la place.
|
|
89
|
+
|
|
90
|
+
Les tags ont la forme `{{tag.key}}` dans le contenu brut en entrée/sortie de l'éditeur.
|
|
91
|
+
Si le contenu en entrée de l'éditeur contient des tags non reconnus par l'outil, ils seront automatiquement supprimés.
|
|
92
|
+
|
|
93
|
+
Pour gérer les tags en markdown ou en plain-text, il est nécessaire de fournir le transformer approprié.
|
|
94
|
+
|
|
95
|
+
### Ajout d'outils personnalisés
|
|
96
|
+
|
|
97
|
+
Les outils sont des composants implémentant l'interface `RichTextPluginComponent`. Cette interface est utilisée pour les outils et les barres d'outils.
|
|
98
|
+
Elle définit plusieurs méthodes et propriétés:
|
|
99
|
+
|
|
100
|
+
- `setEditorInstance(editor: LexicalEditor)` : Permet de récupérer l'instance de l'éditeur lexical lors de sa création, ce qui permet par exemple de s'abonner aux évènements Lexical.
|
|
101
|
+
- `setDisabledState(isDisabled: boolean)` : Permet de gérer l'état désactivé de l'outil.
|
|
102
|
+
- `getLexicalNodes()` : Optionnel. Renvoie les noeuds Lexical spécifiques à l'outil.
|
|
103
|
+
- `focus()` : Optionnel. Permet de définir le comportement de focus de l'outil.
|
|
104
|
+
- `pluginComponents`: Optionnel. `Signal` renvoyant les plugin internes à l'outil, s'il y en a (utilisé par exemple pour les barres d'outils).
|
|
105
|
+
- `tabindex`: Optionnel. `WritableSignal<number>` à appliquer sur l'élément de l'outil qui prend le tabindex lors de la navigation clavier.
|
|
106
|
+
|
|
107
|
+
Attention: si l'outil s'abonne à des évènements Lexical, il est faut penser à se désabonner lors de la destruction du composant.
|
|
108
|
+
|
|
109
|
+
### Ajout de formateurs personnalisés
|
|
110
|
+
|
|
111
|
+
Il est possible d'ajouter des formateurs personnalisés pour le `lu-rich-text-input`. Pour cela, il faut créer une classe qui implémente l'interface `RichTextFormatter`.
|
|
112
|
+
|
|
113
|
+
### Text input
|
|
114
|
+
|
|
115
|
+
```js
|
|
116
|
+
import { FormFieldComponent } from '@lucca-front/ng/form-field';
|
|
117
|
+
import { RichTextInputComponent, RichTextInputToolbarComponent } from '@lucca-front/ng/forms/rich-text-input';
|
|
118
|
+
import { provideLuRichTextMarkdownFormatter } from '@lucca-front/ng/forms/rich-text-input/formatters/markdown';
|
|
119
|
+
import { provideLuRichTextHTMLFormatter } from '@lucca-front/ng/forms/rich-text-input/formatters/html';
|
|
120
|
+
import { RichTextInputComponent, RichTextInputToolbarComponent, RichTextPluginTagComponent } from '@lucca-front/ng/forms/rich-text-input';
|
|
121
|
+
import { provideLuRichTextPlainTextFormatter } from '@lucca-front/ng/forms/rich-text-input/formatters/plain-textplain-text';
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
```html
|
|
125
|
+
<lu-form-field label="Label">
|
|
126
|
+
<lu-rich-text-input
|
|
127
|
+
luWithMarkdownFormatter
|
|
128
|
+
placeholder="Placeholder…"
|
|
129
|
+
autoResize
|
|
130
|
+
[(ngModel)]="model.example"
|
|
131
|
+
[disabled]="disabled"
|
|
132
|
+
[required]="required"
|
|
133
|
+
>
|
|
134
|
+
<lu-rich-text-input-toolbar />
|
|
135
|
+
</lu-rich-text-input>
|
|
136
|
+
</lu-form-field>
|
|
137
|
+
<pr-story-model-display>{{ model.example }}</pr-story-model-display>
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
```html
|
|
141
|
+
<lu-form-field label="Label">
|
|
142
|
+
<lu-rich-text-input
|
|
143
|
+
luWithHtmlFormatter
|
|
144
|
+
placeholder="Placeholder…"
|
|
145
|
+
autoResize
|
|
146
|
+
[(ngModel)]="model.example"
|
|
147
|
+
[disabled]="disabled"
|
|
148
|
+
[required]="required"
|
|
149
|
+
>
|
|
150
|
+
<lu-rich-text-input-toolbar />
|
|
151
|
+
<lu-rich-text-plugin-tag
|
|
152
|
+
[tags]="[
|
|
153
|
+
{
|
|
154
|
+
key: 'tag1',
|
|
155
|
+
description: 'Tag 1',
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
key: 'tag2',
|
|
159
|
+
description: 'Tag 2',
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
key: 'tag3',
|
|
163
|
+
description: 'Tag 3',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
key: 'tag4',
|
|
167
|
+
description: 'Tag 4',
|
|
168
|
+
secondary: true,
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
key: 'tag5',
|
|
172
|
+
description: 'Prénom',
|
|
173
|
+
secondary: true,
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
key: 'tag6',
|
|
177
|
+
description: 'Téléphone',
|
|
178
|
+
secondary: true,
|
|
179
|
+
},
|
|
180
|
+
]"
|
|
181
|
+
/>
|
|
182
|
+
</lu-rich-text-input>
|
|
183
|
+
</lu-form-field>
|
|
184
|
+
<pr-story-model-display>{{ model.example }}</pr-story-model-display>
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
```html
|
|
188
|
+
<lu-form-field label="Label">
|
|
189
|
+
<lu-rich-text-input
|
|
190
|
+
luWithHtmlFormatter
|
|
191
|
+
placeholder="Placeholder…"
|
|
192
|
+
autoResize
|
|
193
|
+
[(ngModel)]="model.example"
|
|
194
|
+
[disabled]="disabled"
|
|
195
|
+
[required]="required"
|
|
196
|
+
>
|
|
197
|
+
<lu-rich-text-input-toolbar />
|
|
198
|
+
</lu-rich-text-input>
|
|
199
|
+
</lu-form-field>
|
|
200
|
+
<pr-story-model-display>{{ model.example }}</pr-story-model-display>
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
```html
|
|
204
|
+
<lu-form-field label="Label">
|
|
205
|
+
<lu-rich-text-input
|
|
206
|
+
luWithHtmlFormatter
|
|
207
|
+
placeholder="Placeholder…"
|
|
208
|
+
autoResize
|
|
209
|
+
[(ngModel)]="model.example"
|
|
210
|
+
[disabled]="disabled"
|
|
211
|
+
[required]="required"
|
|
212
|
+
>
|
|
213
|
+
<lu-rich-text-input-toolbar />
|
|
214
|
+
<lu-rich-text-plugin-tag
|
|
215
|
+
[tags]="[
|
|
216
|
+
{
|
|
217
|
+
key: 'tag1',
|
|
218
|
+
description: 'Tag 1',
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
key: 'tag2',
|
|
222
|
+
description: 'Tag 2',
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
key: 'tag3',
|
|
226
|
+
description: 'Tag 3',
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
key: 'tag4',
|
|
230
|
+
description: 'Tag 4',
|
|
231
|
+
secondary: true,
|
|
232
|
+
group: 'Groupe 2',
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
key: 'tag6',
|
|
236
|
+
description: 'Téléphone',
|
|
237
|
+
secondary: true,
|
|
238
|
+
group: 'Groupe 2',
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
key: 'tag5',
|
|
242
|
+
description: 'Prénom',
|
|
243
|
+
secondary: true,
|
|
244
|
+
group: 'Groupe 1',
|
|
245
|
+
},
|
|
246
|
+
]"
|
|
247
|
+
/>
|
|
248
|
+
</lu-rich-text-input>
|
|
249
|
+
</lu-form-field>
|
|
250
|
+
<pr-story-model-display>{{ model.example }}</pr-story-model-display>
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
```html
|
|
254
|
+
<lu-form-field label="Label">
|
|
255
|
+
<lu-rich-text-input
|
|
256
|
+
luWithMarkdownTagsFormatter
|
|
257
|
+
placeholder="Placeholder…"
|
|
258
|
+
autoResize
|
|
259
|
+
[(ngModel)]="model.example"
|
|
260
|
+
[disabled]="disabled"
|
|
261
|
+
[required]="required"
|
|
262
|
+
>
|
|
263
|
+
<lu-rich-text-input-toolbar />
|
|
264
|
+
<lu-rich-text-plugin-tag
|
|
265
|
+
[tags]="[
|
|
266
|
+
{
|
|
267
|
+
key: 'tag1',
|
|
268
|
+
description: 'Tag 1',
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
key: 'tag2',
|
|
272
|
+
description: 'Tag 2',
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
key: 'tag3',
|
|
276
|
+
description: 'Tag 3',
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
key: 'tag4',
|
|
280
|
+
description: 'Tag 4',
|
|
281
|
+
secondary: true,
|
|
282
|
+
},
|
|
283
|
+
{
|
|
284
|
+
key: 'tag5',
|
|
285
|
+
description: 'Prénom',
|
|
286
|
+
secondary: true,
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
key: 'tag6',
|
|
290
|
+
description: 'Téléphone',
|
|
291
|
+
secondary: true,
|
|
292
|
+
},
|
|
293
|
+
]"
|
|
294
|
+
/>
|
|
295
|
+
</lu-rich-text-input>
|
|
296
|
+
</lu-form-field>
|
|
297
|
+
<pr-story-model-display>{{ model.example }}</pr-story-model-display>
|
|
298
|
+
```
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
# richtextinput
|
|
2
|
+
|
|
3
|
+
## Import
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
import { ClearFormatComponent, HeadingsComponent, LinkComponent, ListStyleToolbarComponent, RichTextPluginTagComponent, TextStyleComponent, TextStyleToolbarComponent, RichTextInputToolbarComponent, RichTextInputComponent } from '@lucca-front/ng/forms/rich-text-input';
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## API Reference
|
|
10
|
+
|
|
11
|
+
### ClearFormatComponent (component)
|
|
12
|
+
|
|
13
|
+
**Selector:** `lu-rich-text-plugin-clear-format`
|
|
14
|
+
|
|
15
|
+
#### Inputs
|
|
16
|
+
|
|
17
|
+
| Property | Binding name | Type | Default | Required | Transform | Description |
|
|
18
|
+
|----------|-------------|------|---------|----------|-----------|-------------|
|
|
19
|
+
| `intl` | `intl` | `unknown` | — | — | — | — |
|
|
20
|
+
|
|
21
|
+
### HeadingsComponent (component)
|
|
22
|
+
|
|
23
|
+
**Selector:** `lu-rich-text-plugin-headings`
|
|
24
|
+
|
|
25
|
+
#### Inputs
|
|
26
|
+
|
|
27
|
+
| Property | Binding name | Type | Default | Required | Transform | Description |
|
|
28
|
+
|----------|-------------|------|---------|----------|-----------|-------------|
|
|
29
|
+
| `maxHeadingLevel` | `maxHeadingLevel` | `number` | `6` | — | `luNumberAttribute` | — |
|
|
30
|
+
| `intl` | `intl` | `unknown` | — | — | — | — |
|
|
31
|
+
|
|
32
|
+
### LinkComponent (component)
|
|
33
|
+
|
|
34
|
+
**Selector:** `lu-rich-text-plugin-link`
|
|
35
|
+
|
|
36
|
+
#### Inputs
|
|
37
|
+
|
|
38
|
+
| Property | Binding name | Type | Default | Required | Transform | Description |
|
|
39
|
+
|----------|-------------|------|---------|----------|-----------|-------------|
|
|
40
|
+
| `intl` | `intl` | `unknown` | — | — | — | — |
|
|
41
|
+
|
|
42
|
+
### ListStyleToolbarComponent (component)
|
|
43
|
+
|
|
44
|
+
**Selector:** `lu-rich-text-toolbar-list-style`
|
|
45
|
+
|
|
46
|
+
#### Inputs
|
|
47
|
+
|
|
48
|
+
| Property | Binding name | Type | Default | Required | Transform | Description |
|
|
49
|
+
|----------|-------------|------|---------|----------|-----------|-------------|
|
|
50
|
+
| `intl` | `intl` | `unknown` | — | — | — | — |
|
|
51
|
+
|
|
52
|
+
### RichTextPluginTagComponent (component)
|
|
53
|
+
|
|
54
|
+
**Selector:** `lu-rich-text-plugin-tag`
|
|
55
|
+
|
|
56
|
+
#### Inputs
|
|
57
|
+
|
|
58
|
+
| Property | Binding name | Type | Default | Required | Transform | Description |
|
|
59
|
+
|----------|-------------|------|---------|----------|-----------|-------------|
|
|
60
|
+
| `intl` | `intl` | `unknown` | — | — | — | — |
|
|
61
|
+
| `tags` | `tags` | `Tag[]` | — | ✅ | — | — |
|
|
62
|
+
|
|
63
|
+
### TextStyleComponent (component)
|
|
64
|
+
|
|
65
|
+
**Selector:** `lu-rich-text-plugin-text-style`
|
|
66
|
+
|
|
67
|
+
#### Inputs
|
|
68
|
+
|
|
69
|
+
| Property | Binding name | Type | Default | Required | Transform | Description |
|
|
70
|
+
|----------|-------------|------|---------|----------|-----------|-------------|
|
|
71
|
+
| `format` | `format` | `TextFormatType` | — | ✅ | — | — |
|
|
72
|
+
| `icon` | `icon` | `LuccaIcon` | — | ✅ | — | — |
|
|
73
|
+
| `tooltip` | `tooltip` | `string` | — | ✅ | — | — |
|
|
74
|
+
|
|
75
|
+
### TextStyleToolbarComponent (component)
|
|
76
|
+
|
|
77
|
+
**Selector:** `lu-rich-text-toolbar-text-style`
|
|
78
|
+
|
|
79
|
+
#### Inputs
|
|
80
|
+
|
|
81
|
+
| Property | Binding name | Type | Default | Required | Transform | Description |
|
|
82
|
+
|----------|-------------|------|---------|----------|-----------|-------------|
|
|
83
|
+
| `intl` | `intl` | `unknown` | — | — | — | — |
|
|
84
|
+
|
|
85
|
+
### RichTextInputToolbarComponent (component)
|
|
86
|
+
|
|
87
|
+
**Selector:** `lu-rich-text-input-toolbar`
|
|
88
|
+
|
|
89
|
+
### RichTextInputComponent (component)
|
|
90
|
+
|
|
91
|
+
**Selector:** `lu-rich-text-input`
|
|
92
|
+
|
|
93
|
+
#### Inputs
|
|
94
|
+
|
|
95
|
+
| Property | Binding name | Type | Default | Required | Transform | Description |
|
|
96
|
+
|----------|-------------|------|---------|----------|-----------|-------------|
|
|
97
|
+
| `placeholder` | `placeholder` | `string` | `''` | — | — | Applique un placeholder au champ. |
|
|
98
|
+
| `disableSpellcheck` | `disableSpellcheck` | `boolean` | `false` | — | `luBooleanAttribute` | Désactive le correcteur d’orthographe. |
|
|
99
|
+
| `autoResize` | `autoResize` | `boolean` | `false` | — | `luBooleanAttribute` | Active / désactive l’autoresize du champ. |
|
|
100
|
+
| `hideToolbar` | `hideToolbar` | `boolean` | `false` | — | `luBooleanAttribute` | Masque les options de mise en forme. |
|
|
101
|
+
|
|
102
|
+
### Injection tokens
|
|
103
|
+
|
|
104
|
+
| Token | Type | Description |
|
|
105
|
+
|-------|------|-------------|
|
|
106
|
+
| `RICH_TEXT_FORMATTER` | `RichTextFormatter` | — |
|
|
107
|
+
| `RICH_TEXT_PLUGIN_COMPONENT` | `RichTextPluginComponent` | — |
|
|
108
|
+
|
|
109
|
+
## Type definitions
|
|
110
|
+
|
|
111
|
+
- [`LuccaIcon`](../../types/LuccaIcon.md) — 585 available values
|
|
112
|
+
|
|
113
|
+
## Related files
|
|
114
|
+
|
|
115
|
+
- 📝 [Code & implementation](./richtextinput.component.md)
|
|
116
|
+
- 🎨 [Design guidelines](https://lucca-front.lucca.io/v22.0.6-rc.1/storybook/llms/references/components/richtextinput/richtextinput.design.md)
|
|
117
|
+
- 🎯 [Figma design tokens](https://lucca-front.lucca.io/v22.0.6-rc.1/storybook/llms/references/components/richtextinput/richtextinput.figma.md)
|
|
118
|
+
- 📖 [Storybook documentation](https://lucca-front.lucca.io/v22.0.0/storybook/?path=/docs/documentation-forms-fields-richtextinput-angular--docs)
|
|
119
|
+
|
|
120
|
+
## Changelog
|
|
121
|
+
|
|
122
|
+
> Diff structurel de l'API (selectors, inputs, outputs, models) entre versions stables, depuis `v21.4.2` jusqu'à `v22.0.0`. Les versions sans changement d'API sont omises.
|
|
123
|
+
|
|
124
|
+
### 22.0.0
|
|
125
|
+
|
|
126
|
+
`HeadingsComponent` :
|
|
127
|
+
~ `maxHeadingLevel` : 1 | 2 | 3 | 4 | 5 | 6 → number, transform ∅ → luNumberAttribute
|
|
128
|
+
`RichTextInputComponent` :
|
|
129
|
+
~ `disableSpellcheck` : transform booleanAttribute → luBooleanAttribute
|
|
130
|
+
~ `autoResize` : transform booleanAttribute → luBooleanAttribute
|
|
131
|
+
~ `hideToolbar` : transform booleanAttribute → luBooleanAttribute
|
|
132
|
+
|
|
133
|
+
### Notes de release (ZeroHeight)
|
|
134
|
+
|
|
135
|
+
#### 21.3.1
|
|
136
|
+
|
|
137
|
+
##### Fixed
|
|
138
|
+
|
|
139
|
+
- `Shift` + `Enter` no longer inserts a soft line break inside lists.
|
|
140
|
+
- Pending value initialization is handled, so a value set before the editor is ready is no longer lost.
|
|
141
|
+
|
|
142
|
+
#### 21.3.0
|
|
143
|
+
|
|
144
|
+
##### Fixed
|
|
145
|
+
|
|
146
|
+
- Already-encoded link URLs are no longer double-encoded.
|
|
147
|
+
- Markdown input is no longer sanitized, preserving the authored content.
|
|
148
|
+
|
|
149
|
+
#### 21.2.3
|
|
150
|
+
|
|
151
|
+
##### Fixed
|
|
152
|
+
|
|
153
|
+
- Link popover is disabled in `presentation` mode.
|
|
154
|
+
|
|
155
|
+
#### 21.2.1
|
|
156
|
+
|
|
157
|
+
##### Fixed
|
|
158
|
+
|
|
159
|
+
- The delete button is removed from the link popover for autolinks.
|
|
160
|
+
|
|
161
|
+
#### 21.1.3
|
|
162
|
+
|
|
163
|
+
##### Fixed
|
|
164
|
+
|
|
165
|
+
- Trailing whitespace issues with markdown (Lexical update).
|
|
166
|
+
- `!` is now a valid character in URLs.
|
|
167
|
+
- Context issues when editing an existing link.
|
|
168
|
+
|
|
169
|
+
#### 21.1.1
|
|
170
|
+
|
|
171
|
+
##### Fixed
|
|
172
|
+
|
|
173
|
+
- The editor is no longer marked as touched on initialization.
|
|
174
|
+
- Caret position when a tag is added in last position.
|
|
175
|
+
- Input typing of the markdown formatter.
|
|
176
|
+
- Race condition between the child nodes and the editor.
|
|
177
|
+
|
|
178
|
+
#### 21.1.0
|
|
179
|
+
|
|
180
|
+
##### Added
|
|
181
|
+
|
|
182
|
+
- Formatter directives to declare the output format of the editor (`html`, `markdown`, `plain-text`).
|
|
183
|
+
- `presentation` display mode support.
|
|
184
|
+
|
|
185
|
+
##### Removed
|
|
186
|
+
|
|
187
|
+
- Underline text style from the toolbar.
|
|
188
|
+
|
|
189
|
+
#### 21.0.1
|
|
190
|
+
|
|
191
|
+
##### Fixed
|
|
192
|
+
|
|
193
|
+
- The tag plugin and the plain-text formatter no longer depend on `@lexical/markdown`.
|
|
194
|
+
|
|
195
|
+
#### 21.0.0
|
|
196
|
+
|
|
197
|
+
##### Added
|
|
198
|
+
|
|
199
|
+
- `hideToolbar` input.
|
|
200
|
+
- `focus()` method on the component.
|
|
201
|
+
- Markdown shortcuts while typing.
|
|
202
|
+
- Autolink plugin, turning typed URLs into links.
|
|
203
|
+
|
|
204
|
+
#### 20.3.3
|
|
205
|
+
|
|
206
|
+
##### Fixed
|
|
207
|
+
|
|
208
|
+
- Better handling of an empty editor content.
|
|
209
|
+
|
|
210
|
+
#### 20.3.2
|
|
211
|
+
|
|
212
|
+
##### Fixed
|
|
213
|
+
|
|
214
|
+
- Focus is no longer stolen when a tag description is updated.
|
|
215
|
+
- Markdown output preserves new lines.
|
|
216
|
+
|
|
217
|
+
#### 20.3.0
|
|
218
|
+
|
|
219
|
+
##### Added
|
|
220
|
+
|
|
221
|
+
- Plain-text plugin support.
|
|
222
|
+
|
|
223
|
+
#### 20.2.3
|
|
224
|
+
|
|
225
|
+
##### Added
|
|
226
|
+
|
|
227
|
+
- Clickable link popover in the link plugin.
|
|
228
|
+
|
|
229
|
+
##### Fixed
|
|
230
|
+
|
|
231
|
+
- The tag plugin imports the `chip` styles it relies on.
|
|
232
|
+
|
|
233
|
+
#### 20.2.2
|
|
234
|
+
|
|
235
|
+
##### Fixed
|
|
236
|
+
|
|
237
|
+
- Tags could be displayed as raw keys.
|
|
238
|
+
|
|
239
|
+
#### 20.2.1
|
|
240
|
+
|
|
241
|
+
##### Added
|
|
242
|
+
|
|
243
|
+
- Optional `tabindex` parameter.
|
|
244
|
+
|
|
245
|
+
#### 20.2.0
|
|
246
|
+
|
|
247
|
+
##### Added
|
|
248
|
+
|
|
249
|
+
- Tag plugin, to insert dynamic tags in the content.
|
|
250
|
+
|
|
251
|
+
#### 20.1.1
|
|
252
|
+
|
|
253
|
+
##### Fixed
|
|
254
|
+
|
|
255
|
+
- List buttons state when switching from one list mode to another.
|
|
256
|
+
|
|
257
|
+
#### 19.3.4
|
|
258
|
+
|
|
259
|
+
##### Fixed
|
|
260
|
+
|
|
261
|
+
- `class` attributes are sanitized in the HTML output.
|
|
262
|
+
- Placeholder is displayed at initialization when there is no content.
|
|
263
|
+
|
|
264
|
+
#### 19.3.1
|
|
265
|
+
|
|
266
|
+
##### Fixed
|
|
267
|
+
|
|
268
|
+
- The editor is no longer marked as touched and dirty when an initial value is set.
|
|
269
|
+
- Lexical dependency management.
|
|
270
|
+
|
|
271
|
+
#### 19.3.0
|
|
272
|
+
|
|
273
|
+
##### Added
|
|
274
|
+
|
|
275
|
+
- `lu-rich-text-input` component with the `placeholder`, `autoResize` and `disableSpellcheck` inputs.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# scroll
|
|
2
|
+
|
|
3
|
+
## Import
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
import { LuScrollDirective } from '@lucca-front/ng/scroll';
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## API Reference
|
|
10
|
+
|
|
11
|
+
### LuScrollDirective (directive)
|
|
12
|
+
|
|
13
|
+
**Selector:** `[luScroll]`
|
|
14
|
+
|
|
15
|
+
**exportAs:** `luScroll`
|
|
16
|
+
|
|
17
|
+
#### Inputs
|
|
18
|
+
|
|
19
|
+
| Property | Binding name | Type | Default | Required | Transform | Description |
|
|
20
|
+
|----------|-------------|------|---------|----------|-----------|-------------|
|
|
21
|
+
| `debounceTime` | `debounceTime` | `number` | `100` | — | `luNumberAttribute` | — |
|
|
22
|
+
|
|
23
|
+
#### Outputs
|
|
24
|
+
|
|
25
|
+
| Property | Binding name | Type | Notes |
|
|
26
|
+
|----------|-------------|------|-------|
|
|
27
|
+
| `onScroll` | `onScroll` | `Event` | — |
|
|
28
|
+
| `onScrollTop` | `onScrollTop` | `Event` | — |
|
|
29
|
+
| `onScrollBottom` | `onScrollBottom` | `Event` | — |
|
|
30
|
+
| `onScrollLeft` | `onScrollLeft` | `Event` | — |
|
|
31
|
+
| `onScrollRight` | `onScrollRight` | `Event` | — |
|
|
32
|
+
|
|
33
|
+
### Modules dépréciés
|
|
34
|
+
|
|
35
|
+
- ⚠️ `LuScrollModule` — use `LuScrollDirective` instead
|
|
36
|
+
|
|
37
|
+
## Related files
|
|
38
|
+
|
|
39
|
+
## Changelog
|
|
40
|
+
|
|
41
|
+
> Diff structurel de l'API (selectors, inputs, outputs, models) entre versions stables, depuis `v21.4.2` jusqu'à `v22.0.0`. Les versions sans changement d'API sont omises.
|
|
42
|
+
|
|
43
|
+
### 22.0.0
|
|
44
|
+
|
|
45
|
+
~ `debounceTime` : transform ∅ → luNumberAttribute
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# scrollbox — Code & Implementation
|
|
2
|
+
|
|
3
|
+
📖 [Storybook documentation](https://lucca-front.lucca.io/v22.0.0/storybook/?path=/docs/documentation-structure-scrollbox--docs)
|
|
4
|
+
|
|
5
|
+
## Angular
|
|
6
|
+
|
|
7
|
+
### Box basic
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
import { ScrollBoxComponent } from '@lucca-front/ng/scroll-box';
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
```html
|
|
14
|
+
<lu-scroll-box>
|
|
15
|
+
<div class="box">box</div>
|
|
16
|
+
<div class="box">box</div>
|
|
17
|
+
<div class="box">box</div>
|
|
18
|
+
<div class="box">box</div>
|
|
19
|
+
<div class="box">box</div>
|
|
20
|
+
<div class="box">box</div>
|
|
21
|
+
<div class="box">box</div>
|
|
22
|
+
<div class="box">box</div>
|
|
23
|
+
<div class="box">box</div>
|
|
24
|
+
<div class="box">box</div>
|
|
25
|
+
<div class="box">box</div>
|
|
26
|
+
<div class="box">box</div>
|
|
27
|
+
<div class="box">box</div>
|
|
28
|
+
<div class="box">box</div>
|
|
29
|
+
</lu-scroll-box>
|
|
30
|
+
<lu-scroll-box
|
|
31
|
+
[attr.style]="'--components-scrollBox-paddingBlock: var(--pr-t-spacings-200); --components-scrollBox-paddingInline: 0rem; --components-scrollBox-marginBlock: 0rem'"
|
|
32
|
+
>
|
|
33
|
+
<div class="box">box</div>
|
|
34
|
+
<div class="box">box</div>
|
|
35
|
+
<div class="box">box</div>
|
|
36
|
+
<div class="box">box</div>
|
|
37
|
+
<div class="box">box</div>
|
|
38
|
+
<div class="box">box</div>
|
|
39
|
+
<div class="box">box</div>
|
|
40
|
+
<div class="box">box</div>
|
|
41
|
+
<div class="box">box</div>
|
|
42
|
+
<div class="box">box</div>
|
|
43
|
+
<div class="box">box</div>
|
|
44
|
+
<div class="box">box</div>
|
|
45
|
+
<div class="box">box</div>
|
|
46
|
+
<div class="box">box</div>
|
|
47
|
+
</lu-scroll-box>
|
|
48
|
+
<div class="resize">
|
|
49
|
+
<lu-scroll-box
|
|
50
|
+
[attr.style]="'--components-scrollBox-marginBlock: var(--pr-t-spacings-300);--components-scrollBox-marginInline: 0; --components-scrollBox-paddingBlock: var(--pr-t-spacings-300); --components-scrollBox-gap: var(--pr-t-spacings-300);'"
|
|
51
|
+
>
|
|
52
|
+
<div class="box">box</div>
|
|
53
|
+
<div class="box">box</div>
|
|
54
|
+
<div class="box">box</div>
|
|
55
|
+
</lu-scroll-box>
|
|
56
|
+
</div>
|
|
57
|
+
<lu-scroll-box>
|
|
58
|
+
<div style="inline-size: 200vw" class="box">box</div>
|
|
59
|
+
</lu-scroll-box>
|
|
60
|
+
<lu-scroll-box>
|
|
61
|
+
<div class="box">box</div>
|
|
62
|
+
</lu-scroll-box>
|
|
63
|
+
```
|