@messaia/cdk 18.2.3 → 19.0.0-rc01

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 (659) hide show
  1. package/fesm2022/messaia-cdk.mjs +1147 -932
  2. package/fesm2022/messaia-cdk.mjs.map +1 -1
  3. package/lib/base/components/base.component.d.ts +1 -1
  4. package/lib/base/components/generic-embedded-list.component.d.ts +1 -1
  5. package/lib/base/components/generic-form-base.component.d.ts +1 -1
  6. package/lib/base/components/generic-form.component.d.ts +1 -1
  7. package/lib/base/components/generic-list.component.d.ts +7 -3
  8. package/lib/base/components/generic-reactive-form.component.d.ts +1 -1
  9. package/lib/base/helpers/auth-helper.d.ts +1 -1
  10. package/lib/chips/components/chips.component.d.ts +5 -16
  11. package/lib/common/functions/utils.d.ts +1 -1
  12. package/lib/common/helpers/app-storage.d.ts +1 -1
  13. package/lib/common/styles/_layout.scss +1 -1
  14. package/lib/common/styles/_variables.scss +4 -25
  15. package/lib/common/styles/colors/_colors-dark.scss +2 -0
  16. package/lib/common/styles/colors/_colors.scss +4 -4
  17. package/lib/common/styles/core/_button.scss +7 -21
  18. package/lib/common/styles/core/_card.scss +13 -97
  19. package/lib/common/styles/core/_core.scss +8 -21
  20. package/lib/common/styles/core/_sidenav.scss +9 -7
  21. package/lib/common/styles/core/_structure.scss +4 -11
  22. package/lib/common/styles/font/_font.scss +5 -13
  23. package/lib/common/styles/m2/_common-theme.scss +10 -10
  24. package/lib/common/styles/m3/_common-theme.scss +27 -10
  25. package/lib/common/styles/platform.scss +10 -8
  26. package/lib/common/styles/utilities/_general.scss +55 -51
  27. package/lib/common/styles/utilities/_pull.scss +23 -30
  28. package/lib/common/styles/utilities/_push.scss +23 -30
  29. package/lib/common/styles/utilities/_size.scss +3 -3
  30. package/lib/common/styles/utilities/_utilities.scss +14 -14
  31. package/lib/common/theming/_m2-all-theme.scss +4 -11
  32. package/lib/common/theming/_m3-all-theme.scss +18 -0
  33. package/lib/form-validators/directives/base-directive.d.ts +1 -1
  34. package/lib/form-validators/directives/template-validations/base-validator.directive.d.ts +1 -1
  35. package/lib/form-validators/directives/template-validations/control-expression-process.d.ts +1 -1
  36. package/lib/form-validators/services/rx-form-array.d.ts +2 -2
  37. package/lib/form-validators/util/reset-form.d.ts +3 -3
  38. package/lib/forms/directives/mat-form-field-editor.directive.d.ts +31 -28
  39. package/lib/forms/helpers/abstract-mat-form-field.d.ts +147 -91
  40. package/lib/forms/helpers/abstract-select-form-field.component.d.ts +144 -67
  41. package/lib/forms/helpers/value-accessor-base.d.ts +1 -1
  42. package/lib/layout/_m2-layout-theme.scss +14 -50
  43. package/lib/layout/layout-toggle.class.d.ts +1 -1
  44. package/lib/list/components/list.component.d.ts +3 -15
  45. package/lib/select/components/select.component.d.ts +3 -16
  46. package/lib/table/components/filter-select/filter-select.component.d.ts +2 -3
  47. package/package.json +3 -5
  48. package/esm2022/lib/base/base.module.mjs +0 -114
  49. package/esm2022/lib/base/components/base.component.mjs +0 -904
  50. package/esm2022/lib/base/components/dynamic-table-config-dialog/dynamic-table-config-dialog.comnponent.mjs +0 -123
  51. package/esm2022/lib/base/components/generic-embedded-list.component.mjs +0 -197
  52. package/esm2022/lib/base/components/generic-form-base.component.mjs +0 -891
  53. package/esm2022/lib/base/components/generic-form.component.mjs +0 -44
  54. package/esm2022/lib/base/components/generic-list.component.mjs +0 -966
  55. package/esm2022/lib/base/components/generic-reactive-form.component.mjs +0 -101
  56. package/esm2022/lib/base/components/task-dialog/task-dialog.component.mjs +0 -147
  57. package/esm2022/lib/base/constants/common.mjs +0 -92
  58. package/esm2022/lib/base/constants/global-roles.mjs +0 -9
  59. package/esm2022/lib/base/enums/message-type.mjs +0 -7
  60. package/esm2022/lib/base/helpers/auth-helper.mjs +0 -53
  61. package/esm2022/lib/base/interceptors/base.interceptor.mjs +0 -168
  62. package/esm2022/lib/base/interceptors/caching-interceptor.mjs +0 -67
  63. package/esm2022/lib/base/interceptors/loading.interceptor.mjs +0 -64
  64. package/esm2022/lib/base/interfaces/ibase-component.mjs +0 -2
  65. package/esm2022/lib/base/interfaces/igeneric-form-base.mjs +0 -2
  66. package/esm2022/lib/base/interfaces/igeneric-list-component.mjs +0 -2
  67. package/esm2022/lib/base/interfaces/igeneric-reactive-form-base.mjs +0 -2
  68. package/esm2022/lib/base/models/auth-user.mjs +0 -18
  69. package/esm2022/lib/base/models/task-dialog-data.mjs +0 -85
  70. package/esm2022/lib/base/public_api.mjs +0 -2
  71. package/esm2022/lib/base/services/file.service.mjs +0 -18
  72. package/esm2022/lib/base/services/loading-screen.service.mjs +0 -45
  73. package/esm2022/lib/base/services/print.service.mjs +0 -41
  74. package/esm2022/lib/chips/chips.module.mjs +0 -77
  75. package/esm2022/lib/chips/components/chips.component.mjs +0 -702
  76. package/esm2022/lib/chips/directives/autocomplete-option.directive.mjs +0 -18
  77. package/esm2022/lib/chips/directives/chip.directive.mjs +0 -18
  78. package/esm2022/lib/chips/public_api.mjs +0 -3
  79. package/esm2022/lib/common/animations/collapse/collapse.animation.mjs +0 -33
  80. package/esm2022/lib/common/animations/common/interfaces.mjs +0 -2
  81. package/esm2022/lib/common/behaviors/constructor.mjs +0 -2
  82. package/esm2022/lib/common/behaviors/control-value-accesor.mixin.mjs +0 -41
  83. package/esm2022/lib/common/behaviors/disabled.mixin.mjs +0 -24
  84. package/esm2022/lib/common/common.module.mjs +0 -176
  85. package/esm2022/lib/common/constants/constants.mjs +0 -3
  86. package/esm2022/lib/common/directives/autofocus.directive.mjs +0 -62
  87. package/esm2022/lib/common/directives/delayed-hover.directive.mjs +0 -133
  88. package/esm2022/lib/common/directives/disable-control.directive.mjs +0 -35
  89. package/esm2022/lib/common/enums/app-event-type.mjs +0 -6
  90. package/esm2022/lib/common/enums/filter-glue.mjs +0 -16
  91. package/esm2022/lib/common/enums/filter-operator.mjs +0 -15
  92. package/esm2022/lib/common/enums/salutation.mjs +0 -7
  93. package/esm2022/lib/common/functions/decorators.mjs +0 -22
  94. package/esm2022/lib/common/functions/functions.mjs +0 -22
  95. package/esm2022/lib/common/functions/utils.mjs +0 -271
  96. package/esm2022/lib/common/helpers/app-storage.mjs +0 -77
  97. package/esm2022/lib/common/helpers/delegate.mjs +0 -2
  98. package/esm2022/lib/common/helpers/dynamic-builder.mjs +0 -52
  99. package/esm2022/lib/common/helpers/dynamic-component-compiler.mjs +0 -11
  100. package/esm2022/lib/common/models/action-item.mjs +0 -77
  101. package/esm2022/lib/common/models/app-event.mjs +0 -21
  102. package/esm2022/lib/common/models/app-setting.mjs +0 -92
  103. package/esm2022/lib/common/models/audit-entity.mjs +0 -53
  104. package/esm2022/lib/common/models/audit-user.mjs +0 -24
  105. package/esm2022/lib/common/models/base-entity.mjs +0 -40
  106. package/esm2022/lib/common/models/common-error.mjs +0 -29
  107. package/esm2022/lib/common/models/common-handler-context.mjs +0 -45
  108. package/esm2022/lib/common/models/displayname-number-projection.mjs +0 -56
  109. package/esm2022/lib/common/models/displayname-projection.mjs +0 -38
  110. package/esm2022/lib/common/models/entity.mjs +0 -2
  111. package/esm2022/lib/common/models/enum-item.mjs +0 -2
  112. package/esm2022/lib/common/models/enum-metadata.mjs +0 -44
  113. package/esm2022/lib/common/models/filter-field.mjs +0 -2
  114. package/esm2022/lib/common/models/filter.mjs +0 -2
  115. package/esm2022/lib/common/models/icommon-handler-context.mjs +0 -2
  116. package/esm2022/lib/common/models/icon.mjs +0 -42
  117. package/esm2022/lib/common/models/key-value.mjs +0 -11
  118. package/esm2022/lib/common/models/modifiable-entity.mjs +0 -22
  119. package/esm2022/lib/common/models/name-number-projection.mjs +0 -35
  120. package/esm2022/lib/common/models/name-projection.mjs +0 -25
  121. package/esm2022/lib/common/models/permission.mjs +0 -29
  122. package/esm2022/lib/common/models/save-action.mjs +0 -7
  123. package/esm2022/lib/common/models/suffix-button.mjs +0 -15
  124. package/esm2022/lib/common/models/title-projection.mjs +0 -25
  125. package/esm2022/lib/common/pipes/bind.mjs +0 -31
  126. package/esm2022/lib/common/pipes/data-source.pipe.mjs +0 -15
  127. package/esm2022/lib/common/pipes/enum.pipe.mjs +0 -41
  128. package/esm2022/lib/common/pipes/file-size.pipe.mjs +0 -35
  129. package/esm2022/lib/common/pipes/filter.pipe.mjs +0 -54
  130. package/esm2022/lib/common/pipes/first-letter.mjs +0 -24
  131. package/esm2022/lib/common/pipes/form-array.pipe.mjs +0 -14
  132. package/esm2022/lib/common/pipes/form-control.pipe.mjs +0 -14
  133. package/esm2022/lib/common/pipes/form-group.pipe.mjs +0 -14
  134. package/esm2022/lib/common/pipes/func.pipe.mjs +0 -14
  135. package/esm2022/lib/common/pipes/join.pipe.mjs +0 -26
  136. package/esm2022/lib/common/pipes/keys.mjs +0 -18
  137. package/esm2022/lib/common/pipes/map.pipe.mjs +0 -48
  138. package/esm2022/lib/common/pipes/month-name.pipe.mjs +0 -25
  139. package/esm2022/lib/common/pipes/nested-property.mjs +0 -29
  140. package/esm2022/lib/common/pipes/only-number.mjs +0 -58
  141. package/esm2022/lib/common/pipes/order.pipe.mjs +0 -269
  142. package/esm2022/lib/common/pipes/placeholder.pipe.mjs +0 -26
  143. package/esm2022/lib/common/pipes/property-join.pipe.mjs +0 -27
  144. package/esm2022/lib/common/pipes/safe-html.pipe.mjs +0 -32
  145. package/esm2022/lib/common/pipes/split.pipe.mjs +0 -25
  146. package/esm2022/lib/common/pipes/time.pipe.mjs +0 -21
  147. package/esm2022/lib/common/pipes/titlecase.pipe.mjs +0 -14
  148. package/esm2022/lib/common/pipes/truncate.pipe.mjs +0 -15
  149. package/esm2022/lib/common/pipes/values.mjs +0 -14
  150. package/esm2022/lib/common/public_api.mjs +0 -41
  151. package/esm2022/lib/common/services/base.service.mjs +0 -19
  152. package/esm2022/lib/common/services/context-helper.mjs +0 -17
  153. package/esm2022/lib/common/services/enum.service.mjs +0 -81
  154. package/esm2022/lib/common/services/event-queue.service.mjs +0 -31
  155. package/esm2022/lib/common/services/service-locator.mjs +0 -25
  156. package/esm2022/lib/common/templates/templates.mjs +0 -87
  157. package/esm2022/lib/dialogs/alert-dialog/alert-dialog.component.mjs +0 -46
  158. package/esm2022/lib/dialogs/confirm-dialog/confirm-dialog.component.mjs +0 -60
  159. package/esm2022/lib/dialogs/dialog.component.mjs +0 -59
  160. package/esm2022/lib/dialogs/dialogs.module.mjs +0 -72
  161. package/esm2022/lib/dialogs/prompt-dialog/prompt-dialog.component.mjs +0 -44
  162. package/esm2022/lib/dialogs/public_api.mjs +0 -2
  163. package/esm2022/lib/dialogs/services/dialog.service.mjs +0 -154
  164. package/esm2022/lib/file/file-input.component.mjs +0 -334
  165. package/esm2022/lib/file/file.module.mjs +0 -37
  166. package/esm2022/lib/file/public_api.mjs +0 -2
  167. package/esm2022/lib/form-validators/abstract/typed-form.mjs +0 -13
  168. package/esm2022/lib/form-validators/algorithm/luhn-algorithm.mjs +0 -33
  169. package/esm2022/lib/form-validators/const/app-validators.const.mjs +0 -68
  170. package/esm2022/lib/form-validators/const/app.const.mjs +0 -65
  171. package/esm2022/lib/form-validators/const/config-names.const.mjs +0 -33
  172. package/esm2022/lib/form-validators/const/config-required-fields.const.mjs +0 -35
  173. package/esm2022/lib/form-validators/const/decorators.const.mjs +0 -23
  174. package/esm2022/lib/form-validators/const/events.const.mjs +0 -53
  175. package/esm2022/lib/form-validators/const/html-elements.const.mjs +0 -25
  176. package/esm2022/lib/form-validators/const/iban-country-wise-regex.const.mjs +0 -80
  177. package/esm2022/lib/form-validators/const/index.mjs +0 -6
  178. package/esm2022/lib/form-validators/const/operators.const.mjs +0 -7
  179. package/esm2022/lib/form-validators/const/validation-alphabet-locale.const.mjs +0 -9
  180. package/esm2022/lib/form-validators/const/validator.const.mjs +0 -29
  181. package/esm2022/lib/form-validators/core/annotation-types.mjs +0 -75
  182. package/esm2022/lib/form-validators/core/default-container.mjs +0 -500
  183. package/esm2022/lib/form-validators/decorators/allOf.decorator.mjs +0 -10
  184. package/esm2022/lib/form-validators/decorators/alpha.decorator.mjs +0 -10
  185. package/esm2022/lib/form-validators/decorators/alphaNumeric.decorator.mjs +0 -10
  186. package/esm2022/lib/form-validators/decorators/and.decorator.mjs +0 -6
  187. package/esm2022/lib/form-validators/decorators/ascii.decorator.mjs +0 -6
  188. package/esm2022/lib/form-validators/decorators/async.decorator.mjs +0 -6
  189. package/esm2022/lib/form-validators/decorators/base-decorator.function.mjs +0 -7
  190. package/esm2022/lib/form-validators/decorators/choice.decorator.mjs +0 -10
  191. package/esm2022/lib/form-validators/decorators/compare.decorator.mjs +0 -6
  192. package/esm2022/lib/form-validators/decorators/compose.decorator.mjs +0 -6
  193. package/esm2022/lib/form-validators/decorators/contains.decorator.mjs +0 -10
  194. package/esm2022/lib/form-validators/decorators/credit-card.decorator.mjs +0 -10
  195. package/esm2022/lib/form-validators/decorators/cusip.decorator.mjs +0 -6
  196. package/esm2022/lib/form-validators/decorators/custom.decorator.mjs +0 -10
  197. package/esm2022/lib/form-validators/decorators/dataUri.decorator.mjs +0 -6
  198. package/esm2022/lib/form-validators/decorators/date.decorator.mjs +0 -10
  199. package/esm2022/lib/form-validators/decorators/different.decorator.mjs +0 -6
  200. package/esm2022/lib/form-validators/decorators/digit.decorator.mjs +0 -6
  201. package/esm2022/lib/form-validators/decorators/email.decorator.mjs +0 -6
  202. package/esm2022/lib/form-validators/decorators/endsWith.decorator.mjs +0 -10
  203. package/esm2022/lib/form-validators/decorators/even.decorator.mjs +0 -6
  204. package/esm2022/lib/form-validators/decorators/extension.decorator.mjs +0 -10
  205. package/esm2022/lib/form-validators/decorators/factor.decorator.mjs +0 -10
  206. package/esm2022/lib/form-validators/decorators/file.decorator.mjs +0 -10
  207. package/esm2022/lib/form-validators/decorators/fileSize.decorator.mjs +0 -10
  208. package/esm2022/lib/form-validators/decorators/greater-than-equal-to.decorator.mjs +0 -10
  209. package/esm2022/lib/form-validators/decorators/greater-than.decorator.mjs +0 -10
  210. package/esm2022/lib/form-validators/decorators/grid.decorator.mjs +0 -6
  211. package/esm2022/lib/form-validators/decorators/hexColor.decorator.mjs +0 -6
  212. package/esm2022/lib/form-validators/decorators/image.decorator.mjs +0 -10
  213. package/esm2022/lib/form-validators/decorators/index.mjs +0 -93
  214. package/esm2022/lib/form-validators/decorators/json.decorator.mjs +0 -6
  215. package/esm2022/lib/form-validators/decorators/latLong.decorator.mjs +0 -6
  216. package/esm2022/lib/form-validators/decorators/latitude.decorator.mjs +0 -6
  217. package/esm2022/lib/form-validators/decorators/leapYear.decorator.mjs +0 -6
  218. package/esm2022/lib/form-validators/decorators/less-than-equal-to.decorator.mjs +0 -10
  219. package/esm2022/lib/form-validators/decorators/less-than.decorator.mjs +0 -10
  220. package/esm2022/lib/form-validators/decorators/longitude.decorator.mjs +0 -6
  221. package/esm2022/lib/form-validators/decorators/lowercase.decorator.mjs +0 -6
  222. package/esm2022/lib/form-validators/decorators/mac.decorator.mjs +0 -6
  223. package/esm2022/lib/form-validators/decorators/mask.decorator.mjs +0 -6
  224. package/esm2022/lib/form-validators/decorators/maxDate.decorator.mjs +0 -10
  225. package/esm2022/lib/form-validators/decorators/maxLength.decorator.mjs +0 -10
  226. package/esm2022/lib/form-validators/decorators/maxNumber.decorator.mjs +0 -10
  227. package/esm2022/lib/form-validators/decorators/maxTime.decorator.mjs +0 -10
  228. package/esm2022/lib/form-validators/decorators/minDate.decorator.mjs +0 -10
  229. package/esm2022/lib/form-validators/decorators/minLength.decorator.mjs +0 -10
  230. package/esm2022/lib/form-validators/decorators/minNumber.decorator.mjs +0 -10
  231. package/esm2022/lib/form-validators/decorators/minTime.decorator.mjs +0 -10
  232. package/esm2022/lib/form-validators/decorators/model.decorator.mjs +0 -7
  233. package/esm2022/lib/form-validators/decorators/non-validation-decorators/disable.decorator.mjs +0 -8
  234. package/esm2022/lib/form-validators/decorators/non-validation-decorators/elementClass.decorator.mjs +0 -8
  235. package/esm2022/lib/form-validators/decorators/non-validation-decorators/error.decorator.mjs +0 -8
  236. package/esm2022/lib/form-validators/decorators/non-validation-decorators/update-on.decorator.mjs +0 -6
  237. package/esm2022/lib/form-validators/decorators/noneOf.decorator.mjs +0 -10
  238. package/esm2022/lib/form-validators/decorators/not.decorator.mjs +0 -6
  239. package/esm2022/lib/form-validators/decorators/notEmpty.decorator.mjs +0 -6
  240. package/esm2022/lib/form-validators/decorators/numeric.decorator.mjs +0 -10
  241. package/esm2022/lib/form-validators/decorators/odd.decorator.mjs +0 -6
  242. package/esm2022/lib/form-validators/decorators/oneOf.decorator.mjs +0 -10
  243. package/esm2022/lib/form-validators/decorators/or.decorator.mjs +0 -6
  244. package/esm2022/lib/form-validators/decorators/password.decorator.mjs +0 -10
  245. package/esm2022/lib/form-validators/decorators/pattern.decorator.mjs +0 -10
  246. package/esm2022/lib/form-validators/decorators/port.decorator.mjs +0 -6
  247. package/esm2022/lib/form-validators/decorators/primeNumber.decorator.mjs +0 -6
  248. package/esm2022/lib/form-validators/decorators/prop-array.decorator.mjs +0 -18
  249. package/esm2022/lib/form-validators/decorators/prop-object.decorator.mjs +0 -8
  250. package/esm2022/lib/form-validators/decorators/prop.decorator.mjs +0 -18
  251. package/esm2022/lib/form-validators/decorators/range.decorator.mjs +0 -10
  252. package/esm2022/lib/form-validators/decorators/required.decorator.mjs +0 -6
  253. package/esm2022/lib/form-validators/decorators/requiredTrue.decorator.mjs +0 -6
  254. package/esm2022/lib/form-validators/decorators/rule.decorator.mjs +0 -6
  255. package/esm2022/lib/form-validators/decorators/sanitize/blacklist.decorator.mjs +0 -8
  256. package/esm2022/lib/form-validators/decorators/sanitize/escape.decorator.mjs +0 -8
  257. package/esm2022/lib/form-validators/decorators/sanitize/ltrim.decorator.mjs +0 -8
  258. package/esm2022/lib/form-validators/decorators/sanitize/prefix.decorator.mjs +0 -8
  259. package/esm2022/lib/form-validators/decorators/sanitize/rtrim.decorator.mjs +0 -8
  260. package/esm2022/lib/form-validators/decorators/sanitize/sanitize.decorator.mjs +0 -8
  261. package/esm2022/lib/form-validators/decorators/sanitize/stripLow.decorator.mjs +0 -8
  262. package/esm2022/lib/form-validators/decorators/sanitize/suffix.decorator.mjs +0 -8
  263. package/esm2022/lib/form-validators/decorators/sanitize/toBoolean.decorator.mjs +0 -8
  264. package/esm2022/lib/form-validators/decorators/sanitize/toDate.decorator.mjs +0 -8
  265. package/esm2022/lib/form-validators/decorators/sanitize/toDouble.decorator.mjs +0 -8
  266. package/esm2022/lib/form-validators/decorators/sanitize/toFloat.decorator.mjs +0 -8
  267. package/esm2022/lib/form-validators/decorators/sanitize/toInt.decorator.mjs +0 -8
  268. package/esm2022/lib/form-validators/decorators/sanitize/toString.decorator.mjs +0 -8
  269. package/esm2022/lib/form-validators/decorators/sanitize/trim.decorator.mjs +0 -8
  270. package/esm2022/lib/form-validators/decorators/sanitize/whitelist.decorator.mjs +0 -8
  271. package/esm2022/lib/form-validators/decorators/startsWith.decorator.mjs +0 -10
  272. package/esm2022/lib/form-validators/decorators/time.decorator.mjs +0 -10
  273. package/esm2022/lib/form-validators/decorators/unique.decorator.mjs +0 -6
  274. package/esm2022/lib/form-validators/decorators/uppercase.decorator.mjs +0 -6
  275. package/esm2022/lib/form-validators/decorators/url.decorator.mjs +0 -10
  276. package/esm2022/lib/form-validators/directives/base-directive.mjs +0 -75
  277. package/esm2022/lib/form-validators/directives/control-host.directive.mjs +0 -55
  278. package/esm2022/lib/form-validators/directives/html-control-template.directive.mjs +0 -36
  279. package/esm2022/lib/form-validators/directives/rx-form.directive.mjs +0 -234
  280. package/esm2022/lib/form-validators/directives/template-validations/async-validation.directive.mjs +0 -40
  281. package/esm2022/lib/form-validators/directives/template-validations/base-validator.directive.mjs +0 -76
  282. package/esm2022/lib/form-validators/directives/template-validations/control-expression-process.mjs +0 -60
  283. package/esm2022/lib/form-validators/directives/template-validations/file-control.directive.mjs +0 -122
  284. package/esm2022/lib/form-validators/directives/template-validations/image-file-control.directive.mjs +0 -74
  285. package/esm2022/lib/form-validators/directives/template-validations/rxformcontrol.directive.mjs +0 -394
  286. package/esm2022/lib/form-validators/domain/disable-provider.mjs +0 -198
  287. package/esm2022/lib/form-validators/domain/element-processor/decimal.provider.mjs +0 -134
  288. package/esm2022/lib/form-validators/domain/element-processor/mask.provider.mjs +0 -453
  289. package/esm2022/lib/form-validators/domain/form-data.mjs +0 -93
  290. package/esm2022/lib/form-validators/enums/error-message-binding-strategy.mjs +0 -11
  291. package/esm2022/lib/form-validators/enums/index.mjs +0 -5
  292. package/esm2022/lib/form-validators/enums/ip-version.mjs +0 -7
  293. package/esm2022/lib/form-validators/enums/numeric-value-type.mjs +0 -7
  294. package/esm2022/lib/form-validators/enums/reset-type.mjs +0 -10
  295. package/esm2022/lib/form-validators/enums/url-validation-type.mjs +0 -7
  296. package/esm2022/lib/form-validators/models/config/alpha-config.mjs +0 -2
  297. package/esm2022/lib/form-validators/models/config/array-config.mjs +0 -2
  298. package/esm2022/lib/form-validators/models/config/base-config-fn.mjs +0 -2
  299. package/esm2022/lib/form-validators/models/config/base-config.mjs +0 -2
  300. package/esm2022/lib/form-validators/models/config/base-date-config.mjs +0 -2
  301. package/esm2022/lib/form-validators/models/config/choice-config.mjs +0 -2
  302. package/esm2022/lib/form-validators/models/config/compare-config.mjs +0 -2
  303. package/esm2022/lib/form-validators/models/config/component-config.mjs +0 -2
  304. package/esm2022/lib/form-validators/models/config/compose-config.mjs +0 -2
  305. package/esm2022/lib/form-validators/models/config/contains-config.mjs +0 -2
  306. package/esm2022/lib/form-validators/models/config/credit-card-config.mjs +0 -2
  307. package/esm2022/lib/form-validators/models/config/custom-config.mjs +0 -2
  308. package/esm2022/lib/form-validators/models/config/date-config.mjs +0 -2
  309. package/esm2022/lib/form-validators/models/config/default-config.mjs +0 -2
  310. package/esm2022/lib/form-validators/models/config/digit-config.mjs +0 -2
  311. package/esm2022/lib/form-validators/models/config/disable-config.mjs +0 -2
  312. package/esm2022/lib/form-validators/models/config/element-class-config.mjs +0 -2
  313. package/esm2022/lib/form-validators/models/config/email-config.mjs +0 -2
  314. package/esm2022/lib/form-validators/models/config/error-config.mjs +0 -2
  315. package/esm2022/lib/form-validators/models/config/extension-config.mjs +0 -2
  316. package/esm2022/lib/form-validators/models/config/factor-config.mjs +0 -2
  317. package/esm2022/lib/form-validators/models/config/field-config.mjs +0 -2
  318. package/esm2022/lib/form-validators/models/config/file-config.mjs +0 -2
  319. package/esm2022/lib/form-validators/models/config/hex-color-config.mjs +0 -2
  320. package/esm2022/lib/form-validators/models/config/iban-config.mjs +0 -2
  321. package/esm2022/lib/form-validators/models/config/image-config.mjs +0 -2
  322. package/esm2022/lib/form-validators/models/config/index.mjs +0 -35
  323. package/esm2022/lib/form-validators/models/config/ip-config.mjs +0 -2
  324. package/esm2022/lib/form-validators/models/config/logical-operator-config.mjs +0 -2
  325. package/esm2022/lib/form-validators/models/config/mask-config.mjs +0 -2
  326. package/esm2022/lib/form-validators/models/config/max-date-config.mjs +0 -2
  327. package/esm2022/lib/form-validators/models/config/message-config.mjs +0 -2
  328. package/esm2022/lib/form-validators/models/config/min-date-config.mjs +0 -2
  329. package/esm2022/lib/form-validators/models/config/model-config.mjs +0 -2
  330. package/esm2022/lib/form-validators/models/config/number-config.mjs +0 -2
  331. package/esm2022/lib/form-validators/models/config/numeric-config.mjs +0 -2
  332. package/esm2022/lib/form-validators/models/config/password-config.mjs +0 -2
  333. package/esm2022/lib/form-validators/models/config/pattern-config.mjs +0 -2
  334. package/esm2022/lib/form-validators/models/config/prop-config.mjs +0 -2
  335. package/esm2022/lib/form-validators/models/config/props-config.mjs +0 -2
  336. package/esm2022/lib/form-validators/models/config/range-config.mjs +0 -2
  337. package/esm2022/lib/form-validators/models/config/relational-operator-config.mjs +0 -2
  338. package/esm2022/lib/form-validators/models/config/required-config.mjs +0 -2
  339. package/esm2022/lib/form-validators/models/config/rule-config.mjs +0 -2
  340. package/esm2022/lib/form-validators/models/config/sanitize-config.mjs +0 -2
  341. package/esm2022/lib/form-validators/models/config/size-config.mjs +0 -2
  342. package/esm2022/lib/form-validators/models/config/string-comparison-config.mjs +0 -2
  343. package/esm2022/lib/form-validators/models/config/string-value-config.mjs +0 -2
  344. package/esm2022/lib/form-validators/models/config/time-config.mjs +0 -2
  345. package/esm2022/lib/form-validators/models/config/todate-config.mjs +0 -2
  346. package/esm2022/lib/form-validators/models/config/unique-config.mjs +0 -2
  347. package/esm2022/lib/form-validators/models/config/update-on-config.mjs +0 -2
  348. package/esm2022/lib/form-validators/models/config/url-config.mjs +0 -2
  349. package/esm2022/lib/form-validators/models/control-info.mjs +0 -2
  350. package/esm2022/lib/form-validators/models/data-sanitizer.mjs +0 -2
  351. package/esm2022/lib/form-validators/models/decorator-configuration.mjs +0 -2
  352. package/esm2022/lib/form-validators/models/form-builder-configuration.mjs +0 -58
  353. package/esm2022/lib/form-validators/models/index.mjs +0 -3
  354. package/esm2022/lib/form-validators/models/instance-container.mjs +0 -2
  355. package/esm2022/lib/form-validators/models/interface/array-prop-instance-config.interface.mjs +0 -2
  356. package/esm2022/lib/form-validators/models/interface/auto-instance-config.interface.mjs +0 -2
  357. package/esm2022/lib/form-validators/models/interface/form-data-config.mjs +0 -2
  358. package/esm2022/lib/form-validators/models/interface/i-abstract-control.mjs +0 -30
  359. package/esm2022/lib/form-validators/models/interface/i-form-group.mjs +0 -2
  360. package/esm2022/lib/form-validators/models/interface/instance-argument.interface.mjs +0 -2
  361. package/esm2022/lib/form-validators/models/interface/object-prop-instance-config.interface.mjs +0 -2
  362. package/esm2022/lib/form-validators/models/interface/options.mjs +0 -2
  363. package/esm2022/lib/form-validators/models/password-validation.model.mjs +0 -2
  364. package/esm2022/lib/form-validators/models/prop-validation-config.mjs +0 -2
  365. package/esm2022/lib/form-validators/models/property-info.mjs +0 -2
  366. package/esm2022/lib/form-validators/public_api.mjs +0 -26
  367. package/esm2022/lib/form-validators/reactive-form-validators/allOf.validator.mjs +0 -33
  368. package/esm2022/lib/form-validators/reactive-form-validators/alpha.validator.mjs +0 -15
  369. package/esm2022/lib/form-validators/reactive-form-validators/alphaNumeric.validator.mjs +0 -15
  370. package/esm2022/lib/form-validators/reactive-form-validators/and.validator.mjs +0 -38
  371. package/esm2022/lib/form-validators/reactive-form-validators/ascii.validator.mjs +0 -15
  372. package/esm2022/lib/form-validators/reactive-form-validators/async/base.async.validator.mjs +0 -45
  373. package/esm2022/lib/form-validators/reactive-form-validators/choice.validator.mjs +0 -31
  374. package/esm2022/lib/form-validators/reactive-form-validators/compare.validator.mjs +0 -32
  375. package/esm2022/lib/form-validators/reactive-form-validators/compose.validator.mjs +0 -34
  376. package/esm2022/lib/form-validators/reactive-form-validators/conditional-change.validator.mjs +0 -63
  377. package/esm2022/lib/form-validators/reactive-form-validators/contains.validator.mjs +0 -22
  378. package/esm2022/lib/form-validators/reactive-form-validators/credit-card.validator.mjs +0 -48
  379. package/esm2022/lib/form-validators/reactive-form-validators/cusip.validator.mjs +0 -38
  380. package/esm2022/lib/form-validators/reactive-form-validators/custom.validator.mjs +0 -25
  381. package/esm2022/lib/form-validators/reactive-form-validators/dataUri.validator.mjs +0 -9
  382. package/esm2022/lib/form-validators/reactive-form-validators/date.validator.mjs +0 -8
  383. package/esm2022/lib/form-validators/reactive-form-validators/different.validator.mjs +0 -19
  384. package/esm2022/lib/form-validators/reactive-form-validators/digit.validator.mjs +0 -9
  385. package/esm2022/lib/form-validators/reactive-form-validators/email.validator.mjs +0 -9
  386. package/esm2022/lib/form-validators/reactive-form-validators/endsWith.validator.mjs +0 -23
  387. package/esm2022/lib/form-validators/reactive-form-validators/even.validator.mjs +0 -15
  388. package/esm2022/lib/form-validators/reactive-form-validators/extension.validator.mjs +0 -40
  389. package/esm2022/lib/form-validators/reactive-form-validators/factor.validator.mjs +0 -37
  390. package/esm2022/lib/form-validators/reactive-form-validators/file.validator.mjs +0 -26
  391. package/esm2022/lib/form-validators/reactive-form-validators/fileSize.validator.mjs +0 -34
  392. package/esm2022/lib/form-validators/reactive-form-validators/greater-than-equal-to.validator.mjs +0 -8
  393. package/esm2022/lib/form-validators/reactive-form-validators/greater-than.validator.mjs +0 -8
  394. package/esm2022/lib/form-validators/reactive-form-validators/grid.validator.mjs +0 -31
  395. package/esm2022/lib/form-validators/reactive-form-validators/hexcolor.validator.mjs +0 -9
  396. package/esm2022/lib/form-validators/reactive-form-validators/iban.validator.mjs +0 -28
  397. package/esm2022/lib/form-validators/reactive-form-validators/image.validator.mjs +0 -52
  398. package/esm2022/lib/form-validators/reactive-form-validators/index.mjs +0 -66
  399. package/esm2022/lib/form-validators/reactive-form-validators/ip.validator.mjs +0 -28
  400. package/esm2022/lib/form-validators/reactive-form-validators/json.validator.mjs +0 -26
  401. package/esm2022/lib/form-validators/reactive-form-validators/latLong.validator.mjs +0 -18
  402. package/esm2022/lib/form-validators/reactive-form-validators/latitude.validator.mjs +0 -9
  403. package/esm2022/lib/form-validators/reactive-form-validators/leapYear.validator.mjs +0 -16
  404. package/esm2022/lib/form-validators/reactive-form-validators/less-than-equal-to.validator.mjs +0 -8
  405. package/esm2022/lib/form-validators/reactive-form-validators/less-than.validator.mjs +0 -8
  406. package/esm2022/lib/form-validators/reactive-form-validators/longitude.validator.mjs +0 -9
  407. package/esm2022/lib/form-validators/reactive-form-validators/lowercase.validator.mjs +0 -15
  408. package/esm2022/lib/form-validators/reactive-form-validators/mac.validator.mjs +0 -9
  409. package/esm2022/lib/form-validators/reactive-form-validators/mask.validator.mjs +0 -14
  410. package/esm2022/lib/form-validators/reactive-form-validators/maxDate.validator.mjs +0 -8
  411. package/esm2022/lib/form-validators/reactive-form-validators/maxLength.validator.mjs +0 -17
  412. package/esm2022/lib/form-validators/reactive-form-validators/maxNumber.validator.mjs +0 -17
  413. package/esm2022/lib/form-validators/reactive-form-validators/maxTime.validator.mjs +0 -8
  414. package/esm2022/lib/form-validators/reactive-form-validators/minDate.validator.mjs +0 -8
  415. package/esm2022/lib/form-validators/reactive-form-validators/minLength.validator.mjs +0 -16
  416. package/esm2022/lib/form-validators/reactive-form-validators/minNumber.validator.mjs +0 -16
  417. package/esm2022/lib/form-validators/reactive-form-validators/minTime.validator.mjs +0 -8
  418. package/esm2022/lib/form-validators/reactive-form-validators/noneOf.validator.mjs +0 -24
  419. package/esm2022/lib/form-validators/reactive-form-validators/not.validator.mjs +0 -25
  420. package/esm2022/lib/form-validators/reactive-form-validators/notEmpty.validator.mjs +0 -17
  421. package/esm2022/lib/form-validators/reactive-form-validators/numeric.validator.mjs +0 -22
  422. package/esm2022/lib/form-validators/reactive-form-validators/odd.validator.mjs +0 -17
  423. package/esm2022/lib/form-validators/reactive-form-validators/oneOf.validator.mjs +0 -26
  424. package/esm2022/lib/form-validators/reactive-form-validators/or.validator.mjs +0 -25
  425. package/esm2022/lib/form-validators/reactive-form-validators/password.validator.mjs +0 -35
  426. package/esm2022/lib/form-validators/reactive-form-validators/pattern.validator.mjs +0 -19
  427. package/esm2022/lib/form-validators/reactive-form-validators/port.validator.mjs +0 -19
  428. package/esm2022/lib/form-validators/reactive-form-validators/primeNumber.validator.mjs +0 -27
  429. package/esm2022/lib/form-validators/reactive-form-validators/range.validator.mjs +0 -17
  430. package/esm2022/lib/form-validators/reactive-form-validators/required.validator.mjs +0 -17
  431. package/esm2022/lib/form-validators/reactive-form-validators/requiredTrue.validator.mjs +0 -16
  432. package/esm2022/lib/form-validators/reactive-form-validators/rule.validator.mjs +0 -22
  433. package/esm2022/lib/form-validators/reactive-form-validators/startsWith.validator.mjs +0 -25
  434. package/esm2022/lib/form-validators/reactive-form-validators/time.validator.mjs +0 -19
  435. package/esm2022/lib/form-validators/reactive-form-validators/unique.validator.mjs +0 -77
  436. package/esm2022/lib/form-validators/reactive-form-validators/uppercase.validator.mjs +0 -16
  437. package/esm2022/lib/form-validators/reactive-form-validators/url.validator.mjs +0 -28
  438. package/esm2022/lib/form-validators/services/base-form-builder.mjs +0 -220
  439. package/esm2022/lib/form-validators/services/entity.service.mjs +0 -76
  440. package/esm2022/lib/form-validators/services/form-control.mjs +0 -370
  441. package/esm2022/lib/form-validators/services/form-group.mjs +0 -2
  442. package/esm2022/lib/form-validators/services/reactive-form.module.mjs +0 -52
  443. package/esm2022/lib/form-validators/services/rx-form-array.mjs +0 -114
  444. package/esm2022/lib/form-validators/services/rx-form-builder.mjs +0 -1035
  445. package/esm2022/lib/form-validators/services/rx-form-group.mjs +0 -451
  446. package/esm2022/lib/form-validators/services/typed-form-builder.mjs +0 -25
  447. package/esm2022/lib/form-validators/util/alphabet-regex.locale.mjs +0 -29
  448. package/esm2022/lib/form-validators/util/app-util.mjs +0 -161
  449. package/esm2022/lib/form-validators/util/check-length.mjs +0 -11
  450. package/esm2022/lib/form-validators/util/config-provider.mjs +0 -37
  451. package/esm2022/lib/form-validators/util/date-checker.function.mjs +0 -52
  452. package/esm2022/lib/form-validators/util/date-provider.mjs +0 -108
  453. package/esm2022/lib/form-validators/util/form-const.mjs +0 -3
  454. package/esm2022/lib/form-validators/util/form-provider.mjs +0 -87
  455. package/esm2022/lib/form-validators/util/index.mjs +0 -7
  456. package/esm2022/lib/form-validators/util/instance-provider.function.mjs +0 -63
  457. package/esm2022/lib/form-validators/util/ip-checker.mjs +0 -19
  458. package/esm2022/lib/form-validators/util/linq.mjs +0 -157
  459. package/esm2022/lib/form-validators/util/object-maker.mjs +0 -68
  460. package/esm2022/lib/form-validators/util/reactive-form-config.mjs +0 -25
  461. package/esm2022/lib/form-validators/util/regex-rules.mjs +0 -37
  462. package/esm2022/lib/form-validators/util/regex-validator.mjs +0 -74
  463. package/esm2022/lib/form-validators/util/relational-checker.function.mjs +0 -92
  464. package/esm2022/lib/form-validators/util/reset-form.mjs +0 -57
  465. package/esm2022/lib/form-validators/util/sanitizers.mjs +0 -140
  466. package/esm2022/lib/form-validators/util/time-checker.function.mjs +0 -50
  467. package/esm2022/lib/form-validators/util/type.mjs +0 -2
  468. package/esm2022/lib/form-validators/util/validator-value-checker.mjs +0 -21
  469. package/esm2022/lib/form-validators/validators-extension/allOf-validator.extension.mjs +0 -11
  470. package/esm2022/lib/form-validators/validators-extension/alpha-validator.extension.mjs +0 -11
  471. package/esm2022/lib/form-validators/validators-extension/alphaNumeric-validator.extension.mjs +0 -11
  472. package/esm2022/lib/form-validators/validators-extension/and-validator.extension.mjs +0 -7
  473. package/esm2022/lib/form-validators/validators-extension/ascii-validator.extension.mjs +0 -7
  474. package/esm2022/lib/form-validators/validators-extension/base-validator.function.mjs +0 -34
  475. package/esm2022/lib/form-validators/validators-extension/choice-validator.extension.mjs +0 -11
  476. package/esm2022/lib/form-validators/validators-extension/compare-validator.extension.mjs +0 -7
  477. package/esm2022/lib/form-validators/validators-extension/compose-validator.extension.mjs +0 -7
  478. package/esm2022/lib/form-validators/validators-extension/contains-validator.extension.mjs +0 -11
  479. package/esm2022/lib/form-validators/validators-extension/credit-card-validator.extension.mjs +0 -11
  480. package/esm2022/lib/form-validators/validators-extension/cusip-validator.extension.mjs +0 -7
  481. package/esm2022/lib/form-validators/validators-extension/custom-validator.extension.mjs +0 -11
  482. package/esm2022/lib/form-validators/validators-extension/dataUri-validator.extension.mjs +0 -7
  483. package/esm2022/lib/form-validators/validators-extension/date-validator.extension.mjs +0 -11
  484. package/esm2022/lib/form-validators/validators-extension/different-validator.extension.mjs +0 -7
  485. package/esm2022/lib/form-validators/validators-extension/digit-validator.extension.mjs +0 -7
  486. package/esm2022/lib/form-validators/validators-extension/email-validator.extension.mjs +0 -7
  487. package/esm2022/lib/form-validators/validators-extension/endsWith-validator.extension.mjs +0 -11
  488. package/esm2022/lib/form-validators/validators-extension/even-validator.extension.mjs +0 -7
  489. package/esm2022/lib/form-validators/validators-extension/extension-validator.extension.mjs +0 -10
  490. package/esm2022/lib/form-validators/validators-extension/factor-validator.extension.mjs +0 -11
  491. package/esm2022/lib/form-validators/validators-extension/file-validator.extension.mjs +0 -10
  492. package/esm2022/lib/form-validators/validators-extension/fileSize-validator.extension.mjs +0 -10
  493. package/esm2022/lib/form-validators/validators-extension/greater-than-equal-to-validator.extension.mjs +0 -11
  494. package/esm2022/lib/form-validators/validators-extension/greater-than-validator.extension.mjs +0 -11
  495. package/esm2022/lib/form-validators/validators-extension/grid-validator.extension.mjs +0 -7
  496. package/esm2022/lib/form-validators/validators-extension/hexcolor-validator.extension.mjs +0 -7
  497. package/esm2022/lib/form-validators/validators-extension/iban-validator.extension.mjs +0 -11
  498. package/esm2022/lib/form-validators/validators-extension/image-validator.extension.mjs +0 -10
  499. package/esm2022/lib/form-validators/validators-extension/index.mjs +0 -68
  500. package/esm2022/lib/form-validators/validators-extension/ip-validator.extension.mjs +0 -11
  501. package/esm2022/lib/form-validators/validators-extension/json-validator.extension.mjs +0 -7
  502. package/esm2022/lib/form-validators/validators-extension/latLong-validator.extension.mjs +0 -7
  503. package/esm2022/lib/form-validators/validators-extension/latitude-validator.extension.mjs +0 -7
  504. package/esm2022/lib/form-validators/validators-extension/leapYear-validator.extension.mjs +0 -7
  505. package/esm2022/lib/form-validators/validators-extension/less-than-equal-to-validator.extension.mjs +0 -11
  506. package/esm2022/lib/form-validators/validators-extension/less-than-validator.extension.mjs +0 -11
  507. package/esm2022/lib/form-validators/validators-extension/longitude-validator.extension.mjs +0 -7
  508. package/esm2022/lib/form-validators/validators-extension/lowercase-validator.extension.mjs +0 -7
  509. package/esm2022/lib/form-validators/validators-extension/mac-validator.extension.mjs +0 -7
  510. package/esm2022/lib/form-validators/validators-extension/mask-validator.extension.mjs +0 -7
  511. package/esm2022/lib/form-validators/validators-extension/maxDate-validator.extension.mjs +0 -11
  512. package/esm2022/lib/form-validators/validators-extension/maxLength-validator.extension.mjs +0 -11
  513. package/esm2022/lib/form-validators/validators-extension/maxNumber-validator.extension.mjs +0 -11
  514. package/esm2022/lib/form-validators/validators-extension/maxTime-validator.extension.mjs +0 -11
  515. package/esm2022/lib/form-validators/validators-extension/minDate-validator.extension.mjs +0 -11
  516. package/esm2022/lib/form-validators/validators-extension/minLength-validator.extension.mjs +0 -11
  517. package/esm2022/lib/form-validators/validators-extension/minNumber-validator.extension.mjs +0 -11
  518. package/esm2022/lib/form-validators/validators-extension/minTime-validator.extension.mjs +0 -11
  519. package/esm2022/lib/form-validators/validators-extension/noneOf-validator.extension.mjs +0 -11
  520. package/esm2022/lib/form-validators/validators-extension/not-validator.extension.mjs +0 -7
  521. package/esm2022/lib/form-validators/validators-extension/notEmpty-validator.extension.mjs +0 -7
  522. package/esm2022/lib/form-validators/validators-extension/numeric-validator.extension.mjs +0 -11
  523. package/esm2022/lib/form-validators/validators-extension/odd-validator.extension.mjs +0 -7
  524. package/esm2022/lib/form-validators/validators-extension/oneOf-validator.extension.mjs +0 -11
  525. package/esm2022/lib/form-validators/validators-extension/or-validator.extension.mjs +0 -7
  526. package/esm2022/lib/form-validators/validators-extension/password-validator.extension.mjs +0 -11
  527. package/esm2022/lib/form-validators/validators-extension/pattern-validator.extension.mjs +0 -11
  528. package/esm2022/lib/form-validators/validators-extension/port-validator.extension.mjs +0 -7
  529. package/esm2022/lib/form-validators/validators-extension/primeNumber-validator.extension.mjs +0 -7
  530. package/esm2022/lib/form-validators/validators-extension/range-validator.extension.mjs +0 -11
  531. package/esm2022/lib/form-validators/validators-extension/required-validator.extension.mjs +0 -7
  532. package/esm2022/lib/form-validators/validators-extension/requiredTrue-validator.extension.mjs +0 -7
  533. package/esm2022/lib/form-validators/validators-extension/rxweb-validators.mjs +0 -108
  534. package/esm2022/lib/form-validators/validators-extension/startsWith-validator.extension.mjs +0 -11
  535. package/esm2022/lib/form-validators/validators-extension/time-validator.extension.mjs +0 -11
  536. package/esm2022/lib/form-validators/validators-extension/unique-validator.extension.mjs +0 -7
  537. package/esm2022/lib/form-validators/validators-extension/uppercase-validator.extension.mjs +0 -7
  538. package/esm2022/lib/form-validators/validators-extension/url-validator.extension.mjs +0 -11
  539. package/esm2022/lib/form-validators/validators-function/alpha-validation.function.mjs +0 -71
  540. package/esm2022/lib/form-validators/validators-function/regex-validation.function.mjs +0 -33
  541. package/esm2022/lib/forms/components/datepicker/datepicker-header.component.mjs +0 -84
  542. package/esm2022/lib/forms/components/generic-form/generic-form.component.mjs +0 -602
  543. package/esm2022/lib/forms/constants/constants.mjs +0 -4
  544. package/esm2022/lib/forms/directives/mat-form-field-editor.directive.mjs +0 -197
  545. package/esm2022/lib/forms/directives/mat-form-field-readonly.directive.mjs +0 -34
  546. package/esm2022/lib/forms/directives/parse-decimal-directive.mjs +0 -87
  547. package/esm2022/lib/forms/directives/vd-generic-form-custom-field.directive.mjs +0 -35
  548. package/esm2022/lib/forms/enums/form-field-type.mjs +0 -23
  549. package/esm2022/lib/forms/forms.module.mjs +0 -168
  550. package/esm2022/lib/forms/functions/decorators.mjs +0 -136
  551. package/esm2022/lib/forms/functions/functions.mjs +0 -72
  552. package/esm2022/lib/forms/helpers/abstract-mat-form-field.mjs +0 -308
  553. package/esm2022/lib/forms/helpers/abstract-select-form-field.component.mjs +0 -492
  554. package/esm2022/lib/forms/helpers/value-accessor-base.mjs +0 -146
  555. package/esm2022/lib/forms/models/form-definition.mjs +0 -63
  556. package/esm2022/lib/forms/models/form-field-definition.mjs +0 -468
  557. package/esm2022/lib/forms/models/form-field-group-definition.mjs +0 -55
  558. package/esm2022/lib/forms/pipes/field-func.pipe.mjs +0 -23
  559. package/esm2022/lib/forms/pipes/group-filter.pipe.mjs +0 -34
  560. package/esm2022/lib/forms/public_api.mjs +0 -5
  561. package/esm2022/lib/forms/validators/empty-string-reset.directive.mjs +0 -25
  562. package/esm2022/lib/forms/validators/equal-validator.directive.mjs +0 -69
  563. package/esm2022/lib/forms/validators/native-element-injector.directive.mjs +0 -41
  564. package/esm2022/lib/forms/validators/unique-validator-directive.mjs +0 -88
  565. package/esm2022/lib/http/http.module.mjs +0 -15
  566. package/esm2022/lib/http/models/response.mjs +0 -24
  567. package/esm2022/lib/http/public_api.mjs +0 -2
  568. package/esm2022/lib/http/services/generic.service.mjs +0 -331
  569. package/esm2022/lib/layout/dynamic-menu/dynamic-menu.component.mjs +0 -103
  570. package/esm2022/lib/layout/layout-card-over/layout-card-over.component.mjs +0 -49
  571. package/esm2022/lib/layout/layout-compact/layout-compact.component.mjs +0 -193
  572. package/esm2022/lib/layout/layout-footer/layout-footer.component.mjs +0 -37
  573. package/esm2022/lib/layout/layout-manage-list/layout-manage-list.component.mjs +0 -150
  574. package/esm2022/lib/layout/layout-manage-list/layout-manage-list.directives.mjs +0 -108
  575. package/esm2022/lib/layout/layout-nav/layout-nav.component.mjs +0 -146
  576. package/esm2022/lib/layout/layout-nav-list/layout-nav-list.component.mjs +0 -141
  577. package/esm2022/lib/layout/layout-nav-list/layout-nav-list.directives.mjs +0 -105
  578. package/esm2022/lib/layout/layout-toggle.class.mjs +0 -89
  579. package/esm2022/lib/layout/layout.component.mjs +0 -230
  580. package/esm2022/lib/layout/layout.directives.mjs +0 -81
  581. package/esm2022/lib/layout/layout.module.mjs +0 -144
  582. package/esm2022/lib/layout/list-toolbar/list-toolbar.component.mjs +0 -47
  583. package/esm2022/lib/layout/navigation-drawer/navigation-drawer.component.mjs +0 -275
  584. package/esm2022/lib/layout/public_api.mjs +0 -2
  585. package/esm2022/lib/list/components/list.component.mjs +0 -78
  586. package/esm2022/lib/list/directives/vd-list-option.directive.mjs +0 -23
  587. package/esm2022/lib/list/list.module.mjs +0 -36
  588. package/esm2022/lib/list/public_api.mjs +0 -3
  589. package/esm2022/lib/media/directives/media-toggle.directive.mjs +0 -154
  590. package/esm2022/lib/media/media.module.mjs +0 -35
  591. package/esm2022/lib/media/public_api.mjs +0 -2
  592. package/esm2022/lib/media/services/media.service.mjs +0 -110
  593. package/esm2022/lib/menu/components/menu.component.mjs +0 -95
  594. package/esm2022/lib/menu/enums/menu-scope.mjs +0 -6
  595. package/esm2022/lib/menu/menu.module.mjs +0 -64
  596. package/esm2022/lib/menu/models/menu-client.mjs +0 -39
  597. package/esm2022/lib/menu/models/menu-department.mjs +0 -39
  598. package/esm2022/lib/menu/models/menu-item-client.mjs +0 -39
  599. package/esm2022/lib/menu/models/menu-item-department.mjs +0 -39
  600. package/esm2022/lib/menu/models/menu-item.mjs +0 -351
  601. package/esm2022/lib/menu/models/menu-settings.mjs +0 -13
  602. package/esm2022/lib/menu/models/menu.mjs +0 -224
  603. package/esm2022/lib/menu/public_api.mjs +0 -3
  604. package/esm2022/lib/menu/resolvers/menu-form-includes.resolve.mjs +0 -50
  605. package/esm2022/lib/menu/resolvers/menu-item-form-includes.resolve.mjs +0 -50
  606. package/esm2022/lib/menu/resolvers/menu-list-projection.resolve.mjs +0 -51
  607. package/esm2022/lib/menu/resolvers/menu-settings.resolve.mjs +0 -24
  608. package/esm2022/lib/menu/services/menu-items.service.mjs +0 -19
  609. package/esm2022/lib/menu/services/menu.resolve.mjs +0 -68
  610. package/esm2022/lib/menu/services/menu.service.mjs +0 -19
  611. package/esm2022/lib/search/public_api.mjs +0 -2
  612. package/esm2022/lib/search/search.module.mjs +0 -33
  613. package/esm2022/lib/select/components/select.component.mjs +0 -215
  614. package/esm2022/lib/select/directives/vd-select-option.directive.mjs +0 -23
  615. package/esm2022/lib/select/directives/vd-select-trigger.directive.mjs +0 -23
  616. package/esm2022/lib/select/public_api.mjs +0 -4
  617. package/esm2022/lib/select/select.module.mjs +0 -48
  618. package/esm2022/lib/table/components/dynamic-table/dynamic-table.component.mjs +0 -810
  619. package/esm2022/lib/table/components/filter-clear/filter-clear.component.mjs +0 -36
  620. package/esm2022/lib/table/components/filter-date/filter-date.component.mjs +0 -146
  621. package/esm2022/lib/table/components/filter-input/filter-input.component.mjs +0 -198
  622. package/esm2022/lib/table/components/filter-select/filter-select.component.mjs +0 -375
  623. package/esm2022/lib/table/constants/constants.mjs +0 -3
  624. package/esm2022/lib/table/directives/data-source-filter.directive.mjs +0 -49
  625. package/esm2022/lib/table/directives/vd-table-field.directive.mjs +0 -35
  626. package/esm2022/lib/table/enums/grid.mjs +0 -12
  627. package/esm2022/lib/table/enums/table-column-type.mjs +0 -17
  628. package/esm2022/lib/table/functions/decorators.mjs +0 -163
  629. package/esm2022/lib/table/functions/functions.mjs +0 -28
  630. package/esm2022/lib/table/models/facet-value.mjs +0 -47
  631. package/esm2022/lib/table/models/facet.mjs +0 -48
  632. package/esm2022/lib/table/models/pagination.mjs +0 -27
  633. package/esm2022/lib/table/models/table-column-config.mjs +0 -128
  634. package/esm2022/lib/table/models/table-column.mjs +0 -270
  635. package/esm2022/lib/table/models/table-config.mjs +0 -41
  636. package/esm2022/lib/table/models/table-definition.mjs +0 -110
  637. package/esm2022/lib/table/models/table-query-config.mjs +0 -26
  638. package/esm2022/lib/table/paginator-intl.mjs +0 -41
  639. package/esm2022/lib/table/public_api.mjs +0 -2
  640. package/esm2022/lib/table/table.data-source.mjs +0 -326
  641. package/esm2022/lib/table/table.module.mjs +0 -165
  642. package/esm2022/lib/table/table.static-data-source.mjs +0 -198
  643. package/esm2022/messaia-cdk.mjs +0 -5
  644. package/esm2022/public_api.mjs +0 -19
  645. package/lib/common/styles/_elevation.scss +0 -147
  646. package/lib/common/styles/_rtl.scss +0 -28
  647. package/lib/common/styles/_styles.scss +0 -12
  648. package/lib/common/styles/_theme-functions.scss +0 -4
  649. package/lib/common/styles/_typography.scss +0 -76
  650. package/lib/common/styles/core/_content.scss +0 -42
  651. package/lib/common/styles/core/_divider.scss +0 -14
  652. package/lib/common/styles/core/_icons.scss +0 -27
  653. package/lib/common/styles/core/_list.scss +0 -8
  654. package/lib/common/styles/core/_toolbar.scss +0 -31
  655. package/lib/common/styles/core/_whiteframe.scss +0 -111
  656. package/lib/common/styles/m2/_theme-functions.scss +0 -21
  657. package/lib/common/styles/m3/_theme-functions.scss +0 -21
  658. package/lib/common/theming/_all-theme.scss +0 -27
  659. package/lib/common/typography/_all-typography.scss +0 -33
@@ -1,136 +0,0 @@
1
- import { headerMetadataKey } from "../../common/constants/constants";
2
- import { formDefinitionMetadataKey, formFieldGroupsMetadataKey, formFieldsMetadataKey } from "../constants/constants";
3
- import { FormFieldType } from "../enums/form-field-type";
4
- import { FormDefinition } from "../models/form-definition";
5
- import { FormFieldDefinition } from "../models/form-field-definition";
6
- import { getFormGroups } from "./functions";
7
- const unwarppedFormFields = [FormFieldType.Checkbox, FormFieldType.Editor, FormFieldType.Code, FormFieldType.File, FormFieldType.Custom];
8
- /**
9
- * Class decorator to create a form
10
- * @param formDefinition
11
- * @returns
12
- */
13
- export function Form(formDefinition) {
14
- return function (target) {
15
- /* Save the form defintion in the metadata */
16
- Reflect.defineMetadata(formDefinitionMetadataKey, formDefinition ?? new FormDefinition(), target);
17
- };
18
- }
19
- /**
20
- * Property decorator to create form fields
21
- * @param args
22
- * @returns
23
- */
24
- export function FormField(args) {
25
- return function (target, propertyKey) {
26
- /* Get property name */
27
- var propertyName = args.name || propertyKey;
28
- /* Get property type */
29
- var propertyType = Reflect.getMetadata("design:type", target, propertyKey)?.name;
30
- /* Create table column */
31
- var formField = new FormFieldDefinition(Object.assign(args, {
32
- name: args.name || propertyKey,
33
- label: args.label || Reflect.getMetadata(headerMetadataKey, target, propertyKey) || propertyName,
34
- autocompleteTemplate: args.autocompleteTemplate || ((option) => option[formField.autocompleteText ?? '']),
35
- chipTemplate: args.chipTemplate || ((chip) => (args.customValue ? chip : chip[formField.chipText ?? '']))
36
- }));
37
- /* Type enum */
38
- if (formField.enumType) {
39
- formField.type ||= FormFieldType.Enum;
40
- }
41
- /* Type VdSelect */
42
- else if (formField.endpoint) {
43
- formField.type ||= FormFieldType.VdSelect;
44
- }
45
- /* Type Select */
46
- else if (formField.options) {
47
- formField.type ||= FormFieldType.Select;
48
- }
49
- /* Type TextArea */
50
- else if (formField.rows) {
51
- formField.type ||= FormFieldType.TextArea;
52
- }
53
- /* Type File */
54
- else if (formField.filePath) {
55
- formField.type ||= FormFieldType.File;
56
- }
57
- /* Other types */
58
- else {
59
- switch (propertyType.toLowerCase()) {
60
- case 'number':
61
- formField.type ||= FormFieldType.Text;
62
- formField.inputType ||= 'number';
63
- break;
64
- case 'date':
65
- formField.type ||= FormFieldType.Date;
66
- break;
67
- case 'boolean':
68
- formField.type ||= FormFieldType.Checkbox;
69
- break;
70
- default:
71
- formField.type ||= FormFieldType.Text;
72
- break;
73
- }
74
- }
75
- /* Set wrapped to false, if the field cant be wrapped in the <mat-form-field> */
76
- if (formField.type && unwarppedFormFields?.includes(formField.type)) {
77
- formField.wrapped = false;
78
- }
79
- /* Add class multiline to the form field */
80
- if (formField.multiline) {
81
- formField.cssClass += ' multiline';
82
- formField.cssClass = formField.cssClass?.trim();
83
- }
84
- /**
85
- * If the 'numbersOnly' flag is set to true and no custom pattern is defined,
86
- * set the pattern to allow only numbers.
87
- */
88
- if (formField.numbersOnly && !formField.pattern) {
89
- formField.pattern = /^[0-9]*$/;
90
- }
91
- /* Get old form fields */
92
- let previousFormFields = Reflect.getMetadata(formFieldsMetadataKey, target);
93
- /* Override the field, if exists */
94
- previousFormFields = previousFormFields?.filter(x => x.name != formField.name);
95
- /* Create a copy of the result */
96
- let formFields = previousFormFields ? previousFormFields.concat([formField]) : [formField];
97
- /* Override the result in the metadata */
98
- Reflect.defineMetadata(formFieldsMetadataKey, formFields, target);
99
- };
100
- }
101
- /**
102
- * Property decorator to create form fields
103
- * @param args
104
- * @returns
105
- */
106
- export function FormFieldGroup(type, args) {
107
- return function (target, propertyKey) {
108
- /* Create an instance of the group object */
109
- var instance = Reflect.construct(type, []);
110
- /* Get from groups */
111
- var groups = getFormGroups(undefined, type, args);
112
- /* Get the header of the groups or create one using the property name */
113
- var groupHeader = args?.header || Reflect.getMetadata(headerMetadataKey, target, propertyKey) || propertyKey;
114
- /* Get the fields from the groups */
115
- groups?.forEach((x, i) => {
116
- Object.assign(x, {
117
- name: args?.name ?? x.name ?? propertyKey,
118
- header: groupHeader,
119
- index: args?.index || i
120
- });
121
- /* Set the name of the group in the fields */
122
- x.fields.forEach(y => Object.assign(y, {
123
- groupName: propertyKey,
124
- groupHeader: groupHeader,
125
- fieldSets: args?.fieldSets
126
- }));
127
- });
128
- /* Get old form field groups */
129
- var previousGroups = Reflect.getMetadata(formFieldGroupsMetadataKey, target);
130
- /* Remove the groups in previousGroups that exist in groups */
131
- previousGroups = previousGroups?.filter(prevGroup => !groups?.some(group => group.name === prevGroup.name));
132
- /* Override the result in the metadata */
133
- Reflect.defineMetadata(formFieldGroupsMetadataKey, (previousGroups ? previousGroups.concat(groups) : groups), target);
134
- };
135
- }
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Zvcm1zL2Z1bmN0aW9ucy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSwwQkFBMEIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxNQUFNLG1CQUFtQixHQUFHLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFekk7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxJQUFJLENBQVUsY0FBMkM7SUFDckUsT0FBTyxVQUFVLE1BQWdCO1FBQzdCLDZDQUE2QztRQUM3QyxPQUFPLENBQUMsY0FBYyxDQUFDLHlCQUF5QixFQUFFLGNBQWMsSUFBSSxJQUFJLGNBQWMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3RHLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBaUMsSUFBc0Q7SUFDNUcsT0FBTyxVQUFVLE1BQVcsRUFBRSxXQUFtQjtRQUM3Qyx1QkFBdUI7UUFDdkIsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxXQUFX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QUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxSCxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGhlYWRlck1ldGFkYXRhS2V5IH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9jb25zdGFudHMvY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IGZvcm1EZWZpbml0aW9uTWV0YWRhdGFLZXksIGZvcm1GaWVsZEdyb3Vwc01ldGFkYXRhS2V5LCBmb3JtRmllbGRzTWV0YWRhdGFLZXkgfSBmcm9tIFwiLi4vY29uc3RhbnRzL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgeyBGb3JtRmllbGRUeXBlIH0gZnJvbSBcIi4uL2VudW1zL2Zvcm0tZmllbGQtdHlwZVwiO1xyXG5pbXBvcnQgeyBGb3JtRGVmaW5pdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvZm9ybS1kZWZpbml0aW9uXCI7XHJcbmltcG9ydCB7IEZvcm1GaWVsZERlZmluaXRpb24gfSBmcm9tIFwiLi4vbW9kZWxzL2Zvcm0tZmllbGQtZGVmaW5pdGlvblwiO1xyXG5pbXBvcnQgeyBGb3JtRmllbGRHcm91cERlZmluaXRpb24gfSBmcm9tIFwiLi4vbW9kZWxzL2Zvcm0tZmllbGQtZ3JvdXAtZGVmaW5pdGlvblwiO1xyXG5pbXBvcnQgeyBnZXRGb3JtR3JvdXBzIH0gZnJvbSBcIi4vZnVuY3Rpb25zXCI7XHJcblxyXG5jb25zdCB1bndhcnBwZWRGb3JtRmllbGRzID0gW0Zvcm1GaWVsZFR5cGUuQ2hlY2tib3gsIEZvcm1GaWVsZFR5cGUuRWRpdG9yLCBGb3JtRmllbGRUeXBlLkNvZGUsIEZvcm1GaWVsZFR5cGUuRmlsZSwgRm9ybUZpZWxkVHlwZS5DdXN0b21dO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzIGRlY29yYXRvciB0byBjcmVhdGUgYSBmb3JtXHJcbiAqIEBwYXJhbSBmb3JtRGVmaW5pdGlvbiBcclxuICogQHJldHVybnMgXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gRm9ybTxUID0gYW55Pihmb3JtRGVmaW5pdGlvbj86IFBhcnRpYWw8Rm9ybURlZmluaXRpb248VD4+KTogRnVuY3Rpb24ge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IEZ1bmN0aW9uKSB7XHJcbiAgICAgICAgLyogU2F2ZSB0aGUgZm9ybSBkZWZpbnRpb24gaW4gdGhlIG1ldGFkYXRhICovXHJcbiAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShmb3JtRGVmaW5pdGlvbk1ldGFkYXRhS2V5LCBmb3JtRGVmaW5pdGlvbiA/PyBuZXcgRm9ybURlZmluaXRpb24oKSwgdGFyZ2V0KTtcclxuICAgIH07XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQcm9wZXJ0eSBkZWNvcmF0b3IgdG8gY3JlYXRlIGZvcm0gZmllbGRzXHJcbiAqIEBwYXJhbSBhcmdzIFxyXG4gKiBAcmV0dXJucyBcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBGb3JtRmllbGQ8VEVudGl0eSA9IGFueSwgVFByb3BlcnR5ID0gYW55PihhcmdzOiBQYXJ0aWFsPEZvcm1GaWVsZERlZmluaXRpb248VEVudGl0eSwgVFByb3BlcnR5Pj4pOiBGdW5jdGlvbiB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgLyogR2V0IHByb3BlcnR5IG5hbWUgKi9cclxuICAgICAgICB2YXIgcHJvcGVydHlOYW1lID0gYXJncy5uYW1lIHx8IHByb3BlcnR5S2V5O1xyXG5cclxuICAgICAgICAvKiBHZXQgcHJvcGVydHkgdHlwZSAqL1xyXG4gICAgICAgIHZhciBwcm9wZXJ0eVR5cGU6IHN0cmluZyA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoXCJkZXNpZ246dHlwZVwiLCB0YXJnZXQsIHByb3BlcnR5S2V5KT8ubmFtZTtcclxuXHJcbiAgICAgICAgLyogQ3JlYXRlIHRhYmxlIGNvbHVtbiAqL1xyXG4gICAgICAgIHZhciBmb3JtRmllbGQ6IEZvcm1GaWVsZERlZmluaXRpb248VEVudGl0eSwgVFByb3BlcnR5PiA9IG5ldyBGb3JtRmllbGREZWZpbml0aW9uPFRFbnRpdHksIFRQcm9wZXJ0eT4oT2JqZWN0LmFzc2lnbihhcmdzLCA8Rm9ybUZpZWxkRGVmaW5pdGlvbjxURW50aXR5LCBUUHJvcGVydHk+PntcclxuICAgICAgICAgICAgbmFtZTogYXJncy5uYW1lIHx8IHByb3BlcnR5S2V5LFxyXG4gICAgICAgICAgICBsYWJlbDogYXJncy5sYWJlbCB8fCBSZWZsZWN0LmdldE1ldGFkYXRhKGhlYWRlck1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KSB8fCBwcm9wZXJ0eU5hbWUsXHJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZVRlbXBsYXRlOiBhcmdzLmF1dG9jb21wbGV0ZVRlbXBsYXRlIHx8ICgob3B0aW9uOiBhbnkpID0+IG9wdGlvbltmb3JtRmllbGQuYXV0b2NvbXBsZXRlVGV4dCA/PyAnJ10pLFxyXG4gICAgICAgICAgICBjaGlwVGVtcGxhdGU6IGFyZ3MuY2hpcFRlbXBsYXRlIHx8ICgoY2hpcDogYW55KSA9PiAoYXJncy5jdXN0b21WYWx1ZSA/IGNoaXAgOiBjaGlwW2Zvcm1GaWVsZC5jaGlwVGV4dCA/PyAnJ10pKVxyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgLyogVHlwZSBlbnVtICovXHJcbiAgICAgICAgaWYgKGZvcm1GaWVsZC5lbnVtVHlwZSkge1xyXG4gICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5FbnVtO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBWZFNlbGVjdCAqL1xyXG4gICAgICAgIGVsc2UgaWYgKGZvcm1GaWVsZC5lbmRwb2ludCkge1xyXG4gICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5WZFNlbGVjdDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFR5cGUgU2VsZWN0ICovXHJcbiAgICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLm9wdGlvbnMpIHtcclxuICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuU2VsZWN0O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBUZXh0QXJlYSAqL1xyXG4gICAgICAgIGVsc2UgaWYgKGZvcm1GaWVsZC5yb3dzKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlRleHRBcmVhO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyogVHlwZSBGaWxlICovXHJcbiAgICAgICAgZWxzZSBpZiAoZm9ybUZpZWxkLmZpbGVQYXRoKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLkZpbGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBPdGhlciB0eXBlcyAqL1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICBzd2l0Y2ggKHByb3BlcnR5VHlwZS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdudW1iZXInOlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlRleHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkLmlucHV0VHlwZSB8fD0gJ251bWJlcic7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgY2FzZSAnZGF0ZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUZpZWxkLnR5cGUgfHw9IEZvcm1GaWVsZFR5cGUuRGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICBjYXNlICdib29sZWFuJzpcclxuICAgICAgICAgICAgICAgICAgICBmb3JtRmllbGQudHlwZSB8fD0gRm9ybUZpZWxkVHlwZS5DaGVja2JveDtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1GaWVsZC50eXBlIHx8PSBGb3JtRmllbGRUeXBlLlRleHQ7XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIFNldCB3cmFwcGVkIHRvIGZhbHNlLCBpZiB0aGUgZmllbGQgY2FudCBiZSB3cmFwcGVkIGluIHRoZSA8bWF0LWZvcm0tZmllbGQ+ICovXHJcbiAgICAgICAgaWYgKChmb3JtRmllbGQudHlwZSBhcyBGb3JtRmllbGRUeXBlKSAmJiB1bndhcnBwZWRGb3JtRmllbGRzPy5pbmNsdWRlcygoZm9ybUZpZWxkLnR5cGUgYXMgRm9ybUZpZWxkVHlwZSkpKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC53cmFwcGVkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKiBBZGQgY2xhc3MgbXVsdGlsaW5lIHRvIHRoZSBmb3JtIGZpZWxkICovXHJcbiAgICAgICAgaWYgKGZvcm1GaWVsZC5tdWx0aWxpbmUpIHtcclxuICAgICAgICAgICAgZm9ybUZpZWxkLmNzc0NsYXNzICs9ICcgbXVsdGlsaW5lJztcclxuICAgICAgICAgICAgZm9ybUZpZWxkLmNzc0NsYXNzID0gZm9ybUZpZWxkLmNzc0NsYXNzPy50cmltKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBJZiB0aGUgJ251bWJlcnNPbmx5JyBmbGFnIGlzIHNldCB0byB0cnVlIGFuZCBubyBjdXN0b20gcGF0dGVybiBpcyBkZWZpbmVkLFxyXG4gICAgICAgICAqIHNldCB0aGUgcGF0dGVybiB0byBhbGxvdyBvbmx5IG51bWJlcnMuIFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGlmIChmb3JtRmllbGQubnVtYmVyc09ubHkgJiYgIWZvcm1GaWVsZC5wYXR0ZXJuKSB7XHJcbiAgICAgICAgICAgIGZvcm1GaWVsZC5wYXR0ZXJuID0gL15bMC05XSokLztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8qIEdldCBvbGQgZm9ybSBmaWVsZHMgKi9cclxuICAgICAgICBsZXQgcHJldmlvdXNGb3JtRmllbGRzOiBGb3JtRmllbGREZWZpbml0aW9uPFRFbnRpdHksIFRQcm9wZXJ0eT5bXSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoZm9ybUZpZWxkc01ldGFkYXRhS2V5LCB0YXJnZXQpO1xyXG5cclxuICAgICAgICAvKiBPdmVycmlkZSB0aGUgZmllbGQsIGlmIGV4aXN0cyAqL1xyXG4gICAgICAgIHByZXZpb3VzRm9ybUZpZWxkcyA9IHByZXZpb3VzRm9ybUZpZWxkcz8uZmlsdGVyKHggPT4geC5uYW1lICE9IGZvcm1GaWVsZC5uYW1lKTtcclxuXHJcbiAgICAgICAgLyogQ3JlYXRlIGEgY29weSBvZiB0aGUgcmVzdWx0ICovXHJcbiAgICAgICAgbGV0IGZvcm1GaWVsZHMgPSBwcmV2aW91c0Zvcm1GaWVsZHMgPyBwcmV2aW91c0Zvcm1GaWVsZHMuY29uY2F0KFtmb3JtRmllbGRdKSA6IFtmb3JtRmllbGRdO1xyXG5cclxuICAgICAgICAvKiBPdmVycmlkZSB0aGUgcmVzdWx0IGluIHRoZSBtZXRhZGF0YSAqL1xyXG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoZm9ybUZpZWxkc01ldGFkYXRhS2V5LCBmb3JtRmllbGRzLCB0YXJnZXQpO1xyXG4gICAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFByb3BlcnR5IGRlY29yYXRvciB0byBjcmVhdGUgZm9ybSBmaWVsZHNcclxuICogQHBhcmFtIGFyZ3MgXHJcbiAqIEByZXR1cm5zIFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIEZvcm1GaWVsZEdyb3VwPFQgPSBhbnk+KHR5cGU6IFR5cGU8VD4sIGFyZ3M/OiBQYXJ0aWFsPEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbjxUPj4pOiBGdW5jdGlvbiB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKSB7XHJcbiAgICAgICAgLyogQ3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoZSBncm91cCBvYmplY3QgKi9cclxuICAgICAgICB2YXIgaW5zdGFuY2UgPSBSZWZsZWN0LmNvbnN0cnVjdCh0eXBlLCBbXSk7XHJcblxyXG4gICAgICAgIC8qIEdldCBmcm9tIGdyb3VwcyAqL1xyXG4gICAgICAgIHZhciBncm91cHMgPSBnZXRGb3JtR3JvdXBzKHVuZGVmaW5lZCwgdHlwZSwgYXJncyk7XHJcblxyXG4gICAgICAgIC8qIEdldCB0aGUgaGVhZGVyIG9mIHRoZSBncm91cHMgb3IgY3JlYXRlIG9uZSB1c2luZyB0aGUgcHJvcGVydHkgbmFtZSAqL1xyXG4gICAgICAgIHZhciBncm91cEhlYWRlciA9IGFyZ3M/LmhlYWRlciB8fCBSZWZsZWN0LmdldE1ldGFkYXRhKGhlYWRlck1ldGFkYXRhS2V5LCB0YXJnZXQsIHByb3BlcnR5S2V5KSB8fCBwcm9wZXJ0eUtleTtcclxuXHJcbiAgICAgICAgLyogR2V0IHRoZSBmaWVsZHMgZnJvbSB0aGUgZ3JvdXBzICovXHJcbiAgICAgICAgZ3JvdXBzPy5mb3JFYWNoKCh4LCBpKSA9PiB7XHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oeCwgPEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbjxUPj57XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBhcmdzPy5uYW1lID8/IHgubmFtZSA/PyBwcm9wZXJ0eUtleSxcclxuICAgICAgICAgICAgICAgIGhlYWRlcjogZ3JvdXBIZWFkZXIsXHJcbiAgICAgICAgICAgICAgICBpbmRleDogYXJncz8uaW5kZXggfHwgaVxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIC8qIFNldCB0aGUgbmFtZSBvZiB0aGUgZ3JvdXAgaW4gdGhlIGZpZWxkcyAqL1xyXG4gICAgICAgICAgICB4LmZpZWxkcy5mb3JFYWNoKHkgPT4gT2JqZWN0LmFzc2lnbih5LCB7XHJcbiAgICAgICAgICAgICAgICBncm91cE5hbWU6IHByb3BlcnR5S2V5LFxyXG4gICAgICAgICAgICAgICAgZ3JvdXBIZWFkZXI6IGdyb3VwSGVhZGVyLFxyXG4gICAgICAgICAgICAgICAgZmllbGRTZXRzOiBhcmdzPy5maWVsZFNldHNcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvKiBHZXQgb2xkIGZvcm0gZmllbGQgZ3JvdXBzICovXHJcbiAgICAgICAgdmFyIHByZXZpb3VzR3JvdXBzOiBGb3JtRmllbGRHcm91cERlZmluaXRpb248VD5bXSA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoZm9ybUZpZWxkR3JvdXBzTWV0YWRhdGFLZXksIHRhcmdldCk7XHJcblxyXG4gICAgICAgIC8qIFJlbW92ZSB0aGUgZ3JvdXBzIGluIHByZXZpb3VzR3JvdXBzIHRoYXQgZXhpc3QgaW4gZ3JvdXBzICovXHJcbiAgICAgICAgcHJldmlvdXNHcm91cHMgPSBwcmV2aW91c0dyb3Vwcz8uZmlsdGVyKHByZXZHcm91cCA9PiAhZ3JvdXBzPy5zb21lKGdyb3VwID0+IGdyb3VwLm5hbWUgPT09IHByZXZHcm91cC5uYW1lKSk7XHJcblxyXG4gICAgICAgIC8qIE92ZXJyaWRlIHRoZSByZXN1bHQgaW4gdGhlIG1ldGFkYXRhICovXHJcbiAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShmb3JtRmllbGRHcm91cHNNZXRhZGF0YUtleSwgKHByZXZpb3VzR3JvdXBzID8gcHJldmlvdXNHcm91cHMuY29uY2F0KGdyb3VwcykgOiBncm91cHMpLCB0YXJnZXQpO1xyXG4gICAgfTtcclxufSJdfQ==
@@ -1,72 +0,0 @@
1
- import { endpointMetadataKey } from "../../common/constants/constants";
2
- import { Utils } from "../../common/functions/utils";
3
- import { formDefinitionMetadataKey, formFieldGroupsMetadataKey, formFieldsMetadataKey } from "../constants/constants";
4
- import { FormDefinition } from "../models/form-definition";
5
- import { FormFieldGroupDefinition } from "../models/form-field-group-definition";
6
- /**
7
- * Gets classes decoarated with @Form
8
- * @param origin
9
- * @returns
10
- */
11
- export function getFormDefinition(origin) {
12
- /* Check if origin is not defined */
13
- if (!origin) {
14
- throw new Error('Origin object must be defined.');
15
- }
16
- /* Save the form defintion in the metadata */
17
- var formDefinition = Reflect.getMetadata(formDefinitionMetadataKey, origin.constructor) ?? new FormDefinition({});
18
- if (formDefinition) {
19
- /* Set column in the form definition */
20
- formDefinition.fieldGroups = getFormGroups(origin);
21
- /* Set endpoint from the decorator @Api, if any */
22
- var endpoint = Reflect.getMetadata(endpointMetadataKey, origin);
23
- if (endpoint) {
24
- formDefinition.endpoint = endpoint;
25
- }
26
- }
27
- return formDefinition;
28
- }
29
- /**
30
- * Gets poperties decoarated with @FormField grouped by row
31
- * @param instance
32
- * @returns
33
- */
34
- export function getFormGroups(instance, type, args) {
35
- /* Create a new instance */
36
- instance ??= Reflect.construct(type, []);
37
- /* Check if origin is not defined */
38
- if (!instance) {
39
- throw new Error('Origin object must be defined.');
40
- }
41
- /* Get main fields grouped by the group name */
42
- const mainFieldGroups = Utils.groupArrayBy(Reflect.getMetadata(formFieldsMetadataKey, instance), x => x.groupName);
43
- /* Group the fields */
44
- var groups = Array.from(mainFieldGroups).map(([_, value], i) => new FormFieldGroupDefinition({
45
- name: value[0].groupName || undefined,
46
- header: value[0].groupHeader,
47
- type: type,
48
- instance: instance,
49
- index: args?.index ?? i,
50
- hidden: args?.hidden,
51
- hide: args?.hide,
52
- groups: Object.values((value).reduce(function (r, a) {
53
- if (a.row) {
54
- r[a.row] = (r[a.row] || []);
55
- r[a.row].push(a);
56
- r[a.row].forEach((x, i) => x.index = x.index || i);
57
- Utils.sortArray(r[a.row], 'index');
58
- return r;
59
- }
60
- return [];
61
- }, Object.create(null)))
62
- }));
63
- /* Get object groups */
64
- var objectFieldGroups = Reflect.getMetadata(formFieldGroupsMetadataKey, instance);
65
- if (objectFieldGroups && Array.isArray(objectFieldGroups)) {
66
- groups = groups.concat(objectFieldGroups);
67
- }
68
- /* Sort the groups by index */
69
- Utils.sortArray(groups, 'index');
70
- return groups;
71
- }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybXMvZnVuY3Rpb25zL2Z1bmN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLDBCQUEwQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEgsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRWpGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsTUFBZTtJQUM3QyxvQ0FBb0M7SUFDcEMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCw2Q0FBNkM7SUFDN0MsSUFBSSxjQUFjLEdBQW1CLE9BQU8sQ0FBQyxXQUFXLENBQUMseUJBQXlCLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xJLElBQUksY0FBYyxFQUFFLENBQUM7UUFDakIsdUNBQXVDO1FBQ3ZDLGNBQWMsQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRW5ELGtEQUFrRDtRQUNsRCxJQUFJLFFBQVEsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDWCxjQUFjLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN2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ZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IGVuZHBvaW50TWV0YWRhdGFLZXkgfSBmcm9tIFwiLi4vLi4vY29tbW9uL2NvbnN0YW50cy9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tIFwiLi4vLi4vY29tbW9uL2Z1bmN0aW9ucy91dGlsc1wiO1xyXG5pbXBvcnQgeyBmb3JtRGVmaW5pdGlvbk1ldGFkYXRhS2V5LCBmb3JtRmllbGRHcm91cHNNZXRhZGF0YUtleSwgZm9ybUZpZWxkc01ldGFkYXRhS2V5IH0gZnJvbSBcIi4uL2NvbnN0YW50cy9jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgRm9ybURlZmluaXRpb24gfSBmcm9tIFwiLi4vbW9kZWxzL2Zvcm0tZGVmaW5pdGlvblwiO1xyXG5pbXBvcnQgeyBGb3JtRmllbGREZWZpbml0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9mb3JtLWZpZWxkLWRlZmluaXRpb25cIjtcclxuaW1wb3J0IHsgRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9mb3JtLWZpZWxkLWdyb3VwLWRlZmluaXRpb25cIjtcclxuXHJcbi8qKlxyXG4gKiBHZXRzIGNsYXNzZXMgZGVjb2FyYXRlZCB3aXRoIEBGb3JtXHJcbiAqIEBwYXJhbSBvcmlnaW4gXHJcbiAqIEByZXR1cm5zIFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1EZWZpbml0aW9uKG9yaWdpbj86IG9iamVjdCk6IEZvcm1EZWZpbml0aW9uIHtcclxuICAgIC8qIENoZWNrIGlmIG9yaWdpbiBpcyBub3QgZGVmaW5lZCAqL1xyXG4gICAgaWYgKCFvcmlnaW4pIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ09yaWdpbiBvYmplY3QgbXVzdCBiZSBkZWZpbmVkLicpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qIFNhdmUgdGhlIGZvcm0gZGVmaW50aW9uIGluIHRoZSBtZXRhZGF0YSAqL1xyXG4gICAgdmFyIGZvcm1EZWZpbml0aW9uOiBGb3JtRGVmaW5pdGlvbiA9IFJlZmxlY3QuZ2V0TWV0YWRhdGEoZm9ybURlZmluaXRpb25NZXRhZGF0YUtleSwgb3JpZ2luLmNvbnN0cnVjdG9yKSA/PyBuZXcgRm9ybURlZmluaXRpb24oe30pO1xyXG4gICAgaWYgKGZvcm1EZWZpbml0aW9uKSB7XHJcbiAgICAgICAgLyogU2V0IGNvbHVtbiBpbiB0aGUgZm9ybSBkZWZpbml0aW9uICovXHJcbiAgICAgICAgZm9ybURlZmluaXRpb24uZmllbGRHcm91cHMgPSBnZXRGb3JtR3JvdXBzKG9yaWdpbik7XHJcblxyXG4gICAgICAgIC8qIFNldCBlbmRwb2ludCBmcm9tIHRoZSBkZWNvcmF0b3IgQEFwaSwgaWYgYW55ICovXHJcbiAgICAgICAgdmFyIGVuZHBvaW50ID0gUmVmbGVjdC5nZXRNZXRhZGF0YShlbmRwb2ludE1ldGFkYXRhS2V5LCBvcmlnaW4pO1xyXG4gICAgICAgIGlmIChlbmRwb2ludCkge1xyXG4gICAgICAgICAgICBmb3JtRGVmaW5pdGlvbi5lbmRwb2ludCA9IGVuZHBvaW50O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm9ybURlZmluaXRpb247XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHZXRzIHBvcGVydGllcyBkZWNvYXJhdGVkIHdpdGggQEZvcm1GaWVsZCBncm91cGVkIGJ5IHJvd1xyXG4gKiBAcGFyYW0gaW5zdGFuY2UgXHJcbiAqIEByZXR1cm5zIFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1Hcm91cHM8VCA9IGFueT4oaW5zdGFuY2U/OiBULCB0eXBlPzogVHlwZTxUPiwgYXJncz86IFBhcnRpYWw8Rm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uPFQ+Pik6IEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbltdIHtcclxuICAgIC8qIENyZWF0ZSBhIG5ldyBpbnN0YW5jZSAqL1xyXG4gICAgaW5zdGFuY2UgPz89IFJlZmxlY3QuY29uc3RydWN0KHR5cGUhLCBbXSk7XHJcblxyXG4gICAgLyogQ2hlY2sgaWYgb3JpZ2luIGlzIG5vdCBkZWZpbmVkICovXHJcbiAgICBpZiAoIWluc3RhbmNlKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdPcmlnaW4gb2JqZWN0IG11c3QgYmUgZGVmaW5lZC4nKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiBHZXQgbWFpbiBmaWVsZHMgZ3JvdXBlZCBieSB0aGUgZ3JvdXAgbmFtZSAqL1xyXG4gICAgY29uc3QgbWFpbkZpZWxkR3JvdXBzID0gVXRpbHMuZ3JvdXBBcnJheUJ5KFJlZmxlY3QuZ2V0TWV0YWRhdGEoZm9ybUZpZWxkc01ldGFkYXRhS2V5LCBpbnN0YW5jZSkgYXMgRm9ybUZpZWxkRGVmaW5pdGlvbltdLCB4ID0+IHguZ3JvdXBOYW1lKTtcclxuXHJcbiAgICAvKiBHcm91cCB0aGUgZmllbGRzICovXHJcbiAgICB2YXIgZ3JvdXBzID0gQXJyYXkuZnJvbShtYWluRmllbGRHcm91cHMpLm1hcCgoW18sIHZhbHVlXSwgaTogbnVtYmVyKSA9PiBuZXcgRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uKHtcclxuICAgICAgICBuYW1lOiB2YWx1ZVswXS5ncm91cE5hbWUgfHwgdW5kZWZpbmVkLFxyXG4gICAgICAgIGhlYWRlcjogdmFsdWVbMF0uZ3JvdXBIZWFkZXIsXHJcbiAgICAgICAgdHlwZTogdHlwZSxcclxuICAgICAgICBpbnN0YW5jZTogaW5zdGFuY2UsXHJcbiAgICAgICAgaW5kZXg6IGFyZ3M/LmluZGV4ID8/IGksXHJcbiAgICAgICAgaGlkZGVuOiBhcmdzPy5oaWRkZW4sXHJcbiAgICAgICAgaGlkZTogYXJncz8uaGlkZSxcclxuICAgICAgICBncm91cHM6IChPYmplY3QudmFsdWVzKCh2YWx1ZSkucmVkdWNlKGZ1bmN0aW9uIChyOiBbRm9ybUZpZWxkRGVmaW5pdGlvbltdXSwgYTogRm9ybUZpZWxkRGVmaW5pdGlvbikge1xyXG4gICAgICAgICAgICBpZiAoYS5yb3cpIHtcclxuICAgICAgICAgICAgICAgIHJbYS5yb3ddID0gKHJbYS5yb3ddIHx8IFtdKTtcclxuICAgICAgICAgICAgICAgIHJbYS5yb3ddLnB1c2goYSk7XHJcbiAgICAgICAgICAgICAgICByW2Eucm93XS5mb3JFYWNoKCh4LCBpKSA9PiB4LmluZGV4ID0geC5pbmRleCB8fCBpKTtcclxuICAgICAgICAgICAgICAgIFV0aWxzLnNvcnRBcnJheShyW2Eucm93XSwgJ2luZGV4Jyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gcjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIDxhbnk+W107XHJcblxyXG4gICAgICAgIH0sIE9iamVjdC5jcmVhdGUobnVsbCkpKSBhcyBbRm9ybUZpZWxkRGVmaW5pdGlvbltdXSlcclxuICAgIH0pKTtcclxuXHJcbiAgICAvKiBHZXQgb2JqZWN0IGdyb3VwcyAqL1xyXG4gICAgdmFyIG9iamVjdEZpZWxkR3JvdXBzID0gUmVmbGVjdC5nZXRNZXRhZGF0YShmb3JtRmllbGRHcm91cHNNZXRhZGF0YUtleSwgaW5zdGFuY2UpO1xyXG4gICAgaWYgKG9iamVjdEZpZWxkR3JvdXBzICYmIEFycmF5LmlzQXJyYXkob2JqZWN0RmllbGRHcm91cHMpKSB7XHJcbiAgICAgICAgZ3JvdXBzID0gZ3JvdXBzLmNvbmNhdChvYmplY3RGaWVsZEdyb3Vwcyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyogU29ydCB0aGUgZ3JvdXBzIGJ5IGluZGV4ICovXHJcbiAgICBVdGlscy5zb3J0QXJyYXkoZ3JvdXBzLCAnaW5kZXgnKTtcclxuXHJcbiAgICByZXR1cm4gZ3JvdXBzO1xyXG59Il19
@@ -1,308 +0,0 @@
1
- import { FocusMonitor } from "@angular/cdk/a11y";
2
- import { coerceBooleanProperty } from "@angular/cdk/coercion";
3
- import { ChangeDetectorRef, Directive, ElementRef, HostBinding, HostListener, Input } from "@angular/core";
4
- import { FormGroupDirective, NgControl, NgForm } from "@angular/forms";
5
- import { ErrorStateMatcher, mixinErrorState } from "@angular/material/core";
6
- import { Subject } from "rxjs";
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/forms";
9
- import * as i2 from "@angular/material/core";
10
- import * as i3 from "@angular/cdk/a11y";
11
- /* Boilerplate for applying mixins to the custom field. */
12
- const _AbstractMatFormFieldBase = mixinErrorState(class {
13
- _defaultErrorStateMatcher;
14
- _parentForm;
15
- _parentFormGroup;
16
- ngControl;
17
- /**
18
- * Emits whenever the component state changes and should cause the parent
19
- * form-field to update. Implemented as part of `MatFormFieldControl`.
20
- * @docs-private
21
- */
22
- stateChanges = new Subject();
23
- /**
24
- * Constructor
25
- * @param _defaultErrorStateMatcher
26
- * @param _parentForm
27
- * @param _parentFormGroup
28
- * @param ngControl
29
- */
30
- constructor(_defaultErrorStateMatcher, _parentForm, _parentFormGroup,
31
- /**
32
- * Form control bound to the component.
33
- * Implemented as part of `MatFormFieldControl`.
34
- * @docs-private
35
- */
36
- ngControl) {
37
- this._defaultErrorStateMatcher = _defaultErrorStateMatcher;
38
- this._parentForm = _parentForm;
39
- this._parentFormGroup = _parentFormGroup;
40
- this.ngControl = ngControl;
41
- }
42
- });
43
- /**
44
- * AbstractMatFormField class
45
- */
46
- export class AbstractMatFormField extends _AbstractMatFormFieldBase {
47
- controlType;
48
- ngControl;
49
- _parentForm;
50
- _parentFormGroup;
51
- _defaultErrorStateMatcher;
52
- _focusMonitor;
53
- _elementRef;
54
- changeDetectorRef;
55
- /**
56
- * The value of the control.
57
- */
58
- _value = null;
59
- /**
60
- * Sets the value
61
- */
62
- set value(value) {
63
- let valueChanged = this._value != value;
64
- this._value = value;
65
- if (valueChanged && this.onChange) {
66
- this.onChange(value);
67
- }
68
- setTimeout(() => this.stateChanges.next(), 50);
69
- }
70
- /**
71
- * Gets the value
72
- */
73
- get value() {
74
- return this._value;
75
- }
76
- /**
77
- * The placeholder for this control.
78
- */
79
- _placeholder = "";
80
- /**
81
- * Sets the placeholder
82
- */
83
- set placeholder(placeholder) {
84
- this._placeholder = placeholder;
85
- this.stateChanges.next();
86
- }
87
- /**
88
- * Gets the placeholder
89
- */
90
- get placeholder() {
91
- return this._placeholder;
92
- }
93
- /**
94
- * Whether the control is required.
95
- */
96
- _required = false;
97
- /**
98
- * Sets the required
99
- * @param required
100
- */
101
- set required(required) {
102
- this._required = coerceBooleanProperty(required);
103
- this.stateChanges.next();
104
- }
105
- /**
106
- * Gets the required
107
- */
108
- get required() {
109
- return this._required;
110
- }
111
- /**
112
- * Readonly
113
- */
114
- _readonly;
115
- /**
116
- * Multiple select option
117
- */
118
- get readonly() { return this._readonly; }
119
- set readonly(readonly) {
120
- this._readonly = coerceBooleanProperty(readonly);
121
- this.stateChanges.next();
122
- }
123
- /**
124
- * Whether the control is disabled.
125
- */
126
- _disabled = false;
127
- /**
128
- * Gets the control is disabled.
129
- * @param disabled
130
- */
131
- set disabled(disabled) {
132
- this._disabled = coerceBooleanProperty(disabled);
133
- if (this.focused) {
134
- this.focused = false;
135
- this.stateChanges.next();
136
- }
137
- }
138
- /**
139
- * Sets the disabled.
140
- * @param disabled
141
- */
142
- get disabled() {
143
- if (this.ngControl?.disabled !== null) {
144
- return this.ngControl?.disabled;
145
- }
146
- return this._disabled;
147
- }
148
- /**
149
- * Gets the empty value
150
- */
151
- get empty() {
152
- return !this._value;
153
- }
154
- /**
155
- * Whether the `MatFormField` label should try to float.
156
- */
157
- get shouldLabelFloat() {
158
- return this.focused || !this.empty;
159
- }
160
- /**
161
- * The element ID
162
- */
163
- static nextId = 0;
164
- /**
165
- * The element ID
166
- */
167
- id;
168
- /**
169
- * Used to indicate the IDs of the elements that describe the object.
170
- */
171
- describedBy = "";
172
- /**
173
- * Constructor
174
- * @param controlType
175
- * @param ngControl
176
- * @param _parentForm
177
- * @param _parentFormGroup
178
- * @param _defaultErrorStateMatcher
179
- * @param _focusMonitor
180
- * @param _elementRef
181
- */
182
- constructor(controlType, ngControl, _parentForm, _parentFormGroup, _defaultErrorStateMatcher, _focusMonitor, _elementRef, changeDetectorRef) {
183
- super(_defaultErrorStateMatcher, _parentForm, _parentFormGroup, ngControl);
184
- this.controlType = controlType;
185
- this.ngControl = ngControl;
186
- this._parentForm = _parentForm;
187
- this._parentFormGroup = _parentFormGroup;
188
- this._defaultErrorStateMatcher = _defaultErrorStateMatcher;
189
- this._focusMonitor = _focusMonitor;
190
- this._elementRef = _elementRef;
191
- this.changeDetectorRef = changeDetectorRef;
192
- this.id = `${this.controlType}-${AbstractMatFormField.nextId++}`;
193
- if (this.ngControl) {
194
- this.ngControl.valueAccessor = this;
195
- }
196
- _focusMonitor.monitor(this._elementRef.nativeElement, true).subscribe(origin => {
197
- this.focused = !!origin;
198
- this.stateChanges.next();
199
- this.changeDetectorRef.markForCheck();
200
- });
201
- }
202
- /**
203
- * Registers a function called when the control value changes.
204
- */
205
- registerOnChange(fn) {
206
- this.onChange = fn;
207
- }
208
- /**
209
- * Registers a callback function that is called by the forms API on initialization
210
- * to update the form model on blur.
211
- * @param fn
212
- */
213
- registerOnTouched(fn) {
214
- this.onTouched = fn;
215
- }
216
- /**
217
- * Writes a new value to the element.
218
- * @param value
219
- */
220
- writeValue(value) {
221
- this.value = value;
222
- }
223
- /**
224
- * Sets the list of element IDs that currently describe this control.
225
- * @param ids
226
- */
227
- setDescribedByIds(ids) {
228
- this.describedBy = ids.join(" ");
229
- }
230
- /**
231
- * Whether the control is focused.
232
- */
233
- focused = false;
234
- /**
235
- * Whether the control is touched.
236
- */
237
- touched = false;
238
- /**
239
- * Whether the control is focused.
240
- */
241
- onBlur() {
242
- this.focused = false;
243
- if (this.onTouched) {
244
- this.onTouched();
245
- }
246
- this.stateChanges.next();
247
- }
248
- /**
249
- * Handles a click on the control's container.
250
- */
251
- onContainerClick() {
252
- if (!this.focused) {
253
- this.focus();
254
- }
255
- }
256
- /**
257
- * The registered callback function called when an input
258
- * event occurs on the input element.
259
- */
260
- onChange;
261
- /**
262
- * The registered callback function called when a blur
263
- * event occurs on the input element.
264
- */
265
- onTouched;
266
- /**
267
- * A callback method that performs change-detection, invoked
268
- * after the default change-detector runs.
269
- * See `KeyValueDiffers` and `IterableDiffers` for implementing
270
- * custom change checking for collections.
271
- *
272
- */
273
- ngDoCheck() {
274
- if (this.ngControl) {
275
- this.updateErrorState();
276
- }
277
- }
278
- /**
279
- * A lifecycle method called before the directive's instance
280
- * is destroyed. For internal use only.
281
- */
282
- ngOnDestroy() {
283
- this.stateChanges.complete();
284
- this._focusMonitor.stopMonitoring(this._elementRef.nativeElement);
285
- }
286
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AbstractMatFormField, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
287
- /** @nocollapse */ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: AbstractMatFormField, inputs: { placeholder: "placeholder", required: "required", readonly: "readonly", disabled: "disabled" }, host: { listeners: { "focusout": "onBlur()" }, properties: { "id": "this.id", "attr.aria-describedBy": "this.describedBy" } }, usesInheritance: true, ngImport: i0 });
288
- }
289
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AbstractMatFormField, decorators: [{
290
- type: Directive
291
- }], ctorParameters: () => [{ type: undefined }, { type: i1.NgControl }, { type: i1.NgForm }, { type: i1.FormGroupDirective }, { type: i2.ErrorStateMatcher }, { type: i3.FocusMonitor }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { placeholder: [{
292
- type: Input
293
- }], required: [{
294
- type: Input
295
- }], readonly: [{
296
- type: Input
297
- }], disabled: [{
298
- type: Input
299
- }], id: [{
300
- type: HostBinding
301
- }], describedBy: [{
302
- type: HostBinding,
303
- args: ["attr.aria-describedBy"]
304
- }], onBlur: [{
305
- type: HostListener,
306
- args: ["focusout"]
307
- }] } });
308
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbWF0LWZvcm0tZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3Jtcy9oZWxwZXJzL2Fic3RyYWN0LW1hdC1mb3JtLWZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFXLFVBQVUsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQXdCLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFFL0IsMERBQTBEO0FBQzFELE1BQU0seUJBQXlCLEdBQUcsZUFBZSxDQUM3QztJQWdCZTtJQUNBO0lBQ0E7SUFNQTtJQXZCWDs7OztPQUlHO0lBQ00sWUFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFNUM7Ozs7OztPQU1HO0lBQ0gsWUFDVyx5QkFBNEMsRUFDNUMsV0FBbUIsRUFDbkIsZ0JBQW9DO0lBQzNDOzs7O09BSUc7SUFDSSxTQUFvQjtRQVJwQiw4QkFBeUIsR0FBekIseUJBQXlCLENBQW1CO1FBQzVDLGdCQUFXLEdBQVgsV0FBVyxDQUFRO1FBQ25CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFNcEMsY0FBUyxHQUFULFNBQVMsQ0FBVztJQUMzQixDQUFDO0NBQ1IsQ0FDSixDQUFDO0FBRUY7O0dBRUc7QUFFSCxNQUFNLE9BQWdCLG9C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LEVBQUUsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFdBQVc7UUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEUsQ0FBQzswSEF4UmlCLG9CQUFvQjs4R0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUR6QyxTQUFTOzZRQXFDSyxXQUFXO3NCQURyQixLQUFLO2dCQXVCSyxRQUFRO3NCQURsQixLQUFLO2dCQXNCRixRQUFRO3NCQURYLEtBQUs7Z0JBaUJLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBNENDLEVBQUU7c0JBRFIsV0FBVztnQkFPTCxXQUFXO3NCQURqQixXQUFXO3VCQUFDLHVCQUF1QjtnQkFrRlYsTUFBTTtzQkFBL0IsWUFBWTt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9hMTF5XCI7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29lcmNpb25cIjtcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgRG9DaGVjaywgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtR3JvdXBEaXJlY3RpdmUsIE5nQ29udHJvbCwgTmdGb3JtIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IEVycm9yU3RhdGVNYXRjaGVyLCBtaXhpbkVycm9yU3RhdGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZVwiO1xyXG5pbXBvcnQgeyBNYXRGb3JtRmllbGRDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG4vKiBCb2lsZXJwbGF0ZSBmb3IgYXBwbHlpbmcgbWl4aW5zIHRvIHRoZSBjdXN0b20gZmllbGQuICovXHJcbmNvbnN0IF9BYnN0cmFjdE1hdEZvcm1GaWVsZEJhc2UgPSBtaXhpbkVycm9yU3RhdGUoXHJcbiAgICBjbGFzcyB7XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbXBvbmVudCBzdGF0ZSBjaGFuZ2VzIGFuZCBzaG91bGQgY2F1c2UgdGhlIHBhcmVudFxyXG4gICAgICAgICAqIGZvcm0tZmllbGQgdG8gdXBkYXRlLiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIGBNYXRGb3JtRmllbGRDb250cm9sYC5cclxuICAgICAgICAgKiBAZG9jcy1wcml2YXRlXHJcbiAgICAgICAgICovXHJcbiAgICAgICAgcmVhZG9ubHkgc3RhdGVDaGFuZ2VzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogQ29uc3RydWN0b3JcclxuICAgICAgICAgKiBAcGFyYW0gX2RlZmF1bHRFcnJvclN0YXRlTWF0Y2hlciBcclxuICAgICAgICAgKiBAcGFyYW0gX3BhcmVudEZvcm0gXHJcbiAgICAgICAgICogQHBhcmFtIF9wYXJlbnRGb3JtR3JvdXAgXHJcbiAgICAgICAgICogQHBhcmFtIG5nQ29udHJvbCBcclxuICAgICAgICAgKi9cclxuICAgICAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICAgICAgcHVibGljIF9kZWZhdWx0RXJyb3JTdGF0ZU1hdGNoZXI6IEVycm9yU3RhdGVNYXRjaGVyLFxyXG4gICAgICAgICAgICBwdWJsaWMgX3BhcmVudEZvcm06IE5nRm9ybSxcclxuICAgICAgICAgICAgcHVibGljIF9wYXJlbnRGb3JtR3JvdXA6IEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIEZvcm0gY29udHJvbCBib3VuZCB0byB0aGUgY29tcG9uZW50LlxyXG4gICAgICAgICAgICAgKiBJbXBsZW1lbnRlZCBhcyBwYXJ0IG9mIGBNYXRGb3JtRmllbGRDb250cm9sYC5cclxuICAgICAgICAgICAgICogQGRvY3MtcHJpdmF0ZVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgcHVibGljIG5nQ29udHJvbDogTmdDb250cm9sLFxyXG4gICAgICAgICkgeyB9XHJcbiAgICB9LFxyXG4pO1xyXG5cclxuLyoqXHJcbiAqIEFic3RyYWN0TWF0Rm9ybUZpZWxkIGNsYXNzXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TWF0Rm9ybUZpZWxkPFQ+IGV4dGVuZHMgX0Fic3RyYWN0TWF0Rm9ybUZpZWxkQmFzZSBpbXBsZW1lbnRzIERvQ2hlY2ssIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE1hdEZvcm1GaWVsZENvbnRyb2w8VD4ge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHZhbHVlIG9mIHRoZSBjb250cm9sLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3ZhbHVlOiBUIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBUKSB7XHJcbiAgICAgICAgbGV0IHZhbHVlQ2hhbmdlZCA9IHRoaXMuX3ZhbHVlICE9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcbiAgICAgICAgaWYgKHZhbHVlQ2hhbmdlZCAmJiB0aGlzLm9uQ2hhbmdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCksIDUwKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogVCB8IG51bGwge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBwbGFjZWhvbGRlciBmb3IgdGhpcyBjb250cm9sLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX3BsYWNlaG9sZGVyOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyB0aGUgcGxhY2Vob2xkZXJcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIocGxhY2Vob2xkZXI6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7XHJcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgcGxhY2Vob2xkZXJcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBXaGV0aGVyIHRoZSBjb250cm9sIGlzIHJlcXVpcmVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSByZXF1aXJlZFxyXG4gICAgICogQHBhcmFtIHJlcXVpcmVkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IHJlcXVpcmVkKHJlcXVpcmVkOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZXF1aXJlZCk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgcmVxdWlyZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCByZXF1aXJlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWFkb25seVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgX3JlYWRvbmx5PzogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE11bHRpcGxlIHNlbGVjdCBvcHRpb25cclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGdldCByZWFkb25seSgpIHsgcmV0dXJuIHRoaXMuX3JlYWRvbmx5OyB9XHJcbiAgICBzZXQgcmVhZG9ubHkocmVhZG9ubHkpIHtcclxuICAgICAgICB0aGlzLl9yZWFkb25seSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eShyZWFkb25seSk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciB0aGUgY29udHJvbCBpcyBkaXNhYmxlZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgY29udHJvbCBpcyBkaXNhYmxlZC5cclxuICAgICAqIEBwYXJhbSBkaXNhYmxlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYW55KSB7XHJcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkoZGlzYWJsZWQpO1xyXG4gICAgICAgIGlmICh0aGlzLmZvY3VzZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHRoZSBkaXNhYmxlZC5cclxuICAgICAqIEBwYXJhbSBkaXNhYmxlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbD8uZGlzYWJsZWQgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmdDb250cm9sPy5kaXNhYmxlZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGVtcHR5IHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICF0aGlzLl92YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgdGhlIGBNYXRGb3JtRmllbGRgIGxhYmVsIHNob3VsZCB0cnkgdG8gZmxvYXQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgc2hvdWxkTGFiZWxGbG9hdCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb2N1c2VkIHx8ICF0aGlzLmVtcHR5O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGVsZW1lbnQgSURcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgbmV4dElkOiBudW1iZXIgPSAwO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGVsZW1lbnQgSURcclxuICAgICAqL1xyXG4gICAgQEhvc3RCaW5kaW5nKClcclxuICAgIHB1YmxpYyBpZDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVXNlZCB0byBpbmRpY2F0ZSB0aGUgSURzIG9mIHRoZSBlbGVtZW50cyB0aGF0IGRlc2NyaWJlIHRoZSBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIEBIb3N0QmluZGluZyhcImF0dHIuYXJpYS1kZXNjcmliZWRCeVwiKVxyXG4gICAgcHVibGljIGRlc2NyaWJlZEJ5OiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3JcclxuICAgICAqIEBwYXJhbSBjb250cm9sVHlwZSBcclxuICAgICAqIEBwYXJhbSBuZ0NvbnRyb2wgXHJcbiAgICAgKiBAcGFyYW0gX3BhcmVudEZvcm0gXHJcbiAgICAgKiBAcGFyYW0gX3BhcmVudEZvcm1Hcm91cCBcclxuICAgICAqIEBwYXJhbSBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyIFxyXG4gICAgICogQHBhcmFtIF9mb2N1c01vbml0b3IgXHJcbiAgICAgKiBAcGFyYW0gX2VsZW1lbnRSZWYgXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHB1YmxpYyBjb250cm9sVHlwZTogc3RyaW5nLFxyXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcclxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgX3BhcmVudEZvcm06IE5nRm9ybSxcclxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgX3BhcmVudEZvcm1Hcm91cDogRm9ybUdyb3VwRGlyZWN0aXZlLFxyXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyOiBFcnJvclN0YXRlTWF0Y2hlcixcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2ZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxyXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfZGVmYXVsdEVycm9yU3RhdGVNYXRjaGVyLCBfcGFyZW50Rm9ybSwgX3BhcmVudEZvcm1Hcm91cCwgbmdDb250cm9sKTtcclxuICAgICAgICB0aGlzLmlkID0gYCR7dGhpcy5jb250cm9sVHlwZX0tJHtBYnN0cmFjdE1hdEZvcm1GaWVsZC5uZXh0SWQrK31gO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBfZm9jdXNNb25pdG9yLm1vbml0b3IodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0cnVlKS5zdWJzY3JpYmUob3JpZ2luID0+IHtcclxuICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gISFvcmlnaW47XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHZhbHVlIGNoYW5nZXMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogVCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGJ5IHRoZSBmb3JtcyBBUEkgb24gaW5pdGlhbGl6YXRpb25cclxuICAgICAqIHRvIHVwZGF0ZSB0aGUgZm9ybSBtb2RlbCBvbiBibHVyLlxyXG4gICAgICogQHBhcmFtIGZuIFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV3JpdGVzIGEgbmV3IHZhbHVlIHRvIHRoZSBlbGVtZW50LlxyXG4gICAgICogQHBhcmFtIHZhbHVlIFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdGhlIGxpc3Qgb2YgZWxlbWVudCBJRHMgdGhhdCBjdXJyZW50bHkgZGVzY3JpYmUgdGhpcyBjb250cm9sLlxyXG4gICAgICogQHBhcmFtIGlkcyBcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldERlc2NyaWJlZEJ5SWRzKGlkczogc3RyaW5nW10pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRlc2NyaWJlZEJ5ID0gaWRzLmpvaW4oXCIgXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciB0aGUgY29udHJvbCBpcyBmb2N1c2VkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZm9jdXNlZCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciB0aGUgY29udHJvbCBpcyB0b3VjaGVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdG91Y2hlZCA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciB0aGUgY29udHJvbCBpcyBmb2N1c2VkLlxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKFwiZm9jdXNvdXRcIikgb25CbHVyKCkge1xyXG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCkge1xyXG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMubmV4dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBmb2N1cyBvZiB0aGUgY29udHJvbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgZm9jdXMoKTogdm9pZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgYSBjbGljayBvbiB0aGUgY29udHJvbCdzIGNvbnRhaW5lci5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uQ29udGFpbmVyQ2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmZvY3VzZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSByZWdpc3RlcmVkIGNhbGxiYWNrIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIGFuIGlucHV0IFxyXG4gICAgICogZXZlbnQgb2NjdXJzIG9uIHRoZSBpbnB1dCBlbGVtZW50LlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgb25DaGFuZ2U/OiAodmFsdWU6IFQpID0+IHZvaWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcmVnaXN0ZXJlZCBjYWxsYmFjayBmdW5jdGlvbiBjYWxsZWQgd2hlbiBhIGJsdXIgXHJcbiAgICAgKiBldmVudCBvY2N1cnMgb24gdGhlIGlucHV0IGVsZW1lbnQuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBvblRvdWNoZWQ/OiAoKSA9PiB2b2lkO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSBjYWxsYmFjayBtZXRob2QgdGhhdCBwZXJmb3JtcyBjaGFuZ2UtZGV0ZWN0aW9uLCBpbnZva2VkXHJcbiAgICAgKiBhZnRlciB0aGUgZGVmYXVsdCBjaGFuZ2UtZGV0ZWN0b3IgcnVucy5cclxuICAgICAqIFNlZSBgS2V5VmFsdWVEaWZmZXJzYCBhbmQgYEl0ZXJhYmxlRGlmZmVyc2AgZm9yIGltcGxlbWVudGluZ1xyXG4gICAgICogY3VzdG9tIGNoYW5nZSBjaGVja2luZyBmb3IgY29sbGVjdGlvbnMuXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUVycm9yU3RhdGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIGxpZmVjeWNsZSBtZXRob2QgY2FsbGVkIGJlZm9yZSB0aGUgZGlyZWN0aXZlJ3MgaW5zdGFuY2VcclxuICAgICAqIGlzIGRlc3Ryb3llZC4gRm9yIGludGVybmFsIHVzZSBvbmx5LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZXMuY29tcGxldGUoKTtcclxuICAgICAgICB0aGlzLl9mb2N1c01vbml0b3Iuc3RvcE1vbml0b3JpbmcodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxufSJdfQ==