@lucca-front/ng 16.3.1-rc.2 → 16.4.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 (278) hide show
  1. package/api/select/feeder/api-feeder.component.d.ts +2 -2
  2. package/api/select/feeder/api-feeder.model.d.ts +2 -2
  3. package/api/select/input/api-select-input.component.d.ts +1 -1
  4. package/api/select/pager/api-pager.component.d.ts +1 -1
  5. package/api/select/pager/api-pager.model.d.ts +3 -3
  6. package/api/select/searcher/api-searcher.component.d.ts +2 -2
  7. package/api/select/searcher/api-searcher.model.d.ts +2 -2
  8. package/api/service/api-hybrid.service.d.ts +5 -5
  9. package/api/service/api-service.model.d.ts +8 -8
  10. package/api/service/api-v3.service.d.ts +7 -7
  11. package/api/service/api-v4.service.d.ts +7 -7
  12. package/callout/callout.component.d.ts +2 -1
  13. package/core/public-api.d.ts +1 -0
  14. package/core/tools/ng-clazz.directive.d.ts +6 -0
  15. package/{simple-select/option → core-select/displayer}/displayer.directive.d.ts +2 -2
  16. package/core-select/displayer/index.d.ts +1 -0
  17. package/core-select/index.d.ts +5 -0
  18. package/core-select/input/index.d.ts +2 -0
  19. package/core-select/input/select-input.component.d.ts +59 -0
  20. package/{simple-select → core-select}/option/index.d.ts +2 -1
  21. package/{simple-select → core-select}/option/option.component.d.ts +2 -1
  22. package/{simple-select → core-select}/option/option.directive.d.ts +2 -2
  23. package/core-select/panel/index.d.ts +1 -0
  24. package/{simple-select → core-select}/panel/panel.models.d.ts +4 -4
  25. package/core-select/public-api.d.ts +5 -0
  26. package/core-select/select.model.d.ts +7 -0
  27. package/department/select/feeder/department-feeder.component.d.ts +2 -2
  28. package/department/select/input/department-select-input.component.d.ts +2 -2
  29. package/department/service/department-v3.service.d.ts +2 -2
  30. package/esm2022/api/select/feeder/api-feeder.component.mjs +1 -1
  31. package/esm2022/api/select/feeder/api-feeder.model.mjs +1 -1
  32. package/esm2022/api/select/input/api-select-input.component.mjs +3 -3
  33. package/esm2022/api/select/pager/api-pager.component.mjs +1 -1
  34. package/esm2022/api/select/pager/api-pager.model.mjs +1 -1
  35. package/esm2022/api/select/searcher/api-searcher.component.mjs +1 -1
  36. package/esm2022/api/select/searcher/api-searcher.model.mjs +1 -1
  37. package/esm2022/api/service/api-hybrid.service.mjs +1 -1
  38. package/esm2022/api/service/api-service.model.mjs +1 -1
  39. package/esm2022/api/service/api-v3.service.mjs +1 -1
  40. package/esm2022/api/service/api-v4.service.mjs +1 -1
  41. package/esm2022/callout/callout.component.mjs +3 -3
  42. package/esm2022/core/public-api.mjs +2 -1
  43. package/esm2022/core/tools/ng-clazz.directive.mjs +18 -0
  44. package/esm2022/{simple-select/option → core-select/displayer}/displayer.directive.mjs +1 -1
  45. package/esm2022/core-select/displayer/index.mjs +2 -0
  46. package/esm2022/core-select/input/index.mjs +3 -0
  47. package/esm2022/core-select/input/select-input.component.mjs +203 -0
  48. package/esm2022/core-select/input/select-input.models.mjs +60 -0
  49. package/esm2022/core-select/lucca-front-ng-core-select.mjs +5 -0
  50. package/esm2022/{simple-select → core-select}/option/default-option.component.mjs +1 -1
  51. package/esm2022/core-select/option/disabled.directive.mjs +27 -0
  52. package/esm2022/core-select/option/index.mjs +7 -0
  53. package/esm2022/core-select/option/option-outlet.directive.mjs +71 -0
  54. package/esm2022/core-select/option/option.component.mjs +81 -0
  55. package/esm2022/core-select/option/option.directive.mjs +27 -0
  56. package/esm2022/core-select/option/option.token.mjs +22 -0
  57. package/esm2022/core-select/panel/index.mjs +2 -0
  58. package/esm2022/core-select/panel/panel.models.mjs +23 -0
  59. package/esm2022/core-select/public-api.mjs +6 -0
  60. package/esm2022/core-select/select.model.mjs +5 -0
  61. package/esm2022/date/input/date-input.translate.mjs +21 -21
  62. package/esm2022/date/select/date-select-input.component.mjs +3 -3
  63. package/esm2022/date/select/date-select-input.translate.mjs +16 -16
  64. package/esm2022/department/select/feeder/department-feeder.component.mjs +1 -1
  65. package/esm2022/department/select/input/department-select-input.component.mjs +3 -3
  66. package/esm2022/department/service/department-v3.service.mjs +1 -1
  67. package/esm2022/establishment/select/input/establishment-select-input.component.mjs +3 -3
  68. package/esm2022/establishment/select/legal-unit-selector/legal-unit-selector.directive.mjs +1 -1
  69. package/esm2022/establishment/select/searcher/establishment-searcher.component.mjs +1 -1
  70. package/esm2022/establishment/select/select-all/establishment-select-all.component.mjs +1 -1
  71. package/esm2022/establishment/service/establishment.service.mjs +1 -1
  72. package/esm2022/establishment/service/legal-unit.service.mjs +1 -1
  73. package/esm2022/form-field/form-field-size.mjs +2 -0
  74. package/esm2022/form-field/form-field.component.mjs +116 -0
  75. package/esm2022/form-field/input.directive.mjs +22 -0
  76. package/esm2022/form-field/lucca-front-ng-form-field.mjs +5 -0
  77. package/esm2022/form-field/public-api.mjs +4 -0
  78. package/esm2022/formly/types/api.mjs +1 -1
  79. package/esm2022/forms/abstract-field-component.mjs +25 -0
  80. package/esm2022/forms/checkboxfield/checkboxfield.component.mjs +41 -0
  81. package/esm2022/forms/form-field-id.directive.mjs +53 -0
  82. package/esm2022/forms/inject-ng-control.mjs +25 -0
  83. package/esm2022/forms/lucca-front-ng-forms.mjs +5 -0
  84. package/esm2022/forms/noop-value-accessor.directive.mjs +36 -0
  85. package/esm2022/forms/public-api.mjs +8 -0
  86. package/esm2022/forms/switchfield/switchfield.component.mjs +40 -0
  87. package/esm2022/forms/textfield/textfield-addon.mjs +2 -0
  88. package/esm2022/forms/textfield/textfield.component.mjs +73 -0
  89. package/esm2022/forms/textfield/textfield.translate.mjs +13 -0
  90. package/esm2022/icon/icon.component.mjs +27 -0
  91. package/esm2022/icon/lucca-front-ng-icon.mjs +5 -0
  92. package/esm2022/icon/public-api.mjs +2 -0
  93. package/esm2022/inline-message/inline-message-state.mjs +2 -0
  94. package/esm2022/inline-message/inline-message.component.mjs +15 -4
  95. package/esm2022/inline-message/public-api.mjs +2 -1
  96. package/esm2022/input/displayer/input-displayer.directive.mjs +1 -1
  97. package/esm2022/input/displayer/input-displayer.model.mjs +1 -1
  98. package/esm2022/multi-select/displayer/default-displayer.component.mjs +155 -0
  99. package/esm2022/multi-select/displayer/default-displayer.translate.mjs +32 -0
  100. package/esm2022/multi-select/displayer/displayer.directive.mjs +27 -0
  101. package/esm2022/multi-select/displayer/index.mjs +3 -0
  102. package/esm2022/multi-select/input/index.mjs +2 -0
  103. package/esm2022/multi-select/input/panel-ref.factory.mjs +121 -0
  104. package/esm2022/multi-select/input/panel.model.mjs +13 -0
  105. package/esm2022/multi-select/input/select-input.component.mjs +106 -0
  106. package/esm2022/multi-select/lucca-front-ng-multi-select.mjs +5 -0
  107. package/esm2022/multi-select/panel/index.mjs +2 -0
  108. package/esm2022/multi-select/panel/option-selected.pipe.mjs +18 -0
  109. package/esm2022/multi-select/panel/panel.component.mjs +146 -0
  110. package/esm2022/multi-select/panel/selected-chip.directive.mjs +27 -0
  111. package/esm2022/multi-select/public-api.mjs +4 -0
  112. package/esm2022/multi-select/select.model.mjs +3 -0
  113. package/esm2022/multi-select/select.translate.mjs +62 -0
  114. package/esm2022/option/item/option-item.component.mjs +3 -3
  115. package/esm2022/option/item/tree-option-item.component.mjs +3 -3
  116. package/esm2022/option/operator/feeder/option-feeder.component.mjs +1 -1
  117. package/esm2022/option/operator/for-options/for-options.directive.mjs +1 -1
  118. package/esm2022/option/operator/option-operator.model.mjs +1 -1
  119. package/esm2022/option/operator/pager/tree-option-pager.component.mjs +1 -1
  120. package/esm2022/option/picker/option-picker-advanced.component.mjs +1 -1
  121. package/esm2022/option/picker/option-picker.model.mjs +1 -1
  122. package/esm2022/option/picker/tree-option-picker-advanced.component.mjs +1 -1
  123. package/esm2022/option/picker/tree-option-picker.component.mjs +1 -1
  124. package/esm2022/option/selector/all/select-all.component.mjs +1 -1
  125. package/esm2022/option/selector/all/tree-select-all.component.mjs +1 -1
  126. package/esm2022/option/selector/option-selector.model.mjs +1 -1
  127. package/esm2022/picker/input-picker.model.mjs +1 -1
  128. package/esm2022/popover/panel/popover-panel.model.mjs +1 -1
  129. package/esm2022/qualification/select/input/qualification-select-input.component.mjs +3 -3
  130. package/esm2022/select/input/select-input.component.mjs +2 -2
  131. package/esm2022/select/input/select-input.model.mjs +1 -1
  132. package/esm2022/simple-select/api/api-v3.directive.mjs +3 -3
  133. package/esm2022/simple-select/api/api-v4.directive.mjs +3 -3
  134. package/esm2022/simple-select/api/api.directive.mjs +3 -3
  135. package/esm2022/simple-select/input/panel-ref.factory.mjs +5 -4
  136. package/esm2022/simple-select/input/select-input.component.mjs +26 -189
  137. package/esm2022/simple-select/panel/index.mjs +1 -2
  138. package/esm2022/simple-select/panel/panel.component.mjs +6 -7
  139. package/esm2022/simple-select/public-api.mjs +1 -2
  140. package/esm2022/simple-select/select.model.mjs +2 -5
  141. package/esm2022/user/select/homonyms/user-homonyms.service.mjs +1 -1
  142. package/esm2022/user/select/input/user-select-input.component.mjs +3 -3
  143. package/esm2022/user/select/me/me-option.directive.mjs +1 -1
  144. package/esm2022/user/select/searcher/user-searcher.component.mjs +1 -1
  145. package/esm2022/user/service/user-v3.service.mjs +1 -1
  146. package/establishment/select/input/establishment-select-input.component.d.ts +2 -2
  147. package/establishment/select/legal-unit-selector/legal-unit-selector.directive.d.ts +2 -2
  148. package/establishment/select/searcher/establishment-searcher.component.d.ts +2 -2
  149. package/establishment/select/select-all/establishment-select-all.component.d.ts +2 -2
  150. package/establishment/service/establishment.service.d.ts +4 -4
  151. package/establishment/service/legal-unit.service.d.ts +4 -4
  152. package/fesm2022/lucca-front-ng-api.mjs +2 -2
  153. package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
  154. package/fesm2022/lucca-front-ng-callout.mjs +2 -2
  155. package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
  156. package/fesm2022/lucca-front-ng-core-select.mjs +537 -0
  157. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -0
  158. package/fesm2022/lucca-front-ng-core.mjs +17 -3
  159. package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
  160. package/fesm2022/lucca-front-ng-date.mjs +37 -37
  161. package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
  162. package/fesm2022/lucca-front-ng-department.mjs +2 -2
  163. package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
  164. package/fesm2022/lucca-front-ng-establishment.mjs +2 -2
  165. package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
  166. package/fesm2022/lucca-front-ng-form-field.mjs +140 -0
  167. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -0
  168. package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
  169. package/fesm2022/lucca-front-ng-forms.mjs +271 -0
  170. package/fesm2022/lucca-front-ng-forms.mjs.map +1 -0
  171. package/fesm2022/lucca-front-ng-icon.mjs +33 -0
  172. package/fesm2022/lucca-front-ng-icon.mjs.map +1 -0
  173. package/fesm2022/lucca-front-ng-inline-message.mjs +14 -3
  174. package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
  175. package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
  176. package/fesm2022/lucca-front-ng-multi-select.mjs +669 -0
  177. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -0
  178. package/fesm2022/lucca-front-ng-option.mjs +4 -4
  179. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  180. package/fesm2022/lucca-front-ng-picker.mjs.map +1 -1
  181. package/fesm2022/lucca-front-ng-popover.mjs.map +1 -1
  182. package/fesm2022/lucca-front-ng-qualification.mjs +2 -2
  183. package/fesm2022/lucca-front-ng-qualification.mjs.map +1 -1
  184. package/fesm2022/lucca-front-ng-select.mjs +2 -2
  185. package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
  186. package/fesm2022/lucca-front-ng-simple-select-api.mjs +6 -6
  187. package/fesm2022/lucca-front-ng-simple-select-api.mjs.map +1 -1
  188. package/fesm2022/lucca-front-ng-simple-select.mjs +34 -517
  189. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  190. package/fesm2022/lucca-front-ng-user.mjs +2 -2
  191. package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
  192. package/form-field/form-field-size.d.ts +1 -0
  193. package/form-field/form-field.component.d.ts +39 -0
  194. package/form-field/index.d.ts +5 -0
  195. package/form-field/input.directive.d.ts +8 -0
  196. package/form-field/public-api.d.ts +3 -0
  197. package/formly/types/api.d.ts +1 -1
  198. package/forms/abstract-field-component.d.ts +8 -0
  199. package/forms/checkboxfield/checkboxfield.component.d.ts +18 -0
  200. package/forms/form-field-id.directive.d.ts +13 -0
  201. package/forms/index.d.ts +5 -0
  202. package/forms/inject-ng-control.d.ts +2 -0
  203. package/forms/noop-value-accessor.directive.d.ts +9 -0
  204. package/forms/public-api.d.ts +7 -0
  205. package/forms/switchfield/switchfield.component.d.ts +18 -0
  206. package/forms/textfield/textfield-addon.d.ts +10 -0
  207. package/forms/textfield/textfield.component.d.ts +35 -0
  208. package/forms/textfield/textfield.translate.d.ts +7 -0
  209. package/icon/icon.component.d.ts +10 -0
  210. package/icon/index.d.ts +5 -0
  211. package/icon/public-api.d.ts +1 -0
  212. package/inline-message/inline-message-state.d.ts +1 -0
  213. package/inline-message/inline-message.component.d.ts +8 -3
  214. package/inline-message/public-api.d.ts +1 -0
  215. package/input/displayer/input-displayer.directive.d.ts +3 -3
  216. package/input/displayer/input-displayer.model.d.ts +2 -2
  217. package/multi-select/displayer/default-displayer.component.d.ts +32 -0
  218. package/multi-select/displayer/default-displayer.translate.d.ts +9 -0
  219. package/multi-select/displayer/displayer.directive.d.ts +12 -0
  220. package/multi-select/displayer/index.d.ts +2 -0
  221. package/multi-select/index.d.ts +5 -0
  222. package/multi-select/input/index.d.ts +1 -0
  223. package/multi-select/input/panel-ref.factory.d.ts +22 -0
  224. package/multi-select/input/panel.model.d.ts +11 -0
  225. package/multi-select/input/select-input.component.d.ts +26 -0
  226. package/multi-select/panel/index.d.ts +1 -0
  227. package/multi-select/panel/option-selected.pipe.d.ts +7 -0
  228. package/multi-select/panel/panel.component.d.ts +40 -0
  229. package/multi-select/panel/selected-chip.directive.d.ts +10 -0
  230. package/multi-select/public-api.d.ts +3 -0
  231. package/multi-select/select.model.d.ts +15 -0
  232. package/multi-select/select.translate.d.ts +15 -0
  233. package/option/operator/feeder/option-feeder.component.d.ts +2 -2
  234. package/option/operator/for-options/for-options.directive.d.ts +1 -1
  235. package/option/operator/option-operator.model.d.ts +2 -2
  236. package/option/operator/pager/tree-option-pager.component.d.ts +2 -2
  237. package/option/picker/option-picker-advanced.component.d.ts +1 -1
  238. package/option/picker/option-picker.model.d.ts +5 -5
  239. package/option/picker/tree-option-picker-advanced.component.d.ts +1 -1
  240. package/option/picker/tree-option-picker.component.d.ts +2 -2
  241. package/option/selector/all/select-all.component.d.ts +1 -1
  242. package/option/selector/all/tree-select-all.component.d.ts +3 -3
  243. package/option/selector/option-selector.model.d.ts +4 -4
  244. package/package.json +49 -19
  245. package/picker/input-picker.model.d.ts +4 -4
  246. package/popover/panel/popover-panel.model.d.ts +3 -3
  247. package/qualification/select/input/qualification-select-input.component.d.ts +1 -1
  248. package/schematics/lib/scss-ast.js +4 -4
  249. package/select/input/select-input.model.d.ts +8 -8
  250. package/simple-select/api/api-v3.directive.d.ts +1 -1
  251. package/simple-select/api/api-v4.directive.d.ts +1 -1
  252. package/simple-select/api/api.directive.d.ts +2 -2
  253. package/simple-select/input/panel-ref.factory.d.ts +3 -3
  254. package/simple-select/input/select-input.component.d.ts +5 -51
  255. package/simple-select/panel/index.d.ts +0 -1
  256. package/simple-select/panel/panel.component.d.ts +6 -7
  257. package/simple-select/public-api.d.ts +0 -1
  258. package/simple-select/select.model.d.ts +4 -9
  259. package/src/components/_popup.scss +1 -8
  260. package/src/definitions/option/_option-item.scss +5 -1
  261. package/src/definitions/select/_select-input.scss +18 -17
  262. package/user/select/input/user-select-input.component.d.ts +2 -2
  263. package/user/select/me/me-option.directive.d.ts +2 -2
  264. package/user/select/searcher/user-searcher.component.d.ts +2 -2
  265. package/user/service/user-v3.service.d.ts +2 -2
  266. package/esm2022/simple-select/input/select-input.models.mjs +0 -60
  267. package/esm2022/simple-select/option/disabled.directive.mjs +0 -27
  268. package/esm2022/simple-select/option/index.mjs +0 -6
  269. package/esm2022/simple-select/option/option-outlet.directive.mjs +0 -71
  270. package/esm2022/simple-select/option/option.component.mjs +0 -78
  271. package/esm2022/simple-select/option/option.directive.mjs +0 -27
  272. package/esm2022/simple-select/option/option.token.mjs +0 -22
  273. package/esm2022/simple-select/panel/panel.models.mjs +0 -23
  274. /package/{simple-select → core-select}/input/select-input.models.d.ts +0 -0
  275. /package/{simple-select → core-select}/option/default-option.component.d.ts +0 -0
  276. /package/{simple-select → core-select}/option/disabled.directive.d.ts +0 -0
  277. /package/{simple-select → core-select}/option/option-outlet.directive.d.ts +0 -0
  278. /package/{simple-select → core-select}/option/option.token.d.ts +0 -0
@@ -1,265 +1,15 @@
1
- import { Overlay, OverlayPositionBuilder, ScrollStrategyOptions, OverlayContainer, OverlayModule } from '@angular/cdk/overlay';
2
- import { AsyncPipe, NgIf, NgFor, DOCUMENT } from '@angular/common';
1
+ import { Overlay, OverlayPositionBuilder, ScrollStrategyOptions, OverlayModule } from '@angular/cdk/overlay';
2
+ import { AsyncPipe, NgIf, NgFor } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { InjectionToken, inject, Component, Directive, Input, ViewContainerRef, Injector, TemplateRef, ChangeDetectorRef, ElementRef, ChangeDetectionStrategy, HostBinding, ViewChild, EventEmitter, ViewChildren, HostListener, Injectable, forwardRef, Output } from '@angular/core';
4
+ import { InjectionToken, inject, Component, ChangeDetectionStrategy, ViewChild, ViewChildren, HostListener, Injector, ElementRef, Injectable, forwardRef } from '@angular/core';
5
5
  import * as i2 from '@angular/forms';
6
6
  import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
7
7
  import { getIntl } from '@lucca-front/ng/core';
8
- import { BehaviorSubject, observeOn, asyncScheduler, map, filter, take, takeUntil, ReplaySubject } from 'rxjs';
8
+ import { LuSelectPanelRef, SELECT_ID, ɵLuOptionComponent, ALuSelectInputComponent, provideLuSelectOverlayContainer, provideLuSelectLabelsAndIds, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';
9
9
  import { ComponentPortal } from '@angular/cdk/portal';
10
+ import { observeOn, asyncScheduler, map, filter, take, takeUntil } from 'rxjs';
10
11
  import * as i1 from '@angular/cdk/a11y';
11
12
  import { ActiveDescendantKeyManager, A11yModule } from '@angular/cdk/a11y';
12
- import { Platform } from '@angular/cdk/platform';
13
-
14
- const LU_OPTION_CONTEXT = new InjectionToken('LuOptionContext');
15
- function optionContextFactory() {
16
- const isDisabled$ = new BehaviorSubject(false);
17
- const option$ = new BehaviorSubject(undefined);
18
- return {
19
- isDisabled$,
20
- option$,
21
- destroy() {
22
- isDisabled$.complete();
23
- option$.complete();
24
- },
25
- };
26
- }
27
- function provideOptionContext() {
28
- return {
29
- provide: LU_OPTION_CONTEXT,
30
- useFactory: optionContextFactory,
31
- };
32
- }
33
-
34
- class LuSimpleSelectDefaultOptionComponent {
35
- constructor() {
36
- this.context = inject(LU_OPTION_CONTEXT);
37
- }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuSimpleSelectDefaultOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: LuSimpleSelectDefaultOptionComponent, isStandalone: true, selector: "lu-simple-select-default-option", ngImport: i0, template: `<ng-container *ngIf="context.option$ | async as option">{{ option?.name ?? option }}</ng-container>`, isInline: true, dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
40
- }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuSimpleSelectDefaultOptionComponent, decorators: [{
42
- type: Component,
43
- args: [{
44
- selector: 'lu-simple-select-default-option',
45
- standalone: true,
46
- imports: [AsyncPipe, NgIf],
47
- template: `<ng-container *ngIf="context.option$ | async as option">{{ option?.name ?? option }}</ng-container>`,
48
- }]
49
- }] });
50
-
51
- class LuDisabledOptionDirective {
52
- constructor() {
53
- this.context = inject(LU_OPTION_CONTEXT);
54
- }
55
- set isDisabled(disabled) {
56
- if (disabled !== null) {
57
- this.context.isDisabled$.next(disabled);
58
- }
59
- }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuDisabledOptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
61
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.3", type: LuDisabledOptionDirective, isStandalone: true, selector: "[luDisabledOption]", inputs: { isDisabled: ["luDisabledOption", "isDisabled"] }, ngImport: i0 }); }
62
- }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuDisabledOptionDirective, decorators: [{
64
- type: Directive,
65
- args: [{
66
- selector: '[luDisabledOption]',
67
- standalone: true,
68
- }]
69
- }], propDecorators: { isDisabled: [{
70
- type: Input,
71
- args: ['luDisabledOption']
72
- }] } });
73
-
74
- class LuDisplayerDirective {
75
- set select(select) {
76
- select.valueTpl = this.templateRef;
77
- }
78
- constructor(templateRef) {
79
- this.templateRef = templateRef;
80
- }
81
- static ngTemplateContextGuard(_dir, ctx) {
82
- return true;
83
- }
84
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuDisplayerDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
85
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.3", type: LuDisplayerDirective, isStandalone: true, selector: "[luDisplayer]", inputs: { select: ["luDisplayerSelect", "select"] }, ngImport: i0 }); }
86
- }
87
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuDisplayerDirective, decorators: [{
88
- type: Directive,
89
- args: [{
90
- selector: '[luDisplayer]',
91
- standalone: true,
92
- }]
93
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { select: [{
94
- type: Input,
95
- args: ['luDisplayerSelect']
96
- }] } });
97
-
98
- const SELECT_ID = new InjectionToken('LuSelectPanelData');
99
- const SELECT_PANEL_DATA = new InjectionToken('LuSelectId');
100
- const SELECT_LABEL = new InjectionToken('LuSelectLabel');
101
- const SELECT_LABEL_ID = new InjectionToken('LuSelectLabelId');
102
-
103
- class LuOptionOutletDirective {
104
- constructor() {
105
- this.viewContainerRef = inject(ViewContainerRef);
106
- this.injector = inject(Injector);
107
- this.optionContext = inject(LU_OPTION_CONTEXT);
108
- }
109
- ngOnChanges(changes) {
110
- if (changes['luOptionOutlet'] || !this.luOptionOutletValue) {
111
- this.clearContainer();
112
- }
113
- const hasRef = this.embeddedViewRef || this.componentRef;
114
- if (changes['luOptionOutlet'] || (changes['luOptionOutletValue'] && !hasRef)) {
115
- this.createComponent();
116
- }
117
- else if (changes['luOptionOutletValue']) {
118
- this.updateRefValue();
119
- }
120
- }
121
- ngOnDestroy() {
122
- this.optionContext.destroy();
123
- }
124
- clearContainer() {
125
- this.viewContainerRef.clear();
126
- this.embeddedViewRef?.destroy();
127
- this.componentRef?.destroy();
128
- this.embeddedViewRef = undefined;
129
- this.componentRef = undefined;
130
- }
131
- createComponent() {
132
- if (!this.luOptionOutlet || !this.luOptionOutletValue) {
133
- return;
134
- }
135
- if (this.luOptionOutlet instanceof TemplateRef) {
136
- this.embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.luOptionOutlet, { $implicit: this.luOptionOutletValue }, { injector: this.injector });
137
- }
138
- else {
139
- this.optionContext.option$.next(this.luOptionOutletValue);
140
- this.componentRef = this.viewContainerRef.createComponent(this.luOptionOutlet, { injector: this.injector });
141
- }
142
- }
143
- updateRefValue() {
144
- if (!this.luOptionOutletValue) {
145
- return;
146
- }
147
- if (this.embeddedViewRef) {
148
- this.embeddedViewRef.context = { $implicit: this.luOptionOutletValue };
149
- }
150
- else if (this.componentRef) {
151
- this.optionContext.option$.next(this.luOptionOutletValue);
152
- }
153
- }
154
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuOptionOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
155
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.3", type: LuOptionOutletDirective, isStandalone: true, selector: "[luOptionOutlet]", inputs: { luOptionOutlet: "luOptionOutlet", luOptionOutletValue: "luOptionOutletValue" }, providers: [provideOptionContext()], usesOnChanges: true, ngImport: i0 }); }
156
- }
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuOptionOutletDirective, decorators: [{
158
- type: Directive,
159
- args: [{
160
- selector: '[luOptionOutlet]',
161
- standalone: true,
162
- providers: [provideOptionContext()],
163
- }]
164
- }], propDecorators: { luOptionOutlet: [{
165
- type: Input
166
- }], luOptionOutletValue: [{
167
- type: Input
168
- }] } });
169
-
170
- class LuOptionComponent {
171
- constructor() {
172
- this.hasOptionItemClass = true;
173
- this.isSelected = false;
174
- this.optionIndex = 0;
175
- this.isHighlighted$ = new BehaviorSubject(false);
176
- /**
177
- * Whether option is disabled. Used by ListKeyManager.
178
- */
179
- this.disabled = false;
180
- this.cdr = inject(ChangeDetectorRef);
181
- this.role = 'option';
182
- this.elementRef = inject(ElementRef);
183
- this.selectId = inject(SELECT_ID);
184
- }
185
- get id() {
186
- return `lu-select-${this.selectId}-option-${this.optionIndex}`;
187
- }
188
- ngOnDestroy() {
189
- this.subscription?.unsubscribe();
190
- }
191
- ngAfterViewInit() {
192
- this.subscription = this.optionContext.isDisabled$.pipe(observeOn(asyncScheduler)).subscribe((isDisabled) => {
193
- this.disabled = isDisabled;
194
- this.cdr.markForCheck();
195
- });
196
- }
197
- setActiveStyles() {
198
- this.isHighlighted$.next(true);
199
- this.elementRef.nativeElement.scrollIntoView({ block: 'center' });
200
- }
201
- setInactiveStyles() {
202
- this.isHighlighted$.next(false);
203
- }
204
- selectOption($event) {
205
- if (this.disabled) {
206
- $event.stopPropagation();
207
- }
208
- }
209
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
210
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: LuOptionComponent, isStandalone: true, selector: "lu-select-option", inputs: { optionTpl: "optionTpl", isSelected: "isSelected", option: "option", optionIndex: "optionIndex" }, host: { properties: { "class.optionItem": "this.hasOptionItemClass", "attr.aria-selected": "this.isSelected", "attr.role": "this.role", "attr.id": "this.id" } }, viewQueries: [{ propertyName: "optionContext", first: true, predicate: LuOptionOutletDirective, descendants: true, read: LU_OPTION_CONTEXT, static: true }], ngImport: i0, template: "<div\r\n\tclass=\"optionItem-value\"\r\n\t[class.is-selected]=\"isSelected\"\r\n\t[class.is-highlighted]=\"isHighlighted$ | async\"\r\n\t[class.is-disabled]=\"disabled\"\r\n\t(click)=\"selectOption($event)\"\r\n>\r\n\t<ng-container *luOptionOutlet=\"optionTpl; value: option\"></ng-container>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}:host{display:block}.optionItem{position:relative}.optionItem-value{border-radius:var(--commons-borderRadius-M);display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);transition:background-color 50ms;cursor:pointer}.optionItem-value.is-selected{background-color:var(--palettes-primary-50)}.optionItem-value.is-selected:hover{background-color:var(--palettes-primary-100)}.optionItem-value.is-selected:active{background-color:var(--palettes-primary-200)}.optionItem-value.is-selected.is-highlighted{background-color:var(--palettes-primary-100)}.optionItem-value.is-selected.is-highlighted:hover{background-color:var(--palettes-primary-200)}.optionItem-value:hover,.optionItem-value.is-highlighted,.optionItem-value.is-focus,.optionItem-value.is-highlighted:hover,.optionItem-value.is-focus:hover{background-color:var(--palettes-grey-50)}.optionItem-value.is-highlighted:active,.optionItem-value.is-focus:active,.optionItem-value:active{background-color:var(--palettes-grey-100)}:host-context(.lu-select-value) .optionItem-value{padding:0;overflow:hidden;text-overflow:ellipsis}:host-context(.lu-select-value) .optionItem-value:hover,:host-context(.lu-select-value) .optionItem-value.is-focus,:host-context(.lu-select-value) .optionItem-value.is-highlighted{background-color:inherit}:host-context(.mod-multiple) .optionItem-value{position:relative;padding-left:var(--components-options-item-multiple-padding)}:host-context(.mod-multiple) .optionItem-value:after,:host-context(.mod-multiple) .optionItem-value:before{display:block;position:absolute;left:var(--components-options-checkbox-left);top:50%;transform:translateY(-50%)}:host-context(.mod-multiple) .optionItem-value:before{content:\"\";border-radius:var(--components-options-checkbox-border-radius);box-shadow:inset 0 0 0 2px var(--components-options-checkbox-border-color);display:block;height:var(--components-options-checkbox-size);transition-property:background-color,box-shadow;transition-duration:var(--commons-animations-durations-fast);width:var(--components-options-checkbox-size)}:host-context(.mod-multiple) .optionItem-value:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;color:transparent;font-size:var(--sizes-S-lineHeight);line-height:var(--components-options-checkbox-size);position:absolute;text-align:center;transform:translateY(-50%) scale(0);transition:all .1s;width:var(--components-options-checkbox-size)}@supports (content: \"*\"/\"\"){:host-context(.mod-multiple) .optionItem-value:after{content:\"\\e97d\"/\"\"}}@supports not (content: \"*\"/\"\"){:host-context(.mod-multiple) .optionItem-value:after{content:\"\\e97d\"}}:host-context(.mod-multiple) .optionItem-value.is-selected:before{background-color:var(--components-options-checkbox-color);box-shadow:inset 0 0 0 2px var(--components-options-checkbox-color)}:host-context(.mod-multiple) .optionItem-value.is-selected:after{color:var(--colors-white-color);transform:translateY(-50%) scale(1)}:host-context(.mod-multiple) .optionItem-value:hover:before{box-shadow:inset 0 0 0 2px var(--components-options-checkbox-color)}:host-context(.mod-multiple).establishmentOption .optionItem-value{position:relative;padding-left:calc(var(--components-options-checkbox-size) + var(--spacings-XS) * 2)}:host-context(.mod-multiple).establishmentOption .optionItem-value:before,:host-context(.mod-multiple).establishmentOption .optionItem-value:after{left:var(--spacings-XS)}.is-disabled{color:var(--palettes-grey-500);-webkit-user-select:none;user-select:none;cursor:default}.is-disabled.is-selected{background-color:var(--palettes-grey-100)}.is-disabled:hover{background-color:inherit}\n"], dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: LuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
211
- }
212
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuOptionComponent, decorators: [{
213
- type: Component,
214
- args: [{ selector: 'lu-select-option', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [AsyncPipe, LuOptionOutletDirective], template: "<div\r\n\tclass=\"optionItem-value\"\r\n\t[class.is-selected]=\"isSelected\"\r\n\t[class.is-highlighted]=\"isHighlighted$ | async\"\r\n\t[class.is-disabled]=\"disabled\"\r\n\t(click)=\"selectOption($event)\"\r\n>\r\n\t<ng-container *luOptionOutlet=\"optionTpl; value: option\"></ng-container>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}:host{display:block}.optionItem{position:relative}.optionItem-value{border-radius:var(--commons-borderRadius-M);display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);transition:background-color 50ms;cursor:pointer}.optionItem-value.is-selected{background-color:var(--palettes-primary-50)}.optionItem-value.is-selected:hover{background-color:var(--palettes-primary-100)}.optionItem-value.is-selected:active{background-color:var(--palettes-primary-200)}.optionItem-value.is-selected.is-highlighted{background-color:var(--palettes-primary-100)}.optionItem-value.is-selected.is-highlighted:hover{background-color:var(--palettes-primary-200)}.optionItem-value:hover,.optionItem-value.is-highlighted,.optionItem-value.is-focus,.optionItem-value.is-highlighted:hover,.optionItem-value.is-focus:hover{background-color:var(--palettes-grey-50)}.optionItem-value.is-highlighted:active,.optionItem-value.is-focus:active,.optionItem-value:active{background-color:var(--palettes-grey-100)}:host-context(.lu-select-value) .optionItem-value{padding:0;overflow:hidden;text-overflow:ellipsis}:host-context(.lu-select-value) .optionItem-value:hover,:host-context(.lu-select-value) .optionItem-value.is-focus,:host-context(.lu-select-value) .optionItem-value.is-highlighted{background-color:inherit}:host-context(.mod-multiple) .optionItem-value{position:relative;padding-left:var(--components-options-item-multiple-padding)}:host-context(.mod-multiple) .optionItem-value:after,:host-context(.mod-multiple) .optionItem-value:before{display:block;position:absolute;left:var(--components-options-checkbox-left);top:50%;transform:translateY(-50%)}:host-context(.mod-multiple) .optionItem-value:before{content:\"\";border-radius:var(--components-options-checkbox-border-radius);box-shadow:inset 0 0 0 2px var(--components-options-checkbox-border-color);display:block;height:var(--components-options-checkbox-size);transition-property:background-color,box-shadow;transition-duration:var(--commons-animations-durations-fast);width:var(--components-options-checkbox-size)}:host-context(.mod-multiple) .optionItem-value:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;color:transparent;font-size:var(--sizes-S-lineHeight);line-height:var(--components-options-checkbox-size);position:absolute;text-align:center;transform:translateY(-50%) scale(0);transition:all .1s;width:var(--components-options-checkbox-size)}@supports (content: \"*\"/\"\"){:host-context(.mod-multiple) .optionItem-value:after{content:\"\\e97d\"/\"\"}}@supports not (content: \"*\"/\"\"){:host-context(.mod-multiple) .optionItem-value:after{content:\"\\e97d\"}}:host-context(.mod-multiple) .optionItem-value.is-selected:before{background-color:var(--components-options-checkbox-color);box-shadow:inset 0 0 0 2px var(--components-options-checkbox-color)}:host-context(.mod-multiple) .optionItem-value.is-selected:after{color:var(--colors-white-color);transform:translateY(-50%) scale(1)}:host-context(.mod-multiple) .optionItem-value:hover:before{box-shadow:inset 0 0 0 2px var(--components-options-checkbox-color)}:host-context(.mod-multiple).establishmentOption .optionItem-value{position:relative;padding-left:calc(var(--components-options-checkbox-size) + var(--spacings-XS) * 2)}:host-context(.mod-multiple).establishmentOption .optionItem-value:before,:host-context(.mod-multiple).establishmentOption .optionItem-value:after{left:var(--spacings-XS)}.is-disabled{color:var(--palettes-grey-500);-webkit-user-select:none;user-select:none;cursor:default}.is-disabled.is-selected{background-color:var(--palettes-grey-100)}.is-disabled:hover{background-color:inherit}\n"] }]
215
- }], propDecorators: { hasOptionItemClass: [{
216
- type: HostBinding,
217
- args: ['class.optionItem']
218
- }], optionTpl: [{
219
- type: Input
220
- }], isSelected: [{
221
- type: Input
222
- }, {
223
- type: HostBinding,
224
- args: ['attr.aria-selected']
225
- }], option: [{
226
- type: Input
227
- }], optionIndex: [{
228
- type: Input
229
- }], optionContext: [{
230
- type: ViewChild,
231
- args: [LuOptionOutletDirective, { read: LU_OPTION_CONTEXT, static: true }]
232
- }], role: [{
233
- type: HostBinding,
234
- args: ['attr.role']
235
- }], id: [{
236
- type: HostBinding,
237
- args: ['attr.id']
238
- }] } });
239
-
240
- class LuOptionDirective {
241
- set select(select) {
242
- select.optionTpl = this.templateRef;
243
- }
244
- constructor(templateRef) {
245
- this.templateRef = templateRef;
246
- }
247
- static ngTemplateContextGuard(_dir, ctx) {
248
- return true;
249
- }
250
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuOptionDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
251
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.3", type: LuOptionDirective, isStandalone: true, selector: "[luOption]", inputs: { select: ["luOptionSelect", "select"] }, ngImport: i0 }); }
252
- }
253
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuOptionDirective, decorators: [{
254
- type: Directive,
255
- args: [{
256
- selector: '[luOption]',
257
- standalone: true,
258
- }]
259
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { select: [{
260
- type: Input,
261
- args: ['luOptionSelect']
262
- }] } });
263
13
 
264
14
  const LU_SIMPLE_SELECT_TRANSLATIONS = new InjectionToken('LuSimpleSelectTranslations', {
265
15
  factory: () => luSimpleSelectTranslations,
@@ -297,31 +47,11 @@ const luSimpleSelectTranslations = {
297
47
  },
298
48
  };
299
49
 
300
- class LuSelectPanelRef {
301
- constructor() {
302
- this.closed = new EventEmitter();
303
- this.previousPage = new EventEmitter();
304
- this.nextPage = new EventEmitter();
305
- this.valueChanged = new EventEmitter();
306
- this.clueChanged = new EventEmitter();
307
- this.activeOptionIdChanged = new EventEmitter();
308
- }
309
- close() {
310
- this.closed.next();
311
- this.closed.complete();
312
- this.nextPage.complete();
313
- this.previousPage.complete();
314
- this.valueChanged.complete();
315
- this.clueChanged.emit(null);
316
- this.clueChanged.complete();
317
- this.activeOptionIdChanged.emit(undefined);
318
- this.activeOptionIdChanged.complete();
319
- }
320
- }
50
+ const SIMPLE_SELECT_PANEL_DATA = new InjectionToken('SimpleSelectPanelData');
321
51
 
322
52
  class LuSelectPanelComponent {
323
53
  constructor() {
324
- this.panelData = inject(SELECT_PANEL_DATA);
54
+ this.panelData = inject(SIMPLE_SELECT_PANEL_DATA);
325
55
  this.panelRef = inject(LuSelectPanelRef);
326
56
  this.selectId = inject(SELECT_ID);
327
57
  this.intl = getIntl(LU_SIMPLE_SELECT_TRANSLATIONS);
@@ -384,17 +114,17 @@ class LuSelectPanelComponent {
384
114
  setTimeout(() => this.keyManager.setFirstItemActive());
385
115
  }
386
116
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuSelectPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
387
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: LuSelectPanelComponent, isStandalone: true, selector: "lu-select-panel", host: { listeners: { "keydown": "onKeyDown($event)" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "optionsQL", predicate: LuOptionComponent, descendants: true }], ngImport: i0, template: "<div\r\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\r\n\trole=\"dialog\"\r\n\tcdkTrapFocus\r\n\t*ngIf=\"{ options: options$ | async } as ctx\"\r\n\t[cdkTrapFocusAutoCapture]=\"true\"\r\n>\r\n\t<div class=\"lu-picker-content\" [class.is-loading]=\"loading$ | async\" tabindex=\"0\" (scroll)=\"onScroll($event)\">\r\n\t\t<ng-container *ngIf=\"searchable\">\r\n\t\t\t<div class=\"panel-search textfield mod-search\">\r\n\t\t\t\t<input #searchInput class=\"textfield-input\" [ngModel]=\"search\" (ngModelChange)=\"updateClue($event)\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\r\n\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\r\n\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.focus()\">{{ intl.clearSearch }}</button>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t\t<div class=\"lu-picker-content-option\">\r\n\t\t\t<lu-select-option\r\n\t\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\r\n\t\t\t\t[option]=\"option\"\r\n\t\t\t\t[optionTpl]=\"optionTpl\"\r\n\t\t\t\t[optionIndex]=\"index\"\r\n\t\t\t\t[isSelected]=\"option === selected\"\r\n\t\t\t\t(click)=\"panelRef.emitValue(option)\"\r\n\t\t\t></lu-select-option>\r\n\t\t</div>\r\n\r\n\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\r\n\t</div>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}.textfield.mod-search{width:100%}.textfield-input{outline:none}.checkbox.mod-formerEmployee{padding:var(--spacings-XXS) var(--components-options-item-padding-horizontal);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color);background-color:var(--palettes-grey-50);font-style:italic}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}.panel-search{position:sticky;top:0;margin-bottom:var(--spacings-XXS);box-shadow:0 -4px 0 var(--spacings-XS) var(--colors-white-color)}.panel-loading:after{box-shadow:0 0 0 .25rem var(--colors-white-color),inset 0 0 0 .5rem var(--colors-white-color)}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: LuOptionComponent, selector: "lu-select-option", inputs: ["optionTpl", "isSelected", "option", "optionIndex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
117
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: LuSelectPanelComponent, isStandalone: true, selector: "lu-select-panel", host: { listeners: { "keydown": "onKeyDown($event)" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "optionsQL", predicate: ɵLuOptionComponent, descendants: true }], ngImport: i0, template: "<div\r\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\r\n\trole=\"dialog\"\r\n\tcdkTrapFocus\r\n\t*ngIf=\"{ options: options$ | async } as ctx\"\r\n\t[cdkTrapFocusAutoCapture]=\"true\"\r\n>\r\n\t<div class=\"lu-picker-content\" [class.is-loading]=\"loading$ | async\" tabindex=\"0\" (scroll)=\"onScroll($event)\">\r\n\t\t<ng-container *ngIf=\"searchable\">\r\n\t\t\t<div class=\"panel-search textfield mod-search\">\r\n\t\t\t\t<input #searchInput class=\"textfield-input\" [ngModel]=\"search\" (ngModelChange)=\"updateClue($event)\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\r\n\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\r\n\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.focus()\">{{ intl.clearSearch }}</button>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t\t<div class=\"lu-picker-content-option\">\r\n\t\t\t<lu-select-option\r\n\t\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\r\n\t\t\t\t[option]=\"option\"\r\n\t\t\t\t[optionTpl]=\"optionTpl\"\r\n\t\t\t\t[optionIndex]=\"index\"\r\n\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'center' }\"\r\n\t\t\t\t[isSelected]=\"option === selected\"\r\n\t\t\t\t(click)=\"panelRef.emitValue(option)\"\r\n\t\t\t></lu-select-option>\r\n\t\t</div>\r\n\r\n\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\r\n\t</div>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}.textfield.mod-search{width:100%}.textfield-input{outline:none}.checkbox.mod-formerEmployee{padding:var(--spacings-XXS) var(--components-options-item-padding-horizontal);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color);background-color:var(--palettes-grey-50);font-style:italic}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}.panel-search{position:sticky;top:0;box-shadow:0 -4px 0 var(--spacings-XS) var(--colors-white-color)}.panel-loading:after{box-shadow:0 0 0 .25rem var(--colors-white-color),inset 0 0 0 .5rem var(--colors-white-color)}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ɵLuOptionComponent, selector: "lu-select-option", inputs: ["optionTpl", "isSelected", "option", "optionIndex", "scrollIntoViewOptions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
388
118
  }
389
119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuSelectPanelComponent, decorators: [{
390
120
  type: Component,
391
- args: [{ selector: 'lu-select-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [A11yModule, AsyncPipe, FormsModule, NgIf, NgFor, LuOptionComponent], template: "<div\r\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\r\n\trole=\"dialog\"\r\n\tcdkTrapFocus\r\n\t*ngIf=\"{ options: options$ | async } as ctx\"\r\n\t[cdkTrapFocusAutoCapture]=\"true\"\r\n>\r\n\t<div class=\"lu-picker-content\" [class.is-loading]=\"loading$ | async\" tabindex=\"0\" (scroll)=\"onScroll($event)\">\r\n\t\t<ng-container *ngIf=\"searchable\">\r\n\t\t\t<div class=\"panel-search textfield mod-search\">\r\n\t\t\t\t<input #searchInput class=\"textfield-input\" [ngModel]=\"search\" (ngModelChange)=\"updateClue($event)\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\r\n\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\r\n\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.focus()\">{{ intl.clearSearch }}</button>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t\t<div class=\"lu-picker-content-option\">\r\n\t\t\t<lu-select-option\r\n\t\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\r\n\t\t\t\t[option]=\"option\"\r\n\t\t\t\t[optionTpl]=\"optionTpl\"\r\n\t\t\t\t[optionIndex]=\"index\"\r\n\t\t\t\t[isSelected]=\"option === selected\"\r\n\t\t\t\t(click)=\"panelRef.emitValue(option)\"\r\n\t\t\t></lu-select-option>\r\n\t\t</div>\r\n\r\n\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\r\n\t</div>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}.textfield.mod-search{width:100%}.textfield-input{outline:none}.checkbox.mod-formerEmployee{padding:var(--spacings-XXS) var(--components-options-item-padding-horizontal);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color);background-color:var(--palettes-grey-50);font-style:italic}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}.panel-search{position:sticky;top:0;margin-bottom:var(--spacings-XXS);box-shadow:0 -4px 0 var(--spacings-XS) var(--colors-white-color)}.panel-loading:after{box-shadow:0 0 0 .25rem var(--colors-white-color),inset 0 0 0 .5rem var(--colors-white-color)}\n"] }]
121
+ args: [{ selector: 'lu-select-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [A11yModule, AsyncPipe, FormsModule, NgIf, NgFor, ɵLuOptionComponent], template: "<div\r\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\r\n\trole=\"dialog\"\r\n\tcdkTrapFocus\r\n\t*ngIf=\"{ options: options$ | async } as ctx\"\r\n\t[cdkTrapFocusAutoCapture]=\"true\"\r\n>\r\n\t<div class=\"lu-picker-content\" [class.is-loading]=\"loading$ | async\" tabindex=\"0\" (scroll)=\"onScroll($event)\">\r\n\t\t<ng-container *ngIf=\"searchable\">\r\n\t\t\t<div class=\"panel-search textfield mod-search\">\r\n\t\t\t\t<input #searchInput class=\"textfield-input\" [ngModel]=\"search\" (ngModelChange)=\"updateClue($event)\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\r\n\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\r\n\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.focus()\">{{ intl.clearSearch }}</button>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\t\t<div class=\"lu-picker-content-option\">\r\n\t\t\t<lu-select-option\r\n\t\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\r\n\t\t\t\t[option]=\"option\"\r\n\t\t\t\t[optionTpl]=\"optionTpl\"\r\n\t\t\t\t[optionIndex]=\"index\"\r\n\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'center' }\"\r\n\t\t\t\t[isSelected]=\"option === selected\"\r\n\t\t\t\t(click)=\"panelRef.emitValue(option)\"\r\n\t\t\t></lu-select-option>\r\n\t\t</div>\r\n\r\n\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\r\n\t</div>\r\n</div>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}.textfield.mod-search{width:100%}.textfield-input{outline:none}.checkbox.mod-formerEmployee{padding:var(--spacings-XXS) var(--components-options-item-padding-horizontal);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color);background-color:var(--palettes-grey-50);font-style:italic}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}.panel-search{position:sticky;top:0;box-shadow:0 -4px 0 var(--spacings-XS) var(--colors-white-color)}.panel-loading:after{box-shadow:0 0 0 .25rem var(--colors-white-color),inset 0 0 0 .5rem var(--colors-white-color)}\n"] }]
392
122
  }], propDecorators: { searchInput: [{
393
123
  type: ViewChild,
394
124
  args: ['searchInput']
395
125
  }], optionsQL: [{
396
126
  type: ViewChildren,
397
- args: [LuOptionComponent]
127
+ args: [ɵLuOptionComponent]
398
128
  }], onKeyDown: [{
399
129
  type: HostListener,
400
130
  args: ['keydown', ['$event']]
@@ -407,7 +137,7 @@ class SelectPanelRef extends LuSelectPanelRef {
407
137
  const injector = Injector.create({
408
138
  providers: [
409
139
  { provide: LuSelectPanelRef, useValue: this },
410
- { provide: SELECT_PANEL_DATA, useValue: panelData },
140
+ { provide: SIMPLE_SELECT_PANEL_DATA, useValue: panelData },
411
141
  ],
412
142
  parent: parentInjector,
413
143
  });
@@ -483,147 +213,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImpor
483
213
  type: Injectable
484
214
  }] });
485
215
 
486
- let selectId = 0;
487
- function selectIdFactory() {
488
- return selectId++;
489
- }
490
- function selectLabelFactory() {
491
- const elementRef = inject(ElementRef);
492
- function getLabel(node) {
493
- if (node instanceof HTMLLabelElement) {
494
- return node;
495
- }
496
- if (!node.parentElement) {
497
- return undefined;
498
- }
499
- return getLabel(node.parentElement);
500
- }
501
- return getLabel(elementRef.nativeElement);
502
- }
503
- function selectLabelIdFactory() {
504
- return inject(SELECT_LABEL)?.id || `lu-select-label-${inject(SELECT_ID)}`;
505
- }
506
- function provideLuSelectLabelsAndIds() {
507
- return [
508
- { provide: SELECT_ID, useFactory: selectIdFactory },
509
- { provide: SELECT_LABEL, useFactory: selectLabelFactory },
510
- { provide: SELECT_LABEL_ID, useFactory: selectLabelIdFactory },
511
- ];
512
- }
513
- class LuSelectOverlayContainer extends OverlayContainer {
216
+ class LuSimpleSelectInputComponent extends ALuSelectInputComponent {
514
217
  constructor() {
515
- super(inject(DOCUMENT), inject(Platform));
516
- this.selectLabelId = inject(SELECT_LABEL_ID);
517
- this.selectId = inject(SELECT_ID);
518
- }
519
- _createContainer() {
520
- super._createContainer();
521
- this._containerElement.setAttribute('aria-labelledby', this.selectLabelId);
522
- this._containerElement.setAttribute('role', 'listbox');
523
- this._containerElement.id = `lu-select-overlay-container-${this.selectId}`;
524
- }
525
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuSelectOverlayContainer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
526
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuSelectOverlayContainer }); }
527
- }
528
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuSelectOverlayContainer, decorators: [{
529
- type: Injectable
530
- }], ctorParameters: function () { return []; } });
531
- function provideLuSelectOverlayContainer() {
532
- return [
533
- {
534
- provide: OverlayContainer,
535
- useClass: LuSelectOverlayContainer,
536
- },
537
- ];
538
- }
539
-
540
- /* eslint-disable @angular-eslint/no-output-on-prefix */
541
- class LuSimpleSelectInputComponent {
542
- constructor() {
543
- this.tabindex = 0;
544
- this.placeholder = '';
545
- this.clearable = false;
546
- this.disabled = false;
547
- this.isPanelOpen$ = new BehaviorSubject(false);
548
- this.role = 'combobox';
549
- this.overlayConfig = {
550
- hasBackdrop: true,
551
- backdropClass: 'cdk-overlay-transparent-backdrop',
552
- };
553
- this.optionComparer = (option1, option2) => JSON.stringify(option1) === JSON.stringify(option2);
554
- this.optionTpl = LuSimpleSelectDefaultOptionComponent;
555
- this.clueChange = new EventEmitter();
556
- this.nextPage = new EventEmitter();
557
- this.previousPage = new EventEmitter();
558
- this.options$ = new ReplaySubject(1);
559
- this.loading$ = new ReplaySubject(1);
560
- this.clue = null;
218
+ super(...arguments);
561
219
  this.intl = getIntl(LU_SIMPLE_SELECT_TRANSLATIONS);
562
- this.changeDetectorRef = inject(ChangeDetectorRef);
563
- this.overlayContainerRef = inject(OverlayContainer).getContainerElement();
564
220
  this.panelRefFactory = inject(LuSimpleSelectPanelRefFactory);
565
- this.label = inject(SELECT_LABEL);
566
- this.labelId = inject(SELECT_LABEL_ID);
567
- }
568
- get searchable() {
569
- return this.clueChange.observed;
570
- }
571
- get isFilled() {
572
- return this.value !== null && this.value !== undefined;
573
- }
574
- get isPanelOpen() {
575
- return this.isPanelOpen$.value;
576
- }
577
- get ariaControls() {
578
- return this.overlayContainerRef.id;
579
- }
580
- set loading(value) {
581
- this.loading$.next(value);
582
- }
583
- set options(options) {
584
- this.options$.next(options);
585
- }
586
- get value() {
587
- return this._value;
588
- }
589
- set value(value) {
590
- this._value = value;
591
- this.changeDetectorRef.markForCheck();
592
- }
593
- onKeydown($event) {
594
- if (!this.isPanelOpen) {
595
- this.openPanel();
596
- $event.stopPropagation();
597
- $event.preventDefault();
598
- }
599
221
  }
600
- registerOnChange(onChange) {
601
- this.onChange = onChange;
602
- }
603
- registerOnTouched(onTouched) {
604
- this.onTouched = onTouched;
605
- }
606
- setDisabledState(isDisabled) {
607
- this.disabled = isDisabled;
608
- }
609
- ngOnDestroy() {
610
- this.panelRef?.close();
611
- }
612
- ngOnInit() {
613
- if (this.label) {
614
- this.label.id = this.labelId;
615
- }
616
- }
617
- clearValue(event) {
618
- event.stopPropagation();
619
- this.updateValue(null);
620
- }
621
- openPanel() {
622
- if (this.isPanelOpen || this.disabled) {
623
- return;
624
- }
625
- this.isPanelOpen$.next(true);
626
- this.panelRef = this.panelRefFactory.buildPanelRef({
222
+ buildPanelRef() {
223
+ return this.panelRefFactory.buildPanelRef({
627
224
  initialValue: this.value,
628
225
  optionComparer: this.optionComparer,
629
226
  options$: this.options$,
@@ -631,127 +228,47 @@ class LuSimpleSelectInputComponent {
631
228
  searchable: this.searchable,
632
229
  optionTpl: this.optionTpl,
633
230
  }, this.overlayConfig);
634
- this.panelRef.valueChanged.subscribe((value) => this.updateValue(value));
635
- this.panelRef.nextPage.subscribe(() => this.nextPage.emit());
636
- this.panelRef.previousPage.subscribe(() => this.previousPage.emit());
637
- this.panelRef.clueChanged.subscribe((clue) => {
638
- this.clueChange.emit(clue);
639
- this.clue = clue;
640
- });
641
- this.panelRef.activeOptionIdChanged.subscribe((optionId) => {
642
- this.activeDescendant = optionId;
643
- this.changeDetectorRef.markForCheck();
644
- });
645
- this.panelRef.closed.subscribe(() => this.closePanel());
646
- }
647
- closePanel() {
648
- if (!this.isPanelOpen) {
649
- return;
650
- }
651
- this.isPanelOpen$.next(false);
652
- this.panelRef.close();
653
- this.panelRef = undefined;
654
231
  }
655
- writeValue(value) {
656
- this.value = value;
657
- }
658
- updateValue(value) {
659
- this.value = value;
660
- this.onChange?.(value);
661
- this.onTouched?.();
232
+ get hasValue() {
233
+ return this.value !== null && this.value !== undefined;
662
234
  }
663
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuSimpleSelectInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
664
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: LuSimpleSelectInputComponent, isStandalone: true, selector: "lu-simple-select", inputs: { placeholder: "placeholder", clearable: "clearable", disabled: "disabled", overlayConfig: "overlayConfig", loading: "loading", options: "options", optionComparer: "optionComparer", optionTpl: "optionTpl", valueTpl: "valueTpl" }, outputs: { clueChange: "clueChange", nextPage: "nextPage", previousPage: "previousPage" }, host: { listeners: { "keydown.space": "onKeydown($event)", "keydown.enter": "onKeydown($event)", "keydown.arrowDown": "onKeydown($event)", "click": "onKeydown($event)" }, properties: { "tabindex": "this.tabindex", "class.is-clearable": "this.clearable", "class.is-disabled": "this.disabled", "class.is-filled": "this.isFilled", "class.is-focused": "this.isPanelOpen", "attr.aria-expanded": "this.isPanelOpen", "attr.role": "this.role", "attr.aria-activedescendant": "this.activeDescendant", "attr.aria-controls": "this.ariaControls" } }, providers: [
235
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuSimpleSelectInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
236
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: LuSimpleSelectInputComponent, isStandalone: true, selector: "lu-simple-select", providers: [
665
237
  {
666
238
  provide: NG_VALUE_ACCESSOR,
667
239
  useExisting: forwardRef(() => LuSimpleSelectInputComponent),
668
240
  multi: true,
669
241
  },
242
+ {
243
+ provide: ALuSelectInputComponent,
244
+ useExisting: forwardRef(() => LuSimpleSelectInputComponent),
245
+ },
246
+ LuSimpleSelectPanelRefFactory,
670
247
  provideLuSelectOverlayContainer(),
671
248
  provideLuSelectLabelsAndIds(),
672
- LuSimpleSelectPanelRefFactory,
673
- ], ngImport: i0, template: "<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper\">\r\n\t\t<ng-container *luOptionOutlet=\"valueTpl || optionTpl; value: value\"></ng-container>\r\n\t</div>\r\n</div>\r\n<a *ngIf=\"clearable && isFilled\" class=\"clear lu-select-clearer\" role=\"button\" (click)=\"clearValue($event)\">\r\n\t<span aria-hidden=\"true\" class=\"lucca-icon icon-signClose\"></span>\r\n\t<span class=\"u-mask\">{{ intl.clear }}</span>\r\n</a>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}:host{--components-select-chip-background: var(--palettes-primary-700);--components-select-chip-text: var(--colors-white-color);--components-select-input-padding-horizontal: var(--spacings-XS);--components-select-input-padding-vertical: var(--spacings-XS);--components-select-framed-color: var(--palettes-grey-500);--components-select-framed-color50: var(--palettes-grey-50);--components-select-framed-see-through: var(--palettes-grey-50);--components-select-framed-text: var(--palettes-grey-800);--components-select-framed-placeholder: #cccccc;--components-select-framed-side-padding: var(--spacings-S);--components-select-framed-top-padding: var(--spacings-L);--components-select-framed-bottom-padding: var(--spacings-S);--components-select-framed-label-top-offset: var(--spacings-XS);cursor:pointer;outline:none;padding:0!important;gap:0!important}:host:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;color:var(--palettes-grey-600);bottom:var(--components-select-input-padding-vertical);font-size:var(--sizes-M-lineHeight);line-height:var(--sizes-M-lineHeight);pointer-events:none;position:absolute;right:var(--components-select-input-padding-horizontal)}@supports (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"/\"\"}}@supports not (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"}}:host[disabled]{cursor:not-allowed;pointer-events:all}:host.is-disabled{cursor:not-allowed;pointer-events:all}.lu-select-display-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-value{line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);display:none}.lu-select-placeholder{color:var(--palettes-grey-400);line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-suffix,.lu-select-clearer{position:absolute;bottom:.75rem;right:2.25rem}::ng-deep .lu-select-value .label{padding:var(--spacings-XXS) var(--spacings-XS);margin-left:0}::ng-deep .lu-select-value .chip{background-color:var(--components-select-chip-background);color:var(--components-select-chip-text);vertical-align:baseline;max-width:100%;height:var(--sizes-M-lineHeight);line-height:var(--sizes-M-lineHeight);padding:0 var(--spacings-XS);margin:0 var(--spacings-XXS) var(--spacings-XXS) 0;text-overflow:ellipsis;overflow:hidden;vertical-align:top;white-space:nowrap}:host-context(.textfield.mod-S) .lu-select-value,:host-context(.textfield.mod-S) .lu-select-placeholder{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-XS-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-XS-lineHeight))}:host-context(.textfield.mod-S) .lu-select-clearer{bottom:var(--spacings-XS)}:host-context(.textfield.mod-S):after{line-height:var(--sizes-XS-lineHeight);font-size:var(--sizes-S-lineHeight)}:host-context(.textfield.mod-S) .lu-select-suffix{bottom:.5rem;right:2rem}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .label{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);font-weight:600;margin:0;padding:0;background-color:transparent}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .chip{height:var(--sizes-XS-lineHeight);line-height:var(--sizes-XS-lineHeight);font-size:var(--sizes-XS-fontSize)}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}:host-context(.textfield.mod-framed).textfield-input,:host-context(.form.mod-framed).textfield-input{padding:var(--components-select-framed-top-padding) 0 0}:host-context(.textfield.mod-framed).textfield-input:after,:host-context(.form.mod-framed).textfield-input:after{color:var(--palettes-grey-500);bottom:var(--components-select-framed-bottom-padding);right:var(--spacings-XS)}:host-context(.textfield.mod-framed).textfield-input .lu-select-value,:host-context(.form.mod-framed).textfield-input .lu-select-value{padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-placeholder,:host-context(.form.mod-framed).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400);padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-suffix,:host-context(.form.mod-framed).textfield-input .lu-select-suffix{bottom:var(--components-select-framed-bottom-padding);right:1.7rem}:host-context(.textfield.mod-filter) .lu-select-value,:host-context(.textfield.mod-filter) .lu-select-placeholder{padding:0;height:auto;padding-top:var(--spacings-S);color:var(--palettes-grey-800)}:host-context(.textfield.mod-material):after{color:var(--palettes-grey-500);bottom:.6rem;right:0}:host-context(.textfield.mod-material) .lu-select-value,:host-context(.textfield.mod-material) .lu-select-placeholder{padding-left:0;padding-right:.8rem}:host-context(.textfield.mod-material) .lu-select-suffix{right:calc(2 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material).is-select .lu-select-placeholder{display:none}:host-context(.textfield.mod-material).mod-search:after{bottom:0}:host-context(.textfield.mod-material).mod-search .lu-select-suffix{right:calc(2.75 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material .textfield-input.is-focused) .lu-select-placeholder{display:none}:host(.mod-multiple) .lu-select-value{height:auto;align-items:center}:host(.mod-multiple) .lu-select-display-wrapper{overflow:hidden;white-space:normal;margin-bottom:calc(var(--spacings-XXS) * -1)}:host-context(.textfield.mod-outlined).textfield-input:after{color:var(--palettes-grey-600)}:host-context(.textfield.mod-outlined).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error):after{color:var(--palettes-error-600)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-filled) .lu-select-placeholder{display:none}:host-context(.textfield-input.is-filled) .lu-select-value{display:flex;align-items:flex-start}:host-context(.textfield-input.is-clearable) .lu-select-value{padding-right:3.5rem}:host-context(.textfield-input.is-error):after{color:var(--palettes-error-700)}:host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]):after{color:var(--commons-disabled-color)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]) .lu-select-placeholder{color:var(--commons-disabled-placeholder)}:host{display:none}:host-context(.textfield-input.is-filled){display:block}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]){display:none}.lu-select-value{padding-right:2rem}:host.is-disabled{display:inline-block!important}\n"], dependencies: [{ kind: "directive", type: LuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: OverlayModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
249
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper\">\r\n\t\t<ng-container *luOptionOutlet=\"valueTpl || optionTpl; value: value\"></ng-container>\r\n\t</div>\r\n</div>\r\n<a *ngIf=\"clearable && hasValue\" class=\"clear lu-select-clearer\" role=\"button\" (click)=\"clearValue($event)\">\r\n\t<span aria-hidden=\"true\" class=\"lucca-icon icon-signClose\"></span>\r\n\t<span class=\"u-mask\">{{ intl.clear }}</span>\r\n</a>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}:host{--components-select-input-padding-horizontal: var(--spacings-XS);--components-select-input-padding-vertical: var(--spacings-XS);--components-select-framed-color: var(--palettes-grey-500);--components-select-framed-color50: var(--palettes-grey-50);--components-select-framed-see-through: var(--palettes-grey-50);--components-select-framed-text: var(--palettes-grey-800);--components-select-framed-placeholder: #cccccc;--components-select-framed-side-padding: var(--spacings-S);--components-select-framed-top-padding: var(--spacings-L);--components-select-framed-bottom-padding: var(--spacings-S);--components-select-framed-label-top-offset: var(--spacings-XS);cursor:pointer;outline:none;padding:0;gap:0}:host:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;color:var(--palettes-grey-600);bottom:var(--components-select-input-padding-vertical);font-size:var(--sizes-M-lineHeight);line-height:var(--sizes-M-lineHeight);pointer-events:none;position:absolute;right:var(--components-select-input-padding-horizontal)}@supports (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"/\"\"}}@supports not (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"}}:host[disabled],:host.is-disabled{cursor:not-allowed;pointer-events:all}.lu-select-display-wrapper{display:flex;text-overflow:ellipsis;white-space:nowrap;gap:var(--spacings-XXS)}.lu-select-value{line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);display:none}.lu-select-placeholder{color:var(--palettes-grey-400);line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-suffix,.lu-select-clearer{position:absolute;bottom:.75rem;right:2.25rem}::ng-deep .lu-select-value lu-simple-select-default-option{max-width:5rem;text-overflow:ellipsis;overflow:hidden}::ng-deep .lu-select-value .label{padding:var(--spacings-XXS) var(--spacings-XS);margin-left:0}::ng-deep .lu-select-value .chip{vertical-align:baseline;max-width:100%;margin:0 var(--spacings-XXS) var(--spacings-XXS) 0;text-overflow:ellipsis;overflow:hidden;vertical-align:top;white-space:nowrap}:host-context(.textfield.mod-S){padding:0}:host-context(.textfield.mod-S) .lu-select-value,:host-context(.textfield.mod-S) .lu-select-placeholder{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-XS-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-XS-lineHeight))}:host-context(.textfield.mod-S) .lu-select-clearer{bottom:var(--spacings-XS)}:host-context(.textfield.mod-S):after{line-height:var(--sizes-XS-lineHeight);font-size:var(--sizes-S-lineHeight)}:host-context(.textfield.mod-S) .lu-select-suffix{bottom:.5rem;right:2rem}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .label{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);font-weight:600;margin:0;padding:0;background-color:transparent}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .chip{height:var(--sizes-XS-lineHeight);line-height:var(--sizes-XS-lineHeight);font-size:var(--sizes-XS-fontSize);padding-left:var(--spacings-XXS);padding-right:var(--spacings-XXS);gap:var(--spacings-XXS)}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}:host-context(.textfield.mod-framed).textfield-input,:host-context(.form.mod-framed).textfield-input{padding:var(--components-select-framed-top-padding) 0 0}:host-context(.textfield.mod-framed).textfield-input:after,:host-context(.form.mod-framed).textfield-input:after{color:var(--palettes-grey-500);bottom:var(--components-select-framed-bottom-padding);right:var(--spacings-XS)}:host-context(.textfield.mod-framed).textfield-input .lu-select-value,:host-context(.form.mod-framed).textfield-input .lu-select-value{padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-placeholder,:host-context(.form.mod-framed).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400);padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-suffix,:host-context(.form.mod-framed).textfield-input .lu-select-suffix{bottom:var(--components-select-framed-bottom-padding);right:1.7rem}:host-context(.textfield.mod-filter) .lu-select-value,:host-context(.textfield.mod-filter) .lu-select-placeholder{padding:0;height:auto;padding-top:var(--spacings-S);color:var(--palettes-grey-800)}:host-context(.textfield.mod-material):after{color:var(--palettes-grey-500);bottom:.6rem;right:0}:host-context(.textfield.mod-material) .lu-select-value,:host-context(.textfield.mod-material) .lu-select-placeholder{padding-left:0;padding-right:.8rem}:host-context(.textfield.mod-material) .lu-select-suffix{right:calc(2 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material).is-select .lu-select-placeholder{display:none}:host-context(.textfield.mod-material).mod-search:after{bottom:0}:host-context(.textfield.mod-material).mod-search .lu-select-suffix{right:calc(2.75 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material .textfield-input.is-focused) .lu-select-placeholder{display:none}:host(.mod-multiple) .lu-select-value{height:auto;align-items:center}:host(.mod-multiple) .lu-select-display-wrapper{overflow:visible;white-space:normal;margin-bottom:calc(var(--spacings-XXS) * -1)}:host-context(.textfield.mod-outlined).textfield-input:after{color:var(--palettes-grey-600)}:host-context(.textfield.mod-outlined).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error):after{color:var(--palettes-error-600)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-filled) .lu-select-placeholder{display:none}:host-context(.textfield-input.is-filled) .lu-select-value{display:flex;align-items:flex-start}:host-context(.textfield-input.is-clearable) .lu-select-value{padding-right:3.5rem}:host-context(.textfield-input.is-error):after{color:var(--palettes-error-700)}:host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]):after{color:var(--commons-disabled-color)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]) .lu-select-placeholder{color:var(--commons-disabled-placeholder)}:host{display:none}:host-context(.textfield-input.is-filled){display:block}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]){display:none}.lu-select-value{padding-right:2rem}:host.is-disabled{display:inline-block!important}\n"], dependencies: [{ kind: "directive", type: ɵLuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: OverlayModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
674
250
  }
675
251
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuSimpleSelectInputComponent, decorators: [{
676
252
  type: Component,
677
- args: [{ selector: 'lu-simple-select', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [AsyncPipe, LuOptionOutletDirective, NgIf, OverlayModule], providers: [
253
+ args: [{ selector: 'lu-simple-select', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [AsyncPipe, ɵLuOptionOutletDirective, NgIf, OverlayModule], providers: [
678
254
  {
679
255
  provide: NG_VALUE_ACCESSOR,
680
256
  useExisting: forwardRef(() => LuSimpleSelectInputComponent),
681
257
  multi: true,
682
258
  },
259
+ {
260
+ provide: ALuSelectInputComponent,
261
+ useExisting: forwardRef(() => LuSimpleSelectInputComponent),
262
+ },
263
+ LuSimpleSelectPanelRefFactory,
683
264
  provideLuSelectOverlayContainer(),
684
265
  provideLuSelectLabelsAndIds(),
685
- LuSimpleSelectPanelRefFactory,
686
- ], template: "<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper\">\r\n\t\t<ng-container *luOptionOutlet=\"valueTpl || optionTpl; value: value\"></ng-container>\r\n\t</div>\r\n</div>\r\n<a *ngIf=\"clearable && isFilled\" class=\"clear lu-select-clearer\" role=\"button\" (click)=\"clearValue($event)\">\r\n\t<span aria-hidden=\"true\" class=\"lucca-icon icon-signClose\"></span>\r\n\t<span class=\"u-mask\">{{ intl.clear }}</span>\r\n</a>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}:host{--components-select-chip-background: var(--palettes-primary-700);--components-select-chip-text: var(--colors-white-color);--components-select-input-padding-horizontal: var(--spacings-XS);--components-select-input-padding-vertical: var(--spacings-XS);--components-select-framed-color: var(--palettes-grey-500);--components-select-framed-color50: var(--palettes-grey-50);--components-select-framed-see-through: var(--palettes-grey-50);--components-select-framed-text: var(--palettes-grey-800);--components-select-framed-placeholder: #cccccc;--components-select-framed-side-padding: var(--spacings-S);--components-select-framed-top-padding: var(--spacings-L);--components-select-framed-bottom-padding: var(--spacings-S);--components-select-framed-label-top-offset: var(--spacings-XS);cursor:pointer;outline:none;padding:0!important;gap:0!important}:host:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;color:var(--palettes-grey-600);bottom:var(--components-select-input-padding-vertical);font-size:var(--sizes-M-lineHeight);line-height:var(--sizes-M-lineHeight);pointer-events:none;position:absolute;right:var(--components-select-input-padding-horizontal)}@supports (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"/\"\"}}@supports not (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"}}:host[disabled]{cursor:not-allowed;pointer-events:all}:host.is-disabled{cursor:not-allowed;pointer-events:all}.lu-select-display-wrapper{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-value{line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);display:none}.lu-select-placeholder{color:var(--palettes-grey-400);line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-suffix,.lu-select-clearer{position:absolute;bottom:.75rem;right:2.25rem}::ng-deep .lu-select-value .label{padding:var(--spacings-XXS) var(--spacings-XS);margin-left:0}::ng-deep .lu-select-value .chip{background-color:var(--components-select-chip-background);color:var(--components-select-chip-text);vertical-align:baseline;max-width:100%;height:var(--sizes-M-lineHeight);line-height:var(--sizes-M-lineHeight);padding:0 var(--spacings-XS);margin:0 var(--spacings-XXS) var(--spacings-XXS) 0;text-overflow:ellipsis;overflow:hidden;vertical-align:top;white-space:nowrap}:host-context(.textfield.mod-S) .lu-select-value,:host-context(.textfield.mod-S) .lu-select-placeholder{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-XS-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-XS-lineHeight))}:host-context(.textfield.mod-S) .lu-select-clearer{bottom:var(--spacings-XS)}:host-context(.textfield.mod-S):after{line-height:var(--sizes-XS-lineHeight);font-size:var(--sizes-S-lineHeight)}:host-context(.textfield.mod-S) .lu-select-suffix{bottom:.5rem;right:2rem}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .label{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);font-weight:600;margin:0;padding:0;background-color:transparent}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .chip{height:var(--sizes-XS-lineHeight);line-height:var(--sizes-XS-lineHeight);font-size:var(--sizes-XS-fontSize)}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}:host-context(.textfield.mod-framed).textfield-input,:host-context(.form.mod-framed).textfield-input{padding:var(--components-select-framed-top-padding) 0 0}:host-context(.textfield.mod-framed).textfield-input:after,:host-context(.form.mod-framed).textfield-input:after{color:var(--palettes-grey-500);bottom:var(--components-select-framed-bottom-padding);right:var(--spacings-XS)}:host-context(.textfield.mod-framed).textfield-input .lu-select-value,:host-context(.form.mod-framed).textfield-input .lu-select-value{padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-placeholder,:host-context(.form.mod-framed).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400);padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-suffix,:host-context(.form.mod-framed).textfield-input .lu-select-suffix{bottom:var(--components-select-framed-bottom-padding);right:1.7rem}:host-context(.textfield.mod-filter) .lu-select-value,:host-context(.textfield.mod-filter) .lu-select-placeholder{padding:0;height:auto;padding-top:var(--spacings-S);color:var(--palettes-grey-800)}:host-context(.textfield.mod-material):after{color:var(--palettes-grey-500);bottom:.6rem;right:0}:host-context(.textfield.mod-material) .lu-select-value,:host-context(.textfield.mod-material) .lu-select-placeholder{padding-left:0;padding-right:.8rem}:host-context(.textfield.mod-material) .lu-select-suffix{right:calc(2 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material).is-select .lu-select-placeholder{display:none}:host-context(.textfield.mod-material).mod-search:after{bottom:0}:host-context(.textfield.mod-material).mod-search .lu-select-suffix{right:calc(2.75 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material .textfield-input.is-focused) .lu-select-placeholder{display:none}:host(.mod-multiple) .lu-select-value{height:auto;align-items:center}:host(.mod-multiple) .lu-select-display-wrapper{overflow:hidden;white-space:normal;margin-bottom:calc(var(--spacings-XXS) * -1)}:host-context(.textfield.mod-outlined).textfield-input:after{color:var(--palettes-grey-600)}:host-context(.textfield.mod-outlined).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error):after{color:var(--palettes-error-600)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-filled) .lu-select-placeholder{display:none}:host-context(.textfield-input.is-filled) .lu-select-value{display:flex;align-items:flex-start}:host-context(.textfield-input.is-clearable) .lu-select-value{padding-right:3.5rem}:host-context(.textfield-input.is-error):after{color:var(--palettes-error-700)}:host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]):after{color:var(--commons-disabled-color)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]) .lu-select-placeholder{color:var(--commons-disabled-placeholder)}:host{display:none}:host-context(.textfield-input.is-filled){display:block}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]){display:none}.lu-select-value{padding-right:2rem}:host.is-disabled{display:inline-block!important}\n"] }]
687
- }], propDecorators: { tabindex: [{
688
- type: HostBinding,
689
- args: ['tabindex']
690
- }], placeholder: [{
691
- type: Input
692
- }], clearable: [{
693
- type: Input
694
- }, {
695
- type: HostBinding,
696
- args: ['class.is-clearable']
697
- }], disabled: [{
698
- type: Input
699
- }, {
700
- type: HostBinding,
701
- args: ['class.is-disabled']
702
- }], isFilled: [{
703
- type: HostBinding,
704
- args: ['class.is-filled']
705
- }], isPanelOpen: [{
706
- type: HostBinding,
707
- args: ['class.is-focused']
708
- }, {
709
- type: HostBinding,
710
- args: ['attr.aria-expanded']
711
- }], role: [{
712
- type: HostBinding,
713
- args: ['attr.role']
714
- }], activeDescendant: [{
715
- type: HostBinding,
716
- args: ['attr.aria-activedescendant']
717
- }], ariaControls: [{
718
- type: HostBinding,
719
- args: ['attr.aria-controls']
720
- }], overlayConfig: [{
721
- type: Input
722
- }], loading: [{
723
- type: Input
724
- }], options: [{
725
- type: Input
726
- }], optionComparer: [{
727
- type: Input
728
- }], optionTpl: [{
729
- type: Input
730
- }], valueTpl: [{
731
- type: Input
732
- }], clueChange: [{
733
- type: Output
734
- }], nextPage: [{
735
- type: Output
736
- }], previousPage: [{
737
- type: Output
738
- }], onKeydown: [{
739
- type: HostListener,
740
- args: ['keydown.space', ['$event']]
741
- }, {
742
- type: HostListener,
743
- args: ['keydown.enter', ['$event']]
744
- }, {
745
- type: HostListener,
746
- args: ['keydown.arrowDown', ['$event']]
747
- }, {
748
- type: HostListener,
749
- args: ['click', ['$event']]
750
- }] } });
266
+ ], template: "<div class=\"lu-select-placeholder\">{{ placeholder }}</div>\r\n<div class=\"lu-select-value\">\r\n\t<div class=\"lu-select-display-wrapper\">\r\n\t\t<ng-container *luOptionOutlet=\"valueTpl || optionTpl; value: value\"></ng-container>\r\n\t</div>\r\n</div>\r\n<a *ngIf=\"clearable && hasValue\" class=\"clear lu-select-clearer\" role=\"button\" (click)=\"clearValue($event)\">\r\n\t<span aria-hidden=\"true\" class=\"lucca-icon icon-signClose\"></span>\r\n\t<span class=\"u-mask\">{{ intl.clear }}</span>\r\n</a>\r\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XS);--components-options-item-padding-horizontal: var(--spacings-XS);--components-options-item-multiple-padding: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}:host{--components-select-input-padding-horizontal: var(--spacings-XS);--components-select-input-padding-vertical: var(--spacings-XS);--components-select-framed-color: var(--palettes-grey-500);--components-select-framed-color50: var(--palettes-grey-50);--components-select-framed-see-through: var(--palettes-grey-50);--components-select-framed-text: var(--palettes-grey-800);--components-select-framed-placeholder: #cccccc;--components-select-framed-side-padding: var(--spacings-S);--components-select-framed-top-padding: var(--spacings-L);--components-select-framed-bottom-padding: var(--spacings-S);--components-select-framed-label-top-offset: var(--spacings-XS);cursor:pointer;outline:none;padding:0;gap:0}:host:after{display:inline-block;vertical-align:text-bottom;font-style:normal;font-family:Lucca icons;color:var(--palettes-grey-600);bottom:var(--components-select-input-padding-vertical);font-size:var(--sizes-M-lineHeight);line-height:var(--sizes-M-lineHeight);pointer-events:none;position:absolute;right:var(--components-select-input-padding-horizontal)}@supports (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"/\"\"}}@supports not (content: \"*\"/\"\"){:host:after{content:\"\\e97c\"}}:host[disabled],:host.is-disabled{cursor:not-allowed;pointer-events:all}.lu-select-display-wrapper{display:flex;text-overflow:ellipsis;white-space:nowrap;gap:var(--spacings-XXS)}.lu-select-value{line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);display:none}.lu-select-placeholder{color:var(--palettes-grey-400);line-height:var(--sizes-M-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-M-lineHeight));padding:var(--components-select-input-padding-vertical) 3.5rem var(--components-select-input-padding-vertical) var(--components-select-input-padding-horizontal);transition:all var(--commons-animations-durations-standard);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lu-select-suffix,.lu-select-clearer{position:absolute;bottom:.75rem;right:2.25rem}::ng-deep .lu-select-value lu-simple-select-default-option{max-width:5rem;text-overflow:ellipsis;overflow:hidden}::ng-deep .lu-select-value .label{padding:var(--spacings-XXS) var(--spacings-XS);margin-left:0}::ng-deep .lu-select-value .chip{vertical-align:baseline;max-width:100%;margin:0 var(--spacings-XXS) var(--spacings-XXS) 0;text-overflow:ellipsis;overflow:hidden;vertical-align:top;white-space:nowrap}:host-context(.textfield.mod-S){padding:0}:host-context(.textfield.mod-S) .lu-select-value,:host-context(.textfield.mod-S) .lu-select-placeholder{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-XS-lineHeight);min-height:calc(var(--components-select-framed-bottom-padding) + var(--sizes-XS-lineHeight))}:host-context(.textfield.mod-S) .lu-select-clearer{bottom:var(--spacings-XS)}:host-context(.textfield.mod-S):after{line-height:var(--sizes-XS-lineHeight);font-size:var(--sizes-S-lineHeight)}:host-context(.textfield.mod-S) .lu-select-suffix{bottom:.5rem;right:2rem}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .label{font-size:var(--sizes-S-fontSize);line-height:var(--sizes-S-lineHeight);font-weight:600;margin:0;padding:0;background-color:transparent}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .chip{height:var(--sizes-XS-lineHeight);line-height:var(--sizes-XS-lineHeight);font-size:var(--sizes-XS-fontSize);padding-left:var(--spacings-XXS);padding-right:var(--spacings-XXS);gap:var(--spacings-XXS)}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}:host-context(.textfield.mod-framed).textfield-input,:host-context(.form.mod-framed).textfield-input{padding:var(--components-select-framed-top-padding) 0 0}:host-context(.textfield.mod-framed).textfield-input:after,:host-context(.form.mod-framed).textfield-input:after{color:var(--palettes-grey-500);bottom:var(--components-select-framed-bottom-padding);right:var(--spacings-XS)}:host-context(.textfield.mod-framed).textfield-input .lu-select-value,:host-context(.form.mod-framed).textfield-input .lu-select-value{padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-placeholder,:host-context(.form.mod-framed).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400);padding:0 calc(var(--components-select-framed-side-padding) * 3) var(--components-select-framed-bottom-padding) var(--components-select-framed-side-padding)}:host-context(.textfield.mod-framed).textfield-input .lu-select-suffix,:host-context(.form.mod-framed).textfield-input .lu-select-suffix{bottom:var(--components-select-framed-bottom-padding);right:1.7rem}:host-context(.textfield.mod-filter) .lu-select-value,:host-context(.textfield.mod-filter) .lu-select-placeholder{padding:0;height:auto;padding-top:var(--spacings-S);color:var(--palettes-grey-800)}:host-context(.textfield.mod-material):after{color:var(--palettes-grey-500);bottom:.6rem;right:0}:host-context(.textfield.mod-material) .lu-select-value,:host-context(.textfield.mod-material) .lu-select-placeholder{padding-left:0;padding-right:.8rem}:host-context(.textfield.mod-material) .lu-select-suffix{right:calc(2 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material).is-select .lu-select-placeholder{display:none}:host-context(.textfield.mod-material).mod-search:after{bottom:0}:host-context(.textfield.mod-material).mod-search .lu-select-suffix{right:calc(2.75 * var(--components-select-input-padding-horizontal))}:host-context(.textfield.mod-material .textfield-input.is-focused) .lu-select-placeholder{display:none}:host(.mod-multiple) .lu-select-value{height:auto;align-items:center}:host(.mod-multiple) .lu-select-display-wrapper{overflow:visible;white-space:normal;margin-bottom:calc(var(--spacings-XXS) * -1)}:host-context(.textfield.mod-outlined).textfield-input:after{color:var(--palettes-grey-600)}:host-context(.textfield.mod-outlined).textfield-input .lu-select-placeholder{color:var(--palettes-grey-400)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error):after{color:var(--palettes-error-600)}:host-context(.textfield.mod-outlined) :host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-filled) .lu-select-placeholder{display:none}:host-context(.textfield-input.is-filled) .lu-select-value{display:flex;align-items:flex-start}:host-context(.textfield-input.is-clearable) .lu-select-value{padding-right:3.5rem}:host-context(.textfield-input.is-error):after{color:var(--palettes-error-700)}:host-context(.textfield-input.is-error) .lu-select-placeholder{color:var(--palettes-error-400)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]):after{color:var(--commons-disabled-color)}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]) .lu-select-placeholder{color:var(--commons-disabled-placeholder)}:host{display:none}:host-context(.textfield-input.is-filled){display:block}:host-context(.textfield-input.is-disabled,.textfield-input[disabled]){display:none}.lu-select-value{padding-right:2rem}:host.is-disabled{display:inline-block!important}\n"] }]
267
+ }] });
751
268
 
752
269
  /**
753
270
  * Generated bundle index. Do not edit.
754
271
  */
755
272
 
756
- export { LU_SIMPLE_SELECT_TRANSLATIONS, LuDisabledOptionDirective, LuDisplayerDirective, LuOptionDirective, LuSelectPanelComponent, LuSelectPanelRef, LuSimpleSelectDefaultOptionComponent, LuSimpleSelectInputComponent, luSimpleSelectTranslations, LuOptionComponent as ɵLuOptionComponent };
273
+ export { LU_SIMPLE_SELECT_TRANSLATIONS, LuSelectPanelComponent, LuSimpleSelectInputComponent, luSimpleSelectTranslations };
757
274
  //# sourceMappingURL=lucca-front-ng-simple-select.mjs.map