@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
@@ -55,9 +55,9 @@ export declare abstract class ALuPopoverPanel<T = unknown> implements ILuPopover
55
55
  set contentClasses(cl: string);
56
56
  get contentClassesMap(): Record<string, boolean>;
57
57
  /** Classes to be passed into the popover's overlay */
58
- protected _overlayPaneClass: string | string[];
59
- get overlayPaneClass(): string | string[];
60
- set overlayPaneClass(opc: string | string[]);
58
+ protected _overlayPaneClass: string | readonly string[];
59
+ get overlayPaneClass(): string | readonly string[];
60
+ set overlayPaneClass(opc: string | readonly string[]);
61
61
  protected _keydownEventsSub: Subscription;
62
62
  set keydownEvents$(evt$: Observable<KeyboardEvent>);
63
63
  close: Observable<void>;
@@ -13,7 +13,7 @@ export declare class LuQualificationSelectInputComponent<D extends import('../..
13
13
  protected _viewContainerRef: ViewContainerRef;
14
14
  protected _renderer: Renderer2;
15
15
  byId: LuOptionComparer<D>;
16
- filters: string[];
16
+ filters: readonly string[];
17
17
  isSearching: boolean;
18
18
  intl: import("./qualification-select-input.translate").ILuQualificationSelectInputLabel;
19
19
  constructor(_changeDetectorRef: ChangeDetectorRef, _overlay: Overlay, _elementRef: ElementRef<HTMLElement>, _viewContainerRef: ViewContainerRef, _renderer: Renderer2);
@@ -80,10 +80,10 @@ function updateCSSClassNamesInRules(root, mappingOldToNew, postScssSelectorParse
80
80
  /**
81
81
  * In sass we can do such a thing:
82
82
  * .foo {
83
- * padding: {
84
- * top: 10px;
85
- * bottom: 10px;
86
- * }
83
+ * padding: {
84
+ * top: 10px;
85
+ * bottom: 10px;
86
+ * }
87
87
  * }
88
88
  * "padding:" is considered as a rule but its selector cannot be parsed using postScssSelectorParser
89
89
  */
@@ -20,13 +20,13 @@ export declare abstract class ALuSelectInput<T, TPicker extends ILuPickerPanel<T
20
20
  /**
21
21
  * contriol value accessor interface implementation
22
22
  */
23
- protected _value: T | T[];
24
- setValue(value: T | T[]): void;
25
- get value(): T | T[];
26
- set value(value: T | T[]);
27
- writeValue(value: T | T[]): void;
28
- protected _cvaOnChange: (v: T | T[]) => any;
29
- registerOnChange(fn: (v: T | T[]) => unknown): void;
23
+ protected _value: T | readonly T[];
24
+ setValue(value: T | readonly T[]): void;
25
+ get value(): T | readonly T[];
26
+ set value(value: T | readonly T[]);
27
+ writeValue(value: T | readonly T[]): void;
28
+ protected _cvaOnChange: (v: T | readonly T[]) => any;
29
+ registerOnChange(fn: (v: T | readonly T[]) => unknown): void;
30
30
  protected _onTouched: () => any;
31
31
  registerOnTouched(fn: () => unknown): void;
32
32
  set disabled(d: boolean);
@@ -52,7 +52,7 @@ export declare abstract class ALuSelectInput<T, TPicker extends ILuPickerPanel<T
52
52
  protected useMultipleViews(): boolean;
53
53
  protected renderSingleView(): void;
54
54
  protected clearDisplay(): void;
55
- protected getView(value: T | T[]): ViewRef;
55
+ protected getView(value: T | readonly T[]): ViewRef;
56
56
  protected displayView(view: ViewRef): void;
57
57
  protected renderMultipleViews(): void;
58
58
  protected _multiple: boolean;
@@ -21,5 +21,5 @@ export declare class LuSimpleSelectApiV3Directive<T extends ILuApiItem> extends
21
21
  protected getOptions(params: Record<string, string | number | boolean>, page: number): Observable<T[]>;
22
22
  protected optionComparer: (a: T, b: T) => boolean;
23
23
  static ɵfac: i0.ɵɵFactoryDeclaration<LuSimpleSelectApiV3Directive<any>, never>;
24
- static ɵdir: i0.ɵɵDirectiveDeclaration<LuSimpleSelectApiV3Directive<any>, "lu-simple-select[apiV3]", never, { "apiV3": { "alias": "apiV3"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "orderBy": { "alias": "orderBy"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; }, {}, never, never, true, never>;
24
+ static ɵdir: i0.ɵɵDirectiveDeclaration<LuSimpleSelectApiV3Directive<any>, "lu-simple-select[apiV3],lu-multi-select[apiV3]", never, { "apiV3": { "alias": "apiV3"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "orderBy": { "alias": "orderBy"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; }, {}, never, never, true, never>;
25
25
  }
@@ -18,5 +18,5 @@ export declare class LuSimpleSelectApiV4Directive<T extends ILuApiItem> extends
18
18
  protected getOptions(params: Record<string, string | number | boolean>, page: number): Observable<T[]>;
19
19
  protected optionComparer: (a: T, b: T) => boolean;
20
20
  static ɵfac: i0.ɵɵFactoryDeclaration<LuSimpleSelectApiV4Directive<any>, never>;
21
- static ɵdir: i0.ɵɵDirectiveDeclaration<LuSimpleSelectApiV4Directive<any>, "lu-simple-select[apiV4]", never, { "apiV4": { "alias": "apiV4"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; }, {}, never, never, true, never>;
21
+ static ɵdir: i0.ɵɵDirectiveDeclaration<LuSimpleSelectApiV4Directive<any>, "lu-simple-select[apiV4],lu-multi-select[apiV4]", never, { "apiV4": { "alias": "apiV4"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; }, {}, never, never, true, never>;
22
22
  }
@@ -1,5 +1,5 @@
1
1
  import { OnDestroy, OnInit } from '@angular/core';
2
- import { LuSimpleSelectInputComponent } from '@lucca-front/ng/simple-select';
2
+ import { ALuSelectInputComponent } from '@lucca-front/ng/core-select';
3
3
  import { BehaviorSubject, Observable, Subject } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare const MAGIC_PAGE_SIZE = 20;
@@ -8,7 +8,7 @@ export declare abstract class ALuSimpleSelectApiDirective<TOption, TParams = Rec
8
8
  protected destroy$: Subject<void>;
9
9
  protected pageSize: number;
10
10
  protected debounceDuration: number;
11
- protected select: LuSimpleSelectInputComponent<TOption>;
11
+ protected select: ALuSelectInputComponent<TOption, unknown>;
12
12
  protected page$: Observable<number>;
13
13
  protected clue$: Observable<string>;
14
14
  /**
@@ -1,7 +1,7 @@
1
1
  import { Overlay, OverlayConfig, OverlayPositionBuilder, ScrollStrategyOptions } from '@angular/cdk/overlay';
2
2
  import { ElementRef, Injector } from '@angular/core';
3
- import { LuSelectPanelRef } from '../panel';
4
- import { ILuSelectPanelData } from '../select.model';
3
+ import { LuSelectPanelRef } from '@lucca-front/ng/core-select';
4
+ import { ILuSimpleSelectPanelData } from '../select.model';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class LuSimpleSelectPanelRefFactory {
7
7
  protected overlay: Overlay;
@@ -9,7 +9,7 @@ export declare class LuSimpleSelectPanelRefFactory {
9
9
  protected positionBuilder: OverlayPositionBuilder;
10
10
  protected scrollStrategies: ScrollStrategyOptions;
11
11
  protected parentInjector: Injector;
12
- buildPanelRef<T>(panelData: ILuSelectPanelData<T>, overlayConfigOverride?: OverlayConfig): LuSelectPanelRef<T>;
12
+ buildPanelRef<T>(panelData: ILuSimpleSelectPanelData<T>, overlayConfigOverride?: OverlayConfig): LuSelectPanelRef<T, T>;
13
13
  protected buildOverlayConfig(overlayConfigOverride?: OverlayConfig): OverlayConfig;
14
14
  static ɵfac: i0.ɵɵFactoryDeclaration<LuSimpleSelectPanelRefFactory, never>;
15
15
  static ɵprov: i0.ɵɵInjectableDeclaration<LuSimpleSelectPanelRefFactory>;
@@ -1,58 +1,12 @@
1
- import { OverlayConfig } from '@angular/cdk/overlay';
2
- import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit, TemplateRef, Type } from '@angular/core';
3
1
  import { ControlValueAccessor } from '@angular/forms';
4
- import { BehaviorSubject, ReplaySubject } from 'rxjs';
5
- import { LuSelectPanelRef } from '../panel';
6
- import { LuOptionContext } from '../select.model';
2
+ import { ALuSelectInputComponent, LuSelectPanelRef } from '@lucca-front/ng/core-select';
7
3
  import { LuSimpleSelectPanelRefFactory } from './panel-ref.factory';
8
4
  import * as i0 from "@angular/core";
9
- export declare class LuSimpleSelectInputComponent<T> implements ControlValueAccessor, OnDestroy, OnInit {
10
- tabindex: number;
11
- placeholder: string;
12
- clearable: boolean;
13
- get searchable(): boolean;
14
- disabled: boolean;
15
- get isFilled(): boolean;
16
- get isPanelOpen(): boolean;
17
- isPanelOpen$: BehaviorSubject<boolean>;
18
- role: string;
19
- activeDescendant: string | undefined;
20
- get ariaControls(): string;
21
- overlayConfig?: OverlayConfig;
22
- set loading(value: boolean);
23
- set options(options: T[]);
24
- optionComparer: (option1: T, option2: T) => boolean;
25
- optionTpl?: TemplateRef<LuOptionContext<T>> | Type<unknown>;
26
- valueTpl?: TemplateRef<LuOptionContext<T>> | Type<unknown>;
27
- clueChange: EventEmitter<string>;
28
- nextPage: EventEmitter<void>;
29
- previousPage: EventEmitter<void>;
30
- get value(): T;
31
- protected set value(value: T);
32
- protected _value?: T;
33
- options$: ReplaySubject<T[]>;
34
- loading$: ReplaySubject<boolean>;
35
- clue: string | null;
5
+ export declare class LuSimpleSelectInputComponent<T> extends ALuSelectInputComponent<T, T> implements ControlValueAccessor {
36
6
  intl: import("../select.translate").ILuSimpleSelectLabel;
37
- protected onChange?: (value: T | null) => void;
38
- protected onTouched?: () => void;
39
- protected panelRef?: LuSelectPanelRef<T>;
40
- onKeydown($event: KeyboardEvent): void;
41
- protected changeDetectorRef: ChangeDetectorRef;
42
- protected overlayContainerRef: HTMLElement;
43
7
  protected panelRefFactory: LuSimpleSelectPanelRefFactory;
44
- protected label: HTMLElement | undefined;
45
- protected labelId: string;
46
- registerOnChange(onChange: (value: T) => void): void;
47
- registerOnTouched(onTouched: () => void): void;
48
- setDisabledState(isDisabled: boolean): void;
49
- ngOnDestroy(): void;
50
- ngOnInit(): void;
51
- clearValue(event: MouseEvent): void;
52
- openPanel(): void;
53
- closePanel(): void;
54
- writeValue(value: T): void;
55
- updateValue(value: T): void;
8
+ protected buildPanelRef(): LuSelectPanelRef<T, T>;
9
+ protected get hasValue(): boolean;
56
10
  static ɵfac: i0.ɵɵFactoryDeclaration<LuSimpleSelectInputComponent<any>, never>;
57
- static ɵcmp: i0.ɵɵComponentDeclaration<LuSimpleSelectInputComponent<any>, "lu-simple-select", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "overlayConfig": { "alias": "overlayConfig"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "options": { "alias": "options"; "required": false; }; "optionComparer": { "alias": "optionComparer"; "required": false; }; "optionTpl": { "alias": "optionTpl"; "required": false; }; "valueTpl": { "alias": "valueTpl"; "required": false; }; }, { "clueChange": "clueChange"; "nextPage": "nextPage"; "previousPage": "previousPage"; }, never, never, true, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<LuSimpleSelectInputComponent<any>, "lu-simple-select", never, {}, {}, never, never, true, never>;
58
12
  }
@@ -1,2 +1 @@
1
1
  export * from './panel.component';
2
- export * from './panel.models';
@@ -1,18 +1,17 @@
1
1
  import { AfterViewInit, ElementRef, QueryList } from '@angular/core';
2
- import { ɵLuOptionComponent } from '../option/index';
3
- import { ILuSelectPanelData } from '../select.model';
4
- import { LuSelectPanelRef } from './panel.models';
2
+ import { LuSelectPanelRef, ɵLuOptionComponent } from '@lucca-front/ng/core-select';
3
+ import { ILuSimpleSelectPanelData } from '../select.model';
5
4
  import * as i0 from "@angular/core";
6
5
  export declare class LuSelectPanelComponent<T> implements AfterViewInit {
7
- protected panelData: ILuSelectPanelData<T>;
8
- panelRef: LuSelectPanelRef<T>;
6
+ protected panelData: ILuSimpleSelectPanelData<T>;
7
+ panelRef: LuSelectPanelRef<T, T>;
9
8
  selectId: number;
10
9
  intl: import("../select.translate").ILuSimpleSelectLabel;
11
- options$: import("rxjs").Observable<T[]>;
10
+ options$: import("rxjs").Observable<readonly T[]>;
12
11
  loading$: import("rxjs").Observable<boolean>;
13
12
  optionComparer: (option1: T, option2: T) => boolean;
14
13
  initialValue: T | undefined;
15
- optionTpl: import("@angular/core").Type<unknown> | import("@angular/core").TemplateRef<import("../select.model").LuOptionContext<T>>;
14
+ optionTpl: import("@angular/core").Type<unknown> | import("@angular/core").TemplateRef<import("@lucca-front/ng/core-select").LuOptionContext<T>>;
16
15
  searchable: boolean;
17
16
  set searchInput(input: ElementRef<HTMLInputElement> | undefined);
18
17
  optionsQL: QueryList<ɵLuOptionComponent<T>>;
@@ -1,4 +1,3 @@
1
1
  export * from './input/index';
2
- export * from './option/index';
3
2
  export * from './panel/index';
4
3
  export * from './select.translate';
@@ -1,17 +1,12 @@
1
1
  import { InjectionToken, TemplateRef, Type } from '@angular/core';
2
+ import { LuOptionContext } from '@lucca-front/ng/core-select';
2
3
  import { Observable } from 'rxjs';
3
- export interface ILuSelectPanelData<T> {
4
- options$: Observable<T[]>;
4
+ export interface ILuSimpleSelectPanelData<T> {
5
+ options$: Observable<readonly T[]>;
5
6
  loading$: Observable<boolean>;
6
7
  optionComparer: (option1: T, option2: T) => boolean;
7
8
  initialValue: T | undefined;
8
9
  optionTpl: TemplateRef<LuOptionContext<T>> | Type<unknown>;
9
10
  searchable: boolean;
10
11
  }
11
- export interface LuOptionContext<T> {
12
- $implicit: T;
13
- }
14
- export declare const SELECT_ID: InjectionToken<number>;
15
- export declare const SELECT_PANEL_DATA: InjectionToken<unknown>;
16
- export declare const SELECT_LABEL: InjectionToken<HTMLLabelElement>;
17
- export declare const SELECT_LABEL_ID: InjectionToken<string>;
12
+ export declare const SIMPLE_SELECT_PANEL_DATA: InjectionToken<ILuSimpleSelectPanelData<unknown>>;
@@ -75,17 +75,10 @@
75
75
  }
76
76
 
77
77
  .lu-modal-content {
78
- padding: var(--components-popup-padding-vertical) var(--components-popup-padding-horizontal) 0 var(--components-popup-padding-horizontal);
78
+ padding: var(--components-popup-padding-vertical) var(--components-popup-padding-horizontal);
79
79
  overflow: auto;
80
80
  height: auto;
81
81
 
82
- // Trick to force Firefox to have a bottom padding
83
- &:after {
84
- content: '';
85
- display: block;
86
- padding-bottom: var(--components-popup-padding-vertical);
87
- }
88
-
89
82
  &.mod-noPadding {
90
83
  padding: 0;
91
84
 
@@ -137,7 +137,11 @@
137
137
  }
138
138
  }
139
139
 
140
- &:hover {
140
+ &.is-disabled {
141
+ --components-options-checkbox-border-color: var(--palettes-grey-500);
142
+ }
143
+
144
+ &:not(.is-disabled):hover {
141
145
  &::before {
142
146
  box-shadow: inset 0 0 0 2px var(--components-options-checkbox-color);
143
147
  }
@@ -4,8 +4,6 @@
4
4
 
5
5
  @mixin selectInputStyle {
6
6
  :host {
7
- --components-select-chip-background: var(--palettes-primary-700);
8
- --components-select-chip-text: var(--colors-white-color);
9
7
  --components-select-input-padding-horizontal: var(--spacings-XS);
10
8
  --components-select-input-padding-vertical: var(--spacings-XS);
11
9
  --components-select-framed-color: var(--palettes-grey-500);
@@ -20,8 +18,8 @@
20
18
 
21
19
  cursor: pointer;
22
20
  outline: none;
23
- padding: 0 !important;
24
- gap: 0 !important;
21
+ padding: 0;
22
+ gap: 0;
25
23
 
26
24
  &::after {
27
25
  @include icon.generate('arrow_chevron_bottom');
@@ -35,21 +33,17 @@
35
33
  right: var(--components-select-input-padding-horizontal);
36
34
  }
37
35
 
38
- &[disabled] {
39
- cursor: not-allowed;
40
- pointer-events: all;
41
- }
42
-
43
- &.is-disabled {
36
+ &[disabled], &.is-disabled {
44
37
  cursor: not-allowed;
45
38
  pointer-events: all;
46
39
  }
47
40
  }
48
41
 
49
42
  .lu-select-display-wrapper {
50
- overflow: hidden;
43
+ display: flex;
51
44
  text-overflow: ellipsis;
52
45
  white-space: nowrap;
46
+ gap: var(--spacings-XXS);
53
47
  }
54
48
 
55
49
  .lu-select-value {
@@ -86,19 +80,21 @@
86
80
  }
87
81
 
88
82
  ::ng-deep .lu-select-value {
83
+
84
+ lu-simple-select-default-option {
85
+ max-width: 5rem;
86
+ text-overflow: ellipsis;
87
+ overflow: hidden;
88
+ }
89
+
89
90
  .label {
90
91
  padding: var(--spacings-XXS) var(--spacings-XS);
91
92
  margin-left: 0;
92
93
  }
93
94
 
94
95
  .chip {
95
- background-color: var(--components-select-chip-background);
96
- color: var(--components-select-chip-text);
97
96
  vertical-align: baseline;
98
97
  max-width: 100%;
99
- height: var(--sizes-M-lineHeight);
100
- line-height: var(--sizes-M-lineHeight);
101
- padding: 0 var(--spacings-XS);
102
98
  margin: 0 var(--spacings-XXS) var(--spacings-XXS) 0;
103
99
  text-overflow: ellipsis;
104
100
  overflow: hidden;
@@ -112,6 +108,8 @@
112
108
 
113
109
  // Small
114
110
  :host-context(.textfield.mod-S) {
111
+ padding: 0;
112
+
115
113
  .lu-select-value,
116
114
  .lu-select-placeholder {
117
115
  font-size: var(--sizes-S-fontSize);
@@ -148,6 +146,9 @@
148
146
  height: var(--sizes-XS-lineHeight);
149
147
  line-height: var(--sizes-XS-lineHeight);
150
148
  font-size: var(--sizes-XS-fontSize);
149
+ padding-left: var(--spacings-XXS);
150
+ padding-right: var(--spacings-XXS);
151
+ gap: var(--spacings-XXS);
151
152
  }
152
153
 
153
154
  .numericBadge {
@@ -246,7 +247,7 @@
246
247
  }
247
248
 
248
249
  .lu-select-display-wrapper {
249
- overflow: hidden;
250
+ overflow: visible;
250
251
  white-space: normal;
251
252
  margin-bottom: calc(var(--spacings-XXS) * -1);
252
253
  }
@@ -18,10 +18,10 @@ export declare class LuUserSelectInputComponent<U extends import('../../user.mod
18
18
  searchFormat: LuDisplayFullname;
19
19
  set inputPlaceholder(p: string);
20
20
  fields: string;
21
- filters: string[];
21
+ filters: readonly string[];
22
22
  orderBy: string;
23
23
  appInstanceId: number | string;
24
- operations: number[];
24
+ operations: readonly number[];
25
25
  enableFormerEmployees: boolean;
26
26
  clue: string;
27
27
  byId: LuOptionComparer<U>;
@@ -8,10 +8,10 @@ export declare class LuUserMeOptionDirective<U extends ILuUser = ILuUser> implem
8
8
  private _vcr;
9
9
  private _templateRef;
10
10
  set luUserMeOptionFields(fields: string);
11
- set luUserMeOptionFilters(filters: string[]);
11
+ set luUserMeOptionFilters(filters: readonly string[]);
12
12
  set luUserMeOptionOrderBy(orderBy: string);
13
13
  set luUserMeOptionAppInstanceId(appInstanceId: number | string);
14
- set luUserMeOptionOperations(operations: number[]);
14
+ set luUserMeOptionOperations(operations: readonly number[]);
15
15
  set luUserMeOptionClue(clue: string);
16
16
  set inOptions$(in$: Observable<U[]>);
17
17
  outOptions$: Observable<U[]>;
@@ -11,10 +11,10 @@ export declare class LuUserPagedSearcherComponent<U extends ILuUser = ILuUser> i
11
11
  fixed: boolean;
12
12
  searchInput: ElementRef<HTMLInputElement>;
13
13
  set fields(fields: string);
14
- set filters(filters: string[]);
14
+ set filters(filters: readonly string[]);
15
15
  set orderBy(orderBy: string);
16
16
  set appInstanceId(appInstanceId: number | string);
17
- set operations(operations: number[]);
17
+ set operations(operations: readonly number[]);
18
18
  enableFormerEmployees: boolean;
19
19
  clueChange: Observable<string>;
20
20
  form: FormGroup;
@@ -8,8 +8,8 @@ export declare class LuUserV3Service<U extends ILuUser = ILuUser> extends LuApiV
8
8
  protected _http: HttpClient;
9
9
  protected _appInstanceId: number | string;
10
10
  set appInstanceId(appInstanceId: number | string);
11
- protected _operations: number[];
12
- set operations(operations: number[]);
11
+ protected _operations: readonly number[];
12
+ set operations(operations: readonly number[]);
13
13
  constructor(_http: HttpClient);
14
14
  getMe(): Observable<U>;
15
15
  get url(): string;
@@ -1,60 +0,0 @@
1
- import { OverlayContainer } from '@angular/cdk/overlay';
2
- import { Platform } from '@angular/cdk/platform';
3
- import { DOCUMENT } from '@angular/common';
4
- import { ElementRef, inject, Injectable } from '@angular/core';
5
- import { SELECT_ID, SELECT_LABEL, SELECT_LABEL_ID } from '../select.model';
6
- import * as i0 from "@angular/core";
7
- let selectId = 0;
8
- function selectIdFactory() {
9
- return selectId++;
10
- }
11
- function selectLabelFactory() {
12
- const elementRef = inject(ElementRef);
13
- function getLabel(node) {
14
- if (node instanceof HTMLLabelElement) {
15
- return node;
16
- }
17
- if (!node.parentElement) {
18
- return undefined;
19
- }
20
- return getLabel(node.parentElement);
21
- }
22
- return getLabel(elementRef.nativeElement);
23
- }
24
- function selectLabelIdFactory() {
25
- return inject(SELECT_LABEL)?.id || `lu-select-label-${inject(SELECT_ID)}`;
26
- }
27
- export function provideLuSelectLabelsAndIds() {
28
- return [
29
- { provide: SELECT_ID, useFactory: selectIdFactory },
30
- { provide: SELECT_LABEL, useFactory: selectLabelFactory },
31
- { provide: SELECT_LABEL_ID, useFactory: selectLabelIdFactory },
32
- ];
33
- }
34
- class LuSelectOverlayContainer extends OverlayContainer {
35
- constructor() {
36
- super(inject(DOCUMENT), inject(Platform));
37
- this.selectLabelId = inject(SELECT_LABEL_ID);
38
- this.selectId = inject(SELECT_ID);
39
- }
40
- _createContainer() {
41
- super._createContainer();
42
- this._containerElement.setAttribute('aria-labelledby', this.selectLabelId);
43
- this._containerElement.setAttribute('role', 'listbox');
44
- this._containerElement.id = `lu-select-overlay-container-${this.selectId}`;
45
- }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuSelectOverlayContainer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
47
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuSelectOverlayContainer }); }
48
- }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuSelectOverlayContainer, decorators: [{
50
- type: Injectable
51
- }], ctorParameters: function () { return []; } });
52
- export function provideLuSelectOverlayContainer() {
53
- return [
54
- {
55
- provide: OverlayContainer,
56
- useClass: LuSelectOverlayContainer,
57
- },
58
- ];
59
- }
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWlucHV0Lm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL3NpbXBsZS1zZWxlY3QvaW5wdXQvc2VsZWN0LWlucHV0Lm1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFM0UsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBRWpCLFNBQVMsZUFBZTtJQUN2QixPQUFPLFFBQVEsRUFBRSxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTLGtCQUFrQjtJQUMxQixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO0lBRS9ELFNBQVMsUUFBUSxDQUFDLElBQWlCO1FBQ2xDLElBQUksSUFBSSxZQUFZLGdCQUFnQixFQUFFO1lBQ3JDLE9BQU8sSUFBSSxDQUFDO1NBQ1o7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN4QixPQUFPLFNBQVMsQ0FBQztTQUNqQjtRQUVELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRCxTQUFTLG9CQUFvQjtJQUM1QixPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLElBQUksbUJBQW1CLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO0FBQzNFLENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCO0lBQzFDLE9BQU87UUFDTixFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRTtRQUNuRCxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFO1FBQ3pELEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsb0JBQW9CLEVBQUU7S0FDOUQsQ0FBQztBQUNILENBQUM7QUFFRCxNQUNNLHdCQUF5QixTQUFRLGdCQUFnQjtJQUl0RDtRQUNDLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFKbkMsa0JBQWEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUlyQyxDQUFDO0lBRWtCLGdCQUFnQjtRQUNsQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN2RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxHQUFHLCtCQUErQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUUsQ0FBQzs4R0FiSSx3QkFBd0I7a0hBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFEN0IsVUFBVTs7QUFpQlgsTUFBTSxVQUFVLCtCQUErQjtJQUM5QyxPQUFPO1FBQ047WUFDQyxPQUFPLEVBQUUsZ0JBQWdCO1lBQ3pCLFFBQVEsRUFBRSx3QkFBd0I7U0FDbEM7S0FDRCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXlDb250YWluZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IFBsYXRmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BsYXRmb3JtJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBFbGVtZW50UmVmLCBpbmplY3QsIEluamVjdGFibGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNFTEVDVF9JRCwgU0VMRUNUX0xBQkVMLCBTRUxFQ1RfTEFCRUxfSUQgfSBmcm9tICcuLi9zZWxlY3QubW9kZWwnO1xyXG5cclxubGV0IHNlbGVjdElkID0gMDtcclxuXHJcbmZ1bmN0aW9uIHNlbGVjdElkRmFjdG9yeSgpOiBudW1iZXIge1xyXG5cdHJldHVybiBzZWxlY3RJZCsrO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzZWxlY3RMYWJlbEZhY3RvcnkoKTogSFRNTExhYmVsRWxlbWVudCB8IHVuZGVmaW5lZCB7XHJcblx0Y29uc3QgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XHJcblxyXG5cdGZ1bmN0aW9uIGdldExhYmVsKG5vZGU6IEhUTUxFbGVtZW50KTogSFRNTExhYmVsRWxlbWVudCB8IHVuZGVmaW5lZCB7XHJcblx0XHRpZiAobm9kZSBpbnN0YW5jZW9mIEhUTUxMYWJlbEVsZW1lbnQpIHtcclxuXHRcdFx0cmV0dXJuIG5vZGU7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCFub2RlLnBhcmVudEVsZW1lbnQpIHtcclxuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gZ2V0TGFiZWwobm9kZS5wYXJlbnRFbGVtZW50KTtcclxuXHR9XHJcblxyXG5cdHJldHVybiBnZXRMYWJlbChlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzZWxlY3RMYWJlbElkRmFjdG9yeSgpOiBzdHJpbmcge1xyXG5cdHJldHVybiBpbmplY3QoU0VMRUNUX0xBQkVMKT8uaWQgfHwgYGx1LXNlbGVjdC1sYWJlbC0ke2luamVjdChTRUxFQ1RfSUQpfWA7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlTHVTZWxlY3RMYWJlbHNBbmRJZHMoKTogUHJvdmlkZXJbXSB7XHJcblx0cmV0dXJuIFtcclxuXHRcdHsgcHJvdmlkZTogU0VMRUNUX0lELCB1c2VGYWN0b3J5OiBzZWxlY3RJZEZhY3RvcnkgfSxcclxuXHRcdHsgcHJvdmlkZTogU0VMRUNUX0xBQkVMLCB1c2VGYWN0b3J5OiBzZWxlY3RMYWJlbEZhY3RvcnkgfSxcclxuXHRcdHsgcHJvdmlkZTogU0VMRUNUX0xBQkVMX0lELCB1c2VGYWN0b3J5OiBzZWxlY3RMYWJlbElkRmFjdG9yeSB9LFxyXG5cdF07XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuY2xhc3MgTHVTZWxlY3RPdmVybGF5Q29udGFpbmVyIGV4dGVuZHMgT3ZlcmxheUNvbnRhaW5lciB7XHJcblx0cHJpdmF0ZSBzZWxlY3RMYWJlbElkID0gaW5qZWN0KFNFTEVDVF9MQUJFTF9JRCk7XHJcblx0cHJpdmF0ZSBzZWxlY3RJZCA9IGluamVjdChTRUxFQ1RfSUQpO1xyXG5cclxuXHRjb25zdHJ1Y3RvcigpIHtcclxuXHRcdHN1cGVyKGluamVjdChET0NVTUVOVCksIGluamVjdChQbGF0Zm9ybSkpO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIG92ZXJyaWRlIF9jcmVhdGVDb250YWluZXIoKTogdm9pZCB7XHJcblx0XHRzdXBlci5fY3JlYXRlQ29udGFpbmVyKCk7XHJcblx0XHR0aGlzLl9jb250YWluZXJFbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1sYWJlbGxlZGJ5JywgdGhpcy5zZWxlY3RMYWJlbElkKTtcclxuXHRcdHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuc2V0QXR0cmlidXRlKCdyb2xlJywgJ2xpc3Rib3gnKTtcclxuXHRcdHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuaWQgPSBgbHUtc2VsZWN0LW92ZXJsYXktY29udGFpbmVyLSR7dGhpcy5zZWxlY3RJZH1gO1xyXG5cdH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVMdVNlbGVjdE92ZXJsYXlDb250YWluZXIoKTogUHJvdmlkZXJbXSB7XHJcblx0cmV0dXJuIFtcclxuXHRcdHtcclxuXHRcdFx0cHJvdmlkZTogT3ZlcmxheUNvbnRhaW5lcixcclxuXHRcdFx0dXNlQ2xhc3M6IEx1U2VsZWN0T3ZlcmxheUNvbnRhaW5lcixcclxuXHRcdH0sXHJcblx0XTtcclxufVxyXG4iXX0=
@@ -1,27 +0,0 @@
1
- import { Directive, inject, Input } from '@angular/core';
2
- import { LU_OPTION_CONTEXT } from './option.token';
3
- import * as i0 from "@angular/core";
4
- class LuDisabledOptionDirective {
5
- constructor() {
6
- this.context = inject(LU_OPTION_CONTEXT);
7
- }
8
- set isDisabled(disabled) {
9
- if (disabled !== null) {
10
- this.context.isDisabled$.next(disabled);
11
- }
12
- }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuDisabledOptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
14
- 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 }); }
15
- }
16
- export { LuDisabledOptionDirective };
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuDisabledOptionDirective, decorators: [{
18
- type: Directive,
19
- args: [{
20
- selector: '[luDisabledOption]',
21
- standalone: true,
22
- }]
23
- }], propDecorators: { isDisabled: [{
24
- type: Input,
25
- args: ['luDisabledOption']
26
- }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzYWJsZWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvc2ltcGxlLXNlbGVjdC9vcHRpb24vZGlzYWJsZWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFbkQsTUFJYSx5QkFBeUI7SUFKdEM7UUFLUyxZQUFPLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FPNUM7SUFMQSxJQUFzQyxVQUFVLENBQUMsUUFBd0I7UUFDeEUsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN4QztJQUNGLENBQUM7OEdBUFcseUJBQXlCO2tHQUF6Qix5QkFBeUI7O1NBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO2lCQUNoQjs4QkFJc0MsVUFBVTtzQkFBL0MsS0FBSzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTFVfT1BUSU9OX0NPTlRFWFQgfSBmcm9tICcuL29wdGlvbi50b2tlbic7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuXHRzZWxlY3RvcjogJ1tsdURpc2FibGVkT3B0aW9uXScsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEx1RGlzYWJsZWRPcHRpb25EaXJlY3RpdmUge1xyXG5cdHByaXZhdGUgY29udGV4dCA9IGluamVjdChMVV9PUFRJT05fQ09OVEVYVCk7XHJcblxyXG5cdEBJbnB1dCgnbHVEaXNhYmxlZE9wdGlvbicpIHB1YmxpYyBzZXQgaXNEaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbiB8IG51bGwpIHtcclxuXHRcdGlmIChkaXNhYmxlZCAhPT0gbnVsbCkge1xyXG5cdFx0XHR0aGlzLmNvbnRleHQuaXNEaXNhYmxlZCQubmV4dChkaXNhYmxlZCk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -1,6 +0,0 @@
1
- export * from './default-option.component';
2
- export * from './disabled.directive';
3
- export * from './displayer.directive';
4
- export { LuOptionComponent as ɵLuOptionComponent } from './option.component';
5
- export * from './option.directive';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9zaW1wbGUtc2VsZWN0L29wdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxPQUFPLEVBQUUsaUJBQWlCLElBQUksa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RSxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LW9wdGlvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2Rpc2FibGVkLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZGlzcGxheWVyLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IEx1T3B0aW9uQ29tcG9uZW50IGFzIMm1THVPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL29wdGlvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL29wdGlvbi5kaXJlY3RpdmUnO1xyXG4iXX0=
@@ -1,71 +0,0 @@
1
- import { Directive, inject, Injector, Input, TemplateRef, ViewContainerRef } from '@angular/core';
2
- import { LU_OPTION_CONTEXT, provideOptionContext } from './option.token';
3
- import * as i0 from "@angular/core";
4
- class LuOptionOutletDirective {
5
- constructor() {
6
- this.viewContainerRef = inject(ViewContainerRef);
7
- this.injector = inject(Injector);
8
- this.optionContext = inject(LU_OPTION_CONTEXT);
9
- }
10
- ngOnChanges(changes) {
11
- if (changes['luOptionOutlet'] || !this.luOptionOutletValue) {
12
- this.clearContainer();
13
- }
14
- const hasRef = this.embeddedViewRef || this.componentRef;
15
- if (changes['luOptionOutlet'] || (changes['luOptionOutletValue'] && !hasRef)) {
16
- this.createComponent();
17
- }
18
- else if (changes['luOptionOutletValue']) {
19
- this.updateRefValue();
20
- }
21
- }
22
- ngOnDestroy() {
23
- this.optionContext.destroy();
24
- }
25
- clearContainer() {
26
- this.viewContainerRef.clear();
27
- this.embeddedViewRef?.destroy();
28
- this.componentRef?.destroy();
29
- this.embeddedViewRef = undefined;
30
- this.componentRef = undefined;
31
- }
32
- createComponent() {
33
- if (!this.luOptionOutlet || !this.luOptionOutletValue) {
34
- return;
35
- }
36
- if (this.luOptionOutlet instanceof TemplateRef) {
37
- this.embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.luOptionOutlet, { $implicit: this.luOptionOutletValue }, { injector: this.injector });
38
- }
39
- else {
40
- this.optionContext.option$.next(this.luOptionOutletValue);
41
- this.componentRef = this.viewContainerRef.createComponent(this.luOptionOutlet, { injector: this.injector });
42
- }
43
- }
44
- updateRefValue() {
45
- if (!this.luOptionOutletValue) {
46
- return;
47
- }
48
- if (this.embeddedViewRef) {
49
- this.embeddedViewRef.context = { $implicit: this.luOptionOutletValue };
50
- }
51
- else if (this.componentRef) {
52
- this.optionContext.option$.next(this.luOptionOutletValue);
53
- }
54
- }
55
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuOptionOutletDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
56
- 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 }); }
57
- }
58
- export { LuOptionOutletDirective };
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuOptionOutletDirective, decorators: [{
60
- type: Directive,
61
- args: [{
62
- selector: '[luOptionOutlet]',
63
- standalone: true,
64
- providers: [provideOptionContext()],
65
- }]
66
- }], propDecorators: { luOptionOutlet: [{
67
- type: Input
68
- }], luOptionOutletValue: [{
69
- type: Input
70
- }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLW91dGxldC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9zaW1wbGUtc2VsZWN0L29wdGlvbi9vcHRpb24tb3V0bGV0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBbUIsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQXVDLFdBQVcsRUFBUSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1SyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFekUsTUFLYSx1QkFBdUI7SUFMcEM7UUFTUyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1QyxhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRzVCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FtRGxEO0lBakRBLFdBQVcsQ0FBQyxPQUFzQjtRQUNqQyxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQzNELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN0QjtRQUVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQztRQUV6RCxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM3RSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7U0FDdkI7YUFBTSxJQUFJLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFO1lBQzFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN0QjtJQUNGLENBQUM7SUFFRCxXQUFXO1FBQ1YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8sY0FBYztRQUNyQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO0lBQy9CLENBQUM7SUFFTyxlQUFlO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQ3RELE9BQU87U0FDUDtRQUVELElBQUksSUFBSSxDQUFDLGNBQWMsWUFBWSxXQUFXLEVBQUU7WUFDL0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUMzSjthQUFNO1lBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQzVHO0lBQ0YsQ0FBQztJQUVPLGNBQWM7UUFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM5QixPQUFPO1NBQ1A7UUFDRCxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDdkU7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1NBQzFEO0lBQ0YsQ0FBQzs4R0ExRFcsdUJBQXVCO2tHQUF2Qix1QkFBdUIseUpBRnhCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQzs7U0FFdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBTG5DLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRSxDQUFDLG9CQUFvQixFQUFFLENBQUM7aUJBQ25DOzhCQUVTLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBEaXJlY3RpdmUsIEVtYmVkZGVkVmlld1JlZiwgaW5qZWN0LCBJbmplY3RvciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVHlwZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMdU9wdGlvbkNvbnRleHQgfSBmcm9tICcuLi9zZWxlY3QubW9kZWwnO1xyXG5pbXBvcnQgeyBMVV9PUFRJT05fQ09OVEVYVCwgcHJvdmlkZU9wdGlvbkNvbnRleHQgfSBmcm9tICcuL29wdGlvbi50b2tlbic7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuXHRzZWxlY3RvcjogJ1tsdU9wdGlvbk91dGxldF0nLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0cHJvdmlkZXJzOiBbcHJvdmlkZU9wdGlvbkNvbnRleHQoKV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMdU9wdGlvbk91dGxldERpcmVjdGl2ZTxUPiBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuXHRASW5wdXQoKSBsdU9wdGlvbk91dGxldD86IFR5cGU8dW5rbm93bj4gfCBUZW1wbGF0ZVJlZjxMdU9wdGlvbkNvbnRleHQ8VD4+O1xyXG5cdEBJbnB1dCgpIGx1T3B0aW9uT3V0bGV0VmFsdWU6IFQgfCB1bmRlZmluZWQ7XHJcblxyXG5cdHByaXZhdGUgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcclxuXHRwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuXHRwcml2YXRlIGVtYmVkZGVkVmlld1JlZj86IEVtYmVkZGVkVmlld1JlZjxMdU9wdGlvbkNvbnRleHQ8VD4+O1xyXG5cdHByaXZhdGUgY29tcG9uZW50UmVmPzogQ29tcG9uZW50UmVmPHVua25vd24+O1xyXG5cdHByaXZhdGUgb3B0aW9uQ29udGV4dCA9IGluamVjdChMVV9PUFRJT05fQ09OVEVYVCk7XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHRcdGlmIChjaGFuZ2VzWydsdU9wdGlvbk91dGxldCddIHx8ICF0aGlzLmx1T3B0aW9uT3V0bGV0VmFsdWUpIHtcclxuXHRcdFx0dGhpcy5jbGVhckNvbnRhaW5lcigpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IGhhc1JlZiA9IHRoaXMuZW1iZWRkZWRWaWV3UmVmIHx8IHRoaXMuY29tcG9uZW50UmVmO1xyXG5cclxuXHRcdGlmIChjaGFuZ2VzWydsdU9wdGlvbk91dGxldCddIHx8IChjaGFuZ2VzWydsdU9wdGlvbk91dGxldFZhbHVlJ10gJiYgIWhhc1JlZikpIHtcclxuXHRcdFx0dGhpcy5jcmVhdGVDb21wb25lbnQoKTtcclxuXHRcdH0gZWxzZSBpZiAoY2hhbmdlc1snbHVPcHRpb25PdXRsZXRWYWx1ZSddKSB7XHJcblx0XHRcdHRoaXMudXBkYXRlUmVmVmFsdWUoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5vcHRpb25Db250ZXh0LmRlc3Ryb3koKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgY2xlYXJDb250YWluZXIoKTogdm9pZCB7XHJcblx0XHR0aGlzLnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcclxuXHRcdHRoaXMuZW1iZWRkZWRWaWV3UmVmPy5kZXN0cm95KCk7XHJcblx0XHR0aGlzLmNvbXBvbmVudFJlZj8uZGVzdHJveSgpO1xyXG5cdFx0dGhpcy5lbWJlZGRlZFZpZXdSZWYgPSB1bmRlZmluZWQ7XHJcblx0XHR0aGlzLmNvbXBvbmVudFJlZiA9IHVuZGVmaW5lZDtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgY3JlYXRlQ29tcG9uZW50KCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLmx1T3B0aW9uT3V0bGV0IHx8ICF0aGlzLmx1T3B0aW9uT3V0bGV0VmFsdWUpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0aGlzLmx1T3B0aW9uT3V0bGV0IGluc3RhbmNlb2YgVGVtcGxhdGVSZWYpIHtcclxuXHRcdFx0dGhpcy5lbWJlZGRlZFZpZXdSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMubHVPcHRpb25PdXRsZXQsIHsgJGltcGxpY2l0OiB0aGlzLmx1T3B0aW9uT3V0bGV0VmFsdWUgfSwgeyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9KTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHRoaXMub3B0aW9uQ29udGV4dC5vcHRpb24kLm5leHQodGhpcy5sdU9wdGlvbk91dGxldFZhbHVlKTtcclxuXHRcdFx0dGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KHRoaXMubHVPcHRpb25PdXRsZXQsIHsgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IgfSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHVwZGF0ZVJlZlZhbHVlKCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLmx1T3B0aW9uT3V0bGV0VmFsdWUpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHRoaXMuZW1iZWRkZWRWaWV3UmVmKSB7XHJcblx0XHRcdHRoaXMuZW1iZWRkZWRWaWV3UmVmLmNvbnRleHQgPSB7ICRpbXBsaWNpdDogdGhpcy5sdU9wdGlvbk91dGxldFZhbHVlIH07XHJcblx0XHR9IGVsc2UgaWYgKHRoaXMuY29tcG9uZW50UmVmKSB7XHJcblx0XHRcdHRoaXMub3B0aW9uQ29udGV4dC5vcHRpb24kLm5leHQodGhpcy5sdU9wdGlvbk91dGxldFZhbHVlKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIl19