@lucca-front/ng 17.4.3 → 17.4.4

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 (164) hide show
  1. package/a11y/public-api.d.ts +1 -0
  2. package/a11y/skip-links/skip-links.translate.d.ts +3 -3
  3. package/a11y/skip-links/translations.d.ts +50 -0
  4. package/callout/callout.translate.d.ts +3 -3
  5. package/callout/translations.d.ts +26 -0
  6. package/core/translate/intl.model.d.ts +2 -5
  7. package/core/translate/translation.model.d.ts +4 -0
  8. package/core-select/public-api.d.ts +1 -0
  9. package/core-select/select.translate.d.ts +3 -3
  10. package/core-select/translations.d.ts +26 -0
  11. package/core-select/user/public-api.d.ts +1 -0
  12. package/core-select/user/translations.d.ts +26 -0
  13. package/core-select/user/user.translate.d.ts +3 -3
  14. package/date/input/date-input.translate.d.ts +3 -4
  15. package/date/input/translations.d.ts +58 -0
  16. package/date/select/date-select-input.translate.d.ts +3 -4
  17. package/date/select/translations.d.ts +58 -0
  18. package/department/select/input/department-select-input.translate.d.ts +3 -3
  19. package/department/select/input/translations.d.ts +26 -0
  20. package/dialog/dialog-header/dialog-header.translate.d.ts +3 -3
  21. package/dialog/dialog-header/translations.d.ts +26 -0
  22. package/dialog/public-api.d.ts +6 -5
  23. package/esm2022/a11y/public-api.mjs +2 -1
  24. package/esm2022/a11y/skip-links/skip-links.translate.mjs +3 -21
  25. package/esm2022/a11y/skip-links/translations.mjs +51 -0
  26. package/esm2022/callout/callout.translate.mjs +3 -12
  27. package/esm2022/callout/translations.mjs +27 -0
  28. package/esm2022/core/translate/intl.model.mjs +4 -7
  29. package/esm2022/core/translate/translation.model.mjs +1 -1
  30. package/esm2022/core-select/public-api.mjs +2 -1
  31. package/esm2022/core-select/select.translate.mjs +3 -18
  32. package/esm2022/core-select/translations.mjs +27 -0
  33. package/esm2022/core-select/user/public-api.mjs +2 -1
  34. package/esm2022/core-select/user/translations.mjs +27 -0
  35. package/esm2022/core-select/user/user.translate.mjs +3 -18
  36. package/esm2022/date/input/date-input.directive.mjs +2 -2
  37. package/esm2022/date/input/date-input.translate.mjs +3 -35
  38. package/esm2022/date/input/translations.mjs +59 -0
  39. package/esm2022/date/select/date-select-input.component.mjs +2 -2
  40. package/esm2022/date/select/date-select-input.translate.mjs +3 -27
  41. package/esm2022/date/select/translations.mjs +59 -0
  42. package/esm2022/department/select/input/department-select-input.translate.mjs +3 -12
  43. package/esm2022/department/select/input/translations.mjs +27 -0
  44. package/esm2022/dialog/dialog-header/dialog-header.translate.mjs +3 -18
  45. package/esm2022/dialog/dialog-header/translations.mjs +27 -0
  46. package/esm2022/dialog/public-api.mjs +7 -6
  47. package/esm2022/establishment/select/input/establishment-select-input.translate.mjs +3 -12
  48. package/esm2022/establishment/select/input/translations.mjs +27 -0
  49. package/esm2022/establishment/select/select-all/index.mjs +1 -2
  50. package/esm2022/form-field/form-field.translate.mjs +3 -9
  51. package/esm2022/form-field/public-api.mjs +4 -3
  52. package/esm2022/form-field/translations.mjs +27 -0
  53. package/esm2022/forms/number-input/number-input.translate.mjs +3 -9
  54. package/esm2022/forms/number-input/translations.mjs +27 -0
  55. package/esm2022/forms/public-api.mjs +3 -1
  56. package/esm2022/forms/text-input/text-input.translate.mjs +3 -11
  57. package/esm2022/forms/text-input/translations.mjs +35 -0
  58. package/esm2022/modal/modal.translate.mjs +3 -28
  59. package/esm2022/modal/translations.mjs +43 -0
  60. package/esm2022/multi-select/displayer/default-displayer.translate.mjs +3 -33
  61. package/esm2022/multi-select/displayer/index.mjs +3 -2
  62. package/esm2022/multi-select/displayer/translations.mjs +51 -0
  63. package/esm2022/multi-select/select.translate.mjs +3 -68
  64. package/esm2022/multi-select/translations.mjs +107 -0
  65. package/esm2022/option/item/translations.mjs +35 -0
  66. package/esm2022/option/item/tree-option-item.translate.mjs +3 -11
  67. package/esm2022/option/placeholder/option-placeholder.translate.mjs +3 -15
  68. package/esm2022/option/placeholder/translations.mjs +35 -0
  69. package/esm2022/option/selector/all/select-all.translate.mjs +3 -23
  70. package/esm2022/option/selector/all/translations.mjs +35 -0
  71. package/esm2022/popup-employee/popup-employee.translate.mjs +3 -68
  72. package/esm2022/popup-employee/public-api.mjs +2 -1
  73. package/esm2022/popup-employee/translations.mjs +107 -0
  74. package/esm2022/qualification/select/input/qualification-select-input.translate.mjs +3 -12
  75. package/esm2022/qualification/select/input/translations.mjs +27 -0
  76. package/esm2022/sidepanel/sidepanel.model.mjs +2 -2
  77. package/esm2022/simple-select/select.translate.mjs +3 -38
  78. package/esm2022/simple-select/translations.mjs +59 -0
  79. package/esm2022/toast/toasts.translate.mjs +3 -12
  80. package/esm2022/toast/translations.mjs +27 -0
  81. package/esm2022/user/select/input/translations.mjs +35 -0
  82. package/esm2022/user/select/input/user-select-input.translate.mjs +3 -15
  83. package/esm2022/user/select/searcher/translations.mjs +27 -0
  84. package/esm2022/user/select/searcher/user-searcher.translate.mjs +3 -12
  85. package/establishment/select/input/establishment-select-input.translate.d.ts +3 -3
  86. package/establishment/select/input/translations.d.ts +26 -0
  87. package/establishment/select/select-all/index.d.ts +0 -1
  88. package/fesm2022/lucca-front-ng-a11y.mjs +42 -10
  89. package/fesm2022/lucca-front-ng-a11y.mjs.map +1 -1
  90. package/fesm2022/lucca-front-ng-callout.mjs +21 -4
  91. package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
  92. package/fesm2022/lucca-front-ng-core-select-user.mjs +33 -22
  93. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  94. package/fesm2022/lucca-front-ng-core-select.mjs +19 -8
  95. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  96. package/fesm2022/lucca-front-ng-core.mjs +3 -6
  97. package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
  98. package/fesm2022/lucca-front-ng-date.mjs +94 -34
  99. package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
  100. package/fesm2022/lucca-front-ng-department.mjs +21 -4
  101. package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
  102. package/fesm2022/lucca-front-ng-dialog.mjs +135 -124
  103. package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
  104. package/fesm2022/lucca-front-ng-establishment.mjs +23 -29
  105. package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
  106. package/fesm2022/lucca-front-ng-form-field.mjs +27 -7
  107. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  108. package/fesm2022/lucca-front-ng-forms.mjs +55 -9
  109. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  110. package/fesm2022/lucca-front-ng-modal.mjs +25 -8
  111. package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
  112. package/fesm2022/lucca-front-ng-multi-select.mjs +124 -63
  113. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  114. package/fesm2022/lucca-front-ng-option.mjs +83 -21
  115. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  116. package/fesm2022/lucca-front-ng-popup-employee.mjs +62 -21
  117. package/fesm2022/lucca-front-ng-popup-employee.mjs.map +1 -1
  118. package/fesm2022/lucca-front-ng-qualification.mjs +22 -5
  119. package/fesm2022/lucca-front-ng-qualification.mjs.map +1 -1
  120. package/fesm2022/lucca-front-ng-sidepanel.mjs.map +1 -1
  121. package/fesm2022/lucca-front-ng-simple-select.mjs +33 -10
  122. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  123. package/fesm2022/lucca-front-ng-toast.mjs +21 -4
  124. package/fesm2022/lucca-front-ng-toast.mjs.map +1 -1
  125. package/fesm2022/lucca-front-ng-user.mjs +48 -9
  126. package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
  127. package/form-field/form-field.translate.d.ts +3 -3
  128. package/form-field/public-api.d.ts +3 -2
  129. package/form-field/translations.d.ts +26 -0
  130. package/forms/number-input/number-input.translate.d.ts +3 -3
  131. package/forms/number-input/translations.d.ts +26 -0
  132. package/forms/public-api.d.ts +2 -0
  133. package/forms/text-input/text-input.translate.d.ts +3 -3
  134. package/forms/text-input/translations.d.ts +34 -0
  135. package/modal/modal.translate.d.ts +3 -3
  136. package/modal/translations.d.ts +42 -0
  137. package/multi-select/displayer/default-displayer.translate.d.ts +3 -3
  138. package/multi-select/displayer/index.d.ts +2 -1
  139. package/multi-select/displayer/translations.d.ts +50 -0
  140. package/multi-select/select.translate.d.ts +3 -3
  141. package/multi-select/translations.d.ts +106 -0
  142. package/option/item/translations.d.ts +34 -0
  143. package/option/item/tree-option-item.translate.d.ts +3 -3
  144. package/option/placeholder/option-placeholder.translate.d.ts +3 -3
  145. package/option/placeholder/translations.d.ts +34 -0
  146. package/option/selector/all/select-all.translate.d.ts +3 -3
  147. package/option/selector/all/translations.d.ts +34 -0
  148. package/package.json +26 -26
  149. package/popup-employee/popup-employee.translate.d.ts +3 -3
  150. package/popup-employee/public-api.d.ts +1 -0
  151. package/popup-employee/translations.d.ts +106 -0
  152. package/qualification/select/input/qualification-select-input.translate.d.ts +3 -3
  153. package/qualification/select/input/translations.d.ts +26 -0
  154. package/sidepanel/sidepanel.model.d.ts +3 -3
  155. package/simple-select/select.translate.d.ts +3 -3
  156. package/simple-select/translations.d.ts +58 -0
  157. package/toast/toasts.translate.d.ts +3 -3
  158. package/toast/translations.d.ts +26 -0
  159. package/user/select/input/translations.d.ts +34 -0
  160. package/user/select/input/user-select-input.translate.d.ts +3 -3
  161. package/user/select/searcher/translations.d.ts +26 -0
  162. package/user/select/searcher/user-searcher.translate.d.ts +3 -3
  163. package/esm2022/establishment/select/select-all/establishment-select-all.translate.mjs +0 -23
  164. package/establishment/select/select-all/establishment-select-all.translate.d.ts +0 -3
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-form-field.mjs","sources":["../../../packages/ng/form-field/form-field.token.ts","../../../packages/ng/form-field/form-field.translate.ts","../../../packages/ng/form-field/form-field.component.ts","../../../packages/ng/form-field/form-field.component.html","../../../packages/ng/form-field/input.directive.ts","../../../packages/ng/form-field/lucca-front-ng-form-field.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FormFieldComponent } from './form-field.component';\n\nexport const FORM_FIELD_INSTANCE = new InjectionToken<FormFieldComponent>('FORM_FIELD_INSTANCE');\n","import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_FORM_FIELD_TRANSLATIONS = new InjectionToken('LuFormFieldTranslations', {\n\tfactory: () => luFormFieldTranslations,\n});\n\nexport interface LuFormFieldTranslations {\n\tcounter: string;\n}\n\nexport const luFormFieldTranslations: ILuTranslation<LuFormFieldTranslations> = {\n\tfr: {\n\t\tcounter: 'Votre publication fait {{current}} caractères de long. {{max}} caractères maximum sont autorisés.',\n\t},\n\ten: {\n\t\tcounter: 'Your message is {{current}} characters long. A maximum of {{max}} is allowed.',\n\t},\n};\n","import { booleanAttribute, Component, ContentChildren, DestroyRef, DoCheck, forwardRef, inject, Input, OnChanges, OnDestroy, QueryList, Renderer2, ViewEncapsulation } from '@angular/core';\nimport { NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet } from '@angular/common';\nimport { InputDirective } from './input.directive';\nimport { FormFieldSize } from './form-field-size';\nimport { BehaviorSubject, map, merge, startWith, Subject, switchMap } from 'rxjs';\nimport { InlineMessageComponent, InlineMessageState } from '@lucca-front/ng/inline-message';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { getIntl, IntlParamsPipe, LuClass, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { AbstractControl, NG_VALIDATORS, NgControl, ReactiveFormsModule, RequiredValidator, Validator, Validators } from '@angular/forms';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\nimport { LU_FORM_FIELD_TRANSLATIONS } from './form-field.translate';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-form-field',\n\tstandalone: true,\n\timports: [NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent, IntlParamsPipe, PortalDirective],\n\ttemplateUrl: './form-field.component.html',\n\tstyleUrls: ['./form-field.component.scss'],\n\tproviders: [\n\t\tLuClass,\n\t\t{\n\t\t\tprovide: FORM_FIELD_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => FormFieldComponent),\n\t\t},\n\t],\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class FormFieldComponent implements OnChanges, OnDestroy, DoCheck {\n\tintl = getIntl(LU_FORM_FIELD_TRANSLATIONS);\n\n\t#luClass = inject(LuClass);\n\n\t#renderer = inject(Renderer2);\n\n\t#requiredValidator: RequiredValidator | undefined;\n\n\t#destroyRef = inject(DestroyRef);\n\n\t#doCheck$ = new Subject<void>();\n\n\t@ContentChildren(NG_VALIDATORS, { descendants: true })\n\tpublic set validators(validators: QueryList<Validator | undefined>) {\n\t\tthis.#requiredValidator = validators.toArray()?.find((v): v is RequiredValidator => v instanceof RequiredValidator);\n\t}\n\n\t@ContentChildren(NgControl, { descendants: true })\n\tset controls(controls: QueryList<NgControl>) {\n\t\tconst controls$ = controls.changes.pipe(\n\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\tstartWith(controls),\n\t\t\tmap(() => controls.toArray()),\n\t\t);\n\t\t// If a control is added or removed, we want to update status based on the new ones\n\t\tcontrols$.subscribe((controls) => {\n\t\t\tthis.updateRequiredStatus(controls);\n\t\t});\n\t\t// Upon status change or NgDoCheck trigger, we want to update validity and display\n\t\tcontrols$\n\t\t\t.pipe(\n\t\t\t\tswitchMap((controls) => {\n\t\t\t\t\t// We have to trigger status check on DoCheck too to properly update display when control.touched changes\n\t\t\t\t\t// Because we can't listen to `control.touched` changes, we need to hook on this.\n\t\t\t\t\t// TODO use unified control state change events once we have Angular 18\n\t\t\t\t\treturn merge(this.#doCheck$, ...controls.map((control) => control.statusChanges)).pipe(map(() => controls));\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe((controls) => {\n\t\t\t\tthis.updateRequiredStatus(controls);\n\t\t\t});\n\t}\n\n\t@Input({\n\t\trequired: true,\n\t})\n\tlabel: PortalContent;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\thiddenLabel = false;\n\n\t@Input()\n\tstatusControl: AbstractControl;\n\n\t@Input()\n\ttooltip: string | SafeHtml;\n\n\t@Input()\n\tinvalid = false;\n\n\t@Input()\n\tinlineMessage: string;\n\n\t/**\n\t * Inline message for when the control is in error state\n\t */\n\t@Input()\n\terrorInlineMessage: string;\n\n\t/**\n\t * State of the inline message, will be ignored if form state is invalid\n\t */\n\t@Input()\n\tinlineMessageState: InlineMessageState;\n\n\t@Input()\n\tsize: FormFieldSize;\n\n\t@Input()\n\tlayout: 'default' | 'checkable' | 'fieldset' = 'default';\n\n\t#inputs: InputDirective[] = [];\n\t/**\n\t * Max amount of characters allowed, defaults to 0, which means hidden, no maximum\n\t */\n\t@Input()\n\tcounter = 0;\n\n\trequired = false;\n\n\tget contentLength(): number {\n\t\treturn (this.#inputs[0]?.host?.nativeElement as HTMLInputElement)?.value.length || 0;\n\t}\n\n\tpublic addInput(input: InputDirective) {\n\t\tthis.#inputs.push(input);\n\t\t/* We have to put this in the next cycle to make sure it'll be applied properly\n\t\t * and that it won't trigger a change detection error\n\t\t */\n\t\tsetTimeout(() => {\n\t\t\tthis.prepareInput();\n\t\t});\n\t}\n\n\tpublic get inputs(): InputDirective[] {\n\t\treturn this.#inputs;\n\t}\n\n\tid: string;\n\n\tready$ = new BehaviorSubject<boolean>(false);\n\n\tpublic get ready(): boolean {\n\t\treturn this.ready$.value;\n\t}\n\n\t#ariaLabelledBy: string[] = [];\n\n\taddLabelledBy(id: string, prepend = false): void {\n\t\tif (prepend) {\n\t\t\tthis.#ariaLabelledBy = [id, ...this.#ariaLabelledBy];\n\t\t} else {\n\t\t\tthis.#ariaLabelledBy = [...this.#ariaLabelledBy, id];\n\t\t}\n\t\tthis.#inputs.forEach((input) => {\n\t\t\tif (!input.standalone) {\n\t\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-labelledby', this.#ariaLabelledBy.join(' '));\n\t\t\t}\n\t\t});\n\t}\n\n\tremoveLabelledBy(id: string): void {\n\t\tthis.#ariaLabelledBy = this.#ariaLabelledBy.filter((labelledBy) => labelledBy === id);\n\t}\n\n\tngOnChanges(): void {\n\t\tthis.#luClass.setState({\n\t\t\t[`mod-${this.size}`]: true,\n\t\t\t'mod-checkable': this.layout === 'checkable',\n\t\t\t'form-field': this.layout !== 'fieldset',\n\t\t});\n\t\tthis.updateAria();\n\t}\n\n\tprepareInput(): void {\n\t\tif (this.#inputs.length === 0) {\n\t\t\tthrow new Error('Missing input for form field, make sure to set `luInput` to your input inside lu-form-field');\n\t\t}\n\t\tthis.inputs\n\t\t\t.filter((input) => !input.standalone)\n\t\t\t.forEach((input) => {\n\t\t\t\tconst inputId = `${input.host.nativeElement.tagName.toLowerCase()}-${++nextId}`;\n\t\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'id', inputId);\n\t\t\t});\n\t\t// We're using the id from the first input available\n\t\tthis.id = this.#inputs[0].host.nativeElement.id;\n\t\tthis.updateAria();\n\t\tthis.ready$.next(true);\n\t}\n\n\tprivate updateAria(): void {\n\t\tthis.#inputs.forEach((input) => {\n\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-invalid', this.invalid?.toString());\n\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-required', this.required?.toString());\n\t\t\tif (!input.standalone) {\n\t\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-describedby', `${input.host.nativeElement.id}-message`);\n\t\t\t}\n\t\t});\n\t\tif (this.id) {\n\t\t\tthis.addLabelledBy(`${this.id}-label`);\n\t\t}\n\t}\n\n\tprivate updateRequiredStatus(controls: NgControl[]): void {\n\t\tcontrols.forEach((control) => {\n\t\t\t// invalid management\n\t\t\tconst previousInvalid = this.invalid;\n\t\t\tthis.invalid = (control.invalid || this.statusControl?.invalid) && control.touched;\n\n\t\t\t// required management\n\t\t\tconst previousRequired = this.required;\n\t\t\tthis.required = this.#requiredValidator\n\t\t\t\t? booleanAttribute(this.#requiredValidator.required)\n\t\t\t\t: control.control.hasValidator(Validators.required) || control.control.hasValidator(Validators.requiredTrue);\n\n\t\t\t// If stuff changed, update aria attributes\n\t\t\tif (this.invalid !== previousInvalid || this.required !== previousRequired) {\n\t\t\t\tthis.updateAria();\n\t\t\t}\n\t\t});\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.ready$.complete();\n\t}\n\n\tngDoCheck(): void {\n\t\tthis.#doCheck$.next();\n\t}\n}\n","<fieldset class=\"form-fieldset\" *ngIf=\"layout === 'fieldset'; else defaultTpl\" [class.mod-S]=\"size === 'S'\">\n\t<legend class=\"formLabel\" [class.u-mask]=\"hiddenLabel\" attr.aria-hidden=\"{{hiddenLabel}}\">\n\t\t<ng-container *luPortal=\"label\"></ng-container\n\t\t><!--\n\t--><sup class=\"formLabel-required\" aria-hidden=\"true\" *ngIf=\"required\">*</sup>\n\t\t<lu-icon icon=\"signHelp\" alt=\"\" *ngIf=\"tooltip\" [luTooltip]=\"tooltip\" [color]=\"invalid ? 'error' : 'inherit'\"></lu-icon>\n\t</legend>\n\t<ng-container *ngTemplateOutlet=\"projectionTpl\"></ng-container>\n\t<lu-inline-message\n\t\tid=\"{{id}}-message\"\n\t\t*ngIf=\"inlineMessage || (invalid ? errorInlineMessage : false)\"\n\t\t[label]=\"(invalid && errorInlineMessage) ? errorInlineMessage : inlineMessage\"\n\t\t[state]=\"invalid ? 'error' : inlineMessageState\"\n\t></lu-inline-message>\n</fieldset>\n\n<ng-template #defaultTpl>\n\t<label\n\t\tclass=\"formLabel\"\n\t\t[class.is-error]=\"invalid\"\n\t\t[class.mod-counter]=\"counter > 0\"\n\t\tid=\"{{id}}-label\"\n\t\tfor=\"{{id}}\"\n\t\t[class.u-mask]=\"hiddenLabel\"\n\t\tattr.aria-hidden=\"{{hiddenLabel}}\"\n\t>\n\t\t<ng-container *luPortal=\"label\"></ng-container\n\t\t><!--\n\t--><sup class=\"formLabel-required\" aria-hidden=\"true\" *ngIf=\"required\">*</sup>\n\n\t\t<lu-icon icon=\"signHelp\" alt=\"\" *ngIf=\"tooltip\" [luTooltip]=\"tooltip\" [color]=\"invalid ? 'error' : 'inherit'\"></lu-icon>\n\t\t<span\n\t\t\t*ngIf=\"counter > 0\"\n\t\t\tclass=\"formLabel-counter\"\n\t\t\t[class.u-textError]=\"contentLength > counter\"\n\t\t\tid=\"{{id}}-counter\"\n\t\t\taria-live=\"polite\"\n\t\t>\n\t\t\t<span aria-hidden=\"true\">{{ contentLength }}/{{ counter }}</span>\n\t\t\t<span class=\"u-mask\">{{ intl.counter | intlParams: { current: contentLength, max: counter } }}</span>\n\t\t</span>\n\t</label>\n\t<ng-container *ngTemplateOutlet=\"projectionTpl\"></ng-container>\n\t<lu-inline-message\n\t\tid=\"{{id}}-message\"\n\t\t*ngIf=\"inlineMessage || (invalid ? errorInlineMessage : false)\"\n\t\t[label]=\"(invalid && errorInlineMessage) ? errorInlineMessage : inlineMessage\"\n\t\t[state]=\"invalid ? 'error' : inlineMessageState\"\n\t></lu-inline-message>\n</ng-template>\n\n<ng-template #projectionTpl>\n\t<ng-content></ng-content>\n</ng-template>\n","import { booleanAttribute, Directive, ElementRef, inject, Input, OnInit } from '@angular/core';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\n@Directive({\n\tselector: '[luInput]',\n\tstandalone: true,\n\thost: {\n\t\t// Used to autofocus in dialog boxes, do not change except if you know what you're doing\n\t\tclass: 'luNativeInput',\n\t},\n})\nexport class InputDirective implements OnInit {\n\tpublic readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tpublic readonly formFieldRef = inject(FORM_FIELD_INSTANCE, { optional: true });\n\n\t/**\n\t * prevents message and label ids from being propagated, useful if the input holds its own message and label (like for radios)\n\t */\n\t@Input({ transform: booleanAttribute, alias: 'luInputStandalone' })\n\tstandalone = false;\n\n\tngOnInit(): void {\n\t\t// If the field is used as standalone, we won't have the ref provided so it'll crash\n\t\tif (this.formFieldRef) {\n\t\t\tthis.formFieldRef.addInput(this);\n\t\t}\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-form-field.mjs","sources":["../../../packages/ng/form-field/form-field.token.ts","../../../packages/ng/form-field/translations.ts","../../../packages/ng/form-field/form-field.translate.ts","../../../packages/ng/form-field/form-field.component.ts","../../../packages/ng/form-field/form-field.component.html","../../../packages/ng/form-field/input.directive.ts","../../../packages/ng/form-field/lucca-front-ng-form-field.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FormFieldComponent } from './form-field.component';\n\nexport const FORM_FIELD_INSTANCE = new InjectionToken<FormFieldComponent>('FORM_FIELD_INSTANCE');\n","export const Translations = {\n\ten: {\n\t\tcounter: 'Your message is {{current}} characters long. A maximum of {{max}} characters is allowed.',\n\t},\n\tde: {\n\t\tcounter: 'Ihr Beitrag ist {{current}} Zeichen lang. Maximal sind {{max}} Zeichen erlaubt.',\n\t},\n\tfr: {\n\t\tcounter: 'Votre publication fait {{current}} caractères de long. {{max}} caractères maximum sont autorisés.',\n\t},\n\tit: {\n\t\tcounter: 'La tua pubblicazione è lunga {{current}} caratteri. È consentito un numero di massimo {{max}} caratteri.',\n\t},\n\tnl: {\n\t\tcounter: 'Uw publicatie is {{current}} tekens lang. {{max}} tekens maximaal toegestaan.',\n\t},\n\t'nl-BE': {\n\t\tcounter: 'Uw publicatie is {{current}} tekens lang. {{max}} tekens maximaal toegestaan.',\n\t},\n\tes: {\n\t\tcounter: 'Su publicación tiene {{current}} caracteres. Se permite un máximo de {{max}} caracteres.',\n\t},\n\tpt: {\n\t\tcounter: '{{current}} {{max}} A sua publicação tem um comprimento de caracteres, sendo permitido um máximo de caracteres.',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_FORM_FIELD_TRANSLATIONS = new InjectionToken('LuFormFieldTranslations', {\n\tfactory: () => luFormFieldTranslations,\n});\n\nexport interface LuFormFieldTranslations {\n\tcounter: string;\n}\n\nexport const luFormFieldTranslations: LuTranslation<LuFormFieldTranslations> = Translations;\n","import { booleanAttribute, Component, ContentChildren, DestroyRef, DoCheck, forwardRef, inject, Input, OnChanges, OnDestroy, QueryList, Renderer2, ViewEncapsulation } from '@angular/core';\nimport { NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet } from '@angular/common';\nimport { InputDirective } from './input.directive';\nimport { FormFieldSize } from './form-field-size';\nimport { BehaviorSubject, map, merge, startWith, Subject, switchMap } from 'rxjs';\nimport { InlineMessageComponent, InlineMessageState } from '@lucca-front/ng/inline-message';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { getIntl, IntlParamsPipe, LuClass, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { AbstractControl, NG_VALIDATORS, NgControl, ReactiveFormsModule, RequiredValidator, Validator, Validators } from '@angular/forms';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\nimport { LU_FORM_FIELD_TRANSLATIONS } from './form-field.translate';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-form-field',\n\tstandalone: true,\n\timports: [NgIf, NgSwitch, NgSwitchCase, NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent, IntlParamsPipe, PortalDirective],\n\ttemplateUrl: './form-field.component.html',\n\tstyleUrls: ['./form-field.component.scss'],\n\tproviders: [\n\t\tLuClass,\n\t\t{\n\t\t\tprovide: FORM_FIELD_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => FormFieldComponent),\n\t\t},\n\t],\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class FormFieldComponent implements OnChanges, OnDestroy, DoCheck {\n\tintl = getIntl(LU_FORM_FIELD_TRANSLATIONS);\n\n\t#luClass = inject(LuClass);\n\n\t#renderer = inject(Renderer2);\n\n\t#requiredValidator: RequiredValidator | undefined;\n\n\t#destroyRef = inject(DestroyRef);\n\n\t#doCheck$ = new Subject<void>();\n\n\t@ContentChildren(NG_VALIDATORS, { descendants: true })\n\tpublic set validators(validators: QueryList<Validator | undefined>) {\n\t\tthis.#requiredValidator = validators.toArray()?.find((v): v is RequiredValidator => v instanceof RequiredValidator);\n\t}\n\n\t@ContentChildren(NgControl, { descendants: true })\n\tset controls(controls: QueryList<NgControl>) {\n\t\tconst controls$ = controls.changes.pipe(\n\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\tstartWith(controls),\n\t\t\tmap(() => controls.toArray()),\n\t\t);\n\t\t// If a control is added or removed, we want to update status based on the new ones\n\t\tcontrols$.subscribe((controls) => {\n\t\t\tthis.updateRequiredStatus(controls);\n\t\t});\n\t\t// Upon status change or NgDoCheck trigger, we want to update validity and display\n\t\tcontrols$\n\t\t\t.pipe(\n\t\t\t\tswitchMap((controls) => {\n\t\t\t\t\t// We have to trigger status check on DoCheck too to properly update display when control.touched changes\n\t\t\t\t\t// Because we can't listen to `control.touched` changes, we need to hook on this.\n\t\t\t\t\t// TODO use unified control state change events once we have Angular 18\n\t\t\t\t\treturn merge(this.#doCheck$, ...controls.map((control) => control.statusChanges)).pipe(map(() => controls));\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.subscribe((controls) => {\n\t\t\t\tthis.updateRequiredStatus(controls);\n\t\t\t});\n\t}\n\n\t@Input({\n\t\trequired: true,\n\t})\n\tlabel: PortalContent;\n\n\t@Input({\n\t\ttransform: booleanAttribute,\n\t})\n\thiddenLabel = false;\n\n\t@Input()\n\tstatusControl: AbstractControl;\n\n\t@Input()\n\ttooltip: string | SafeHtml;\n\n\t@Input()\n\tinvalid = false;\n\n\t@Input()\n\tinlineMessage: string;\n\n\t/**\n\t * Inline message for when the control is in error state\n\t */\n\t@Input()\n\terrorInlineMessage: string;\n\n\t/**\n\t * State of the inline message, will be ignored if form state is invalid\n\t */\n\t@Input()\n\tinlineMessageState: InlineMessageState;\n\n\t@Input()\n\tsize: FormFieldSize;\n\n\t@Input()\n\tlayout: 'default' | 'checkable' | 'fieldset' = 'default';\n\n\t#inputs: InputDirective[] = [];\n\t/**\n\t * Max amount of characters allowed, defaults to 0, which means hidden, no maximum\n\t */\n\t@Input()\n\tcounter = 0;\n\n\trequired = false;\n\n\tget contentLength(): number {\n\t\treturn (this.#inputs[0]?.host?.nativeElement as HTMLInputElement)?.value.length || 0;\n\t}\n\n\tpublic addInput(input: InputDirective) {\n\t\tthis.#inputs.push(input);\n\t\t/* We have to put this in the next cycle to make sure it'll be applied properly\n\t\t * and that it won't trigger a change detection error\n\t\t */\n\t\tsetTimeout(() => {\n\t\t\tthis.prepareInput();\n\t\t});\n\t}\n\n\tpublic get inputs(): InputDirective[] {\n\t\treturn this.#inputs;\n\t}\n\n\tid: string;\n\n\tready$ = new BehaviorSubject<boolean>(false);\n\n\tpublic get ready(): boolean {\n\t\treturn this.ready$.value;\n\t}\n\n\t#ariaLabelledBy: string[] = [];\n\n\taddLabelledBy(id: string, prepend = false): void {\n\t\tif (prepend) {\n\t\t\tthis.#ariaLabelledBy = [id, ...this.#ariaLabelledBy];\n\t\t} else {\n\t\t\tthis.#ariaLabelledBy = [...this.#ariaLabelledBy, id];\n\t\t}\n\t\tthis.#inputs.forEach((input) => {\n\t\t\tif (!input.standalone) {\n\t\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-labelledby', this.#ariaLabelledBy.join(' '));\n\t\t\t}\n\t\t});\n\t}\n\n\tremoveLabelledBy(id: string): void {\n\t\tthis.#ariaLabelledBy = this.#ariaLabelledBy.filter((labelledBy) => labelledBy === id);\n\t}\n\n\tngOnChanges(): void {\n\t\tthis.#luClass.setState({\n\t\t\t[`mod-${this.size}`]: true,\n\t\t\t'mod-checkable': this.layout === 'checkable',\n\t\t\t'form-field': this.layout !== 'fieldset',\n\t\t});\n\t\tthis.updateAria();\n\t}\n\n\tprepareInput(): void {\n\t\tif (this.#inputs.length === 0) {\n\t\t\tthrow new Error('Missing input for form field, make sure to set `luInput` to your input inside lu-form-field');\n\t\t}\n\t\tthis.inputs\n\t\t\t.filter((input) => !input.standalone)\n\t\t\t.forEach((input) => {\n\t\t\t\tconst inputId = `${input.host.nativeElement.tagName.toLowerCase()}-${++nextId}`;\n\t\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'id', inputId);\n\t\t\t});\n\t\t// We're using the id from the first input available\n\t\tthis.id = this.#inputs[0].host.nativeElement.id;\n\t\tthis.updateAria();\n\t\tthis.ready$.next(true);\n\t}\n\n\tprivate updateAria(): void {\n\t\tthis.#inputs.forEach((input) => {\n\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-invalid', this.invalid?.toString());\n\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-required', this.required?.toString());\n\t\t\tif (!input.standalone) {\n\t\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-describedby', `${input.host.nativeElement.id}-message`);\n\t\t\t}\n\t\t});\n\t\tif (this.id) {\n\t\t\tthis.addLabelledBy(`${this.id}-label`);\n\t\t}\n\t}\n\n\tprivate updateRequiredStatus(controls: NgControl[]): void {\n\t\tcontrols.forEach((control) => {\n\t\t\t// invalid management\n\t\t\tconst previousInvalid = this.invalid;\n\t\t\tthis.invalid = (control.invalid || this.statusControl?.invalid) && control.touched;\n\n\t\t\t// required management\n\t\t\tconst previousRequired = this.required;\n\t\t\tthis.required = this.#requiredValidator\n\t\t\t\t? booleanAttribute(this.#requiredValidator.required)\n\t\t\t\t: control.control.hasValidator(Validators.required) || control.control.hasValidator(Validators.requiredTrue);\n\n\t\t\t// If stuff changed, update aria attributes\n\t\t\tif (this.invalid !== previousInvalid || this.required !== previousRequired) {\n\t\t\t\tthis.updateAria();\n\t\t\t}\n\t\t});\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.ready$.complete();\n\t}\n\n\tngDoCheck(): void {\n\t\tthis.#doCheck$.next();\n\t}\n}\n","<fieldset class=\"form-fieldset\" *ngIf=\"layout === 'fieldset'; else defaultTpl\" [class.mod-S]=\"size === 'S'\">\n\t<legend class=\"formLabel\" [class.u-mask]=\"hiddenLabel\" attr.aria-hidden=\"{{hiddenLabel}}\">\n\t\t<ng-container *luPortal=\"label\"></ng-container\n\t\t><!--\n\t--><sup class=\"formLabel-required\" aria-hidden=\"true\" *ngIf=\"required\">*</sup>\n\t\t<lu-icon icon=\"signHelp\" alt=\"\" *ngIf=\"tooltip\" [luTooltip]=\"tooltip\" [color]=\"invalid ? 'error' : 'inherit'\"></lu-icon>\n\t</legend>\n\t<ng-container *ngTemplateOutlet=\"projectionTpl\"></ng-container>\n\t<lu-inline-message\n\t\tid=\"{{id}}-message\"\n\t\t*ngIf=\"inlineMessage || (invalid ? errorInlineMessage : false)\"\n\t\t[label]=\"(invalid && errorInlineMessage) ? errorInlineMessage : inlineMessage\"\n\t\t[state]=\"invalid ? 'error' : inlineMessageState\"\n\t></lu-inline-message>\n</fieldset>\n\n<ng-template #defaultTpl>\n\t<label\n\t\tclass=\"formLabel\"\n\t\t[class.is-error]=\"invalid\"\n\t\t[class.mod-counter]=\"counter > 0\"\n\t\tid=\"{{id}}-label\"\n\t\tfor=\"{{id}}\"\n\t\t[class.u-mask]=\"hiddenLabel\"\n\t\tattr.aria-hidden=\"{{hiddenLabel}}\"\n\t>\n\t\t<ng-container *luPortal=\"label\"></ng-container\n\t\t><!--\n\t--><sup class=\"formLabel-required\" aria-hidden=\"true\" *ngIf=\"required\">*</sup>\n\n\t\t<lu-icon icon=\"signHelp\" alt=\"\" *ngIf=\"tooltip\" [luTooltip]=\"tooltip\" [color]=\"invalid ? 'error' : 'inherit'\"></lu-icon>\n\t\t<span\n\t\t\t*ngIf=\"counter > 0\"\n\t\t\tclass=\"formLabel-counter\"\n\t\t\t[class.u-textError]=\"contentLength > counter\"\n\t\t\tid=\"{{id}}-counter\"\n\t\t\taria-live=\"polite\"\n\t\t>\n\t\t\t<span aria-hidden=\"true\">{{ contentLength }}/{{ counter }}</span>\n\t\t\t<span class=\"u-mask\">{{ intl.counter | intlParams: { current: contentLength, max: counter } }}</span>\n\t\t</span>\n\t</label>\n\t<ng-container *ngTemplateOutlet=\"projectionTpl\"></ng-container>\n\t<lu-inline-message\n\t\tid=\"{{id}}-message\"\n\t\t*ngIf=\"inlineMessage || (invalid ? errorInlineMessage : false)\"\n\t\t[label]=\"(invalid && errorInlineMessage) ? errorInlineMessage : inlineMessage\"\n\t\t[state]=\"invalid ? 'error' : inlineMessageState\"\n\t></lu-inline-message>\n</ng-template>\n\n<ng-template #projectionTpl>\n\t<ng-content></ng-content>\n</ng-template>\n","import { booleanAttribute, Directive, ElementRef, inject, Input, OnInit } from '@angular/core';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\n@Directive({\n\tselector: '[luInput]',\n\tstandalone: true,\n\thost: {\n\t\t// Used to autofocus in dialog boxes, do not change except if you know what you're doing\n\t\tclass: 'luNativeInput',\n\t},\n})\nexport class InputDirective implements OnInit {\n\tpublic readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tpublic readonly formFieldRef = inject(FORM_FIELD_INSTANCE, { optional: true });\n\n\t/**\n\t * prevents message and label ids from being propagated, useful if the input holds its own message and label (like for radios)\n\t */\n\t@Input({ transform: booleanAttribute, alias: 'luInputStandalone' })\n\tstandalone = false;\n\n\tngOnInit(): void {\n\t\t// If the field is used as standalone, we won't have the ref provided so it'll crash\n\t\tif (this.formFieldRef) {\n\t\t\tthis.formFieldRef.addInput(this);\n\t\t}\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -111,20 +111,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
111
111
  args: ['attr.id']
112
112
  }] } });
113
113
 
114
- const LU_TEXTFIELD_TRANSLATIONS = new InjectionToken('LuTextfieldTranslations', {
115
- factory: () => luTextfieldTranslations,
116
- });
117
- const luTextfieldTranslations = {
114
+ const Translations$1 = {
118
115
  en: {
119
116
  clear: 'Empty this field',
120
117
  togglePasswordVisibility: 'Show password',
121
118
  },
119
+ de: {
120
+ clear: 'Dieses Feld leeren',
121
+ togglePasswordVisibility: 'Passwort anzeigen',
122
+ },
122
123
  fr: {
123
124
  clear: 'Vider ce champ',
124
125
  togglePasswordVisibility: 'Afficher le mot de passe',
125
126
  },
127
+ it: {
128
+ clear: 'Cancellare questo campo',
129
+ togglePasswordVisibility: 'Visualizzare la password',
130
+ },
131
+ nl: {
132
+ clear: 'Dit veld leegmaken',
133
+ togglePasswordVisibility: 'Wachtwoord weergeven',
134
+ },
135
+ 'nl-BE': {
136
+ clear: 'Dit veld leegmaken',
137
+ togglePasswordVisibility: 'Wachtwoord weergeven',
138
+ },
139
+ es: {
140
+ clear: 'Vacíe este campo',
141
+ togglePasswordVisibility: 'Ver la contraseña',
142
+ },
143
+ pt: {
144
+ clear: 'Esvaziar este campo',
145
+ togglePasswordVisibility: 'Mostrar palavra-passe',
146
+ },
126
147
  };
127
148
 
149
+ const LU_TEXTFIELD_TRANSLATIONS = new InjectionToken('LuTextfieldTranslations', {
150
+ factory: () => luTextfieldTranslations,
151
+ });
152
+ const luTextfieldTranslations = Translations$1;
153
+
128
154
  class TextInputComponent {
129
155
  constructor() {
130
156
  this.ngControl = injectNgControl();
@@ -183,18 +209,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
183
209
  type: Input
184
210
  }] } });
185
211
 
186
- const LU_NUMBERFIELD_TRANSLATIONS = new InjectionToken('LuNumberFieldTranslations', {
187
- factory: () => luNumberFieldTranslations,
188
- });
189
- const luNumberFieldTranslations = {
212
+ const Translations = {
190
213
  en: {
191
214
  clear: 'Empty this field',
192
215
  },
216
+ de: {
217
+ clear: 'Dieses Feld leeren',
218
+ },
193
219
  fr: {
194
220
  clear: 'Vider ce champ',
195
221
  },
222
+ it: {
223
+ clear: 'Cancellare questo campo',
224
+ },
225
+ nl: {
226
+ clear: 'Dit veld leegmaken',
227
+ },
228
+ 'nl-BE': {
229
+ clear: 'Dit veld leegmaken',
230
+ },
231
+ es: {
232
+ clear: 'Vacíe este campo',
233
+ },
234
+ pt: {
235
+ clear: 'Esvaziar este campo',
236
+ },
196
237
  };
197
238
 
239
+ const LU_NUMBERFIELD_TRANSLATIONS = new InjectionToken('LuNumberFieldTranslations', {
240
+ factory: () => luNumberFieldTranslations,
241
+ });
242
+ const luNumberFieldTranslations = Translations;
243
+
198
244
  class NumberInputComponent {
199
245
  constructor() {
200
246
  this.ngControl = injectNgControl();
@@ -374,5 +420,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
374
420
  * Generated bundle index. Do not edit.
375
421
  */
376
422
 
377
- export { CheckboxInputComponent, FormFieldIdDirective, NoopValueAccessorDirective, NumberInputComponent, RadioComponent, RadioGroupInputComponent, SwitchInputComponent, TextInputComponent, TextareaInputComponent, injectNgControl };
423
+ export { CheckboxInputComponent, FormFieldIdDirective, LU_NUMBERFIELD_TRANSLATIONS, LU_TEXTFIELD_TRANSLATIONS, NoopValueAccessorDirective, NumberInputComponent, RadioComponent, RadioGroupInputComponent, SwitchInputComponent, TextInputComponent, TextareaInputComponent, injectNgControl, luNumberFieldTranslations, luTextfieldTranslations };
378
424
  //# sourceMappingURL=lucca-front-ng-forms.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-forms.mjs","sources":["../../../packages/ng/forms/noop-value-accessor.directive.ts","../../../packages/ng/forms/inject-ng-control.ts","../../../packages/ng/forms/form-field-id.directive.ts","../../../packages/ng/forms/text-input/text-input.translate.ts","../../../packages/ng/forms/text-input/text-input.component.ts","../../../packages/ng/forms/text-input/text-input.component.html","../../../packages/ng/forms/number-input/number-input.translate.ts","../../../packages/ng/forms/number-input/number-input.component.ts","../../../packages/ng/forms/number-input/number-input.component.html","../../../packages/ng/forms/checkbox-input/checkbox-input.component.ts","../../../packages/ng/forms/checkbox-input/checkbox-input.component.html","../../../packages/ng/forms/switch-input/switch-input.component.ts","../../../packages/ng/forms/switch-input/switch-input.component.html","../../../packages/ng/forms/radio-group-input/radio-group-token.ts","../../../packages/ng/forms/radio-group-input/radio-group-input.component.ts","../../../packages/ng/forms/radio-group-input/radio/radio.component.ts","../../../packages/ng/forms/radio-group-input/radio/radio.component.html","../../../packages/ng/forms/textarea-input/textarea-input.component.ts","../../../packages/ng/forms/textarea-input/textarea-input.component.html","../../../packages/ng/forms/lucca-front-ng-forms.ts"],"sourcesContent":["//Source: https://netbasal.com/forwarding-form-controls-to-custom-control-components-in-angular-701e8406cc55\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Directive } from '@angular/core';\n\n@Directive({\n\tselector: '[luNoopValueAccessor]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tmulti: true,\n\t\t\tuseExisting: NoopValueAccessorDirective,\n\t\t},\n\t],\n})\nexport class NoopValueAccessorDirective implements ControlValueAccessor {\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\twriteValue(): void {}\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tregisterOnChange(): void {}\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tregisterOnTouched(): void {}\n}\n","//Source: https://netbasal.com/forwarding-form-controls-to-custom-control-components-in-angular-701e8406cc55\n// Heavily modified to handle ngModel properly\nimport { FormControlDirective, FormControlName, NgControl, NgModel } from '@angular/forms';\nimport { DestroyRef, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nexport function injectNgControl() {\n\tconst ngControl = inject(NgControl, { self: true, optional: true });\n\n\tif (!ngControl) {\n\t\tthrow new Error('NgControl not found');\n\t}\n\n\tif (ngControl instanceof NgModel) {\n\t\tconst destroyRef = inject(DestroyRef);\n\t\tngControl.control.valueChanges.pipe(takeUntilDestroyed(destroyRef)).subscribe((value) => {\n\t\t\tif (ngControl.model !== value || ngControl.viewModel !== value) {\n\t\t\t\tngControl.viewToModelUpdate(value);\n\t\t\t}\n\t\t});\n\t\treturn ngControl;\n\t}\n\n\tif (ngControl instanceof FormControlDirective || ngControl instanceof FormControlName) {\n\t\treturn ngControl;\n\t}\n\n\tthrow new Error(`NgControl is not an instance of FormControlDirective, FormControlName or NgModel`);\n}\n","import { Directive, HostBinding, inject, Input, OnDestroy } from '@angular/core';\nimport { FormFieldComponent } from '@lucca-front/ng/form-field';\nimport { filter, take } from 'rxjs/operators';\n\n@Directive({\n\tselector: '[luFormFieldId]',\n\tstandalone: true,\n})\nexport class FormFieldIdDirective implements OnDestroy {\n\t#formFieldComponent = inject(FormFieldComponent);\n\n\t#suffix: string;\n\n\t@Input({\n\t\trequired: true,\n\t\talias: 'luFormFieldId',\n\t})\n\tset suffix(suffix: string) {\n\t\tthis.#suffix = suffix;\n\t\tif (this.#formFieldComponent.ready) {\n\t\t\tthis.applyLabelledBy();\n\t\t}\n\t}\n\n\t@Input()\n\tlabelledByStrategy: 'prepend' | 'append' = 'append';\n\n\t@HostBinding('attr.id')\n\tget id(): string {\n\t\treturn `${this.#formFieldComponent.id}-${this.#suffix}`;\n\t}\n\n\tconstructor() {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\tthis.#formFieldComponent.ready$.pipe(filter(Boolean), take(1)).subscribe(() => {\n\t\t\tthis.applyLabelledBy();\n\t\t});\n\t}\n\n\tprivate applyLabelledBy(): void {\n\t\tthis.#formFieldComponent.addLabelledBy(`${this.#formFieldComponent.id}-${this.#suffix}`, this.labelledByStrategy === 'prepend');\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.#formFieldComponent.removeLabelledBy(`${this.#formFieldComponent.id}-${this.#suffix}`);\n\t}\n}\n","import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_TEXTFIELD_TRANSLATIONS = new InjectionToken('LuTextfieldTranslations', {\n\tfactory: () => luTextfieldTranslations,\n});\n\nexport interface LuTextfieldLabel {\n\tclear: string;\n\ttogglePasswordVisibility: string;\n}\n\nexport const luTextfieldTranslations: ILuTranslation<LuTextfieldLabel> = {\n\ten: {\n\t\tclear: 'Empty this field',\n\t\ttogglePasswordVisibility: 'Show password',\n\t},\n\tfr: {\n\t\tclear: 'Vider ce champ',\n\t\ttogglePasswordVisibility: 'Afficher le mot de passe',\n\t},\n};\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, Component, ElementRef, Input, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { FormFieldComponent, InputDirective } from '@lucca-front/ng/form-field';\nimport { FormFieldIdDirective } from '../form-field-id.directive';\nimport { injectNgControl } from '../inject-ng-control';\nimport { NoopValueAccessorDirective } from '../noop-value-accessor.directive';\nimport { TextInputAddon } from './text-input-addon';\nimport { LU_TEXTFIELD_TRANSLATIONS } from './text-input.translate';\n\ntype TextFieldType = 'text' | 'email' | 'password' | 'url';\n\n@Component({\n\tselector: 'lu-text-input',\n\tstandalone: true,\n\timports: [FormFieldComponent, InputDirective, NgIf, ReactiveFormsModule, FormFieldIdDirective, NgTemplateOutlet],\n\ttemplateUrl: './text-input.component.html',\n\thostDirectives: [NoopValueAccessorDirective],\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class TextInputComponent {\n\tngControl = injectNgControl();\n\n\t@Input()\n\tplaceholder: string = '';\n\n\t@Input({ transform: booleanAttribute })\n\thasClearer = false;\n\n\t@Input({ transform: booleanAttribute })\n\thasSearchIcon = false;\n\n\t@ViewChild('inputElement', { static: true })\n\tinputElementRef: ElementRef<HTMLInputElement>;\n\n\t@Input()\n\tprefix: TextInputAddon;\n\n\t@Input()\n\tsuffix: TextInputAddon;\n\n\t@Input()\n\tget type(): TextFieldType {\n\t\treturn this.showPassword ? 'text' : this._type;\n\t}\n\n\tset type(type: TextFieldType) {\n\t\tthis._type = type;\n\t}\n\n\t@Input()\n\t/**\n\t * Search icon to use for when `hasSearchIcon` is true, defaults to 'search'\n\t */\n\tsearchIcon: LuccaIcon = 'search';\n\n\tshowPassword: boolean = false;\n\n\tprivate _type: TextFieldType = 'text';\n\n\tprotected hasTogglePasswordVisibilityIcon() {\n\t\treturn this._type === 'password';\n\t}\n\n\tintl = getIntl(LU_TEXTFIELD_TRANSLATIONS);\n\n\tclearValue(): void {\n\t\tthis.ngControl.reset();\n\t\tthis.inputElementRef.nativeElement.focus();\n\t}\n\n\ttogglePasswordVisibility() {\n\t\tthis.showPassword = !this.showPassword;\n\t}\n}\n","<div class=\"textField\">\n\t<ng-template #textfieldAddon let-addon=\"addon\" let-type=\"type\">\n\t\t<span class=\"textField-{{type}}\" luFormFieldId=\"{{type}}\" *ngIf=\"addon.content\">\n\t\t\t<span class=\"textField-label-{{type}}-item\" [attr.aria-label]=\"addon.ariaLabel\">{{ addon.content }}</span>\n\t\t</span>\n\t\t<span class=\"textField-{{type}}\" luFormFieldId=\"{{type}}\" *ngIf=\"addon.icon\">\n\t\t\t<span class=\"textField-label-{{type}}-item\" [attr.aria-label]=\"addon.ariaLabel\"\n\t\t\t\t><span class=\"lucca-icon icon-{{addon.icon}}\"></span\n\t\t\t></span>\n\t\t</span>\n\t</ng-template>\n\n\t<ng-container *ngIf=\"prefix\">\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"textfieldAddon; context:{\n\t\t\ttype: 'prefix',\n\t\t\taddon: prefix\n }\"\n\t\t>\n\t\t</ng-container>\n\t</ng-container>\n\t<ng-container *ngIf=\"suffix\">\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"textfieldAddon; context:{\n\t\t\ttype: 'suffix',\n\t\t\taddon: suffix\n }\"\n\t\t>\n\t\t</ng-container>\n\t</ng-container>\n\n\t<div class=\"textField-input\">\n\t\t<input\n\t\t\tluInput\n\t\t\t[type]=\"type\"\n\t\t\tclass=\"textField-input-value\"\n\t\t\t[placeholder]=\"placeholder\"\n\t\t\t[formControl]=\"ngControl.control\"\n\t\t\t#inputElement\n\t\t/>\n\t\t<div class=\"textField-input-affix\">\n\t\t\t<button class=\"textField-input-affix-clear clear\" type=\"button\" (click)=\"clearValue()\" *ngIf=\"hasClearer && inputElement.value\">\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-signClose\"></span>\n\t\t\t\t<span class=\"u-mask\">{{ intl.clear }}</span>\n\t\t\t</button>\n\t\t\t<span aria-hidden=\"true\" class=\"textField-input-affix-icon lucca-icon icon-{{searchIcon}}\" *ngIf=\"hasSearchIcon\"></span>\n\t\t\t<button\n\t\t\t\t[attr.aria-pressed]=\"showPassword\"\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"button mod-onlyIcon mod-text textField-input-affix-passwordToggle\"\n\t\t\t\t(click)=\"togglePasswordVisibility()\"\n\t\t\t\t*ngIf=\"hasTogglePasswordVisibilityIcon()\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-{{showPassword ? 'unwatch' : 'watch'}}\"></span>\n\t\t\t\t<span class=\"u-mask\">{{ intl.togglePasswordVisibility }}</span>\n\t\t\t</button>\n\t\t</div>\n\t</div>\n</div>\n","import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_NUMBERFIELD_TRANSLATIONS = new InjectionToken('LuNumberFieldTranslations', {\n\tfactory: () => luNumberFieldTranslations,\n});\n\nexport interface LuNumberFieldLabel {\n\tclear: string;\n}\n\nexport const luNumberFieldTranslations: ILuTranslation<LuNumberFieldLabel> = {\n\ten: {\n\t\tclear: 'Empty this field',\n\t},\n\tfr: {\n\t\tclear: 'Vider ce champ',\n\t},\n};\n","import { booleanAttribute, Component, ElementRef, Input, numberAttribute, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormFieldComponent, InputDirective } from '@lucca-front/ng/form-field';\nimport { NoopValueAccessorDirective } from '../noop-value-accessor.directive';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\nimport { FormFieldIdDirective } from '../form-field-id.directive';\nimport { TextInputAddon } from '../text-input/text-input-addon';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { LU_NUMBERFIELD_TRANSLATIONS } from './number-input.translate';\nimport { injectNgControl } from '../inject-ng-control';\n\n@Component({\n\tselector: 'lu-number-input',\n\tstandalone: true,\n\timports: [FormFieldComponent, InputDirective, NgIf, ReactiveFormsModule, FormFieldIdDirective, NgTemplateOutlet],\n\ttemplateUrl: './number-input.component.html',\n\thostDirectives: [NoopValueAccessorDirective],\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class NumberInputComponent {\n\tngControl = injectNgControl();\n\n\t@Input()\n\tplaceholder: string = '';\n\n\t@Input({ transform: numberAttribute })\n\tstep: number = 1;\n\n\t@Input({ transform: booleanAttribute })\n\tnoSpinButtons = false;\n\n\t@Input({ transform: booleanAttribute })\n\thasClearer = false;\n\n\t@ViewChild('inputElement', { static: true })\n\tinputElementRef: ElementRef<HTMLInputElement>;\n\n\t@Input()\n\tprefix: TextInputAddon;\n\n\t@Input()\n\tsuffix: TextInputAddon;\n\n\t@Input()\n\tmin?: number;\n\n\t@Input()\n\tmax?: number;\n\n\tintl = getIntl(LU_NUMBERFIELD_TRANSLATIONS);\n\n\tclearValue(): void {\n\t\tthis.ngControl.reset();\n\t\tthis.inputElementRef.nativeElement.focus();\n\t}\n}\n","<div class=\"textField\">\n\t<ng-template #addon let-addon=\"addon\" let-type=\"type\">\n\t\t<span class=\"textField-{{type}}\" luFormFieldId=\"{{type}}\" *ngIf=\"addon.content\">\n\t\t\t<span class=\"textField-label-{{type}}-item\" [attr.aria-label]=\"addon.ariaLabel\">{{ addon.content }}</span>\n\t\t</span>\n\t\t<span class=\"textField-{{type}}\" luFormFieldId=\"{{type}}\" *ngIf=\"addon.icon\">\n\t\t\t<span class=\"textField-label-{{type}}-item\" [attr.aria-label]=\"addon.ariaLabel\"\n\t\t\t\t><span class=\"lucca-icon icon-{{addon.icon}}\"></span\n\t\t\t></span>\n\t\t</span>\n\t</ng-template>\n\n\t<ng-container *ngIf=\"prefix\">\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"addon; context:{\n\t\t\ttype: 'prefix',\n\t\t\taddon: prefix\n }\"\n\t\t>\n\t\t</ng-container>\n\t</ng-container>\n\t<ng-container *ngIf=\"suffix\">\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"addon; context:{\n\t\t\ttype: 'suffix',\n\t\t\taddon: suffix\n }\"\n\t\t>\n\t\t</ng-container>\n\t</ng-container>\n\n\t<div class=\"textField-input\">\n\t\t<input\n\t\t\tluInput\n\t\t\ttype=\"number\"\n\t\t\tclass=\"textField-input-value\"\n\t\t\t[placeholder]=\"placeholder\"\n\t\t\t[formControl]=\"ngControl.control\"\n\t\t\t[step]=\"step\"\n\t\t\t[min]=\"min\"\n\t\t\t[max]=\"max\"\n\t\t\t[class.u-noSpinButtons]=\"noSpinButtons\"\n\t\t\t#inputElement\n\t\t/>\n\t\t<div class=\"textField-input-affix\">\n\t\t\t<button class=\"textField-input-affix-clear clear\" type=\"button\" (click)=\"clearValue()\" *ngIf=\"hasClearer && inputElement.value\">\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-signClose\"></span>\n\t\t\t\t<span class=\"u-mask\">{{ intl.clear }}</span>\n\t\t\t</button>\n\t\t</div>\n\t</div>\n</div>\n","import { booleanAttribute, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FORM_FIELD_INSTANCE, FormFieldComponent, InputDirective } from '@lucca-front/ng/form-field';\nimport { injectNgControl } from '../inject-ng-control';\nimport { NoopValueAccessorDirective } from '../noop-value-accessor.directive';\n\n@Component({\n\tselector: 'lu-checkbox-input',\n\tstandalone: true,\n\timports: [ReactiveFormsModule, InputDirective],\n\thostDirectives: [NoopValueAccessorDirective],\n\ttemplateUrl: './checkbox-input.component.html',\n\tstyleUrls: ['./checkbox-input.component.scss'],\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'checkboxField',\n\t},\n})\nexport class CheckboxInputComponent {\n\tformField = inject<FormFieldComponent>(FORM_FIELD_INSTANCE, { optional: true });\n\n\tngControl = injectNgControl();\n\n\t@Input({ transform: booleanAttribute })\n\t/**\n\t * Should set aria-checked='mixed' attribute ?\n\t */\n\tmixed = false;\n\n\tconstructor() {\n\t\tif (this.formField) {\n\t\t\tthis.formField.layout = 'checkable';\n\t\t}\n\t}\n}\n","<input luInput type=\"checkbox\" class=\"checkboxField-input\" [formControl]=\"ngControl.control\" [attr.aria-checked]=\"mixed ? 'mixed' : null\" />\n<span class=\"checkboxField-icon\" aria-hidden=\"true\"><span class=\"checkboxField-icon-check\"></span></span>\n","import { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { FORM_FIELD_INSTANCE, FormFieldComponent, InputDirective } from '@lucca-front/ng/form-field';\nimport { NoopValueAccessorDirective } from '../noop-value-accessor.directive';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { injectNgControl } from '../inject-ng-control';\n\n@Component({\n\tselector: 'lu-switch-input',\n\tstandalone: true,\n\timports: [FormFieldComponent, ReactiveFormsModule, InputDirective],\n\ttemplateUrl: './switch-input.component.html',\n\thostDirectives: [NoopValueAccessorDirective],\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'switchField',\n\t},\n})\nexport class SwitchInputComponent {\n\tformField = inject<FormFieldComponent>(FORM_FIELD_INSTANCE, { optional: true });\n\n\tngControl = injectNgControl();\n\n\tconstructor() {\n\t\tif (this.formField) {\n\t\t\tthis.formField.layout = 'checkable';\n\t\t}\n\t}\n}\n","<input luInput type=\"checkbox\" class=\"switchField-input\" [formControl]=\"ngControl.control\" />\n<span class=\"switchField-icon\" aria-hidden=\"true\"><span class=\"switchField-icon-check\"></span></span>\n","import { InjectionToken } from '@angular/core';\nimport { RadioGroupInputComponent } from './radio-group-input.component';\n\nexport const RADIO_GROUP_INSTANCE = new InjectionToken<RadioGroupInputComponent>('RADIO_GROUP_INSTANCE');\n","import { ChangeDetectionStrategy, Component, forwardRef, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { FORM_FIELD_INSTANCE, FormFieldComponent, InputDirective } from '@lucca-front/ng/form-field';\nimport { injectNgControl } from '../inject-ng-control';\nimport { NoopValueAccessorDirective } from '../noop-value-accessor.directive';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { RADIO_GROUP_INSTANCE } from './radio-group-token';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-radio-group-input',\n\tstandalone: true,\n\timports: [InputDirective, ReactiveFormsModule],\n\thostDirectives: [NoopValueAccessorDirective],\n\ttemplate: '<ng-content></ng-content>',\n\tstyleUrl: './radio-group-input.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: RADIO_GROUP_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => RadioGroupInputComponent),\n\t\t},\n\t],\n})\nexport class RadioGroupInputComponent {\n\tformField = inject<FormFieldComponent>(FORM_FIELD_INSTANCE, { optional: true });\n\n\tngControl = injectNgControl();\n\n\t@Input()\n\tsize: 'S' | 'M';\n\n\tname = `radio-group-${nextId++}`;\n\n\tconstructor() {\n\t\tif (this.formField) {\n\t\t\tthis.formField.layout = 'fieldset';\n\t\t}\n\t}\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, HostBinding, inject, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { InputDirective } from '@lucca-front/ng/form-field';\nimport { InlineMessageComponent } from '@lucca-front/ng/inline-message';\nimport { NgIf } from '@angular/common';\nimport { RADIO_GROUP_INSTANCE } from '../radio-group-token';\nimport { LuClass } from '@lucca-front/ng/core';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-radio',\n\tstandalone: true,\n\timports: [ReactiveFormsModule, InputDirective, InlineMessageComponent, NgIf],\n\ttemplateUrl: './radio.component.html',\n\tstyleUrl: './radio.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'form-field',\n\t},\n\tproviders: [LuClass],\n})\nexport class RadioComponent<T = unknown> implements OnChanges {\n\t#luClass = inject(LuClass);\n\n\t@Input({ required: true })\n\tvalue: T;\n\n\t@Input({ transform: booleanAttribute })\n\tdisabled: boolean;\n\n\t@Input()\n\tinlineMessage: string;\n\n\t#parentGroup = inject(RADIO_GROUP_INSTANCE);\n\n\tpublic get formControl() {\n\t\treturn this.#parentGroup.ngControl.control;\n\t}\n\n\tpublic get name() {\n\t\treturn this.#parentGroup.name;\n\t}\n\n\t@HostBinding('id')\n\tid = `radio-${++nextId}`;\n\n\tngOnChanges(): void {\n\t\tthis.#luClass.setState({\n\t\t\t[`mod-${this.#parentGroup.size}`]: true,\n\t\t});\n\t}\n}\n","<label class=\"formLabel\" id=\"{{id}}-label\" for=\"{{id}}-input\">\n\t<ng-content></ng-content>\n</label>\n<span class=\"radioField\">\n\t<input\n\t\t[formControl]=\"formControl\"\n\t\t[attr.disabled]=\"(formControl.disabled || disabled) ? 'disabled' : null\"\n\t\ttype=\"radio\"\n\t\tclass=\"radioField-input\"\n\t\tid=\"{{id}}-input\"\n\t\t[name]=\"name\"\n\t\t[value]=\"value\"\n\t\tluInput\n\t\tluInputStandalone\n\t\tattr.aria-labelledby=\"{{id}}-label\"\n\t\tattr.aria-describedby=\"{{id}}-message\"\n\t/>\n\t<span class=\"radioField-icon\" aria-hidden=\"true\">\n\t\t<span class=\"radioField-icon-check\"></span>\n\t</span>\n</span>\n<lu-inline-message *ngIf=\"inlineMessage\" [label]=\"inlineMessage\" id=\"{{id}}-message\"></lu-inline-message>\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { InputDirective } from '@lucca-front/ng/form-field';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { injectNgControl } from '../inject-ng-control';\nimport { NoopValueAccessorDirective } from '../noop-value-accessor.directive';\n\n@Component({\n\tselector: 'lu-textarea-input',\n\tstandalone: true,\n\timports: [InputDirective, ReactiveFormsModule],\n\ttemplateUrl: './textarea-input.component.html',\n\thostDirectives: [NoopValueAccessorDirective],\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TextareaInputComponent {\n\tngControl = injectNgControl();\n\n\t@Input()\n\tplaceholder: string = '';\n}\n","<div class=\"textField\">\n\t<div class=\"textField-input\">\n\t\t<textarea luInput class=\"textField-input-value\" [formControl]=\"ngControl.control\" [placeholder]=\"placeholder\"></textarea>\n\t</div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NoopValueAccessorDirective","nextId","i1"],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-forms.mjs","sources":["../../../packages/ng/forms/noop-value-accessor.directive.ts","../../../packages/ng/forms/inject-ng-control.ts","../../../packages/ng/forms/form-field-id.directive.ts","../../../packages/ng/forms/text-input/translations.ts","../../../packages/ng/forms/text-input/text-input.translate.ts","../../../packages/ng/forms/text-input/text-input.component.ts","../../../packages/ng/forms/text-input/text-input.component.html","../../../packages/ng/forms/number-input/translations.ts","../../../packages/ng/forms/number-input/number-input.translate.ts","../../../packages/ng/forms/number-input/number-input.component.ts","../../../packages/ng/forms/number-input/number-input.component.html","../../../packages/ng/forms/checkbox-input/checkbox-input.component.ts","../../../packages/ng/forms/checkbox-input/checkbox-input.component.html","../../../packages/ng/forms/switch-input/switch-input.component.ts","../../../packages/ng/forms/switch-input/switch-input.component.html","../../../packages/ng/forms/radio-group-input/radio-group-token.ts","../../../packages/ng/forms/radio-group-input/radio-group-input.component.ts","../../../packages/ng/forms/radio-group-input/radio/radio.component.ts","../../../packages/ng/forms/radio-group-input/radio/radio.component.html","../../../packages/ng/forms/textarea-input/textarea-input.component.ts","../../../packages/ng/forms/textarea-input/textarea-input.component.html","../../../packages/ng/forms/lucca-front-ng-forms.ts"],"sourcesContent":["//Source: https://netbasal.com/forwarding-form-controls-to-custom-control-components-in-angular-701e8406cc55\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Directive } from '@angular/core';\n\n@Directive({\n\tselector: '[luNoopValueAccessor]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tmulti: true,\n\t\t\tuseExisting: NoopValueAccessorDirective,\n\t\t},\n\t],\n})\nexport class NoopValueAccessorDirective implements ControlValueAccessor {\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\twriteValue(): void {}\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tregisterOnChange(): void {}\n\n\t// eslint-disable-next-line @typescript-eslint/no-empty-function\n\tregisterOnTouched(): void {}\n}\n","//Source: https://netbasal.com/forwarding-form-controls-to-custom-control-components-in-angular-701e8406cc55\n// Heavily modified to handle ngModel properly\nimport { FormControlDirective, FormControlName, NgControl, NgModel } from '@angular/forms';\nimport { DestroyRef, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nexport function injectNgControl() {\n\tconst ngControl = inject(NgControl, { self: true, optional: true });\n\n\tif (!ngControl) {\n\t\tthrow new Error('NgControl not found');\n\t}\n\n\tif (ngControl instanceof NgModel) {\n\t\tconst destroyRef = inject(DestroyRef);\n\t\tngControl.control.valueChanges.pipe(takeUntilDestroyed(destroyRef)).subscribe((value) => {\n\t\t\tif (ngControl.model !== value || ngControl.viewModel !== value) {\n\t\t\t\tngControl.viewToModelUpdate(value);\n\t\t\t}\n\t\t});\n\t\treturn ngControl;\n\t}\n\n\tif (ngControl instanceof FormControlDirective || ngControl instanceof FormControlName) {\n\t\treturn ngControl;\n\t}\n\n\tthrow new Error(`NgControl is not an instance of FormControlDirective, FormControlName or NgModel`);\n}\n","import { Directive, HostBinding, inject, Input, OnDestroy } from '@angular/core';\nimport { FormFieldComponent } from '@lucca-front/ng/form-field';\nimport { filter, take } from 'rxjs/operators';\n\n@Directive({\n\tselector: '[luFormFieldId]',\n\tstandalone: true,\n})\nexport class FormFieldIdDirective implements OnDestroy {\n\t#formFieldComponent = inject(FormFieldComponent);\n\n\t#suffix: string;\n\n\t@Input({\n\t\trequired: true,\n\t\talias: 'luFormFieldId',\n\t})\n\tset suffix(suffix: string) {\n\t\tthis.#suffix = suffix;\n\t\tif (this.#formFieldComponent.ready) {\n\t\t\tthis.applyLabelledBy();\n\t\t}\n\t}\n\n\t@Input()\n\tlabelledByStrategy: 'prepend' | 'append' = 'append';\n\n\t@HostBinding('attr.id')\n\tget id(): string {\n\t\treturn `${this.#formFieldComponent.id}-${this.#suffix}`;\n\t}\n\n\tconstructor() {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n\t\tthis.#formFieldComponent.ready$.pipe(filter(Boolean), take(1)).subscribe(() => {\n\t\t\tthis.applyLabelledBy();\n\t\t});\n\t}\n\n\tprivate applyLabelledBy(): void {\n\t\tthis.#formFieldComponent.addLabelledBy(`${this.#formFieldComponent.id}-${this.#suffix}`, this.labelledByStrategy === 'prepend');\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.#formFieldComponent.removeLabelledBy(`${this.#formFieldComponent.id}-${this.#suffix}`);\n\t}\n}\n","export const Translations = {\n\ten: {\n\t\tclear: 'Empty this field',\n\t\ttogglePasswordVisibility: 'Show password',\n\t},\n\tde: {\n\t\tclear: 'Dieses Feld leeren',\n\t\ttogglePasswordVisibility: 'Passwort anzeigen',\n\t},\n\tfr: {\n\t\tclear: 'Vider ce champ',\n\t\ttogglePasswordVisibility: 'Afficher le mot de passe',\n\t},\n\tit: {\n\t\tclear: 'Cancellare questo campo',\n\t\ttogglePasswordVisibility: 'Visualizzare la password',\n\t},\n\tnl: {\n\t\tclear: 'Dit veld leegmaken',\n\t\ttogglePasswordVisibility: 'Wachtwoord weergeven',\n\t},\n\t'nl-BE': {\n\t\tclear: 'Dit veld leegmaken',\n\t\ttogglePasswordVisibility: 'Wachtwoord weergeven',\n\t},\n\tes: {\n\t\tclear: 'Vacíe este campo',\n\t\ttogglePasswordVisibility: 'Ver la contraseña',\n\t},\n\tpt: {\n\t\tclear: 'Esvaziar este campo',\n\t\ttogglePasswordVisibility: 'Mostrar palavra-passe',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_TEXTFIELD_TRANSLATIONS = new InjectionToken('LuTextfieldTranslations', {\n\tfactory: () => luTextfieldTranslations,\n});\n\nexport interface LuTextfieldLabel {\n\tclear: string;\n\ttogglePasswordVisibility: string;\n}\n\nexport const luTextfieldTranslations: LuTranslation<LuTextfieldLabel> = Translations;\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, Component, ElementRef, Input, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { FormFieldComponent, InputDirective } from '@lucca-front/ng/form-field';\nimport { FormFieldIdDirective } from '../form-field-id.directive';\nimport { injectNgControl } from '../inject-ng-control';\nimport { NoopValueAccessorDirective } from '../noop-value-accessor.directive';\nimport { TextInputAddon } from './text-input-addon';\nimport { LU_TEXTFIELD_TRANSLATIONS } from './text-input.translate';\n\ntype TextFieldType = 'text' | 'email' | 'password' | 'url';\n\n@Component({\n\tselector: 'lu-text-input',\n\tstandalone: true,\n\timports: [FormFieldComponent, InputDirective, NgIf, ReactiveFormsModule, FormFieldIdDirective, NgTemplateOutlet],\n\ttemplateUrl: './text-input.component.html',\n\thostDirectives: [NoopValueAccessorDirective],\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class TextInputComponent {\n\tngControl = injectNgControl();\n\n\t@Input()\n\tplaceholder: string = '';\n\n\t@Input({ transform: booleanAttribute })\n\thasClearer = false;\n\n\t@Input({ transform: booleanAttribute })\n\thasSearchIcon = false;\n\n\t@ViewChild('inputElement', { static: true })\n\tinputElementRef: ElementRef<HTMLInputElement>;\n\n\t@Input()\n\tprefix: TextInputAddon;\n\n\t@Input()\n\tsuffix: TextInputAddon;\n\n\t@Input()\n\tget type(): TextFieldType {\n\t\treturn this.showPassword ? 'text' : this._type;\n\t}\n\n\tset type(type: TextFieldType) {\n\t\tthis._type = type;\n\t}\n\n\t@Input()\n\t/**\n\t * Search icon to use for when `hasSearchIcon` is true, defaults to 'search'\n\t */\n\tsearchIcon: LuccaIcon = 'search';\n\n\tshowPassword: boolean = false;\n\n\tprivate _type: TextFieldType = 'text';\n\n\tprotected hasTogglePasswordVisibilityIcon() {\n\t\treturn this._type === 'password';\n\t}\n\n\tintl = getIntl(LU_TEXTFIELD_TRANSLATIONS);\n\n\tclearValue(): void {\n\t\tthis.ngControl.reset();\n\t\tthis.inputElementRef.nativeElement.focus();\n\t}\n\n\ttogglePasswordVisibility() {\n\t\tthis.showPassword = !this.showPassword;\n\t}\n}\n","<div class=\"textField\">\n\t<ng-template #textfieldAddon let-addon=\"addon\" let-type=\"type\">\n\t\t<span class=\"textField-{{type}}\" luFormFieldId=\"{{type}}\" *ngIf=\"addon.content\">\n\t\t\t<span class=\"textField-label-{{type}}-item\" [attr.aria-label]=\"addon.ariaLabel\">{{ addon.content }}</span>\n\t\t</span>\n\t\t<span class=\"textField-{{type}}\" luFormFieldId=\"{{type}}\" *ngIf=\"addon.icon\">\n\t\t\t<span class=\"textField-label-{{type}}-item\" [attr.aria-label]=\"addon.ariaLabel\"\n\t\t\t\t><span class=\"lucca-icon icon-{{addon.icon}}\"></span\n\t\t\t></span>\n\t\t</span>\n\t</ng-template>\n\n\t<ng-container *ngIf=\"prefix\">\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"textfieldAddon; context:{\n\t\t\ttype: 'prefix',\n\t\t\taddon: prefix\n }\"\n\t\t>\n\t\t</ng-container>\n\t</ng-container>\n\t<ng-container *ngIf=\"suffix\">\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"textfieldAddon; context:{\n\t\t\ttype: 'suffix',\n\t\t\taddon: suffix\n }\"\n\t\t>\n\t\t</ng-container>\n\t</ng-container>\n\n\t<div class=\"textField-input\">\n\t\t<input\n\t\t\tluInput\n\t\t\t[type]=\"type\"\n\t\t\tclass=\"textField-input-value\"\n\t\t\t[placeholder]=\"placeholder\"\n\t\t\t[formControl]=\"ngControl.control\"\n\t\t\t#inputElement\n\t\t/>\n\t\t<div class=\"textField-input-affix\">\n\t\t\t<button class=\"textField-input-affix-clear clear\" type=\"button\" (click)=\"clearValue()\" *ngIf=\"hasClearer && inputElement.value\">\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-signClose\"></span>\n\t\t\t\t<span class=\"u-mask\">{{ intl.clear }}</span>\n\t\t\t</button>\n\t\t\t<span aria-hidden=\"true\" class=\"textField-input-affix-icon lucca-icon icon-{{searchIcon}}\" *ngIf=\"hasSearchIcon\"></span>\n\t\t\t<button\n\t\t\t\t[attr.aria-pressed]=\"showPassword\"\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"button mod-onlyIcon mod-text textField-input-affix-passwordToggle\"\n\t\t\t\t(click)=\"togglePasswordVisibility()\"\n\t\t\t\t*ngIf=\"hasTogglePasswordVisibilityIcon()\"\n\t\t\t>\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-{{showPassword ? 'unwatch' : 'watch'}}\"></span>\n\t\t\t\t<span class=\"u-mask\">{{ intl.togglePasswordVisibility }}</span>\n\t\t\t</button>\n\t\t</div>\n\t</div>\n</div>\n","export const Translations = {\n\ten: {\n\t\tclear: 'Empty this field',\n\t},\n\tde: {\n\t\tclear: 'Dieses Feld leeren',\n\t},\n\tfr: {\n\t\tclear: 'Vider ce champ',\n\t},\n\tit: {\n\t\tclear: 'Cancellare questo campo',\n\t},\n\tnl: {\n\t\tclear: 'Dit veld leegmaken',\n\t},\n\t'nl-BE': {\n\t\tclear: 'Dit veld leegmaken',\n\t},\n\tes: {\n\t\tclear: 'Vacíe este campo',\n\t},\n\tpt: {\n\t\tclear: 'Esvaziar este campo',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_NUMBERFIELD_TRANSLATIONS = new InjectionToken('LuNumberFieldTranslations', {\n\tfactory: () => luNumberFieldTranslations,\n});\n\nexport interface LuNumberFieldLabel {\n\tclear: string;\n}\n\nexport const luNumberFieldTranslations: LuTranslation<LuNumberFieldLabel> = Translations;\n","import { booleanAttribute, Component, ElementRef, Input, numberAttribute, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormFieldComponent, InputDirective } from '@lucca-front/ng/form-field';\nimport { NoopValueAccessorDirective } from '../noop-value-accessor.directive';\nimport { NgIf, NgTemplateOutlet } from '@angular/common';\nimport { FormFieldIdDirective } from '../form-field-id.directive';\nimport { TextInputAddon } from '../text-input/text-input-addon';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { LU_NUMBERFIELD_TRANSLATIONS } from './number-input.translate';\nimport { injectNgControl } from '../inject-ng-control';\n\n@Component({\n\tselector: 'lu-number-input',\n\tstandalone: true,\n\timports: [FormFieldComponent, InputDirective, NgIf, ReactiveFormsModule, FormFieldIdDirective, NgTemplateOutlet],\n\ttemplateUrl: './number-input.component.html',\n\thostDirectives: [NoopValueAccessorDirective],\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class NumberInputComponent {\n\tngControl = injectNgControl();\n\n\t@Input()\n\tplaceholder: string = '';\n\n\t@Input({ transform: numberAttribute })\n\tstep: number = 1;\n\n\t@Input({ transform: booleanAttribute })\n\tnoSpinButtons = false;\n\n\t@Input({ transform: booleanAttribute })\n\thasClearer = false;\n\n\t@ViewChild('inputElement', { static: true })\n\tinputElementRef: ElementRef<HTMLInputElement>;\n\n\t@Input()\n\tprefix: TextInputAddon;\n\n\t@Input()\n\tsuffix: TextInputAddon;\n\n\t@Input()\n\tmin?: number;\n\n\t@Input()\n\tmax?: number;\n\n\tintl = getIntl(LU_NUMBERFIELD_TRANSLATIONS);\n\n\tclearValue(): void {\n\t\tthis.ngControl.reset();\n\t\tthis.inputElementRef.nativeElement.focus();\n\t}\n}\n","<div class=\"textField\">\n\t<ng-template #addon let-addon=\"addon\" let-type=\"type\">\n\t\t<span class=\"textField-{{type}}\" luFormFieldId=\"{{type}}\" *ngIf=\"addon.content\">\n\t\t\t<span class=\"textField-label-{{type}}-item\" [attr.aria-label]=\"addon.ariaLabel\">{{ addon.content }}</span>\n\t\t</span>\n\t\t<span class=\"textField-{{type}}\" luFormFieldId=\"{{type}}\" *ngIf=\"addon.icon\">\n\t\t\t<span class=\"textField-label-{{type}}-item\" [attr.aria-label]=\"addon.ariaLabel\"\n\t\t\t\t><span class=\"lucca-icon icon-{{addon.icon}}\"></span\n\t\t\t></span>\n\t\t</span>\n\t</ng-template>\n\n\t<ng-container *ngIf=\"prefix\">\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"addon; context:{\n\t\t\ttype: 'prefix',\n\t\t\taddon: prefix\n }\"\n\t\t>\n\t\t</ng-container>\n\t</ng-container>\n\t<ng-container *ngIf=\"suffix\">\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"addon; context:{\n\t\t\ttype: 'suffix',\n\t\t\taddon: suffix\n }\"\n\t\t>\n\t\t</ng-container>\n\t</ng-container>\n\n\t<div class=\"textField-input\">\n\t\t<input\n\t\t\tluInput\n\t\t\ttype=\"number\"\n\t\t\tclass=\"textField-input-value\"\n\t\t\t[placeholder]=\"placeholder\"\n\t\t\t[formControl]=\"ngControl.control\"\n\t\t\t[step]=\"step\"\n\t\t\t[min]=\"min\"\n\t\t\t[max]=\"max\"\n\t\t\t[class.u-noSpinButtons]=\"noSpinButtons\"\n\t\t\t#inputElement\n\t\t/>\n\t\t<div class=\"textField-input-affix\">\n\t\t\t<button class=\"textField-input-affix-clear clear\" type=\"button\" (click)=\"clearValue()\" *ngIf=\"hasClearer && inputElement.value\">\n\t\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-signClose\"></span>\n\t\t\t\t<span class=\"u-mask\">{{ intl.clear }}</span>\n\t\t\t</button>\n\t\t</div>\n\t</div>\n</div>\n","import { booleanAttribute, Component, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FORM_FIELD_INSTANCE, FormFieldComponent, InputDirective } from '@lucca-front/ng/form-field';\nimport { injectNgControl } from '../inject-ng-control';\nimport { NoopValueAccessorDirective } from '../noop-value-accessor.directive';\n\n@Component({\n\tselector: 'lu-checkbox-input',\n\tstandalone: true,\n\timports: [ReactiveFormsModule, InputDirective],\n\thostDirectives: [NoopValueAccessorDirective],\n\ttemplateUrl: './checkbox-input.component.html',\n\tstyleUrls: ['./checkbox-input.component.scss'],\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'checkboxField',\n\t},\n})\nexport class CheckboxInputComponent {\n\tformField = inject<FormFieldComponent>(FORM_FIELD_INSTANCE, { optional: true });\n\n\tngControl = injectNgControl();\n\n\t@Input({ transform: booleanAttribute })\n\t/**\n\t * Should set aria-checked='mixed' attribute ?\n\t */\n\tmixed = false;\n\n\tconstructor() {\n\t\tif (this.formField) {\n\t\t\tthis.formField.layout = 'checkable';\n\t\t}\n\t}\n}\n","<input luInput type=\"checkbox\" class=\"checkboxField-input\" [formControl]=\"ngControl.control\" [attr.aria-checked]=\"mixed ? 'mixed' : null\" />\n<span class=\"checkboxField-icon\" aria-hidden=\"true\"><span class=\"checkboxField-icon-check\"></span></span>\n","import { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { FORM_FIELD_INSTANCE, FormFieldComponent, InputDirective } from '@lucca-front/ng/form-field';\nimport { NoopValueAccessorDirective } from '../noop-value-accessor.directive';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { injectNgControl } from '../inject-ng-control';\n\n@Component({\n\tselector: 'lu-switch-input',\n\tstandalone: true,\n\timports: [FormFieldComponent, ReactiveFormsModule, InputDirective],\n\ttemplateUrl: './switch-input.component.html',\n\thostDirectives: [NoopValueAccessorDirective],\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'switchField',\n\t},\n})\nexport class SwitchInputComponent {\n\tformField = inject<FormFieldComponent>(FORM_FIELD_INSTANCE, { optional: true });\n\n\tngControl = injectNgControl();\n\n\tconstructor() {\n\t\tif (this.formField) {\n\t\t\tthis.formField.layout = 'checkable';\n\t\t}\n\t}\n}\n","<input luInput type=\"checkbox\" class=\"switchField-input\" [formControl]=\"ngControl.control\" />\n<span class=\"switchField-icon\" aria-hidden=\"true\"><span class=\"switchField-icon-check\"></span></span>\n","import { InjectionToken } from '@angular/core';\nimport { RadioGroupInputComponent } from './radio-group-input.component';\n\nexport const RADIO_GROUP_INSTANCE = new InjectionToken<RadioGroupInputComponent>('RADIO_GROUP_INSTANCE');\n","import { ChangeDetectionStrategy, Component, forwardRef, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { FORM_FIELD_INSTANCE, FormFieldComponent, InputDirective } from '@lucca-front/ng/form-field';\nimport { injectNgControl } from '../inject-ng-control';\nimport { NoopValueAccessorDirective } from '../noop-value-accessor.directive';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { RADIO_GROUP_INSTANCE } from './radio-group-token';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-radio-group-input',\n\tstandalone: true,\n\timports: [InputDirective, ReactiveFormsModule],\n\thostDirectives: [NoopValueAccessorDirective],\n\ttemplate: '<ng-content></ng-content>',\n\tstyleUrl: './radio-group-input.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: RADIO_GROUP_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => RadioGroupInputComponent),\n\t\t},\n\t],\n})\nexport class RadioGroupInputComponent {\n\tformField = inject<FormFieldComponent>(FORM_FIELD_INSTANCE, { optional: true });\n\n\tngControl = injectNgControl();\n\n\t@Input()\n\tsize: 'S' | 'M';\n\n\tname = `radio-group-${nextId++}`;\n\n\tconstructor() {\n\t\tif (this.formField) {\n\t\t\tthis.formField.layout = 'fieldset';\n\t\t}\n\t}\n}\n","import { booleanAttribute, ChangeDetectionStrategy, Component, HostBinding, inject, Input, OnChanges, ViewEncapsulation } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { InputDirective } from '@lucca-front/ng/form-field';\nimport { InlineMessageComponent } from '@lucca-front/ng/inline-message';\nimport { NgIf } from '@angular/common';\nimport { RADIO_GROUP_INSTANCE } from '../radio-group-token';\nimport { LuClass } from '@lucca-front/ng/core';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-radio',\n\tstandalone: true,\n\timports: [ReactiveFormsModule, InputDirective, InlineMessageComponent, NgIf],\n\ttemplateUrl: './radio.component.html',\n\tstyleUrl: './radio.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'form-field',\n\t},\n\tproviders: [LuClass],\n})\nexport class RadioComponent<T = unknown> implements OnChanges {\n\t#luClass = inject(LuClass);\n\n\t@Input({ required: true })\n\tvalue: T;\n\n\t@Input({ transform: booleanAttribute })\n\tdisabled: boolean;\n\n\t@Input()\n\tinlineMessage: string;\n\n\t#parentGroup = inject(RADIO_GROUP_INSTANCE);\n\n\tpublic get formControl() {\n\t\treturn this.#parentGroup.ngControl.control;\n\t}\n\n\tpublic get name() {\n\t\treturn this.#parentGroup.name;\n\t}\n\n\t@HostBinding('id')\n\tid = `radio-${++nextId}`;\n\n\tngOnChanges(): void {\n\t\tthis.#luClass.setState({\n\t\t\t[`mod-${this.#parentGroup.size}`]: true,\n\t\t});\n\t}\n}\n","<label class=\"formLabel\" id=\"{{id}}-label\" for=\"{{id}}-input\">\n\t<ng-content></ng-content>\n</label>\n<span class=\"radioField\">\n\t<input\n\t\t[formControl]=\"formControl\"\n\t\t[attr.disabled]=\"(formControl.disabled || disabled) ? 'disabled' : null\"\n\t\ttype=\"radio\"\n\t\tclass=\"radioField-input\"\n\t\tid=\"{{id}}-input\"\n\t\t[name]=\"name\"\n\t\t[value]=\"value\"\n\t\tluInput\n\t\tluInputStandalone\n\t\tattr.aria-labelledby=\"{{id}}-label\"\n\t\tattr.aria-describedby=\"{{id}}-message\"\n\t/>\n\t<span class=\"radioField-icon\" aria-hidden=\"true\">\n\t\t<span class=\"radioField-icon-check\"></span>\n\t</span>\n</span>\n<lu-inline-message *ngIf=\"inlineMessage\" [label]=\"inlineMessage\" id=\"{{id}}-message\"></lu-inline-message>\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { InputDirective } from '@lucca-front/ng/form-field';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { injectNgControl } from '../inject-ng-control';\nimport { NoopValueAccessorDirective } from '../noop-value-accessor.directive';\n\n@Component({\n\tselector: 'lu-textarea-input',\n\tstandalone: true,\n\timports: [InputDirective, ReactiveFormsModule],\n\ttemplateUrl: './textarea-input.component.html',\n\thostDirectives: [NoopValueAccessorDirective],\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TextareaInputComponent {\n\tngControl = injectNgControl();\n\n\t@Input()\n\tplaceholder: string = '';\n}\n","<div class=\"textField\">\n\t<div class=\"textField-input\">\n\t\t<textarea luInput class=\"textField-input-value\" [formControl]=\"ngControl.control\" [placeholder]=\"placeholder\"></textarea>\n\t</div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Translations","i1.NoopValueAccessorDirective","nextId","i1"],"mappings":"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"}
@@ -39,27 +39,39 @@ const luModalClasses = {
39
39
  sidepanel: { panel: 'lu-sidepanel-panel', panelInner: 'lu-sidepanel-panel-inner', overlayPane: 'mod-sidepanel', panelContainer: 'lu-sidepanel-container' },
40
40
  };
41
41
 
42
- const LU_MODAL_TRANSLATIONS = new InjectionToken('LuModalTranslations', {
43
- factory: () => luModalTranslations,
44
- });
45
- const luModalTranslations = {
42
+ const Translations = {
46
43
  en: {
47
44
  submit: 'Ok',
48
45
  cancel: 'Cancel',
49
46
  close: 'Close',
50
47
  },
48
+ de: {
49
+ submit: 'OK',
50
+ cancel: 'Abbrechen',
51
+ close: 'Schließen',
52
+ },
51
53
  fr: {
52
54
  submit: 'Ok',
53
55
  cancel: 'Annuler',
54
56
  close: 'Fermer',
55
57
  },
56
- de: {
58
+ it: {
57
59
  submit: 'Ok',
58
- cancel: 'Abbrechen',
59
- close: 'Schließen',
60
+ cancel: 'Annullare',
61
+ close: 'Chiudere',
62
+ },
63
+ nl: {
64
+ submit: 'Oké',
65
+ cancel: 'Annuleren',
66
+ close: 'Sluiten',
67
+ },
68
+ 'nl-BE': {
69
+ submit: 'Oké',
70
+ cancel: 'Annuleren',
71
+ close: 'Sluiten',
60
72
  },
61
73
  es: {
62
- submit: 'Ok',
74
+ submit: 'Aceptar',
63
75
  cancel: 'Cancelar',
64
76
  close: 'Cerrar',
65
77
  },
@@ -70,6 +82,11 @@ const luModalTranslations = {
70
82
  },
71
83
  };
72
84
 
85
+ const LU_MODAL_TRANSLATIONS = new InjectionToken('LuModalTranslations', {
86
+ factory: () => luModalTranslations,
87
+ });
88
+ const luModalTranslations = Translations;
89
+
73
90
  class ALuModalRef extends ALuPopupRef {
74
91
  get mode() {
75
92
  return this._config.mode || 'modal';