@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,468 +0,0 @@
1
- export class FormFieldDefinition {
2
- /**
3
- * CSS class applied to autocomplete functionality for styling purposes.
4
- */
5
- autocompleteCssClass = '';
6
- /**
7
- * Template function for rendering the autocomplete suggestions.
8
- * @param x The property value for autocomplete.
9
- * @param y The entity associated with the field.
10
- * @param f The FormGroup containing this field.
11
- * @param ctx The context of the generic form component.
12
- * @returns The rendered autocomplete template.
13
- */
14
- autocompleteTemplate;
15
- /**
16
- * Default text to display for autocomplete suggestions.
17
- */
18
- autocompleteText = 'name';
19
- /**
20
- * Callback function executed when the field value changes.
21
- * @param x The updated property value.
22
- * @param y The entity associated with the field.
23
- * @param f The FormGroup containing this field.
24
- * @param ctx The context of the generic form component.
25
- */
26
- change;
27
- /**
28
- * Keydown event handler, allowing for custom behavior when a key is pressed within the field.
29
- * Can be used for form validation, formatting, or other custom interactions.
30
- * @param e The keydown event triggered on the form field.
31
- * @param x The entity instance associated with this form field.
32
- * @param f The FormGroup containing the form field definitions.
33
- * @param ctx The generic form component context, providing additional data and methods.
34
- */
35
- keydown;
36
- /**
37
- * Template function for displaying chip elements related to this field.
38
- * @param x The property value for the chip.
39
- * @param y The entity associated with the field.
40
- * @param f The FormGroup containing this field.
41
- * @param ctx The context of the generic form component.
42
- * @returns The rendered chip template.
43
- */
44
- chipTemplate;
45
- /**
46
- * Default text displayed in chip elements.
47
- */
48
- chipText = 'name';
49
- /**
50
- * Color theme for the chip, determined from the predefined palette.
51
- */
52
- chipColor = 'accent';
53
- /**
54
- * The class type to instantiate for this field.
55
- */
56
- classType;
57
- /**
58
- * Callback function executed when the field is cleared.
59
- * @param x The entity associated with the field.
60
- * @param f The FormGroup containing this field.
61
- * @param ctx The context of the generic form component.
62
- */
63
- clear;
64
- /**
65
- * Function for comparing two property values.
66
- * @param o1 The first property value.
67
- * @param o2 The second property value.
68
- * @returns A boolean indicating if the values are equal.
69
- */
70
- compareWith;
71
- /**
72
- * CSS class applied for general styling of the field.
73
- */
74
- cssClass;
75
- /**
76
- * Indicates whether the field value can be customized by the user.
77
- */
78
- customValue = false;
79
- /**
80
- * Function to filter selectable dates.
81
- * @param date The date to evaluate.
82
- * @returns A boolean indicating if the date is selectable.
83
- */
84
- dateFilter = (date) => true;
85
- /**
86
- * Asynchronous function to filter dates based on additional conditions.
87
- * @param d The date to evaluate.
88
- * @param y The entity associated with the field.
89
- * @param f The FormGroup containing this field.
90
- * @param ctx The context of the generic form component.
91
- * @returns An observable that emits the date filter function.
92
- */
93
- dateFilterAsync;
94
- /**
95
- * Callback function invoked when the date picker is opened.
96
- * @param datePicker The MatDatepicker component instance.
97
- * @param y The entity associated with the field.
98
- * @param f The FormGroup containing this field.
99
- * @param ctx The context of the generic form component.
100
- */
101
- datePickerOpened;
102
- /**
103
- * Endpoint for retrieving data, which can be a URL or a function returning data.
104
- */
105
- endpoint;
106
- /**
107
- * Function to filter options based on enumerations.
108
- * @param y The entity associated with the field.
109
- * @param f The FormGroup containing this field.
110
- * @param ctx The context of the generic form component.
111
- */
112
- enumFilter;
113
- /**
114
- * The type of enumeration associated with this field.
115
- */
116
- enumType;
117
- /**
118
- * Metadata associated with enumeration types for additional context.
119
- */
120
- enumMetadata;
121
- /**
122
- * Function that determines whether data should be fetched based on specific conditions.
123
- * @param x The entity associated with the field.
124
- * @param f The FormGroup containing this field.
125
- * @param ctx The context of the generic form component.
126
- * @returns A boolean indicating whether data fetching is required.
127
- */
128
- fetchCondition = () => true;
129
- /**
130
- * Array of field sets that organize related fields.
131
- */
132
- fieldSets;
133
- /**
134
- * Allowed file extensions for file uploads.
135
- */
136
- fileExtensions;
137
- /**
138
- * The file path for storing uploaded files.
139
- */
140
- filePath;
141
- /**
142
- * Flex layout property defining the space the field occupies in a flex container.
143
- */
144
- flex;
145
- /**
146
- * Indicates if selection of an option is mandatory for this field.
147
- */
148
- forceSelect;
149
- /**
150
- * Indicates whether the field should be focused automatically when the form initializes.
151
- * This can be either a boolean or a function that returns a boolean based on the entity and form context.
152
- * @param x The entity associated with the field.
153
- * @param f The FormGroup containing this field, allowing for additional context.
154
- * @param ctx The context of the generic form component, providing access to the form's overall state.
155
- * @returns A boolean indicating if the field should be focused automatically (true), or not (false).
156
- */
157
- focus;
158
- /**
159
- * Indicates whether the field should automatically select its text when the form initializes.
160
- * This can be either a boolean or a function that returns a boolean based on the entity and form context.
161
- * @param x The entity associated with the field.
162
- * @param f The FormGroup containing this field, allowing for additional context.
163
- * @param ctx The context of the generic form component, providing access to the form's overall state.
164
- * @returns A boolean indicating if the field's text should be selected automatically (true), or not (false).
165
- */
166
- selectText;
167
- /**
168
- * Header text for grouping related fields.
169
- */
170
- groupHeader = $localize `:@@details:Details`;
171
- /**
172
- * The name assigned to the group of fields.
173
- */
174
- groupName;
175
- /**
176
- * Specifies whether the field is hidden from view.
177
- */
178
- hidden;
179
- /**
180
- * Callback function invoked to determine if the field should be hidden based on specific criteria.
181
- * @param x The entity associated with the field.
182
- * @param f The FormGroup containing this field.
183
- * @param ctx The context of the generic form component.
184
- */
185
- hide;
186
- /**
187
- * Hint text displayed to assist the user in filling out the field.
188
- */
189
- hint;
190
- /**
191
- * Index representing the position of this field within its parent structure.
192
- */
193
- index;
194
- /**
195
- * Specifies the type of input (e.g., text, number) for this field.
196
- */
197
- inputType;
198
- /**
199
- * Indicates whether the uploaded file is accessible to the public.
200
- */
201
- isPublicFile;
202
- /**
203
- * Callback function executed when an item in the field changes.
204
- * @param x The updated property value.
205
- * @param y The entity associated with the field.
206
- * @param f The FormGroup containing this field.
207
- * @param ctx The context of the generic form component.
208
- */
209
- itemChange;
210
- /**
211
- * Callback function executed when an item in the field is selected.
212
- * @param x The selected property value.
213
- * @param y The entity associated with the field.
214
- * @param f The FormGroup containing this field.
215
- * @param ctx The context of the generic form component.
216
- */
217
- itemSelect;
218
- /**
219
- * Label text for the field, can be a static string or a function that returns a label based on context.
220
- * @param x The entity associated with the field.
221
- * @param f The FormGroup containing this field.
222
- * @param ctx The context of the generic form component.
223
- * @returns The label text for the field.
224
- */
225
- label;
226
- /**
227
- * Function for mapping input values from one format to another.
228
- * @param x An array of values to map.
229
- * @returns The mapped values.
230
- */
231
- mapper;
232
- /**
233
- * Maximum permissible value for the field, can be a number or a date.
234
- */
235
- max;
236
- /**
237
- * Maximum height for the field's display, can be a string or a function that returns a string.
238
- * @param x The entity associated with the field.
239
- * @param f The FormGroup containing this field.
240
- * @param ctx The context of the generic form component.
241
- * @returns The maximum height for the field's display.
242
- */
243
- maxHeight;
244
- /**
245
- * Maximum length of the input.
246
- * Can be a number or a function that returns a number.
247
- * @param x The entity associated with the field.
248
- * @param f The FormGroup containing this field.
249
- * @param ctx The context of the generic form component.
250
- */
251
- maxLength;
252
- /**
253
- * Maximum width of the input.
254
- * Can be a string or a function that returns a string.
255
- * @param x The entity associated with the field.
256
- * @param f The FormGroup containing this field.
257
- * @param ctx The context of the generic form component.
258
- */
259
- maxWidth;
260
- /**
261
- * Minimum permissible value for the input.
262
- * Can be a number or a date.
263
- */
264
- min;
265
- /**
266
- * Minimum length of input characters allowed.
267
- * Can be a number or a function that returns a number.
268
- * @param x The entity associated with the field.
269
- * @param f The FormGroup containing this field.
270
- * @param ctx The context of the generic form component.
271
- */
272
- minLength;
273
- /**
274
- * Indicates whether the field supports multiline input.
275
- */
276
- multiline;
277
- /**
278
- * Indicates whether multiple selections are allowed.
279
- * Defaults to false.
280
- */
281
- multiple = false;
282
- /**
283
- * Flag indicating if only numeric input is permitted.
284
- */
285
- numbersOnly;
286
- /**
287
- * Flag to enable or disable decimal parsing on input.
288
- * If set to true, pasted values will be normalized to a valid decimal format.
289
- */
290
- parseDecimal;
291
- /**
292
- * Indicates whether the first option in a selection should be automatically selected.
293
- * Defaults to false.
294
- */
295
- selectFirst = false;
296
- /**
297
- * Name of the field for identification and display purposes.
298
- */
299
- name;
300
- /**
301
- * Options available for selection.
302
- * Can be an array or a function that returns an array of options.
303
- * @param x The entity associated with the field.
304
- * @param f The FormGroup containing this field.
305
- * @param ctx The context of the generic form component.
306
- */
307
- options;
308
- /**
309
- * Indicates whether a default option should be included in the selection.
310
- * Defaults to true.
311
- */
312
- defaultOption = true;
313
- /**
314
- * Template function for rendering options in the selection.
315
- * @param x The current property value.
316
- * @param y The entity associated with the field.
317
- * @param f The FormGroup containing this field.
318
- * @param ctx The context of the generic form component.
319
- */
320
- optionTemplate;
321
- /**
322
- * Property name in the option object for displaying text.
323
- * Used to specify which property shows as the option's text.
324
- */
325
- optionTextProperty = 'name';
326
- /**
327
- * Property name in the option object representing the unique value for each option.
328
- */
329
- optionValueProperty = 'id';
330
- /**
331
- * Property name in the option object for the Material icon.
332
- * Used for displaying icons alongside options.
333
- */
334
- optionMatIconProperty;
335
- /**
336
- * Function that returns the icon based on provided parameters.
337
- * @param x The current property value.
338
- * @param y The entity associated with the field.
339
- * @param f The FormGroup containing this field.
340
- * @param ctx The context of the generic form component.
341
- */
342
- optionIcon;
343
- /**
344
- * Property name in the option object for displaying an SVG icon.
345
- */
346
- optionSvgIconProperty;
347
- /**
348
- * Custom font set used for icons in the options.
349
- * Defaults to 'material-symbols-outlined'.
350
- */
351
- optionIconFontSet = 'material-symbols-outlined';
352
- /**
353
- * Parameters for data retrieval associated with this field.
354
- * Can be an object or a function returning an object.
355
- * @param x The entity associated with the field.
356
- * @param f The FormGroup containing this field.
357
- * @param ctx The context of the generic form component.
358
- */
359
- params;
360
- /**
361
- * Regular expression pattern for input validation.
362
- * Can be a string, RegExp, or a function returning a string or RegExp.
363
- * @param x The entity associated with the field.
364
- * @param f The FormGroup containing this field.
365
- * @param ctx The context of the generic form component.
366
- */
367
- pattern;
368
- /**
369
- * Projection specification for data retrieval.
370
- * Can be a string or an array of strings.
371
- */
372
- projection = '';
373
- /**
374
- * Callback function to determine if the field is readonly.
375
- * @param x The entity associated with the field.
376
- * @param f The FormGroup containing this field.
377
- * @param ctx The context of the generic form component.
378
- */
379
- readonly;
380
- /**
381
- * Callback function to determine if the field is required.
382
- * Can return a boolean value or a function returning a boolean.
383
- * @param x The entity associated with the field.
384
- * @param f The FormGroup containing this field.
385
- * @param ctx The context of the generic form component.
386
- */
387
- required;
388
- /**
389
- * The row number indicating the display position of the field.
390
- * Defaults to 1.
391
- */
392
- row = 1;
393
- /**
394
- * The number of rows for multi-line input fields (e.g., text area).
395
- */
396
- rows;
397
- /**
398
- * Default field used for searching.
399
- */
400
- searchField = 'search';
401
- /**
402
- * List of fields utilized for search functionality.
403
- */
404
- searchFields = [];
405
- /**
406
- * Array of filter objects, each defined by a glue operator and associated fields.
407
- */
408
- filters;
409
- /**
410
- * Callback function invoked when an option is selected.
411
- * @param x The entity associated with the field.
412
- * @param f The FormGroup containing this field.
413
- * @param ctx The context of the generic form component.
414
- */
415
- select;
416
- /**
417
- * Array of suffix buttons associated with the field.
418
- */
419
- suffixButtons = [];
420
- /**
421
- * CSS class applied to triggers associated with the field.
422
- */
423
- triggerCssClass;
424
- /**
425
- * Callback function for mapping trigger values.
426
- * @param x The current property value.
427
- * @param y The entity associated with the field.
428
- * @param f The FormGroup containing this field.
429
- * @param ctx The context of the generic form component.
430
- */
431
- triggerMapper;
432
- /**
433
- * Mode of the trigger (e.g., chip).
434
- */
435
- triggerMode;
436
- /**
437
- * Template function for rendering the trigger.
438
- * @param x The current property value(s).
439
- * @param y The entity associated with the field.
440
- * @param f The FormGroup containing this field.
441
- * @param ctx The context of the generic form component.
442
- */
443
- triggerTemplate;
444
- /**
445
- * Function to determine the type of the field.
446
- * Can be a function returning a FormFieldType or a direct FormFieldType value.
447
- * @param x The entity associated with the field.
448
- * @param f The FormGroup containing this field.
449
- * @param ctx The context of the generic form component.
450
- */
451
- type;
452
- /**
453
- * Indicates whether the field is wrapped.
454
- * Defaults to true.
455
- */
456
- wrapped = true;
457
- /**
458
- * Constructor for the FormFieldDefinition class.
459
- * @param init Optional initial values for properties in FormFieldDefinition.
460
- * @param init.x The entity associated with the field.
461
- * @param init.f The FormGroup containing this field.
462
- * @param init.ctx The context of the generic form component.
463
- */
464
- constructor(init) {
465
- Object.assign(this, init);
466
- }
467
- }
468
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1kZWZpbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybXMvbW9kZWxzL2Zvcm0tZmllbGQtZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxNQUFNLE9BQU8sbUJBQW1CO0lBQzVCOztPQUVHO0lBQ0ksb0JBQW9CLEdBQVcsRUFBRSxDQUFDO0lBRXpDOzs7Ozs7O09BT0c7SUFDSSxvQkFBb0IsQ0FBK0Y7SUFFMUg7O09BRUc7SUFDSSxnQkFBZ0IsR0FBVyxNQUFNLENBQUM7SUFFekM7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUErRjtJQUU1Rzs7Ozs7OztPQU9HO0lBQ0ksT0FBTyxDQUFvRztJQUVsSDs7Ozs7OztPQU9HO0lBQ0ksWUFBWSxDQUErRjtJQUVsSDs7T0FFRztJQUNJLFFBQVEsR0FBVyxNQUFNLENBQUM7SUFFakM7O09BRUc7SUFDSSxTQUFTLEdBQWtDLFFBQVEsQ0FBQztJQUUzRDs7T0FFRztJQUNJLFNBQVMsQ0FBYTtJQUU3Qjs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBZ0Y7SUFFNUY7Ozs7O09BS0c7SUFDSSxXQUFXLENBQTZDO0lBRS9EOztPQUVHO0lBQ0ksUUFBUSxDQUFVO0lBRXpCOztPQUVHO0lBQ0ksV0FBVyxHQUFZLEtBQUssQ0FBQztJQUVwQzs7OztPQUlHO0lBQ0ksVUFBVSxHQUFzQixDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBRTNEOzs7Ozs7O09BT0c7SUFDSSxlQUFlLENBQTBIO0lBRWhKOzs7Ozs7T0FNRztJQUNJLGdCQUFnQixDQUFpSDtJQUV4STs7T0FFRztJQUNJLFFBQVEsQ0FBMkY7SUFFMUc7Ozs7O09BS0c7SUFDSSxVQUFVLENBQWlGO0lBRWxHOztPQUVHO0lBQ0ksUUFBUSxDQUFPO0lBRXRCOztPQUVHO0lBQ0ksWUFBWSxDQUFrQztJQUVyRDs7Ozs7O09BTUc7SUFDSSxjQUFjLEdBQXFGLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztJQUVySDs7T0FFRztJQUNJLFNBQVMsQ0FBWTtJQUU1Qjs7T0FFRztJQUNJLGNBQWMsQ0FBVTtJQUUvQjs7T0FFRztJQUNJLFFBQVEsQ0FBVTtJQUV6Qjs7T0FFRztJQUNJLElBQUksQ0FBVTtJQUVyQjs7T0FFRztJQUNJLFdBQVcsQ0FBVztJQUU3Qjs7Ozs7OztPQU9HO0lBQ0ksS0FBSyxDQUFnRztJQUU1Rzs7Ozs7OztPQU9HO0lBQ0ksVUFBVSxDQUFnRztJQUVqSDs7T0FFRztJQUNJLFdBQVcsR0FBVyxTQUFTLENBQUEsb0JBQW9CLENBQUM7SUFFM0Q7O09BRUc7SUFDSSxTQUFTLENBQVU7SUFFMUI7O09BRUc7SUFDSSxNQUFNLENBQVc7SUFFeEI7Ozs7O09BS0c7SUFDSSxJQUFJLENBQWdGO0lBRTNGOztPQUVHO0lBQ0ksSUFBSSxDQUFVO0lBRXJCOztPQUVHO0lBQ0ksS0FBSyxDQUFVO0lBRXRCOztPQUVHO0lBQ0ksU0FBUyxDQUFVO0lBRTFCOztPQUVHO0lBQ0ksWUFBWSxDQUFXO0lBRTlCOzs7Ozs7T0FNRztJQUNJLFVBQVUsQ0FBK0Y7SUFFaEg7Ozs7OztPQU1HO0lBQ0ksVUFBVSxDQUErRjtJQUVoSDs7Ozs7O09BTUc7SUFDSSxLQUFLLENBQThGO0lBRTFHOzs7O09BSUc7SUFDSSxNQUFNLENBQXFCO0lBRWxDOztPQUVHO0lBQ0ksR0FBRyxDQUFpQjtJQUUzQjs7Ozs7O09BTUc7SUFDSSxTQUFTLENBQThGO0lBRTlHOzs7Ozs7T0FNRztJQUNJLFNBQVMsQ0FBOEY7SUFFOUc7Ozs7OztPQU1HO0lBQ0ksUUFBUSxDQUE4RjtJQUU3Rzs7O09BR0c7SUFDSSxHQUFHLENBQWlCO0lBRTNCOzs7Ozs7T0FNRztJQUNJLFNBQVMsQ0FBOEY7SUFFOUc7O09BRUc7SUFDSSxTQUFTLENBQVc7SUFFM0I7OztPQUdHO0lBQ0ksUUFBUSxHQUFZLEtBQUssQ0FBQztJQUVqQzs7T0FFRztJQUNJLFdBQVcsQ0FBVztJQUU3Qjs7O09BR0c7SUFDSSxZQUFZLENBQVc7SUFFOUI7OztPQUdHO0lBQ0ksV0FBVyxHQUFZLEtBQUssQ0FBQztJQUVwQzs7T0FFRztJQUNJLElBQUksQ0FBVTtJQUVyQjs7Ozs7O09BTUc7SUFDSSxPQUFPLENBQXdJO0lBRXRKOzs7T0FHRztJQUNJLGFBQWEsR0FBYSxJQUFJLENBQUM7SUFFdEM7Ozs7OztPQU1HO0lBQ0ksY0FBYyxDQUErRjtJQUVwSDs7O09BR0c7SUFDSSxrQkFBa0IsR0FBVyxNQUFNLENBQUM7SUFFM0M7O09BRUc7SUFDSSxtQkFBbUIsR0FBVyxJQUFJLENBQUM7SUFFMUM7OztPQUdHO0lBQ0kscUJBQXFCLENBQVU7SUFFdEM7Ozs7OztPQU1HO0lBQ0ksVUFBVSxDQUE4RztJQUUvSDs7T0FFRztJQUNJLHFCQUFxQixDQUFVO0lBRXRDOzs7T0FHRztJQUNJLGlCQUFpQixHQUFZLDJCQUEyQixDQUFDO0lBRWhFOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBdUY7SUFFcEc7Ozs7OztPQU1HO0lBQ0ksT0FBTyxDQUFnSDtJQUU5SDs7O09BR0c7SUFDSSxVQUFVLEdBQXNCLEVBQUUsQ0FBQztJQUUxQzs7Ozs7T0FLRztJQUNJLFFBQVEsQ0FBb0Y7SUFFbkc7Ozs7OztPQU1HO0lBQ0ksUUFBUSxDQUFpRztJQUVoSDs7O09BR0c7SUFDSSxHQUFHLEdBQVcsQ0FBQyxDQUFDO0lBRXZCOztPQUVHO0lBQ0ksSUFBSSxDQUFVO0lBRXJCOztPQUVHO0lBQ0ksV0FBVyxHQUFXLFFBQVEsQ0FBQztJQUV0Qzs7T0FFRztJQUNJLFlBQVksR0FBYSxFQUFFLENBQUM7SUFFbkM7O09BRUc7SUFDSSxPQUFPLENBQVk7SUFFMUI7Ozs7O09BS0c7SUFDSSxNQUFNLENBQWdGO0lBRTdGOztPQUVHO0lBQ0ksYUFBYSxHQUFrRSxFQUFFLENBQUM7SUFFekY7O09BRUc7SUFDSSxlQUFlLENBQVU7SUFFaEM7Ozs7OztPQU1HO0lBQ0ksYUFBYSxDQUErRjtJQUVuSDs7T0FFRztJQUNJLFdBQVcsQ0FBVTtJQUU1Qjs7Ozs7O09BTUc7SUFDSSxlQUFlLENBQTZHO0lBRW5JOzs7Ozs7T0FNRztJQUNJLElBQUksQ0FBNEc7SUFFdkg7OztPQUdHO0lBQ0ksT0FBTyxHQUFZLElBQUksQ0FBQztJQUUvQjs7Ozs7O09BTUc7SUFDSCxZQUFtQixJQUE0QztRQUMzRCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBRUoiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IERhdGVGaWx0ZXJGbiwgTWF0RGF0ZXBpY2tlciB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2Jhc2UvaW50ZXJmYWNlcy9pZ2VuZXJpYy1mb3JtLWJhc2VcIjtcclxuaW1wb3J0IHsgRW51bU1ldGFkYXRhIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9tb2RlbHMvZW51bS1tZXRhZGF0YVwiO1xyXG5pbXBvcnQgeyBGaWx0ZXIgfSBmcm9tIFwiLi4vLi4vY29tbW9uL21vZGVscy9maWx0ZXJcIjtcclxuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi8uLi9jb21tb24vbW9kZWxzL2ljb25cIjtcclxuaW1wb3J0IHsgU3VmZml4QnV0dG9uIH0gZnJvbSBcIi4uLy4uL2NvbW1vbi9tb2RlbHMvc3VmZml4LWJ1dHRvblwiO1xyXG5pbXBvcnQgeyBGb3JtRmllbGRUeXBlIH0gZnJvbSBcIi4uL2VudW1zL2Zvcm0tZmllbGQtdHlwZVwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZvcm1GaWVsZERlZmluaXRpb248VEVudGl0eSA9IGFueSwgVFByb3BlcnR5ID0gYW55PiB7XHJcbiAgICAvKipcclxuICAgICAqIENTUyBjbGFzcyBhcHBsaWVkIHRvIGF1dG9jb21wbGV0ZSBmdW5jdGlvbmFsaXR5IGZvciBzdHlsaW5nIHB1cnBvc2VzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlQ3NzQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGVtcGxhdGUgZnVuY3Rpb24gZm9yIHJlbmRlcmluZyB0aGUgYXV0b2NvbXBsZXRlIHN1Z2dlc3Rpb25zLlxyXG4gICAgICogQHBhcmFtIHggVGhlIHByb3BlcnR5IHZhbHVlIGZvciBhdXRvY29tcGxldGUuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKiBAcmV0dXJucyBUaGUgcmVuZGVyZWQgYXV0b2NvbXBsZXRlIHRlbXBsYXRlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlVGVtcGxhdGU/OiAoeDogVFByb3BlcnR5LCB5PzogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmYXVsdCB0ZXh0IHRvIGRpc3BsYXkgZm9yIGF1dG9jb21wbGV0ZSBzdWdnZXN0aW9ucy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGF1dG9jb21wbGV0ZVRleHQ6IHN0cmluZyA9ICduYW1lJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIGZ1bmN0aW9uIGV4ZWN1dGVkIHdoZW4gdGhlIGZpZWxkIHZhbHVlIGNoYW5nZXMuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgdXBkYXRlZCBwcm9wZXJ0eSB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSB5IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNoYW5nZT86ICh4OiBUUHJvcGVydHksIHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBLZXlkb3duIGV2ZW50IGhhbmRsZXIsIGFsbG93aW5nIGZvciBjdXN0b20gYmVoYXZpb3Igd2hlbiBhIGtleSBpcyBwcmVzc2VkIHdpdGhpbiB0aGUgZmllbGQuXHJcbiAgICAgKiBDYW4gYmUgdXNlZCBmb3IgZm9ybSB2YWxpZGF0aW9uLCBmb3JtYXR0aW5nLCBvciBvdGhlciBjdXN0b20gaW50ZXJhY3Rpb25zLlxyXG4gICAgICogQHBhcmFtIGUgVGhlIGtleWRvd24gZXZlbnQgdHJpZ2dlcmVkIG9uIHRoZSBmb3JtIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBpbnN0YW5jZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBmb3JtIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoZSBmb3JtIGZpZWxkIGRlZmluaXRpb25zLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudCBjb250ZXh0LCBwcm92aWRpbmcgYWRkaXRpb25hbCBkYXRhIGFuZCBtZXRob2RzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMga2V5ZG93bj86IChlOiBLZXlib2FyZEV2ZW50LCB4PzogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gdm9pZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbXBsYXRlIGZ1bmN0aW9uIGZvciBkaXNwbGF5aW5nIGNoaXAgZWxlbWVudHMgcmVsYXRlZCB0byB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIHggVGhlIHByb3BlcnR5IHZhbHVlIGZvciB0aGUgY2hpcC5cclxuICAgICAqIEBwYXJhbSB5IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqIEByZXR1cm5zIFRoZSByZW5kZXJlZCBjaGlwIHRlbXBsYXRlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2hpcFRlbXBsYXRlPzogKHg6IFRQcm9wZXJ0eSwgeT86IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmF1bHQgdGV4dCBkaXNwbGF5ZWQgaW4gY2hpcCBlbGVtZW50cy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNoaXBUZXh0OiBzdHJpbmcgPSAnbmFtZSc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb2xvciB0aGVtZSBmb3IgdGhlIGNoaXAsIGRldGVybWluZWQgZnJvbSB0aGUgcHJlZGVmaW5lZCBwYWxldHRlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2hpcENvbG9yOiAncHJpbWFyeScgfCAnYWNjZW50JyB8ICd3YXJuJyA9ICdhY2NlbnQnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGNsYXNzIHR5cGUgdG8gaW5zdGFudGlhdGUgZm9yIHRoaXMgZmllbGQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjbGFzc1R5cGU/OiBUeXBlPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsYmFjayBmdW5jdGlvbiBleGVjdXRlZCB3aGVuIHRoZSBmaWVsZCBpcyBjbGVhcmVkLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY2xlYXI/OiAoeDogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuY3Rpb24gZm9yIGNvbXBhcmluZyB0d28gcHJvcGVydHkgdmFsdWVzLlxyXG4gICAgICogQHBhcmFtIG8xIFRoZSBmaXJzdCBwcm9wZXJ0eSB2YWx1ZS5cclxuICAgICAqIEBwYXJhbSBvMiBUaGUgc2Vjb25kIHByb3BlcnR5IHZhbHVlLlxyXG4gICAgICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIHZhbHVlcyBhcmUgZXF1YWwuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb21wYXJlV2l0aD86IChvMTogVFByb3BlcnR5LCBvMjogVFByb3BlcnR5KSA9PiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ1NTIGNsYXNzIGFwcGxpZWQgZm9yIGdlbmVyYWwgc3R5bGluZyBvZiB0aGUgZmllbGQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjc3NDbGFzcz86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmaWVsZCB2YWx1ZSBjYW4gYmUgY3VzdG9taXplZCBieSB0aGUgdXNlci5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGN1c3RvbVZhbHVlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiB0byBmaWx0ZXIgc2VsZWN0YWJsZSBkYXRlcy5cclxuICAgICAqIEBwYXJhbSBkYXRlIFRoZSBkYXRlIHRvIGV2YWx1YXRlLlxyXG4gICAgICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIGRhdGUgaXMgc2VsZWN0YWJsZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRhdGVGaWx0ZXI6IERhdGVGaWx0ZXJGbjxhbnk+ID0gKGRhdGU6IGFueSkgPT4gdHJ1ZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFzeW5jaHJvbm91cyBmdW5jdGlvbiB0byBmaWx0ZXIgZGF0ZXMgYmFzZWQgb24gYWRkaXRpb25hbCBjb25kaXRpb25zLlxyXG4gICAgICogQHBhcmFtIGQgVGhlIGRhdGUgdG8gZXZhbHVhdGUuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGRhdGUgZmlsdGVyIGZ1bmN0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGF0ZUZpbHRlckFzeW5jPzogKGQ6IERhdGUgfCBhbnksIHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBPYnNlcnZhYmxlPERhdGVGaWx0ZXJGbjxhbnk+PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIGZ1bmN0aW9uIGludm9rZWQgd2hlbiB0aGUgZGF0ZSBwaWNrZXIgaXMgb3BlbmVkLlxyXG4gICAgICogQHBhcmFtIGRhdGVQaWNrZXIgVGhlIE1hdERhdGVwaWNrZXIgY29tcG9uZW50IGluc3RhbmNlLlxyXG4gICAgICogQHBhcmFtIHkgVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGF0ZVBpY2tlck9wZW5lZD86IChkYXRlUGlja2VyOiBNYXREYXRlcGlja2VyPGFueT4sIHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbmRwb2ludCBmb3IgcmV0cmlldmluZyBkYXRhLCB3aGljaCBjYW4gYmUgYSBVUkwgb3IgYSBmdW5jdGlvbiByZXR1cm5pbmcgZGF0YS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGVuZHBvaW50PzogKCh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnkpIHwgc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuY3Rpb24gdG8gZmlsdGVyIG9wdGlvbnMgYmFzZWQgb24gZW51bWVyYXRpb25zLlxyXG4gICAgICogQHBhcmFtIHkgVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZW51bUZpbHRlcj86ICh5PzogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHR5cGUgb2YgZW51bWVyYXRpb24gYXNzb2NpYXRlZCB3aXRoIHRoaXMgZmllbGQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBlbnVtVHlwZT86IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCBlbnVtZXJhdGlvbiB0eXBlcyBmb3IgYWRkaXRpb25hbCBjb250ZXh0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZW51bU1ldGFkYXRhPzogeyBba2V5IGluIGFueV06IEVudW1NZXRhZGF0YSB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuY3Rpb24gdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgZGF0YSBzaG91bGQgYmUgZmV0Y2hlZCBiYXNlZCBvbiBzcGVjaWZpYyBjb25kaXRpb25zLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBkYXRhIGZldGNoaW5nIGlzIHJlcXVpcmVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZmV0Y2hDb25kaXRpb246ICh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFycmF5IG9mIGZpZWxkIHNldHMgdGhhdCBvcmdhbml6ZSByZWxhdGVkIGZpZWxkcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGZpZWxkU2V0cz86IHN0cmluZ1tdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWxsb3dlZCBmaWxlIGV4dGVuc2lvbnMgZm9yIGZpbGUgdXBsb2Fkcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGZpbGVFeHRlbnNpb25zPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGZpbGUgcGF0aCBmb3Igc3RvcmluZyB1cGxvYWRlZCBmaWxlcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGZpbGVQYXRoPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmxleCBsYXlvdXQgcHJvcGVydHkgZGVmaW5pbmcgdGhlIHNwYWNlIHRoZSBmaWVsZCBvY2N1cGllcyBpbiBhIGZsZXggY29udGFpbmVyLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZmxleD86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyBpZiBzZWxlY3Rpb24gb2YgYW4gb3B0aW9uIGlzIG1hbmRhdG9yeSBmb3IgdGhpcyBmaWVsZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGZvcmNlU2VsZWN0PzogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmaWVsZCBzaG91bGQgYmUgZm9jdXNlZCBhdXRvbWF0aWNhbGx5IHdoZW4gdGhlIGZvcm0gaW5pdGlhbGl6ZXMuXHJcbiAgICAgKiBUaGlzIGNhbiBiZSBlaXRoZXIgYSBib29sZWFuIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgYm9vbGVhbiBiYXNlZCBvbiB0aGUgZW50aXR5IGFuZCBmb3JtIGNvbnRleHQuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZCwgYWxsb3dpbmcgZm9yIGFkZGl0aW9uYWwgY29udGV4dC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQsIHByb3ZpZGluZyBhY2Nlc3MgdG8gdGhlIGZvcm0ncyBvdmVyYWxsIHN0YXRlLlxyXG4gICAgICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIGZpZWxkIHNob3VsZCBiZSBmb2N1c2VkIGF1dG9tYXRpY2FsbHkgKHRydWUpLCBvciBub3QgKGZhbHNlKS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGZvY3VzPzogKCh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBib29sZWFuKSB8IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZmllbGQgc2hvdWxkIGF1dG9tYXRpY2FsbHkgc2VsZWN0IGl0cyB0ZXh0IHdoZW4gdGhlIGZvcm0gaW5pdGlhbGl6ZXMuXHJcbiAgICAgKiBUaGlzIGNhbiBiZSBlaXRoZXIgYSBib29sZWFuIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgYm9vbGVhbiBiYXNlZCBvbiB0aGUgZW50aXR5IGFuZCBmb3JtIGNvbnRleHQuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZCwgYWxsb3dpbmcgZm9yIGFkZGl0aW9uYWwgY29udGV4dC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQsIHByb3ZpZGluZyBhY2Nlc3MgdG8gdGhlIGZvcm0ncyBvdmVyYWxsIHN0YXRlLlxyXG4gICAgICogQHJldHVybnMgQSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIGZpZWxkJ3MgdGV4dCBzaG91bGQgYmUgc2VsZWN0ZWQgYXV0b21hdGljYWxseSAodHJ1ZSksIG9yIG5vdCAoZmFsc2UpLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VsZWN0VGV4dD86ICgoeDogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gYm9vbGVhbikgfCBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGVhZGVyIHRleHQgZm9yIGdyb3VwaW5nIHJlbGF0ZWQgZmllbGRzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ3JvdXBIZWFkZXI6IHN0cmluZyA9ICRsb2NhbGl6ZWA6QEBkZXRhaWxzOkRldGFpbHNgO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG5hbWUgYXNzaWduZWQgdG8gdGhlIGdyb3VwIG9mIGZpZWxkcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdyb3VwTmFtZT86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBmaWVsZCBpcyBoaWRkZW4gZnJvbSB2aWV3LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGlkZGVuPzogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIGZ1bmN0aW9uIGludm9rZWQgdG8gZGV0ZXJtaW5lIGlmIHRoZSBmaWVsZCBzaG91bGQgYmUgaGlkZGVuIGJhc2VkIG9uIHNwZWNpZmljIGNyaXRlcmlhLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGlkZT86ICh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIaW50IHRleHQgZGlzcGxheWVkIHRvIGFzc2lzdCB0aGUgdXNlciBpbiBmaWxsaW5nIG91dCB0aGUgZmllbGQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoaW50Pzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kZXggcmVwcmVzZW50aW5nIHRoZSBwb3NpdGlvbiBvZiB0aGlzIGZpZWxkIHdpdGhpbiBpdHMgcGFyZW50IHN0cnVjdHVyZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGluZGV4PzogbnVtYmVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3BlY2lmaWVzIHRoZSB0eXBlIG9mIGlucHV0IChlLmcuLCB0ZXh0LCBudW1iZXIpIGZvciB0aGlzIGZpZWxkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaW5wdXRUeXBlPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHVwbG9hZGVkIGZpbGUgaXMgYWNjZXNzaWJsZSB0byB0aGUgcHVibGljLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXNQdWJsaWNGaWxlPzogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIGZ1bmN0aW9uIGV4ZWN1dGVkIHdoZW4gYW4gaXRlbSBpbiB0aGUgZmllbGQgY2hhbmdlcy5cclxuICAgICAqIEBwYXJhbSB4IFRoZSB1cGRhdGVkIHByb3BlcnR5IHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHkgVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXRlbUNoYW5nZT86ICh4OiBUUHJvcGVydHksIHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsYmFjayBmdW5jdGlvbiBleGVjdXRlZCB3aGVuIGFuIGl0ZW0gaW4gdGhlIGZpZWxkIGlzIHNlbGVjdGVkLlxyXG4gICAgICogQHBhcmFtIHggVGhlIHNlbGVjdGVkIHByb3BlcnR5IHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHkgVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaXRlbVNlbGVjdD86ICh4OiBUUHJvcGVydHksIHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMYWJlbCB0ZXh0IGZvciB0aGUgZmllbGQsIGNhbiBiZSBhIHN0YXRpYyBzdHJpbmcgb3IgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYSBsYWJlbCBiYXNlZCBvbiBjb250ZXh0LlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICogQHJldHVybnMgVGhlIGxhYmVsIHRleHQgZm9yIHRoZSBmaWVsZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGxhYmVsPzogKCh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBzdHJpbmcpIHwgc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRnVuY3Rpb24gZm9yIG1hcHBpbmcgaW5wdXQgdmFsdWVzIGZyb20gb25lIGZvcm1hdCB0byBhbm90aGVyLlxyXG4gICAgICogQHBhcmFtIHggQW4gYXJyYXkgb2YgdmFsdWVzIHRvIG1hcC5cclxuICAgICAqIEByZXR1cm5zIFRoZSBtYXBwZWQgdmFsdWVzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWFwcGVyPzogKHg6IGFueVtdKSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXhpbXVtIHBlcm1pc3NpYmxlIHZhbHVlIGZvciB0aGUgZmllbGQsIGNhbiBiZSBhIG51bWJlciBvciBhIGRhdGUuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtYXg/OiBudW1iZXIgfCBEYXRlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWF4aW11bSBoZWlnaHQgZm9yIHRoZSBmaWVsZCdzIGRpc3BsYXksIGNhbiBiZSBhIHN0cmluZyBvciBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIHN0cmluZy5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqIEByZXR1cm5zIFRoZSBtYXhpbXVtIGhlaWdodCBmb3IgdGhlIGZpZWxkJ3MgZGlzcGxheS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG1heEhlaWdodD86ICgoeDogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gc3RyaW5nKSB8IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1heGltdW0gbGVuZ3RoIG9mIHRoZSBpbnB1dC5cclxuICAgICAqIENhbiBiZSBhIG51bWJlciBvciBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIG51bWJlci5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG1heExlbmd0aD86ICgoeDogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gbnVtYmVyKSB8IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1heGltdW0gd2lkdGggb2YgdGhlIGlucHV0LlxyXG4gICAgICogQ2FuIGJlIGEgc3RyaW5nIG9yIGEgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEgc3RyaW5nLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWF4V2lkdGg/OiAoKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IHN0cmluZykgfCBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNaW5pbXVtIHBlcm1pc3NpYmxlIHZhbHVlIGZvciB0aGUgaW5wdXQuXHJcbiAgICAgKiBDYW4gYmUgYSBudW1iZXIgb3IgYSBkYXRlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWluPzogbnVtYmVyIHwgRGF0ZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1pbmltdW0gbGVuZ3RoIG9mIGlucHV0IGNoYXJhY3RlcnMgYWxsb3dlZC5cclxuICAgICAqIENhbiBiZSBhIG51bWJlciBvciBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIG51bWJlci5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG1pbkxlbmd0aD86ICgoeDogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gbnVtYmVyKSB8IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBmaWVsZCBzdXBwb3J0cyBtdWx0aWxpbmUgaW5wdXQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtdWx0aWxpbmU/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgbXVsdGlwbGUgc2VsZWN0aW9ucyBhcmUgYWxsb3dlZC5cclxuICAgICAqIERlZmF1bHRzIHRvIGZhbHNlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbXVsdGlwbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZsYWcgaW5kaWNhdGluZyBpZiBvbmx5IG51bWVyaWMgaW5wdXQgaXMgcGVybWl0dGVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbnVtYmVyc09ubHk/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmxhZyB0byBlbmFibGUgb3IgZGlzYWJsZSBkZWNpbWFsIHBhcnNpbmcgb24gaW5wdXQuXHJcbiAgICAgKiBJZiBzZXQgdG8gdHJ1ZSwgcGFzdGVkIHZhbHVlcyB3aWxsIGJlIG5vcm1hbGl6ZWQgdG8gYSB2YWxpZCBkZWNpbWFsIGZvcm1hdC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHBhcnNlRGVjaW1hbD86IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZmlyc3Qgb3B0aW9uIGluIGEgc2VsZWN0aW9uIHNob3VsZCBiZSBhdXRvbWF0aWNhbGx5IHNlbGVjdGVkLlxyXG4gICAgICogRGVmYXVsdHMgdG8gZmFsc2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZWxlY3RGaXJzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTmFtZSBvZiB0aGUgZmllbGQgZm9yIGlkZW50aWZpY2F0aW9uIGFuZCBkaXNwbGF5IHB1cnBvc2VzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmFtZT86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wdGlvbnMgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24uXHJcbiAgICAgKiBDYW4gYmUgYW4gYXJyYXkgb3IgYSBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gYXJyYXkgb2Ygb3B0aW9ucy5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9wdGlvbnM/OiAoKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IHsgaWQ6IGFueSwgbmFtZTogc3RyaW5nIH1bXSkgfCB7IGlkOiBhbnksIG5hbWU6IHN0cmluZyB9W107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBhIGRlZmF1bHQgb3B0aW9uIHNob3VsZCBiZSBpbmNsdWRlZCBpbiB0aGUgc2VsZWN0aW9uLlxyXG4gICAgICogRGVmYXVsdHMgdG8gdHJ1ZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRlZmF1bHRPcHRpb24/OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbXBsYXRlIGZ1bmN0aW9uIGZvciByZW5kZXJpbmcgb3B0aW9ucyBpbiB0aGUgc2VsZWN0aW9uLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGN1cnJlbnQgcHJvcGVydHkgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcHRpb25UZW1wbGF0ZT86ICh4OiBUUHJvcGVydHksIHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9wZXJ0eSBuYW1lIGluIHRoZSBvcHRpb24gb2JqZWN0IGZvciBkaXNwbGF5aW5nIHRleHQuXHJcbiAgICAgKiBVc2VkIHRvIHNwZWNpZnkgd2hpY2ggcHJvcGVydHkgc2hvd3MgYXMgdGhlIG9wdGlvbidzIHRleHQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcHRpb25UZXh0UHJvcGVydHk6IHN0cmluZyA9ICduYW1lJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IG5hbWUgaW4gdGhlIG9wdGlvbiBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSB1bmlxdWUgdmFsdWUgZm9yIGVhY2ggb3B0aW9uLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb3B0aW9uVmFsdWVQcm9wZXJ0eTogc3RyaW5nID0gJ2lkJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IG5hbWUgaW4gdGhlIG9wdGlvbiBvYmplY3QgZm9yIHRoZSBNYXRlcmlhbCBpY29uLlxyXG4gICAgICogVXNlZCBmb3IgZGlzcGxheWluZyBpY29ucyBhbG9uZ3NpZGUgb3B0aW9ucy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG9wdGlvbk1hdEljb25Qcm9wZXJ0eT86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgaWNvbiBiYXNlZCBvbiBwcm92aWRlZCBwYXJhbWV0ZXJzLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGN1cnJlbnQgcHJvcGVydHkgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcHRpb25JY29uPzogKHg6IFRQcm9wZXJ0eSwgeT86IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IEljb248VEVudGl0eSwgYW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFByb3BlcnR5IG5hbWUgaW4gdGhlIG9wdGlvbiBvYmplY3QgZm9yIGRpc3BsYXlpbmcgYW4gU1ZHIGljb24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcHRpb25TdmdJY29uUHJvcGVydHk/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXN0b20gZm9udCBzZXQgdXNlZCBmb3IgaWNvbnMgaW4gdGhlIG9wdGlvbnMuXHJcbiAgICAgKiBEZWZhdWx0cyB0byAnbWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCcuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcHRpb25JY29uRm9udFNldD86IHN0cmluZyA9ICdtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBhcmFtZXRlcnMgZm9yIGRhdGEgcmV0cmlldmFsIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGZpZWxkLlxyXG4gICAgICogQ2FuIGJlIGFuIG9iamVjdCBvciBhIGZ1bmN0aW9uIHJldHVybmluZyBhbiBvYmplY3QuXHJcbiAgICAgKiBAcGFyYW0geCBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwYXJhbXM/OiAoKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGFueSkgfCB7fTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIGZvciBpbnB1dCB2YWxpZGF0aW9uLlxyXG4gICAgICogQ2FuIGJlIGEgc3RyaW5nLCBSZWdFeHAsIG9yIGEgZnVuY3Rpb24gcmV0dXJuaW5nIGEgc3RyaW5nIG9yIFJlZ0V4cC5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHBhdHRlcm4/OiAoKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IFJlZ0V4cCB8IHN0cmluZykgfCBSZWdFeHAgfCBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9qZWN0aW9uIHNwZWNpZmljYXRpb24gZm9yIGRhdGEgcmV0cmlldmFsLlxyXG4gICAgICogQ2FuIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwcm9qZWN0aW9uOiBzdHJpbmcgfCBzdHJpbmdbXSA9ICcnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGlmIHRoZSBmaWVsZCBpcyByZWFkb25seS5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5PzogKHg6IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsYmFjayBmdW5jdGlvbiB0byBkZXRlcm1pbmUgaWYgdGhlIGZpZWxkIGlzIHJlcXVpcmVkLlxyXG4gICAgICogQ2FuIHJldHVybiBhIGJvb2xlYW4gdmFsdWUgb3IgYSBmdW5jdGlvbiByZXR1cm5pbmcgYSBib29sZWFuLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVxdWlyZWQ/OiAoKHg/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBib29sZWFuIHwgYm9vbGVhbik7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgcm93IG51bWJlciBpbmRpY2F0aW5nIHRoZSBkaXNwbGF5IHBvc2l0aW9uIG9mIHRoZSBmaWVsZC5cclxuICAgICAqIERlZmF1bHRzIHRvIDEuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByb3c6IG51bWJlciA9IDE7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbnVtYmVyIG9mIHJvd3MgZm9yIG11bHRpLWxpbmUgaW5wdXQgZmllbGRzIChlLmcuLCB0ZXh0IGFyZWEpLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcm93cz86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERlZmF1bHQgZmllbGQgdXNlZCBmb3Igc2VhcmNoaW5nLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VhcmNoRmllbGQ6IHN0cmluZyA9ICdzZWFyY2gnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTGlzdCBvZiBmaWVsZHMgdXRpbGl6ZWQgZm9yIHNlYXJjaCBmdW5jdGlvbmFsaXR5LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VhcmNoRmllbGRzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXJyYXkgb2YgZmlsdGVyIG9iamVjdHMsIGVhY2ggZGVmaW5lZCBieSBhIGdsdWUgb3BlcmF0b3IgYW5kIGFzc29jaWF0ZWQgZmllbGRzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZmlsdGVycz86IEZpbHRlcltdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gaW52b2tlZCB3aGVuIGFuIG9wdGlvbiBpcyBzZWxlY3RlZC5cclxuICAgICAqIEBwYXJhbSB4IFRoZSBlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBmIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGN0eCBUaGUgY29udGV4dCBvZiB0aGUgZ2VuZXJpYyBmb3JtIGNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlbGVjdD86ICh4OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcnJheSBvZiBzdWZmaXggYnV0dG9ucyBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3VmZml4QnV0dG9uczogU3VmZml4QnV0dG9uPFRQcm9wZXJ0eSwgSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5Pj5bXSA9IFtdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ1NTIGNsYXNzIGFwcGxpZWQgdG8gdHJpZ2dlcnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHRyaWdnZXJDc3NDbGFzcz86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBtYXBwaW5nIHRyaWdnZXIgdmFsdWVzLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGN1cnJlbnQgcHJvcGVydHkgdmFsdWUuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmlnZ2VyTWFwcGVyPzogKHg6IFRQcm9wZXJ0eSwgeT86IFRFbnRpdHksIGY/OiBGb3JtR3JvdXAsIGN0eD86IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQ8VEVudGl0eT4pID0+IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1vZGUgb2YgdGhlIHRyaWdnZXIgKGUuZy4sIGNoaXApLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdHJpZ2dlck1vZGU/OiAnY2hpcCc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZW1wbGF0ZSBmdW5jdGlvbiBmb3IgcmVuZGVyaW5nIHRoZSB0cmlnZ2VyLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGN1cnJlbnQgcHJvcGVydHkgdmFsdWUocykuXHJcbiAgICAgKiBAcGFyYW0geSBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gZiBUaGUgRm9ybUdyb3VwIGNvbnRhaW5pbmcgdGhpcyBmaWVsZC5cclxuICAgICAqIEBwYXJhbSBjdHggVGhlIGNvbnRleHQgb2YgdGhlIGdlbmVyaWMgZm9ybSBjb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmlnZ2VyVGVtcGxhdGU/OiAoeDogVFByb3BlcnR5W10gfCBUUHJvcGVydHksIHk/OiBURW50aXR5LCBmPzogRm9ybUdyb3VwLCBjdHg/OiBJR2VuZXJpY0Zvcm1CYXNlQ29tcG9uZW50PFRFbnRpdHk+KSA9PiBhbnk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGdW5jdGlvbiB0byBkZXRlcm1pbmUgdGhlIHR5cGUgb2YgdGhlIGZpZWxkLlxyXG4gICAgICogQ2FuIGJlIGEgZnVuY3Rpb24gcmV0dXJuaW5nIGEgRm9ybUZpZWxkVHlwZSBvciBhIGRpcmVjdCBGb3JtRmllbGRUeXBlIHZhbHVlLlxyXG4gICAgICogQHBhcmFtIHggVGhlIGVudGl0eSBhc3NvY2lhdGVkIHdpdGggdGhlIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGYgVGhlIEZvcm1Hcm91cCBjb250YWluaW5nIHRoaXMgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdHlwZT86ICgoeDogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gRm9ybUZpZWxkVHlwZSkgfCBGb3JtRmllbGRUeXBlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGZpZWxkIGlzIHdyYXBwZWQuXHJcbiAgICAgKiBEZWZhdWx0cyB0byB0cnVlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgd3JhcHBlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvciBmb3IgdGhlIEZvcm1GaWVsZERlZmluaXRpb24gY2xhc3MuXHJcbiAgICAgKiBAcGFyYW0gaW5pdCBPcHRpb25hbCBpbml0aWFsIHZhbHVlcyBmb3IgcHJvcGVydGllcyBpbiBGb3JtRmllbGREZWZpbml0aW9uLlxyXG4gICAgICogQHBhcmFtIGluaXQueCBUaGUgZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQuXHJcbiAgICAgKiBAcGFyYW0gaW5pdC5mIFRoZSBGb3JtR3JvdXAgY29udGFpbmluZyB0aGlzIGZpZWxkLlxyXG4gICAgICogQHBhcmFtIGluaXQuY3R4IFRoZSBjb250ZXh0IG9mIHRoZSBnZW5lcmljIGZvcm0gY29tcG9uZW50LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoaW5pdD86IFBhcnRpYWw8Rm9ybUZpZWxkRGVmaW5pdGlvbjxURW50aXR5Pj4pIHtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGluaXQpO1xyXG4gICAgfVxyXG5cclxufSJdfQ==
@@ -1,55 +0,0 @@
1
- /**
2
- * Represents a group of form fields definition.
3
- * @template TProperty - The type of data for the form fields.
4
- */
5
- export class FormFieldGroupDefinition {
6
- /**
7
- * Name of the form field group.
8
- */
9
- name = 'details';
10
- /**
11
- * Index of the form field group.
12
- */
13
- index;
14
- /**
15
- * Header for the form field group.
16
- */
17
- header;
18
- /**
19
- * Array of form field definitions within the group.
20
- */
21
- fields = [];
22
- /**
23
- * Nested groups of form field definitions.
24
- */
25
- groups = [];
26
- /**
27
- * Array of field sets for organizing form fields.
28
- */
29
- fieldSets;
30
- /**
31
- * Type associated with the form field group.
32
- */
33
- type;
34
- /**
35
- * Instance of an object associated with the form field group.
36
- */
37
- instance;
38
- /**
39
- * Indicates whether the form field group is hidden.
40
- */
41
- hidden;
42
- /**
43
- * Callback function to hide the field group.
44
- * @property
45
- */
46
- hide;
47
- /**
48
- * Constructor for the FormFieldGroupDefinition class.
49
- * @param init - Optional partial data to initialize the form field group.
50
- */
51
- constructor(init) {
52
- Object.assign(this, init);
53
- }
54
- }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1ncm91cC1kZWZpbml0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybXMvbW9kZWxzL2Zvcm0tZmllbGQtZ3JvdXAtZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sd0JBQXdCO0lBQ2pDOztPQUVHO0lBQ0ksSUFBSSxHQUFXLFNBQVMsQ0FBQztJQUVoQzs7T0FFRztJQUNJLEtBQUssQ0FBVTtJQUV0Qjs7T0FFRztJQUNJLE1BQU0sQ0FBVTtJQUV2Qjs7T0FFRztJQUNJLE1BQU0sR0FBcUMsRUFBRSxDQUFDO0lBRXJEOztPQUVHO0lBQ0ksTUFBTSxHQUF1QyxFQUFFLENBQUM7SUFFdkQ7O09BRUc7SUFDSSxTQUFTLENBQVk7SUFFNUI7O09BRUc7SUFDSSxJQUFJLENBQWE7SUFFeEI7O09BRUc7SUFDSSxRQUFRLENBQVc7SUFFMUI7O09BRUc7SUFDSSxNQUFNLENBQVc7SUFFeEI7OztPQUdHO0lBQ0ksSUFBSSxDQUFnRjtJQUUzRjs7O09BR0c7SUFDSCxZQUFtQixJQUFpRDtRQUNoRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IElHZW5lcmljRm9ybUJhc2VDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vYmFzZS9pbnRlcmZhY2VzL2lnZW5lcmljLWZvcm0tYmFzZVwiO1xyXG5pbXBvcnQgeyBGb3JtRmllbGREZWZpbml0aW9uIH0gZnJvbSBcIi4vZm9ybS1maWVsZC1kZWZpbml0aW9uXCI7XHJcblxyXG4vKipcclxuICogUmVwcmVzZW50cyBhIGdyb3VwIG9mIGZvcm0gZmllbGRzIGRlZmluaXRpb24uXHJcbiAqIEB0ZW1wbGF0ZSBUUHJvcGVydHkgLSBUaGUgdHlwZSBvZiBkYXRhIGZvciB0aGUgZm9ybSBmaWVsZHMuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uPFRQcm9wZXJ0eSA9IGFueSwgVEVudGl0eSA9IGFueT4ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBOYW1lIG9mIHRoZSBmb3JtIGZpZWxkIGdyb3VwLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nID0gJ2RldGFpbHMnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kZXggb2YgdGhlIGZvcm0gZmllbGQgZ3JvdXAuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpbmRleD86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhlYWRlciBmb3IgdGhlIGZvcm0gZmllbGQgZ3JvdXAuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoZWFkZXI/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcnJheSBvZiBmb3JtIGZpZWxkIGRlZmluaXRpb25zIHdpdGhpbiB0aGUgZ3JvdXAuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBmaWVsZHM6IEZvcm1GaWVsZERlZmluaXRpb248VFByb3BlcnR5PltdID0gW107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOZXN0ZWQgZ3JvdXBzIG9mIGZvcm0gZmllbGQgZGVmaW5pdGlvbnMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBncm91cHM6IEZvcm1GaWVsZERlZmluaXRpb248VFByb3BlcnR5PltdW10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFycmF5IG9mIGZpZWxkIHNldHMgZm9yIG9yZ2FuaXppbmcgZm9ybSBmaWVsZHMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBmaWVsZFNldHM/OiBzdHJpbmdbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFR5cGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBmb3JtIGZpZWxkIGdyb3VwLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdHlwZT86IFR5cGU8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluc3RhbmNlIG9mIGFuIG9iamVjdCBhc3NvY2lhdGVkIHdpdGggdGhlIGZvcm0gZmllbGQgZ3JvdXAuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpbnN0YW5jZT86IFRFbnRpdHk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgZm9ybSBmaWVsZCBncm91cCBpcyBoaWRkZW4uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoaWRkZW4/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gaGlkZSB0aGUgZmllbGQgZ3JvdXAuXHJcbiAgICAgKiBAcHJvcGVydHlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGhpZGU/OiAoeDogVEVudGl0eSwgZj86IEZvcm1Hcm91cCwgY3R4PzogSUdlbmVyaWNGb3JtQmFzZUNvbXBvbmVudDxURW50aXR5PikgPT4gYW55O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3IgZm9yIHRoZSBGb3JtRmllbGRHcm91cERlZmluaXRpb24gY2xhc3MuXHJcbiAgICAgKiBAcGFyYW0gaW5pdCAtIE9wdGlvbmFsIHBhcnRpYWwgZGF0YSB0byBpbml0aWFsaXplIHRoZSBmb3JtIGZpZWxkIGdyb3VwLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoaW5pdD86IFBhcnRpYWw8Rm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uPFRFbnRpdHk+Pikge1xyXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgaW5pdCk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,23 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class FieldFuncPipe {
4
- /**
5
- * @param groups - Array of FormFieldGroupDefinition instances to filter.
6
- * @param formValue - The current value of the form.
7
- * @param form - The FormGroup instance.
8
- * @param context - The context of the component.
9
- * @returns Filtered array of FormFieldGroupDefinition instances.
10
- */
11
- transform(func, ...args) {
12
- if (args) {
13
- console.log('args', args);
14
- }
15
- }
16
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FieldFuncPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
17
- /** @nocollapse */ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: FieldFuncPipe, name: "fieldFunc" });
18
- }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FieldFuncPipe, decorators: [{
20
- type: Pipe,
21
- args: [{ name: 'fieldFunc' }]
22
- }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtZnVuYy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvZm9ybXMvcGlwZXMvZmllbGQtZnVuYy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUdwRCxNQUFNLE9BQU8sYUFBYTtJQUN0Qjs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsSUFBUyxFQUFFLEdBQUcsSUFBVztRQUMvQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1AsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNMLENBQUM7MEhBWlEsYUFBYTt3SEFBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBQaXBlKHsgbmFtZTogJ2ZpZWxkRnVuYycgfSlcclxuZXhwb3J0IGNsYXNzIEZpZWxkRnVuY1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICAgIC8qKiAgICBcclxuICAgICAqIEBwYXJhbSBncm91cHMgLSBBcnJheSBvZiBGb3JtRmllbGRHcm91cERlZmluaXRpb24gaW5zdGFuY2VzIHRvIGZpbHRlci5cclxuICAgICAqIEBwYXJhbSBmb3JtVmFsdWUgLSBUaGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgZm9ybS5cclxuICAgICAqIEBwYXJhbSBmb3JtIC0gVGhlIEZvcm1Hcm91cCBpbnN0YW5jZS5cclxuICAgICAqIEBwYXJhbSBjb250ZXh0IC0gVGhlIGNvbnRleHQgb2YgdGhlIGNvbXBvbmVudC5cclxuICAgICAqIEByZXR1cm5zIEZpbHRlcmVkIGFycmF5IG9mIEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbiBpbnN0YW5jZXMuXHJcbiAgICAgKi9cclxuICAgIHRyYW5zZm9ybShmdW5jOiBhbnksIC4uLmFyZ3M6IGFueVtdKTogYW55IHtcclxuICAgICAgICBpZiAoYXJncykge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZygnYXJncycsIGFyZ3MpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
@@ -1,34 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class GroupFilterPipe {
4
- /**
5
- * Filters an array of FormFieldGroupDefinition instances based on a provided condition.
6
- * @param groups - Array of FormFieldGroupDefinition instances to filter.
7
- * @param formValue - The current value of the form.
8
- * @param form - The FormGroup instance.
9
- * @param context - The context of the component.
10
- * @returns Filtered array of FormFieldGroupDefinition instances.
11
- */
12
- transform(groups, formValue, form, context) {
13
- /* Return an empty array if groups is null or undefined */
14
- if (!groups)
15
- return [];
16
- /* Filter the groups array based on the condition */
17
- return groups.filter(group => {
18
- /* Check if the group has a hide function */
19
- if (group.hide) {
20
- /* If hide function exists, return true if it evaluates to false (i.e., group should be shown) */
21
- return !group.hide(formValue, form, context);
22
- }
23
- /* If hide function doesn't exist, return true (i.e., group should be shown) */
24
- return true;
25
- });
26
- }
27
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: GroupFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
28
- /** @nocollapse */ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: GroupFilterPipe, name: "groupFilter" });
29
- }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: GroupFilterPipe, decorators: [{
31
- type: Pipe,
32
- args: [{ name: 'groupFilter' }]
33
- }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtZmlsdGVyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9mb3Jtcy9waXBlcy9ncm91cC1maWx0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLGVBQWU7SUFDeEI7Ozs7Ozs7T0FPRztJQUNILFNBQVMsQ0FBQyxNQUF3QyxFQUFFLFNBQWUsRUFBRSxJQUFnQixFQUFFLE9BQWE7UUFDaEcsMERBQTBEO1FBQzFELElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFdkIsb0RBQW9EO1FBQ3BELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6Qiw0Q0FBNEM7WUFDNUMsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2IsaUdBQWlHO2dCQUNqRyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2pELENBQUM7WUFDRCwrRUFBK0U7WUFDL0UsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzBIQXZCUSxlQUFlO3dIQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLElBQUk7bUJBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbiB9IGZyb20gJy4uL21vZGVscy9mb3JtLWZpZWxkLWdyb3VwLWRlZmluaXRpb24nO1xyXG5cclxuQFBpcGUoeyBuYW1lOiAnZ3JvdXBGaWx0ZXInIH0pXHJcbmV4cG9ydCBjbGFzcyBHcm91cEZpbHRlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICAgIC8qKlxyXG4gICAgICogRmlsdGVycyBhbiBhcnJheSBvZiBGb3JtRmllbGRHcm91cERlZmluaXRpb24gaW5zdGFuY2VzIGJhc2VkIG9uIGEgcHJvdmlkZWQgY29uZGl0aW9uLlxyXG4gICAgICogQHBhcmFtIGdyb3VwcyAtIEFycmF5IG9mIEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbiBpbnN0YW5jZXMgdG8gZmlsdGVyLlxyXG4gICAgICogQHBhcmFtIGZvcm1WYWx1ZSAtIFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBmb3JtLlxyXG4gICAgICogQHBhcmFtIGZvcm0gLSBUaGUgRm9ybUdyb3VwIGluc3RhbmNlLlxyXG4gICAgICogQHBhcmFtIGNvbnRleHQgLSBUaGUgY29udGV4dCBvZiB0aGUgY29tcG9uZW50LlxyXG4gICAgICogQHJldHVybnMgRmlsdGVyZWQgYXJyYXkgb2YgRm9ybUZpZWxkR3JvdXBEZWZpbml0aW9uIGluc3RhbmNlcy5cclxuICAgICAqL1xyXG4gICAgdHJhbnNmb3JtKGdyb3Vwcz86IEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbjxhbnk+W10sIGZvcm1WYWx1ZT86IGFueSwgZm9ybT86IEZvcm1Hcm91cCwgY29udGV4dD86IGFueSk6IEZvcm1GaWVsZEdyb3VwRGVmaW5pdGlvbjxhbnk+W10ge1xyXG4gICAgICAgIC8qIFJldHVybiBhbiBlbXB0eSBhcnJheSBpZiBncm91cHMgaXMgbnVsbCBvciB1bmRlZmluZWQgKi9cclxuICAgICAgICBpZiAoIWdyb3VwcykgcmV0dXJuIFtdO1xyXG5cclxuICAgICAgICAvKiBGaWx0ZXIgdGhlIGdyb3VwcyBhcnJheSBiYXNlZCBvbiB0aGUgY29uZGl0aW9uICovXHJcbiAgICAgICAgcmV0dXJuIGdyb3Vwcy5maWx0ZXIoZ3JvdXAgPT4ge1xyXG4gICAgICAgICAgICAvKiBDaGVjayBpZiB0aGUgZ3JvdXAgaGFzIGEgaGlkZSBmdW5jdGlvbiAqL1xyXG4gICAgICAgICAgICBpZiAoZ3JvdXAuaGlkZSkge1xyXG4gICAgICAgICAgICAgICAgLyogSWYgaGlkZSBmdW5jdGlvbiBleGlzdHMsIHJldHVybiB0cnVlIGlmIGl0IGV2YWx1YXRlcyB0byBmYWxzZSAoaS5lLiwgZ3JvdXAgc2hvdWxkIGJlIHNob3duKSAqL1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuICFncm91cC5oaWRlKGZvcm1WYWx1ZSwgZm9ybSwgY29udGV4dCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLyogSWYgaGlkZSBmdW5jdGlvbiBkb2Vzbid0IGV4aXN0LCByZXR1cm4gdHJ1ZSAoaS5lLiwgZ3JvdXAgc2hvdWxkIGJlIHNob3duKSAqL1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufSJdfQ==