@lucca-front/ng 20.3.0-rc.3 → 20.3.0-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/fesm2022/lucca-front-ng-a11y.mjs +2 -2
  2. package/fesm2022/lucca-front-ng-a11y.mjs.map +1 -1
  3. package/fesm2022/lucca-front-ng-api.mjs +6 -6
  4. package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
  5. package/fesm2022/lucca-front-ng-app-layout.mjs +2 -2
  6. package/fesm2022/lucca-front-ng-app-layout.mjs.map +1 -1
  7. package/fesm2022/lucca-front-ng-box.mjs +2 -2
  8. package/fesm2022/lucca-front-ng-box.mjs.map +1 -1
  9. package/fesm2022/lucca-front-ng-breadcrumbs.mjs +2 -2
  10. package/fesm2022/lucca-front-ng-breadcrumbs.mjs.map +1 -1
  11. package/fesm2022/lucca-front-ng-button.mjs +2 -2
  12. package/fesm2022/lucca-front-ng-button.mjs.map +1 -1
  13. package/fesm2022/lucca-front-ng-callout.mjs +10 -10
  14. package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
  15. package/fesm2022/lucca-front-ng-chip.mjs +2 -2
  16. package/fesm2022/lucca-front-ng-chip.mjs.map +1 -1
  17. package/fesm2022/lucca-front-ng-comment.mjs +2 -2
  18. package/fesm2022/lucca-front-ng-comment.mjs.map +1 -1
  19. package/fesm2022/lucca-front-ng-core-select-user.mjs +2 -2
  20. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  21. package/fesm2022/lucca-front-ng-core-select.mjs +2 -2
  22. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  23. package/fesm2022/lucca-front-ng-date.mjs +4 -4
  24. package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-date2.mjs +6 -6
  26. package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
  27. package/fesm2022/lucca-front-ng-department.mjs +2 -2
  28. package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
  29. package/fesm2022/lucca-front-ng-dialog.mjs +5 -5
  30. package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
  31. package/fesm2022/lucca-front-ng-divider.mjs +2 -2
  32. package/fesm2022/lucca-front-ng-divider.mjs.map +1 -1
  33. package/fesm2022/lucca-front-ng-dropdown.mjs +2 -2
  34. package/fesm2022/lucca-front-ng-dropdown.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-empty-state.mjs +4 -4
  36. package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
  37. package/fesm2022/lucca-front-ng-establishment.mjs +6 -6
  38. package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
  39. package/fesm2022/lucca-front-ng-fancy-box.mjs +2 -2
  40. package/fesm2022/lucca-front-ng-fancy-box.mjs.map +1 -1
  41. package/fesm2022/lucca-front-ng-file-upload.mjs +8 -8
  42. package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
  43. package/fesm2022/lucca-front-ng-filter-pills.mjs +4 -4
  44. package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
  45. package/fesm2022/lucca-front-ng-footer.mjs +2 -2
  46. package/fesm2022/lucca-front-ng-footer.mjs.map +1 -1
  47. package/fesm2022/lucca-front-ng-form-field.mjs +4 -4
  48. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  49. package/fesm2022/lucca-front-ng-formly.mjs +34 -34
  50. package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
  51. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +2 -2
  52. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
  53. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +5 -5
  54. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
  55. package/fesm2022/lucca-front-ng-forms.mjs +10 -10
  56. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  57. package/fesm2022/lucca-front-ng-grid.mjs +2 -2
  58. package/fesm2022/lucca-front-ng-grid.mjs.map +1 -1
  59. package/fesm2022/lucca-front-ng-highlight-data.mjs +2 -2
  60. package/fesm2022/lucca-front-ng-highlight-data.mjs.map +1 -1
  61. package/fesm2022/lucca-front-ng-horizontal-navigation.mjs +2 -2
  62. package/fesm2022/lucca-front-ng-horizontal-navigation.mjs.map +1 -1
  63. package/fesm2022/lucca-front-ng-icon.mjs +2 -2
  64. package/fesm2022/lucca-front-ng-icon.mjs.map +1 -1
  65. package/fesm2022/lucca-front-ng-inline-message.mjs +2 -2
  66. package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
  67. package/fesm2022/lucca-front-ng-input.mjs +2 -2
  68. package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
  69. package/fesm2022/lucca-front-ng-link.mjs +2 -2
  70. package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
  71. package/fesm2022/lucca-front-ng-listing.mjs +2 -2
  72. package/fesm2022/lucca-front-ng-listing.mjs.map +1 -1
  73. package/fesm2022/lucca-front-ng-loading.mjs +2 -2
  74. package/fesm2022/lucca-front-ng-loading.mjs.map +1 -1
  75. package/fesm2022/lucca-front-ng-main-layout.mjs +2 -2
  76. package/fesm2022/lucca-front-ng-main-layout.mjs.map +1 -1
  77. package/fesm2022/lucca-front-ng-mobile-push.mjs +2 -2
  78. package/fesm2022/lucca-front-ng-mobile-push.mjs.map +1 -1
  79. package/fesm2022/lucca-front-ng-modal.mjs +2 -2
  80. package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
  81. package/fesm2022/lucca-front-ng-multi-select.mjs +10 -10
  82. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  83. package/fesm2022/lucca-front-ng-new-badge.mjs +2 -2
  84. package/fesm2022/lucca-front-ng-new-badge.mjs.map +1 -1
  85. package/fesm2022/lucca-front-ng-numeric-badge.mjs +2 -2
  86. package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
  87. package/fesm2022/lucca-front-ng-option.mjs +14 -14
  88. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  89. package/fesm2022/lucca-front-ng-page-header.mjs +2 -2
  90. package/fesm2022/lucca-front-ng-page-header.mjs.map +1 -1
  91. package/fesm2022/lucca-front-ng-pagination.mjs +2 -2
  92. package/fesm2022/lucca-front-ng-pagination.mjs.map +1 -1
  93. package/fesm2022/lucca-front-ng-plg-push.mjs +2 -2
  94. package/fesm2022/lucca-front-ng-plg-push.mjs.map +1 -1
  95. package/fesm2022/lucca-front-ng-popover2.mjs +2 -2
  96. package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
  97. package/fesm2022/lucca-front-ng-read-more.mjs +2 -2
  98. package/fesm2022/lucca-front-ng-read-more.mjs.map +1 -1
  99. package/fesm2022/lucca-front-ng-scrollBox.mjs +2 -2
  100. package/fesm2022/lucca-front-ng-scrollBox.mjs.map +1 -1
  101. package/fesm2022/lucca-front-ng-segmentedControl.mjs +2 -2
  102. package/fesm2022/lucca-front-ng-segmentedControl.mjs.map +1 -1
  103. package/fesm2022/lucca-front-ng-segmentedControlTabs.mjs +2 -2
  104. package/fesm2022/lucca-front-ng-segmentedControlTabs.mjs.map +1 -1
  105. package/fesm2022/lucca-front-ng-select.mjs +2 -2
  106. package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
  107. package/fesm2022/lucca-front-ng-simple-select.mjs +4 -4
  108. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  109. package/fesm2022/lucca-front-ng-skeleton.mjs +12 -12
  110. package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
  111. package/fesm2022/lucca-front-ng-statusBadge.mjs +2 -2
  112. package/fesm2022/lucca-front-ng-statusBadge.mjs.map +1 -1
  113. package/fesm2022/lucca-front-ng-tag.mjs +2 -2
  114. package/fesm2022/lucca-front-ng-tag.mjs.map +1 -1
  115. package/fesm2022/lucca-front-ng-time.mjs +4 -4
  116. package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
  117. package/fesm2022/lucca-front-ng-tooltip.mjs +2 -2
  118. package/fesm2022/lucca-front-ng-tooltip.mjs.map +1 -1
  119. package/fesm2022/lucca-front-ng-tree-select.mjs +2 -2
  120. package/fesm2022/lucca-front-ng-tree-select.mjs.map +1 -1
  121. package/fesm2022/lucca-front-ng-user-popover.mjs +2 -2
  122. package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
  123. package/fesm2022/lucca-front-ng-user.mjs +8 -8
  124. package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
  125. package/formly/style/_components.scss +12 -16
  126. package/formly/style/main.scss +1 -0
  127. package/package.json +18 -18
  128. package/src/components/_calendar.scss +2 -4
  129. package/src/components/_dropdown.scss +0 -0
  130. package/src/components/_input.scss +36 -38
  131. package/src/components/_picker.scss +110 -112
  132. package/src/components/_popover.scss +30 -40
  133. package/src/components/_popup.scss +126 -134
  134. package/src/components/_sidepanel.scss +40 -50
  135. package/src/components/cdk/_dragDrop.scss +0 -1
  136. package/src/components/cdk/_global.scss +0 -1
  137. package/src/components/cdk/_misc.scss +0 -1
  138. package/src/components/cdk/_textarea.scss +0 -1
  139. package/src/definitions/option/_option-item.scss +125 -149
  140. package/src/definitions/option/_option-placeholder.scss +6 -8
  141. package/src/definitions/option/_option-searcher.scss +12 -14
  142. package/src/definitions/option/_option-selector.scss +6 -8
  143. package/src/definitions/select/_select-clearer.scss +8 -11
  144. package/src/definitions/select/_select-input.scss +185 -223
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-form-field.mjs","sources":["../../../packages/ng/form-field/form-field.token.ts","../../../packages/ng/form-field/translations.ts","../../../packages/ng/form-field/form-field.translate.ts","../../../packages/ng/form-field/framed-input/framed-input-token.ts","../../../packages/ng/form-field/form-field.component.ts","../../../packages/ng/form-field/form-field.component.html","../../../packages/ng/form-field/input.directive.ts","../../../packages/ng/form-field/framed-input/framed-input.component.ts","../../../packages/ng/form-field/framed-input/framed-input.component.html","../../../packages/ng/form-field/lucca-front-ng-form-field.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FormFieldComponent } from './form-field.component';\n\nexport const FORM_FIELD_INSTANCE = new InjectionToken<FormFieldComponent>('FORM_FIELD_INSTANCE');\n","export const Translations = {\n\ten: {\n\t\tcounter: 'Your message is {{current}} characters long. A maximum of {{max}} characters is allowed.',\n\t},\n\tde: {\n\t\tcounter: 'Ihr Beitrag ist {{current}} Zeichen lang. Maximal sind {{max}} Zeichen erlaubt.',\n\t},\n\tfr: {\n\t\tcounter: 'Votre publication fait {{current}} caractères de long. {{max}} caractères maximum sont autorisés.',\n\t},\n\tit: {\n\t\tcounter: 'La tua pubblicazione è lunga {{current}} caratteri. È consentito un numero di massimo {{max}} caratteri.',\n\t},\n\tnl: {\n\t\tcounter: 'Uw publicatie is {{current}} tekens lang. {{max}} tekens maximaal toegestaan.',\n\t},\n\t'nl-BE': {\n\t\tcounter: 'Uw publicatie is {{current}} tekens lang. {{max}} tekens maximaal toegestaan.',\n\t},\n\tes: {\n\t\tcounter: 'Su publicación tiene {{current}} caracteres. Se permite un máximo de {{max}} caracteres.',\n\t},\n\tpt: {\n\t\tcounter: '{{current}} {{max}} A sua publicação tem um comprimento de caracteres, sendo permitido um máximo de caracteres.',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_FORM_FIELD_TRANSLATIONS = new InjectionToken('LuFormFieldTranslations', {\n\tfactory: () => luFormFieldTranslations,\n});\n\nexport interface LuFormFieldTranslations {\n\tcounter: string;\n}\n\nexport const luFormFieldTranslations: LuTranslation<LuFormFieldTranslations> = Translations;\n","import { InjectionToken } from '@angular/core';\nimport { FramedInputComponent } from './framed-input.component';\n\nexport const FRAMED_INPUT_INSTANCE = new InjectionToken<FramedInputComponent>('FRAMED_INPUT_INSTANCE');\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n\tafterNextRender,\n\tbooleanAttribute,\n\tComponent,\n\tcomputed,\n\tcontentChildren,\n\tDoCheck,\n\teffect,\n\tforwardRef,\n\tinject,\n\tInjector,\n\tinput,\n\tmodel,\n\tnumberAttribute,\n\tOnDestroy,\n\tRenderer2,\n\tsignal,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl, NgControl, ReactiveFormsModule, RequiredValidator, Validators } from '@angular/forms';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { getIntl, IntlParamsPipe, LuClass, PortalContent, PortalDirective, ɵeffectWithDeps } from '@lucca-front/ng/core';\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 { FRAMED_INPUT_INSTANCE } from './framed-input/framed-input-token';\nimport { InputDirective } from './input.directive';\n\nlet nextId = 0;\n\ntype FormFieldWidth = 20 | 30 | 40 | 50 | 60;\n\n@Component({\n\tselector: 'lu-form-field',\n\tstandalone: true,\n\timports: [NgIf, NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent, IntlParamsPipe, PortalDirective],\n\ttemplateUrl: './form-field.component.html',\n\tstyleUrls: ['./form-field.component.scss'],\n\tproviders: [\n\t\tLuClass,\n\t\t{\n\t\t\tprovide: FORM_FIELD_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => FormFieldComponent),\n\t\t},\n\t],\n\thost: {\n\t\t'[class.inputFramed-header-field]': 'framed',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class FormFieldComponent implements OnDestroy, DoCheck {\n\tintl = getIntl(LU_FORM_FIELD_TRANSLATIONS);\n\n\t#luClass = inject(LuClass);\n\t#injector = inject(Injector);\n\t#renderer = inject(Renderer2);\n\n\tframed = inject(FRAMED_INPUT_INSTANCE, { optional: true }) !== null;\n\n\tformFieldChildren = contentChildren(FormFieldComponent, { descendants: true });\n\n\trequiredValidators = contentChildren(RequiredValidator, { descendants: true });\n\tngControls = contentChildren(NgControl, { descendants: true });\n\n\tignoredRequiredValidators = computed(() => new Set(this.formFieldChildren().flatMap((f) => f.requiredValidators())));\n\tignoredControls = computed(() => new Set(this.formFieldChildren().flatMap((f) => f.ngControls())));\n\n\townRequiredValidators = computed(() => this.requiredValidators().filter((c) => !this.ignoredRequiredValidators().has(c)));\n\townControls = computed(() => this.ngControls().filter((c) => !this.ignoredControls().has(c)));\n\n\t#hasInputRequired = signal(false);\n\tforceInputRequired = signal(false);\n\tisInputRequired = computed(() => this.forceInputRequired() || this.#hasInputRequired());\n\n\tlabel = input.required<PortalContent>();\n\n\t/**\n\t * Hide field label, while keeping it in DOM for screen readers\n\t */\n\thiddenLabel = input(false, { transform: booleanAttribute });\n\n\trolePresentationLabel = model(false);\n\n\tinline = input(false, { transform: booleanAttribute });\n\n\tstatusControl = input<AbstractControl | null>(null);\n\n\ttooltip = input<string | SafeHtml | null>(null);\n\n\ttag = input<string | null>(null);\n\n\tAI = input(false, { transform: booleanAttribute });\n\ticonAItooltip = input<string | null>(null);\n\ticonAIalt = input<string | null>(null);\n\n\twidth = input<FormFieldWidth, FormFieldWidth | `${FormFieldWidth}`>(null, {\n\t\ttransform: numberAttribute as (value: FormFieldWidth | `${FormFieldWidth}`) => FormFieldWidth,\n\t});\n\n\t#invalidStatus = signal(false);\n\tinvalidStatus = this.#invalidStatus.asReadonly();\n\n\tinvalid = input<boolean | null, boolean>(null, { transform: booleanAttribute });\n\n\tinlineMessage = input<PortalContent | null>(null);\n\n\t/**\n\t * Inline message for when the control is in error state\n\t */\n\terrorInlineMessage = 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\tinlineMessageState = input<InlineMessageState | null>(null);\n\n\tsize = input<FormFieldSize | null>(null);\n\n\t/**\n\t * Extra aria-describedby attribute\n\t */\n\textraDescribedBy = input<string>('');\n\n\tlayout = model<'default' | 'checkable' | 'fieldset'>('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\tcounter = input<number>(0);\n\n\tget contentLength(): number {\n\t\treturn (this.#inputs[0]?.host?.nativeElement as HTMLInputElement)?.value?.length || 0;\n\t}\n\n\tpublic addInput(input: InputDirective) {\n\t\tthis.#inputs.push(input);\n\t\t/* We have to put this in the next cycle to make sure it'll be applied properly\n\t\t * and that it won't trigger a change detection error\n\t\t */\n\t\tsetTimeout(() => {\n\t\t\tthis.prepareInput();\n\t\t});\n\t}\n\n\tpublic get inputs(): InputDirective[] {\n\t\treturn this.#inputs;\n\t}\n\n\tid = signal<string>('');\n\n\tready$ = new BehaviorSubject<boolean>(false);\n\n\tpublic get ready(): boolean {\n\t\treturn this.ready$.value;\n\t}\n\n\t#ariaLabelledBy: string[] = [];\n\n\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'mod-checkable': this.layout() === 'checkable',\n\t\t\t\t'form-field': this.layout() !== 'fieldset',\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},\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\treturn hasRequiredNgModel || hasRequiredFormControl;\n\t}\n\n\t#hasInvalidStatus(): boolean {\n\t\tconst isInvalidOverride = this.invalid() !== undefined && this.invalid() !== null;\n\t\tif (isInvalidOverride) {\n\t\t\treturn this.invalid();\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 (layout() === \"fieldset\") {\n\t<fieldset class=\"form-fieldset\" [class.mod-inline]=\"inline()\" [class.mod-S]=\"size() === 'S'\">\n\t\t<legend class=\"formLabel\" [class.pr-u-mask]=\"hiddenLabel()\" attr.aria-hidden=\"{{ hiddenLabel() }}\">\n\t\t\t<ng-container *luPortal=\"label()\" /><!--\n\t--><sup class=\"formLabel-required\" aria-hidden=\"true\" *ngIf=\"isInputRequired()\">*</sup>\n\t\t\t@if (tooltip()) {\n\t\t\t\t<lu-icon\n\t\t\t\t\tclass=\"formLabel-info\"\n\t\t\t\t\ticon=\"signHelp\"\n\t\t\t\t\t[alt]=\"'?'\"\n\t\t\t\t\t[luTooltip]=\"tooltip()\"\n\t\t\t\t\t[color]=\"invalidStatus() ? 'error' : 'inherit'\"\n\t\t\t\t/>\n\t\t\t}\n\t\t\t@if (tag()) {\n\t\t\t\t<span class=\"tag formLabel-tag\">{{ tag() }}</span>\n\t\t\t}\n\t\t</legend>\n\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t@if (inlineMessage() || (invalidStatus() ? errorInlineMessage() : false)) {\n\t\t\t<lu-inline-message\n\t\t\t\tid=\"{{ id() }}-message\"\n\t\t\t\t[label]=\"invalidStatus() && errorInlineMessage() ? errorInlineMessage() : inlineMessage()\"\n\t\t\t\t[state]=\"invalidStatus() ? 'error' : inlineMessageState()\"\n\t\t\t/>\n\t\t}\n\t</fieldset>\n} @else {\n\t<label\n\t\tclass=\"formLabel\"\n\t\t[class.inputFramed-header-label]=\"framed\"\n\t\t[class.is-error]=\"invalidStatus()\"\n\t\t[class.mod-counter]=\"counter() > 0\"\n\t\tid=\"{{ id() }}-label\"\n\t\tfor=\"{{ id() }}\"\n\t\t[class.pr-u-mask]=\"hiddenLabel()\"\n\t\tattr.role=\"{{ rolePresentationLabel() ? 'presentation' : null }}\"\n\t>\n\t\t<ng-container *luPortal=\"label()\" /><!--\n\t--><sup class=\"formLabel-required\" aria-hidden=\"true\" *ngIf=\"isInputRequired()\">*</sup>\n\t\t@if (tooltip()) {\n\t\t\t<lu-icon class=\"formLabel-info\" icon=\"signHelp\" [alt]=\"'?'\" [luTooltip]=\"tooltip()\" [color]=\"invalidStatus() ? 'error' : 'inherit'\" />\n\t\t}\n\t\t@if (tag()) {\n\t\t\t<span class=\"formLabel-tag tag\">{{ tag() }}</span>\n\t\t}\n\t\t@if (counter() > 0) {\n\t\t\t<span class=\"formLabel-counter\" [class.pr-u-textError]=\"contentLength > counter()\" id=\"{{ id() }}-counter\" aria-live=\"polite\">\n\t\t\t\t<span aria-hidden=\"true\">{{ contentLength }}/{{ counter() }}</span>\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl.counter | intlParams: { current: contentLength, max: counter() } }}</span>\n\t\t\t</span>\n\t\t}\n\t</label>\n\t@if (AI()) {\n\t\t<div class=\"form-field-contentOptional\">\n\t\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t\t<lu-icon\n\t\t\t\tclass=\"pr-u-focusVisible pr-u-borderRadiusSmall\"\n\t\t\t\t[luTooltip]=\"iconAItooltip()\"\n\t\t\t\tsize=\"S\"\n\t\t\t\tAI\n\t\t\t\ticon=\"weatherStars\"\n\t\t\t\t[alt]=\"iconAIalt()\"\n\t\t\t/>\n\t\t</div>\n\t} @else {\n\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t}\n\t@if (inlineMessage() || (invalidStatus() ? errorInlineMessage() : false)) {\n\t\t<lu-inline-message\n\t\t\tid=\"{{ id() }}-message\"\n\t\t\t[label]=\"invalidStatus() && errorInlineMessage() ? errorInlineMessage() : inlineMessage()\"\n\t\t\t[state]=\"invalidStatus() ? 'error' : inlineMessageState()\"\n\t\t/>\n\t}\n}\n\n<ng-template #projectionTpl>\n\t<ng-content />\n</ng-template>\n","import { booleanAttribute, Directive, ElementRef, inject, Input, OnInit } from '@angular/core';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\n@Directive({\n\tselector: '[luInput]',\n\tstandalone: true,\n\thost: {\n\t\t// Used to autofocus in dialog boxes, do not change except if you know what you're doing\n\t\tclass: 'luNativeInput',\n\t},\n})\nexport class InputDirective implements OnInit {\n\tpublic readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tpublic readonly formFieldRef = inject(FORM_FIELD_INSTANCE, { optional: true });\n\n\t/**\n\t * Prevents message and label ids from being propagated, useful if the input holds its own message and label (like for radios)\n\t */\n\t@Input({ transform: booleanAttribute, alias: 'luInputStandalone' })\n\tstandalone = false;\n\n\tngOnInit(): void {\n\t\t// If the field is used as standalone, we won't have the ref provided so it'll crash\n\t\tif (this.formFieldRef) {\n\t\t\tthis.formFieldRef.addInput(this);\n\t\t}\n\t}\n}\n","import { booleanAttribute, Component, forwardRef, input, ViewEncapsulation } from '@angular/core';\nimport { PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { FRAMED_INPUT_INSTANCE } from './framed-input-token';\n\n@Component({\n\tselector: 'lu-framed-input',\n\tstandalone: true,\n\timports: [PortalDirective],\n\ttemplateUrl: './framed-input.component.html',\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\t{\n\t\t\tprovide: FRAMED_INPUT_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => FramedInputComponent),\n\t\t},\n\t],\n})\nexport class FramedInputComponent {\n\tframedPortal = input<PortalContent | null>(null);\n\tcenter = input(false, { transform: booleanAttribute });\n}\n","<div class=\"inputFramed\" [class.mod-center]=\"center()\">\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()) {\n\t\t<div class=\"inputFramed-content\"><ng-container *luPortal=\"framedPortal()\" /></div>\n\t}\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵeffectWithDeps"],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-form-field.mjs","sources":["../../../packages/ng/form-field/form-field.token.ts","../../../packages/ng/form-field/translations.ts","../../../packages/ng/form-field/form-field.translate.ts","../../../packages/ng/form-field/framed-input/framed-input-token.ts","../../../packages/ng/form-field/form-field.component.ts","../../../packages/ng/form-field/form-field.component.html","../../../packages/ng/form-field/input.directive.ts","../../../packages/ng/form-field/framed-input/framed-input.component.ts","../../../packages/ng/form-field/framed-input/framed-input.component.html","../../../packages/ng/form-field/lucca-front-ng-form-field.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FormFieldComponent } from './form-field.component';\n\nexport const FORM_FIELD_INSTANCE = new InjectionToken<FormFieldComponent>('FORM_FIELD_INSTANCE');\n","export const Translations = {\n\ten: {\n\t\tcounter: 'Your message is {{current}} characters long. A maximum of {{max}} characters is allowed.',\n\t},\n\tde: {\n\t\tcounter: 'Ihr Beitrag ist {{current}} Zeichen lang. Maximal sind {{max}} Zeichen erlaubt.',\n\t},\n\tfr: {\n\t\tcounter: 'Votre publication fait {{current}} caractères de long. {{max}} caractères maximum sont autorisés.',\n\t},\n\tit: {\n\t\tcounter: 'La tua pubblicazione è lunga {{current}} caratteri. È consentito un numero di massimo {{max}} caratteri.',\n\t},\n\tnl: {\n\t\tcounter: 'Uw publicatie is {{current}} tekens lang. {{max}} tekens maximaal toegestaan.',\n\t},\n\t'nl-BE': {\n\t\tcounter: 'Uw publicatie is {{current}} tekens lang. {{max}} tekens maximaal toegestaan.',\n\t},\n\tes: {\n\t\tcounter: 'Su publicación tiene {{current}} caracteres. Se permite un máximo de {{max}} caracteres.',\n\t},\n\tpt: {\n\t\tcounter: '{{current}} {{max}} A sua publicação tem um comprimento de caracteres, sendo permitido um máximo de caracteres.',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_FORM_FIELD_TRANSLATIONS = new InjectionToken('LuFormFieldTranslations', {\n\tfactory: () => luFormFieldTranslations,\n});\n\nexport interface LuFormFieldTranslations {\n\tcounter: string;\n}\n\nexport const luFormFieldTranslations: LuTranslation<LuFormFieldTranslations> = Translations;\n","import { InjectionToken } from '@angular/core';\nimport { FramedInputComponent } from './framed-input.component';\n\nexport const FRAMED_INPUT_INSTANCE = new InjectionToken<FramedInputComponent>('FRAMED_INPUT_INSTANCE');\n","import { NgIf, NgTemplateOutlet } from '@angular/common';\nimport {\n\tafterNextRender,\n\tbooleanAttribute,\n\tComponent,\n\tcomputed,\n\tcontentChildren,\n\tDoCheck,\n\teffect,\n\tforwardRef,\n\tinject,\n\tInjector,\n\tinput,\n\tmodel,\n\tnumberAttribute,\n\tOnDestroy,\n\tRenderer2,\n\tsignal,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl, NgControl, ReactiveFormsModule, RequiredValidator, Validators } from '@angular/forms';\nimport { SafeHtml } from '@angular/platform-browser';\nimport { getIntl, IntlParamsPipe, LuClass, PortalContent, PortalDirective, ɵeffectWithDeps } from '@lucca-front/ng/core';\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 { FRAMED_INPUT_INSTANCE } from './framed-input/framed-input-token';\nimport { InputDirective } from './input.directive';\n\nlet nextId = 0;\n\ntype FormFieldWidth = 20 | 30 | 40 | 50 | 60;\n\n@Component({\n\tselector: 'lu-form-field',\n\tstandalone: true,\n\timports: [NgIf, NgTemplateOutlet, InlineMessageComponent, LuTooltipModule, ReactiveFormsModule, IconComponent, IntlParamsPipe, PortalDirective],\n\ttemplateUrl: './form-field.component.html',\n\tstyleUrls: ['./form-field.component.scss'],\n\tproviders: [\n\t\tLuClass,\n\t\t{\n\t\t\tprovide: FORM_FIELD_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => FormFieldComponent),\n\t\t},\n\t],\n\thost: {\n\t\t'[class.inputFramed-header-field]': 'framed',\n\t},\n\tencapsulation: ViewEncapsulation.None,\n})\nexport class FormFieldComponent implements OnDestroy, DoCheck {\n\tintl = getIntl(LU_FORM_FIELD_TRANSLATIONS);\n\n\t#luClass = inject(LuClass);\n\t#injector = inject(Injector);\n\t#renderer = inject(Renderer2);\n\n\tframed = inject(FRAMED_INPUT_INSTANCE, { optional: true }) !== null;\n\n\tformFieldChildren = contentChildren(FormFieldComponent, { descendants: true });\n\n\trequiredValidators = contentChildren(RequiredValidator, { descendants: true });\n\tngControls = contentChildren(NgControl, { descendants: true });\n\n\tignoredRequiredValidators = computed(() => new Set(this.formFieldChildren().flatMap((f) => f.requiredValidators())));\n\tignoredControls = computed(() => new Set(this.formFieldChildren().flatMap((f) => f.ngControls())));\n\n\townRequiredValidators = computed(() => this.requiredValidators().filter((c) => !this.ignoredRequiredValidators().has(c)));\n\townControls = computed(() => this.ngControls().filter((c) => !this.ignoredControls().has(c)));\n\n\t#hasInputRequired = signal(false);\n\tforceInputRequired = signal(false);\n\tisInputRequired = computed(() => this.forceInputRequired() || this.#hasInputRequired());\n\n\tlabel = input.required<PortalContent>();\n\n\t/**\n\t * Hide field label, while keeping it in DOM for screen readers\n\t */\n\thiddenLabel = input(false, { transform: booleanAttribute });\n\n\trolePresentationLabel = model(false);\n\n\tinline = input(false, { transform: booleanAttribute });\n\n\tstatusControl = input<AbstractControl | null>(null);\n\n\ttooltip = input<string | SafeHtml | null>(null);\n\n\ttag = input<string | null>(null);\n\n\tAI = input(false, { transform: booleanAttribute });\n\ticonAItooltip = input<string | null>(null);\n\ticonAIalt = input<string | null>(null);\n\n\twidth = input<FormFieldWidth, FormFieldWidth | `${FormFieldWidth}`>(null, {\n\t\ttransform: numberAttribute as (value: FormFieldWidth | `${FormFieldWidth}`) => FormFieldWidth,\n\t});\n\n\t#invalidStatus = signal(false);\n\tinvalidStatus = this.#invalidStatus.asReadonly();\n\n\tinvalid = input<boolean | null, boolean>(null, { transform: booleanAttribute });\n\n\tinlineMessage = input<PortalContent | null>(null);\n\n\t/**\n\t * Inline message for when the control is in error state\n\t */\n\terrorInlineMessage = 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\tinlineMessageState = input<InlineMessageState | null>(null);\n\n\tsize = input<FormFieldSize | null>(null);\n\n\t/**\n\t * Extra aria-describedby attribute\n\t */\n\textraDescribedBy = input<string>('');\n\n\tlayout = model<'default' | 'checkable' | 'fieldset'>('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\tcounter = input<number>(0);\n\n\tget contentLength(): number {\n\t\treturn (this.#inputs[0]?.host?.nativeElement as HTMLInputElement)?.value?.length || 0;\n\t}\n\n\tpublic addInput(input: InputDirective) {\n\t\tthis.#inputs.push(input);\n\t\t/* We have to put this in the next cycle to make sure it'll be applied properly\n\t\t * and that it won't trigger a change detection error\n\t\t */\n\t\tsetTimeout(() => {\n\t\t\tthis.prepareInput();\n\t\t});\n\t}\n\n\tpublic get inputs(): InputDirective[] {\n\t\treturn this.#inputs;\n\t}\n\n\tid = signal<string>('');\n\n\tready$ = new BehaviorSubject<boolean>(false);\n\n\tpublic get ready(): boolean {\n\t\treturn this.ready$.value;\n\t}\n\n\t#ariaLabelledBy: string[] = [];\n\n\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'mod-checkable': this.layout() === 'checkable',\n\t\t\t\t'form-field': this.layout() !== 'fieldset',\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},\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\treturn hasRequiredNgModel || hasRequiredFormControl;\n\t}\n\n\t#hasInvalidStatus(): boolean {\n\t\tconst isInvalidOverride = this.invalid() !== undefined && this.invalid() !== null;\n\t\tif (isInvalidOverride) {\n\t\t\treturn this.invalid();\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 (layout() === \"fieldset\") {\n\t<fieldset class=\"form-fieldset\" [class.mod-inline]=\"inline()\" [class.mod-S]=\"size() === 'S'\">\n\t\t<legend class=\"formLabel\" [class.pr-u-mask]=\"hiddenLabel()\" attr.aria-hidden=\"{{ hiddenLabel() }}\">\n\t\t\t<ng-container *luPortal=\"label()\" /><!--\n\t--><sup class=\"formLabel-required\" aria-hidden=\"true\" *ngIf=\"isInputRequired()\">*</sup>\n\t\t\t@if (tooltip()) {\n\t\t\t\t<lu-icon\n\t\t\t\t\tclass=\"formLabel-info\"\n\t\t\t\t\ticon=\"signHelp\"\n\t\t\t\t\t[alt]=\"'?'\"\n\t\t\t\t\t[luTooltip]=\"tooltip()\"\n\t\t\t\t\t[color]=\"invalidStatus() ? 'error' : 'inherit'\"\n\t\t\t\t/>\n\t\t\t}\n\t\t\t@if (tag()) {\n\t\t\t\t<span class=\"tag formLabel-tag\">{{ tag() }}</span>\n\t\t\t}\n\t\t</legend>\n\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t@if (inlineMessage() || (invalidStatus() ? errorInlineMessage() : false)) {\n\t\t\t<lu-inline-message\n\t\t\t\tid=\"{{ id() }}-message\"\n\t\t\t\t[label]=\"invalidStatus() && errorInlineMessage() ? errorInlineMessage() : inlineMessage()\"\n\t\t\t\t[state]=\"invalidStatus() ? 'error' : inlineMessageState()\"\n\t\t\t/>\n\t\t}\n\t</fieldset>\n} @else {\n\t<label\n\t\tclass=\"formLabel\"\n\t\t[class.inputFramed-header-label]=\"framed\"\n\t\t[class.is-error]=\"invalidStatus()\"\n\t\t[class.mod-counter]=\"counter() > 0\"\n\t\tid=\"{{ id() }}-label\"\n\t\tfor=\"{{ id() }}\"\n\t\t[class.pr-u-mask]=\"hiddenLabel()\"\n\t\tattr.role=\"{{ rolePresentationLabel() ? 'presentation' : null }}\"\n\t>\n\t\t<ng-container *luPortal=\"label()\" /><!--\n\t--><sup class=\"formLabel-required\" aria-hidden=\"true\" *ngIf=\"isInputRequired()\">*</sup>\n\t\t@if (tooltip()) {\n\t\t\t<lu-icon class=\"formLabel-info\" icon=\"signHelp\" [alt]=\"'?'\" [luTooltip]=\"tooltip()\" [color]=\"invalidStatus() ? 'error' : 'inherit'\" />\n\t\t}\n\t\t@if (tag()) {\n\t\t\t<span class=\"formLabel-tag tag\">{{ tag() }}</span>\n\t\t}\n\t\t@if (counter() > 0) {\n\t\t\t<span class=\"formLabel-counter\" [class.pr-u-textError]=\"contentLength > counter()\" id=\"{{ id() }}-counter\" aria-live=\"polite\">\n\t\t\t\t<span aria-hidden=\"true\">{{ contentLength }}/{{ counter() }}</span>\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl.counter | intlParams: { current: contentLength, max: counter() } }}</span>\n\t\t\t</span>\n\t\t}\n\t</label>\n\t@if (AI()) {\n\t\t<div class=\"form-field-contentOptional\">\n\t\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t\t\t<lu-icon\n\t\t\t\tclass=\"pr-u-focusVisible pr-u-borderRadiusSmall\"\n\t\t\t\t[luTooltip]=\"iconAItooltip()\"\n\t\t\t\tsize=\"S\"\n\t\t\t\tAI\n\t\t\t\ticon=\"weatherStars\"\n\t\t\t\t[alt]=\"iconAIalt()\"\n\t\t\t/>\n\t\t</div>\n\t} @else {\n\t\t<ng-container *ngTemplateOutlet=\"projectionTpl\" />\n\t}\n\t@if (inlineMessage() || (invalidStatus() ? errorInlineMessage() : false)) {\n\t\t<lu-inline-message\n\t\t\tid=\"{{ id() }}-message\"\n\t\t\t[label]=\"invalidStatus() && errorInlineMessage() ? errorInlineMessage() : inlineMessage()\"\n\t\t\t[state]=\"invalidStatus() ? 'error' : inlineMessageState()\"\n\t\t/>\n\t}\n}\n\n<ng-template #projectionTpl>\n\t<ng-content />\n</ng-template>\n","import { booleanAttribute, Directive, ElementRef, inject, Input, OnInit } from '@angular/core';\nimport { FORM_FIELD_INSTANCE } from './form-field.token';\n\n@Directive({\n\tselector: '[luInput]',\n\tstandalone: true,\n\thost: {\n\t\t// Used to autofocus in dialog boxes, do not change except if you know what you're doing\n\t\tclass: 'luNativeInput',\n\t},\n})\nexport class InputDirective implements OnInit {\n\tpublic readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tpublic readonly formFieldRef = inject(FORM_FIELD_INSTANCE, { optional: true });\n\n\t/**\n\t * Prevents message and label ids from being propagated, useful if the input holds its own message and label (like for radios)\n\t */\n\t@Input({ transform: booleanAttribute, alias: 'luInputStandalone' })\n\tstandalone = false;\n\n\tngOnInit(): void {\n\t\t// If the field is used as standalone, we won't have the ref provided so it'll crash\n\t\tif (this.formFieldRef) {\n\t\t\tthis.formFieldRef.addInput(this);\n\t\t}\n\t}\n}\n","import { booleanAttribute, Component, forwardRef, input, ViewEncapsulation } from '@angular/core';\nimport { PortalContent, PortalDirective } from '@lucca-front/ng/core';\nimport { FRAMED_INPUT_INSTANCE } from './framed-input-token';\n\n@Component({\n\tselector: 'lu-framed-input',\n\tstandalone: true,\n\timports: [PortalDirective],\n\ttemplateUrl: './framed-input.component.html',\n\tstyleUrl: './framed-input.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tproviders: [\n\t\t{\n\t\t\tprovide: FRAMED_INPUT_INSTANCE,\n\t\t\tuseExisting: forwardRef(() => FramedInputComponent),\n\t\t},\n\t],\n})\nexport class FramedInputComponent {\n\tframedPortal = input<PortalContent | null>(null);\n\tcenter = input(false, { transform: booleanAttribute });\n}\n","<div class=\"inputFramed\" [class.mod-center]=\"center()\">\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()) {\n\t\t<div class=\"inputFramed-content\"><ng-container *luPortal=\"framedPortal()\" /></div>\n\t}\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["ɵeffectWithDeps"],"mappings":"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"}
@@ -46,11 +46,11 @@ class LuFormlyFieldApi extends FieldType {
46
46
  this.props['_isFocused'] = false;
47
47
  }
48
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldApi, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
49
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldApi, isStandalone: false, selector: "lu-formly-field-api", usesInheritance: true, ngImport: i0, template: "<lu-api-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[api]=\"_api\"\n\t[filters]=\"_filters\"\n\t[orderBy]=\"_orderBy\"\n\t[sort]=\"_sort\"\n\t[standard]=\"_standard\"\n/>\n<span [attr.for]=\"id\" class=\"textfield-label\">{{ props.label }}</span>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n", "@layer mods{:host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.LuApiSelectInputComponent, selector: "lu-api-select", inputs: ["standard", "api", "fields", "filters", "orderBy", "sort"] }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
49
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldApi, isStandalone: false, selector: "lu-formly-field-api", usesInheritance: true, ngImport: i0, template: "<lu-api-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[api]=\"_api\"\n\t[filters]=\"_filters\"\n\t[orderBy]=\"_orderBy\"\n\t[sort]=\"_sort\"\n\t[standard]=\"_standard\"\n/>\n<span [attr.for]=\"id\" class=\"textfield-label\">{{ props.label }}</span>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n", ":host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2.LuApiSelectInputComponent, selector: "lu-api-select", inputs: ["standard", "api", "fields", "filters", "orderBy", "sort"] }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
50
50
  }
51
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldApi, decorators: [{
52
52
  type: Component,
53
- args: [{ selector: 'lu-formly-field-api', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<lu-api-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[api]=\"_api\"\n\t[filters]=\"_filters\"\n\t[orderBy]=\"_orderBy\"\n\t[sort]=\"_sort\"\n\t[standard]=\"_standard\"\n/>\n<span [attr.for]=\"id\" class=\"textfield-label\">{{ props.label }}</span>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n", "@layer mods{:host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}}\n"] }]
53
+ args: [{ selector: 'lu-formly-field-api', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<lu-api-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[api]=\"_api\"\n\t[filters]=\"_filters\"\n\t[orderBy]=\"_orderBy\"\n\t[sort]=\"_sort\"\n\t[standard]=\"_standard\"\n/>\n<span [attr.for]=\"id\" class=\"textfield-label\">{{ props.label }}</span>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n", ":host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}\n"] }]
54
54
  }] });
55
55
 
56
56
  class LuFormlyFieldCheckbox extends FieldType {
@@ -61,11 +61,11 @@ class LuFormlyFieldCheckbox extends FieldType {
61
61
  this.props['_isFocused'] = false;
62
62
  }
63
63
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
64
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldCheckbox, isStandalone: false, selector: "lu-formly-field-checkbox", usesInheritance: true, ngImport: i0, template: "<label class=\"checkbox\" [class]=\"props['mod']\">\n\t<input\n\t\tclass=\"checkbox-input\"\n\t\ttype=\"checkbox\"\n\t\t[name]=\"props['name']\"\n\t\t[id]=\"id\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t/>\n\t<span class=\"checkbox-label\">{{ props.label }}</span>\n</label>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n"], dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldCheckbox, isStandalone: false, selector: "lu-formly-field-checkbox", usesInheritance: true, ngImport: i0, template: "<label class=\"checkbox\" [class]=\"props['mod']\">\n\t<input\n\t\tclass=\"checkbox-input\"\n\t\ttype=\"checkbox\"\n\t\t[name]=\"props['name']\"\n\t\t[id]=\"id\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t/>\n\t<span class=\"checkbox-label\">{{ props.label }}</span>\n</label>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n"], dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
65
65
  }
66
66
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldCheckbox, decorators: [{
67
67
  type: Component,
68
- args: [{ selector: 'lu-formly-field-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<label class=\"checkbox\" [class]=\"props['mod']\">\n\t<input\n\t\tclass=\"checkbox-input\"\n\t\ttype=\"checkbox\"\n\t\t[name]=\"props['name']\"\n\t\t[id]=\"id\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t/>\n\t<span class=\"checkbox-label\">{{ props.label }}</span>\n</label>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n"] }]
68
+ args: [{ selector: 'lu-formly-field-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<label class=\"checkbox\" [class]=\"props['mod']\">\n\t<input\n\t\tclass=\"checkbox-input\"\n\t\ttype=\"checkbox\"\n\t\t[name]=\"props['name']\"\n\t\t[id]=\"id\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t/>\n\t<span class=\"checkbox-label\">{{ props.label }}</span>\n</label>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n"] }]
69
69
  }] });
70
70
 
71
71
  class LuFormlyFieldDate extends FieldType {
@@ -76,11 +76,11 @@ class LuFormlyFieldDate extends FieldType {
76
76
  this.props['_isFocused'] = false;
77
77
  }
78
78
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldDate, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
79
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldDate, isStandalone: false, selector: "lu-formly-field-date", usesInheritance: true, ngImport: i0, template: "<lu-date-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[min]=\"props.min\"\n\t[max]=\"props.max\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n", "@layer mods{:host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2$1.LuDateSelectInputComponent, selector: "lu-date-select", inputs: ["min", "max", "granularity", "placeholder", "hideClearer", "startOn"] }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
79
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldDate, isStandalone: false, selector: "lu-formly-field-date", usesInheritance: true, ngImport: i0, template: "<lu-date-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[min]=\"props.min\"\n\t[max]=\"props.max\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n", ":host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2$1.LuDateSelectInputComponent, selector: "lu-date-select", inputs: ["min", "max", "granularity", "placeholder", "hideClearer", "startOn"] }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
80
80
  }
81
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldDate, decorators: [{
82
82
  type: Component,
83
- args: [{ selector: 'lu-formly-field-date', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<lu-date-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[min]=\"props.min\"\n\t[max]=\"props.max\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n", "@layer mods{:host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}}\n"] }]
83
+ args: [{ selector: 'lu-formly-field-date', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<lu-date-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[min]=\"props.min\"\n\t[max]=\"props.max\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n", ":host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}\n"] }]
84
84
  }] });
85
85
 
86
86
  class LuFormlyFieldDepartment extends FieldType {
@@ -91,11 +91,11 @@ class LuFormlyFieldDepartment extends FieldType {
91
91
  this.props['_isFocused'] = false;
92
92
  }
93
93
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldDepartment, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldDepartment, isStandalone: false, selector: "lu-formly-field-department", usesInheritance: true, ngImport: i0, template: "<lu-department-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[filters]=\"props['filters']\"\n\t[appInstanceId]=\"props['appInstanceId']\"\n\t[operations]=\"props['operations']\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n", "@layer mods{:host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2$2.LuDepartmentSelectInputComponent, selector: "lu-department-select", inputs: ["appInstanceId", "operations", "filters", "uniqueOperation"] }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
94
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldDepartment, isStandalone: false, selector: "lu-formly-field-department", usesInheritance: true, ngImport: i0, template: "<lu-department-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[filters]=\"props['filters']\"\n\t[appInstanceId]=\"props['appInstanceId']\"\n\t[operations]=\"props['operations']\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n", ":host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2$2.LuDepartmentSelectInputComponent, selector: "lu-department-select", inputs: ["appInstanceId", "operations", "filters", "uniqueOperation"] }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
95
95
  }
96
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldDepartment, decorators: [{
97
97
  type: Component,
98
- args: [{ selector: 'lu-formly-field-department', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<lu-department-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[filters]=\"props['filters']\"\n\t[appInstanceId]=\"props['appInstanceId']\"\n\t[operations]=\"props['operations']\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n", "@layer mods{:host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}}\n"] }]
98
+ args: [{ selector: 'lu-formly-field-department', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<lu-department-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[filters]=\"props['filters']\"\n\t[appInstanceId]=\"props['appInstanceId']\"\n\t[operations]=\"props['operations']\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n", ":host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}\n"] }]
99
99
  }] });
100
100
 
101
101
  class LuFormlyFieldEstablishment extends FieldType {
@@ -106,11 +106,11 @@ class LuFormlyFieldEstablishment extends FieldType {
106
106
  this.props['_isFocused'] = false;
107
107
  }
108
108
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldEstablishment, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
109
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldEstablishment, isStandalone: false, selector: "lu-formly-field-establishment", usesInheritance: true, ngImport: i0, template: "<lu-establishment-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[filters]=\"props['filters']\"\n\t[appInstanceId]=\"props['appInstanceId']\"\n\t[operations]=\"props['operations']\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n", "@layer mods{:host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2$3.LuEstablishmentSelectInputComponent, selector: "lu-establishment-select", inputs: ["filters", "appInstanceId", "operations"] }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
109
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldEstablishment, isStandalone: false, selector: "lu-formly-field-establishment", usesInheritance: true, ngImport: i0, template: "<lu-establishment-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[filters]=\"props['filters']\"\n\t[appInstanceId]=\"props['appInstanceId']\"\n\t[operations]=\"props['operations']\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n", ":host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2$3.LuEstablishmentSelectInputComponent, selector: "lu-establishment-select", inputs: ["filters", "appInstanceId", "operations"] }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
110
110
  }
111
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldEstablishment, decorators: [{
112
112
  type: Component,
113
- args: [{ selector: 'lu-formly-field-establishment', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<lu-establishment-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[filters]=\"props['filters']\"\n\t[appInstanceId]=\"props['appInstanceId']\"\n\t[operations]=\"props['operations']\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n", "@layer mods{:host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}}\n"] }]
113
+ args: [{ selector: 'lu-formly-field-establishment', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<lu-establishment-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n\t[filters]=\"props['filters']\"\n\t[appInstanceId]=\"props['appInstanceId']\"\n\t[operations]=\"props['operations']\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n", ":host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}\n"] }]
114
114
  }] });
115
115
 
116
116
  class LuFormlyFieldInput extends FieldType {
@@ -124,11 +124,11 @@ class LuFormlyFieldInput extends FieldType {
124
124
  this.props['_isFocused'] = false;
125
125
  }
126
126
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldInput, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
127
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldInput, isStandalone: false, selector: "lu-formly-field-input", usesInheritance: true, ngImport: i0, template: "<ng-template [ngIf]=\"type !== 'number'\" [ngIfElse]=\"numberInput\">\n\t<input\n\t\t[type]=\"type\"\n\t\tclass=\"textfield-input\"\n\t\t[name]=\"props['name']\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\tluInput\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t\t[placeholder]=\"props.placeholder\"\n\t/>\n</ng-template>\n<!-- type=\"number\" has to be static in order to have NumberValueAccessor instead of DefaultValueAccessor -->\n<ng-template #numberInput>\n\t<input\n\t\ttype=\"number\"\n\t\tclass=\"textfield-input\"\n\t\t[name]=\"props['name']\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\tluInput\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t\t[placeholder]=\"props.placeholder\"\n\t/>\n</ng-template>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.LuInputDirective, selector: "[luInput]" }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
127
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldInput, isStandalone: false, selector: "lu-formly-field-input", usesInheritance: true, ngImport: i0, template: "<ng-template [ngIf]=\"type !== 'number'\" [ngIfElse]=\"numberInput\">\n\t<input\n\t\t[type]=\"type\"\n\t\tclass=\"textfield-input\"\n\t\t[name]=\"props['name']\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\tluInput\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t\t[placeholder]=\"props.placeholder\"\n\t/>\n</ng-template>\n<!-- type=\"number\" has to be static in order to have NumberValueAccessor instead of DefaultValueAccessor -->\n<ng-template #numberInput>\n\t<input\n\t\ttype=\"number\"\n\t\tclass=\"textfield-input\"\n\t\t[name]=\"props['name']\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\tluInput\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t\t[placeholder]=\"props.placeholder\"\n\t/>\n</ng-template>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.LuInputDirective, selector: "[luInput]" }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
128
128
  }
129
129
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldInput, decorators: [{
130
130
  type: Component,
131
- args: [{ selector: 'lu-formly-field-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-template [ngIf]=\"type !== 'number'\" [ngIfElse]=\"numberInput\">\n\t<input\n\t\t[type]=\"type\"\n\t\tclass=\"textfield-input\"\n\t\t[name]=\"props['name']\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\tluInput\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t\t[placeholder]=\"props.placeholder\"\n\t/>\n</ng-template>\n<!-- type=\"number\" has to be static in order to have NumberValueAccessor instead of DefaultValueAccessor -->\n<ng-template #numberInput>\n\t<input\n\t\ttype=\"number\"\n\t\tclass=\"textfield-input\"\n\t\t[name]=\"props['name']\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\tluInput\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t\t[placeholder]=\"props.placeholder\"\n\t/>\n</ng-template>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n"] }]
131
+ args: [{ selector: 'lu-formly-field-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-template [ngIf]=\"type !== 'number'\" [ngIfElse]=\"numberInput\">\n\t<input\n\t\t[type]=\"type\"\n\t\tclass=\"textfield-input\"\n\t\t[name]=\"props['name']\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\tluInput\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t\t[placeholder]=\"props.placeholder\"\n\t/>\n</ng-template>\n<!-- type=\"number\" has to be static in order to have NumberValueAccessor instead of DefaultValueAccessor -->\n<ng-template #numberInput>\n\t<input\n\t\ttype=\"number\"\n\t\tclass=\"textfield-input\"\n\t\t[name]=\"props['name']\"\n\t\t[formControl]=\"formControl\"\n\t\t[formlyAttributes]=\"field\"\n\t\tluInput\n\t\t(focus)=\"focus()\"\n\t\t(blur)=\"blur()\"\n\t\t[placeholder]=\"props.placeholder\"\n\t/>\n</ng-template>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n"] }]
132
132
  }] });
133
133
 
134
134
  class LuFormlyFieldRadios extends FieldType {
@@ -142,11 +142,11 @@ class LuFormlyFieldRadios extends FieldType {
142
142
  this.props['_isFocused'] = false;
143
143
  }
144
144
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldRadios, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
145
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldRadios, isStandalone: false, selector: "lu-formly-field-radios", usesInheritance: true, ngImport: i0, template: "<legend class=\"radiosfield-label\">{{ props.label }}</legend>\n<div class=\"radiosfield-input\">\n\t<label *ngFor=\"let option of _options; let i = index\" class=\"radio\">\n\t\t<input\n\t\t\tclass=\"radio-input\"\n\t\t\ttype=\"radio\"\n\t\t\t[name]=\"props['name']\"\n\t\t\t[value]=\"option.value\"\n\t\t\t[id]=\"id + '_' + i\"\n\t\t\t[formControl]=\"formControl\"\n\t\t\t[formlyAttributes]=\"field\"\n\t\t/>\n\t\t<span class=\"radio-label\">{{ option.label }}</span>\n\t</label>\n</div>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
145
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldRadios, isStandalone: false, selector: "lu-formly-field-radios", usesInheritance: true, ngImport: i0, template: "<legend class=\"radiosfield-label\">{{ props.label }}</legend>\n<div class=\"radiosfield-input\">\n\t<label *ngFor=\"let option of _options; let i = index\" class=\"radio\">\n\t\t<input\n\t\t\tclass=\"radio-input\"\n\t\t\ttype=\"radio\"\n\t\t\t[name]=\"props['name']\"\n\t\t\t[value]=\"option.value\"\n\t\t\t[id]=\"id + '_' + i\"\n\t\t\t[formControl]=\"formControl\"\n\t\t\t[formlyAttributes]=\"field\"\n\t\t/>\n\t\t<span class=\"radio-label\">{{ option.label }}</span>\n\t</label>\n</div>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
146
146
  }
147
147
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldRadios, decorators: [{
148
148
  type: Component,
149
- args: [{ selector: 'lu-formly-field-radios', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<legend class=\"radiosfield-label\">{{ props.label }}</legend>\n<div class=\"radiosfield-input\">\n\t<label *ngFor=\"let option of _options; let i = index\" class=\"radio\">\n\t\t<input\n\t\t\tclass=\"radio-input\"\n\t\t\ttype=\"radio\"\n\t\t\t[name]=\"props['name']\"\n\t\t\t[value]=\"option.value\"\n\t\t\t[id]=\"id + '_' + i\"\n\t\t\t[formControl]=\"formControl\"\n\t\t\t[formlyAttributes]=\"field\"\n\t\t/>\n\t\t<span class=\"radio-label\">{{ option.label }}</span>\n\t</label>\n</div>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n"] }]
149
+ args: [{ selector: 'lu-formly-field-radios', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<legend class=\"radiosfield-label\">{{ props.label }}</legend>\n<div class=\"radiosfield-input\">\n\t<label *ngFor=\"let option of _options; let i = index\" class=\"radio\">\n\t\t<input\n\t\t\tclass=\"radio-input\"\n\t\t\ttype=\"radio\"\n\t\t\t[name]=\"props['name']\"\n\t\t\t[value]=\"option.value\"\n\t\t\t[id]=\"id + '_' + i\"\n\t\t\t[formControl]=\"formControl\"\n\t\t\t[formlyAttributes]=\"field\"\n\t\t/>\n\t\t<span class=\"radio-label\">{{ option.label }}</span>\n\t</label>\n</div>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n"] }]
150
150
  }] });
151
151
 
152
152
  class LuFormlyFieldSelect extends FieldType {
@@ -160,11 +160,11 @@ class LuFormlyFieldSelect extends FieldType {
160
160
  this.props['_isFocused'] = false;
161
161
  }
162
162
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldSelect, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
163
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldSelect, isStandalone: false, selector: "lu-formly-field-select", usesInheritance: true, ngImport: i0, template: "<lu-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[multiple]=\"props['multiple']\"\n\t[placeholder]=\"props.placeholder\"\n>\n\t<ng-container *luDisplayer=\"let option\">\n\t\t<span [class.chip]=\"props['multiple']\" [class.mod-unkillable]=\"props['multiple']\"\n\t\t\t><span class=\"pr-u-ellipsis\">{{ option.name }}</span></span\n\t\t>\n\t</ng-container>\n\t<lu-option-picker>\n\t\t<lu-option *ngFor=\"let option of _options\" [value]=\"option\"> {{ option.name }} </lu-option>\n\t</lu-option-picker>\n\t<lu-input-clearer *ngIf=\"!props.required && !props['multiple']\" />\n</lu-select>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n", "@layer mods{:host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3$1.LuSelectInputComponent, selector: "lu-select" }, { kind: "component", type: i4.LuOptionItemComponent, selector: "lu-option", inputs: ["selected", "highlighted", "value", "disabled"], outputs: ["onSelect"] }, { kind: "component", type: i4.LuOptionPickerComponent, selector: "lu-option-picker", exportAs: ["LuOptionPicker"] }, { kind: "directive", type: i5.LuInputDisplayerDirective, selector: "[luDisplayer]", inputs: ["luDisplayerMultiple", "multiple"] }, { kind: "component", type: i5.LuInputClearerComponent, selector: "lu-input-clearer", outputs: ["onClear"], exportAs: ["luClearer"] }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
163
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldSelect, isStandalone: false, selector: "lu-formly-field-select", usesInheritance: true, ngImport: i0, template: "<lu-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[multiple]=\"props['multiple']\"\n\t[placeholder]=\"props.placeholder\"\n>\n\t<ng-container *luDisplayer=\"let option\">\n\t\t<span [class.chip]=\"props['multiple']\" [class.mod-unkillable]=\"props['multiple']\"\n\t\t\t><span class=\"pr-u-ellipsis\">{{ option.name }}</span></span\n\t\t>\n\t</ng-container>\n\t<lu-option-picker>\n\t\t<lu-option *ngFor=\"let option of _options\" [value]=\"option\"> {{ option.name }} </lu-option>\n\t</lu-option-picker>\n\t<lu-input-clearer *ngIf=\"!props.required && !props['multiple']\" />\n</lu-select>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n", ":host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3$1.LuSelectInputComponent, selector: "lu-select" }, { kind: "component", type: i4.LuOptionItemComponent, selector: "lu-option", inputs: ["selected", "highlighted", "value", "disabled"], outputs: ["onSelect"] }, { kind: "component", type: i4.LuOptionPickerComponent, selector: "lu-option-picker", exportAs: ["LuOptionPicker"] }, { kind: "directive", type: i5.LuInputDisplayerDirective, selector: "[luDisplayer]", inputs: ["luDisplayerMultiple", "multiple"] }, { kind: "component", type: i5.LuInputClearerComponent, selector: "lu-input-clearer", outputs: ["onClear"], exportAs: ["luClearer"] }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
164
164
  }
165
165
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldSelect, decorators: [{
166
166
  type: Component,
167
- args: [{ selector: 'lu-formly-field-select', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<lu-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[multiple]=\"props['multiple']\"\n\t[placeholder]=\"props.placeholder\"\n>\n\t<ng-container *luDisplayer=\"let option\">\n\t\t<span [class.chip]=\"props['multiple']\" [class.mod-unkillable]=\"props['multiple']\"\n\t\t\t><span class=\"pr-u-ellipsis\">{{ option.name }}</span></span\n\t\t>\n\t</ng-container>\n\t<lu-option-picker>\n\t\t<lu-option *ngFor=\"let option of _options\" [value]=\"option\"> {{ option.name }} </lu-option>\n\t</lu-option-picker>\n\t<lu-input-clearer *ngIf=\"!props.required && !props['multiple']\" />\n</lu-select>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n", "@layer mods{:host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}}\n"] }]
167
+ args: [{ selector: 'lu-formly-field-select', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<lu-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[multiple]=\"props['multiple']\"\n\t[placeholder]=\"props.placeholder\"\n>\n\t<ng-container *luDisplayer=\"let option\">\n\t\t<span [class.chip]=\"props['multiple']\" [class.mod-unkillable]=\"props['multiple']\"\n\t\t\t><span class=\"pr-u-ellipsis\">{{ option.name }}</span></span\n\t\t>\n\t</ng-container>\n\t<lu-option-picker>\n\t\t<lu-option *ngFor=\"let option of _options\" [value]=\"option\"> {{ option.name }} </lu-option>\n\t</lu-option-picker>\n\t<lu-input-clearer *ngIf=\"!props.required && !props['multiple']\" />\n</lu-select>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n", ":host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}\n"] }]
168
168
  }] });
169
169
 
170
170
  class LuFormlyFieldTextarea extends FieldType {
@@ -175,11 +175,11 @@ class LuFormlyFieldTextarea extends FieldType {
175
175
  this.props['_isFocused'] = false;
176
176
  }
177
177
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldTextarea, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
178
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldTextarea, isStandalone: false, selector: "lu-formly-field-input", usesInheritance: true, ngImport: i0, template: "<textarea\n\tclass=\"textfield-input\"\n\t[name]=\"props['name']\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\tluInput\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n></textarea>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.LuInputDirective, selector: "[luInput]" }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
178
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldTextarea, isStandalone: false, selector: "lu-formly-field-input", usesInheritance: true, ngImport: i0, template: "<textarea\n\tclass=\"textfield-input\"\n\t[name]=\"props['name']\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\tluInput\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n></textarea>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n"], dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.LuInputDirective, selector: "[luInput]" }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
179
179
  }
180
180
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldTextarea, decorators: [{
181
181
  type: Component,
182
- args: [{ selector: 'lu-formly-field-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<textarea\n\tclass=\"textfield-input\"\n\t[name]=\"props['name']\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\tluInput\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n></textarea>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n"] }]
182
+ args: [{ selector: 'lu-formly-field-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<textarea\n\tclass=\"textfield-input\"\n\t[name]=\"props['name']\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\tluInput\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n></textarea>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n"] }]
183
183
  }] });
184
184
 
185
185
  class LuFormlyFieldUser extends FieldType {
@@ -190,11 +190,11 @@ class LuFormlyFieldUser extends FieldType {
190
190
  this.props['_isFocused'] = false;
191
191
  }
192
192
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldUser, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
193
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldUser, isStandalone: false, selector: "lu-formly-field-user", usesInheritance: true, ngImport: i0, template: "<lu-user-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n", "@layer mods{:host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2$4.LuUserSelectInputComponent, selector: "lu-user-select", inputs: ["placeholder", "fields", "filters", "orderBy", "appInstanceId", "operations", "enableFormerEmployees", "disablePrincipal"] }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
193
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyFieldUser, isStandalone: false, selector: "lu-formly-field-user", usesInheritance: true, ngImport: i0, template: "<lu-user-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n", ":host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2$4.LuUserSelectInputComponent, selector: "lu-user-select", inputs: ["placeholder", "fields", "filters", "orderBy", "appInstanceId", "operations", "enableFormerEmployees", "disablePrincipal"] }, { kind: "directive", type: i3.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
194
194
  }
195
195
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyFieldUser, decorators: [{
196
196
  type: Component,
197
- args: [{ selector: 'lu-formly-field-user', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<lu-user-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: ["@layer components{:host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}}\n", "@layer mods{:host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}}\n"] }]
197
+ args: [{ selector: 'lu-formly-field-user', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<lu-user-select\n\tclass=\"textfield-input\"\n\t[formControl]=\"formControl\"\n\t[formlyAttributes]=\"field\"\n\t[multiple]=\"props['multiple']\"\n\t(focus)=\"focus()\"\n\t(blur)=\"blur()\"\n\t[placeholder]=\"props.placeholder\"\n/>\n<span class=\"textfield-label\">{{ props.label }}</span>\n", styles: [":host{inline-size:100%;display:inherit;align-items:inherit;flex-direction:inherit}\n", ":host-context(.mod-framed) lu-select{display:block}:host-context(.mod-framed) lu-api-select{display:block}:host-context(.mod-framed) lu-user-select{display:block}:host-context(.mod-framed) lu-date-select{display:block}:host-context(.mod-framed) lu-department-select{display:block}\n"] }]
198
198
  }] });
199
199
 
200
200
  function buildAddWrapperExtension(wrapperName, predicate) {
@@ -213,11 +213,11 @@ class LuFormlyWrapperError extends FieldWrapper {
213
213
  return this.field.id + '-message';
214
214
  }
215
215
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyWrapperError, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
216
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyWrapperError, isStandalone: false, selector: "lu-formly-wrapper-error", viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container #fieldComponent />\n<div class=\"textfield-messages\" *ngIf=\"formControl.touched && formControl.invalid\" [id]=\"validationId\">\n\t<lu-formly-error-message [formControl]=\"formControl\" [field]=\"field\" />\n</div>\n", styles: ["@layer components{:host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i1$1.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i1.FormControlDirective), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i0.forwardRef(() => LuFormlyErrorMessage), selector: "lu-formly-error-message", inputs: ["formControl", "field"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
216
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyWrapperError, isStandalone: false, selector: "lu-formly-wrapper-error", viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container #fieldComponent />\n<div class=\"textfield-messages\" *ngIf=\"formControl.touched && formControl.invalid\" [id]=\"validationId\">\n\t<lu-formly-error-message [formControl]=\"formControl\" [field]=\"field\" />\n</div>\n", styles: [":host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}\n"], dependencies: [{ kind: "directive", type: i0.forwardRef(() => i1$1.NgIf), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(() => i1.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i1.FormControlDirective), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i0.forwardRef(() => LuFormlyErrorMessage), selector: "lu-formly-error-message", inputs: ["formControl", "field"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
217
217
  }
218
218
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyWrapperError, decorators: [{
219
219
  type: Component,
220
- args: [{ selector: 'lu-formly-wrapper-error', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container #fieldComponent />\n<div class=\"textfield-messages\" *ngIf=\"formControl.touched && formControl.invalid\" [id]=\"validationId\">\n\t<lu-formly-error-message [formControl]=\"formControl\" [field]=\"field\" />\n</div>\n", styles: ["@layer components{:host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}}\n"] }]
220
+ args: [{ selector: 'lu-formly-wrapper-error', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container #fieldComponent />\n<div class=\"textfield-messages\" *ngIf=\"formControl.touched && formControl.invalid\" [id]=\"validationId\">\n\t<lu-formly-error-message [formControl]=\"formControl\" [field]=\"field\" />\n</div>\n", styles: [":host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}\n"] }]
221
221
  }], propDecorators: { fieldComponent: [{
222
222
  type: ViewChild,
223
223
  args: ['fieldComponent', { read: ViewContainerRef, static: true }]
@@ -261,11 +261,11 @@ const templateErrorExtension = buildAddWrapperExtension('error', (field) => !!fi
261
261
  // wrapper component
262
262
  class LuFormlyWrapperHelper extends FieldWrapper {
263
263
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyWrapperHelper, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
264
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyWrapperHelper, isStandalone: false, selector: "lu-formly-wrapper-helper", viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container #fieldComponent />\n<div class=\"textfield-messages mod-helper\">\n\t<div class=\"textfield-messages-helper\">{{ props[\"helper\"] }}</div>\n</div>\n", styles: ["@layer components{:host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
264
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyWrapperHelper, isStandalone: false, selector: "lu-formly-wrapper-helper", viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container #fieldComponent />\n<div class=\"textfield-messages mod-helper\">\n\t<div class=\"textfield-messages-helper\">{{ props[\"helper\"] }}</div>\n</div>\n", styles: [":host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
265
265
  }
266
266
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyWrapperHelper, decorators: [{
267
267
  type: Component,
268
- args: [{ selector: 'lu-formly-wrapper-helper', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container #fieldComponent />\n<div class=\"textfield-messages mod-helper\">\n\t<div class=\"textfield-messages-helper\">{{ props[\"helper\"] }}</div>\n</div>\n", styles: ["@layer components{:host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}}\n"] }]
268
+ args: [{ selector: 'lu-formly-wrapper-helper', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container #fieldComponent />\n<div class=\"textfield-messages mod-helper\">\n\t<div class=\"textfield-messages-helper\">{{ props[\"helper\"] }}</div>\n</div>\n", styles: [":host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}\n"] }]
269
269
  }], propDecorators: { fieldComponent: [{
270
270
  type: ViewChild,
271
271
  args: ['fieldComponent', { read: ViewContainerRef, static: true }]
@@ -275,11 +275,11 @@ const templateHelperExtension = buildAddWrapperExtension('helper', (field) => !!
275
275
  // wrapper component
276
276
  class LuFormlyWrapperIcon extends FieldWrapper {
277
277
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyWrapperIcon, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
278
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyWrapperIcon, isStandalone: false, selector: "lu-formly-wrapper-suffix", viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container #fieldComponent /><span aria-hidden=\"true\" class=\"textfield-suffix mod-icon lucca-icon\">{{ props[\"icon\"] }}</span>\n", styles: ["@layer components{:host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}}\n", "@layer components{:host .textfield-suffix{pointer-events:none}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
278
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyWrapperIcon, isStandalone: false, selector: "lu-formly-wrapper-suffix", viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container #fieldComponent /><span aria-hidden=\"true\" class=\"textfield-suffix mod-icon lucca-icon\">{{ props[\"icon\"] }}</span>\n", styles: [":host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}\n", ":host .textfield-suffix{pointer-events:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
279
279
  }
280
280
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyWrapperIcon, decorators: [{
281
281
  type: Component,
282
- args: [{ selector: 'lu-formly-wrapper-suffix', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container #fieldComponent /><span aria-hidden=\"true\" class=\"textfield-suffix mod-icon lucca-icon\">{{ props[\"icon\"] }}</span>\n", styles: ["@layer components{:host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}}\n", "@layer components{:host .textfield-suffix{pointer-events:none}}\n"] }]
282
+ args: [{ selector: 'lu-formly-wrapper-suffix', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container #fieldComponent /><span aria-hidden=\"true\" class=\"textfield-suffix mod-icon lucca-icon\">{{ props[\"icon\"] }}</span>\n", styles: [":host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}\n", ":host .textfield-suffix{pointer-events:none}\n"] }]
283
283
  }], propDecorators: { fieldComponent: [{
284
284
  type: ViewChild,
285
285
  args: ['fieldComponent', { read: ViewContainerRef, static: true }]
@@ -301,11 +301,11 @@ class LuFormlyWrapperRadiosfieldLayout extends FieldWrapper {
301
301
  return this.formControl.invalid && this.formControl.touched ? 'is-error' : '';
302
302
  }
303
303
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyWrapperRadiosfieldLayout, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
304
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyWrapperRadiosfieldLayout, isStandalone: false, selector: "lu-formly-wrapper-radiosfield-layout", viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"fieldsetWrapper\">\n\t<fieldset class=\"radiosfield\" [class]=\"[mod, isRequired, isFocused, isError]\">\n\t\t<ng-container #fieldComponent />\n\t</fieldset>\n</div>\n", styles: ["@layer components{:host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
304
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyWrapperRadiosfieldLayout, isStandalone: false, selector: "lu-formly-wrapper-radiosfield-layout", viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"fieldsetWrapper\">\n\t<fieldset class=\"radiosfield\" [class]=\"[mod, isRequired, isFocused, isError]\">\n\t\t<ng-container #fieldComponent />\n\t</fieldset>\n</div>\n", styles: [":host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
305
305
  }
306
306
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyWrapperRadiosfieldLayout, decorators: [{
307
307
  type: Component,
308
- args: [{ selector: 'lu-formly-wrapper-radiosfield-layout', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"fieldsetWrapper\">\n\t<fieldset class=\"radiosfield\" [class]=\"[mod, isRequired, isFocused, isError]\">\n\t\t<ng-container #fieldComponent />\n\t</fieldset>\n</div>\n", styles: ["@layer components{:host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}}\n"] }]
308
+ args: [{ selector: 'lu-formly-wrapper-radiosfield-layout', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"fieldsetWrapper\">\n\t<fieldset class=\"radiosfield\" [class]=\"[mod, isRequired, isFocused, isError]\">\n\t\t<ng-container #fieldComponent />\n\t</fieldset>\n</div>\n", styles: [":host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}\n"] }]
309
309
  }], propDecorators: { fieldComponent: [{
310
310
  type: ViewChild,
311
311
  args: ['fieldComponent', { read: ViewContainerRef, static: true }]
@@ -314,11 +314,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
314
314
  // wrapper component
315
315
  class LuFormlyWrapperSuffix extends FieldWrapper {
316
316
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyWrapperSuffix, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
317
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyWrapperSuffix, isStandalone: false, selector: "lu-formly-wrapper-suffix", viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container #fieldComponent /><span class=\"textfield-suffix\">{{ props[\"suffix\"] }}</span>\n", styles: ["@layer components{:host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}}\n", "@layer components{:host .textfield-suffix{pointer-events:none}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
317
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyWrapperSuffix, isStandalone: false, selector: "lu-formly-wrapper-suffix", viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container #fieldComponent /><span class=\"textfield-suffix\">{{ props[\"suffix\"] }}</span>\n", styles: [":host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}\n", ":host .textfield-suffix{pointer-events:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
318
318
  }
319
319
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyWrapperSuffix, decorators: [{
320
320
  type: Component,
321
- args: [{ selector: 'lu-formly-wrapper-suffix', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container #fieldComponent /><span class=\"textfield-suffix\">{{ props[\"suffix\"] }}</span>\n", styles: ["@layer components{:host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}}\n", "@layer components{:host .textfield-suffix{pointer-events:none}}\n"] }]
321
+ args: [{ selector: 'lu-formly-wrapper-suffix', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<ng-container #fieldComponent /><span class=\"textfield-suffix\">{{ props[\"suffix\"] }}</span>\n", styles: [":host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}\n", ":host .textfield-suffix{pointer-events:none}\n"] }]
322
322
  }], propDecorators: { fieldComponent: [{
323
323
  type: ViewChild,
324
324
  args: ['fieldComponent', { read: ViewContainerRef, static: true }]
@@ -349,11 +349,11 @@ class LuFormlyWrapperTextfieldLayout extends FieldWrapper {
349
349
  return this.formControl.invalid && this.formControl.touched ? 'is-error' : '';
350
350
  }
351
351
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyWrapperTextfieldLayout, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
352
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyWrapperTextfieldLayout, isStandalone: false, selector: "lu-formly-wrapper-layout", viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<label class=\"textfield\" [class]=\"[mod, modWithSuffix, modMultiline, isRequired, isFocused, isError, isDisabled]\">\n\t<ng-container #fieldComponent />\n</label>\n", styles: ["@layer components{:host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
352
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyWrapperTextfieldLayout, isStandalone: false, selector: "lu-formly-wrapper-layout", viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<label class=\"textfield\" [class]=\"[mod, modWithSuffix, modMultiline, isRequired, isFocused, isError, isDisabled]\">\n\t<ng-container #fieldComponent />\n</label>\n", styles: [":host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
353
353
  }
354
354
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyWrapperTextfieldLayout, decorators: [{
355
355
  type: Component,
356
- args: [{ selector: 'lu-formly-wrapper-layout', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<label class=\"textfield\" [class]=\"[mod, modWithSuffix, modMultiline, isRequired, isFocused, isError, isDisabled]\">\n\t<ng-container #fieldComponent />\n</label>\n", styles: ["@layer components{:host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}}\n"] }]
356
+ args: [{ selector: 'lu-formly-wrapper-layout', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<label class=\"textfield\" [class]=\"[mod, modWithSuffix, modMultiline, isRequired, isFocused, isError, isDisabled]\">\n\t<ng-container #fieldComponent />\n</label>\n", styles: [":host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}\n"] }]
357
357
  }], propDecorators: { fieldComponent: [{
358
358
  type: ViewChild,
359
359
  args: ['fieldComponent', { read: ViewContainerRef, static: true }]
@@ -374,11 +374,11 @@ class LuFormlyWrapperCheckboxLayout extends FieldWrapper {
374
374
  return this.formControl.invalid && this.formControl.touched ? 'is-error' : '';
375
375
  }
376
376
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyWrapperCheckboxLayout, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
377
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyWrapperCheckboxLayout, isStandalone: false, selector: "lu-formly-wrapper-checkbox-layout", viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"fieldsetWrapper\">\n\t<fieldset class=\"checkboxesfield\" [class]=\"[mod, isRequired, isFocused, isError]\">\n\t\t<ng-container #fieldComponent />\n\t</fieldset>\n</div>\n", styles: ["@layer components{:host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
377
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.2", type: LuFormlyWrapperCheckboxLayout, isStandalone: false, selector: "lu-formly-wrapper-checkbox-layout", viewQueries: [{ propertyName: "fieldComponent", first: true, predicate: ["fieldComponent"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"fieldsetWrapper\">\n\t<fieldset class=\"checkboxesfield\" [class]=\"[mod, isRequired, isFocused, isError]\">\n\t\t<ng-container #fieldComponent />\n\t</fieldset>\n</div>\n", styles: [":host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
378
378
  }
379
379
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuFormlyWrapperCheckboxLayout, decorators: [{
380
380
  type: Component,
381
- args: [{ selector: 'lu-formly-wrapper-checkbox-layout', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"fieldsetWrapper\">\n\t<fieldset class=\"checkboxesfield\" [class]=\"[mod, isRequired, isFocused, isError]\">\n\t\t<ng-container #fieldComponent />\n\t</fieldset>\n</div>\n", styles: ["@layer components{:host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}}\n"] }]
381
+ args: [{ selector: 'lu-formly-wrapper-checkbox-layout', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<div class=\"fieldsetWrapper\">\n\t<fieldset class=\"checkboxesfield\" [class]=\"[mod, isRequired, isFocused, isError]\">\n\t\t<ng-container #fieldComponent />\n\t</fieldset>\n</div>\n", styles: [":host{display:inherit;flex-direction:inherit;flex:1 1 auto;inline-size:100%}\n"] }]
382
382
  }], propDecorators: { fieldComponent: [{
383
383
  type: ViewChild,
384
384
  args: ['fieldComponent', { read: ViewContainerRef, static: true }]