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

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 (104) hide show
  1. package/fesm2022/lucca-front-ng-a11y.mjs +1 -0
  2. package/fesm2022/lucca-front-ng-a11y.mjs.map +1 -1
  3. package/fesm2022/lucca-front-ng-activity-feed.mjs +6 -6
  4. package/fesm2022/lucca-front-ng-activity-feed.mjs.map +1 -1
  5. package/fesm2022/lucca-front-ng-approbation-inbox.mjs +3 -3
  6. package/fesm2022/lucca-front-ng-approbation-inbox.mjs.map +1 -1
  7. package/fesm2022/lucca-front-ng-box.mjs +1 -1
  8. package/fesm2022/lucca-front-ng-box.mjs.map +1 -1
  9. package/fesm2022/lucca-front-ng-breadcrumbs.mjs +1 -1
  10. package/fesm2022/lucca-front-ng-breadcrumbs.mjs.map +1 -1
  11. package/fesm2022/lucca-front-ng-chip.mjs +14 -7
  12. package/fesm2022/lucca-front-ng-chip.mjs.map +1 -1
  13. package/fesm2022/lucca-front-ng-clear.mjs +1 -1
  14. package/fesm2022/lucca-front-ng-clear.mjs.map +1 -1
  15. package/fesm2022/lucca-front-ng-core-select-user.mjs +22 -27
  16. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  17. package/fesm2022/lucca-front-ng-core-select.mjs +1 -1
  18. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  19. package/fesm2022/lucca-front-ng-data-table.mjs +12 -7
  20. package/fesm2022/lucca-front-ng-data-table.mjs.map +1 -1
  21. package/fesm2022/lucca-front-ng-date.mjs +1 -1
  22. package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
  23. package/fesm2022/lucca-front-ng-date2.mjs +86 -9
  24. package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-file-upload.mjs +6 -6
  26. package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
  27. package/fesm2022/lucca-front-ng-filter-pills.mjs +24 -7
  28. package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
  29. package/fesm2022/lucca-front-ng-form-field.mjs +76 -26
  30. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  31. package/fesm2022/lucca-front-ng-form-label.mjs +2 -2
  32. package/fesm2022/lucca-front-ng-form-label.mjs.map +1 -1
  33. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +1 -1
  34. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +6 -6
  36. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
  37. package/fesm2022/lucca-front-ng-forms.mjs +12 -11
  38. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  39. package/fesm2022/lucca-front-ng-impersonation.mjs +1 -1
  40. package/fesm2022/lucca-front-ng-impersonation.mjs.map +1 -1
  41. package/fesm2022/lucca-front-ng-index-table.mjs +11 -6
  42. package/fesm2022/lucca-front-ng-index-table.mjs.map +1 -1
  43. package/fesm2022/lucca-front-ng-inline-message.mjs +1 -1
  44. package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
  45. package/fesm2022/lucca-front-ng-link.mjs +1 -1
  46. package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
  47. package/fesm2022/lucca-front-ng-listbox.mjs +3 -3
  48. package/fesm2022/lucca-front-ng-listbox.mjs.map +1 -1
  49. package/fesm2022/lucca-front-ng-mobile-push.mjs +2 -2
  50. package/fesm2022/lucca-front-ng-mobile-push.mjs.map +1 -1
  51. package/fesm2022/lucca-front-ng-modal.mjs +2 -2
  52. package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
  53. package/fesm2022/lucca-front-ng-multi-select.mjs +4 -4
  54. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  55. package/fesm2022/lucca-front-ng-option.mjs +1 -1
  56. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  57. package/fesm2022/lucca-front-ng-pagination.mjs +1 -1
  58. package/fesm2022/lucca-front-ng-pagination.mjs.map +1 -1
  59. package/fesm2022/lucca-front-ng-plg-push.mjs +1 -1
  60. package/fesm2022/lucca-front-ng-plg-push.mjs.map +1 -1
  61. package/fesm2022/lucca-front-ng-popover2.mjs +9 -6
  62. package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
  63. package/fesm2022/lucca-front-ng-progress-stepper.mjs +2 -2
  64. package/fesm2022/lucca-front-ng-progress-stepper.mjs.map +1 -1
  65. package/fesm2022/lucca-front-ng-read-more.mjs +3 -3
  66. package/fesm2022/lucca-front-ng-read-more.mjs.map +1 -1
  67. package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs +9 -4
  68. package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs.map +1 -1
  69. package/fesm2022/lucca-front-ng-segmented-control.mjs +10 -5
  70. package/fesm2022/lucca-front-ng-segmented-control.mjs.map +1 -1
  71. package/fesm2022/lucca-front-ng-simple-select.mjs +2 -2
  72. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  73. package/fesm2022/lucca-front-ng-software-icon.mjs +1 -1
  74. package/fesm2022/lucca-front-ng-software-icon.mjs.map +1 -1
  75. package/fesm2022/lucca-front-ng-status-badge.mjs +1 -1
  76. package/fesm2022/lucca-front-ng-status-badge.mjs.map +1 -1
  77. package/fesm2022/lucca-front-ng-time.mjs +1 -1
  78. package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
  79. package/package.json +4 -4
  80. package/types/lucca-front-ng-activity-feed.d.ts +13 -9
  81. package/types/lucca-front-ng-approbation-inbox.d.ts +32 -25
  82. package/types/lucca-front-ng-box.d.ts +12 -6
  83. package/types/lucca-front-ng-breadcrumbs.d.ts +12 -7
  84. package/types/lucca-front-ng-chip.d.ts +16 -9
  85. package/types/lucca-front-ng-clear.d.ts +12 -8
  86. package/types/lucca-front-ng-data-table.d.ts +13 -9
  87. package/types/lucca-front-ng-date.d.ts +12 -10
  88. package/types/lucca-front-ng-date2.d.ts +21 -18
  89. package/types/lucca-front-ng-file-upload.d.ts +41 -36
  90. package/types/lucca-front-ng-filter-pills.d.ts +27 -16
  91. package/types/lucca-front-ng-form-field.d.ts +22 -1
  92. package/types/lucca-front-ng-form-label.d.ts +13 -8
  93. package/types/lucca-front-ng-forms-rich-text-input.d.ts +38 -34
  94. package/types/lucca-front-ng-forms.d.ts +29 -42
  95. package/types/lucca-front-ng-impersonation.d.ts +14 -9
  96. package/types/lucca-front-ng-index-table.d.ts +3 -1
  97. package/types/lucca-front-ng-link.d.ts +11 -6
  98. package/types/lucca-front-ng-mobile-push.d.ts +18 -12
  99. package/types/lucca-front-ng-multi-select.d.ts +1 -1
  100. package/types/lucca-front-ng-pagination.d.ts +15 -10
  101. package/types/lucca-front-ng-plg-push.d.ts +12 -6
  102. package/types/lucca-front-ng-read-more.d.ts +13 -9
  103. package/types/lucca-front-ng-segmented-control-tabs.d.ts +5 -1
  104. package/types/lucca-front-ng-segmented-control.d.ts +5 -1
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-form-field.mjs","sources":["../../../packages/ng/form-field/form-field-size.ts","../../../packages/ng/form-field/form-field.type.ts","../../../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-framed/input-framed.type.ts","../../../packages/ng/form-field/input-framed/input-framed.token.ts","../../../packages/ng/form-field/input-framed/input-framed.component.ts","../../../packages/ng/form-field/input-framed/input-framed.component.html","../../../packages/ng/form-field/input.directive.ts","../../../packages/ng/form-field/value-presentation/data-presentation/data-presentation.component.ts","../../../packages/ng/form-field/value-presentation/data-presentation/data-presentation.component.html","../../../packages/ng/form-field/value-presentation/presentation-display.directive.ts","../../../packages/ng/form-field/value-presentation/presentation-display-default.directive.ts","../../../packages/ng/form-field/lucca-front-ng-form-field.ts"],"sourcesContent":["export const FORM_FIELD_SIZE = ['XS', 'S', 'M'] as const;\nexport type FormFieldSize = (typeof FORM_FIELD_SIZE)[number];\n","/**\n * Available FormFieldComponent types\n */\n\nexport const FORM_FIELD_WIDTH = [20, 30, 40, 50, 60] as const;\nexport type FormFieldWidth = (typeof FORM_FIELD_WIDTH)[number];\n\nexport const FORM_FIELD_LAYOUT = ['default', 'checkable', 'fieldset'] as const;\nexport type FormFieldLayout = (typeof FORM_FIELD_LAYOUT)[number];\n","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\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\tes: {\n\t\tcounter: 'Su publicación tiene {{current}} caracteres. Se permite un máximo de {{max}} caracteres.',\n\t},\n\t'nl-BE': {\n\t\tcounter: 'Uw publicatie is {{current}} tekens lang. {{max}} tekens maximaal toegestaan.',\n\t},\n\tnl: {\n\t\tcounter: 'Uw publicatie is {{current}} tekens lang. {{max}} tekens maximaal toegestaan.',\n\t},\n\tit: {\n\t\tcounter: 'La tua pubblicazione è lunga {{current}} caratteri. È consentito un numero di massimo {{max}} caratteri.',\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\ten: {\n\t\tcounter: 'Your message is {{current}} characters long. A maximum of {{max}} characters is allowed.',\n\t},\n\tpl: {\n\t\tcounter: 'Liczba znaków publikacji wynosi {{current}}. Dozwolona maksymalna liczba znaków wynosi {{max}}.',\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 { NgTemplateOutlet } from '@angular/common';\nimport {\n\tafterNextRender,\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChildren,\n\tDoCheck,\n\teffect,\n\tforwardRef,\n\tinject,\n\tInjector,\n\tinput,\n\tmodel,\n\tOnDestroy,\n\tRenderer2,\n\tsignal,\n\tTemplateRef,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl, NgControl, ReactiveFormsModule, RequiredValidator, Validators } from '@angular/forms';\nimport { FormField } from '@angular/forms/signals';\nimport { SafeHtml } from '@angular/platform-browser';\nimport {\n\tintlInputOptions,\n\tisNotNil,\n\tluBooleanAttribute,\n\tLuClass,\n\tluNullableBooleanAttribute,\n\tluNullableNumberAttribute,\n\tluNumberAttribute,\n\tPortalContent,\n\tPortalDirective,\n\tɵeffectWithDeps,\n} from '@lucca-front/ng/core';\nimport { LU_FORM_INSTANCE } from '@lucca-front/ng/form';\nimport { FormLabelComponent } from '@lucca-front/ng/form-label';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { InlineMessageComponent, InlineMessageState } from '@lucca-front/ng/inline-message';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { BehaviorSubject } from 'rxjs';\nimport { FormFieldSize } from './form-field-size';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\nimport { LU_FORM_FIELD_TRANSLATIONS } from './form-field.translate';\nimport { FormFieldLayout, FormFieldWidth } from './form-field.type';\nimport { InputDirective } from './input.directive';\nimport { INPUT_FRAMED_INSTANCE } from './public-api';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-form-field',\n\timports: [NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent, PortalDirective, FormLabelComponent],\n\ttemplateUrl: './form-field.component.html',\n\tstyleUrl: './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\thost: {\n\t\t'[class.inputFramed-header-field]': 'framed',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormFieldComponent implements OnDestroy, DoCheck {\n\treadonly intl = input(...intlInputOptions(LU_FORM_FIELD_TRANSLATIONS));\n\n\t#luClass = inject(LuClass);\n\t#injector = inject(Injector);\n\t#renderer = inject(Renderer2);\n\tprotected parentForm = inject(LU_FORM_INSTANCE, { optional: true });\n\n\treadonly framed = inject(INPUT_FRAMED_INSTANCE, { optional: true }) !== null;\n\n\treadonly formFieldChildren = contentChildren(FormFieldComponent, { descendants: true });\n\n\treadonly requiredValidators = contentChildren(RequiredValidator, { descendants: true });\n\treadonly ngControls = contentChildren(NgControl, { descendants: true });\n\treadonly ngFormFields = contentChildren(FormField, { descendants: true });\n\n\treadonly ignoredRequiredValidators = computed(() => new Set(this.formFieldChildren().flatMap((f) => f.requiredValidators())));\n\treadonly ignoredControls = computed(() => new Set(this.formFieldChildren().flatMap((f) => f.ngControls())));\n\treadonly ignoredFormFields = computed(() => new Set(this.formFieldChildren().flatMap((f) => f.ngFormFields())));\n\n\treadonly ownRequiredValidators = computed(() => this.requiredValidators().filter((c) => !this.ignoredRequiredValidators().has(c)));\n\treadonly ownControls = computed(() => this.ngControls().filter((c) => !this.ignoredControls().has(c)));\n\treadonly ownFormFields = computed(() => this.ngFormFields().filter((c) => !this.ignoredFormFields().has(c)));\n\n\treadonly #hasInputRequired = signal(false);\n\treadonly forceInputRequired = signal(false);\n\treadonly isInputRequired = computed(() => this.forceInputRequired() || this.#hasInputRequired());\n\n\treadonly label = input.required<PortalContent>();\n\n\t/**\n\t * Hide field label, while keeping it in DOM for screen readers\n\t */\n\treadonly hiddenLabel = input(false, { transform: luBooleanAttribute });\n\n\treadonly rolePresentationLabel = model(false);\n\n\treadonly labelIsPresentation = computed(() => this.rolePresentationLabel() || this.presentation());\n\n\treadonly inline = input(false, { transform: luBooleanAttribute });\n\n\treadonly statusControl = input<AbstractControl | null>(null);\n\n\treadonly tooltip = input<string | SafeHtml | null>(null);\n\n\treadonly tag = input<string | null>(null);\n\n\treadonly AI = input(false, { transform: luBooleanAttribute });\n\treadonly iconAItooltip = input<string | null>(null);\n\treadonly iconAIalt = input<string | null>(null);\n\n\treadonly width = input(null, { transform: luNullableNumberAttribute<FormFieldWidth> });\n\n\treadonly #invalidStatus = signal(false);\n\tinvalidStatus = this.#invalidStatus.asReadonly();\n\n\treadonly invalid = input(null, { transform: luNullableBooleanAttribute });\n\n\treadonly inlineMessage = input<PortalContent | null>(null);\n\n\t/**\n\t * Inline message for when the control is in error state\n\t */\n\treadonly errorInlineMessage = input<PortalContent | null>(null);\n\n\t/**\n\t * State of the inline message, will be ignored if form state is invalid\n\t */\n\treadonly inlineMessageState = input<InlineMessageState | null>(null);\n\n\treadonly size = input<FormFieldSize | null>(null);\n\n\t/**\n\t * Extra aria-describedby attribute\n\t */\n\treadonly extraDescribedBy = input<string>('');\n\n\treadonly layout = model<FormFieldLayout>('default');\n\n\t#inputs: InputDirective[] = [];\n\n\t/**\n\t * Max amount of characters allowed, defaults to 0, which means hidden, no maximum\n\t */\n\treadonly counter = input(0, { transform: luNumberAttribute });\n\n\treadonly contentLength = signal<number>(0);\n\n\treadonly presentation = input(false, { transform: luBooleanAttribute });\n\n\treadonly presentationMode = computed(() => this.parentForm?.presentation() || this.presentation());\n\n\treadonly presentationDisplayTpl = signal<TemplateRef<unknown> | null>(null);\n\n\tpublic addInput(input: InputDirective) {\n\t\tthis.#inputs.push(input);\n\t\tafterNextRender(\n\t\t\t() => {\n\t\t\t\tthis.prepareInput();\n\t\t\t},\n\t\t\t{ injector: this.#injector },\n\t\t);\n\t}\n\n\tpublic get inputs(): InputDirective[] {\n\t\treturn this.#inputs;\n\t}\n\n\treadonly id = signal<string>('');\n\n\treadonly ready$ = 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\tconstructor() {\n\t\tɵeffectWithDeps([this.isInputRequired, this.invalidStatus, this.extraDescribedBy], () => {\n\t\t\tthis.updateAria();\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.#luClass.setState({\n\t\t\t\t[`mod-${this.size()}`]: !!this.size(),\n\t\t\t\t'form-field': this.layout() !== 'fieldset' && !this.presentationMode(),\n\t\t\t\t[`mod-width${this.width()}`]: !!this.width(),\n\t\t\t});\n\t\t});\n\t}\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\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.set(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.invalidStatus()?.toString());\n\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-required', this.isInputRequired()?.toString());\n\t\t\tif (!input.standalone()) {\n\t\t\t\tlet ariaDescribedBy = `${input.host.nativeElement.id}-message`;\n\t\t\t\tif (this.extraDescribedBy()) {\n\t\t\t\t\tariaDescribedBy += ` ${this.extraDescribedBy()}`;\n\t\t\t\t}\n\t\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-describedby', ariaDescribedBy);\n\t\t\t}\n\t\t});\n\t\tif (this.id() && !this.#ariaLabelledBy.includes(`${this.id()}-label`)) {\n\t\t\tthis.addLabelledBy(`${this.id()}-label`);\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.ready$.complete();\n\t}\n\n\tngDoCheck(): void {\n\t\tafterNextRender(\n\t\t\t() => {\n\t\t\t\tthis.#hasInputRequired.set(this.#isInputRequired());\n\t\t\t\tthis.#invalidStatus.set(this.#hasInvalidStatus());\n\t\t\t\tthis.contentLength.set((this.#inputs[0]?.host?.nativeElement as HTMLInputElement)?.value?.length ?? 0);\n\t\t\t},\n\t\t\t{\n\t\t\t\tinjector: this.#injector,\n\t\t\t},\n\t\t);\n\t}\n\n\t#isInputRequired(): boolean {\n\t\tconst hasRequiredFormControl = this.ownControls().some((c) => c.control?.hasValidator(Validators.required));\n\t\tconst hasRequiredNgModel = this.ownRequiredValidators().some((c) => booleanAttribute(c.required));\n\t\tconst hasRequiredFormField = this.ownFormFields().some((c) => c.state().required());\n\t\treturn hasRequiredFormField || hasRequiredNgModel || hasRequiredFormControl;\n\t}\n\n\t#hasInvalidStatus(): boolean {\n\t\tconst isInvalidOverride = isNotNil(this.invalid());\n\t\tif (isInvalidOverride) {\n\t\t\treturn this.invalid() ?? false;\n\t\t}\n\t\tconst statusControlOverride = this.statusControl();\n\t\tif (statusControlOverride) {\n\t\t\treturn statusControlOverride.invalid && this.ownControls().some((c) => c?.touched);\n\t\t}\n\t\treturn this.ownControls().some((c) => c.invalid && c.touched);\n\t}\n}\n","@if (presentationMode()) {\n\t<dl class=\"presentation\">\n\t\t<ng-container *ngTemplateOutlet=\"inputLayoutTpl\" />\n\t</dl>\n} @else {\n\t<ng-container *ngTemplateOutlet=\"inputLayoutTpl\" />\n}\n\n<ng-template #inputLayoutTpl>\n\t@if (layout() === \"fieldset\" && !presentationMode()) {\n\t\t<fieldset class=\"form-fieldset\" [class.mod-inline]=\"inline()\" [class.mod-S]=\"size() === 'S'\">\n\t\t\t<legend\n\t\t\t\tluFormLabel\n\t\t\t\t[tooltip]=\"tooltip()\"\n\t\t\t\t[tag]=\"tag()\"\n\t\t\t\t[required]=\"isInputRequired()\"\n\t\t\t\t[class.pr-u-mask]=\"hiddenLabel()\"\n\t\t\t\t[attr.aria-hidden]=\"hiddenLabel()\"\n\t\t\t>\n\t\t\t\t<ng-container *luPortal=\"label()\" />\n\t\t\t</legend>\n\t\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t\t@if (inlineMessage() || (invalidStatus() ? errorInlineMessage() : false)) {\n\t\t\t\t<lu-inline-message\n\t\t\t\t\tid=\"{{ id() }}-message\"\n\t\t\t\t\t[label]=\"(invalidStatus() && errorInlineMessage() ? errorInlineMessage() : inlineMessage()) ?? ''\"\n\t\t\t\t\t[state]=\"invalidStatus() ? 'error' : (inlineMessageState() ?? undefined)\"\n\t\t\t\t/>\n\t\t\t}\n\t\t</fieldset>\n\t} @else {\n\t\t@if (presentationMode()) {\n\t\t\t<dt class=\"presentation-term\">\n\t\t\t\t<ng-container *luPortal=\"label()\" />\n\t\t\t\t@if (tooltip(); as tooltip) {\n\t\t\t\t\t<lu-icon class=\"presentation-term-info\" icon=\"signHelp\" [alt]=\"'?'\" [luTooltip]=\"tooltip\" />\n\t\t\t\t}\n\n\t\t\t\t@if (tag()) {\n\t\t\t\t\t<span class=\"formLabel-tag tag\">{{ tag() }}</span>\n\t\t\t\t}\n\t\t\t</dt>\n\n\t\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t} @else {\n\t\t\t<label\n\t\t\t\tluFormLabel\n\t\t\t\t[counterStatus]=\"contentLength()\"\n\t\t\t\t[counterMax]=\"counter()\"\n\t\t\t\t[error]=\"invalidStatus()\"\n\t\t\t\t[tag]=\"tag()\"\n\t\t\t\t[tooltip]=\"tooltip()\"\n\t\t\t\t[required]=\"isInputRequired()\"\n\t\t\t\t[counterId]=\"`${id()}-counter`\"\n\t\t\t\t[attr.id]=\"`${id()}-label`\"\n\t\t\t\t[attr.for]=\"id()\"\n\t\t\t\t[attr.role]=\"rolePresentationLabel() ? 'presentation' : null\"\n\t\t\t\t[class.pr-u-mask]=\"hiddenLabel()\"\n\t\t\t\t[class.inputFramed-header-label]=\"framed\"\n\t\t\t>\n\t\t\t\t<span><ng-container *luPortal=\"label()\" /></span>\n\t\t\t</label>\n\t\t\t@if (AI()) {\n\t\t\t\t<div class=\"form-field-contentOptional\">\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t\t\t\t<lu-icon\n\t\t\t\t\t\tclass=\"pr-u-focusVisible pr-u-borderRadiusSmall\"\n\t\t\t\t\t\t[luTooltip]=\"iconAItooltip() ?? ''\"\n\t\t\t\t\t\tsize=\"S\"\n\t\t\t\t\t\tAI\n\t\t\t\t\t\ticon=\"weatherStars\"\n\t\t\t\t\t\t[alt]=\"iconAIalt() ?? undefined\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t} @else {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t\t}\n\t\t\t@if (inlineMessage() || (invalidStatus() ? errorInlineMessage() : false)) {\n\t\t\t\t<lu-inline-message\n\t\t\t\t\tid=\"{{ id() }}-message\"\n\t\t\t\t\t[label]=\"(invalidStatus() && errorInlineMessage() ? errorInlineMessage() : inlineMessage()) ?? ''\"\n\t\t\t\t\t[state]=\"invalidStatus() ? 'error' : (inlineMessageState() ?? undefined)\"\n\t\t\t\t/>\n\t\t\t}\n\t\t}\n\t}\n</ng-template>\n\n<ng-template #projectionTpl>\n\t@if (presentationMode() && presentationDisplayTpl()) {\n\t\t<dd class=\"presentation-definition\">\n\t\t\t<ng-container *ngTemplateOutlet=\"presentationDisplayTpl()\" />\n\t\t</dd>\n\t} @else {\n\t\t<ng-content />\n\t}\n</ng-template>\n","/**\n * Available InputFramedComponent sizes\n */\n\nexport const INPUT_FRAMED_SIZE = ['L'] as const;\nexport type InputFramedSize = (typeof INPUT_FRAMED_SIZE)[number];\n","import { InjectionToken } from '@angular/core';\nimport { InputFramedComponent } from './input-framed.component';\n\nexport const INPUT_FRAMED_INSTANCE = new InjectionToken<InputFramedComponent>('INPUT_FRAMED_INSTANCE');\n","import { ChangeDetectionStrategy, Component, forwardRef, input, ViewEncapsulation } from '@angular/core';\nimport { luBooleanAttribute, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { InputFramedSize } from './input-framed.type';\nimport { INPUT_FRAMED_INSTANCE } from './input-framed.token';\n\n@Component({\n\tselector: 'lu-input-framed',\n\timports: [PortalDirective],\n\ttemplateUrl: './input-framed.component.html',\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\t{\n\t\t\tprovide: INPUT_FRAMED_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => InputFramedComponent),\n\t\t},\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InputFramedComponent {\n\treadonly framedPortal = input<PortalContent | null>(null);\n\treadonly center = input(false, { transform: luBooleanAttribute });\n\treadonly size = input<InputFramedSize | null>(null);\n}\n","<div class=\"inputFramed\" [class.mod-center]=\"center()\" [class.mod-L]=\"size() === 'L'\">\n\t<div class=\"inputFramed-header\">\n\t\t<div class=\"form-field inputFramed-header-field\">\n\t\t\t<ng-content />\n\t\t</div>\n\t\t<div class=\"inputFramed-header-illustration\"><ng-content select=\"[illustration]\" /></div>\n\t\t<div class=\"inputFramed-header-info\"><ng-content select=\"[info]\" /></div>\n\t</div>\n\t@if (framedPortal(); as framedPortal) {\n\t\t<div class=\"inputFramed-content\"><ng-container *luPortal=\"framedPortal\" /></div>\n\t}\n</div>\n","import { Directive, ElementRef, inject, input, OnInit } from '@angular/core';\nimport { luBooleanAttribute } from '@lucca-front/ng/core';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\n@Directive({\n\tselector: '[luInput]',\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\treadonly standalone = input(false, { transform: luBooleanAttribute, alias: 'luInputStandalone' });\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","import { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\nimport { luBooleanAttribute, PortalContent, PortalDirective } from '@lucca-front/ng/core';\n\n@Component({\n\tselector: 'lu-data-presentation',\n\timports: [PortalDirective],\n\ttemplateUrl: './data-presentation.component.html',\n\tstyleUrl: './data-presentation.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataPresentationComponent {\n\treadonly label = input.required<PortalContent>();\n\treadonly noValue = input(false, { transform: luBooleanAttribute });\n\treadonly size = input<'S' | null>(null);\n}\n","<dl class=\"presentation\" [class.mod-S]=\"size() === 'S'\">\n\t<dt class=\"presentation-term\">\n\t\t<ng-container *luPortal=\"label()\" />\n\t</dt>\n\t<dd class=\"presentation-definition\">\n\t\t@if (noValue()) {\n\t\t\t<div aria-hidden=\"true\" data-content-before=\"–\"></div>\n\t\t}\n\t\t<ng-content />\n\t</dd>\n</dl>\n","import { Directive, inject, OnInit, signal, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { FormFieldComponent } from '../form-field.component';\n\n@Directive({\n\tselector: '[luPresentationDisplay]',\n})\nexport class PresentationDisplayDirective implements OnInit {\n\t#formFieldRef = inject(FormFieldComponent, { optional: true });\n\n\tpublic readonly templateRef: TemplateRef<unknown> = inject(TemplateRef);\n\n\t#vcr = inject(ViewContainerRef);\n\n\treadonly defaultDisplay = signal(false);\n\n\tngOnInit() {\n\t\tif (this.#formFieldRef) {\n\t\t\t// If it's default display, we do not override the existing value, this way consumers can override easily without any kind of race condition.\n\t\t\tif (!this.#formFieldRef.presentationDisplayTpl() || !this.defaultDisplay()) {\n\t\t\t\tthis.#formFieldRef.presentationDisplayTpl.set(this.templateRef);\n\t\t\t}\n\t\t}\n\t\tthis.#vcr.clear();\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: PresentationDisplayDirective, _ctx: unknown): _ctx is void {\n\t\treturn true;\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { PresentationDisplayDirective } from './presentation-display.directive';\n\n@Directive({\n\tselector: '[luPresentationDisplayDefault]',\n\thostDirectives: [PresentationDisplayDirective],\n})\nexport class ɵPresentationDisplayDefaultDirective {\n\t#displayDirectiveRef = inject(PresentationDisplayDirective);\n\n\tconstructor() {\n\t\tthis.#displayDirectiveRef.defaultDisplay.set(true);\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: ɵPresentationDisplayDefaultDirective, _ctx: unknown): _ctx is void {\n\t\treturn true;\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵeffectWithDeps","i1.PresentationDisplayDirective"],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-form-field.mjs","sources":["../../../packages/ng/form-field/form-field-size.ts","../../../packages/ng/form-field/form-field.type.ts","../../../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-framed/input-framed.type.ts","../../../packages/ng/form-field/input-framed/input-framed.token.ts","../../../packages/ng/form-field/input-framed/input-framed.component.ts","../../../packages/ng/form-field/input-framed/input-framed.component.html","../../../packages/ng/form-field/input.directive.ts","../../../packages/ng/form-field/value-presentation/data-presentation/data-presentation.component.ts","../../../packages/ng/form-field/value-presentation/data-presentation/data-presentation.component.html","../../../packages/ng/form-field/value-presentation/presentation-display.directive.ts","../../../packages/ng/form-field/value-presentation/presentation-display-default.directive.ts","../../../packages/ng/form-field/lucca-front-ng-form-field.ts"],"sourcesContent":["export const FORM_FIELD_SIZE = ['XS', 'S', 'M'] as const;\nexport type FormFieldSize = (typeof FORM_FIELD_SIZE)[number];\n","/**\n * Available FormFieldComponent types\n */\n\nexport const FORM_FIELD_WIDTH = [20, 30, 40, 50, 60] as const;\nexport type FormFieldWidth = (typeof FORM_FIELD_WIDTH)[number];\n\nexport const FORM_FIELD_LAYOUT = ['default', 'checkable', 'fieldset'] as const;\nexport type FormFieldLayout = (typeof FORM_FIELD_LAYOUT)[number];\n","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\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\tes: {\n\t\tcounter: 'Su publicación tiene {{current}} caracteres. Se permite un máximo de {{max}} caracteres.',\n\t},\n\t'nl-BE': {\n\t\tcounter: 'Uw publicatie is {{current}} tekens lang. {{max}} tekens maximaal toegestaan.',\n\t},\n\tnl: {\n\t\tcounter: 'Uw publicatie is {{current}} tekens lang. {{max}} tekens maximaal toegestaan.',\n\t},\n\tit: {\n\t\tcounter: 'La tua pubblicazione è lunga {{current}} caratteri. È consentito un numero di massimo {{max}} caratteri.',\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\ten: {\n\t\tcounter: 'Your message is {{current}} characters long. A maximum of {{max}} characters is allowed.',\n\t},\n\tpl: {\n\t\tcounter: 'Liczba znaków publikacji wynosi {{current}}. Dozwolona maksymalna liczba znaków wynosi {{max}}.',\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 { NgTemplateOutlet } from '@angular/common';\nimport {\n\tafterNextRender,\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChildren,\n\tDoCheck,\n\teffect,\n\tforwardRef,\n\tinject,\n\tInjector,\n\tinput,\n\tmodel,\n\tOnDestroy,\n\tRenderer2,\n\tsignal,\n\tTemplateRef,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl, NgControl, ReactiveFormsModule, RequiredValidator, Validators } from '@angular/forms';\nimport { FormField } from '@angular/forms/signals';\nimport { SafeHtml } from '@angular/platform-browser';\nimport {\n\tintlInputOptions,\n\tisNotNil,\n\tluBooleanAttribute,\n\tLuClass,\n\tluNullableBooleanAttribute,\n\tluNullableNumberAttribute,\n\tluNumberAttribute,\n\tPortalContent,\n\tPortalDirective,\n\tɵeffectWithDeps,\n} from '@lucca-front/ng/core';\nimport { LU_FORM_INSTANCE } from '@lucca-front/ng/form';\nimport { FormLabelComponent } from '@lucca-front/ng/form-label';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { InlineMessageComponent, InlineMessageState } from '@lucca-front/ng/inline-message';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { BehaviorSubject } from 'rxjs';\nimport { FormFieldSize } from './form-field-size';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\nimport { LU_FORM_FIELD_TRANSLATIONS } from './form-field.translate';\nimport { FormFieldLayout, FormFieldWidth } from './form-field.type';\nimport { InputDirective } from './input.directive';\nimport { INPUT_FRAMED_INSTANCE } from './public-api';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-form-field',\n\timports: [NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent, PortalDirective, FormLabelComponent],\n\ttemplateUrl: './form-field.component.html',\n\tstyleUrl: './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\thost: {\n\t\t'[class.inputFramed-header-field]': 'framed',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FormFieldComponent implements OnDestroy, DoCheck {\n\treadonly intl = input(...intlInputOptions(LU_FORM_FIELD_TRANSLATIONS));\n\n\t#luClass = inject(LuClass);\n\t#injector = inject(Injector);\n\t#renderer = inject(Renderer2);\n\tprotected parentForm = inject(LU_FORM_INSTANCE, { optional: true });\n\n\treadonly framed = inject(INPUT_FRAMED_INSTANCE, { optional: true }) !== null;\n\n\treadonly formFieldChildren = contentChildren(FormFieldComponent, { descendants: true });\n\n\treadonly requiredValidators = contentChildren(RequiredValidator, { descendants: true });\n\treadonly ngControls = contentChildren(NgControl, { descendants: true });\n\treadonly ngFormFields = contentChildren(FormField, { descendants: true });\n\n\treadonly ignoredRequiredValidators = computed(() => new Set(this.formFieldChildren().flatMap((f) => f.requiredValidators())));\n\treadonly ignoredControls = computed(() => new Set(this.formFieldChildren().flatMap((f) => f.ngControls())));\n\treadonly ignoredFormFields = computed(() => new Set(this.formFieldChildren().flatMap((f) => f.ngFormFields())));\n\n\treadonly ownRequiredValidators = computed(() => this.requiredValidators().filter((c) => !this.ignoredRequiredValidators().has(c)));\n\treadonly ownControls = computed(() => this.ngControls().filter((c) => !this.ignoredControls().has(c)));\n\treadonly ownFormFields = computed(() => this.ngFormFields().filter((c) => !this.ignoredFormFields().has(c)));\n\n\treadonly #hasInputRequired = signal(false);\n\treadonly forceInputRequired = signal(false);\n\treadonly isInputRequired = computed(() => this.forceInputRequired() || this.#hasInputRequired());\n\n\treadonly label = input.required<PortalContent>();\n\n\t/**\n\t * Hide field label, while keeping it in DOM for screen readers\n\t */\n\treadonly hiddenLabel = input(false, { transform: luBooleanAttribute });\n\n\treadonly rolePresentationLabel = model(false);\n\n\treadonly labelIsPresentation = computed(() => this.rolePresentationLabel() || this.presentation());\n\n\treadonly inline = input(false, { transform: luBooleanAttribute });\n\n\treadonly statusControl = input<AbstractControl | null>(null);\n\n\treadonly tooltip = input<string | SafeHtml | null>(null);\n\n\treadonly tag = input<string | null>(null);\n\n\treadonly AI = input(false, { transform: luBooleanAttribute });\n\treadonly iconAItooltip = input<string | null>(null);\n\treadonly iconAIalt = input<string | null>(null);\n\n\treadonly width = input(null, { transform: luNullableNumberAttribute<FormFieldWidth> });\n\n\treadonly #invalidStatus = signal(false);\n\tinvalidStatus = this.#invalidStatus.asReadonly();\n\n\treadonly invalid = input(null, { transform: luNullableBooleanAttribute });\n\n\treadonly inlineMessage = input<PortalContent | null>(null);\n\n\t/**\n\t * Inline message for when the control is in error state\n\t */\n\treadonly errorInlineMessage = input<PortalContent | null>(null);\n\n\t/**\n\t * State of the inline message, will be ignored if form state is invalid\n\t */\n\treadonly inlineMessageState = input<InlineMessageState | null>(null);\n\n\treadonly size = input<FormFieldSize | null>(null);\n\n\t/**\n\t * Extra aria-describedby attribute\n\t */\n\treadonly extraDescribedBy = input<string>('');\n\n\treadonly layout = model<FormFieldLayout>('default');\n\n\t#inputs: InputDirective[] = [];\n\n\t/**\n\t * Max amount of characters allowed, defaults to 0, which means hidden, no maximum\n\t */\n\treadonly counter = input(0, { transform: luNumberAttribute });\n\n\treadonly contentLength = signal<number>(0);\n\n\treadonly presentation = input(false, { transform: luBooleanAttribute });\n\n\treadonly presentationMode = computed(() => this.parentForm?.presentation() || this.presentation());\n\n\treadonly presentationDisplayTpl = signal<TemplateRef<unknown> | null>(null);\n\n\treadonly hasInlineMessage = computed(() => !this.presentationMode() && !!(this.inlineMessage() || (this.invalidStatus() ? this.errorInlineMessage() : false)));\n\n\tpublic addInput(input: InputDirective) {\n\t\tthis.#inputs.push(input);\n\t\tafterNextRender(\n\t\t\t() => {\n\t\t\t\tthis.prepareInput();\n\t\t\t},\n\t\t\t{ injector: this.#injector },\n\t\t);\n\t}\n\n\tpublic get inputs(): InputDirective[] {\n\t\treturn this.#inputs;\n\t}\n\n\treadonly id = signal<string>('');\n\n\treadonly ready$ = new BehaviorSubject<boolean>(false);\n\n\tpublic get ready(): boolean {\n\t\treturn this.ready$.value;\n\t}\n\n\treadonly #ariaLabelledBy = signal<string[]>([]);\n\n\t/**\n\t * Ids labelling the inputs of this field, applied by each non-standalone `luInput`\n\t */\n\treadonly ariaLabelledBy = this.#ariaLabelledBy.asReadonly();\n\n\t/**\n\t * Ids describing the inputs of this field, applied by each non-standalone `luInput`\n\t */\n\treadonly ariaDescribedBy = computed(() => {\n\t\tif (!this.id()) {\n\t\t\treturn [];\n\t\t}\n\t\tconst message = this.hasInlineMessage() ? [`${this.id()}-message`] : [];\n\t\treturn [...message, ...this.extraDescribedBy().split(/\\s+/).filter(Boolean)];\n\t});\n\n\tconstructor() {\n\t\tɵeffectWithDeps([this.isInputRequired, this.invalidStatus], () => {\n\t\t\tthis.updateAria();\n\t\t});\n\n\t\teffect(() => {\n\t\t\tthis.#luClass.setState({\n\t\t\t\t[`mod-${this.size()}`]: !!this.size(),\n\t\t\t\t'form-field': this.layout() !== 'fieldset' && !this.presentationMode(),\n\t\t\t\t[`mod-width${this.width()}`]: !!this.width(),\n\t\t\t});\n\t\t});\n\t}\n\n\taddLabelledBy(id: string, prepend = false): void {\n\t\tthis.#ariaLabelledBy.update((ids) => (prepend ? [id, ...ids] : [...ids, id]));\n\t}\n\n\tremoveLabelledBy(id: string): void {\n\t\tthis.#ariaLabelledBy.update((ids) => ids.filter((labelledBy) => labelledBy !== id));\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.set(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.invalidStatus()?.toString());\n\t\t\tthis.#renderer.setAttribute(input.host.nativeElement, 'aria-required', this.isInputRequired()?.toString());\n\t\t});\n\t\tif (this.id() && !this.#ariaLabelledBy().includes(`${this.id()}-label`)) {\n\t\t\tthis.addLabelledBy(`${this.id()}-label`);\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.ready$.complete();\n\t}\n\n\tngDoCheck(): void {\n\t\tafterNextRender(\n\t\t\t() => {\n\t\t\t\tthis.#hasInputRequired.set(this.#isInputRequired());\n\t\t\t\tthis.#invalidStatus.set(this.#hasInvalidStatus());\n\t\t\t\tthis.contentLength.set((this.#inputs[0]?.host?.nativeElement as HTMLInputElement)?.value?.length ?? 0);\n\t\t\t},\n\t\t\t{\n\t\t\t\tinjector: this.#injector,\n\t\t\t},\n\t\t);\n\t}\n\n\t#isInputRequired(): boolean {\n\t\tconst hasRequiredFormControl = this.ownControls().some((c) => c.control?.hasValidator(Validators.required));\n\t\tconst hasRequiredNgModel = this.ownRequiredValidators().some((c) => booleanAttribute(c.required));\n\t\tconst hasRequiredFormField = this.ownFormFields().some((c) => c.state().required());\n\t\treturn hasRequiredFormField || hasRequiredNgModel || hasRequiredFormControl;\n\t}\n\n\t#hasInvalidStatus(): boolean {\n\t\tconst isInvalidOverride = isNotNil(this.invalid());\n\t\tif (isInvalidOverride) {\n\t\t\treturn this.invalid() ?? false;\n\t\t}\n\t\tconst statusControlOverride = this.statusControl();\n\t\tif (statusControlOverride) {\n\t\t\treturn statusControlOverride.invalid && this.ownControls().some((c) => c?.touched);\n\t\t}\n\t\treturn this.ownControls().some((c) => c.invalid && c.touched);\n\t}\n}\n","@if (presentationMode()) {\n\t<dl class=\"presentation\">\n\t\t<ng-container *ngTemplateOutlet=\"inputLayoutTpl\" />\n\t</dl>\n} @else {\n\t<ng-container *ngTemplateOutlet=\"inputLayoutTpl\" />\n}\n\n<ng-template #inputLayoutTpl>\n\t@if (layout() === \"fieldset\" && !presentationMode()) {\n\t\t<fieldset class=\"form-fieldset\" [class.mod-inline]=\"inline()\" [class.mod-S]=\"size() === 'S'\">\n\t\t\t<legend luFormLabel [tooltip]=\"tooltip()\" [tag]=\"tag()\" [required]=\"isInputRequired()\" [class.pr-u-mask]=\"hiddenLabel()\">\n\t\t\t\t<ng-container *luPortal=\"label()\" />\n\t\t\t</legend>\n\t\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t\t@if (hasInlineMessage()) {\n\t\t\t\t<lu-inline-message\n\t\t\t\t\tid=\"{{ id() }}-message\"\n\t\t\t\t\t[label]=\"(invalidStatus() && errorInlineMessage() ? errorInlineMessage() : inlineMessage()) ?? ''\"\n\t\t\t\t\t[state]=\"invalidStatus() ? 'error' : (inlineMessageState() ?? undefined)\"\n\t\t\t\t/>\n\t\t\t}\n\t\t</fieldset>\n\t} @else {\n\t\t@if (presentationMode()) {\n\t\t\t<dt class=\"presentation-term\">\n\t\t\t\t<ng-container *luPortal=\"label()\" />\n\t\t\t\t@if (tooltip(); as tooltip) {\n\t\t\t\t\t<lu-icon class=\"presentation-term-info\" icon=\"signHelp\" [alt]=\"'?'\" [luTooltip]=\"tooltip\" />\n\t\t\t\t}\n\n\t\t\t\t@if (tag()) {\n\t\t\t\t\t<span class=\"formLabel-tag tag\">{{ tag() }}</span>\n\t\t\t\t}\n\t\t\t</dt>\n\n\t\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t} @else {\n\t\t\t<label\n\t\t\t\tluFormLabel\n\t\t\t\t[counterStatus]=\"contentLength()\"\n\t\t\t\t[counterMax]=\"counter()\"\n\t\t\t\t[error]=\"invalidStatus()\"\n\t\t\t\t[tag]=\"tag()\"\n\t\t\t\t[tooltip]=\"tooltip()\"\n\t\t\t\t[required]=\"isInputRequired()\"\n\t\t\t\t[counterId]=\"`${id()}-counter`\"\n\t\t\t\t[attr.id]=\"`${id()}-label`\"\n\t\t\t\t[attr.for]=\"id()\"\n\t\t\t\t[attr.role]=\"rolePresentationLabel() ? 'presentation' : null\"\n\t\t\t\t[class.pr-u-mask]=\"hiddenLabel()\"\n\t\t\t\t[class.inputFramed-header-label]=\"framed\"\n\t\t\t>\n\t\t\t\t<span><ng-container *luPortal=\"label()\" /></span>\n\t\t\t</label>\n\t\t\t@if (AI()) {\n\t\t\t\t<div class=\"form-field-contentOptional\">\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t\t\t\t<lu-icon\n\t\t\t\t\t\tclass=\"pr-u-focusVisible pr-u-borderRadiusSmall\"\n\t\t\t\t\t\t[luTooltip]=\"iconAItooltip() ?? ''\"\n\t\t\t\t\t\tsize=\"S\"\n\t\t\t\t\t\tAI\n\t\t\t\t\t\ticon=\"weatherStars\"\n\t\t\t\t\t\t[alt]=\"iconAIalt() ?? undefined\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t} @else {\n\t\t\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t\t}\n\t\t\t@if (hasInlineMessage()) {\n\t\t\t\t<lu-inline-message\n\t\t\t\t\tid=\"{{ id() }}-message\"\n\t\t\t\t\t[label]=\"(invalidStatus() && errorInlineMessage() ? errorInlineMessage() : inlineMessage()) ?? ''\"\n\t\t\t\t\t[state]=\"invalidStatus() ? 'error' : (inlineMessageState() ?? undefined)\"\n\t\t\t\t/>\n\t\t\t}\n\t\t}\n\t}\n</ng-template>\n\n<ng-template #projectionTpl>\n\t@if (presentationMode() && presentationDisplayTpl()) {\n\t\t<dd class=\"presentation-definition\">\n\t\t\t<ng-container *ngTemplateOutlet=\"presentationDisplayTpl()\" />\n\t\t</dd>\n\t} @else {\n\t\t<ng-content />\n\t}\n</ng-template>\n","/**\n * Available InputFramedComponent sizes\n */\n\nexport const INPUT_FRAMED_SIZE = ['L'] as const;\nexport type InputFramedSize = (typeof INPUT_FRAMED_SIZE)[number];\n","import { InjectionToken } from '@angular/core';\nimport { InputFramedComponent } from './input-framed.component';\n\nexport const INPUT_FRAMED_INSTANCE = new InjectionToken<InputFramedComponent>('INPUT_FRAMED_INSTANCE');\n","import { ChangeDetectionStrategy, Component, forwardRef, input, ViewEncapsulation } from '@angular/core';\nimport { luBooleanAttribute, PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { InputFramedSize } from './input-framed.type';\nimport { INPUT_FRAMED_INSTANCE } from './input-framed.token';\n\n@Component({\n\tselector: 'lu-input-framed',\n\timports: [PortalDirective],\n\ttemplateUrl: './input-framed.component.html',\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\t{\n\t\t\tprovide: INPUT_FRAMED_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => InputFramedComponent),\n\t\t},\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InputFramedComponent {\n\treadonly framedPortal = input<PortalContent | null>(null);\n\treadonly center = input(false, { transform: luBooleanAttribute });\n\treadonly size = input<InputFramedSize | null>(null);\n}\n","<div class=\"inputFramed\" [class.mod-center]=\"center()\" [class.mod-L]=\"size() === 'L'\">\n\t<div class=\"inputFramed-header\">\n\t\t<div class=\"form-field inputFramed-header-field\">\n\t\t\t<ng-content />\n\t\t</div>\n\t\t<div class=\"inputFramed-header-illustration\"><ng-content select=\"[illustration]\" /></div>\n\t\t<div class=\"inputFramed-header-info\"><ng-content select=\"[info]\" /></div>\n\t</div>\n\t@if (framedPortal(); as framedPortal) {\n\t\t<div class=\"inputFramed-content\"><ng-container *luPortal=\"framedPortal\" /></div>\n\t}\n</div>\n","import { computed, Directive, effect, ElementRef, inject, input, OnInit, Renderer2 } from '@angular/core';\nimport { luBooleanAttribute } from '@lucca-front/ng/core';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\nfunction splitIds(ids: string | null): string[] {\n\treturn ids?.split(/\\s+/).filter(Boolean) ?? [];\n}\n\nfunction mergeIds(...lists: string[][]): string {\n\treturn [...new Set(lists.flat())].join(' ');\n}\n\n@Directive({\n\tselector: '[luInput]',\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\treadonly #renderer = inject(Renderer2);\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\treadonly standalone = input(false, { transform: luBooleanAttribute, alias: 'luInputStandalone' });\n\n\t/**\n\t * Space-separated ids labelling the input, appended to the ones provided by the parent form field.\n\t * Use it instead of binding `aria-labelledby`, which the form field would override.\n\t */\n\treadonly labelledBy = input<string | null>(null, { alias: 'luInputLabelledBy' });\n\n\t/**\n\t * Space-separated ids describing the input, placed before the ones provided by the parent form field.\n\t * Use it instead of binding `aria-describedby`, which the form field would override.\n\t */\n\treadonly describedBy = input<string | null>(null, { alias: 'luInputDescribedBy' });\n\n\treadonly #linkedFormField = computed(() => (this.standalone() ? null : this.formFieldRef));\n\n\treadonly #ariaLabelledBy = computed(() => mergeIds(this.#linkedFormField()?.ariaLabelledBy() ?? [], splitIds(this.labelledBy())));\n\n\t// Own descriptions (e.g. instructions) are read before the form field ones, so an error message comes last\n\treadonly #ariaDescribedBy = computed(() => mergeIds(splitIds(this.describedBy()), this.#linkedFormField()?.ariaDescribedBy() ?? []));\n\n\tconstructor() {\n\t\tthis.#syncAttribute('aria-labelledby', this.#ariaLabelledBy);\n\t\tthis.#syncAttribute('aria-describedby', this.#ariaDescribedBy);\n\t}\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\t/**\n\t * This directive is the only writer of the attribute while it has ids to set.\n\t * It never touches the attribute otherwise, so a value bound by the consumer on a standalone input is kept.\n\t */\n\t#syncAttribute(name: string, value: () => string): void {\n\t\tlet written = false;\n\t\teffect(() => {\n\t\t\tconst ids = value();\n\t\t\tif (ids) {\n\t\t\t\tthis.#renderer.setAttribute(this.host.nativeElement, name, ids);\n\t\t\t\twritten = true;\n\t\t\t} else if (written) {\n\t\t\t\tthis.#renderer.removeAttribute(this.host.nativeElement, name);\n\t\t\t\twritten = false;\n\t\t\t}\n\t\t});\n\t}\n}\n","import { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\nimport { luBooleanAttribute, PortalContent, PortalDirective } from '@lucca-front/ng/core';\n\n@Component({\n\tselector: 'lu-data-presentation',\n\timports: [PortalDirective],\n\ttemplateUrl: './data-presentation.component.html',\n\tstyleUrl: './data-presentation.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DataPresentationComponent {\n\treadonly label = input.required<PortalContent>();\n\treadonly noValue = input(false, { transform: luBooleanAttribute });\n\treadonly size = input<'S' | null>(null);\n}\n","<dl class=\"presentation\" [class.mod-S]=\"size() === 'S'\">\n\t<dt class=\"presentation-term\">\n\t\t<ng-container *luPortal=\"label()\" />\n\t</dt>\n\t<dd class=\"presentation-definition\">\n\t\t@if (noValue()) {\n\t\t\t<div aria-hidden=\"true\" data-content-before=\"–\"></div>\n\t\t}\n\t\t<ng-content />\n\t</dd>\n</dl>\n","import { Directive, inject, OnInit, signal, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { FormFieldComponent } from '../form-field.component';\n\n@Directive({\n\tselector: '[luPresentationDisplay]',\n})\nexport class PresentationDisplayDirective implements OnInit {\n\t#formFieldRef = inject(FormFieldComponent, { optional: true });\n\n\tpublic readonly templateRef: TemplateRef<unknown> = inject(TemplateRef);\n\n\t#vcr = inject(ViewContainerRef);\n\n\treadonly defaultDisplay = signal(false);\n\n\tngOnInit() {\n\t\tif (this.#formFieldRef) {\n\t\t\t// If it's default display, we do not override the existing value, this way consumers can override easily without any kind of race condition.\n\t\t\tif (!this.#formFieldRef.presentationDisplayTpl() || !this.defaultDisplay()) {\n\t\t\t\tthis.#formFieldRef.presentationDisplayTpl.set(this.templateRef);\n\t\t\t}\n\t\t}\n\t\tthis.#vcr.clear();\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: PresentationDisplayDirective, _ctx: unknown): _ctx is void {\n\t\treturn true;\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { PresentationDisplayDirective } from './presentation-display.directive';\n\n@Directive({\n\tselector: '[luPresentationDisplayDefault]',\n\thostDirectives: [PresentationDisplayDirective],\n})\nexport class ɵPresentationDisplayDefaultDirective {\n\t#displayDirectiveRef = inject(PresentationDisplayDirective);\n\n\tconstructor() {\n\t\tthis.#displayDirectiveRef.defaultDisplay.set(true);\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: ɵPresentationDisplayDefaultDirective, _ctx: unknown): _ctx is void {\n\t\treturn true;\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵeffectWithDeps","i1.PresentationDisplayDirective"],"mappings":"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"}
@@ -72,7 +72,7 @@ class FormLabelComponent {
72
72
  ...(ngDevMode ? [{ debugName: "counterId" }] : /* istanbul ignore next */ []));
73
73
  }
74
74
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: FormLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
75
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: FormLabelComponent, isStandalone: true, selector: "label[luFormLabel], legend[luFormLabel]", inputs: { intl: { classPropertyName: "intl", publicName: "intl", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tag: { classPropertyName: "tag", publicName: "tag", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, counterStatus: { classPropertyName: "counterStatus", publicName: "counterStatus", isSignal: true, isRequired: false, transformFunction: null }, counterMax: { classPropertyName: "counterMax", publicName: "counterMax", isSignal: true, isRequired: false, transformFunction: null }, counterId: { classPropertyName: "counterId", publicName: "counterId", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.mod-counter": "counterMax() > 0", "class.mod-XS": "size() === 'XS'", "class.mod-S": "size() === 'S'", "class.is-error": "error() || (counterMax() > 0 ? counterStatus() > counterMax() : null)" }, classAttribute: "formLabel" }, ngImport: i0, template: "<ng-content />\n@if (required()) {\n\t<sup class=\"formLabel-required\" aria-hidden=\"true\">*</sup>\n}\n@if (tooltip(); as tooltip) {\n\t<span class=\"formLabel-info\" [luTooltip]=\"tooltip\">\n\t\t<lu-icon icon=\"signHelp\" [alt]=\"intl().tooltipAlt\" />\n\t</span>\n}\n@if (tag(); as tag) {\n\t<lu-tag class=\"formLabel-tag\" [label]=\"tag\" />\n}\n@if (counterMax() > 0) {\n\t<span class=\"formLabel-counter\" [attr.id]=\"counterId()\" aria-live=\"polite\">\n\t\t<span aria-hidden=\"true\">{{ counterStatus() }}/{{ counterMax() }}</span>\n\t\t<span class=\"pr-u-mask\">{{ intl().counterAlt | intlParams: { counterStatus: counterStatus(), counterMax: counterMax() } }}</span>\n\t</span>\n}\n", styles: ["@layer components{.formLabel{--components-formLabel-font: var(--pr-t-font-body-M);--components-formLabel-color: var(--pr-t-color-text);--components-formLabel-info-color: var(--palettes-neutral-600);--components-formLabel-help-fontSize: var(--pr-t-font-body-XS-lineHeight);--components-formLabel-help-lineHeight: var(--pr-t-font-body-M-lineHeight);--components-formLabel-paddingRight: 0;--components-formLabel-width: fit-content;--components-formLabel-cursor: default;--components-formLabel-fontSize: var(--pr-t-font-body-M-fontSize);--components-formLabel-lineHeight: var(--pr-t-font-body-M-lineHeight);display:block;position:relative;color:var(--components-formLabel-color);font:var(--components-formLabel-font);font-size:var(--components-formLabel-fontSize);line-height:var(--components-formLabel-lineHeight);inline-size:var(--components-formLabel-width);padding-inline-end:var(--components-formLabel-paddingRight);cursor:var(--components-formLabel-cursor)}.formLabel .lucca-icon{color:var(--components-formLabel-info-color);font-size:var(--components-formLabel-help-fontSize);line-height:var(--components-formLabel-help-lineHeight);margin-inline-start:var(--pr-t-spacings-25);vertical-align:top}.formLabel-required{color:var(--palettes-error-700);font-size:inherit;line-height:inherit;font-weight:var(--pr-t-font-fontWeight-semibold);margin-inline-start:var(--pr-t-spacings-25);inset-block-start:0}.formLabel-info{vertical-align:top;display:inline-block;block-size:1lh}.formLabel-info:focus-visible{outline:none}.formLabel-info:focus-visible .lucca-icon:before{border-radius:50%;outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:0}.formLabel-counter{font-size:var(--pr-t-font-body-XS-fontSize);color:var(--components-formLabel-color);position:absolute;inset-inline-end:0;inset-block-start:0;display:block}.formLabel-tag{margin-inline-start:var(--pr-t-spacings-50);inset-block-start:calc(var(--pr-t-spacings-25) / -2);position:relative}.formLabel-tag,.formLabel-tag .tag{--components-tag-background: var(--palettes-100, var(--palettes-product-100));--components-tag-color: var(--palettes-800, var(--palettes-product-800))}}@layer mods{.formLabel.mod-S{--components-formLabel-font: var(--pr-t-font-body-S);--components-formLabel-help-fontSize: var(--pr-t-font-body-XS-lineHeight);--components-formLabel-help-lineHeight: var(--pr-t-font-body-S-lineHeight);--components-formLabel-fontSize: var(--pr-t-font-body-S-fontSize);--components-formLabel-lineHeight: var(--pr-t-font-body-S-lineHeight)}.formLabel.mod-S .tag{--components-tag-font: var(--pr-t-font-body-XS);--components-tag-gap: var(--pr-t-spacings-25)}.formLabel.mod-S .tag .lucca-icon{--icon-size: .75rem}.formLabel.mod-S .tag{--components-tag-fontSize: var(--pr-t-font-body-XS-fontSize);--components-tag-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.formLabel.mod-XS{--components-formLabel-font: var(--pr-t-font-body-XS);--components-formLabel-help-fontSize: .75rem;--components-formLabel-help-lineHeight: var(--pr-t-font-body-XS-lineHeight);--components-formLabel-fontSize: var(--pr-t-font-body-XS-fontSize);--components-formLabel-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.formLabel.mod-XS .tag{--components-tag-font: var(--pr-t-font-body-XS);--components-tag-gap: var(--pr-t-spacings-25)}.formLabel.mod-XS .tag .lucca-icon{--icon-size: .75rem}.formLabel.mod-XS .tag{--components-tag-fontSize: var(--pr-t-font-body-XS-fontSize);--components-tag-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.formLabel.mod-counter{--components-formLabel-width: auto;--components-formLabel-paddingRight: var(--pr-t-spacings-600)}.formLabel.is-error{--components-formLabel-color: var(--palettes-error-700);--components-formLabel-info-color: inherit}}lu-form-label{display:contents}\n"], dependencies: [{ kind: "directive", type: LuTooltipTriggerDirective, selector: "[luTooltip],[prTooltip]", inputs: ["luTooltip", "prTooltip", "luTooltipEnterDelay", "prTooltipEnterDelay", "luTooltipLeaveDelay", "prTooltipLeaveDelay", "luTooltipDisabled", "prTooltipDisabled", "luTooltipOnlyForDisplay", "prTooltipOnlyForDisplay", "luTooltipPosition", "prTooltipPosition", "luTooltipWhenEllipsis", "prTooltipWhenEllipsis", "luTooltipAnchor", "prTooltipAnchor", "id"], exportAs: ["luTooltip"] }, { kind: "component", type: TagComponent, selector: "lu-tag,pr-tag", inputs: ["label", "size", "palette", "outlined", "link", "icon", "withEllipsis", "AI"] }, { kind: "component", type: IconComponent, selector: "lu-icon, pr-icon", inputs: ["icon", "alt", "size", "color", "AI"] }, { kind: "pipe", type: IntlParamsPipe, name: "intlParams" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
75
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.4", type: FormLabelComponent, isStandalone: true, selector: "label[luFormLabel], legend[luFormLabel]", inputs: { intl: { classPropertyName: "intl", publicName: "intl", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, tag: { classPropertyName: "tag", publicName: "tag", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, counterStatus: { classPropertyName: "counterStatus", publicName: "counterStatus", isSignal: true, isRequired: false, transformFunction: null }, counterMax: { classPropertyName: "counterMax", publicName: "counterMax", isSignal: true, isRequired: false, transformFunction: null }, counterId: { classPropertyName: "counterId", publicName: "counterId", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.mod-counter": "counterMax() > 0", "class.mod-XS": "size() === 'XS'", "class.mod-S": "size() === 'S'", "class.is-error": "error() || (counterMax() > 0 ? counterStatus() > counterMax() : null)" }, classAttribute: "formLabel" }, ngImport: i0, template: "<ng-content />\n@if (required()) {\n\t<sup class=\"formLabel-required\" aria-hidden=\"true\">*</sup>\n}\n@if (tooltip(); as tooltip) {\n\t<span class=\"formLabel-info\" [luTooltip]=\"tooltip\">\n\t\t<lu-icon icon=\"signHelp\" [alt]=\"intl().tooltipAlt\" />\n\t</span>\n}\n@if (tag(); as tag) {\n\t<lu-tag class=\"formLabel-tag\" [label]=\"tag\" />\n}\n@if (counterMax() > 0) {\n\t<span class=\"formLabel-counter\" [attr.id]=\"counterId()\" aria-live=\"polite\">\n\t\t<span aria-hidden=\"true\">{{ counterStatus() }}/{{ counterMax() }}</span>\n\t\t<span class=\"pr-u-mask\">{{ intl().counterAlt | intlParams: { counterStatus: counterStatus(), counterMax: counterMax() } }}</span>\n\t</span>\n}\n", styles: ["@layer components{.formLabel{--components-formLabel-font: var(--pr-t-font-body-M);--components-formLabel-color: var(--pr-t-color-text);--components-formLabel-info-color: var(--palettes-neutral-600);--components-formLabel-help-fontSize: var(--pr-t-font-body-XS-lineHeight);--components-formLabel-help-lineHeight: var(--pr-t-font-body-M-lineHeight);--components-formLabel-paddingRight: 0;--components-formLabel-width: fit-content;--components-formLabel-cursor: default;--components-formLabel-fontSize: var(--pr-t-font-body-M-fontSize);--components-formLabel-lineHeight: var(--pr-t-font-body-M-lineHeight);display:block;position:relative;color:var(--components-formLabel-color);font:var(--components-formLabel-font);font-size:var(--components-formLabel-fontSize);line-height:var(--components-formLabel-lineHeight);inline-size:var(--components-formLabel-width);padding-inline-end:var(--components-formLabel-paddingRight);cursor:var(--components-formLabel-cursor)}.formLabel .lucca-icon{color:var(--components-formLabel-info-color);font-size:var(--components-formLabel-help-fontSize);line-height:var(--components-formLabel-help-lineHeight);margin-inline-start:var(--pr-t-spacings-25);vertical-align:top}.formLabel-required{color:var(--palettes-error-700);font-size:inherit;line-height:inherit;font-weight:var(--pr-t-font-fontWeight-semibold);margin-inline-start:var(--pr-t-spacings-25);inset-block-start:0}.formLabel-info{vertical-align:top;display:inline-block;block-size:1lh}.formLabel-info:focus-visible{outline:none}.formLabel-info:focus-visible .lucca-icon:before{border-radius:50%;outline:2px solid var(--palettes-700, var(--palettes-product-700));outline-offset:0}.formLabel-counter{font-size:var(--pr-t-font-body-XS-fontSize);color:var(--components-formLabel-color);position:absolute;inset-inline-end:0;inset-block-start:0;display:block}.formLabel-tag{margin-inline-start:var(--pr-t-spacings-50);inset-block-start:calc(var(--pr-t-spacings-25) / -2);position:relative}.formLabel-tag,.formLabel-tag .tag{--components-tag-background: var(--palettes-100, var(--palettes-product-100));--components-tag-color: var(--palettes-800, var(--palettes-product-800))}}@layer mods{.formLabel.mod-S{--components-formLabel-font: var(--pr-t-font-body-S);--components-formLabel-help-fontSize: var(--pr-t-font-body-XS-lineHeight);--components-formLabel-help-lineHeight: var(--pr-t-font-body-S-lineHeight);--components-formLabel-fontSize: var(--pr-t-font-body-S-fontSize);--components-formLabel-lineHeight: var(--pr-t-font-body-S-lineHeight)}.formLabel.mod-S .tag{--components-tag-font: var(--pr-t-font-body-XS);--components-tag-gap: var(--pr-t-spacings-25)}.formLabel.mod-S .tag .lucca-icon{--icon-size: .75rem}.formLabel.mod-S .tag{--components-tag-fontSize: var(--pr-t-font-body-XS-fontSize);--components-tag-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.formLabel.mod-XS{--components-formLabel-font: var(--pr-t-font-body-XS);--components-formLabel-help-fontSize: .75rem;--components-formLabel-help-lineHeight: var(--pr-t-font-body-XS-lineHeight);--components-formLabel-fontSize: var(--pr-t-font-body-XS-fontSize);--components-formLabel-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.formLabel.mod-XS .tag{--components-tag-font: var(--pr-t-font-body-XS);--components-tag-gap: var(--pr-t-spacings-25)}.formLabel.mod-XS .tag .lucca-icon{--icon-size: .75rem}.formLabel.mod-XS .tag{--components-tag-fontSize: var(--pr-t-font-body-XS-fontSize);--components-tag-lineHeight: var(--pr-t-font-body-XS-lineHeight)}.formLabel.mod-counter{--components-formLabel-width: auto;--components-formLabel-paddingRight: var(--pr-t-spacings-600)}.formLabel.is-error{--components-formLabel-color: var(--palettes-error-700);--components-formLabel-info-color: inherit}}lu-form-label{display:contents}\n"], dependencies: [{ kind: "directive", type: LuTooltipTriggerDirective, selector: "[luTooltip],[prTooltip]", inputs: ["luTooltip", "prTooltip", "luTooltipEnterDelay", "prTooltipEnterDelay", "luTooltipLeaveDelay", "prTooltipLeaveDelay", "luTooltipDisabled", "prTooltipDisabled", "luTooltipOnlyForDisplay", "prTooltipOnlyForDisplay", "luTooltipPosition", "prTooltipPosition", "luTooltipWhenEllipsis", "prTooltipWhenEllipsis", "luTooltipAnchor", "prTooltipAnchor", "luTooltipTriggerAnchor", "prTooltipTriggerAnchor", "id"], exportAs: ["luTooltip"] }, { kind: "component", type: TagComponent, selector: "lu-tag,pr-tag", inputs: ["label", "size", "palette", "outlined", "link", "icon", "withEllipsis", "AI"] }, { kind: "component", type: IconComponent, selector: "lu-icon, pr-icon", inputs: ["icon", "alt", "size", "color", "AI"] }, { kind: "pipe", type: IntlParamsPipe, name: "intlParams" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
76
76
  }
77
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: FormLabelComponent, decorators: [{
78
78
  type: Component,
@@ -89,5 +89,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
89
89
  * Generated bundle index. Do not edit.
90
90
  */
91
91
 
92
- export { FORM_LABEL_SIZE, FormLabelComponent };
92
+ export { FORM_LABEL_SIZE, FormLabelComponent, LU_FORM_LABEL_TRANSLATIONS, luFormLabelTranslations };
93
93
  //# sourceMappingURL=lucca-front-ng-form-label.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-form-label.mjs","sources":["../../../packages/ng/form-label/form-label.type.ts","../../../packages/ng/form-label/translations.ts","../../../packages/ng/form-label/form-label.translate.ts","../../../packages/ng/form-label/form-label.component.ts","../../../packages/ng/form-label/form-label.component.html","../../../packages/ng/form-label/lucca-front-ng-form-label.ts"],"sourcesContent":["/**\n * Available FormLabelComponent Types\n */\n\nexport const FORM_LABEL_SIZE = ['XS', 'S'] as const;\nexport type FormLabelSize = (typeof FORM_LABEL_SIZE)[number];\n","export const Translations = {\n\ten: {\n\t\tcounterAlt: '{{counterStatus}} of {{counterMax}} allowed characters. ',\n\t\ttooltipAlt: 'Additional info',\n\t},\n\tde: {\n\t\tcounterAlt: '{{counterStatus}} von {{counterMax}} zulässigen Zeichen. ',\n\t\ttooltipAlt: 'Zusätzliche Informationen',\n\t},\n\tfr: {\n\t\tcounterAlt: '{{counterStatus}} sur {{counterMax}} caractères autorisés.',\n\t\ttooltipAlt: 'Info supplémentaire',\n\t},\n\tit: {\n\t\tcounterAlt: '{{counterStatus}} su {{counterMax}} caratteri consentiti. ',\n\t\ttooltipAlt: 'Informazione supplementare',\n\t},\n\tnl: {\n\t\tcounterAlt: '{{counterStatus}} van de {{counterMax}} toegelaten tekens. ',\n\t\ttooltipAlt: 'Aanvullende informatie',\n\t},\n\t'nl-BE': {\n\t\tcounterAlt: '{{counterStatus}} van de {{counterMax}} toegelaten tekens. ',\n\t\ttooltipAlt: 'Aanvullende informatie',\n\t},\n\tes: {\n\t\tcounterAlt: '{{counterStatus}} de un {{counterMax}} o de caracteres permitidos. ',\n\t\ttooltipAlt: 'Información adicional',\n\t},\n\tpt: {\n\t\tcounterAlt: '{{counterStatus}} de um {{counterMax}} o de caracteres permitidos. ',\n\t\ttooltipAlt: 'Informações adicionais',\n\t},\n\tpl: {\n\t\tcounterAlt: '{{counterStatus}} z {{counterMax}} dozwolonych znaków. ',\n\t\ttooltipAlt: 'Dodatkowe informacje',\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_LABEL_TRANSLATIONS = new InjectionToken('LuFormLabelTranslations', {\n\tfactory: () => luFormLabelTranslations,\n});\n\nexport interface LuFormLabelTranslations {\n\tcounterAlt: string;\n\ttooltipAlt: string;\n}\n\nexport const luFormLabelTranslations: LuTranslation<LuFormLabelTranslations> = Translations;\n","import { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { intlInputOptions, IntlParamsPipe, luBooleanAttribute, luNumberAttribute } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { TagComponent } from '@lucca-front/ng/tag';\nimport { LuTooltipTriggerDirective } from '@lucca-front/ng/tooltip';\nimport { LU_FORM_LABEL_TRANSLATIONS } from './form-label.translate';\nimport { FormLabelSize } from './form-label.type';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'label[luFormLabel], legend[luFormLabel]',\n\tstyleUrl: './form-label.component.scss',\n\ttemplateUrl: './form-label.component.html',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [LuTooltipTriggerDirective, LuTooltipTriggerDirective, TagComponent, IconComponent, IntlParamsPipe],\n\thost: {\n\t\tclass: 'formLabel',\n\t\t'[class.mod-counter]': 'counterMax() > 0',\n\t\t'[class.mod-XS]': \"size() === 'XS'\",\n\t\t'[class.mod-S]': \"size() === 'S'\",\n\t\t'[class.is-error]': 'error() || (counterMax() > 0 ? counterStatus() > counterMax() : null)',\n\t},\n})\nexport class FormLabelComponent {\n\tprotected readonly intl = input(...intlInputOptions(LU_FORM_LABEL_TRANSLATIONS));\n\n\treadonly required = input(false, { transform: luBooleanAttribute });\n\treadonly error = input(false, { transform: luBooleanAttribute });\n\treadonly tooltip = input<string | SafeHtml | null>(null);\n\treadonly tag = input<string | null>(null);\n\treadonly size = input<FormLabelSize | null>(null);\n\treadonly counterStatus = input(0, { transform: luNumberAttribute });\n\treadonly counterMax = input(0, { transform: luNumberAttribute });\n\treadonly counterId = input<string | null>(null);\n}\n","<ng-content />\n@if (required()) {\n\t<sup class=\"formLabel-required\" aria-hidden=\"true\">*</sup>\n}\n@if (tooltip(); as tooltip) {\n\t<span class=\"formLabel-info\" [luTooltip]=\"tooltip\">\n\t\t<lu-icon icon=\"signHelp\" [alt]=\"intl().tooltipAlt\" />\n\t</span>\n}\n@if (tag(); as tag) {\n\t<lu-tag class=\"formLabel-tag\" [label]=\"tag\" />\n}\n@if (counterMax() > 0) {\n\t<span class=\"formLabel-counter\" [attr.id]=\"counterId()\" aria-live=\"polite\">\n\t\t<span aria-hidden=\"true\">{{ counterStatus() }}/{{ counterMax() }}</span>\n\t\t<span class=\"pr-u-mask\">{{ intl().counterAlt | intlParams: { counterStatus: counterStatus(), counterMax: counterMax() } }}</span>\n\t</span>\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-label.mjs","sources":["../../../packages/ng/form-label/form-label.type.ts","../../../packages/ng/form-label/translations.ts","../../../packages/ng/form-label/form-label.translate.ts","../../../packages/ng/form-label/form-label.component.ts","../../../packages/ng/form-label/form-label.component.html","../../../packages/ng/form-label/lucca-front-ng-form-label.ts"],"sourcesContent":["/**\n * Available FormLabelComponent Types\n */\n\nexport const FORM_LABEL_SIZE = ['XS', 'S'] as const;\nexport type FormLabelSize = (typeof FORM_LABEL_SIZE)[number];\n","export const Translations = {\n\ten: {\n\t\tcounterAlt: '{{counterStatus}} of {{counterMax}} allowed characters. ',\n\t\ttooltipAlt: 'Additional info',\n\t},\n\tde: {\n\t\tcounterAlt: '{{counterStatus}} von {{counterMax}} zulässigen Zeichen. ',\n\t\ttooltipAlt: 'Zusätzliche Informationen',\n\t},\n\tfr: {\n\t\tcounterAlt: '{{counterStatus}} sur {{counterMax}} caractères autorisés.',\n\t\ttooltipAlt: 'Info supplémentaire',\n\t},\n\tit: {\n\t\tcounterAlt: '{{counterStatus}} su {{counterMax}} caratteri consentiti. ',\n\t\ttooltipAlt: 'Informazione supplementare',\n\t},\n\tnl: {\n\t\tcounterAlt: '{{counterStatus}} van de {{counterMax}} toegelaten tekens. ',\n\t\ttooltipAlt: 'Aanvullende informatie',\n\t},\n\t'nl-BE': {\n\t\tcounterAlt: '{{counterStatus}} van de {{counterMax}} toegelaten tekens. ',\n\t\ttooltipAlt: 'Aanvullende informatie',\n\t},\n\tes: {\n\t\tcounterAlt: '{{counterStatus}} de un {{counterMax}} o de caracteres permitidos. ',\n\t\ttooltipAlt: 'Información adicional',\n\t},\n\tpt: {\n\t\tcounterAlt: '{{counterStatus}} de um {{counterMax}} o de caracteres permitidos. ',\n\t\ttooltipAlt: 'Informações adicionais',\n\t},\n\tpl: {\n\t\tcounterAlt: '{{counterStatus}} z {{counterMax}} dozwolonych znaków. ',\n\t\ttooltipAlt: 'Dodatkowe informacje',\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_LABEL_TRANSLATIONS = new InjectionToken('LuFormLabelTranslations', {\n\tfactory: () => luFormLabelTranslations,\n});\n\nexport interface LuFormLabelTranslations {\n\tcounterAlt: string;\n\ttooltipAlt: string;\n}\n\nexport const luFormLabelTranslations: LuTranslation<LuFormLabelTranslations> = Translations;\n","import { ChangeDetectionStrategy, Component, input, ViewEncapsulation } from '@angular/core';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { intlInputOptions, IntlParamsPipe, luBooleanAttribute, luNumberAttribute } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { TagComponent } from '@lucca-front/ng/tag';\nimport { LuTooltipTriggerDirective } from '@lucca-front/ng/tooltip';\nimport { LU_FORM_LABEL_TRANSLATIONS } from './form-label.translate';\nimport { FormLabelSize } from './form-label.type';\n\n@Component({\n\t// eslint-disable-next-line @angular-eslint/component-selector\n\tselector: 'label[luFormLabel], legend[luFormLabel]',\n\tstyleUrl: './form-label.component.scss',\n\ttemplateUrl: './form-label.component.html',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\timports: [LuTooltipTriggerDirective, LuTooltipTriggerDirective, TagComponent, IconComponent, IntlParamsPipe],\n\thost: {\n\t\tclass: 'formLabel',\n\t\t'[class.mod-counter]': 'counterMax() > 0',\n\t\t'[class.mod-XS]': \"size() === 'XS'\",\n\t\t'[class.mod-S]': \"size() === 'S'\",\n\t\t'[class.is-error]': 'error() || (counterMax() > 0 ? counterStatus() > counterMax() : null)',\n\t},\n})\nexport class FormLabelComponent {\n\tprotected readonly intl = input(...intlInputOptions(LU_FORM_LABEL_TRANSLATIONS));\n\n\treadonly required = input(false, { transform: luBooleanAttribute });\n\treadonly error = input(false, { transform: luBooleanAttribute });\n\treadonly tooltip = input<string | SafeHtml | null>(null);\n\treadonly tag = input<string | null>(null);\n\treadonly size = input<FormLabelSize | null>(null);\n\treadonly counterStatus = input(0, { transform: luNumberAttribute });\n\treadonly counterMax = input(0, { transform: luNumberAttribute });\n\treadonly counterId = input<string | null>(null);\n}\n","<ng-content />\n@if (required()) {\n\t<sup class=\"formLabel-required\" aria-hidden=\"true\">*</sup>\n}\n@if (tooltip(); as tooltip) {\n\t<span class=\"formLabel-info\" [luTooltip]=\"tooltip\">\n\t\t<lu-icon icon=\"signHelp\" [alt]=\"intl().tooltipAlt\" />\n\t</span>\n}\n@if (tag(); as tag) {\n\t<lu-tag class=\"formLabel-tag\" [label]=\"tag\" />\n}\n@if (counterMax() > 0) {\n\t<span class=\"formLabel-counter\" [attr.id]=\"counterId()\" aria-live=\"polite\">\n\t\t<span aria-hidden=\"true\">{{ counterStatus() }}/{{ counterMax() }}</span>\n\t\t<span class=\"pr-u-mask\">{{ intl().counterAlt | intlParams: { counterStatus: counterStatus(), counterMax: counterMax() } }}</span>\n\t</span>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -234,7 +234,7 @@ class PhoneNumberInputComponent {
234
234
  useExisting: forwardRef(() => PhoneNumberInputComponent),
235
235
  multi: true,
236
236
  },
237
- ], ngImport: i0, template: "<fieldset [disabled]=\"disabled\" class=\"phoneNumber-fieldset\">\n\t<legend>\n\t\t<span class=\"pr-u-mask\">{{ label() }}</span>\n\t</legend>\n\t<label>\n\t\t<span class=\"pr-u-mask\">Prefix</span>\n\t\t<lu-simple-select\n\t\t\tignorePresentation\n\t\t\t[options]=\"prefixesDisplay()\"\n\t\t\t[ngModel]=\"prefixEntry()\"\n\t\t\t(ngModelChange)=\"updatePrefix($event)\"\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t[optionKey]=\"getPrefixKey\"\n\t\t\t[optionComparer]=\"prefixComparator\"\n\t\t\t(clueChange)=\"query.set($event)\"\n\t\t\tnoClueIcon\n\t\t\t#selectRef\n\t\t\tclass=\"phoneNumber-fieldset-select\"\n\t\t\t[autocomplete]=\"autocomplete() ? (autocomplete() === 'off' ? 'off' : 'tel-country-code') : null\"\n\t\t>\n\t\t\t<ng-container *luOption=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img class=\"phoneNumber-option-flag\" src=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\" alt=\"\" />{{\n\t\t\t\t\tprefixOption.name\n\t\t\t\t}}\n\t\t\t\t(+{{ prefixOption.prefix }})\n\t\t\t</ng-container>\n\t\t\t<ng-container *luDisplayer=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img\n\t\t\t\t\tsrc=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\"\n\t\t\t\t\talt=\"{{ prefixOption.country }} +{{ prefixOption.prefix }}\"\n\t\t\t\t\tclass=\"phoneNumber-countryCode-flag\"\n\t\t\t\t/>\n\t\t\t</ng-container>\n\t\t</lu-simple-select>\n\t</label>\n\t<label for=\"phoneNumberFieldsetTextfieldInput\" class=\"pr-u-mask\">Number</label>\n\t<div class=\"textField phoneNumber-fieldset-textfield\">\n\t\t<div class=\"textField-input\">\n\t\t\t<input\n\t\t\t\ttype=\"text\"\n\t\t\t\tid=\"phoneNumberFieldsetTextfieldInput\"\n\t\t\t\t[ngModel]=\"displayedNumber()\"\n\t\t\t\t(ngModelChange)=\"updateNumber($event)\"\n\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t\t(blur)=\"touched(); formatNationalNumber()\"\n\t\t\t\tluInput\n\t\t\t\tluInputStandalone\n\t\t\t\tclass=\"textField-input-value\"\n\t\t\t\t[attr.autocomplete]=\"autocomplete() ? (autocomplete() === 'off' ? 'off' : 'tel-national') : null\"\n\t\t\t\t[placeholder]=\"placeholder()\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</fieldset>\n\n<ng-container *luPresentationDisplayDefault>\n\t@if (currentValue()) {\n\t\t<a class=\"presentation-definition-link\" href=\"tel:{{ currentValue() }}\">{{ currentValue() }}</a>\n\t} @else {\n\t\t<span aria-hidden=\"true\" data-content-before=\"\u2013\"></span>\n\t}\n</ng-container>\n", styles: ["@layer components{.phoneNumber-fieldset{border:0;padding:0;gap:var(--pr-t-spacings-100);inline-size:17.5rem;display:flex}.phoneNumber-fieldset-select .simpleSelect-field-input{inline-size:21px}.phoneNumber-fieldset-textfield{flex-grow:1}.phoneNumber-option-flag{vertical-align:top;margin-block-start:var(--pr-t-spacings-50);margin-inline-end:var(--pr-t-spacings-100)}.phoneNumber-countryCode-flag{display:block}}\n"], dependencies: [{ kind: "component", type: LuSimpleSelectInputComponent, selector: "lu-simple-select", inputs: ["intl", "autocomplete", "impersonation"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: LuDisplayerDirective, selector: "[luDisplayer]", inputs: ["luDisplayerSelect"] }, { kind: "directive", type: LuOptionDirective, selector: "[luOption]", inputs: ["luOptionSelect"] }, { kind: "directive", type: InputDirective, selector: "[luInput]", inputs: ["luInputStandalone"] }, { kind: "directive", type: _PresentationDisplayDefaultDirective, selector: "[luPresentationDisplayDefault]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
237
+ ], ngImport: i0, template: "<fieldset [disabled]=\"disabled\" class=\"phoneNumber-fieldset\">\n\t<legend>\n\t\t<span class=\"pr-u-mask\">{{ label() }}</span>\n\t</legend>\n\t<label>\n\t\t<span class=\"pr-u-mask\">Prefix</span>\n\t\t<lu-simple-select\n\t\t\tignorePresentation\n\t\t\t[options]=\"prefixesDisplay()\"\n\t\t\t[ngModel]=\"prefixEntry()\"\n\t\t\t(ngModelChange)=\"updatePrefix($event)\"\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t[optionKey]=\"getPrefixKey\"\n\t\t\t[optionComparer]=\"prefixComparator\"\n\t\t\t(clueChange)=\"query.set($event)\"\n\t\t\tnoClueIcon\n\t\t\t#selectRef\n\t\t\tclass=\"phoneNumber-fieldset-select\"\n\t\t\t[autocomplete]=\"autocomplete() ? (autocomplete() === 'off' ? 'off' : 'tel-country-code') : null\"\n\t\t>\n\t\t\t<ng-container *luOption=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img class=\"phoneNumber-option-flag\" src=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\" alt=\"\" />{{\n\t\t\t\t\tprefixOption.name\n\t\t\t\t}}\n\t\t\t\t(+{{ prefixOption.prefix }})\n\t\t\t</ng-container>\n\t\t\t<ng-container *luDisplayer=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img\n\t\t\t\t\tsrc=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\"\n\t\t\t\t\talt=\"{{ prefixOption.country }} +{{ prefixOption.prefix }}\"\n\t\t\t\t\tclass=\"phoneNumber-countryCode-flag\"\n\t\t\t\t/>\n\t\t\t</ng-container>\n\t\t</lu-simple-select>\n\t</label>\n\t<label for=\"phoneNumberFieldsetTextfieldInput\" class=\"pr-u-mask\">Number</label>\n\t<div class=\"textField phoneNumber-fieldset-textfield\">\n\t\t<div class=\"textField-input\">\n\t\t\t<input\n\t\t\t\ttype=\"text\"\n\t\t\t\tid=\"phoneNumberFieldsetTextfieldInput\"\n\t\t\t\t[ngModel]=\"displayedNumber()\"\n\t\t\t\t(ngModelChange)=\"updateNumber($event)\"\n\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t\t(blur)=\"touched(); formatNationalNumber()\"\n\t\t\t\tluInput\n\t\t\t\tluInputStandalone\n\t\t\t\tclass=\"textField-input-value\"\n\t\t\t\t[attr.autocomplete]=\"autocomplete() ? (autocomplete() === 'off' ? 'off' : 'tel-national') : null\"\n\t\t\t\t[placeholder]=\"placeholder()\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</fieldset>\n\n<ng-container *luPresentationDisplayDefault>\n\t@if (currentValue()) {\n\t\t<a class=\"presentation-definition-link\" href=\"tel:{{ currentValue() }}\">{{ currentValue() }}</a>\n\t} @else {\n\t\t<span aria-hidden=\"true\" data-content-before=\"\u2013\"></span>\n\t}\n</ng-container>\n", styles: ["@layer components{.phoneNumber-fieldset{border:0;padding:0;gap:var(--pr-t-spacings-100);inline-size:17.5rem;display:flex}.phoneNumber-fieldset-select .simpleSelect-field-input{inline-size:21px}.phoneNumber-fieldset-textfield{flex-grow:1}.phoneNumber-option-flag{vertical-align:top;margin-block-start:var(--pr-t-spacings-50);margin-inline-end:var(--pr-t-spacings-100)}.phoneNumber-countryCode-flag{display:block}}\n"], dependencies: [{ kind: "component", type: LuSimpleSelectInputComponent, selector: "lu-simple-select", inputs: ["intl", "autocomplete", "impersonation"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: LuDisplayerDirective, selector: "[luDisplayer]", inputs: ["luDisplayerSelect"] }, { kind: "directive", type: LuOptionDirective, selector: "[luOption]", inputs: ["luOptionSelect"] }, { kind: "directive", type: InputDirective, selector: "[luInput]", inputs: ["luInputStandalone", "luInputLabelledBy", "luInputDescribedBy"] }, { kind: "directive", type: _PresentationDisplayDefaultDirective, selector: "[luPresentationDisplayDefault]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
238
238
  }
239
239
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PhoneNumberInputComponent, decorators: [{
240
240
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-forms-phone-number-input.mjs","sources":["../../../packages/ng/forms/phone-number-input/formatter.ts","../../../packages/ng/forms/phone-number-input/phone-number-format.pipe.ts","../../../packages/ng/forms/phone-number-input/phone-number-input.type.ts","../../../packages/ng/forms/phone-number-input/validators.ts","../../../packages/ng/forms/phone-number-input/phone-number-input.component.ts","../../../packages/ng/forms/phone-number-input/phone-number-input.component.html","../../../packages/ng/forms/phone-number-input/lucca-front-ng-forms-phone-number-input.ts"],"sourcesContent":["import { E164Number, NumberFormat } from './types';\nimport { parsePhoneNumber } from 'libphonenumber-js';\n\nexport class PhoneNumberFormatter {\n\tstatic format(phoneNumber: E164Number, format: NumberFormat = 'NATIONAL'): string {\n\t\treturn parsePhoneNumber(phoneNumber).format(format);\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PhoneNumberFormatter } from './formatter';\nimport { E164Number, NumberFormat } from './types';\n\n@Pipe({\n\tname: 'luPhoneNumberFormat',\n})\nexport class PhoneNumberFormatPipe implements PipeTransform {\n\ttransform(value: E164Number, format: NumberFormat = 'NATIONAL'): unknown {\n\t\treturn PhoneNumberFormatter.format(value, format);\n\t}\n}\n","/**\n * Available PhoneNumberInputComponent Autocomplete values\n */\n\nexport const PHONE_NUMBER_INPUT_AUTOCOMPLETE = ['off', 'tel'] as const;\nexport type PhoneNumberInputAutocomplete = (typeof PHONE_NUMBER_INPUT_AUTOCOMPLETE)[number];\n","import { AbstractControl } from '@angular/forms';\nimport { validatePhoneNumberLength, isValidPhoneNumber, CountryCode } from 'libphonenumber-js';\n\nexport class PhoneNumberValidators {\n\tstatic validPhoneNumber(control: AbstractControl<string>, countryCode?: CountryCode) {\n\t\tif (control.value) {\n\t\t\tconst reason = validatePhoneNumberLength(control.value, countryCode);\n\t\t\tif (reason) {\n\t\t\t\treturn { validPhoneNumber: reason };\n\t\t\t}\n\t\t\tif (!isValidPhoneNumber(control.value, countryCode)) {\n\t\t\t\treturn { validPhoneNumber: 'INVALID' };\n\t\t\t}\n\t\t}\n\t\t// Else, everything is fine !\n\t\treturn null;\n\t}\n}\n","import { ChangeDetectionStrategy, Component, computed, forwardRef, inject, input, LOCALE_ID, output, signal, ViewEncapsulation } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { luBooleanAttribute } from '@lucca-front/ng/core';\nimport { LuDisplayerDirective, LuOptionDirective } from '@lucca-front/ng/core-select';\nimport { InputDirective, ɵPresentationDisplayDefaultDirective } from '@lucca-front/ng/form-field';\nimport { LuSimpleSelectInputComponent } from '@lucca-front/ng/simple-select';\nimport { type CountryCallingCode, formatIncompletePhoneNumber, getCountries, getCountryCallingCode, getExampleNumber, parsePhoneNumber } from 'libphonenumber-js';\nimport examples from 'libphonenumber-js/mobile/examples';\nimport { PhoneNumberInputAutocomplete } from './phone-number-input.type';\nimport { CountryCode } from './types';\nimport { PhoneNumberValidators } from './validators';\n\ninterface PrefixEntry {\n\tcountry: CountryCode;\n\tprefix: CountryCallingCode;\n\tname: string;\n}\n\ntype ParsePhoneNumberResult = {\n\tnumber: string;\n\tcountry?: CountryCode;\n\tnationalNumber?: string;\n\tisValid: boolean;\n};\n\nfunction tryParsePhoneNumber(phoneNumber: string, countryCode?: CountryCode): ParsePhoneNumberResult {\n\ttry {\n\t\tconst parsedNumber = parsePhoneNumber(phoneNumber, countryCode);\n\t\treturn {\n\t\t\tcountry: parsedNumber.country,\n\t\t\tnumber: parsedNumber.number,\n\t\t\tnationalNumber: parsedNumber.formatNational(),\n\t\t\tisValid: parsedNumber.isValid(),\n\t\t};\n\t} catch {\n\t\treturn {\n\t\t\tnumber: phoneNumber,\n\t\t\tnationalNumber: phoneNumber,\n\t\t\tisValid: false,\n\t\t};\n\t}\n}\n\n@Component({\n\tselector: 'lu-phone-number-input',\n\timports: [LuSimpleSelectInputComponent, FormsModule, LuDisplayerDirective, LuOptionDirective, InputDirective, ɵPresentationDisplayDefaultDirective],\n\ttemplateUrl: './phone-number-input.component.html',\n\tstyleUrl: './phone-number-input.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => PhoneNumberInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: NG_VALIDATORS,\n\t\t\tuseExisting: forwardRef(() => PhoneNumberInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class PhoneNumberInputComponent implements ControlValueAccessor, Validator {\n\t#locale = inject(LOCALE_ID);\n\n\treadonly label = input<string>();\n\n\treadonly autocomplete = input<PhoneNumberInputAutocomplete>();\n\n\t/**\n\t * Which countries should be shown? Defaults to empty array which means all of them.\n\t *\n\t * You can use CountryCode to make sure it's properly typed on your end, string is also accepted\n\t */\n\treadonly allowedCountries = input<ReadonlyArray<CountryCode | string>>([]);\n\n\treadonly noAutoPlaceholder = input(false, { transform: luBooleanAttribute });\n\n\treadonly defaultCountryCode = input<CountryCode>(undefined, { alias: 'country' });\n\n\treadonly countryChange = output<CountryCode>();\n\n\treadonly currentValue = signal<string>('');\n\n\t#onChange?: (value: string) => void;\n\n\t#onTouched?: () => void;\n\n\tdisabled = false;\n\n\t#displayNames = new Intl.DisplayNames(this.#locale, { type: 'region' });\n\n\tprefixEntries = getCountries()\n\t\t.map((country) => ({\n\t\t\tcountry,\n\t\t\tprefix: getCountryCallingCode(country),\n\t\t\tname: this.#displayNames.of(country),\n\t\t}))\n\t\t.sort((a, b) => (a.name && b.name ? a.name.localeCompare(b.name) : 0));\n\n\treadonly #prefixEntries = computed(() => {\n\t\tconst whitelist = this.allowedCountries();\n\t\tif (whitelist.length === 0) {\n\t\t\treturn this.prefixEntries;\n\t\t}\n\t\treturn this.prefixEntries.filter((e) => whitelist.includes(e.country));\n\t});\n\n\treadonly query = signal('');\n\n\tprotected readonly prefixesDisplay = computed(() => {\n\t\tconst query = this.query();\n\t\tif (query === '') {\n\t\t\treturn this.#prefixEntries();\n\t\t}\n\t\treturn this.#prefixEntries().filter((entry) => {\n\t\t\treturn entry.country.toLowerCase().includes(query.toLowerCase()) || `+${entry.prefix}`.includes(query) || entry.name?.toLowerCase().includes(query.toLowerCase());\n\t\t});\n\t});\n\n\treadonly countryCodeSelected = signal<CountryCode | undefined>(undefined);\n\n\treadonly countryCode = computed(() => this.countryCodeSelected() ?? this.defaultCountryCode());\n\n\treadonly placeholder = computed(() => {\n\t\tconst countryCode = this.countryCode();\n\t\tconst exampleNumber = this.noAutoPlaceholder() === false && countryCode ? getExampleNumber(countryCode, examples) : undefined;\n\t\treturn exampleNumber?.formatNational() ?? '';\n\t});\n\n\treadonly displayedNumber = signal<string | undefined>(undefined);\n\n\treadonly prefixEntry = computed(() => this.#prefixEntries().find((p) => p.country === this.countryCode()));\n\n\tprotected getPrefixKey = (prefix: PrefixEntry) => prefix?.country;\n\n\tprotected prefixComparator = (a: PrefixEntry, b: PrefixEntry) => this.getPrefixKey(a) === this.getPrefixKey(b);\n\n\twriteValue(value: string): void {\n\t\ttry {\n\t\t\tif (value) {\n\t\t\t\tconst { country, number, nationalNumber } = tryParsePhoneNumber(value, this.countryCode());\n\t\t\t\tthis.displayedNumber.set(nationalNumber);\n\t\t\t\tthis.countryCodeSelected.set(country);\n\t\t\t\tif (value !== number) {\n\t\t\t\t\tthis.#onChange?.(number);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.displayedNumber.set(undefined);\n\t\t\t}\n\t\t} catch {\n\t\t\tthis.displayedNumber.set(value);\n\t\t}\n\t\tthis.currentValue.set(value);\n\t\tthis.formatNationalNumber();\n\t}\n\n\tregisterOnChange(fn: (value: string) => void): void {\n\t\tthis.#onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis.#onTouched = fn;\n\t}\n\n\tsetDisabledState?(isDisabled: boolean): void {\n\t\tthis.disabled = isDisabled;\n\t}\n\n\tupdatePrefix(prefixEntry: PrefixEntry) {\n\t\tthis.countryCodeSelected.set(prefixEntry.country);\n\t\tthis.countryChange.emit(prefixEntry.country);\n\t\tthis.touched();\n\t\tthis.updateModel();\n\t\tthis.formatNationalNumber();\n\t}\n\n\tupdateNumber(number: string) {\n\t\tthis.displayedNumber.set(number);\n\t\tthis.updateModel();\n\t}\n\n\tupdateModel(): void {\n\t\tconst displayedNumber = this.displayedNumber();\n\t\tconst countryCode = this.countryCode();\n\n\t\tif (!displayedNumber) {\n\t\t\t// the field has been emptied, the control has to be emptied too\n\t\t\tthis.#onChange?.('');\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst { country, number } = tryParsePhoneNumber(displayedNumber, countryCode);\n\t\t\tif (country && country !== countryCode) {\n\t\t\t\tthis.countryCodeSelected.set(country);\n\t\t\t\tthis.countryChange.emit(country);\n\t\t\t}\n\t\t\tthis.#onChange?.(number);\n\t\t} catch {\n\t\t\tthis.#onChange?.(displayedNumber);\n\t\t}\n\t}\n\n\ttouched(): void {\n\t\tthis.#onTouched?.();\n\t}\n\n\tformatNationalNumber(): void {\n\t\tconst countryCode = this.countryCode();\n\t\tconst displayedNumber = this.displayedNumber();\n\n\t\tif (displayedNumber) {\n\t\t\ttry {\n\t\t\t\tconst { isValid, nationalNumber } = tryParsePhoneNumber(displayedNumber, countryCode);\n\t\t\t\tif (isValid) {\n\t\t\t\t\tthis.displayedNumber.set(nationalNumber);\n\t\t\t\t} else if (countryCode) {\n\t\t\t\t\tthis.displayedNumber.set(formatIncompletePhoneNumber(displayedNumber, countryCode));\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t// do nothing\n\t\t\t}\n\t\t}\n\t}\n\n\tvalidate(control: AbstractControl<string, string>): ValidationErrors | null {\n\t\treturn PhoneNumberValidators.validPhoneNumber(control, this.countryCode());\n\t}\n}\n","<fieldset [disabled]=\"disabled\" class=\"phoneNumber-fieldset\">\n\t<legend>\n\t\t<span class=\"pr-u-mask\">{{ label() }}</span>\n\t</legend>\n\t<label>\n\t\t<span class=\"pr-u-mask\">Prefix</span>\n\t\t<lu-simple-select\n\t\t\tignorePresentation\n\t\t\t[options]=\"prefixesDisplay()\"\n\t\t\t[ngModel]=\"prefixEntry()\"\n\t\t\t(ngModelChange)=\"updatePrefix($event)\"\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t[optionKey]=\"getPrefixKey\"\n\t\t\t[optionComparer]=\"prefixComparator\"\n\t\t\t(clueChange)=\"query.set($event)\"\n\t\t\tnoClueIcon\n\t\t\t#selectRef\n\t\t\tclass=\"phoneNumber-fieldset-select\"\n\t\t\t[autocomplete]=\"autocomplete() ? (autocomplete() === 'off' ? 'off' : 'tel-country-code') : null\"\n\t\t>\n\t\t\t<ng-container *luOption=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img class=\"phoneNumber-option-flag\" src=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\" alt=\"\" />{{\n\t\t\t\t\tprefixOption.name\n\t\t\t\t}}\n\t\t\t\t(+{{ prefixOption.prefix }})\n\t\t\t</ng-container>\n\t\t\t<ng-container *luDisplayer=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img\n\t\t\t\t\tsrc=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\"\n\t\t\t\t\talt=\"{{ prefixOption.country }} +{{ prefixOption.prefix }}\"\n\t\t\t\t\tclass=\"phoneNumber-countryCode-flag\"\n\t\t\t\t/>\n\t\t\t</ng-container>\n\t\t</lu-simple-select>\n\t</label>\n\t<label for=\"phoneNumberFieldsetTextfieldInput\" class=\"pr-u-mask\">Number</label>\n\t<div class=\"textField phoneNumber-fieldset-textfield\">\n\t\t<div class=\"textField-input\">\n\t\t\t<input\n\t\t\t\ttype=\"text\"\n\t\t\t\tid=\"phoneNumberFieldsetTextfieldInput\"\n\t\t\t\t[ngModel]=\"displayedNumber()\"\n\t\t\t\t(ngModelChange)=\"updateNumber($event)\"\n\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t\t(blur)=\"touched(); formatNationalNumber()\"\n\t\t\t\tluInput\n\t\t\t\tluInputStandalone\n\t\t\t\tclass=\"textField-input-value\"\n\t\t\t\t[attr.autocomplete]=\"autocomplete() ? (autocomplete() === 'off' ? 'off' : 'tel-national') : null\"\n\t\t\t\t[placeholder]=\"placeholder()\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</fieldset>\n\n<ng-container *luPresentationDisplayDefault>\n\t@if (currentValue()) {\n\t\t<a class=\"presentation-definition-link\" href=\"tel:{{ currentValue() }}\">{{ currentValue() }}</a>\n\t} @else {\n\t\t<span aria-hidden=\"true\" data-content-before=\"–\"></span>\n\t}\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵPresentationDisplayDefaultDirective"],"mappings":";;;;;;;;;;;MAGa,oBAAoB,CAAA;AAChC,IAAA,OAAO,MAAM,CAAC,WAAuB,EAAE,SAAuB,UAAU,EAAA;QACvE,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IACpD;AACA;;MCAY,qBAAqB,CAAA;AACjC,IAAA,SAAS,CAAC,KAAiB,EAAE,MAAA,GAAuB,UAAU,EAAA;QAC7D,OAAO,oBAAoB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;IAClD;8GAHY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,CAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,IAAI,EAAE,qBAAqB;AAC3B,iBAAA;;;ACND;;AAEG;MAEU,+BAA+B,GAAG,CAAC,KAAK,EAAE,KAAK;;MCD/C,qBAAqB,CAAA;AACjC,IAAA,OAAO,gBAAgB,CAAC,OAAgC,EAAE,WAAyB,EAAA;AAClF,QAAA,IAAI,OAAO,CAAC,KAAK,EAAE;YAClB,MAAM,MAAM,GAAG,yBAAyB,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC;YACpE,IAAI,MAAM,EAAE;AACX,gBAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE;YACpC;YACA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE;AACpD,gBAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE;YACvC;QACD;;AAEA,QAAA,OAAO,IAAI;IACZ;AACA;;ACQD,SAAS,mBAAmB,CAAC,WAAmB,EAAE,WAAyB,EAAA;AAC1E,IAAA,IAAI;QACH,MAAM,YAAY,GAAG,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC;QAC/D,OAAO;YACN,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,MAAM,EAAE,YAAY,CAAC,MAAM;AAC3B,YAAA,cAAc,EAAE,YAAY,CAAC,cAAc,EAAE;AAC7C,YAAA,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE;SAC/B;IACF;AAAE,IAAA,MAAM;QACP,OAAO;AACN,YAAA,MAAM,EAAE,WAAW;AACnB,YAAA,cAAc,EAAE,WAAW;AAC3B,YAAA,OAAO,EAAE,KAAK;SACd;IACF;AACD;MAsBa,yBAAyB,CAAA;AApBtC,IAAA,WAAA,GAAA;AAqBC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;AAElB,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK;6FAAU;AAEvB,QAAA,IAAA,CAAA,YAAY,GAAG,KAAK;oGAAgC;AAE7D;;;;AAIG;QACM,IAAA,CAAA,gBAAgB,GAAG,KAAK,CAAsC,EAAE;6FAAC;QAEjE,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAC,KAAK,yFAAI,SAAS,EAAE,kBAAkB,EAAA,CAAG;QAEnE,IAAA,CAAA,kBAAkB,GAAG,KAAK,CAAc,SAAS,0FAAI,KAAK,EAAE,SAAS,EAAA,CAAG;QAExE,IAAA,CAAA,aAAa,GAAG,MAAM,EAAe;QAErC,IAAA,CAAA,YAAY,GAAG,MAAM,CAAS,EAAE;yFAAC;QAM1C,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEhB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QAEvE,IAAA,CAAA,aAAa,GAAG,YAAY;AAC1B,aAAA,GAAG,CAAC,CAAC,OAAO,MAAM;YAClB,OAAO;AACP,YAAA,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC;YACtC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC;AACpC,SAAA,CAAC;AACD,aAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE9D,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAC,MAAK;AACvC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE;AACzC,YAAA,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC3B,OAAO,IAAI,CAAC,aAAa;YAC1B;YACA,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACvE,CAAC;2FAAC;QAEO,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,EAAE;kFAAC;AAER,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAC,MAAK;AAClD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE;AAC1B,YAAA,IAAI,KAAK,KAAK,EAAE,EAAE;AACjB,gBAAA,OAAO,IAAI,CAAC,cAAc,EAAE;YAC7B;YACA,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,KAAI;AAC7C,gBAAA,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,CAAA,CAAA,EAAI,KAAK,CAAC,MAAM,CAAA,CAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AAClK,YAAA,CAAC,CAAC;QACH,CAAC;4FAAC;QAEO,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAA0B,SAAS;gGAAC;AAEhE,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,IAAI,IAAI,CAAC,kBAAkB,EAAE;wFAAC;AAErF,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;AACpC,YAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;YACtC,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,KAAK,IAAI,WAAW,GAAG,gBAAgB,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG,SAAS;AAC7H,YAAA,OAAO,aAAa,EAAE,cAAc,EAAE,IAAI,EAAE;QAC7C,CAAC;wFAAC;QAEO,IAAA,CAAA,eAAe,GAAG,MAAM,CAAqB,SAAS;4FAAC;QAEvD,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC;wFAAC;QAEhG,IAAA,CAAA,YAAY,GAAG,CAAC,MAAmB,KAAK,MAAM,EAAE,OAAO;QAEvD,IAAA,CAAA,gBAAgB,GAAG,CAAC,CAAc,EAAE,CAAc,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AA6F9G,IAAA;AAtKA,IAAA,OAAO;AAqBP,IAAA,SAAS;AAET,IAAA,UAAU;AAIV,IAAA,aAAa;AAUJ,IAAA,cAAc;AAsCvB,IAAA,UAAU,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI;YACH,IAAI,KAAK,EAAE;AACV,gBAAA,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;AAC1F,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC;AACxC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC;AACrC,gBAAA,IAAI,KAAK,KAAK,MAAM,EAAE;AACrB,oBAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;gBACzB;YACD;iBAAO;AACN,gBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC;YACpC;QACD;AAAE,QAAA,MAAM;AACP,YAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;QAChC;AACA,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,oBAAoB,EAAE;IAC5B;AAEA,IAAA,gBAAgB,CAAC,EAA2B,EAAA;AAC3C,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;IACrB;AAEA,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACpC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;IAC3B;AAEA,IAAA,YAAY,CAAC,WAAwB,EAAA;QACpC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE;QACd,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,oBAAoB,EAAE;IAC5B;AAEA,IAAA,YAAY,CAAC,MAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,WAAW,EAAE;IACnB;IAEA,WAAW,GAAA;AACV,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;AAC9C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;QAEtC,IAAI,CAAC,eAAe,EAAE;;AAErB,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB;QACD;AAEA,QAAA,IAAI;AACH,YAAA,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAAC,eAAe,EAAE,WAAW,CAAC;AAC7E,YAAA,IAAI,OAAO,IAAI,OAAO,KAAK,WAAW,EAAE;AACvC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC;AACrC,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;YACjC;AACA,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QACzB;AAAE,QAAA,MAAM;AACP,YAAA,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC;QAClC;IACD;IAEA,OAAO,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,IAAI;IACpB;IAEA,oBAAoB,GAAA;AACnB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;AACtC,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE;QAE9C,IAAI,eAAe,EAAE;AACpB,YAAA,IAAI;AACH,gBAAA,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,mBAAmB,CAAC,eAAe,EAAE,WAAW,CAAC;gBACrF,IAAI,OAAO,EAAE;AACZ,oBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC;gBACzC;qBAAO,IAAI,WAAW,EAAE;AACvB,oBAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,2BAA2B,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;gBACpF;YACD;AAAE,YAAA,MAAM;;YAER;QACD;IACD;AAEA,IAAA,QAAQ,CAAC,OAAwC,EAAA;QAChD,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IAC3E;8GAtKY,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,SAAA,EAb1B;AACV,YAAA;AACC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAyB,CAAC;AACxD,gBAAA,KAAK,EAAE,IAAI;AACX,aAAA;AACD,YAAA;AACC,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,yBAAyB,CAAC;AACxD,gBAAA,KAAK,EAAE,IAAI;AACX,aAAA;AACD,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7DF,25EA8DA,EAAA,MAAA,EAAA,CAAA,gaAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDjBW,4BAA4B,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,wSAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAEA,oCAAoC,EAAA,QAAA,EAAA,gCAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;2FAkBtI,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBApBrC,SAAS;+BACC,uBAAuB,EAAA,OAAA,EACxB,CAAC,4BAA4B,EAAE,WAAW,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,cAAc,EAAEA,oCAAoC,CAAC,iBAGpI,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,+BAA+B,CAAC;AACxD,4BAAA,KAAK,EAAE,IAAI;AACX,yBAAA;AACD,wBAAA;AACC,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAE,UAAU,CAAC,+BAA+B,CAAC;AACxD,4BAAA,KAAK,EAAE,IAAI;AACX,yBAAA;AACD,qBAAA,EAAA,QAAA,EAAA,25EAAA,EAAA,MAAA,EAAA,CAAA,gaAAA,CAAA,EAAA;;;AE7DF;;AAEG;;"}
1
+ {"version":3,"file":"lucca-front-ng-forms-phone-number-input.mjs","sources":["../../../packages/ng/forms/phone-number-input/formatter.ts","../../../packages/ng/forms/phone-number-input/phone-number-format.pipe.ts","../../../packages/ng/forms/phone-number-input/phone-number-input.type.ts","../../../packages/ng/forms/phone-number-input/validators.ts","../../../packages/ng/forms/phone-number-input/phone-number-input.component.ts","../../../packages/ng/forms/phone-number-input/phone-number-input.component.html","../../../packages/ng/forms/phone-number-input/lucca-front-ng-forms-phone-number-input.ts"],"sourcesContent":["import { E164Number, NumberFormat } from './types';\nimport { parsePhoneNumber } from 'libphonenumber-js';\n\nexport class PhoneNumberFormatter {\n\tstatic format(phoneNumber: E164Number, format: NumberFormat = 'NATIONAL'): string {\n\t\treturn parsePhoneNumber(phoneNumber).format(format);\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { PhoneNumberFormatter } from './formatter';\nimport { E164Number, NumberFormat } from './types';\n\n@Pipe({\n\tname: 'luPhoneNumberFormat',\n})\nexport class PhoneNumberFormatPipe implements PipeTransform {\n\ttransform(value: E164Number, format: NumberFormat = 'NATIONAL'): unknown {\n\t\treturn PhoneNumberFormatter.format(value, format);\n\t}\n}\n","/**\n * Available PhoneNumberInputComponent Autocomplete values\n */\n\nexport const PHONE_NUMBER_INPUT_AUTOCOMPLETE = ['off', 'tel'] as const;\nexport type PhoneNumberInputAutocomplete = (typeof PHONE_NUMBER_INPUT_AUTOCOMPLETE)[number];\n","import { AbstractControl } from '@angular/forms';\nimport { validatePhoneNumberLength, isValidPhoneNumber, CountryCode } from 'libphonenumber-js';\n\nexport class PhoneNumberValidators {\n\tstatic validPhoneNumber(control: AbstractControl<string>, countryCode?: CountryCode) {\n\t\tif (control.value) {\n\t\t\tconst reason = validatePhoneNumberLength(control.value, countryCode);\n\t\t\tif (reason) {\n\t\t\t\treturn { validPhoneNumber: reason };\n\t\t\t}\n\t\t\tif (!isValidPhoneNumber(control.value, countryCode)) {\n\t\t\t\treturn { validPhoneNumber: 'INVALID' };\n\t\t\t}\n\t\t}\n\t\t// Else, everything is fine !\n\t\treturn null;\n\t}\n}\n","import { ChangeDetectionStrategy, Component, computed, forwardRef, inject, input, LOCALE_ID, output, signal, ViewEncapsulation } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { luBooleanAttribute } from '@lucca-front/ng/core';\nimport { LuDisplayerDirective, LuOptionDirective } from '@lucca-front/ng/core-select';\nimport { InputDirective, ɵPresentationDisplayDefaultDirective } from '@lucca-front/ng/form-field';\nimport { LuSimpleSelectInputComponent } from '@lucca-front/ng/simple-select';\nimport { type CountryCallingCode, formatIncompletePhoneNumber, getCountries, getCountryCallingCode, getExampleNumber, parsePhoneNumber } from 'libphonenumber-js';\nimport examples from 'libphonenumber-js/mobile/examples';\nimport { PhoneNumberInputAutocomplete } from './phone-number-input.type';\nimport { CountryCode } from './types';\nimport { PhoneNumberValidators } from './validators';\n\ninterface PrefixEntry {\n\tcountry: CountryCode;\n\tprefix: CountryCallingCode;\n\tname: string;\n}\n\ntype ParsePhoneNumberResult = {\n\tnumber: string;\n\tcountry?: CountryCode;\n\tnationalNumber?: string;\n\tisValid: boolean;\n};\n\nfunction tryParsePhoneNumber(phoneNumber: string, countryCode?: CountryCode): ParsePhoneNumberResult {\n\ttry {\n\t\tconst parsedNumber = parsePhoneNumber(phoneNumber, countryCode);\n\t\treturn {\n\t\t\tcountry: parsedNumber.country,\n\t\t\tnumber: parsedNumber.number,\n\t\t\tnationalNumber: parsedNumber.formatNational(),\n\t\t\tisValid: parsedNumber.isValid(),\n\t\t};\n\t} catch {\n\t\treturn {\n\t\t\tnumber: phoneNumber,\n\t\t\tnationalNumber: phoneNumber,\n\t\t\tisValid: false,\n\t\t};\n\t}\n}\n\n@Component({\n\tselector: 'lu-phone-number-input',\n\timports: [LuSimpleSelectInputComponent, FormsModule, LuDisplayerDirective, LuOptionDirective, InputDirective, ɵPresentationDisplayDefaultDirective],\n\ttemplateUrl: './phone-number-input.component.html',\n\tstyleUrl: './phone-number-input.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => PhoneNumberInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: NG_VALIDATORS,\n\t\t\tuseExisting: forwardRef(() => PhoneNumberInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class PhoneNumberInputComponent implements ControlValueAccessor, Validator {\n\t#locale = inject(LOCALE_ID);\n\n\treadonly label = input<string>();\n\n\treadonly autocomplete = input<PhoneNumberInputAutocomplete>();\n\n\t/**\n\t * Which countries should be shown? Defaults to empty array which means all of them.\n\t *\n\t * You can use CountryCode to make sure it's properly typed on your end, string is also accepted\n\t */\n\treadonly allowedCountries = input<ReadonlyArray<CountryCode | string>>([]);\n\n\treadonly noAutoPlaceholder = input(false, { transform: luBooleanAttribute });\n\n\treadonly defaultCountryCode = input<CountryCode>(undefined, { alias: 'country' });\n\n\treadonly countryChange = output<CountryCode>();\n\n\treadonly currentValue = signal<string>('');\n\n\t#onChange?: (value: string) => void;\n\n\t#onTouched?: () => void;\n\n\tdisabled = false;\n\n\t#displayNames = new Intl.DisplayNames(this.#locale, { type: 'region' });\n\n\tprefixEntries = getCountries()\n\t\t.map((country) => ({\n\t\t\tcountry,\n\t\t\tprefix: getCountryCallingCode(country),\n\t\t\tname: this.#displayNames.of(country),\n\t\t}))\n\t\t.sort((a, b) => (a.name && b.name ? a.name.localeCompare(b.name) : 0));\n\n\treadonly #prefixEntries = computed(() => {\n\t\tconst whitelist = this.allowedCountries();\n\t\tif (whitelist.length === 0) {\n\t\t\treturn this.prefixEntries;\n\t\t}\n\t\treturn this.prefixEntries.filter((e) => whitelist.includes(e.country));\n\t});\n\n\treadonly query = signal('');\n\n\tprotected readonly prefixesDisplay = computed(() => {\n\t\tconst query = this.query();\n\t\tif (query === '') {\n\t\t\treturn this.#prefixEntries();\n\t\t}\n\t\treturn this.#prefixEntries().filter((entry) => {\n\t\t\treturn entry.country.toLowerCase().includes(query.toLowerCase()) || `+${entry.prefix}`.includes(query) || entry.name?.toLowerCase().includes(query.toLowerCase());\n\t\t});\n\t});\n\n\treadonly countryCodeSelected = signal<CountryCode | undefined>(undefined);\n\n\treadonly countryCode = computed(() => this.countryCodeSelected() ?? this.defaultCountryCode());\n\n\treadonly placeholder = computed(() => {\n\t\tconst countryCode = this.countryCode();\n\t\tconst exampleNumber = this.noAutoPlaceholder() === false && countryCode ? getExampleNumber(countryCode, examples) : undefined;\n\t\treturn exampleNumber?.formatNational() ?? '';\n\t});\n\n\treadonly displayedNumber = signal<string | undefined>(undefined);\n\n\treadonly prefixEntry = computed(() => this.#prefixEntries().find((p) => p.country === this.countryCode()));\n\n\tprotected getPrefixKey = (prefix: PrefixEntry) => prefix?.country;\n\n\tprotected prefixComparator = (a: PrefixEntry, b: PrefixEntry) => this.getPrefixKey(a) === this.getPrefixKey(b);\n\n\twriteValue(value: string): void {\n\t\ttry {\n\t\t\tif (value) {\n\t\t\t\tconst { country, number, nationalNumber } = tryParsePhoneNumber(value, this.countryCode());\n\t\t\t\tthis.displayedNumber.set(nationalNumber);\n\t\t\t\tthis.countryCodeSelected.set(country);\n\t\t\t\tif (value !== number) {\n\t\t\t\t\tthis.#onChange?.(number);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.displayedNumber.set(undefined);\n\t\t\t}\n\t\t} catch {\n\t\t\tthis.displayedNumber.set(value);\n\t\t}\n\t\tthis.currentValue.set(value);\n\t\tthis.formatNationalNumber();\n\t}\n\n\tregisterOnChange(fn: (value: string) => void): void {\n\t\tthis.#onChange = fn;\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis.#onTouched = fn;\n\t}\n\n\tsetDisabledState?(isDisabled: boolean): void {\n\t\tthis.disabled = isDisabled;\n\t}\n\n\tupdatePrefix(prefixEntry: PrefixEntry) {\n\t\tthis.countryCodeSelected.set(prefixEntry.country);\n\t\tthis.countryChange.emit(prefixEntry.country);\n\t\tthis.touched();\n\t\tthis.updateModel();\n\t\tthis.formatNationalNumber();\n\t}\n\n\tupdateNumber(number: string) {\n\t\tthis.displayedNumber.set(number);\n\t\tthis.updateModel();\n\t}\n\n\tupdateModel(): void {\n\t\tconst displayedNumber = this.displayedNumber();\n\t\tconst countryCode = this.countryCode();\n\n\t\tif (!displayedNumber) {\n\t\t\t// the field has been emptied, the control has to be emptied too\n\t\t\tthis.#onChange?.('');\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst { country, number } = tryParsePhoneNumber(displayedNumber, countryCode);\n\t\t\tif (country && country !== countryCode) {\n\t\t\t\tthis.countryCodeSelected.set(country);\n\t\t\t\tthis.countryChange.emit(country);\n\t\t\t}\n\t\t\tthis.#onChange?.(number);\n\t\t} catch {\n\t\t\tthis.#onChange?.(displayedNumber);\n\t\t}\n\t}\n\n\ttouched(): void {\n\t\tthis.#onTouched?.();\n\t}\n\n\tformatNationalNumber(): void {\n\t\tconst countryCode = this.countryCode();\n\t\tconst displayedNumber = this.displayedNumber();\n\n\t\tif (displayedNumber) {\n\t\t\ttry {\n\t\t\t\tconst { isValid, nationalNumber } = tryParsePhoneNumber(displayedNumber, countryCode);\n\t\t\t\tif (isValid) {\n\t\t\t\t\tthis.displayedNumber.set(nationalNumber);\n\t\t\t\t} else if (countryCode) {\n\t\t\t\t\tthis.displayedNumber.set(formatIncompletePhoneNumber(displayedNumber, countryCode));\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t// do nothing\n\t\t\t}\n\t\t}\n\t}\n\n\tvalidate(control: AbstractControl<string, string>): ValidationErrors | null {\n\t\treturn PhoneNumberValidators.validPhoneNumber(control, this.countryCode());\n\t}\n}\n","<fieldset [disabled]=\"disabled\" class=\"phoneNumber-fieldset\">\n\t<legend>\n\t\t<span class=\"pr-u-mask\">{{ label() }}</span>\n\t</legend>\n\t<label>\n\t\t<span class=\"pr-u-mask\">Prefix</span>\n\t\t<lu-simple-select\n\t\t\tignorePresentation\n\t\t\t[options]=\"prefixesDisplay()\"\n\t\t\t[ngModel]=\"prefixEntry()\"\n\t\t\t(ngModelChange)=\"updatePrefix($event)\"\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t[optionKey]=\"getPrefixKey\"\n\t\t\t[optionComparer]=\"prefixComparator\"\n\t\t\t(clueChange)=\"query.set($event)\"\n\t\t\tnoClueIcon\n\t\t\t#selectRef\n\t\t\tclass=\"phoneNumber-fieldset-select\"\n\t\t\t[autocomplete]=\"autocomplete() ? (autocomplete() === 'off' ? 'off' : 'tel-country-code') : null\"\n\t\t>\n\t\t\t<ng-container *luOption=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img class=\"phoneNumber-option-flag\" src=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\" alt=\"\" />{{\n\t\t\t\t\tprefixOption.name\n\t\t\t\t}}\n\t\t\t\t(+{{ prefixOption.prefix }})\n\t\t\t</ng-container>\n\t\t\t<ng-container *luDisplayer=\"let prefixOption; select: selectRef\"\n\t\t\t\t><img\n\t\t\t\t\tsrc=\"https://cdn.lucca.fr/assets/misc/flags/{{ prefixOption.country }}.svg\"\n\t\t\t\t\talt=\"{{ prefixOption.country }} +{{ prefixOption.prefix }}\"\n\t\t\t\t\tclass=\"phoneNumber-countryCode-flag\"\n\t\t\t\t/>\n\t\t\t</ng-container>\n\t\t</lu-simple-select>\n\t</label>\n\t<label for=\"phoneNumberFieldsetTextfieldInput\" class=\"pr-u-mask\">Number</label>\n\t<div class=\"textField phoneNumber-fieldset-textfield\">\n\t\t<div class=\"textField-input\">\n\t\t\t<input\n\t\t\t\ttype=\"text\"\n\t\t\t\tid=\"phoneNumberFieldsetTextfieldInput\"\n\t\t\t\t[ngModel]=\"displayedNumber()\"\n\t\t\t\t(ngModelChange)=\"updateNumber($event)\"\n\t\t\t\t[ngModelOptions]=\"{ standalone: true }\"\n\t\t\t\t(blur)=\"touched(); formatNationalNumber()\"\n\t\t\t\tluInput\n\t\t\t\tluInputStandalone\n\t\t\t\tclass=\"textField-input-value\"\n\t\t\t\t[attr.autocomplete]=\"autocomplete() ? (autocomplete() === 'off' ? 'off' : 'tel-national') : null\"\n\t\t\t\t[placeholder]=\"placeholder()\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</fieldset>\n\n<ng-container *luPresentationDisplayDefault>\n\t@if (currentValue()) {\n\t\t<a class=\"presentation-definition-link\" href=\"tel:{{ currentValue() }}\">{{ currentValue() }}</a>\n\t} @else {\n\t\t<span aria-hidden=\"true\" data-content-before=\"–\"></span>\n\t}\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵPresentationDisplayDefaultDirective"],"mappings":"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"}