@lucca-front/ng 21.2.1 → 22.0.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
  2. package/fesm2022/lucca-front-ng-callout.mjs +10 -4
  3. package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
  4. package/fesm2022/lucca-front-ng-clear.mjs.map +1 -1
  5. package/fesm2022/lucca-front-ng-comment.mjs +1 -1
  6. package/fesm2022/lucca-front-ng-comment.mjs.map +1 -1
  7. package/fesm2022/lucca-front-ng-core-select-api.mjs.map +1 -1
  8. package/fesm2022/lucca-front-ng-core-select-department.mjs +7 -5
  9. package/fesm2022/lucca-front-ng-core-select-department.mjs.map +1 -1
  10. package/fesm2022/lucca-front-ng-core-select-establishment.mjs.map +1 -1
  11. package/fesm2022/lucca-front-ng-core-select-job-qualification.mjs.map +1 -1
  12. package/fesm2022/lucca-front-ng-core-select-occupation-category.mjs.map +1 -1
  13. package/fesm2022/lucca-front-ng-core-select-user.mjs +16 -11
  14. package/fesm2022/lucca-front-ng-core-select-user.mjs.map +1 -1
  15. package/fesm2022/lucca-front-ng-core-select.mjs +46 -18
  16. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  17. package/fesm2022/lucca-front-ng-core.mjs +11 -6
  18. package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
  19. package/fesm2022/lucca-front-ng-data-table.mjs +31 -15
  20. package/fesm2022/lucca-front-ng-data-table.mjs.map +1 -1
  21. package/fesm2022/lucca-front-ng-date.mjs +10 -6
  22. package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
  23. package/fesm2022/lucca-front-ng-date2.mjs +104 -88
  24. package/fesm2022/lucca-front-ng-date2.mjs.map +1 -1
  25. package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
  26. package/fesm2022/lucca-front-ng-dialog.mjs +36 -25
  27. package/fesm2022/lucca-front-ng-dialog.mjs.map +1 -1
  28. package/fesm2022/lucca-front-ng-divider.mjs.map +1 -1
  29. package/fesm2022/lucca-front-ng-empty-state.mjs +5 -4
  30. package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
  31. package/fesm2022/lucca-front-ng-establishment.mjs +3 -3
  32. package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
  33. package/fesm2022/lucca-front-ng-fancy-box.mjs +1 -1
  34. package/fesm2022/lucca-front-ng-fancy-box.mjs.map +1 -1
  35. package/fesm2022/lucca-front-ng-file-upload.mjs +5 -3
  36. package/fesm2022/lucca-front-ng-file-upload.mjs.map +1 -1
  37. package/fesm2022/lucca-front-ng-filter-pills.mjs +3 -3
  38. package/fesm2022/lucca-front-ng-filter-pills.mjs.map +1 -1
  39. package/fesm2022/lucca-front-ng-form-field.mjs +3 -3
  40. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  41. package/fesm2022/lucca-front-ng-formly.mjs +1 -1
  42. package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
  43. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs +26 -21
  44. package/fesm2022/lucca-front-ng-forms-phone-number-input.mjs.map +1 -1
  45. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-html.mjs +15 -13
  46. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-html.mjs.map +1 -1
  47. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs +5 -3
  48. package/fesm2022/lucca-front-ng-forms-rich-text-input-formatters-plain-text.mjs.map +1 -1
  49. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs +26 -19
  50. package/fesm2022/lucca-front-ng-forms-rich-text-input.mjs.map +1 -1
  51. package/fesm2022/lucca-front-ng-forms.mjs +3 -3
  52. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -1
  53. package/fesm2022/lucca-front-ng-highlight-data.mjs +1 -1
  54. package/fesm2022/lucca-front-ng-highlight-data.mjs.map +1 -1
  55. package/fesm2022/lucca-front-ng-index-table.mjs +5 -5
  56. package/fesm2022/lucca-front-ng-index-table.mjs.map +1 -1
  57. package/fesm2022/lucca-front-ng-input.mjs +6 -5
  58. package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
  59. package/fesm2022/lucca-front-ng-link.mjs.map +1 -1
  60. package/fesm2022/lucca-front-ng-mobile-push.mjs.map +1 -1
  61. package/fesm2022/lucca-front-ng-modal.mjs +5 -5
  62. package/fesm2022/lucca-front-ng-modal.mjs.map +1 -1
  63. package/fesm2022/lucca-front-ng-multi-select.mjs +27 -14
  64. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  65. package/fesm2022/lucca-front-ng-number-format.mjs +9 -8
  66. package/fesm2022/lucca-front-ng-number-format.mjs.map +1 -1
  67. package/fesm2022/lucca-front-ng-option.mjs +7 -3
  68. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  69. package/fesm2022/lucca-front-ng-page-header.mjs.map +1 -1
  70. package/fesm2022/lucca-front-ng-popover.mjs +6 -2
  71. package/fesm2022/lucca-front-ng-popover.mjs.map +1 -1
  72. package/fesm2022/lucca-front-ng-popover2.mjs.map +1 -1
  73. package/fesm2022/lucca-front-ng-popup.mjs +1 -1
  74. package/fesm2022/lucca-front-ng-popup.mjs.map +1 -1
  75. package/fesm2022/lucca-front-ng-progress-bar.mjs.map +1 -1
  76. package/fesm2022/lucca-front-ng-read-more.mjs.map +1 -1
  77. package/fesm2022/lucca-front-ng-scroll-box.mjs.map +1 -1
  78. package/fesm2022/lucca-front-ng-scroll.mjs.map +1 -1
  79. package/fesm2022/lucca-front-ng-segmented-control-tabs.mjs.map +1 -1
  80. package/fesm2022/lucca-front-ng-select.mjs +5 -4
  81. package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
  82. package/fesm2022/lucca-front-ng-sidepanel.mjs.map +1 -1
  83. package/fesm2022/lucca-front-ng-simple-select.mjs +11 -8
  84. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  85. package/fesm2022/lucca-front-ng-skeleton.mjs.map +1 -1
  86. package/fesm2022/lucca-front-ng-sortable-list.mjs.map +1 -1
  87. package/fesm2022/lucca-front-ng-time.mjs +2 -2
  88. package/fesm2022/lucca-front-ng-time.mjs.map +1 -1
  89. package/fesm2022/lucca-front-ng-title.mjs.map +1 -1
  90. package/fesm2022/lucca-front-ng-toast.mjs.map +1 -1
  91. package/fesm2022/lucca-front-ng-tree-select.mjs +11 -10
  92. package/fesm2022/lucca-front-ng-tree-select.mjs.map +1 -1
  93. package/fesm2022/lucca-front-ng-user-popover.mjs.map +1 -1
  94. package/fesm2022/lucca-front-ng-user.mjs +3 -3
  95. package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
  96. package/package.json +4 -4
  97. package/types/lucca-front-ng-api.d.ts +9 -9
  98. package/types/lucca-front-ng-clear.d.ts +1 -1
  99. package/types/lucca-front-ng-core-select-api.d.ts +14 -14
  100. package/types/lucca-front-ng-core-select-department.d.ts +10 -10
  101. package/types/lucca-front-ng-core-select-establishment.d.ts +12 -12
  102. package/types/lucca-front-ng-core-select-job-qualification.d.ts +6 -6
  103. package/types/lucca-front-ng-core-select-occupation-category.d.ts +6 -6
  104. package/types/lucca-front-ng-core-select-user.d.ts +19 -19
  105. package/types/lucca-front-ng-core-select.d.ts +53 -53
  106. package/types/lucca-front-ng-core.d.ts +10 -9
  107. package/types/lucca-front-ng-data-table.d.ts +40 -40
  108. package/types/lucca-front-ng-date.d.ts +2 -2
  109. package/types/lucca-front-ng-date2.d.ts +93 -93
  110. package/types/lucca-front-ng-department.d.ts +2 -2
  111. package/types/lucca-front-ng-dialog.d.ts +4 -4
  112. package/types/lucca-front-ng-divider.d.ts +1 -1
  113. package/types/lucca-front-ng-establishment.d.ts +9 -9
  114. package/types/lucca-front-ng-file-upload.d.ts +17 -17
  115. package/types/lucca-front-ng-filter-pills.d.ts +32 -32
  116. package/types/lucca-front-ng-form-field.d.ts +8 -8
  117. package/types/lucca-front-ng-forms-phone-number-input.d.ts +7 -7
  118. package/types/lucca-front-ng-forms-rich-text-input.d.ts +15 -14
  119. package/types/lucca-front-ng-forms.d.ts +39 -39
  120. package/types/lucca-front-ng-index-table.d.ts +39 -39
  121. package/types/lucca-front-ng-input.d.ts +8 -8
  122. package/types/lucca-front-ng-link.d.ts +4 -4
  123. package/types/lucca-front-ng-mobile-push.d.ts +1 -1
  124. package/types/lucca-front-ng-modal.d.ts +12 -12
  125. package/types/lucca-front-ng-multi-select.d.ts +24 -24
  126. package/types/lucca-front-ng-number-format.d.ts +2 -2
  127. package/types/lucca-front-ng-option.d.ts +18 -18
  128. package/types/lucca-front-ng-page-header.d.ts +1 -1
  129. package/types/lucca-front-ng-popover.d.ts +1 -1
  130. package/types/lucca-front-ng-popover2.d.ts +20 -20
  131. package/types/lucca-front-ng-popup.d.ts +8 -8
  132. package/types/lucca-front-ng-progress-bar.d.ts +1 -1
  133. package/types/lucca-front-ng-read-more.d.ts +6 -6
  134. package/types/lucca-front-ng-scroll-box.d.ts +3 -3
  135. package/types/lucca-front-ng-segmented-control-tabs.d.ts +1 -1
  136. package/types/lucca-front-ng-select.d.ts +12 -12
  137. package/types/lucca-front-ng-sidepanel.d.ts +1 -1
  138. package/types/lucca-front-ng-simple-select.d.ts +11 -11
  139. package/types/lucca-front-ng-skeleton.d.ts +1 -1
  140. package/types/lucca-front-ng-sortable-list.d.ts +8 -8
  141. package/types/lucca-front-ng-time.d.ts +17 -17
  142. package/types/lucca-front-ng-title.d.ts +5 -5
  143. package/types/lucca-front-ng-toast.d.ts +1 -1
  144. package/types/lucca-front-ng-tree-select.d.ts +11 -11
  145. package/types/lucca-front-ng-user-popover.d.ts +6 -6
  146. package/types/lucca-front-ng-user.d.ts +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-file-upload.mjs","sources":["../../../packages/ng/file-upload/translations.ts","../../../packages/ng/file-upload/file-upload.translate.ts","../../../packages/ng/file-upload/formatter.ts","../../../packages/ng/file-upload/base-file-upload/base-file-upload.component.ts","../../../packages/ng/file-upload/file-dropzone/file-dropzone.component.ts","../../../packages/ng/file-upload/file-dropzone/file-dropzone.component.html","../../../packages/ng/file-upload/file-entry/file-entry.component.ts","../../../packages/ng/file-upload/file-entry/file-entry.component.html","../../../packages/ng/file-upload/multi/multi-file-upload.component.ts","../../../packages/ng/file-upload/multi/multi-file-upload.component.html","../../../packages/ng/file-upload/single/single-file-upload.component.ts","../../../packages/ng/file-upload/single/single-file-upload.component.html","../../../packages/ng/file-upload/lucca-front-ng-file-upload.ts"],"sourcesContent":["export const Translations = {\n\ten: {\n\t\tacceptedFormat: { one: 'Accepted format:', other: 'Accepted formats:' },\n\t\tselectFile: { one: 'Select a file', other: 'Select files' },\n\t\tdropOrClick: { one: 'Drag and drop file here or <span>click to browse</span>.', other: 'Drag and drop files here or <span>click to browse</span>.' },\n\t\tmaxWeight: { one: 'Maximum size: {{maxSizeDisplay}}. ', other: 'Maximum file size: {{maxSizeDisplay}}. ' },\n\t\tfileUploadedListed: { one: 'The submitted file is detailed below.', other: 'The submitted files are detailed below.' },\n\t\tall: 'all',\n\t\tfile: '{{fileTypeLastPart}} file',\n\t\tdownload: 'Download',\n\t\tdownloadFile: 'Download file \"{{fileName}}\"',\n\t\tdelete: 'Delete',\n\t\tdeleteFile: 'Delete file \"{{fileName}}\"',\n\t\tpassword: 'Password',\n\t\tconfirmPassword: 'Confirm password',\n\t},\n\tde: {\n\t\tacceptedFormat: { one: 'Accepted format:', other: 'Accepted formats:' },\n\t\tselectFile: { one: 'Select a file', other: 'Select files' },\n\t\tdropOrClick: { one: 'Drag and drop file here or <span>click to browse</span>.', other: 'Drag and drop files here or <span>click to browse</span>.' },\n\t\tmaxWeight: { one: 'Maximum size: {{maxSizeDisplay}}. ', other: 'Maximum file size: {{maxSizeDisplay}}. ' },\n\t\tfileUploadedListed: { one: 'The submitted file is detailed below.', other: 'The submitted files are detailed below.' },\n\t\tall: 'alle',\n\t\tfile: 'Datei {{fileTypeLastPart}}',\n\t\tdownload: 'Download',\n\t\tdownloadFile: 'Die Datei „ {{fileName}} “ downloaden',\n\t\tdelete: 'Löschen',\n\t\tdeleteFile: 'Die Datei „ {{fileName}} “ löschen',\n\t\tpassword: 'Passwort',\n\t\tconfirmPassword: 'Passwort',\n\t},\n\tfr: {\n\t\tacceptedFormat: { one: 'Format accepté :', other: 'Formats acceptés :' },\n\t\tselectFile: { one: 'Sélectionner un fichier', other: 'Sélectionner des fichiers' },\n\t\tdropOrClick: { one: 'Déposez le fichier ici ou <span>cliquez pour le sélectionner</span>.', other: 'Déposez les fichiers ici ou <span>cliquez pour les sélectionner</span>.' },\n\t\tmaxWeight: { one: 'Poids maximum : {{maxSizeDisplay}}. ', other: 'Poids maximum pour un fichier : {{maxSizeDisplay}}. ' },\n\t\tfileUploadedListed: { one: 'Le fichier déjà déposé est détaillé après.', other: 'Les fichiers déjà déposés sont détaillés après.' },\n\t\tall: 'tous',\n\t\tfile: 'Fichier {{fileTypeLastPart}}',\n\t\tdownload: 'Télécharger',\n\t\tdownloadFile: 'Télécharger le fichier « {{fileName}} »',\n\t\tdelete: 'Supprimer',\n\t\tdeleteFile: 'Supprimer le fichier « {{fileName}} »',\n\t\tpassword: 'Mot de passe',\n\t\tconfirmPassword: 'Valider le mot de passe',\n\t},\n\tit: {\n\t\tacceptedFormat: { one: 'Formato accettato:', other: 'Formati accettati:' },\n\t\tselectFile: { one: 'Selezionare un file', other: 'Selezionare i file' },\n\t\tdropOrClick: { one: 'Rilascia qui il file o <span>clicca per selezionarlo</span>.', other: 'Rilascia qui i file o <span>clicca per selezionarli</span>.' },\n\t\tmaxWeight: { one: 'Dimensione massima: {{maxSizeDisplay}}. ', other: 'Dimensione massima per un file: {{maxSizeDisplay}}. ' },\n\t\tfileUploadedListed: { one: 'Il file già rilasciato è indicato qui sotto.', other: 'I file già rilasciati sono indicati qui sotto.' },\n\t\tall: 'tutti',\n\t\tfile: 'File {{fileTypeLastPart}}',\n\t\tdownload: 'Scaricare',\n\t\tdownloadFile: 'Scaricare il file \"{{fileName}}\"',\n\t\tdelete: 'Eliminare',\n\t\tdeleteFile: 'Eliminare il file \"{{fileName}}\"',\n\t\tpassword: 'Password',\n\t\tconfirmPassword: 'Confermare la password',\n\t},\n\tnl: {\n\t\tacceptedFormat: { one: 'Goedgekeurd formaat:', other: 'Goedgekeurde formaten:' },\n\t\tselectFile: { one: 'Een bestand selecteren', other: 'Bestanden selecteren' },\n\t\tdropOrClick: { one: 'Kies het bestand hier of <span>klik om te selecteren</span>.', other: 'Kies de bestanden hier of <span>klik om te selecteren</span>.' },\n\t\tmaxWeight: { one: 'Maximale grootte: {{maxSizeDisplay}}. ', other: 'Maximale bestandsgrootte: {{maxSizeDisplay}}. ' },\n\t\tfileUploadedListed: { one: 'Het reeds ingediende bestand wordt naderhand gedetailleerd.', other: 'Reeds ingediende bestanden worden naderhand gedetailleerd.' },\n\t\tall: 'alle',\n\t\tfile: 'Bestand {{fileTypeLastPart}}',\n\t\tdownload: 'Downloaden',\n\t\tdownloadFile: \"Het bestand '{{fileName}}' downloaden\",\n\t\tdelete: 'Verwijderen',\n\t\tdeleteFile: \"Het bestand '{{fileName}}' verwijderen\",\n\t\tpassword: 'Wachtwoord',\n\t\tconfirmPassword: 'Wachtwoord valideren',\n\t},\n\t'nl-BE': {\n\t\tacceptedFormat: { one: 'Goedgekeurd formaat:', other: 'Goedgekeurde formaten:' },\n\t\tselectFile: { one: 'Een bestand selecteren', other: 'Bestanden selecteren' },\n\t\tdropOrClick: { one: 'Kies het bestand hier of <span>klik om te selecteren</span>.', other: 'Kies de bestanden hier of <span>klik om te selecteren</span>.' },\n\t\tmaxWeight: { one: 'Maximale grootte: {{maxSizeDisplay}}. ', other: 'Maximale bestandsgrootte: {{maxSizeDisplay}}. ' },\n\t\tfileUploadedListed: { one: 'Het reeds ingediende bestand wordt naderhand gedetailleerd.', other: 'Reeds ingediende bestanden worden naderhand gedetailleerd.' },\n\t\tall: 'alle',\n\t\tfile: 'Bestand {{fileTypeLastPart}}',\n\t\tdownload: 'Downloaden',\n\t\tdownloadFile: \"Het bestand '{{fileName}}' downloaden\",\n\t\tdelete: 'Verwijderen',\n\t\tdeleteFile: \"Het bestand '{{fileName}}' verwijderen\",\n\t\tpassword: 'Wachtwoord',\n\t\tconfirmPassword: 'Wachtwoord valideren',\n\t},\n\tes: {\n\t\tacceptedFormat: { one: 'Formato aceptado:', other: 'Formatos aceptados:' },\n\t\tselectFile: { one: 'Seleccionar un archivo', other: 'Seleccionar archivos' },\n\t\tdropOrClick: { one: 'Carga el archivo aquí o <span>pulsa para seleccionarlo</span>.', other: 'Carga los archivos aquí o <span>pulsa para seleccionarlos</span>.' },\n\t\tmaxWeight: { one: 'Tamaño máximo: {{maxSizeDisplay}}. ', other: 'Tamaño máximo de un archivo: {{maxSizeDisplay}}. ' },\n\t\tfileUploadedListed: { one: 'El archivo ya cargado se detalla después.', other: 'Los archivos ya cargados se detallan después.' },\n\t\tall: 'todos',\n\t\tfile: 'Archivo {{fileTypeLastPart}}',\n\t\tdownload: 'Descargar',\n\t\tdownloadFile: 'Descargar el archivo «{{fileName}}»',\n\t\tdelete: 'Eliminar',\n\t\tdeleteFile: 'Eliminar el archivo «{{fileName}}»',\n\t\tpassword: 'Contraseña',\n\t\tconfirmPassword: 'Validar la contraseña',\n\t},\n\tpt: {\n\t\tacceptedFormat: { one: 'Formato aceite :', other: 'Formatos aceites :' },\n\t\tselectFile: { one: 'Select a file', other: 'Select files' },\n\t\tdropOrClick: { one: 'Drag and drop file here or <span>click to browse</span>.', other: 'Drag and drop files here or <span>click to browse</span>.' },\n\t\tmaxWeight: { one: 'Maximum size: {{maxSizeDisplay}}. ', other: 'Maximum file size: {{maxSizeDisplay}}. ' },\n\t\tfileUploadedListed: { one: 'The submitted file is detailed below.', other: 'The submitted files are detailed below.' },\n\t\tall: 'todos',\n\t\tfile: 'Ficheiro {{fileTypeLastPart}}',\n\t\tdownload: 'Descarregar',\n\t\tdownloadFile: 'Descarregar o ficheiro \" {{fileName}} ',\n\t\tdelete: 'Eliminar',\n\t\tdeleteFile: 'Eliminar o ficheiro \" {{fileName}} ',\n\t\tpassword: 'Palavra-passe',\n\t\tconfirmPassword: 'Confirmar a palavra-passe',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_FILE_UPLOAD_TRANSLATIONS = new InjectionToken('LuFileUploadTranslations', {\n\tfactory: () => luFileUploadTranslations,\n});\n\nexport interface LuFileUploadLabel {\n\tacceptedFormat: {\n\t\tone: string;\n\t\tother: string;\n\t};\n\tselectFile: {\n\t\tone: string;\n\t\tother: string;\n\t};\n\tdropOrClick: {\n\t\tone: string;\n\t\tother: string;\n\t};\n\tmaxWeight: {\n\t\tone: string;\n\t\tother: string;\n\t};\n\tfileUploadedListed: {\n\t\tone: string;\n\t\tother: string;\n\t};\n\tall: string;\n\tfile: string;\n\tdownload: string;\n\tdownloadFile: string;\n\tdelete: string;\n\tdeleteFile: string;\n\tpassword: string;\n\tconfirmPassword: string;\n}\n\nexport const luFileUploadTranslations: LuTranslation<LuFileUploadLabel> = Translations;\n","export const KILO_BYTE = 1000;\nexport const MEGA_BYTE = KILO_BYTE * 1000;\n\nexport function formatFileSize(locale: string, size: number): string {\n\tlet unit = 'byte';\n\tlet value = size;\n\n\tif (size >= MEGA_BYTE) {\n\t\tunit = 'megabyte';\n\t\tvalue /= MEGA_BYTE;\n\t} else if (size >= KILO_BYTE) {\n\t\tunit = 'kilobyte';\n\t\tvalue /= KILO_BYTE;\n\t}\n\n\tconst weightFormatter = Intl.NumberFormat(locale, {\n\t\tnotation: 'compact',\n\t\tstyle: 'unit',\n\t\tunit: unit,\n\t\tunitDisplay: 'narrow',\n\t});\n\n\treturn weightFormatter.format(value);\n}\n","import { booleanAttribute, computed, Directive, effect, inject, input, LOCALE_ID, output } from '@angular/core';\nimport { intlInputOptions } from '@lucca-front/ng/core';\nimport { FORM_FIELD_INSTANCE } from '@lucca-front/ng/form-field';\nimport { LU_FILE_UPLOAD_TRANSLATIONS } from '../file-upload.translate';\nimport { formatFileSize, MEGA_BYTE } from '../formatter';\n\nlet nextId = 0;\n\n@Directive()\nexport abstract class BaseFileUploadComponent {\n\tprotected locale = inject(LOCALE_ID);\n\n\tprotected idSuffix = nextId++;\n\n\tprotected droppable = false;\n\n\tintl = input(...intlInputOptions(LU_FILE_UPLOAD_TRANSLATIONS));\n\n\tprotected formFieldRef = inject(FORM_FIELD_INSTANCE, { optional: true });\n\n\tfilePicked = output<File>();\n\n\taccept = input<\n\t\tArray<{\n\t\t\tformat: string;\n\t\t\tname?: string;\n\t\t}>\n\t>([]);\n\n\tprotected defaultAccept = computed(() => [\n\t\t{\n\t\t\tformat: '*',\n\t\t\tname: this.intl().all,\n\t\t},\n\t]);\n\n\tprotected resolvedAccept = computed(() => {\n\t\tconst acceptValue = this.accept();\n\t\treturn acceptValue.length > 0 ? acceptValue : this.defaultAccept();\n\t});\n\n\tacceptNames = computed(() =>\n\t\tthis.resolvedAccept()\n\t\t\t.filter((e) => e.name)\n\t\t\t.map((e) => e.name),\n\t);\n\n\tacceptAttribute = computed(() => this.resolvedAccept().map((e) => e.format));\n\n\tacceptAll = computed(() => {\n\t\treturn this.acceptAttribute().some((str) => str.includes('*'));\n\t});\n\n\tstructure = input(false, { transform: booleanAttribute });\n\n\tfileMaxSize = input<number>(80 * MEGA_BYTE);\n\n\tmaxSizeDisplay = computed(() => formatFileSize(this.locale, this.fileMaxSize()));\n\n\tsize = input<'S' | null>(null);\n\n\tpassword = input(false, { transform: booleanAttribute });\n\n\tillustration = input<\n\t\t/** @deprecated use 'invoice' instead */\n\t\t'paper' | 'picture' | 'invoice'\n\t>('invoice');\n\n\tillus = computed(() => {\n\t\tswitch (this.illustration()) {\n\t\t\tcase 'paper':\n\t\t\tcase 'invoice':\n\t\t\t\treturn 'invoice';\n\t\t\tdefault:\n\t\t\t\treturn 'picture';\n\t\t}\n\t});\n\n\trequired = input(false, { transform: booleanAttribute });\n\n\treadonly buttonFilled = input(false, { transform: booleanAttribute });\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis.formFieldRef?.forceInputRequired.set(this.required());\n\t\t});\n\t}\n\n\tfilesChange(event: Event) {\n\t\tconst host = event.target as HTMLInputElement;\n\t\tthis.droppable = false;\n\t\tfor (const file of Array.from(host.files)) {\n\t\t\tthis.filePicked.emit(file);\n\t\t}\n\t\thost.value = null;\n\t}\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { BubbleIllustrationComponent } from '@lucca-front/ng/bubble-illustration';\nimport { IntlParamsPipe } from '@lucca-front/ng/core';\nimport { BaseFileUploadComponent } from '../base-file-upload/base-file-upload.component';\n\n@Component({\n\tselector: 'lu-file-dropzone',\n\ttemplateUrl: './file-dropzone.component.html',\n\tstyleUrl: './file-dropzone.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\timports: [IntlParamsPipe, BubbleIllustrationComponent],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FileDropzoneComponent extends BaseFileUploadComponent {}\n","<div class=\"fileUpload mod-dropzone\" [class.is-droppable]=\"droppable\" (dragenter)=\"droppable = true\" (dragleave)=\"droppable = false\">\n\t<div class=\"fileUpload-status\">\n\t\t<lu-bubble-illustration [illustration]=\"illus()\" action size=\"L\" />\n\t</div>\n\t<div class=\"fileUpload-instruction\" [attr.id]=\"'fileUpload-instruction-' + idSuffix\">\n\t\t@if (acceptNames().length) {\n\t\t\t<span class=\"fileUpload-instruction-formats\">\n\t\t\t\t@if (acceptNames().length > 1 || acceptAll()) {\n\t\t\t\t\t{{ intl().acceptedFormat.other }}\n\t\t\t\t} @else {\n\t\t\t\t\t{{ intl().acceptedFormat.one }}\n\t\t\t\t}\n\t\t\t\t{{ acceptNames().join(\", \") }}.\n\t\t\t</span>\n\t\t}\n\t\t@if (fileMaxSize()) {\n\t\t\t<span class=\"fileUpload-instruction-size\">{{ intl().maxWeight.other | intlParams: { maxSizeDisplay: maxSizeDisplay() } }}</span>\n\t\t}\n\t</div>\n</div>\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, inject, input, LOCALE_ID, ViewEncapsulation } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonComponent } from '@lucca-front/ng/button';\nimport { intlInputOptions, IntlParamsPipe, isNotNil } from '@lucca-front/ng/core';\nimport { DividerComponent } from '@lucca-front/ng/divider';\nimport { FormFieldComponent } from '@lucca-front/ng/form-field';\nimport { TextInputComponent } from '@lucca-front/ng/forms';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { InlineMessageComponent } from '@lucca-front/ng/inline-message';\nimport { LuTooltipTriggerDirective } from '@lucca-front/ng/tooltip';\nimport { Subject } from 'rxjs';\nimport { FileEntry } from '../file-upload-entry';\nimport { LU_FILE_UPLOAD_TRANSLATIONS } from '../file-upload.translate';\nimport { formatFileSize } from '../formatter';\n\n@Component({\n\tselector: 'lu-file-entry',\n\ttemplateUrl: './file-entry.component.html',\n\tstyleUrl: './file-entry.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\timports: [IconComponent, ButtonComponent, InlineMessageComponent, DividerComponent, FormFieldComponent, TextInputComponent, FormsModule, IntlParamsPipe, LuTooltipTriggerDirective],\n\thost: {\n\t\tclass: 'pr-u-displayContents',\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FileEntryComponent {\n\t#locale = inject(LOCALE_ID);\n\n\treadonly intl = input(...intlInputOptions(LU_FILE_UPLOAD_TRANSLATIONS));\n\n\treadonly state = input<'success' | 'loading' | 'error' | 'default'>('default');\n\n\treadonly displayFileName = input(false, { transform: booleanAttribute });\n\n\treadonly inlineMessageError = input<string | null>(null);\n\n\treadonly entry = input.required<FileEntry>();\n\n\treadonly size = input<'S' | null>(null);\n\n\treadonly iconOverride = input('');\n\n\treadonly downloadURL = input('');\n\n\treadonly password = input('');\n\tpasswordChange$ = new Subject<string>();\n\tpasswordChange = outputFromObservable(this.passwordChange$);\n\n\tget withPassword() {\n\t\treturn this.passwordChange$.observed;\n\t}\n\n\treadonly media = input(false, { transform: booleanAttribute });\n\n\tdeleteFile$ = new Subject<void>();\n\n\tdeleteFile = outputFromObservable(this.deleteFile$);\n\n\tget deletable() {\n\t\treturn this.deleteFile$.observed;\n\t}\n\n\treadonly fileName = computed(() => this.entry().name);\n\treadonly fileType = computed<string>(() => this.entry().type ?? '');\n\treadonly fileSize = computed<number>(() => this.entry().size ?? 0);\n\n\treadonly fileSizeDisplay = computed(() => {\n\t\tconst fileSize = this.fileSize();\n\t\treturn isNotNil(fileSize) ? formatFileSize(this.#locale, fileSize) : null;\n\t});\n\treadonly fileTypeDisplay = computed(() => {\n\t\tconst fileExtension: string = extractFileExtension(this.fileName(), this.fileType());\n\n\t\treturn this.intl().file.replace('{{fileTypeLastPart}}', fileExtension);\n\t});\n\n\treadonly previewUrl = input<string>('');\n\n\treadonly fileEntryIconSrc = computed(() => {\n\t\tconst fileExtension = this.fileName().split('.').pop();\n\t\tconst fileEntryIconRoot = 'https://cdn.lucca.fr/transverse/prisme/visuals/file-entry/';\n\t\tconst fileEntryIconExtension = '.svg';\n\n\t\tswitch (fileExtension) {\n\t\t\tcase 'pdf':\n\t\t\tcase 'xls':\n\t\t\tcase 'xlsx':\n\t\t\tcase 'doc':\n\t\t\tcase 'csv':\n\t\t\t\treturn fileEntryIconRoot + fileExtension + fileEntryIconExtension;\n\t\t\tcase 'jpg':\n\t\t\tcase 'jpeg':\n\t\t\tcase 'png':\n\t\t\tcase 'gif':\n\t\t\tcase 'svg':\n\t\t\t\treturn fileEntryIconRoot + 'image' + fileEntryIconExtension;\n\t\t\tdefault:\n\t\t\t\treturn fileEntryIconRoot + 'default' + fileEntryIconExtension;\n\t\t}\n\t});\n\n\treadonly tooltip = computed(() => {\n\t\tconst fileSize = this.fileSizeDisplay() ? ` – ${this.fileSizeDisplay()}` : '';\n\t\tif (this.state() === 'error') {\n\t\t\tif (!this.media()) {\n\t\t\t\treturn null;\n\t\t\t} else {\n\t\t\t\treturn this.fileName() + fileSize;\n\t\t\t}\n\t\t}\n\n\t\tif (!this.media() && this.size() === null) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (this.size() === 'S' && !this.media()) {\n\t\t\treturn this.fileTypeDisplay() + fileSize;\n\t\t}\n\n\t\treturn this.fileName() + ' – ' + this.fileTypeDisplay() + fileSize;\n\t});\n\n\treadonly dlClasses = computed(() => ({\n\t\t[`is-${this.state()}`]: !!this.state(),\n\t\t[`mod-${this.size()}`]: !!this.size(),\n\t}));\n}\n\nfunction extractFileExtension(fileName: string, type?: string): string {\n\tif (!type) {\n\t\treturn fileName.split('.')[1]?.toUpperCase() || '';\n\t}\n\n\tswitch (type) {\n\t\tcase 'application/vnd.ms-excel':\n\t\t\treturn 'XLS';\n\t\tcase 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\n\t\t\treturn 'XLSX';\n\t\tcase 'application/msword':\n\t\t\treturn 'DOC';\n\t\tcase 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n\t\t\treturn 'DOCX';\n\t\tdefault:\n\t\t\treturn type.split('/')[1].toUpperCase();\n\t}\n}\n","<dl class=\"fileEntry\" [class.mod-media]=\"media()\" [class]=\"dlClasses()\">\n\t@if (!media()) {\n\t\t<dt class=\"fileEntry-filename\">\n\t\t\t<div class=\"fileEntry-filename-tooltip\" luTooltip luTooltipWhenEllipsis>{{ fileName() }}</div>\n\t\t</dt>\n\t\t@if (state() === \"error\" && inlineMessageError()) {\n\t\t\t<dd class=\"fileEntry-inlineMessage\">\n\t\t\t\t<lu-inline-message withTooltip [label]=\"inlineMessageError()\" [state]=\"'error'\" />\n\t\t\t</dd>\n\t\t} @else {\n\t\t\t<dd class=\"fileEntry-description\">\n\t\t\t\t<span class=\"fileEntry-description-format\" luTooltip luTooltipWhenEllipsis>{{ fileTypeDisplay() }}</span>\n\t\t\t\t@if (fileSizeDisplay(); as fileSizeDisplay) {\n\t\t\t\t\t<span class=\"pr-u-mask\"> – </span>\n\t\t\t\t\t<lu-divider vertical class=\"fileEntry-description-divider\" />\n\t\t\t\t\t<span class=\"fileEntry-description-size\">{{ fileSizeDisplay }}</span>\n\t\t\t\t}\n\t\t\t</dd>\n\t\t}\n\t}\n\t<dd class=\"fileEntry-status\">\n\t\t<div class=\"fileEntry-status-content\" [luTooltip]=\"tooltip()\">\n\t\t\t@if (state() === \"error\" && inlineMessageError()) {\n\t\t\t\t@if (media()) {\n\t\t\t\t\t<div class=\"fileEntry-status-content-inside\">\n\t\t\t\t\t\t<lu-inline-message class=\"fileEntry-status-content-inlineMessage\" [label]=\"inlineMessageError()\" [state]=\"'error'\" />\n\t\t\t\t\t</div>\n\t\t\t\t} @else {\n\t\t\t\t\t<div class=\"fileEntry-status-content-inside\">\n\t\t\t\t\t\t<lu-icon class=\"fileEntry-status-content-inside-icon\" icon=\"signError\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t} @else {\n\t\t\t\t@if (previewUrl() && state() !== \"error\") {\n\t\t\t\t\t<div class=\"fileEntry-status-content-inside\">\n\t\t\t\t\t\t<img class=\"fileEntry-status-content-inside-img\" [src]=\"previewUrl()\" alt=\"\" loading=\"lazy\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (state() === \"loading\") {\n\t\t\t\t\t<div class=\"fileEntry-status-content-inside\">\n\t\t\t\t\t\t<div class=\"fileEntry-status-content-inside-loading loading\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (!previewUrl() && state() !== \"loading\") {\n\t\t\t\t\t<div class=\"fileEntry-status-content-inside\">\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tclass=\"fileEntry-status-content-inside-svg\"\n\t\t\t\t\t\t\t[attr.src]=\"iconOverride() || fileEntryIconSrc()\"\n\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\twidth=\"32\"\n\t\t\t\t\t\t\theight=\"32\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t}\n\t\t\t@if (displayFileName() && media()) {\n\t\t\t\t<div class=\"fileEntry-status-content-fileName\" aria-hidden=\"true\">{{ fileName() }}</div>\n\t\t\t}\n\t\t</div>\n\t</dd>\n\t@if (downloadURL() || deletable) {\n\t\t<dd class=\"fileEntry-toolbar\">\n\t\t\t<div class=\"fileToolbar\" [class.mod-disablePositioning]=\"!media()\" [class.mod-S]=\"size() === 'S'\">\n\t\t\t\t<ul class=\"fileToolbar-list\">\n\t\t\t\t\t@if (downloadURL()) {\n\t\t\t\t\t\t<li class=\"fileToolbar-list-item\">\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t[href]=\"downloadURL()\"\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\tdownload=\"download\"\n\t\t\t\t\t\t\t\tclass=\"fileToolbar-list-item-button\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tluButton\n\t\t\t\t\t\t\t\t[luTooltip]=\"intl().download\"\n\t\t\t\t\t\t\t\tluTooltipOnlyForDisplay\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<lu-icon\n\t\t\t\t\t\t\t\t\tclass=\"fileToolbar-list-item-button-icon\"\n\t\t\t\t\t\t\t\t\ticon=\"arrowDownload\"\n\t\t\t\t\t\t\t\t\t[alt]=\"intl().downloadFile | intlParams: { fileName: fileName() }\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t}\n\t\t\t\t\t@if (deletable) {\n\t\t\t\t\t\t<li class=\"fileToolbar-list-item\">\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclass=\"fileToolbar-list-item-button\"\n\t\t\t\t\t\t\t\t[class.palette-critical]=\"state() === 'error'\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tluButton\n\t\t\t\t\t\t\t\t[luTooltip]=\"intl().delete\"\n\t\t\t\t\t\t\t\tluTooltipOnlyForDisplay\n\t\t\t\t\t\t\t\t(click)=\"deleteFile$.next()\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<lu-icon\n\t\t\t\t\t\t\t\t\tclass=\"fileToolbar-list-item-button-icon\"\n\t\t\t\t\t\t\t\t\ticon=\"trashDelete\"\n\t\t\t\t\t\t\t\t\t[alt]=\"intl().deleteFile | intlParams: { fileName: fileName() }\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t</dd>\n\t}\n</dl>\n@if (withPassword) {\n\t<div class=\"fileEntry_box box mod-withArrow mod-neutral\">\n\t\t<div class=\"box-arrow mod-neutral\"></div>\n\t\t<lu-form-field [label]=\"intl().password\">\n\t\t\t<div class=\"fileEntry_box-field\">\n\t\t\t\t<lu-text-input\n\t\t\t\t\tclass=\"fileEntry_box-field-textField\"\n\t\t\t\t\trequired\n\t\t\t\t\thasClearer\n\t\t\t\t\tsearchIcon=\"searchMagnifyingGlass\"\n\t\t\t\t\ttype=\"password\"\n\t\t\t\t\t[ngModel]=\"password()\"\n\t\t\t\t\t(ngModelChange)=\"passwordChange$.next($event)\"\n\t\t\t\t/>\n\t\t\t\t<button class=\"fileEntry_box-field-button\" luButton type=\"button\">{{ intl().confirmPassword }}</button>\n\t\t\t</div>\n\t\t</lu-form-field>\n\t</div>\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { BubbleIllustrationComponent } from '@lucca-front/ng/bubble-illustration';\nimport { IntlParamsPipe } from '@lucca-front/ng/core';\nimport { InputDirective } from '@lucca-front/ng/form-field';\nimport { BaseFileUploadComponent } from '../base-file-upload/base-file-upload.component';\n\n@Component({\n\tselector: 'lu-multi-file-upload',\n\ttemplateUrl: './multi-file-upload.component.html',\n\tstyleUrl: './multi-file-upload.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\t'[class.mod-structure]': 'structure()',\n\t},\n\timports: [InputDirective, IntlParamsPipe, BubbleIllustrationComponent],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MultiFileUploadComponent extends BaseFileUploadComponent {}\n","<div class=\"fileUpload\" [class.is-droppable]=\"droppable\" [class.mod-S]=\"size() === 'S'\" [class.is-hidden]=\"false\">\n\t<input\n\t\t[attr.aria-describedby]=\"'fileUpload-instruction-' + idSuffix\"\n\t\tclass=\"fileUpload-input\"\n\t\ttype=\"file\"\n\t\ttitle=\"\"\n\t\t[attr.accept]=\"acceptAttribute().length > 0 ? acceptAttribute() : null\"\n\t\tluInput\n\t\t(dragenter)=\"droppable = true\"\n\t\t(dragleave)=\"droppable = false\"\n\t\t(change)=\"filesChange($event)\"\n\t\tmultiple=\"multiple\"\n\t\t#inputRef\n\t/>\n\t<div class=\"fileUpload-status\">\n\t\t<lu-bubble-illustration [illustration]=\"illus()\" action size=\"L\" />\n\t</div>\n\t@if (size() !== \"S\") {\n\t\t<ng-content />\n\t}\n\t<div class=\"fileUpload-instruction\" [attr.id]=\"'fileUpload-instruction-' + idSuffix\">\n\t\t<span class=\"fileUpload-instruction-action\" aria-hidden=\"true\" [innerHTML]=\"intl().dropOrClick.other\"></span>\n\t\t@if (acceptNames().length) {\n\t\t\t<span class=\"fileUpload-instruction-formats\">\n\t\t\t\t@if (acceptNames().length > 1 || acceptAll()) {\n\t\t\t\t\t{{ intl().acceptedFormat.other }}\n\t\t\t\t} @else {\n\t\t\t\t\tintl().acceptedFormat.one\n\t\t\t\t}\n\t\t\t\t{{ acceptNames().join(\", \") }}.\n\t\t\t</span>\n\t\t}\n\t\t@if (fileMaxSize()) {\n\t\t\t<span class=\"fileUpload-instruction-size\">{{ intl().maxWeight.other | intlParams: { maxSizeDisplay: maxSizeDisplay() } }}</span>\n\t\t}\n\t\t<span class=\"pr-u-mask\">{{ intl().fileUploadedListed.other }}</span>\n\t</div>\n\t<span class=\"fileUpload-button button\" [class.mod-filled]=\"buttonFilled()\" aria-hidden=\"true\">{{ intl().selectFile.other }}</span>\n</div>\n","import { booleanAttribute, ChangeDetectionStrategy, Component, input, output, ViewEncapsulation } from '@angular/core';\nimport { BubbleIllustrationComponent } from '@lucca-front/ng/bubble-illustration';\nimport { IntlParamsPipe } from '@lucca-front/ng/core';\nimport { InputDirective } from '@lucca-front/ng/form-field';\nimport { BaseFileUploadComponent } from '../base-file-upload/base-file-upload.component';\nimport { FileEntryComponent } from '../file-entry/file-entry.component';\nimport { FileEntry } from '../file-upload-entry';\n\n@Component({\n\tselector: 'lu-single-file-upload',\n\ttemplateUrl: './single-file-upload.component.html',\n\tstyleUrl: './single-file-upload.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\t'[class.mod-structure]': 'structure()',\n\t},\n\timports: [InputDirective, FileEntryComponent, IntlParamsPipe, BubbleIllustrationComponent],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SingleFileUploadComponent extends BaseFileUploadComponent {\n\treadonly entry = input<FileEntry | null>(null);\n\n\treadonly state = input<'loading' | 'success' | 'error' | 'default'>('default');\n\n\treadonly inlineMessageError = input<string | null>(null);\n\n\treadonly previewUrl = input<string | null>(null);\n\n\treadonly deleteFile = output<void>();\n\n\treadonly displayFileName = input(false, { transform: booleanAttribute });\n}\n","<div class=\"fileUpload\" [class.is-droppable]=\"droppable\" [class.mod-S]=\"size() === 'S'\" [class.is-hidden]=\"!!entry()\">\n\t<input\n\t\tclass=\"fileUpload-input\"\n\t\ttype=\"file\"\n\t\ttitle=\"\"\n\t\t[attr.accept]=\"acceptAttribute().length > 0 ? acceptAttribute() : null\"\n\t\tluInput\n\t\t(dragenter)=\"droppable = true\"\n\t\t(dragleave)=\"droppable = false\"\n\t\t(change)=\"filesChange($event)\"\n\t\t[attr.disabled]=\"!!entry() ? 'disabled' : null\"\n\t\t[attr.aria-describedby]=\"'fileUpload-instruction-' + idSuffix\"\n\t/>\n\t<div class=\"fileUpload-status\">\n\t\t<lu-bubble-illustration [illustration]=\"illus()\" action size=\"L\" />\n\t</div>\n\t@if (size() !== \"S\") {\n\t\t<ng-content />\n\t}\n\t<div class=\"fileUpload-instruction\" [attr.id]=\"'fileUpload-instruction-' + idSuffix\">\n\t\t<span class=\"fileUpload-instruction-action\" aria-hidden=\"true\" [innerHTML]=\"intl().dropOrClick.one\"></span>\n\t\t@if (acceptNames().length) {\n\t\t\t<span class=\"fileUpload-instruction-formats\">\n\t\t\t\t@if (acceptNames().length > 1 || acceptAll()) {\n\t\t\t\t\t{{ intl().acceptedFormat.other }}\n\t\t\t\t} @else {\n\t\t\t\t\t{{ intl().acceptedFormat.one }}\n\t\t\t\t}\n\t\t\t\t{{ acceptNames().join(\", \") }}.\n\t\t\t</span>\n\t\t}\n\t\t@if (fileMaxSize()) {\n\t\t\t<span class=\"fileUpload-instruction-size\">{{ intl().maxWeight.one | intlParams: { maxSizeDisplay: maxSizeDisplay() } }}</span>\n\t\t}\n\t\t<span class=\"pr-u-mask\">{{ intl().fileUploadedListed.one }}</span>\n\t</div>\n\t<span class=\"fileUpload-button button\" [class.mod-filled]=\"buttonFilled()\" aria-hidden=\"true\">{{ intl().selectFile.one }}</span>\n</div>\n@if (entry()) {\n\t<lu-file-entry\n\t\t[media]=\"size() === null\"\n\t\t[previewUrl]=\"previewUrl()\"\n\t\t[entry]=\"entry()\"\n\t\t[state]=\"state()\"\n\t\t(deleteFile)=\"deleteFile.emit()\"\n\t\t[inlineMessageError]=\"inlineMessageError()\"\n\t\t[displayFileName]=\"displayFileName()\"\n\t/>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-file-upload.mjs","sources":["../../../packages/ng/file-upload/translations.ts","../../../packages/ng/file-upload/file-upload.translate.ts","../../../packages/ng/file-upload/formatter.ts","../../../packages/ng/file-upload/base-file-upload/base-file-upload.component.ts","../../../packages/ng/file-upload/file-dropzone/file-dropzone.component.ts","../../../packages/ng/file-upload/file-dropzone/file-dropzone.component.html","../../../packages/ng/file-upload/file-entry/file-entry.component.ts","../../../packages/ng/file-upload/file-entry/file-entry.component.html","../../../packages/ng/file-upload/multi/multi-file-upload.component.ts","../../../packages/ng/file-upload/multi/multi-file-upload.component.html","../../../packages/ng/file-upload/single/single-file-upload.component.ts","../../../packages/ng/file-upload/single/single-file-upload.component.html","../../../packages/ng/file-upload/lucca-front-ng-file-upload.ts"],"sourcesContent":["export const Translations = {\n\ten: {\n\t\tacceptedFormat: { one: 'Accepted format:', other: 'Accepted formats:' },\n\t\tselectFile: { one: 'Select a file', other: 'Select files' },\n\t\tdropOrClick: { one: 'Drag and drop file here or <span>click to browse</span>.', other: 'Drag and drop files here or <span>click to browse</span>.' },\n\t\tmaxWeight: { one: 'Maximum size: {{maxSizeDisplay}}. ', other: 'Maximum file size: {{maxSizeDisplay}}. ' },\n\t\tfileUploadedListed: { one: 'The submitted file is detailed below.', other: 'The submitted files are detailed below.' },\n\t\tall: 'all',\n\t\tfile: '{{fileTypeLastPart}} file',\n\t\tdownload: 'Download',\n\t\tdownloadFile: 'Download file \"{{fileName}}\"',\n\t\tdelete: 'Delete',\n\t\tdeleteFile: 'Delete file \"{{fileName}}\"',\n\t\tpassword: 'Password',\n\t\tconfirmPassword: 'Confirm password',\n\t},\n\tde: {\n\t\tacceptedFormat: { one: 'Accepted format:', other: 'Accepted formats:' },\n\t\tselectFile: { one: 'Select a file', other: 'Select files' },\n\t\tdropOrClick: { one: 'Drag and drop file here or <span>click to browse</span>.', other: 'Drag and drop files here or <span>click to browse</span>.' },\n\t\tmaxWeight: { one: 'Maximum size: {{maxSizeDisplay}}. ', other: 'Maximum file size: {{maxSizeDisplay}}. ' },\n\t\tfileUploadedListed: { one: 'The submitted file is detailed below.', other: 'The submitted files are detailed below.' },\n\t\tall: 'alle',\n\t\tfile: 'Datei {{fileTypeLastPart}}',\n\t\tdownload: 'Download',\n\t\tdownloadFile: 'Die Datei „ {{fileName}} “ downloaden',\n\t\tdelete: 'Löschen',\n\t\tdeleteFile: 'Die Datei „ {{fileName}} “ löschen',\n\t\tpassword: 'Passwort',\n\t\tconfirmPassword: 'Passwort',\n\t},\n\tfr: {\n\t\tacceptedFormat: { one: 'Format accepté :', other: 'Formats acceptés :' },\n\t\tselectFile: { one: 'Sélectionner un fichier', other: 'Sélectionner des fichiers' },\n\t\tdropOrClick: { one: 'Déposez le fichier ici ou <span>cliquez pour le sélectionner</span>.', other: 'Déposez les fichiers ici ou <span>cliquez pour les sélectionner</span>.' },\n\t\tmaxWeight: { one: 'Poids maximum : {{maxSizeDisplay}}. ', other: 'Poids maximum pour un fichier : {{maxSizeDisplay}}. ' },\n\t\tfileUploadedListed: { one: 'Le fichier déjà déposé est détaillé après.', other: 'Les fichiers déjà déposés sont détaillés après.' },\n\t\tall: 'tous',\n\t\tfile: 'Fichier {{fileTypeLastPart}}',\n\t\tdownload: 'Télécharger',\n\t\tdownloadFile: 'Télécharger le fichier « {{fileName}} »',\n\t\tdelete: 'Supprimer',\n\t\tdeleteFile: 'Supprimer le fichier « {{fileName}} »',\n\t\tpassword: 'Mot de passe',\n\t\tconfirmPassword: 'Valider le mot de passe',\n\t},\n\tit: {\n\t\tacceptedFormat: { one: 'Formato accettato:', other: 'Formati accettati:' },\n\t\tselectFile: { one: 'Selezionare un file', other: 'Selezionare i file' },\n\t\tdropOrClick: { one: 'Rilascia qui il file o <span>clicca per selezionarlo</span>.', other: 'Rilascia qui i file o <span>clicca per selezionarli</span>.' },\n\t\tmaxWeight: { one: 'Dimensione massima: {{maxSizeDisplay}}. ', other: 'Dimensione massima per un file: {{maxSizeDisplay}}. ' },\n\t\tfileUploadedListed: { one: 'Il file già rilasciato è indicato qui sotto.', other: 'I file già rilasciati sono indicati qui sotto.' },\n\t\tall: 'tutti',\n\t\tfile: 'File {{fileTypeLastPart}}',\n\t\tdownload: 'Scaricare',\n\t\tdownloadFile: 'Scaricare il file \"{{fileName}}\"',\n\t\tdelete: 'Eliminare',\n\t\tdeleteFile: 'Eliminare il file \"{{fileName}}\"',\n\t\tpassword: 'Password',\n\t\tconfirmPassword: 'Confermare la password',\n\t},\n\tnl: {\n\t\tacceptedFormat: { one: 'Goedgekeurd formaat:', other: 'Goedgekeurde formaten:' },\n\t\tselectFile: { one: 'Een bestand selecteren', other: 'Bestanden selecteren' },\n\t\tdropOrClick: { one: 'Kies het bestand hier of <span>klik om te selecteren</span>.', other: 'Kies de bestanden hier of <span>klik om te selecteren</span>.' },\n\t\tmaxWeight: { one: 'Maximale grootte: {{maxSizeDisplay}}. ', other: 'Maximale bestandsgrootte: {{maxSizeDisplay}}. ' },\n\t\tfileUploadedListed: { one: 'Het reeds ingediende bestand wordt naderhand gedetailleerd.', other: 'Reeds ingediende bestanden worden naderhand gedetailleerd.' },\n\t\tall: 'alle',\n\t\tfile: 'Bestand {{fileTypeLastPart}}',\n\t\tdownload: 'Downloaden',\n\t\tdownloadFile: \"Het bestand '{{fileName}}' downloaden\",\n\t\tdelete: 'Verwijderen',\n\t\tdeleteFile: \"Het bestand '{{fileName}}' verwijderen\",\n\t\tpassword: 'Wachtwoord',\n\t\tconfirmPassword: 'Wachtwoord valideren',\n\t},\n\t'nl-BE': {\n\t\tacceptedFormat: { one: 'Goedgekeurd formaat:', other: 'Goedgekeurde formaten:' },\n\t\tselectFile: { one: 'Een bestand selecteren', other: 'Bestanden selecteren' },\n\t\tdropOrClick: { one: 'Kies het bestand hier of <span>klik om te selecteren</span>.', other: 'Kies de bestanden hier of <span>klik om te selecteren</span>.' },\n\t\tmaxWeight: { one: 'Maximale grootte: {{maxSizeDisplay}}. ', other: 'Maximale bestandsgrootte: {{maxSizeDisplay}}. ' },\n\t\tfileUploadedListed: { one: 'Het reeds ingediende bestand wordt naderhand gedetailleerd.', other: 'Reeds ingediende bestanden worden naderhand gedetailleerd.' },\n\t\tall: 'alle',\n\t\tfile: 'Bestand {{fileTypeLastPart}}',\n\t\tdownload: 'Downloaden',\n\t\tdownloadFile: \"Het bestand '{{fileName}}' downloaden\",\n\t\tdelete: 'Verwijderen',\n\t\tdeleteFile: \"Het bestand '{{fileName}}' verwijderen\",\n\t\tpassword: 'Wachtwoord',\n\t\tconfirmPassword: 'Wachtwoord valideren',\n\t},\n\tes: {\n\t\tacceptedFormat: { one: 'Formato aceptado:', other: 'Formatos aceptados:' },\n\t\tselectFile: { one: 'Seleccionar un archivo', other: 'Seleccionar archivos' },\n\t\tdropOrClick: { one: 'Carga el archivo aquí o <span>pulsa para seleccionarlo</span>.', other: 'Carga los archivos aquí o <span>pulsa para seleccionarlos</span>.' },\n\t\tmaxWeight: { one: 'Tamaño máximo: {{maxSizeDisplay}}. ', other: 'Tamaño máximo de un archivo: {{maxSizeDisplay}}. ' },\n\t\tfileUploadedListed: { one: 'El archivo ya cargado se detalla después.', other: 'Los archivos ya cargados se detallan después.' },\n\t\tall: 'todos',\n\t\tfile: 'Archivo {{fileTypeLastPart}}',\n\t\tdownload: 'Descargar',\n\t\tdownloadFile: 'Descargar el archivo «{{fileName}}»',\n\t\tdelete: 'Eliminar',\n\t\tdeleteFile: 'Eliminar el archivo «{{fileName}}»',\n\t\tpassword: 'Contraseña',\n\t\tconfirmPassword: 'Validar la contraseña',\n\t},\n\tpt: {\n\t\tacceptedFormat: { one: 'Formato aceite :', other: 'Formatos aceites :' },\n\t\tselectFile: { one: 'Select a file', other: 'Select files' },\n\t\tdropOrClick: { one: 'Drag and drop file here or <span>click to browse</span>.', other: 'Drag and drop files here or <span>click to browse</span>.' },\n\t\tmaxWeight: { one: 'Maximum size: {{maxSizeDisplay}}. ', other: 'Maximum file size: {{maxSizeDisplay}}. ' },\n\t\tfileUploadedListed: { one: 'The submitted file is detailed below.', other: 'The submitted files are detailed below.' },\n\t\tall: 'todos',\n\t\tfile: 'Ficheiro {{fileTypeLastPart}}',\n\t\tdownload: 'Descarregar',\n\t\tdownloadFile: 'Descarregar o ficheiro \" {{fileName}} ',\n\t\tdelete: 'Eliminar',\n\t\tdeleteFile: 'Eliminar o ficheiro \" {{fileName}} ',\n\t\tpassword: 'Palavra-passe',\n\t\tconfirmPassword: 'Confirmar a palavra-passe',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_FILE_UPLOAD_TRANSLATIONS = new InjectionToken('LuFileUploadTranslations', {\n\tfactory: () => luFileUploadTranslations,\n});\n\nexport interface LuFileUploadLabel {\n\tacceptedFormat: {\n\t\tone: string;\n\t\tother: string;\n\t};\n\tselectFile: {\n\t\tone: string;\n\t\tother: string;\n\t};\n\tdropOrClick: {\n\t\tone: string;\n\t\tother: string;\n\t};\n\tmaxWeight: {\n\t\tone: string;\n\t\tother: string;\n\t};\n\tfileUploadedListed: {\n\t\tone: string;\n\t\tother: string;\n\t};\n\tall: string;\n\tfile: string;\n\tdownload: string;\n\tdownloadFile: string;\n\tdelete: string;\n\tdeleteFile: string;\n\tpassword: string;\n\tconfirmPassword: string;\n}\n\nexport const luFileUploadTranslations: LuTranslation<LuFileUploadLabel> = Translations;\n","export const KILO_BYTE = 1000;\nexport const MEGA_BYTE = KILO_BYTE * 1000;\n\nexport function formatFileSize(locale: string, size: number): string {\n\tlet unit = 'byte';\n\tlet value = size;\n\n\tif (size >= MEGA_BYTE) {\n\t\tunit = 'megabyte';\n\t\tvalue /= MEGA_BYTE;\n\t} else if (size >= KILO_BYTE) {\n\t\tunit = 'kilobyte';\n\t\tvalue /= KILO_BYTE;\n\t}\n\n\tconst weightFormatter = Intl.NumberFormat(locale, {\n\t\tnotation: 'compact',\n\t\tstyle: 'unit',\n\t\tunit: unit,\n\t\tunitDisplay: 'narrow',\n\t});\n\n\treturn weightFormatter.format(value);\n}\n","import { booleanAttribute, computed, Directive, effect, inject, input, LOCALE_ID, output } from '@angular/core';\nimport { intlInputOptions } from '@lucca-front/ng/core';\nimport { FORM_FIELD_INSTANCE } from '@lucca-front/ng/form-field';\nimport { LU_FILE_UPLOAD_TRANSLATIONS } from '../file-upload.translate';\nimport { formatFileSize, MEGA_BYTE } from '../formatter';\n\nlet nextId = 0;\n\n@Directive()\nexport abstract class BaseFileUploadComponent {\n\tprotected locale = inject(LOCALE_ID);\n\n\tprotected idSuffix = nextId++;\n\n\tprotected droppable = false;\n\n\treadonly intl = input(...intlInputOptions(LU_FILE_UPLOAD_TRANSLATIONS));\n\n\tprotected formFieldRef = inject(FORM_FIELD_INSTANCE, { optional: true });\n\n\tfilePicked = output<File>();\n\n\treadonly accept = input<\n\t\tArray<{\n\t\t\tformat: string;\n\t\t\tname?: string;\n\t\t}>\n\t>([]);\n\n\tprotected readonly defaultAccept = computed(() => [\n\t\t{\n\t\t\tformat: '*',\n\t\t\tname: this.intl().all,\n\t\t},\n\t]);\n\n\tprotected readonly resolvedAccept = computed(() => {\n\t\tconst acceptValue = this.accept();\n\t\treturn acceptValue.length > 0 ? acceptValue : this.defaultAccept();\n\t});\n\n\treadonly acceptNames = computed(() =>\n\t\tthis.resolvedAccept()\n\t\t\t.filter((e) => e.name)\n\t\t\t.map((e) => e.name),\n\t);\n\n\treadonly acceptAttribute = computed(() => this.resolvedAccept().map((e) => e.format));\n\n\treadonly acceptAll = computed(() => {\n\t\treturn this.acceptAttribute().some((str) => str.includes('*'));\n\t});\n\n\treadonly structure = input(false, { transform: booleanAttribute });\n\n\treadonly fileMaxSize = input<number>(80 * MEGA_BYTE);\n\n\treadonly maxSizeDisplay = computed(() => formatFileSize(this.locale, this.fileMaxSize()));\n\n\treadonly size = input<'S' | null>(null);\n\n\treadonly password = input(false, { transform: booleanAttribute });\n\n\treadonly illustration = input<\n\t\t/** @deprecated use 'invoice' instead */\n\t\t'paper' | 'picture' | 'invoice'\n\t>('invoice');\n\n\treadonly illus = computed(() => {\n\t\tswitch (this.illustration()) {\n\t\t\tcase 'paper':\n\t\t\tcase 'invoice':\n\t\t\t\treturn 'invoice';\n\t\t\tdefault:\n\t\t\t\treturn 'picture';\n\t\t}\n\t});\n\n\treadonly required = input(false, { transform: booleanAttribute });\n\n\treadonly buttonFilled = input(false, { transform: booleanAttribute });\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tthis.formFieldRef?.forceInputRequired.set(this.required());\n\t\t});\n\t}\n\n\tfilesChange(event: Event) {\n\t\tconst host = event.target as HTMLInputElement;\n\t\tthis.droppable = false;\n\t\tif (host.files) {\n\t\t\tfor (const file of Array.from(host.files)) {\n\t\t\t\tthis.filePicked.emit(file);\n\t\t\t}\n\t\t}\n\t\thost.value = '';\n\t}\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { BubbleIllustrationComponent } from '@lucca-front/ng/bubble-illustration';\nimport { IntlParamsPipe } from '@lucca-front/ng/core';\nimport { BaseFileUploadComponent } from '../base-file-upload/base-file-upload.component';\n\n@Component({\n\tselector: 'lu-file-dropzone',\n\ttemplateUrl: './file-dropzone.component.html',\n\tstyleUrl: './file-dropzone.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\timports: [IntlParamsPipe, BubbleIllustrationComponent],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FileDropzoneComponent extends BaseFileUploadComponent {}\n","<div class=\"fileUpload mod-dropzone\" [class.is-droppable]=\"droppable\" (dragenter)=\"droppable = true\" (dragleave)=\"droppable = false\">\n\t<div class=\"fileUpload-status\">\n\t\t<lu-bubble-illustration [illustration]=\"illus()\" action size=\"L\" />\n\t</div>\n\t<div class=\"fileUpload-instruction\" [attr.id]=\"'fileUpload-instruction-' + idSuffix\">\n\t\t@if (acceptNames().length) {\n\t\t\t<span class=\"fileUpload-instruction-formats\">\n\t\t\t\t@if (acceptNames().length > 1 || acceptAll()) {\n\t\t\t\t\t{{ intl().acceptedFormat.other }}\n\t\t\t\t} @else {\n\t\t\t\t\t{{ intl().acceptedFormat.one }}\n\t\t\t\t}\n\t\t\t\t{{ acceptNames().join(\", \") }}.\n\t\t\t</span>\n\t\t}\n\t\t@if (fileMaxSize()) {\n\t\t\t<span class=\"fileUpload-instruction-size\">{{ intl().maxWeight.other | intlParams: { maxSizeDisplay: maxSizeDisplay() } }}</span>\n\t\t}\n\t</div>\n</div>\n","import { booleanAttribute, ChangeDetectionStrategy, Component, computed, inject, input, LOCALE_ID, ViewEncapsulation } from '@angular/core';\nimport { outputFromObservable } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonComponent } from '@lucca-front/ng/button';\nimport { intlInputOptions, IntlParamsPipe, isNotNil } from '@lucca-front/ng/core';\nimport { DividerComponent } from '@lucca-front/ng/divider';\nimport { FormFieldComponent } from '@lucca-front/ng/form-field';\nimport { TextInputComponent } from '@lucca-front/ng/forms';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { InlineMessageComponent } from '@lucca-front/ng/inline-message';\nimport { LuTooltipTriggerDirective } from '@lucca-front/ng/tooltip';\nimport { Subject } from 'rxjs';\nimport { FileEntry } from '../file-upload-entry';\nimport { LU_FILE_UPLOAD_TRANSLATIONS } from '../file-upload.translate';\nimport { formatFileSize } from '../formatter';\n\n@Component({\n\tselector: 'lu-file-entry',\n\ttemplateUrl: './file-entry.component.html',\n\tstyleUrl: './file-entry.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\timports: [IconComponent, ButtonComponent, InlineMessageComponent, DividerComponent, FormFieldComponent, TextInputComponent, FormsModule, IntlParamsPipe, LuTooltipTriggerDirective],\n\thost: {\n\t\tclass: 'pr-u-displayContents',\n\t},\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class FileEntryComponent {\n\t#locale = inject(LOCALE_ID);\n\n\treadonly intl = input(...intlInputOptions(LU_FILE_UPLOAD_TRANSLATIONS));\n\n\treadonly state = input<'success' | 'loading' | 'error' | 'default'>('default');\n\n\treadonly displayFileName = input(false, { transform: booleanAttribute });\n\n\treadonly inlineMessageError = input<string | null>(null);\n\n\treadonly entry = input.required<FileEntry>();\n\n\treadonly size = input<'S' | null>(null);\n\n\treadonly iconOverride = input('');\n\n\treadonly downloadURL = input('');\n\n\treadonly password = input('');\n\treadonly passwordChange$ = new Subject<string>();\n\tpasswordChange = outputFromObservable(this.passwordChange$);\n\n\tget withPassword() {\n\t\treturn this.passwordChange$.observed;\n\t}\n\n\treadonly media = input(false, { transform: booleanAttribute });\n\n\treadonly deleteFile$ = new Subject<void>();\n\n\tdeleteFile = outputFromObservable(this.deleteFile$);\n\n\tget deletable() {\n\t\treturn this.deleteFile$.observed;\n\t}\n\n\treadonly fileName = computed(() => this.entry().name);\n\treadonly fileType = computed<string>(() => this.entry().type ?? '');\n\treadonly fileSize = computed<number>(() => this.entry().size ?? 0);\n\n\treadonly fileSizeDisplay = computed(() => {\n\t\tconst fileSize = this.fileSize();\n\t\treturn isNotNil(fileSize) ? formatFileSize(this.#locale, fileSize) : null;\n\t});\n\treadonly fileTypeDisplay = computed(() => {\n\t\tconst fileExtension: string = extractFileExtension(this.fileName(), this.fileType());\n\n\t\treturn this.intl().file.replace('{{fileTypeLastPart}}', fileExtension);\n\t});\n\n\treadonly previewUrl = input<string>('');\n\n\treadonly fileEntryIconSrc = computed(() => {\n\t\tconst fileExtension = this.fileName().split('.').pop();\n\t\tconst fileEntryIconRoot = 'https://cdn.lucca.fr/transverse/prisme/visuals/file-entry/';\n\t\tconst fileEntryIconExtension = '.svg';\n\n\t\tswitch (fileExtension) {\n\t\t\tcase 'pdf':\n\t\t\tcase 'xls':\n\t\t\tcase 'xlsx':\n\t\t\tcase 'doc':\n\t\t\tcase 'csv':\n\t\t\t\treturn fileEntryIconRoot + fileExtension + fileEntryIconExtension;\n\t\t\tcase 'jpg':\n\t\t\tcase 'jpeg':\n\t\t\tcase 'png':\n\t\t\tcase 'gif':\n\t\t\tcase 'svg':\n\t\t\t\treturn fileEntryIconRoot + 'image' + fileEntryIconExtension;\n\t\t\tdefault:\n\t\t\t\treturn fileEntryIconRoot + 'default' + fileEntryIconExtension;\n\t\t}\n\t});\n\n\treadonly tooltip = computed(() => {\n\t\tconst fileSize = this.fileSizeDisplay() ? ` – ${this.fileSizeDisplay()}` : '';\n\t\tif (this.state() === 'error') {\n\t\t\tif (!this.media()) {\n\t\t\t\treturn null;\n\t\t\t} else {\n\t\t\t\treturn this.fileName() + fileSize;\n\t\t\t}\n\t\t}\n\n\t\tif (!this.media() && this.size() === null) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (this.size() === 'S' && !this.media()) {\n\t\t\treturn this.fileTypeDisplay() + fileSize;\n\t\t}\n\n\t\treturn this.fileName() + ' – ' + this.fileTypeDisplay() + fileSize;\n\t});\n\n\treadonly dlClasses = computed(() => ({\n\t\t[`is-${this.state()}`]: !!this.state(),\n\t\t[`mod-${this.size()}`]: !!this.size(),\n\t}));\n}\n\nfunction extractFileExtension(fileName: string, type?: string): string {\n\tif (!type) {\n\t\treturn fileName.split('.')[1]?.toUpperCase() || '';\n\t}\n\n\tswitch (type) {\n\t\tcase 'application/vnd.ms-excel':\n\t\t\treturn 'XLS';\n\t\tcase 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\n\t\t\treturn 'XLSX';\n\t\tcase 'application/msword':\n\t\t\treturn 'DOC';\n\t\tcase 'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n\t\t\treturn 'DOCX';\n\t\tdefault:\n\t\t\treturn type.split('/')[1].toUpperCase();\n\t}\n}\n","<dl class=\"fileEntry\" [class.mod-media]=\"media()\" [class]=\"dlClasses()\">\n\t@if (!media()) {\n\t\t<dt class=\"fileEntry-filename\">\n\t\t\t<div class=\"fileEntry-filename-tooltip\" luTooltip luTooltipWhenEllipsis>{{ fileName() }}</div>\n\t\t</dt>\n\t\t@if (state() === \"error\" && inlineMessageError()) {\n\t\t\t<dd class=\"fileEntry-inlineMessage\">\n\t\t\t\t<lu-inline-message withTooltip [label]=\"inlineMessageError()\" [state]=\"'error'\" />\n\t\t\t</dd>\n\t\t} @else {\n\t\t\t<dd class=\"fileEntry-description\">\n\t\t\t\t<span class=\"fileEntry-description-format\" luTooltip luTooltipWhenEllipsis>{{ fileTypeDisplay() }}</span>\n\t\t\t\t@if (fileSizeDisplay(); as fileSizeDisplay) {\n\t\t\t\t\t<span class=\"pr-u-mask\"> – </span>\n\t\t\t\t\t<lu-divider vertical class=\"fileEntry-description-divider\" />\n\t\t\t\t\t<span class=\"fileEntry-description-size\">{{ fileSizeDisplay }}</span>\n\t\t\t\t}\n\t\t\t</dd>\n\t\t}\n\t}\n\t<dd class=\"fileEntry-status\">\n\t\t<div class=\"fileEntry-status-content\" [luTooltip]=\"tooltip()\">\n\t\t\t@if (state() === \"error\" && inlineMessageError()) {\n\t\t\t\t@if (media()) {\n\t\t\t\t\t<div class=\"fileEntry-status-content-inside\">\n\t\t\t\t\t\t<lu-inline-message class=\"fileEntry-status-content-inlineMessage\" [label]=\"inlineMessageError()\" [state]=\"'error'\" />\n\t\t\t\t\t</div>\n\t\t\t\t} @else {\n\t\t\t\t\t<div class=\"fileEntry-status-content-inside\">\n\t\t\t\t\t\t<lu-icon class=\"fileEntry-status-content-inside-icon\" icon=\"signError\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t} @else {\n\t\t\t\t@if (previewUrl() && state() !== \"error\") {\n\t\t\t\t\t<div class=\"fileEntry-status-content-inside\">\n\t\t\t\t\t\t<img class=\"fileEntry-status-content-inside-img\" [src]=\"previewUrl()\" alt=\"\" loading=\"lazy\" />\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (state() === \"loading\") {\n\t\t\t\t\t<div class=\"fileEntry-status-content-inside\">\n\t\t\t\t\t\t<div class=\"fileEntry-status-content-inside-loading loading\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t@if (!previewUrl() && state() !== \"loading\") {\n\t\t\t\t\t<div class=\"fileEntry-status-content-inside\">\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tclass=\"fileEntry-status-content-inside-svg\"\n\t\t\t\t\t\t\t[attr.src]=\"iconOverride() || fileEntryIconSrc()\"\n\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\twidth=\"32\"\n\t\t\t\t\t\t\theight=\"32\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t}\n\t\t\t@if (displayFileName() && media()) {\n\t\t\t\t<div class=\"fileEntry-status-content-fileName\" aria-hidden=\"true\">{{ fileName() }}</div>\n\t\t\t}\n\t\t</div>\n\t</dd>\n\t@if (downloadURL() || deletable) {\n\t\t<dd class=\"fileEntry-toolbar\">\n\t\t\t<div class=\"fileToolbar\" [class.mod-disablePositioning]=\"!media()\" [class.mod-S]=\"size() === 'S'\">\n\t\t\t\t<ul class=\"fileToolbar-list\">\n\t\t\t\t\t@if (downloadURL()) {\n\t\t\t\t\t\t<li class=\"fileToolbar-list-item\">\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\t[href]=\"downloadURL()\"\n\t\t\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t\t\t\trel=\"noopener noreferrer\"\n\t\t\t\t\t\t\t\tdownload=\"download\"\n\t\t\t\t\t\t\t\tclass=\"fileToolbar-list-item-button\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tluButton\n\t\t\t\t\t\t\t\t[luTooltip]=\"intl().download\"\n\t\t\t\t\t\t\t\tluTooltipOnlyForDisplay\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<lu-icon\n\t\t\t\t\t\t\t\t\tclass=\"fileToolbar-list-item-button-icon\"\n\t\t\t\t\t\t\t\t\ticon=\"arrowDownload\"\n\t\t\t\t\t\t\t\t\t[alt]=\"intl().downloadFile | intlParams: { fileName: fileName() }\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t}\n\t\t\t\t\t@if (deletable) {\n\t\t\t\t\t\t<li class=\"fileToolbar-list-item\">\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tclass=\"fileToolbar-list-item-button\"\n\t\t\t\t\t\t\t\t[class.palette-critical]=\"state() === 'error'\"\n\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\tluButton\n\t\t\t\t\t\t\t\t[luTooltip]=\"intl().delete\"\n\t\t\t\t\t\t\t\tluTooltipOnlyForDisplay\n\t\t\t\t\t\t\t\t(click)=\"deleteFile$.next()\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<lu-icon\n\t\t\t\t\t\t\t\t\tclass=\"fileToolbar-list-item-button-icon\"\n\t\t\t\t\t\t\t\t\ticon=\"trashDelete\"\n\t\t\t\t\t\t\t\t\t[alt]=\"intl().deleteFile | intlParams: { fileName: fileName() }\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t}\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t</dd>\n\t}\n</dl>\n@if (withPassword) {\n\t<div class=\"fileEntry_box box mod-withArrow mod-neutral\">\n\t\t<div class=\"box-arrow mod-neutral\"></div>\n\t\t<lu-form-field [label]=\"intl().password\">\n\t\t\t<div class=\"fileEntry_box-field\">\n\t\t\t\t<lu-text-input\n\t\t\t\t\tclass=\"fileEntry_box-field-textField\"\n\t\t\t\t\trequired\n\t\t\t\t\thasClearer\n\t\t\t\t\tsearchIcon=\"searchMagnifyingGlass\"\n\t\t\t\t\ttype=\"password\"\n\t\t\t\t\t[ngModel]=\"password()\"\n\t\t\t\t\t(ngModelChange)=\"passwordChange$.next($event)\"\n\t\t\t\t/>\n\t\t\t\t<button class=\"fileEntry_box-field-button\" luButton type=\"button\">{{ intl().confirmPassword }}</button>\n\t\t\t</div>\n\t\t</lu-form-field>\n\t</div>\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { BubbleIllustrationComponent } from '@lucca-front/ng/bubble-illustration';\nimport { IntlParamsPipe } from '@lucca-front/ng/core';\nimport { InputDirective } from '@lucca-front/ng/form-field';\nimport { BaseFileUploadComponent } from '../base-file-upload/base-file-upload.component';\n\n@Component({\n\tselector: 'lu-multi-file-upload',\n\ttemplateUrl: './multi-file-upload.component.html',\n\tstyleUrl: './multi-file-upload.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\t'[class.mod-structure]': 'structure()',\n\t},\n\timports: [InputDirective, IntlParamsPipe, BubbleIllustrationComponent],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MultiFileUploadComponent extends BaseFileUploadComponent {}\n","<div class=\"fileUpload\" [class.is-droppable]=\"droppable\" [class.mod-S]=\"size() === 'S'\" [class.is-hidden]=\"false\">\n\t<input\n\t\t[attr.aria-describedby]=\"'fileUpload-instruction-' + idSuffix\"\n\t\tclass=\"fileUpload-input\"\n\t\ttype=\"file\"\n\t\ttitle=\"\"\n\t\t[attr.accept]=\"acceptAttribute().length > 0 ? acceptAttribute() : null\"\n\t\tluInput\n\t\t(dragenter)=\"droppable = true\"\n\t\t(dragleave)=\"droppable = false\"\n\t\t(change)=\"filesChange($event)\"\n\t\tmultiple=\"multiple\"\n\t\t#inputRef\n\t/>\n\t<div class=\"fileUpload-status\">\n\t\t<lu-bubble-illustration [illustration]=\"illus()\" action size=\"L\" />\n\t</div>\n\t@if (size() !== \"S\") {\n\t\t<ng-content />\n\t}\n\t<div class=\"fileUpload-instruction\" [attr.id]=\"'fileUpload-instruction-' + idSuffix\">\n\t\t<span class=\"fileUpload-instruction-action\" aria-hidden=\"true\" [innerHTML]=\"intl().dropOrClick.other\"></span>\n\t\t@if (acceptNames().length) {\n\t\t\t<span class=\"fileUpload-instruction-formats\">\n\t\t\t\t@if (acceptNames().length > 1 || acceptAll()) {\n\t\t\t\t\t{{ intl().acceptedFormat.other }}\n\t\t\t\t} @else {\n\t\t\t\t\tintl().acceptedFormat.one\n\t\t\t\t}\n\t\t\t\t{{ acceptNames().join(\", \") }}.\n\t\t\t</span>\n\t\t}\n\t\t@if (fileMaxSize()) {\n\t\t\t<span class=\"fileUpload-instruction-size\">{{ intl().maxWeight.other | intlParams: { maxSizeDisplay: maxSizeDisplay() } }}</span>\n\t\t}\n\t\t<span class=\"pr-u-mask\">{{ intl().fileUploadedListed.other }}</span>\n\t</div>\n\t<span class=\"fileUpload-button button\" [class.mod-filled]=\"buttonFilled()\" aria-hidden=\"true\">{{ intl().selectFile.other }}</span>\n</div>\n","import { booleanAttribute, ChangeDetectionStrategy, Component, input, output, ViewEncapsulation } from '@angular/core';\nimport { BubbleIllustrationComponent } from '@lucca-front/ng/bubble-illustration';\nimport { IntlParamsPipe } from '@lucca-front/ng/core';\nimport { InputDirective } from '@lucca-front/ng/form-field';\nimport { BaseFileUploadComponent } from '../base-file-upload/base-file-upload.component';\nimport { FileEntryComponent } from '../file-entry/file-entry.component';\nimport { FileEntry } from '../file-upload-entry';\n\n@Component({\n\tselector: 'lu-single-file-upload',\n\ttemplateUrl: './single-file-upload.component.html',\n\tstyleUrl: './single-file-upload.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\t'[class.mod-structure]': 'structure()',\n\t},\n\timports: [InputDirective, FileEntryComponent, IntlParamsPipe, BubbleIllustrationComponent],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SingleFileUploadComponent extends BaseFileUploadComponent {\n\treadonly entry = input<FileEntry | null>(null);\n\n\treadonly state = input<'loading' | 'success' | 'error' | 'default'>('default');\n\n\treadonly inlineMessageError = input<string | null>(null);\n\n\treadonly previewUrl = input<string | null>(null);\n\n\treadonly deleteFile = output<void>();\n\n\treadonly displayFileName = input(false, { transform: booleanAttribute });\n}\n","<div class=\"fileUpload\" [class.is-droppable]=\"droppable\" [class.mod-S]=\"size() === 'S'\" [class.is-hidden]=\"!!entry()\">\n\t<input\n\t\tclass=\"fileUpload-input\"\n\t\ttype=\"file\"\n\t\ttitle=\"\"\n\t\t[attr.accept]=\"acceptAttribute().length > 0 ? acceptAttribute() : null\"\n\t\tluInput\n\t\t(dragenter)=\"droppable = true\"\n\t\t(dragleave)=\"droppable = false\"\n\t\t(change)=\"filesChange($event)\"\n\t\t[attr.disabled]=\"!!entry() ? 'disabled' : null\"\n\t\t[attr.aria-describedby]=\"'fileUpload-instruction-' + idSuffix\"\n\t/>\n\t<div class=\"fileUpload-status\">\n\t\t<lu-bubble-illustration [illustration]=\"illus()\" action size=\"L\" />\n\t</div>\n\t@if (size() !== \"S\") {\n\t\t<ng-content />\n\t}\n\t<div class=\"fileUpload-instruction\" [attr.id]=\"'fileUpload-instruction-' + idSuffix\">\n\t\t<span class=\"fileUpload-instruction-action\" aria-hidden=\"true\" [innerHTML]=\"intl().dropOrClick.one\"></span>\n\t\t@if (acceptNames().length) {\n\t\t\t<span class=\"fileUpload-instruction-formats\">\n\t\t\t\t@if (acceptNames().length > 1 || acceptAll()) {\n\t\t\t\t\t{{ intl().acceptedFormat.other }}\n\t\t\t\t} @else {\n\t\t\t\t\t{{ intl().acceptedFormat.one }}\n\t\t\t\t}\n\t\t\t\t{{ acceptNames().join(\", \") }}.\n\t\t\t</span>\n\t\t}\n\t\t@if (fileMaxSize()) {\n\t\t\t<span class=\"fileUpload-instruction-size\">{{ intl().maxWeight.one | intlParams: { maxSizeDisplay: maxSizeDisplay() } }}</span>\n\t\t}\n\t\t<span class=\"pr-u-mask\">{{ intl().fileUploadedListed.one }}</span>\n\t</div>\n\t<span class=\"fileUpload-button button\" [class.mod-filled]=\"buttonFilled()\" aria-hidden=\"true\">{{ intl().selectFile.one }}</span>\n</div>\n@if (entry()) {\n\t<lu-file-entry\n\t\t[media]=\"size() === null\"\n\t\t[previewUrl]=\"previewUrl()\"\n\t\t[entry]=\"entry()\"\n\t\t[state]=\"state()\"\n\t\t(deleteFile)=\"deleteFile.emit()\"\n\t\t[inlineMessageError]=\"inlineMessageError()\"\n\t\t[displayFileName]=\"displayFileName()\"\n\t/>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -43,7 +43,7 @@ class FilterPillLabelDirective {
43
43
  #parentComponentRef = inject(FILTER_PILL_INPUT_COMPONENT, { optional: true, skipSelf: true });
44
44
  #templateRef = inject(TemplateRef);
45
45
  constructor() {
46
- if (this.#filterPillComponentRef && !this.#parentComponentRef.parentInput) {
46
+ if (this.#filterPillComponentRef && this.#parentComponentRef && !this.#parentComponentRef.parentInput) {
47
47
  this.#filterPillComponentRef.customLabelTpl.set(this.#templateRef);
48
48
  }
49
49
  }
@@ -175,7 +175,7 @@ class FilterPillComponent {
175
175
  }, ...(ngDevMode ? [{ debugName: "colonDisplay" }] : []));
176
176
  this.modCheckbox = computed(() => this.layout() === 'checkable', ...(ngDevMode ? [{ debugName: "modCheckbox" }] : []));
177
177
  this.closePopover = () => {
178
- this.popoverRef().close();
178
+ this.popoverRef()?.close();
179
179
  this.inputComponentRef()?.onFilterPillClosed?.();
180
180
  };
181
181
  this.updatePosition = () => {
@@ -185,7 +185,7 @@ class FilterPillComponent {
185
185
  const ref = this.inputComponentRef();
186
186
  if (ref) {
187
187
  untracked(() => {
188
- ref.enableFilterPillMode();
188
+ ref.enableFilterPillMode?.();
189
189
  ref.registerFilterPillClosePopover(this.closePopover);
190
190
  ref.registerFilterPillUpdatePosition?.(this.updatePosition);
191
191
  });
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-filter-pills.mjs","sources":["../../../packages/ng/filter-pills/core/tokens.ts","../../../packages/ng/filter-pills/core/filter-pill-displayer.directive.ts","../../../packages/ng/filter-pills/core/filter-pill-label.directive.ts","../../../packages/ng/filter-pills/translations.ts","../../../packages/ng/filter-pills/filter-pills.translate.ts","../../../packages/ng/filter-pills/filter-pill/filter-pill.component.ts","../../../packages/ng/filter-pills/filter-pill/filter-pill.component.html","../../../packages/ng/filter-pills/filter-bar/filter-bar.component.ts","../../../packages/ng/filter-pills/filter-bar/filter-bar.component.html","../../../packages/ng/filter-pills/filter-bar/filter-pill-addon.directive.ts","../../../packages/ng/filter-pills/lucca-front-ng-filter-pills.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FilterPillInputComponent } from './filter-pill-input-component';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\n\nexport const FILTER_PILL_INPUT_COMPONENT = new InjectionToken<FilterPillInputComponent>('FilterPills:InputComponent');\n\nexport const FILTER_PILL_HOST_COMPONENT = new InjectionToken<FilterPillComponent>('FilterPills:HostComponent');\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\n\ninterface FilterPillDisplayerContext {\n\tlabel: string;\n\tplaceholder: string;\n\tisEmpty: boolean;\n}\n\n@Directive({\n\tselector: '[luFilterPillDisplayer]',\n})\nexport class FilterPillDisplayerDirective {\n\t#filterPillComponentRef = inject(FilterPillComponent, { optional: true });\n\n\t#templateRef = inject(TemplateRef);\n\n\tconstructor() {\n\t\tif (this.#filterPillComponentRef) {\n\t\t\tthis.#filterPillComponentRef.pillTpl = this.#templateRef;\n\t\t}\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillDisplayerDirective, ctx: unknown): ctx is FilterPillDisplayerContext {\n\t\treturn true;\n\t}\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\nimport { FILTER_PILL_INPUT_COMPONENT } from './tokens';\n\ninterface FilterPillLabelContext {\n\tlabel: string;\n\tplaceholder: string;\n\tisEmpty: boolean;\n\tcolon: string;\n}\n\n@Directive({\n\tselector: '[luFilterPillLabel]',\n})\nexport class FilterPillLabelDirective {\n\t#filterPillComponentRef = inject(FilterPillComponent, { optional: true });\n\t#parentComponentRef = inject(FILTER_PILL_INPUT_COMPONENT, { optional: true, skipSelf: true });\n\n\t#templateRef = inject(TemplateRef);\n\n\tconstructor() {\n\t\tif (this.#filterPillComponentRef && !this.#parentComponentRef.parentInput) {\n\t\t\tthis.#filterPillComponentRef.customLabelTpl.set(this.#templateRef);\n\t\t}\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillLabelDirective, ctx: unknown): ctx is FilterPillLabelContext {\n\t\treturn true;\n\t}\n}\n","export const Translations = {\n\tfr: {\n\t\tclear: 'Vider ce champ',\n\t\tplaceholder: 'Aucune valeur sélectionnée',\n\t\tadditionalFilters: 'Filtres supplémentaires',\n\t},\n\tpt: {\n\t\tclear: 'Esvaziar este campo',\n\t\tplaceholder: 'Nenhum valor selecionado',\n\t\tadditionalFilters: 'Filtros adicionais',\n\t},\n\tes: {\n\t\tclear: 'Vaciar este campo',\n\t\tplaceholder: 'Ningún valor seleccionado',\n\t\tadditionalFilters: 'Filtros adicionales',\n\t},\n\t'nl-BE': {\n\t\tclear: 'Dit veld leegmaken',\n\t\tplaceholder: 'Geen waarde geselecteerd',\n\t\tadditionalFilters: 'Extra filters',\n\t},\n\tnl: {\n\t\tclear: 'Dit veld leegmaken',\n\t\tplaceholder: 'Geen waarde geselecteerd',\n\t\tadditionalFilters: 'Extra filters',\n\t},\n\tit: {\n\t\tclear: 'Vuotare questo campo',\n\t\tplaceholder: 'Nessun valore selezionato',\n\t\tadditionalFilters: 'Filtri aggiuntivi',\n\t},\n\tde: {\n\t\tclear: 'Den Inhalt aus diesem Feld entfernen',\n\t\tplaceholder: 'Kein Wert ausgewählt',\n\t\tadditionalFilters: 'Zusätzliche Filter',\n\t},\n\ten: {\n\t\tclear: 'Empty this field',\n\t\tplaceholder: 'No value selected',\n\t\tadditionalFilters: 'Additional filters',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_FILTER_PILLS_TRANSLATIONS = new InjectionToken('LuFilterPillsTranslations', {\n\tfactory: () => luFilterPillsTranslations,\n});\n\nexport interface LuFilterPillsLabel {\n\tclear: string;\n\tplaceholder: string;\n\tadditionalFilters: string;\n}\n\nexport const luFilterPillsTranslations: LuTranslation<LuFilterPillsLabel> = Translations;\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChild,\n\teffect,\n\tElementRef,\n\tforwardRef,\n\tHostBinding,\n\tHostListener,\n\tinject,\n\tinput,\n\tLOCALE_ID,\n\tmodel,\n\tsignal,\n\tTemplateRef,\n\tuntracked,\n\tviewChild,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { ClearComponent } from '@lucca-front/ng/clear';\nimport { intlInputOptions } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { FILTER_PILL_HOST_COMPONENT, FILTER_PILL_INPUT_COMPONENT, FilterPillInputComponent } from '../core';\nimport { LU_FILTER_PILLS_TRANSLATIONS } from '../filter-pills.translate';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-filter-pill',\n\timports: [PopoverDirective, FormsModule, IconComponent, NgTemplateOutlet, LuTooltipModule, ClearComponent],\n\ttemplateUrl: './filter-pill.component.html',\n\tstyleUrl: './filter-pill.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: FILTER_PILL_HOST_COMPONENT,\n\t\t\tuseExisting: forwardRef(() => FilterPillComponent),\n\t\t},\n\t],\n\thost: {\n\t\tclass: 'filterPill',\n\t},\n})\nexport class FilterPillComponent {\n\tintl = input(...intlInputOptions(LU_FILTER_PILLS_TRANSLATIONS));\n\n\t#locale = inject(LOCALE_ID);\n\n\telementRef = inject(ElementRef);\n\n\tid = `filterPill-combobox-${nextId++}`;\n\n\tlayout = computed(() => this.inputComponentRef()?.filterPillLayout?.() || 'default');\n\n\t// The easy way to grab input component, will work in most cases\n\tchildInputComponentRef = contentChild(FILTER_PILL_INPUT_COMPONENT);\n\n\t// The harder way, because child has to register itself to the host, might become the default approach if this is required too much\n\t// (like when child isn't created when component inits or it's too deep)\n\tregisteredInputComponentRef = signal<FilterPillInputComponent | null>(null);\n\n\tinputComponentRef = computed(() => this.registeredInputComponentRef() || this.childInputComponentRef());\n\n\tpopoverRef = viewChild(PopoverDirective);\n\n\tpillTpl: TemplateRef<unknown>;\n\n\tlabelTpl = computed(() => this.customLabelTpl() || this.defaultLabelTpl());\n\n\tdefaultLabelTpl = viewChild<TemplateRef<unknown>>('defaultLabel');\n\n\tcustomLabelTpl = signal<TemplateRef<unknown> | null>(null);\n\n\tname = input<string>();\n\n\toptional = input(false, { transform: booleanAttribute });\n\n\tdisabled = computed(() => this.inputComponentRef()?.filterPillDisabled?.() || false);\n\n\t@HostBinding('class.is-hidden')\n\tget isHiddenClass() {\n\t\treturn this.isHidden();\n\t}\n\n\tdisplayed = model(false);\n\n\tprotected isHidden = computed(() => this.optional() && !this.displayed());\n\n\tpopoverPositions: ConnectionPositionPair[] = [\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'bottom' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'top' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t];\n\n\tlabel = input.required<string>();\n\n\tplaceholder = computed(() => this.placeholderOverride() ?? this.intl().placeholder);\n\tplaceholderOverride = input<string | null>(null, { alias: 'placeholder' });\n\n\ticon = input<LuccaIcon>();\n\n\tdefaultIcon = computed<LuccaIcon>(() => this.inputComponentRef()?.getDefaultFilterPillIcon?.() ?? 'arrowChevronBottom');\n\n\tdisplayedIcon = computed(() => this.icon() || this.defaultIcon());\n\n\tshouldHideCombobox = computed(() => this.inputComponentRef()?.hideCombobox?.() ?? false);\n\n\tinputIsEmpty = computed(() => this.inputComponentRef()?.isFilterPillEmpty() ?? true);\n\tinputIsClearable = computed(() => this.inputComponentRef()?.isFilterPillClearable() ?? false);\n\n\tshouldShowColon = computed(() => this.inputComponentRef()?.showColon?.() || !this.inputIsEmpty());\n\n\tcolonDisplay = computed(() => {\n\t\tif (!this.shouldShowColon()) {\n\t\t\treturn '';\n\t\t}\n\t\tif (this.#locale === 'fr') {\n\t\t\treturn ' :';\n\t\t}\n\t\treturn ':';\n\t});\n\n\tmodCheckbox = computed(() => this.layout() === 'checkable');\n\n\t@HostBinding('class.mod-checkbox')\n\tget isModCheckbox() {\n\t\treturn this.modCheckbox();\n\t}\n\n\t@HostBinding('class.is-filled')\n\tget isFilled() {\n\t\treturn !this.inputIsEmpty();\n\t}\n\n\t@HostBinding('class.is-comboboxHidden')\n\tget hideCombobox() {\n\t\treturn this.shouldHideCombobox();\n\t}\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst ref = this.inputComponentRef();\n\t\t\tif (ref) {\n\t\t\t\tuntracked(() => {\n\t\t\t\t\tref.enableFilterPillMode();\n\t\t\t\t\tref.registerFilterPillClosePopover(this.closePopover);\n\t\t\t\t\tref.registerFilterPillUpdatePosition?.(this.updatePosition);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\t// When an optional filter pill has a value, it must be displayed\n\t\t\tif (this.optional() && !this.inputIsEmpty() && !untracked(this.displayed)) {\n\t\t\t\tthis.displayed.set(true);\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\t// When an optional filter pill is hidden, its value must be clear\n\t\t\tif (this.optional() && !this.displayed() && !untracked(this.inputIsEmpty)) {\n\t\t\t\tthis.clear();\n\t\t\t}\n\t\t});\n\t}\n\n\t@HostListener('click')\n\thostClick(): void {\n\t\tthis.inputComponentRef()?.onFilterPillClick?.();\n\t}\n\n\tpopoverOpened(): void {\n\t\tthis.inputComponentRef()?.onFilterPillOpened?.();\n\t}\n\n\tclosePopover = () => {\n\t\tthis.popoverRef().close();\n\t\tthis.inputComponentRef()?.onFilterPillClosed?.();\n\t};\n\n\tupdatePosition = () => {\n\t\tthis.popoverRef()?.updatePosition();\n\t};\n\n\tclear(): void {\n\t\tthis.inputComponentRef()?.clearFilterPillValue();\n\t}\n\n\tregisterInput(input: FilterPillInputComponent): void {\n\t\tthis.registeredInputComponentRef.set(input);\n\t}\n}\n","@if (!isHidden()) {\n\t@if (layout() === \"default\") {\n\t\t<label [attr.for]=\"id\" class=\"filterPill-label\">\n\t\t\t<ng-container\n\t\t\t\t*ngTemplateOutlet=\"\n\t\t\t\t\tlabelTpl();\n\t\t\t\t\tcontext: { label: label(), isEmpty: inputIsEmpty(), placeholder: placeholder(), colon: colonDisplay() }\n\t\t\t\t\"\n\t\t\t/>\n\t\t</label>\n\t\t<button\n\t\t\t[id]=\"id\"\n\t\t\t[attr.disabled]=\"disabled() ? 'disabled' : null\"\n\t\t\tclass=\"filterPill-combobox\"\n\t\t\ttype=\"button\"\n\t\t\trole=\"combobox\"\n\t\t\t[luPopover2]=\"pillContent\"\n\t\t\t[luPopoverNoCloseButton]=\"true\"\n\t\t\t[customPositions]=\"popoverPositions\"\n\t\t\t[luPopoverAnchor]=\"elementRef\"\n\t\t\t(luPopoverOpened)=\"popoverOpened()\"\n\t\t\tluTooltip\n\t\t\tluTooltipWhenEllipsis\n\t\t\t[luTooltipDisabled]=\"inputIsEmpty()\"\n\t\t\t#comboboxRef\n\t\t\t#popoverRef=\"luPopover2\"\n\t\t\t[attr.aria-expanded]=\"popoverRef.opened()\"\n\t\t\t(keydown.arrowDown)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n\t\t\t(keydown.arrowUp)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n\t\t>\n\t\t\t<ng-container *ngTemplateOutlet=\"pillTpl; context: { label: label(), isEmpty: inputIsEmpty() }\" />\n\t\t\t@if (inputIsEmpty() && !disabled()) {\n\t\t\t\t{{ placeholder() }}\n\t\t\t}\n\t\t</button>\n\t\t@if (inputIsClearable()) {\n\t\t\t<lu-clear class=\"filterPill-clear\" (onClear)=\"clear(); comboboxRef.focus()\">{{ intl().clear }}</lu-clear>\n\t\t}\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\taria-hidden=\"true\"\n\t\t\ttabindex=\"-1\"\n\t\t\tclass=\"filterPill-toggle\"\n\t\t\t[attr.disabled]=\"disabled() ? 'disabled' : null\"\n\t\t\t(click)=\"popoverRef.openPopover(true)\"\n\t\t>\n\t\t\t<lu-icon [icon]=\"displayedIcon()\" size=\"S\" />\n\t\t</button>\n\t} @else {\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"\n\t\t\t\tlabelTpl();\n\t\t\t\tcontext: { label: label(), isEmpty: inputIsEmpty(), placeholder: placeholder(), colon: colonDisplay() }\n\t\t\t\"\n\t\t/>\n\t}\n}\n<ng-template #pillContent>\n\t<div class=\"filterPill_popover-content popover-contentOptional\">\n\t\t<ng-content />\n\t</div>\n</ng-template>\n<ng-template #defaultLabel>{{ label() }}{{ colonDisplay() }}</ng-template>\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, contentChildren, input, signal, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { intlInputOptions } from '@lucca-front/ng/core';\nimport { DividerComponent } from '@lucca-front/ng/divider';\nimport { FormLabelComponent } from '@lucca-front/ng/form-label';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { ScrollBoxComponent } from '@lucca-front/ng/scroll-box';\nimport { LuTooltipTriggerDirective } from '@lucca-front/ng/tooltip';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\nimport { LU_FILTER_PILLS_TRANSLATIONS } from '../filter-pills.translate';\n\n@Component({\n\tselector: 'lu-filter-bar',\n\timports: [IconComponent, LuTooltipTriggerDirective, PopoverDirective, DividerComponent, ScrollBoxComponent, FormsModule, NgTemplateOutlet, FormLabelComponent],\n\ttemplateUrl: './filter-bar.component.html',\n\tstyleUrl: './filter-bar.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'filterBar',\n\t},\n})\nexport class FilterBarComponent {\n\tintl = input(...intlInputOptions(LU_FILTER_PILLS_TRANSLATIONS));\n\n\taddonBefore = signal<TemplateRef<unknown> | null>(null);\n\taddonAfter = signal<TemplateRef<unknown> | null>(null);\n\n\tpopoverPositions: ConnectionPositionPair[] = [\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'bottom' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'top' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t];\n\n\tpills = contentChildren(FilterPillComponent, { descendants: true });\n\n\toptionalPills = computed(() => this.pills().filter((pill) => pill.optional()));\n}\n","<lu-scroll-box class=\"filterBar-scrollBox\">\n\t<div class=\"filterBar-scrollBox-group\">\n\t\t@if (addonBefore()) {\n\t\t\t<ng-container *ngTemplateOutlet=\"addonBefore()\" />\n\n\t\t\t<lu-divider class=\"filterBar-divider\" />\n\t\t}\n\t\t@if (optionalPills().length > 0) {\n\t\t\t<button\n\t\t\t\tclass=\"filterPill mod-button\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t[luTooltip]=\"intl().additionalFilters\"\n\t\t\t\tluTooltipOnlyForDisplay\n\t\t\t\t[luPopover2]=\"contentOptionsTpl\"\n\t\t\t\tluPopoverNoCloseButton\n\t\t\t\t[customPositions]=\"popoverPositions\"\n\t\t\t>\n\t\t\t\t<lu-icon class=\"filterPill-icon\" icon=\"filtersDescending\" [attr.alt]=\"intl().additionalFilters\" />\n\t\t\t</button>\n\t\t}\n\n\t\t<ng-content />\n\t</div>\n\n\t@if (addonAfter()) {\n\t\t<div class=\"filterBar-scrollBox-export\">\n\t\t\t<ng-container *ngTemplateOutlet=\"addonAfter()\" />\n\t\t</div>\n\t}\n</lu-scroll-box>\n\n<ng-template #contentOptionsTpl>\n\t<form class=\"filterPill_popover-content popover-contentOptional\">\n\t\t@for (pill of optionalPills(); track pill.name(); let index = $index) {\n\t\t\t<div class=\"form-field mod-selectOption filterPill_popover-content-option\">\n\t\t\t\t<label luFormLabel [attr.for]=\"`filterPillOptions${index}`\">{{ pill.label() }}</label>\n\t\t\t\t<span class=\"checkboxField\">\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tclass=\"checkboxField-input\"\n\t\t\t\t\t\t[name]=\"pill.name()\"\n\t\t\t\t\t\t[attr.id]=\"'filterPillOptions' + index\"\n\t\t\t\t\t\t[(ngModel)]=\"pill.displayed\"\n\t\t\t\t\t/>\n\t\t\t\t\t<span class=\"checkboxField-icon\" aria-hidden=\"true\"><span class=\"checkboxField-icon-check\"></span></span>\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t}\n\t</form>\n</ng-template>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { FilterBarComponent } from './filter-bar.component';\n\n@Directive({\n\tselector: '[luFilterPillAddonBefore]',\n})\nexport class FilterPillAddonBeforeDirective {\n\tconstructor() {\n\t\tinject(FilterBarComponent).addonBefore.set(inject(TemplateRef));\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillAddonBeforeDirective, ctx: unknown): ctx is void {\n\t\treturn true;\n\t}\n}\n\n@Directive({\n\tselector: '[luFilterPillAddonAfter]',\n})\nexport class FilterPillAddonAfterDirective {\n\tconstructor() {\n\t\tinject(FilterBarComponent).addonAfter.set(inject(TemplateRef));\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillAddonAfterDirective, ctx: unknown): ctx is void {\n\t\treturn true;\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"lucca-front-ng-filter-pills.mjs","sources":["../../../packages/ng/filter-pills/core/tokens.ts","../../../packages/ng/filter-pills/core/filter-pill-displayer.directive.ts","../../../packages/ng/filter-pills/core/filter-pill-label.directive.ts","../../../packages/ng/filter-pills/translations.ts","../../../packages/ng/filter-pills/filter-pills.translate.ts","../../../packages/ng/filter-pills/filter-pill/filter-pill.component.ts","../../../packages/ng/filter-pills/filter-pill/filter-pill.component.html","../../../packages/ng/filter-pills/filter-bar/filter-bar.component.ts","../../../packages/ng/filter-pills/filter-bar/filter-bar.component.html","../../../packages/ng/filter-pills/filter-bar/filter-pill-addon.directive.ts","../../../packages/ng/filter-pills/lucca-front-ng-filter-pills.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { FilterPillInputComponent } from './filter-pill-input-component';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\n\nexport const FILTER_PILL_INPUT_COMPONENT = new InjectionToken<FilterPillInputComponent>('FilterPills:InputComponent');\n\nexport const FILTER_PILL_HOST_COMPONENT = new InjectionToken<FilterPillComponent>('FilterPills:HostComponent');\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\n\ninterface FilterPillDisplayerContext {\n\tlabel: string;\n\tplaceholder: string;\n\tisEmpty: boolean;\n}\n\n@Directive({\n\tselector: '[luFilterPillDisplayer]',\n})\nexport class FilterPillDisplayerDirective {\n\t#filterPillComponentRef = inject(FilterPillComponent, { optional: true });\n\n\t#templateRef = inject(TemplateRef);\n\n\tconstructor() {\n\t\tif (this.#filterPillComponentRef) {\n\t\t\tthis.#filterPillComponentRef.pillTpl = this.#templateRef;\n\t\t}\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillDisplayerDirective, ctx: unknown): ctx is FilterPillDisplayerContext {\n\t\treturn true;\n\t}\n}\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\nimport { FILTER_PILL_INPUT_COMPONENT } from './tokens';\n\ninterface FilterPillLabelContext {\n\tlabel: string;\n\tplaceholder: string;\n\tisEmpty: boolean;\n\tcolon: string;\n}\n\n@Directive({\n\tselector: '[luFilterPillLabel]',\n})\nexport class FilterPillLabelDirective {\n\t#filterPillComponentRef = inject(FilterPillComponent, { optional: true });\n\t#parentComponentRef = inject(FILTER_PILL_INPUT_COMPONENT, { optional: true, skipSelf: true });\n\n\t#templateRef = inject(TemplateRef);\n\n\tconstructor() {\n\t\tif (this.#filterPillComponentRef && this.#parentComponentRef && !this.#parentComponentRef.parentInput) {\n\t\t\tthis.#filterPillComponentRef.customLabelTpl.set(this.#templateRef);\n\t\t}\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillLabelDirective, ctx: unknown): ctx is FilterPillLabelContext {\n\t\treturn true;\n\t}\n}\n","export const Translations = {\n\tfr: {\n\t\tclear: 'Vider ce champ',\n\t\tplaceholder: 'Aucune valeur sélectionnée',\n\t\tadditionalFilters: 'Filtres supplémentaires',\n\t},\n\tpt: {\n\t\tclear: 'Esvaziar este campo',\n\t\tplaceholder: 'Nenhum valor selecionado',\n\t\tadditionalFilters: 'Filtros adicionais',\n\t},\n\tes: {\n\t\tclear: 'Vaciar este campo',\n\t\tplaceholder: 'Ningún valor seleccionado',\n\t\tadditionalFilters: 'Filtros adicionales',\n\t},\n\t'nl-BE': {\n\t\tclear: 'Dit veld leegmaken',\n\t\tplaceholder: 'Geen waarde geselecteerd',\n\t\tadditionalFilters: 'Extra filters',\n\t},\n\tnl: {\n\t\tclear: 'Dit veld leegmaken',\n\t\tplaceholder: 'Geen waarde geselecteerd',\n\t\tadditionalFilters: 'Extra filters',\n\t},\n\tit: {\n\t\tclear: 'Vuotare questo campo',\n\t\tplaceholder: 'Nessun valore selezionato',\n\t\tadditionalFilters: 'Filtri aggiuntivi',\n\t},\n\tde: {\n\t\tclear: 'Den Inhalt aus diesem Feld entfernen',\n\t\tplaceholder: 'Kein Wert ausgewählt',\n\t\tadditionalFilters: 'Zusätzliche Filter',\n\t},\n\ten: {\n\t\tclear: 'Empty this field',\n\t\tplaceholder: 'No value selected',\n\t\tadditionalFilters: 'Additional filters',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_FILTER_PILLS_TRANSLATIONS = new InjectionToken('LuFilterPillsTranslations', {\n\tfactory: () => luFilterPillsTranslations,\n});\n\nexport interface LuFilterPillsLabel {\n\tclear: string;\n\tplaceholder: string;\n\tadditionalFilters: string;\n}\n\nexport const luFilterPillsTranslations: LuTranslation<LuFilterPillsLabel> = Translations;\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tComponent,\n\tcomputed,\n\tcontentChild,\n\teffect,\n\tElementRef,\n\tforwardRef,\n\tHostBinding,\n\tHostListener,\n\tinject,\n\tinput,\n\tLOCALE_ID,\n\tmodel,\n\tsignal,\n\tTemplateRef,\n\tuntracked,\n\tviewChild,\n\tViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { LuccaIcon } from '@lucca-front/icons';\nimport { ClearComponent } from '@lucca-front/ng/clear';\nimport { intlInputOptions } from '@lucca-front/ng/core';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { LuTooltipModule } from '@lucca-front/ng/tooltip';\nimport { FILTER_PILL_HOST_COMPONENT, FILTER_PILL_INPUT_COMPONENT, FilterPillInputComponent } from '../core';\nimport { LU_FILTER_PILLS_TRANSLATIONS } from '../filter-pills.translate';\n\nlet nextId = 0;\n\n@Component({\n\tselector: 'lu-filter-pill',\n\timports: [PopoverDirective, FormsModule, IconComponent, NgTemplateOutlet, LuTooltipModule, ClearComponent],\n\ttemplateUrl: './filter-pill.component.html',\n\tstyleUrl: './filter-pill.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tproviders: [\n\t\t{\n\t\t\tprovide: FILTER_PILL_HOST_COMPONENT,\n\t\t\tuseExisting: forwardRef(() => FilterPillComponent),\n\t\t},\n\t],\n\thost: {\n\t\tclass: 'filterPill',\n\t},\n})\nexport class FilterPillComponent {\n\treadonly intl = input(...intlInputOptions(LU_FILTER_PILLS_TRANSLATIONS));\n\n\t#locale = inject(LOCALE_ID);\n\n\treadonly elementRef = inject(ElementRef);\n\n\tid = `filterPill-combobox-${nextId++}`;\n\n\treadonly layout = computed(() => this.inputComponentRef()?.filterPillLayout?.() || 'default');\n\n\t// The easy way to grab input component, will work in most cases\n\treadonly childInputComponentRef = contentChild(FILTER_PILL_INPUT_COMPONENT);\n\n\t// The harder way, because child has to register itself to the host, might become the default approach if this is required too much\n\t// (like when child isn't created when component inits or it's too deep)\n\treadonly registeredInputComponentRef = signal<FilterPillInputComponent | null>(null);\n\n\treadonly inputComponentRef = computed(() => this.registeredInputComponentRef() || this.childInputComponentRef());\n\n\treadonly popoverRef = viewChild(PopoverDirective);\n\n\tpillTpl: TemplateRef<unknown>;\n\n\treadonly labelTpl = computed(() => this.customLabelTpl() || this.defaultLabelTpl());\n\n\treadonly defaultLabelTpl = viewChild<TemplateRef<unknown>>('defaultLabel');\n\n\treadonly customLabelTpl = signal<TemplateRef<unknown> | null>(null);\n\n\treadonly name = input<string>();\n\n\treadonly optional = input(false, { transform: booleanAttribute });\n\n\treadonly disabled = computed(() => this.inputComponentRef()?.filterPillDisabled?.() || false);\n\n\t@HostBinding('class.is-hidden')\n\tget isHiddenClass() {\n\t\treturn this.isHidden();\n\t}\n\n\treadonly displayed = model(false);\n\n\tprotected readonly isHidden = computed(() => this.optional() && !this.displayed());\n\n\tpopoverPositions: ConnectionPositionPair[] = [\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'bottom' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'top' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t];\n\n\treadonly label = input.required<string>();\n\n\treadonly placeholder = computed(() => this.placeholderOverride() ?? this.intl().placeholder);\n\treadonly placeholderOverride = input<string | null>(null, { alias: 'placeholder' });\n\n\treadonly icon = input<LuccaIcon>();\n\n\treadonly defaultIcon = computed<LuccaIcon>(() => this.inputComponentRef()?.getDefaultFilterPillIcon?.() ?? 'arrowChevronBottom');\n\n\treadonly displayedIcon = computed(() => this.icon() || this.defaultIcon());\n\n\treadonly shouldHideCombobox = computed(() => this.inputComponentRef()?.hideCombobox?.() ?? false);\n\n\treadonly inputIsEmpty = computed(() => this.inputComponentRef()?.isFilterPillEmpty() ?? true);\n\treadonly inputIsClearable = computed(() => this.inputComponentRef()?.isFilterPillClearable() ?? false);\n\n\treadonly shouldShowColon = computed(() => this.inputComponentRef()?.showColon?.() || !this.inputIsEmpty());\n\n\treadonly colonDisplay = computed(() => {\n\t\tif (!this.shouldShowColon()) {\n\t\t\treturn '';\n\t\t}\n\t\tif (this.#locale === 'fr') {\n\t\t\treturn ' :';\n\t\t}\n\t\treturn ':';\n\t});\n\n\treadonly modCheckbox = computed(() => this.layout() === 'checkable');\n\n\t@HostBinding('class.mod-checkbox')\n\tget isModCheckbox() {\n\t\treturn this.modCheckbox();\n\t}\n\n\t@HostBinding('class.is-filled')\n\tget isFilled() {\n\t\treturn !this.inputIsEmpty();\n\t}\n\n\t@HostBinding('class.is-comboboxHidden')\n\tget hideCombobox() {\n\t\treturn this.shouldHideCombobox();\n\t}\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst ref = this.inputComponentRef();\n\t\t\tif (ref) {\n\t\t\t\tuntracked(() => {\n\t\t\t\t\tref.enableFilterPillMode?.();\n\t\t\t\t\tref.registerFilterPillClosePopover(this.closePopover);\n\t\t\t\t\tref.registerFilterPillUpdatePosition?.(this.updatePosition);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\t// When an optional filter pill has a value, it must be displayed\n\t\t\tif (this.optional() && !this.inputIsEmpty() && !untracked(this.displayed)) {\n\t\t\t\tthis.displayed.set(true);\n\t\t\t}\n\t\t});\n\n\t\teffect(() => {\n\t\t\t// When an optional filter pill is hidden, its value must be clear\n\t\t\tif (this.optional() && !this.displayed() && !untracked(this.inputIsEmpty)) {\n\t\t\t\tthis.clear();\n\t\t\t}\n\t\t});\n\t}\n\n\t@HostListener('click')\n\thostClick(): void {\n\t\tthis.inputComponentRef()?.onFilterPillClick?.();\n\t}\n\n\tpopoverOpened(): void {\n\t\tthis.inputComponentRef()?.onFilterPillOpened?.();\n\t}\n\n\tclosePopover = () => {\n\t\tthis.popoverRef()?.close();\n\t\tthis.inputComponentRef()?.onFilterPillClosed?.();\n\t};\n\n\tupdatePosition = () => {\n\t\tthis.popoverRef()?.updatePosition();\n\t};\n\n\tclear(): void {\n\t\tthis.inputComponentRef()?.clearFilterPillValue();\n\t}\n\n\tregisterInput(input: FilterPillInputComponent): void {\n\t\tthis.registeredInputComponentRef.set(input);\n\t}\n}\n","@if (!isHidden()) {\n\t@if (layout() === \"default\") {\n\t\t<label [attr.for]=\"id\" class=\"filterPill-label\">\n\t\t\t<ng-container\n\t\t\t\t*ngTemplateOutlet=\"\n\t\t\t\t\tlabelTpl();\n\t\t\t\t\tcontext: { label: label(), isEmpty: inputIsEmpty(), placeholder: placeholder(), colon: colonDisplay() }\n\t\t\t\t\"\n\t\t\t/>\n\t\t</label>\n\t\t<button\n\t\t\t[id]=\"id\"\n\t\t\t[attr.disabled]=\"disabled() ? 'disabled' : null\"\n\t\t\tclass=\"filterPill-combobox\"\n\t\t\ttype=\"button\"\n\t\t\trole=\"combobox\"\n\t\t\t[luPopover2]=\"pillContent\"\n\t\t\t[luPopoverNoCloseButton]=\"true\"\n\t\t\t[customPositions]=\"popoverPositions\"\n\t\t\t[luPopoverAnchor]=\"elementRef\"\n\t\t\t(luPopoverOpened)=\"popoverOpened()\"\n\t\t\tluTooltip\n\t\t\tluTooltipWhenEllipsis\n\t\t\t[luTooltipDisabled]=\"inputIsEmpty()\"\n\t\t\t#comboboxRef\n\t\t\t#popoverRef=\"luPopover2\"\n\t\t\t[attr.aria-expanded]=\"popoverRef.opened()\"\n\t\t\t(keydown.arrowDown)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n\t\t\t(keydown.arrowUp)=\"$event.preventDefault(); popoverRef.openPopover(true)\"\n\t\t>\n\t\t\t<ng-container *ngTemplateOutlet=\"pillTpl; context: { label: label(), isEmpty: inputIsEmpty() }\" />\n\t\t\t@if (inputIsEmpty() && !disabled()) {\n\t\t\t\t{{ placeholder() }}\n\t\t\t}\n\t\t</button>\n\t\t@if (inputIsClearable()) {\n\t\t\t<lu-clear class=\"filterPill-clear\" (onClear)=\"clear(); comboboxRef.focus()\">{{ intl().clear }}</lu-clear>\n\t\t}\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\taria-hidden=\"true\"\n\t\t\ttabindex=\"-1\"\n\t\t\tclass=\"filterPill-toggle\"\n\t\t\t[attr.disabled]=\"disabled() ? 'disabled' : null\"\n\t\t\t(click)=\"popoverRef.openPopover(true)\"\n\t\t>\n\t\t\t<lu-icon [icon]=\"displayedIcon()\" size=\"S\" />\n\t\t</button>\n\t} @else {\n\t\t<ng-container\n\t\t\t*ngTemplateOutlet=\"\n\t\t\t\tlabelTpl();\n\t\t\t\tcontext: { label: label(), isEmpty: inputIsEmpty(), placeholder: placeholder(), colon: colonDisplay() }\n\t\t\t\"\n\t\t/>\n\t}\n}\n<ng-template #pillContent>\n\t<div class=\"filterPill_popover-content popover-contentOptional\">\n\t\t<ng-content />\n\t</div>\n</ng-template>\n<ng-template #defaultLabel>{{ label() }}{{ colonDisplay() }}</ng-template>\n","import { ConnectionPositionPair } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, contentChildren, input, signal, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { intlInputOptions } from '@lucca-front/ng/core';\nimport { DividerComponent } from '@lucca-front/ng/divider';\nimport { FormLabelComponent } from '@lucca-front/ng/form-label';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { PopoverDirective } from '@lucca-front/ng/popover2';\nimport { ScrollBoxComponent } from '@lucca-front/ng/scroll-box';\nimport { LuTooltipTriggerDirective } from '@lucca-front/ng/tooltip';\nimport { FilterPillComponent } from '../filter-pill/filter-pill.component';\nimport { LU_FILTER_PILLS_TRANSLATIONS } from '../filter-pills.translate';\n\n@Component({\n\tselector: 'lu-filter-bar',\n\timports: [IconComponent, LuTooltipTriggerDirective, PopoverDirective, DividerComponent, ScrollBoxComponent, FormsModule, NgTemplateOutlet, FormLabelComponent],\n\ttemplateUrl: './filter-bar.component.html',\n\tstyleUrl: './filter-bar.component.scss',\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: {\n\t\tclass: 'filterBar',\n\t},\n})\nexport class FilterBarComponent {\n\treadonly intl = input(...intlInputOptions(LU_FILTER_PILLS_TRANSLATIONS));\n\n\treadonly addonBefore = signal<TemplateRef<unknown> | null>(null);\n\treadonly addonAfter = signal<TemplateRef<unknown> | null>(null);\n\n\tpopoverPositions: ConnectionPositionPair[] = [\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'bottom' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t\tnew ConnectionPositionPair(\n\t\t\t{ originX: 'start', originY: 'top' },\n\t\t\t{\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t},\n\t\t\t-4,\n\t\t\t0,\n\t\t),\n\t];\n\n\treadonly pills = contentChildren(FilterPillComponent, { descendants: true });\n\n\treadonly optionalPills = computed(() => this.pills().filter((pill) => pill.optional()));\n}\n","<lu-scroll-box class=\"filterBar-scrollBox\">\n\t<div class=\"filterBar-scrollBox-group\">\n\t\t@if (addonBefore()) {\n\t\t\t<ng-container *ngTemplateOutlet=\"addonBefore()\" />\n\n\t\t\t<lu-divider class=\"filterBar-divider\" />\n\t\t}\n\t\t@if (optionalPills().length > 0) {\n\t\t\t<button\n\t\t\t\tclass=\"filterPill mod-button\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t[luTooltip]=\"intl().additionalFilters\"\n\t\t\t\tluTooltipOnlyForDisplay\n\t\t\t\t[luPopover2]=\"contentOptionsTpl\"\n\t\t\t\tluPopoverNoCloseButton\n\t\t\t\t[customPositions]=\"popoverPositions\"\n\t\t\t>\n\t\t\t\t<lu-icon class=\"filterPill-icon\" icon=\"filtersDescending\" [attr.alt]=\"intl().additionalFilters\" />\n\t\t\t</button>\n\t\t}\n\n\t\t<ng-content />\n\t</div>\n\n\t@if (addonAfter()) {\n\t\t<div class=\"filterBar-scrollBox-export\">\n\t\t\t<ng-container *ngTemplateOutlet=\"addonAfter()\" />\n\t\t</div>\n\t}\n</lu-scroll-box>\n\n<ng-template #contentOptionsTpl>\n\t<form class=\"filterPill_popover-content popover-contentOptional\">\n\t\t@for (pill of optionalPills(); track pill.name(); let index = $index) {\n\t\t\t<div class=\"form-field mod-selectOption filterPill_popover-content-option\">\n\t\t\t\t<label luFormLabel [attr.for]=\"`filterPillOptions${index}`\">{{ pill.label() }}</label>\n\t\t\t\t<span class=\"checkboxField\">\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t\tclass=\"checkboxField-input\"\n\t\t\t\t\t\t[name]=\"pill.name()\"\n\t\t\t\t\t\t[attr.id]=\"'filterPillOptions' + index\"\n\t\t\t\t\t\t[(ngModel)]=\"pill.displayed\"\n\t\t\t\t\t/>\n\t\t\t\t\t<span class=\"checkboxField-icon\" aria-hidden=\"true\"><span class=\"checkboxField-icon-check\"></span></span>\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t}\n\t</form>\n</ng-template>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { FilterBarComponent } from './filter-bar.component';\n\n@Directive({\n\tselector: '[luFilterPillAddonBefore]',\n})\nexport class FilterPillAddonBeforeDirective {\n\tconstructor() {\n\t\tinject(FilterBarComponent).addonBefore.set(inject(TemplateRef));\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillAddonBeforeDirective, ctx: unknown): ctx is void {\n\t\treturn true;\n\t}\n}\n\n@Directive({\n\tselector: '[luFilterPillAddonAfter]',\n})\nexport class FilterPillAddonAfterDirective {\n\tconstructor() {\n\t\tinject(FilterBarComponent).addonAfter.set(inject(TemplateRef));\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: FilterPillAddonAfterDirective, ctx: unknown): ctx is void {\n\t\treturn true;\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { NgTemplateOutlet } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
3
  import { InjectionToken, input, inject, Injector, Renderer2, contentChildren, computed, signal, booleanAttribute, model, numberAttribute, effect, afterNextRender, forwardRef, ChangeDetectionStrategy, ViewEncapsulation, Component, ElementRef, Input, Directive, TemplateRef, ViewContainerRef } from '@angular/core';
4
4
  import { RequiredValidator, NgControl, Validators, ReactiveFormsModule } from '@angular/forms';
5
- import { intlInputOptions, LuClass, ɵeffectWithDeps as _effectWithDeps, PortalDirective } from '@lucca-front/ng/core';
5
+ import { intlInputOptions, LuClass, ɵeffectWithDeps as _effectWithDeps, isNotNil, PortalDirective } from '@lucca-front/ng/core';
6
6
  import { LU_FORM_INSTANCE } from '@lucca-front/ng/form';
7
7
  import { FormLabelComponent } from '@lucca-front/ng/form-label';
8
8
  import { IconComponent } from '@lucca-front/ng/icon';
@@ -207,9 +207,9 @@ class FormFieldComponent {
207
207
  return hasRequiredNgModel || hasRequiredFormControl;
208
208
  }
209
209
  #hasInvalidStatus() {
210
- const isInvalidOverride = this.invalid() !== undefined && this.invalid() !== null;
210
+ const isInvalidOverride = isNotNil(this.invalid());
211
211
  if (isInvalidOverride) {
212
- return this.invalid();
212
+ return this.invalid() ?? false;
213
213
  }
214
214
  const statusControlOverride = this.statusControl();
215
215
  if (statusControlOverride) {