@dereekb/dbx-form 11.1.8 → 12.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 (248) hide show
  1. package/calendar/lib/calendar.module.d.ts +1 -14
  2. package/calendar/lib/calendar.schedule.selection.cell.component.d.ts +8 -5
  3. package/calendar/lib/calendar.schedule.selection.component.d.ts +13 -10
  4. package/calendar/lib/calendar.schedule.selection.d.ts +6 -6
  5. package/calendar/lib/calendar.schedule.selection.days.component.d.ts +1 -1
  6. package/calendar/lib/calendar.schedule.selection.days.form.component.d.ts +1 -1
  7. package/calendar/lib/calendar.schedule.selection.dialog.button.component.d.ts +4 -4
  8. package/calendar/lib/calendar.schedule.selection.dialog.component.d.ts +5 -5
  9. package/calendar/lib/calendar.schedule.selection.popover.button.component.d.ts +4 -2
  10. package/calendar/lib/calendar.schedule.selection.popover.component.d.ts +1 -1
  11. package/calendar/lib/calendar.schedule.selection.popover.content.component.d.ts +1 -1
  12. package/calendar/lib/calendar.schedule.selection.range.component.d.ts +19 -17
  13. package/calendar/lib/calendar.schedule.selection.store.d.ts +2 -2
  14. package/calendar/lib/calendar.schedule.selection.store.provide.d.ts +1 -1
  15. package/calendar/lib/calendar.schedule.selection.toggle.button.component.d.ts +8 -12
  16. package/calendar/lib/field/schedule/calendar.schedule.field.component.d.ts +22 -22
  17. package/calendar/lib/field/schedule/calendar.schedule.module.d.ts +2 -10
  18. package/esm2022/calendar/lib/calendar.module.mjs +19 -101
  19. package/esm2022/calendar/lib/calendar.schedule.selection.cell.component.mjs +27 -28
  20. package/esm2022/calendar/lib/calendar.schedule.selection.component.mjs +38 -55
  21. package/esm2022/calendar/lib/calendar.schedule.selection.days.component.mjs +17 -13
  22. package/esm2022/calendar/lib/calendar.schedule.selection.days.form.component.mjs +11 -12
  23. package/esm2022/calendar/lib/calendar.schedule.selection.dialog.button.component.mjs +18 -21
  24. package/esm2022/calendar/lib/calendar.schedule.selection.dialog.component.mjs +12 -9
  25. package/esm2022/calendar/lib/calendar.schedule.selection.mjs +3 -2
  26. package/esm2022/calendar/lib/calendar.schedule.selection.popover.button.component.mjs +22 -18
  27. package/esm2022/calendar/lib/calendar.schedule.selection.popover.component.mjs +12 -9
  28. package/esm2022/calendar/lib/calendar.schedule.selection.popover.content.component.mjs +13 -10
  29. package/esm2022/calendar/lib/calendar.schedule.selection.range.component.mjs +52 -70
  30. package/esm2022/calendar/lib/calendar.schedule.selection.store.mjs +5 -5
  31. package/esm2022/calendar/lib/calendar.schedule.selection.store.provide.mjs +9 -8
  32. package/esm2022/calendar/lib/calendar.schedule.selection.toggle.button.component.mjs +48 -50
  33. package/esm2022/calendar/lib/field/schedule/calendar.schedule.field.component.mjs +17 -14
  34. package/esm2022/calendar/lib/field/schedule/calendar.schedule.module.mjs +8 -40
  35. package/esm2022/lib/form/action/form.action.directive.mjs +58 -55
  36. package/esm2022/lib/form/action/form.action.module.mjs +9 -9
  37. package/esm2022/lib/form/action/transition/form.action.transition.module.mjs +9 -8
  38. package/esm2022/lib/form/action/transition/form.action.transition.safety.directive.mjs +14 -11
  39. package/esm2022/lib/form/form.mjs +1 -1
  40. package/esm2022/lib/form/form.module.mjs +4 -4
  41. package/esm2022/lib/form/io/form.changes.directive.mjs +11 -16
  42. package/esm2022/lib/form/io/form.input.directive.mjs +24 -38
  43. package/esm2022/lib/form/io/form.io.module.mjs +15 -9
  44. package/esm2022/lib/form/io/form.loading.directive.mjs +22 -42
  45. package/esm2022/lib/form.module.mjs +4 -4
  46. package/esm2022/lib/form.providers.mjs +32 -0
  47. package/esm2022/lib/formly/field/checklist/checklist.field.mjs +5 -5
  48. package/esm2022/lib/formly/field/checklist/checklist.item.field.component.mjs +51 -47
  49. package/esm2022/lib/formly/field/checklist/checklist.item.field.content.default.component.mjs +41 -29
  50. package/esm2022/lib/formly/field/checklist/checklist.item.field.mjs +3 -3
  51. package/esm2022/lib/formly/field/checklist/checklist.item.field.module.mjs +8 -45
  52. package/esm2022/lib/formly/field/checklist/checklist.item.mjs +1 -1
  53. package/esm2022/lib/formly/field/component/component.field.component.mjs +11 -8
  54. package/esm2022/lib/formly/field/component/component.field.module.mjs +8 -14
  55. package/esm2022/lib/formly/field/field.mjs +1 -1
  56. package/esm2022/lib/formly/field/form.field.module.mjs +4 -4
  57. package/esm2022/lib/formly/field/selection/list/list.field.component.mjs +17 -14
  58. package/esm2022/lib/formly/field/selection/list/list.field.module.mjs +8 -58
  59. package/esm2022/lib/formly/field/selection/pickable/pickable.chip.field.component.mjs +17 -13
  60. package/esm2022/lib/formly/field/selection/pickable/pickable.field.directive.mjs +16 -16
  61. package/esm2022/lib/formly/field/selection/pickable/pickable.field.module.mjs +8 -68
  62. package/esm2022/lib/formly/field/selection/pickable/pickable.list.field.component.mjs +71 -54
  63. package/esm2022/lib/formly/field/selection/pickable/pickable.util.mjs +2 -2
  64. package/esm2022/lib/formly/field/selection/searchable/searchable.chip.field.component.mjs +21 -16
  65. package/esm2022/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.mjs +51 -49
  66. package/esm2022/lib/formly/field/selection/searchable/searchable.field.directive.mjs +35 -27
  67. package/esm2022/lib/formly/field/selection/searchable/searchable.field.mjs +1 -1
  68. package/esm2022/lib/formly/field/selection/searchable/searchable.field.module.mjs +8 -65
  69. package/esm2022/lib/formly/field/selection/searchable/searchable.mjs +1 -1
  70. package/esm2022/lib/formly/field/selection/searchable/searchable.text.field.component.mjs +48 -30
  71. package/esm2022/lib/formly/field/selection/searchable/text.chip.field.mjs +2 -2
  72. package/esm2022/lib/formly/field/selection/selection.field.mjs +1 -1
  73. package/esm2022/lib/formly/field/selection/selection.mjs +1 -1
  74. package/esm2022/lib/formly/field/selection/selection.module.mjs +4 -4
  75. package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.field.component.mjs +20 -21
  76. package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.field.module.mjs +6 -73
  77. package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.mjs +1 -1
  78. package/esm2022/lib/formly/field/texteditor/texteditor.field.component.mjs +37 -22
  79. package/esm2022/lib/formly/field/texteditor/texteditor.field.mjs +2 -2
  80. package/esm2022/lib/formly/field/texteditor/texteditor.field.module.mjs +8 -33
  81. package/esm2022/lib/formly/field/value/array/array.field.component.mjs +72 -50
  82. package/esm2022/lib/formly/field/value/array/array.field.module.mjs +8 -44
  83. package/esm2022/lib/formly/field/value/boolean/boolean.field.mjs +2 -2
  84. package/esm2022/lib/formly/field/value/boolean/boolean.field.module.mjs +4 -4
  85. package/esm2022/lib/formly/field/value/date/date.field.module.mjs +5 -9
  86. package/esm2022/lib/formly/field/value/date/date.value.mjs +1 -1
  87. package/esm2022/lib/formly/field/value/date/datetime.field.component.mjs +8 -8
  88. package/esm2022/lib/formly/field/value/date/datetime.field.service.mjs +4 -4
  89. package/esm2022/lib/formly/field/value/date/datetime.mjs +1 -1
  90. package/esm2022/lib/formly/field/value/date/fixeddaterange.field.component.mjs +8 -8
  91. package/esm2022/lib/formly/field/value/number/number.field.mjs +1 -1
  92. package/esm2022/lib/formly/field/value/number/number.field.module.mjs +4 -4
  93. package/esm2022/lib/formly/field/value/phone/phone.field.component.mjs +4 -4
  94. package/esm2022/lib/formly/field/value/phone/phone.field.module.mjs +4 -4
  95. package/esm2022/lib/formly/field/value/text/text.address.field.mjs +1 -1
  96. package/esm2022/lib/formly/field/value/text/text.field.mjs +1 -1
  97. package/esm2022/lib/formly/field/value/text/text.field.module.mjs +4 -4
  98. package/esm2022/lib/formly/field/value/value.module.mjs +4 -4
  99. package/esm2022/lib/formly/field/wrapper/autotouch.wrapper.component.mjs +9 -7
  100. package/esm2022/lib/formly/field/wrapper/expand.wrapper.component.mjs +19 -24
  101. package/esm2022/lib/formly/field/wrapper/expand.wrapper.delegate.mjs +7 -4
  102. package/esm2022/lib/formly/field/wrapper/flex.wrapper.component.mjs +11 -8
  103. package/esm2022/lib/formly/field/wrapper/form.wrapper.module.mjs +8 -39
  104. package/esm2022/lib/formly/field/wrapper/index.mjs +2 -1
  105. package/esm2022/lib/formly/field/wrapper/info.wrapper.component.mjs +19 -16
  106. package/esm2022/lib/formly/field/wrapper/section.wrapper.component.mjs +11 -7
  107. package/esm2022/lib/formly/field/wrapper/style.wrapper.component.mjs +16 -11
  108. package/esm2022/lib/formly/field/wrapper/subsection.wrapper.component.mjs +11 -8
  109. package/esm2022/lib/formly/field/wrapper/toggle.wrapper.component.mjs +21 -17
  110. package/esm2022/lib/formly/field/wrapper/working.wrapper.component.mjs +11 -8
  111. package/esm2022/lib/formly/field/wrapper/wrapper.mjs +1 -1
  112. package/esm2022/lib/formly/form/form.form.module.mjs +4 -4
  113. package/esm2022/lib/formly/form/search.form.component.mjs +4 -4
  114. package/esm2022/lib/formly/formly.component.template.mjs +29 -0
  115. package/esm2022/lib/formly/formly.context.directive.mjs +6 -5
  116. package/esm2022/lib/formly/formly.context.mjs +12 -8
  117. package/esm2022/lib/formly/formly.directive.mjs +29 -44
  118. package/esm2022/lib/formly/formly.form.component.mjs +24 -18
  119. package/esm2022/lib/formly/formly.module.mjs +10 -14
  120. package/esm2022/lib/formly/index.mjs +2 -1
  121. package/esm2022/lib/formly/template/login.mjs +1 -1
  122. package/esm2022/lib/formly/template/timezone.mjs +1 -1
  123. package/esm2022/lib/index.mjs +2 -1
  124. package/esm2022/lib/layout/form.layout.module.mjs +4 -4
  125. package/esm2022/lib/layout/form.spacer.component.mjs +3 -3
  126. package/esm2022/lib/validator/available.mjs +1 -1
  127. package/esm2022/lib/validator/boolean.mjs +1 -1
  128. package/esm2022/lib/validator/field.mjs +2 -2
  129. package/esm2022/lib/validator/number.mjs +1 -1
  130. package/esm2022/lib/validator/phone.mjs +1 -1
  131. package/esm2022/mapbox/lib/field/latlng/latlng.field.component.mjs +65 -47
  132. package/esm2022/mapbox/lib/field/latlng/latlng.field.marker.component.mjs +13 -10
  133. package/esm2022/mapbox/lib/field/latlng/latlng.module.mjs +10 -43
  134. package/esm2022/mapbox/lib/field/zoom/zoom.field.component.mjs +32 -26
  135. package/esm2022/mapbox/lib/field/zoom/zoom.module.mjs +8 -36
  136. package/esm2022/mapbox/lib/mapbox.module.mjs +4 -4
  137. package/fesm2022/dereekb-dbx-form-calendar.mjs +340 -457
  138. package/fesm2022/dereekb-dbx-form-calendar.mjs.map +1 -1
  139. package/fesm2022/dereekb-dbx-form-mapbox.mjs +114 -141
  140. package/fesm2022/dereekb-dbx-form-mapbox.mjs.map +1 -1
  141. package/fesm2022/dereekb-dbx-form.mjs +935 -1106
  142. package/fesm2022/dereekb-dbx-form.mjs.map +1 -1
  143. package/lib/extension/calendar/_calendar.scss +3 -3
  144. package/lib/form/_form.scss +3 -3
  145. package/lib/form/action/form.action.directive.d.ts +35 -16
  146. package/lib/form/action/form.action.module.d.ts +4 -3
  147. package/lib/form/action/transition/form.action.transition.module.d.ts +4 -2
  148. package/lib/form/action/transition/form.action.transition.safety.directive.d.ts +4 -2
  149. package/lib/form/io/form.changes.directive.d.ts +3 -4
  150. package/lib/form/io/form.input.directive.d.ts +7 -10
  151. package/lib/form/io/form.io.module.d.ts +8 -2
  152. package/lib/form/io/form.loading.directive.d.ts +10 -11
  153. package/lib/form.providers.d.ts +8 -0
  154. package/lib/formly/_formly.scss +3 -3
  155. package/lib/formly/field/checklist/_checklist.scss +3 -3
  156. package/lib/formly/field/checklist/checklist.field.d.ts +7 -7
  157. package/lib/formly/field/checklist/checklist.item.d.ts +7 -9
  158. package/lib/formly/field/checklist/checklist.item.field.component.d.ts +19 -18
  159. package/lib/formly/field/checklist/checklist.item.field.content.default.component.d.ts +5 -5
  160. package/lib/formly/field/checklist/checklist.item.field.d.ts +1 -1
  161. package/lib/formly/field/checklist/checklist.item.field.module.d.ts +3 -11
  162. package/lib/formly/field/component/_component.scss +3 -3
  163. package/lib/formly/field/component/component.field.component.d.ts +1 -1
  164. package/lib/formly/field/component/component.field.module.d.ts +2 -4
  165. package/lib/formly/field/field.d.ts +8 -5
  166. package/lib/formly/field/selection/list/_list.scss +3 -3
  167. package/lib/formly/field/selection/list/list.field.component.d.ts +7 -5
  168. package/lib/formly/field/selection/list/list.field.module.d.ts +2 -12
  169. package/lib/formly/field/selection/pickable/_pickable.scss +3 -3
  170. package/lib/formly/field/selection/pickable/pickable.chip.field.component.d.ts +1 -1
  171. package/lib/formly/field/selection/pickable/pickable.field.directive.d.ts +25 -23
  172. package/lib/formly/field/selection/pickable/pickable.field.module.d.ts +2 -13
  173. package/lib/formly/field/selection/pickable/pickable.list.field.component.d.ts +15 -14
  174. package/lib/formly/field/selection/searchable/_searchable.scss +3 -3
  175. package/lib/formly/field/selection/searchable/searchable.chip.field.component.d.ts +4 -4
  176. package/lib/formly/field/selection/searchable/searchable.d.ts +3 -3
  177. package/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.d.ts +8 -12
  178. package/lib/formly/field/selection/searchable/searchable.field.directive.d.ts +30 -25
  179. package/lib/formly/field/selection/searchable/searchable.field.module.d.ts +2 -13
  180. package/lib/formly/field/selection/searchable/searchable.text.field.component.d.ts +6 -8
  181. package/lib/formly/field/selection/selection.d.ts +5 -5
  182. package/lib/formly/field/selection/sourceselect/_sourceselect.scss +3 -3
  183. package/lib/formly/field/selection/sourceselect/sourceselect.d.ts +1 -1
  184. package/lib/formly/field/selection/sourceselect/sourceselect.field.component.d.ts +5 -3
  185. package/lib/formly/field/selection/sourceselect/sourceselect.field.module.d.ts +2 -17
  186. package/lib/formly/field/texteditor/_texteditor.scss +9 -9
  187. package/lib/formly/field/texteditor/texteditor.field.component.d.ts +5 -4
  188. package/lib/formly/field/texteditor/texteditor.field.module.d.ts +2 -8
  189. package/lib/formly/field/value/array/_array.scss +5 -5
  190. package/lib/formly/field/value/array/array.field.component.d.ts +16 -18
  191. package/lib/formly/field/value/array/array.field.d.ts +8 -5
  192. package/lib/formly/field/value/array/array.field.module.d.ts +2 -10
  193. package/lib/formly/field/value/boolean/_boolean.scss +3 -3
  194. package/lib/formly/field/value/date/_date.scss +5 -5
  195. package/lib/formly/field/value/date/date.field.module.d.ts +8 -9
  196. package/lib/formly/field/value/date/datetime.field.service.d.ts +1 -1
  197. package/lib/formly/field/value/date/fixeddaterange.field.component.d.ts +13 -13
  198. package/lib/formly/field/value/number/_number.scss +2 -2
  199. package/lib/formly/field/value/phone/_phone.scss +6 -6
  200. package/lib/formly/field/value/phone/phone.field.component.d.ts +6 -5
  201. package/lib/formly/field/value/text/_text.scss +3 -3
  202. package/lib/formly/field/wrapper/_wrapper.scss +3 -3
  203. package/lib/formly/field/wrapper/autotouch.wrapper.component.d.ts +1 -1
  204. package/lib/formly/field/wrapper/expand.wrapper.component.d.ts +1 -1
  205. package/lib/formly/field/wrapper/expand.wrapper.delegate.d.ts +2 -0
  206. package/lib/formly/field/wrapper/flex.wrapper.component.d.ts +4 -4
  207. package/lib/formly/field/wrapper/form.wrapper.module.d.ts +2 -8
  208. package/lib/formly/field/wrapper/index.d.ts +1 -0
  209. package/lib/formly/field/wrapper/info.wrapper.component.d.ts +2 -2
  210. package/lib/formly/field/wrapper/section.wrapper.component.d.ts +1 -1
  211. package/lib/formly/field/wrapper/style.wrapper.component.d.ts +5 -3
  212. package/lib/formly/field/wrapper/subsection.wrapper.component.d.ts +1 -1
  213. package/lib/formly/field/wrapper/toggle.wrapper.component.d.ts +2 -1
  214. package/lib/formly/field/wrapper/working.wrapper.component.d.ts +2 -2
  215. package/lib/formly/form/_form.scss +3 -3
  216. package/lib/formly/formly.component.template.d.ts +19 -0
  217. package/lib/formly/formly.context.d.ts +11 -7
  218. package/lib/formly/formly.context.directive.d.ts +2 -2
  219. package/lib/formly/formly.directive.d.ts +10 -10
  220. package/lib/formly/formly.form.component.d.ts +18 -13
  221. package/lib/formly/formly.module.d.ts +1 -1
  222. package/lib/formly/index.d.ts +1 -0
  223. package/lib/index.d.ts +1 -0
  224. package/lib/layout/_layout.scss +3 -3
  225. package/lib/style/_all-typography.scss +1 -1
  226. package/lib/style/_theming.scss +1 -1
  227. package/mapbox/lib/field/latlng/latlng.field.component.d.ts +25 -23
  228. package/mapbox/lib/field/latlng/latlng.field.marker.component.d.ts +2 -1
  229. package/mapbox/lib/field/latlng/latlng.module.d.ts +2 -11
  230. package/mapbox/lib/field/zoom/zoom.field.component.d.ts +13 -13
  231. package/mapbox/lib/field/zoom/zoom.module.d.ts +3 -10
  232. package/package.json +10 -11
  233. package/mapbox/esm2022/dereekb-dbx-form-mapbox.mjs +0 -5
  234. package/mapbox/esm2022/index.mjs +0 -3
  235. package/mapbox/esm2022/lib/field/index.mjs +0 -3
  236. package/mapbox/esm2022/lib/field/latlng/index.mjs +0 -5
  237. package/mapbox/esm2022/lib/field/latlng/latlng.field.component.mjs +0 -244
  238. package/mapbox/esm2022/lib/field/latlng/latlng.field.marker.component.mjs +0 -31
  239. package/mapbox/esm2022/lib/field/latlng/latlng.field.mjs +0 -35
  240. package/mapbox/esm2022/lib/field/latlng/latlng.module.mjs +0 -59
  241. package/mapbox/esm2022/lib/field/zoom/index.mjs +0 -4
  242. package/mapbox/esm2022/lib/field/zoom/zoom.field.component.mjs +0 -140
  243. package/mapbox/esm2022/lib/field/zoom/zoom.field.mjs +0 -23
  244. package/mapbox/esm2022/lib/field/zoom/zoom.module.mjs +0 -57
  245. package/mapbox/esm2022/lib/mapbox.module.mjs +0 -16
  246. package/mapbox/fesm2022/dereekb-dbx-form-mapbox.mjs +0 -566
  247. package/mapbox/fesm2022/dereekb-dbx-form-mapbox.mjs.map +0 -1
  248. package/mapbox/package.json +0 -21
@@ -1,64 +1,63 @@
1
1
  import * as i0 from '@angular/core';
2
- import { forwardRef, inject, Directive, Input, NgModule, EventEmitter, Output, Component, ChangeDetectorRef, ViewChild, InjectionToken, ElementRef, Injectable } from '@angular/core';
3
- import * as i1 from '@angular/common';
4
- import { CommonModule } from '@angular/common';
5
- import * as i5 from '@dereekb/dbx-web';
6
- import { DbxActionTransitionSafetyDirective, DbxTextModule, DbxLoadingModule, DbxFlexLayoutModule, DbxSectionLayoutModule, DbxRouterAnchorModule, dbxValueListItemDecisionFunction, DbxButtonModule, DbxListLayoutModule, AbstractDbxSelectionListWrapperDirective, DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, AbstractDbxSelectionListViewDirective, addConfigToValueListItems, provideDbxListView, AbstractDbxValueListViewItemComponent, DbxActionModule, CompactContextStore, mapCompactModeObs, DbxBarLayoutModule } from '@dereekb/dbx-web';
2
+ import { forwardRef, inject, input, Directive, effect, NgModule, output, signal, Component, ChangeDetectionStrategy, viewChild, InjectionToken, computed, ElementRef, Injectable, ChangeDetectorRef, ViewChild, EventEmitter, Output, Input, makeEnvironmentProviders } from '@angular/core';
3
+ import * as i1$1 from '@dereekb/dbx-web';
4
+ import { DbxActionTransitionSafetyDirective, DbxAnchorComponent, DbxSectionLayoutModule, DbxFlexGroupDirective, DbxSubSectionComponent, DbxLoadingComponent, dbxValueListItemDecisionFunction, DbxListModifierModule, AbstractDbxSelectionListWrapperDirective, provideDbxListViewWrapper, DbxListWrapperComponentImportsModule, DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE, AbstractDbxSelectionListViewDirective, addConfigToValueListItems, provideDbxListView, DbxSelectionValueListViewContentComponent, AbstractDbxValueListViewItemComponent, DbxLoadingModule, DbxButtonComponent, DbxButtonSpacerDirective, DbxActionModule, CompactContextStore, mapCompactModeObs, DbxBarDirective, DbxButtonModule } from '@dereekb/dbx-web';
7
5
  import { isPast, addSeconds, startOfDay, addMinutes, addDays, isBefore } from 'date-fns';
8
- import { BehaviorSubject, switchMap, first, exhaustMap, of, catchError, delay, filter, combineLatest, map, distinctUntilChanged, shareReplay, Subject, tap, takeUntil, EMPTY, throttleTime, mergeMap, startWith, debounceTime, skipWhile, scan, skip, combineLatestWith, interval, merge, timer } from 'rxjs';
9
- import * as i6 from '@dereekb/dbx-core';
10
- import { DbxActionContextStoreSourceInstance, AbstractSubscriptionDirective, safeDetectChanges, DbxInjectionComponentModule, DbxDatePipeModule, mergeDbxInjectionComponentConfigs, tapDetectChanges, DbxValuePipeModule } from '@dereekb/dbx-core';
11
- import { LockSet, SubscriptionObject, asObservable, cleanup, errorOnEmissionsInPeriod, isLoadingStateFinishedLoading, switchMapMaybeObs, filterMaybe, switchMapMaybeDefault, SimpleLoadingContext, distinctUntilHasDifferentValues, startWithBeginLoading, mapLoadingStateResults, successResult, ListLoadingStateContextInstance, mapIsListLoadingStateWithEmptyValue, LoadingStateContextInstance, isLoadingStateWithDefinedValue, isLoadingStateLoading, beginLoading, mapLoadingStateValueWithOperator, valueFromLoadingState, loadingStateContext, skipFirstMaybe, asObservableFromGetter, asyncPusherCache, scanCount } from '@dereekb/rxjs';
12
- import { MatDialogModule } from '@angular/material/dialog';
13
- import * as i1$1 from '@ngx-formly/core';
14
- import { FieldType, FieldWrapper, FormlyModule, FieldArrayType } from '@ngx-formly/core';
6
+ import { map, of, shareReplay, switchMap, first, exhaustMap, catchError, delay, filter, combineLatest, distinctUntilChanged, Subject, tap, takeUntil, EMPTY, throttleTime, mergeMap, startWith, BehaviorSubject, debounceTime, scan, skip, combineLatestWith, interval, merge, timer } from 'rxjs';
7
+ import * as i2$3 from '@dereekb/dbx-core';
8
+ import { DbxActionContextStoreSourceInstance, AbstractSubscriptionDirective, DbxInjectionComponent, mergeDbxInjectionComponentConfigs, DbxDatePipeModule, DbxValuePipeModule } from '@dereekb/dbx-core';
9
+ import { LockSet, makeIsModifiedFunctionObservable, SubscriptionObject, asObservable, cleanup, errorOnEmissionsInPeriod, maybeValueFromObservableOrValue, filterMaybe, valueFromFinishedLoadingState, switchMapFilterMaybe, switchMapMaybeDefault, SimpleLoadingContext, distinctUntilHasDifferentValues, startWithBeginLoading, mapLoadingStateResults, successResult, listLoadingStateContext, mapIsListLoadingStateWithEmptyValue, loadingStateContext, isLoadingStateInLoadingState, isLoadingStateWithDefinedValue, isLoadingStateLoading, beginLoading, mapLoadingStateValueWithOperator, skipFirstMaybe, asObservableFromGetter, asyncPusherCache, scanCount } from '@dereekb/rxjs';
10
+ import { toObservable, toSignal } from '@angular/core/rxjs-interop';
15
11
  import * as i2 from '@angular/forms';
16
- import { FormsModule, ReactiveFormsModule, FormControl, Validators, FormGroup } from '@angular/forms';
17
- import * as i4 from '@angular/material/core';
18
- import { MatRippleModule, MatNativeDateModule, DateAdapter } from '@angular/material/core';
19
- import * as i4$1 from '@angular/material/checkbox';
12
+ import { ReactiveFormsModule, FormControl, FormsModule, Validators, FormGroup } from '@angular/forms';
13
+ import * as i1$2 from '@ngx-formly/core';
14
+ import { FieldType, FieldWrapper, FormlyModule, FieldArrayType, FormlyForm } from '@ngx-formly/core';
15
+ import * as i1$5 from '@angular/common';
16
+ import { NgIf, AsyncPipe, NgClass, NgStyle, NgTemplateOutlet, CommonModule } from '@angular/common';
17
+ import * as i2$1 from '@angular/material/checkbox';
20
18
  import { MatCheckboxModule } from '@angular/material/checkbox';
21
- import * as i7 from '@angular/material/icon';
19
+ import * as i3 from '@angular/material/core';
20
+ import { MatRippleModule, MatOptionModule, DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core';
21
+ import * as i1 from '@angular/material/icon';
22
22
  import { MatIconModule } from '@angular/material/icon';
23
- import * as i6$1 from '@angular/material/button';
24
- import { MatButtonModule } from '@angular/material/button';
25
- import * as i10 from '@ngbracket/ngx-layout/flex';
26
- import { FlexLayoutModule } from '@ngbracket/ngx-layout';
23
+ import * as i6 from '@angular/material/button';
24
+ import { MatIconButton, MatButtonModule } from '@angular/material/button';
27
25
  import { objectIsEmpty, mergeObjectsFunction, filterFromPOJOFunction, mergeObjects, filterFromPOJO, asArray, objectHasNoKeys, addPlusPrefixToNumber, convertMaybeToArray, isSelectedDecisionFunctionFactory, readKeysFrom, hasDifferentValues, makeValuesGroupMap, separateValues, filterUniqueValues, searchStringFilterFunction, caseInsensitiveFilterByIndexOfDecisionFactory, sortByStringFunction, mergeArraysIntoArray, lastValue, arrayToMap, setContainsAllValues, addToSetCopy, setsAreEquivalent, filterMaybeArrayValues, mergeArrays, firstValue, cachedGetter, makeGetter, asDecisionFunction, getValueFromGetter, asGetter, dateFromMinuteOfDay, dateToMinuteOfDay, isISO8601DayStringStart, mapIdentityFunction, MS_IN_MINUTE, isMonthDaySlashDate, HAS_WEBSITE_DOMAIN_NAME_REGEX, KeyValueTypleValueFilter, valuesFromPOJO, allObjectsAreEqual, isNumberDivisibleBy, nearestDivisibleValues, isE164PhoneNumber as isE164PhoneNumber$1, isValidPhoneExtensionNumber, e164PhoneNumberExtensionPair, mapMaybeFunction, transformNumberFunction, concatArrays, DOLLAR_AMOUNT_PRECISION, e164PhoneNumberFromE164PhoneNumberExtensionPair, transformStringFunction, US_STATE_CODE_STRING_REGEX, ZIP_CODE_STRING_REGEX, LAT_LNG_PATTERN, BooleanStringKeyArrayUtility, iterablesAreSetEquivalent, capitalizeFirstLetter } from '@dereekb/util';
28
- import * as i2$1 from '@angular/material/slide-toggle';
29
- import { MatSlideToggleModule } from '@angular/material/slide-toggle';
30
- import * as i2$2 from '@ngbracket/ngx-layout/extended';
31
- import * as i5$1 from '@angular/material/divider';
32
- import { MatDividerModule } from '@angular/material/divider';
33
- import * as i4$3 from '@angular/material/autocomplete';
34
- import { MatAutocompleteModule } from '@angular/material/autocomplete';
35
- import * as i4$5 from '@angular/material/form-field';
36
- import { MatFormFieldModule } from '@angular/material/form-field';
37
- import * as i4$2 from '@angular/material/input';
38
- import { MatInputModule } from '@angular/material/input';
26
+ import { MatSlideToggle } from '@angular/material/slide-toggle';
27
+ import * as i2$2 from '@angular/material/divider';
28
+ import { MatDividerModule, MatDivider } from '@angular/material/divider';
29
+ import * as i4 from '@angular/material/input';
30
+ import { MatInput, MatInputModule } from '@angular/material/input';
39
31
  import { FieldType as FieldType$1, FormlyMaterialModule } from '@ngx-formly/material';
40
- import { camelCase } from 'change-case';
41
- import * as i6$2 from '@angular/material/chips';
32
+ import { camelCase } from 'change-case-all';
33
+ import * as i1$3 from '@angular/material/chips';
42
34
  import { MatChipsModule } from '@angular/material/chips';
43
- import { MatListModule } from '@angular/material/list';
35
+ import * as i5 from '@angular/material/autocomplete';
36
+ import { MatAutocompleteModule } from '@angular/material/autocomplete';
44
37
  import { ENTER, COMMA } from '@angular/cdk/keycodes';
45
38
  import { skipUntilTimeElapsedAfterLastEmission, toJsDate, parseJsDateString, parseISO8601DayStringToDate, formatToISO8601DateString, formatToISO8601DayStringForSystem, isSameDateHoursAndMinutes, safeToJsDate, guessCurrentTimezone, dateTimezoneUtcNormal, toJsDayDate, isSameDateDay, toLocalReadableTimeString, getTimezoneAbbreviation, utcDayForDate, readableTimeStringToDate, findMinDate, dateFromLogicalDate, findMaxDate, isSameDate, dateTimeMinuteWholeDayDecisionFunction, DateTimeMinuteInstance, limitDateTimeInstance, isSameDateDayRange, dateRange, clampDateRangeToDateRange, isDateInDateRange, isSameDateRange, allTimezoneInfos, timezoneInfoForSystem, searchTimezoneInfos } from '@dereekb/date';
46
39
  import { FieldType as FieldType$2, FormlyMatFormFieldModule } from '@ngx-formly/material/form-field';
47
- import * as i3 from '@angular/material/select';
48
- import { MatSelectModule } from '@angular/material/select';
49
- import * as i4$6 from '@angular/material/datepicker';
50
- import { MatDatepickerModule, DateRange, MAT_DATE_RANGE_SELECTION_STRATEGY, MatCalendar } from '@angular/material/datepicker';
51
- import * as i8 from '@angular/material/menu';
52
- import { MatMenuModule } from '@angular/material/menu';
53
- import * as i3$1 from 'ngx-editor';
40
+ import { MatSelect, MatOption, MatOptgroup } from '@angular/material/select';
41
+ import * as i1$4 from 'ngx-editor';
54
42
  import { Editor, NgxEditorModule } from 'ngx-editor';
55
- import * as i4$4 from '@angular/cdk/drag-drop';
43
+ import * as i2$4 from '@angular/cdk/drag-drop';
56
44
  import { DragDropModule } from '@angular/cdk/drag-drop';
45
+ import * as i4$1 from '@angular/material/form-field';
46
+ import { MatFormFieldModule, MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
47
+ import * as i4$2 from '@angular/material/datepicker';
48
+ import { DateRange, MAT_DATE_RANGE_SELECTION_STRATEGY, MatCalendar, MatDatepickerModule } from '@angular/material/datepicker';
49
+ import * as i8 from '@angular/material/menu';
50
+ import { MatMenuModule } from '@angular/material/menu';
51
+ import * as i10 from '@ngbracket/ngx-layout/flex';
52
+ import * as i11 from '@ngbracket/ngx-layout/extended';
53
+ import { FlexLayoutModule } from '@ngbracket/ngx-layout';
57
54
  import { FormlyMatSliderModule } from '@ngx-formly/material/slider';
58
- import * as i3$2 from 'ngx-mat-intl-tel-input';
55
+ import * as i3$1 from 'ngx-mat-intl-tel-input';
59
56
  import { NgxMatIntlTelInputComponent } from 'ngx-mat-intl-tel-input';
60
57
  import { ADDRESS_CITY_MAX_LENGTH, ADDRESS_STATE_CODE_MAX_LENGTH, ADDRESS_STATE_MAX_LENGTH, ADDRESS_COUNTRY_MAX_LENGTH, ADDRESS_ZIP_MAX_LENGTH, ADDRESS_LINE_MAX_LENGTH } from '@dereekb/model';
61
58
  import { FormlyMatToggleModule } from '@ngx-formly/material/toggle';
59
+ import { provideDateFnsAdapter } from '@angular/material-date-fns-adapter';
60
+ import { enUS } from 'date-fns/locale';
62
61
 
63
62
  /**
64
63
  * Current state of a DbxForm
@@ -113,20 +112,38 @@ class DbxActionFormDirective {
113
112
  form = inject((DbxMutableForm), { host: true });
114
113
  source = inject((DbxActionContextStoreSourceInstance));
115
114
  lockSet = new LockSet();
115
+ /**
116
+ * Whether or not to disable the form while the action is working.
117
+ *
118
+ * Defaults to true.
119
+ */
120
+ dbxActionFormDisabledOnWorking = input(true);
116
121
  /**
117
122
  * Optional validator that checks whether or not the value is
118
123
  * ready to send before the context store is marked enabled.
119
124
  */
120
- dbxActionFormValidator;
125
+ dbxActionFormIsValid = input();
126
+ /**
127
+ * Optional function that checks whether or not the value is still the same/equal.
128
+ */
129
+ dbxActionFormIsEqual = input();
121
130
  /**
122
131
  * Optional function that checks whether or not the value has been modified.
132
+ *
133
+ * If dbxActionFormIsEqual is provided, this will be ignored.
123
134
  */
124
- dbxActionFormModified;
135
+ dbxActionFormIsModified = input();
125
136
  /**
126
137
  * Optional function that maps the form's value to the source's value.
127
138
  */
128
- dbxActionFormMapValue;
129
- _formDisabledWhileWorking = new BehaviorSubject(true);
139
+ dbxActionFormMapValue = input();
140
+ dbxActionFormDisabledOnWorking$ = toObservable(this.dbxActionFormDisabledOnWorking);
141
+ isValidFunction$ = toObservable(this.dbxActionFormIsValid).pipe(map((x) => x ?? (() => of(true))), shareReplay(1));
142
+ isModifiedFunction$ = makeIsModifiedFunctionObservable({
143
+ isModified: toObservable(this.dbxActionFormIsModified),
144
+ isEqual: toObservable(this.dbxActionFormIsEqual)
145
+ }).pipe(shareReplay(1));
146
+ mapValueFunction$ = toObservable(this.dbxActionFormMapValue);
130
147
  _triggeredSub = new SubscriptionObject();
131
148
  _isCompleteSub = new SubscriptionObject();
132
149
  _isWorkingSub = new SubscriptionObject();
@@ -136,12 +153,6 @@ class DbxActionFormDirective {
136
153
  }
137
154
  this.lockSet.addChildLockSet(this.source.lockSet, 'source');
138
155
  }
139
- get formDisabledOnWorking() {
140
- return this._formDisabledWhileWorking.value;
141
- }
142
- set formDisabledOnWorking(formDisabledOnWorking) {
143
- this._formDisabledWhileWorking.next(Boolean(formDisabledOnWorking ?? true));
144
- }
145
156
  ngOnInit() {
146
157
  // Pass data from the form to the source when triggered.
147
158
  this._triggeredSub.subscription = this.source.triggered$
@@ -184,23 +195,13 @@ class DbxActionFormDirective {
184
195
  // More than a certain amount of updates implies that it is being typed into/used.
185
196
  // 3 changes and 2 seconds are arbitrary values derived from guesses about any slow/late changes that may come from external directives for setup.
186
197
  const isProbablyTouched = !event.untouched || ((event.changesCount ?? 0) > 3 && isPast(addSeconds(event.lastResetAt ?? new Date(), 2)));
187
- let validatorObs;
188
- const initialIsValidCheck = event.isComplete;
189
- if (initialIsValidCheck) {
190
- validatorObs = this.dbxActionFormValidator ? this.dbxActionFormValidator(value) : of(true);
191
- }
192
- else {
193
- validatorObs = of(false);
194
- }
195
- let modifiedObs;
198
+ // create overrides
199
+ const returnFalseFunction = () => of(false);
200
+ const runIsValidCheck = event.isComplete;
201
+ const isValidFunction = runIsValidCheck ? undefined : returnFalseFunction;
196
202
  const isConsideredModified = event.pristine === false && isProbablyTouched;
197
- if (isConsideredModified) {
198
- modifiedObs = this.dbxActionFormModified ? this.dbxActionFormModified(value) : of(true);
199
- }
200
- else {
201
- modifiedObs = of(false);
202
- }
203
- return combineLatest([validatorObs, modifiedObs]).pipe(first(), map(([valid, modified]) => ({ valid, modified, value, event })));
203
+ const isModifiedFunction = isConsideredModified ? undefined : returnFalseFunction;
204
+ return this.checkIsValidAndIsModified(value, { isValidFunction, isModifiedFunction }).pipe(map(([valid, modified]) => ({ valid, modified, value, event })), first());
204
205
  }));
205
206
  }))
206
207
  .subscribe(({ valid, modified /*, value, event */ }) => {
@@ -211,8 +212,8 @@ class DbxActionFormDirective {
211
212
  this.source.enable(APP_ACTION_FORM_DISABLED_KEY, valid);
212
213
  });
213
214
  // Watch the working state and disable form while working
214
- this._isWorkingSub.subscription = combineLatest([this.source.isWorking$, this._formDisabledWhileWorking])
215
- .pipe(map(([isWorking, lockOnWorking]) => lockOnWorking && isWorking), distinctUntilChanged())
215
+ this._isWorkingSub.subscription = combineLatest([this.source.isWorking$, this.dbxActionFormDisabledOnWorking$])
216
+ .pipe(map(([isWorking, disableFormWhileWorking]) => disableFormWhileWorking !== false && isWorking), distinctUntilChanged())
216
217
  .subscribe((disable) => {
217
218
  this.form.setDisabled(APP_ACTION_FORM_DISABLED_KEY, disable);
218
219
  });
@@ -223,40 +224,40 @@ class DbxActionFormDirective {
223
224
  this._triggeredSub.destroy();
224
225
  this._isCompleteSub.destroy();
225
226
  this._isWorkingSub.destroy();
226
- this._formDisabledWhileWorking.complete();
227
227
  this.form.setDisabled(APP_ACTION_FORM_DISABLED_KEY, false);
228
228
  });
229
229
  }
230
+ checkIsValidAndIsModified(value, overrides) {
231
+ const { isModifiedFunction: overrideIsModifiedFunction, isValidFunction: overrideIsValidFunction } = overrides ?? {};
232
+ const isValidFunctionObs = overrideIsValidFunction != null ? of(overrideIsValidFunction) : this.isValidFunction$;
233
+ const isModifiedFunctionObs = overrideIsModifiedFunction != null ? of(overrideIsModifiedFunction) : this.isModifiedFunction$;
234
+ return combineLatest([isValidFunctionObs, isModifiedFunctionObs]).pipe(switchMap(([isValid, isModified]) => {
235
+ return combineLatest([isValid(value), isModified(value)]).pipe(map(([valid, modified]) => [valid, modified]));
236
+ }));
237
+ }
230
238
  preCheckReadyValue(value) {
231
- const validatorObs = this.dbxActionFormValidator ? this.dbxActionFormValidator(value) : of(true);
232
- const modifiedObs = this.dbxActionFormModified ? this.dbxActionFormModified(value) : of(true);
233
- return combineLatest([validatorObs, modifiedObs]).pipe(first(), map(([valid, modified]) => valid && modified));
239
+ return this.checkIsValidAndIsModified(value);
234
240
  }
235
241
  readyValue(value) {
236
- if (this.dbxActionFormMapValue) {
237
- return asObservable(this.dbxActionFormMapValue(value));
238
- }
239
- else {
240
- return of({ value: value });
241
- }
242
+ return this.mapValueFunction$.pipe(switchMap((mapFunction) => {
243
+ if (mapFunction) {
244
+ return asObservable(mapFunction(value));
245
+ }
246
+ else {
247
+ return of({ value: value });
248
+ }
249
+ }));
242
250
  }
243
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionFormDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
244
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxActionFormDirective, selector: "[dbxActionForm]", inputs: { dbxActionFormValidator: "dbxActionFormValidator", dbxActionFormModified: "dbxActionFormModified", dbxActionFormMapValue: "dbxActionFormMapValue", formDisabledOnWorking: "formDisabledOnWorking" }, ngImport: i0 });
251
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionFormDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
252
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxActionFormDirective, isStandalone: true, selector: "[dbxActionForm]", inputs: { dbxActionFormDisabledOnWorking: { classPropertyName: "dbxActionFormDisabledOnWorking", publicName: "dbxActionFormDisabledOnWorking", isSignal: true, isRequired: false, transformFunction: null }, dbxActionFormIsValid: { classPropertyName: "dbxActionFormIsValid", publicName: "dbxActionFormIsValid", isSignal: true, isRequired: false, transformFunction: null }, dbxActionFormIsEqual: { classPropertyName: "dbxActionFormIsEqual", publicName: "dbxActionFormIsEqual", isSignal: true, isRequired: false, transformFunction: null }, dbxActionFormIsModified: { classPropertyName: "dbxActionFormIsModified", publicName: "dbxActionFormIsModified", isSignal: true, isRequired: false, transformFunction: null }, dbxActionFormMapValue: { classPropertyName: "dbxActionFormMapValue", publicName: "dbxActionFormMapValue", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
245
253
  }
246
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionFormDirective, decorators: [{
254
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionFormDirective, decorators: [{
247
255
  type: Directive,
248
256
  args: [{
249
- selector: '[dbxActionForm]'
257
+ selector: '[dbxActionForm]',
258
+ standalone: true
250
259
  }]
251
- }], ctorParameters: function () { return []; }, propDecorators: { dbxActionFormValidator: [{
252
- type: Input
253
- }], dbxActionFormModified: [{
254
- type: Input
255
- }], dbxActionFormMapValue: [{
256
- type: Input
257
- }], formDisabledOnWorking: [{
258
- type: Input
259
- }] } });
260
+ }], ctorParameters: () => [] });
260
261
 
261
262
  /**
262
263
  * Extension of DbxActionTransitionSafetyDirective that forces the form to update first.
@@ -265,58 +266,66 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
265
266
  */
266
267
  class DbxActionFormSafetyDirective extends DbxActionTransitionSafetyDirective {
267
268
  dbxActionForm = inject((DbxActionFormDirective), { host: true });
268
- inputSafetyType = 'auto';
269
+ dbxActionFormSafety = input('auto');
270
+ _dbxActionFormSafetyUpdateEffect = effect(() => this._safetyType.next(this.dbxActionFormSafety()));
269
271
  _handleOnBeforeTransition(transition) {
270
272
  this.dbxActionForm.form.forceFormUpdate();
271
273
  return super._handleOnBeforeTransition(transition);
272
274
  }
273
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionFormSafetyDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
274
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxActionFormSafetyDirective, selector: "[dbxActionFormSafety]", inputs: { inputSafetyType: ["dbxActionFormSafety", "inputSafetyType"] }, usesInheritance: true, ngImport: i0 });
275
+ ngOnDestroy() {
276
+ super.ngOnDestroy();
277
+ this._dbxActionFormSafetyUpdateEffect.destroy();
278
+ }
279
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionFormSafetyDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
280
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxActionFormSafetyDirective, isStandalone: true, selector: "[dbxActionFormSafety]", inputs: { dbxActionFormSafety: { classPropertyName: "dbxActionFormSafety", publicName: "dbxActionFormSafety", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
275
281
  }
276
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionFormSafetyDirective, decorators: [{
282
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionFormSafetyDirective, decorators: [{
277
283
  type: Directive,
278
284
  args: [{
279
- selector: '[dbxActionFormSafety]'
285
+ selector: '[dbxActionFormSafety]',
286
+ standalone: true
280
287
  }]
281
- }], propDecorators: { inputSafetyType: [{
282
- type: Input,
283
- args: ['dbxActionFormSafety']
284
- }] } });
288
+ }] });
285
289
 
290
+ /**
291
+ * @deprecated import DbxActionFormSafetyDirective directly
292
+ */
286
293
  class DbxFormActionTransitionModule {
287
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormActionTransitionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
288
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormActionTransitionModule, declarations: [DbxActionFormSafetyDirective], imports: [CommonModule], exports: [DbxActionFormSafetyDirective] });
289
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormActionTransitionModule, imports: [CommonModule] });
294
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormActionTransitionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
295
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormActionTransitionModule, imports: [DbxActionFormSafetyDirective], exports: [DbxActionFormSafetyDirective] });
296
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormActionTransitionModule });
290
297
  }
291
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormActionTransitionModule, decorators: [{
298
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormActionTransitionModule, decorators: [{
292
299
  type: NgModule,
293
300
  args: [{
294
- imports: [CommonModule],
295
- declarations: [DbxActionFormSafetyDirective],
301
+ imports: [DbxActionFormSafetyDirective],
296
302
  exports: [DbxActionFormSafetyDirective]
297
303
  }]
298
304
  }] });
299
305
 
306
+ /**
307
+ * @deprecated Import DbxActionFormDirective directly instead.
308
+ */
300
309
  class DbxFormActionModule {
301
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
302
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormActionModule, declarations: [DbxActionFormDirective], imports: [CommonModule, MatDialogModule], exports: [DbxActionFormDirective] });
303
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormActionModule, imports: [CommonModule, MatDialogModule] });
310
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
311
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormActionModule, imports: [DbxActionFormDirective], exports: [DbxActionFormDirective] });
312
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormActionModule });
304
313
  }
305
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormActionModule, decorators: [{
314
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormActionModule, decorators: [{
306
315
  type: NgModule,
307
316
  args: [{
308
- imports: [CommonModule, MatDialogModule],
309
- declarations: [DbxActionFormDirective],
317
+ imports: [DbxActionFormDirective],
310
318
  exports: [DbxActionFormDirective]
311
319
  }]
312
320
  }] });
313
321
 
314
- function dbxFormSourceObservable(form, inputObs, mode$) {
315
- return dbxFormSourceObservableFromStream(form.stream$, inputObs, mode$);
322
+ function dbxFormSourceObservable(form, inputObs, modeObs) {
323
+ return dbxFormSourceObservableFromStream(form.stream$, inputObs, modeObs);
316
324
  }
317
- function dbxFormSourceObservableFromStream(stream$, inputObs, mode$) {
325
+ function dbxFormSourceObservableFromStream(streamObs, inputObs, modeObs) {
318
326
  const value$ = asObservable(inputObs).pipe(shareReplay(1)); // catch/share the latest emission
319
- const state$ = stream$.pipe(map((x) => x.state), distinctUntilChanged());
327
+ const state$ = streamObs.pipe(map((x) => x.state), distinctUntilChanged());
328
+ const mode$ = asObservable(modeObs).pipe(distinctUntilChanged());
320
329
  return combineLatest([mode$, value$]).pipe(map((x) => x[0]), distinctUntilChanged(), switchMap((mode) => {
321
330
  if (mode === 'reset') {
322
331
  // reset only
@@ -331,12 +340,12 @@ function dbxFormSourceObservableFromStream(stream$, inputObs, mode$) {
331
340
  else {
332
341
  return [value, false];
333
342
  }
334
- }), tap(([value, send]) => {
343
+ }), tap(([_, send]) => {
335
344
  firstValueSent = true;
336
345
  if (!send) {
337
346
  doneSubject.next(undefined);
338
347
  }
339
- }), filter(([value, send]) => send), map((x) => x[0]), takeUntil(doneSubject), cleanup(() => {
348
+ }), filter(([_, send]) => send), map(([value, _]) => value), takeUntil(doneSubject), cleanup(() => {
340
349
  doneSubject.complete();
341
350
  }));
342
351
  }
@@ -373,93 +382,58 @@ function dbxFormSourceObservableFromStream(stream$, inputObs, mode$) {
373
382
  */
374
383
  class DbxFormSourceDirective extends AbstractSubscriptionDirective {
375
384
  form = inject((DbxMutableForm), { host: true });
376
- _mode = new BehaviorSubject('reset');
377
- get mode() {
378
- return this._mode.value;
379
- }
380
- set mode(mode) {
381
- this._mode.next(mode);
382
- }
383
- set obs(obs) {
384
- this.setObs(obs);
385
- }
386
- setObs(inputObs) {
385
+ dbxFormSourceMode = input();
386
+ dbxFormSource = input();
387
+ _setFormSourceObservableEffect = effect(() => {
388
+ const formSource = this.dbxFormSource();
389
+ const mode = this.dbxFormSourceMode() ?? 'reset';
387
390
  let subscription;
388
- if (inputObs) {
389
- subscription = dbxFormSourceObservableFromStream(this.form.stream$, inputObs, this._mode).subscribe((x) => {
391
+ if (formSource) {
392
+ subscription = dbxFormSourceObservableFromStream(this.form.stream$, formSource, mode).subscribe((x) => {
390
393
  this.form.setValue(x);
391
394
  });
392
395
  }
393
396
  this.sub = subscription;
394
- }
395
- ngOnDestroy() {
396
- super.ngOnDestroy();
397
- this._mode.complete();
398
- }
399
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormSourceDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
400
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormSourceDirective, selector: "[dbxFormSource]", inputs: { mode: ["dbxFormSourceMode", "mode"], obs: ["dbxFormSource", "obs"] }, usesInheritance: true, ngImport: i0 });
397
+ });
398
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSourceDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
399
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxFormSourceDirective, isStandalone: true, selector: "[dbxFormSource]", inputs: { dbxFormSourceMode: { classPropertyName: "dbxFormSourceMode", publicName: "dbxFormSourceMode", isSignal: true, isRequired: false, transformFunction: null }, dbxFormSource: { classPropertyName: "dbxFormSource", publicName: "dbxFormSource", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
401
400
  }
402
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormSourceDirective, decorators: [{
401
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSourceDirective, decorators: [{
403
402
  type: Directive,
404
403
  args: [{
405
- selector: '[dbxFormSource]'
404
+ selector: '[dbxFormSource]',
405
+ standalone: true
406
406
  }]
407
- }], propDecorators: { mode: [{
408
- type: Input,
409
- args: ['dbxFormSourceMode']
410
- }], obs: [{
411
- type: Input,
412
- args: ['dbxFormSource']
413
- }] } });
407
+ }] });
414
408
 
409
+ const DEFAULT_DBX_FORM_LOADING_SOURCE_DIRECTIVE_MODE = 'reset';
415
410
  /**
416
411
  * Used with a FormComponent to set the value from a LoadingState when the value is available.
412
+ *
413
+ * Only passes non-null values from the source.
417
414
  */
418
415
  class DbxFormLoadingSourceDirective extends AbstractSubscriptionDirective {
419
416
  form = inject((DbxMutableForm), { host: true });
420
- _mode = new BehaviorSubject('reset');
421
- get mode() {
422
- return this._mode.value;
423
- }
424
- set mode(mode) {
425
- this._mode.next(mode);
426
- }
427
- /**
428
- * Sets a LoadingContext that is watched for the loading state.
429
- */
430
- set obs(obs) {
431
- this._setObs(obs);
432
- }
433
- _setObs(inputObs) {
434
- let subscription;
435
- if (inputObs) {
436
- subscription = dbxFormSourceObservableFromStream(this.form.stream$, inputObs, this._mode).subscribe((x) => {
437
- if (isLoadingStateFinishedLoading(x)) {
438
- this.form.setValue(x.value);
439
- }
440
- });
441
- }
442
- this.sub = subscription;
443
- }
444
- ngOnDestroy() {
445
- super.ngOnDestroy();
446
- this._mode.complete();
417
+ dbxFormLoadingSourceMode = input(DEFAULT_DBX_FORM_LOADING_SOURCE_DIRECTIVE_MODE, { transform: (x) => x ?? DEFAULT_DBX_FORM_LOADING_SOURCE_DIRECTIVE_MODE });
418
+ dbxFormLoadingSource = input();
419
+ mode$ = toObservable(this.dbxFormLoadingSourceMode);
420
+ source$ = toObservable(this.dbxFormLoadingSource).pipe(maybeValueFromObservableOrValue(), filterMaybe(), valueFromFinishedLoadingState());
421
+ constructor() {
422
+ super();
423
+ this.sub = dbxFormSourceObservableFromStream(this.form.stream$, this.source$, this.mode$).subscribe((x) => {
424
+ this.form.setValue(x);
425
+ });
447
426
  }
448
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormLoadingSourceDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
449
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormLoadingSourceDirective, selector: "[dbxFormLoadingSource]", inputs: { mode: ["dbxFormLoadingSourceMode", "mode"], obs: ["dbxFormLoadingSource", "obs"] }, usesInheritance: true, ngImport: i0 });
427
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormLoadingSourceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
428
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxFormLoadingSourceDirective, isStandalone: true, selector: "[dbxFormLoadingSource]", inputs: { dbxFormLoadingSourceMode: { classPropertyName: "dbxFormLoadingSourceMode", publicName: "dbxFormLoadingSourceMode", isSignal: true, isRequired: false, transformFunction: null }, dbxFormLoadingSource: { classPropertyName: "dbxFormLoadingSource", publicName: "dbxFormLoadingSource", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
450
429
  }
451
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormLoadingSourceDirective, decorators: [{
430
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormLoadingSourceDirective, decorators: [{
452
431
  type: Directive,
453
432
  args: [{
454
- selector: '[dbxFormLoadingSource]'
433
+ selector: '[dbxFormLoadingSource]',
434
+ standalone: true
455
435
  }]
456
- }], propDecorators: { mode: [{
457
- type: Input,
458
- args: ['dbxFormLoadingSourceMode']
459
- }], obs: [{
460
- type: Input,
461
- args: ['dbxFormLoadingSource']
462
- }] } });
436
+ }], ctorParameters: () => [] });
463
437
 
464
438
  /**
465
439
  * Used to see form value changes.
@@ -468,46 +442,48 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
468
442
  */
469
443
  class DbxFormValueChangesDirective extends AbstractSubscriptionDirective {
470
444
  form = inject((DbxForm), { host: true });
471
- dbxFormValueChange = new EventEmitter();
445
+ dbxFormValueChange = output();
472
446
  ngOnInit() {
473
447
  this.sub = this.form.stream$
474
448
  .pipe(mergeMap((x) => this.form.getValue().pipe(first(), map((value) => ({ isComplete: x.isComplete, value })))), delay(0))
475
449
  .subscribe(({ isComplete, value }) => {
476
450
  if (isComplete) {
477
- this.dbxFormValueChange.next(value);
451
+ this.dbxFormValueChange.emit(value);
478
452
  }
479
453
  else {
480
- this.dbxFormValueChange.next(undefined);
454
+ this.dbxFormValueChange.emit(undefined);
481
455
  }
482
456
  });
483
457
  }
484
- ngOnDestroy() {
485
- super.ngOnDestroy();
486
- this.dbxFormValueChange.complete();
487
- }
488
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormValueChangesDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
489
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormValueChangesDirective, selector: "[dbxFormValueChange]", outputs: { dbxFormValueChange: "dbxFormValueChange" }, usesInheritance: true, ngImport: i0 });
458
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormValueChangesDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
459
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxFormValueChangesDirective, isStandalone: true, selector: "[dbxFormValueChange]", outputs: { dbxFormValueChange: "dbxFormValueChange" }, usesInheritance: true, ngImport: i0 });
490
460
  }
491
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormValueChangesDirective, decorators: [{
461
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormValueChangesDirective, decorators: [{
492
462
  type: Directive,
493
463
  args: [{
494
- selector: '[dbxFormValueChange]'
464
+ selector: '[dbxFormValueChange]',
465
+ standalone: true
495
466
  }]
496
- }], propDecorators: { dbxFormValueChange: [{
497
- type: Output
498
- }] } });
467
+ }] });
499
468
 
469
+ const importsAndExports$8 = [DbxFormSourceDirective, DbxFormValueChangesDirective, DbxFormLoadingSourceDirective];
470
+ /**
471
+ * @deprecated import the directives directly instead.
472
+ *
473
+ * @see DbxFormSourceDirective
474
+ * @see DbxFormValueChangesDirective
475
+ * @see DbxFormLoadingSourceDirective
476
+ */
500
477
  class DbxFormIoModule {
501
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormIoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
502
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormIoModule, declarations: [DbxFormSourceDirective, DbxFormValueChangesDirective, DbxFormLoadingSourceDirective], imports: [CommonModule], exports: [DbxFormSourceDirective, DbxFormValueChangesDirective, DbxFormLoadingSourceDirective] });
503
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormIoModule, imports: [CommonModule] });
478
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormIoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
479
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormIoModule, imports: [DbxFormSourceDirective, DbxFormValueChangesDirective, DbxFormLoadingSourceDirective], exports: [DbxFormSourceDirective, DbxFormValueChangesDirective, DbxFormLoadingSourceDirective] });
480
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormIoModule });
504
481
  }
505
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormIoModule, decorators: [{
482
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormIoModule, decorators: [{
506
483
  type: NgModule,
507
484
  args: [{
508
- imports: [CommonModule],
509
- declarations: [DbxFormSourceDirective, DbxFormValueChangesDirective, DbxFormLoadingSourceDirective],
510
- exports: [DbxFormSourceDirective, DbxFormValueChangesDirective, DbxFormLoadingSourceDirective]
485
+ imports: importsAndExports$8,
486
+ exports: importsAndExports$8
511
487
  }]
512
488
  }] });
513
489
 
@@ -524,11 +500,11 @@ function streamValueFromControl(fromControl, path) {
524
500
  }
525
501
 
526
502
  class DbxFormModule {
527
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
528
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormModule, exports: [DbxFormActionTransitionModule, DbxFormActionModule, DbxFormIoModule] });
529
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormModule, imports: [DbxFormActionTransitionModule, DbxFormActionModule, DbxFormIoModule] });
503
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
504
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormModule, exports: [DbxFormActionTransitionModule, DbxFormActionModule, DbxFormIoModule] });
505
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormModule, imports: [DbxFormActionTransitionModule, DbxFormActionModule, DbxFormIoModule] });
530
506
  }
531
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormModule, decorators: [{
507
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormModule, decorators: [{
532
508
  type: NgModule,
533
509
  args: [{
534
510
  exports: [DbxFormActionTransitionModule, DbxFormActionModule, DbxFormIoModule]
@@ -560,45 +536,86 @@ function defaultValidationMessages() {
560
536
 
561
537
  // MARK: Default
562
538
  class DbxDefaultChecklistItemFieldDisplayComponent {
563
- displayContent;
564
- get label() {
565
- return this.displayContent?.label;
539
+ _displayContentSignal = signal(undefined);
540
+ displayContentSignal = this._displayContentSignal.asReadonly();
541
+ setDisplayContent(displayContent) {
542
+ this._displayContentSignal.set(displayContent);
566
543
  }
567
- get sublabel() {
568
- return this.displayContent?.sublabel;
544
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxDefaultChecklistItemFieldDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
545
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxDefaultChecklistItemFieldDisplayComponent, isStandalone: true, selector: "ng-component", ngImport: i0, template: `
546
+ @if (displayContentSignal()) {
547
+ <div class="dbx-default-checklist-item-field">
548
+ @if (displayContentSignal()?.label) {
549
+ <div class="item-label">{{ displayContentSignal()?.label }}</div>
550
+ }
551
+ @if (displayContentSignal()?.sublabel) {
552
+ <div class="item-sublabel">{{ displayContentSignal()?.sublabel }}</div>
553
+ }
554
+ @if (displayContentSignal()?.description) {
555
+ <div class="dbx-hint item-description">{{ displayContentSignal()?.description }}</div>
556
+ }
557
+ </div>
569
558
  }
570
- get description() {
571
- return this.displayContent?.description;
572
- }
573
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxDefaultChecklistItemFieldDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
574
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxDefaultChecklistItemFieldDisplayComponent, selector: "ng-component", inputs: { displayContent: "displayContent" }, ngImport: i0, template: `
575
- <div *ngIf="displayContent" class="dbx-default-checklist-item-field">
576
- <div *ngIf="label" class="item-label">{{ label }}</div>
577
- <div *ngIf="sublabel" class="item-sublabel">{{ sublabel }}</div>
578
- <div *ngIf="description" class="dbx-hint item-description">{{ description }}</div>
579
- </div>
580
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
559
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
581
560
  }
582
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxDefaultChecklistItemFieldDisplayComponent, decorators: [{
561
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxDefaultChecklistItemFieldDisplayComponent, decorators: [{
583
562
  type: Component,
584
563
  args: [{
585
564
  template: `
586
- <div *ngIf="displayContent" class="dbx-default-checklist-item-field">
587
- <div *ngIf="label" class="item-label">{{ label }}</div>
588
- <div *ngIf="sublabel" class="item-sublabel">{{ sublabel }}</div>
589
- <div *ngIf="description" class="dbx-hint item-description">{{ description }}</div>
590
- </div>
591
- `
565
+ @if (displayContentSignal()) {
566
+ <div class="dbx-default-checklist-item-field">
567
+ @if (displayContentSignal()?.label) {
568
+ <div class="item-label">{{ displayContentSignal()?.label }}</div>
569
+ }
570
+ @if (displayContentSignal()?.sublabel) {
571
+ <div class="item-sublabel">{{ displayContentSignal()?.sublabel }}</div>
572
+ }
573
+ @if (displayContentSignal()?.description) {
574
+ <div class="dbx-hint item-description">{{ displayContentSignal()?.description }}</div>
575
+ }
576
+ </div>
577
+ }
578
+ `,
579
+ changeDetection: ChangeDetectionStrategy.OnPush,
580
+ standalone: true,
581
+ imports: [NgIf]
592
582
  }]
593
- }], propDecorators: { displayContent: [{
594
- type: Input
595
- }] } });
583
+ }] });
596
584
 
585
+ class DbxChecklistItemContentComponent extends AbstractSubscriptionDirective {
586
+ checklistItemFieldComponent = inject((DbxChecklistItemFieldComponent));
587
+ config = {
588
+ componentClass: this.checklistItemFieldComponent.componentClass,
589
+ init: (instance) => {
590
+ this.sub = this.checklistItemFieldComponent.displayContent$.subscribe((content) => {
591
+ instance.setDisplayContent(content);
592
+ });
593
+ }
594
+ };
595
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxChecklistItemContentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
596
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxChecklistItemContentComponent, isStandalone: true, selector: "dbx-checklist-item-content-component", usesInheritance: true, ngImport: i0, template: `
597
+ <dbx-injection [config]="config"></dbx-injection>
598
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
599
+ }
600
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxChecklistItemContentComponent, decorators: [{
601
+ type: Component,
602
+ args: [{
603
+ selector: 'dbx-checklist-item-content-component',
604
+ template: `
605
+ <dbx-injection [config]="config"></dbx-injection>
606
+ `,
607
+ changeDetection: ChangeDetectionStrategy.OnPush,
608
+ standalone: true,
609
+ imports: [DbxInjectionComponent]
610
+ }]
611
+ }] });
597
612
  class DbxChecklistItemFieldComponent extends FieldType {
598
- _displayContent = new BehaviorSubject(undefined);
599
- displayContent$ = this._displayContent.pipe(switchMapMaybeObs(), distinctUntilChanged(), shareReplay(1));
613
+ _displayContentObs = signal(undefined);
614
+ displayContent$ = toObservable(this._displayContentObs).pipe(switchMapFilterMaybe(), distinctUntilChanged(), shareReplay(1));
600
615
  anchor$ = this.displayContent$.pipe(map((x) => x.anchor), shareReplay(1));
601
616
  rippleDisabled$ = this.displayContent$.pipe(map((x) => x.ripple === false || (x.ripple !== true && !x.anchor)), distinctUntilChanged(), shareReplay(1));
617
+ anchorSignal = toSignal(this.anchor$);
618
+ rippleDisabledSignal = toSignal(this.rippleDisabled$, { initialValue: false });
602
619
  get formGroup() {
603
620
  return this.form;
604
621
  }
@@ -624,43 +641,14 @@ class DbxChecklistItemFieldComponent extends FieldType {
624
641
  return this.checklistField.componentClass ?? DbxDefaultChecklistItemFieldDisplayComponent;
625
642
  }
626
643
  ngOnInit() {
627
- this._displayContent.next(this.checklistField.displayContentObs);
644
+ this._displayContentObs.set(this.checklistField.displayContent);
628
645
  }
629
- ngOnDestroy() {
630
- this._displayContent.complete();
631
- }
632
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxChecklistItemFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
633
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxChecklistItemFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-checklist-item-wrapper\" [formGroup]=\"formGroup\">\n <div *ngIf=\"label\" class=\"dbx-checklist-item-label\">{{ label }}</div>\n <div class=\"dbx-checklist-item\">\n <div class=\"dbx-checklist-item-check\">\n <mat-checkbox [formControlName]=\"formControlName\"></mat-checkbox>\n </div>\n <div class=\"dbx-checklist-item-content-wrapper\">\n <dbx-anchor [block]=\"true\" [anchor]=\"anchor$ | async\">\n <div class=\"dbx-checklist-item-content\" matRipple [matRippleDisabled]=\"(rippleDisabled$ | async) ?? false\">\n <dbx-checklist-item-content-component></dbx-checklist-item-content-component>\n <span class=\"spacer\"></span>\n <mat-icon *ngIf=\"(rippleDisabled$ | async) !== true\">navigate_next</mat-icon>\n </div>\n </dbx-anchor>\n </div>\n </div>\n <div *ngIf=\"description\" class=\"dbx-hint\">{{ description }}</div>\n</div>\n", dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgControlStatusGroup; }), selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i0.forwardRef(function () { return i2.FormGroupDirective; }), selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.FormControlName; }), selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i0.forwardRef(function () { return i4.MatRipple; }), selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i0.forwardRef(function () { return i4$1.MatCheckbox; }), selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i0.forwardRef(function () { return i7.MatIcon; }), selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i0.forwardRef(function () { return i5.DbxAnchorComponent; }), selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { kind: "component", type: i0.forwardRef(function () { return DbxChecklistItemContentComponent; }), selector: "dbx-checklist-item-content-component" }, { kind: "pipe", type: i0.forwardRef(function () { return i1.AsyncPipe; }), name: "async" }] });
634
- }
635
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxChecklistItemFieldComponent, decorators: [{
636
- type: Component,
637
- args: [{ template: "<div class=\"dbx-checklist-item-wrapper\" [formGroup]=\"formGroup\">\n <div *ngIf=\"label\" class=\"dbx-checklist-item-label\">{{ label }}</div>\n <div class=\"dbx-checklist-item\">\n <div class=\"dbx-checklist-item-check\">\n <mat-checkbox [formControlName]=\"formControlName\"></mat-checkbox>\n </div>\n <div class=\"dbx-checklist-item-content-wrapper\">\n <dbx-anchor [block]=\"true\" [anchor]=\"anchor$ | async\">\n <div class=\"dbx-checklist-item-content\" matRipple [matRippleDisabled]=\"(rippleDisabled$ | async) ?? false\">\n <dbx-checklist-item-content-component></dbx-checklist-item-content-component>\n <span class=\"spacer\"></span>\n <mat-icon *ngIf=\"(rippleDisabled$ | async) !== true\">navigate_next</mat-icon>\n </div>\n </dbx-anchor>\n </div>\n </div>\n <div *ngIf=\"description\" class=\"dbx-hint\">{{ description }}</div>\n</div>\n" }]
638
- }] });
639
- class DbxChecklistItemContentComponent extends AbstractSubscriptionDirective {
640
- cdRef = inject(ChangeDetectorRef);
641
- checklistItemFieldComponent = inject((DbxChecklistItemFieldComponent));
642
- config = {
643
- componentClass: this.checklistItemFieldComponent.componentClass,
644
- init: (instance) => {
645
- this.sub = this.checklistItemFieldComponent.displayContent$.subscribe((x) => {
646
- instance.displayContent = x;
647
- safeDetectChanges(this.cdRef);
648
- });
649
- }
650
- };
651
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxChecklistItemContentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
652
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxChecklistItemContentComponent, selector: "dbx-checklist-item-content-component", usesInheritance: true, ngImport: i0, template: `
653
- <dbx-injection [config]="config"></dbx-injection>
654
- `, isInline: true, dependencies: [{ kind: "component", type: i6.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }] });
646
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxChecklistItemFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
647
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxChecklistItemFieldComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-checklist-item-wrapper\" [formGroup]=\"formGroup\">\n @if (label) {\n <div class=\"dbx-checklist-item-label\">{{ label }}</div>\n }\n <div class=\"dbx-checklist-item\">\n <div class=\"dbx-checklist-item-check\">\n <mat-checkbox [formControlName]=\"formControlName\"></mat-checkbox>\n </div>\n <div class=\"dbx-checklist-item-content-wrapper\">\n <dbx-anchor [block]=\"true\" [anchor]=\"anchorSignal()\">\n <div class=\"dbx-checklist-item-content\" matRipple [matRippleDisabled]=\"rippleDisabledSignal()\">\n <dbx-checklist-item-content-component></dbx-checklist-item-content-component>\n <span class=\"spacer\"></span>\n @if (!rippleDisabledSignal()) {\n <mat-icon>navigate_next</mat-icon>\n }\n </div>\n </dbx-anchor>\n </div>\n </div>\n @if (description) {\n <div class=\"dbx-hint\">{{ description }}</div>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i2$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { kind: "ngmodule", type: MatRippleModule }, { kind: "directive", type: i3.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: DbxChecklistItemContentComponent, selector: "dbx-checklist-item-content-component" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
655
648
  }
656
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxChecklistItemContentComponent, decorators: [{
649
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxChecklistItemFieldComponent, decorators: [{
657
650
  type: Component,
658
- args: [{
659
- selector: 'dbx-checklist-item-content-component',
660
- template: `
661
- <dbx-injection [config]="config"></dbx-injection>
662
- `
663
- }]
651
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [ReactiveFormsModule, MatCheckboxModule, DbxAnchorComponent, MatRippleModule, MatIconModule, NgIf, AsyncPipe, DbxChecklistItemContentComponent], template: "<div class=\"dbx-checklist-item-wrapper\" [formGroup]=\"formGroup\">\n @if (label) {\n <div class=\"dbx-checklist-item-label\">{{ label }}</div>\n }\n <div class=\"dbx-checklist-item\">\n <div class=\"dbx-checklist-item-check\">\n <mat-checkbox [formControlName]=\"formControlName\"></mat-checkbox>\n </div>\n <div class=\"dbx-checklist-item-content-wrapper\">\n <dbx-anchor [block]=\"true\" [anchor]=\"anchorSignal()\">\n <div class=\"dbx-checklist-item-content\" matRipple [matRippleDisabled]=\"rippleDisabledSignal()\">\n <dbx-checklist-item-content-component></dbx-checklist-item-content-component>\n <span class=\"spacer\"></span>\n @if (!rippleDisabledSignal()) {\n <mat-icon>navigate_next</mat-icon>\n }\n </div>\n </dbx-anchor>\n </div>\n </div>\n @if (description) {\n <div class=\"dbx-hint\">{{ description }}</div>\n }\n</div>\n" }]
664
652
  }] });
665
653
 
666
654
  class DbxFormInfoWrapperComponent extends FieldWrapper {
@@ -670,35 +658,38 @@ class DbxFormInfoWrapperComponent extends FieldWrapper {
670
658
  onInfoClick() {
671
659
  this.infoWrapper.onInfoClick();
672
660
  }
673
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormInfoWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
674
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormInfoWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
675
- <div class="dbx-form-info-wrapper" fxLayout="row">
676
- <div class="dbx-form-info-wrapper-content" fxFlex="grow">
661
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormInfoWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
662
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxFormInfoWrapperComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
663
+ <div class="dbx-form-info-wrapper dbx-flex-bar">
664
+ <div class="dbx-form-info-wrapper-content dbx-flex-grow">
677
665
  <ng-container #fieldComponent></ng-container>
678
666
  </div>
679
- <div class="dbx-form-info-wrapper-info" fxFlex="noshrink" fxLayout="column" fxLayoutAlign="center center">
667
+ <div class="dbx-form-info-wrapper-info dbx-flex-noshrink dbx-flex-column dbx-flex-center">
680
668
  <button mat-icon-button [attr.aria-label]="'show info button for ' + (to.label || 'section')" (click)="onInfoClick()">
681
669
  <mat-icon>info</mat-icon>
682
670
  </button>
683
671
  </div>
684
672
  </div>
685
- `, isInline: true, dependencies: [{ kind: "component", type: i6$1.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i10.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i10.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }] });
673
+ `, isInline: true, dependencies: [{ kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
686
674
  }
687
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormInfoWrapperComponent, decorators: [{
675
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormInfoWrapperComponent, decorators: [{
688
676
  type: Component,
689
677
  args: [{
690
678
  template: `
691
- <div class="dbx-form-info-wrapper" fxLayout="row">
692
- <div class="dbx-form-info-wrapper-content" fxFlex="grow">
679
+ <div class="dbx-form-info-wrapper dbx-flex-bar">
680
+ <div class="dbx-form-info-wrapper-content dbx-flex-grow">
693
681
  <ng-container #fieldComponent></ng-container>
694
682
  </div>
695
- <div class="dbx-form-info-wrapper-info" fxFlex="noshrink" fxLayout="column" fxLayoutAlign="center center">
683
+ <div class="dbx-form-info-wrapper-info dbx-flex-noshrink dbx-flex-column dbx-flex-center">
696
684
  <button mat-icon-button [attr.aria-label]="'show info button for ' + (to.label || 'section')" (click)="onInfoClick()">
697
685
  <mat-icon>info</mat-icon>
698
686
  </button>
699
687
  </div>
700
688
  </div>
701
- `
689
+ `,
690
+ imports: [MatIconButton, MatIconModule],
691
+ changeDetection: ChangeDetectionStrategy.OnPush,
692
+ standalone: true
702
693
  }]
703
694
  }] });
704
695
 
@@ -706,14 +697,14 @@ class DbxFormSectionWrapperComponent extends FieldWrapper {
706
697
  get headerConfig() {
707
698
  return this.props;
708
699
  }
709
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormSectionWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
710
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormSectionWrapperComponent, selector: "dbx-form-section-wrapper", usesInheritance: true, ngImport: i0, template: `
700
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSectionWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
701
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxFormSectionWrapperComponent, isStandalone: true, selector: "dbx-form-section-wrapper", usesInheritance: true, ngImport: i0, template: `
711
702
  <dbx-section [headerConfig]="headerConfig">
712
703
  <ng-container #fieldComponent></ng-container>
713
704
  </dbx-section>
714
- `, isInline: true, dependencies: [{ kind: "component", type: i5.DbxSectionComponent, selector: "dbx-section", inputs: ["elevate"] }] });
705
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: DbxSectionLayoutModule }, { kind: "component", type: i1$1.DbxSectionComponent, selector: "dbx-section", inputs: ["elevate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
715
706
  }
716
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormSectionWrapperComponent, decorators: [{
707
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSectionWrapperComponent, decorators: [{
717
708
  type: Component,
718
709
  args: [{
719
710
  selector: 'dbx-form-section-wrapper',
@@ -721,7 +712,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
721
712
  <dbx-section [headerConfig]="headerConfig">
722
713
  <ng-container #fieldComponent></ng-container>
723
714
  </dbx-section>
724
- `
715
+ `,
716
+ imports: [DbxSectionLayoutModule],
717
+ changeDetection: ChangeDetectionStrategy.OnPush,
718
+ standalone: true
725
719
  }]
726
720
  }] });
727
721
 
@@ -738,21 +732,24 @@ class DbxFormFlexWrapperComponent extends FieldWrapper {
738
732
  get breakToColumn() {
739
733
  return this.flexWrapper.breakToColumn ?? false;
740
734
  }
741
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFlexWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
742
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormFlexWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
735
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFlexWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
736
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxFormFlexWrapperComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
743
737
  <div class="dbx-form-flex-section" dbxFlexGroup [content]="false" [relative]="relative" [breakpoint]="breakpoint" [breakToColumn]="breakToColumn">
744
738
  <ng-container #fieldComponent></ng-container>
745
739
  </div>
746
- `, isInline: true, dependencies: [{ kind: "directive", type: i5.DbxFlexGroupDirective, selector: "[dbxFlexGroup]", inputs: ["breakToColumn", "content", "relative", "breakpoint"] }] });
740
+ `, isInline: true, dependencies: [{ kind: "directive", type: DbxFlexGroupDirective, selector: "[dbxFlexGroup]", inputs: ["content", "breakToColumn", "relative", "breakpoint"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
747
741
  }
748
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFlexWrapperComponent, decorators: [{
742
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFlexWrapperComponent, decorators: [{
749
743
  type: Component,
750
744
  args: [{
751
745
  template: `
752
746
  <div class="dbx-form-flex-section" dbxFlexGroup [content]="false" [relative]="relative" [breakpoint]="breakpoint" [breakToColumn]="breakToColumn">
753
747
  <ng-container #fieldComponent></ng-container>
754
748
  </div>
755
- `
749
+ `,
750
+ imports: [DbxFlexGroupDirective],
751
+ changeDetection: ChangeDetectionStrategy.OnPush,
752
+ standalone: true
756
753
  }]
757
754
  }] });
758
755
 
@@ -760,14 +757,14 @@ class DbxFormSubsectionWrapperComponent extends FieldWrapper {
760
757
  get headerConfig() {
761
758
  return this.props;
762
759
  }
763
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormSubsectionWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
764
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormSubsectionWrapperComponent, selector: "dbx-form-subsection-wrapper", usesInheritance: true, ngImport: i0, template: `
760
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSubsectionWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
761
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxFormSubsectionWrapperComponent, isStandalone: true, selector: "dbx-form-subsection-wrapper", usesInheritance: true, ngImport: i0, template: `
765
762
  <dbx-subsection [headerConfig]="headerConfig">
766
763
  <ng-container #fieldComponent></ng-container>
767
764
  </dbx-subsection>
768
- `, isInline: true, dependencies: [{ kind: "component", type: i5.DbxSubSectionComponent, selector: "dbx-subsection" }] });
765
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxSubSectionComponent, selector: "dbx-subsection" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
769
766
  }
770
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormSubsectionWrapperComponent, decorators: [{
767
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSubsectionWrapperComponent, decorators: [{
771
768
  type: Component,
772
769
  args: [{
773
770
  selector: 'dbx-form-subsection-wrapper',
@@ -775,7 +772,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
775
772
  <dbx-subsection [headerConfig]="headerConfig">
776
773
  <ng-container #fieldComponent></ng-container>
777
774
  </dbx-subsection>
778
- `
775
+ `,
776
+ imports: [DbxSubSectionComponent],
777
+ changeDetection: ChangeDetectionStrategy.OnPush,
778
+ standalone: true
779
779
  }]
780
780
  }] });
781
781
 
@@ -795,6 +795,8 @@ class AbstractFormExpandSectionWrapperDirective extends FieldWrapper {
795
795
  hasValue$ = this.formControl$.pipe(switchMap((x) => x.valueChanges.pipe(startWith(x.value), map((value) => {
796
796
  return this.hasValueFn(value);
797
797
  }), shareReplay(1))));
798
+ showSignal = toSignal(this.show$, { initialValue: false });
799
+ hasValueSignal = toSignal(this.hasValue$, { initialValue: false });
798
800
  get expandSection() {
799
801
  return this.props;
800
802
  }
@@ -821,10 +823,10 @@ class AbstractFormExpandSectionWrapperDirective extends FieldWrapper {
821
823
  this._toggleOpen.complete();
822
824
  this._formControlObs.complete();
823
825
  }
824
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractFormExpandSectionWrapperDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
825
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AbstractFormExpandSectionWrapperDirective, usesInheritance: true, ngImport: i0 });
826
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractFormExpandSectionWrapperDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
827
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: AbstractFormExpandSectionWrapperDirective, usesInheritance: true, ngImport: i0 });
826
828
  }
827
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractFormExpandSectionWrapperDirective, decorators: [{
829
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractFormExpandSectionWrapperDirective, decorators: [{
828
830
  type: Directive
829
831
  }] });
830
832
 
@@ -835,31 +837,27 @@ class DbxFormExpandWrapperComponent extends AbstractFormExpandSectionWrapperDire
835
837
  get buttonType() {
836
838
  return this.expandSection.buttonType ?? 'button';
837
839
  }
838
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormExpandWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
839
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormExpandWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
840
- <ng-container [ngSwitch]="show$ | async">
841
- <ng-container *ngSwitchCase="true">
842
- <ng-container #fieldComponent></ng-container>
843
- </ng-container>
844
- <ng-container *ngSwitchCase="false">
845
- <span class="dbx-form-expand-wrapper-button" (click)="open()">{{ expandLabel }}</span>
846
- </ng-container>
847
- </ng-container>
848
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
849
- }
850
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormExpandWrapperComponent, decorators: [{
840
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormExpandWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
841
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFormExpandWrapperComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
842
+ @if (showSignal()) {
843
+ <ng-container #fieldComponent></ng-container>
844
+ } @else {
845
+ <span class="dbx-form-expand-wrapper-button" (click)="open()">{{ expandLabel }}</span>
846
+ }
847
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
848
+ }
849
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormExpandWrapperComponent, decorators: [{
851
850
  type: Component,
852
851
  args: [{
853
852
  template: `
854
- <ng-container [ngSwitch]="show$ | async">
855
- <ng-container *ngSwitchCase="true">
856
- <ng-container #fieldComponent></ng-container>
857
- </ng-container>
858
- <ng-container *ngSwitchCase="false">
859
- <span class="dbx-form-expand-wrapper-button" (click)="open()">{{ expandLabel }}</span>
860
- </ng-container>
861
- </ng-container>
862
- `
853
+ @if (showSignal()) {
854
+ <ng-container #fieldComponent></ng-container>
855
+ } @else {
856
+ <span class="dbx-form-expand-wrapper-button" (click)="open()">{{ expandLabel }}</span>
857
+ }
858
+ `,
859
+ changeDetection: ChangeDetectionStrategy.OnPush,
860
+ standalone: true
863
861
  }]
864
862
  }] });
865
863
 
@@ -875,17 +873,19 @@ class AutoTouchFieldWrapperComponent extends FieldWrapper {
875
873
  }
876
874
  });
877
875
  }
878
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutoTouchFieldWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
879
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AutoTouchFieldWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
876
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutoTouchFieldWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
877
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AutoTouchFieldWrapperComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
880
878
  <ng-container #fieldComponent></ng-container>
881
- `, isInline: true });
879
+ `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
882
880
  }
883
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutoTouchFieldWrapperComponent, decorators: [{
881
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutoTouchFieldWrapperComponent, decorators: [{
884
882
  type: Component,
885
883
  args: [{
886
884
  template: `
887
885
  <ng-container #fieldComponent></ng-container>
888
- `
886
+ `,
887
+ changeDetection: ChangeDetectionStrategy.OnPush,
888
+ standalone: true
889
889
  }]
890
890
  }] });
891
891
 
@@ -901,36 +901,40 @@ class DbxFormToggleWrapperComponent extends AbstractFormExpandSectionWrapperDire
901
901
  return of(this.expandLabel);
902
902
  }
903
903
  }), shareReplay(1));
904
+ slideLabelSignal = toSignal(this.slideLabel$, { initialValue: '' });
904
905
  onToggleChange() {
905
906
  this.show$.pipe(first()).subscribe((show) => {
906
907
  this._toggleOpen.next(!show);
907
908
  });
908
909
  }
909
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormToggleWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
910
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormToggleWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
911
- <div class="dbx-form-toggle-wrapper" [ngSwitch]="show$ | async">
910
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormToggleWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
911
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFormToggleWrapperComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
912
+ <div class="dbx-form-toggle-wrapper">
912
913
  <div class="dbx-form-toggle-wrapper-toggle">
913
- <mat-slide-toggle [checked]="show$ | async" (toggleChange)="onToggleChange()">{{ slideLabel$ | async }}</mat-slide-toggle>
914
+ <mat-slide-toggle [checked]="showSignal()" (toggleChange)="onToggleChange()">{{ slideLabelSignal() }}</mat-slide-toggle>
914
915
  </div>
915
- <ng-container *ngSwitchCase="true">
916
+ @if (showSignal()) {
916
917
  <ng-container #fieldComponent></ng-container>
917
- </ng-container>
918
+ }
918
919
  </div>
919
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
920
+ `, isInline: true, dependencies: [{ kind: "component", type: MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
920
921
  }
921
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormToggleWrapperComponent, decorators: [{
922
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormToggleWrapperComponent, decorators: [{
922
923
  type: Component,
923
924
  args: [{
924
925
  template: `
925
- <div class="dbx-form-toggle-wrapper" [ngSwitch]="show$ | async">
926
+ <div class="dbx-form-toggle-wrapper">
926
927
  <div class="dbx-form-toggle-wrapper-toggle">
927
- <mat-slide-toggle [checked]="show$ | async" (toggleChange)="onToggleChange()">{{ slideLabel$ | async }}</mat-slide-toggle>
928
+ <mat-slide-toggle [checked]="showSignal()" (toggleChange)="onToggleChange()">{{ slideLabelSignal() }}</mat-slide-toggle>
928
929
  </div>
929
- <ng-container *ngSwitchCase="true">
930
+ @if (showSignal()) {
930
931
  <ng-container #fieldComponent></ng-container>
931
- </ng-container>
932
+ }
932
933
  </div>
933
- `
934
+ `,
935
+ imports: [MatSlideToggle],
936
+ changeDetection: ChangeDetectionStrategy.OnPush,
937
+ standalone: true
934
938
  }]
935
939
  }] });
936
940
 
@@ -939,6 +943,8 @@ class DbxFormStyleWrapperComponent extends FieldWrapper {
939
943
  _class = new BehaviorSubject(undefined);
940
944
  style$ = this._style.pipe(switchMapMaybeDefault({}), shareReplay(1));
941
945
  class$ = this._class.pipe(switchMapMaybeDefault(''), shareReplay(1));
946
+ styleSignal = toSignal(this.style$);
947
+ classSignal = toSignal(this.class$);
942
948
  get styleGetter() {
943
949
  return this.props.styleGetter;
944
950
  }
@@ -957,21 +963,24 @@ class DbxFormStyleWrapperComponent extends FieldWrapper {
957
963
  this._style.complete();
958
964
  this._class.complete();
959
965
  }
960
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormStyleWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
961
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormStyleWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
962
- <div class="dbx-form-style-wrapper" [ngClass]="(class$ | async) ?? ''" [ngStyle]="(style$ | async) ?? {}">
966
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormStyleWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
967
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxFormStyleWrapperComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
968
+ <div class="dbx-form-style-wrapper" [ngClass]="classSignal()" [ngStyle]="styleSignal()">
963
969
  <ng-container #fieldComponent></ng-container>
964
970
  </div>
965
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2$2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i2$2.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
971
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
966
972
  }
967
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormStyleWrapperComponent, decorators: [{
973
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormStyleWrapperComponent, decorators: [{
968
974
  type: Component,
969
975
  args: [{
970
976
  template: `
971
- <div class="dbx-form-style-wrapper" [ngClass]="(class$ | async) ?? ''" [ngStyle]="(style$ | async) ?? {}">
977
+ <div class="dbx-form-style-wrapper" [ngClass]="classSignal()" [ngStyle]="styleSignal()">
972
978
  <ng-container #fieldComponent></ng-container>
973
979
  </div>
974
- `
980
+ `,
981
+ imports: [NgClass, NgStyle],
982
+ changeDetection: ChangeDetectionStrategy.OnPush,
983
+ standalone: true
975
984
  }]
976
985
  }] });
977
986
 
@@ -992,15 +1001,15 @@ class DbxFormWorkingWrapperComponent extends FieldWrapper {
992
1001
  this.workingContext.destroy();
993
1002
  this.sub.destroy();
994
1003
  }
995
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormWorkingWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
996
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormWorkingWrapperComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1004
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormWorkingWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1005
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxFormWorkingWrapperComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
997
1006
  <div class="dbx-form-working-wrapper">
998
1007
  <ng-container #fieldComponent></ng-container>
999
1008
  <dbx-loading [linear]="true" [context]="workingContext"></dbx-loading>
1000
1009
  </div>
1001
- `, isInline: true, dependencies: [{ kind: "component", type: i5.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "padding", "context", "loading", "error"] }] });
1010
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1002
1011
  }
1003
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormWorkingWrapperComponent, decorators: [{
1012
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormWorkingWrapperComponent, decorators: [{
1004
1013
  type: Component,
1005
1014
  args: [{
1006
1015
  template: `
@@ -1008,7 +1017,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1008
1017
  <ng-container #fieldComponent></ng-container>
1009
1018
  <dbx-loading [linear]="true" [context]="workingContext"></dbx-loading>
1010
1019
  </div>
1011
- `
1020
+ `,
1021
+ imports: [DbxLoadingComponent],
1022
+ changeDetection: ChangeDetectionStrategy.OnPush,
1023
+ standalone: true
1012
1024
  }]
1013
1025
  }] });
1014
1026
 
@@ -1022,27 +1034,11 @@ const STYLE_WRAPPER_KEY = 'style';
1022
1034
  const WORKING_WRAPPER_KEY = 'working';
1023
1035
  const EXPAND_WRAPPER_KEY = 'expand';
1024
1036
 
1037
+ const importsAndExports$7 = [AutoTouchFieldWrapperComponent, DbxFormSectionWrapperComponent, DbxFormSubsectionWrapperComponent, DbxFormInfoWrapperComponent, DbxFormExpandWrapperComponent, DbxFormToggleWrapperComponent, DbxFormFlexWrapperComponent, DbxFormStyleWrapperComponent, DbxFormWorkingWrapperComponent];
1025
1038
  class DbxFormFormlyWrapperModule {
1026
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyWrapperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1027
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyWrapperModule, declarations: [AutoTouchFieldWrapperComponent, DbxFormSectionWrapperComponent, DbxFormSubsectionWrapperComponent, DbxFormInfoWrapperComponent, DbxFormExpandWrapperComponent, DbxFormToggleWrapperComponent, DbxFormFlexWrapperComponent, DbxFormStyleWrapperComponent, DbxFormWorkingWrapperComponent], imports: [CommonModule,
1028
- DbxTextModule,
1029
- DbxLoadingModule,
1030
- DbxFlexLayoutModule,
1031
- DbxSectionLayoutModule,
1032
- MatButtonModule,
1033
- MatSlideToggleModule,
1034
- MatIconModule,
1035
- FlexLayoutModule, i1$1.FormlyModule] });
1036
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyWrapperModule, imports: [CommonModule,
1037
- DbxTextModule,
1038
- DbxLoadingModule,
1039
- DbxFlexLayoutModule,
1040
- DbxSectionLayoutModule,
1041
- MatButtonModule,
1042
- MatSlideToggleModule,
1043
- MatIconModule,
1044
- FlexLayoutModule,
1045
- FormlyModule.forChild({
1039
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyWrapperModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1040
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyWrapperModule, imports: [AutoTouchFieldWrapperComponent, DbxFormSectionWrapperComponent, DbxFormSubsectionWrapperComponent, DbxFormInfoWrapperComponent, DbxFormExpandWrapperComponent, DbxFormToggleWrapperComponent, DbxFormFlexWrapperComponent, DbxFormStyleWrapperComponent, DbxFormWorkingWrapperComponent, i1$2.FormlyModule], exports: [AutoTouchFieldWrapperComponent, DbxFormSectionWrapperComponent, DbxFormSubsectionWrapperComponent, DbxFormInfoWrapperComponent, DbxFormExpandWrapperComponent, DbxFormToggleWrapperComponent, DbxFormFlexWrapperComponent, DbxFormStyleWrapperComponent, DbxFormWorkingWrapperComponent] });
1041
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyWrapperModule, imports: [DbxFormSectionWrapperComponent, DbxFormSubsectionWrapperComponent, DbxFormInfoWrapperComponent, DbxFormToggleWrapperComponent, DbxFormWorkingWrapperComponent, FormlyModule.forChild({
1046
1042
  wrappers: [
1047
1043
  { name: AUTO_TOUCH_WRAPPER_KEY, component: AutoTouchFieldWrapperComponent },
1048
1044
  { name: EXPAND_WRAPPER_KEY, component: DbxFormExpandWrapperComponent },
@@ -1056,19 +1052,11 @@ class DbxFormFormlyWrapperModule {
1056
1052
  ]
1057
1053
  })] });
1058
1054
  }
1059
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyWrapperModule, decorators: [{
1055
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyWrapperModule, decorators: [{
1060
1056
  type: NgModule,
1061
1057
  args: [{
1062
1058
  imports: [
1063
- CommonModule,
1064
- DbxTextModule,
1065
- DbxLoadingModule,
1066
- DbxFlexLayoutModule,
1067
- DbxSectionLayoutModule,
1068
- MatButtonModule,
1069
- MatSlideToggleModule,
1070
- MatIconModule,
1071
- FlexLayoutModule,
1059
+ ...importsAndExports$7,
1072
1060
  FormlyModule.forChild({
1073
1061
  wrappers: [
1074
1062
  { name: AUTO_TOUCH_WRAPPER_KEY, component: AutoTouchFieldWrapperComponent },
@@ -1083,59 +1071,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1083
1071
  ]
1084
1072
  })
1085
1073
  ],
1086
- declarations: [AutoTouchFieldWrapperComponent, DbxFormSectionWrapperComponent, DbxFormSubsectionWrapperComponent, DbxFormInfoWrapperComponent, DbxFormExpandWrapperComponent, DbxFormToggleWrapperComponent, DbxFormFlexWrapperComponent, DbxFormStyleWrapperComponent, DbxFormWorkingWrapperComponent],
1087
- exports: []
1074
+ exports: importsAndExports$7
1088
1075
  }]
1089
1076
  }] });
1090
1077
 
1078
+ const importsAndExports$6 = [DbxChecklistItemFieldComponent, DbxChecklistItemContentComponent, DbxDefaultChecklistItemFieldDisplayComponent];
1091
1079
  class DbxFormFormlyChecklistItemFieldModule {
1092
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1093
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, declarations: [DbxChecklistItemFieldComponent, DbxChecklistItemContentComponent, DbxDefaultChecklistItemFieldDisplayComponent], imports: [CommonModule,
1094
- DbxTextModule,
1095
- FormsModule,
1096
- ReactiveFormsModule,
1097
- MatRippleModule,
1098
- MatCheckboxModule,
1099
- MatButtonModule,
1100
- MatIconModule,
1101
- DbxRouterAnchorModule,
1102
- DbxInjectionComponentModule,
1103
- DbxFormFormlyWrapperModule, i1$1.FormlyModule], exports: [DbxFormFormlyWrapperModule] });
1104
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, imports: [CommonModule,
1105
- DbxTextModule,
1106
- FormsModule,
1107
- ReactiveFormsModule,
1108
- MatRippleModule,
1109
- MatCheckboxModule,
1110
- MatButtonModule,
1111
- MatIconModule,
1112
- DbxRouterAnchorModule,
1113
- DbxInjectionComponentModule,
1114
- DbxFormFormlyWrapperModule,
1080
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1081
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, imports: [DbxChecklistItemFieldComponent, DbxChecklistItemContentComponent, DbxDefaultChecklistItemFieldDisplayComponent, DbxFormFormlyWrapperModule, i1$2.FormlyModule], exports: [DbxFormFormlyWrapperModule] });
1082
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, imports: [DbxChecklistItemFieldComponent, DbxChecklistItemContentComponent, DbxFormFormlyWrapperModule,
1115
1083
  FormlyModule.forChild({
1116
1084
  types: [{ name: 'checklistitem', component: DbxChecklistItemFieldComponent }]
1117
1085
  }), DbxFormFormlyWrapperModule] });
1118
1086
  }
1119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, decorators: [{
1087
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyChecklistItemFieldModule, decorators: [{
1120
1088
  type: NgModule,
1121
1089
  args: [{
1122
1090
  imports: [
1123
- CommonModule,
1124
- DbxTextModule,
1125
- FormsModule,
1126
- ReactiveFormsModule,
1127
- MatRippleModule,
1128
- MatCheckboxModule,
1129
- MatButtonModule,
1130
- MatIconModule,
1131
- DbxRouterAnchorModule,
1132
- DbxInjectionComponentModule,
1091
+ ...importsAndExports$6,
1133
1092
  DbxFormFormlyWrapperModule,
1134
1093
  FormlyModule.forChild({
1135
1094
  types: [{ name: 'checklistitem', component: DbxChecklistItemFieldComponent }]
1136
1095
  })
1137
1096
  ],
1138
- declarations: [DbxChecklistItemFieldComponent, DbxChecklistItemContentComponent, DbxDefaultChecklistItemFieldDisplayComponent],
1139
1097
  exports: [DbxFormFormlyWrapperModule]
1140
1098
  }]
1141
1099
  }] });
@@ -1237,12 +1195,12 @@ function validatorsForFieldConfig(input) {
1237
1195
  }
1238
1196
 
1239
1197
  function checklistItemField(config) {
1240
- const { key, displayContentObs, componentClass } = config;
1198
+ const { key, displayContent, componentClass } = config;
1241
1199
  const fieldConfig = formlyField({
1242
1200
  key,
1243
1201
  type: 'checklistitem',
1244
1202
  ...propsAndConfigForFieldConfig(config, {
1245
- displayContentObs,
1203
+ displayContent,
1246
1204
  componentClass
1247
1205
  })
1248
1206
  });
@@ -1270,8 +1228,8 @@ class ChecklistItemFieldDataSetBuilder {
1270
1228
  ...config,
1271
1229
  key
1272
1230
  };
1273
- if (currentField.displayContentObs && config.displayContentObs) {
1274
- mergedConfig.displayContentObs = combineLatest([currentField.displayContentObs, config.displayContentObs]).pipe(map(([a, b]) => {
1231
+ if (currentField.displayContent && config.displayContent) {
1232
+ mergedConfig.displayContent = combineLatest([currentField.displayContent, config.displayContent]).pipe(map(([a, b]) => {
1275
1233
  const result = {
1276
1234
  ...a,
1277
1235
  ...b
@@ -1300,14 +1258,14 @@ class ChecklistItemFieldDataSetBuilder {
1300
1258
  }
1301
1259
  showValueFieldArrayCount(key, config) {
1302
1260
  return this.field({
1303
- displayContentObs: this.contentWithDisplayValueFromData(key, (x) => addPlusPrefixToNumber(x?.length)),
1261
+ displayContent: this.contentWithDisplayValueFromData(key, (x) => addPlusPrefixToNumber(x?.length)),
1304
1262
  ...config,
1305
1263
  key
1306
1264
  });
1307
1265
  }
1308
1266
  showValueField(key, config, labelFn = (x) => x?.toString()) {
1309
1267
  return this.field({
1310
- displayContentObs: this.contentWithDisplayValueFromData(key, labelFn),
1268
+ displayContent: this.contentWithDisplayValueFromData(key, labelFn),
1311
1269
  ...config,
1312
1270
  key
1313
1271
  });
@@ -1352,42 +1310,41 @@ class DbxFormComponentFieldComponent extends FieldType {
1352
1310
  get config() {
1353
1311
  return this.field.componentField;
1354
1312
  }
1355
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormComponentFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1356
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormComponentFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1313
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormComponentFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1314
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxFormComponentFieldComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1357
1315
  <div class="dbx-form-component" dbx-injection [config]="config"></div>
1358
- `, isInline: true, dependencies: [{ kind: "component", type: i6.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }] });
1316
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1359
1317
  }
1360
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormComponentFieldComponent, decorators: [{
1318
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormComponentFieldComponent, decorators: [{
1361
1319
  type: Component,
1362
1320
  args: [{
1363
1321
  template: `
1364
1322
  <div class="dbx-form-component" dbx-injection [config]="config"></div>
1365
- `
1323
+ `,
1324
+ imports: [DbxInjectionComponent],
1325
+ changeDetection: ChangeDetectionStrategy.OnPush,
1326
+ standalone: true
1366
1327
  }]
1367
1328
  }] });
1368
1329
 
1330
+ const importsAndExports$5 = [DbxFormComponentFieldComponent];
1369
1331
  class DbxFormFormlyComponentFieldModule {
1370
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyComponentFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1371
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyComponentFieldModule, declarations: [DbxFormComponentFieldComponent], imports: [CommonModule,
1372
- DbxInjectionComponentModule, i1$1.FormlyModule], exports: [DbxFormComponentFieldComponent] });
1373
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyComponentFieldModule, imports: [CommonModule,
1374
- DbxInjectionComponentModule,
1375
- FormlyModule.forChild({
1332
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyComponentFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1333
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyComponentFieldModule, imports: [DbxFormComponentFieldComponent, i1$2.FormlyModule], exports: [DbxFormComponentFieldComponent] });
1334
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyComponentFieldModule, imports: [importsAndExports$5, FormlyModule.forChild({
1376
1335
  types: [{ name: 'component', component: DbxFormComponentFieldComponent }]
1377
1336
  })] });
1378
1337
  }
1379
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyComponentFieldModule, decorators: [{
1338
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyComponentFieldModule, decorators: [{
1380
1339
  type: NgModule,
1381
1340
  args: [{
1382
1341
  imports: [
1383
- CommonModule,
1384
- DbxInjectionComponentModule,
1342
+ ...importsAndExports$5,
1385
1343
  FormlyModule.forChild({
1386
1344
  types: [{ name: 'component', component: DbxFormComponentFieldComponent }]
1387
1345
  })
1388
1346
  ],
1389
- declarations: [DbxFormComponentFieldComponent],
1390
- exports: [DbxFormComponentFieldComponent]
1347
+ exports: importsAndExports$5
1391
1348
  }]
1392
1349
  }] });
1393
1350
 
@@ -1423,14 +1380,14 @@ class DbxItemListFieldComponent extends FieldType {
1423
1380
  _formControlValue$ = this.formControl$.pipe(switchMap((control) => control.valueChanges.pipe(startWith(control.value), shareReplay(1))));
1424
1381
  values$ = this._formControlValue$.pipe(map(convertMaybeToArray), shareReplay(1));
1425
1382
  _listComponentClassObs = new BehaviorSubject(undefined);
1426
- listComponentClass$ = this._listComponentClassObs.pipe(switchMapMaybeObs());
1383
+ listComponentClass$ = this._listComponentClassObs.pipe(switchMapFilterMaybe());
1427
1384
  config$ = this.listComponentClass$.pipe(map((componentClass) => {
1428
1385
  const loadMore = this.loadMore;
1429
1386
  const config = {
1430
1387
  componentClass,
1431
1388
  init: (listView) => {
1432
- listView.selectionMode = 'select'; // always enable select
1433
- listView.state$ = this.field.props.state$;
1389
+ listView.setSelectionMode('select'); // always enable select
1390
+ listView.setState(this.field.props.state$);
1434
1391
  if (loadMore != null) {
1435
1392
  this._loadMoreSub.subscription = listView.loadMore.subscribe(() => loadMore());
1436
1393
  }
@@ -1443,6 +1400,8 @@ class DbxItemListFieldComponent extends FieldType {
1443
1400
  isSelectedModifierFunction$ = this.values$.pipe(distinctUntilHasDifferentValues(), map((values) => {
1444
1401
  return dbxValueListItemDecisionFunction(isSelectedDecisionFunctionFactory({ readKey: this.readKey })(values));
1445
1402
  }), shareReplay(1));
1403
+ configSignal = toSignal(this.config$);
1404
+ isSelectedModifierFunctionSignal = toSignal(this.isSelectedModifierFunction$);
1446
1405
  get label() {
1447
1406
  return this.field.props.label;
1448
1407
  }
@@ -1480,72 +1439,32 @@ class DbxItemListFieldComponent extends FieldType {
1480
1439
  this.formControl.markAsTouched();
1481
1440
  }
1482
1441
  }
1483
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxItemListFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1484
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxItemListFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-list-item-field\" [dbxListItemModifier] [dbxListItemIsSelectedModifier]=\"isSelectedModifierFunction$ | async\">\n <span class=\"dbx-label dbx-label-padded\" *ngIf=\"label\">{{ label }}</span>\n <div class=\"dbx-list-item-field-content\">\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n </div>\n <mat-divider></mat-divider>\n <div class=\"dbx-form-description\" *ngIf=\"description\">{{ description }}</div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i6.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "directive", type: i5.DbxValueListItemModifierDirective, selector: "[dbxListItemModifier]", inputs: ["dbxListItemModifier"] }, { kind: "directive", type: i5.DbxListItemIsSelectedModifierDirective, selector: "[dbxListItemIsSelectedModifier]", inputs: ["dbxListItemIsSelectedModifier"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
1442
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxItemListFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1443
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxItemListFieldComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-list-item-field\" dbxListItemModifier [dbxListItemIsSelectedModifier]=\"isSelectedModifierFunctionSignal()\">\n @if (label) {\n <span class=\"dbx-label dbx-label-padded\">{{ label }}</span>\n }\n <div class=\"dbx-list-item-field-content\">\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n </div>\n <mat-divider></mat-divider>\n @if (description) {\n <div class=\"dbx-form-description\">{{ description }}</div>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: DbxListModifierModule }, { kind: "directive", type: i1$1.DbxValueListItemModifierDirective, selector: "dbxListItemModifier,[dbxListItemModifier]", inputs: ["dbxListItemModifier"] }, { kind: "directive", type: i1$1.DbxListItemIsSelectedModifierDirective, selector: "dbxListItemIsSelectedModifier,[dbxListItemIsSelectedModifier]", inputs: ["dbxListItemIsSelectedModifier"] }, { kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "ngmodule", type: MatDividerModule }, { kind: "component", type: i2$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1485
1444
  }
1486
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxItemListFieldComponent, decorators: [{
1445
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxItemListFieldComponent, decorators: [{
1487
1446
  type: Component,
1488
- args: [{ template: "<div class=\"dbx-list-item-field\" [dbxListItemModifier] [dbxListItemIsSelectedModifier]=\"isSelectedModifierFunction$ | async\">\n <span class=\"dbx-label dbx-label-padded\" *ngIf=\"label\">{{ label }}</span>\n <div class=\"dbx-list-item-field-content\">\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n </div>\n <mat-divider></mat-divider>\n <div class=\"dbx-form-description\" *ngIf=\"description\">{{ description }}</div>\n</div>\n" }]
1447
+ args: [{ imports: [DbxListModifierModule, DbxInjectionComponent, MatDividerModule], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"dbx-list-item-field\" dbxListItemModifier [dbxListItemIsSelectedModifier]=\"isSelectedModifierFunctionSignal()\">\n @if (label) {\n <span class=\"dbx-label dbx-label-padded\">{{ label }}</span>\n }\n <div class=\"dbx-list-item-field-content\">\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n </div>\n <mat-divider></mat-divider>\n @if (description) {\n <div class=\"dbx-form-description\">{{ description }}</div>\n }\n</div>\n" }]
1489
1448
  }] });
1490
1449
 
1450
+ const importsAndExports$4 = [DbxItemListFieldComponent];
1491
1451
  class DbxFormFormlyDbxListFieldModule {
1492
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyDbxListFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1493
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyDbxListFieldModule, declarations: [DbxItemListFieldComponent], imports: [CommonModule,
1494
- DbxTextModule,
1495
- DbxLoadingModule,
1496
- DbxButtonModule,
1497
- FormsModule,
1498
- MatDividerModule,
1499
- MatButtonModule,
1500
- MatInputModule,
1501
- MatFormFieldModule,
1502
- ReactiveFormsModule,
1503
- MatAutocompleteModule,
1504
- MatIconModule,
1505
- DbxInjectionComponentModule,
1506
- DbxListLayoutModule, i1$1.FormlyModule], exports: [DbxItemListFieldComponent] });
1507
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyDbxListFieldModule, imports: [CommonModule,
1508
- DbxTextModule,
1509
- DbxLoadingModule,
1510
- DbxButtonModule,
1511
- FormsModule,
1512
- MatDividerModule,
1513
- MatButtonModule,
1514
- MatInputModule,
1515
- MatFormFieldModule,
1516
- ReactiveFormsModule,
1517
- MatAutocompleteModule,
1518
- MatIconModule,
1519
- DbxInjectionComponentModule,
1520
- DbxListLayoutModule,
1521
- FormlyModule.forChild({
1452
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyDbxListFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1453
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyDbxListFieldModule, imports: [DbxItemListFieldComponent, i1$2.FormlyModule], exports: [DbxItemListFieldComponent] });
1454
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyDbxListFieldModule, imports: [importsAndExports$4, FormlyModule.forChild({
1522
1455
  types: [{ name: 'dbxlistfield', component: DbxItemListFieldComponent }]
1523
1456
  })] });
1524
1457
  }
1525
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyDbxListFieldModule, decorators: [{
1458
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyDbxListFieldModule, decorators: [{
1526
1459
  type: NgModule,
1527
1460
  args: [{
1528
1461
  imports: [
1529
- CommonModule,
1530
- DbxTextModule,
1531
- DbxLoadingModule,
1532
- DbxButtonModule,
1533
- FormsModule,
1534
- MatDividerModule,
1535
- MatButtonModule,
1536
- MatInputModule,
1537
- MatFormFieldModule,
1538
- ReactiveFormsModule,
1539
- MatAutocompleteModule,
1540
- MatIconModule,
1541
- DbxInjectionComponentModule,
1542
- DbxListLayoutModule,
1462
+ ...importsAndExports$4,
1543
1463
  FormlyModule.forChild({
1544
1464
  types: [{ name: 'dbxlistfield', component: DbxItemListFieldComponent }]
1545
1465
  })
1546
1466
  ],
1547
- declarations: [DbxItemListFieldComponent],
1548
- exports: [DbxItemListFieldComponent]
1467
+ exports: importsAndExports$4
1549
1468
  }]
1550
1469
  }] });
1551
1470
 
@@ -1553,7 +1472,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1553
1472
  * Used for picking pre-set values using items as the presentation.
1554
1473
  */
1555
1474
  class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
1556
- filterMatInput;
1475
+ filterMatInput = viewChild('matInput', { read: MatInput });
1557
1476
  inputCtrl = new FormControl('');
1558
1477
  _formControlObs = new BehaviorSubject(undefined);
1559
1478
  formControl$ = this._formControlObs.pipe(filterMaybe());
@@ -1615,13 +1534,15 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
1615
1534
  /**
1616
1535
  * Context used for managing the loading of items, or when the current results change.
1617
1536
  */
1618
- context = new ListLoadingStateContextInstance({ obs: this.itemsLoadingState$, showLoadingOnNoValue: false });
1537
+ context = listLoadingStateContext({ obs: this.itemsLoadingState$, showLoadingOnNoValue: false });
1619
1538
  filterItemsLoadingState$ = this.items$.pipe(map((x) => successResult(x)), startWithBeginLoading(), shareReplay(1));
1539
+ noItemsAvailable$ = this.filterItemsLoadingState$.pipe(mapIsListLoadingStateWithEmptyValue(), distinctUntilChanged());
1620
1540
  /**
1621
1541
  * Context used for searching/filtering.
1622
1542
  */
1623
- filterResultsContext = new ListLoadingStateContextInstance({ obs: this.filteredSearchResultsState$, showLoadingOnNoValue: true });
1624
- noItemsAvailable$ = this.filterItemsLoadingState$.pipe(mapIsListLoadingStateWithEmptyValue(), distinctUntilChanged());
1543
+ filterResultsContext = listLoadingStateContext({ obs: this.filteredSearchResultsState$, showLoadingOnNoValue: true });
1544
+ itemsSignal = toSignal(this.items$);
1545
+ noItemsAvailableSignal = toSignal(this.noItemsAvailable$);
1625
1546
  get readonly() {
1626
1547
  return this.props.readonly;
1627
1548
  }
@@ -1753,7 +1674,7 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
1753
1674
  this.context.loading$
1754
1675
  .pipe(delay(10), filter((x) => x), first())
1755
1676
  .subscribe(() => {
1756
- this.filterMatInput?.focus();
1677
+ this.filterMatInput()?.focus();
1757
1678
  });
1758
1679
  }
1759
1680
  ngOnDestroy() {
@@ -1802,15 +1723,12 @@ class AbstractDbxPickableItemFieldDirective extends FieldType$1 {
1802
1723
  this.formControl.markAsTouched();
1803
1724
  this.formControl.markAsDirty();
1804
1725
  }
1805
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxPickableItemFieldDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1806
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AbstractDbxPickableItemFieldDirective, viewQueries: [{ propertyName: "filterMatInput", first: true, predicate: ["filterMatInput"], descendants: true, static: true }], usesInheritance: true, ngImport: i0 });
1726
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxPickableItemFieldDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
1727
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.13", type: AbstractDbxPickableItemFieldDirective, viewQueries: [{ propertyName: "filterMatInput", first: true, predicate: ["matInput"], descendants: true, read: MatInput, isSignal: true }], usesInheritance: true, ngImport: i0 });
1807
1728
  }
1808
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxPickableItemFieldDirective, decorators: [{
1729
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxPickableItemFieldDirective, decorators: [{
1809
1730
  type: Directive
1810
- }], propDecorators: { filterMatInput: [{
1811
- type: ViewChild,
1812
- args: ['filterMatInput', { static: true }]
1813
- }] } });
1731
+ }] });
1814
1732
 
1815
1733
  /**
1816
1734
  * Used for picking pre-set values using chips as the presentation.
@@ -1826,30 +1744,14 @@ class DbxPickableChipListFieldComponent extends AbstractDbxPickableItemFieldDire
1826
1744
  }
1827
1745
  }
1828
1746
  }
1829
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxPickableChipListFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1830
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxPickableChipListFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\" [linear]=\"true\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-listbox [multiple]=\"multiSelect\" [required]=\"required\" [selectable]=\"!isReadonlyOrDisabled\" [disabled]=\"readonly\" #chipList>\n <mat-chip-option *ngFor=\"let item of items$ | async\" (click)=\"itemClicked(item)\" [selected]=\"item.selected\" [disabled]=\"isReadonlyOrDisabled || item.disabled\">\n <mat-icon matChipAvatar *ngIf=\"item.itemValue.icon\">{{ item.itemValue.icon }}</mat-icon>\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"item.itemValue.sublabel\">{{ item.itemValue.sublabel }}</span>\n </mat-chip-option>\n </mat-chip-listbox>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i5.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "padding", "context", "loading", "error"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$2.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: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i6$2.MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "component", type: i6$2.MatChipListbox, selector: "mat-chip-listbox", inputs: ["tabIndex", "multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i6$2.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "selectable", "selected"], outputs: ["selectionChange"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
1747
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxPickableChipListFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1748
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxPickableChipListFieldComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\" [linear]=\"true\">\n @if (showFilterInput) {\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n }\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-listbox [multiple]=\"multiSelect\" [required]=\"required\" [selectable]=\"!isReadonlyOrDisabled\" [disabled]=\"readonly\" #chipList>\n @for (item of itemsSignal(); track item.itemValue.value) {\n <mat-chip-option (click)=\"itemClicked(item)\" [selected]=\"item.selected\" [disabled]=\"isReadonlyOrDisabled || item.disabled\">\n @if (item.itemValue.icon) {\n <mat-icon matChipAvatar>{{ item.itemValue.icon }}</mat-icon>\n }\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n @if (item.itemValue.sublabel) {\n <span class=\"dbx-chip-sublabel\">{{ item.itemValue.sublabel }}</span>\n }\n </mat-chip-option>\n }\n </mat-chip-listbox>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n @if (noItemsAvailableSignal()) {\n <p class=\"dbx-label\">No items match this filter.</p>\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: MatChipsModule }, { kind: "directive", type: i1$3.MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "component", type: i1$3.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i1$3.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatInputModule }, { 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: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1831
1749
  }
1832
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxPickableChipListFieldComponent, decorators: [{
1750
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxPickableChipListFieldComponent, decorators: [{
1833
1751
  type: Component,
1834
- args: [{ template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\" [linear]=\"true\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-listbox [multiple]=\"multiSelect\" [required]=\"required\" [selectable]=\"!isReadonlyOrDisabled\" [disabled]=\"readonly\" #chipList>\n <mat-chip-option *ngFor=\"let item of items$ | async\" (click)=\"itemClicked(item)\" [selected]=\"item.selected\" [disabled]=\"isReadonlyOrDisabled || item.disabled\">\n <mat-icon matChipAvatar *ngIf=\"item.itemValue.icon\">{{ item.itemValue.icon }}</mat-icon>\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"item.itemValue.sublabel\">{{ item.itemValue.sublabel }}</span>\n </mat-chip-option>\n </mat-chip-listbox>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n" }]
1752
+ args: [{ imports: [MatChipsModule, NgTemplateOutlet, FormsModule, ReactiveFormsModule, MatIconModule, MatInputModule, DbxLoadingComponent, MatDivider, DbxInjectionComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\" [linear]=\"true\">\n @if (showFilterInput) {\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n }\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-chips\">\n <mat-chip-listbox [multiple]=\"multiSelect\" [required]=\"required\" [selectable]=\"!isReadonlyOrDisabled\" [disabled]=\"readonly\" #chipList>\n @for (item of itemsSignal(); track item.itemValue.value) {\n <mat-chip-option (click)=\"itemClicked(item)\" [selected]=\"item.selected\" [disabled]=\"isReadonlyOrDisabled || item.disabled\">\n @if (item.itemValue.icon) {\n <mat-icon matChipAvatar>{{ item.itemValue.icon }}</mat-icon>\n }\n <span class=\"dbx-chip-label\">{{ item.itemValue.label }}</span>\n @if (item.itemValue.sublabel) {\n <span class=\"dbx-chip-sublabel\">{{ item.itemValue.sublabel }}</span>\n }\n </mat-chip-option>\n }\n </mat-chip-listbox>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n @if (noItemsAvailableSignal()) {\n <p class=\"dbx-label\">No items match this filter.</p>\n }\n </div>\n</ng-template>\n" }]
1835
1753
  }] });
1836
1754
 
1837
- /**
1838
- * Used for picking pre-set values using a selection list as the presentation.
1839
- */
1840
- class DbxPickableListFieldComponent extends AbstractDbxPickableItemFieldDirective {
1841
- onSelectionChange(event) {
1842
- const items = event.items;
1843
- const values = items.map((x) => x.itemValue.value);
1844
- this.setValues(values);
1845
- }
1846
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxPickableListFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1847
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxPickableListFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-list\">\n <div class=\"dbx-pickable-item-field-list-content\">\n <dbx-form-pickable-item-field-item-list [disabled]=\"isReadonlyOrDisabled\" [state$]=\"filterItemsLoadingState$\" (selectionChange)=\"onSelectionChange($event)\"></dbx-form-pickable-item-field-item-list>\n </div>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i0.forwardRef(function () { return i1.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i0.forwardRef(function () { return i1.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i0.forwardRef(function () { return i5.DbxLoadingComponent; }), selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "padding", "context", "loading", "error"] }, { kind: "directive", type: i0.forwardRef(function () { return i2.DefaultValueAccessor; }), selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i2.NgControlStatus; }), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(function () { return i4$2.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: i0.forwardRef(function () { return i2.FormControlDirective; }), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i0.forwardRef(function () { return i5$1.MatDivider; }), selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i0.forwardRef(function () { return i6.DbxInjectionComponent; }), selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: i0.forwardRef(function () { return DbxPickableListFieldItemListComponent; }), selector: "dbx-form-pickable-item-field-item-list" }, { kind: "pipe", type: i0.forwardRef(function () { return i1.AsyncPipe; }), name: "async" }] });
1848
- }
1849
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxPickableListFieldComponent, decorators: [{
1850
- type: Component,
1851
- args: [{ template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\">\n <ng-container *ngIf=\"showFilterInput\">\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n </ng-container>\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-list\">\n <div class=\"dbx-pickable-item-field-list-content\">\n <dbx-form-pickable-item-field-item-list [disabled]=\"isReadonlyOrDisabled\" [state$]=\"filterItemsLoadingState$\" (selectionChange)=\"onSelectionChange($event)\"></dbx-form-pickable-item-field-item-list>\n </div>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n <p *ngIf=\"noItemsAvailable$ | async\" class=\"dbx-label\">No items match this filter.</p>\n </div>\n</ng-template>\n" }]
1852
- }] });
1853
1755
  // MARK: Selection List
1854
1756
  class DbxPickableListFieldItemListComponent extends AbstractDbxSelectionListWrapperDirective {
1855
1757
  constructor() {
@@ -1857,16 +1759,20 @@ class DbxPickableListFieldItemListComponent extends AbstractDbxSelectionListWrap
1857
1759
  componentClass: DbxPickableListFieldItemListViewComponent
1858
1760
  });
1859
1761
  }
1860
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxPickableListFieldItemListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1861
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxPickableListFieldItemListComponent, selector: "dbx-form-pickable-item-field-item-list", usesInheritance: true, ngImport: i0, template: "\n<dbx-list [state$]=\"state$\" [config]=\"config$ | async\" [disabled]=\"disabled\" [selectionMode]=\"selectionMode\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n <ng-content emptyLoading select=\"[emptyLoading]\"></ng-content>\n</dbx-list>\n", isInline: true, dependencies: [{ kind: "component", type: i5.DbxListComponent, selector: "dbx-list", inputs: ["padded", "state$", "config", "disabled", "selectionMode"], outputs: ["contentScrolled"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
1762
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxPickableListFieldItemListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1763
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxPickableListFieldItemListComponent, isStandalone: true, selector: "dbx-form-pickable-item-field-item-list", providers: provideDbxListViewWrapper(DbxPickableListFieldItemListComponent), usesInheritance: true, ngImport: i0, template: "\n <dbx-list [state]=\"currentState$\" [config]=\"configSignal()\" [disabled]=\"disabled()\" [selectionMode]=\"selectionModeSignal()\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n <ng-content emptyLoading select=\"[emptyLoading]\"></ng-content>\n </dbx-list>", isInline: true, dependencies: [{ kind: "ngmodule", type: DbxListWrapperComponentImportsModule }, { kind: "component", type: i1$1.DbxListComponent, selector: "dbx-list", inputs: ["padded", "state", "config", "disabled", "selectionMode"], outputs: ["contentScrolled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1862
1764
  }
1863
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxPickableListFieldItemListComponent, decorators: [{
1765
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxPickableListFieldItemListComponent, decorators: [{
1864
1766
  type: Component,
1865
1767
  args: [{
1866
1768
  selector: 'dbx-form-pickable-item-field-item-list',
1867
- template: DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE
1769
+ template: DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE,
1770
+ imports: [DbxListWrapperComponentImportsModule],
1771
+ changeDetection: ChangeDetectionStrategy.OnPush,
1772
+ providers: provideDbxListViewWrapper(DbxPickableListFieldItemListComponent),
1773
+ standalone: true
1868
1774
  }]
1869
- }], ctorParameters: function () { return []; } });
1775
+ }], ctorParameters: () => [] });
1870
1776
  /**
1871
1777
  * NOTE: Values input are PickableItemFieldItem<T>, but output values are PickableValueFieldDisplayValue<T>.
1872
1778
  */
@@ -1889,116 +1795,93 @@ class DbxPickableListFieldItemListViewComponent extends AbstractDbxSelectionList
1889
1795
  items$ = this.values$.pipe(
1890
1796
  // NOTE: This causes the "value" to be a PickableValueFieldDisplayValue<T>, which means we emit PickableValueFieldDisplayValue<T> to DbxPickableListFieldComponent.
1891
1797
  map((x) => addConfigToValueListItems(this.config, x)), shareReplay(1));
1892
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxPickableListFieldItemListViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1893
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxPickableListFieldItemListViewComponent, selector: "ng-component", providers: provideDbxListView(DbxPickableListFieldItemListViewComponent), usesInheritance: true, ngImport: i0, template: `
1894
- <dbx-selection-list-view-content [multiple]="multiple" [selectionMode]="selectionMode" [items]="items$ | async"></dbx-selection-list-view-content>
1895
- `, isInline: true, dependencies: [{ kind: "component", type: i5.DbxSelectionValueListViewContentComponent, selector: "dbx-selection-list-view-content", inputs: ["multiple", "selectionMode"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
1798
+ itemsSignal = toSignal(this.items$);
1799
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxPickableListFieldItemListViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1800
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxPickableListFieldItemListViewComponent, isStandalone: true, selector: "ng-component", providers: provideDbxListView(DbxPickableListFieldItemListViewComponent), usesInheritance: true, ngImport: i0, template: `
1801
+ <dbx-selection-list-view-content [multiple]="multiple" [selectionMode]="selectionMode" [items]="itemsSignal()"></dbx-selection-list-view-content>
1802
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxSelectionValueListViewContentComponent, selector: "dbx-selection-list-view-content", inputs: ["multiple", "selectionMode"] }] });
1896
1803
  }
1897
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxPickableListFieldItemListViewComponent, decorators: [{
1804
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxPickableListFieldItemListViewComponent, decorators: [{
1898
1805
  type: Component,
1899
1806
  args: [{
1900
1807
  template: `
1901
- <dbx-selection-list-view-content [multiple]="multiple" [selectionMode]="selectionMode" [items]="items$ | async"></dbx-selection-list-view-content>
1808
+ <dbx-selection-list-view-content [multiple]="multiple" [selectionMode]="selectionMode" [items]="itemsSignal()"></dbx-selection-list-view-content>
1902
1809
  `,
1903
- providers: provideDbxListView(DbxPickableListFieldItemListViewComponent)
1810
+ providers: provideDbxListView(DbxPickableListFieldItemListViewComponent),
1811
+ imports: [DbxSelectionValueListViewContentComponent],
1812
+ standalone: true
1904
1813
  }]
1905
1814
  }] });
1906
1815
  class DbxPickableListFieldItemListViewItemComponent extends AbstractDbxValueListViewItemComponent {
1907
- get label() {
1908
- return this.itemValue.label;
1909
- }
1910
- get sublabel() {
1911
- return this.itemValue.sublabel;
1912
- }
1913
- get icon() {
1914
- return this.itemValue.icon;
1915
- }
1916
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxPickableListFieldItemListViewItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1917
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxPickableListFieldItemListViewItemComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1816
+ label = this.itemValue.label;
1817
+ sublabel = this.itemValue.sublabel;
1818
+ icon = this.itemValue.icon;
1819
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxPickableListFieldItemListViewItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1820
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxPickableListFieldItemListViewItemComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
1918
1821
  <div class="dbx-default-pickable-item-field-list-item dbx-flex-bar">
1919
- <mat-icon class="dbx-icon-spacer" *ngIf="icon">{{ icon }}</mat-icon>
1822
+ @if (icon) {
1823
+ <mat-icon class="dbx-icon-spacer">{{ icon }}</mat-icon>
1824
+ }
1920
1825
  <span class="dbx-chip-label">{{ label }}</span>
1921
- <span class="dbx-chip-sublabel" *ngIf="sublabel">({{ sublabel }})</span>
1826
+ @if (sublabel) {
1827
+ <span class="dbx-chip-sublabel">({{ sublabel }})</span>
1828
+ }
1922
1829
  </div>
1923
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
1830
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1924
1831
  }
1925
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxPickableListFieldItemListViewItemComponent, decorators: [{
1832
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxPickableListFieldItemListViewItemComponent, decorators: [{
1926
1833
  type: Component,
1927
1834
  args: [{
1928
1835
  template: `
1929
1836
  <div class="dbx-default-pickable-item-field-list-item dbx-flex-bar">
1930
- <mat-icon class="dbx-icon-spacer" *ngIf="icon">{{ icon }}</mat-icon>
1837
+ @if (icon) {
1838
+ <mat-icon class="dbx-icon-spacer">{{ icon }}</mat-icon>
1839
+ }
1931
1840
  <span class="dbx-chip-label">{{ label }}</span>
1932
- <span class="dbx-chip-sublabel" *ngIf="sublabel">({{ sublabel }})</span>
1841
+ @if (sublabel) {
1842
+ <span class="dbx-chip-sublabel">({{ sublabel }})</span>
1843
+ }
1933
1844
  </div>
1934
- `
1845
+ `,
1846
+ imports: [MatIconModule],
1847
+ changeDetection: ChangeDetectionStrategy.OnPush,
1848
+ standalone: true
1935
1849
  }]
1936
1850
  }] });
1851
+ // List Field Component
1852
+ /**
1853
+ * Used for picking pre-set values using a selection list as the presentation.
1854
+ */
1855
+ class DbxPickableListFieldComponent extends AbstractDbxPickableItemFieldDirective {
1856
+ onSelectionChange(event) {
1857
+ const items = event.items;
1858
+ const values = items.map((x) => x.itemValue.value);
1859
+ this.setValues(values);
1860
+ }
1861
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxPickableListFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
1862
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxPickableListFieldComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\">\n @if (showFilterInput) {\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n }\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-list\">\n <div class=\"dbx-pickable-item-field-list-content\">\n <dbx-form-pickable-item-field-item-list [disabled]=\"isReadonlyOrDisabled\" [state$]=\"filterItemsLoadingState$\" (selectionChange)=\"onSelectionChange($event)\"></dbx-form-pickable-item-field-item-list>\n </div>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n @if (noItemsAvailableSignal()) {\n <p class=\"dbx-label\">No items match this filter.</p>\n }\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: DbxPickableListFieldItemListComponent, selector: "dbx-form-pickable-item-field-item-list" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatInputModule }, { 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: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
1863
+ }
1864
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxPickableListFieldComponent, decorators: [{
1865
+ type: Component,
1866
+ args: [{ imports: [DbxPickableListFieldItemListComponent, NgTemplateOutlet, FormsModule, ReactiveFormsModule, MatInputModule, MatDivider, DbxLoadingComponent, DbxInjectionComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"dbx-pickable-item-field\">\n <dbx-loading [context]=\"context\">\n @if (showFilterInput) {\n <ng-container *ngTemplateOutlet=\"filterTemplate\"></ng-container>\n }\n <!-- Content -->\n <div class=\"dbx-pickable-item-field-list\">\n <div class=\"dbx-pickable-item-field-list-content\">\n <dbx-form-pickable-item-field-item-list [disabled]=\"isReadonlyOrDisabled\" [state$]=\"filterItemsLoadingState$\" (selectionChange)=\"onSelectionChange($event)\"></dbx-form-pickable-item-field-item-list>\n </div>\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </dbx-loading>\n</div>\n\n<!-- Filter Input -->\n<ng-template #filterTemplate>\n <div class=\"dbx-pickable-item-field-filter\">\n <div class=\"dbx-label\">{{ filterLabel }}</div>\n <input [name]=\"name\" autocomplete=\"{{ autocomplete }}\" #filterMatInput=\"matInput\" matInput [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" />\n <mat-divider></mat-divider>\n <dbx-loading [linear]=\"true\" [context]=\"filterResultsContext\"></dbx-loading>\n <!-- No items found. -->\n @if (noItemsAvailableSignal()) {\n <p class=\"dbx-label\">No items match this filter.</p>\n }\n </div>\n</ng-template>\n" }]
1867
+ }] });
1937
1868
 
1869
+ const importsAndExports$3 = [DbxPickableChipListFieldComponent, DbxPickableListFieldComponent, DbxPickableListFieldItemListComponent, DbxPickableListFieldItemListViewComponent, DbxPickableListFieldItemListViewItemComponent];
1938
1870
  class DbxFormFormlyPickableFieldModule {
1939
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyPickableFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1940
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyPickableFieldModule, declarations: [DbxPickableChipListFieldComponent, DbxPickableListFieldComponent, DbxPickableListFieldItemListComponent, DbxPickableListFieldItemListViewComponent, DbxPickableListFieldItemListViewItemComponent], imports: [CommonModule,
1941
- DbxTextModule,
1942
- DbxLoadingModule,
1943
- DbxButtonModule,
1944
- FormsModule,
1945
- MatButtonModule,
1946
- MatInputModule,
1947
- MatFormFieldModule,
1948
- ReactiveFormsModule,
1949
- MatAutocompleteModule,
1950
- MatListModule,
1951
- DbxDatePipeModule,
1952
- DbxRouterAnchorModule,
1953
- MatChipsModule,
1954
- MatIconModule,
1955
- DbxInjectionComponentModule,
1956
- DbxListLayoutModule, i1$1.FormlyModule] });
1957
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyPickableFieldModule, imports: [CommonModule,
1958
- DbxTextModule,
1959
- DbxLoadingModule,
1960
- DbxButtonModule,
1961
- FormsModule,
1962
- MatButtonModule,
1963
- MatInputModule,
1964
- MatFormFieldModule,
1965
- ReactiveFormsModule,
1966
- MatAutocompleteModule,
1967
- MatListModule,
1968
- DbxDatePipeModule,
1969
- DbxRouterAnchorModule,
1970
- MatChipsModule,
1971
- MatIconModule,
1972
- DbxInjectionComponentModule,
1973
- DbxListLayoutModule,
1974
- FormlyModule.forChild({
1871
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyPickableFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
1872
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyPickableFieldModule, imports: [DbxPickableChipListFieldComponent, DbxPickableListFieldComponent, DbxPickableListFieldItemListComponent, DbxPickableListFieldItemListViewComponent, DbxPickableListFieldItemListViewItemComponent, i1$2.FormlyModule], exports: [DbxPickableChipListFieldComponent, DbxPickableListFieldComponent, DbxPickableListFieldItemListComponent, DbxPickableListFieldItemListViewComponent, DbxPickableListFieldItemListViewItemComponent] });
1873
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyPickableFieldModule, imports: [importsAndExports$3, FormlyModule.forChild({
1975
1874
  types: [
1976
1875
  { name: 'pickablechipfield', component: DbxPickableChipListFieldComponent, wrappers: ['form-field'] },
1977
1876
  { name: 'pickablelistfield', component: DbxPickableListFieldComponent, wrappers: ['form-field'] }
1978
1877
  ]
1979
1878
  })] });
1980
1879
  }
1981
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyPickableFieldModule, decorators: [{
1880
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyPickableFieldModule, decorators: [{
1982
1881
  type: NgModule,
1983
1882
  args: [{
1984
1883
  imports: [
1985
- CommonModule,
1986
- DbxTextModule,
1987
- DbxLoadingModule,
1988
- DbxButtonModule,
1989
- FormsModule,
1990
- MatButtonModule,
1991
- MatInputModule,
1992
- MatFormFieldModule,
1993
- ReactiveFormsModule,
1994
- MatAutocompleteModule,
1995
- MatListModule,
1996
- DbxDatePipeModule,
1997
- DbxRouterAnchorModule,
1998
- MatChipsModule,
1999
- MatIconModule,
2000
- DbxInjectionComponentModule,
2001
- DbxListLayoutModule,
1884
+ ...importsAndExports$3,
2002
1885
  FormlyModule.forChild({
2003
1886
  types: [
2004
1887
  { name: 'pickablechipfield', component: DbxPickableChipListFieldComponent, wrappers: ['form-field'] },
@@ -2006,8 +1889,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2006
1889
  ]
2007
1890
  })
2008
1891
  ],
2009
- declarations: [DbxPickableChipListFieldComponent, DbxPickableListFieldComponent, DbxPickableListFieldItemListComponent, DbxPickableListFieldItemListViewComponent, DbxPickableListFieldItemListViewItemComponent],
2010
- exports: []
1892
+ exports: importsAndExports$3
2011
1893
  }]
2012
1894
  }] });
2013
1895
 
@@ -2061,7 +1943,7 @@ function pickableValueFieldValuesConfigForStaticLabeledValues(input) {
2061
1943
  const optionsMap = new Map(allOptions.map((x) => [x.value, x]));
2062
1944
  return {
2063
1945
  loadValues: () => of(values),
2064
- filterValues: filterPickableItemFieldValuesByLabel,
1946
+ filterValues: filterPickableItemFieldValuesByLabel, // auto filter by label
2065
1947
  displayForValue: (values) => of(values.map((x) => {
2066
1948
  const meta = x.meta ?? optionsMap.get(x.value);
2067
1949
  return { ...x, meta, label: meta?.label ?? unknownOptionLabel };
@@ -2071,99 +1953,106 @@ function pickableValueFieldValuesConfigForStaticLabeledValues(input) {
2071
1953
 
2072
1954
  const DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN = new InjectionToken('DbxSearchableField');
2073
1955
  class DbxSearchableFieldAutocompleteItemComponent {
2074
- _displayValue = new BehaviorSubject(undefined);
2075
- displayValue$ = this._displayValue.pipe(filterMaybe(), shareReplay(1));
2076
- config$ = this.displayValue$.pipe(map((x) => {
1956
+ displayValue = input.required();
1957
+ configSignal = computed(() => {
1958
+ const displayValue = this.displayValue();
2077
1959
  const config = {
2078
- ...x.display,
1960
+ ...displayValue.display,
2079
1961
  providers: mergeArraysIntoArray([
2080
1962
  {
2081
1963
  provide: DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN,
2082
- useValue: x
1964
+ useValue: displayValue
2083
1965
  }
2084
- ], x.display.providers)
1966
+ ], displayValue.display.providers)
2085
1967
  };
2086
1968
  return config;
2087
- }));
2088
- anchor$ = this.displayValue$.pipe(map((x) => x.anchor));
2089
- set displayValue(displayValue) {
2090
- this._displayValue.next(displayValue);
2091
- }
2092
- ngOnDestroy() {
2093
- this._displayValue.complete();
2094
- }
2095
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxSearchableFieldAutocompleteItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2096
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: { displayValue: "displayValue" }, ngImport: i0, template: `
2097
- <dbx-anchor [block]="true" [anchor]="anchor$ | async">
2098
- <dbx-injection [config]="config$ | async"></dbx-injection>
1969
+ });
1970
+ anchorSignal = computed(() => this.displayValue().anchor);
1971
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxSearchableFieldAutocompleteItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1972
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: DbxSearchableFieldAutocompleteItemComponent, isStandalone: true, selector: "dbx-searchable-field-autocomplete-item", inputs: { displayValue: { classPropertyName: "displayValue", publicName: "displayValue", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
1973
+ <dbx-anchor [block]="true" [anchor]="anchorSignal()">
1974
+ <dbx-injection [config]="configSignal()"></dbx-injection>
2099
1975
  </dbx-anchor>
2100
- `, isInline: true, dependencies: [{ kind: "component", type: i5.DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { kind: "component", type: i6.DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
1976
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxAnchorComponent, selector: "dbx-anchor, [dbx-anchor]", inputs: ["block"] }, { kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2101
1977
  }
2102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxSearchableFieldAutocompleteItemComponent, decorators: [{
1978
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxSearchableFieldAutocompleteItemComponent, decorators: [{
2103
1979
  type: Component,
2104
1980
  args: [{
2105
1981
  selector: 'dbx-searchable-field-autocomplete-item',
2106
1982
  template: `
2107
- <dbx-anchor [block]="true" [anchor]="anchor$ | async">
2108
- <dbx-injection [config]="config$ | async"></dbx-injection>
1983
+ <dbx-anchor [block]="true" [anchor]="anchorSignal()">
1984
+ <dbx-injection [config]="configSignal()"></dbx-injection>
2109
1985
  </dbx-anchor>
2110
- `
1986
+ `,
1987
+ imports: [DbxAnchorComponent, DbxInjectionComponent],
1988
+ changeDetection: ChangeDetectionStrategy.OnPush,
1989
+ standalone: true
2111
1990
  }]
2112
- }], propDecorators: { displayValue: [{
2113
- type: Input
2114
- }] } });
1991
+ }] });
2115
1992
  // MARK: Default
2116
1993
  class AbstractDbxSearchableFieldDisplayDirective {
2117
1994
  displayValue = inject(DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN);
2118
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxSearchableFieldDisplayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2119
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AbstractDbxSearchableFieldDisplayDirective, ngImport: i0 });
1995
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxSearchableFieldDisplayDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
1996
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: AbstractDbxSearchableFieldDisplayDirective, ngImport: i0 });
2120
1997
  }
2121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxSearchableFieldDisplayDirective, decorators: [{
1998
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxSearchableFieldDisplayDirective, decorators: [{
2122
1999
  type: Directive
2123
2000
  }] });
2124
2001
  class DbxDefaultSearchableFieldDisplayComponent extends AbstractDbxSearchableFieldDisplayDirective {
2125
- get icon() {
2126
- return this.displayValue.icon;
2127
- }
2128
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2129
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxDefaultSearchableFieldDisplayComponent, selector: "dbx-default-searchable-field-display", usesInheritance: true, ngImport: i0, template: `
2002
+ icon = this.displayValue.icon;
2003
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2004
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxDefaultSearchableFieldDisplayComponent, isStandalone: true, selector: "dbx-default-searchable-field-display", usesInheritance: true, ngImport: i0, template: `
2130
2005
  <div class="dbx-default-searchable-field-display dbx-flex-bar">
2131
- <mat-icon class="dbx-icon-spacer" *ngIf="icon">{{ icon }}</mat-icon>
2006
+ @if (icon) {
2007
+ <mat-icon class="dbx-icon-spacer">{{ icon }}</mat-icon>
2008
+ }
2132
2009
  <span class="dbx-chip-label">{{ displayValue.label }}</span>
2133
- <span class="dbx-chip-sublabel" *ngIf="displayValue.sublabel">({{ displayValue.sublabel }})</span>
2010
+ @if (displayValue.sublabel) {
2011
+ <span class="dbx-chip-sublabel">({{ displayValue.sublabel }})</span>
2012
+ }
2134
2013
  </div>
2135
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
2014
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2136
2015
  }
2137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, decorators: [{
2016
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxDefaultSearchableFieldDisplayComponent, decorators: [{
2138
2017
  type: Component,
2139
2018
  args: [{
2140
2019
  selector: 'dbx-default-searchable-field-display',
2141
2020
  template: `
2142
2021
  <div class="dbx-default-searchable-field-display dbx-flex-bar">
2143
- <mat-icon class="dbx-icon-spacer" *ngIf="icon">{{ icon }}</mat-icon>
2022
+ @if (icon) {
2023
+ <mat-icon class="dbx-icon-spacer">{{ icon }}</mat-icon>
2024
+ }
2144
2025
  <span class="dbx-chip-label">{{ displayValue.label }}</span>
2145
- <span class="dbx-chip-sublabel" *ngIf="displayValue.sublabel">({{ displayValue.sublabel }})</span>
2026
+ @if (displayValue.sublabel) {
2027
+ <span class="dbx-chip-sublabel">({{ displayValue.sublabel }})</span>
2028
+ }
2146
2029
  </div>
2147
- `
2030
+ `,
2031
+ imports: [MatIconModule],
2032
+ changeDetection: ChangeDetectionStrategy.OnPush,
2033
+ standalone: true
2148
2034
  }]
2149
2035
  }] });
2150
2036
 
2037
+ const DEFAULT_SEARCH_INPUT_PLACEHOLDER = 'Type to Search';
2038
+ const DEFAULT_SEARCHABLE_FIELD_DISPLAY = {
2039
+ componentClass: DbxDefaultSearchableFieldDisplayComponent
2040
+ };
2151
2041
  /**
2152
2042
  * Abstract searchable field that provides a feature for searching for values, and for displaying values using Observables.
2153
2043
  *
2154
2044
  * Display values are cached for performance.
2155
2045
  */
2156
2046
  class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
2157
- cdRef = inject(ChangeDetectorRef);
2158
2047
  /**
2159
- * Whether or not to allow syncing to
2048
+ * Optional override set by the parent class for whether or not to allow the current value to sync to the input.
2160
2049
  */
2161
2050
  allowSyncValueToInput = false;
2162
2051
  /**
2163
- * Optional override set by the parent class for picking a default display for this directive.
2052
+ * Default placeholder text to use when searchOnEmptyText is false.
2164
2053
  */
2165
- defaultDisplay;
2166
- textInput;
2054
+ defaultSearchInputPlaceholder = DEFAULT_SEARCH_INPUT_PLACEHOLDER;
2055
+ textInput = viewChild('textInput', { read: (ElementRef) });
2167
2056
  inputCtrl = new FormControl('');
2168
2057
  _formControlObs = new BehaviorSubject(undefined);
2169
2058
  formControl$ = this._formControlObs.pipe(filterMaybe());
@@ -2175,12 +2064,17 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
2175
2064
  // Return begin loading to setup the loading state.
2176
2065
  startWithBeginLoading())), shareReplay(1));
2177
2066
  _singleValueSyncSubscription = new SubscriptionObject();
2178
- searchContext = new LoadingStateContextInstance({ obs: this.searchResultsState$, showLoadingOnNoValue: false });
2179
- searchResults$ = this.searchResultsState$.pipe(map((x) => x?.value ?? []));
2067
+ searchContext = loadingStateContext({ obs: this.searchResultsState$, showLoadingOnNoValue: false });
2068
+ searchResults$ = this.searchResultsState$.pipe(map((x) => x?.value ?? []), shareReplay(1));
2069
+ isLoadingSearchResults$ = this.searchResultsState$.pipe(map(isLoadingStateInLoadingState), distinctUntilChanged(), shareReplay(1));
2180
2070
  _formControlValue$ = this.formControl$.pipe(switchMap((control) => control.valueChanges.pipe(startWith(control.value), shareReplay(1))));
2181
2071
  values$ = this._formControlValue$.pipe(map(convertMaybeToArray), shareReplay(1));
2182
2072
  displayValuesState$ = this.values$.pipe(distinctUntilChanged(), switchMap((values) => this.loadDisplayValuesForValues(values)), shareReplay(1));
2183
2073
  displayValues$ = this.displayValuesState$.pipe(map((x) => x?.value ?? []));
2074
+ inputValueSignal = toSignal(this.inputValue$);
2075
+ searchResultsSignal = toSignal(this.searchResults$);
2076
+ displayValuesSignal = toSignal(this.displayValues$);
2077
+ isLoadingSearchResultsSignal = toSignal(this.isLoadingSearchResults$);
2184
2078
  get name() {
2185
2079
  return this.field.name ?? camelCase(this.label ?? this.key);
2186
2080
  }
@@ -2205,6 +2099,12 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
2205
2099
  get searchOnEmptyText() {
2206
2100
  return this.searchableField.searchOnEmptyText ?? false;
2207
2101
  }
2102
+ get searchInputPlaceholder() {
2103
+ const searchOnEmpty = this.searchOnEmptyText;
2104
+ const placeholder = this.searchableField.placeholder;
2105
+ const test = placeholder || (searchOnEmpty ? undefined : this.defaultSearchInputPlaceholder) || '';
2106
+ return test;
2107
+ }
2208
2108
  get autocomplete() {
2209
2109
  return (this.props.attributes?.['autocomplete'] ?? this.key);
2210
2110
  }
@@ -2260,7 +2160,7 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
2260
2160
  if (needsDisplay.length > 0) {
2261
2161
  // Go get the display value.
2262
2162
  const displayValuesObs = this.displayForValue(needsDisplay.map((x) => x[2]));
2263
- const defaultDisplay = mergeDbxInjectionComponentConfigs([this.defaultDisplay, this.display]);
2163
+ const defaultDisplay = mergeDbxInjectionComponentConfigs([DEFAULT_SEARCHABLE_FIELD_DISPLAY, this.display]);
2264
2164
  const anchorForValue = this.useAnchor && this.anchorForValue;
2265
2165
  obs = displayValuesObs.pipe(first(), map((displayResults) => {
2266
2166
  // Assign the default component classes to complete configuration.
@@ -2301,12 +2201,6 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
2301
2201
  if (this.searchableField.textInputValidator) {
2302
2202
  this.inputCtrl.setValidators(this.searchableField.textInputValidator);
2303
2203
  }
2304
- if (!this.defaultDisplay?.componentClass) {
2305
- this.defaultDisplay = {
2306
- ...this.defaultDisplay,
2307
- componentClass: DbxDefaultSearchableFieldDisplayComponent
2308
- };
2309
- }
2310
2204
  if (this.allowSyncValueToInput && this.multiSelect === false) {
2311
2205
  this._singleValueSyncSubscription.subscription = this.displayValues$.subscribe((x) => {
2312
2206
  if (x[0]) {
@@ -2339,7 +2233,6 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
2339
2233
  text = (text || '').trim();
2340
2234
  this.inputCtrl.setValue(text.trim());
2341
2235
  }
2342
- // console.log('Add: ', text, this.inputCtrl.valid);
2343
2236
  if (!this.inputCtrl.valid) {
2344
2237
  return;
2345
2238
  }
@@ -2366,7 +2259,10 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
2366
2259
  return addedValue;
2367
2260
  }
2368
2261
  addValue(value) {
2369
- this.textInput.nativeElement.value = '';
2262
+ const textInput = this.textInput();
2263
+ if (textInput) {
2264
+ textInput.nativeElement.value = '';
2265
+ }
2370
2266
  this.inputCtrl.setValue(null);
2371
2267
  this.setValues([...this.values, value]);
2372
2268
  }
@@ -2408,17 +2304,17 @@ class AbstractDbxSearchableValueFieldDirective extends FieldType$1 {
2408
2304
  this.formControl.markAsDirty();
2409
2305
  this.formControl.markAsTouched();
2410
2306
  }
2411
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxSearchableValueFieldDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2412
- static ɵ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 });
2307
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxSearchableValueFieldDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
2308
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.13", type: AbstractDbxSearchableValueFieldDirective, viewQueries: [{ propertyName: "textInput", first: true, predicate: ["textInput"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0 });
2413
2309
  }
2414
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractDbxSearchableValueFieldDirective, decorators: [{
2310
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxSearchableValueFieldDirective, decorators: [{
2415
2311
  type: Directive
2416
- }], propDecorators: { textInput: [{
2417
- type: ViewChild,
2418
- args: ['textInput']
2419
- }] } });
2312
+ }] });
2420
2313
 
2421
2314
  class DbxSearchableChipFieldComponent extends AbstractDbxSearchableValueFieldDirective {
2315
+ get multiSelect() {
2316
+ return this.props.multiSelect ?? true;
2317
+ }
2422
2318
  _blur = new Subject();
2423
2319
  _blurSub = new SubscriptionObject();
2424
2320
  separatorKeysCodes = [ENTER, COMMA];
@@ -2439,9 +2335,6 @@ class DbxSearchableChipFieldComponent extends AbstractDbxSearchableValueFieldDir
2439
2335
  const text = event.value ?? this.inputCtrl.value;
2440
2336
  return this._addWithTextValue(text);
2441
2337
  }
2442
- get multiSelect() {
2443
- return this.props.multiSelect ?? true;
2444
- }
2445
2338
  _syncSingleValue(value) {
2446
2339
  // Do nothing
2447
2340
  }
@@ -2460,12 +2353,12 @@ class DbxSearchableChipFieldComponent extends AbstractDbxSearchableValueFieldDir
2460
2353
  onBlur() {
2461
2354
  this._blur.next();
2462
2355
  }
2463
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxSearchableChipFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2464
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxSearchableChipFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-searchable-field\">\n <!-- View -->\n <mat-chip-grid [required]=\"required\" [disabled]=\"readonly\" #chipList>\n <mat-chip-row *ngFor=\"let displayValue of displayValues$ | async\" [removable]=\"true\" (removed)=\"removeWithDisplayValue(displayValue)\">\n <mat-icon matChipAvatar *ngIf=\"displayValue.icon\">{{ displayValue.icon }}</mat-icon>\n <span class=\"dbx-chip-label\">{{ displayValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"displayValue.sublabel\">{{ displayValue.sublabel }}</span>\n <mat-icon matChipRemove *ngIf=\"!readonly\">cancel</mat-icon>\n </mat-chip-row>\n <input #textInput [name]=\"name\" [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\" autocomplete=\"{{ autocomplete }}\" [matAutocompleteDisabled]=\"readonly\" [matChipInputFor]=\"chipList\" (keydown)=\"tabPressedOnInput($event)\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"addChip($event)\" (blur)=\"onBlur()\" />\n </mat-chip-grid>\n <div class=\"searchable-field-form-loading\">\n <dbx-loading [linear]=\"true\" [context]=\"searchContext\"></dbx-loading>\n </div>\n</div>\n\n<!-- Autocomplete -->\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\" (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</mat-autocomplete>\n", dependencies: [{ 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: i5.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "padding", "context", "loading", "error"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4$3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4$3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i6$2.MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "component", type: i6$2.MatChipGrid, selector: "mat-chip-grid", inputs: ["tabIndex", "disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i6$2.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i6$2.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i6$2.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "editable"], outputs: ["edited"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: ["displayValue"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
2356
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxSearchableChipFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2357
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxSearchableChipFieldComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-searchable-field\">\n <!-- View -->\n <mat-chip-grid [required]=\"required\" [disabled]=\"readonly\" #chipList>\n @for (displayValue of displayValuesSignal(); track displayValue.value) {\n <mat-chip-row [removable]=\"true\" (removed)=\"removeWithDisplayValue(displayValue)\">\n @if (displayValue.icon) {\n <mat-icon matChipAvatar>{{ displayValue.icon }}</mat-icon>\n }\n <span class=\"dbx-chip-label\">{{ displayValue.label }}</span>\n @if (displayValue.sublabel) {\n <span class=\"dbx-chip-sublabel\">{{ displayValue.sublabel }}</span>\n }\n @if (!readonly) {\n <mat-icon matChipRemove>cancel</mat-icon>\n }\n </mat-chip-row>\n }\n <input #textInput [name]=\"name\" [placeholder]=\"searchInputPlaceholder\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\" autocomplete=\"{{ autocomplete }}\" [matAutocompleteDisabled]=\"readonly\" [matChipInputFor]=\"chipList\" (keydown)=\"tabPressedOnInput($event)\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"addChip($event)\" (blur)=\"onBlur()\" />\n </mat-chip-grid>\n <div class=\"searchable-field-form-loading\">\n <dbx-loading [linear]=\"true\" [context]=\"searchContext\"></dbx-loading>\n </div>\n</div>\n\n<!-- Autocomplete -->\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n @for (displayValue of searchResultsSignal(); track displayValue.value) {\n <mat-option [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n }\n</mat-autocomplete>\n", dependencies: [{ kind: "ngmodule", type: MatChipsModule }, { kind: "directive", type: i1$3.MatChipAvatar, selector: "mat-chip-avatar, [matChipAvatar]" }, { kind: "component", type: i1$3.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i1$3.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i1$3.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i1$3.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: DbxLoadingModule }, { kind: "component", type: i1$1.DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: ["displayValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2465
2358
  }
2466
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxSearchableChipFieldComponent, decorators: [{
2359
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxSearchableChipFieldComponent, decorators: [{
2467
2360
  type: Component,
2468
- args: [{ template: "<div class=\"dbx-searchable-field\">\n <!-- View -->\n <mat-chip-grid [required]=\"required\" [disabled]=\"readonly\" #chipList>\n <mat-chip-row *ngFor=\"let displayValue of displayValues$ | async\" [removable]=\"true\" (removed)=\"removeWithDisplayValue(displayValue)\">\n <mat-icon matChipAvatar *ngIf=\"displayValue.icon\">{{ displayValue.icon }}</mat-icon>\n <span class=\"dbx-chip-label\">{{ displayValue.label }}</span>\n <span class=\"dbx-chip-sublabel\" *ngIf=\"displayValue.sublabel\">{{ displayValue.sublabel }}</span>\n <mat-icon matChipRemove *ngIf=\"!readonly\">cancel</mat-icon>\n </mat-chip-row>\n <input #textInput [name]=\"name\" [placeholder]=\"placeholder\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\" autocomplete=\"{{ autocomplete }}\" [matAutocompleteDisabled]=\"readonly\" [matChipInputFor]=\"chipList\" (keydown)=\"tabPressedOnInput($event)\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"addChip($event)\" (blur)=\"onBlur()\" />\n </mat-chip-grid>\n <div class=\"searchable-field-form-loading\">\n <dbx-loading [linear]=\"true\" [context]=\"searchContext\"></dbx-loading>\n </div>\n</div>\n\n<!-- Autocomplete -->\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\" (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</mat-autocomplete>\n" }]
2361
+ args: [{ imports: [MatChipsModule, MatIconModule, FormsModule, ReactiveFormsModule, DbxLoadingModule, MatAutocompleteModule, MatOptionModule, DbxSearchableFieldAutocompleteItemComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"dbx-searchable-field\">\n <!-- View -->\n <mat-chip-grid [required]=\"required\" [disabled]=\"readonly\" #chipList>\n @for (displayValue of displayValuesSignal(); track displayValue.value) {\n <mat-chip-row [removable]=\"true\" (removed)=\"removeWithDisplayValue(displayValue)\">\n @if (displayValue.icon) {\n <mat-icon matChipAvatar>{{ displayValue.icon }}</mat-icon>\n }\n <span class=\"dbx-chip-label\">{{ displayValue.label }}</span>\n @if (displayValue.sublabel) {\n <span class=\"dbx-chip-sublabel\">{{ displayValue.sublabel }}</span>\n }\n @if (!readonly) {\n <mat-icon matChipRemove>cancel</mat-icon>\n }\n </mat-chip-row>\n }\n <input #textInput [name]=\"name\" [placeholder]=\"searchInputPlaceholder\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\" autocomplete=\"{{ autocomplete }}\" [matAutocompleteDisabled]=\"readonly\" [matChipInputFor]=\"chipList\" (keydown)=\"tabPressedOnInput($event)\" [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\" (matChipInputTokenEnd)=\"addChip($event)\" (blur)=\"onBlur()\" />\n </mat-chip-grid>\n <div class=\"searchable-field-form-loading\">\n <dbx-loading [linear]=\"true\" [context]=\"searchContext\"></dbx-loading>\n </div>\n</div>\n\n<!-- Autocomplete -->\n<mat-autocomplete class=\"dbx-searchable-text-field-autocomplete\" #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\n @for (displayValue of searchResultsSignal(); track displayValue.value) {\n <mat-option [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n }\n</mat-autocomplete>\n" }]
2469
2362
  }] });
2470
2363
 
2471
2364
  /**
@@ -2539,9 +2432,10 @@ function searchableTextField(config) {
2539
2432
  */
2540
2433
  class DbxSearchableTextFieldComponent extends AbstractDbxSearchableValueFieldDirective {
2541
2434
  allowSyncValueToInput = true;
2542
- selectedDisplayValue$ = this.displayValues$.pipe(map((x) => x[0]), shareReplay(1), tapDetectChanges(this.cdRef));
2543
- hasValue$ = this.selectedDisplayValue$.pipe(map((x) => Boolean(x)));
2544
- showSelectedDisplayValue$ = this.selectedDisplayValue$.pipe(map((x) => this.showSelectedValue && Boolean(x)), distinctUntilChanged(), shareReplay(1), tapDetectChanges(this.cdRef));
2435
+ selectedDisplayValue$ = this.displayValues$.pipe(map((x) => x[0]), shareReplay(1));
2436
+ selectedDisplayValueSignal = toSignal(this.selectedDisplayValue$);
2437
+ hasValueSignal = computed(() => Boolean(this.selectedDisplayValueSignal()));
2438
+ showSelectedDisplayValueSignal = computed(() => this.showSelectedValue && this.hasValueSignal());
2545
2439
  get searchableField() {
2546
2440
  return this.props;
2547
2441
  }
@@ -2551,91 +2445,58 @@ class DbxSearchableTextFieldComponent extends AbstractDbxSearchableValueFieldDir
2551
2445
  get multiSelect() {
2552
2446
  return false;
2553
2447
  }
2554
- _clearInputSub = new SubscriptionObject();
2555
- ngOnInit() {
2556
- super.ngOnInit();
2557
- this._clearInputSub.subscription = this.inputValue$.pipe(skipWhile((x) => !x)).subscribe((x) => {
2558
- if (!x) {
2559
- // this.clearValues();
2560
- }
2561
- });
2448
+ /*
2449
+ private _clearInputSub = new SubscriptionObject();
2450
+
2451
+ override ngOnInit(): void {
2452
+ super.ngOnInit();
2453
+
2454
+ this._clearInputSub.subscription = this.inputValue$.pipe(skipWhile((x) => !x)).subscribe((x) => {
2455
+ if (!x) {
2456
+ // this.clearValues();
2457
+ }
2458
+ });
2562
2459
  }
2563
- ngOnDestroy() {
2564
- super.ngOnDestroy();
2565
- this._clearInputSub.destroy();
2460
+
2461
+ override ngOnDestroy(): void {
2462
+ super.ngOnDestroy();
2463
+ this._clearInputSub.destroy();
2566
2464
  }
2465
+ */
2567
2466
  selected(event) {
2568
- this.addWithDisplayValue(event.option.value);
2467
+ const value = event.option.value;
2468
+ console.log('selected', value);
2469
+ if (value._clear) {
2470
+ this.clearValues();
2471
+ }
2472
+ else if (!value._ignore) {
2473
+ this.addWithDisplayValue(value);
2474
+ }
2569
2475
  }
2570
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxSearchableTextFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2571
- static ɵ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: i5.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "padding", "context", "loading", "error"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4$2.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: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4$3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4$3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: ["displayValue"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
2476
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxSearchableTextFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2477
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxSearchableTextFieldComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-searchable-text-field\" [ngClass]=\"{ 'dbx-searchable-text-field-has-value': hasValueSignal(), 'dbx-searchable-text-field-show-value': showSelectedValue }\">\n <!-- Result View -->\n @if (showSelectedDisplayValueSignal()) {\n <div class=\"dbx-searchable-text-field-value mat-option mat-option-text\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"selectedDisplayValueSignal()!\"></dbx-searchable-field-autocomplete-item>\n </div>\n }\n <div class=\"dbx-searchable-text-field-input\">\n @if (searchLabel) {\n <div class=\"dbx-label\">{{ searchLabel }}</div>\n }\n <!-- View -->\n <input type=\"search\" [name]=\"name\" matInput #textInput [placeholder]=\"searchInputPlaceholder\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\" [matAutocompleteDisabled]=\"readonly || disabled\" 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 @for (displayValue of searchResultsSignal(); track displayValue.value) {\n <mat-option [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n }\n <!-- If No Results -->\n @if (searchResultsSignal()?.length === 0) {\n @if (!isLoadingSearchResultsSignal()) {\n <mat-option value=\"\" disabled>\n <p class=\"dbx-clear-hint text-center\">No results found.</p>\n </mat-option>\n } @else {\n <mat-option value=\"\" disabled>\n <p class=\"dbx-clear-hint text-center\">Loading...</p>\n </mat-option>\n }\n }\n <!-- Add/Pick String Value -->\n @if (allowStringValues && inputValueSignal()) {\n <mat-option [value]=\"{ value: inputValueSignal() }\">\n <p class=\"dbx-clear-hint text-center\">\"{{ inputValueSignal() }}\"</p>\n </mat-option>\n }\n <!-- Show clear value -->\n @if (showClearValue && hasValueSignal()) {\n <mat-option value=\"\">\n <p class=\"dbx-clear-hint text-center\">Clear</p>\n </mat-option>\n }\n</mat-autocomplete>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: 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: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: DbxLoadingModule }, { kind: "component", type: i1$1.DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "ngmodule", type: MatOptionModule }, { kind: "component", type: i3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatAutocompleteModule }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: DbxSearchableFieldAutocompleteItemComponent, selector: "dbx-searchable-field-autocomplete-item", inputs: ["displayValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2572
2478
  }
2573
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxSearchableTextFieldComponent, decorators: [{
2479
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxSearchableTextFieldComponent, decorators: [{
2574
2480
  type: Component,
2575
- 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" }]
2481
+ args: [{ imports: [FormsModule, MatInput, NgClass, ReactiveFormsModule, DbxLoadingModule, MatOptionModule, MatAutocompleteModule, MatChipsModule, MatIconModule, DbxSearchableFieldAutocompleteItemComponent], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<div class=\"dbx-searchable-text-field\" [ngClass]=\"{ 'dbx-searchable-text-field-has-value': hasValueSignal(), 'dbx-searchable-text-field-show-value': showSelectedValue }\">\n <!-- Result View -->\n @if (showSelectedDisplayValueSignal()) {\n <div class=\"dbx-searchable-text-field-value mat-option mat-option-text\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"selectedDisplayValueSignal()!\"></dbx-searchable-field-autocomplete-item>\n </div>\n }\n <div class=\"dbx-searchable-text-field-input\">\n @if (searchLabel) {\n <div class=\"dbx-label\">{{ searchLabel }}</div>\n }\n <!-- View -->\n <input type=\"search\" [name]=\"name\" matInput #textInput [placeholder]=\"searchInputPlaceholder\" [formControl]=\"inputCtrl\" [matAutocomplete]=\"auto\" [matAutocompleteDisabled]=\"readonly || disabled\" 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 @for (displayValue of searchResultsSignal(); track displayValue.value) {\n <mat-option [value]=\"displayValue\">\n <dbx-searchable-field-autocomplete-item [displayValue]=\"displayValue\"></dbx-searchable-field-autocomplete-item>\n </mat-option>\n }\n <!-- If No Results -->\n @if (searchResultsSignal()?.length === 0) {\n @if (!isLoadingSearchResultsSignal()) {\n <mat-option value=\"\" disabled>\n <p class=\"dbx-clear-hint text-center\">No results found.</p>\n </mat-option>\n } @else {\n <mat-option value=\"\" disabled>\n <p class=\"dbx-clear-hint text-center\">Loading...</p>\n </mat-option>\n }\n }\n <!-- Add/Pick String Value -->\n @if (allowStringValues && inputValueSignal()) {\n <mat-option [value]=\"{ value: inputValueSignal() }\">\n <p class=\"dbx-clear-hint text-center\">\"{{ inputValueSignal() }}\"</p>\n </mat-option>\n }\n <!-- Show clear value -->\n @if (showClearValue && hasValueSignal()) {\n <mat-option value=\"\">\n <p class=\"dbx-clear-hint text-center\">Clear</p>\n </mat-option>\n }\n</mat-autocomplete>\n" }]
2576
2482
  }] });
2577
2483
 
2484
+ const importsAndExports$2 = [DbxSearchableChipFieldComponent, DbxSearchableTextFieldComponent, DbxSearchableFieldAutocompleteItemComponent, DbxDefaultSearchableFieldDisplayComponent];
2578
2485
  class DbxFormFormlySearchableFieldModule {
2579
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySearchableFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2580
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySearchableFieldModule, declarations: [DbxSearchableChipFieldComponent, DbxSearchableTextFieldComponent, DbxSearchableFieldAutocompleteItemComponent, DbxDefaultSearchableFieldDisplayComponent], imports: [CommonModule,
2581
- DbxTextModule,
2582
- DbxLoadingModule,
2583
- DbxButtonModule,
2584
- FormsModule,
2585
- MatButtonModule,
2586
- MatInputModule,
2587
- MatFormFieldModule,
2588
- ReactiveFormsModule,
2589
- MatAutocompleteModule,
2590
- MatListModule,
2591
- DbxDatePipeModule,
2592
- DbxRouterAnchorModule,
2593
- MatChipsModule,
2594
- MatIconModule,
2595
- DbxInjectionComponentModule, i1$1.FormlyModule], exports: [DbxSearchableChipFieldComponent, DbxSearchableTextFieldComponent] });
2596
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySearchableFieldModule, imports: [CommonModule,
2597
- DbxTextModule,
2598
- DbxLoadingModule,
2599
- DbxButtonModule,
2600
- FormsModule,
2601
- MatButtonModule,
2602
- MatInputModule,
2603
- MatFormFieldModule,
2604
- ReactiveFormsModule,
2605
- MatAutocompleteModule,
2606
- MatListModule,
2607
- DbxDatePipeModule,
2608
- DbxRouterAnchorModule,
2609
- MatChipsModule,
2610
- MatIconModule,
2611
- DbxInjectionComponentModule,
2612
- FormlyModule.forChild({
2486
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySearchableFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2487
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySearchableFieldModule, imports: [DbxSearchableChipFieldComponent, DbxSearchableTextFieldComponent, DbxSearchableFieldAutocompleteItemComponent, DbxDefaultSearchableFieldDisplayComponent, i1$2.FormlyModule], exports: [DbxSearchableChipFieldComponent, DbxSearchableTextFieldComponent, DbxSearchableFieldAutocompleteItemComponent, DbxDefaultSearchableFieldDisplayComponent] });
2488
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySearchableFieldModule, imports: [importsAndExports$2, FormlyModule.forChild({
2613
2489
  types: [
2614
2490
  { name: 'searchablechipfield', component: DbxSearchableChipFieldComponent, wrappers: ['form-field'] },
2615
2491
  { name: 'searchabletextfield', component: DbxSearchableTextFieldComponent, wrappers: ['form-field'] }
2616
2492
  ]
2617
2493
  })] });
2618
2494
  }
2619
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySearchableFieldModule, decorators: [{
2495
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySearchableFieldModule, decorators: [{
2620
2496
  type: NgModule,
2621
2497
  args: [{
2622
2498
  imports: [
2623
- CommonModule,
2624
- DbxTextModule,
2625
- DbxLoadingModule,
2626
- DbxButtonModule,
2627
- FormsModule,
2628
- MatButtonModule,
2629
- MatInputModule,
2630
- MatFormFieldModule,
2631
- ReactiveFormsModule,
2632
- MatAutocompleteModule,
2633
- MatListModule,
2634
- DbxDatePipeModule,
2635
- DbxRouterAnchorModule,
2636
- MatChipsModule,
2637
- MatIconModule,
2638
- DbxInjectionComponentModule,
2499
+ ...importsAndExports$2,
2639
2500
  FormlyModule.forChild({
2640
2501
  types: [
2641
2502
  { name: 'searchablechipfield', component: DbxSearchableChipFieldComponent, wrappers: ['form-field'] },
@@ -2643,15 +2504,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2643
2504
  ]
2644
2505
  })
2645
2506
  ],
2646
- declarations: [DbxSearchableChipFieldComponent, DbxSearchableTextFieldComponent, DbxSearchableFieldAutocompleteItemComponent, DbxDefaultSearchableFieldDisplayComponent],
2647
- exports: [DbxSearchableChipFieldComponent, DbxSearchableTextFieldComponent]
2507
+ exports: importsAndExports$2
2648
2508
  }]
2649
2509
  }] });
2650
2510
 
2651
2511
  function chipTextField(config) {
2652
2512
  const convertStringValue = config.caseSensitive ? (x) => x : (x) => x?.toLowerCase();
2653
2513
  return searchableChipField({
2654
- search: () => of([]),
2514
+ search: () => of([]), // no search by default
2655
2515
  ...config,
2656
2516
  allowStringValues: true,
2657
2517
  convertStringValue,
@@ -2672,7 +2532,7 @@ class DbxFormSourceSelectFieldComponent extends FieldType$2 {
2672
2532
  _formControlObs = new BehaviorSubject(undefined);
2673
2533
  _fromOpenSource = new BehaviorSubject({ values: [], valuesSet: new Set() });
2674
2534
  _loadSources = new BehaviorSubject(undefined);
2675
- buttonElement;
2535
+ buttonElement = viewChild('button', { read: (ElementRef) });
2676
2536
  formControl$ = this._formControlObs.pipe(filterMaybe());
2677
2537
  currentFormControlValue$ = this.formControl$.pipe(switchMap((control) => control.valueChanges.pipe(startWith(control.value))), shareReplay(1));
2678
2538
  values$ = this.currentFormControlValue$.pipe(map(convertMaybeToArray), shareReplay(1));
@@ -2784,7 +2644,7 @@ class DbxFormSourceSelectFieldComponent extends FieldType$2 {
2784
2644
  }));
2785
2645
  return obs;
2786
2646
  })), shareReplay(1));
2787
- allOptionGroups$ = this.allOptionGroupsState$.pipe(valueFromLoadingState(), shareReplay(1));
2647
+ allOptionGroups$ = this.allOptionGroupsState$.pipe(valueFromFinishedLoadingState(), map((x) => x ?? []), shareReplay(1));
2788
2648
  options$ = this.allOptionGroups$.pipe(map((x) => {
2789
2649
  const { included: groupedValues, excluded: nonGroupedGroup } = separateValues(x, (y) => Boolean(y.label));
2790
2650
  const result = {
@@ -2795,6 +2655,8 @@ class DbxFormSourceSelectFieldComponent extends FieldType$2 {
2795
2655
  }), shareReplay(1));
2796
2656
  nonGroupedValues$ = this.options$.pipe(map((x) => x.nonGroupedValues));
2797
2657
  groupedOptions$ = this.options$.pipe(map((x) => x.groupedValues));
2658
+ nonGroupedValuesSignal = toSignal(this.nonGroupedValues$);
2659
+ groupedOptionsSignal = toSignal(this.groupedOptions$);
2798
2660
  get sourceSelectField() {
2799
2661
  return this.props;
2800
2662
  }
@@ -2914,8 +2776,8 @@ class DbxFormSourceSelectFieldComponent extends FieldType$2 {
2914
2776
  }
2915
2777
  handleSelectOptions = (_, context) => {
2916
2778
  const { openSource } = this;
2917
- if (openSource) {
2918
- const origin = this.buttonElement.nativeElement;
2779
+ const origin = this.buttonElement();
2780
+ if (openSource && origin) {
2919
2781
  const sourceObs = openSource({ origin });
2920
2782
  context.startWorkingWithObservable(sourceObs.pipe(first(), tap((result) => {
2921
2783
  const valuesToAdd = mergeArrays([result.select, result.options]);
@@ -2964,16 +2826,13 @@ class DbxFormSourceSelectFieldComponent extends FieldType$2 {
2964
2826
  this.formControl.markAsDirty();
2965
2827
  this.formControl.markAsTouched();
2966
2828
  }
2967
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormSourceSelectFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2968
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormSourceSelectFieldComponent, selector: "ng-component", viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-source-select-field\">\n <div class=\"dbx-source-select-field-content\">\n <mat-select class=\"dbx-source-select-field-select\" [id]=\"id\" [formControl]=\"formControl\" [multiple]=\"props.multiple\">\n <mat-option *ngFor=\"let value of nonGroupedValues$ | async\" [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n <mat-optgroup *ngFor=\"let optionGroup of groupedOptions$ | async\" [label]=\"optionGroup.label\">\n <mat-option *ngFor=\"let value of optionGroup.values\" [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n </mat-optgroup>\n </mat-select>\n <ng-container *ngIf=\"showOpenSourceButton\">\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-action dbxActionValue [dbxActionHandler]=\"handleSelectOptions\" class=\"dbx-source-select-field-button\">\n <dbx-button #button dbxActionButton [iconOnly]=\"true\" [icon]=\"selectButtonIcon\"></dbx-button>\n </dbx-action>\n </ng-container>\n </div>\n <dbx-loading class=\"dbx-source-select-field-loading\" [linear]=\"true\" [context]=\"context\"></dbx-loading>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatOptgroup, selector: "mat-optgroup", inputs: ["disabled"], exportAs: ["matOptgroup"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.DbxLoadingComponent, selector: "dbx-loading", inputs: ["show", "text", "mode", "color", "diameter", "linear", "padding", "context", "loading", "error"] }, { kind: "directive", type: i6.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: i5.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "basic", "raised", "stroked", "flat", "iconOnly", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor"] }, { kind: "directive", type: i5.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "directive", type: i6.DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i6.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i6.DbxActionValueDirective, selector: "[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
2829
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSourceSelectFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2830
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFormSourceSelectFieldComponent, isStandalone: true, selector: "dbx-form-sourceselectfield", viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["button"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-source-select-field\">\n <div class=\"dbx-source-select-field-content\">\n <mat-select class=\"dbx-source-select-field-select\" [id]=\"id\" [formControl]=\"formControl\" [multiple]=\"props.multiple\">\n @for (value of nonGroupedValuesSignal(); track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n @for (optionGroup of groupedOptionsSignal(); track optionGroup.label) {\n <mat-optgroup [label]=\"optionGroup.label\">\n @for (value of optionGroup.values; track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n </mat-optgroup>\n }\n </mat-select>\n @if (showOpenSourceButton) {\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-action dbxActionValue [dbxActionHandler]=\"handleSelectOptions\" class=\"dbx-source-select-field-button\">\n <dbx-button #button dbxActionButton [fab]=\"true\" [iconOnly]=\"true\" [icon]=\"selectButtonIcon\"></dbx-button>\n </dbx-action>\n }\n </div>\n <dbx-loading class=\"dbx-source-select-field-loading\" [linear]=\"true\" [context]=\"context\"></dbx-loading>\n</div>\n", dependencies: [{ kind: "component", type: MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }, { kind: "component", type: MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i2$3.DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i2$3.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i2$3.DbxActionValueDirective, selector: "dbxActionValue,[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i2$3.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2969
2831
  }
2970
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormSourceSelectFieldComponent, decorators: [{
2832
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSourceSelectFieldComponent, decorators: [{
2971
2833
  type: Component,
2972
- args: [{ template: "<div class=\"dbx-source-select-field\">\n <div class=\"dbx-source-select-field-content\">\n <mat-select class=\"dbx-source-select-field-select\" [id]=\"id\" [formControl]=\"formControl\" [multiple]=\"props.multiple\">\n <mat-option *ngFor=\"let value of nonGroupedValues$ | async\" [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n <mat-optgroup *ngFor=\"let optionGroup of groupedOptions$ | async\" [label]=\"optionGroup.label\">\n <mat-option *ngFor=\"let value of optionGroup.values\" [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n </mat-optgroup>\n </mat-select>\n <ng-container *ngIf=\"showOpenSourceButton\">\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-action dbxActionValue [dbxActionHandler]=\"handleSelectOptions\" class=\"dbx-source-select-field-button\">\n <dbx-button #button dbxActionButton [iconOnly]=\"true\" [icon]=\"selectButtonIcon\"></dbx-button>\n </dbx-action>\n </ng-container>\n </div>\n <dbx-loading class=\"dbx-source-select-field-loading\" [linear]=\"true\" [context]=\"context\"></dbx-loading>\n</div>\n" }]
2973
- }], propDecorators: { buttonElement: [{
2974
- type: ViewChild,
2975
- args: ['button', { read: ElementRef, static: false }]
2976
- }] } });
2834
+ args: [{ selector: 'dbx-form-sourceselectfield', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatSelect, MatOption, FormsModule, ReactiveFormsModule, DbxButtonComponent, MatOptgroup, DbxButtonSpacerDirective, DbxActionModule, DbxLoadingComponent], standalone: true, template: "<div class=\"dbx-source-select-field\">\n <div class=\"dbx-source-select-field-content\">\n <mat-select class=\"dbx-source-select-field-select\" [id]=\"id\" [formControl]=\"formControl\" [multiple]=\"props.multiple\">\n @for (value of nonGroupedValuesSignal(); track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n @for (optionGroup of groupedOptionsSignal(); track optionGroup.label) {\n <mat-optgroup [label]=\"optionGroup.label\">\n @for (value of optionGroup.values; track value.value) {\n <mat-option [value]=\"value.value\">\n {{ value.label }}\n </mat-option>\n }\n </mat-optgroup>\n }\n </mat-select>\n @if (showOpenSourceButton) {\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-action dbxActionValue [dbxActionHandler]=\"handleSelectOptions\" class=\"dbx-source-select-field-button\">\n <dbx-button #button dbxActionButton [fab]=\"true\" [iconOnly]=\"true\" [icon]=\"selectButtonIcon\"></dbx-button>\n </dbx-action>\n }\n </div>\n <dbx-loading class=\"dbx-source-select-field-loading\" [linear]=\"true\" [context]=\"context\"></dbx-loading>\n</div>\n" }]
2835
+ }] });
2977
2836
 
2978
2837
  function sourceSelectField(config) {
2979
2838
  const { key, materialFormField } = config;
@@ -2989,74 +2848,22 @@ function sourceSelectField(config) {
2989
2848
  }
2990
2849
 
2991
2850
  class DbxFormFormlySourceSelectModule {
2992
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySourceSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2993
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySourceSelectModule, declarations: [DbxFormSourceSelectFieldComponent], imports: [CommonModule,
2994
- FormsModule,
2995
- MatInputModule,
2996
- MatDividerModule,
2997
- MatFormFieldModule,
2998
- MatSelectModule,
2999
- MatButtonModule,
3000
- MatDatepickerModule,
3001
- MatNativeDateModule,
3002
- MatMenuModule,
3003
- ReactiveFormsModule,
3004
- DbxDatePipeModule,
3005
- DbxLoadingModule,
3006
- DbxButtonModule,
3007
- DbxActionModule,
3008
- MatChipsModule,
3009
- MatIconModule,
3010
- FlexLayoutModule, i1$1.FormlyModule], exports: [DbxFormSourceSelectFieldComponent] });
3011
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySourceSelectModule, imports: [CommonModule,
3012
- FormsModule,
3013
- MatInputModule,
3014
- MatDividerModule,
3015
- MatFormFieldModule,
3016
- MatSelectModule,
3017
- MatButtonModule,
3018
- MatDatepickerModule,
3019
- MatNativeDateModule,
3020
- MatMenuModule,
3021
- ReactiveFormsModule,
3022
- DbxDatePipeModule,
3023
- DbxLoadingModule,
3024
- DbxButtonModule,
3025
- DbxActionModule,
3026
- MatChipsModule,
3027
- MatIconModule,
3028
- FlexLayoutModule,
2851
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySourceSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2852
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySourceSelectModule, imports: [DbxFormSourceSelectFieldComponent, i1$2.FormlyModule], exports: [DbxFormSourceSelectFieldComponent] });
2853
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySourceSelectModule, imports: [DbxFormSourceSelectFieldComponent,
3029
2854
  FormlyModule.forChild({
3030
2855
  types: [{ name: 'sourceselectfield', component: DbxFormSourceSelectFieldComponent, wrappers: ['form-field'] }]
3031
2856
  })] });
3032
2857
  }
3033
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySourceSelectModule, decorators: [{
2858
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySourceSelectModule, decorators: [{
3034
2859
  type: NgModule,
3035
2860
  args: [{
3036
2861
  imports: [
3037
- CommonModule,
3038
- FormsModule,
3039
- MatInputModule,
3040
- MatDividerModule,
3041
- MatFormFieldModule,
3042
- MatSelectModule,
3043
- MatButtonModule,
3044
- MatDatepickerModule,
3045
- MatNativeDateModule,
3046
- MatMenuModule,
3047
- ReactiveFormsModule,
3048
- DbxDatePipeModule,
3049
- DbxLoadingModule,
3050
- DbxButtonModule,
3051
- DbxActionModule,
3052
- MatChipsModule,
3053
- MatIconModule,
3054
- FlexLayoutModule,
2862
+ DbxFormSourceSelectFieldComponent,
3055
2863
  FormlyModule.forChild({
3056
2864
  types: [{ name: 'sourceselectfield', component: DbxFormSourceSelectFieldComponent, wrappers: ['form-field'] }]
3057
2865
  })
3058
2866
  ],
3059
- declarations: [DbxFormSourceSelectFieldComponent],
3060
2867
  exports: [DbxFormSourceSelectFieldComponent]
3061
2868
  }]
3062
2869
  }] });
@@ -3097,11 +2904,11 @@ function addValueSelectionOptionFunction(label) {
3097
2904
  }
3098
2905
 
3099
2906
  class DbxFormFormlySelectionModule {
3100
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySelectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3101
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySelectionModule, imports: [CommonModule], exports: [DbxFormFormlyDbxListFieldModule, DbxFormFormlyPickableFieldModule, DbxFormFormlySearchableFieldModule, DbxFormFormlySourceSelectModule] });
3102
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySelectionModule, imports: [CommonModule, DbxFormFormlyDbxListFieldModule, DbxFormFormlyPickableFieldModule, DbxFormFormlySearchableFieldModule, DbxFormFormlySourceSelectModule] });
2907
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySelectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2908
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySelectionModule, imports: [CommonModule], exports: [DbxFormFormlyDbxListFieldModule, DbxFormFormlyPickableFieldModule, DbxFormFormlySearchableFieldModule, DbxFormFormlySourceSelectModule] });
2909
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySelectionModule, imports: [CommonModule, DbxFormFormlyDbxListFieldModule, DbxFormFormlyPickableFieldModule, DbxFormFormlySearchableFieldModule, DbxFormFormlySourceSelectModule] });
3103
2910
  }
3104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlySelectionModule, decorators: [{
2911
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlySelectionModule, decorators: [{
3105
2912
  type: NgModule,
3106
2913
  args: [{
3107
2914
  imports: [CommonModule],
@@ -3116,7 +2923,8 @@ class DbxTextEditorFieldComponent extends FieldType$1 {
3116
2923
  _sub = new SubscriptionObject();
3117
2924
  compactClass$ = mapCompactModeObs(this._compactContextStore?.mode$, {
3118
2925
  compact: 'dbx-texteditor-field-compact'
3119
- });
2926
+ }).pipe(filterMaybe());
2927
+ compactClassSignal = toSignal(this.compactClass$, { initialValue: '' });
3120
2928
  get formGroupName() {
3121
2929
  return this.field.key;
3122
2930
  }
@@ -3134,9 +2942,11 @@ class DbxTextEditorFieldComponent extends FieldType$1 {
3134
2942
  }
3135
2943
  ngOnInit() {
3136
2944
  this._editor = new Editor({});
2945
+ // TODO: Sync disabled state too
2946
+ // TODO: Sync the value periodically while not focused too
3137
2947
  // Watch for value changes every second and update the pristine level.
3138
2948
  this._sub.subscription = this.editor.valueChanges
3139
- .pipe(debounceTime(100), filter(() => this.editor.view.hasFocus()))
2949
+ .pipe(debounceTime(50), filter(() => this.editor.view.hasFocus()))
3140
2950
  .subscribe(() => {
3141
2951
  this.formControl.updateValueAndValidity();
3142
2952
  this.formControl.markAsDirty();
@@ -3144,81 +2954,72 @@ class DbxTextEditorFieldComponent extends FieldType$1 {
3144
2954
  }
3145
2955
  ngOnDestroy() {
3146
2956
  super.ngOnDestroy();
3147
- if (this.editor) {
3148
- this.editor.destroy();
3149
- delete this._editor;
2957
+ if (this._editor != null) {
2958
+ this._editor.destroy();
3150
2959
  }
3151
2960
  this._sub.destroy();
3152
2961
  }
3153
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxTextEditorFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3154
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxTextEditorFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
3155
- <div class="dbx-texteditor-field" [ngClass]="(compactClass$ | async) ?? ''" [formGroup]="formGroup">
3156
- <span class="dbx-label" *ngIf="label">{{ label }}</span>
2962
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTextEditorFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2963
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxTextEditorFieldComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
2964
+ <div class="dbx-texteditor-field" [ngClass]="compactClassSignal()" [formGroup]="formGroup">
2965
+ @if (label) {
2966
+ <span class="dbx-label">{{ label }}</span>
2967
+ }
3157
2968
  <div class="dbx-texteditor-field-input">
3158
2969
  <ngx-editor [editor]="editor" outputFormat="html" [placeholder]="placeholder" [formControlName]="formGroupName"></ngx-editor>
3159
2970
  </div>
3160
2971
  <div class="dbx-texteditor-field-menu">
3161
2972
  <ngx-editor-menu [editor]="editor"></ngx-editor-menu>
3162
2973
  </div>
3163
- <div class="dbx-form-description" *ngIf="description">{{ description }}</div>
2974
+ @if (description) {
2975
+ <div class="dbx-form-description">{{ description }}</div>
2976
+ }
3164
2977
  </div>
3165
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3$1.NgxEditorComponent, selector: "ngx-editor", inputs: ["editor", "outputFormat", "placeholder"], outputs: ["focusOut", "focusIn"] }, { kind: "component", type: i3$1.MenuComponent, selector: "ngx-editor-menu", inputs: ["toolbar", "colorPresets", "disabled", "editor", "customMenuRef", "dropdownPlacement"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
2978
+ `, isInline: true, dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: NgxEditorModule }, { kind: "component", type: i1$4.NgxEditorComponent, selector: "ngx-editor", inputs: ["editor", "outputFormat", "placeholder"], outputs: ["focusOut", "focusIn"] }, { kind: "component", type: i1$4.MenuComponent, selector: "ngx-editor-menu", inputs: ["toolbar", "colorPresets", "disabled", "editor", "customMenuRef", "dropdownPlacement"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3166
2979
  }
3167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxTextEditorFieldComponent, decorators: [{
2980
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxTextEditorFieldComponent, decorators: [{
3168
2981
  type: Component,
3169
2982
  args: [{
3170
2983
  template: `
3171
- <div class="dbx-texteditor-field" [ngClass]="(compactClass$ | async) ?? ''" [formGroup]="formGroup">
3172
- <span class="dbx-label" *ngIf="label">{{ label }}</span>
2984
+ <div class="dbx-texteditor-field" [ngClass]="compactClassSignal()" [formGroup]="formGroup">
2985
+ @if (label) {
2986
+ <span class="dbx-label">{{ label }}</span>
2987
+ }
3173
2988
  <div class="dbx-texteditor-field-input">
3174
2989
  <ngx-editor [editor]="editor" outputFormat="html" [placeholder]="placeholder" [formControlName]="formGroupName"></ngx-editor>
3175
2990
  </div>
3176
2991
  <div class="dbx-texteditor-field-menu">
3177
2992
  <ngx-editor-menu [editor]="editor"></ngx-editor-menu>
3178
2993
  </div>
3179
- <div class="dbx-form-description" *ngIf="description">{{ description }}</div>
2994
+ @if (description) {
2995
+ <div class="dbx-form-description">{{ description }}</div>
2996
+ }
3180
2997
  </div>
3181
- `
2998
+ `,
2999
+ imports: [NgClass, NgxEditorModule, FormsModule, ReactiveFormsModule],
3000
+ changeDetection: ChangeDetectionStrategy.OnPush,
3001
+ standalone: true
3182
3002
  }]
3183
3003
  }] });
3184
3004
 
3005
+ const importsAndExports$1 = [DbxTextEditorFieldComponent];
3185
3006
  class DbxFormFormlyTextEditorFieldModule {
3186
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyTextEditorFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3187
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyTextEditorFieldModule, declarations: [DbxTextEditorFieldComponent], imports: [CommonModule,
3188
- DbxTextModule,
3189
- FormsModule,
3190
- ReactiveFormsModule,
3191
- NgxEditorModule,
3192
- MatFormFieldModule,
3193
- MatInputModule, i1$1.FormlyModule] });
3194
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyTextEditorFieldModule, imports: [CommonModule,
3195
- DbxTextModule,
3196
- FormsModule,
3197
- ReactiveFormsModule,
3198
- NgxEditorModule,
3199
- MatFormFieldModule,
3200
- MatInputModule,
3201
- FormlyModule.forChild({
3007
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyTextEditorFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3008
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyTextEditorFieldModule, imports: [DbxTextEditorFieldComponent, i1$2.FormlyModule], exports: [DbxTextEditorFieldComponent] });
3009
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyTextEditorFieldModule, imports: [importsAndExports$1, FormlyModule.forChild({
3202
3010
  types: [{ name: 'texteditor', component: DbxTextEditorFieldComponent }]
3203
3011
  })] });
3204
3012
  }
3205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyTextEditorFieldModule, decorators: [{
3013
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyTextEditorFieldModule, decorators: [{
3206
3014
  type: NgModule,
3207
3015
  args: [{
3208
3016
  imports: [
3209
- CommonModule,
3210
- DbxTextModule,
3211
- FormsModule,
3212
- ReactiveFormsModule,
3213
- NgxEditorModule,
3214
- MatFormFieldModule,
3215
- MatInputModule,
3017
+ ...importsAndExports$1,
3216
3018
  FormlyModule.forChild({
3217
3019
  types: [{ name: 'texteditor', component: DbxTextEditorFieldComponent }]
3218
3020
  })
3219
3021
  ],
3220
- declarations: [DbxTextEditorFieldComponent],
3221
- exports: []
3022
+ exports: importsAndExports$1
3222
3023
  }]
3223
3024
  }] });
3224
3025
 
@@ -3227,7 +3028,7 @@ function textEditorField(config) {
3227
3028
  const fieldConfig = formlyField({
3228
3029
  key,
3229
3030
  type: 'texteditor',
3230
- defaultValue: '',
3031
+ defaultValue: '', // Set to always get a string as a result.
3231
3032
  modelOptions: {
3232
3033
  // https://formly.dev/examples/validation/async-validation-update-on
3233
3034
  // Set to trigger value update on blurs with the form. However, the value is set internally too.
@@ -3322,9 +3123,6 @@ class DbxFormRepeatArrayTypeComponent extends FieldArrayType {
3322
3123
  return this.count < max;
3323
3124
  }
3324
3125
  }
3325
- trackByFunction = (i, x) => {
3326
- return x.key;
3327
- };
3328
3126
  /**
3329
3127
  * Moves the target index up one value.
3330
3128
  *
@@ -3375,38 +3173,48 @@ class DbxFormRepeatArrayTypeComponent extends FieldArrayType {
3375
3173
  fieldConfig
3376
3174
  });
3377
3175
  }
3378
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormRepeatArrayTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3379
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormRepeatArrayTypeComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
3176
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormRepeatArrayTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3177
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFormRepeatArrayTypeComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
3380
3178
  <div class="dbx-form-repeat-array">
3381
3179
  <dbx-subsection [header]="label" [hint]="description">
3382
3180
  <!-- Fields -->
3383
3181
  <div class="dbx-form-repeat-array-fields" cdkDropList [cdkDropListDisabled]="disableRearrange" (cdkDropListDropped)="drop($event)">
3384
- <div class="dbx-form-repeat-array-field" cdkDrag cdkDragLockAxis="y" *ngFor="let field of field.fieldGroup; trackBy: trackByFunction; let i = index; let last = last">
3385
- <div class="dbx-form-repeat-array-drag-placeholder" *cdkDragPlaceholder></div>
3386
- <dbx-bar class="dbx-form-repeat-array-bar dbx-bar-fixed-height">
3387
- <button class="dbx-form-repeat-array-drag-button" *ngIf="!disableRearrange" cdkDragHandle mat-stroked-button><mat-icon>drag_handle</mat-icon></button>
3388
- <dbx-button-spacer></dbx-button-spacer>
3389
- <h4>
3390
- <span class="repeat-array-number">{{ i + 1 }}</span>
3391
- <span>{{ labelForItem(field, i) }}</span>
3392
- </h4>
3393
- <span class="dbx-spacer"></span>
3394
- <dbx-button *ngIf="allowDuplicate(i)" [stroked]="true" [text]="duplicateText" (buttonClick)="duplicate(i)"></dbx-button>
3395
- <dbx-button-spacer></dbx-button-spacer>
3396
- <dbx-button *ngIf="allowRemove(i)" color="warn" [stroked]="true" [text]="removeText" (buttonClick)="remove(i)"></dbx-button>
3397
- </dbx-bar>
3398
- <formly-field class="dbx-form-repeat-array-field-content" [field]="field"></formly-field>
3399
- </div>
3182
+ @for (field of field.fieldGroup; track field.key; let i = $index; let last = $last) {
3183
+ <div class="dbx-form-repeat-array-field" cdkDrag cdkDragLockAxis="y">
3184
+ <div class="dbx-form-repeat-array-drag-placeholder" *cdkDragPlaceholder></div>
3185
+ <dbx-bar class="dbx-form-repeat-array-bar dbx-bar-fixed-height">
3186
+ @if (!disableRearrange) {
3187
+ <button class="dbx-form-repeat-array-drag-button" cdkDragHandle mat-stroked-button><mat-icon>drag_handle</mat-icon></button>
3188
+ <dbx-button-spacer></dbx-button-spacer>
3189
+ }
3190
+ <h4>
3191
+ <span class="repeat-array-number">{{ i + 1 }}</span>
3192
+ <span>{{ labelForItem(field, i) }}</span>
3193
+ </h4>
3194
+ <span class="dbx-spacer"></span>
3195
+ @if (allowDuplicate(i)) {
3196
+ <dbx-button [stroked]="true" [text]="duplicateText" (buttonClick)="duplicate(i)"></dbx-button>
3197
+ <dbx-button-spacer></dbx-button-spacer>
3198
+ }
3199
+ @if (allowRemove(i)) {
3200
+ <dbx-button color="warn" [stroked]="true" [text]="removeText" (buttonClick)="remove(i)"></dbx-button>
3201
+ }
3202
+ </dbx-bar>
3203
+ <formly-field class="dbx-form-repeat-array-field-content" [field]="field"></formly-field>
3204
+ </div>
3205
+ }
3400
3206
  </div>
3401
3207
  <!-- Add Button -->
3402
3208
  <div class="dbx-form-repeat-array-footer">
3403
- <dbx-button *ngIf="allowAdd" [raised]="true" [disabled]="addItemDisabled" [text]="addText" (buttonClick)="addClicked()"></dbx-button>
3209
+ @if (allowAdd) {
3210
+ <dbx-button [raised]="true" [disabled]="addItemDisabled" [text]="addText" (buttonClick)="addClicked()"></dbx-button>
3211
+ }
3404
3212
  </div>
3405
3213
  </dbx-subsection>
3406
3214
  </div>
3407
- `, isInline: true, dependencies: [{ 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: i6$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4$4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i4$4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i4$4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i4$4.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "component", type: i5.DbxSubSectionComponent, selector: "dbx-subsection" }, { kind: "directive", type: i5.DbxBarDirective, selector: "dbx-bar,[dbxBar]", inputs: ["color"] }, { kind: "component", type: i5.DbxButtonComponent, selector: "dbx-button", inputs: ["type", "basic", "raised", "stroked", "flat", "iconOnly", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor"] }, { kind: "directive", type: i5.DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: i1$1.FormlyField, selector: "formly-field", inputs: ["field"] }] });
3215
+ `, isInline: true, dependencies: [{ kind: "component", type: DbxSubSectionComponent, selector: "dbx-subsection" }, { kind: "directive", type: DbxBarDirective, selector: "dbx-bar,[dbxBar]", inputs: ["color"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1$2.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i2$4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$4.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i2$4.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3408
3216
  }
3409
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormRepeatArrayTypeComponent, decorators: [{
3217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormRepeatArrayTypeComponent, decorators: [{
3410
3218
  type: Component,
3411
3219
  args: [{
3412
3220
  template: `
@@ -3414,79 +3222,64 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
3414
3222
  <dbx-subsection [header]="label" [hint]="description">
3415
3223
  <!-- Fields -->
3416
3224
  <div class="dbx-form-repeat-array-fields" cdkDropList [cdkDropListDisabled]="disableRearrange" (cdkDropListDropped)="drop($event)">
3417
- <div class="dbx-form-repeat-array-field" cdkDrag cdkDragLockAxis="y" *ngFor="let field of field.fieldGroup; trackBy: trackByFunction; let i = index; let last = last">
3418
- <div class="dbx-form-repeat-array-drag-placeholder" *cdkDragPlaceholder></div>
3419
- <dbx-bar class="dbx-form-repeat-array-bar dbx-bar-fixed-height">
3420
- <button class="dbx-form-repeat-array-drag-button" *ngIf="!disableRearrange" cdkDragHandle mat-stroked-button><mat-icon>drag_handle</mat-icon></button>
3421
- <dbx-button-spacer></dbx-button-spacer>
3422
- <h4>
3423
- <span class="repeat-array-number">{{ i + 1 }}</span>
3424
- <span>{{ labelForItem(field, i) }}</span>
3425
- </h4>
3426
- <span class="dbx-spacer"></span>
3427
- <dbx-button *ngIf="allowDuplicate(i)" [stroked]="true" [text]="duplicateText" (buttonClick)="duplicate(i)"></dbx-button>
3428
- <dbx-button-spacer></dbx-button-spacer>
3429
- <dbx-button *ngIf="allowRemove(i)" color="warn" [stroked]="true" [text]="removeText" (buttonClick)="remove(i)"></dbx-button>
3430
- </dbx-bar>
3431
- <formly-field class="dbx-form-repeat-array-field-content" [field]="field"></formly-field>
3432
- </div>
3225
+ @for (field of field.fieldGroup; track field.key; let i = $index; let last = $last) {
3226
+ <div class="dbx-form-repeat-array-field" cdkDrag cdkDragLockAxis="y">
3227
+ <div class="dbx-form-repeat-array-drag-placeholder" *cdkDragPlaceholder></div>
3228
+ <dbx-bar class="dbx-form-repeat-array-bar dbx-bar-fixed-height">
3229
+ @if (!disableRearrange) {
3230
+ <button class="dbx-form-repeat-array-drag-button" cdkDragHandle mat-stroked-button><mat-icon>drag_handle</mat-icon></button>
3231
+ <dbx-button-spacer></dbx-button-spacer>
3232
+ }
3233
+ <h4>
3234
+ <span class="repeat-array-number">{{ i + 1 }}</span>
3235
+ <span>{{ labelForItem(field, i) }}</span>
3236
+ </h4>
3237
+ <span class="dbx-spacer"></span>
3238
+ @if (allowDuplicate(i)) {
3239
+ <dbx-button [stroked]="true" [text]="duplicateText" (buttonClick)="duplicate(i)"></dbx-button>
3240
+ <dbx-button-spacer></dbx-button-spacer>
3241
+ }
3242
+ @if (allowRemove(i)) {
3243
+ <dbx-button color="warn" [stroked]="true" [text]="removeText" (buttonClick)="remove(i)"></dbx-button>
3244
+ }
3245
+ </dbx-bar>
3246
+ <formly-field class="dbx-form-repeat-array-field-content" [field]="field"></formly-field>
3247
+ </div>
3248
+ }
3433
3249
  </div>
3434
3250
  <!-- Add Button -->
3435
3251
  <div class="dbx-form-repeat-array-footer">
3436
- <dbx-button *ngIf="allowAdd" [raised]="true" [disabled]="addItemDisabled" [text]="addText" (buttonClick)="addClicked()"></dbx-button>
3252
+ @if (allowAdd) {
3253
+ <dbx-button [raised]="true" [disabled]="addItemDisabled" [text]="addText" (buttonClick)="addClicked()"></dbx-button>
3254
+ }
3437
3255
  </div>
3438
3256
  </dbx-subsection>
3439
3257
  </div>
3440
- `
3258
+ `,
3259
+ imports: [DbxSubSectionComponent, DbxBarDirective, DbxButtonComponent, FormlyModule, DragDropModule, MatIconModule, DbxButtonSpacerDirective, MatFormFieldModule, FormsModule, ReactiveFormsModule],
3260
+ changeDetection: ChangeDetectionStrategy.OnPush,
3261
+ standalone: true
3441
3262
  }]
3442
3263
  }] });
3443
3264
 
3265
+ const importsAndExports = [DbxFormRepeatArrayTypeComponent];
3444
3266
  class DbxFormFormlyArrayFieldModule {
3445
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyArrayFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3446
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyArrayFieldModule, declarations: [DbxFormRepeatArrayTypeComponent], imports: [CommonModule,
3447
- MatFormFieldModule,
3448
- ReactiveFormsModule,
3449
- MatDividerModule,
3450
- MatButtonModule,
3451
- MatIconModule,
3452
- DragDropModule,
3453
- DbxSectionLayoutModule,
3454
- DbxBarLayoutModule,
3455
- DbxButtonModule, i1$1.FormlyModule] });
3456
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyArrayFieldModule, imports: [CommonModule,
3457
- MatFormFieldModule,
3458
- ReactiveFormsModule,
3459
- MatDividerModule,
3460
- MatButtonModule,
3461
- MatIconModule,
3462
- DragDropModule,
3463
- DbxSectionLayoutModule,
3464
- DbxBarLayoutModule,
3465
- DbxButtonModule,
3466
- FormlyModule.forChild({
3267
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyArrayFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3268
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyArrayFieldModule, imports: [DbxFormRepeatArrayTypeComponent, i1$2.FormlyModule], exports: [DbxFormRepeatArrayTypeComponent] });
3269
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyArrayFieldModule, imports: [importsAndExports, FormlyModule.forChild({
3467
3270
  types: [{ name: 'repeatarray', component: DbxFormRepeatArrayTypeComponent }]
3468
3271
  })] });
3469
3272
  }
3470
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyArrayFieldModule, decorators: [{
3273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyArrayFieldModule, decorators: [{
3471
3274
  type: NgModule,
3472
3275
  args: [{
3473
3276
  imports: [
3474
- CommonModule,
3475
- MatFormFieldModule,
3476
- ReactiveFormsModule,
3477
- MatDividerModule,
3478
- MatButtonModule,
3479
- MatIconModule,
3480
- DragDropModule,
3481
- DbxSectionLayoutModule,
3482
- DbxBarLayoutModule,
3483
- DbxButtonModule,
3277
+ ...importsAndExports,
3484
3278
  FormlyModule.forChild({
3485
3279
  types: [{ name: 'repeatarray', component: DbxFormRepeatArrayTypeComponent }]
3486
3280
  })
3487
3281
  ],
3488
- declarations: [DbxFormRepeatArrayTypeComponent],
3489
- exports: []
3282
+ exports: importsAndExports
3490
3283
  }]
3491
3284
  }] });
3492
3285
 
@@ -3517,11 +3310,11 @@ function repeatArrayField(config) {
3517
3310
  }
3518
3311
 
3519
3312
  class DbxFormFormlyBooleanFieldModule {
3520
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyBooleanFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3521
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyBooleanFieldModule });
3522
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyBooleanFieldModule });
3313
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyBooleanFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3314
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyBooleanFieldModule });
3315
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyBooleanFieldModule });
3523
3316
  }
3524
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyBooleanFieldModule, decorators: [{
3317
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyBooleanFieldModule, decorators: [{
3525
3318
  type: NgModule,
3526
3319
  args: [{
3527
3320
  imports: [],
@@ -3536,7 +3329,7 @@ function toggleField(config) {
3536
3329
  return formlyField({
3537
3330
  key,
3538
3331
  type: 'toggle',
3539
- wrappers: [AUTO_TOUCH_WRAPPER_KEY, STYLE_WRAPPER_KEY, 'form-field'],
3332
+ wrappers: [AUTO_TOUCH_WRAPPER_KEY, STYLE_WRAPPER_KEY, 'form-field'], // NOTE: Must specify form-field if other wrapper specified, otherwise it will not be used.
3540
3333
  defaultValue: defaultValue ?? false,
3541
3334
  ...propsAndConfigForFieldConfig(config, {
3542
3335
  classGetter,
@@ -3614,10 +3407,10 @@ class DbxDateTimeFieldMenuPresetsService {
3614
3407
  set configurations(configurations) {
3615
3408
  this._configurations.next(configurations);
3616
3409
  }
3617
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxDateTimeFieldMenuPresetsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3618
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxDateTimeFieldMenuPresetsService, providedIn: 'root' });
3410
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxDateTimeFieldMenuPresetsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3411
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxDateTimeFieldMenuPresetsService, providedIn: 'root' });
3619
3412
  }
3620
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxDateTimeFieldMenuPresetsService, decorators: [{
3413
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxDateTimeFieldMenuPresetsService, decorators: [{
3621
3414
  type: Injectable,
3622
3415
  args: [{
3623
3416
  providedIn: 'root'
@@ -3917,7 +3710,7 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
3917
3710
  return DbxDateTimeFieldTimeMode.NONE;
3918
3711
  }
3919
3712
  else {
3920
- return this.timeOnly ? DbxDateTimeFieldTimeMode.REQUIRED : this.dateTimeField.timeMode ?? DbxDateTimeFieldTimeMode.REQUIRED;
3713
+ return this.timeOnly ? DbxDateTimeFieldTimeMode.REQUIRED : (this.dateTimeField.timeMode ?? DbxDateTimeFieldTimeMode.REQUIRED);
3921
3714
  }
3922
3715
  }
3923
3716
  get isDateRequired() {
@@ -4027,7 +3820,7 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
4027
3820
  }
4028
3821
  return result;
4029
3822
  }), distinctUntilChanged(isSameDateHoursAndMinutes), shareReplay(1));
4030
- dateTimePickerConfig$ = combineLatest([this._config.pipe(switchMapMaybeObs()), this.syncConfigBeforeValue$, this.syncConfigAfterValue$]).pipe(map(([x, dateInputMin, dateInputMax]) => {
3823
+ dateTimePickerConfig$ = combineLatest([this._config.pipe(switchMapFilterMaybe()), this.syncConfigBeforeValue$, this.syncConfigAfterValue$]).pipe(map(([x, dateInputMin, dateInputMax]) => {
4031
3824
  let result = x;
4032
3825
  if (dateInputMin != null || dateInputMax != null) {
4033
3826
  const { min: limitMin, max: limitMax } = x?.limits ?? {};
@@ -4087,7 +3880,7 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
4087
3880
  });
4088
3881
  }), shareReplay(1));
4089
3882
  hasEmptyDisplayValue$ = this.displayValue$.pipe(map((x) => !x), distinctUntilChanged(), shareReplay(1));
4090
- presets$ = this._presets.pipe(switchMapMaybeObs(), map((x) => x.map(dateTimePreset)), shareReplay(1));
3883
+ presets$ = this._presets.pipe(switchMapFilterMaybe(), map((x) => x.map(dateTimePreset)), shareReplay(1));
4091
3884
  showClearButton$ = this.hasEmptyDisplayValue$.pipe(map((x) => Boolean(this.showClearButton && !x)), distinctUntilChanged(), shareReplay(1));
4092
3885
  canAutofillDateWithOnlyAvailableDate$ = this.dateMinAndMaxIsSameDay$;
4093
3886
  showDateInput$ = this.dateMinAndMaxIsSameDay$.pipe(map((dateMinAndMaxIsSameDay) => {
@@ -4391,10 +4184,10 @@ class DbxDateTimeFieldComponent extends FieldType$1 {
4391
4184
  clearValue() {
4392
4185
  this._cleared.next();
4393
4186
  }
4394
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxDateTimeFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4395
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxDateTimeFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-datetime-field\" fxLayout=\"row wrap\" fxLayout.xs=\"column wrap\" fxLayoutGap=\"6px grid\" fxLayoutAlign=\"space-evenly stretch\">\n <!-- Date -->\n <div class=\"dbx-datetime-row\" fxFlex.lt-sm=\"100\" [fxFlex]=\"dateOnly ? '100' : '50'\" *ngIf=\"showDateInput$ | async\">\n <ng-container *ngTemplateOutlet=\"dateInputTemplate\"></ng-container>\n </div>\n <!-- Time -->\n <div class=\"dbx-datetime-row\" fxFlex.lt-sm=\"100\" [fxFlex]=\"(showDateInput$ | async) ? '50' : '100'\">\n <ng-container *ngIf=\"showTimeInput$ | async\">\n <ng-container *ngTemplateOutlet=\"timeMenuAndInputTemplate\"></ng-container>\n </ng-container>\n <div *ngIf=\"showAddTime$ | async\" class=\"add-time-button-wrapper\">\n <button mat-button class=\"mat-datepicker-button-highlight dbx-button-spacer add-time-button\" ngClass.lt-sm=\"add-time-button-full\" (click)=\"addTime()\">\n <mat-icon>timer</mat-icon>\n Add Time\n </button>\n </div>\n </div>\n <!-- Date Hint -->\n <ng-container [ngSwitch]=\"hasError$ | async\">\n <ng-container *ngSwitchCase=\"false\">\n <div *ngIf=\"!hideDateHint\" class=\"dbx-datetime-row dbx-datetime-hint-row\" fxFlex=\"100\">\n <div class=\"dbx-hint\">\n <ng-container [ngSwitch]=\"hasEmptyDisplayValue$ | async\">\n <ng-container *ngSwitchCase=\"true\">\n <span class=\"dbx-small\">No date/time set</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"false\">\n <ng-container [ngSwitch]=\"fullDay$ | async\">\n <small *ngSwitchCase=\"true\">\n <b class=\"dbx-ok\">{{ allDayLabel }}</b>\n {{ displayValue$ | async | date: 'fullDate' }} {{ timezoneAbbreviation$ | async }} ({{ displayValue$ | async | dateDistance }})\n </small>\n <small *ngSwitchCase=\"false\">\n <ng-container *ngIf=\"displayValue$ | async\">\n <b class=\"dbx-ok\">{{ atTimeLabel }}</b>\n {{ displayValue$ | async | date: 'medium' }} {{ timezoneAbbreviation$ | async }} ({{ displayValue$ | async | timeDistance }})\n </ng-container>\n </small>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"true\">\n <mat-error *ngIf=\"currentErrorMessage$ | async\">{{ currentErrorMessage$ | async }}</mat-error>\n </ng-container>\n </ng-container>\n</div>\n\n<!-- Date Input Template -->\n<ng-template #dateInputTemplate>\n <mat-form-field class=\"dbx-datetime-row-field\">\n <mat-label>{{ dateLabel }}</mat-label>\n <input #dateInput matInput [disabled]=\"disabled\" [required]=\"isDateRequired\" [min]=\"dateInputMin$ | async\" [max]=\"dateInputMax$ | async\" [matDatepicker]=\"picker\" [matDatepickerFilter]=\"(pickerFilter$ | async) || defaultPickerFilter\" (dateChange)=\"datePicked($event)\" [value]=\"dateValue$ | async\" (keydown)=\"keydownOnDateInput($event)\" />\n <mat-datepicker #picker></mat-datepicker>\n <button matPrefix class=\"dbx-datetime-row-button\" *ngIf=\"!hideDatePicker\" mat-icon-button (click)=\"picker.open()\" [disabled]=\"disabled\">\n <mat-icon>calendar_today</mat-icon>\n </button>\n <button matSuffix *ngIf=\"showClearButton$ | async\" class=\"dbx-datetime-clear-button\" mat-icon-button aria-label=\"clears the date and time menu\" [disabled]=\"disabled\" (click)=\"clearValue()\">\n <mat-icon>clear</mat-icon>\n </button>\n <span matTextSuffix *ngIf=\"!(showTimeInput$ | async)\">\n <ng-container *ngTemplateOutlet=\"timezoneSuffixTemplate\"></ng-container>\n </span>\n </mat-form-field>\n</ng-template>\n\n<!-- Time Menu/Input Template -->\n<ng-template #timeMenuAndInputTemplate>\n <mat-menu #timemenu=\"matMenu\">\n <ng-container *ngIf=\"timeMode === 'optional'\">\n <button mat-menu-item (click)=\"removeTime()\">\n <span>Remove Time</span>\n </button>\n <mat-divider></mat-divider>\n </ng-container>\n <ng-container *ngFor=\"let preset of presets$ | async\">\n <button mat-menu-item (click)=\"selectPreset(preset)\">{{ preset.label | getValue }}</button>\n </ng-container>\n </mat-menu>\n <mat-form-field class=\"dbx-datetime-row-field\">\n <mat-label>{{ timeLabel }}</mat-label>\n <input #timeInput [errorStateMatcher]=\"timeErrorStateMatcher\" matInput [required]=\"isTimeRequired\" [formControl]=\"timeInputCtrl\" (focus)=\"focusTime()\" (focusout)=\"focusOutTime()\" (keydown)=\"keydownOnTimeInput($event)\" />\n <button matPrefix class=\"dbx-datetime-row-button\" mat-icon-button [matMenuTriggerFor]=\"timemenu\" aria-label=\"opens the time menu\" [disabled]=\"disabled\">\n <mat-icon>timer</mat-icon>\n </button>\n <span matTextSuffix>\n <ng-container *ngTemplateOutlet=\"timezoneSuffixTemplate\"></ng-container>\n </span>\n <mat-error *ngIf=\"timeInputCtrl.hasError('pattern')\">The input time is not recognizable.</mat-error>\n </mat-form-field>\n</ng-template>\n\n<!-- Timezone Suffix -->\n<ng-template #timezoneSuffixTemplate>\n <span *ngIf=\"showTimezone\" class=\"dbx-datetime-timezone dbx-faint\">{{ timezoneAbbreviation$ | async }}</span>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4$2.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: "component", type: i4$5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4$5.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4$5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i5$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i6$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6$1.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4$6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4$6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i10.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i10.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i10.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i2$2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i6.DateDistancePipe, name: "dateDistance" }, { kind: "pipe", type: i6.TimeDistancePipe, name: "timeDistance" }, { kind: "pipe", type: i6.GetValuePipe, name: "getValue" }] });
4187
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxDateTimeFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4188
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxDateTimeFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-datetime-field\" fxLayout=\"row wrap\" fxLayout.xs=\"column wrap\" fxLayoutGap=\"6px grid\" fxLayoutAlign=\"space-evenly stretch\">\n <!-- Date -->\n <div class=\"dbx-datetime-row\" fxFlex.lt-sm=\"100\" [fxFlex]=\"dateOnly ? '100' : '50'\" *ngIf=\"showDateInput$ | async\">\n <ng-container *ngTemplateOutlet=\"dateInputTemplate\"></ng-container>\n </div>\n <!-- Time -->\n <div class=\"dbx-datetime-row\" fxFlex.lt-sm=\"100\" [fxFlex]=\"(showDateInput$ | async) ? '50' : '100'\">\n <ng-container *ngIf=\"showTimeInput$ | async\">\n <ng-container *ngTemplateOutlet=\"timeMenuAndInputTemplate\"></ng-container>\n </ng-container>\n <div *ngIf=\"showAddTime$ | async\" class=\"add-time-button-wrapper\">\n <button mat-button class=\"mat-datepicker-button-highlight dbx-button-spacer add-time-button\" ngClass.lt-sm=\"add-time-button-full\" (click)=\"addTime()\">\n <mat-icon>timer</mat-icon>\n Add Time\n </button>\n </div>\n </div>\n <!-- Date Hint -->\n <ng-container [ngSwitch]=\"hasError$ | async\">\n <ng-container *ngSwitchCase=\"false\">\n <div *ngIf=\"!hideDateHint\" class=\"dbx-datetime-row dbx-datetime-hint-row\" fxFlex=\"100\">\n <div class=\"dbx-hint\">\n <ng-container [ngSwitch]=\"hasEmptyDisplayValue$ | async\">\n <ng-container *ngSwitchCase=\"true\">\n <span class=\"dbx-small\">No date/time set</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"false\">\n <ng-container [ngSwitch]=\"fullDay$ | async\">\n <small *ngSwitchCase=\"true\">\n <b class=\"dbx-ok\">{{ allDayLabel }}</b>\n {{ displayValue$ | async | date: 'fullDate' }} {{ timezoneAbbreviation$ | async }} ({{ displayValue$ | async | dateDistance }})\n </small>\n <small *ngSwitchCase=\"false\">\n <ng-container *ngIf=\"displayValue$ | async\">\n <b class=\"dbx-ok\">{{ atTimeLabel }}</b>\n {{ displayValue$ | async | date: 'medium' }} {{ timezoneAbbreviation$ | async }} ({{ displayValue$ | async | timeDistance }})\n </ng-container>\n </small>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"true\">\n <mat-error *ngIf=\"currentErrorMessage$ | async\">{{ currentErrorMessage$ | async }}</mat-error>\n </ng-container>\n </ng-container>\n</div>\n\n<!-- Date Input Template -->\n<ng-template #dateInputTemplate>\n <mat-form-field class=\"dbx-datetime-row-field\">\n <mat-label>{{ dateLabel }}</mat-label>\n <input #dateInput matInput [disabled]=\"disabled\" [required]=\"isDateRequired\" [min]=\"dateInputMin$ | async\" [max]=\"dateInputMax$ | async\" [matDatepicker]=\"picker\" [matDatepickerFilter]=\"(pickerFilter$ | async) || defaultPickerFilter\" (dateChange)=\"datePicked($event)\" [value]=\"dateValue$ | async\" (keydown)=\"keydownOnDateInput($event)\" />\n <mat-datepicker #picker></mat-datepicker>\n <button matPrefix class=\"dbx-datetime-row-button\" *ngIf=\"!hideDatePicker\" mat-icon-button (click)=\"picker.open()\" [disabled]=\"disabled\">\n <mat-icon>calendar_today</mat-icon>\n </button>\n <button matSuffix *ngIf=\"showClearButton$ | async\" class=\"dbx-datetime-clear-button\" mat-icon-button aria-label=\"clears the date and time menu\" [disabled]=\"disabled\" (click)=\"clearValue()\">\n <mat-icon>clear</mat-icon>\n </button>\n <span matTextSuffix *ngIf=\"!(showTimeInput$ | async)\">\n <ng-container *ngTemplateOutlet=\"timezoneSuffixTemplate\"></ng-container>\n </span>\n </mat-form-field>\n</ng-template>\n\n<!-- Time Menu/Input Template -->\n<ng-template #timeMenuAndInputTemplate>\n <mat-menu #timemenu=\"matMenu\">\n <ng-container *ngIf=\"timeMode === 'optional'\">\n <button mat-menu-item (click)=\"removeTime()\">\n <span>Remove Time</span>\n </button>\n <mat-divider></mat-divider>\n </ng-container>\n <ng-container *ngFor=\"let preset of presets$ | async\">\n <button mat-menu-item (click)=\"selectPreset(preset)\">{{ preset.label | getValue }}</button>\n </ng-container>\n </mat-menu>\n <mat-form-field class=\"dbx-datetime-row-field\">\n <mat-label>{{ timeLabel }}</mat-label>\n <input #timeInput [errorStateMatcher]=\"timeErrorStateMatcher\" matInput [required]=\"isTimeRequired\" [formControl]=\"timeInputCtrl\" (focus)=\"focusTime()\" (focusout)=\"focusOutTime()\" (keydown)=\"keydownOnTimeInput($event)\" />\n <button matPrefix class=\"dbx-datetime-row-button\" mat-icon-button [matMenuTriggerFor]=\"timemenu\" aria-label=\"opens the time menu\" [disabled]=\"disabled\">\n <mat-icon>timer</mat-icon>\n </button>\n <span matTextSuffix>\n <ng-container *ngTemplateOutlet=\"timezoneSuffixTemplate\"></ng-container>\n </span>\n <mat-error *ngIf=\"timeInputCtrl.hasError('pattern')\">The input time is not recognizable.</mat-error>\n </mat-form-field>\n</ng-template>\n\n<!-- Timezone Suffix -->\n<ng-template #timezoneSuffixTemplate>\n <span *ngIf=\"showTimezone\" class=\"dbx-datetime-timezone dbx-faint\">{{ timezoneAbbreviation$ | async }}</span>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1$5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { 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: "component", type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4$1.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i4$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i2$2.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i4$2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4$2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i8.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i8.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i8.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i10.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i10.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i10.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i10.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i11.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "pipe", type: i1$5.AsyncPipe, name: "async" }, { kind: "pipe", type: i1$5.DatePipe, name: "date" }, { kind: "pipe", type: i2$3.DateDistancePipe, name: "dateDistance" }, { kind: "pipe", type: i2$3.TimeDistancePipe, name: "timeDistance" }, { kind: "pipe", type: i2$3.GetValuePipe, name: "getValue" }] });
4396
4189
  }
4397
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxDateTimeFieldComponent, decorators: [{
4190
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxDateTimeFieldComponent, decorators: [{
4398
4191
  type: Component,
4399
4192
  args: [{ template: "<div class=\"dbx-datetime-field\" fxLayout=\"row wrap\" fxLayout.xs=\"column wrap\" fxLayoutGap=\"6px grid\" fxLayoutAlign=\"space-evenly stretch\">\n <!-- Date -->\n <div class=\"dbx-datetime-row\" fxFlex.lt-sm=\"100\" [fxFlex]=\"dateOnly ? '100' : '50'\" *ngIf=\"showDateInput$ | async\">\n <ng-container *ngTemplateOutlet=\"dateInputTemplate\"></ng-container>\n </div>\n <!-- Time -->\n <div class=\"dbx-datetime-row\" fxFlex.lt-sm=\"100\" [fxFlex]=\"(showDateInput$ | async) ? '50' : '100'\">\n <ng-container *ngIf=\"showTimeInput$ | async\">\n <ng-container *ngTemplateOutlet=\"timeMenuAndInputTemplate\"></ng-container>\n </ng-container>\n <div *ngIf=\"showAddTime$ | async\" class=\"add-time-button-wrapper\">\n <button mat-button class=\"mat-datepicker-button-highlight dbx-button-spacer add-time-button\" ngClass.lt-sm=\"add-time-button-full\" (click)=\"addTime()\">\n <mat-icon>timer</mat-icon>\n Add Time\n </button>\n </div>\n </div>\n <!-- Date Hint -->\n <ng-container [ngSwitch]=\"hasError$ | async\">\n <ng-container *ngSwitchCase=\"false\">\n <div *ngIf=\"!hideDateHint\" class=\"dbx-datetime-row dbx-datetime-hint-row\" fxFlex=\"100\">\n <div class=\"dbx-hint\">\n <ng-container [ngSwitch]=\"hasEmptyDisplayValue$ | async\">\n <ng-container *ngSwitchCase=\"true\">\n <span class=\"dbx-small\">No date/time set</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"false\">\n <ng-container [ngSwitch]=\"fullDay$ | async\">\n <small *ngSwitchCase=\"true\">\n <b class=\"dbx-ok\">{{ allDayLabel }}</b>\n {{ displayValue$ | async | date: 'fullDate' }} {{ timezoneAbbreviation$ | async }} ({{ displayValue$ | async | dateDistance }})\n </small>\n <small *ngSwitchCase=\"false\">\n <ng-container *ngIf=\"displayValue$ | async\">\n <b class=\"dbx-ok\">{{ atTimeLabel }}</b>\n {{ displayValue$ | async | date: 'medium' }} {{ timezoneAbbreviation$ | async }} ({{ displayValue$ | async | timeDistance }})\n </ng-container>\n </small>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"true\">\n <mat-error *ngIf=\"currentErrorMessage$ | async\">{{ currentErrorMessage$ | async }}</mat-error>\n </ng-container>\n </ng-container>\n</div>\n\n<!-- Date Input Template -->\n<ng-template #dateInputTemplate>\n <mat-form-field class=\"dbx-datetime-row-field\">\n <mat-label>{{ dateLabel }}</mat-label>\n <input #dateInput matInput [disabled]=\"disabled\" [required]=\"isDateRequired\" [min]=\"dateInputMin$ | async\" [max]=\"dateInputMax$ | async\" [matDatepicker]=\"picker\" [matDatepickerFilter]=\"(pickerFilter$ | async) || defaultPickerFilter\" (dateChange)=\"datePicked($event)\" [value]=\"dateValue$ | async\" (keydown)=\"keydownOnDateInput($event)\" />\n <mat-datepicker #picker></mat-datepicker>\n <button matPrefix class=\"dbx-datetime-row-button\" *ngIf=\"!hideDatePicker\" mat-icon-button (click)=\"picker.open()\" [disabled]=\"disabled\">\n <mat-icon>calendar_today</mat-icon>\n </button>\n <button matSuffix *ngIf=\"showClearButton$ | async\" class=\"dbx-datetime-clear-button\" mat-icon-button aria-label=\"clears the date and time menu\" [disabled]=\"disabled\" (click)=\"clearValue()\">\n <mat-icon>clear</mat-icon>\n </button>\n <span matTextSuffix *ngIf=\"!(showTimeInput$ | async)\">\n <ng-container *ngTemplateOutlet=\"timezoneSuffixTemplate\"></ng-container>\n </span>\n </mat-form-field>\n</ng-template>\n\n<!-- Time Menu/Input Template -->\n<ng-template #timeMenuAndInputTemplate>\n <mat-menu #timemenu=\"matMenu\">\n <ng-container *ngIf=\"timeMode === 'optional'\">\n <button mat-menu-item (click)=\"removeTime()\">\n <span>Remove Time</span>\n </button>\n <mat-divider></mat-divider>\n </ng-container>\n <ng-container *ngFor=\"let preset of presets$ | async\">\n <button mat-menu-item (click)=\"selectPreset(preset)\">{{ preset.label | getValue }}</button>\n </ng-container>\n </mat-menu>\n <mat-form-field class=\"dbx-datetime-row-field\">\n <mat-label>{{ timeLabel }}</mat-label>\n <input #timeInput [errorStateMatcher]=\"timeErrorStateMatcher\" matInput [required]=\"isTimeRequired\" [formControl]=\"timeInputCtrl\" (focus)=\"focusTime()\" (focusout)=\"focusOutTime()\" (keydown)=\"keydownOnTimeInput($event)\" />\n <button matPrefix class=\"dbx-datetime-row-button\" mat-icon-button [matMenuTriggerFor]=\"timemenu\" aria-label=\"opens the time menu\" [disabled]=\"disabled\">\n <mat-icon>timer</mat-icon>\n </button>\n <span matTextSuffix>\n <ng-container *ngTemplateOutlet=\"timezoneSuffixTemplate\"></ng-container>\n </span>\n <mat-error *ngIf=\"timeInputCtrl.hasError('pattern')\">The input time is not recognizable.</mat-error>\n </mat-form-field>\n</ng-template>\n\n<!-- Timezone Suffix -->\n<ng-template #timezoneSuffixTemplate>\n <span *ngIf=\"showTimezone\" class=\"dbx-datetime-timezone dbx-faint\">{{ timezoneAbbreviation$ | async }}</span>\n</ng-template>\n" }]
4400
4193
  }] });
@@ -4831,15 +4624,15 @@ class DbxFixedDateRangeFieldComponent extends FieldType$1 {
4831
4624
  _createDateRange(date) {
4832
4625
  return date ? dateRange({ ...this._currentDateRangeInput, date }) : undefined;
4833
4626
  }
4834
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFixedDateRangeFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4835
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFixedDateRangeFieldComponent, selector: "ng-component", providers: [
4627
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFixedDateRangeFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4628
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxFixedDateRangeFieldComponent, selector: "ng-component", providers: [
4836
4629
  {
4837
4630
  provide: MAT_DATE_RANGE_SELECTION_STRATEGY,
4838
4631
  useClass: forwardRef(() => DbxFixedDateRangeFieldSelectionStrategy)
4839
4632
  }
4840
- ], viewQueries: [{ propertyName: "calendar", first: true, predicate: MatCalendar, descendants: true }, { propertyName: "startDateInputElement", first: true, predicate: ["startDateInput"], descendants: true, read: ElementRef }, { propertyName: "endDateInputElement", first: true, predicate: ["endDateInput"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-fixeddaterange-field\">\n <mat-calendar #calendarView [selected]=\"calendarSelection$ | async\" [dateFilter]=\"(pickerFilter$ | async) || defaultPickerFilter\" [minDate]=\"min$ | async\" [maxDate]=\"max$ | async\" (selectedChange)=\"selectedChange($event)\"></mat-calendar>\n <mat-form-field class=\"dbx-fixeddaterange-field-input\" appearance=\"fill\">\n <mat-date-range-input *ngIf=\"showRangeInput\" [formGroup]=\"inputRangeForm\">\n <input #startDateInput matStartDate formControlName=\"start\" placeholder=\"Start date\" />\n <input #endDateInput [ngClass]=\"(endDisabled$ | async) ? 'dbx-fixeddaterange-field-input-end' : ''\" [attr.tabindex]=\"(endDisabled$ | async) ? -1 : 0\" matEndDate formControlName=\"end\" placeholder=\"End date\" />\n </mat-date-range-input>\n </mat-form-field>\n <mat-error *ngIf=\"formControl.hasError('required')\">Date range is required</mat-error>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4$5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$6.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "component", type: i4$6.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i4$6.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i4$6.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i2$2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
4633
+ ], viewQueries: [{ propertyName: "calendar", first: true, predicate: MatCalendar, descendants: true }, { propertyName: "startDateInputElement", first: true, predicate: ["startDateInput"], descendants: true, read: ElementRef }, { propertyName: "endDateInputElement", first: true, predicate: ["endDateInput"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-fixeddaterange-field\">\n <mat-calendar #calendarView [selected]=\"calendarSelection$ | async\" [dateFilter]=\"(pickerFilter$ | async) || defaultPickerFilter\" [minDate]=\"min$ | async\" [maxDate]=\"max$ | async\" (selectedChange)=\"selectedChange($event)\"></mat-calendar>\n <mat-form-field class=\"dbx-fixeddaterange-field-input\" appearance=\"fill\">\n <mat-date-range-input *ngIf=\"showRangeInput\" [formGroup]=\"inputRangeForm\">\n <input #startDateInput matStartDate formControlName=\"start\" placeholder=\"Start date\" />\n <input #endDateInput [ngClass]=\"(endDisabled$ | async) ? 'dbx-fixeddaterange-field-input-end' : ''\" [attr.tabindex]=\"(endDisabled$ | async) ? -1 : 0\" matEndDate formControlName=\"end\" placeholder=\"End date\" />\n </mat-date-range-input>\n </mat-form-field>\n <mat-error *ngIf=\"formControl.hasError('required')\">Date range is required</mat-error>\n</div>\n", dependencies: [{ kind: "directive", type: i1$5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$2.MatCalendar, selector: "mat-calendar", inputs: ["headerComponent", "startAt", "startView", "selected", "minDate", "maxDate", "dateFilter", "dateClass", "comparisonStart", "comparisonEnd", "startDateAccessibleName", "endDateAccessibleName"], outputs: ["selectedChange", "yearSelected", "monthSelected", "viewChanged", "_userSelection", "_userDragDrop"], exportAs: ["matCalendar"] }, { kind: "component", type: i4$2.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i4$2.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i4$2.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i11.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "pipe", type: i1$5.AsyncPipe, name: "async" }] });
4841
4634
  }
4842
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFixedDateRangeFieldComponent, decorators: [{
4635
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFixedDateRangeFieldComponent, decorators: [{
4843
4636
  type: Component,
4844
4637
  args: [{ providers: [
4845
4638
  {
@@ -4904,16 +4697,16 @@ class DbxFixedDateRangeFieldSelectionStrategy {
4904
4697
  const year = date.getFullYear();
4905
4698
  return this._dateAdapter.createDate(year, monthIndex, day);
4906
4699
  }
4907
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFixedDateRangeFieldSelectionStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4908
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFixedDateRangeFieldSelectionStrategy });
4700
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFixedDateRangeFieldSelectionStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
4701
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFixedDateRangeFieldSelectionStrategy });
4909
4702
  }
4910
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFixedDateRangeFieldSelectionStrategy, decorators: [{
4703
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFixedDateRangeFieldSelectionStrategy, decorators: [{
4911
4704
  type: Injectable
4912
4705
  }] });
4913
4706
 
4914
4707
  class DbxFormFormlyDateFieldModule {
4915
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyDateFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4916
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyDateFieldModule, declarations: [DbxDateTimeFieldComponent, DbxFixedDateRangeFieldComponent], imports: [CommonModule,
4708
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyDateFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4709
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyDateFieldModule, declarations: [DbxDateTimeFieldComponent, DbxFixedDateRangeFieldComponent], imports: [CommonModule,
4917
4710
  FormsModule,
4918
4711
  MatInputModule,
4919
4712
  MatDividerModule,
@@ -4921,15 +4714,14 @@ class DbxFormFormlyDateFieldModule {
4921
4714
  DbxButtonModule,
4922
4715
  MatButtonModule,
4923
4716
  MatDatepickerModule,
4924
- MatNativeDateModule,
4925
4717
  MatMenuModule,
4926
4718
  ReactiveFormsModule,
4927
4719
  DbxDatePipeModule,
4928
4720
  DbxValuePipeModule,
4929
4721
  MatChipsModule,
4930
4722
  MatIconModule,
4931
- FlexLayoutModule, i1$1.FormlyModule], exports: [DbxFormFormlyWrapperModule] });
4932
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyDateFieldModule, imports: [CommonModule,
4723
+ FlexLayoutModule, i1$2.FormlyModule], exports: [DbxFormFormlyWrapperModule] });
4724
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyDateFieldModule, imports: [CommonModule,
4933
4725
  FormsModule,
4934
4726
  MatInputModule,
4935
4727
  MatDividerModule,
@@ -4937,7 +4729,6 @@ class DbxFormFormlyDateFieldModule {
4937
4729
  DbxButtonModule,
4938
4730
  MatButtonModule,
4939
4731
  MatDatepickerModule,
4940
- MatNativeDateModule,
4941
4732
  MatMenuModule,
4942
4733
  ReactiveFormsModule,
4943
4734
  DbxDatePipeModule,
@@ -4953,7 +4744,7 @@ class DbxFormFormlyDateFieldModule {
4953
4744
  ]
4954
4745
  }), DbxFormFormlyWrapperModule] });
4955
4746
  }
4956
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyDateFieldModule, decorators: [{
4747
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyDateFieldModule, decorators: [{
4957
4748
  type: NgModule,
4958
4749
  args: [{
4959
4750
  imports: [
@@ -4965,7 +4756,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4965
4756
  DbxButtonModule,
4966
4757
  MatButtonModule,
4967
4758
  MatDatepickerModule,
4968
- MatNativeDateModule,
4969
4759
  MatMenuModule,
4970
4760
  ReactiveFormsModule,
4971
4761
  DbxDatePipeModule,
@@ -5257,7 +5047,7 @@ const FIELD_VALUES_ARE_EQUAL_VALIDATION_KEY = 'fieldValuesAreEqual';
5257
5047
  function fieldValuesAreEqualValidator(config = {}) {
5258
5048
  const { keysFilter, valuesFilter: inputValuesFilter, isEqual = (a, b) => a === b, message = 'Field values are not equal.' } = config;
5259
5049
  const valuesFilter = inputValuesFilter ?? {
5260
- valueFilter: KeyValueTypleValueFilter.NONE,
5050
+ valueFilter: KeyValueTypleValueFilter.NONE, // keep all values. Null/undefined should be processed.
5261
5051
  keysFilter
5262
5052
  };
5263
5053
  return (control) => {
@@ -5487,11 +5277,11 @@ function dollarAmountField(config) {
5487
5277
  }
5488
5278
 
5489
5279
  class DbxFormFormlyNumberFieldModule {
5490
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyNumberFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5491
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyNumberFieldModule, imports: [FormlyMaterialModule, FormlyMatSliderModule], exports: [DbxFormFormlyWrapperModule] });
5492
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyNumberFieldModule, imports: [FormlyMaterialModule, FormlyMatSliderModule, DbxFormFormlyWrapperModule] });
5280
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyNumberFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5281
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyNumberFieldModule, imports: [FormlyMaterialModule, FormlyMatSliderModule], exports: [DbxFormFormlyWrapperModule] });
5282
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyNumberFieldModule, imports: [FormlyMaterialModule, FormlyMatSliderModule, DbxFormFormlyWrapperModule] });
5493
5283
  }
5494
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyNumberFieldModule, decorators: [{
5284
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyNumberFieldModule, decorators: [{
5495
5285
  type: NgModule,
5496
5286
  args: [{
5497
5287
  imports: [FormlyMaterialModule, FormlyMatSliderModule],
@@ -5578,17 +5368,17 @@ class DbxPhoneFieldComponent extends FieldType$1 {
5578
5368
  this.inputSync.destroy();
5579
5369
  this.outputSync.destroy();
5580
5370
  }
5581
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxPhoneFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
5582
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxPhoneFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-form-phone-field\" [formGroup]=\"inputFormGroup\">\n <ngx-mat-intl-tel-input class=\"dbx-form-phone-field-phone-content\" [required]=\"required\" [preferredCountries]=\"preferredCountries\" [enablePlaceholder]=\"false\" name=\"phone\" [formControl]=\"phoneCtrl\"></ngx-mat-intl-tel-input>\n <div *ngIf=\"allowExtension\" class=\"dbx-form-phone-field-extension-content\">\n <span class=\"dbx-hint dbx-button-spacer\">Ext.</span>\n <input class=\"dbx-form-phone-field-extension-input\" placeholder=\"123\" minlength=\"0\" maxlength=\"6\" #extensionInput [formControl]=\"extensionCtrl\" />\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3$2.NgxMatIntlTelInputComponent, selector: "ngx-mat-intl-tel-input", inputs: ["preferredCountries", "enablePlaceholder", "inputPlaceholder", "cssClass", "name", "onlyCountries", "errorStateMatcher", "enableSearch", "searchPlaceholder", "describedBy", "format", "placeholder", "required", "disabled"], outputs: ["countryChanged"] }] });
5371
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxPhoneFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
5372
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxPhoneFieldComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-form-phone-field\" [formGroup]=\"inputFormGroup\">\n <ngx-mat-intl-tel-input class=\"dbx-form-phone-field-phone-content\" [required]=\"required\" [preferredCountries]=\"preferredCountries\" [enablePlaceholder]=\"false\" name=\"phone\" [formControl]=\"phoneCtrl\"></ngx-mat-intl-tel-input>\n <div *ngIf=\"allowExtension\" class=\"dbx-form-phone-field-extension-content\">\n <span class=\"dbx-hint dbx-button-spacer\">Ext.</span>\n <input class=\"dbx-form-phone-field-extension-input\" placeholder=\"123\" minlength=\"0\" maxlength=\"6\" #extensionInput [formControl]=\"extensionCtrl\" />\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1$5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3$1.NgxMatIntlTelInputComponent, selector: "ngx-mat-intl-tel-input", inputs: ["preferredCountries", "enablePlaceholder", "inputPlaceholder", "cssClass", "name", "onlyCountries", "errorStateMatcher", "enableSearch", "searchPlaceholder", "describedBy", "format", "placeholder", "required", "disabled"], outputs: ["countryChanged"] }] });
5583
5373
  }
5584
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxPhoneFieldComponent, decorators: [{
5374
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxPhoneFieldComponent, decorators: [{
5585
5375
  type: Component,
5586
5376
  args: [{ template: "<div class=\"dbx-form-phone-field\" [formGroup]=\"inputFormGroup\">\n <ngx-mat-intl-tel-input class=\"dbx-form-phone-field-phone-content\" [required]=\"required\" [preferredCountries]=\"preferredCountries\" [enablePlaceholder]=\"false\" name=\"phone\" [formControl]=\"phoneCtrl\"></ngx-mat-intl-tel-input>\n <div *ngIf=\"allowExtension\" class=\"dbx-form-phone-field-extension-content\">\n <span class=\"dbx-hint dbx-button-spacer\">Ext.</span>\n <input class=\"dbx-form-phone-field-extension-input\" placeholder=\"123\" minlength=\"0\" maxlength=\"6\" #extensionInput [formControl]=\"extensionCtrl\" />\n </div>\n</div>\n" }]
5587
5377
  }] });
5588
5378
 
5589
5379
  class DbxFormFormlyPhoneFieldModule {
5590
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyPhoneFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5591
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyPhoneFieldModule, declarations: [DbxPhoneFieldComponent], imports: [CommonModule,
5380
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyPhoneFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5381
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyPhoneFieldModule, declarations: [DbxPhoneFieldComponent], imports: [CommonModule,
5592
5382
  MatInputModule,
5593
5383
  MatFormFieldModule,
5594
5384
  FormsModule,
@@ -5597,8 +5387,8 @@ class DbxFormFormlyPhoneFieldModule {
5597
5387
  MatChipsModule,
5598
5388
  MatIconModule,
5599
5389
  FlexLayoutModule,
5600
- FormlyMatFormFieldModule, i1$1.FormlyModule, NgxMatIntlTelInputComponent] });
5601
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyPhoneFieldModule, imports: [CommonModule,
5390
+ FormlyMatFormFieldModule, i1$2.FormlyModule, NgxMatIntlTelInputComponent] });
5391
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyPhoneFieldModule, imports: [CommonModule,
5602
5392
  MatInputModule,
5603
5393
  MatFormFieldModule,
5604
5394
  FormsModule,
@@ -5613,7 +5403,7 @@ class DbxFormFormlyPhoneFieldModule {
5613
5403
  }),
5614
5404
  NgxMatIntlTelInputComponent] });
5615
5405
  }
5616
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyPhoneFieldModule, decorators: [{
5406
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyPhoneFieldModule, decorators: [{
5617
5407
  type: NgModule,
5618
5408
  args: [{
5619
5409
  imports: [
@@ -5919,11 +5709,11 @@ function addressListField(config = {}) {
5919
5709
  }
5920
5710
 
5921
5711
  class DbxFormFormlyTextFieldModule {
5922
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyTextFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5923
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyTextFieldModule, imports: [FormlyMaterialModule], exports: [DbxFormFormlyWrapperModule] });
5924
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyTextFieldModule, imports: [FormlyMaterialModule, DbxFormFormlyWrapperModule] });
5712
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyTextFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5713
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyTextFieldModule, imports: [FormlyMaterialModule], exports: [DbxFormFormlyWrapperModule] });
5714
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyTextFieldModule, imports: [FormlyMaterialModule, DbxFormFormlyWrapperModule] });
5925
5715
  }
5926
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyTextFieldModule, decorators: [{
5716
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyTextFieldModule, decorators: [{
5927
5717
  type: NgModule,
5928
5718
  args: [{
5929
5719
  imports: [FormlyMaterialModule],
@@ -5940,11 +5730,11 @@ function hiddenField({ key, required = false }) {
5940
5730
  }
5941
5731
 
5942
5732
  class DbxFormFormlyValueModule {
5943
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyValueModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5944
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyValueModule, imports: [CommonModule], exports: [DbxFormFormlyArrayFieldModule, DbxFormFormlyBooleanFieldModule, DbxFormFormlyDateFieldModule, DbxFormFormlyPhoneFieldModule, DbxFormFormlyNumberFieldModule, DbxFormFormlyTextFieldModule] });
5945
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyValueModule, imports: [CommonModule, DbxFormFormlyArrayFieldModule, DbxFormFormlyBooleanFieldModule, DbxFormFormlyDateFieldModule, DbxFormFormlyPhoneFieldModule, DbxFormFormlyNumberFieldModule, DbxFormFormlyTextFieldModule] });
5733
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyValueModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5734
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyValueModule, imports: [CommonModule], exports: [DbxFormFormlyArrayFieldModule, DbxFormFormlyBooleanFieldModule, DbxFormFormlyDateFieldModule, DbxFormFormlyPhoneFieldModule, DbxFormFormlyNumberFieldModule, DbxFormFormlyTextFieldModule] });
5735
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyValueModule, imports: [CommonModule, DbxFormFormlyArrayFieldModule, DbxFormFormlyBooleanFieldModule, DbxFormFormlyDateFieldModule, DbxFormFormlyPhoneFieldModule, DbxFormFormlyNumberFieldModule, DbxFormFormlyTextFieldModule] });
5946
5736
  }
5947
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyValueModule, decorators: [{
5737
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyValueModule, decorators: [{
5948
5738
  type: NgModule,
5949
5739
  args: [{
5950
5740
  imports: [CommonModule],
@@ -5954,11 +5744,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
5954
5744
  }] });
5955
5745
 
5956
5746
  class DbxFormFormlyFieldModule {
5957
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5958
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyFieldModule, imports: [CommonModule], exports: [DbxFormFormlyChecklistItemFieldModule, DbxFormFormlyComponentFieldModule, DbxFormFormlySelectionModule, DbxFormFormlyTextEditorFieldModule, DbxFormFormlyValueModule, DbxFormFormlyWrapperModule] });
5959
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyFieldModule, imports: [CommonModule, DbxFormFormlyChecklistItemFieldModule, DbxFormFormlyComponentFieldModule, DbxFormFormlySelectionModule, DbxFormFormlyTextEditorFieldModule, DbxFormFormlyValueModule, DbxFormFormlyWrapperModule] });
5747
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
5748
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyFieldModule, imports: [CommonModule], exports: [DbxFormFormlyChecklistItemFieldModule, DbxFormFormlyComponentFieldModule, DbxFormFormlySelectionModule, DbxFormFormlyTextEditorFieldModule, DbxFormFormlyValueModule, DbxFormFormlyWrapperModule] });
5749
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyFieldModule, imports: [CommonModule, DbxFormFormlyChecklistItemFieldModule, DbxFormFormlyComponentFieldModule, DbxFormFormlySelectionModule, DbxFormFormlyTextEditorFieldModule, DbxFormFormlyValueModule, DbxFormFormlyWrapperModule] });
5960
5750
  }
5961
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyFieldModule, decorators: [{
5751
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyFieldModule, decorators: [{
5962
5752
  type: NgModule,
5963
5753
  args: [{
5964
5754
  imports: [CommonModule],
@@ -5971,13 +5761,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
5971
5761
  * Allows a directive to provide a formly context and form.
5972
5762
  */
5973
5763
  function provideFormlyContext() {
5974
- return [
5975
- {
5976
- provide: DbxFormlyContext,
5977
- useClass: DbxFormlyContext
5978
- },
5979
- ...provideDbxMutableForm(DbxFormlyContext)
5980
- ];
5764
+ return [DbxFormlyContext, ...provideDbxMutableForm(DbxFormlyContext)];
5981
5765
  }
5982
5766
  /**
5983
5767
  * DbxForm Instance that registers a delegate and manages the state of that form/delegate.
@@ -5992,6 +5776,9 @@ class DbxFormlyContext {
5992
5776
  fields$ = this._fields.pipe(filterMaybe(), shareReplay(1));
5993
5777
  disabled$ = this._disabled.pipe(filterMaybe(), shareReplay(1));
5994
5778
  stream$ = this._delegate.pipe(distinctUntilChanged(), switchMap((x) => (x ? x.stream$ : of(DbxFormlyContext.INITIAL_STATE))), shareReplay(1));
5779
+ ngOnDestroy() {
5780
+ this.destroy();
5781
+ }
5995
5782
  destroy() {
5996
5783
  this.lockSet.destroyOnNextUnlock(() => {
5997
5784
  this._fields.complete();
@@ -6059,21 +5846,24 @@ class DbxFormlyContext {
6059
5846
  this._delegate.value.forceFormUpdate();
6060
5847
  }
6061
5848
  }
5849
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormlyContext, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
5850
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormlyContext });
6062
5851
  }
5852
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormlyContext, decorators: [{
5853
+ type: Injectable
5854
+ }] });
6063
5855
 
6064
5856
  /**
6065
- * Abstract component for wrapping a form.
5857
+ * Abstract component for wrapping a DbxFormlyContext.
5858
+ *
5859
+ * The implementing component should use provideFormlyContext() to provide the DbxFormlyContext specific to this directive. The context is injected using only self.
6066
5860
  */
6067
5861
  class AbstractFormlyFormDirective {
6068
- context = inject((DbxFormlyContext));
6069
- get disabled() {
6070
- return this.context.isDisabled();
6071
- }
6072
- set disabled(disabled) {
6073
- this.context.setDisabled(undefined, disabled);
6074
- }
5862
+ context = inject((DbxFormlyContext), { self: true });
5863
+ disabled = input(false);
5864
+ _setDisabledOnContext = effect(() => this.context.setDisabled(undefined, this.disabled()));
6075
5865
  ngOnDestroy() {
6076
- this.context.destroy();
5866
+ this._setDisabledOnContext.destroy();
6077
5867
  }
6078
5868
  // Utility Functions
6079
5869
  getValue() {
@@ -6091,14 +5881,12 @@ class AbstractFormlyFormDirective {
6091
5881
  setDisabled(key, disabled) {
6092
5882
  this.context.setDisabled(key, disabled);
6093
5883
  }
6094
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractFormlyFormDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6095
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AbstractFormlyFormDirective, inputs: { disabled: "disabled" }, ngImport: i0 });
5884
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractFormlyFormDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
5885
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: AbstractFormlyFormDirective, inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
6096
5886
  }
6097
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractFormlyFormDirective, decorators: [{
5887
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractFormlyFormDirective, decorators: [{
6098
5888
  type: Directive
6099
- }], propDecorators: { disabled: [{
6100
- type: Input
6101
- }] } });
5889
+ }] });
6102
5890
  /**
6103
5891
  * Abstract component for wrapping a form.
6104
5892
  */
@@ -6106,10 +5894,10 @@ class AbstractSyncFormlyFormDirective extends AbstractFormlyFormDirective {
6106
5894
  ngOnInit() {
6107
5895
  this.context.fields = this.fields;
6108
5896
  }
6109
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractSyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
6110
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AbstractSyncFormlyFormDirective, usesInheritance: true, ngImport: i0 });
5897
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractSyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
5898
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: AbstractSyncFormlyFormDirective, usesInheritance: true, ngImport: i0 });
6111
5899
  }
6112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractSyncFormlyFormDirective, decorators: [{
5900
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractSyncFormlyFormDirective, decorators: [{
6113
5901
  type: Directive
6114
5902
  }] });
6115
5903
  /**
@@ -6126,34 +5914,22 @@ class AbstractAsyncFormlyFormDirective extends AbstractFormlyFormDirective {
6126
5914
  super.ngOnDestroy();
6127
5915
  this._fieldsSub.destroy();
6128
5916
  }
6129
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractAsyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
6130
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AbstractAsyncFormlyFormDirective, usesInheritance: true, ngImport: i0 });
5917
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractAsyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
5918
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: AbstractAsyncFormlyFormDirective, usesInheritance: true, ngImport: i0 });
6131
5919
  }
6132
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractAsyncFormlyFormDirective, decorators: [{
5920
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractAsyncFormlyFormDirective, decorators: [{
6133
5921
  type: Directive
6134
5922
  }] });
6135
5923
  class AbstractConfigAsyncFormlyFormDirective extends AbstractAsyncFormlyFormDirective {
6136
- _config = new BehaviorSubject(undefined);
6137
- currentConfig$ = this._config.asObservable();
6138
- config$ = this._config.pipe(filterMaybe(), shareReplay(1));
6139
- get config() {
6140
- return this._config.value;
6141
- }
6142
- set config(config) {
6143
- this._config.next(config);
6144
- }
6145
- ngOnDestroy() {
6146
- super.ngOnDestroy();
6147
- this._config.complete();
6148
- }
6149
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractConfigAsyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
6150
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: AbstractConfigAsyncFormlyFormDirective, inputs: { config: "config" }, usesInheritance: true, ngImport: i0 });
5924
+ config = input(undefined);
5925
+ currentConfig$ = toObservable(this.config).pipe(maybeValueFromObservableOrValue());
5926
+ config$ = this.currentConfig$.pipe(filterMaybe(), shareReplay(1));
5927
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractConfigAsyncFormlyFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
5928
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: AbstractConfigAsyncFormlyFormDirective, inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
6151
5929
  }
6152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AbstractConfigAsyncFormlyFormDirective, decorators: [{
5930
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractConfigAsyncFormlyFormDirective, decorators: [{
6153
5931
  type: Directive
6154
- }], propDecorators: { config: [{
6155
- type: Input
6156
- }] } });
5932
+ }] });
6157
5933
 
6158
5934
  function dbxFormSearchFormFields(config) {
6159
5935
  const { label, placeholder = 'Search', materialFormField } = config || {};
@@ -6174,8 +5950,9 @@ function dbxFormSearchFormFields(config) {
6174
5950
  /**
6175
5951
  * Used for rending a form from a DbxFormlyContext.
6176
5952
  */
6177
- class DbxFormlyFormComponent extends AbstractSubscriptionDirective {
5953
+ class DbxFormlyComponent extends AbstractSubscriptionDirective {
6178
5954
  _dbxFormlyContext = inject((DbxFormlyContext));
5955
+ formlyForm = viewChild(FormlyForm);
6179
5956
  _fields = new BehaviorSubject(undefined);
6180
5957
  _events = new BehaviorSubject({ isComplete: false, state: DbxFormState.INITIALIZING, status: 'PENDING' });
6181
5958
  _disabled = new BehaviorSubject(undefined);
@@ -6184,9 +5961,9 @@ class DbxFormlyFormComponent extends AbstractSubscriptionDirective {
6184
5961
  _disabledSub = new SubscriptionObject();
6185
5962
  _enforceDisabledSub = new SubscriptionObject();
6186
5963
  form = new FormGroup({});
6187
- model = {};
5964
+ modelSignal = signal({});
6188
5965
  options = {};
6189
- fields$ = this._fields.pipe(switchMapMaybeObs(), distinctUntilChanged(), shareReplay(1));
5966
+ fields$ = this._fields.pipe(switchMapFilterMaybe(), distinctUntilChanged(), shareReplay(1));
6190
5967
  stream$ = this._reset.pipe(switchMap((lastResetAt) => this.form.valueChanges.pipe(startWith(0), distinctUntilChanged(), throttleTime(50, undefined, { leading: true, trailing: true }), scanCount(-1),
6191
5968
  // update on validation changes too. Does not count towards changes since last reset.
6192
5969
  switchMap((changesSinceLastReset) => this.form.statusChanges.pipe(startWith(this.form.status), distinctUntilChanged()).pipe(map(() => changesSinceLastReset))), map((changesSinceLastResetCount) => ({
@@ -6237,6 +6014,8 @@ class DbxFormlyFormComponent extends AbstractSubscriptionDirective {
6237
6014
  return of(state);
6238
6015
  }
6239
6016
  }))), shareReplay(1));
6017
+ _fieldsSignal = toSignal(this.fields$, { initialValue: undefined });
6018
+ fieldsSignal = computed(() => this._fieldsSignal() ?? []);
6240
6019
  ngOnInit() {
6241
6020
  this._dbxFormlyContext.setDelegate(this);
6242
6021
  const resyncDisabledState = () => {
@@ -6281,8 +6060,7 @@ class DbxFormlyFormComponent extends AbstractSubscriptionDirective {
6281
6060
  return of(this.form.value);
6282
6061
  }
6283
6062
  setValue(value) {
6284
- // console.log('set value: ', value);
6285
- this.model = structuredClone(value);
6063
+ this.modelSignal.set(structuredClone(value));
6286
6064
  if (this.options.updateInitialValue) {
6287
6065
  this.options.updateInitialValue();
6288
6066
  this.options.resetModel?.();
@@ -6323,27 +6101,30 @@ class DbxFormlyFormComponent extends AbstractSubscriptionDirective {
6323
6101
  forceFormUpdate() {
6324
6102
  this._forceUpdate.next();
6325
6103
  }
6326
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormlyFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6327
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormlyFormComponent, selector: "dbx-formly", host: { classAttribute: "dbx-formly" }, providers: provideDbxMutableForm(DbxFormlyFormComponent), exportAs: ["formly"], usesInheritance: true, ngImport: i0, template: `
6104
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormlyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6105
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: DbxFormlyComponent, isStandalone: true, selector: "dbx-formly", host: { classAttribute: "dbx-formly" }, providers: provideDbxMutableForm(DbxFormlyComponent), viewQueries: [{ propertyName: "formlyForm", first: true, predicate: FormlyForm, descendants: true, isSignal: true }], exportAs: ["formly"], usesInheritance: true, ngImport: i0, template: `
6328
6106
  <form [formGroup]="form" class="dbx-formly">
6329
- <formly-form [form]="form" [fields]="(fields$ | async) ?? []" [model]="model"></formly-form>
6107
+ <formly-form [form]="form" [options]="options" [fields]="fieldsSignal()" [model]="modelSignal()"></formly-form>
6330
6108
  </form>
6331
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i1$1.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
6109
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1$2.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
6332
6110
  }
6333
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormlyFormComponent, decorators: [{
6111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormlyComponent, decorators: [{
6334
6112
  type: Component,
6335
6113
  args: [{
6336
6114
  selector: 'dbx-formly',
6337
6115
  exportAs: 'formly',
6338
6116
  template: `
6339
6117
  <form [formGroup]="form" class="dbx-formly">
6340
- <formly-form [form]="form" [fields]="(fields$ | async) ?? []" [model]="model"></formly-form>
6118
+ <formly-form [form]="form" [options]="options" [fields]="fieldsSignal()" [model]="modelSignal()"></formly-form>
6341
6119
  </form>
6342
6120
  `,
6343
- providers: provideDbxMutableForm(DbxFormlyFormComponent),
6344
6121
  host: {
6345
6122
  class: 'dbx-formly'
6346
- }
6123
+ },
6124
+ providers: provideDbxMutableForm(DbxFormlyComponent),
6125
+ imports: [FormsModule, ReactiveFormsModule, FormlyModule],
6126
+ changeDetection: ChangeDetectionStrategy.OnPush,
6127
+ standalone: true
6347
6128
  }]
6348
6129
  }] });
6349
6130
 
@@ -6357,12 +6138,12 @@ class DbxFormSearchFormComponent extends AbstractConfigAsyncFormlyFormDirective
6357
6138
  super.ngOnDestroy();
6358
6139
  this.search.complete();
6359
6140
  }
6360
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormSearchFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6361
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormSearchFormComponent, selector: "dbx-form-search-form", outputs: { search: "search" }, host: { classAttribute: "d-block dbx-form-search-form" }, providers: [provideFormlyContext()], usesInheritance: true, ngImport: i0, template: `
6141
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSearchFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6142
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxFormSearchFormComponent, selector: "dbx-form-search-form", outputs: { search: "search" }, host: { classAttribute: "d-block dbx-form-search-form" }, providers: [provideFormlyContext()], usesInheritance: true, ngImport: i0, template: `
6362
6143
  <dbx-formly (dbxFormValueChange)="searchChanged($event)"></dbx-formly>
6363
- `, isInline: true, dependencies: [{ kind: "directive", type: DbxFormValueChangesDirective, selector: "[dbxFormValueChange]", outputs: ["dbxFormValueChange"] }, { kind: "component", type: DbxFormlyFormComponent, selector: "dbx-formly", exportAs: ["formly"] }] });
6144
+ `, isInline: true, dependencies: [{ kind: "directive", type: DbxFormValueChangesDirective, selector: "[dbxFormValueChange]", outputs: ["dbxFormValueChange"] }, { kind: "component", type: DbxFormlyComponent, selector: "dbx-formly", exportAs: ["formly"] }] });
6364
6145
  }
6365
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormSearchFormComponent, decorators: [{
6146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSearchFormComponent, decorators: [{
6366
6147
  type: Component,
6367
6148
  args: [{
6368
6149
  template: `
@@ -6394,14 +6175,15 @@ class DbxFormlyFieldsContextDirective extends AbstractAsyncFormlyFormDirective {
6394
6175
  super.ngOnDestroy();
6395
6176
  this._fields.complete();
6396
6177
  }
6397
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormlyFieldsContextDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
6398
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormlyFieldsContextDirective, selector: "[dbxFormlyFields]", inputs: { fields: ["dbxFormlyFields", "fields"] }, providers: provideFormlyContext(), usesInheritance: true, ngImport: i0 });
6178
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormlyFieldsContextDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
6179
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxFormlyFieldsContextDirective, isStandalone: true, selector: "[dbxFormlyFields]", inputs: { fields: ["dbxFormlyFields", "fields"] }, providers: provideFormlyContext(), usesInheritance: true, ngImport: i0 });
6399
6180
  }
6400
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormlyFieldsContextDirective, decorators: [{
6181
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormlyFieldsContextDirective, decorators: [{
6401
6182
  type: Directive,
6402
6183
  args: [{
6403
6184
  selector: '[dbxFormlyFields]',
6404
- providers: provideFormlyContext()
6185
+ providers: provideFormlyContext(),
6186
+ standalone: true
6405
6187
  }]
6406
6188
  }], propDecorators: { fields: [{
6407
6189
  type: Input,
@@ -6409,44 +6191,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6409
6191
  }] } });
6410
6192
 
6411
6193
  class DbxFormlyModule {
6412
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormlyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6413
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormlyModule, declarations: [DbxFormlyFormComponent, DbxFormlyFieldsContextDirective], imports: [CommonModule, FormsModule, ReactiveFormsModule, FormlyModule, FormlyMatToggleModule], exports: [
6194
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormlyModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6195
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormlyModule, imports: [DbxFormlyComponent, DbxFormlyFieldsContextDirective, CommonModule, FormsModule, ReactiveFormsModule, FormlyModule, FormlyMatToggleModule], exports: [
6414
6196
  // Modules (?)
6415
6197
  FormsModule,
6416
6198
  ReactiveFormsModule,
6417
6199
  // Directives
6418
- DbxFormlyFormComponent,
6419
- DbxFormlyFieldsContextDirective
6420
- // Helper Modules
6421
- ] });
6422
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormlyModule, imports: [CommonModule, FormsModule, ReactiveFormsModule, FormlyModule, FormlyMatToggleModule,
6200
+ DbxFormlyComponent,
6201
+ DbxFormlyFieldsContextDirective] });
6202
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormlyModule, imports: [DbxFormlyComponent, CommonModule, FormsModule, ReactiveFormsModule, FormlyModule, FormlyMatToggleModule,
6423
6203
  // Modules (?)
6424
6204
  FormsModule,
6425
6205
  ReactiveFormsModule] });
6426
6206
  }
6427
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormlyModule, decorators: [{
6207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormlyModule, decorators: [{
6428
6208
  type: NgModule,
6429
6209
  args: [{
6430
- imports: [CommonModule, FormsModule, ReactiveFormsModule, FormlyModule, FormlyMatToggleModule],
6431
- declarations: [DbxFormlyFormComponent, DbxFormlyFieldsContextDirective],
6210
+ imports: [DbxFormlyComponent, DbxFormlyFieldsContextDirective, CommonModule, FormsModule, ReactiveFormsModule, FormlyModule, FormlyMatToggleModule],
6432
6211
  exports: [
6433
6212
  // Modules (?)
6434
6213
  FormsModule,
6435
6214
  ReactiveFormsModule,
6436
6215
  // Directives
6437
- DbxFormlyFormComponent,
6216
+ DbxFormlyComponent,
6438
6217
  DbxFormlyFieldsContextDirective
6439
- // Helper Modules
6440
6218
  ]
6441
6219
  }]
6442
6220
  }] });
6443
6221
 
6444
6222
  class DbxFormFormlyFormModule {
6445
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6446
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyFormModule, declarations: [DbxFormSearchFormComponent], imports: [CommonModule, DbxFormModule, DbxFormlyModule, DbxFormFormlyFieldModule], exports: [DbxFormSearchFormComponent] });
6447
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyFormModule, imports: [CommonModule, DbxFormModule, DbxFormlyModule, DbxFormFormlyFieldModule] });
6223
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6224
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyFormModule, declarations: [DbxFormSearchFormComponent], imports: [CommonModule, DbxFormModule, DbxFormlyModule, DbxFormFormlyFieldModule], exports: [DbxFormSearchFormComponent] });
6225
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyFormModule, imports: [CommonModule, DbxFormModule, DbxFormlyModule, DbxFormFormlyFieldModule] });
6448
6226
  }
6449
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormFormlyFormModule, decorators: [{
6227
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyFormModule, decorators: [{
6450
6228
  type: NgModule,
6451
6229
  args: [{
6452
6230
  imports: [CommonModule, DbxFormModule, DbxFormlyModule, DbxFormFormlyFieldModule],
@@ -6596,16 +6374,41 @@ function timezoneStringField(config = {}) {
6596
6374
  });
6597
6375
  }
6598
6376
 
6377
+ /**
6378
+ * Default template for a view that extends AbstractFormlyFormDirective.
6379
+ */
6380
+ const DBX_FORMLY_FORM_COMPONENT_TEMPLATE = `<dbx-formly></dbx-formly>`;
6381
+ /**
6382
+ * Default providers for a view that extends AbstractFormlyFormDirective.
6383
+ */
6384
+ const dbxFormlyFormComponentProviders = provideFormlyContext;
6385
+ const dbxFormlyFormComponentImports = [DbxFormlyComponent];
6386
+ /**
6387
+ * Default imports module for a view that extends AbstractFormlyFormDirective.
6388
+ */
6389
+ class DbxFormlyFormComponentImportsModule {
6390
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormlyFormComponentImportsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6391
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormlyFormComponentImportsModule, imports: [DbxFormlyComponent], exports: [DbxFormlyComponent] });
6392
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormlyFormComponentImportsModule, imports: [dbxFormlyFormComponentImports] });
6393
+ }
6394
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormlyFormComponentImportsModule, decorators: [{
6395
+ type: NgModule,
6396
+ args: [{
6397
+ imports: dbxFormlyFormComponentImports,
6398
+ exports: dbxFormlyFormComponentImports
6399
+ }]
6400
+ }] });
6401
+
6599
6402
  /**
6600
6403
  * Provides vertical spacing after a form.
6601
6404
  */
6602
6405
  class DbxFormSpacerComponent {
6603
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormSpacerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6604
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DbxFormSpacerComponent, selector: "dbx-form-spacer", ngImport: i0, template: `
6406
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSpacerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6407
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DbxFormSpacerComponent, selector: "dbx-form-spacer", ngImport: i0, template: `
6605
6408
  <div class="dbx-form-spacer"></div>
6606
6409
  `, isInline: true });
6607
6410
  }
6608
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormSpacerComponent, decorators: [{
6411
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormSpacerComponent, decorators: [{
6609
6412
  type: Component,
6610
6413
  args: [{
6611
6414
  selector: 'dbx-form-spacer',
@@ -6616,11 +6419,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6616
6419
  }] });
6617
6420
 
6618
6421
  class DbxFormLayoutModule {
6619
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6620
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormLayoutModule, declarations: [DbxFormSpacerComponent], imports: [CommonModule], exports: [DbxFormSpacerComponent] });
6621
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormLayoutModule, imports: [CommonModule] });
6422
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6423
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormLayoutModule, declarations: [DbxFormSpacerComponent], imports: [CommonModule], exports: [DbxFormSpacerComponent] });
6424
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormLayoutModule, imports: [CommonModule] });
6622
6425
  }
6623
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormLayoutModule, decorators: [{
6426
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormLayoutModule, decorators: [{
6624
6427
  type: NgModule,
6625
6428
  args: [{
6626
6429
  imports: [CommonModule],
@@ -6630,20 +6433,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
6630
6433
  }] });
6631
6434
 
6632
6435
  class DbxFormExtensionModule {
6633
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormExtensionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6634
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxFormExtensionModule, exports: [DbxFormModule, DbxFormlyModule, DbxFormFormlyFieldModule, DbxFormFormlyFormModule] });
6635
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormExtensionModule, imports: [DbxFormModule, DbxFormlyModule, DbxFormFormlyFieldModule, DbxFormFormlyFormModule] });
6436
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormExtensionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
6437
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormExtensionModule, exports: [DbxFormModule, DbxFormlyModule, DbxFormFormlyFieldModule, DbxFormFormlyFormModule] });
6438
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormExtensionModule, imports: [DbxFormModule, DbxFormlyModule, DbxFormFormlyFieldModule, DbxFormFormlyFormModule] });
6636
6439
  }
6637
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxFormExtensionModule, decorators: [{
6440
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormExtensionModule, decorators: [{
6638
6441
  type: NgModule,
6639
6442
  args: [{
6640
6443
  exports: [DbxFormModule, DbxFormlyModule, DbxFormFormlyFieldModule, DbxFormFormlyFormModule]
6641
6444
  }]
6642
6445
  }] });
6643
6446
 
6447
+ function provideDbxFormConfiguration(config) {
6448
+ const { provideDateAdapter, defaultDateTimePresets } = config ?? {};
6449
+ const providers = [
6450
+ {
6451
+ provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,
6452
+ useValue: {
6453
+ subscriptSizing: 'dynamic',
6454
+ floatLabel: 'always',
6455
+ appearance: 'outline'
6456
+ }
6457
+ },
6458
+ {
6459
+ provide: DBX_DATE_TIME_FIELD_MENU_PRESETS_TOKEN,
6460
+ useValue: defaultDateTimePresets ?? DEFAULT_DATE_TIME_FIELD_MENU_PRESETS_PRESETS
6461
+ }
6462
+ ];
6463
+ if (provideDateAdapter !== false) {
6464
+ providers.push(provideDateFnsAdapter());
6465
+ providers.push({
6466
+ provide: MAT_DATE_LOCALE,
6467
+ useValue: enUS
6468
+ });
6469
+ }
6470
+ return makeEnvironmentProviders(providers);
6471
+ }
6472
+
6644
6473
  /**
6645
6474
  * Generated bundle index. Do not edit.
6646
6475
  */
6647
6476
 
6648
- export { APP_ACTION_FORM_DISABLED_KEY, AbstractAsyncFormlyFormDirective, AbstractConfigAsyncFormlyFormDirective, AbstractDbxPickableItemFieldDirective, AbstractDbxSearchableFieldDisplayDirective, AbstractDbxSearchableValueFieldDirective, AbstractFormExpandSectionWrapperDirective, AbstractFormlyFormDirective, AbstractSyncFormlyFormDirective, AutoTouchFieldWrapperComponent, ChecklistItemFieldDataSetBuilder, DBX_DATE_TIME_FIELD_DATE_NOT_IN_SCHEDULE_ERROR, DBX_DATE_TIME_FIELD_MENU_PRESETS_TOKEN, DBX_DATE_TIME_FIELD_TIME_NOT_IN_RANGE_ERROR, DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN, DEFAULT_DATE_TIME_FIELD_MENU_PRESETS_PRESETS, DEFAULT_FORM_DISABLED_KEY, DEFAULT_HAS_VALUE_FN, DEFAULT_LAT_LNG_TEXT_FIELD_PATTERN_MESSAGE, DEFAULT_LAT_LNG_TEXT_FIELD_PLACEHOLDER, DEFAULT_PREFERRED_COUNTRIES, DISPLAY_FOR_TIMEZONE_STRING_VALUE, DbxActionFormDirective, DbxActionFormSafetyDirective, DbxChecklistItemContentComponent, DbxChecklistItemFieldComponent, DbxDateTimeFieldComponent, DbxDateTimeFieldMenuPresetsService, DbxDateTimeFieldTimeMode, DbxDateTimeValueMode, DbxDefaultChecklistItemFieldDisplayComponent, DbxDefaultSearchableFieldDisplayComponent, DbxForm, DbxFormActionModule, DbxFormActionTransitionModule, DbxFormComponentFieldComponent, DbxFormExpandWrapperComponent, DbxFormExtensionModule, DbxFormFlexWrapperComponent, DbxFormFormlyArrayFieldModule, DbxFormFormlyBooleanFieldModule, DbxFormFormlyChecklistItemFieldModule, DbxFormFormlyComponentFieldModule, DbxFormFormlyDateFieldModule, DbxFormFormlyDbxListFieldModule, DbxFormFormlyFieldModule, DbxFormFormlyFormModule, DbxFormFormlyNumberFieldModule, DbxFormFormlyPhoneFieldModule, DbxFormFormlyPickableFieldModule, DbxFormFormlySearchableFieldModule, DbxFormFormlySelectionModule, DbxFormFormlySourceSelectModule, DbxFormFormlyTextEditorFieldModule, DbxFormFormlyTextFieldModule, DbxFormFormlyValueModule, DbxFormFormlyWrapperModule, DbxFormInfoWrapperComponent, DbxFormIoModule, DbxFormLayoutModule, DbxFormLoadingSourceDirective, DbxFormModule, DbxFormRepeatArrayTypeComponent, DbxFormSearchFormComponent, DbxFormSectionWrapperComponent, DbxFormSourceDirective, DbxFormSourceSelectFieldComponent, DbxFormSpacerComponent, DbxFormState, DbxFormSubsectionWrapperComponent, DbxFormToggleWrapperComponent, DbxFormValueChangesDirective, DbxFormWorkingWrapperComponent, DbxFormlyContext, DbxFormlyFieldsContextDirective, DbxFormlyFormComponent, DbxFormlyModule, DbxItemListFieldComponent, DbxMutableForm, DbxPhoneFieldComponent, DbxPickableChipListFieldComponent, DbxPickableListFieldComponent, DbxPickableListFieldItemListComponent, DbxPickableListFieldItemListViewComponent, DbxPickableListFieldItemListViewItemComponent, DbxSearchableChipFieldComponent, DbxSearchableFieldAutocompleteItemComponent, DbxSearchableTextFieldComponent, DbxTextEditorFieldComponent, FIELD_VALUES_ARE_EQUAL_VALIDATION_KEY, FIELD_VALUE_IS_AVAILABLE_ERROR_VALIDATION_KEY, FIELD_VALUE_IS_AVAILABLE_VALIDATION_KEY, INVALID_PHONE_NUMBER_EXTENSION_MESSAGE, INVALID_PHONE_NUMBER_MESSAGE, IS_DIVISIBLE_BY_VALIDATION_KEY, LABEL_STRING_MAX_LENGTH, MAX_LENGTH_VALIDATION_MESSAGE, MAX_VALIDATION_MESSAGE, MIN_LENGTH_VALIDATION_MESSAGE, MIN_VALIDATION_MESSAGE, PHONE_LABEL_MAX_LENGTH, REQUIRED_VALIDATION_MESSAGE, SEARCH_STRING_MAX_LENGTH, TAKE_NEXT_UPCOMING_TIME_CONFIG_OBS, addValueSelectionOptionFunction, addWrapperToFormlyFieldConfig, addressField, addressFormlyFields, addressLineField, addressListField, autoTouchWrapper, checkIsFieldFlexLayoutGroupFieldConfig, checkboxField, checklistItemField, chipTextField, cityField, componentField, countryField, dateRangeField, dateTimeField, dateTimePreset, dateTimeRangeField, dbxDateRangeIsSameDateRangeFieldValue, dbxDateTimeInputValueParseFactory, dbxDateTimeIsSameDateTimeFieldValue, dbxDateTimeOutputValueFactory, dbxFormSearchFormFields, dbxFormSourceObservable, dbxFormSourceObservableFromStream, dbxListField, defaultValidationMessages, disableFormlyFieldAutofillAttributes, dollarAmountField, emailField, expandWrapper, fieldValueIsAvailableValidator, fieldValuesAreEqualValidator, filterPartialPotentialFieldConfigValuesFromObject, filterPickableItemFieldValuesByLabel, filterPickableItemFieldValuesByLabelFilterFunction, fixedDateRangeField, flexLayoutWrapper, formlyField, hiddenField, infoWrapper, isDbxDateTimeFieldTimeDateConfig, isDivisibleBy, isDomain, isE164PhoneNumber, isE164PhoneNumberWithValidExtension, isInRange, isPhoneExtension, isTruthy, latLngTextField, makeMetaFilterSearchableFieldValueDisplayFn, maxLengthValidationMessage, maxValidationMessage, mergePropsValueObjects, minLengthValidationMessage, minValidationMessage, nameField, numberField, numberFieldTransformParser, numberSliderField, partialPotentialFieldConfigKeys, partialPotentialFieldConfigKeysFilter, phoneAndLabelSectionField, phoneField, phoneListField, pickableItemChipField, pickableItemListField, pickableValueFieldValuesConfigForStaticLabeledValues, propsAndConfigForFieldConfig, propsValueForFieldConfig, provideDbxForm, provideDbxMutableForm, provideFormlyContext, repeatArrayField, searchableChipField, searchableStringChipField, searchableTextField, sectionWrapper, sortPickableItemsByLabel, sortPickableItemsByLabelStringFunction, sourceSelectField, stateField, streamValueFromControl, styleWrapper, subsectionWrapper, syncConfigValueObs, textAreaField, textEditorField, textField, textFieldTransformParser, textIsAvailableField, textPasswordField, textPasswordWithVerifyFieldGroup, textVerifyPasswordField, timeOnlyField, timezoneStringField, timezoneStringSearchFunction, toggleDisableFormControl, toggleField, toggleWrapper, usernamePasswordLoginFields, validatorsForFieldConfig, valueSelectionField, workingWrapper, wrappedPhoneAndLabelField, zipCodeField };
6477
+ export { APP_ACTION_FORM_DISABLED_KEY, AbstractAsyncFormlyFormDirective, AbstractConfigAsyncFormlyFormDirective, AbstractDbxPickableItemFieldDirective, AbstractDbxSearchableFieldDisplayDirective, AbstractDbxSearchableValueFieldDirective, AbstractFormExpandSectionWrapperDirective, AbstractFormlyFormDirective, AbstractSyncFormlyFormDirective, AutoTouchFieldWrapperComponent, ChecklistItemFieldDataSetBuilder, DBX_DATE_TIME_FIELD_DATE_NOT_IN_SCHEDULE_ERROR, DBX_DATE_TIME_FIELD_MENU_PRESETS_TOKEN, DBX_DATE_TIME_FIELD_TIME_NOT_IN_RANGE_ERROR, DBX_FORMLY_FORM_COMPONENT_TEMPLATE, DBX_SEARCHABLE_FIELD_COMPONENT_DATA_TOKEN, DEFAULT_DATE_TIME_FIELD_MENU_PRESETS_PRESETS, DEFAULT_FORM_DISABLED_KEY, DEFAULT_HAS_VALUE_FN, DEFAULT_LAT_LNG_TEXT_FIELD_PATTERN_MESSAGE, DEFAULT_LAT_LNG_TEXT_FIELD_PLACEHOLDER, DEFAULT_PREFERRED_COUNTRIES, DISPLAY_FOR_TIMEZONE_STRING_VALUE, DbxActionFormDirective, DbxActionFormSafetyDirective, DbxChecklistItemContentComponent, DbxChecklistItemFieldComponent, DbxDateTimeFieldComponent, DbxDateTimeFieldMenuPresetsService, DbxDateTimeFieldTimeMode, DbxDateTimeValueMode, DbxDefaultChecklistItemFieldDisplayComponent, DbxDefaultSearchableFieldDisplayComponent, DbxForm, DbxFormActionModule, DbxFormActionTransitionModule, DbxFormComponentFieldComponent, DbxFormExpandWrapperComponent, DbxFormExtensionModule, DbxFormFlexWrapperComponent, DbxFormFormlyArrayFieldModule, DbxFormFormlyBooleanFieldModule, DbxFormFormlyChecklistItemFieldModule, DbxFormFormlyComponentFieldModule, DbxFormFormlyDateFieldModule, DbxFormFormlyDbxListFieldModule, DbxFormFormlyFieldModule, DbxFormFormlyFormModule, DbxFormFormlyNumberFieldModule, DbxFormFormlyPhoneFieldModule, DbxFormFormlyPickableFieldModule, DbxFormFormlySearchableFieldModule, DbxFormFormlySelectionModule, DbxFormFormlySourceSelectModule, DbxFormFormlyTextEditorFieldModule, DbxFormFormlyTextFieldModule, DbxFormFormlyValueModule, DbxFormFormlyWrapperModule, DbxFormInfoWrapperComponent, DbxFormIoModule, DbxFormLayoutModule, DbxFormLoadingSourceDirective, DbxFormModule, DbxFormRepeatArrayTypeComponent, DbxFormSearchFormComponent, DbxFormSectionWrapperComponent, DbxFormSourceDirective, DbxFormSourceSelectFieldComponent, DbxFormSpacerComponent, DbxFormState, DbxFormStyleWrapperComponent, DbxFormSubsectionWrapperComponent, DbxFormToggleWrapperComponent, DbxFormValueChangesDirective, DbxFormWorkingWrapperComponent, DbxFormlyComponent, DbxFormlyContext, DbxFormlyFieldsContextDirective, DbxFormlyFormComponentImportsModule, DbxFormlyModule, DbxItemListFieldComponent, DbxMutableForm, DbxPhoneFieldComponent, DbxPickableChipListFieldComponent, DbxPickableListFieldComponent, DbxPickableListFieldItemListComponent, DbxPickableListFieldItemListViewComponent, DbxPickableListFieldItemListViewItemComponent, DbxSearchableChipFieldComponent, DbxSearchableFieldAutocompleteItemComponent, DbxSearchableTextFieldComponent, DbxTextEditorFieldComponent, FIELD_VALUES_ARE_EQUAL_VALIDATION_KEY, FIELD_VALUE_IS_AVAILABLE_ERROR_VALIDATION_KEY, FIELD_VALUE_IS_AVAILABLE_VALIDATION_KEY, INVALID_PHONE_NUMBER_EXTENSION_MESSAGE, INVALID_PHONE_NUMBER_MESSAGE, IS_DIVISIBLE_BY_VALIDATION_KEY, LABEL_STRING_MAX_LENGTH, MAX_LENGTH_VALIDATION_MESSAGE, MAX_VALIDATION_MESSAGE, MIN_LENGTH_VALIDATION_MESSAGE, MIN_VALIDATION_MESSAGE, PHONE_LABEL_MAX_LENGTH, REQUIRED_VALIDATION_MESSAGE, SEARCH_STRING_MAX_LENGTH, TAKE_NEXT_UPCOMING_TIME_CONFIG_OBS, addValueSelectionOptionFunction, addWrapperToFormlyFieldConfig, addressField, addressFormlyFields, addressLineField, addressListField, autoTouchWrapper, checkIsFieldFlexLayoutGroupFieldConfig, checkboxField, checklistItemField, chipTextField, cityField, componentField, countryField, dateRangeField, dateTimeField, dateTimePreset, dateTimeRangeField, dbxDateRangeIsSameDateRangeFieldValue, dbxDateTimeInputValueParseFactory, dbxDateTimeIsSameDateTimeFieldValue, dbxDateTimeOutputValueFactory, dbxFormSearchFormFields, dbxFormSourceObservable, dbxFormSourceObservableFromStream, dbxFormlyFormComponentProviders, dbxListField, defaultValidationMessages, disableFormlyFieldAutofillAttributes, dollarAmountField, emailField, expandWrapper, fieldValueIsAvailableValidator, fieldValuesAreEqualValidator, filterPartialPotentialFieldConfigValuesFromObject, filterPickableItemFieldValuesByLabel, filterPickableItemFieldValuesByLabelFilterFunction, fixedDateRangeField, flexLayoutWrapper, formlyField, hiddenField, infoWrapper, isDbxDateTimeFieldTimeDateConfig, isDivisibleBy, isDomain, isE164PhoneNumber, isE164PhoneNumberWithValidExtension, isInRange, isPhoneExtension, isTruthy, latLngTextField, makeMetaFilterSearchableFieldValueDisplayFn, maxLengthValidationMessage, maxValidationMessage, mergePropsValueObjects, minLengthValidationMessage, minValidationMessage, nameField, numberField, numberFieldTransformParser, numberSliderField, partialPotentialFieldConfigKeys, partialPotentialFieldConfigKeysFilter, phoneAndLabelSectionField, phoneField, phoneListField, pickableItemChipField, pickableItemListField, pickableValueFieldValuesConfigForStaticLabeledValues, propsAndConfigForFieldConfig, propsValueForFieldConfig, provideDbxForm, provideDbxFormConfiguration, provideDbxMutableForm, provideFormlyContext, repeatArrayField, searchableChipField, searchableStringChipField, searchableTextField, sectionWrapper, sortPickableItemsByLabel, sortPickableItemsByLabelStringFunction, sourceSelectField, stateField, streamValueFromControl, styleWrapper, subsectionWrapper, syncConfigValueObs, textAreaField, textEditorField, textField, textFieldTransformParser, textIsAvailableField, textPasswordField, textPasswordWithVerifyFieldGroup, textVerifyPasswordField, timeOnlyField, timezoneStringField, timezoneStringSearchFunction, toggleDisableFormControl, toggleField, toggleWrapper, usernamePasswordLoginFields, validatorsForFieldConfig, valueSelectionField, workingWrapper, wrappedPhoneAndLabelField, zipCodeField };
6649
6478
  //# sourceMappingURL=dereekb-dbx-form.mjs.map