@dereekb/dbx-form 9.25.15 → 10.0.0

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 (364) hide show
  1. package/_index.scss +1 -0
  2. package/calendar/lib/calendar.module.d.ts +1 -1
  3. package/calendar/lib/calendar.schedule.selection.cell.component.d.ts +1 -1
  4. package/calendar/lib/calendar.schedule.selection.component.d.ts +4 -4
  5. package/calendar/lib/calendar.schedule.selection.d.ts +1 -1
  6. package/calendar/lib/calendar.schedule.selection.days.component.d.ts +1 -1
  7. package/calendar/lib/calendar.schedule.selection.days.form.component.d.ts +2 -2
  8. package/calendar/lib/calendar.schedule.selection.dialog.button.component.d.ts +1 -6
  9. package/calendar/lib/calendar.schedule.selection.dialog.component.d.ts +1 -11
  10. package/calendar/lib/calendar.schedule.selection.popover.button.component.d.ts +2 -2
  11. package/calendar/lib/calendar.schedule.selection.popover.component.d.ts +1 -1
  12. package/calendar/lib/calendar.schedule.selection.popover.content.component.d.ts +1 -1
  13. package/calendar/lib/calendar.schedule.selection.range.component.d.ts +1 -1
  14. package/calendar/lib/calendar.schedule.selection.store.d.ts +4 -32
  15. package/calendar/lib/calendar.schedule.selection.store.provide.d.ts +1 -1
  16. package/calendar/lib/calendar.schedule.selection.toggle.button.component.d.ts +1 -1
  17. package/calendar/lib/field/schedule/calendar.schedule.field.component.d.ts +2 -8
  18. package/esm2022/calendar/lib/calendar.module.mjs +155 -0
  19. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.cell.component.mjs +10 -10
  20. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.component.mjs +6 -6
  21. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.days.component.mjs +6 -6
  22. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.days.form.component.mjs +6 -6
  23. package/esm2022/calendar/lib/calendar.schedule.selection.dialog.button.component.mjs +36 -0
  24. package/esm2022/calendar/lib/calendar.schedule.selection.dialog.component.mjs +56 -0
  25. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.mjs +1 -1
  26. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.popover.button.component.mjs +6 -6
  27. package/esm2022/calendar/lib/calendar.schedule.selection.popover.component.mjs +38 -0
  28. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.popover.content.component.mjs +6 -6
  29. package/esm2022/calendar/lib/calendar.schedule.selection.range.component.mjs +188 -0
  30. package/esm2022/calendar/lib/calendar.schedule.selection.store.mjs +785 -0
  31. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.store.provide.mjs +7 -7
  32. package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.toggle.button.component.mjs +6 -6
  33. package/esm2022/calendar/lib/field/schedule/calendar.schedule.field.component.mjs +158 -0
  34. package/esm2022/calendar/lib/field/schedule/calendar.schedule.field.mjs +28 -0
  35. package/esm2022/calendar/lib/field/schedule/calendar.schedule.module.mjs +58 -0
  36. package/{esm2020 → esm2022}/lib/form/action/form.action.directive.mjs +4 -4
  37. package/{esm2020 → esm2022}/lib/form/action/form.action.module.mjs +5 -5
  38. package/{esm2020 → esm2022}/lib/form/action/transition/form.action.transition.module.mjs +5 -5
  39. package/{esm2020 → esm2022}/lib/form/action/transition/form.action.transition.safety.directive.mjs +4 -4
  40. package/{esm2020 → esm2022}/lib/form/form.module.mjs +5 -5
  41. package/{esm2020 → esm2022}/lib/form/io/form.changes.directive.mjs +4 -4
  42. package/{esm2020 → esm2022}/lib/form/io/form.input.directive.mjs +4 -4
  43. package/{esm2020 → esm2022}/lib/form/io/form.io.module.mjs +5 -5
  44. package/{esm2020 → esm2022}/lib/form/io/form.loading.directive.mjs +4 -4
  45. package/{esm2020 → esm2022}/lib/form.module.mjs +5 -5
  46. package/{esm2020 → esm2022}/lib/formly/field/checklist/checklist.item.field.component.mjs +9 -9
  47. package/{esm2020 → esm2022}/lib/formly/field/checklist/checklist.item.field.content.default.component.mjs +6 -6
  48. package/esm2022/lib/formly/field/checklist/checklist.item.field.module.mjs +67 -0
  49. package/{esm2020 → esm2022}/lib/formly/field/component/component.field.component.mjs +6 -6
  50. package/esm2022/lib/formly/field/component/component.field.module.mjs +32 -0
  51. package/esm2022/lib/formly/field/field.mjs +97 -0
  52. package/{esm2020 → esm2022}/lib/formly/field/form.field.module.mjs +5 -5
  53. package/{esm2020 → esm2022}/lib/formly/field/selection/list/list.field.component.mjs +4 -4
  54. package/esm2022/lib/formly/field/selection/list/list.field.module.mjs +76 -0
  55. package/esm2022/lib/formly/field/selection/pickable/pickable.chip.field.component.mjs +33 -0
  56. package/{esm2020 → esm2022}/lib/formly/field/selection/pickable/pickable.field.directive.mjs +4 -4
  57. package/esm2022/lib/formly/field/selection/pickable/pickable.field.module.mjs +93 -0
  58. package/esm2022/lib/formly/field/selection/pickable/pickable.list.field.component.mjs +116 -0
  59. package/{esm2020 → esm2022}/lib/formly/field/selection/pickable/pickable.mjs +1 -1
  60. package/esm2022/lib/formly/field/selection/searchable/searchable.chip.field.component.mjs +68 -0
  61. package/esm2022/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.mjs +95 -0
  62. package/esm2022/lib/formly/field/selection/searchable/searchable.field.directive.mjs +278 -0
  63. package/esm2022/lib/formly/field/selection/searchable/searchable.field.module.mjs +91 -0
  64. package/{esm2020 → esm2022}/lib/formly/field/selection/searchable/searchable.text.field.component.mjs +4 -4
  65. package/esm2022/lib/formly/field/selection/selection.field.mjs +39 -0
  66. package/{esm2020 → esm2022}/lib/formly/field/selection/selection.mjs +1 -1
  67. package/{esm2020 → esm2022}/lib/formly/field/selection/selection.module.mjs +5 -5
  68. package/{esm2020 → esm2022}/lib/formly/field/selection/sourceselect/sourceselect.field.component.mjs +4 -4
  69. package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.field.module.mjs +93 -0
  70. package/{esm2020 → esm2022}/lib/formly/field/texteditor/texteditor.field.component.mjs +6 -6
  71. package/esm2022/lib/formly/field/texteditor/texteditor.field.module.mjs +51 -0
  72. package/{esm2020 → esm2022}/lib/formly/field/value/array/array.field.component.mjs +8 -8
  73. package/esm2022/lib/formly/field/value/array/array.field.module.mjs +62 -0
  74. package/esm2022/lib/formly/field/value/boolean/boolean.field.mjs +47 -0
  75. package/{esm2020 → esm2022}/lib/formly/field/value/boolean/boolean.field.module.mjs +5 -5
  76. package/esm2022/lib/formly/field/value/date/date.field.module.mjs +96 -0
  77. package/esm2022/lib/formly/field/value/date/datetime.field.component.mjs +488 -0
  78. package/esm2022/lib/formly/field/value/date/datetime.field.mjs +141 -0
  79. package/{esm2020 → esm2022}/lib/formly/field/value/date/datetime.field.service.mjs +9 -9
  80. package/esm2022/lib/formly/field/value/date/fixeddaterange.field.component.mjs +506 -0
  81. package/{esm2020 → esm2022}/lib/formly/field/value/number/number.field.module.mjs +5 -5
  82. package/esm2022/lib/formly/field/value/phone/phone.field.component.mjs +100 -0
  83. package/esm2022/lib/formly/field/value/phone/phone.field.module.mjs +66 -0
  84. package/{esm2020 → esm2022}/lib/formly/field/value/text/text.field.module.mjs +5 -5
  85. package/{esm2020 → esm2022}/lib/formly/field/value/value.module.mjs +5 -5
  86. package/{esm2020 → esm2022}/lib/formly/field/wrapper/autotouch.wrapper.component.mjs +6 -6
  87. package/{esm2020 → esm2022}/lib/formly/field/wrapper/expandable.wrapper.component.mjs +6 -6
  88. package/{esm2020 → esm2022}/lib/formly/field/wrapper/expandable.wrapper.delegate.mjs +4 -4
  89. package/{esm2020 → esm2022}/lib/formly/field/wrapper/flex.wrapper.component.mjs +6 -6
  90. package/esm2022/lib/formly/field/wrapper/form.wrapper.module.mjs +86 -0
  91. package/{esm2020 → esm2022}/lib/formly/field/wrapper/info.wrapper.component.mjs +7 -7
  92. package/esm2022/lib/formly/field/wrapper/section.wrapper.component.mjs +27 -0
  93. package/{esm2020 → esm2022}/lib/formly/field/wrapper/style.wrapper.component.mjs +7 -7
  94. package/esm2022/lib/formly/field/wrapper/subsection.wrapper.component.mjs +27 -0
  95. package/{esm2020 → esm2022}/lib/formly/field/wrapper/toggle.wrapper.component.mjs +6 -6
  96. package/{esm2020 → esm2022}/lib/formly/field/wrapper/working.wrapper.component.mjs +6 -6
  97. package/esm2022/lib/formly/field/wrapper/wrapper.mjs +73 -0
  98. package/{esm2020 → esm2022}/lib/formly/form/form.form.module.mjs +5 -5
  99. package/{esm2020 → esm2022}/lib/formly/form/search.form.component.mjs +6 -6
  100. package/{esm2020 → esm2022}/lib/formly/formly.context.directive.mjs +4 -4
  101. package/esm2022/lib/formly/formly.context.mjs +100 -0
  102. package/{esm2020 → esm2022}/lib/formly/formly.directive.mjs +16 -16
  103. package/{esm2020 → esm2022}/lib/formly/formly.form.component.mjs +6 -6
  104. package/{esm2020 → esm2022}/lib/formly/formly.module.mjs +16 -16
  105. package/{esm2020 → esm2022}/lib/layout/form.layout.module.mjs +5 -5
  106. package/{esm2020 → esm2022}/lib/layout/form.spacer.component.mjs +6 -6
  107. package/{esm2020 → esm2022}/mapbox/lib/field/latlng/latlng.field.component.mjs +10 -10
  108. package/{esm2020 → esm2022}/mapbox/lib/field/latlng/latlng.field.marker.component.mjs +6 -6
  109. package/esm2022/mapbox/lib/field/latlng/latlng.field.mjs +35 -0
  110. package/esm2022/mapbox/lib/field/latlng/latlng.module.mjs +59 -0
  111. package/{mapbox/esm2020 → esm2022/mapbox}/lib/field/zoom/zoom.field.component.mjs +10 -10
  112. package/esm2022/mapbox/lib/field/zoom/zoom.field.mjs +23 -0
  113. package/esm2022/mapbox/lib/field/zoom/zoom.module.mjs +57 -0
  114. package/{mapbox/esm2020 → esm2022/mapbox}/lib/mapbox.module.mjs +5 -5
  115. package/{fesm2020 → fesm2022}/dereekb-dbx-form-calendar.mjs +188 -228
  116. package/fesm2022/dereekb-dbx-form-calendar.mjs.map +1 -0
  117. package/{mapbox/fesm2020 → fesm2022}/dereekb-dbx-form-mapbox.mjs +76 -76
  118. package/fesm2022/dereekb-dbx-form-mapbox.mjs.map +1 -0
  119. package/{fesm2020 → fesm2022}/dereekb-dbx-form.mjs +820 -831
  120. package/fesm2022/dereekb-dbx-form.mjs.map +1 -0
  121. package/lib/extension/_extension.scss +11 -6
  122. package/lib/extension/calendar/_calendar.scss +7 -5
  123. package/lib/form/_form.scss +3 -2
  124. package/lib/form/action/form.action.directive.d.ts +2 -2
  125. package/lib/form/action/transition/form.action.transition.safety.directive.d.ts +1 -1
  126. package/lib/form/form.angular.util.d.ts +1 -1
  127. package/lib/form/form.d.ts +1 -1
  128. package/lib/form/io/form.changes.directive.d.ts +1 -1
  129. package/lib/form/io/form.input.directive.d.ts +2 -2
  130. package/lib/form/io/form.loading.directive.d.ts +1 -1
  131. package/lib/formly/_formly.scss +7 -9
  132. package/lib/formly/field/_field.scss +7 -7
  133. package/lib/formly/field/checklist/_checklist.scss +3 -2
  134. package/lib/formly/field/checklist/checklist.field.d.ts +4 -4
  135. package/lib/formly/field/checklist/checklist.item.d.ts +1 -1
  136. package/lib/formly/field/checklist/checklist.item.field.component.d.ts +2 -2
  137. package/lib/formly/field/checklist/checklist.item.field.content.default.component.d.ts +4 -4
  138. package/lib/formly/field/checklist/checklist.item.field.d.ts +1 -1
  139. package/lib/formly/field/component/_component.scss +3 -2
  140. package/lib/formly/field/component/component.field.component.d.ts +2 -2
  141. package/lib/formly/field/component/component.field.d.ts +1 -1
  142. package/lib/formly/field/field.d.ts +5 -11
  143. package/lib/formly/field/selection/_selection.scss +5 -5
  144. package/lib/formly/field/selection/list/_list.scss +3 -2
  145. package/lib/formly/field/selection/list/list.field.component.d.ts +1 -1
  146. package/lib/formly/field/selection/pickable/_pickable.scss +3 -9
  147. package/lib/formly/field/selection/pickable/pickable.chip.field.component.d.ts +1 -1
  148. package/lib/formly/field/selection/pickable/pickable.d.ts +6 -22
  149. package/lib/formly/field/selection/pickable/pickable.field.directive.d.ts +3 -3
  150. package/lib/formly/field/selection/pickable/pickable.list.field.component.d.ts +4 -4
  151. package/lib/formly/field/selection/pickable/pickable.util.d.ts +2 -2
  152. package/lib/formly/field/selection/searchable/_searchable.scss +5 -5
  153. package/lib/formly/field/selection/searchable/searchable.chip.field.component.d.ts +1 -1
  154. package/lib/formly/field/selection/searchable/searchable.d.ts +4 -4
  155. package/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.d.ts +3 -3
  156. package/lib/formly/field/selection/searchable/searchable.field.d.ts +1 -1
  157. package/lib/formly/field/selection/searchable/searchable.field.directive.d.ts +1 -1
  158. package/lib/formly/field/selection/searchable/searchable.text.field.component.d.ts +1 -1
  159. package/lib/formly/field/selection/selection.d.ts +1 -5
  160. package/lib/formly/field/selection/selection.field.d.ts +1 -1
  161. package/lib/formly/field/selection/sourceselect/_sourceselect.scss +6 -15
  162. package/lib/formly/field/selection/sourceselect/sourceselect.d.ts +6 -6
  163. package/lib/formly/field/selection/sourceselect/sourceselect.field.component.d.ts +1 -1
  164. package/lib/formly/field/selection/sourceselect/sourceselect.field.module.d.ts +1 -1
  165. package/lib/formly/field/texteditor/_texteditor.scss +3 -2
  166. package/lib/formly/field/texteditor/texteditor.field.component.d.ts +2 -2
  167. package/lib/formly/field/value/_value.scss +10 -6
  168. package/lib/formly/field/value/array/_array.scss +7 -2
  169. package/lib/formly/field/value/array/array.field.component.d.ts +2 -2
  170. package/lib/formly/field/value/boolean/_boolean.scss +5 -4
  171. package/lib/formly/field/value/date/_date.scss +20 -37
  172. package/lib/formly/field/value/date/date.field.module.d.ts +1 -1
  173. package/lib/formly/field/value/date/datetime.field.component.d.ts +3 -13
  174. package/lib/formly/field/value/date/datetime.field.d.ts +5 -5
  175. package/lib/formly/field/value/date/fixeddaterange.field.component.d.ts +7 -7
  176. package/lib/formly/field/value/hidden.field.d.ts +1 -1
  177. package/lib/formly/field/value/number/_number.scss +35 -0
  178. package/lib/formly/field/value/number/number.field.d.ts +3 -3
  179. package/lib/formly/field/value/phone/_phone.scss +4 -3
  180. package/lib/formly/field/value/phone/phone.field.component.d.ts +1 -1
  181. package/lib/formly/field/value/phone/phone.field.module.d.ts +1 -1
  182. package/lib/formly/field/value/text/_text.scss +3 -2
  183. package/lib/formly/field/value/text/text.additional.field.d.ts +3 -3
  184. package/lib/formly/field/value/text/text.field.d.ts +2 -2
  185. package/lib/formly/field/wrapper/_wrapper.scss +5 -4
  186. package/lib/formly/field/wrapper/autotouch.wrapper.component.d.ts +1 -1
  187. package/lib/formly/field/wrapper/expandable.wrapper.component.d.ts +2 -2
  188. package/lib/formly/field/wrapper/expandable.wrapper.delegate.d.ts +1 -1
  189. package/lib/formly/field/wrapper/flex.wrapper.component.d.ts +1 -1
  190. package/lib/formly/field/wrapper/form.wrapper.module.d.ts +1 -1
  191. package/lib/formly/field/wrapper/info.wrapper.component.d.ts +1 -1
  192. package/lib/formly/field/wrapper/section.wrapper.component.d.ts +2 -2
  193. package/lib/formly/field/wrapper/style.wrapper.component.d.ts +2 -2
  194. package/lib/formly/field/wrapper/subsection.wrapper.component.d.ts +2 -2
  195. package/lib/formly/field/wrapper/toggle.wrapper.component.d.ts +1 -1
  196. package/lib/formly/field/wrapper/working.wrapper.component.d.ts +2 -2
  197. package/lib/formly/field/wrapper/wrapper.d.ts +1 -1
  198. package/lib/formly/form/_form.scss +17 -4
  199. package/lib/formly/form/search.form.component.d.ts +1 -1
  200. package/lib/formly/formly.context.directive.d.ts +1 -1
  201. package/lib/formly/formly.directive.d.ts +4 -4
  202. package/lib/formly/formly.form.component.d.ts +1 -1
  203. package/lib/formly/template/login.d.ts +1 -1
  204. package/lib/formly/template/timezone.d.ts +1 -1
  205. package/lib/layout/_layout.scss +3 -2
  206. package/lib/layout/form.spacer.component.d.ts +1 -1
  207. package/lib/style/_all-typography.scss +11 -3
  208. package/lib/style/_core.scss +1 -2
  209. package/lib/style/_mixin.scss +10 -0
  210. package/lib/style/_theming.scss +1 -1
  211. package/lib/validator/available.d.ts +1 -1
  212. package/mapbox/{esm2020 → esm2022}/lib/field/latlng/latlng.field.component.mjs +10 -10
  213. package/mapbox/{esm2020 → esm2022}/lib/field/latlng/latlng.field.marker.component.mjs +6 -6
  214. package/mapbox/esm2022/lib/field/latlng/latlng.field.mjs +35 -0
  215. package/mapbox/esm2022/lib/field/latlng/latlng.module.mjs +59 -0
  216. package/{esm2020/mapbox → mapbox/esm2022}/lib/field/zoom/zoom.field.component.mjs +10 -10
  217. package/mapbox/esm2022/lib/field/zoom/zoom.field.mjs +23 -0
  218. package/mapbox/esm2022/lib/field/zoom/zoom.module.mjs +57 -0
  219. package/{esm2020/mapbox → mapbox/esm2022}/lib/mapbox.module.mjs +5 -5
  220. package/{fesm2020 → mapbox/fesm2022}/dereekb-dbx-form-mapbox.mjs +76 -76
  221. package/mapbox/fesm2022/dereekb-dbx-form-mapbox.mjs.map +1 -0
  222. package/mapbox/lib/field/latlng/latlng.field.component.d.ts +1 -1
  223. package/mapbox/lib/field/latlng/latlng.field.marker.component.d.ts +1 -1
  224. package/mapbox/lib/field/zoom/zoom.field.component.d.ts +1 -1
  225. package/mapbox/package.json +10 -28
  226. package/package.json +31 -31
  227. package/esm2020/calendar/lib/calendar.module.mjs +0 -155
  228. package/esm2020/calendar/lib/calendar.schedule.selection.dialog.button.component.mjs +0 -38
  229. package/esm2020/calendar/lib/calendar.schedule.selection.dialog.component.mjs +0 -65
  230. package/esm2020/calendar/lib/calendar.schedule.selection.popover.component.mjs +0 -37
  231. package/esm2020/calendar/lib/calendar.schedule.selection.range.component.mjs +0 -188
  232. package/esm2020/calendar/lib/calendar.schedule.selection.store.mjs +0 -814
  233. package/esm2020/calendar/lib/field/schedule/calendar.schedule.field.component.mjs +0 -158
  234. package/esm2020/calendar/lib/field/schedule/calendar.schedule.field.mjs +0 -29
  235. package/esm2020/calendar/lib/field/schedule/calendar.schedule.module.mjs +0 -58
  236. package/esm2020/lib/formly/field/checklist/checklist.item.field.module.mjs +0 -67
  237. package/esm2020/lib/formly/field/component/component.field.module.mjs +0 -32
  238. package/esm2020/lib/formly/field/field.mjs +0 -103
  239. package/esm2020/lib/formly/field/selection/list/list.field.module.mjs +0 -76
  240. package/esm2020/lib/formly/field/selection/pickable/pickable.chip.field.component.mjs +0 -33
  241. package/esm2020/lib/formly/field/selection/pickable/pickable.field.module.mjs +0 -93
  242. package/esm2020/lib/formly/field/selection/pickable/pickable.list.field.component.mjs +0 -116
  243. package/esm2020/lib/formly/field/selection/searchable/searchable.chip.field.component.mjs +0 -68
  244. package/esm2020/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.mjs +0 -95
  245. package/esm2020/lib/formly/field/selection/searchable/searchable.field.directive.mjs +0 -278
  246. package/esm2020/lib/formly/field/selection/searchable/searchable.field.module.mjs +0 -91
  247. package/esm2020/lib/formly/field/selection/selection.field.mjs +0 -39
  248. package/esm2020/lib/formly/field/selection/sourceselect/sourceselect.field.module.mjs +0 -93
  249. package/esm2020/lib/formly/field/texteditor/texteditor.field.module.mjs +0 -51
  250. package/esm2020/lib/formly/field/value/array/array.field.module.mjs +0 -62
  251. package/esm2020/lib/formly/field/value/boolean/boolean.field.mjs +0 -47
  252. package/esm2020/lib/formly/field/value/date/date.field.module.mjs +0 -96
  253. package/esm2020/lib/formly/field/value/date/datetime.field.component.mjs +0 -488
  254. package/esm2020/lib/formly/field/value/date/datetime.field.mjs +0 -143
  255. package/esm2020/lib/formly/field/value/date/fixeddaterange.field.component.mjs +0 -506
  256. package/esm2020/lib/formly/field/value/phone/phone.field.component.mjs +0 -100
  257. package/esm2020/lib/formly/field/value/phone/phone.field.module.mjs +0 -66
  258. package/esm2020/lib/formly/field/wrapper/form.wrapper.module.mjs +0 -86
  259. package/esm2020/lib/formly/field/wrapper/section.wrapper.component.mjs +0 -26
  260. package/esm2020/lib/formly/field/wrapper/subsection.wrapper.component.mjs +0 -26
  261. package/esm2020/lib/formly/field/wrapper/wrapper.mjs +0 -78
  262. package/esm2020/lib/formly/formly.context.mjs +0 -100
  263. package/esm2020/mapbox/lib/field/latlng/latlng.field.mjs +0 -35
  264. package/esm2020/mapbox/lib/field/latlng/latlng.module.mjs +0 -59
  265. package/esm2020/mapbox/lib/field/zoom/zoom.field.mjs +0 -23
  266. package/esm2020/mapbox/lib/field/zoom/zoom.module.mjs +0 -57
  267. package/fesm2015/dereekb-dbx-form-calendar.mjs +0 -1955
  268. package/fesm2015/dereekb-dbx-form-calendar.mjs.map +0 -1
  269. package/fesm2015/dereekb-dbx-form-mapbox.mjs +0 -585
  270. package/fesm2015/dereekb-dbx-form-mapbox.mjs.map +0 -1
  271. package/fesm2015/dereekb-dbx-form.mjs +0 -6205
  272. package/fesm2015/dereekb-dbx-form.mjs.map +0 -1
  273. package/fesm2020/dereekb-dbx-form-calendar.mjs.map +0 -1
  274. package/fesm2020/dereekb-dbx-form-mapbox.mjs.map +0 -1
  275. package/fesm2020/dereekb-dbx-form.mjs.map +0 -1
  276. package/mapbox/esm2020/lib/field/latlng/latlng.field.mjs +0 -35
  277. package/mapbox/esm2020/lib/field/latlng/latlng.module.mjs +0 -59
  278. package/mapbox/esm2020/lib/field/zoom/zoom.field.mjs +0 -23
  279. package/mapbox/esm2020/lib/field/zoom/zoom.module.mjs +0 -57
  280. package/mapbox/fesm2015/dereekb-dbx-form-mapbox.mjs +0 -585
  281. package/mapbox/fesm2015/dereekb-dbx-form-mapbox.mjs.map +0 -1
  282. package/mapbox/fesm2020/dereekb-dbx-form-mapbox.mjs.map +0 -1
  283. /package/{esm2020 → esm2022}/calendar/dereekb-dbx-form-calendar.mjs +0 -0
  284. /package/{esm2020 → esm2022}/calendar/index.mjs +0 -0
  285. /package/{esm2020 → esm2022}/calendar/lib/calendar.schedule.selection.form.mjs +0 -0
  286. /package/{esm2020 → esm2022}/calendar/lib/field/index.mjs +0 -0
  287. /package/{esm2020 → esm2022}/calendar/lib/field/schedule/index.mjs +0 -0
  288. /package/{esm2020 → esm2022}/calendar/lib/index.mjs +0 -0
  289. /package/{esm2020 → esm2022}/dereekb-dbx-form.mjs +0 -0
  290. /package/{esm2020 → esm2022}/index.mjs +0 -0
  291. /package/{esm2020 → esm2022}/lib/form/action/index.mjs +0 -0
  292. /package/{esm2020 → esm2022}/lib/form/action/transition/index.mjs +0 -0
  293. /package/{esm2020 → esm2022}/lib/form/form.angular.util.mjs +0 -0
  294. /package/{esm2020 → esm2022}/lib/form/form.mjs +0 -0
  295. /package/{esm2020 → esm2022}/lib/form/index.mjs +0 -0
  296. /package/{esm2020 → esm2022}/lib/form/io/index.mjs +0 -0
  297. /package/{esm2020 → esm2022}/lib/formly/config/index.mjs +0 -0
  298. /package/{esm2020 → esm2022}/lib/formly/config/validation.mjs +0 -0
  299. /package/{esm2020 → esm2022}/lib/formly/field/checklist/checklist.field.mjs +0 -0
  300. /package/{esm2020 → esm2022}/lib/formly/field/checklist/checklist.item.field.mjs +0 -0
  301. /package/{esm2020 → esm2022}/lib/formly/field/checklist/checklist.item.mjs +0 -0
  302. /package/{esm2020 → esm2022}/lib/formly/field/checklist/index.mjs +0 -0
  303. /package/{esm2020 → esm2022}/lib/formly/field/component/component.field.mjs +0 -0
  304. /package/{esm2020 → esm2022}/lib/formly/field/component/index.mjs +0 -0
  305. /package/{esm2020 → esm2022}/lib/formly/field/index.mjs +0 -0
  306. /package/{esm2020 → esm2022}/lib/formly/field/selection/index.mjs +0 -0
  307. /package/{esm2020 → esm2022}/lib/formly/field/selection/list/index.mjs +0 -0
  308. /package/{esm2020 → esm2022}/lib/formly/field/selection/list/list.field.mjs +0 -0
  309. /package/{esm2020 → esm2022}/lib/formly/field/selection/pickable/index.mjs +0 -0
  310. /package/{esm2020 → esm2022}/lib/formly/field/selection/pickable/pickable.field.mjs +0 -0
  311. /package/{esm2020 → esm2022}/lib/formly/field/selection/pickable/pickable.util.mjs +0 -0
  312. /package/{esm2020 → esm2022}/lib/formly/field/selection/searchable/index.mjs +0 -0
  313. /package/{esm2020 → esm2022}/lib/formly/field/selection/searchable/searchable.field.mjs +0 -0
  314. /package/{esm2020 → esm2022}/lib/formly/field/selection/searchable/searchable.mjs +0 -0
  315. /package/{esm2020 → esm2022}/lib/formly/field/selection/searchable/text.chip.field.mjs +0 -0
  316. /package/{esm2020 → esm2022}/lib/formly/field/selection/sourceselect/index.mjs +0 -0
  317. /package/{esm2020 → esm2022}/lib/formly/field/selection/sourceselect/sourceselect.field.mjs +0 -0
  318. /package/{esm2020 → esm2022}/lib/formly/field/selection/sourceselect/sourceselect.mjs +0 -0
  319. /package/{esm2020 → esm2022}/lib/formly/field/texteditor/index.mjs +0 -0
  320. /package/{esm2020 → esm2022}/lib/formly/field/texteditor/texteditor.field.mjs +0 -0
  321. /package/{esm2020 → esm2022}/lib/formly/field/value/array/array.field.mjs +0 -0
  322. /package/{esm2020 → esm2022}/lib/formly/field/value/array/index.mjs +0 -0
  323. /package/{esm2020 → esm2022}/lib/formly/field/value/boolean/index.mjs +0 -0
  324. /package/{esm2020 → esm2022}/lib/formly/field/value/date/date.value.mjs +0 -0
  325. /package/{esm2020 → esm2022}/lib/formly/field/value/date/datetime.mjs +0 -0
  326. /package/{esm2020 → esm2022}/lib/formly/field/value/date/datetime.preset.mjs +0 -0
  327. /package/{esm2020 → esm2022}/lib/formly/field/value/date/index.mjs +0 -0
  328. /package/{esm2020 → esm2022}/lib/formly/field/value/hidden.field.mjs +0 -0
  329. /package/{esm2020 → esm2022}/lib/formly/field/value/index.mjs +0 -0
  330. /package/{esm2020 → esm2022}/lib/formly/field/value/number/index.mjs +0 -0
  331. /package/{esm2020 → esm2022}/lib/formly/field/value/number/number.field.mjs +0 -0
  332. /package/{esm2020 → esm2022}/lib/formly/field/value/phone/index.mjs +0 -0
  333. /package/{esm2020 → esm2022}/lib/formly/field/value/phone/phone.field.mjs +0 -0
  334. /package/{esm2020 → esm2022}/lib/formly/field/value/text/index.mjs +0 -0
  335. /package/{esm2020 → esm2022}/lib/formly/field/value/text/text.additional.field.mjs +0 -0
  336. /package/{esm2020 → esm2022}/lib/formly/field/value/text/text.address.field.mjs +0 -0
  337. /package/{esm2020 → esm2022}/lib/formly/field/value/text/text.field.mjs +0 -0
  338. /package/{esm2020 → esm2022}/lib/formly/field/wrapper/index.mjs +0 -0
  339. /package/{esm2020 → esm2022}/lib/formly/form/form.form.mjs +0 -0
  340. /package/{esm2020 → esm2022}/lib/formly/form/index.mjs +0 -0
  341. /package/{esm2020 → esm2022}/lib/formly/index.mjs +0 -0
  342. /package/{esm2020 → esm2022}/lib/formly/template/available.mjs +0 -0
  343. /package/{esm2020 → esm2022}/lib/formly/template/index.mjs +0 -0
  344. /package/{esm2020 → esm2022}/lib/formly/template/login.mjs +0 -0
  345. /package/{esm2020 → esm2022}/lib/formly/template/timezone.mjs +0 -0
  346. /package/{esm2020 → esm2022}/lib/index.mjs +0 -0
  347. /package/{esm2020 → esm2022}/lib/layout/index.mjs +0 -0
  348. /package/{esm2020 → esm2022}/lib/validator/available.mjs +0 -0
  349. /package/{esm2020 → esm2022}/lib/validator/boolean.mjs +0 -0
  350. /package/{esm2020 → esm2022}/lib/validator/email.mjs +0 -0
  351. /package/{esm2020 → esm2022}/lib/validator/field.mjs +0 -0
  352. /package/{esm2020 → esm2022}/lib/validator/index.mjs +0 -0
  353. /package/{esm2020 → esm2022}/lib/validator/number.mjs +0 -0
  354. /package/{esm2020 → esm2022}/lib/validator/phone.mjs +0 -0
  355. /package/{esm2020 → esm2022}/mapbox/dereekb-dbx-form-mapbox.mjs +0 -0
  356. /package/{esm2020 → esm2022}/mapbox/index.mjs +0 -0
  357. /package/{esm2020 → esm2022}/mapbox/lib/field/index.mjs +0 -0
  358. /package/{esm2020 → esm2022}/mapbox/lib/field/latlng/index.mjs +0 -0
  359. /package/{esm2020 → esm2022}/mapbox/lib/field/zoom/index.mjs +0 -0
  360. /package/mapbox/{esm2020 → esm2022}/dereekb-dbx-form-mapbox.mjs +0 -0
  361. /package/mapbox/{esm2020 → esm2022}/index.mjs +0 -0
  362. /package/mapbox/{esm2020 → esm2022}/lib/field/index.mjs +0 -0
  363. /package/mapbox/{esm2020 → esm2022}/lib/field/latlng/index.mjs +0 -0
  364. /package/mapbox/{esm2020 → esm2022}/lib/field/zoom/index.mjs +0 -0
@@ -0,0 +1,278 @@
1
+ import { convertMaybeToArray, lastValue, separateValues, asArray, filterUniqueValues } from '@dereekb/util';
2
+ import { mergeDbxInjectionComponentConfigs } from '@dereekb/dbx-core';
3
+ import { filterMaybe, SubscriptionObject, LoadingStateContextInstance, successResult, startWithBeginLoading } from '@dereekb/rxjs';
4
+ import { ChangeDetectorRef, Directive, ElementRef, ViewChild } from '@angular/core';
5
+ import { FormControl } from '@angular/forms';
6
+ import { FieldType } from '@ngx-formly/material';
7
+ import { debounceTime, distinctUntilChanged, first, map, mergeMap, shareReplay, startWith, switchMap, BehaviorSubject, of } from 'rxjs';
8
+ import { DbxDefaultSearchableFieldDisplayComponent } from './searchable.field.autocomplete.item.component';
9
+ import { camelCase } from 'change-case';
10
+ import * as i0 from "@angular/core";
11
+ /**
12
+ * Abstract searchable field that provides a feature for searching for values, and for displaying values using Observables.
13
+ *
14
+ * Display values are cached for performance.
15
+ */
16
+ export class AbstractDbxSearchableValueFieldDirective extends FieldType {
17
+ get name() {
18
+ return this.field.name ?? camelCase(this.label ?? this.key);
19
+ }
20
+ get label() {
21
+ return this.props.label;
22
+ }
23
+ get readonly() {
24
+ return this.props.readonly;
25
+ }
26
+ get isReadonlyOrDisabled() {
27
+ return this.readonly || this.disabled;
28
+ }
29
+ get searchableField() {
30
+ return this.props;
31
+ }
32
+ get asArrayValue() {
33
+ return this.searchableField.asArrayValue ?? true;
34
+ }
35
+ get pickOnlyOne() {
36
+ return this.asArrayValue === false || this.multiSelect === false;
37
+ }
38
+ get searchOnEmptyText() {
39
+ return this.searchableField.searchOnEmptyText ?? false;
40
+ }
41
+ get autocomplete() {
42
+ return (this.props.attributes?.['autocomplete'] ?? this.key);
43
+ }
44
+ get hashForValue() {
45
+ return this.searchableField.hashForValue ?? ((x) => x);
46
+ }
47
+ get displayForValue() {
48
+ return this.searchableField.displayForValue;
49
+ }
50
+ get useAnchor() {
51
+ return this.searchableField.useAnchor;
52
+ }
53
+ get anchorForValue() {
54
+ return this.searchableField.anchorForValue;
55
+ }
56
+ get display() {
57
+ return this.searchableField.display;
58
+ }
59
+ get search() {
60
+ return this.searchableField.search;
61
+ }
62
+ get values() {
63
+ return this._getValueOnFormControl(this.formControl.value) ?? [];
64
+ }
65
+ get allowStringValues() {
66
+ return this.searchableField.allowStringValues ?? Boolean(this.convertStringValue);
67
+ }
68
+ get convertStringValue() {
69
+ return this.searchableField.convertStringValue;
70
+ }
71
+ get showClearValue() {
72
+ return this.searchableField.showClearValue ?? true;
73
+ }
74
+ get searchLabel() {
75
+ return this.searchableField.searchLabel ?? 'Search';
76
+ }
77
+ get refreshDisplayValues$() {
78
+ return this.searchableField.refreshDisplayValues$;
79
+ }
80
+ loadDisplayValuesForValues(values) {
81
+ return this.loadDisplayValuesForFieldValues(values.map((value) => ({ value })));
82
+ }
83
+ loadDisplayValuesForFieldValues(values) {
84
+ return this.getDisplayValuesForFieldValues(values).pipe(map((displayValues) => successResult(displayValues)), startWithBeginLoading(), shareReplay(1));
85
+ }
86
+ getDisplayValuesForFieldValues(values) {
87
+ return this._displayHashMap.pipe(mergeMap((displayMap) => {
88
+ const mappingResult = values.map((x) => [x, this.hashForValue(x.value)]).map(([x, hash], i) => [i, hash, x, displayMap.get(hash)]);
89
+ const {
90
+ //
91
+ included: hasDisplay, excluded: needsDisplay } = separateValues(mappingResult, (x) => Boolean(x[3]));
92
+ let obs;
93
+ if (needsDisplay.length > 0) {
94
+ // Go get the display value.
95
+ const displayValuesObs = this.displayForValue(needsDisplay.map((x) => x[2]));
96
+ const defaultDisplay = mergeDbxInjectionComponentConfigs([this.defaultDisplay, this.display]);
97
+ const anchorForValue = this.useAnchor && this.anchorForValue;
98
+ obs = displayValuesObs.pipe(first(), map((displayResults) => {
99
+ // Assign the default component classes to complete configuration.
100
+ displayResults.forEach((x) => {
101
+ if (!x.display) {
102
+ x.display = defaultDisplay;
103
+ }
104
+ else {
105
+ x.display = mergeDbxInjectionComponentConfigs([defaultDisplay, x.display]);
106
+ }
107
+ if (!x.anchor && anchorForValue) {
108
+ x.anchor = anchorForValue(x);
109
+ }
110
+ });
111
+ // Create a map to re-join values later.
112
+ const displayResultsMapping = displayResults.map((x) => [x, this.hashForValue(x.value)]);
113
+ const valueIndexHashMap = new Map(displayResultsMapping.map(([x, hash]) => [hash, x]));
114
+ // Update displayMap. No need to push an update notification.
115
+ displayResultsMapping.forEach(([x, hash]) => displayMap.set(hash, x));
116
+ // Zip values back together.
117
+ const newDisplayValues = mappingResult.map((x) => x[3] ?? valueIndexHashMap.get(x[1]));
118
+ // Return display values.
119
+ return newDisplayValues;
120
+ }));
121
+ }
122
+ else {
123
+ // If all display values are hashed return that.
124
+ obs = of(hasDisplay.map((x) => x[3]));
125
+ }
126
+ return obs;
127
+ }));
128
+ }
129
+ constructor(cdRef) {
130
+ super();
131
+ this.cdRef = cdRef;
132
+ /**
133
+ * Whether or not to allow syncing to
134
+ */
135
+ this.allowSyncValueToInput = false;
136
+ this.inputCtrl = new FormControl('');
137
+ this._formControlObs = new BehaviorSubject(undefined);
138
+ this.formControl$ = this._formControlObs.pipe(filterMaybe());
139
+ this._clearDisplayHashMapSub = new SubscriptionObject();
140
+ this._displayHashMap = new BehaviorSubject(new Map());
141
+ this.inputValue$ = this.inputCtrl.valueChanges.pipe(startWith(this.inputCtrl.value), map((x) => x || ''));
142
+ this.inputValueString$ = this.inputValue$.pipe(debounceTime(200), distinctUntilChanged());
143
+ this.searchResultsState$ = this.inputValueString$.pipe(switchMap((text) => (text || this.searchOnEmptyText ? this.search(text ?? '') : of([])).pipe(switchMap((x) => this.loadDisplayValuesForFieldValues(x)),
144
+ // Return begin loading to setup the loading state.
145
+ startWithBeginLoading())), shareReplay(1));
146
+ this._singleValueSyncSubscription = new SubscriptionObject();
147
+ this.searchContext = new LoadingStateContextInstance({ obs: this.searchResultsState$, showLoadingOnNoValue: false });
148
+ this.searchResults$ = this.searchResultsState$.pipe(map((x) => x?.value ?? []));
149
+ this._formControlValue$ = this.formControl$.pipe(switchMap((control) => control.valueChanges.pipe(startWith(control.value), shareReplay(1))));
150
+ this.values$ = this._formControlValue$.pipe(map(convertMaybeToArray), shareReplay(1));
151
+ this.displayValuesState$ = this.values$.pipe(distinctUntilChanged(), switchMap((values) => this.loadDisplayValuesForValues(values)), shareReplay(1));
152
+ this.displayValues$ = this.displayValuesState$.pipe(map((x) => x?.value ?? []));
153
+ }
154
+ ngOnInit() {
155
+ this._formControlObs.next(this.formControl);
156
+ if (this.refreshDisplayValues$ != null) {
157
+ this._clearDisplayHashMapSub.subscription = this.refreshDisplayValues$.subscribe(() => this._displayHashMap.next(new Map()));
158
+ }
159
+ if (this.searchableField.textInputValidator) {
160
+ this.inputCtrl.setValidators(this.searchableField.textInputValidator);
161
+ }
162
+ if (!this.defaultDisplay?.componentClass) {
163
+ this.defaultDisplay = {
164
+ ...this.defaultDisplay,
165
+ componentClass: DbxDefaultSearchableFieldDisplayComponent
166
+ };
167
+ }
168
+ if (this.allowSyncValueToInput && this.multiSelect === false) {
169
+ this._singleValueSyncSubscription.subscription = this.displayValues$.subscribe((x) => {
170
+ if (x[0]) {
171
+ this._syncSingleValue(x[0]);
172
+ }
173
+ });
174
+ }
175
+ }
176
+ ngOnDestroy() {
177
+ super.ngOnDestroy();
178
+ this._clearDisplayHashMapSub.destroy();
179
+ this._displayHashMap.complete();
180
+ this._singleValueSyncSubscription.destroy();
181
+ this._formControlObs.complete();
182
+ this.searchContext.destroy();
183
+ }
184
+ /**
185
+ * Used to sync the input control with the selected value.
186
+ *
187
+ * Only used when multiSelect is false.
188
+ */
189
+ _syncSingleValue(value) {
190
+ this.inputCtrl.setValue(value.label);
191
+ }
192
+ _addWithTextValue(text) {
193
+ if (!this.searchableField.allowStringValues) {
194
+ return;
195
+ }
196
+ if (text) {
197
+ text = (text || '').trim();
198
+ this.inputCtrl.setValue(text.trim());
199
+ }
200
+ // console.log('Add: ', text, this.inputCtrl.valid);
201
+ if (!this.inputCtrl.valid) {
202
+ return;
203
+ }
204
+ if (text) {
205
+ const value = this.convertStringValue ? this.convertStringValue(text) : text;
206
+ this.addValue(value);
207
+ }
208
+ }
209
+ addWithDisplayValue(displayValue) {
210
+ this.addValue(displayValue.value);
211
+ }
212
+ removeWithDisplayValue(displayValue) {
213
+ this.removeValue(displayValue.value);
214
+ }
215
+ _tryAddCurrentInputValue() {
216
+ let addedValue = false;
217
+ if (this.allowStringValues) {
218
+ const value = this.inputCtrl.value || '';
219
+ if ((value || '').trim()) {
220
+ this._addWithTextValue(value);
221
+ addedValue = true;
222
+ }
223
+ }
224
+ return addedValue;
225
+ }
226
+ addValue(value) {
227
+ this.textInput.nativeElement.value = '';
228
+ this.inputCtrl.setValue(null);
229
+ this.setValues([...this.values, value]);
230
+ }
231
+ removeValue(value) {
232
+ let values;
233
+ if (this.hashForValue) {
234
+ const hashToFilter = this.hashForValue(value);
235
+ values = this.values.filter((x) => this.hashForValue(x) !== hashToFilter);
236
+ }
237
+ else {
238
+ values = this.values.filter((x) => x !== value);
239
+ }
240
+ this.setValues(values);
241
+ }
242
+ clearValues() {
243
+ this.setValues([]);
244
+ }
245
+ setValues(values) {
246
+ // Use to filter non-unique values.
247
+ if (this.hashForValue) {
248
+ values = filterUniqueValues(values, this.hashForValue);
249
+ }
250
+ if (this.pickOnlyOne) {
251
+ values = [lastValue(values)].filter((x) => x != null);
252
+ }
253
+ this._setValueOnFormControl(values);
254
+ }
255
+ // MARK: Internal
256
+ _getValueOnFormControl(valueOnFormControl) {
257
+ const value = valueOnFormControl != null ? asArray(valueOnFormControl) : []; // Always return an array.
258
+ return value;
259
+ }
260
+ _setValueOnFormControl(values) {
261
+ let newValue = values;
262
+ if (!this.asArrayValue) {
263
+ newValue = [values[0]].filter((x) => x != null)[0];
264
+ }
265
+ this.formControl.setValue(newValue);
266
+ this.formControl.markAsDirty();
267
+ this.formControl.markAsTouched();
268
+ }
269
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxSearchableValueFieldDirective, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
270
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AbstractDbxSearchableValueFieldDirective, viewQueries: [{ propertyName: "textInput", first: true, predicate: ["textInput"], descendants: true }], usesInheritance: true, ngImport: i0 }); }
271
+ }
272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxSearchableValueFieldDirective, decorators: [{
273
+ type: Directive
274
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { textInput: [{
275
+ type: ViewChild,
276
+ args: ['textInput']
277
+ }] } });
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS5maWVsZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vc2VhcmNoYWJsZS9zZWFyY2hhYmxlLmZpZWxkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLG1CQUFtQixFQUFFLFNBQVMsRUFBZ0IsY0FBYyxFQUFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSSxPQUFPLEVBQStCLGlDQUFpQyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkcsT0FBTyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBZ0IsMkJBQTJCLEVBQUUsYUFBYSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pKLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFtQixXQUFXLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRXBKLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBd0V4Qzs7OztHQUlHO0FBRUgsTUFBTSxPQUFnQix3Q0FBK0wsU0FBUSxTQUE2QjtJQThEeFAsSUFBSSxJQUFJO1FBQ04sT0FBTyxJ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UixTQUFTO3NCQURSLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFycmF5T3JWYWx1ZSwgTWF5YmUsIGNvbnZlcnRNYXliZVRvQXJyYXksIGxhc3RWYWx1ZSwgUHJpbWF0aXZlS2V5LCBzZXBhcmF0ZVZhbHVlcywgYXNBcnJheSwgZmlsdGVyVW5pcXVlVmFsdWVzIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcsIG1lcmdlRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlncyB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IGZpbHRlck1heWJlLCBTdWJzY3JpcHRpb25PYmplY3QsIExvYWRpbmdTdGF0ZSwgTG9hZGluZ1N0YXRlQ29udGV4dEluc3RhbmNlLCBzdWNjZXNzUmVzdWx0LCBzdGFydFdpdGhCZWdpbkxvYWRpbmcgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmllbGRUeXBlQ29uZmlnLCBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICdAbmd4LWZvcm1seS9tYXRlcmlhbCc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaXJzdCwgbWFwLCBtZXJnZU1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCBCZWhhdmlvclN1YmplY3QsIG9mLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBTZWFyY2hhYmxlVmFsdWVGaWVsZEhhc2hGbiwgU2VhcmNoYWJsZVZhbHVlRmllbGRTdHJpbmdTZWFyY2hGbiwgU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5Rm4sIFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlLCBTZWFyY2hhYmxlVmFsdWVGaWVsZFZhbHVlLCBTZWFyY2hhYmxlVmFsdWVGaWVsZEFuY2hvckZuLCBDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWUgfSBmcm9tICcuL3NlYXJjaGFibGUnO1xuaW1wb3J0IHsgRGJ4RGVmYXVsdFNlYXJjaGFibGVGaWVsZERpc3BsYXlDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaGFibGUuZmllbGQuYXV0b2NvbXBsZXRlLml0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IGNhbWVsQ2FzZSB9IGZyb20gJ2NoYW5nZS1jYXNlJztcblxuZXhwb3J0IGludGVyZmFjZSBTdHJpbmdWYWx1ZUZpZWxkc0ZpZWxkUHJvcHMgZXh0ZW5kcyBGb3JtbHlGaWVsZFByb3BzIHtcbiAgLyoqXG4gICAqIEN1c3RvbSBpbnB1dCB2YWxpZGF0b3JzLlxuICAgKi9cbiAgdGV4dElucHV0VmFsaWRhdG9yPzogVmFsaWRhdG9yRm4gfCBWYWxpZGF0b3JGbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaGFibGVWYWx1ZUZpZWxkc0ZpZWxkUHJvcHM8VCwgTSA9IHVua25vd24sIEggZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXk+IGV4dGVuZHMgRm9ybWx5RmllbGRQcm9wcywgU3RyaW5nVmFsdWVGaWVsZHNGaWVsZFByb3BzIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGFsbG93IHN0cmluZyB2YWx1ZXMgdG8gYmUgdXNlZCBkaXJlY3RseSwgb3IgaWYgdmFsdWVzIGNhbiBvbmx5IGJlIGNob3NlbiBmcm9tIHNlYXJjaGluZy5cbiAgICovXG4gIGFsbG93U3RyaW5nVmFsdWVzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHNldC9nZXQgdmFsdWVzIGFzIGFuIGFycmF5IG9yIGEgc2luZ2xlIHZhbHVlLiBJZiBzZXQgZmFsc2UsIG11bHRpU2VsZWN0IGlzIGlnbm9yZWQuXG4gICAqL1xuICBhc0FycmF5VmFsdWU/OiBib29sZWFuO1xuICAvKipcbiAgICogT3B0aW9uYWwgY29udmVyc2lvbiBmdW5jdGlvbi4gSWYgcHJvdmlkZWQsIGFsbG93U3RyaW5nVmFsdWVzIGlzIGNvbnNpZGVyZWQgdHJ1ZS5cbiAgICovXG4gIGNvbnZlcnRTdHJpbmdWYWx1ZT86ICh0ZXh0OiBzdHJpbmcpID0+IFQ7XG4gIC8qKlxuICAgKiBVc2VkIGZvciBoYXNoaW5nIGRpc3BsYXkgdmFsdWVzIGFuZCBvbWl0dGluZyByZXBlYXQgdmFsdWVzLlxuICAgKlxuICAgKiBJZiBoYXNoRm9yVmFsdWUgaXMgbm90IHByb3ZpZGVkLCB0aGUgdmFsdWUncyB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMgaXMuXG4gICAqL1xuICBoYXNoRm9yVmFsdWU/OiBTZWFyY2hhYmxlVmFsdWVGaWVsZEhhc2hGbjxULCBIPjtcbiAgLyoqXG4gICAqIFBlcmZvcm1zIGEgc2VhcmNoLlxuICAgKi9cbiAgc2VhcmNoOiBTZWFyY2hhYmxlVmFsdWVGaWVsZFN0cmluZ1NlYXJjaEZuPFQsIE0+O1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gYWxsb3cgc2VhcmNoZXMgb24gZW1wdHkgdGV4dC4gSXMgZmFsc2UgYnkgZGVmYXVsdC5cbiAgICovXG4gIHNlYXJjaE9uRW1wdHlUZXh0PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERlZmF1bHQgaW5qZWN0ZWQgY29uZmlnIHRvIHVzZSBmb3IgZGlzcGxheSB2YWx1ZXMuXG4gICAqL1xuICBkaXNwbGF5PzogUGFydGlhbDxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc+O1xuICAvKipcbiAgICogVXNlZCBmb3IgYnVpbGRpbmcgYSBkaXNwbGF5IHZhbHVlIGdpdmVuIHRoZSBpbnB1dC5cbiAgICovXG4gIGRpc3BsYXlGb3JWYWx1ZTogU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5Rm48VCwgTT47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byB1c2UgdGhlIGFuY2hvciBmaWVsZCBvbiB2YWx1ZSBlbGVtZW50cy5cbiAgICpcbiAgICogVGhpcyBoYXMgbm8gZGVmYXVsdCBlZmZlY3QgaWYgYSBjb21wb25lbnQgY2xhc3MgaXMgcHJvdmlkZWQuXG4gICAqL1xuICB1c2VBbmNob3I/OiBib29sZWFuO1xuICAvKipcbiAgICogVXNlZCBmb3IgcmV0cmlldmluZyBhbiBhbmNob3IgdmFsdWUgZm9yIHZhbHVlcyB0aGF0IGhhdmUgbm8gYW5jaG9yIHZhbHVlIHNldC5cbiAgICpcbiAgICogT25seSB1c2VkIHdoZW4gdXNlQW5jaG9yIGlzIHRydWUuXG4gICAqL1xuICBhbmNob3JGb3JWYWx1ZT86IFNlYXJjaGFibGVWYWx1ZUZpZWxkQW5jaG9yRm48VCwgTT47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzaG93IFwiQ2xlYXJcIiBpbiB0aGUgYXV0Y29tcGxldGUgbGlzdC5cbiAgICovXG4gIHNob3dDbGVhclZhbHVlPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIExhYmVsIGZvciB0aGUgc2VhcmNoIGlucHV0LlxuICAgKlxuICAgKiBEZWZhdWx0cyB0byBcIlNlYXJjaFwiXG4gICAqL1xuICBzZWFyY2hMYWJlbD86IHN0cmluZztcbiAgLyoqXG4gICAqIChPcHRpb25hbCkgb2JzZXJ2YWJsZSB0aGF0IHdpbGwgdHJpZ2dlciB0aGUgY2xlYXJpbmcgb2YgYWxsIGNhY2hlZCBkaXNwbGF5IHZhbHVlcy5cbiAgICovXG4gIHJlZnJlc2hEaXNwbGF5VmFsdWVzJD86IE9ic2VydmFibGU8dW5rbm93bj47XG59XG5cbi8qKlxuICogQWJzdHJhY3Qgc2VhcmNoYWJsZSBmaWVsZCB0aGF0IHByb3ZpZGVzIGEgZmVhdHVyZSBmb3Igc2VhcmNoaW5nIGZvciB2YWx1ZXMsIGFuZCBmb3IgZGlzcGxheWluZyB2YWx1ZXMgdXNpbmcgT2JzZXJ2YWJsZXMuXG4gKlxuICogRGlzcGxheSB2YWx1ZXMgYXJlIGNhY2hlZCBmb3IgcGVyZm9ybWFuY2UuXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RGJ4U2VhcmNoYWJsZVZhbHVlRmllbGREaXJlY3RpdmU8VCwgTSA9IHVua25vd24sIEggZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXksIEMgZXh0ZW5kcyBTZWFyY2hhYmxlVmFsdWVGaWVsZHNGaWVsZFByb3BzPFQsIE0sIEg+ID0gU2VhcmNoYWJsZVZhbHVlRmllbGRzRmllbGRQcm9wczxULCBNLCBIPj4gZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPEM+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGFsbG93IHN5bmNpbmcgdG9cbiAgICovXG4gIGFsbG93U3luY1ZhbHVlVG9JbnB1dCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzZXQvZ2V0IHZhbHVlcyBhcyBhbiBhcnJheS5cbiAgICovXG4gIGFic3RyYWN0IGdldCBtdWx0aVNlbGVjdCgpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBvdmVycmlkZSBzZXQgYnkgdGhlIHBhcmVudCBjbGFzcyBmb3IgcGlja2luZyBhIGRlZmF1bHQgZGlzcGxheSBmb3IgdGhpcyBkaXJlY3RpdmUuXG4gICAqL1xuICBkZWZhdWx0RGlzcGxheT86IERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZztcblxuICBAVmlld0NoaWxkKCd0ZXh0SW5wdXQnKVxuICB0ZXh0SW5wdXQhOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIHJlYWRvbmx5IGlucHV0Q3RybCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KCcnKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9mb3JtQ29udHJvbE9icyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWF5YmU8QWJzdHJhY3RDb250cm9sPj4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgZm9ybUNvbnRyb2wkID0gdGhpcy5fZm9ybUNvbnRyb2xPYnMucGlwZShmaWx0ZXJNYXliZSgpKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jbGVhckRpc3BsYXlIYXNoTWFwU3ViID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kaXNwbGF5SGFzaE1hcCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWFwPEgsIENvbmZpZ3VyZWRTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxULCBNPj4+KG5ldyBNYXAoKSk7XG5cbiAgcmVhZG9ubHkgaW5wdXRWYWx1ZSQ6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuaW5wdXRDdHJsLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgIHN0YXJ0V2l0aCh0aGlzLmlucHV0Q3RybC52YWx1ZSksXG4gICAgbWFwKCh4KSA9PiB4IHx8ICcnKVxuICApO1xuICByZWFkb25seSBpbnB1dFZhbHVlU3RyaW5nJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID0gdGhpcy5pbnB1dFZhbHVlJC5waXBlKGRlYm91bmNlVGltZSgyMDApLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblxuICByZWFkb25seSBzZWFyY2hSZXN1bHRzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT5bXT4+ID0gdGhpcy5pbnB1dFZhbHVlU3RyaW5nJC5waXBlKFxuICAgIHN3aXRjaE1hcCgodGV4dCkgPT5cbiAgICAgICh0ZXh0IHx8IHRoaXMuc2VhcmNoT25FbXB0eVRleHQgPyB0aGlzLnNlYXJjaCh0ZXh0ID8/ICcnKSA6IG9mKFtdKSkucGlwZShcbiAgICAgICAgc3dpdGNoTWFwKCh4KSA9PiB0aGlzLmxvYWREaXNwbGF5VmFsdWVzRm9yRmllbGRWYWx1ZXMoeCkpLFxuICAgICAgICAvLyBSZXR1cm4gYmVnaW4gbG9hZGluZyB0byBzZXR1cCB0aGUgbG9hZGluZyBzdGF0ZS5cbiAgICAgICAgc3RhcnRXaXRoQmVnaW5Mb2FkaW5nKClcbiAgICAgIClcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfc2luZ2xlVmFsdWVTeW5jU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIHJlYWRvbmx5IHNlYXJjaENvbnRleHQgPSBuZXcgTG9hZGluZ1N0YXRlQ29udGV4dEluc3RhbmNlKHsgb2JzOiB0aGlzLnNlYXJjaFJlc3VsdHNTdGF0ZSQsIHNob3dMb2FkaW5nT25Ob1ZhbHVlOiBmYWxzZSB9KTtcblxuICByZWFkb25seSBzZWFyY2hSZXN1bHRzJDogT2JzZXJ2YWJsZTxDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT5bXT4gPSB0aGlzLnNlYXJjaFJlc3VsdHNTdGF0ZSQucGlwZShtYXAoKHgpID0+IHg/LnZhbHVlID8/IFtdKSk7XG5cbiAgcmVhZG9ubHkgX2Zvcm1Db250cm9sVmFsdWUkOiBPYnNlcnZhYmxlPFQgfCBUW10+ID0gdGhpcy5mb3JtQ29udHJvbCQucGlwZShzd2l0Y2hNYXAoKGNvbnRyb2wpID0+IGNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKGNvbnRyb2wudmFsdWUpLCBzaGFyZVJlcGxheSgxKSkpKTtcblxuICByZWFkb25seSB2YWx1ZXMkOiBPYnNlcnZhYmxlPFRbXT4gPSB0aGlzLl9mb3JtQ29udHJvbFZhbHVlJC5waXBlKG1hcChjb252ZXJ0TWF5YmVUb0FycmF5KSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IGRpc3BsYXlWYWx1ZXNTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPENvbmZpZ3VyZWRTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxULCBNPltdPj4gPSB0aGlzLnZhbHVlcyQucGlwZShcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHN3aXRjaE1hcCgodmFsdWVzOiBUW10pID0+IHRoaXMubG9hZERpc3BsYXlWYWx1ZXNGb3JWYWx1ZXModmFsdWVzKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkaXNwbGF5VmFsdWVzJDogT2JzZXJ2YWJsZTxDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT5bXT4gPSB0aGlzLmRpc3BsYXlWYWx1ZXNTdGF0ZSQucGlwZShtYXAoKHgpID0+IHg/LnZhbHVlID8/IFtdKSk7XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZC5uYW1lID8/IGNhbWVsQ2FzZSh0aGlzLmxhYmVsID8/ICh0aGlzLmtleSBhcyBzdHJpbmcpKTtcbiAgfVxuXG4gIGdldCBsYWJlbCgpOiBNYXliZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5sYWJlbDtcbiAgfVxuXG4gIGdldCByZWFkb25seSgpOiBNYXliZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMucmVhZG9ubHk7XG4gIH1cblxuICBnZXQgaXNSZWFkb25seU9yRGlzYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZDtcbiAgfVxuXG4gIGdldCBzZWFyY2hhYmxlRmllbGQoKTogU2VhcmNoYWJsZVZhbHVlRmllbGRzRmllbGRQcm9wczxULCBNLCBIPiB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHM7XG4gIH1cblxuICBnZXQgYXNBcnJheVZhbHVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaGFibGVGaWVsZC5hc0FycmF5VmFsdWUgPz8gdHJ1ZTtcbiAgfVxuXG4gIGdldCBwaWNrT25seU9uZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hc0FycmF5VmFsdWUgPT09IGZhbHNlIHx8IHRoaXMubXVsdGlTZWxlY3QgPT09IGZhbHNlO1xuICB9XG5cbiAgZ2V0IHNlYXJjaE9uRW1wdHlUZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaGFibGVGaWVsZC5zZWFyY2hPbkVtcHR5VGV4dCA/PyBmYWxzZTtcbiAgfVxuXG4gIGdldCBhdXRvY29tcGxldGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMucHJvcHMuYXR0cmlidXRlcz8uWydhdXRvY29tcGxldGUnXSA/PyB0aGlzLmtleSkgYXMgc3RyaW5nO1xuICB9XG5cbiAgZ2V0IGhhc2hGb3JWYWx1ZSgpOiBTZWFyY2hhYmxlVmFsdWVGaWVsZEhhc2hGbjxULCBIPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoYWJsZUZpZWxkLmhhc2hGb3JWYWx1ZSA/PyAoKHgpID0+IHggYXMgdW5rbm93biBhcyBIKTtcbiAgfVxuXG4gIGdldCBkaXNwbGF5Rm9yVmFsdWUoKTogU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5Rm48VCwgTT4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaGFibGVGaWVsZC5kaXNwbGF5Rm9yVmFsdWU7XG4gIH1cblxuICBnZXQgdXNlQW5jaG9yKCk6IE1heWJlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hhYmxlRmllbGQudXNlQW5jaG9yO1xuICB9XG5cbiAgZ2V0IGFuY2hvckZvclZhbHVlKCk6IE1heWJlPFNlYXJjaGFibGVWYWx1ZUZpZWxkQW5jaG9yRm48VCwgTT4+IHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hhYmxlRmllbGQuYW5jaG9yRm9yVmFsdWU7XG4gIH1cblxuICBnZXQgZGlzcGxheSgpOiBNYXliZTxQYXJ0aWFsPERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZz4+IHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hhYmxlRmllbGQuZGlzcGxheTtcbiAgfVxuXG4gIGdldCBzZWFyY2goKTogU2VhcmNoYWJsZVZhbHVlRmllbGRTdHJpbmdTZWFyY2hGbjxULCBNPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoYWJsZUZpZWxkLnNlYXJjaDtcbiAgfVxuXG4gIGdldCB2YWx1ZXMoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0VmFsdWVPbkZvcm1Db250cm9sKHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpID8/IFtdO1xuICB9XG5cbiAgZ2V0IGFsbG93U3RyaW5nVmFsdWVzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaGFibGVGaWVsZC5hbGxvd1N0cmluZ1ZhbHVlcyA/PyBCb29sZWFuKHRoaXMuY29udmVydFN0cmluZ1ZhbHVlKTtcbiAgfVxuXG4gIGdldCBjb252ZXJ0U3RyaW5nVmFsdWUoKTogTWF5YmU8KHRleHQ6IHN0cmluZykgPT4gVD4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaGFibGVGaWVsZC5jb252ZXJ0U3RyaW5nVmFsdWU7XG4gIH1cblxuICBnZXQgc2hvd0NsZWFyVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoYWJsZUZpZWxkLnNob3dDbGVhclZhbHVlID8/IHRydWU7XG4gIH1cblxuICBnZXQgc2VhcmNoTGFiZWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoYWJsZUZpZWxkLnNlYXJjaExhYmVsID8/ICdTZWFyY2gnO1xuICB9XG5cbiAgZ2V0IHJlZnJlc2hEaXNwbGF5VmFsdWVzJCgpIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hhYmxlRmllbGQucmVmcmVzaERpc3BsYXlWYWx1ZXMkO1xuICB9XG5cbiAgbG9hZERpc3BsYXlWYWx1ZXNGb3JWYWx1ZXModmFsdWVzOiBUW10pOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT5bXT4+IHtcbiAgICByZXR1cm4gdGhpcy5sb2FkRGlzcGxheVZhbHVlc0ZvckZpZWxkVmFsdWVzKHZhbHVlcy5tYXAoKHZhbHVlKSA9PiAoeyB2YWx1ZSB9KSkpO1xuICB9XG5cbiAgbG9hZERpc3BsYXlWYWx1ZXNGb3JGaWVsZFZhbHVlcyh2YWx1ZXM6IFNlYXJjaGFibGVWYWx1ZUZpZWxkVmFsdWU8VCwgTT5bXSk6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPENvbmZpZ3VyZWRTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxULCBNPltdPj4ge1xuICAgIHJldHVybiB0aGlzLmdldERpc3BsYXlWYWx1ZXNGb3JGaWVsZFZhbHVlcyh2YWx1ZXMpLnBpcGUoXG4gICAgICBtYXAoKGRpc3BsYXlWYWx1ZXM6IENvbmZpZ3VyZWRTZWFyY2hhYmxlVmFsdWVGaWVsZERpc3BsYXlWYWx1ZTxULCBNPltdKSA9PiBzdWNjZXNzUmVzdWx0KGRpc3BsYXlWYWx1ZXMpKSxcbiAgICAgIHN0YXJ0V2l0aEJlZ2luTG9hZGluZygpLFxuICAgICAgc2hhcmVSZXBsYXkoMSlcbiAgICApO1xuICB9XG5cbiAgZ2V0RGlzcGxheVZhbHVlc0ZvckZpZWxkVmFsdWVzKHZhbHVlczogU2VhcmNoYWJsZVZhbHVlRmllbGRWYWx1ZTxULCBNPltdKTogT2JzZXJ2YWJsZTxDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT5bXT4ge1xuICAgIHJldHVybiB0aGlzLl9kaXNwbGF5SGFzaE1hcC5waXBlKFxuICAgICAgbWVyZ2VNYXAoKGRpc3BsYXlNYXApID0+IHtcbiAgICAgICAgY29uc3QgbWFwcGluZ1Jlc3VsdCA9IHZhbHVlcy5tYXAoKHgpID0+IFt4LCB0aGlzLmhhc2hGb3JWYWx1ZSh4LnZhbHVlKV0gYXMgW1NlYXJjaGFibGVWYWx1ZUZpZWxkVmFsdWU8VCwgTT4sIEhdKS5tYXAoKFt4LCBoYXNoXSwgaSkgPT4gW2ksIGhhc2gsIHgsIGRpc3BsYXlNYXAuZ2V0KGhhc2gpXSBhcyBbbnVtYmVyLCBILCBTZWFyY2hhYmxlVmFsdWVGaWVsZFZhbHVlPFQsIE0+LCBDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT5dKTtcblxuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgLy9cbiAgICAgICAgICBpbmNsdWRlZDogaGFzRGlzcGxheSxcbiAgICAgICAgICBleGNsdWRlZDogbmVlZHNEaXNwbGF5XG4gICAgICAgIH0gPSBzZXBhcmF0ZVZhbHVlcyhtYXBwaW5nUmVzdWx0LCAoeCkgPT4gQm9vbGVhbih4WzNdKSk7XG5cbiAgICAgICAgbGV0IG9iczogT2JzZXJ2YWJsZTxDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT5bXT47XG5cbiAgICAgICAgaWYgKG5lZWRzRGlzcGxheS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgLy8gR28gZ2V0IHRoZSBkaXNwbGF5IHZhbHVlLlxuICAgICAgICAgIGNvbnN0IGRpc3BsYXlWYWx1ZXNPYnMgPSB0aGlzLmRpc3BsYXlGb3JWYWx1ZShuZWVkc0Rpc3BsYXkubWFwKCh4KSA9PiB4WzJdKSk7XG4gICAgICAgICAgY29uc3QgZGVmYXVsdERpc3BsYXkgPSBtZXJnZURieEluamVjdGlvbkNvbXBvbmVudENvbmZpZ3MoW3RoaXMuZGVmYXVsdERpc3BsYXksIHRoaXMuZGlzcGxheV0pO1xuICAgICAgICAgIGNvbnN0IGFuY2hvckZvclZhbHVlID0gdGhpcy51c2VBbmNob3IgJiYgdGhpcy5hbmNob3JGb3JWYWx1ZTtcblxuICAgICAgICAgIG9icyA9IGRpc3BsYXlWYWx1ZXNPYnMucGlwZShcbiAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICBtYXAoKGRpc3BsYXlSZXN1bHRzKSA9PiB7XG4gICAgICAgICAgICAgIC8vIEFzc2lnbiB0aGUgZGVmYXVsdCBjb21wb25lbnQgY2xhc3NlcyB0byBjb21wbGV0ZSBjb25maWd1cmF0aW9uLlxuICAgICAgICAgICAgICBkaXNwbGF5UmVzdWx0cy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF4LmRpc3BsYXkpIHtcbiAgICAgICAgICAgICAgICAgIHguZGlzcGxheSA9IGRlZmF1bHREaXNwbGF5O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICB4LmRpc3BsYXkgPSBtZXJnZURieEluamVjdGlvbkNvbXBvbmVudENvbmZpZ3MoW2RlZmF1bHREaXNwbGF5LCB4LmRpc3BsYXldKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIXguYW5jaG9yICYmIGFuY2hvckZvclZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICB4LmFuY2hvciA9IGFuY2hvckZvclZhbHVlKHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgLy8gQ3JlYXRlIGEgbWFwIHRvIHJlLWpvaW4gdmFsdWVzIGxhdGVyLlxuICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5UmVzdWx0c01hcHBpbmc6IFtDb25maWd1cmVkU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VCwgTT4sIEhdW10gPSAoZGlzcGxheVJlc3VsdHMgYXMgQ29uZmlndXJlZFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlzcGxheVZhbHVlPFQsIE0+W10pLm1hcCgoeCkgPT4gW3gsIHRoaXMuaGFzaEZvclZhbHVlKHgudmFsdWUpXSk7XG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlSW5kZXhIYXNoTWFwID0gbmV3IE1hcChkaXNwbGF5UmVzdWx0c01hcHBpbmcubWFwKChbeCwgaGFzaF0pID0+IFtoYXNoLCB4XSkpO1xuXG4gICAgICAgICAgICAgIC8vIFVwZGF0ZSBkaXNwbGF5TWFwLiBObyBuZWVkIHRvIHB1c2ggYW4gdXBkYXRlIG5vdGlmaWNhdGlvbi5cbiAgICAgICAgICAgICAgZGlzcGxheVJlc3VsdHNNYXBwaW5nLmZvckVhY2goKFt4LCBoYXNoXSkgPT4gZGlzcGxheU1hcC5zZXQoaGFzaCwgeCkpO1xuXG4gICAgICAgICAgICAgIC8vIFppcCB2YWx1ZXMgYmFjayB0b2dldGhlci5cbiAgICAgICAgICAgICAgY29uc3QgbmV3RGlzcGxheVZhbHVlcyA9IG1hcHBpbmdSZXN1bHQubWFwKCh4KSA9PiB4WzNdID8/IHZhbHVlSW5kZXhIYXNoTWFwLmdldCh4WzFdKSk7XG5cbiAgICAgICAgICAgICAgLy8gUmV0dXJuIGRpc3BsYXkgdmFsdWVzLlxuICAgICAgICAgICAgICByZXR1cm4gbmV3RGlzcGxheVZhbHVlcztcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBJZiBhbGwgZGlzcGxheSB2YWx1ZXMgYXJlIGhhc2hlZCByZXR1cm4gdGhhdC5cbiAgICAgICAgICBvYnMgPSBvZihoYXNEaXNwbGF5Lm1hcCgoeCkgPT4geFszXSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG9icztcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mb3JtQ29udHJvbE9icy5uZXh0KHRoaXMuZm9ybUNvbnRyb2wpO1xuXG4gICAgaWYgKHRoaXMucmVmcmVzaERpc3BsYXlWYWx1ZXMkICE9IG51bGwpIHtcbiAgICAgIHRoaXMuX2NsZWFyRGlzcGxheUhhc2hNYXBTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5yZWZyZXNoRGlzcGxheVZhbHVlcyQuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2Rpc3BsYXlIYXNoTWFwLm5leHQobmV3IE1hcCgpKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VhcmNoYWJsZUZpZWxkLnRleHRJbnB1dFZhbGlkYXRvcikge1xuICAgICAgdGhpcy5pbnB1dEN0cmwuc2V0VmFsaWRhdG9ycyh0aGlzLnNlYXJjaGFibGVGaWVsZC50ZXh0SW5wdXRWYWxpZGF0b3IpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5kZWZhdWx0RGlzcGxheT8uY29tcG9uZW50Q2xhc3MpIHtcbiAgICAgIHRoaXMuZGVmYXVsdERpc3BsYXkgPSB7XG4gICAgICAgIC4uLnRoaXMuZGVmYXVsdERpc3BsYXksXG4gICAgICAgIGNvbXBvbmVudENsYXNzOiBEYnhEZWZhdWx0U2VhcmNoYWJsZUZpZWxkRGlzcGxheUNvbXBvbmVudFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hbGxvd1N5bmNWYWx1ZVRvSW5wdXQgJiYgdGhpcy5tdWx0aVNlbGVjdCA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuX3NpbmdsZVZhbHVlU3luY1N1YnNjcmlwdGlvbi5zdWJzY3JpcHRpb24gPSB0aGlzLmRpc3BsYXlWYWx1ZXMkLnN1YnNjcmliZSgoeCkgPT4ge1xuICAgICAgICBpZiAoeFswXSkge1xuICAgICAgICAgIHRoaXMuX3N5bmNTaW5nbGVWYWx1ZSh4WzBdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLl9jbGVhckRpc3BsYXlIYXNoTWFwU3ViLmRlc3Ryb3koKTtcbiAgICB0aGlzLl9kaXNwbGF5SGFzaE1hcC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3NpbmdsZVZhbHVlU3luY1N1YnNjcmlwdGlvbi5kZXN0cm95KCk7XG4gICAgdGhpcy5fZm9ybUNvbnRyb2xPYnMuY29tcGxldGUoKTtcbiAgICB0aGlzLnNlYXJjaENvbnRleHQuZGVzdHJveSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gc3luYyB0aGUgaW5wdXQgY29udHJvbCB3aXRoIHRoZSBzZWxlY3RlZCB2YWx1ZS5cbiAgICpcbiAgICogT25seSB1c2VkIHdoZW4gbXVsdGlTZWxlY3QgaXMgZmFsc2UuXG4gICAqL1xuICBwcm90ZWN0ZWQgX3N5bmNTaW5nbGVWYWx1ZSh2YWx1ZTogU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VD4pOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0Q3RybC5zZXRWYWx1ZSh2YWx1ZS5sYWJlbCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgX2FkZFdpdGhUZXh0VmFsdWUodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlYXJjaGFibGVGaWVsZC5hbGxvd1N0cmluZ1ZhbHVlcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0ZXh0KSB7XG4gICAgICB0ZXh0ID0gKHRleHQgfHwgJycpLnRyaW0oKTtcbiAgICAgIHRoaXMuaW5wdXRDdHJsLnNldFZhbHVlKHRleHQudHJpbSgpKTtcbiAgICB9XG5cbiAgICAvLyBjb25zb2xlLmxvZygnQWRkOiAnLCB0ZXh0LCB0aGlzLmlucHV0Q3RybC52YWxpZCk7XG5cbiAgICBpZiAoIXRoaXMuaW5wdXRDdHJsLnZhbGlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRleHQpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5jb252ZXJ0U3RyaW5nVmFsdWUgPyB0aGlzLmNvbnZlcnRTdHJpbmdWYWx1ZSh0ZXh0KSA6ICh0ZXh0IGFzIHVua25vd24gYXMgVCk7XG4gICAgICB0aGlzLmFkZFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBhZGRXaXRoRGlzcGxheVZhbHVlKGRpc3BsYXlWYWx1ZTogU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VD4pOiB2b2lkIHtcbiAgICB0aGlzLmFkZFZhbHVlKGRpc3BsYXlWYWx1ZS52YWx1ZSk7XG4gIH1cblxuICByZW1vdmVXaXRoRGlzcGxheVZhbHVlKGRpc3BsYXlWYWx1ZTogU2VhcmNoYWJsZVZhbHVlRmllbGREaXNwbGF5VmFsdWU8VD4pOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZVZhbHVlKGRpc3BsYXlWYWx1ZS52YWx1ZSk7XG4gIH1cblxuICBfdHJ5QWRkQ3VycmVudElucHV0VmFsdWUoKTogYm9vbGVhbiB7XG4gICAgbGV0IGFkZGVkVmFsdWUgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLmFsbG93U3RyaW5nVmFsdWVzKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuaW5wdXRDdHJsLnZhbHVlIHx8ICcnO1xuXG4gICAgICBpZiAoKHZhbHVlIHx8ICcnKS50cmltKCkpIHtcbiAgICAgICAgdGhpcy5fYWRkV2l0aFRleHRWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIGFkZGVkVmFsdWUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBhZGRlZFZhbHVlO1xuICB9XG5cbiAgYWRkVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICB0aGlzLnRleHRJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy5pbnB1dEN0cmwuc2V0VmFsdWUobnVsbCk7XG4gICAgdGhpcy5zZXRWYWx1ZXMoWy4uLnRoaXMudmFsdWVzLCB2YWx1ZV0pO1xuICB9XG5cbiAgcmVtb3ZlVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICBsZXQgdmFsdWVzO1xuXG4gICAgaWYgKHRoaXMuaGFzaEZvclZhbHVlKSB7XG4gICAgICBjb25zdCBoYXNoVG9GaWx0ZXIgPSB0aGlzLmhhc2hGb3JWYWx1ZSh2YWx1ZSk7XG4gICAgICB2YWx1ZXMgPSB0aGlzLnZhbHVlcy5maWx0ZXIoKHgpID0+IHRoaXMuaGFzaEZvclZhbHVlKHgpICE9PSBoYXNoVG9GaWx0ZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZXMgPSB0aGlzLnZhbHVlcy5maWx0ZXIoKHgpID0+IHggIT09IHZhbHVlKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldFZhbHVlcyh2YWx1ZXMpO1xuICB9XG5cbiAgY2xlYXJWYWx1ZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRWYWx1ZXMoW10pO1xuICB9XG5cbiAgc2V0VmFsdWVzKHZhbHVlczogVFtdKTogdm9pZCB7XG4gICAgLy8gVXNlIHRvIGZpbHRlciBub24tdW5pcXVlIHZhbHVlcy5cbiAgICBpZiAodGhpcy5oYXNoRm9yVmFsdWUpIHtcbiAgICAgIHZhbHVlcyA9IGZpbHRlclVuaXF1ZVZhbHVlcyh2YWx1ZXMsIHRoaXMuaGFzaEZvclZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5waWNrT25seU9uZSkge1xuICAgICAgdmFsdWVzID0gW2xhc3RWYWx1ZSh2YWx1ZXMpXS5maWx0ZXIoKHgpID0+IHggIT0gbnVsbCk7XG4gICAgfVxuXG4gICAgdGhpcy5fc2V0VmFsdWVPbkZvcm1Db250cm9sKHZhbHVlcyk7XG4gIH1cblxuICAvLyBNQVJLOiBJbnRlcm5hbFxuICBwcm90ZWN0ZWQgX2dldFZhbHVlT25Gb3JtQ29udHJvbCh2YWx1ZU9uRm9ybUNvbnRyb2w6IEFycmF5T3JWYWx1ZTxUPik6IFRbXSB7XG4gICAgY29uc3QgdmFsdWU6IFRbXSA9IHZhbHVlT25Gb3JtQ29udHJvbCAhPSBudWxsID8gYXNBcnJheSh2YWx1ZU9uRm9ybUNvbnRyb2wpIDogW107IC8vIEFsd2F5cyByZXR1cm4gYW4gYXJyYXkuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9zZXRWYWx1ZU9uRm9ybUNvbnRyb2wodmFsdWVzOiBUW10pOiB2b2lkIHtcbiAgICBsZXQgbmV3VmFsdWU6IFQgfCBUW10gPSB2YWx1ZXM7XG5cbiAgICBpZiAoIXRoaXMuYXNBcnJheVZhbHVlKSB7XG4gICAgICBuZXdWYWx1ZSA9IFt2YWx1ZXNbMF1dLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKVswXTtcbiAgICB9XG5cbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKG5ld1ZhbHVlKTtcbiAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,91 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
5
+ import { MatListModule } from '@angular/material/list';
6
+ import { MatChipsModule } from '@angular/material/chips';
7
+ import { MatFormFieldModule } from '@angular/material/form-field';
8
+ import { MatIconModule } from '@angular/material/icon';
9
+ import { MatInputModule } from '@angular/material/input';
10
+ import { FormlyModule } from '@ngx-formly/core';
11
+ import { DbxSearchableChipFieldComponent } from './searchable.chip.field.component';
12
+ import { MatButtonModule } from '@angular/material/button';
13
+ import { DbxDefaultSearchableFieldDisplayComponent, DbxSearchableFieldAutocompleteItemComponent } from './searchable.field.autocomplete.item.component';
14
+ import { DbxSearchableTextFieldComponent } from './searchable.text.field.component';
15
+ import { DbxDatePipeModule, DbxInjectionComponentModule } from '@dereekb/dbx-core';
16
+ import { DbxRouterAnchorModule, DbxTextModule, DbxLoadingModule, DbxButtonModule } from '@dereekb/dbx-web';
17
+ import * as i0 from "@angular/core";
18
+ import * as i1 from "@ngx-formly/core";
19
+ export class DbxFormFormlySearchableFieldModule {
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySearchableFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
21
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySearchableFieldModule, declarations: [DbxSearchableChipFieldComponent, DbxSearchableTextFieldComponent, DbxSearchableFieldAutocompleteItemComponent, DbxDefaultSearchableFieldDisplayComponent], imports: [CommonModule,
22
+ DbxTextModule,
23
+ DbxLoadingModule,
24
+ DbxButtonModule,
25
+ FormsModule,
26
+ MatButtonModule,
27
+ MatInputModule,
28
+ MatFormFieldModule,
29
+ ReactiveFormsModule,
30
+ MatAutocompleteModule,
31
+ MatListModule,
32
+ DbxDatePipeModule,
33
+ DbxRouterAnchorModule,
34
+ MatChipsModule,
35
+ MatIconModule,
36
+ DbxInjectionComponentModule, i1.FormlyModule], exports: [DbxSearchableChipFieldComponent, DbxSearchableTextFieldComponent] }); }
37
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySearchableFieldModule, imports: [CommonModule,
38
+ DbxTextModule,
39
+ DbxLoadingModule,
40
+ DbxButtonModule,
41
+ FormsModule,
42
+ MatButtonModule,
43
+ MatInputModule,
44
+ MatFormFieldModule,
45
+ ReactiveFormsModule,
46
+ MatAutocompleteModule,
47
+ MatListModule,
48
+ DbxDatePipeModule,
49
+ DbxRouterAnchorModule,
50
+ MatChipsModule,
51
+ MatIconModule,
52
+ DbxInjectionComponentModule,
53
+ FormlyModule.forChild({
54
+ types: [
55
+ { name: 'searchablechipfield', component: DbxSearchableChipFieldComponent, wrappers: ['form-field'] },
56
+ { name: 'searchabletextfield', component: DbxSearchableTextFieldComponent, wrappers: ['form-field'] }
57
+ ]
58
+ })] }); }
59
+ }
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySearchableFieldModule, decorators: [{
61
+ type: NgModule,
62
+ args: [{
63
+ imports: [
64
+ CommonModule,
65
+ DbxTextModule,
66
+ DbxLoadingModule,
67
+ DbxButtonModule,
68
+ FormsModule,
69
+ MatButtonModule,
70
+ MatInputModule,
71
+ MatFormFieldModule,
72
+ ReactiveFormsModule,
73
+ MatAutocompleteModule,
74
+ MatListModule,
75
+ DbxDatePipeModule,
76
+ DbxRouterAnchorModule,
77
+ MatChipsModule,
78
+ MatIconModule,
79
+ DbxInjectionComponentModule,
80
+ FormlyModule.forChild({
81
+ types: [
82
+ { name: 'searchablechipfield', component: DbxSearchableChipFieldComponent, wrappers: ['form-field'] },
83
+ { name: 'searchabletextfield', component: DbxSearchableTextFieldComponent, wrappers: ['form-field'] }
84
+ ]
85
+ })
86
+ ],
87
+ declarations: [DbxSearchableChipFieldComponent, DbxSearchableTextFieldComponent, DbxSearchableFieldAutocompleteItemComponent, DbxDefaultSearchableFieldDisplayComponent],
88
+ exports: [DbxSearchableChipFieldComponent, DbxSearchableTextFieldComponent]
89
+ }]
90
+ }] });
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS5maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vc2VhcmNoYWJsZS9zZWFyY2hhYmxlLmZpZWxkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLDJDQUEyQyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDeEosT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBOEIzRyxNQUFNLE9BQU8sa0NBQWtDOytHQUFsQyxrQ0FBa0M7Z0hBQWxDLGtDQUFrQyxpQkFIOUIsK0JBQStCLEVBQUUsK0JBQStCLEVBQUUsMkNBQTJDLEVBQUUseUNBQXlDLGFBdkJySyxZQUFZO1lBQ1osYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsV0FBVztZQUNYLGVBQWU7WUFDZixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixxQkFBcUI7WUFDckIsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixxQkFBcUI7WUFDckIsY0FBYztZQUNkLGFBQWE7WUFDYiwyQkFBMkIsOEJBU25CLCtCQUErQixFQUFFLCtCQUErQjtnSEFFL0Qsa0NBQWtDLFlBMUIzQyxZQUFZO1lBQ1osYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixlQUFlO1lBQ2YsV0FBVztZQUNYLGVBQWU7WUFDZixjQUFjO1lBQ2Qsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixxQkFBcUI7WUFDckIsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixxQkFBcUI7WUFDckIsY0FBYztZQUNkLGFBQWE7WUFDYiwyQkFBMkI7WUFDM0IsWUFBWSxDQUFDLFFBQVEsQ0FBQztnQkFDcEIsS0FBSyxFQUFFO29CQUNMLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSwrQkFBK0IsRUFBRSxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRTtvQkFDckcsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLCtCQUErQixFQUFFLFFBQVEsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFO2lCQUN0RzthQUNGLENBQUM7OzRGQUtPLGtDQUFrQztrQkE1QjlDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGNBQWM7d0JBQ2Qsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLDJCQUEyQjt3QkFDM0IsWUFBWSxDQUFDLFFBQVEsQ0FBQzs0QkFDcEIsS0FBSyxFQUFFO2dDQUNMLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSwrQkFBK0IsRUFBRSxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRTtnQ0FDckcsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLCtCQUErQixFQUFFLFFBQVEsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFOzZCQUN0Rzt5QkFDRixDQUFDO3FCQUNIO29CQUNELFlBQVksRUFBRSxDQUFDLCtCQUErQixFQUFFLCtCQUErQixFQUFFLDJDQUEyQyxFQUFFLHlDQUF5QyxDQUFDO29CQUN4SyxPQUFPLEVBQUUsQ0FBQywrQkFBK0IsRUFBRSwrQkFBK0IsQ0FBQztpQkFDNUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgRGJ4U2VhcmNoYWJsZUNoaXBGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vc2VhcmNoYWJsZS5jaGlwLmZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgRGJ4RGVmYXVsdFNlYXJjaGFibGVGaWVsZERpc3BsYXlDb21wb25lbnQsIERieFNlYXJjaGFibGVGaWVsZEF1dG9jb21wbGV0ZUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3NlYXJjaGFibGUuZmllbGQuYXV0b2NvbXBsZXRlLml0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IERieFNlYXJjaGFibGVUZXh0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaGFibGUudGV4dC5maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGJ4RGF0ZVBpcGVNb2R1bGUsIERieEluamVjdGlvbkNvbXBvbmVudE1vZHVsZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IERieFJvdXRlckFuY2hvck1vZHVsZSwgRGJ4VGV4dE1vZHVsZSwgRGJ4TG9hZGluZ01vZHVsZSwgRGJ4QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRGJ4VGV4dE1vZHVsZSxcbiAgICBEYnhMb2FkaW5nTW9kdWxlLFxuICAgIERieEJ1dHRvbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIE1hdExpc3RNb2R1bGUsXG4gICAgRGJ4RGF0ZVBpcGVNb2R1bGUsXG4gICAgRGJ4Um91dGVyQW5jaG9yTW9kdWxlLFxuICAgIE1hdENoaXBzTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgRGJ4SW5qZWN0aW9uQ29tcG9uZW50TW9kdWxlLFxuICAgIEZvcm1seU1vZHVsZS5mb3JDaGlsZCh7XG4gICAgICB0eXBlczogW1xuICAgICAgICB7IG5hbWU6ICdzZWFyY2hhYmxlY2hpcGZpZWxkJywgY29tcG9uZW50OiBEYnhTZWFyY2hhYmxlQ2hpcEZpZWxkQ29tcG9uZW50LCB3cmFwcGVyczogWydmb3JtLWZpZWxkJ10gfSxcbiAgICAgICAgeyBuYW1lOiAnc2VhcmNoYWJsZXRleHRmaWVsZCcsIGNvbXBvbmVudDogRGJ4U2VhcmNoYWJsZVRleHRGaWVsZENvbXBvbmVudCwgd3JhcHBlcnM6IFsnZm9ybS1maWVsZCddIH1cbiAgICAgIF1cbiAgICB9KVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtEYnhTZWFyY2hhYmxlQ2hpcEZpZWxkQ29tcG9uZW50LCBEYnhTZWFyY2hhYmxlVGV4dEZpZWxkQ29tcG9uZW50LCBEYnhTZWFyY2hhYmxlRmllbGRBdXRvY29tcGxldGVJdGVtQ29tcG9uZW50LCBEYnhEZWZhdWx0U2VhcmNoYWJsZUZpZWxkRGlzcGxheUNvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtEYnhTZWFyY2hhYmxlQ2hpcEZpZWxkQ29tcG9uZW50LCBEYnhTZWFyY2hhYmxlVGV4dEZpZWxkQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtRm9ybWx5U2VhcmNoYWJsZUZpZWxkTW9kdWxlIHt9XG4iXX0=
@@ -47,11 +47,11 @@ export class DbxSearchableTextFieldComponent extends AbstractDbxSearchableValueF
47
47
  selected(event) {
48
48
  this.addWithDisplayValue(event.option.value);
49
49
  }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxSearchableTextFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxSearchableTextFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-searchable-text-field\" [ngClass]=\"{ 'dbx-searchable-text-field-has-value': (hasValue$ | async), 'dbx-searchable-text-field-show-value': showSelectedValue }\">\n <!-- Result View -->\n <div class=\"dbx-searchable-text-field-value mat-option mat-option-text\" *ngIf=\"showSelectedDisplayValue$ | async\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"(selectedDisplayValue$ | async)!\"></dbx-searchable-field-autocomplete-item>\n </div>\n <div class=\"dbx-searchable-text-field-input\">\n <div *ngIf=\"searchLabel\" class=\"dbx-label\">{{ searchLabel }}</div>\n <!-- View -->\n <input type=\"search\" [name]=\"name\" matInput #textInput [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\" [matAutocompleteDisabled]=\"readonly\" autocomplete=\"{{ autocomplete }}\" />\n <div class=\"searchable-field-form-loading\">\n <dbx-loading [linear]=\"true\" [context]=\"searchContext\"></dbx-loading>\n </div>\n </div>\n</div>\n\n<!-- Autocomplete -->\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let displayValue of searchResults$ | async\" [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n <!-- Add/Pick String Value -->\n <mat-option *ngIf=\"allowStringValues && (inputValue$ | async)\" [value]=\"{ value: (inputValue$ | async) }\">\n <p class=\"dbx-clear-hint text-center\">\"{{ inputValue$ | async }}\"</p>\n </mat-option>\n <!-- Show clear value -->\n <mat-option *ngIf=\"showClearValue && (hasValue$ | async)\" value=\"\">\n <p class=\"dbx-clear-hint text-center\">Clear</p>\n </mat-option>\n</mat-autocomplete>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "padding", "context", "loading", "error"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i7.DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: ["displayValue"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
50
52
  }
51
- DbxSearchableTextFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxSearchableTextFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
52
- DbxSearchableTextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: DbxSearchableTextFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-searchable-text-field\" [ngClass]=\"{ 'dbx-searchable-text-field-has-value': (hasValue$ | async), 'dbx-searchable-text-field-show-value': showSelectedValue }\">\n <!-- Result View -->\n <div class=\"dbx-searchable-text-field-value mat-option mat-option-text\" *ngIf=\"showSelectedDisplayValue$ | async\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"(selectedDisplayValue$ | async)!\"></dbx-searchable-field-autocomplete-item>\n </div>\n <div class=\"dbx-searchable-text-field-input\">\n <div *ngIf=\"searchLabel\" class=\"dbx-label\">{{ searchLabel }}</div>\n <!-- View -->\n <input type=\"search\" [name]=\"name\" matInput #textInput [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\" [matAutocompleteDisabled]=\"readonly\" autocomplete=\"{{ autocomplete }}\" />\n <div class=\"searchable-field-form-loading\">\n <dbx-loading [linear]=\"true\" [context]=\"searchContext\"></dbx-loading>\n </div>\n </div>\n</div>\n\n<!-- Autocomplete -->\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let displayValue of searchResults$ | async\" [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n <!-- Add/Pick String Value -->\n <mat-option *ngIf=\"allowStringValues && (inputValue$ | async)\" [value]=\"{ value: (inputValue$ | async) }\">\n <p class=\"dbx-clear-hint text-center\">\"{{ inputValue$ | async }}\"</p>\n </mat-option>\n <!-- Show clear value -->\n <mat-option *ngIf=\"showClearValue && (hasValue$ | async)\" value=\"\">\n <p class=\"dbx-clear-hint text-center\">Clear</p>\n </mat-option>\n</mat-autocomplete>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "padding", "context", "loading", "error"] }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i7.DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: ["displayValue"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DbxSearchableTextFieldComponent, decorators: [{
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxSearchableTextFieldComponent, decorators: [{
54
54
  type: Component,
55
55
  args: [{ template: "<div class=\"dbx-searchable-text-field\" [ngClass]=\"{ 'dbx-searchable-text-field-has-value': (hasValue$ | async), 'dbx-searchable-text-field-show-value': showSelectedValue }\">\n <!-- Result View -->\n <div class=\"dbx-searchable-text-field-value mat-option mat-option-text\" *ngIf=\"showSelectedDisplayValue$ | async\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"(selectedDisplayValue$ | async)!\"></dbx-searchable-field-autocomplete-item>\n </div>\n <div class=\"dbx-searchable-text-field-input\">\n <div *ngIf=\"searchLabel\" class=\"dbx-label\">{{ searchLabel }}</div>\n <!-- View -->\n <input type=\"search\" [name]=\"name\" matInput #textInput [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\" [matAutocompleteDisabled]=\"readonly\" autocomplete=\"{{ autocomplete }}\" />\n <div class=\"searchable-field-form-loading\">\n <dbx-loading [linear]=\"true\" [context]=\"searchContext\"></dbx-loading>\n </div>\n </div>\n</div>\n\n<!-- Autocomplete -->\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto (optionSelected)=\"selected($event)\">\n <mat-option *ngFor=\"let displayValue of searchResults$ | async\" [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n <!-- Add/Pick String Value -->\n <mat-option *ngIf=\"allowStringValues && (inputValue$ | async)\" [value]=\"{ value: (inputValue$ | async) }\">\n <p class=\"dbx-clear-hint text-center\">\"{{ inputValue$ | async }}\"</p>\n </mat-option>\n <!-- Show clear value -->\n <mat-option *ngIf=\"showClearValue && (hasValue$ | async)\" value=\"\">\n <p class=\"dbx-clear-hint text-center\">Clear</p>\n </mat-option>\n</mat-autocomplete>\n" }]
56
56
  }] });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS50ZXh0LmZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zZWFyY2hhYmxlL3NlYXJjaGFibGUudGV4dC5maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vc2VhcmNoYWJsZS9zZWFyY2hhYmxlLnRleHQuZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSx3Q0FBd0MsRUFBbUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN6SCxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7OztBQU9yRDs7R0FFRztBQUlILE1BQU0sT0FBTywrQkFBdUYsU0FBUSx3Q0FBK0Y7SUFIM007O1FBSVcsMEJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBRTdCLDBCQUFxQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN2RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNoQixXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ2QsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUM3QixDQUFDO1FBRU8sY0FBUyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLDhCQUF5QixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQ2xFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNoRCxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ2QsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUM3QixDQUFDO1FBY00sbUJBQWMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7S0FvQm5EO0lBaENDLElBQWEsZUFBZTtRQUMxQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLDZEQUE2RDtJQUN6SSxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBSVEsUUFBUTtRQUNmLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM3RixJQUFJLENBQUMsQ0FBQyxFQUFFO2dCQUNOLHNCQUFzQjthQUN2QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFtQztRQUMxQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDOzs2SEFoRFUsK0JBQStCO2lIQUEvQiwrQkFBK0IsMkVDbEI1Qyw2eERBNkJBOzRGRFhhLCtCQUErQjtrQkFIM0MsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YnNjcmlwdGlvbk9iamVjdCB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBBYnN0cmFjdERieFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlyZWN0aXZlLCBTZWFyY2hhYmxlVmFsdWVGaWVsZHNGaWVsZFByb3BzIH0gZnJvbSAnLi9zZWFyY2hhYmxlLmZpZWxkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5LCBza2lwV2hpbGUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YXBEZXRlY3RDaGFuZ2VzIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgUHJpbWF0aXZlS2V5IH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoYWJsZVRleHRWYWx1ZUZpZWxkc0ZpZWxkUHJvcHM8VCwgTSA9IHVua25vd24sIEggZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXk+IGV4dGVuZHMgU2VhcmNoYWJsZVZhbHVlRmllbGRzRmllbGRQcm9wczxULCBNLCBIPiB7XG4gIHNob3dTZWxlY3RlZFZhbHVlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEaXNwbGF5IGNvbXBvbmVudCBmb3Igc2VsZWN0aW5nIGEgc2luZ2xlIGl0ZW0vdmFsdWUuXG4gKi9cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJ3NlYXJjaGFibGUudGV4dC5maWVsZC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4U2VhcmNoYWJsZVRleHRGaWVsZENvbXBvbmVudDxULCBNID0gdW5rbm93biwgSCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleT4gZXh0ZW5kcyBBYnN0cmFjdERieFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlyZWN0aXZlPFQsIE0sIEgsIFNlYXJjaGFibGVUZXh0VmFsdWVGaWVsZHNGaWVsZFByb3BzPFQsIE0sIEg+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgb3ZlcnJpZGUgYWxsb3dTeW5jVmFsdWVUb0lucHV0ID0gdHJ1ZTtcblxuICByZWFkb25seSBzZWxlY3RlZERpc3BsYXlWYWx1ZSQgPSB0aGlzLmRpc3BsYXlWYWx1ZXMkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4WzBdKSxcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgICB0YXBEZXRlY3RDaGFuZ2VzKHRoaXMuY2RSZWYpXG4gICk7XG5cbiAgcmVhZG9ubHkgaGFzVmFsdWUkID0gdGhpcy5zZWxlY3RlZERpc3BsYXlWYWx1ZSQucGlwZShtYXAoKHgpID0+IEJvb2xlYW4oeCkpKTtcbiAgcmVhZG9ubHkgc2hvd1NlbGVjdGVkRGlzcGxheVZhbHVlJCA9IHRoaXMuc2VsZWN0ZWREaXNwbGF5VmFsdWUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB0aGlzLnNob3dTZWxlY3RlZFZhbHVlICYmIEJvb2xlYW4oeCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICAgdGFwRGV0ZWN0Q2hhbmdlcyh0aGlzLmNkUmVmKVxuICApO1xuXG4gIG92ZXJyaWRlIGdldCBzZWFyY2hhYmxlRmllbGQoKTogU2VhcmNoYWJsZVRleHRWYWx1ZUZpZWxkc0ZpZWxkUHJvcHM8VCwgTSwgSD4ge1xuICAgIHJldHVybiB0aGlzLnByb3BzO1xuICB9XG5cbiAgZ2V0IHNob3dTZWxlY3RlZFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaGFibGVGaWVsZC5zaG93U2VsZWN0ZWRWYWx1ZSA/PyAhdGhpcy5hbGxvd1N0cmluZ1ZhbHVlczsgLy8gU2hvdyB0aGUgc2VsZWN0ZWQgdmFsdWUgb25seSBpZiBzdHJpbmcgdmFsdWVzIGFyZSBhbGxvd2VkLlxuICB9XG5cbiAgZ2V0IG11bHRpU2VsZWN0KCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgX2NsZWFySW5wdXRTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIHRoaXMuX2NsZWFySW5wdXRTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5pbnB1dFZhbHVlJC5waXBlKHNraXBXaGlsZSgoeCkgPT4gIXgpKS5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgIGlmICgheCkge1xuICAgICAgICAvLyB0aGlzLmNsZWFyVmFsdWVzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX2NsZWFySW5wdXRTdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgc2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmFkZFdpdGhEaXNwbGF5VmFsdWUoZXZlbnQub3B0aW9uLnZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRieC1zZWFyY2hhYmxlLXRleHQtZmllbGRcIiBbbmdDbGFzc109XCJ7ICdkYngtc2VhcmNoYWJsZS10ZXh0LWZpZWxkLWhhcy12YWx1ZSc6IChoYXNWYWx1ZSQgfCBhc3luYyksICdkYngtc2VhcmNoYWJsZS10ZXh0LWZpZWxkLXNob3ctdmFsdWUnOiBzaG93U2VsZWN0ZWRWYWx1ZSB9XCI+XG4gIDwhLS0gUmVzdWx0IFZpZXcgLS0+XG4gIDxkaXYgY2xhc3M9XCJkYngtc2VhcmNoYWJsZS10ZXh0LWZpZWxkLXZhbHVlIG1hdC1vcHRpb24gbWF0LW9wdGlvbi10ZXh0XCIgKm5nSWY9XCJzaG93U2VsZWN0ZWREaXNwbGF5VmFsdWUkIHwgYXN5bmNcIj5cbiAgICA8ZGJ4LXNlYXJjaGFibGUtZmllbGQtYXV0b2NvbXBsZXRlLWl0ZW0gW2Rpc3BsYXlWYWx1ZV09XCIoc2VsZWN0ZWREaXNwbGF5VmFsdWUkIHwgYXN5bmMpIVwiPjwvZGJ4LXNlYXJjaGFibGUtZmllbGQtYXV0b2NvbXBsZXRlLWl0ZW0+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGJ4LXNlYXJjaGFibGUtdGV4dC1maWVsZC1pbnB1dFwiPlxuICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hMYWJlbFwiIGNsYXNzPVwiZGJ4LWxhYmVsXCI+e3sgc2VhcmNoTGFiZWwgfX08L2Rpdj5cbiAgICA8IS0tIFZpZXcgLS0+XG4gICAgPGlucHV0IHR5cGU9XCJzZWFyY2hcIiBbbmFtZV09XCJuYW1lXCIgbWF0SW5wdXQgI3RleHRJbnB1dCBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbZm9ybUNvbnRyb2xdPVwiaW5wdXRDdHJsXCIgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIgW21hdEF1dG9jb21wbGV0ZURpc2FibGVkXT1cInJlYWRvbmx5XCIgYXV0b2NvbXBsZXRlPVwie3sgYXV0b2NvbXBsZXRlIH19XCIgLz5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoYWJsZS1maWVsZC1mb3JtLWxvYWRpbmdcIj5cbiAgICAgIDxkYngtbG9hZGluZyBbbGluZWFyXT1cInRydWVcIiBbY29udGV4dF09XCJzZWFyY2hDb250ZXh0XCI+PC9kYngtbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSBBdXRvY29tcGxldGUgLS0+XG48bWF0LWF1dG9jb21wbGV0ZSBjbGFzcz1cImRieC1zZWFyY2hhYmxlLXRleHQtZmllbGQtYXV0b2NvbXBsZXRlXCIgI2F1dG8gKG9wdGlvblNlbGVjdGVkKT1cInNlbGVjdGVkKCRldmVudClcIj5cbiAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGRpc3BsYXlWYWx1ZSBvZiBzZWFyY2hSZXN1bHRzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cImRpc3BsYXlWYWx1ZVwiPlxuICAgIDxkYngtc2VhcmNoYWJsZS1maWVsZC1hdXRvY29tcGxldGUtaXRlbSBbZGlzcGxheVZhbHVlXT1cImRpc3BsYXlWYWx1ZVwiPjwvZGJ4LXNlYXJjaGFibGUtZmllbGQtYXV0b2NvbXBsZXRlLWl0ZW0+XG4gIDwvbWF0LW9wdGlvbj5cbiAgPCEtLSBBZGQvUGljayBTdHJpbmcgVmFsdWUgLS0+XG4gIDxtYXQtb3B0aW9uICpuZ0lmPVwiYWxsb3dTdHJpbmdWYWx1ZXMgJiYgKGlucHV0VmFsdWUkIHwgYXN5bmMpXCIgW3ZhbHVlXT1cInsgdmFsdWU6IChpbnB1dFZhbHVlJCB8IGFzeW5jKSB9XCI+XG4gICAgPHAgY2xhc3M9XCJkYngtY2xlYXItaGludCB0ZXh0LWNlbnRlclwiPlwie3sgaW5wdXRWYWx1ZSQgfCBhc3luYyB9fVwiPC9wPlxuICA8L21hdC1vcHRpb24+XG4gIDwhLS0gU2hvdyBjbGVhciB2YWx1ZSAtLT5cbiAgPG1hdC1vcHRpb24gKm5nSWY9XCJzaG93Q2xlYXJWYWx1ZSAmJiAoaGFzVmFsdWUkIHwgYXN5bmMpXCIgdmFsdWU9XCJcIj5cbiAgICA8cCBjbGFzcz1cImRieC1jbGVhci1oaW50IHRleHQtY2VudGVyXCI+Q2xlYXI8L3A+XG4gIDwvbWF0LW9wdGlvbj5cbjwvbWF0LWF1dG9jb21wbGV0ZT5cbiJdfQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoYWJsZS50ZXh0LmZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3NlbGVjdGlvbi9zZWFyY2hhYmxlL3NlYXJjaGFibGUudGV4dC5maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC9zZWxlY3Rpb24vc2VhcmNoYWJsZS9zZWFyY2hhYmxlLnRleHQuZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSx3Q0FBd0MsRUFBbUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN6SCxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7OztBQU9yRDs7R0FFRztBQUlILE1BQU0sT0FBTywrQkFBdUYsU0FBUSx3Q0FBK0Y7SUFIM007O1FBSVcsMEJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBRTdCLDBCQUFxQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN2RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNoQixXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ2QsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUM3QixDQUFDO1FBRU8sY0FBUyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLDhCQUF5QixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQ2xFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNoRCxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ2QsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUM3QixDQUFDO1FBY00sbUJBQWMsR0FBRyxJQUFJLGtCQUFrQixFQUFFLENBQUM7S0FvQm5EO0lBaENDLElBQWEsZUFBZTtRQUMxQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLDZEQUE2RDtJQUN6SSxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBSVEsUUFBUTtRQUNmLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM3RixJQUFJLENBQUMsQ0FBQyxFQUFFO2dCQUNOLHNCQUFzQjthQUN2QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVRLFdBQVc7UUFDbEIsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFtQztRQUMxQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDOytHQWhEVSwrQkFBK0I7bUdBQS9CLCtCQUErQiwyRUNsQjVDLDZ4REE2QkE7OzRGRFhhLCtCQUErQjtrQkFIM0MsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN1YnNjcmlwdGlvbk9iamVjdCB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBBYnN0cmFjdERieFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlyZWN0aXZlLCBTZWFyY2hhYmxlVmFsdWVGaWVsZHNGaWVsZFByb3BzIH0gZnJvbSAnLi9zZWFyY2hhYmxlLmZpZWxkLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5LCBza2lwV2hpbGUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YXBEZXRlY3RDaGFuZ2VzIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgUHJpbWF0aXZlS2V5IH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoYWJsZVRleHRWYWx1ZUZpZWxkc0ZpZWxkUHJvcHM8VCwgTSA9IHVua25vd24sIEggZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXk+IGV4dGVuZHMgU2VhcmNoYWJsZVZhbHVlRmllbGRzRmllbGRQcm9wczxULCBNLCBIPiB7XG4gIHNob3dTZWxlY3RlZFZhbHVlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBEaXNwbGF5IGNvbXBvbmVudCBmb3Igc2VsZWN0aW5nIGEgc2luZ2xlIGl0ZW0vdmFsdWUuXG4gKi9cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJ3NlYXJjaGFibGUudGV4dC5maWVsZC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRGJ4U2VhcmNoYWJsZVRleHRGaWVsZENvbXBvbmVudDxULCBNID0gdW5rbm93biwgSCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleT4gZXh0ZW5kcyBBYnN0cmFjdERieFNlYXJjaGFibGVWYWx1ZUZpZWxkRGlyZWN0aXZlPFQsIE0sIEgsIFNlYXJjaGFibGVUZXh0VmFsdWVGaWVsZHNGaWVsZFByb3BzPFQsIE0sIEg+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgb3ZlcnJpZGUgYWxsb3dTeW5jVmFsdWVUb0lucHV0ID0gdHJ1ZTtcblxuICByZWFkb25seSBzZWxlY3RlZERpc3BsYXlWYWx1ZSQgPSB0aGlzLmRpc3BsYXlWYWx1ZXMkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4WzBdKSxcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgICB0YXBEZXRlY3RDaGFuZ2VzKHRoaXMuY2RSZWYpXG4gICk7XG5cbiAgcmVhZG9ubHkgaGFzVmFsdWUkID0gdGhpcy5zZWxlY3RlZERpc3BsYXlWYWx1ZSQucGlwZShtYXAoKHgpID0+IEJvb2xlYW4oeCkpKTtcbiAgcmVhZG9ubHkgc2hvd1NlbGVjdGVkRGlzcGxheVZhbHVlJCA9IHRoaXMuc2VsZWN0ZWREaXNwbGF5VmFsdWUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB0aGlzLnNob3dTZWxlY3RlZFZhbHVlICYmIEJvb2xlYW4oeCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICAgdGFwRGV0ZWN0Q2hhbmdlcyh0aGlzLmNkUmVmKVxuICApO1xuXG4gIG92ZXJyaWRlIGdldCBzZWFyY2hhYmxlRmllbGQoKTogU2VhcmNoYWJsZVRleHRWYWx1ZUZpZWxkc0ZpZWxkUHJvcHM8VCwgTSwgSD4ge1xuICAgIHJldHVybiB0aGlzLnByb3BzO1xuICB9XG5cbiAgZ2V0IHNob3dTZWxlY3RlZFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaGFibGVGaWVsZC5zaG93U2VsZWN0ZWRWYWx1ZSA/PyAhdGhpcy5hbGxvd1N0cmluZ1ZhbHVlczsgLy8gU2hvdyB0aGUgc2VsZWN0ZWQgdmFsdWUgb25seSBpZiBzdHJpbmcgdmFsdWVzIGFyZSBhbGxvd2VkLlxuICB9XG5cbiAgZ2V0IG11bHRpU2VsZWN0KCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgX2NsZWFySW5wdXRTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIHRoaXMuX2NsZWFySW5wdXRTdWIuc3Vic2NyaXB0aW9uID0gdGhpcy5pbnB1dFZhbHVlJC5waXBlKHNraXBXaGlsZSgoeCkgPT4gIXgpKS5zdWJzY3JpYmUoKHgpID0+IHtcbiAgICAgIGlmICgheCkge1xuICAgICAgICAvLyB0aGlzLmNsZWFyVmFsdWVzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuX2NsZWFySW5wdXRTdWIuZGVzdHJveSgpO1xuICB9XG5cbiAgc2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmFkZFdpdGhEaXNwbGF5VmFsdWUoZXZlbnQub3B0aW9uLnZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRieC1zZWFyY2hhYmxlLXRleHQtZmllbGRcIiBbbmdDbGFzc109XCJ7ICdkYngtc2VhcmNoYWJsZS10ZXh0LWZpZWxkLWhhcy12YWx1ZSc6IChoYXNWYWx1ZSQgfCBhc3luYyksICdkYngtc2VhcmNoYWJsZS10ZXh0LWZpZWxkLXNob3ctdmFsdWUnOiBzaG93U2VsZWN0ZWRWYWx1ZSB9XCI+XG4gIDwhLS0gUmVzdWx0IFZpZXcgLS0+XG4gIDxkaXYgY2xhc3M9XCJkYngtc2VhcmNoYWJsZS10ZXh0LWZpZWxkLXZhbHVlIG1hdC1vcHRpb24gbWF0LW9wdGlvbi10ZXh0XCIgKm5nSWY9XCJzaG93U2VsZWN0ZWREaXNwbGF5VmFsdWUkIHwgYXN5bmNcIj5cbiAgICA8ZGJ4LXNlYXJjaGFibGUtZmllbGQtYXV0b2NvbXBsZXRlLWl0ZW0gW2Rpc3BsYXlWYWx1ZV09XCIoc2VsZWN0ZWREaXNwbGF5VmFsdWUkIHwgYXN5bmMpIVwiPjwvZGJ4LXNlYXJjaGFibGUtZmllbGQtYXV0b2NvbXBsZXRlLWl0ZW0+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGJ4LXNlYXJjaGFibGUtdGV4dC1maWVsZC1pbnB1dFwiPlxuICAgIDxkaXYgKm5nSWY9XCJzZWFyY2hMYWJlbFwiIGNsYXNzPVwiZGJ4LWxhYmVsXCI+e3sgc2VhcmNoTGFiZWwgfX08L2Rpdj5cbiAgICA8IS0tIFZpZXcgLS0+XG4gICAgPGlucHV0IHR5cGU9XCJzZWFyY2hcIiBbbmFtZV09XCJuYW1lXCIgbWF0SW5wdXQgI3RleHRJbnB1dCBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbZm9ybUNvbnRyb2xdPVwiaW5wdXRDdHJsXCIgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCIgW21hdEF1dG9jb21wbGV0ZURpc2FibGVkXT1cInJlYWRvbmx5XCIgYXV0b2NvbXBsZXRlPVwie3sgYXV0b2NvbXBsZXRlIH19XCIgLz5cbiAgICA8ZGl2IGNsYXNzPVwic2VhcmNoYWJsZS1maWVsZC1mb3JtLWxvYWRpbmdcIj5cbiAgICAgIDxkYngtbG9hZGluZyBbbGluZWFyXT1cInRydWVcIiBbY29udGV4dF09XCJzZWFyY2hDb250ZXh0XCI+PC9kYngtbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSBBdXRvY29tcGxldGUgLS0+XG48bWF0LWF1dG9jb21wbGV0ZSBjbGFzcz1cImRieC1zZWFyY2hhYmxlLXRleHQtZmllbGQtYXV0b2NvbXBsZXRlXCIgI2F1dG8gKG9wdGlvblNlbGVjdGVkKT1cInNlbGVjdGVkKCRldmVudClcIj5cbiAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGRpc3BsYXlWYWx1ZSBvZiBzZWFyY2hSZXN1bHRzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cImRpc3BsYXlWYWx1ZVwiPlxuICAgIDxkYngtc2VhcmNoYWJsZS1maWVsZC1hdXRvY29tcGxldGUtaXRlbSBbZGlzcGxheVZhbHVlXT1cImRpc3BsYXlWYWx1ZVwiPjwvZGJ4LXNlYXJjaGFibGUtZmllbGQtYXV0b2NvbXBsZXRlLWl0ZW0+XG4gIDwvbWF0LW9wdGlvbj5cbiAgPCEtLSBBZGQvUGljayBTdHJpbmcgVmFsdWUgLS0+XG4gIDxtYXQtb3B0aW9uICpuZ0lmPVwiYWxsb3dTdHJpbmdWYWx1ZXMgJiYgKGlucHV0VmFsdWUkIHwgYXN5bmMpXCIgW3ZhbHVlXT1cInsgdmFsdWU6IChpbnB1dFZhbHVlJCB8IGFzeW5jKSB9XCI+XG4gICAgPHAgY2xhc3M9XCJkYngtY2xlYXItaGludCB0ZXh0LWNlbnRlclwiPlwie3sgaW5wdXRWYWx1ZSQgfCBhc3luYyB9fVwiPC9wPlxuICA8L21hdC1vcHRpb24+XG4gIDwhLS0gU2hvdyBjbGVhciB2YWx1ZSAtLT5cbiAgPG1hdC1vcHRpb24gKm5nSWY9XCJzaG93Q2xlYXJWYWx1ZSAmJiAoaGFzVmFsdWUkIHwgYXN5bmMpXCIgdmFsdWU9XCJcIj5cbiAgICA8cCBjbGFzcz1cImRieC1jbGVhci1oaW50IHRleHQtY2VudGVyXCI+Q2xlYXI8L3A+XG4gIDwvbWF0LW9wdGlvbj5cbjwvbWF0LWF1dG9jb21wbGV0ZT5cbiJdfQ==
@@ -0,0 +1,39 @@
1
+ import { asObservable } from '@dereekb/rxjs';
2
+ import { convertMaybeToArray, firstValue } from '@dereekb/util';
3
+ import { map } from 'rxjs';
4
+ import { formlyField, propsAndConfigForFieldConfig } from '../field';
5
+ export function valueSelectionField(config) {
6
+ const { key, native = false, addClearOption = false, selectAllOption: inputSelectAllOption, options: inputOptions, materialFormField } = config;
7
+ let selectAllOptionConfig;
8
+ if (inputSelectAllOption) {
9
+ selectAllOptionConfig = {
10
+ selectAllOption: typeof inputSelectAllOption === 'boolean' ? 'Select All' : inputSelectAllOption
11
+ };
12
+ }
13
+ const options = addClearOption ? asObservable(inputOptions).pipe(map(addValueSelectionOptionFunction(typeof addClearOption === 'string' ? addClearOption : undefined))) : inputOptions;
14
+ let parsers = undefined;
15
+ parsers = config.multiple !== true ? [firstValue] : [convertMaybeToArray];
16
+ return formlyField({
17
+ key,
18
+ type: native ? 'native-select' : 'select',
19
+ ...propsAndConfigForFieldConfig(config, {
20
+ ...materialFormField,
21
+ options,
22
+ multiple: config.multiple,
23
+ ...selectAllOptionConfig
24
+ }),
25
+ parsers
26
+ });
27
+ }
28
+ export function addValueSelectionOptionFunction(label) {
29
+ return (options) => {
30
+ const hasClear = options.findIndex((x) => x.clear) !== -1;
31
+ if (hasClear) {
32
+ return options;
33
+ }
34
+ else {
35
+ return [{ label, clear: true }, ...options];
36
+ }
37
+ };
38
+ }
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmZpZWxkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3NlbGVjdGlvbi5maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUVyRixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNCLE9BQU8sRUFBMEIsV0FBVyxFQUFrRSw0QkFBNEIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQXNDN0osTUFBTSxVQUFVLG1CQUFtQixDQUFJLE1BQW9DO0lBQ3pFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxHQUFHLEtBQUssRUFBRSxjQUFjLEdBQUcsS0FBSyxFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ2hKLElBQUkscUJBQXlELENBQUM7SUFFOUQsSUFBSSxvQkFBb0IsRUFBRTtRQUN4QixxQkFBcUIsR0FBRztZQUN0QixlQUFlLEVBQUUsT0FBTyxvQkFBb0IsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUUsb0JBQStCO1NBQzdHLENBQUM7S0FDSDtJQUVELE1BQU0sT0FBTyxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsT0FBTyxjQUFjLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ3ZMLElBQUksT0FBTyxHQUFvQyxTQUFTLENBQUM7SUFFekQsT0FBTyxHQUFHLE1BQU0sQ0FBQyxRQUFRLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFMUUsT0FBTyxXQUFXLENBQUM7UUFDakIsR0FBRztRQUNILElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsUUFBUTtRQUN6QyxHQUFHLDRCQUE0QixDQUFDLE1BQU0sRUFBRTtZQUN0QyxHQUFHLGlCQUFpQjtZQUNwQixPQUFPO1lBQ1AsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLEdBQUcscUJBQXFCO1NBQ3pCLENBQUM7UUFDRixPQUFPO0tBQ1IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSwrQkFBK0IsQ0FBSSxLQUEwQjtJQUMzRSxPQUFPLENBQUMsT0FBa0MsRUFBRSxFQUFFO1FBQzVDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFFLENBQStCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFekYsSUFBSSxRQUFRLEVBQUU7WUFDWixPQUFPLE9BQU8sQ0FBQztTQUNoQjthQUFNO1lBQ0wsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1NBQzdDO0lBQ0gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFzT2JzZXJ2YWJsZSwgT2JzZXJ2YWJsZU9yVmFsdWUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IGNvbnZlcnRNYXliZVRvQXJyYXksIGZpcnN0VmFsdWUsIExhYmVsZWRWYWx1ZSwgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERlc2NyaXB0aW9uRmllbGRDb25maWcsIGZvcm1seUZpZWxkLCBGb3JtbHlWYWx1ZVBhcnNlciwgTGFiZWxlZEZpZWxkQ29uZmlnLCBNYXRlcmlhbEZvcm1GaWVsZENvbmZpZywgcHJvcHNBbmRDb25maWdGb3JGaWVsZENvbmZpZyB9IGZyb20gJy4uL2ZpZWxkJztcblxuZXhwb3J0IGludGVyZmFjZSBWYWx1ZVNlbGVjdGlvbk9wdGlvbldpdGhWYWx1ZTxUPiBleHRlbmRzIExhYmVsZWRWYWx1ZTxUPiB7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBWYWx1ZVNlbGVjdGlvbk9wdGlvbkNsZWFyIHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGNsZWFyOiB0cnVlO1xufVxuXG5leHBvcnQgdHlwZSBWYWx1ZVNlbGVjdGlvbk9wdGlvbjxUPiA9IFZhbHVlU2VsZWN0aW9uT3B0aW9uV2l0aFZhbHVlPFQ+IHwgVmFsdWVTZWxlY3Rpb25PcHRpb25DbGVhcjtcblxuZXhwb3J0IGludGVyZmFjZSBWYWx1ZVNlbGVjdGlvbkZpZWxkQ29uZmlnPFQ+IGV4dGVuZHMgTGFiZWxlZEZpZWxkQ29uZmlnLCBEZXNjcmlwdGlvbkZpZWxkQ29uZmlnLCBNYXRlcmlhbEZvcm1GaWVsZENvbmZpZyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byB1c2UgdGhlIG5hdGl2ZSBzZWxlY3QuXG4gICAqXG4gICAqIEJlIHN1cmUgdG8gaW1wb3J0IEZvcm1seU1hdE5hdGl2ZVNlbGVjdE1vZHVsZS5cbiAgICovXG4gIHJlYWRvbmx5IG5hdGl2ZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBhZGQgYSBjbGVhciBvcHRpb24gdG8gdGhlIGlucHV0IHZhbHVlcy5cbiAgICovXG4gIHJlYWRvbmx5IGFkZENsZWFyT3B0aW9uPzogc3RyaW5nIHwgYm9vbGVhbjtcbiAgLyoqXG4gICAqIFZhbHVlcyB0byBzZWxlY3QgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IG9wdGlvbnM6IE9ic2VydmFibGVPclZhbHVlPFZhbHVlU2VsZWN0aW9uT3B0aW9uPFQ+W10+O1xuICAvKipcbiAgICogQWxsb3cgc2VsZWN0aW5nIG11bHRpcGxlIHZhbHVlcyBhbmQgcmV0dXJuIGFuIGFycmF5LlxuICAgKi9cbiAgcmVhZG9ubHkgbXVsdGlwbGU/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIHNlbGVjdCBhbGwgb3B0aW9uIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICByZWFkb25seSBzZWxlY3RBbGxPcHRpb24/OiB0cnVlIHwgc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsdWVTZWxlY3Rpb25GaWVsZDxUPihjb25maWc6IFZhbHVlU2VsZWN0aW9uRmllbGRDb25maWc8VD4pOiBGb3JtbHlGaWVsZENvbmZpZyB7XG4gIGNvbnN0IHsga2V5LCBuYXRpdmUgPSBmYWxzZSwgYWRkQ2xlYXJPcHRpb24gPSBmYWxzZSwgc2VsZWN0QWxsT3B0aW9uOiBpbnB1dFNlbGVjdEFsbE9wdGlvbiwgb3B0aW9uczogaW5wdXRPcHRpb25zLCBtYXRlcmlhbEZvcm1GaWVsZCB9ID0gY29uZmlnO1xuICBsZXQgc2VsZWN0QWxsT3B0aW9uQ29uZmlnOiBNYXliZTx7IHNlbGVjdEFsbE9wdGlvbjogc3RyaW5nIH0+O1xuXG4gIGlmIChpbnB1dFNlbGVjdEFsbE9wdGlvbikge1xuICAgIHNlbGVjdEFsbE9wdGlvbkNvbmZpZyA9IHtcbiAgICAgIHNlbGVjdEFsbE9wdGlvbjogdHlwZW9mIGlucHV0U2VsZWN0QWxsT3B0aW9uID09PSAnYm9vbGVhbicgPyAnU2VsZWN0IEFsbCcgOiAoaW5wdXRTZWxlY3RBbGxPcHRpb24gYXMgc3RyaW5nKVxuICAgIH07XG4gIH1cblxuICBjb25zdCBvcHRpb25zID0gYWRkQ2xlYXJPcHRpb24gPyBhc09ic2VydmFibGUoaW5wdXRPcHRpb25zKS5waXBlKG1hcChhZGRWYWx1ZVNlbGVjdGlvbk9wdGlvbkZ1bmN0aW9uKHR5cGVvZiBhZGRDbGVhck9wdGlvbiA9PT0gJ3N0cmluZycgPyBhZGRDbGVhck9wdGlvbiA6IHVuZGVmaW5lZCkpKSA6IGlucHV0T3B0aW9ucztcbiAgbGV0IHBhcnNlcnM6IEZvcm1seVZhbHVlUGFyc2VyW10gfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgcGFyc2VycyA9IGNvbmZpZy5tdWx0aXBsZSAhPT0gdHJ1ZSA/IFtmaXJzdFZhbHVlXSA6IFtjb252ZXJ0TWF5YmVUb0FycmF5XTtcblxuICByZXR1cm4gZm9ybWx5RmllbGQoe1xuICAgIGtleSxcbiAgICB0eXBlOiBuYXRpdmUgPyAnbmF0aXZlLXNlbGVjdCcgOiAnc2VsZWN0JyxcbiAgICAuLi5wcm9wc0FuZENvbmZpZ0ZvckZpZWxkQ29uZmlnKGNvbmZpZywge1xuICAgICAgLi4ubWF0ZXJpYWxGb3JtRmllbGQsXG4gICAgICBvcHRpb25zLFxuICAgICAgbXVsdGlwbGU6IGNvbmZpZy5tdWx0aXBsZSxcbiAgICAgIC4uLnNlbGVjdEFsbE9wdGlvbkNvbmZpZ1xuICAgIH0pLFxuICAgIHBhcnNlcnNcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRWYWx1ZVNlbGVjdGlvbk9wdGlvbkZ1bmN0aW9uPFQ+KGxhYmVsPzogc3RyaW5nIHwgdW5kZWZpbmVkKTogKG9wdGlvbnM6IFZhbHVlU2VsZWN0aW9uT3B0aW9uPFQ+W10pID0+IFZhbHVlU2VsZWN0aW9uT3B0aW9uPFQ+W10ge1xuICByZXR1cm4gKG9wdGlvbnM6IFZhbHVlU2VsZWN0aW9uT3B0aW9uPFQ+W10pID0+IHtcbiAgICBjb25zdCBoYXNDbGVhciA9IG9wdGlvbnMuZmluZEluZGV4KCh4KSA9PiAoeCBhcyBWYWx1ZVNlbGVjdGlvbk9wdGlvbkNsZWFyKS5jbGVhcikgIT09IC0xO1xuXG4gICAgaWYgKGhhc0NsZWFyKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFt7IGxhYmVsLCBjbGVhcjogdHJ1ZSB9LCAuLi5vcHRpb25zXTtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3NlbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJpbWF0aXZlS2V5LCBNYXliZSwgTWFwRnVuY3Rpb24sIExhYmVsUmVmIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0aW9uVmFsdWU8VCwgTSA9IHVua25vd24+IHtcbiAgLyoqXG4gICAqIFZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZpZWxkLlxuICAgKi9cbiAgdmFsdWU6IFQ7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBtZXRhZGF0YSBvbiB0aGUgZmllbGQuXG4gICAqL1xuICBtZXRhPzogTWF5YmU8TT47XG59XG5cbi8qKlxuICogRGlzcGxheWVkIHZhbHVlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGlvbkRpc3BsYXlWYWx1ZTxULCBNID0gdW5rbm93bj4gZXh0ZW5kcyBTZWxlY3Rpb25WYWx1ZTxULCBNPiwgTGFiZWxSZWYge1xuICBzdWJsYWJlbD86IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSB2YWx1ZSBpcyBrbm93bi5cbiAgICovXG4gIGlzVW5rbm93bj86IE1heWJlPGJvb2xlYW4+O1xufVxuXG4vKipcbiAqIFVzZWQgdG8gaGFzaCB0aGUgdmFsdWUgZnJvbSB0aGUgaW5wdXQgcGlja2FibGUgdmFsdWUuXG4gKi9cbmV4cG9ydCB0eXBlIFNlbGVjdGlvblZhbHVlSGFzaEZ1bmN0aW9uPFQsIEggZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXk+ID0gTWFwRnVuY3Rpb248VCwgSD47XG5cbi8vIE1BUks6IENvbXBhdFxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgU2VsZWN0aW9uVmFsdWVIYXNoRnVuY3Rpb25cbiAqL1xuZXhwb3J0IHR5cGUgU2VsZWN0aW9uVmFsdWVIYXNoRm48VCwgSCBleHRlbmRzIFByaW1hdGl2ZUtleSA9IFByaW1hdGl2ZUtleT4gPSBTZWxlY3Rpb25WYWx1ZUhhc2hGdW5jdGlvbjxULCBIPjtcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vc3JjL2xpYi9mb3JtbHkvZmllbGQvc2VsZWN0aW9uL3NlbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJpbWF0aXZlS2V5LCBNYXliZSwgTWFwRnVuY3Rpb24sIExhYmVsUmVmIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0aW9uVmFsdWU8VCwgTSA9IHVua25vd24+IHtcbiAgLyoqXG4gICAqIFZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZpZWxkLlxuICAgKi9cbiAgdmFsdWU6IFQ7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBtZXRhZGF0YSBvbiB0aGUgZmllbGQuXG4gICAqL1xuICBtZXRhPzogTWF5YmU8TT47XG59XG5cbi8qKlxuICogRGlzcGxheWVkIHZhbHVlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlbGVjdGlvbkRpc3BsYXlWYWx1ZTxULCBNID0gdW5rbm93bj4gZXh0ZW5kcyBTZWxlY3Rpb25WYWx1ZTxULCBNPiwgTGFiZWxSZWYge1xuICBzdWJsYWJlbD86IHN0cmluZztcbiAgaWNvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSB2YWx1ZSBpcyBrbm93bi5cbiAgICovXG4gIGlzVW5rbm93bj86IE1heWJlPGJvb2xlYW4+O1xufVxuXG4vKipcbiAqIFVzZWQgdG8gaGFzaCB0aGUgdmFsdWUgZnJvbSB0aGUgaW5wdXQgcGlja2FibGUgdmFsdWUuXG4gKi9cbmV4cG9ydCB0eXBlIFNlbGVjdGlvblZhbHVlSGFzaEZ1bmN0aW9uPFQsIEggZXh0ZW5kcyBQcmltYXRpdmVLZXkgPSBQcmltYXRpdmVLZXk+ID0gTWFwRnVuY3Rpb248VCwgSD47XG4iXX0=