@dereekb/dbx-form 12.6.21 → 13.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 (378) hide show
  1. package/LICENSE +1 -1
  2. package/fesm2022/dereekb-dbx-form-calendar.mjs +86 -86
  3. package/fesm2022/dereekb-dbx-form-calendar.mjs.map +1 -1
  4. package/fesm2022/dereekb-dbx-form-mapbox.mjs +28 -28
  5. package/fesm2022/dereekb-dbx-form-mapbox.mjs.map +1 -1
  6. package/fesm2022/dereekb-dbx-form.mjs +429 -600
  7. package/fesm2022/dereekb-dbx-form.mjs.map +1 -1
  8. package/lib/formly/field/value/phone/_phone.scss +1 -0
  9. package/lib/style/_theming.scss +196 -1
  10. package/package.json +26 -32
  11. package/types/dereekb-dbx-form-calendar.d.ts +679 -0
  12. package/types/dereekb-dbx-form-mapbox.d.ts +216 -0
  13. package/types/dereekb-dbx-form.d.ts +3050 -0
  14. package/calendar/index.d.ts +0 -1
  15. package/calendar/lib/calendar.module.d.ts +0 -19
  16. package/calendar/lib/calendar.schedule.selection.cell.component.d.ts +0 -16
  17. package/calendar/lib/calendar.schedule.selection.component.d.ts +0 -74
  18. package/calendar/lib/calendar.schedule.selection.d.ts +0 -29
  19. package/calendar/lib/calendar.schedule.selection.days.component.d.ts +0 -15
  20. package/calendar/lib/calendar.schedule.selection.days.form.component.d.ts +0 -10
  21. package/calendar/lib/calendar.schedule.selection.dialog.button.component.d.ts +0 -15
  22. package/calendar/lib/calendar.schedule.selection.dialog.component.d.ts +0 -24
  23. package/calendar/lib/calendar.schedule.selection.form.d.ts +0 -4
  24. package/calendar/lib/calendar.schedule.selection.popover.button.component.d.ts +0 -17
  25. package/calendar/lib/calendar.schedule.selection.popover.component.d.ts +0 -14
  26. package/calendar/lib/calendar.schedule.selection.popover.content.component.d.ts +0 -5
  27. package/calendar/lib/calendar.schedule.selection.range.component.d.ts +0 -52
  28. package/calendar/lib/calendar.schedule.selection.store.d.ts +0 -282
  29. package/calendar/lib/calendar.schedule.selection.store.provide.d.ts +0 -23
  30. package/calendar/lib/calendar.schedule.selection.toggle.button.component.d.ts +0 -18
  31. package/calendar/lib/field/index.d.ts +0 -1
  32. package/calendar/lib/field/schedule/calendar.schedule.field.component.d.ts +0 -102
  33. package/calendar/lib/field/schedule/calendar.schedule.field.d.ts +0 -6
  34. package/calendar/lib/field/schedule/calendar.schedule.module.d.ts +0 -8
  35. package/calendar/lib/field/schedule/index.d.ts +0 -3
  36. package/calendar/lib/index.d.ts +0 -17
  37. package/esm2022/calendar/dereekb-dbx-form-calendar.mjs +0 -5
  38. package/esm2022/calendar/index.mjs +0 -2
  39. package/esm2022/calendar/lib/calendar.module.mjs +0 -84
  40. package/esm2022/calendar/lib/calendar.schedule.selection.cell.component.mjs +0 -42
  41. package/esm2022/calendar/lib/calendar.schedule.selection.component.mjs +0 -156
  42. package/esm2022/calendar/lib/calendar.schedule.selection.days.component.mjs +0 -47
  43. package/esm2022/calendar/lib/calendar.schedule.selection.days.form.component.mjs +0 -22
  44. package/esm2022/calendar/lib/calendar.schedule.selection.dialog.button.component.mjs +0 -32
  45. package/esm2022/calendar/lib/calendar.schedule.selection.dialog.component.mjs +0 -59
  46. package/esm2022/calendar/lib/calendar.schedule.selection.form.mjs +0 -15
  47. package/esm2022/calendar/lib/calendar.schedule.selection.mjs +0 -31
  48. package/esm2022/calendar/lib/calendar.schedule.selection.popover.button.component.mjs +0 -50
  49. package/esm2022/calendar/lib/calendar.schedule.selection.popover.component.mjs +0 -41
  50. package/esm2022/calendar/lib/calendar.schedule.selection.popover.content.component.mjs +0 -34
  51. package/esm2022/calendar/lib/calendar.schedule.selection.range.component.mjs +0 -165
  52. package/esm2022/calendar/lib/calendar.schedule.selection.store.mjs +0 -785
  53. package/esm2022/calendar/lib/calendar.schedule.selection.store.provide.mjs +0 -48
  54. package/esm2022/calendar/lib/calendar.schedule.selection.toggle.button.component.mjs +0 -67
  55. package/esm2022/calendar/lib/field/index.mjs +0 -3
  56. package/esm2022/calendar/lib/field/schedule/calendar.schedule.field.component.mjs +0 -154
  57. package/esm2022/calendar/lib/field/schedule/calendar.schedule.field.mjs +0 -28
  58. package/esm2022/calendar/lib/field/schedule/calendar.schedule.module.mjs +0 -26
  59. package/esm2022/calendar/lib/field/schedule/index.mjs +0 -4
  60. package/esm2022/calendar/lib/index.mjs +0 -18
  61. package/esm2022/dereekb-dbx-form.mjs +0 -5
  62. package/esm2022/index.mjs +0 -2
  63. package/esm2022/lib/form/action/form.action.dialog.component.mjs +0 -79
  64. package/esm2022/lib/form/action/form.action.directive.mjs +0 -167
  65. package/esm2022/lib/form/action/form.action.module.mjs +0 -19
  66. package/esm2022/lib/form/action/index.mjs +0 -5
  67. package/esm2022/lib/form/action/transition/form.action.transition.module.mjs +0 -19
  68. package/esm2022/lib/form/action/transition/form.action.transition.safety.directive.mjs +0 -28
  69. package/esm2022/lib/form/action/transition/index.mjs +0 -3
  70. package/esm2022/lib/form/form.angular.util.mjs +0 -13
  71. package/esm2022/lib/form/form.mjs +0 -42
  72. package/esm2022/lib/form/form.module.mjs +0 -17
  73. package/esm2022/lib/form/index.mjs +0 -6
  74. package/esm2022/lib/form/io/form.change.directive.mjs +0 -36
  75. package/esm2022/lib/form/io/form.input.directive.mjs +0 -95
  76. package/esm2022/lib/form/io/form.io.module.mjs +0 -26
  77. package/esm2022/lib/form/io/form.loading.directive.mjs +0 -36
  78. package/esm2022/lib/form/io/index.mjs +0 -5
  79. package/esm2022/lib/form.module.mjs +0 -18
  80. package/esm2022/lib/form.providers.mjs +0 -32
  81. package/esm2022/lib/formly/config/index.mjs +0 -2
  82. package/esm2022/lib/formly/config/validation.mjs +0 -23
  83. package/esm2022/lib/formly/field/checklist/checklist.field.mjs +0 -102
  84. package/esm2022/lib/formly/field/checklist/checklist.item.field.component.mjs +0 -86
  85. package/esm2022/lib/formly/field/checklist/checklist.item.field.content.default.component.mjs +0 -50
  86. package/esm2022/lib/formly/field/checklist/checklist.item.field.mjs +0 -14
  87. package/esm2022/lib/formly/field/checklist/checklist.item.field.module.mjs +0 -30
  88. package/esm2022/lib/formly/field/checklist/checklist.item.mjs +0 -2
  89. package/esm2022/lib/formly/field/checklist/index.mjs +0 -7
  90. package/esm2022/lib/formly/field/component/component.field.component.mjs +0 -25
  91. package/esm2022/lib/formly/field/component/component.field.mjs +0 -7
  92. package/esm2022/lib/formly/field/component/component.field.module.mjs +0 -26
  93. package/esm2022/lib/formly/field/component/index.mjs +0 -4
  94. package/esm2022/lib/formly/field/field.mjs +0 -97
  95. package/esm2022/lib/formly/field/form.field.module.mjs +0 -22
  96. package/esm2022/lib/formly/field/index.mjs +0 -9
  97. package/esm2022/lib/formly/field/selection/index.mjs +0 -8
  98. package/esm2022/lib/formly/field/selection/list/index.mjs +0 -4
  99. package/esm2022/lib/formly/field/selection/list/list.field.component.mjs +0 -90
  100. package/esm2022/lib/formly/field/selection/list/list.field.mjs +0 -15
  101. package/esm2022/lib/formly/field/selection/list/list.field.module.mjs +0 -26
  102. package/esm2022/lib/formly/field/selection/pickable/index.mjs +0 -8
  103. package/esm2022/lib/formly/field/selection/pickable/pickable.chip.field.component.mjs +0 -37
  104. package/esm2022/lib/formly/field/selection/pickable/pickable.field.directive.mjs +0 -272
  105. package/esm2022/lib/formly/field/selection/pickable/pickable.field.mjs +0 -26
  106. package/esm2022/lib/formly/field/selection/pickable/pickable.field.module.mjs +0 -33
  107. package/esm2022/lib/formly/field/selection/pickable/pickable.list.field.component.mjs +0 -130
  108. package/esm2022/lib/formly/field/selection/pickable/pickable.mjs +0 -2
  109. package/esm2022/lib/formly/field/selection/pickable/pickable.util.mjs +0 -35
  110. package/esm2022/lib/formly/field/selection/searchable/index.mjs +0 -9
  111. package/esm2022/lib/formly/field/selection/searchable/searchable.chip.field.component.mjs +0 -70
  112. package/esm2022/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.mjs +0 -90
  113. package/esm2022/lib/formly/field/selection/searchable/searchable.field.directive.mjs +0 -288
  114. package/esm2022/lib/formly/field/selection/searchable/searchable.field.mjs +0 -69
  115. package/esm2022/lib/formly/field/selection/searchable/searchable.field.module.mjs +0 -34
  116. package/esm2022/lib/formly/field/selection/searchable/searchable.mjs +0 -2
  117. package/esm2022/lib/formly/field/selection/searchable/searchable.text.field.component.mjs +0 -72
  118. package/esm2022/lib/formly/field/selection/searchable/text.chip.field.mjs +0 -15
  119. package/esm2022/lib/formly/field/selection/selection.field.mjs +0 -39
  120. package/esm2022/lib/formly/field/selection/selection.mjs +0 -2
  121. package/esm2022/lib/formly/field/selection/selection.module.mjs +0 -28
  122. package/esm2022/lib/formly/field/selection/sourceselect/index.mjs +0 -5
  123. package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.field.component.mjs +0 -325
  124. package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.field.mjs +0 -14
  125. package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.field.module.mjs +0 -26
  126. package/esm2022/lib/formly/field/selection/sourceselect/sourceselect.mjs +0 -2
  127. package/esm2022/lib/formly/field/texteditor/index.mjs +0 -4
  128. package/esm2022/lib/formly/field/texteditor/texteditor.field.component.mjs +0 -97
  129. package/esm2022/lib/formly/field/texteditor/texteditor.field.mjs +0 -21
  130. package/esm2022/lib/formly/field/texteditor/texteditor.field.module.mjs +0 -26
  131. package/esm2022/lib/formly/field/value/array/array.field.component.mjs +0 -231
  132. package/esm2022/lib/formly/field/value/array/array.field.mjs +0 -28
  133. package/esm2022/lib/formly/field/value/array/array.field.module.mjs +0 -26
  134. package/esm2022/lib/formly/field/value/array/index.mjs +0 -4
  135. package/esm2022/lib/formly/field/value/boolean/boolean.field.mjs +0 -51
  136. package/esm2022/lib/formly/field/value/boolean/boolean.field.module.mjs +0 -19
  137. package/esm2022/lib/formly/field/value/boolean/index.mjs +0 -3
  138. package/esm2022/lib/formly/field/value/date/date.field.module.mjs +0 -36
  139. package/esm2022/lib/formly/field/value/date/date.value.mjs +0 -133
  140. package/esm2022/lib/formly/field/value/date/datetime.field.component.mjs +0 -737
  141. package/esm2022/lib/formly/field/value/date/datetime.field.mjs +0 -151
  142. package/esm2022/lib/formly/field/value/date/datetime.field.service.mjs +0 -23
  143. package/esm2022/lib/formly/field/value/date/datetime.mjs +0 -26
  144. package/esm2022/lib/formly/field/value/date/datetime.preset.mjs +0 -31
  145. package/esm2022/lib/formly/field/value/date/fixeddaterange.field.component.mjs +0 -521
  146. package/esm2022/lib/formly/field/value/date/index.mjs +0 -10
  147. package/esm2022/lib/formly/field/value/hidden.field.mjs +0 -8
  148. package/esm2022/lib/formly/field/value/index.mjs +0 -9
  149. package/esm2022/lib/formly/field/value/number/index.mjs +0 -3
  150. package/esm2022/lib/formly/field/value/number/number.field.mjs +0 -75
  151. package/esm2022/lib/formly/field/value/number/number.field.module.mjs +0 -18
  152. package/esm2022/lib/formly/field/value/phone/index.mjs +0 -4
  153. package/esm2022/lib/formly/field/value/phone/phone.field.component.mjs +0 -104
  154. package/esm2022/lib/formly/field/value/phone/phone.field.mjs +0 -66
  155. package/esm2022/lib/formly/field/value/phone/phone.field.module.mjs +0 -26
  156. package/esm2022/lib/formly/field/value/text/index.mjs +0 -5
  157. package/esm2022/lib/formly/field/value/text/text.additional.field.mjs +0 -114
  158. package/esm2022/lib/formly/field/value/text/text.address.field.mjs +0 -73
  159. package/esm2022/lib/formly/field/value/text/text.field.mjs +0 -47
  160. package/esm2022/lib/formly/field/value/text/text.field.module.mjs +0 -20
  161. package/esm2022/lib/formly/field/value/value.module.mjs +0 -31
  162. package/esm2022/lib/formly/field/wrapper/autotouch.wrapper.component.mjs +0 -32
  163. package/esm2022/lib/formly/field/wrapper/expand.wrapper.component.mjs +0 -34
  164. package/esm2022/lib/formly/field/wrapper/expand.wrapper.delegate.mjs +0 -58
  165. package/esm2022/lib/formly/field/wrapper/flex.wrapper.component.mjs +0 -38
  166. package/esm2022/lib/formly/field/wrapper/index.mjs +0 -13
  167. package/esm2022/lib/formly/field/wrapper/info.wrapper.component.mjs +0 -48
  168. package/esm2022/lib/formly/field/wrapper/section.wrapper.component.mjs +0 -31
  169. package/esm2022/lib/formly/field/wrapper/style.wrapper.component.mjs +0 -53
  170. package/esm2022/lib/formly/field/wrapper/subsection.wrapper.component.mjs +0 -30
  171. package/esm2022/lib/formly/field/wrapper/toggle.wrapper.component.mjs +0 -55
  172. package/esm2022/lib/formly/field/wrapper/working.wrapper.component.mjs +0 -45
  173. package/esm2022/lib/formly/field/wrapper/wrapper.key.mjs +0 -10
  174. package/esm2022/lib/formly/field/wrapper/wrapper.mjs +0 -77
  175. package/esm2022/lib/formly/field/wrapper/wrapper.module.mjs +0 -101
  176. package/esm2022/lib/formly/form/form.form.mjs +0 -17
  177. package/esm2022/lib/formly/form/form.form.module.mjs +0 -20
  178. package/esm2022/lib/formly/form/index.mjs +0 -4
  179. package/esm2022/lib/formly/form/search.form.component.mjs +0 -35
  180. package/esm2022/lib/formly/formly.component.template.mjs +0 -29
  181. package/esm2022/lib/formly/formly.context.directive.mjs +0 -23
  182. package/esm2022/lib/formly/formly.context.mjs +0 -102
  183. package/esm2022/lib/formly/formly.directive.mjs +0 -84
  184. package/esm2022/lib/formly/formly.form.component.mjs +0 -194
  185. package/esm2022/lib/formly/formly.module.mjs +0 -40
  186. package/esm2022/lib/formly/formly.providers.mjs +0 -8
  187. package/esm2022/lib/formly/index.mjs +0 -12
  188. package/esm2022/lib/formly/template/available.mjs +0 -18
  189. package/esm2022/lib/formly/template/available.module.mjs +0 -18
  190. package/esm2022/lib/formly/template/index.mjs +0 -8
  191. package/esm2022/lib/formly/template/login.mjs +0 -92
  192. package/esm2022/lib/formly/template/login.module.mjs +0 -17
  193. package/esm2022/lib/formly/template/timezone.mjs +0 -46
  194. package/esm2022/lib/formly/template/timezone.module.mjs +0 -17
  195. package/esm2022/lib/formly/template/website.mjs +0 -25
  196. package/esm2022/lib/index.mjs +0 -7
  197. package/esm2022/lib/layout/form.layout.module.mjs +0 -20
  198. package/esm2022/lib/layout/form.spacer.directive.mjs +0 -20
  199. package/esm2022/lib/layout/index.mjs +0 -3
  200. package/esm2022/lib/validator/available.mjs +0 -31
  201. package/esm2022/lib/validator/boolean.mjs +0 -12
  202. package/esm2022/lib/validator/email.mjs +0 -6
  203. package/esm2022/lib/validator/field.mjs +0 -31
  204. package/esm2022/lib/validator/index.mjs +0 -8
  205. package/esm2022/lib/validator/number.mjs +0 -53
  206. package/esm2022/lib/validator/phone.mjs +0 -61
  207. package/esm2022/lib/validator/website.mjs +0 -68
  208. package/esm2022/mapbox/dereekb-dbx-form-mapbox.mjs +0 -5
  209. package/esm2022/mapbox/index.mjs +0 -3
  210. package/esm2022/mapbox/lib/field/index.mjs +0 -3
  211. package/esm2022/mapbox/lib/field/latlng/index.mjs +0 -5
  212. package/esm2022/mapbox/lib/field/latlng/latlng.field.component.mjs +0 -262
  213. package/esm2022/mapbox/lib/field/latlng/latlng.field.marker.component.mjs +0 -34
  214. package/esm2022/mapbox/lib/field/latlng/latlng.field.mjs +0 -35
  215. package/esm2022/mapbox/lib/field/latlng/latlng.module.mjs +0 -26
  216. package/esm2022/mapbox/lib/field/zoom/index.mjs +0 -4
  217. package/esm2022/mapbox/lib/field/zoom/zoom.field.component.mjs +0 -146
  218. package/esm2022/mapbox/lib/field/zoom/zoom.field.mjs +0 -23
  219. package/esm2022/mapbox/lib/field/zoom/zoom.module.mjs +0 -26
  220. package/esm2022/mapbox/lib/mapbox.module.mjs +0 -16
  221. package/index.d.ts +0 -1
  222. package/lib/form/action/form.action.dialog.component.d.ts +0 -63
  223. package/lib/form/action/form.action.directive.d.ts +0 -66
  224. package/lib/form/action/form.action.module.d.ts +0 -10
  225. package/lib/form/action/index.d.ts +0 -4
  226. package/lib/form/action/transition/form.action.transition.module.d.ts +0 -10
  227. package/lib/form/action/transition/form.action.transition.safety.directive.d.ts +0 -17
  228. package/lib/form/action/transition/index.d.ts +0 -2
  229. package/lib/form/form.angular.util.d.ts +0 -15
  230. package/lib/form/form.d.ts +0 -92
  231. package/lib/form/form.module.d.ts +0 -9
  232. package/lib/form/index.d.ts +0 -5
  233. package/lib/form/io/form.change.directive.d.ts +0 -17
  234. package/lib/form/io/form.input.directive.d.ts +0 -28
  235. package/lib/form/io/form.io.module.d.ts +0 -16
  236. package/lib/form/io/form.loading.directive.d.ts +0 -23
  237. package/lib/form/io/index.d.ts +0 -4
  238. package/lib/form.module.d.ts +0 -10
  239. package/lib/form.providers.d.ts +0 -8
  240. package/lib/formly/config/index.d.ts +0 -1
  241. package/lib/formly/config/validation.d.ts +0 -23
  242. package/lib/formly/field/checklist/checklist.field.d.ts +0 -44
  243. package/lib/formly/field/checklist/checklist.item.d.ts +0 -36
  244. package/lib/formly/field/checklist/checklist.item.field.component.d.ts +0 -43
  245. package/lib/formly/field/checklist/checklist.item.field.content.default.component.d.ts +0 -10
  246. package/lib/formly/field/checklist/checklist.item.field.d.ts +0 -7
  247. package/lib/formly/field/checklist/checklist.item.field.module.d.ts +0 -10
  248. package/lib/formly/field/checklist/index.d.ts +0 -6
  249. package/lib/formly/field/component/component.field.component.d.ts +0 -12
  250. package/lib/formly/field/component/component.field.d.ts +0 -3
  251. package/lib/formly/field/component/component.field.module.d.ts +0 -8
  252. package/lib/formly/field/component/index.d.ts +0 -3
  253. package/lib/formly/field/field.d.ts +0 -99
  254. package/lib/formly/field/form.field.module.d.ts +0 -12
  255. package/lib/formly/field/index.d.ts +0 -8
  256. package/lib/formly/field/selection/index.d.ts +0 -7
  257. package/lib/formly/field/selection/list/index.d.ts +0 -3
  258. package/lib/formly/field/selection/list/list.field.component.d.ts +0 -55
  259. package/lib/formly/field/selection/list/list.field.d.ts +0 -8
  260. package/lib/formly/field/selection/list/list.field.module.d.ts +0 -8
  261. package/lib/formly/field/selection/pickable/index.d.ts +0 -7
  262. package/lib/formly/field/selection/pickable/pickable.chip.field.component.d.ts +0 -10
  263. package/lib/formly/field/selection/pickable/pickable.d.ts +0 -26
  264. package/lib/formly/field/selection/pickable/pickable.field.d.ts +0 -8
  265. package/lib/formly/field/selection/pickable/pickable.field.directive.d.ts +0 -169
  266. package/lib/formly/field/selection/pickable/pickable.field.module.d.ts +0 -9
  267. package/lib/formly/field/selection/pickable/pickable.list.field.component.d.ts +0 -39
  268. package/lib/formly/field/selection/pickable/pickable.util.d.ts +0 -14
  269. package/lib/formly/field/selection/searchable/index.d.ts +0 -8
  270. package/lib/formly/field/selection/searchable/searchable.chip.field.component.d.ts +0 -28
  271. package/lib/formly/field/selection/searchable/searchable.d.ts +0 -39
  272. package/lib/formly/field/selection/searchable/searchable.field.autocomplete.item.component.d.ts +0 -22
  273. package/lib/formly/field/selection/searchable/searchable.field.d.ts +0 -25
  274. package/lib/formly/field/selection/searchable/searchable.field.directive.d.ts +0 -163
  275. package/lib/formly/field/selection/searchable/searchable.field.module.d.ts +0 -10
  276. package/lib/formly/field/selection/searchable/searchable.text.field.component.d.ts +0 -24
  277. package/lib/formly/field/selection/searchable/text.chip.field.d.ts +0 -8
  278. package/lib/formly/field/selection/selection.d.ts +0 -26
  279. package/lib/formly/field/selection/selection.field.d.ts +0 -38
  280. package/lib/formly/field/selection/selection.module.d.ts +0 -18
  281. package/lib/formly/field/selection/sourceselect/index.d.ts +0 -4
  282. package/lib/formly/field/selection/sourceselect/sourceselect.d.ts +0 -116
  283. package/lib/formly/field/selection/sourceselect/sourceselect.field.component.d.ts +0 -95
  284. package/lib/formly/field/selection/sourceselect/sourceselect.field.d.ts +0 -7
  285. package/lib/formly/field/selection/sourceselect/sourceselect.field.module.d.ts +0 -8
  286. package/lib/formly/field/texteditor/index.d.ts +0 -3
  287. package/lib/formly/field/texteditor/texteditor.field.component.d.ts +0 -24
  288. package/lib/formly/field/texteditor/texteditor.field.d.ts +0 -6
  289. package/lib/formly/field/texteditor/texteditor.field.module.d.ts +0 -8
  290. package/lib/formly/field/value/array/array.field.component.d.ts +0 -89
  291. package/lib/formly/field/value/array/array.field.d.ts +0 -40
  292. package/lib/formly/field/value/array/array.field.module.d.ts +0 -8
  293. package/lib/formly/field/value/array/index.d.ts +0 -3
  294. package/lib/formly/field/value/boolean/boolean.field.d.ts +0 -8
  295. package/lib/formly/field/value/boolean/boolean.field.module.d.ts +0 -9
  296. package/lib/formly/field/value/boolean/index.d.ts +0 -2
  297. package/lib/formly/field/value/date/date.field.module.d.ts +0 -10
  298. package/lib/formly/field/value/date/date.value.d.ts +0 -32
  299. package/lib/formly/field/value/date/datetime.d.ts +0 -56
  300. package/lib/formly/field/value/date/datetime.field.component.d.ts +0 -307
  301. package/lib/formly/field/value/date/datetime.field.d.ts +0 -31
  302. package/lib/formly/field/value/date/datetime.field.service.d.ts +0 -12
  303. package/lib/formly/field/value/date/datetime.preset.d.ts +0 -2
  304. package/lib/formly/field/value/date/fixeddaterange.field.component.d.ts +0 -163
  305. package/lib/formly/field/value/date/index.d.ts +0 -9
  306. package/lib/formly/field/value/hidden.field.d.ts +0 -4
  307. package/lib/formly/field/value/index.d.ts +0 -8
  308. package/lib/formly/field/value/number/index.d.ts +0 -2
  309. package/lib/formly/field/value/number/number.field.d.ts +0 -46
  310. package/lib/formly/field/value/number/number.field.module.d.ts +0 -8
  311. package/lib/formly/field/value/phone/index.d.ts +0 -3
  312. package/lib/formly/field/value/phone/phone.field.component.d.ts +0 -35
  313. package/lib/formly/field/value/phone/phone.field.d.ts +0 -28
  314. package/lib/formly/field/value/phone/phone.field.module.d.ts +0 -8
  315. package/lib/formly/field/value/text/index.d.ts +0 -4
  316. package/lib/formly/field/value/text/text.additional.field.d.ts +0 -24
  317. package/lib/formly/field/value/text/text.address.field.d.ts +0 -43
  318. package/lib/formly/field/value/text/text.field.d.ts +0 -21
  319. package/lib/formly/field/value/text/text.field.module.d.ts +0 -10
  320. package/lib/formly/field/value/value.module.d.ts +0 -21
  321. package/lib/formly/field/wrapper/autotouch.wrapper.component.d.ts +0 -11
  322. package/lib/formly/field/wrapper/expand.wrapper.component.d.ts +0 -14
  323. package/lib/formly/field/wrapper/expand.wrapper.delegate.d.ts +0 -31
  324. package/lib/formly/field/wrapper/flex.wrapper.component.d.ts +0 -25
  325. package/lib/formly/field/wrapper/index.d.ts +0 -12
  326. package/lib/formly/field/wrapper/info.wrapper.component.d.ts +0 -11
  327. package/lib/formly/field/wrapper/section.wrapper.component.d.ts +0 -10
  328. package/lib/formly/field/wrapper/style.wrapper.component.d.ts +0 -27
  329. package/lib/formly/field/wrapper/subsection.wrapper.component.d.ts +0 -10
  330. package/lib/formly/field/wrapper/toggle.wrapper.component.d.ts +0 -17
  331. package/lib/formly/field/wrapper/working.wrapper.component.d.ts +0 -21
  332. package/lib/formly/field/wrapper/wrapper.d.ts +0 -35
  333. package/lib/formly/field/wrapper/wrapper.key.d.ts +0 -9
  334. package/lib/formly/field/wrapper/wrapper.module.d.ts +0 -17
  335. package/lib/formly/form/form.form.d.ts +0 -11
  336. package/lib/formly/form/form.form.module.d.ts +0 -10
  337. package/lib/formly/form/index.d.ts +0 -3
  338. package/lib/formly/form/search.form.component.d.ts +0 -13
  339. package/lib/formly/formly.component.template.d.ts +0 -19
  340. package/lib/formly/formly.context.d.ts +0 -57
  341. package/lib/formly/formly.context.directive.d.ts +0 -18
  342. package/lib/formly/formly.directive.d.ts +0 -56
  343. package/lib/formly/formly.form.component.d.ts +0 -52
  344. package/lib/formly/formly.module.d.ts +0 -15
  345. package/lib/formly/formly.providers.d.ts +0 -1
  346. package/lib/formly/index.d.ts +0 -11
  347. package/lib/formly/template/available.d.ts +0 -7
  348. package/lib/formly/template/available.module.d.ts +0 -8
  349. package/lib/formly/template/index.d.ts +0 -7
  350. package/lib/formly/template/login.d.ts +0 -66
  351. package/lib/formly/template/login.module.d.ts +0 -7
  352. package/lib/formly/template/timezone.d.ts +0 -20
  353. package/lib/formly/template/timezone.module.d.ts +0 -7
  354. package/lib/formly/template/website.d.ts +0 -15
  355. package/lib/index.d.ts +0 -6
  356. package/lib/layout/form.layout.module.d.ts +0 -10
  357. package/lib/layout/form.spacer.directive.d.ts +0 -8
  358. package/lib/layout/index.d.ts +0 -2
  359. package/lib/validator/available.d.ts +0 -30
  360. package/lib/validator/boolean.d.ts +0 -2
  361. package/lib/validator/email.d.ts +0 -2
  362. package/lib/validator/field.d.ts +0 -32
  363. package/lib/validator/index.d.ts +0 -7
  364. package/lib/validator/number.d.ts +0 -23
  365. package/lib/validator/phone.d.ts +0 -16
  366. package/lib/validator/website.d.ts +0 -31
  367. package/mapbox/index.d.ts +0 -2
  368. package/mapbox/lib/field/index.d.ts +0 -2
  369. package/mapbox/lib/field/latlng/index.d.ts +0 -4
  370. package/mapbox/lib/field/latlng/latlng.field.component.d.ts +0 -116
  371. package/mapbox/lib/field/latlng/latlng.field.d.ts +0 -6
  372. package/mapbox/lib/field/latlng/latlng.field.marker.component.d.ts +0 -12
  373. package/mapbox/lib/field/latlng/latlng.module.d.ts +0 -8
  374. package/mapbox/lib/field/zoom/index.d.ts +0 -3
  375. package/mapbox/lib/field/zoom/zoom.field.component.d.ts +0 -68
  376. package/mapbox/lib/field/zoom/zoom.field.d.ts +0 -6
  377. package/mapbox/lib/field/zoom/zoom.module.d.ts +0 -8
  378. package/mapbox/lib/mapbox.module.d.ts +0 -8
@@ -1,23 +0,0 @@
1
- import { Provider } from '@angular/core';
2
- import { DbxCalendarScheduleSelectionStore } from './calendar.schedule.selection.store';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Token used by provideCalendarScheduleSelectionStoreIfDoesNotExist() to prevent injecting a parent DbxCalendarScheduleSelectionStore into the child view.
6
- */
7
- export declare class DbxCalendarScheduleSelectionStoreProviderBlock {
8
- readonly dbxCalendarScheduleSelectionStore: DbxCalendarScheduleSelectionStore;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxCalendarScheduleSelectionStoreProviderBlock, never>;
10
- static ɵprov: i0.ɵɵInjectableDeclaration<DbxCalendarScheduleSelectionStoreProviderBlock>;
11
- }
12
- export declare class DbxCalendarScheduleSelectionStoreInjectionBlockDirective {
13
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxCalendarScheduleSelectionStoreInjectionBlockDirective, never>;
14
- static ɵdir: i0.ɵɵDirectiveDeclaration<DbxCalendarScheduleSelectionStoreInjectionBlockDirective, "[dbxCalendarScheduleSelectionStoreParentBlocker]", never, {}, {}, never, never, true, never>;
15
- }
16
- /**
17
- * Creates a Provider that initializes a new DbxCalendarScheduleSelectionStore if a parent does not exist.
18
- *
19
- * If a DbxCalendarScheduleSelectionStoreInjectionBlock is available in the context, and references the same dbxCalendarScheduleSelectionStore that is attempting to be injected, a new DbxCalendarScheduleSelectionStore is created.
20
- *
21
- * @returns
22
- */
23
- export declare function provideCalendarScheduleSelectionStoreIfParentIsUnavailable(): Provider;
@@ -1,18 +0,0 @@
1
- import { DbxCalendarScheduleSelectionStore } from './calendar.schedule.selection.store';
2
- import { DbxButtonDisplay } from '@dereekb/dbx-core';
3
- import { type Maybe } from '@dereekb/util';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Toggle button for selecting and clearing the current selection.
7
- */
8
- export declare class DbxScheduleSelectionCalendarSelectionToggleButtonComponent {
9
- readonly disabled: import("@angular/core").InputSignal<Maybe<boolean>>;
10
- readonly dbxCalendarScheduleSelectionStore: DbxCalendarScheduleSelectionStore;
11
- readonly selectionModeSignal: import("@angular/core").Signal<import("./calendar.schedule.selection.store").DbxCalendarScheduleSelectionStoreSelectionMode>;
12
- readonly nextToggleSelectionSignal: import("@angular/core").Signal<Maybe<import("@dereekb/util").AllOrNoneSelection>>;
13
- readonly disableButtonSignal: import("@angular/core").Signal<boolean>;
14
- readonly buttonDisplaySignal: import("@angular/core").Signal<DbxButtonDisplay>;
15
- toggleSelection(): void;
16
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxScheduleSelectionCalendarSelectionToggleButtonComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<DbxScheduleSelectionCalendarSelectionToggleButtonComponent, "dbx-schedule-selection-calendar-selection-toggle-button", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
18
- }
@@ -1 +0,0 @@
1
- export * from './schedule';
@@ -1,102 +0,0 @@
1
- import { AbstractControl, FormGroup } from '@angular/forms';
2
- import { CompactContextStore } from '@dereekb/dbx-web';
3
- import { OnDestroy, OnInit } from '@angular/core';
4
- import { FieldTypeConfig, FormlyFieldProps } from '@ngx-formly/core';
5
- import { ArrayOrValue, type Maybe } from '@dereekb/util';
6
- import { FieldType } from '@ngx-formly/material';
7
- import { ObservableOrValue } from '@dereekb/rxjs';
8
- import { DateRange, TimezoneString, DateCellScheduleDateFilterConfig, DateCellScheduleDayCode, DateOrDateRangeOrDateCellIndexOrDateCellRange } from '@dereekb/date';
9
- import { CalendarScheduleSelectionState, DbxCalendarScheduleSelectionStore } from '../../calendar.schedule.selection.store';
10
- import { MatFormFieldAppearance } from '@angular/material/form-field';
11
- import { DbxScheduleSelectionCalendarDatePopupContentConfig } from '../../calendar.schedule.selection.dialog.component';
12
- import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';
13
- import * as i0 from "@angular/core";
14
- export interface DbxFormCalendarDateCellScheduleRangeFieldProps extends Pick<FormlyFieldProps, 'label' | 'description' | 'readonly' | 'required'>, Pick<CalendarScheduleSelectionState, 'computeSelectionResultRelativeToFilter' | 'initialSelectionState'>, Partial<Pick<CalendarScheduleSelectionState, 'cellContentFactory'>> {
15
- readonly appearance?: MatFormFieldAppearance;
16
- /**
17
- * Whether or not to allow inputting custom text into the picker.
18
- *
19
- * If false, when the input text is picked the date picker will open.
20
- *
21
- * Is false by default.
22
- */
23
- readonly allowTextInput?: boolean;
24
- /**
25
- * Whether or not to hide the customize button. Defaults to false.
26
- */
27
- readonly hideCustomize?: boolean;
28
- /**
29
- * Whether or not to allow customizing before picking a date range to customize.
30
- *
31
- * Defaults to false.
32
- */
33
- readonly allowCustomizeWithoutDateRange?: boolean;
34
- /**
35
- * (Optional) Timezone to use for the output start date.
36
- *
37
- * If a filter is provided, this timezone overrides the filter's timezone output.
38
- */
39
- readonly outputTimezone?: ObservableOrValue<Maybe<TimezoneString>>;
40
- /**
41
- * (Optional) Default schedule days to allow.
42
- */
43
- readonly defaultScheduleDays?: ObservableOrValue<Maybe<Iterable<DateCellScheduleDayCode>>>;
44
- /**
45
- * Optional min/max date range to filter on. Works in conjuction with the filter.
46
- */
47
- readonly minMaxDateRange?: ObservableOrValue<Maybe<Partial<DateRange>>>;
48
- /**
49
- * (Optional) Observable with a filter value to apply to the date range.
50
- */
51
- readonly filter?: ObservableOrValue<Maybe<DateCellScheduleDateFilterConfig>>;
52
- /**
53
- * (Optional) Observable with days and values to exclude from the date range.
54
- */
55
- readonly exclusions?: ObservableOrValue<Maybe<ArrayOrValue<DateOrDateRangeOrDateCellIndexOrDateCellRange>>>;
56
- /**
57
- * Custom dialog content config for the popup
58
- */
59
- readonly dialogContentConfig?: Maybe<DbxScheduleSelectionCalendarDatePopupContentConfig>;
60
- /**
61
- * Custom details config for the date range
62
- */
63
- readonly customDetailsConfig?: Maybe<DbxInjectionComponentConfig>;
64
- }
65
- export declare class DbxFormCalendarDateScheduleRangeFieldComponent<T extends DbxFormCalendarDateCellScheduleRangeFieldProps = DbxFormCalendarDateCellScheduleRangeFieldProps> extends FieldType<FieldTypeConfig<T>> implements OnInit, OnDestroy {
66
- readonly compact: CompactContextStore | null;
67
- readonly dbxCalendarScheduleSelectionStore: DbxCalendarScheduleSelectionStore;
68
- private readonly _syncSub;
69
- private readonly _valueSub;
70
- private readonly _timezoneSub;
71
- private readonly _minMaxDateRangeSub;
72
- private readonly _defaultWeekSub;
73
- private readonly _filterSub;
74
- private readonly _exclusionsSub;
75
- private readonly _formControlObs;
76
- readonly formControl$: import("rxjs").Observable<AbstractControl<any, any>>;
77
- readonly value$: import("rxjs").Observable<any>;
78
- readonly disableCustomize$: import("rxjs").Observable<boolean>;
79
- readonly disabledSignal: import("@angular/core").Signal<boolean | undefined>;
80
- get formGroupName(): string;
81
- get formGroup(): FormGroup;
82
- get label(): Maybe<string>;
83
- get description(): Maybe<string>;
84
- get isReadonlyOrDisabled(): boolean;
85
- get openPickerOnTextClick(): boolean;
86
- get allowCustomizeWithoutDateRange(): boolean;
87
- get showCustomize(): boolean;
88
- get defaultScheduleDays(): ObservableOrValue<Maybe<Iterable<DateCellScheduleDayCode>>>;
89
- get minMaxDateRange(): ObservableOrValue<Maybe<Partial<DateRange>>>;
90
- get filter(): ObservableOrValue<Maybe<DateCellScheduleDateFilterConfig>>;
91
- get exclusions(): ObservableOrValue<Maybe<ArrayOrValue<DateOrDateRangeOrDateCellIndexOrDateCellRange>>>;
92
- get outputTimezone(): ObservableOrValue<Maybe<string>>;
93
- get initialSelectionState(): Maybe<import("@dereekb/util").AllOrNoneSelection>;
94
- get computeSelectionResultRelativeToFilter(): Maybe<boolean>;
95
- get dialogContentConfig(): Maybe<DbxScheduleSelectionCalendarDatePopupContentConfig>;
96
- get customDetailsConfig(): Maybe<DbxInjectionComponentConfig<unknown>>;
97
- get cellContentFactory(): import("@dereekb/dbx-form/calendar").CalendarScheduleSelectionCellContentFactory | undefined;
98
- ngOnInit(): void;
99
- ngOnDestroy(): void;
100
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxFormCalendarDateScheduleRangeFieldComponent<any>, never>;
101
- static ɵcmp: i0.ɵɵComponentDeclaration<DbxFormCalendarDateScheduleRangeFieldComponent<any>, "ng-component", never, {}, {}, never, never, true, never>;
102
- }
@@ -1,6 +0,0 @@
1
- import { type DescriptionFieldConfig, type FieldConfig, type LabeledFieldConfig } from '@dereekb/dbx-form';
2
- import { type FormlyFieldConfig } from '@ngx-formly/core';
3
- import { type DbxFormCalendarDateCellScheduleRangeFieldProps } from './calendar.schedule.field.component';
4
- export interface DateScheduleRangeFieldConfig extends Omit<LabeledFieldConfig, 'key' | 'placeholder'>, DescriptionFieldConfig, Partial<FieldConfig>, DbxFormCalendarDateCellScheduleRangeFieldProps {
5
- }
6
- export declare function dateScheduleRangeField(config?: DateScheduleRangeFieldConfig): FormlyFieldConfig;
@@ -1,8 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./calendar.schedule.field.component";
3
- import * as i2 from "@ngx-formly/core";
4
- export declare class DbxFormDateScheduleRangeFieldModule {
5
- static ɵfac: i0.ɵɵFactoryDeclaration<DbxFormDateScheduleRangeFieldModule, never>;
6
- static ɵmod: i0.ɵɵNgModuleDeclaration<DbxFormDateScheduleRangeFieldModule, never, [typeof i1.DbxFormCalendarDateScheduleRangeFieldComponent, typeof i2.FormlyModule], [typeof i1.DbxFormCalendarDateScheduleRangeFieldComponent]>;
7
- static ɵinj: i0.ɵɵInjectorDeclaration<DbxFormDateScheduleRangeFieldModule>;
8
- }
@@ -1,3 +0,0 @@
1
- export * from './calendar.schedule.field';
2
- export * from './calendar.schedule.field.component';
3
- export * from './calendar.schedule.module';
@@ -1,17 +0,0 @@
1
- export * from './field';
2
- export * from './calendar.module';
3
- export * from './calendar.schedule.selection.cell.component';
4
- export * from './calendar.schedule.selection.component';
5
- export * from './calendar.schedule.selection.days.component';
6
- export * from './calendar.schedule.selection.days.form.component';
7
- export * from './calendar.schedule.selection.dialog.component';
8
- export * from './calendar.schedule.selection.dialog.button.component';
9
- export * from './calendar.schedule.selection.form';
10
- export * from './calendar.schedule.selection.popover.button.component';
11
- export * from './calendar.schedule.selection.popover.component';
12
- export * from './calendar.schedule.selection.popover.content.component';
13
- export * from './calendar.schedule.selection.range.component';
14
- export * from './calendar.schedule.selection.store.provide';
15
- export * from './calendar.schedule.selection.store';
16
- export * from './calendar.schedule.selection';
17
- export * from './calendar.schedule.selection.toggle.button.component';
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyZWVrYi1kYngtZm9ybS1jYWxlbmRhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL2NhbGVuZGFyL3NyYy9kZXJlZWtiLWRieC1mb3JtLWNhbGVuZGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -1,2 +0,0 @@
1
- export * from './lib';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9jYWxlbmRhci9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYic7XG4iXX0=
@@ -1,84 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { DbxScheduleSelectionCalendarComponent } from './calendar.schedule.selection.component';
3
- import { DbxScheduleSelectionCalendarDatePopoverButtonComponent } from './calendar.schedule.selection.popover.button.component';
4
- import { DbxScheduleSelectionCalendarDateDaysComponent } from './calendar.schedule.selection.days.component';
5
- import { DbxScheduleSelectionCalendarDatePopoverComponent } from './calendar.schedule.selection.popover.component';
6
- import { DbxScheduleSelectionCalendarDatePopoverContentComponent } from './calendar.schedule.selection.popover.content.component';
7
- import { DbxScheduleSelectionCalendarDateRangeComponent } from './calendar.schedule.selection.range.component';
8
- import { DbxScheduleSelectionCalendarDateDaysFormComponent } from './calendar.schedule.selection.days.form.component';
9
- import { DbxScheduleSelectionCalendarCellComponent } from './calendar.schedule.selection.cell.component';
10
- import { DbxCalendarScheduleSelectionStoreInjectionBlockDirective } from './calendar.schedule.selection.store.provide';
11
- import { DbxScheduleSelectionCalendarDateDialogComponent } from './calendar.schedule.selection.dialog.component';
12
- import { DbxScheduleSelectionCalendarDateDialogButtonComponent } from './calendar.schedule.selection.dialog.button.component';
13
- import { DbxScheduleSelectionCalendarSelectionToggleButtonComponent } from './calendar.schedule.selection.toggle.button.component';
14
- import { DbxFormFormlyWrapperModule } from '@dereekb/dbx-form';
15
- import * as i0 from "@angular/core";
16
- const importsAndExports = [
17
- DbxScheduleSelectionCalendarComponent,
18
- DbxScheduleSelectionCalendarDateDaysComponent,
19
- DbxScheduleSelectionCalendarDateDaysFormComponent,
20
- DbxScheduleSelectionCalendarDateRangeComponent,
21
- DbxScheduleSelectionCalendarDatePopoverButtonComponent,
22
- DbxScheduleSelectionCalendarCellComponent,
23
- DbxScheduleSelectionCalendarDatePopoverComponent,
24
- DbxScheduleSelectionCalendarDatePopoverContentComponent,
25
- DbxCalendarScheduleSelectionStoreInjectionBlockDirective,
26
- DbxScheduleSelectionCalendarDateDialogComponent,
27
- DbxScheduleSelectionCalendarDateDialogButtonComponent,
28
- DbxScheduleSelectionCalendarSelectionToggleButtonComponent,
29
- //
30
- DbxFormFormlyWrapperModule
31
- ];
32
- export class DbxFormCalendarModule {
33
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
34
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormCalendarModule, imports: [DbxScheduleSelectionCalendarComponent,
35
- DbxScheduleSelectionCalendarDateDaysComponent,
36
- DbxScheduleSelectionCalendarDateDaysFormComponent,
37
- DbxScheduleSelectionCalendarDateRangeComponent,
38
- DbxScheduleSelectionCalendarDatePopoverButtonComponent,
39
- DbxScheduleSelectionCalendarCellComponent,
40
- DbxScheduleSelectionCalendarDatePopoverComponent,
41
- DbxScheduleSelectionCalendarDatePopoverContentComponent,
42
- DbxCalendarScheduleSelectionStoreInjectionBlockDirective,
43
- DbxScheduleSelectionCalendarDateDialogComponent,
44
- DbxScheduleSelectionCalendarDateDialogButtonComponent,
45
- DbxScheduleSelectionCalendarSelectionToggleButtonComponent,
46
- //
47
- DbxFormFormlyWrapperModule], exports: [DbxScheduleSelectionCalendarComponent,
48
- DbxScheduleSelectionCalendarDateDaysComponent,
49
- DbxScheduleSelectionCalendarDateDaysFormComponent,
50
- DbxScheduleSelectionCalendarDateRangeComponent,
51
- DbxScheduleSelectionCalendarDatePopoverButtonComponent,
52
- DbxScheduleSelectionCalendarCellComponent,
53
- DbxScheduleSelectionCalendarDatePopoverComponent,
54
- DbxScheduleSelectionCalendarDatePopoverContentComponent,
55
- DbxCalendarScheduleSelectionStoreInjectionBlockDirective,
56
- DbxScheduleSelectionCalendarDateDialogComponent,
57
- DbxScheduleSelectionCalendarDateDialogButtonComponent,
58
- DbxScheduleSelectionCalendarSelectionToggleButtonComponent,
59
- //
60
- DbxFormFormlyWrapperModule] });
61
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormCalendarModule, imports: [DbxScheduleSelectionCalendarComponent,
62
- DbxScheduleSelectionCalendarDateDaysComponent,
63
- DbxScheduleSelectionCalendarDateDaysFormComponent,
64
- DbxScheduleSelectionCalendarDateRangeComponent,
65
- DbxScheduleSelectionCalendarDatePopoverButtonComponent,
66
- DbxScheduleSelectionCalendarCellComponent,
67
- DbxScheduleSelectionCalendarDatePopoverComponent,
68
- DbxScheduleSelectionCalendarDatePopoverContentComponent,
69
- DbxScheduleSelectionCalendarDateDialogComponent,
70
- DbxScheduleSelectionCalendarDateDialogButtonComponent,
71
- DbxScheduleSelectionCalendarSelectionToggleButtonComponent,
72
- //
73
- DbxFormFormlyWrapperModule,
74
- //
75
- DbxFormFormlyWrapperModule] });
76
- }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormCalendarModule, decorators: [{
78
- type: NgModule,
79
- args: [{
80
- imports: importsAndExports,
81
- exports: importsAndExports
82
- }]
83
- }] });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vY2FsZW5kYXIvc3JjL2xpYi9jYWxlbmRhci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRyxPQUFPLEVBQUUsc0RBQXNELEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNoSSxPQUFPLEVBQUUsNkNBQTZDLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM3RyxPQUFPLEVBQUUsZ0RBQWdELEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsdURBQXVELEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNsSSxPQUFPLEVBQUUsOENBQThDLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMvRyxPQUFPLEVBQUUsaURBQWlELEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUN0SCxPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN6RyxPQUFPLEVBQUUsd0RBQXdELEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN2SCxPQUFPLEVBQUUsK0NBQStDLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNqSCxPQUFPLEVBQUUscURBQXFELEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM5SCxPQUFPLEVBQUUsMERBQTBELEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNuSSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFL0QsTUFBTSxpQkFBaUIsR0FBRztJQUN4QixxQ0FBcUM7SUFDckMsNkNBQTZDO0lBQzdDLGlEQUFpRDtJQUNqRCw4Q0FBOEM7SUFDOUMsc0RBQXNEO0lBQ3RELHlDQUF5QztJQUN6QyxnREFBZ0Q7SUFDaEQsdURBQXVEO0lBQ3ZELHdEQUF3RDtJQUN4RCwrQ0FBK0M7SUFDL0MscURBQXFEO0lBQ3JELDBEQUEwRDtJQUMxRCxFQUFFO0lBQ0YsMEJBQTBCO0NBQzNCLENBQUM7QUFNRixNQUFNLE9BQU8scUJBQXFCO3dHQUFyQixxQkFBcUI7eUdBQXJCLHFCQUFxQixZQXBCaEMscUNBQXFDO1lBQ3JDLDZDQUE2QztZQUM3QyxpREFBaUQ7WUFDakQsOENBQThDO1lBQzlDLHNEQUFzRDtZQUN0RCx5Q0FBeUM7WUFDekMsZ0RBQWdEO1lBQ2hELHVEQUF1RDtZQUN2RCx3REFBd0Q7WUFDeEQsK0NBQStDO1lBQy9DLHFEQUFxRDtZQUNyRCwwREFBMEQ7WUFDMUQsRUFBRTtZQUNGLDBCQUEwQixhQWIxQixxQ0FBcUM7WUFDckMsNkNBQTZDO1lBQzdDLGlEQUFpRDtZQUNqRCw4Q0FBOEM7WUFDOUMsc0RBQXNEO1lBQ3RELHlDQUF5QztZQUN6QyxnREFBZ0Q7WUFDaEQsdURBQXVEO1lBQ3ZELHdEQUF3RDtZQUN4RCwrQ0FBK0M7WUFDL0MscURBQXFEO1lBQ3JELDBEQUEwRDtZQUMxRCxFQUFFO1lBQ0YsMEJBQTBCO3lHQU9mLHFCQUFxQixZQXBCaEMscUNBQXFDO1lBQ3JDLDZDQUE2QztZQUM3QyxpREFBaUQ7WUFDakQsOENBQThDO1lBQzlDLHNEQUFzRDtZQUN0RCx5Q0FBeUM7WUFDekMsZ0RBQWdEO1lBQ2hELHVEQUF1RDtZQUV2RCwrQ0FBK0M7WUFDL0MscURBQXFEO1lBQ3JELDBEQUEwRDtZQUMxRCxFQUFFO1lBQ0YsMEJBQTBCO1lBRDFCLEVBQUU7WUFDRiwwQkFBMEI7OzRGQU9mLHFCQUFxQjtrQkFKakMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixPQUFPLEVBQUUsaUJBQWlCO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci5zY2hlZHVsZS5zZWxlY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wb3ZlckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnBvcG92ZXIuYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZURheXNDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5kYXlzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5wb3BvdmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcG92ZXJDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci5zY2hlZHVsZS5zZWxlY3Rpb24ucG9wb3Zlci5jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVJhbmdlQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci5zY2hlZHVsZS5zZWxlY3Rpb24ucmFuZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlRGF5c0Zvcm1Db21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5kYXlzLmZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci5zY2hlZHVsZS5zZWxlY3Rpb24uY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlSW5qZWN0aW9uQmxvY2tEaXJlY3RpdmUgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5zdG9yZS5wcm92aWRlJztcbmltcG9ydCB7IERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci5zY2hlZHVsZS5zZWxlY3Rpb24uZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZURpYWxvZ0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmRpYWxvZy5idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJTZWxlY3Rpb25Ub2dnbGVCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi50b2dnbGUuYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhGb3JtRm9ybWx5V3JhcHBlck1vZHVsZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1mb3JtJztcblxuY29uc3QgaW1wb3J0c0FuZEV4cG9ydHMgPSBbXG4gIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJDb21wb25lbnQsXG4gIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlRGF5c0NvbXBvbmVudCxcbiAgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVEYXlzRm9ybUNvbXBvbmVudCxcbiAgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVSYW5nZUNvbXBvbmVudCxcbiAgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVQb3BvdmVyQnV0dG9uQ29tcG9uZW50LFxuICBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQ2VsbENvbXBvbmVudCxcbiAgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVQb3BvdmVyQ29tcG9uZW50LFxuICBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcG92ZXJDb250ZW50Q29tcG9uZW50LFxuICBEYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmVJbmplY3Rpb25CbG9ja0RpcmVjdGl2ZSxcbiAgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckRhdGVEaWFsb2dDb21wb25lbnQsXG4gIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlRGlhbG9nQnV0dG9uQ29tcG9uZW50LFxuICBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyU2VsZWN0aW9uVG9nZ2xlQnV0dG9uQ29tcG9uZW50LFxuICAvL1xuICBEYnhGb3JtRm9ybWx5V3JhcHBlck1vZHVsZVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogaW1wb3J0c0FuZEV4cG9ydHMsXG4gIGV4cG9ydHM6IGltcG9ydHNBbmRFeHBvcnRzXG59KVxuZXhwb3J0IGNsYXNzIERieEZvcm1DYWxlbmRhck1vZHVsZSB7fVxuIl19
@@ -1,42 +0,0 @@
1
- import { Component, inject, ChangeDetectionStrategy, input, computed } from '@angular/core';
2
- import { DbxCalendarScheduleSelectionStore } from './calendar.schedule.selection.store';
3
- import { MatIconModule } from '@angular/material/icon';
4
- import { toObservable, toSignal } from '@angular/core/rxjs-interop';
5
- import { map, shareReplay, switchMap } from 'rxjs';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/material/icon";
8
- export class DbxScheduleSelectionCalendarCellComponent {
9
- dbxCalendarScheduleSelectionStore = inject(DbxCalendarScheduleSelectionStore);
10
- day = input.required();
11
- day$ = toObservable(this.day);
12
- cellContent$ = this.dbxCalendarScheduleSelectionStore.cellContentFactory$.pipe(switchMap((fn) => this.day$.pipe(map((x) => fn(x)))), shareReplay(1));
13
- contentSignal = toSignal(this.cellContent$, { initialValue: {} });
14
- iconSignal = computed(() => this.contentSignal().icon);
15
- textSignal = computed(() => this.contentSignal().text);
16
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxScheduleSelectionCalendarCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
17
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxScheduleSelectionCalendarCellComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar-cell", inputs: { day: { classPropertyName: "day", publicName: "day", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "dbx-schedule-selection-calendar-cell" }, ngImport: i0, template: `
18
- @if (iconSignal()) {
19
- <mat-icon>{{ iconSignal() }}</mat-icon>
20
- }
21
- <span>{{ textSignal() }}</span>
22
- `, 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 });
23
- }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxScheduleSelectionCalendarCellComponent, decorators: [{
25
- type: Component,
26
- args: [{
27
- selector: 'dbx-schedule-selection-calendar-cell',
28
- template: `
29
- @if (iconSignal()) {
30
- <mat-icon>{{ iconSignal() }}</mat-icon>
31
- }
32
- <span>{{ textSignal() }}</span>
33
- `,
34
- host: {
35
- class: 'dbx-schedule-selection-calendar-cell'
36
- },
37
- imports: [MatIconModule],
38
- changeDetection: ChangeDetectionStrategy.OnPush,
39
- standalone: true
40
- }]
41
- }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNlbGwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZvcm0vY2FsZW5kYXIvc3JjL2xpYi9jYWxlbmRhci5zY2hlZHVsZS5zZWxlY3Rpb24uY2VsbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVwRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQWlCbkQsTUFBTSxPQUFPLHlDQUF5QztJQUMzQyxpQ0FBaUMsR0FBRyxNQUFNLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUU5RSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBMkQsQ0FBQztJQUNoRixJQUFJLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUU5QixZQUFZLEdBQUcsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FDckYsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDcEQsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFFTyxhQUFhLEdBQWlELFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFaEgsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7d0dBZHJELHlDQUF5Qzs0RkFBekMseUNBQXlDLCtSQWIxQzs7Ozs7R0FLVCwyREFJUyxhQUFhOzs0RkFJWix5Q0FBeUM7a0JBZnJELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNDQUFzQztvQkFDaEQsUUFBUSxFQUFFOzs7OztHQUtUO29CQUNELElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsc0NBQXNDO3FCQUM5QztvQkFDRCxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIGlucHV0LCBjb21wdXRlZCwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoVmlld0RheSB9IGZyb20gJ2FuZ3VsYXItY2FsZW5kYXInO1xuaW1wb3J0IHsgRGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlIH0gZnJvbSAnLi9jYWxlbmRhci5zY2hlZHVsZS5zZWxlY3Rpb24uc3RvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvbkNlbGxDb250ZW50LCBDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uTWV0YWRhdGEgfSBmcm9tICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyB0b09ic2VydmFibGUsIHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItY2VsbCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChpY29uU2lnbmFsKCkpIHtcbiAgICAgIDxtYXQtaWNvbj57eyBpY29uU2lnbmFsKCkgfX08L21hdC1pY29uPlxuICAgIH1cbiAgICA8c3Bhbj57eyB0ZXh0U2lnbmFsKCkgfX08L3NwYW4+XG4gIGAsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2RieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItY2VsbCdcbiAgfSxcbiAgaW1wb3J0czogW01hdEljb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQ2VsbENvbXBvbmVudCB7XG4gIHJlYWRvbmx5IGRieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZSA9IGluamVjdChEYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUpO1xuXG4gIHJlYWRvbmx5IGRheSA9IGlucHV0LnJlcXVpcmVkPENhbGVuZGFyTW9udGhWaWV3RGF5PENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25NZXRhZGF0YT4+KCk7XG4gIHJlYWRvbmx5IGRheSQgPSB0b09ic2VydmFibGUodGhpcy5kYXkpO1xuXG4gIHJlYWRvbmx5IGNlbGxDb250ZW50JCA9IHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLmNlbGxDb250ZW50RmFjdG9yeSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKGZuKSA9PiB0aGlzLmRheSQucGlwZShtYXAoKHgpID0+IGZuKHgpKSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY29udGVudFNpZ25hbDogU2lnbmFsPENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25DZWxsQ29udGVudD4gPSB0b1NpZ25hbCh0aGlzLmNlbGxDb250ZW50JCwgeyBpbml0aWFsVmFsdWU6IHt9IH0pO1xuXG4gIHJlYWRvbmx5IGljb25TaWduYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbnRlbnRTaWduYWwoKS5pY29uKTtcbiAgcmVhZG9ubHkgdGV4dFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29udGVudFNpZ25hbCgpLnRleHQpO1xufVxuIl19
@@ -1,156 +0,0 @@
1
- import { Component, inject, ChangeDetectionStrategy, input, output } from '@angular/core';
2
- import { CalendarModule } from 'angular-calendar';
3
- import { map, shareReplay, first, throttleTime, distinctUntilChanged, combineLatest, switchMap, of, combineLatestWith } from 'rxjs';
4
- import { DbxCalendarStore, prepareAndSortCalendarEvents, DbxCalendarBaseComponent } from '@dereekb/dbx-web/calendar';
5
- import { reduceBooleansWithAnd } from '@dereekb/util';
6
- import { DbxCalendarScheduleSelectionStore } from './calendar.schedule.selection.store';
7
- import { CalendarScheduleSelectionDayState } from './calendar.schedule.selection';
8
- import { switchMapDbxInjectionComponentConfig, DbxInjectionComponent } from '@dereekb/dbx-core';
9
- import { SubscriptionObject, asObservable, asObservableFromGetter } from '@dereekb/rxjs';
10
- import { DbxScheduleSelectionCalendarDatePopoverButtonComponent } from './calendar.schedule.selection.popover.button.component';
11
- import { DateRangeType, dateRange, isSameDate } from '@dereekb/date';
12
- import { endOfWeek } from 'date-fns';
13
- import { toSignal, toObservable } from '@angular/core/rxjs-interop';
14
- import { NgClass } from '@angular/common';
15
- import { DbxScheduleSelectionCalendarCellComponent } from './calendar.schedule.selection.cell.component';
16
- import { DbxScheduleSelectionCalendarSelectionToggleButtonComponent } from './calendar.schedule.selection.toggle.button.component';
17
- import { DbxButtonSpacerDirective } from '@dereekb/dbx-web';
18
- import * as i0 from "@angular/core";
19
- import * as i1 from "angular-calendar";
20
- export function dbxScheduleSelectionCalendarBeforeMonthViewRenderFactory(inputModifyFn) {
21
- const modifyFn = inputModifyFn || (() => { });
22
- return (state$) => {
23
- return (renderEvent) => {
24
- const { body } = renderEvent;
25
- // use latest/current state
26
- state$.pipe(first()).subscribe((calendarScheduleState) => {
27
- const { isEnabledDay, indexFactory, isEnabledFilterDay, allowedDaysOfWeek } = calendarScheduleState;
28
- body.forEach((viewDay) => {
29
- const { date } = viewDay;
30
- const i = indexFactory(date);
31
- const day = date.getDay();
32
- let state;
33
- if (!isEnabledFilterDay(i)) {
34
- viewDay.cssClass = 'cal-day-not-applicable';
35
- state = CalendarScheduleSelectionDayState.NOT_APPLICABLE;
36
- }
37
- else if (!allowedDaysOfWeek.has(day)) {
38
- viewDay.cssClass = 'cal-day-disabled';
39
- state = CalendarScheduleSelectionDayState.DISABLED;
40
- }
41
- else if (isEnabledDay(i)) {
42
- viewDay.cssClass = 'cal-day-selected';
43
- state = CalendarScheduleSelectionDayState.SELECTED;
44
- }
45
- else {
46
- viewDay.cssClass = 'cal-day-not-selected';
47
- state = CalendarScheduleSelectionDayState.NOT_SELECTED;
48
- }
49
- const meta = {
50
- state,
51
- i
52
- };
53
- viewDay.meta = meta;
54
- modifyFn(viewDay, calendarScheduleState);
55
- });
56
- });
57
- };
58
- };
59
- }
60
- export class DbxScheduleSelectionCalendarComponent {
61
- calendarStore = inject((DbxCalendarStore));
62
- dbxCalendarScheduleSelectionStore = inject(DbxCalendarScheduleSelectionStore);
63
- clickEvent = output();
64
- config = input();
65
- readonly = input(false);
66
- _centerRangeSub = new SubscriptionObject();
67
- config$ = toObservable(this.config).pipe(distinctUntilChanged(), shareReplay(1));
68
- readonly$ = this.config$.pipe(switchMap((x) => (x?.readonly != null ? asObservableFromGetter(x.readonly) : of(undefined))), combineLatestWith(toObservable(this.readonly)), map(([configReadonly, inputReadonly]) => {
69
- return configReadonly || inputReadonly || false;
70
- }), shareReplay(1));
71
- showButtonsOnReadonly$ = this.config$.pipe(map((x) => x?.showButtonsOnReadonly ?? false), distinctUntilChanged(), shareReplay(1));
72
- showButtons$ = this.showButtonsOnReadonly$.pipe(switchMap((x) => {
73
- if (x) {
74
- return of(true);
75
- }
76
- else {
77
- return this.readonly$.pipe(map((x) => !x));
78
- }
79
- }), distinctUntilChanged(), shareReplay(1));
80
- showClearSelectionButton$ = this.config$.pipe(map((config) => config?.showClearSelectionButton ?? true), combineLatestWith(this.showButtons$), map((x) => reduceBooleansWithAnd(x)), distinctUntilChanged(), shareReplay(1));
81
- datePopoverButtonInjectionConfig$ = this.config$.pipe(map((x) => x?.buttonInjectionConfig), switchMapDbxInjectionComponentConfig(DbxScheduleSelectionCalendarDatePopoverButtonComponent), combineLatestWith(this.showButtons$), map(([config, showButton]) => (showButton ? config : undefined)), shareReplay(1));
82
- // refresh any time the selected day function updates
83
- state$ = this.dbxCalendarScheduleSelectionStore.state$;
84
- beforeMonthViewRender$ = this.config$.pipe(switchMap((x) => {
85
- let factory;
86
- if (x?.beforeMonthViewRenderFunctionFactory) {
87
- factory = asObservable(x.beforeMonthViewRenderFunctionFactory);
88
- }
89
- else {
90
- factory = asObservable(x?.customizeDay).pipe(map((x) => dbxScheduleSelectionCalendarBeforeMonthViewRenderFactory(x)));
91
- }
92
- return factory.pipe(map((x) => x(this.state$)));
93
- }), shareReplay(1));
94
- refresh$ = combineLatest([this.state$, this.beforeMonthViewRender$]).pipe(throttleTime(20, undefined, { leading: true, trailing: true }), map(() => undefined));
95
- events$ = this.calendarStore.visibleEvents$.pipe(map(prepareAndSortCalendarEvents), shareReplay(1));
96
- viewDate$ = this.calendarStore.date$;
97
- beforeMonthViewRenderSignal = toSignal(this.beforeMonthViewRender$);
98
- readonlySignal = toSignal(this.readonly$, { initialValue: false });
99
- showClearSelectionButtonSignal = toSignal(this.showClearSelectionButton$);
100
- datePopoverButtonInjectionConfigSignal = toSignal(this.datePopoverButtonInjectionConfig$);
101
- eventsSignal = toSignal(this.events$, { initialValue: [] });
102
- viewDateSignal = toSignal(this.viewDate$, { initialValue: new Date() });
103
- ngOnInit() {
104
- this.dbxCalendarScheduleSelectionStore.setViewReadonlyState(this.readonly$); // sync the readonly state
105
- this.calendarStore.setNavigationRangeLimit(this.dbxCalendarScheduleSelectionStore.minMaxDateRange$); // set navigation limit to the min/max allowed dates.
106
- this.calendarStore.setShowPageButtons(true);
107
- // when a new filter is set, if the first two pages of selectable indexes fit within the calendar month, focus on that calendar month.
108
- this._centerRangeSub.subscription = this.dbxCalendarScheduleSelectionStore.currentDateRange$
109
- .pipe(first(), switchMap((x) => {
110
- const result = x
111
- ? of([x, true])
112
- : this.dbxCalendarScheduleSelectionStore.minMaxDateRange$.pipe(first(), map((y) => [y, false]));
113
- return result;
114
- }))
115
- .subscribe(([x, isFromSelectedDateRange]) => {
116
- if (x?.start) {
117
- let tapDay;
118
- const startMonth = dateRange({ date: x.start, type: DateRangeType.CALENDAR_MONTH });
119
- const monthToFocus = endOfWeek(startMonth.start);
120
- if (x.end != null) {
121
- const endMonth = dateRange({ date: x.end, type: DateRangeType.CALENDAR_MONTH });
122
- if (isSameDate(startMonth.start, endMonth.start)) {
123
- tapDay = monthToFocus;
124
- }
125
- }
126
- if (!tapDay && isFromSelectedDateRange) {
127
- tapDay = monthToFocus;
128
- }
129
- if (tapDay) {
130
- this.calendarStore.tapDay(tapDay);
131
- }
132
- }
133
- });
134
- }
135
- ngOnDestroy() {
136
- this._centerRangeSub.destroy();
137
- }
138
- dayClicked({ date }) {
139
- if (!this.readonlySignal()) {
140
- this.dbxCalendarScheduleSelectionStore.toggleSelectedDates(date);
141
- }
142
- }
143
- eventClicked(action, event) {
144
- this.clickEvent.emit({ action, event });
145
- }
146
- beforeMonthViewRender(renderEvent) {
147
- this.beforeMonthViewRenderSignal()?.(renderEvent);
148
- }
149
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxScheduleSelectionCalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
150
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxScheduleSelectionCalendarComponent, isStandalone: true, selector: "dbx-schedule-selection-calendar", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clickEvent: "clickEvent" }, providers: [DbxCalendarStore], ngImport: i0, template: "<dbx-calendar-base class=\"dbx-schedule-selection-calendar\" [ngClass]=\"readonlySignal() ? 'dbx-schedule-selection-calendar-readonly' : ''\">\n <ng-container controls>\n @if (showClearSelectionButtonSignal()) {\n <dbx-schedule-selection-calendar-selection-toggle-button [disabled]=\"readonlySignal()\"></dbx-schedule-selection-calendar-selection-toggle-button>\n <dbx-button-spacer></dbx-button-spacer>\n }\n <dbx-injection [config]=\"datePopoverButtonInjectionConfigSignal()\"></dbx-injection>\n </ng-container>\n <div class=\"dbx-calendar-content dbx-calendar-content-month\">\n <mwl-calendar-month-view [refresh]=\"refresh$\" [viewDate]=\"viewDateSignal()!\" [events]=\"eventsSignal()\" (dayClicked)=\"dayClicked($event.day)\" (eventClicked)=\"eventClicked('Clicked', $event.event)\" (beforeViewRender)=\"beforeMonthViewRender($event)\" [cellTemplate]=\"monthDayCellTemplate\"></mwl-calendar-month-view>\n </div>\n</dbx-calendar-base>\n\n<!-- Cell -->\n<ng-template #monthDayCellTemplate let-day=\"day\" let-locale=\"locale\">\n <div class=\"cal-cell-top\">\n @if (day.badgeTotal > 0) {\n <span class=\"cal-day-badge\">{{ day.badgeTotal }}</span>\n }\n <span class=\"cal-day-number\">{{ day.date | calendarDate: 'monthViewDayNumber' : locale }}</span>\n </div>\n <dbx-schedule-selection-calendar-cell [day]=\"day\"></dbx-schedule-selection-calendar-cell>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: CalendarModule }, { kind: "pipe", type: i1.ɵCalendarDatePipe, name: "calendarDate" }, { kind: "component", type: i1.CalendarMonthViewComponent, selector: "mwl-calendar-month-view", inputs: ["viewDate", "events", "excludeDays", "activeDayIsOpen", "activeDay", "refresh", "locale", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "weekStartsOn", "headerTemplate", "cellTemplate", "openDayEventsTemplate", "eventTitleTemplate", "eventActionsTemplate", "weekendDays"], outputs: ["beforeViewRender", "dayClicked", "eventClicked", "columnHeaderClicked", "eventTimesChanged"] }, { kind: "component", type: DbxCalendarBaseComponent, selector: "dbx-calendar-base" }, { kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "component", type: DbxScheduleSelectionCalendarCellComponent, selector: "dbx-schedule-selection-calendar-cell", inputs: ["day"] }, { kind: "component", type: DbxScheduleSelectionCalendarSelectionToggleButtonComponent, selector: "dbx-schedule-selection-calendar-selection-toggle-button", inputs: ["disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
151
- }
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxScheduleSelectionCalendarComponent, decorators: [{
153
- type: Component,
154
- args: [{ selector: 'dbx-schedule-selection-calendar', imports: [NgClass, CalendarModule, DbxCalendarBaseComponent, DbxInjectionComponent, DbxButtonSpacerDirective, DbxScheduleSelectionCalendarCellComponent, DbxScheduleSelectionCalendarSelectionToggleButtonComponent], providers: [DbxCalendarStore], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<dbx-calendar-base class=\"dbx-schedule-selection-calendar\" [ngClass]=\"readonlySignal() ? 'dbx-schedule-selection-calendar-readonly' : ''\">\n <ng-container controls>\n @if (showClearSelectionButtonSignal()) {\n <dbx-schedule-selection-calendar-selection-toggle-button [disabled]=\"readonlySignal()\"></dbx-schedule-selection-calendar-selection-toggle-button>\n <dbx-button-spacer></dbx-button-spacer>\n }\n <dbx-injection [config]=\"datePopoverButtonInjectionConfigSignal()\"></dbx-injection>\n </ng-container>\n <div class=\"dbx-calendar-content dbx-calendar-content-month\">\n <mwl-calendar-month-view [refresh]=\"refresh$\" [viewDate]=\"viewDateSignal()!\" [events]=\"eventsSignal()\" (dayClicked)=\"dayClicked($event.day)\" (eventClicked)=\"eventClicked('Clicked', $event.event)\" (beforeViewRender)=\"beforeMonthViewRender($event)\" [cellTemplate]=\"monthDayCellTemplate\"></mwl-calendar-month-view>\n </div>\n</dbx-calendar-base>\n\n<!-- Cell -->\n<ng-template #monthDayCellTemplate let-day=\"day\" let-locale=\"locale\">\n <div class=\"cal-cell-top\">\n @if (day.badgeTotal > 0) {\n <span class=\"cal-day-badge\">{{ day.badgeTotal }}</span>\n }\n <span class=\"cal-day-number\">{{ day.date | calendarDate: 'monthViewDayNumber' : locale }}</span>\n </div>\n <dbx-schedule-selection-calendar-cell [day]=\"day\"></dbx-schedule-selection-calendar-cell>\n</ng-template>\n" }]
155
- }] });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBMkUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0gsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQVcsS0FBSyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBYyxhQUFhLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN6SixPQUFPLEVBQW9CLGdCQUFnQixFQUFFLDRCQUE0QixFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkksT0FBTyxFQUFvQixxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQWtDLGlDQUFpQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEgsT0FBTyxFQUFFLGlDQUFpQyxFQUFxQyxNQUFNLCtCQUErQixDQUFDO0FBQ3JILE9BQU8sRUFBK0Isb0NBQW9DLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3SCxPQUFPLEVBQThDLGtCQUFrQixFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNySSxPQUFP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ZXRlY3Rpb25TdHJhdGVneSwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJFdmVudCwgQ2FsZW5kYXJNb250aFZpZXdCZWZvcmVSZW5kZXJFdmVudCwgQ2FsZW5kYXJNb250aFZpZXdEYXksIENhbGVuZGFyTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1jYWxlbmRhcic7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5LCBTdWJqZWN0LCBmaXJzdCwgdGhyb3R0bGVUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgc3dpdGNoTWFwLCBvZiwgY29tYmluZUxhdGVzdFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieENhbGVuZGFyRXZlbnQsIERieENhbGVuZGFyU3RvcmUsIHByZXBhcmVBbmRTb3J0Q2FsZW5kYXJFdmVudHMsIERieENhbGVuZGFyQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWIvY2FsZW5kYXInO1xuaW1wb3J0IHsgRGF5T2ZXZWVrLCBNYXliZSwgcmVkdWNlQm9vbGVhbnNXaXRoQW5kIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RhdGUsIERieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZSB9IGZyb20gJy4vY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnN0b3JlJztcbmltcG9ydCB7IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25EYXlTdGF0ZSwgQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvbk1ldGFkYXRhIH0gZnJvbSAnLi9jYWxlbmRhci5zY2hlZHVsZS5zZWxlY3Rpb24nO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50Q29uZmlnLCBzd2l0Y2hNYXBEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWcsIERieEluamVjdGlvbkNvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGVPclZhbHVlLCBPYnNlcnZhYmxlT3JWYWx1ZUdldHRlciwgU3Vic2NyaXB0aW9uT2JqZWN0LCBhc09ic2VydmFibGUsIGFzT2JzZXJ2YWJsZUZyb21HZXR0ZXIgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJEYXRlUG9wb3ZlckJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnBvcG92ZXIuYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlUmFuZ2VUeXBlLCBkYXRlUmFuZ2UsIGlzU2FtZURhdGUgfSBmcm9tICdAZGVyZWVrYi9kYXRlJztcbmltcG9ydCB7IGVuZE9mV2VlayB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IHRvU2lnbmFsLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJDZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci5zY2hlZHVsZS5zZWxlY3Rpb24uY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhclNlbGVjdGlvblRvZ2dsZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXIuc2NoZWR1bGUuc2VsZWN0aW9uLnRvZ2dsZS5idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IERieEJ1dHRvblNwYWNlckRpcmVjdGl2ZSB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuXG5leHBvcnQgaW50ZXJmYWNlIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJDb21wb25lbnRDb25maWcge1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIHNlbGVjdGlvbiBjYWxlbmRhciBpcyByZWFkb25seS4gRGVmYXVsdHMgdG8gJ2ZhbHNlJy5cbiAgICovXG4gIHJlYWRvbmx5IHJlYWRvbmx5PzogTWF5YmU8T2JzZXJ2YWJsZU9yVmFsdWVHZXR0ZXI8TWF5YmU8Ym9vbGVhbj4+PjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHNob3cgdGhlIGNvbmZpZ3VyZWQgYnV0dG9ucyB3aGVuIHJlYWRvbmx5IGlzIHRydWUuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvd0J1dHRvbnNPblJlYWRvbmx5PzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIHNob3cgdGhlIGNsZWFyIHNlbGVjdGlvbiBidXR0b24uIERlZmF1bHRzIHRvIGB0cnVlYC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3dDbGVhclNlbGVjdGlvbkJ1dHRvbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciBkaXNwbGF5aW5nIGEgY3VzdG9tIHNlbGVjdGlvbiBidXR0b24uIFdoZW4gbnVsbC91bmRlZmluZWQvdHJ1ZSBpcyBwYXNzZWQsIHdpbGwgc2hvdyB0aGUgZGVmYXVsdCBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcG92ZXJCdXR0b25Db21wb25lbnQuXG4gICAqL1xuICByZWFkb25seSBidXR0b25JbmplY3Rpb25Db25maWc/OiBNYXliZTxPYnNlcnZhYmxlT3JWYWx1ZUdldHRlcjxNYXliZTxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8YW55PiB8IGJvb2xlYW4+Pj47XG4gIC8qKlxuICAgKiBDdXN0b21pemUgZGF5IGZ1bmN0aW9uLiBXaGVuIGEgbmV3IGZ1bmN0aW9uIGlzIHBpcGVkIHRocm91Z2ggdGhlIGNhbGVuZGFyIGlzIHJlZnJlc2hlZC5cbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbWl6ZURheT86IE1heWJlPE9ic2VydmFibGVPclZhbHVlPE1heWJlPERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJNb2RpZnlEYXlGdW5jdGlvbj4+PjtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGZ1bGwgY29udHJvbCBvdmVyIHRoZSBiZWZvcmVNb250aFZpZXdSZW5kZXJcbiAgICovXG4gIHJlYWRvbmx5IGJlZm9yZU1vbnRoVmlld1JlbmRlckZ1bmN0aW9uRmFjdG9yeT86IE1heWJlPE9ic2VydmFibGVPclZhbHVlPERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJGdW5jdGlvbkZhY3Rvcnk+Pjtcbn1cblxuZXhwb3J0IHR5cGUgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckJlZm9yZU1vbnRoVmlld1JlbmRlck1vZGlmeURheUZ1bmN0aW9uID0gKHZpZXdEYXk6IENhbGVuZGFyTW9udGhWaWV3RGF5PENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25NZXRhZGF0YT4sIHN0YXRlOiBDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RhdGUpID0+IHZvaWQ7XG5cbmV4cG9ydCB0eXBlIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJGdW5jdGlvbiA9IChyZW5kZXJFdmVudDogQ2FsZW5kYXJNb250aFZpZXdCZWZvcmVSZW5kZXJFdmVudCkgPT4gdm9pZDtcblxuZXhwb3J0IHR5cGUgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckJlZm9yZU1vbnRoVmlld1JlbmRlckZ1bmN0aW9uRmFjdG9yeSA9IChzdGF0ZTogT2JzZXJ2YWJsZTxDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RhdGU+KSA9PiBEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQmVmb3JlTW9udGhWaWV3UmVuZGVyRnVuY3Rpb247XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQmVmb3JlTW9udGhWaWV3UmVuZGVyRmFjdG9yeShpbnB1dE1vZGlmeUZuPzogTWF5YmU8RGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckJlZm9yZU1vbnRoVmlld1JlbmRlck1vZGlmeURheUZ1bmN0aW9uPik6IERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJGdW5jdGlvbkZhY3Rvcnkge1xuICBjb25zdCBtb2RpZnlGbiA9IGlucHV0TW9kaWZ5Rm4gfHwgKCgpID0+IHt9KTtcblxuICByZXR1cm4gKHN0YXRlJDogT2JzZXJ2YWJsZTxDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RhdGU+KSA9PiB7XG4gICAgcmV0dXJuIChyZW5kZXJFdmVudDogQ2FsZW5kYXJNb250aFZpZXdCZWZvcmVSZW5kZXJFdmVudCkgPT4ge1xuICAgICAgY29uc3QgeyBib2R5IH06IHsgYm9keTogQ2FsZW5kYXJNb250aFZpZXdEYXk8Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvbk1ldGFkYXRhPltdIH0gPSByZW5kZXJFdmVudDtcblxuICAgICAgLy8gdXNlIGxhdGVzdC9jdXJyZW50IHN0YXRlXG4gICAgICBzdGF0ZSQucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKGNhbGVuZGFyU2NoZWR1bGVTdGF0ZTogQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0YXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgaXNFbmFibGVkRGF5LCBpbmRleEZhY3RvcnksIGlzRW5hYmxlZEZpbHRlckRheSwgYWxsb3dlZERheXNPZldlZWsgfSA9IGNhbGVuZGFyU2NoZWR1bGVTdGF0ZTtcbiAgICAgICAgYm9keS5mb3JFYWNoKCh2aWV3RGF5KSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBkYXRlIH0gPSB2aWV3RGF5O1xuICAgICAgICAgIGNvbnN0IGkgPSBpbmRleEZhY3RvcnkoZGF0ZSk7XG4gICAgICAgICAgY29uc3QgZGF5ID0gZGF0ZS5nZXREYXkoKTtcblxuICAgICAgICAgIGxldCBzdGF0ZTogQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvbkRheVN0YXRlO1xuXG4gICAgICAgICAgaWYgKCFpc0VuYWJsZWRGaWx0ZXJEYXkoaSkpIHtcbiAgICAgICAgICAgIHZpZXdEYXkuY3NzQ2xhc3MgPSAnY2FsLWRheS1ub3QtYXBwbGljYWJsZSc7XG4gICAgICAgICAgICBzdGF0ZSA9IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25EYXlTdGF0ZS5OT1RfQVBQTElDQUJMRTtcbiAgICAgICAgICB9IGVsc2UgaWYgKCFhbGxvd2VkRGF5c09mV2Vlay5oYXMoZGF5IGFzIERheU9mV2VlaykpIHtcbiAgICAgICAgICAgIHZpZXdEYXkuY3NzQ2xhc3MgPSAnY2FsLWRheS1kaXNhYmxlZCc7XG4gICAgICAgICAgICBzdGF0ZSA9IENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25EYXlTdGF0ZS5ESVNBQkxFRDtcbiAgICAgICAgICB9IGVsc2UgaWYgKGlzRW5hYmxlZERheShpKSkge1xuICAgICAgICAgICAgdmlld0RheS5jc3NDbGFzcyA9ICdjYWwtZGF5LXNlbGVjdGVkJztcbiAgICAgICAgICAgIHN0YXRlID0gQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvbkRheVN0YXRlLlNFTEVDVEVEO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2aWV3RGF5LmNzc0NsYXNzID0gJ2NhbC1kYXktbm90LXNlbGVjdGVkJztcbiAgICAgICAgICAgIHN0YXRlID0gQ2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvbkRheVN0YXRlLk5PVF9TRUxFQ1RFRDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBtZXRhID0ge1xuICAgICAgICAgICAgc3RhdGUsXG4gICAgICAgICAgICBpXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHZpZXdEYXkubWV0YSA9IG1ldGE7XG4gICAgICAgICAgbW9kaWZ5Rm4odmlld0RheSwgY2FsZW5kYXJTY2hlZHVsZVN0YXRlKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9O1xuICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLnNjaGVkdWxlLnNlbGVjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtOZ0NsYXNzLCBDYWxlbmRhck1vZHVsZSwgRGJ4Q2FsZW5kYXJCYXNlQ29tcG9uZW50LCBEYnhJbmplY3Rpb25Db21wb25lbnQsIERieEJ1dHRvblNwYWNlckRpcmVjdGl2ZSwgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckNlbGxDb21wb25lbnQsIERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJTZWxlY3Rpb25Ub2dnbGVCdXR0b25Db21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtEYnhDYWxlbmRhclN0b3JlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4U2NoZWR1bGVTZWxlY3Rpb25DYWxlbmRhckNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgY2FsZW5kYXJTdG9yZSA9IGluamVjdChEYnhDYWxlbmRhclN0b3JlPFQ+KTtcbiAgcmVhZG9ubHkgZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlID0gaW5qZWN0KERieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZSk7XG5cbiAgcmVhZG9ubHkgY2xpY2tFdmVudCA9IG91dHB1dDxEYnhDYWxlbmRhckV2ZW50PFQ+PigpO1xuXG4gIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0PE1heWJlPERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJDb21wb25lbnRDb25maWc+PigpO1xuICByZWFkb25seSByZWFkb25seSA9IGlucHV0PE1heWJlPGJvb2xlYW4+PihmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY2VudGVyUmFuZ2VTdWIgPSBuZXcgU3Vic2NyaXB0aW9uT2JqZWN0KCk7XG5cbiAgcmVhZG9ubHkgY29uZmlnJDogT2JzZXJ2YWJsZTxNYXliZTxEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQ29tcG9uZW50Q29uZmlnPj4gPSB0b09ic2VydmFibGUodGhpcy5jb25maWcpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IHJlYWRvbmx5JDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuY29uZmlnJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4gKHg/LnJlYWRvbmx5ICE9IG51bGwgPyBhc09ic2VydmFibGVGcm9tR2V0dGVyKHgucmVhZG9ubHkpIDogb2YodW5kZWZpbmVkKSkpLFxuICAgIGNvbWJpbmVMYXRlc3RXaXRoKHRvT2JzZXJ2YWJsZSh0aGlzLnJlYWRvbmx5KSksXG4gICAgbWFwKChbY29uZmlnUmVhZG9ubHksIGlucHV0UmVhZG9ubHldKSA9PiB7XG4gICAgICByZXR1cm4gY29uZmlnUmVhZG9ubHkgfHwgaW5wdXRSZWFkb25seSB8fCBmYWxzZTtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNob3dCdXR0b25zT25SZWFkb25seSQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLmNvbmZpZyQucGlwZShcbiAgICBtYXAoKHgpID0+IHg/LnNob3dCdXR0b25zT25SZWFkb25seSA/PyBmYWxzZSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNob3dCdXR0b25zJCA9IHRoaXMuc2hvd0J1dHRvbnNPblJlYWRvbmx5JC5waXBlKFxuICAgIHN3aXRjaE1hcCgoeCkgPT4ge1xuICAgICAgaWYgKHgpIHtcbiAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZG9ubHkkLnBpcGUobWFwKCh4KSA9PiAheCkpO1xuICAgICAgfVxuICAgIH0pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzaG93Q2xlYXJTZWxlY3Rpb25CdXR0b24kID0gdGhpcy5jb25maWckLnBpcGUoXG4gICAgbWFwKChjb25maWcpID0+IGNvbmZpZz8uc2hvd0NsZWFyU2VsZWN0aW9uQnV0dG9uID8/IHRydWUpLFxuICAgIGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMuc2hvd0J1dHRvbnMkKSxcbiAgICBtYXAoKHgpID0+IHJlZHVjZUJvb2xlYW5zV2l0aEFuZCh4KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRhdGVQb3BvdmVyQnV0dG9uSW5qZWN0aW9uQ29uZmlnJDogT2JzZXJ2YWJsZTxNYXliZTxEYnhJbmplY3Rpb25Db21wb25lbnRDb25maWc8YW55Pj4+ID0gdGhpcy5jb25maWckLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Py5idXR0b25JbmplY3Rpb25Db25maWcpLFxuICAgIHN3aXRjaE1hcERieEluamVjdGlvbkNvbXBvbmVudENvbmZpZyhEYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyRGF0ZVBvcG92ZXJCdXR0b25Db21wb25lbnQpLFxuICAgIGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMuc2hvd0J1dHRvbnMkKSxcbiAgICBtYXAoKFtjb25maWcsIHNob3dCdXR0b25dKSA9PiAoc2hvd0J1dHRvbiA/IGNvbmZpZyA6IHVuZGVmaW5lZCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLy8gcmVmcmVzaCBhbnkgdGltZSB0aGUgc2VsZWN0ZWQgZGF5IGZ1bmN0aW9uIHVwZGF0ZXNcbiAgcmVhZG9ubHkgc3RhdGUkID0gdGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUuc3RhdGUkO1xuXG4gIHJlYWRvbmx5IGJlZm9yZU1vbnRoVmlld1JlbmRlciQgPSB0aGlzLmNvbmZpZyQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHtcbiAgICAgIGxldCBmYWN0b3J5OiBPYnNlcnZhYmxlPERieFNjaGVkdWxlU2VsZWN0aW9uQ2FsZW5kYXJCZWZvcmVNb250aFZpZXdSZW5kZXJGdW5jdGlvbkZhY3Rvcnk+O1xuXG4gICAgICBpZiAoeD8uYmVmb3JlTW9udGhWaWV3UmVuZGVyRnVuY3Rpb25GYWN0b3J5KSB7XG4gICAgICAgIGZhY3RvcnkgPSBhc09ic2VydmFibGUoeC5iZWZvcmVNb250aFZpZXdSZW5kZXJGdW5jdGlvbkZhY3RvcnkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmFjdG9yeSA9IGFzT2JzZXJ2YWJsZSh4Py5jdXN0b21pemVEYXkpLnBpcGUobWFwKCh4KSA9PiBkYnhTY2hlZHVsZVNlbGVjdGlvbkNhbGVuZGFyQmVmb3JlTW9udGhWaWV3UmVuZGVyRmFjdG9yeSh4KSkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFjdG9yeS5waXBlKG1hcCgoeCkgPT4geCh0aGlzLnN0YXRlJCkpKTtcbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHJlZnJlc2gkID0gY29tYmluZUxhdGVzdChbdGhpcy5zdGF0ZSQsIHRoaXMuYmVmb3JlTW9udGhWaWV3UmVuZGVyJF0pLnBpcGUoXG4gICAgdGhyb3R0bGVUaW1lKDIwLCB1bmRlZmluZWQsIHsgbGVhZGluZzogdHJ1ZSwgdHJhaWxpbmc6IHRydWUgfSksXG4gICAgbWFwKCgpID0+IHVuZGVmaW5lZClcbiAgKSBhcyBTdWJqZWN0PHVuZGVmaW5lZD47XG5cbiAgcmVhZG9ubHkgZXZlbnRzJCA9IHRoaXMuY2FsZW5kYXJTdG9yZS52aXNpYmxlRXZlbnRzJC5waXBlKG1hcChwcmVwYXJlQW5kU29ydENhbGVuZGFyRXZlbnRzKSwgc2hhcmVSZXBsYXkoMSkpO1xuICByZWFkb25seSB2aWV3RGF0ZSQgPSB0aGlzLmNhbGVuZGFyU3RvcmUuZGF0ZSQ7XG5cbiAgcmVhZG9ubHkgYmVmb3JlTW9udGhWaWV3UmVuZGVyU2lnbmFsID0gdG9TaWduYWwodGhpcy5iZWZvcmVNb250aFZpZXdSZW5kZXIkKTtcbiAgcmVhZG9ubHkgcmVhZG9ubHlTaWduYWwgPSB0b1NpZ25hbCh0aGlzLnJlYWRvbmx5JCwgeyBpbml0aWFsVmFsdWU6IGZhbHNlIH0pO1xuICByZWFkb25seSBzaG93Q2xlYXJTZWxlY3Rpb25CdXR0b25TaWduYWwgPSB0b1NpZ25hbCh0aGlzLnNob3dDbGVhclNlbGVjdGlvbkJ1dHRvbiQpO1xuICByZWFkb25seSBkYXRlUG9wb3ZlckJ1dHRvbkluamVjdGlvbkNvbmZpZ1NpZ25hbCA9IHRvU2lnbmFsKHRoaXMuZGF0ZVBvcG92ZXJCdXR0b25JbmplY3Rpb25Db25maWckKTtcblxuICByZWFkb25seSBldmVudHNTaWduYWwgPSB0b1NpZ25hbCh0aGlzLmV2ZW50cyQsIHsgaW5pdGlhbFZhbHVlOiBbXSB9KTtcbiAgcmVhZG9ubHkgdmlld0RhdGVTaWduYWwgPSB0b1NpZ25hbCh0aGlzLnZpZXdEYXRlJCwgeyBpbml0aWFsVmFsdWU6IG5ldyBEYXRlKCkgfSk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kYnhDYWxlbmRhclNjaGVkdWxlU2VsZWN0aW9uU3RvcmUuc2V0Vmlld1JlYWRvbmx5U3RhdGUodGhpcy5yZWFkb25seSQpOyAvLyBzeW5jIHRoZSByZWFkb25seSBzdGF0ZVxuXG4gICAgdGhpcy5jYWxlbmRhclN0b3JlLnNldE5hdmlnYXRpb25SYW5nZUxpbWl0KHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLm1pbk1heERhdGVSYW5nZSQpOyAvLyBzZXQgbmF2aWdhdGlvbiBsaW1pdCB0byB0aGUgbWluL21heCBhbGxvd2VkIGRhdGVzLlxuICAgIHRoaXMuY2FsZW5kYXJTdG9yZS5zZXRTaG93UGFnZUJ1dHRvbnModHJ1ZSk7XG5cbiAgICAvLyB3aGVuIGEgbmV3IGZpbHRlciBpcyBzZXQsIGlmIHRoZSBmaXJzdCB0d28gcGFnZXMgb2Ygc2VsZWN0YWJsZSBpbmRleGVzIGZpdCB3aXRoaW4gdGhlIGNhbGVuZGFyIG1vbnRoLCBmb2N1cyBvbiB0aGF0IGNhbGVuZGFyIG1vbnRoLlxuICAgIHRoaXMuX2NlbnRlclJhbmdlU3ViLnN1YnNjcmlwdGlvbiA9IHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLmN1cnJlbnREYXRlUmFuZ2UkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgc3dpdGNoTWFwKCh4KSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0OiBPYnNlcnZhYmxlPFt0eXBlb2YgeCwgYm9vbGVhbl0+ID0geFxuICAgICAgICAgICAgPyBvZihbeCwgdHJ1ZV0pXG4gICAgICAgICAgICA6IHRoaXMuZGJ4Q2FsZW5kYXJTY2hlZHVsZVNlbGVjdGlvblN0b3JlLm1pbk1heERhdGVSYW5nZSQucGlwZShcbiAgICAgICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgICAgIG1hcCgoeSkgPT4gW3ksIGZhbHNlXSBhcyBbdHlwZW9mIHgsIGJvb2xlYW5dKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChbeCwgaXNGcm9tU2VsZWN0ZWREYXRlUmFuZ2VdKSA9PiB7XG4gICAgICAgIGlmICh4Py5zdGFydCkge1xuICAgICAgICAgIGxldCB0YXBEYXk6IE1heWJlPERhdGU+O1xuICAgICAgICAgIGNvbnN0IHN0YXJ0TW9udGggPSBkYXRlUmFuZ2UoeyBkYXRlOiB4LnN0YXJ0LCB0eXBlOiBEYXRlUmFuZ2VUeXBlLkNBTEVOREFSX01PTlRIIH0pO1xuICAgICAgICAgIGNvbnN0IG1vbnRoVG9Gb2N1cyA9IGVuZE9mV2VlayhzdGFydE1vbnRoLnN0YXJ0KTtcblxuICAgICAgICAgIGlmICh4LmVuZCAhPSBudWxsKSB7XG4gICAgICAgICAgICBjb25zdCBlbmRNb250aCA9IGRhdGVSYW5nZSh7IGRhdGU6IHguZW5kLCB0eXBlOiBEYXRlUmFuZ2VUeXBlLkNBTEVOREFSX01PTlRIIH0pO1xuXG4gICAgICAgICAgICBpZiAoaXNTYW1lRGF0ZShzdGFydE1vbnRoLnN0YXJ0LCBlbmRNb250aC5zdGFydCkpIHtcbiAgICAgICAgICAgICAgdGFwRGF5ID0gbW9udGhUb0ZvY3VzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghdGFwRGF5ICYmIGlzRnJvbVNlbGVjdGVkRGF0ZVJhbmdlKSB7XG4gICAgICAgICAgICB0YXBEYXkgPSBtb250aFRvRm9jdXM7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRhcERheSkge1xuICAgICAgICAgICAgdGhpcy5jYWxlbmRhclN0b3JlLnRhcERheSh0YXBEYXkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9jZW50ZXJSYW5nZVN1Yi5kZXN0cm95KCk7XG4gIH1cblxuICBkYXlDbGlja2VkKHsgZGF0ZSB9OiB7IGRhdGU6IERhdGUgfSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5yZWFkb25seVNpZ25hbCgpKSB7XG4gICAgICB0aGlzLmRieENhbGVuZGFyU2NoZWR1bGVTZWxlY3Rpb25TdG9yZS50b2dnbGVTZWxlY3RlZERhdGVzKGRhdGUpO1xuICAgIH1cbiAgfVxuXG4gIGV2ZW50Q2xpY2tlZChhY3Rpb246IHN0cmluZywgZXZlbnQ6IENhbGVuZGFyRXZlbnQ8VD4pOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrRXZlbnQuZW1pdCh7IGFjdGlvbiwgZXZlbnQgfSk7XG4gIH1cblxuICBiZWZvcmVNb250aFZpZXdSZW5kZXIocmVuZGVyRXZlbnQ6IENhbGVuZGFyTW9udGhWaWV3QmVmb3JlUmVuZGVyRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmJlZm9yZU1vbnRoVmlld1JlbmRlclNpZ25hbCgpPy4ocmVuZGVyRXZlbnQpO1xuICB9XG59XG4iLCI8ZGJ4LWNhbGVuZGFyLWJhc2UgY2xhc3M9XCJkYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyXCIgW25nQ2xhc3NdPVwicmVhZG9ubHlTaWduYWwoKSA/ICdkYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyLXJlYWRvbmx5JyA6ICcnXCI+XG4gIDxuZy1jb250YWluZXIgY29udHJvbHM+XG4gICAgQGlmIChzaG93Q2xlYXJTZWxlY3Rpb25CdXR0b25TaWduYWwoKSkge1xuICAgICAgPGRieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItc2VsZWN0aW9uLXRvZ2dsZS1idXR0b24gW2Rpc2FibGVkXT1cInJlYWRvbmx5U2lnbmFsKClcIj48L2RieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItc2VsZWN0aW9uLXRvZ2dsZS1idXR0b24+XG4gICAgICA8ZGJ4LWJ1dHRvbi1zcGFjZXI+PC9kYngtYnV0dG9uLXNwYWNlcj5cbiAgICB9XG4gICAgPGRieC1pbmplY3Rpb24gW2NvbmZpZ109XCJkYXRlUG9wb3ZlckJ1dHRvbkluamVjdGlvbkNvbmZpZ1NpZ25hbCgpXCI+PC9kYngtaW5qZWN0aW9uPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPGRpdiBjbGFzcz1cImRieC1jYWxlbmRhci1jb250ZW50IGRieC1jYWxlbmRhci1jb250ZW50LW1vbnRoXCI+XG4gICAgPG13bC1jYWxlbmRhci1tb250aC12aWV3IFtyZWZyZXNoXT1cInJlZnJlc2gkXCIgW3ZpZXdEYXRlXT1cInZpZXdEYXRlU2lnbmFsKCkhXCIgW2V2ZW50c109XCJldmVudHNTaWduYWwoKVwiIChkYXlDbGlja2VkKT1cImRheUNsaWNrZWQoJGV2ZW50LmRheSlcIiAoZXZlbnRDbGlja2VkKT1cImV2ZW50Q2xpY2tlZCgnQ2xpY2tlZCcsICRldmVudC5ldmVudClcIiAoYmVmb3JlVmlld1JlbmRlcik9XCJiZWZvcmVNb250aFZpZXdSZW5kZXIoJGV2ZW50KVwiIFtjZWxsVGVtcGxhdGVdPVwibW9udGhEYXlDZWxsVGVtcGxhdGVcIj48L213bC1jYWxlbmRhci1tb250aC12aWV3PlxuICA8L2Rpdj5cbjwvZGJ4LWNhbGVuZGFyLWJhc2U+XG5cbjwhLS0gQ2VsbCAtLT5cbjxuZy10ZW1wbGF0ZSAjbW9udGhEYXlDZWxsVGVtcGxhdGUgbGV0LWRheT1cImRheVwiIGxldC1sb2NhbGU9XCJsb2NhbGVcIj5cbiAgPGRpdiBjbGFzcz1cImNhbC1jZWxsLXRvcFwiPlxuICAgIEBpZiAoZGF5LmJhZGdlVG90YWwgPiAwKSB7XG4gICAgICA8c3BhbiBjbGFzcz1cImNhbC1kYXktYmFkZ2VcIj57eyBkYXkuYmFkZ2VUb3RhbCB9fTwvc3Bhbj5cbiAgICB9XG4gICAgPHNwYW4gY2xhc3M9XCJjYWwtZGF5LW51bWJlclwiPnt7IGRheS5kYXRlIHwgY2FsZW5kYXJEYXRlOiAnbW9udGhWaWV3RGF5TnVtYmVyJyA6IGxvY2FsZSB9fTwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkYngtc2NoZWR1bGUtc2VsZWN0aW9uLWNhbGVuZGFyLWNlbGwgW2RheV09XCJkYXlcIj48L2RieC1zY2hlZHVsZS1zZWxlY3Rpb24tY2FsZW5kYXItY2VsbD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=