@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
@@ -0,0 +1,121 @@
1
+ import { Overlay, OverlayPositionBuilder, ScrollStrategyOptions } from '@angular/cdk/overlay';
2
+ import { ComponentPortal } from '@angular/cdk/portal';
3
+ import { ChangeDetectorRef, ElementRef, inject, Injectable, Injector } from '@angular/core';
4
+ import { takeUntil } from 'rxjs';
5
+ import { LuMultiSelectPanelComponent } from '../panel';
6
+ import { MULTI_SELECT_PANEL_DATA } from '../select.model';
7
+ import { LuMultiSelectPanelRef } from './panel.model';
8
+ import * as i0 from "@angular/core";
9
+ class MultiSelectPanelRef extends LuMultiSelectPanelRef {
10
+ constructor(overlayRef, parentInjector, panelData, defaultPositionStrategy, expandedPositionStrategy) {
11
+ super();
12
+ this.overlayRef = overlayRef;
13
+ this.defaultPositionStrategy = defaultPositionStrategy;
14
+ this.expandedPositionStrategy = expandedPositionStrategy;
15
+ const injector = Injector.create({
16
+ providers: [
17
+ { provide: LuMultiSelectPanelRef, useValue: this },
18
+ { provide: MULTI_SELECT_PANEL_DATA, useValue: panelData },
19
+ ],
20
+ parent: parentInjector,
21
+ });
22
+ this.portalRef = new ComponentPortal(LuMultiSelectPanelComponent, undefined, injector);
23
+ this.panelRef = overlayRef.attach(this.portalRef);
24
+ this.instance = this.panelRef.instance;
25
+ overlayRef
26
+ .backdropClick()
27
+ .pipe(takeUntil(this.closed))
28
+ .subscribe(() => this.close());
29
+ }
30
+ emitValue(value) {
31
+ this.valueChanged.emit(value);
32
+ }
33
+ updateSelectedOptions(selectedOptions) {
34
+ this.instance.selectedOptions = selectedOptions;
35
+ // Run change detection on the panel component
36
+ this.panelRef.injector.get(ChangeDetectorRef).markForCheck();
37
+ }
38
+ useExpandedPosition() {
39
+ this.overlayRef.updatePositionStrategy(this.expandedPositionStrategy);
40
+ }
41
+ useDefaultPosition() {
42
+ this.overlayRef.updatePositionStrategy(this.defaultPositionStrategy);
43
+ }
44
+ close() {
45
+ super.close();
46
+ this.panelRef.destroy();
47
+ this.overlayRef.detach();
48
+ }
49
+ }
50
+ class LuMultiSelectPanelRefFactory {
51
+ constructor() {
52
+ this.overlay = inject(Overlay);
53
+ this.elementRef = inject(ElementRef);
54
+ this.positionBuilder = inject(OverlayPositionBuilder);
55
+ this.scrollStrategies = inject(ScrollStrategyOptions);
56
+ this.parentInjector = inject(Injector);
57
+ }
58
+ buildPanelRef(panelData, defaultOverlayConfigOverride = {}, expandedPositionStrategy) {
59
+ const defaultOverlayConfig = this.buildDefaultOverlayConfig(defaultOverlayConfigOverride);
60
+ expandedPositionStrategy ??= this.buildExpandedPositionStrategy();
61
+ const overlayRef = this.overlay.create(defaultOverlayConfig);
62
+ overlayRef.hostElement.style.transitionProperty = 'height';
63
+ overlayRef.hostElement.style.transitionDuration = 'var(--commons-animations-durations-standard)';
64
+ return new MultiSelectPanelRef(overlayRef, this.parentInjector, panelData, defaultOverlayConfig.positionStrategy, expandedPositionStrategy);
65
+ }
66
+ buildDefaultOverlayConfig(overlayConfigOverride = {}) {
67
+ const overlayConfig = { ...overlayConfigOverride };
68
+ const config = { overlapInput: false, offsetY: 2 };
69
+ overlayConfig.positionStrategy = this.positionBuilder
70
+ .flexibleConnectedTo(this.elementRef)
71
+ .withViewportMargin(10)
72
+ .withPositions([
73
+ this.buildPosition('bottom', 'right', config),
74
+ this.buildPosition('bottom', 'left', config),
75
+ this.buildPosition('top', 'right', config),
76
+ this.buildPosition('top', 'left', config),
77
+ ]);
78
+ overlayConfig.scrollStrategy = this.scrollStrategies.reposition();
79
+ overlayConfig.minWidth = this.elementRef.nativeElement.clientWidth;
80
+ overlayConfig.maxWidth = '100vw';
81
+ return overlayConfig;
82
+ }
83
+ buildExpandedPositionStrategy() {
84
+ const config = { overlapInput: true, offsetX: -4, offsetY: -4 };
85
+ return this.positionBuilder
86
+ .flexibleConnectedTo(this.elementRef)
87
+ .withViewportMargin(10)
88
+ .withPositions([
89
+ this.buildPosition('top', 'right', config),
90
+ this.buildPosition('top', 'left', config),
91
+ this.buildPosition('bottom', 'right', config),
92
+ this.buildPosition('bottom', 'left', config),
93
+ ]);
94
+ }
95
+ buildPosition(yDirection, xDirection, config) {
96
+ const originX = xDirection === 'right' ? 'start' : 'end';
97
+ const overlayX = originX;
98
+ const oppositeYDirection = yDirection === 'top' ? 'bottom' : 'top';
99
+ const { originY, overlayY } = config.overlapInput
100
+ ? {
101
+ originY: oppositeYDirection,
102
+ overlayY: oppositeYDirection,
103
+ }
104
+ : { originY: yDirection, overlayY: oppositeYDirection };
105
+ return {
106
+ originX,
107
+ originY,
108
+ overlayX,
109
+ overlayY,
110
+ ...(config.offsetX ? { offsetX: xDirection === 'right' ? config.offsetX : -config.offsetX } : {}),
111
+ ...(config.offsetY ? { offsetY: yDirection === 'bottom' ? config.offsetY : -config.offsetY } : {}),
112
+ };
113
+ }
114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuMultiSelectPanelRefFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
115
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuMultiSelectPanelRefFactory }); }
116
+ }
117
+ export { LuMultiSelectPanelRefFactory };
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuMultiSelectPanelRefFactory, decorators: [{
119
+ type: Injectable
120
+ }] });
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwtcmVmLmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9tdWx0aS1zZWxlY3QvaW5wdXQvcGFuZWwtcmVmLmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixPQUFPLEVBQWlCLHNCQUFzQixFQUFnQyxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlKLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQWdCLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2RCxPQUFPLEVBQTJCLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV0RCxNQUFNLG1CQUF1QixTQUFRLHFCQUF3QjtJQUs1RCxZQUNTLFVBQXNCLEVBQzlCLGNBQXdCLEVBQ3hCLFNBQXFDLEVBQzNCLHVCQUF5QyxFQUN6Qyx3QkFBMEM7UUFFcEQsS0FBSyxFQUFFLENBQUM7UUFOQSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBR3BCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBa0I7UUFDekMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUFrQjtRQUlwRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ2hDLFNBQVMsRUFBRTtnQkFDVixFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNsRCxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsU0FBUyxF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QUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNsRyxDQUFDO0lBQ0gsQ0FBQzs4R0FoRlcsNEJBQTRCO2tIQUE1Qiw0QkFBNEI7O1NBQTVCLDRCQUE0QjsyRkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsIE92ZXJsYXlSZWYsIFBvc2l0aW9uU3RyYXRlZ3ksIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnRSZWYsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEx1TXVsdGlTZWxlY3RQYW5lbENvbXBvbmVudCB9IGZyb20gJy4uL3BhbmVsJztcclxuaW1wb3J0IHsgSUx1TXVsdGlTZWxlY3RQYW5lbERhdGEsIE1VTFRJX1NFTEVDVF9QQU5FTF9EQVRBIH0gZnJvbSAnLi4vc2VsZWN0Lm1vZGVsJztcclxuaW1wb3J0IHsgTHVNdWx0aVNlbGVjdFBhbmVsUmVmIH0gZnJvbSAnLi9wYW5lbC5tb2RlbCc7XHJcblxyXG5jbGFzcyBNdWx0aVNlbGVjdFBhbmVsUmVmPFQ+IGV4dGVuZHMgTHVNdWx0aVNlbGVjdFBhbmVsUmVmPFQ+IHtcclxuXHRpbnN0YW5jZTogTHVNdWx0aVNlbGVjdFBhbmVsQ29tcG9uZW50PFQ+O1xyXG5cdHByaXZhdGUgcGFuZWxSZWY6IENvbXBvbmVudFJlZjxMdU11bHRpU2VsZWN0UGFuZWxDb21wb25lbnQ8VD4+O1xyXG5cdHByaXZhdGUgcG9ydGFsUmVmOiBDb21wb25lbnRQb3J0YWw8THVNdWx0aVNlbGVjdFBhbmVsQ29tcG9uZW50PFQ+PjtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXHJcblx0XHRwYXJlbnRJbmplY3RvcjogSW5qZWN0b3IsXHJcblx0XHRwYW5lbERhdGE6IElMdU11bHRpU2VsZWN0UGFuZWxEYXRhPFQ+LFxyXG5cdFx0cHJvdGVjdGVkIGRlZmF1bHRQb3NpdGlvblN0cmF0ZWd5OiBQb3NpdGlvblN0cmF0ZWd5LFxyXG5cdFx0cHJvdGVjdGVkIGV4cGFuZGVkUG9zaXRpb25TdHJhdGVneTogUG9zaXRpb25TdHJhdGVneSxcclxuXHQpIHtcclxuXHRcdHN1cGVyKCk7XHJcblxyXG5cdFx0Y29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xyXG5cdFx0XHRwcm92aWRlcnM6IFtcclxuXHRcdFx0XHR7IHByb3ZpZGU6IEx1TXVsdGlTZWxlY3RQYW5lbFJlZiwgdXNlVmFsdWU6IHRoaXMgfSxcclxuXHRcdFx0XHR7IHByb3ZpZGU6IE1VTFRJX1NFTEVDVF9QQU5FTF9EQVRBLCB1c2VWYWx1ZTogcGFuZWxEYXRhIH0sXHJcblx0XHRcdF0sXHJcblx0XHRcdHBhcmVudDogcGFyZW50SW5qZWN0b3IsXHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLnBvcnRhbFJlZiA9IG5ldyBDb21wb25lbnRQb3J0YWw8THVNdWx0aVNlbGVjdFBhbmVsQ29tcG9uZW50PFQ+PihMdU11bHRpU2VsZWN0UGFuZWxDb21wb25lbnQsIHVuZGVmaW5lZCwgaW5qZWN0b3IpO1xyXG5cdFx0dGhpcy5wYW5lbFJlZiA9IG92ZXJsYXlSZWYuYXR0YWNoKHRoaXMucG9ydGFsUmVmKTtcclxuXHRcdHRoaXMuaW5zdGFuY2UgPSB0aGlzLnBhbmVsUmVmLmluc3RhbmNlO1xyXG5cclxuXHRcdG92ZXJsYXlSZWZcclxuXHRcdFx0LmJhY2tkcm9wQ2xpY2soKVxyXG5cdFx0XHQucGlwZSh0YWtlVW50aWwodGhpcy5jbG9zZWQpKVxyXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2UoKSk7XHJcblx0fVxyXG5cclxuXHRlbWl0VmFsdWUodmFsdWU6IFRbXSk6IHZvaWQge1xyXG5cdFx0dGhpcy52YWx1ZUNoYW5nZWQuZW1pdCh2YWx1ZSk7XHJcblx0fVxyXG5cclxuXHR1cGRhdGVTZWxlY3RlZE9wdGlvbnMoc2VsZWN0ZWRPcHRpb25zOiBUW10pOiB2b2lkIHtcclxuXHRcdHRoaXMuaW5zdGFuY2Uuc2VsZWN0ZWRPcHRpb25zID0gc2VsZWN0ZWRPcHRpb25zO1xyXG5cdFx0Ly8gUnVuIGNoYW5nZSBkZXRlY3Rpb24gb24gdGhlIHBhbmVsIGNvbXBvbmVudFxyXG5cdFx0dGhpcy5wYW5lbFJlZi5pbmplY3Rvci5nZXQoQ2hhbmdlRGV0ZWN0b3JSZWYpLm1hcmtGb3JDaGVjaygpO1xyXG5cdH1cclxuXHJcblx0dXNlRXhwYW5kZWRQb3NpdGlvbigpOiB2b2lkIHtcclxuXHRcdHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHRoaXMuZXhwYW5kZWRQb3NpdGlvblN0cmF0ZWd5KTtcclxuXHR9XHJcblxyXG5cdHVzZURlZmF1bHRQb3NpdGlvbigpOiB2b2lkIHtcclxuXHRcdHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHRoaXMuZGVmYXVsdFBvc2l0aW9uU3RyYXRlZ3kpO1xyXG5cdH1cclxuXHJcblx0b3ZlcnJpZGUgY2xvc2UoKTogdm9pZCB7XHJcblx0XHRzdXBlci5jbG9zZSgpO1xyXG5cdFx0dGhpcy5wYW5lbFJlZi5kZXN0cm95KCk7XHJcblx0XHR0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XHJcblx0fVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBMdU11bHRpU2VsZWN0UGFuZWxSZWZGYWN0b3J5IHtcclxuXHRwcm90ZWN0ZWQgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcclxuXHRwcm90ZWN0ZWQgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XHJcblx0cHJvdGVjdGVkIHBvc2l0aW9uQnVpbGRlciA9IGluamVjdChPdmVybGF5UG9zaXRpb25CdWlsZGVyKTtcclxuXHRwcm90ZWN0ZWQgc2Nyb2xsU3RyYXRlZ2llcyA9IGluamVjdChTY3JvbGxTdHJhdGVneU9wdGlvbnMpO1xyXG5cdHByb3RlY3RlZCBwYXJlbnRJbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcblxyXG5cdGJ1aWxkUGFuZWxSZWY8VD4ocGFuZWxEYXRhOiBJTHVNdWx0aVNlbGVjdFBhbmVsRGF0YTxUPiwgZGVmYXVsdE92ZXJsYXlDb25maWdPdmVycmlkZTogT3ZlcmxheUNvbmZpZyA9IHt9LCBleHBhbmRlZFBvc2l0aW9uU3RyYXRlZ3k/OiBQb3NpdGlvblN0cmF0ZWd5KTogTHVNdWx0aVNlbGVjdFBhbmVsUmVmPFQ+IHtcclxuXHRcdGNvbnN0IGRlZmF1bHRPdmVybGF5Q29uZmlnID0gdGhpcy5idWlsZERlZmF1bHRPdmVybGF5Q29uZmlnKGRlZmF1bHRPdmVybGF5Q29uZmlnT3ZlcnJpZGUpO1xyXG5cdFx0ZXhwYW5kZWRQb3NpdGlvblN0cmF0ZWd5ID8/PSB0aGlzLmJ1aWxkRXhwYW5kZWRQb3NpdGlvblN0cmF0ZWd5KCk7XHJcblxyXG5cdFx0Y29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoZGVmYXVsdE92ZXJsYXlDb25maWcpO1xyXG5cclxuXHRcdG92ZXJsYXlSZWYuaG9zdEVsZW1lbnQuc3R5bGUudHJhbnNpdGlvblByb3BlcnR5ID0gJ2hlaWdodCc7XHJcblx0XHRvdmVybGF5UmVmLmhvc3RFbGVtZW50LnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9ICd2YXIoLS1jb21tb25zLWFuaW1hdGlvbnMtZHVyYXRpb25zLXN0YW5kYXJkKSc7XHJcblxyXG5cdFx0cmV0dXJuIG5ldyBNdWx0aVNlbGVjdFBhbmVsUmVmKG92ZXJsYXlSZWYsIHRoaXMucGFyZW50SW5qZWN0b3IsIHBhbmVsRGF0YSwgZGVmYXVsdE92ZXJsYXlDb25maWcucG9zaXRpb25TdHJhdGVneSwgZXhwYW5kZWRQb3NpdGlvblN0cmF0ZWd5KTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBidWlsZERlZmF1bHRPdmVybGF5Q29uZmlnKG92ZXJsYXlDb25maWdPdmVycmlkZTogT3ZlcmxheUNvbmZpZyA9IHt9KTogT3ZlcmxheUNvbmZpZyB7XHJcblx0XHRjb25zdCBvdmVybGF5Q29uZmlnOiBPdmVybGF5Q29uZmlnID0geyAuLi5vdmVybGF5Q29uZmlnT3ZlcnJpZGUgfTtcclxuXHJcblx0XHRjb25zdCBjb25maWcgPSB7IG92ZXJsYXBJbnB1dDogZmFsc2UsIG9mZnNldFk6IDIgfTtcclxuXHRcdG92ZXJsYXlDb25maWcucG9zaXRpb25TdHJhdGVneSA9IHRoaXMucG9zaXRpb25CdWlsZGVyXHJcblx0XHRcdC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZWxlbWVudFJlZilcclxuXHRcdFx0LndpdGhWaWV3cG9ydE1hcmdpbigxMClcclxuXHRcdFx0LndpdGhQb3NpdGlvbnMoW1xyXG5cdFx0XHRcdHRoaXMuYnVpbGRQb3NpdGlvbignYm90dG9tJywgJ3JpZ2h0JywgY29uZmlnKSxcclxuXHRcdFx0XHR0aGlzLmJ1aWxkUG9zaXRpb24oJ2JvdHRvbScsICdsZWZ0JywgY29uZmlnKSxcclxuXHRcdFx0XHR0aGlzLmJ1aWxkUG9zaXRpb24oJ3RvcCcsICdyaWdodCcsIGNvbmZpZyksXHJcblx0XHRcdFx0dGhpcy5idWlsZFBvc2l0aW9uKCd0b3AnLCAnbGVmdCcsIGNvbmZpZyksXHJcblx0XHRcdF0pO1xyXG5cdFx0b3ZlcmxheUNvbmZpZy5zY3JvbGxTdHJhdGVneSA9IHRoaXMuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCk7XHJcblx0XHRvdmVybGF5Q29uZmlnLm1pbldpZHRoID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XHJcblx0XHRvdmVybGF5Q29uZmlnLm1heFdpZHRoID0gJzEwMHZ3JztcclxuXHJcblx0XHRyZXR1cm4gb3ZlcmxheUNvbmZpZztcclxuXHR9XHJcblxyXG5cdGJ1aWxkRXhwYW5kZWRQb3NpdGlvblN0cmF0ZWd5KCk6IFBvc2l0aW9uU3RyYXRlZ3kge1xyXG5cdFx0Y29uc3QgY29uZmlnID0geyBvdmVybGFwSW5wdXQ6IHRydWUsIG9mZnNldFg6IC00LCBvZmZzZXRZOiAtNCB9O1xyXG5cdFx0cmV0dXJuIHRoaXMucG9zaXRpb25CdWlsZGVyXHJcblx0XHRcdC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZWxlbWVudFJlZilcclxuXHRcdFx0LndpdGhWaWV3cG9ydE1hcmdpbigxMClcclxuXHRcdFx0LndpdGhQb3NpdGlvbnMoW1xyXG5cdFx0XHRcdHRoaXMuYnVpbGRQb3NpdGlvbigndG9wJywgJ3JpZ2h0JywgY29uZmlnKSxcclxuXHRcdFx0XHR0aGlzLmJ1aWxkUG9zaXRpb24oJ3RvcCcsICdsZWZ0JywgY29uZmlnKSxcclxuXHRcdFx0XHR0aGlzLmJ1aWxkUG9zaXRpb24oJ2JvdHRvbScsICdyaWdodCcsIGNvbmZpZyksXHJcblx0XHRcdFx0dGhpcy5idWlsZFBvc2l0aW9uKCdib3R0b20nLCAnbGVmdCcsIGNvbmZpZyksXHJcblx0XHRcdF0pO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIGJ1aWxkUG9zaXRpb24oXHJcblx0XHR5RGlyZWN0aW9uOiAndG9wJyB8ICdib3R0b20nLFxyXG5cdFx0eERpcmVjdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyxcclxuXHRcdGNvbmZpZzoge1xyXG5cdFx0XHRvZmZzZXRYPzogbnVtYmVyO1xyXG5cdFx0XHRvZmZzZXRZPzogbnVtYmVyO1xyXG5cdFx0XHRvdmVybGFwSW5wdXQ6IGJvb2xlYW47XHJcblx0XHR9LFxyXG5cdCk6IENvbm5lY3RlZFBvc2l0aW9uIHtcclxuXHRcdGNvbnN0IG9yaWdpblggPSB4RGlyZWN0aW9uID09PSAncmlnaHQnID8gJ3N0YXJ0JyA6ICdlbmQnO1xyXG5cdFx0Y29uc3Qgb3ZlcmxheVggPSBvcmlnaW5YO1xyXG5cclxuXHRcdGNvbnN0IG9wcG9zaXRlWURpcmVjdGlvbiA9IHlEaXJlY3Rpb24gPT09ICd0b3AnID8gJ2JvdHRvbScgOiAndG9wJztcclxuXHRcdGNvbnN0IHsgb3JpZ2luWSwgb3ZlcmxheVkgfSA9IGNvbmZpZy5vdmVybGFwSW5wdXRcclxuXHRcdFx0PyAoe1xyXG5cdFx0XHRcdFx0b3JpZ2luWTogb3Bwb3NpdGVZRGlyZWN0aW9uLFxyXG5cdFx0XHRcdFx0b3ZlcmxheVk6IG9wcG9zaXRlWURpcmVjdGlvbixcclxuXHRcdFx0ICB9IGFzIGNvbnN0KVxyXG5cdFx0XHQ6ICh7IG9yaWdpblk6IHlEaXJlY3Rpb24sIG92ZXJsYXlZOiBvcHBvc2l0ZVlEaXJlY3Rpb24gfSBhcyBjb25zdCk7XHJcblxyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0b3JpZ2luWCxcclxuXHRcdFx0b3JpZ2luWSxcclxuXHRcdFx0b3ZlcmxheVgsXHJcblx0XHRcdG92ZXJsYXlZLFxyXG5cdFx0XHQuLi4oY29uZmlnLm9mZnNldFggPyB7IG9mZnNldFg6IHhEaXJlY3Rpb24gPT09ICdyaWdodCcgPyBjb25maWcub2Zmc2V0WCA6IC1jb25maWcub2Zmc2V0WCB9IDoge30pLFxyXG5cdFx0XHQuLi4oY29uZmlnLm9mZnNldFkgPyB7IG9mZnNldFk6IHlEaXJlY3Rpb24gPT09ICdib3R0b20nID8gY29uZmlnLm9mZnNldFkgOiAtY29uZmlnLm9mZnNldFkgfSA6IHt9KSxcclxuXHRcdH07XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,13 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { LuSelectPanelRef } from '@lucca-front/ng/core-select';
3
+ export class LuMultiSelectPanelRef extends LuSelectPanelRef {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.selectAll = new EventEmitter();
7
+ }
8
+ close() {
9
+ super.close();
10
+ this.selectAll.complete();
11
+ }
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9tdWx0aS1zZWxlY3QvaW5wdXQvcGFuZWwubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUcvRCxNQUFNLE9BQWdCLHFCQUF5QixTQUFRLGdCQUF3QjtJQUEvRTs7UUFDQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQWN0QyxDQUFDO0lBVlMsS0FBSztRQUNiLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztDQU9EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEx1U2VsZWN0UGFuZWxSZWYgfSBmcm9tICdAbHVjY2EtZnJvbnQvbmcvY29yZS1zZWxlY3QnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTHVNdWx0aVNlbGVjdFBhbmVsUmVmPFQ+IGV4dGVuZHMgTHVTZWxlY3RQYW5lbFJlZjxULCBUW10+IHtcclxuXHRzZWxlY3RBbGwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG5cdGFyZUFsbE9wdGlvbnNTZWxlY3RlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbiB8IHVuZGVmaW5lZD47XHJcblxyXG5cdG92ZXJyaWRlIGNsb3NlKCk6IHZvaWQge1xyXG5cdFx0c3VwZXIuY2xvc2UoKTtcclxuXHRcdHRoaXMuc2VsZWN0QWxsLmNvbXBsZXRlKCk7XHJcblx0fVxyXG5cclxuXHRhYnN0cmFjdCB1cGRhdGVTZWxlY3RlZE9wdGlvbnMoc2VsZWN0ZWRPcHRpb25zOiBUW10pOiB2b2lkO1xyXG5cclxuXHRhYnN0cmFjdCB1c2VFeHBhbmRlZFBvc2l0aW9uKCk6IHZvaWQ7XHJcblxyXG5cdGFic3RyYWN0IHVzZURlZmF1bHRQb3NpdGlvbigpOiB2b2lkO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,106 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, forwardRef, HostBinding, inject, Input } from '@angular/core';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { getIntl } from '@lucca-front/ng/core';
5
+ import { ALuSelectInputComponent, provideLuSelectLabelsAndIds, provideLuSelectOverlayContainer, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';
6
+ import { LuTooltipModule } from '@lucca-front/ng/tooltip';
7
+ import { ReplaySubject } from 'rxjs';
8
+ import { LuMultiSelectDefaultDisplayerComponent } from '../displayer/index';
9
+ import { LU_MULTI_SELECT_TRANSLATIONS } from '../select.translate';
10
+ import { LuMultiSelectPanelRefFactory } from './panel-ref.factory';
11
+ import * as i0 from "@angular/core";
12
+ import * as i1 from "@angular/common";
13
+ class LuMultiSelectInputComponent extends ALuSelectInputComponent {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.intl = getIntl(LU_MULTI_SELECT_TRANSLATIONS);
17
+ this.modMultipleClass = true;
18
+ this.valuesTpl = LuMultiSelectDefaultDisplayerComponent;
19
+ // TODO this is for select all
20
+ // @Output() selectAll = new EventEmitter<void>();
21
+ this.expanded = false;
22
+ this.areAllOptionsSelected$ = new ReplaySubject(1);
23
+ this.panelRefFactory = inject(LuMultiSelectPanelRefFactory);
24
+ }
25
+ get panelRef() {
26
+ return this._panelRef;
27
+ }
28
+ writeValue(value) {
29
+ super.writeValue(value);
30
+ this.panelRef?.updateSelectedOptions(value);
31
+ }
32
+ buildPanelRef() {
33
+ return this.panelRefFactory.buildPanelRef({
34
+ initialValue: this.value,
35
+ optionComparer: this.optionComparer,
36
+ options$: this.options$,
37
+ loading$: this.loading$,
38
+ searchable: this.searchable,
39
+ optionTpl: this.optionTpl,
40
+ canSelectAll: false,
41
+ areAllOptionsSelected$: this.areAllOptionsSelected$,
42
+ expanded: this.expanded,
43
+ }, this.overlayConfig, this.expandedPositionStrategy);
44
+ }
45
+ bindInputToPanelRefEvents() {
46
+ if (!this.panelRef) {
47
+ return;
48
+ }
49
+ super.bindInputToPanelRefEvents();
50
+ // TODO This is for select all
51
+ // this.panelRef.selectAll.subscribe(() => this.selectAll.emit());
52
+ }
53
+ get hasValue() {
54
+ return this.value && this.value.length > 0;
55
+ }
56
+ clearValue(event) {
57
+ event.stopPropagation();
58
+ this.onChange?.([]);
59
+ this.value = [];
60
+ }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuMultiSelectInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
62
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: LuMultiSelectInputComponent, isStandalone: true, selector: "lu-multi-select", inputs: { valuesTpl: "valuesTpl", expandedPositionStrategy: "expandedPositionStrategy", expanded: "expanded", panelRef: "panelRef" }, host: { properties: { "class.mod-multiple": "this.modMultipleClass" } }, providers: [
63
+ {
64
+ provide: NG_VALUE_ACCESSOR,
65
+ useExisting: forwardRef(() => LuMultiSelectInputComponent),
66
+ multi: true,
67
+ },
68
+ {
69
+ provide: ALuSelectInputComponent,
70
+ useExisting: forwardRef(() => LuMultiSelectInputComponent),
71
+ },
72
+ provideLuSelectOverlayContainer(),
73
+ provideLuSelectLabelsAndIds(),
74
+ LuMultiSelectPanelRefFactory,
75
+ ], 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=\"valuesTpl; value: value\"></ng-container>\r\n\t</div>\r\n</div>\r\n<div class=\"lu-select-suffix\">\r\n\t<a *ngIf=\"hasValue && clearable\" role=\"button\" class=\"clear\" (click)=\"clearValue($event)\">\r\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-thinCross\"></span>\r\n\t\t<span class=\"u-mask\">{{ intl.clear }}</span>\r\n\t</a>\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{--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[aria-expanded=true]{outline:none}.lu-select-value{padding-right:2rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: LuTooltipModule }, { kind: "directive", type: ɵLuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
76
+ }
77
+ export { LuMultiSelectInputComponent };
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuMultiSelectInputComponent, decorators: [{
79
+ type: Component,
80
+ args: [{ selector: 'lu-multi-select', standalone: true, imports: [CommonModule, LuTooltipModule, ɵLuOptionOutletDirective], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
81
+ {
82
+ provide: NG_VALUE_ACCESSOR,
83
+ useExisting: forwardRef(() => LuMultiSelectInputComponent),
84
+ multi: true,
85
+ },
86
+ {
87
+ provide: ALuSelectInputComponent,
88
+ useExisting: forwardRef(() => LuMultiSelectInputComponent),
89
+ },
90
+ provideLuSelectOverlayContainer(),
91
+ provideLuSelectLabelsAndIds(),
92
+ LuMultiSelectPanelRefFactory,
93
+ ], 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=\"valuesTpl; value: value\"></ng-container>\r\n\t</div>\r\n</div>\r\n<div class=\"lu-select-suffix\">\r\n\t<a *ngIf=\"hasValue && clearable\" role=\"button\" class=\"clear\" (click)=\"clearValue($event)\">\r\n\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-thinCross\"></span>\r\n\t\t<span class=\"u-mask\">{{ intl.clear }}</span>\r\n\t</a>\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{--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[aria-expanded=true]{outline:none}.lu-select-value{padding-right:2rem}\n"] }]
94
+ }], propDecorators: { modMultipleClass: [{
95
+ type: HostBinding,
96
+ args: ['class.mod-multiple']
97
+ }], valuesTpl: [{
98
+ type: Input
99
+ }], expandedPositionStrategy: [{
100
+ type: Input
101
+ }], expanded: [{
102
+ type: Input
103
+ }], panelRef: [{
104
+ type: Input
105
+ }] } });
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL211bHRpLXNlbGVjdC9pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvbXVsdGktc2VsZWN0L2lucHV0L3NlbGVjdC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzlILE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFtQiwyQkFBMkIsRUFBRSwrQkFBK0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9LLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25FLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFHbkUsTUFzQmEsMkJBQStCLFNBQVEsdUJBQStCO0lBdEJuRjs7UUF1QkMsU0FBSSxHQUFHLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBRVYscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBRWxELGNBQVMsR0FB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QUFFO3dCQUNqQywyQkFBMkIsRUFBRTt3QkFDN0IsNEJBQTRCO3FCQUM1Qjs4QkFLa0MsZ0JBQWdCO3NCQUFsRCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFFeEIsU0FBUztzQkFBakIsS0FBSztnQkFRTix3QkFBd0I7c0JBRHZCLEtBQUs7Z0JBT04sUUFBUTtzQkFEUCxLQUFLO2dCQUljLFFBQVE7c0JBRDNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb3NpdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgaW5qZWN0LCBJbnB1dCwgVGVtcGxhdGVSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBnZXRJbnRsIH0gZnJvbSAnQGx1Y2NhLWZyb250L25nL2NvcmUnO1xyXG5pbXBvcnQgeyBBTHVTZWxlY3RJbnB1dENvbXBvbmVudCwgTHVPcHRpb25Db250ZXh0LCBwcm92aWRlTHVTZWxlY3RMYWJlbHNBbmRJZHMsIHByb3ZpZGVMdVNlbGVjdE92ZXJsYXlDb250YWluZXIsIMm1THVPcHRpb25PdXRsZXREaXJlY3RpdmUgfSBmcm9tICdAbHVjY2EtZnJvbnQvbmcvY29yZS1zZWxlY3QnO1xyXG5pbXBvcnQgeyBMdVRvb2x0aXBNb2R1bGUgfSBmcm9tICdAbHVjY2EtZnJvbnQvbmcvdG9vbHRpcCc7XHJcbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTHVNdWx0aVNlbGVjdERlZmF1bHREaXNwbGF5ZXJDb21wb25lbnQgfSBmcm9tICcuLi9kaXNwbGF5ZXIvaW5kZXgnO1xyXG5pbXBvcnQgeyBMVV9NVUxUSV9TRUxFQ1RfVFJBTlNMQVRJT05TIH0gZnJvbSAnLi4vc2VsZWN0LnRyYW5zbGF0ZSc7XHJcbmltcG9ydCB7IEx1TXVsdGlTZWxlY3RQYW5lbFJlZkZhY3RvcnkgfSBmcm9tICcuL3BhbmVsLXJlZi5mYWN0b3J5JztcclxuaW1wb3J0IHsgTHVNdWx0aVNlbGVjdFBhbmVsUmVmIH0gZnJvbSAnLi9wYW5lbC5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2x1LW11bHRpLXNlbGVjdCcsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBMdVRvb2x0aXBNb2R1bGUsIMm1THVPcHRpb25PdXRsZXREaXJlY3RpdmVdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL3NlbGVjdC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG5cdHByb3ZpZGVyczogW1xyXG5cdFx0e1xyXG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTHVNdWx0aVNlbGVjdElucHV0Q29tcG9uZW50KSxcclxuXHRcdFx0bXVsdGk6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRwcm92aWRlOiBBTHVTZWxlY3RJbnB1dENvbXBvbmVudCxcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTHVNdWx0aVNlbGVjdElucHV0Q29tcG9uZW50KSxcclxuXHRcdH0sXHJcblx0XHRwcm92aWRlTHVTZWxlY3RPdmVybGF5Q29udGFpbmVyKCksXHJcblx0XHRwcm92aWRlTHVTZWxlY3RMYWJlbHNBbmRJZHMoKSxcclxuXHRcdEx1TXVsdGlTZWxlY3RQYW5lbFJlZkZhY3RvcnksXHJcblx0XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEx1TXVsdGlTZWxlY3RJbnB1dENvbXBvbmVudDxUPiBleHRlbmRzIEFMdVNlbGVjdElucHV0Q29tcG9uZW50PFQsIFRbXT4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblx0aW50bCA9IGdldEludGwoTFVfTVVMVElfU0VMRUNUX1RSQU5TTEFUSU9OUyk7XHJcblxyXG5cdEBIb3N0QmluZGluZygnY2xhc3MubW9kLW11bHRpcGxlJykgbW9kTXVsdGlwbGVDbGFzcyA9IHRydWU7XHJcblxyXG5cdEBJbnB1dCgpIHZhbHVlc1RwbD86IFRlbXBsYXRlUmVmPEx1T3B0aW9uQ29udGV4dDxUW10+PiB8IFR5cGU8dW5rbm93bj4gPSBMdU11bHRpU2VsZWN0RGVmYXVsdERpc3BsYXllckNvbXBvbmVudDtcclxuXHJcblx0Ly8gVE9ETyBUaGlzIGlzIGZvciBzZWxlY3QgYWxsXHJcblx0Ly8gQElucHV0KCkgc2V0IGFyZUFsbE9wdGlvbnNTZWxlY3RlZChzZWxlY3RlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xyXG5cdC8vIFx0dGhpcy5hcmVBbGxPcHRpb25zU2VsZWN0ZWQkLm5leHQoc2VsZWN0ZWQpO1xyXG5cdC8vIH1cclxuXHJcblx0QElucHV0KClcclxuXHRleHBhbmRlZFBvc2l0aW9uU3RyYXRlZ3k/OiBQb3NpdGlvblN0cmF0ZWd5O1xyXG5cclxuXHQvLyBUT0RPIHRoaXMgaXMgZm9yIHNlbGVjdCBhbGxcclxuXHQvLyBAT3V0cHV0KCkgc2VsZWN0QWxsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuXHRASW5wdXQoKVxyXG5cdGV4cGFuZGVkID0gZmFsc2U7XHJcblxyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIG92ZXJyaWRlIGdldCBwYW5lbFJlZigpOiBMdU11bHRpU2VsZWN0UGFuZWxSZWY8VD4gfCB1bmRlZmluZWQge1xyXG5cdFx0cmV0dXJuIHRoaXMuX3BhbmVsUmVmO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIGFyZUFsbE9wdGlvbnNTZWxlY3RlZCQgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuIHwgdW5kZWZpbmVkPigxKTtcclxuXHJcblx0cHJvdGVjdGVkIG92ZXJyaWRlIF9wYW5lbFJlZj86IEx1TXVsdGlTZWxlY3RQYW5lbFJlZjxUPjtcclxuXHJcblx0cHJvdGVjdGVkIHBhbmVsUmVmRmFjdG9yeSA9IGluamVjdChMdU11bHRpU2VsZWN0UGFuZWxSZWZGYWN0b3J5KTtcclxuXHJcblx0cHVibGljIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IFRbXSk6IHZvaWQge1xyXG5cdFx0c3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XHJcblx0XHR0aGlzLnBhbmVsUmVmPy51cGRhdGVTZWxlY3RlZE9wdGlvbnModmFsdWUpO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIG92ZXJyaWRlIGJ1aWxkUGFuZWxSZWYoKTogTHVNdWx0aVNlbGVjdFBhbmVsUmVmPFQ+IHtcclxuXHRcdHJldHVybiB0aGlzLnBhbmVsUmVmRmFjdG9yeS5idWlsZFBhbmVsUmVmKFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0aW5pdGlhbFZhbHVlOiB0aGlzLnZhbHVlLFxyXG5cdFx0XHRcdG9wdGlvbkNvbXBhcmVyOiB0aGlzLm9wdGlvbkNvbXBhcmVyLFxyXG5cdFx0XHRcdG9wdGlvbnMkOiB0aGlzLm9wdGlvbnMkLFxyXG5cdFx0XHRcdGxvYWRpbmckOiB0aGlzLmxvYWRpbmckLFxyXG5cdFx0XHRcdHNlYXJjaGFibGU6IHRoaXMuc2VhcmNoYWJsZSxcclxuXHRcdFx0XHRvcHRpb25UcGw6IHRoaXMub3B0aW9uVHBsLFxyXG5cdFx0XHRcdGNhblNlbGVjdEFsbDogZmFsc2UsIC8vIFRPRE8gQ29ubmVjdCB0aGlzIHRvIHRoaXMuc2VsZWN0QWxsLm9ic2VydmVkIHdoZW4gd2UnbGwgYmUgZml4ZWQgb24gaG93IHRvIGltcGxlbWVudCBzZWxlY3QgYWxsXHJcblx0XHRcdFx0YXJlQWxsT3B0aW9uc1NlbGVjdGVkJDogdGhpcy5hcmVBbGxPcHRpb25zU2VsZWN0ZWQkLFxyXG5cdFx0XHRcdGV4cGFuZGVkOiB0aGlzLmV4cGFuZGVkLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR0aGlzLm92ZXJsYXlDb25maWcsXHJcblx0XHRcdHRoaXMuZXhwYW5kZWRQb3NpdGlvblN0cmF0ZWd5LFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBvdmVycmlkZSBiaW5kSW5wdXRUb1BhbmVsUmVmRXZlbnRzKCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLnBhbmVsUmVmKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRzdXBlci5iaW5kSW5wdXRUb1BhbmVsUmVmRXZlbnRzKCk7XHJcblx0XHQvLyBUT0RPIFRoaXMgaXMgZm9yIHNlbGVjdCBhbGxcclxuXHRcdC8vIHRoaXMucGFuZWxSZWYuc2VsZWN0QWxsLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNlbGVjdEFsbC5lbWl0KCkpO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIG92ZXJyaWRlIGdldCBoYXNWYWx1ZSgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUubGVuZ3RoID4gMDtcclxuXHR9XHJcblxyXG5cdG92ZXJyaWRlIGNsZWFyVmFsdWUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuXHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cdFx0dGhpcy5vbkNoYW5nZT8uKFtdKTtcclxuXHRcdHRoaXMudmFsdWUgPSBbXTtcclxuXHR9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImx1LXNlbGVjdC1wbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyIH19PC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJsdS1zZWxlY3QtdmFsdWVcIj5cclxuXHQ8ZGl2IGNsYXNzPVwibHUtc2VsZWN0LWRpc3BsYXktd3JhcHBlclwiPlxyXG5cdFx0PG5nLWNvbnRhaW5lciAqbHVPcHRpb25PdXRsZXQ9XCJ2YWx1ZXNUcGw7IHZhbHVlOiB2YWx1ZVwiPjwvbmctY29udGFpbmVyPlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImx1LXNlbGVjdC1zdWZmaXhcIj5cclxuXHQ8YSAqbmdJZj1cImhhc1ZhbHVlICYmIGNsZWFyYWJsZVwiIHJvbGU9XCJidXR0b25cIiBjbGFzcz1cImNsZWFyXCIgKGNsaWNrKT1cImNsZWFyVmFsdWUoJGV2ZW50KVwiPlxyXG5cdFx0PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJsdWNjYS1pY29uIGljb24tdGhpbkNyb3NzXCI+PC9zcGFuPlxyXG5cdFx0PHNwYW4gY2xhc3M9XCJ1LW1hc2tcIj57eyBpbnRsLmNsZWFyIH19PC9zcGFuPlxyXG5cdDwvYT5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVjY2EtZnJvbnQtbmctbXVsdGktc2VsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvbXVsdGktc2VsZWN0L2x1Y2NhLWZyb250LW5nLW11bHRpLXNlbGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './panel.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9tdWx0aS1zZWxlY3QvcGFuZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGFuZWwuY29tcG9uZW50JztcclxuIl19
@@ -0,0 +1,18 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ class LuIsOptionSelectedPipe {
4
+ transform(option, comparer, selectedOptions) {
5
+ return selectedOptions.some((selectedOption) => comparer(option, selectedOption));
6
+ }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuIsOptionSelectedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.3", ngImport: i0, type: LuIsOptionSelectedPipe, isStandalone: true, name: "luIsOptionSelected" }); }
9
+ }
10
+ export { LuIsOptionSelectedPipe };
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuIsOptionSelectedPipe, decorators: [{
12
+ type: Pipe,
13
+ args: [{
14
+ name: 'luIsOptionSelected',
15
+ standalone: true,
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLXNlbGVjdGVkLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9tdWx0aS1zZWxlY3QvcGFuZWwvb3B0aW9uLXNlbGVjdGVkLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBRXBELE1BSWEsc0JBQXNCO0lBQ2xDLFNBQVMsQ0FBSSxNQUFTLEVBQUUsUUFBNkMsRUFBRSxlQUFvQjtRQUMxRixPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDOzhHQUhXLHNCQUFzQjs0R0FBdEIsc0JBQXNCOztTQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFKbEMsSUFBSTttQkFBQztvQkFDTCxJQUFJLEVBQUUsb0JBQW9CO29CQUMxQixVQUFVLEVBQUUsSUFBSTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcblx0bmFtZTogJ2x1SXNPcHRpb25TZWxlY3RlZCcsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEx1SXNPcHRpb25TZWxlY3RlZFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHR0cmFuc2Zvcm08VD4ob3B0aW9uOiBULCBjb21wYXJlcjogKG9wdGlvbjE6IFQsIG9wdGlvbjI6IFQpID0+IGJvb2xlYW4sIHNlbGVjdGVkT3B0aW9uczogVFtdKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gc2VsZWN0ZWRPcHRpb25zLnNvbWUoKHNlbGVjdGVkT3B0aW9uKSA9PiBjb21wYXJlcihvcHRpb24sIHNlbGVjdGVkT3B0aW9uKSk7XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,146 @@
1
+ import { A11yModule, ActiveDescendantKeyManager } from '@angular/cdk/a11y';
2
+ import { AsyncPipe, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
3
+ import { ChangeDetectionStrategy, Component, HostListener, inject, ViewChild, ViewChildren } from '@angular/core';
4
+ import { FormsModule } from '@angular/forms';
5
+ import { getIntl } from '@lucca-front/ng/core';
6
+ import { SELECT_ID, ɵLuOptionComponent, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';
7
+ import { asyncScheduler, filter, map, observeOn, take, takeUntil } from 'rxjs';
8
+ import { LuMultiSelectPanelRef } from '../input/panel.model';
9
+ import { MULTI_SELECT_PANEL_DATA } from '../select.model';
10
+ import { LU_MULTI_SELECT_TRANSLATIONS } from '../select.translate';
11
+ import { LuIsOptionSelectedPipe } from './option-selected.pipe';
12
+ import { ɵLuMultiSelectSelectedChipDirective } from './selected-chip.directive';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "@angular/cdk/a11y";
15
+ import * as i2 from "@angular/forms";
16
+ class LuMultiSelectPanelComponent {
17
+ constructor() {
18
+ this.panelData = inject(MULTI_SELECT_PANEL_DATA);
19
+ this.panelRef = inject(LuMultiSelectPanelRef);
20
+ this.selectId = inject(SELECT_ID);
21
+ this.intl = getIntl(LU_MULTI_SELECT_TRANSLATIONS);
22
+ this.isExpanded = this.panelData.expanded;
23
+ this.options$ = this.panelData.options$;
24
+ this.loading$ = this.panelData.loading$;
25
+ this.areAllOptionsSelected$ = this.panelData.areAllOptionsSelected$;
26
+ this.canSelectAll = false; // TODO connect to panel options when we'll be ok on designing select all
27
+ this.optionComparer = this.panelData.optionComparer;
28
+ this.selectedOptions = this.panelData.initialValue || [];
29
+ this.optionTpl = this.panelData.optionTpl;
30
+ this.searchable = this.panelData.searchable;
31
+ this.search = null;
32
+ }
33
+ onScroll(evt) {
34
+ if (!(evt.target instanceof HTMLElement)) {
35
+ return;
36
+ }
37
+ if (evt.target.scrollTop === 0) {
38
+ this.panelRef.previousPage.emit();
39
+ }
40
+ if (evt.target.scrollHeight - evt.target.scrollTop - evt.target.clientHeight < 1) {
41
+ this.panelRef.nextPage.emit();
42
+ }
43
+ }
44
+ ngAfterViewInit() {
45
+ if (!this.optionsQL) {
46
+ return;
47
+ }
48
+ this.initLeftColumnKeyManager();
49
+ this.initRightColumnKeyManager();
50
+ if (this.searchInput) {
51
+ setTimeout(() => this.searchInput.nativeElement.focus());
52
+ }
53
+ if (this.isExpanded) {
54
+ this.panelRef.useExpandedPosition();
55
+ }
56
+ else {
57
+ this.panelRef.useDefaultPosition();
58
+ }
59
+ }
60
+ onKeyDown($event) {
61
+ if ($event.key === 'Escape') {
62
+ return this.panelRef.close();
63
+ }
64
+ }
65
+ onLeftColumnKeydown($event) {
66
+ if ($event.code === 'Space' || $event.code === 'Enter') {
67
+ this.toggleOption(this.leftColumnKeyManager?.activeItem?.option);
68
+ $event.preventDefault();
69
+ return;
70
+ }
71
+ this.leftColumnKeyManager?.onKeydown($event);
72
+ }
73
+ onRightColumnKeydown($event) {
74
+ const option = this.rightColumnKeyManager?.activeItem?.option;
75
+ if (option && ($event.code === 'Space' || $event.code === 'Enter')) {
76
+ this.onChipKillClick(option);
77
+ $event.preventDefault();
78
+ return;
79
+ }
80
+ this.rightColumnKeyManager?.onKeydown($event);
81
+ }
82
+ // toggleAll(shouldSelectAll: boolean): void {
83
+ // if (shouldSelectAll) {
84
+ // this.panelRef.selectAll.emit();
85
+ // } else {
86
+ // this.clear();
87
+ // }
88
+ // }
89
+ updateClue(clue) {
90
+ this.search = clue;
91
+ this.panelRef.clueChanged.emit(clue);
92
+ setTimeout(() => this.leftColumnKeyManager.setFirstItemActive());
93
+ }
94
+ toggleOption(option) {
95
+ const selectedOption = this.selectedOptions.find((o) => this.optionComparer(o, option));
96
+ this.selectedOptions = selectedOption ? this.selectedOptions.filter((o) => o !== selectedOption) : [...this.selectedOptions, option];
97
+ this.panelRef.emitValue(this.selectedOptions);
98
+ this.leftColumnKeyManager?.setActiveItem(this.optionsQL.toArray().findIndex((o) => o.option === option));
99
+ }
100
+ onChipKillClick(option) {
101
+ const optionToUnselectIndex = this.selectedOptions.findIndex((o) => this.optionComparer(o, option));
102
+ this.selectedOptions = this.selectedOptions.filter((_, index) => index !== optionToUnselectIndex);
103
+ this.panelRef.emitValue(this.selectedOptions);
104
+ if (this.selectedOptions.length && this.rightColumnKeyManager) {
105
+ optionToUnselectIndex >= this.selectedOptions.length ? this.rightColumnKeyManager.setPreviousItemActive() : this.rightColumnKeyManager.setNextItemActive();
106
+ }
107
+ }
108
+ clear() {
109
+ this.selectedOptions = [];
110
+ this.panelRef.emitValue(this.selectedOptions);
111
+ }
112
+ initLeftColumnKeyManager() {
113
+ this.leftColumnKeyManager = new ActiveDescendantKeyManager(this.optionsQL).withHomeAndEnd();
114
+ if (this.selectedOptions) {
115
+ this.options$
116
+ ?.pipe(observeOn(asyncScheduler), map((options) => (this.selectedOptions.length ? options.findIndex((o) => this.optionComparer(o, this.selectedOptions[0])) : -1)), filter((index) => index !== -1), take(1), takeUntil(this.panelRef.closed))
117
+ .subscribe((selectedIndex) => this.leftColumnKeyManager.setActiveItem(selectedIndex));
118
+ }
119
+ this.leftColumnKeyManager.change
120
+ .pipe(map(() => this.leftColumnKeyManager.activeItem?.id), takeUntil(this.panelRef.closed))
121
+ .subscribe((activeDescendant) => this.panelRef.activeOptionIdChanged.emit(activeDescendant));
122
+ }
123
+ initRightColumnKeyManager() {
124
+ this.rightColumnKeyManager = new ActiveDescendantKeyManager(this.selectedChipsQL).withHomeAndEnd();
125
+ }
126
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuMultiSelectPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
127
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: LuMultiSelectPanelComponent, 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 }, { propertyName: "selectedChipsQL", predicate: ɵLuMultiSelectSelectedChipDirective, descendants: true }], ngImport: i0, template: "<!-- TODO : il faudrait remplacer la classe is-expanded par un attribut aria-expanded=\"true\"-->\r\n<ng-template #searchInputTpl>\r\n\t<label class=\"panel-search textfield mod-search mod-outlined lu-multiselect-search\">\r\n\t\t<input\r\n\t\t\t#searchInput\r\n\t\t\tclass=\"textfield-input\"\r\n\t\t\t[(ngModel)]=\"search\"\r\n\t\t\t(ngModelChange)=\"updateClue($event)\"\r\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\r\n\t\t/>\r\n\t\t<span class=\"u-mask textfield-label\">{{ intl.search }}</span>\r\n\t</label>\r\n</ng-template>\r\n\r\n<div\r\n\tclass=\"lu-picker-panel lu-option-picker-panel lu-multiselect-panel mod-multiple\"\r\n\trole=\"dialog\"\r\n\tcdkTrapFocus\r\n\t*ngIf=\"{ options: options$ | async } as ctx\"\r\n\t[cdkTrapFocusAutoCapture]=\"true\"\r\n\t[class.is-expanded]=\"isExpanded\"\r\n\t[attr.aria-expanded]=\"isExpanded ? 'true' : undefined\"\r\n>\r\n\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && !isExpanded\">\r\n\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\r\n\t\t<!--\t\t<button class=\"button mod-text mod-icon lu-multiselect-expandbutton\" type=\"button\" (click)=\"toggleExpansion()\">-->\r\n\t\t<!--\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon\" [class.icon-fullscreen]=\"!isExpanded\" [class.icon-fullscreenExit]=\"isExpanded\"></span>-->\r\n\t\t<!--\t\t\t{{ isExpanded ? intl.reduce : intl.expand }}-->\r\n\t\t<!--\t\t</button>-->\r\n\t</div>\r\n\t<div class=\"lu-multiselect-panel-columns\">\r\n\t\t<div class=\"lu-multiselect-panel-columns-col1\" (keydown)=\"onLeftColumnKeydown($event)\">\r\n\t\t\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && isExpanded\">\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\r\n\t\t\t</div>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"lu-picker-content lu-multiselect-panel-columns-col1-content\"\r\n\t\t\t\t[class.is-loading]=\"loading$ | async\"\r\n\t\t\t\ttabindex=\"0\"\r\n\t\t\t\tcdkFocusInitial\r\n\t\t\t\trole=\"list\"\r\n\t\t\t\taria-multiselectable=\"true\"\r\n\t\t\t\t(scroll)=\"onScroll($event)\"\r\n\t\t\t>\r\n\t\t\t\t<ng-container *ngIf=\"searchable\">\r\n\t\t\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\r\n\t\t\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\r\n\t\t\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.nativeElement.focus()\">{{ intl.clearSearch }}</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t<!--\t\t\t\t<ng-container *ngIf=\"canSelectAll\">-->\r\n\t\t\t\t<!--\t\t\t\t\t<label class=\"checkbox lu-multiselect-selectall\" role=\"option\" [for]=\"selectId + '-select-all'\">-->\r\n\t\t\t\t<!--\t\t\t\t\t\t<input-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\tclass=\"checkbox-input\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\ttype=\"checkbox\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\t[class.is-incomplete]=\"(areAllOptionsSelected$ | async) !== true && selectedOptions.length\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\t[id]=\"selectId + '-select-all'\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\t[ngModel]=\"(areAllOptionsSelected$ | async) === true || !!selectedOptions.length\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\t(ngModelChange)=\"toggleAll($event)\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t/>-->\r\n\t\t\t\t<!--\t\t\t\t\t\t<span class=\"checkbox-label\">{{ intl.selectAll }}</span>-->\r\n\t\t\t\t<!--\t\t\t\t\t</label>-->\r\n\t\t\t\t<!--\t\t\t\t</ng-container>-->\r\n\r\n\t\t\t\t<div class=\"lu-picker-content-option\">\r\n\t\t\t\t\t<lu-select-option\r\n\t\t\t\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\r\n\t\t\t\t\t\t[option]=\"option\"\r\n\t\t\t\t\t\t[optionTpl]=\"optionTpl\"\r\n\t\t\t\t\t\t[optionIndex]=\"index\"\r\n\t\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'nearest' }\"\r\n\t\t\t\t\t\t[isSelected]=\"option | luIsOptionSelected:optionComparer:selectedOptions\"\r\n\t\t\t\t\t\t(click)=\"toggleOption(option)\"\r\n\t\t\t\t\t></lu-select-option>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"lu-multiselect-panel-columns-col2\" *ngIf=\"isExpanded\">\r\n\t\t\t<div class=\"lu-multiselect-emptystate\" *ngIf=\"!selectedOptions.length\">{{ intl.emptySelection }}</div>\r\n\t\t\t<div class=\"lu-multiselect-chips\" role=\"listbox\" tabindex=\"0\" *ngIf=\"selectedOptions.length\" (keydown)=\"onRightColumnKeydown($event)\">\r\n\t\t\t\t<div role=\"option\" class=\"chip lu-multiselect-chip\" *ngFor=\"let option of selectedOptions\" [luMultiSelectSelectedChip]=\"option\">\r\n\t\t\t\t\t<ng-container *luOptionOutlet=\"optionTpl; value: option\"></ng-container>\r\n\t\t\t\t\t<button type=\"button\" class=\"chip-kill\" tabindex=\"-1\" (click)=\"onChipKillClick(option)\"></button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<div *ngIf=\"selectedOptions.length\" class=\"lu-multiselect-panel-columns-col2-footer\">\r\n\t\t\t\t<button class=\"button mod-text\" type=\"button\" (click)=\"clear()\">{{ intl.clear }}</button>\r\n\t\t\t</div>\r\n\t\t</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}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}.lu-multiselect-panel{display:flex;flex-direction:column;width:100%;border-radius:var(--commons-borderRadius-M);background-color:var(--colors-white-color);box-shadow:var(--commons-boxShadow-M);transition-property:width,min-width,margin-top,margin-left;transition-duration:var(--commons-animations-durations-fast);transition-timing-function:ease-in}.lu-multiselect-panel-form{padding:var(--spacings-XS);z-index:1}.lu-multiselect-panel-columns{display:flex;gap:var(--spacings-XS);padding:0;width:100%;transition:padding var(--commons-animations-durations-standard) ease}.is-expanded .lu-multiselect-panel-columns{padding:var(--spacings-XS)}[class*=lu-multiselect-panel-columns-col]{display:flex;flex-basis:100%;flex-direction:column}.is-expanded [class*=lu-multiselect-panel-columns-col]{border-radius:var(--commons-borderRadius-M)}.lu-multiselect-panel-columns-col2{align-items:flex-start;height:var(--components-picker-max-height);background-color:var(--palettes-grey-25);min-width:18rem}.is-expanded .lu-multiselect-panel-columns-col1{border:var(--commons-divider-width) solid var(--palettes-grey-200)}.lu-multiselect-panel-columns-col1-content{box-shadow:none;animation:none;padding:0;margin:0 var(--spacings-XS) var(--spacings-XS)}.lu-multiselect-panel-columns-col1-content,.lu-multiselect-chips{scroll-snap-type:y proximity;outline:none}.lu-multiselect-panel-columns-col1-content>*,.lu-multiselect-chips>*{scroll-snap-align:center}.lu-multiselect-panel-columns-col1-content:focus-visible,.lu-multiselect-chips:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px}.lu-multiselect-search{flex-grow:1}.lu-multiselect-selectall{padding:var(--spacings-XS);font-weight:600;border-radius:var(--commons-borderRadius-M);margin-bottom:var(--spacings-XXS)}.lu-multiselect-selectall:hover,.lu-multiselect-selectall:focus-within{background-color:var(--palettes-grey-25)}.lu-multiselect-chips{overflow-y:auto;display:flex;max-height:18.5rem;flex-grow:1;flex-direction:column;align-items:flex-start;align-self:stretch;gap:var(--spacings-XXS);padding:var(--spacings-XS);border-top-left-radius:var(--commons-borderRadius-M);border-top-right-radius:var(--commons-borderRadius-M)}.lu-multiselect-panel-columns-col2-footer{display:flex;flex:0;align-items:flex-end;align-self:stretch;justify-content:flex-end;border-radius:0!important;border-top:var(--commons-divider-border);margin-top:auto;padding:var(--spacings-XXS) var(--spacings-XS)}.lu-multiselect-panel-form{display:flex;gap:var(--spacings-XS)}@media not all and (min-width: 50em){.lu-multiselect-expandbutton{display:none}}.lu-multiselect-emptystate{margin:auto;text-align:center;padding:var(--spacings-S);color:var(--palettes-grey-600)}\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: "pipe", type: LuIsOptionSelectedPipe, name: "luIsOptionSelected" }, { 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"] }, { kind: "directive", type: ɵLuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue"] }, { kind: "directive", type: ɵLuMultiSelectSelectedChipDirective, selector: "[luMultiSelectSelectedChip]", inputs: ["luMultiSelectSelectedChip"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
128
+ }
129
+ export { LuMultiSelectPanelComponent };
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuMultiSelectPanelComponent, decorators: [{
131
+ type: Component,
132
+ args: [{ selector: 'lu-select-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [A11yModule, AsyncPipe, FormsModule, LuIsOptionSelectedPipe, NgIf, NgFor, ɵLuOptionComponent, ɵLuOptionOutletDirective, ɵLuMultiSelectSelectedChipDirective, NgTemplateOutlet], template: "<!-- TODO : il faudrait remplacer la classe is-expanded par un attribut aria-expanded=\"true\"-->\r\n<ng-template #searchInputTpl>\r\n\t<label class=\"panel-search textfield mod-search mod-outlined lu-multiselect-search\">\r\n\t\t<input\r\n\t\t\t#searchInput\r\n\t\t\tclass=\"textfield-input\"\r\n\t\t\t[(ngModel)]=\"search\"\r\n\t\t\t(ngModelChange)=\"updateClue($event)\"\r\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\r\n\t\t/>\r\n\t\t<span class=\"u-mask textfield-label\">{{ intl.search }}</span>\r\n\t</label>\r\n</ng-template>\r\n\r\n<div\r\n\tclass=\"lu-picker-panel lu-option-picker-panel lu-multiselect-panel mod-multiple\"\r\n\trole=\"dialog\"\r\n\tcdkTrapFocus\r\n\t*ngIf=\"{ options: options$ | async } as ctx\"\r\n\t[cdkTrapFocusAutoCapture]=\"true\"\r\n\t[class.is-expanded]=\"isExpanded\"\r\n\t[attr.aria-expanded]=\"isExpanded ? 'true' : undefined\"\r\n>\r\n\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && !isExpanded\">\r\n\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\r\n\t\t<!--\t\t<button class=\"button mod-text mod-icon lu-multiselect-expandbutton\" type=\"button\" (click)=\"toggleExpansion()\">-->\r\n\t\t<!--\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon\" [class.icon-fullscreen]=\"!isExpanded\" [class.icon-fullscreenExit]=\"isExpanded\"></span>-->\r\n\t\t<!--\t\t\t{{ isExpanded ? intl.reduce : intl.expand }}-->\r\n\t\t<!--\t\t</button>-->\r\n\t</div>\r\n\t<div class=\"lu-multiselect-panel-columns\">\r\n\t\t<div class=\"lu-multiselect-panel-columns-col1\" (keydown)=\"onLeftColumnKeydown($event)\">\r\n\t\t\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && isExpanded\">\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\r\n\t\t\t</div>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"lu-picker-content lu-multiselect-panel-columns-col1-content\"\r\n\t\t\t\t[class.is-loading]=\"loading$ | async\"\r\n\t\t\t\ttabindex=\"0\"\r\n\t\t\t\tcdkFocusInitial\r\n\t\t\t\trole=\"list\"\r\n\t\t\t\taria-multiselectable=\"true\"\r\n\t\t\t\t(scroll)=\"onScroll($event)\"\r\n\t\t\t>\r\n\t\t\t\t<ng-container *ngIf=\"searchable\">\r\n\t\t\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\r\n\t\t\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\r\n\t\t\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.nativeElement.focus()\">{{ intl.clearSearch }}</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t<!--\t\t\t\t<ng-container *ngIf=\"canSelectAll\">-->\r\n\t\t\t\t<!--\t\t\t\t\t<label class=\"checkbox lu-multiselect-selectall\" role=\"option\" [for]=\"selectId + '-select-all'\">-->\r\n\t\t\t\t<!--\t\t\t\t\t\t<input-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\tclass=\"checkbox-input\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\ttype=\"checkbox\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\t[class.is-incomplete]=\"(areAllOptionsSelected$ | async) !== true && selectedOptions.length\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\t[id]=\"selectId + '-select-all'\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\t[ngModel]=\"(areAllOptionsSelected$ | async) === true || !!selectedOptions.length\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\t(ngModelChange)=\"toggleAll($event)\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t/>-->\r\n\t\t\t\t<!--\t\t\t\t\t\t<span class=\"checkbox-label\">{{ intl.selectAll }}</span>-->\r\n\t\t\t\t<!--\t\t\t\t\t</label>-->\r\n\t\t\t\t<!--\t\t\t\t</ng-container>-->\r\n\r\n\t\t\t\t<div class=\"lu-picker-content-option\">\r\n\t\t\t\t\t<lu-select-option\r\n\t\t\t\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\r\n\t\t\t\t\t\t[option]=\"option\"\r\n\t\t\t\t\t\t[optionTpl]=\"optionTpl\"\r\n\t\t\t\t\t\t[optionIndex]=\"index\"\r\n\t\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'nearest' }\"\r\n\t\t\t\t\t\t[isSelected]=\"option | luIsOptionSelected:optionComparer:selectedOptions\"\r\n\t\t\t\t\t\t(click)=\"toggleOption(option)\"\r\n\t\t\t\t\t></lu-select-option>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"lu-multiselect-panel-columns-col2\" *ngIf=\"isExpanded\">\r\n\t\t\t<div class=\"lu-multiselect-emptystate\" *ngIf=\"!selectedOptions.length\">{{ intl.emptySelection }}</div>\r\n\t\t\t<div class=\"lu-multiselect-chips\" role=\"listbox\" tabindex=\"0\" *ngIf=\"selectedOptions.length\" (keydown)=\"onRightColumnKeydown($event)\">\r\n\t\t\t\t<div role=\"option\" class=\"chip lu-multiselect-chip\" *ngFor=\"let option of selectedOptions\" [luMultiSelectSelectedChip]=\"option\">\r\n\t\t\t\t\t<ng-container *luOptionOutlet=\"optionTpl; value: option\"></ng-container>\r\n\t\t\t\t\t<button type=\"button\" class=\"chip-kill\" tabindex=\"-1\" (click)=\"onChipKillClick(option)\"></button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<div *ngIf=\"selectedOptions.length\" class=\"lu-multiselect-panel-columns-col2-footer\">\r\n\t\t\t\t<button class=\"button mod-text\" type=\"button\" (click)=\"clear()\">{{ intl.clear }}</button>\r\n\t\t\t</div>\r\n\t\t</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}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}.lu-multiselect-panel{display:flex;flex-direction:column;width:100%;border-radius:var(--commons-borderRadius-M);background-color:var(--colors-white-color);box-shadow:var(--commons-boxShadow-M);transition-property:width,min-width,margin-top,margin-left;transition-duration:var(--commons-animations-durations-fast);transition-timing-function:ease-in}.lu-multiselect-panel-form{padding:var(--spacings-XS);z-index:1}.lu-multiselect-panel-columns{display:flex;gap:var(--spacings-XS);padding:0;width:100%;transition:padding var(--commons-animations-durations-standard) ease}.is-expanded .lu-multiselect-panel-columns{padding:var(--spacings-XS)}[class*=lu-multiselect-panel-columns-col]{display:flex;flex-basis:100%;flex-direction:column}.is-expanded [class*=lu-multiselect-panel-columns-col]{border-radius:var(--commons-borderRadius-M)}.lu-multiselect-panel-columns-col2{align-items:flex-start;height:var(--components-picker-max-height);background-color:var(--palettes-grey-25);min-width:18rem}.is-expanded .lu-multiselect-panel-columns-col1{border:var(--commons-divider-width) solid var(--palettes-grey-200)}.lu-multiselect-panel-columns-col1-content{box-shadow:none;animation:none;padding:0;margin:0 var(--spacings-XS) var(--spacings-XS)}.lu-multiselect-panel-columns-col1-content,.lu-multiselect-chips{scroll-snap-type:y proximity;outline:none}.lu-multiselect-panel-columns-col1-content>*,.lu-multiselect-chips>*{scroll-snap-align:center}.lu-multiselect-panel-columns-col1-content:focus-visible,.lu-multiselect-chips:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px}.lu-multiselect-search{flex-grow:1}.lu-multiselect-selectall{padding:var(--spacings-XS);font-weight:600;border-radius:var(--commons-borderRadius-M);margin-bottom:var(--spacings-XXS)}.lu-multiselect-selectall:hover,.lu-multiselect-selectall:focus-within{background-color:var(--palettes-grey-25)}.lu-multiselect-chips{overflow-y:auto;display:flex;max-height:18.5rem;flex-grow:1;flex-direction:column;align-items:flex-start;align-self:stretch;gap:var(--spacings-XXS);padding:var(--spacings-XS);border-top-left-radius:var(--commons-borderRadius-M);border-top-right-radius:var(--commons-borderRadius-M)}.lu-multiselect-panel-columns-col2-footer{display:flex;flex:0;align-items:flex-end;align-self:stretch;justify-content:flex-end;border-radius:0!important;border-top:var(--commons-divider-border);margin-top:auto;padding:var(--spacings-XXS) var(--spacings-XS)}.lu-multiselect-panel-form{display:flex;gap:var(--spacings-XS)}@media not all and (min-width: 50em){.lu-multiselect-expandbutton{display:none}}.lu-multiselect-emptystate{margin:auto;text-align:center;padding:var(--spacings-S);color:var(--palettes-grey-600)}\n"] }]
133
+ }], propDecorators: { searchInput: [{
134
+ type: ViewChild,
135
+ args: ['searchInput']
136
+ }], optionsQL: [{
137
+ type: ViewChildren,
138
+ args: [ɵLuOptionComponent]
139
+ }], selectedChipsQL: [{
140
+ type: ViewChildren,
141
+ args: [ɵLuMultiSelectSelectedChipDirective]
142
+ }], onKeyDown: [{
143
+ type: HostListener,
144
+ args: ['keydown', ['$event']]
145
+ }] } });
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvbXVsdGktc2VsZWN0L3BhbmVsL3BhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL211bHRpLXNlbGVjdC9wYW5lbC9wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0UsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hKLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQTJCLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1DQUFtQyxF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QUMvQjthQUNBLFNBQVMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVTLHlCQUF5QjtRQUNsQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDcEcsQ0FBQzs4R0F2SlcsMkJBQTJCO2tHQUEzQiwyQkFBMkIsK1BBbUJ6QixrQkFBa0IscUVBR2xCLG1DQUFtQyxnREMzQ2xELHErSkE4RkEsdzhHRDNFVyxVQUFVLHFMQUFFLFNBQVMsNkNBQUUsV0FBVywwbUJBQUUsc0JBQXNCLDJEQUFFLElBQUksNkZBQUUsS0FBSyxtSEFBRSxrQkFBa0Isb0pBQUUsd0JBQXdCLGdIQUFFLG1DQUFtQywrR0FBRSxnQkFBZ0I7O1NBRTFLLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQVJ2QyxTQUFTOytCQUNDLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUsbUNBQW1DLEVBQUUsZ0JBQWdCLENBQUM7OEJBbUJ2TCxXQUFXO3NCQURWLFNBQVM7dUJBQUMsYUFBYTtnQkFHVSxTQUFTO3NCQUExQyxZQUFZO3VCQUFDLGtCQUFrQjtnQkFHbUIsZUFBZTtzQkFBakUsWUFBWTt1QkFBQyxtQ0FBbUM7Z0JBdUNqRCxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQTExeU1vZHVsZSwgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XHJcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3IsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgZ2V0SW50bCB9IGZyb20gJ0BsdWNjYS1mcm9udC9uZy9jb3JlJztcclxuaW1wb3J0IHsgU0VMRUNUX0lELCDJtUx1T3B0aW9uQ29tcG9uZW50LCDJtUx1T3B0aW9uT3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnQGx1Y2NhLWZyb250L25nL2NvcmUtc2VsZWN0JztcclxuaW1wb3J0IHsgYXN5bmNTY2hlZHVsZXIsIGZpbHRlciwgbWFwLCBvYnNlcnZlT24sIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMdU11bHRpU2VsZWN0UGFuZWxSZWYgfSBmcm9tICcuLi9pbnB1dC9wYW5lbC5tb2RlbCc7XHJcbmltcG9ydCB7IElMdU11bHRpU2VsZWN0UGFuZWxEYXRhLCBNVUxUSV9TRUxFQ1RfUEFORUxfREFUQSB9IGZyb20gJy4uL3NlbGVjdC5tb2RlbCc7XHJcbmltcG9ydCB7IExVX01VTFRJX1NFTEVDVF9UUkFOU0xBVElPTlMgfSBmcm9tICcuLi9zZWxlY3QudHJhbnNsYXRlJztcclxuaW1wb3J0IHsgTHVJc09wdGlvblNlbGVjdGVkUGlwZSB9IGZyb20gJy4vb3B0aW9uLXNlbGVjdGVkLnBpcGUnO1xyXG5pbXBvcnQgeyDJtUx1TXVsdGlTZWxlY3RTZWxlY3RlZENoaXBEaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdGVkLWNoaXAuZGlyZWN0aXZlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbHUtc2VsZWN0LXBhbmVsJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL3BhbmVsLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbQTExeU1vZHVsZSwgQXN5bmNQaXBlLCBGb3Jtc01vZHVsZSwgTHVJc09wdGlvblNlbGVjdGVkUGlwZSwgTmdJZiwgTmdGb3IsIMm1THVPcHRpb25Db21wb25lbnQsIMm1THVPcHRpb25PdXRsZXREaXJlY3RpdmUsIMm1THVNdWx0aVNlbGVjdFNlbGVjdGVkQ2hpcERpcmVjdGl2ZSwgTmdUZW1wbGF0ZU91dGxldF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMdU11bHRpU2VsZWN0UGFuZWxDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHRwcm90ZWN0ZWQgcGFuZWxEYXRhID0gaW5qZWN0PElMdU11bHRpU2VsZWN0UGFuZWxEYXRhPFQ+PihNVUxUSV9TRUxFQ1RfUEFORUxfREFUQSk7XHJcblx0cGFuZWxSZWYgPSBpbmplY3Q8THVNdWx0aVNlbGVjdFBhbmVsUmVmPFQ+PihMdU11bHRpU2VsZWN0UGFuZWxSZWYpO1xyXG5cdHNlbGVjdElkID0gaW5qZWN0KFNFTEVDVF9JRCk7XHJcblx0aW50bCA9IGdldEludGwoTFVfTVVMVElfU0VMRUNUX1RSQU5TTEFUSU9OUyk7XHJcblx0aXNFeHBhbmRlZCA9IHRoaXMucGFuZWxEYXRhLmV4cGFuZGVkO1xyXG5cclxuXHRvcHRpb25zJCA9IHRoaXMucGFuZWxEYXRhLm9wdGlvbnMkO1xyXG5cdGxvYWRpbmckID0gdGhpcy5wYW5lbERhdGEubG9hZGluZyQ7XHJcblx0YXJlQWxsT3B0aW9uc1NlbGVjdGVkJCA9IHRoaXMucGFuZWxEYXRhLmFyZUFsbE9wdGlvbnNTZWxlY3RlZCQ7XHJcblx0Y2FuU2VsZWN0QWxsID0gZmFsc2U7IC8vIFRPRE8gY29ubmVjdCB0byBwYW5lbCBvcHRpb25zIHdoZW4gd2UnbGwgYmUgb2sgb24gZGVzaWduaW5nIHNlbGVjdCBhbGxcclxuXHRvcHRpb25Db21wYXJlciA9IHRoaXMucGFuZWxEYXRhLm9wdGlvbkNvbXBhcmVyO1xyXG5cdHNlbGVjdGVkT3B0aW9uczogVFtdID0gdGhpcy5wYW5lbERhdGEuaW5pdGlhbFZhbHVlIHx8IFtdO1xyXG5cdG9wdGlvblRwbCA9IHRoaXMucGFuZWxEYXRhLm9wdGlvblRwbDtcclxuXHRzZWFyY2hhYmxlID0gdGhpcy5wYW5lbERhdGEuc2VhcmNoYWJsZTtcclxuXHJcblx0QFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnKVxyXG5cdHNlYXJjaElucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkO1xyXG5cclxuXHRAVmlld0NoaWxkcmVuKMm1THVPcHRpb25Db21wb25lbnQpIG9wdGlvbnNRTDogUXVlcnlMaXN0PMm1THVPcHRpb25Db21wb25lbnQ8VD4+O1xyXG5cdHByaXZhdGUgbGVmdENvbHVtbktleU1hbmFnZXI6IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPMm1THVPcHRpb25Db21wb25lbnQ8VD4+O1xyXG5cclxuXHRAVmlld0NoaWxkcmVuKMm1THVNdWx0aVNlbGVjdFNlbGVjdGVkQ2hpcERpcmVjdGl2ZSkgc2VsZWN0ZWRDaGlwc1FMOiBRdWVyeUxpc3Q8ybVMdU11bHRpU2VsZWN0U2VsZWN0ZWRDaGlwRGlyZWN0aXZlPFQ+PjtcclxuXHRwcml2YXRlIHJpZ2h0Q29sdW1uS2V5TWFuYWdlcjogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8ybVMdU11bHRpU2VsZWN0U2VsZWN0ZWRDaGlwRGlyZWN0aXZlPFQ+PjtcclxuXHJcblx0c2VhcmNoOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcblx0b25TY3JvbGwoZXZ0OiBFdmVudCk6IHZvaWQge1xyXG5cdFx0aWYgKCEoZXZ0LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGV2dC50YXJnZXQuc2Nyb2xsVG9wID09PSAwKSB7XHJcblx0XHRcdHRoaXMucGFuZWxSZWYucHJldmlvdXNQYWdlLmVtaXQoKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoZXZ0LnRhcmdldC5zY3JvbGxIZWlnaHQgLSBldnQudGFyZ2V0LnNjcm9sbFRvcCAtIGV2dC50YXJnZXQuY2xpZW50SGVpZ2h0IDwgMSkge1xyXG5cdFx0XHR0aGlzLnBhbmVsUmVmLm5leHRQYWdlLmVtaXQoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy5vcHRpb25zUUwpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuaW5pdExlZnRDb2x1bW5LZXlNYW5hZ2VyKCk7XHJcblx0XHR0aGlzLmluaXRSaWdodENvbHVtbktleU1hbmFnZXIoKTtcclxuXHJcblx0XHRpZiAodGhpcy5zZWFyY2hJbnB1dCkge1xyXG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5pc0V4cGFuZGVkKSB7XHJcblx0XHRcdHRoaXMucGFuZWxSZWYudXNlRXhwYW5kZWRQb3NpdGlvbigpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5wYW5lbFJlZi51c2VEZWZhdWx0UG9zaXRpb24oKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxyXG5cdG9uS2V5RG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuXHRcdGlmICgkZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5wYW5lbFJlZi5jbG9zZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b25MZWZ0Q29sdW1uS2V5ZG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuXHRcdGlmICgkZXZlbnQuY29kZSA9PT0gJ1NwYWNlJyB8fCAkZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xyXG5cdFx0XHR0aGlzLnRvZ2dsZU9wdGlvbih0aGlzLmxlZnRDb2x1bW5LZXlNYW5hZ2VyPy5hY3RpdmVJdGVtPy5vcHRpb24pO1xyXG5cdFx0XHQkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMubGVmdENvbHVtbktleU1hbmFnZXI/Lm9uS2V5ZG93bigkZXZlbnQpO1xyXG5cdH1cclxuXHJcblx0b25SaWdodENvbHVtbktleWRvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcblx0XHRjb25zdCBvcHRpb24gPSB0aGlzLnJpZ2h0Q29sdW1uS2V5TWFuYWdlcj8uYWN0aXZlSXRlbT8ub3B0aW9uO1xyXG5cclxuXHRcdGlmIChvcHRpb24gJiYgKCRldmVudC5jb2RlID09PSAnU3BhY2UnIHx8ICRldmVudC5jb2RlID09PSAnRW50ZXInKSkge1xyXG5cdFx0XHR0aGlzLm9uQ2hpcEtpbGxDbGljayhvcHRpb24pO1xyXG5cdFx0XHQkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMucmlnaHRDb2x1bW5LZXlNYW5hZ2VyPy5vbktleWRvd24oJGV2ZW50KTtcclxuXHR9XHJcblxyXG5cdC8vIHRvZ2dsZUFsbChzaG91bGRTZWxlY3RBbGw6IGJvb2xlYW4pOiB2b2lkIHtcclxuXHQvLyBcdGlmIChzaG91bGRTZWxlY3RBbGwpIHtcclxuXHQvLyBcdFx0dGhpcy5wYW5lbFJlZi5zZWxlY3RBbGwuZW1pdCgpO1xyXG5cdC8vIFx0fSBlbHNlIHtcclxuXHQvLyBcdFx0dGhpcy5jbGVhcigpO1xyXG5cdC8vIFx0fVxyXG5cdC8vIH1cclxuXHJcblx0dXBkYXRlQ2x1ZShjbHVlOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XHJcblx0XHR0aGlzLnNlYXJjaCA9IGNsdWU7XHJcblx0XHR0aGlzLnBhbmVsUmVmLmNsdWVDaGFuZ2VkLmVtaXQoY2x1ZSk7XHJcblxyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB0aGlzLmxlZnRDb2x1bW5LZXlNYW5hZ2VyLnNldEZpcnN0SXRlbUFjdGl2ZSgpKTtcclxuXHR9XHJcblxyXG5cdHRvZ2dsZU9wdGlvbihvcHRpb246IFQpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMuZmluZCgobykgPT4gdGhpcy5vcHRpb25Db21wYXJlcihvLCBvcHRpb24pKTtcclxuXHRcdHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gc2VsZWN0ZWRPcHRpb24gPyB0aGlzLnNlbGVjdGVkT3B0aW9ucy5maWx0ZXIoKG8pID0+IG8gIT09IHNlbGVjdGVkT3B0aW9uKSA6IFsuLi50aGlzLnNlbGVjdGVkT3B0aW9ucywgb3B0aW9uXTtcclxuXHRcdHRoaXMucGFuZWxSZWYuZW1pdFZhbHVlKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcclxuXHRcdHRoaXMubGVmdENvbHVtbktleU1hbmFnZXI/LnNldEFjdGl2ZUl0ZW0odGhpcy5vcHRpb25zUUwudG9BcnJheSgpLmZpbmRJbmRleCgobykgPT4gby5vcHRpb24gPT09IG9wdGlvbikpO1xyXG5cdH1cclxuXHJcblx0b25DaGlwS2lsbENsaWNrKG9wdGlvbjogVCk6IHZvaWQge1xyXG5cdFx0Y29uc3Qgb3B0aW9uVG9VbnNlbGVjdEluZGV4ID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMuZmluZEluZGV4KChvKSA9PiB0aGlzLm9wdGlvbkNvbXBhcmVyKG8sIG9wdGlvbikpO1xyXG5cdFx0dGhpcy5zZWxlY3RlZE9wdGlvbnMgPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5maWx0ZXIoKF8sIGluZGV4KSA9PiBpbmRleCAhPT0gb3B0aW9uVG9VbnNlbGVjdEluZGV4KTtcclxuXHRcdHRoaXMucGFuZWxSZWYuZW1pdFZhbHVlKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcclxuXHJcblx0XHRpZiAodGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoICYmIHRoaXMucmlnaHRDb2x1bW5LZXlNYW5hZ2VyKSB7XHJcblx0XHRcdG9wdGlvblRvVW5zZWxlY3RJbmRleCA+PSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPyB0aGlzLnJpZ2h0Q29sdW1uS2V5TWFuYWdlci5zZXRQcmV2aW91c0l0ZW1BY3RpdmUoKSA6IHRoaXMucmlnaHRDb2x1bW5LZXlNYW5hZ2VyLnNldE5leHRJdGVtQWN0aXZlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjbGVhcigpOiB2b2lkIHtcclxuXHRcdHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gW107XHJcblx0XHR0aGlzLnBhbmVsUmVmLmVtaXRWYWx1ZSh0aGlzLnNlbGVjdGVkT3B0aW9ucyk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgaW5pdExlZnRDb2x1bW5LZXlNYW5hZ2VyKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5sZWZ0Q29sdW1uS2V5TWFuYWdlciA9IG5ldyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcih0aGlzLm9wdGlvbnNRTCkud2l0aEhvbWVBbmRFbmQoKTtcclxuXHJcblx0XHRpZiAodGhpcy5zZWxlY3RlZE9wdGlvbnMpIHtcclxuXHRcdFx0dGhpcy5vcHRpb25zJFxyXG5cdFx0XHRcdD8ucGlwZShcclxuXHRcdFx0XHRcdG9ic2VydmVPbihhc3luY1NjaGVkdWxlciksXHJcblx0XHRcdFx0XHRtYXAoKG9wdGlvbnMpID0+ICh0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPyBvcHRpb25zLmZpbmRJbmRleCgobykgPT4gdGhpcy5vcHRpb25Db21wYXJlcihvLCB0aGlzLnNlbGVjdGVkT3B0aW9uc1swXSkpIDogLTEpKSxcclxuXHRcdFx0XHRcdGZpbHRlcigoaW5kZXgpID0+IGluZGV4ICE9PSAtMSksXHJcblx0XHRcdFx0XHR0YWtlKDEpLFxyXG5cdFx0XHRcdFx0dGFrZVVudGlsKHRoaXMucGFuZWxSZWYuY2xvc2VkKSxcclxuXHRcdFx0XHQpXHJcblx0XHRcdFx0LnN1YnNjcmliZSgoc2VsZWN0ZWRJbmRleCkgPT4gdGhpcy5sZWZ0Q29sdW1uS2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHNlbGVjdGVkSW5kZXgpKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmxlZnRDb2x1bW5LZXlNYW5hZ2VyLmNoYW5nZVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRtYXAoKCkgPT4gdGhpcy5sZWZ0Q29sdW1uS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pZCksXHJcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMucGFuZWxSZWYuY2xvc2VkKSxcclxuXHRcdFx0KVxyXG5cdFx0XHQuc3Vic2NyaWJlKChhY3RpdmVEZXNjZW5kYW50KSA9PiB0aGlzLnBhbmVsUmVmLmFjdGl2ZU9wdGlvbklkQ2hhbmdlZC5lbWl0KGFjdGl2ZURlc2NlbmRhbnQpKTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBpbml0UmlnaHRDb2x1bW5LZXlNYW5hZ2VyKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5yaWdodENvbHVtbktleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIodGhpcy5zZWxlY3RlZENoaXBzUUwpLndpdGhIb21lQW5kRW5kKCk7XHJcblx0fVxyXG59XHJcbiIsIjwhLS0gVE9ETyA6IGlsIGZhdWRyYWl0IHJlbXBsYWNlciBsYSBjbGFzc2UgaXMtZXhwYW5kZWQgcGFyIHVuIGF0dHJpYnV0IGFyaWEtZXhwYW5kZWQ9XCJ0cnVlXCItLT5cclxuPG5nLXRlbXBsYXRlICNzZWFyY2hJbnB1dFRwbD5cclxuXHQ8bGFiZWwgY2xhc3M9XCJwYW5lbC1zZWFyY2ggdGV4dGZpZWxkIG1vZC1zZWFyY2ggbW9kLW91dGxpbmVkIGx1LW11bHRpc2VsZWN0LXNlYXJjaFwiPlxyXG5cdFx0PGlucHV0XHJcblx0XHRcdCNzZWFyY2hJbnB1dFxyXG5cdFx0XHRjbGFzcz1cInRleHRmaWVsZC1pbnB1dFwiXHJcblx0XHRcdFsobmdNb2RlbCldPVwic2VhcmNoXCJcclxuXHRcdFx0KG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlQ2x1ZSgkZXZlbnQpXCJcclxuXHRcdFx0W25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuXHRcdC8+XHJcblx0XHQ8c3BhbiBjbGFzcz1cInUtbWFzayB0ZXh0ZmllbGQtbGFiZWxcIj57eyBpbnRsLnNlYXJjaCB9fTwvc3Bhbj5cclxuXHQ8L2xhYmVsPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPGRpdlxyXG5cdGNsYXNzPVwibHUtcGlja2VyLXBhbmVsIGx1LW9wdGlvbi1waWNrZXItcGFuZWwgbHUtbXVsdGlzZWxlY3QtcGFuZWwgbW9kLW11bHRpcGxlXCJcclxuXHRyb2xlPVwiZGlhbG9nXCJcclxuXHRjZGtUcmFwRm9jdXNcclxuXHQqbmdJZj1cInsgb3B0aW9uczogb3B0aW9ucyQgfCBhc3luYyB9IGFzIGN0eFwiXHJcblx0W2Nka1RyYXBGb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxyXG5cdFtjbGFzcy5pcy1leHBhbmRlZF09XCJpc0V4cGFuZGVkXCJcclxuXHRbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRXhwYW5kZWQgPyAndHJ1ZScgOiB1bmRlZmluZWRcIlxyXG4+XHJcblx0PGRpdiBjbGFzcz1cImx1LW11bHRpc2VsZWN0LXBhbmVsLWZvcm1cIiAqbmdJZj1cInNlYXJjaGFibGUgJiYgIWlzRXhwYW5kZWRcIj5cclxuXHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWFyY2hJbnB1dFRwbFwiPjwvbmctY29udGFpbmVyPlxyXG5cdFx0PCEtLVx0XHQ8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIG1vZC10ZXh0IG1vZC1pY29uIGx1LW11bHRpc2VsZWN0LWV4cGFuZGJ1dHRvblwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwidG9nZ2xlRXhwYW5zaW9uKClcIj4tLT5cclxuXHRcdDwhLS1cdFx0XHQ8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImx1Y2NhLWljb25cIiBbY2xhc3MuaWNvbi1mdWxsc2NyZWVuXT1cIiFpc0V4cGFuZGVkXCIgW2NsYXNzLmljb24tZnVsbHNjcmVlbkV4aXRdPVwiaXNFeHBhbmRlZFwiPjwvc3Bhbj4tLT5cclxuXHRcdDwhLS1cdFx0XHR7eyBpc0V4cGFuZGVkID8gaW50bC5yZWR1Y2UgOiBpbnRsLmV4cGFuZCB9fS0tPlxyXG5cdFx0PCEtLVx0XHQ8L2J1dHRvbj4tLT5cclxuXHQ8L2Rpdj5cclxuXHQ8ZGl2IGNsYXNzPVwibHUtbXVsdGlzZWxlY3QtcGFuZWwtY29sdW1uc1wiPlxyXG5cdFx0PGRpdiBjbGFzcz1cImx1LW11bHRpc2VsZWN0LXBhbmVsLWNvbHVtbnMtY29sMVwiIChrZXlkb3duKT1cIm9uTGVmdENvbHVtbktleWRvd24oJGV2ZW50KVwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwibHUtbXVsdGlzZWxlY3QtcGFuZWwtZm9ybVwiICpuZ0lmPVwic2VhcmNoYWJsZSAmJiBpc0V4cGFuZGVkXCI+XHJcblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlYXJjaElucHV0VHBsXCI+PC9uZy1jb250YWluZXI+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8ZGl2XHJcblx0XHRcdFx0Y2xhc3M9XCJsdS1waWNrZXItY29udGVudCBsdS1tdWx0aXNlbGVjdC1wYW5lbC1jb2x1bW5zLWNvbDEtY29udGVudFwiXHJcblx0XHRcdFx0W2NsYXNzLmlzLWxvYWRpbmddPVwibG9hZGluZyQgfCBhc3luY1wiXHJcblx0XHRcdFx0dGFiaW5kZXg9XCIwXCJcclxuXHRcdFx0XHRjZGtGb2N1c0luaXRpYWxcclxuXHRcdFx0XHRyb2xlPVwibGlzdFwiXHJcblx0XHRcdFx0YXJpYS1tdWx0aXNlbGVjdGFibGU9XCJ0cnVlXCJcclxuXHRcdFx0XHQoc2Nyb2xsKT1cIm9uU2Nyb2xsKCRldmVudClcIlxyXG5cdFx0XHQ+XHJcblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInNlYXJjaGFibGVcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJvcHRpb25QbGFjZWhvbGRlclwiICpuZ0lmPVwic2VhcmNoICYmICFjdHgub3B0aW9ucz8ubGVuZ3RoXCI+XHJcblx0XHRcdFx0XHRcdDxwIGNsYXNzPVwib3B0aW9uUGxhY2Vob2xkZXItY29udGVudCB1LW1hcmdpbkJvdHRvbTBcIj57eyBpbnRsLmVtcHR5UmVzdWx0cyB9fTwvcD5cclxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJsaW5rXCIgKGNsaWNrKT1cInVwZGF0ZUNsdWUobnVsbCk7IHNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVwiPnt7IGludGwuY2xlYXJTZWFyY2ggfX08L2J1dHRvbj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cclxuXHRcdFx0XHQ8IS0tXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiY2FuU2VsZWN0QWxsXCI+LS0+XHJcblx0XHRcdFx0PCEtLVx0XHRcdFx0XHQ8bGFiZWwgY2xhc3M9XCJjaGVja2JveCBsdS1tdWx0aXNlbGVjdC1zZWxlY3RhbGxcIiByb2xlPVwib3B0aW9uXCIgW2Zvcl09XCJzZWxlY3RJZCArICctc2VsZWN0LWFsbCdcIj4tLT5cclxuXHRcdFx0XHQ8IS0tXHRcdFx0XHRcdFx0PGlucHV0LS0+XHJcblx0XHRcdFx0PCEtLVx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJjaGVja2JveC1pbnB1dFwiLS0+XHJcblx0XHRcdFx0PCEtLVx0XHRcdFx0XHRcdFx0dHlwZT1cImNoZWNrYm94XCItLT5cclxuXHRcdFx0XHQ8IS0tXHRcdFx0XHRcdFx0XHRbY2xhc3MuaXMtaW5jb21wbGV0ZV09XCIoYXJlQWxsT3B0aW9uc1NlbGVjdGVkJCB8IGFzeW5jKSAhPT0gdHJ1ZSAmJiBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoXCItLT5cclxuXHRcdFx0XHQ8IS0tXHRcdFx0XHRcdFx0XHRbaWRdPVwic2VsZWN0SWQgKyAnLXNlbGVjdC1hbGwnXCItLT5cclxuXHRcdFx0XHQ8IS0tXHRcdFx0XHRcdFx0XHRbbmdNb2RlbF09XCIoYXJlQWxsT3B0aW9uc1NlbGVjdGVkJCB8IGFzeW5jKSA9PT0gdHJ1ZSB8fCAhIXNlbGVjdGVkT3B0aW9ucy5sZW5ndGhcIi0tPlxyXG5cdFx0XHRcdDwhLS1cdFx0XHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cInRvZ2dsZUFsbCgkZXZlbnQpXCItLT5cclxuXHRcdFx0XHQ8IS0tXHRcdFx0XHRcdFx0Lz4tLT5cclxuXHRcdFx0XHQ8IS0tXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJjaGVja2JveC1sYWJlbFwiPnt7IGludGwuc2VsZWN0QWxsIH19PC9zcGFuPi0tPlxyXG5cdFx0XHRcdDwhLS1cdFx0XHRcdFx0PC9sYWJlbD4tLT5cclxuXHRcdFx0XHQ8IS0tXHRcdFx0XHQ8L25nLWNvbnRhaW5lcj4tLT5cclxuXHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cImx1LXBpY2tlci1jb250ZW50LW9wdGlvblwiPlxyXG5cdFx0XHRcdFx0PGx1LXNlbGVjdC1vcHRpb25cclxuXHRcdFx0XHRcdFx0Km5nRm9yPVwibGV0IG9wdGlvbiBvZiBjdHgub3B0aW9uczsgbGV0IGluZGV4ID0gaW5kZXhcIlxyXG5cdFx0XHRcdFx0XHRbb3B0aW9uXT1cIm9wdGlvblwiXHJcblx0XHRcdFx0XHRcdFtvcHRpb25UcGxdPVwib3B0aW9uVHBsXCJcclxuXHRcdFx0XHRcdFx0W29wdGlvbkluZGV4XT1cImluZGV4XCJcclxuXHRcdFx0XHRcdFx0W3Njcm9sbEludG9WaWV3T3B0aW9uc109XCJ7IGJsb2NrOiAnbmVhcmVzdCcgfVwiXHJcblx0XHRcdFx0XHRcdFtpc1NlbGVjdGVkXT1cIm9wdGlvbiB8IGx1SXNPcHRpb25TZWxlY3RlZDpvcHRpb25Db21wYXJlcjpzZWxlY3RlZE9wdGlvbnNcIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwidG9nZ2xlT3B0aW9uKG9wdGlvbilcIlxyXG5cdFx0XHRcdFx0PjwvbHUtc2VsZWN0LW9wdGlvbj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHJcblx0XHRcdFx0PGRpdiAqbmdJZj1cImxvYWRpbmckIHwgYXN5bmNcIiBjbGFzcz1cInBhbmVsLWxvYWRpbmcgbG9hZGluZyBsdS1waWNrZXItbG9hZGluZ1wiPjwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PGRpdiBjbGFzcz1cImx1LW11bHRpc2VsZWN0LXBhbmVsLWNvbHVtbnMtY29sMlwiICpuZ0lmPVwiaXNFeHBhbmRlZFwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwibHUtbXVsdGlzZWxlY3QtZW1wdHlzdGF0ZVwiICpuZ0lmPVwiIXNlbGVjdGVkT3B0aW9ucy5sZW5ndGhcIj57eyBpbnRsLmVtcHR5U2VsZWN0aW9uIH19PC9kaXY+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJsdS1tdWx0aXNlbGVjdC1jaGlwc1wiIHJvbGU9XCJsaXN0Ym94XCIgdGFiaW5kZXg9XCIwXCIgKm5nSWY9XCJzZWxlY3RlZE9wdGlvbnMubGVuZ3RoXCIgKGtleWRvd24pPVwib25SaWdodENvbHVtbktleWRvd24oJGV2ZW50KVwiPlxyXG5cdFx0XHRcdDxkaXYgcm9sZT1cIm9wdGlvblwiIGNsYXNzPVwiY2hpcCBsdS1tdWx0aXNlbGVjdC1jaGlwXCIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzZWxlY3RlZE9wdGlvbnNcIiBbbHVNdWx0aVNlbGVjdFNlbGVjdGVkQ2hpcF09XCJvcHRpb25cIj5cclxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKmx1T3B0aW9uT3V0bGV0PVwib3B0aW9uVHBsOyB2YWx1ZTogb3B0aW9uXCI+PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNoaXAta2lsbFwiIHRhYmluZGV4PVwiLTFcIiAoY2xpY2spPVwib25DaGlwS2lsbENsaWNrKG9wdGlvbilcIj48L2J1dHRvbj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXYgKm5nSWY9XCJzZWxlY3RlZE9wdGlvbnMubGVuZ3RoXCIgY2xhc3M9XCJsdS1tdWx0aXNlbGVjdC1wYW5lbC1jb2x1bW5zLWNvbDItZm9vdGVyXCI+XHJcblx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBtb2QtdGV4dFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xlYXIoKVwiPnt7IGludGwuY2xlYXIgfX08L2J1dHRvbj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==