@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,36 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { FormlyModule } from '@ngx-formly/core';
3
- import { DbxDateTimeFieldComponent } from './datetime.field.component';
4
- import { DbxFormFormlyWrapperModule } from '../../wrapper/wrapper.module';
5
- import { DbxFixedDateRangeFieldComponent } from './fixeddaterange.field.component';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@ngx-formly/core";
8
- const importsAndExports = [DbxDateTimeFieldComponent, DbxFixedDateRangeFieldComponent, DbxFormFormlyWrapperModule];
9
- export class DbxFormFormlyDateFieldModule {
10
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyDateFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyDateFieldModule, imports: [DbxDateTimeFieldComponent, DbxFixedDateRangeFieldComponent, DbxFormFormlyWrapperModule, i1.FormlyModule], exports: [DbxDateTimeFieldComponent, DbxFixedDateRangeFieldComponent, DbxFormFormlyWrapperModule] });
12
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyDateFieldModule, imports: [importsAndExports, FormlyModule.forChild({
13
- types: [
14
- //
15
- { name: 'datetime', component: DbxDateTimeFieldComponent, wrappers: ['style', 'form-field'] },
16
- { name: 'fixeddaterange', component: DbxFixedDateRangeFieldComponent, wrappers: ['style', 'form-field'] }
17
- ]
18
- }), DbxFormFormlyWrapperModule] });
19
- }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFormFormlyDateFieldModule, decorators: [{
21
- type: NgModule,
22
- args: [{
23
- imports: [
24
- ...importsAndExports,
25
- FormlyModule.forChild({
26
- types: [
27
- //
28
- { name: 'datetime', component: DbxDateTimeFieldComponent, wrappers: ['style', 'form-field'] },
29
- { name: 'fixeddaterange', component: DbxFixedDateRangeFieldComponent, wrappers: ['style', 'form-field'] }
30
- ]
31
- })
32
- ],
33
- exports: importsAndExports
34
- }]
35
- }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZm9ybS9zcmMvbGliL2Zvcm1seS9maWVsZC92YWx1ZS9kYXRlL2RhdGUuZmllbGQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFFbkYsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLHlCQUF5QixFQUFFLCtCQUErQixFQUFFLDBCQUEwQixDQUFDLENBQUM7QUFlbkgsTUFBTSxPQUFPLDRCQUE0Qjt3R0FBNUIsNEJBQTRCO3lHQUE1Qiw0QkFBNEIsWUFmZCx5QkFBeUIsRUFBRSwrQkFBK0IsRUFBRSwwQkFBMEIsOEJBQXRGLHlCQUF5QixFQUFFLCtCQUErQixFQUFFLDBCQUEwQjt5R0FlcEcsNEJBQTRCLFlBWGxDLGlCQUFpQixFQUNwQixZQUFZLENBQUMsUUFBUSxDQUFDO2dCQUNwQixLQUFLLEVBQUU7b0JBQ0wsRUFBRTtvQkFDRixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsRUFBRTtvQkFDN0YsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLCtCQUErQixFQUFFLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsRUFBRTtpQkFDMUc7YUFDRixDQUFDLEVBWGlGLDBCQUEwQjs7NEZBZXBHLDRCQUE0QjtrQkFieEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsR0FBRyxpQkFBaUI7d0JBQ3BCLFlBQVksQ0FBQyxRQUFRLENBQUM7NEJBQ3BCLEtBQUssRUFBRTtnQ0FDTCxFQUFFO2dDQUNGLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUseUJBQXlCLEVBQUUsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxFQUFFO2dDQUM3RixFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsK0JBQStCLEVBQUUsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxFQUFFOzZCQUMxRzt5QkFDRixDQUFDO3FCQUNIO29CQUNELE9BQU8sRUFBRSxpQkFBaUI7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1seU1vZHVsZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgRGJ4RGF0ZVRpbWVGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXRpbWUuZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IERieEZvcm1Gb3JtbHlXcmFwcGVyTW9kdWxlIH0gZnJvbSAnLi4vLi4vd3JhcHBlci93cmFwcGVyLm1vZHVsZSc7XG5pbXBvcnQgeyBEYnhGaXhlZERhdGVSYW5nZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9maXhlZGRhdGVyYW5nZS5maWVsZC5jb21wb25lbnQnO1xuXG5jb25zdCBpbXBvcnRzQW5kRXhwb3J0cyA9IFtEYnhEYXRlVGltZUZpZWxkQ29tcG9uZW50LCBEYnhGaXhlZERhdGVSYW5nZUZpZWxkQ29tcG9uZW50LCBEYnhGb3JtRm9ybWx5V3JhcHBlck1vZHVsZV07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICAuLi5pbXBvcnRzQW5kRXhwb3J0cyxcbiAgICBGb3JtbHlNb2R1bGUuZm9yQ2hpbGQoe1xuICAgICAgdHlwZXM6IFtcbiAgICAgICAgLy9cbiAgICAgICAgeyBuYW1lOiAnZGF0ZXRpbWUnLCBjb21wb25lbnQ6IERieERhdGVUaW1lRmllbGRDb21wb25lbnQsIHdyYXBwZXJzOiBbJ3N0eWxlJywgJ2Zvcm0tZmllbGQnXSB9LFxuICAgICAgICB7IG5hbWU6ICdmaXhlZGRhdGVyYW5nZScsIGNvbXBvbmVudDogRGJ4Rml4ZWREYXRlUmFuZ2VGaWVsZENvbXBvbmVudCwgd3JhcHBlcnM6IFsnc3R5bGUnLCAnZm9ybS1maWVsZCddIH1cbiAgICAgIF1cbiAgICB9KVxuICBdLFxuICBleHBvcnRzOiBpbXBvcnRzQW5kRXhwb3J0c1xufSlcbmV4cG9ydCBjbGFzcyBEYnhGb3JtRm9ybWx5RGF0ZUZpZWxkTW9kdWxlIHt9XG4iXX0=
@@ -1,133 +0,0 @@
1
- import { parseISO8601DayStringToDate, toJsDate, formatToISO8601DayStringForSystem, formatToISO8601DateString, isSameDateHoursAndMinutes, parseJsDateString } from '@dereekb/date';
2
- import { dateFromMinuteOfDay, dateToMinuteOfDay } from '@dereekb/util';
3
- export var DbxDateTimeValueMode;
4
- (function (DbxDateTimeValueMode) {
5
- /**
6
- * Value is returned/parsed as a Date.
7
- */
8
- DbxDateTimeValueMode[DbxDateTimeValueMode["DATE"] = 0] = "DATE";
9
- /**
10
- * Value is returned/parsed as an ISO8601DateString
11
- */
12
- DbxDateTimeValueMode[DbxDateTimeValueMode["DATE_STRING"] = 1] = "DATE_STRING";
13
- /**
14
- * Value is returned/parsed as an ISO8601DayString, relative to the current timezone.
15
- */
16
- DbxDateTimeValueMode[DbxDateTimeValueMode["DAY_STRING"] = 2] = "DAY_STRING";
17
- /**
18
- * Value is returned/parsed as a Unix timestamp, relative to the current timezone.
19
- */
20
- DbxDateTimeValueMode[DbxDateTimeValueMode["UNIX_TIMESTAMP"] = 3] = "UNIX_TIMESTAMP";
21
- /**
22
- * Value is returned/parsed as a minute of the day, relative to the current timezone.
23
- */
24
- DbxDateTimeValueMode[DbxDateTimeValueMode["MINUTE_OF_DAY"] = 4] = "MINUTE_OF_DAY";
25
- /**
26
- * Value is returned/parsed as a minute of the day, relative to the system timezone.
27
- */
28
- DbxDateTimeValueMode[DbxDateTimeValueMode["SYSTEM_MINUTE_OF_DAY"] = 5] = "SYSTEM_MINUTE_OF_DAY";
29
- })(DbxDateTimeValueMode || (DbxDateTimeValueMode = {}));
30
- export function dbxDateTimeInputValueParseFactory(mode, timezoneInstance) {
31
- let factory;
32
- let useTimezoneInstance = true;
33
- switch (mode) {
34
- case DbxDateTimeValueMode.DAY_STRING:
35
- factory = (x) => {
36
- let result;
37
- switch (typeof x) {
38
- case 'string':
39
- result = parseISO8601DayStringToDate(x);
40
- break;
41
- case 'number':
42
- result = new Date(x);
43
- break;
44
- default:
45
- result = x;
46
- break;
47
- }
48
- return result;
49
- };
50
- useTimezoneInstance = false; // day strings do not use timezones
51
- break;
52
- case DbxDateTimeValueMode.SYSTEM_MINUTE_OF_DAY:
53
- case DbxDateTimeValueMode.MINUTE_OF_DAY:
54
- factory = (x) => {
55
- let result;
56
- switch (typeof x) {
57
- case 'number':
58
- result = dateFromMinuteOfDay(x);
59
- break;
60
- case 'string':
61
- result = parseJsDateString(x);
62
- break;
63
- default:
64
- result = x;
65
- break;
66
- }
67
- return result;
68
- };
69
- if (mode === DbxDateTimeValueMode.SYSTEM_MINUTE_OF_DAY) {
70
- useTimezoneInstance = false;
71
- }
72
- break;
73
- case DbxDateTimeValueMode.UNIX_TIMESTAMP:
74
- case DbxDateTimeValueMode.DATE_STRING:
75
- case DbxDateTimeValueMode.DATE:
76
- default:
77
- factory = (x) => (x != null ? toJsDate(x) : x);
78
- break;
79
- }
80
- if (timezoneInstance && useTimezoneInstance) {
81
- const originalFactory = factory;
82
- factory = (input) => {
83
- const date = originalFactory(input);
84
- const result = date ? timezoneInstance.systemDateToTargetDate(date) : date;
85
- return result;
86
- };
87
- }
88
- return factory;
89
- }
90
- export function dbxDateTimeOutputValueFactory(mode, timezoneInstance) {
91
- let factory;
92
- let useTimezoneInstance = true;
93
- switch (mode) {
94
- case DbxDateTimeValueMode.DAY_STRING:
95
- factory = (x) => (x != null ? formatToISO8601DayStringForSystem(x) : x);
96
- useTimezoneInstance = false; // day strings do not use timezones
97
- break;
98
- case DbxDateTimeValueMode.DATE_STRING:
99
- factory = (x) => (x != null ? formatToISO8601DateString(x) : x);
100
- break;
101
- case DbxDateTimeValueMode.UNIX_TIMESTAMP:
102
- factory = (x) => (x != null ? x.getTime() : x);
103
- break;
104
- case DbxDateTimeValueMode.SYSTEM_MINUTE_OF_DAY:
105
- case DbxDateTimeValueMode.MINUTE_OF_DAY:
106
- factory = (x) => (x != null ? dateToMinuteOfDay(x) : x);
107
- if (mode === DbxDateTimeValueMode.SYSTEM_MINUTE_OF_DAY) {
108
- useTimezoneInstance = false;
109
- }
110
- break;
111
- case DbxDateTimeValueMode.DATE:
112
- default:
113
- factory = (x) => x;
114
- break;
115
- }
116
- if (timezoneInstance && useTimezoneInstance) {
117
- const originalFactory = factory;
118
- factory = (input) => {
119
- const date = input ? timezoneInstance.targetDateToSystemDate(input) : input;
120
- const result = originalFactory(date);
121
- return result;
122
- };
123
- }
124
- return factory;
125
- }
126
- export function dbxDateTimeIsSameDateTimeFieldValue(a, b) {
127
- const typeofA = typeof a;
128
- return a && b ? (typeofA === 'string' || typeofA === 'number' ? a === b : isSameDateHoursAndMinutes(a, b)) : a == b;
129
- }
130
- export function dbxDateRangeIsSameDateRangeFieldValue(a, b) {
131
- return a && b ? dbxDateTimeIsSameDateTimeFieldValue(a.start, b.start) && dbxDateTimeIsSameDateTimeFieldValue(a.end, b.end) : a == b;
132
- }
133
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS52YWx1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1mb3JtL3NyYy9saWIvZm9ybWx5L2ZpZWxkL3ZhbHVlL2RhdGUvZGF0ZS52YWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXNDLDJCQUEyQixFQUFFLFFBQVEsRUFBRSxpQ0FBaUMsRUFBRSx5QkFBeUIsRUFBRSx5QkFBeUIsRUFBdUMsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM1AsT0FBTyxFQUFxQyxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRyxNQUFNLENBQU4sSUFBWSxvQkF5Qlg7QUF6QkQsV0FBWSxvQkFBb0I7SUFDOUI7O09BRUc7SUFDSCwrREFBUSxDQUFBO0lBQ1I7O09BRUc7SUFDSCw2RUFBZSxDQUFBO0lBQ2Y7O09BRUc7SUFDSCwyRUFBYyxDQUFBO0lBQ2Q7O09BRUc7SUFDSCxtRkFBa0IsQ0FBQTtJQUNsQjs7T0FFRztJQUNILGlGQUFpQixDQUFBO0lBQ2pCOztPQUVHO0lBQ0gsK0ZBQXdCLENBQUE7QUFDMUIsQ0FBQyxFQXpCVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBeUIvQjtBQUVELE1BQU0sVUFBVSxpQ0FBaUMsQ0FBQyxJQUEwQixFQUFFLGdCQUFzRDtJQUNsSSxJQUFJLE9BQTZELENBQUM7SUFDbEUsSUFBSSxtQkFBbUIsR0FBRyxJQUFJLENBQUM7SUFFL0IsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNiLEtBQUssb0JBQW9CLENBQUMsVUFBVTtZQUNsQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDZCxJQUFJLE1BQW1CLENBQUM7Z0JBRXhCLFFBQVEsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDakIsS0FBSyxRQUFRO3dCQUNYLE1BQU0sR0FBRywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3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QUFtQyxDQUFDLENBQTBDLEVBQUUsQ0FBMEM7SUFDeEksTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxRQUFRLElBQUksT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBUyxFQUFFLENBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEksQ0FBQztBQUVELE1BQU0sVUFBVSxxQ0FBcUMsQ0FBQyxDQUF3QyxFQUFFLENBQXdDO0lBQ3RJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksbUNBQW1DLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdEksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRGF0ZVRpbWV6b25lVXRjTm9ybWFsSW5zdGFuY2UsIHBhcnNlSVNPODYwMURheVN0cmluZ1RvRGF0ZSwgdG9Kc0RhdGUsIGZvcm1hdFRvSVNPODYwMURheVN0cmluZ0ZvclN5c3RlbSwgZm9ybWF0VG9JU084NjAxRGF0ZVN0cmluZywgaXNTYW1lRGF0ZUhvdXJzQW5kTWludXRlcywgdHlwZSBEYXRlUmFuZ2VXaXRoRGF0ZU9yU3RyaW5nVmFsdWUsIHBhcnNlSnNEYXRlU3RyaW5nIH0gZnJvbSAnQGRlcmVla2IvZGF0ZSc7XG5pbXBvcnQgeyB0eXBlIElTTzg2MDFEYXlTdHJpbmcsIHR5cGUgTWF5YmUsIGRhdGVGcm9tTWludXRlT2ZEYXksIGRhdGVUb01pbnV0ZU9mRGF5IH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbmV4cG9ydCBlbnVtIERieERhdGVUaW1lVmFsdWVNb2RlIHtcbiAgLyoqXG4gICAqIFZhbHVlIGlzIHJldHVybmVkL3BhcnNlZCBhcyBhIERhdGUuXG4gICAqL1xuICBEQVRFID0gMCxcbiAgLyoqXG4gICAqIFZhbHVlIGlzIHJldHVybmVkL3BhcnNlZCBhcyBhbiBJU084NjAxRGF0ZVN0cmluZ1xuICAgKi9cbiAgREFURV9TVFJJTkcgPSAxLFxuICAvKipcbiAgICogVmFsdWUgaXMgcmV0dXJuZWQvcGFyc2VkIGFzIGFuIElTTzg2MDFEYXlTdHJpbmcsIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHRpbWV6b25lLlxuICAgKi9cbiAgREFZX1NUUklORyA9IDIsXG4gIC8qKlxuICAgKiBWYWx1ZSBpcyByZXR1cm5lZC9wYXJzZWQgYXMgYSBVbml4IHRpbWVzdGFtcCwgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgdGltZXpvbmUuXG4gICAqL1xuICBVTklYX1RJTUVTVEFNUCA9IDMsXG4gIC8qKlxuICAgKiBWYWx1ZSBpcyByZXR1cm5lZC9wYXJzZWQgYXMgYSBtaW51dGUgb2YgdGhlIGRheSwgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgdGltZXpvbmUuXG4gICAqL1xuICBNSU5VVEVfT0ZfREFZID0gNCxcbiAgLyoqXG4gICAqIFZhbHVlIGlzIHJldHVybmVkL3BhcnNlZCBhcyBhIG1pbnV0ZSBvZiB0aGUgZGF5LCByZWxhdGl2ZSB0byB0aGUgc3lzdGVtIHRpbWV6b25lLlxuICAgKi9cbiAgU1lTVEVNX01JTlVURV9PRl9EQVkgPSA1XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYnhEYXRlVGltZUlucHV0VmFsdWVQYXJzZUZhY3RvcnkobW9kZTogRGJ4RGF0ZVRpbWVWYWx1ZU1vZGUsIHRpbWV6b25lSW5zdGFuY2U6IE1heWJlPERhdGVUaW1lem9uZVV0Y05vcm1hbEluc3RhbmNlPik6IChkYXRlOiBNYXliZTxEYXRlIHwgc3RyaW5nIHwgbnVtYmVyPikgPT4gTWF5YmU8RGF0ZT4ge1xuICBsZXQgZmFjdG9yeTogKGRhdGU6IE1heWJlPERhdGUgfCBzdHJpbmcgfCBudW1iZXI+KSA9PiBNYXliZTxEYXRlPjtcbiAgbGV0IHVzZVRpbWV6b25lSW5zdGFuY2UgPSB0cnVlO1xuXG4gIHN3aXRjaCAobW9kZSkge1xuICAgIGNhc2UgRGJ4RGF0ZVRpbWVWYWx1ZU1vZGUuREFZX1NUUklORzpcbiAgICAgIGZhY3RvcnkgPSAoeCkgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0OiBNYXliZTxEYXRlPjtcblxuICAgICAgICBzd2l0Y2ggKHR5cGVvZiB4KSB7XG4gICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgIHJlc3VsdCA9IHBhcnNlSVNPODYwMURheVN0cmluZ1RvRGF0ZSh4KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICByZXN1bHQgPSBuZXcgRGF0ZSh4KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXN1bHQgPSB4O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcbiAgICAgIHVzZVRpbWV6b25lSW5zdGFuY2UgPSBmYWxzZTsgLy8gZGF5IHN0cmluZ3MgZG8gbm90IHVzZSB0aW1lem9uZXNcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRGJ4RGF0ZVRpbWVWYWx1ZU1vZGUuU1lTVEVNX01JTlVURV9PRl9EQVk6XG4gICAgY2FzZSBEYnhEYXRlVGltZVZhbHVlTW9kZS5NSU5VVEVfT0ZfREFZOlxuICAgICAgZmFjdG9yeSA9ICh4KSA9PiB7XG4gICAgICAgIGxldCByZXN1bHQ6IE1heWJlPERhdGU+O1xuXG4gICAgICAgIHN3aXRjaCAodHlwZW9mIHgpIHtcbiAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgcmVzdWx0ID0gZGF0ZUZyb21NaW51dGVPZkRheSh4KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgICByZXN1bHQgPSBwYXJzZUpzRGF0ZVN0cmluZyh4KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXN1bHQgPSB4O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfTtcblxuICAgICAgaWYgKG1vZGUgPT09IERieERhdGVUaW1lVmFsdWVNb2RlLlNZU1RFTV9NSU5VVEVfT0ZfREFZKSB7XG4gICAgICAgIHVzZVRpbWV6b25lSW5zdGFuY2UgPSBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBEYnhEYXRlVGltZVZhbHVlTW9kZS5VTklYX1RJTUVTVEFNUDpcbiAgICBjYXNlIERieERhdGVUaW1lVmFsdWVNb2RlLkRBVEVfU1RSSU5HOlxuICAgIGNhc2UgRGJ4RGF0ZVRpbWVWYWx1ZU1vZGUuREFURTpcbiAgICBkZWZhdWx0OlxuICAgICAgZmFjdG9yeSA9ICh4KSA9PiAoeCAhPSBudWxsID8gdG9Kc0RhdGUoeCBhcyBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyKSA6IHgpO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICBpZiAodGltZXpvbmVJbnN0YW5jZSAmJiB1c2VUaW1lem9uZUluc3RhbmNlKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxGYWN0b3J5ID0gZmFjdG9yeTtcblxuICAgIGZhY3RvcnkgPSAoaW5wdXQpID0+IHtcbiAgICAgIGNvbnN0IGRhdGUgPSBvcmlnaW5hbEZhY3RvcnkoaW5wdXQpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gZGF0ZSA/IHRpbWV6b25lSW5zdGFuY2Uuc3lzdGVtRGF0ZVRvVGFyZ2V0RGF0ZShkYXRlKSA6IGRhdGU7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gIH1cblxuICByZXR1cm4gZmFjdG9yeTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRieERhdGVUaW1lT3V0cHV0VmFsdWVGYWN0b3J5KG1vZGU6IERieERhdGVUaW1lVmFsdWVNb2RlLCB0aW1lem9uZUluc3RhbmNlOiBNYXliZTxEYXRlVGltZXpvbmVVdGNOb3JtYWxJbnN0YW5jZT4pOiAoZGF0ZTogTWF5YmU8RGF0ZT4pID0+IE1heWJlPERhdGUgfCBzdHJpbmcgfCBudW1iZXI+IHtcbiAgbGV0IGZhY3Rvcnk6IChkYXRlOiBNYXliZTxEYXRlPikgPT4gTWF5YmU8RGF0ZSB8IHN0cmluZyB8IG51bWJlcj47XG4gIGxldCB1c2VUaW1lem9uZUluc3RhbmNlID0gdHJ1ZTtcblxuICBzd2l0Y2ggKG1vZGUpIHtcbiAgICBjYXNlIERieERhdGVUaW1lVmFsdWVNb2RlLkRBWV9TVFJJTkc6XG4gICAgICBmYWN0b3J5ID0gKHgpID0+ICh4ICE9IG51bGwgPyBmb3JtYXRUb0lTTzg2MDFEYXlTdHJpbmdGb3JTeXN0ZW0oeCkgOiB4KTtcbiAgICAgIHVzZVRpbWV6b25lSW5zdGFuY2UgPSBmYWxzZTsgLy8gZGF5IHN0cmluZ3MgZG8gbm90IHVzZSB0aW1lem9uZXNcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRGJ4RGF0ZVRpbWVWYWx1ZU1vZGUuREFURV9TVFJJTkc6XG4gICAgICBmYWN0b3J5ID0gKHgpID0+ICh4ICE9IG51bGwgPyBmb3JtYXRUb0lTTzg2MDFEYXRlU3RyaW5nKHgpIDogeCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIERieERhdGVUaW1lVmFsdWVNb2RlLlVOSVhfVElNRVNUQU1QOlxuICAgICAgZmFjdG9yeSA9ICh4KSA9PiAoeCAhPSBudWxsID8geC5nZXRUaW1lKCkgOiB4KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRGJ4RGF0ZVRpbWVWYWx1ZU1vZGUuU1lTVEVNX01JTlVURV9PRl9EQVk6XG4gICAgY2FzZSBEYnhEYXRlVGltZVZhbHVlTW9kZS5NSU5VVEVfT0ZfREFZOlxuICAgICAgZmFjdG9yeSA9ICh4KSA9PiAoeCAhPSBudWxsID8gZGF0ZVRvTWludXRlT2ZEYXkoeCkgOiB4KTtcblxuICAgICAgaWYgKG1vZGUgPT09IERieERhdGVUaW1lVmFsdWVNb2RlLlNZU1RFTV9NSU5VVEVfT0ZfREFZKSB7XG4gICAgICAgIHVzZVRpbWV6b25lSW5zdGFuY2UgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgRGJ4RGF0ZVRpbWVWYWx1ZU1vZGUuREFURTpcbiAgICBkZWZhdWx0OlxuICAgICAgZmFjdG9yeSA9ICh4KSA9PiB4O1xuICAgICAgYnJlYWs7XG4gIH1cblxuICBpZiAodGltZXpvbmVJbnN0YW5jZSAmJiB1c2VUaW1lem9uZUluc3RhbmNlKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxGYWN0b3J5ID0gZmFjdG9yeTtcblxuICAgIGZhY3RvcnkgPSAoaW5wdXQpID0+IHtcbiAgICAgIGNvbnN0IGRhdGUgPSBpbnB1dCA/IHRpbWV6b25lSW5zdGFuY2UudGFyZ2V0RGF0ZVRvU3lzdGVtRGF0ZShpbnB1dCkgOiBpbnB1dDtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG9yaWdpbmFsRmFjdG9yeShkYXRlKTtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBmYWN0b3J5O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGJ4RGF0ZVRpbWVJc1NhbWVEYXRlVGltZUZpZWxkVmFsdWUoYTogTWF5YmU8RGF0ZSB8IElTTzg2MDFEYXlTdHJpbmcgfCBudW1iZXI+LCBiOiBNYXliZTxEYXRlIHwgSVNPODYwMURheVN0cmluZyB8IG51bWJlcj4pIHtcbiAgY29uc3QgdHlwZW9mQSA9IHR5cGVvZiBhO1xuICByZXR1cm4gYSAmJiBiID8gKHR5cGVvZkEgPT09ICdzdHJpbmcnIHx8IHR5cGVvZkEgPT09ICdudW1iZXInID8gYSA9PT0gYiA6IGlzU2FtZURhdGVIb3Vyc0FuZE1pbnV0ZXMoYSBhcyBEYXRlLCBiIGFzIERhdGUpKSA6IGEgPT0gYjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRieERhdGVSYW5nZUlzU2FtZURhdGVSYW5nZUZpZWxkVmFsdWUoYTogTWF5YmU8RGF0ZVJhbmdlV2l0aERhdGVPclN0cmluZ1ZhbHVlPiwgYjogTWF5YmU8RGF0ZVJhbmdlV2l0aERhdGVPclN0cmluZ1ZhbHVlPikge1xuICByZXR1cm4gYSAmJiBiID8gZGJ4RGF0ZVRpbWVJc1NhbWVEYXRlVGltZUZpZWxkVmFsdWUoYS5zdGFydCwgYi5zdGFydCkgJiYgZGJ4RGF0ZVRpbWVJc1NhbWVEYXRlVGltZUZpZWxkVmFsdWUoYS5lbmQsIGIuZW5kKSA6IGEgPT0gYjtcbn1cbiJdfQ==