@messaia/cdk 12.3.5-rc21 → 13.0.0-rc02

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 (1093) hide show
  1. package/esm2020/lib/base/base.module.mjs +64 -0
  2. package/esm2020/lib/base/components/base.component.mjs +436 -0
  3. package/esm2020/lib/base/components/generic-form.component.mjs +482 -0
  4. package/esm2020/lib/base/components/generic-list.component.mjs +461 -0
  5. package/{esm2015/lib/base/constants/common.js → esm2020/lib/base/constants/common.mjs} +0 -0
  6. package/{esm2015/lib/base/enums/message-type.js → esm2020/lib/base/enums/message-type.mjs} +0 -0
  7. package/{esm2015/lib/base/helpers/auth-helper.js → esm2020/lib/base/helpers/auth-helper.mjs} +0 -0
  8. package/esm2020/lib/base/interceptors/base.interceptor.mjs +138 -0
  9. package/esm2020/lib/base/interceptors/caching-interceptor.mjs +68 -0
  10. package/esm2020/lib/base/interceptors/loading.interceptor.mjs +63 -0
  11. package/{esm2015/lib/base/models/auth-user.js → esm2020/lib/base/models/auth-user.mjs} +0 -0
  12. package/{esm2015/lib/base/public_api.js → esm2020/lib/base/public_api.mjs} +0 -0
  13. package/esm2020/lib/base/services/file.service.mjs +18 -0
  14. package/esm2020/lib/base/services/loading-screen.service.mjs +47 -0
  15. package/esm2020/lib/base/services/print.service.mjs +40 -0
  16. package/esm2020/lib/chips/chips.module.mjs +63 -0
  17. package/esm2020/lib/chips/components/chips.component.mjs +419 -0
  18. package/esm2020/lib/chips/public_api.mjs +3 -0
  19. package/{esm2015/lib/common/animations/collapse/collapse.animation.js → esm2020/lib/common/animations/collapse/collapse.animation.mjs} +0 -0
  20. package/{esm2015/lib/common/animations/common/interfaces.js → esm2020/lib/common/animations/common/interfaces.mjs} +0 -0
  21. package/{esm2015/lib/common/behaviors/constructor.js → esm2020/lib/common/behaviors/constructor.mjs} +0 -0
  22. package/esm2020/lib/common/behaviors/control-value-accesor.mixin.mjs +39 -0
  23. package/{esm2015/lib/common/behaviors/disabled.mixin.js → esm2020/lib/common/behaviors/disabled.mixin.mjs} +0 -0
  24. package/esm2020/lib/common/common.module.mjs +118 -0
  25. package/{esm2015/lib/common/constants/constants.js → esm2020/lib/common/constants/constants.mjs} +0 -0
  26. package/esm2020/lib/common/directives/disable-control.directive.mjs +34 -0
  27. package/{esm2015/lib/common/enums/salutation.js → esm2020/lib/common/enums/salutation.mjs} +0 -0
  28. package/{esm2015/lib/common/functions/decorators.js → esm2020/lib/common/functions/decorators.mjs} +0 -0
  29. package/{esm2015/lib/common/functions/functions.js → esm2020/lib/common/functions/functions.mjs} +0 -0
  30. package/esm2020/lib/common/functions/utils.mjs +161 -0
  31. package/esm2020/lib/common/helpers/app-storage.mjs +53 -0
  32. package/esm2020/lib/common/helpers/dynamic-builder.mjs +49 -0
  33. package/esm2020/lib/common/models/app-setting.mjs +10 -0
  34. package/{esm2015/lib/common/models/audit-user.js → esm2020/lib/common/models/audit-user.mjs} +0 -0
  35. package/{esm2015/lib/common/models/entity.js → esm2020/lib/common/models/entity.mjs} +0 -0
  36. package/{esm2015/lib/common/models/enum-item.js → esm2020/lib/common/models/enum-item.mjs} +0 -0
  37. package/{esm2015/lib/common/models/key-value.js → esm2020/lib/common/models/key-value.mjs} +0 -0
  38. package/{esm2015/lib/common/models/save-action.js → esm2020/lib/common/models/save-action.mjs} +0 -0
  39. package/esm2020/lib/common/pipes/data-source.pipe.mjs +15 -0
  40. package/esm2020/lib/common/pipes/enum.pipe.mjs +23 -0
  41. package/esm2020/lib/common/pipes/file-size.pipe.mjs +37 -0
  42. package/esm2020/lib/common/pipes/filter.pipe.mjs +23 -0
  43. package/esm2020/lib/common/pipes/first-letter.mjs +24 -0
  44. package/esm2020/lib/common/pipes/keys.mjs +18 -0
  45. package/esm2020/lib/common/pipes/month-name.pipe.mjs +27 -0
  46. package/esm2020/lib/common/pipes/only-number.mjs +53 -0
  47. package/esm2020/lib/common/pipes/order.pipe.mjs +183 -0
  48. package/esm2020/lib/common/pipes/placeholder.pipe.mjs +26 -0
  49. package/esm2020/lib/common/pipes/safe-html.pipe.mjs +31 -0
  50. package/esm2020/lib/common/pipes/time.pipe.mjs +20 -0
  51. package/esm2020/lib/common/pipes/titlecase.pipe.mjs +14 -0
  52. package/esm2020/lib/common/pipes/truncate.pipe.mjs +15 -0
  53. package/esm2020/lib/common/pipes/values.mjs +14 -0
  54. package/esm2020/lib/common/public_api.mjs +18 -0
  55. package/esm2020/lib/common/services/base.service.mjs +19 -0
  56. package/{esm2015/lib/common/services/context-helper.js → esm2020/lib/common/services/context-helper.mjs} +0 -0
  57. package/esm2020/lib/common/services/enum.service.mjs +44 -0
  58. package/{esm2015/lib/common/services/service-locator.js → esm2020/lib/common/services/service-locator.mjs} +0 -0
  59. package/esm2020/lib/dialogs/alert-dialog/alert-dialog.component.mjs +31 -0
  60. package/esm2020/lib/dialogs/confirm-dialog/confirm-dialog.component.mjs +37 -0
  61. package/esm2020/lib/dialogs/dialog.component.mjs +56 -0
  62. package/esm2020/lib/dialogs/dialogs.module.mjs +82 -0
  63. package/esm2020/lib/dialogs/prompt-dialog/prompt-dialog.component.mjs +40 -0
  64. package/{esm2015/lib/dialogs/public_api.js → esm2020/lib/dialogs/public_api.mjs} +0 -0
  65. package/esm2020/lib/dialogs/services/dialog.service.mjs +136 -0
  66. package/esm2020/lib/file/file-input.component.mjs +327 -0
  67. package/esm2020/lib/file/file.module.mjs +39 -0
  68. package/{esm2015/lib/file/public_api.js → esm2020/lib/file/public_api.mjs} +0 -0
  69. package/esm2020/lib/form-validators/abstract/typed-form.mjs +3 -0
  70. package/esm2020/lib/form-validators/algorithm/luhn-algorithm.mjs +15 -0
  71. package/esm2020/lib/form-validators/const/app-validators.const.mjs +68 -0
  72. package/esm2020/lib/form-validators/const/app.const.mjs +17 -0
  73. package/esm2020/lib/form-validators/const/config-names.const.mjs +9 -0
  74. package/esm2020/lib/form-validators/const/config-required-fields.const.mjs +11 -0
  75. package/esm2020/lib/form-validators/const/decorators.const.mjs +23 -0
  76. package/esm2020/lib/form-validators/const/events.const.mjs +14 -0
  77. package/esm2020/lib/form-validators/const/html-elements.const.mjs +7 -0
  78. package/esm2020/lib/form-validators/const/iban-country-wise-regex.const.mjs +80 -0
  79. package/esm2020/lib/form-validators/const/index.mjs +6 -0
  80. package/esm2020/lib/form-validators/const/operators.const.mjs +7 -0
  81. package/esm2020/lib/form-validators/const/validation-alphabet-locale.const.mjs +9 -0
  82. package/esm2020/lib/form-validators/const/validator.const.mjs +8 -0
  83. package/esm2020/lib/form-validators/core/defaultContainer.mjs +243 -0
  84. package/esm2020/lib/form-validators/core/validator.interface.mjs +2 -0
  85. package/esm2020/lib/form-validators/core/validator.static.mjs +74 -0
  86. package/esm2020/lib/form-validators/decorators/allOf.decorator.mjs +10 -0
  87. package/esm2020/lib/form-validators/decorators/alpha.decorator.mjs +10 -0
  88. package/esm2020/lib/form-validators/decorators/alphaNumeric.decorator.mjs +10 -0
  89. package/esm2020/lib/form-validators/decorators/and.decorator.mjs +6 -0
  90. package/esm2020/lib/form-validators/decorators/ascii.decorator.mjs +6 -0
  91. package/esm2020/lib/form-validators/decorators/async.decorator.mjs +6 -0
  92. package/esm2020/lib/form-validators/decorators/base-decorator.function.mjs +7 -0
  93. package/esm2020/lib/form-validators/decorators/choice.decorator.mjs +10 -0
  94. package/esm2020/lib/form-validators/decorators/compare.decorator.mjs +6 -0
  95. package/esm2020/lib/form-validators/decorators/compose.decorator.mjs +6 -0
  96. package/esm2020/lib/form-validators/decorators/contains.decorator.mjs +10 -0
  97. package/esm2020/lib/form-validators/decorators/credit-card.decorator.mjs +10 -0
  98. package/esm2020/lib/form-validators/decorators/cusip.decorator.mjs +6 -0
  99. package/esm2020/lib/form-validators/decorators/custom.decorator.mjs +10 -0
  100. package/esm2020/lib/form-validators/decorators/dataUri.decorator.mjs +6 -0
  101. package/esm2020/lib/form-validators/decorators/date.decorator.mjs +10 -0
  102. package/esm2020/lib/form-validators/decorators/different.decorator.mjs +6 -0
  103. package/esm2020/lib/form-validators/decorators/digit.decorator.mjs +6 -0
  104. package/esm2020/lib/form-validators/decorators/email.decorator.mjs +6 -0
  105. package/esm2020/lib/form-validators/decorators/endsWith.decorator.mjs +10 -0
  106. package/esm2020/lib/form-validators/decorators/even.decorator.mjs +6 -0
  107. package/esm2020/lib/form-validators/decorators/extension.decorator.mjs +10 -0
  108. package/esm2020/lib/form-validators/decorators/factor.decorator.mjs +10 -0
  109. package/esm2020/lib/form-validators/decorators/file.decorator.mjs +10 -0
  110. package/esm2020/lib/form-validators/decorators/fileSize.decorator.mjs +10 -0
  111. package/esm2020/lib/form-validators/decorators/greater-than-equal-to.decorator.mjs +10 -0
  112. package/esm2020/lib/form-validators/decorators/greater-than.decorator.mjs +10 -0
  113. package/esm2020/lib/form-validators/decorators/grid.decorator.mjs +6 -0
  114. package/esm2020/lib/form-validators/decorators/hexColor.decorator.mjs +6 -0
  115. package/esm2020/lib/form-validators/decorators/image.decorator.mjs +10 -0
  116. package/esm2020/lib/form-validators/decorators/index.mjs +91 -0
  117. package/esm2020/lib/form-validators/decorators/json.decorator.mjs +6 -0
  118. package/esm2020/lib/form-validators/decorators/latLong.decorator.mjs +6 -0
  119. package/esm2020/lib/form-validators/decorators/latitude.decorator.mjs +6 -0
  120. package/esm2020/lib/form-validators/decorators/leapYear.decorator.mjs +6 -0
  121. package/esm2020/lib/form-validators/decorators/less-than-equal-to.decorator.mjs +10 -0
  122. package/esm2020/lib/form-validators/decorators/less-than.decorator.mjs +10 -0
  123. package/esm2020/lib/form-validators/decorators/longitude.decorator.mjs +6 -0
  124. package/esm2020/lib/form-validators/decorators/lowercase.decorator.mjs +6 -0
  125. package/esm2020/lib/form-validators/decorators/mac.decorator.mjs +6 -0
  126. package/esm2020/lib/form-validators/decorators/mask.decorator.mjs +6 -0
  127. package/esm2020/lib/form-validators/decorators/maxDate.decorator.mjs +10 -0
  128. package/esm2020/lib/form-validators/decorators/maxLength.decorator.mjs +10 -0
  129. package/esm2020/lib/form-validators/decorators/maxNumber.decorator.mjs +10 -0
  130. package/esm2020/lib/form-validators/decorators/maxTime.decorator.mjs +10 -0
  131. package/esm2020/lib/form-validators/decorators/minDate.decorator.mjs +10 -0
  132. package/esm2020/lib/form-validators/decorators/minLength.decorator.mjs +10 -0
  133. package/esm2020/lib/form-validators/decorators/minNumber.decorator.mjs +10 -0
  134. package/esm2020/lib/form-validators/decorators/minTime.decorator.mjs +10 -0
  135. package/esm2020/lib/form-validators/decorators/model.decorator.mjs +7 -0
  136. package/esm2020/lib/form-validators/decorators/non-validation-decorators/disable.decorator.mjs +8 -0
  137. package/esm2020/lib/form-validators/decorators/non-validation-decorators/elementClass.decorator.mjs +8 -0
  138. package/esm2020/lib/form-validators/decorators/non-validation-decorators/error.decorator.mjs +8 -0
  139. package/esm2020/lib/form-validators/decorators/noneOf.decorator.mjs +10 -0
  140. package/esm2020/lib/form-validators/decorators/not.decorator.mjs +6 -0
  141. package/esm2020/lib/form-validators/decorators/notEmpty.decorator.mjs +6 -0
  142. package/esm2020/lib/form-validators/decorators/numeric.decorator.mjs +10 -0
  143. package/esm2020/lib/form-validators/decorators/odd.decorator.mjs +6 -0
  144. package/esm2020/lib/form-validators/decorators/oneOf.decorator.mjs +10 -0
  145. package/esm2020/lib/form-validators/decorators/or.decorator.mjs +6 -0
  146. package/esm2020/lib/form-validators/decorators/password.decorator.mjs +10 -0
  147. package/esm2020/lib/form-validators/decorators/pattern.decorator.mjs +10 -0
  148. package/esm2020/lib/form-validators/decorators/port.decorator.mjs +6 -0
  149. package/esm2020/lib/form-validators/decorators/primeNumber.decorator.mjs +6 -0
  150. package/esm2020/lib/form-validators/decorators/prop-array.decorator.mjs +18 -0
  151. package/esm2020/lib/form-validators/decorators/prop-object.decorator.mjs +8 -0
  152. package/esm2020/lib/form-validators/decorators/prop.decorator.mjs +16 -0
  153. package/esm2020/lib/form-validators/decorators/range.decorator.mjs +10 -0
  154. package/esm2020/lib/form-validators/decorators/required.decorator.mjs +6 -0
  155. package/esm2020/lib/form-validators/decorators/requiredTrue.decorator.mjs +6 -0
  156. package/esm2020/lib/form-validators/decorators/rule.decorator.mjs +6 -0
  157. package/esm2020/lib/form-validators/decorators/sanitize/blacklist.decorator.mjs +8 -0
  158. package/esm2020/lib/form-validators/decorators/sanitize/escape.decorator.mjs +8 -0
  159. package/esm2020/lib/form-validators/decorators/sanitize/ltrim.decorator.mjs +8 -0
  160. package/esm2020/lib/form-validators/decorators/sanitize/prefix.decorator.mjs +8 -0
  161. package/esm2020/lib/form-validators/decorators/sanitize/rtrim.decorator.mjs +8 -0
  162. package/esm2020/lib/form-validators/decorators/sanitize/sanitize.decorator.mjs +8 -0
  163. package/esm2020/lib/form-validators/decorators/sanitize/stripLow.decorator.mjs +8 -0
  164. package/esm2020/lib/form-validators/decorators/sanitize/suffix.decorator.mjs +8 -0
  165. package/esm2020/lib/form-validators/decorators/sanitize/toBoolean.decorator.mjs +8 -0
  166. package/esm2020/lib/form-validators/decorators/sanitize/toDate.decorator.mjs +8 -0
  167. package/esm2020/lib/form-validators/decorators/sanitize/toDouble.decorator.mjs +8 -0
  168. package/esm2020/lib/form-validators/decorators/sanitize/toFloat.decorator.mjs +8 -0
  169. package/esm2020/lib/form-validators/decorators/sanitize/toInt.decorator.mjs +8 -0
  170. package/esm2020/lib/form-validators/decorators/sanitize/toString.decorator.mjs +8 -0
  171. package/esm2020/lib/form-validators/decorators/sanitize/trim.decorator.mjs +8 -0
  172. package/esm2020/lib/form-validators/decorators/sanitize/whitelist.decorator.mjs +8 -0
  173. package/esm2020/lib/form-validators/decorators/startsWith.decorator.mjs +10 -0
  174. package/esm2020/lib/form-validators/decorators/time.decorator.mjs +10 -0
  175. package/esm2020/lib/form-validators/decorators/unique.decorator.mjs +6 -0
  176. package/esm2020/lib/form-validators/decorators/uppercase.decorator.mjs +6 -0
  177. package/esm2020/lib/form-validators/decorators/url.decorator.mjs +10 -0
  178. package/esm2020/lib/form-validators/directives/base-directive.mjs +43 -0
  179. package/esm2020/lib/form-validators/directives/control-host.directive.mjs +34 -0
  180. package/esm2020/lib/form-validators/directives/html-control-template.directive.mjs +20 -0
  181. package/esm2020/lib/form-validators/directives/rx-form.directive.mjs +134 -0
  182. package/esm2020/lib/form-validators/directives/template-validations/async-validation.directive.mjs +31 -0
  183. package/esm2020/lib/form-validators/directives/template-validations/base-validator.directive.mjs +42 -0
  184. package/esm2020/lib/form-validators/directives/template-validations/control-expression-process.mjs +26 -0
  185. package/esm2020/lib/form-validators/directives/template-validations/file-control.directive.mjs +91 -0
  186. package/esm2020/lib/form-validators/directives/template-validations/image-file-control.directive.mjs +50 -0
  187. package/esm2020/lib/form-validators/directives/template-validations/rxformcontrol.directive.mjs +277 -0
  188. package/esm2020/lib/form-validators/domain/disable-provider.mjs +93 -0
  189. package/esm2020/lib/form-validators/domain/element-processor/decimal.provider.mjs +59 -0
  190. package/esm2020/lib/form-validators/domain/element-processor/mask.provider.mjs +430 -0
  191. package/esm2020/lib/form-validators/domain/form-data.mjs +47 -0
  192. package/esm2020/lib/form-validators/enums/error-message-binding-strategy.mjs +11 -0
  193. package/esm2020/lib/form-validators/enums/index.mjs +5 -0
  194. package/esm2020/lib/form-validators/enums/ip-version.mjs +7 -0
  195. package/esm2020/lib/form-validators/enums/numeric-value-type.mjs +7 -0
  196. package/esm2020/lib/form-validators/enums/reset-type.mjs +10 -0
  197. package/esm2020/lib/form-validators/enums/url-validation-type.mjs +7 -0
  198. package/esm2020/lib/form-validators/models/config/alpha-config.mjs +2 -0
  199. package/esm2020/lib/form-validators/models/config/array-config.mjs +2 -0
  200. package/esm2020/lib/form-validators/models/config/base-config-fn.mjs +2 -0
  201. package/esm2020/lib/form-validators/models/config/base-config.mjs +2 -0
  202. package/esm2020/lib/form-validators/models/config/base-date-config.mjs +2 -0
  203. package/esm2020/lib/form-validators/models/config/choice-config.mjs +2 -0
  204. package/esm2020/lib/form-validators/models/config/compare-config.mjs +2 -0
  205. package/esm2020/lib/form-validators/models/config/component-config.mjs +2 -0
  206. package/esm2020/lib/form-validators/models/config/compose-config.mjs +2 -0
  207. package/esm2020/lib/form-validators/models/config/contains-config.mjs +2 -0
  208. package/esm2020/lib/form-validators/models/config/credit-card-config.mjs +2 -0
  209. package/esm2020/lib/form-validators/models/config/custom-config.mjs +2 -0
  210. package/esm2020/lib/form-validators/models/config/date-config.mjs +2 -0
  211. package/esm2020/lib/form-validators/models/config/default-config.mjs +2 -0
  212. package/esm2020/lib/form-validators/models/config/digit-config.mjs +2 -0
  213. package/esm2020/lib/form-validators/models/config/disable-config.mjs +2 -0
  214. package/esm2020/lib/form-validators/models/config/element-class-config.mjs +2 -0
  215. package/esm2020/lib/form-validators/models/config/email-config.mjs +2 -0
  216. package/esm2020/lib/form-validators/models/config/error-config.mjs +2 -0
  217. package/esm2020/lib/form-validators/models/config/extension-config.mjs +2 -0
  218. package/esm2020/lib/form-validators/models/config/factor-config.mjs +2 -0
  219. package/esm2020/lib/form-validators/models/config/field-config.mjs +2 -0
  220. package/esm2020/lib/form-validators/models/config/file-config.mjs +2 -0
  221. package/esm2020/lib/form-validators/models/config/hex-color-config.mjs +2 -0
  222. package/esm2020/lib/form-validators/models/config/iban-config.mjs +2 -0
  223. package/esm2020/lib/form-validators/models/config/image-config.mjs +2 -0
  224. package/esm2020/lib/form-validators/models/config/index.mjs +35 -0
  225. package/esm2020/lib/form-validators/models/config/ip-config.mjs +2 -0
  226. package/esm2020/lib/form-validators/models/config/logical-operator-config.mjs +2 -0
  227. package/esm2020/lib/form-validators/models/config/mask-config.mjs +2 -0
  228. package/esm2020/lib/form-validators/models/config/max-date-config.mjs +2 -0
  229. package/esm2020/lib/form-validators/models/config/message-config.mjs +2 -0
  230. package/esm2020/lib/form-validators/models/config/min-date-config.mjs +2 -0
  231. package/esm2020/lib/form-validators/models/config/model-config.mjs +2 -0
  232. package/esm2020/lib/form-validators/models/config/number-config.mjs +2 -0
  233. package/esm2020/lib/form-validators/models/config/numeric-config.mjs +2 -0
  234. package/esm2020/lib/form-validators/models/config/password-config.mjs +2 -0
  235. package/esm2020/lib/form-validators/models/config/pattern-config.mjs +2 -0
  236. package/esm2020/lib/form-validators/models/config/prop-config.mjs +2 -0
  237. package/esm2020/lib/form-validators/models/config/props-config.mjs +2 -0
  238. package/esm2020/lib/form-validators/models/config/range-config.mjs +2 -0
  239. package/esm2020/lib/form-validators/models/config/relational-operator-config.mjs +2 -0
  240. package/esm2020/lib/form-validators/models/config/required-config.mjs +2 -0
  241. package/esm2020/lib/form-validators/models/config/rule-config.mjs +2 -0
  242. package/esm2020/lib/form-validators/models/config/sanitize-config.mjs +2 -0
  243. package/esm2020/lib/form-validators/models/config/size-config.mjs +2 -0
  244. package/esm2020/lib/form-validators/models/config/string-comparison-config.mjs +2 -0
  245. package/esm2020/lib/form-validators/models/config/time-config.mjs +2 -0
  246. package/esm2020/lib/form-validators/models/config/todate-config.mjs +2 -0
  247. package/esm2020/lib/form-validators/models/config/unique-config.mjs +2 -0
  248. package/esm2020/lib/form-validators/models/config/url-config.mjs +2 -0
  249. package/esm2020/lib/form-validators/models/form-builder-configuration.mjs +8 -0
  250. package/esm2020/lib/form-validators/models/index.mjs +3 -0
  251. package/esm2020/lib/form-validators/models/interface/array-prop-instance-config.interface.mjs +2 -0
  252. package/esm2020/lib/form-validators/models/interface/auto-instance-config.interface.mjs +2 -0
  253. package/esm2020/lib/form-validators/models/interface/form-data-config.mjs +2 -0
  254. package/esm2020/lib/form-validators/models/interface/i-abstract-control.mjs +4 -0
  255. package/esm2020/lib/form-validators/models/interface/i-form-group.mjs +2 -0
  256. package/esm2020/lib/form-validators/models/interface/instance-argument.interface.mjs +2 -0
  257. package/esm2020/lib/form-validators/models/interface/object-prop-instance-config.interface.mjs +2 -0
  258. package/esm2020/lib/form-validators/models/interface/options.mjs +2 -0
  259. package/esm2020/lib/form-validators/models/password-validation.model.mjs +2 -0
  260. package/esm2020/lib/form-validators/models/prop-validation-config.mjs +2 -0
  261. package/esm2020/lib/form-validators/public_api.mjs +25 -0
  262. package/esm2020/lib/form-validators/reactive-form-validators/allOf.validator.mjs +22 -0
  263. package/esm2020/lib/form-validators/reactive-form-validators/alpha.validator.mjs +9 -0
  264. package/esm2020/lib/form-validators/reactive-form-validators/alphaNumeric.validator.mjs +9 -0
  265. package/esm2020/lib/form-validators/reactive-form-validators/and.validator.mjs +23 -0
  266. package/esm2020/lib/form-validators/reactive-form-validators/ascii.validator.mjs +9 -0
  267. package/esm2020/lib/form-validators/reactive-form-validators/async/base.async.validator.mjs +24 -0
  268. package/esm2020/lib/form-validators/reactive-form-validators/choice.validator.mjs +19 -0
  269. package/esm2020/lib/form-validators/reactive-form-validators/compare.validator.mjs +20 -0
  270. package/esm2020/lib/form-validators/reactive-form-validators/compose.validator.mjs +23 -0
  271. package/esm2020/lib/form-validators/reactive-form-validators/conditional-change.validator.mjs +63 -0
  272. package/esm2020/lib/form-validators/reactive-form-validators/contains.validator.mjs +15 -0
  273. package/esm2020/lib/form-validators/reactive-form-validators/credit-card.validator.mjs +48 -0
  274. package/esm2020/lib/form-validators/reactive-form-validators/cusip.validator.mjs +38 -0
  275. package/esm2020/lib/form-validators/reactive-form-validators/custom.validator.mjs +23 -0
  276. package/esm2020/lib/form-validators/reactive-form-validators/dataUri.validator.mjs +9 -0
  277. package/esm2020/lib/form-validators/reactive-form-validators/date.validator.mjs +8 -0
  278. package/esm2020/lib/form-validators/reactive-form-validators/different.validator.mjs +19 -0
  279. package/esm2020/lib/form-validators/reactive-form-validators/digit.validator.mjs +9 -0
  280. package/esm2020/lib/form-validators/reactive-form-validators/email.validator.mjs +9 -0
  281. package/esm2020/lib/form-validators/reactive-form-validators/endsWith.validator.mjs +16 -0
  282. package/esm2020/lib/form-validators/reactive-form-validators/even.validator.mjs +15 -0
  283. package/esm2020/lib/form-validators/reactive-form-validators/extension.validator.mjs +40 -0
  284. package/esm2020/lib/form-validators/reactive-form-validators/factor.validator.mjs +37 -0
  285. package/esm2020/lib/form-validators/reactive-form-validators/file.validator.mjs +26 -0
  286. package/esm2020/lib/form-validators/reactive-form-validators/fileSize.validator.mjs +32 -0
  287. package/esm2020/lib/form-validators/reactive-form-validators/greater-than-equal-to.validator.mjs +8 -0
  288. package/esm2020/lib/form-validators/reactive-form-validators/greater-than.validator.mjs +8 -0
  289. package/esm2020/lib/form-validators/reactive-form-validators/grid.validator.mjs +31 -0
  290. package/esm2020/lib/form-validators/reactive-form-validators/hexcolor.validator.mjs +9 -0
  291. package/esm2020/lib/form-validators/reactive-form-validators/iban.validator.mjs +30 -0
  292. package/esm2020/lib/form-validators/reactive-form-validators/image.validator.mjs +48 -0
  293. package/esm2020/lib/form-validators/reactive-form-validators/index.mjs +66 -0
  294. package/esm2020/lib/form-validators/reactive-form-validators/ip.validator.mjs +35 -0
  295. package/esm2020/lib/form-validators/reactive-form-validators/json.validator.mjs +26 -0
  296. package/esm2020/lib/form-validators/reactive-form-validators/latLong.validator.mjs +18 -0
  297. package/esm2020/lib/form-validators/reactive-form-validators/latitude.validator.mjs +9 -0
  298. package/esm2020/lib/form-validators/reactive-form-validators/leapYear.validator.mjs +16 -0
  299. package/esm2020/lib/form-validators/reactive-form-validators/less-than-equal-to.validator.mjs +8 -0
  300. package/esm2020/lib/form-validators/reactive-form-validators/less-than.validator.mjs +8 -0
  301. package/esm2020/lib/form-validators/reactive-form-validators/longitude.validator.mjs +9 -0
  302. package/esm2020/lib/form-validators/reactive-form-validators/lowercase.validator.mjs +15 -0
  303. package/esm2020/lib/form-validators/reactive-form-validators/mac.validator.mjs +9 -0
  304. package/esm2020/lib/form-validators/reactive-form-validators/mask.validator.mjs +13 -0
  305. package/esm2020/lib/form-validators/reactive-form-validators/maxDate.validator.mjs +8 -0
  306. package/esm2020/lib/form-validators/reactive-form-validators/maxLength.validator.mjs +16 -0
  307. package/esm2020/lib/form-validators/reactive-form-validators/maxNumber.validator.mjs +16 -0
  308. package/esm2020/lib/form-validators/reactive-form-validators/maxTime.validator.mjs +8 -0
  309. package/esm2020/lib/form-validators/reactive-form-validators/minDate.validator.mjs +8 -0
  310. package/esm2020/lib/form-validators/reactive-form-validators/minLength.validator.mjs +16 -0
  311. package/esm2020/lib/form-validators/reactive-form-validators/minNumber.validator.mjs +16 -0
  312. package/esm2020/lib/form-validators/reactive-form-validators/minTime.validator.mjs +8 -0
  313. package/esm2020/lib/form-validators/reactive-form-validators/noneOf.validator.mjs +24 -0
  314. package/esm2020/lib/form-validators/reactive-form-validators/not.validator.mjs +23 -0
  315. package/esm2020/lib/form-validators/reactive-form-validators/notEmpty.validator.mjs +17 -0
  316. package/esm2020/lib/form-validators/reactive-form-validators/numeric.validator.mjs +20 -0
  317. package/esm2020/lib/form-validators/reactive-form-validators/odd.validator.mjs +16 -0
  318. package/esm2020/lib/form-validators/reactive-form-validators/oneOf.validator.mjs +22 -0
  319. package/esm2020/lib/form-validators/reactive-form-validators/or.validator.mjs +23 -0
  320. package/esm2020/lib/form-validators/reactive-form-validators/password.validator.mjs +33 -0
  321. package/esm2020/lib/form-validators/reactive-form-validators/pattern.validator.mjs +17 -0
  322. package/esm2020/lib/form-validators/reactive-form-validators/port.validator.mjs +18 -0
  323. package/esm2020/lib/form-validators/reactive-form-validators/primeNumber.validator.mjs +26 -0
  324. package/esm2020/lib/form-validators/reactive-form-validators/range.validator.mjs +16 -0
  325. package/esm2020/lib/form-validators/reactive-form-validators/required.validator.mjs +17 -0
  326. package/esm2020/lib/form-validators/reactive-form-validators/requiredTrue.validator.mjs +16 -0
  327. package/esm2020/lib/form-validators/reactive-form-validators/rule.validator.mjs +20 -0
  328. package/esm2020/lib/form-validators/reactive-form-validators/startsWith.validator.mjs +16 -0
  329. package/esm2020/lib/form-validators/reactive-form-validators/time.validator.mjs +18 -0
  330. package/esm2020/lib/form-validators/reactive-form-validators/unique.validator.mjs +70 -0
  331. package/esm2020/lib/form-validators/reactive-form-validators/uppercase.validator.mjs +15 -0
  332. package/esm2020/lib/form-validators/reactive-form-validators/url.validator.mjs +28 -0
  333. package/esm2020/lib/form-validators/services/base-form-builder.mjs +115 -0
  334. package/esm2020/lib/form-validators/services/entity.service.mjs +64 -0
  335. package/esm2020/lib/form-validators/services/form-control.mjs +349 -0
  336. package/esm2020/lib/form-validators/services/form-group.mjs +2 -0
  337. package/esm2020/lib/form-validators/services/reactive-form.module.mjs +52 -0
  338. package/esm2020/lib/form-validators/services/rx-form-array.mjs +100 -0
  339. package/esm2020/lib/form-validators/services/rx-form-builder.mjs +559 -0
  340. package/esm2020/lib/form-validators/services/rx-form-group.mjs +299 -0
  341. package/esm2020/lib/form-validators/services/typed-form-builder.mjs +23 -0
  342. package/esm2020/lib/form-validators/util/alphabet-regex.locale.mjs +29 -0
  343. package/esm2020/lib/form-validators/util/app-util.mjs +141 -0
  344. package/esm2020/lib/form-validators/util/check-length.mjs +10 -0
  345. package/esm2020/lib/form-validators/util/config-provider.mjs +35 -0
  346. package/esm2020/lib/form-validators/util/date-checker.function.mjs +52 -0
  347. package/esm2020/lib/form-validators/util/date-provider.mjs +97 -0
  348. package/esm2020/lib/form-validators/util/form-const.mjs +3 -0
  349. package/esm2020/lib/form-validators/util/form-provider.mjs +37 -0
  350. package/esm2020/lib/form-validators/util/index.mjs +7 -0
  351. package/esm2020/lib/form-validators/util/instance-provider.function.mjs +30 -0
  352. package/esm2020/lib/form-validators/util/ip-checker.mjs +18 -0
  353. package/esm2020/lib/form-validators/util/linq.mjs +147 -0
  354. package/esm2020/lib/form-validators/util/object-maker.mjs +38 -0
  355. package/esm2020/lib/form-validators/util/reactive-form-config.mjs +23 -0
  356. package/esm2020/lib/form-validators/util/regex-rules.mjs +37 -0
  357. package/esm2020/lib/form-validators/util/regex-validator.mjs +74 -0
  358. package/esm2020/lib/form-validators/util/relational-checker.function.mjs +85 -0
  359. package/esm2020/lib/form-validators/util/reset-form.mjs +56 -0
  360. package/esm2020/lib/form-validators/util/sanitizers.mjs +131 -0
  361. package/esm2020/lib/form-validators/util/time-checker.function.mjs +48 -0
  362. package/esm2020/lib/form-validators/util/type.mjs +2 -0
  363. package/esm2020/lib/form-validators/util/validator-value-checker.mjs +17 -0
  364. package/esm2020/lib/form-validators/validators-extension/allOf-validator.extension.mjs +11 -0
  365. package/esm2020/lib/form-validators/validators-extension/alpha-validator.extension.mjs +11 -0
  366. package/esm2020/lib/form-validators/validators-extension/alphaNumeric-validator.extension.mjs +11 -0
  367. package/esm2020/lib/form-validators/validators-extension/and-validator.extension.mjs +7 -0
  368. package/esm2020/lib/form-validators/validators-extension/ascii-validator.extension.mjs +7 -0
  369. package/esm2020/lib/form-validators/validators-extension/base-validator.function.mjs +33 -0
  370. package/esm2020/lib/form-validators/validators-extension/choice-validator.extension.mjs +11 -0
  371. package/esm2020/lib/form-validators/validators-extension/compare-validator.extension.mjs +7 -0
  372. package/esm2020/lib/form-validators/validators-extension/compose-validator.extension.mjs +7 -0
  373. package/esm2020/lib/form-validators/validators-extension/contains-validator.extension.mjs +11 -0
  374. package/esm2020/lib/form-validators/validators-extension/credit-card-validator.extension.mjs +11 -0
  375. package/esm2020/lib/form-validators/validators-extension/cusip-validator.extension.mjs +7 -0
  376. package/esm2020/lib/form-validators/validators-extension/custom-validator.extension.mjs +11 -0
  377. package/esm2020/lib/form-validators/validators-extension/dataUri-validator.extension.mjs +7 -0
  378. package/esm2020/lib/form-validators/validators-extension/date-validator.extension.mjs +11 -0
  379. package/esm2020/lib/form-validators/validators-extension/different-validator.extension.mjs +7 -0
  380. package/esm2020/lib/form-validators/validators-extension/digit-validator.extension.mjs +7 -0
  381. package/esm2020/lib/form-validators/validators-extension/email-validator.extension.mjs +7 -0
  382. package/esm2020/lib/form-validators/validators-extension/endsWith-validator.extension.mjs +11 -0
  383. package/esm2020/lib/form-validators/validators-extension/even-validator.extension.mjs +7 -0
  384. package/esm2020/lib/form-validators/validators-extension/extension-validator.extension.mjs +10 -0
  385. package/esm2020/lib/form-validators/validators-extension/factor-validator.extension.mjs +11 -0
  386. package/esm2020/lib/form-validators/validators-extension/file-validator.extension.mjs +10 -0
  387. package/esm2020/lib/form-validators/validators-extension/fileSize-validator.extension.mjs +10 -0
  388. package/esm2020/lib/form-validators/validators-extension/greater-than-equal-to-validator.extension.mjs +11 -0
  389. package/esm2020/lib/form-validators/validators-extension/greater-than-validator.extension.mjs +11 -0
  390. package/esm2020/lib/form-validators/validators-extension/grid-validator.extension.mjs +7 -0
  391. package/esm2020/lib/form-validators/validators-extension/hexcolor-validator.extension.mjs +7 -0
  392. package/esm2020/lib/form-validators/validators-extension/iban-validator.extension.mjs +11 -0
  393. package/esm2020/lib/form-validators/validators-extension/image-validator.extension.mjs +10 -0
  394. package/esm2020/lib/form-validators/validators-extension/index.mjs +68 -0
  395. package/esm2020/lib/form-validators/validators-extension/ip-validator.extension.mjs +11 -0
  396. package/esm2020/lib/form-validators/validators-extension/json-validator.extension.mjs +7 -0
  397. package/esm2020/lib/form-validators/validators-extension/latLong-validator.extension.mjs +7 -0
  398. package/esm2020/lib/form-validators/validators-extension/latitude-validator.extension.mjs +7 -0
  399. package/esm2020/lib/form-validators/validators-extension/leapYear-validator.extension.mjs +7 -0
  400. package/esm2020/lib/form-validators/validators-extension/less-than-equal-to-validator.extension.mjs +11 -0
  401. package/esm2020/lib/form-validators/validators-extension/less-than-validator.extension.mjs +11 -0
  402. package/esm2020/lib/form-validators/validators-extension/longitude-validator.extension.mjs +7 -0
  403. package/esm2020/lib/form-validators/validators-extension/lowercase-validator.extension.mjs +7 -0
  404. package/esm2020/lib/form-validators/validators-extension/mac-validator.extension.mjs +7 -0
  405. package/esm2020/lib/form-validators/validators-extension/mask-validator.extension.mjs +7 -0
  406. package/esm2020/lib/form-validators/validators-extension/maxDate-validator.extension.mjs +11 -0
  407. package/esm2020/lib/form-validators/validators-extension/maxLength-validator.extension.mjs +11 -0
  408. package/esm2020/lib/form-validators/validators-extension/maxNumber-validator.extension.mjs +11 -0
  409. package/esm2020/lib/form-validators/validators-extension/maxTime-validator.extension.mjs +11 -0
  410. package/esm2020/lib/form-validators/validators-extension/minDate-validator.extension.mjs +11 -0
  411. package/esm2020/lib/form-validators/validators-extension/minLength-validator.extension.mjs +11 -0
  412. package/esm2020/lib/form-validators/validators-extension/minNumber-validator.extension.mjs +11 -0
  413. package/esm2020/lib/form-validators/validators-extension/minTime-validator.extension.mjs +11 -0
  414. package/esm2020/lib/form-validators/validators-extension/noneOf-validator.extension.mjs +11 -0
  415. package/esm2020/lib/form-validators/validators-extension/not-validator.extension.mjs +7 -0
  416. package/esm2020/lib/form-validators/validators-extension/notEmpty-validator.extension.mjs +7 -0
  417. package/esm2020/lib/form-validators/validators-extension/numeric-validator.extension.mjs +11 -0
  418. package/esm2020/lib/form-validators/validators-extension/odd-validator.extension.mjs +7 -0
  419. package/esm2020/lib/form-validators/validators-extension/oneOf-validator.extension.mjs +11 -0
  420. package/esm2020/lib/form-validators/validators-extension/or-validator.extension.mjs +7 -0
  421. package/esm2020/lib/form-validators/validators-extension/password-validator.extension.mjs +11 -0
  422. package/esm2020/lib/form-validators/validators-extension/pattern-validator.extension.mjs +11 -0
  423. package/esm2020/lib/form-validators/validators-extension/port-validator.extension.mjs +7 -0
  424. package/esm2020/lib/form-validators/validators-extension/primeNumber-validator.extension.mjs +7 -0
  425. package/esm2020/lib/form-validators/validators-extension/range-validator.extension.mjs +11 -0
  426. package/esm2020/lib/form-validators/validators-extension/required-validator.extension.mjs +7 -0
  427. package/esm2020/lib/form-validators/validators-extension/requiredTrue-validator.extension.mjs +7 -0
  428. package/esm2020/lib/form-validators/validators-extension/rxweb-validators.mjs +108 -0
  429. package/esm2020/lib/form-validators/validators-extension/startsWith-validator.extension.mjs +11 -0
  430. package/esm2020/lib/form-validators/validators-extension/time-validator.extension.mjs +11 -0
  431. package/esm2020/lib/form-validators/validators-extension/unique-validator.extension.mjs +7 -0
  432. package/esm2020/lib/form-validators/validators-extension/uppercase-validator.extension.mjs +7 -0
  433. package/esm2020/lib/form-validators/validators-extension/url-validator.extension.mjs +11 -0
  434. package/esm2020/lib/form-validators/validators-function/alpha-validation.function.mjs +37 -0
  435. package/esm2020/lib/form-validators/validators-function/regex-validation.function.mjs +16 -0
  436. package/esm2020/lib/forms/components/generic-form/generic-form.component.mjs +131 -0
  437. package/{esm2015/lib/forms/constants/constants.js → esm2020/lib/forms/constants/constants.mjs} +0 -0
  438. package/esm2020/lib/forms/directives/mat-form-field-readonly.directive.mjs +33 -0
  439. package/{esm2015/lib/forms/enums/form-field-type.js → esm2020/lib/forms/enums/form-field-type.mjs} +0 -0
  440. package/esm2020/lib/forms/forms.module.mjs +122 -0
  441. package/esm2020/lib/forms/functions/decorators.mjs +127 -0
  442. package/{esm2015/lib/forms/functions/functions.js → esm2020/lib/forms/functions/functions.mjs} +0 -0
  443. package/esm2020/lib/forms/helpers/abstract-mat-form-field.mjs +251 -0
  444. package/esm2020/lib/forms/helpers/value-accessor-base.mjs +141 -0
  445. package/{esm2015/lib/forms/models/form-field-definition.js → esm2020/lib/forms/models/form-field-definition.mjs} +0 -0
  446. package/{esm2015/lib/forms/models/form-field-group.js → esm2020/lib/forms/models/form-field-group.mjs} +0 -0
  447. package/esm2020/lib/forms/public_api.mjs +4 -0
  448. package/esm2020/lib/forms/validators/equal-validator.directive.mjs +79 -0
  449. package/esm2020/lib/forms/validators/native-element-injector.directive.mjs +32 -0
  450. package/esm2020/lib/forms/validators/unique-validator-directive.mjs +75 -0
  451. package/esm2020/lib/http/http.module.mjs +20 -0
  452. package/{esm2015/lib/http/public_api.js → esm2020/lib/http/public_api.mjs} +0 -0
  453. package/{esm2015/lib/http/services/generic.service.js → esm2020/lib/http/services/generic.service.mjs} +0 -0
  454. package/esm2020/lib/layout/layout-card-over/layout-card-over.component.mjs +43 -0
  455. package/esm2020/lib/layout/layout-footer/layout-footer.component.mjs +34 -0
  456. package/esm2020/lib/layout/layout-manage-list/layout-manage-list.component.mjs +128 -0
  457. package/esm2020/lib/layout/layout-manage-list/layout-manage-list.directives.mjs +81 -0
  458. package/esm2020/lib/layout/layout-nav/layout-nav.component.mjs +62 -0
  459. package/esm2020/lib/layout/layout-nav-list/layout-nav-list.component.mjs +123 -0
  460. package/esm2020/lib/layout/layout-nav-list/layout-nav-list.directives.mjs +81 -0
  461. package/esm2020/lib/layout/layout-toggle.class.mjs +71 -0
  462. package/esm2020/lib/layout/layout.component.mjs +82 -0
  463. package/esm2020/lib/layout/layout.directives.mjs +81 -0
  464. package/esm2020/lib/layout/layout.module.mjs +118 -0
  465. package/esm2020/lib/layout/navigation-drawer/navigation-drawer.component.mjs +167 -0
  466. package/{esm2015/lib/layout/public_api.js → esm2020/lib/layout/public_api.mjs} +0 -0
  467. package/esm2020/lib/media/directives/media-toggle.directive.mjs +115 -0
  468. package/esm2020/lib/media/media.module.mjs +37 -0
  469. package/{esm2015/lib/media/public_api.js → esm2020/lib/media/public_api.mjs} +0 -0
  470. package/esm2020/lib/media/services/media.service.mjs +108 -0
  471. package/esm2020/lib/menu/components/menu.component.mjs +52 -0
  472. package/{esm2015/lib/menu/enums/menu-scope.js → esm2020/lib/menu/enums/menu-scope.mjs} +0 -0
  473. package/esm2020/lib/menu/menu.module.mjs +50 -0
  474. package/{esm2015/lib/menu/models/menu-item.js → esm2020/lib/menu/models/menu-item.mjs} +0 -0
  475. package/{esm2015/lib/menu/models/menu.js → esm2020/lib/menu/models/menu.mjs} +0 -0
  476. package/{esm2015/lib/menu/public_api.js → esm2020/lib/menu/public_api.mjs} +0 -0
  477. package/esm2020/lib/menu/services/menu-items.service.mjs +19 -0
  478. package/esm2020/lib/menu/services/menu.resolve.mjs +55 -0
  479. package/esm2020/lib/menu/services/menu.service.mjs +19 -0
  480. package/{esm2015/lib/search/public_api.js → esm2020/lib/search/public_api.mjs} +0 -0
  481. package/esm2020/lib/search/search.module.mjs +47 -0
  482. package/esm2020/lib/search/vd-search-box/vd-search-box.component.mjs +143 -0
  483. package/esm2020/lib/search/vd-search-input/vd-search-input.component.mjs +148 -0
  484. package/esm2020/lib/select/public_api.mjs +3 -0
  485. package/esm2020/lib/select/select.component.mjs +407 -0
  486. package/esm2020/lib/select/select.module.mjs +45 -0
  487. package/esm2020/lib/table/components/dynamic-table/dynamic-table.component.mjs +301 -0
  488. package/esm2020/lib/table/components/filter-clear.component.mjs +44 -0
  489. package/esm2020/lib/table/components/filter-date.component.mjs +151 -0
  490. package/esm2020/lib/table/components/filter-input.component.mjs +198 -0
  491. package/esm2020/lib/table/components/filter-select.component.mjs +334 -0
  492. package/esm2020/lib/table/directives/data-source-filter.directive.mjs +45 -0
  493. package/{esm2015/lib/table/enums/table-column-type.js → esm2020/lib/table/enums/table-column-type.mjs} +0 -0
  494. package/esm2020/lib/table/functions/decorators.mjs +135 -0
  495. package/esm2020/lib/table/functions/functions.mjs +15 -0
  496. package/{esm2015/lib/table/models/pagination.js → esm2020/lib/table/models/pagination.mjs} +0 -0
  497. package/{esm2015/lib/table/models/table-column.js → esm2020/lib/table/models/table-column.mjs} +0 -0
  498. package/{esm2015/lib/table/models/table-definition.js → esm2020/lib/table/models/table-definition.mjs} +0 -0
  499. package/{esm2015/lib/table/models/table-menu-item.js → esm2020/lib/table/models/table-menu-item.mjs} +0 -0
  500. package/esm2020/lib/table/paginator-intl.mjs +44 -0
  501. package/esm2020/lib/table/public_api.mjs +3 -0
  502. package/esm2020/lib/table/table.data-source.mjs +210 -0
  503. package/esm2020/lib/table/table.module.mjs +140 -0
  504. package/esm2020/lib/table/table.static-data-source.mjs +133 -0
  505. package/esm2020/messaia-cdk.mjs +5 -0
  506. package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  507. package/fesm2015/messaia-cdk.mjs +15946 -0
  508. package/fesm2015/messaia-cdk.mjs.map +1 -0
  509. package/fesm2020/messaia-cdk.mjs +15868 -0
  510. package/fesm2020/messaia-cdk.mjs.map +1 -0
  511. package/lib/base/base.module.d.ts +7 -0
  512. package/lib/base/components/base.component.d.ts +8 -0
  513. package/lib/base/components/generic-form.component.d.ts +3 -0
  514. package/lib/base/components/generic-list.component.d.ts +3 -0
  515. package/lib/base/interceptors/base.interceptor.d.ts +3 -0
  516. package/lib/base/interceptors/caching-interceptor.d.ts +3 -0
  517. package/lib/base/interceptors/loading.interceptor.d.ts +3 -0
  518. package/lib/base/services/file.service.d.ts +3 -0
  519. package/lib/base/services/loading-screen.service.d.ts +3 -0
  520. package/lib/base/services/print.service.d.ts +3 -0
  521. package/lib/chips/chips.module.d.ts +13 -2
  522. package/lib/chips/components/chips.component.d.ts +7 -0
  523. package/lib/chips/public_api.d.ts +1 -0
  524. package/lib/common/common.module.d.ts +20 -0
  525. package/lib/common/directives/disable-control.directive.d.ts +3 -0
  526. package/lib/common/functions/utils.d.ts +3 -0
  527. package/lib/common/helpers/app-storage.d.ts +3 -0
  528. package/lib/common/helpers/dynamic-builder.d.ts +3 -0
  529. package/lib/common/models/app-setting.d.ts +3 -0
  530. package/lib/common/pipes/data-source.pipe.d.ts +3 -0
  531. package/lib/common/pipes/enum.pipe.d.ts +3 -0
  532. package/lib/common/pipes/file-size.pipe.d.ts +3 -0
  533. package/lib/common/pipes/filter.pipe.d.ts +3 -0
  534. package/lib/common/pipes/first-letter.d.ts +3 -0
  535. package/lib/common/pipes/keys.d.ts +3 -0
  536. package/lib/common/pipes/month-name.pipe.d.ts +3 -0
  537. package/lib/common/pipes/only-number.d.ts +3 -0
  538. package/lib/common/pipes/order.pipe.d.ts +4 -1
  539. package/lib/common/pipes/placeholder.pipe.d.ts +3 -0
  540. package/lib/common/pipes/safe-html.pipe.d.ts +3 -0
  541. package/lib/common/pipes/time.pipe.d.ts +3 -0
  542. package/lib/common/pipes/titlecase.pipe.d.ts +3 -0
  543. package/lib/common/pipes/truncate.pipe.d.ts +3 -0
  544. package/lib/common/pipes/values.d.ts +3 -0
  545. package/lib/common/public_api.d.ts +16 -0
  546. package/lib/common/services/base.service.d.ts +3 -0
  547. package/lib/common/services/enum.service.d.ts +3 -0
  548. package/lib/common/styles/platform.scss +1 -1
  549. package/lib/common/theming/_all-theme.scss +1 -1
  550. package/lib/dialogs/alert-dialog/alert-dialog.component.d.ts +3 -0
  551. package/lib/dialogs/confirm-dialog/confirm-dialog.component.d.ts +3 -0
  552. package/lib/dialogs/dialog.component.d.ts +9 -0
  553. package/lib/dialogs/dialogs.module.d.ts +13 -0
  554. package/lib/dialogs/prompt-dialog/prompt-dialog.component.d.ts +3 -0
  555. package/lib/dialogs/services/dialog.service.d.ts +3 -0
  556. package/lib/file/file-input.component.d.ts +3 -0
  557. package/lib/file/file.module.d.ts +10 -0
  558. package/lib/form-validators/directives/base-directive.d.ts +3 -0
  559. package/lib/form-validators/directives/control-host.directive.d.ts +3 -0
  560. package/lib/form-validators/directives/html-control-template.directive.d.ts +3 -0
  561. package/lib/form-validators/directives/rx-form.directive.d.ts +3 -0
  562. package/lib/form-validators/directives/template-validations/async-validation.directive.d.ts +3 -0
  563. package/lib/form-validators/directives/template-validations/base-validator.directive.d.ts +3 -0
  564. package/lib/form-validators/directives/template-validations/control-expression-process.d.ts +3 -0
  565. package/lib/form-validators/directives/template-validations/file-control.directive.d.ts +3 -0
  566. package/lib/form-validators/directives/template-validations/image-file-control.directive.d.ts +3 -0
  567. package/lib/form-validators/directives/template-validations/rxformcontrol.directive.d.ts +3 -0
  568. package/lib/form-validators/domain/element-processor/decimal.provider.d.ts +3 -0
  569. package/lib/form-validators/services/reactive-form.module.d.ts +16 -0
  570. package/lib/form-validators/services/rx-form-builder.d.ts +3 -0
  571. package/lib/form-validators/services/typed-form-builder.d.ts +3 -0
  572. package/lib/forms/components/generic-form/generic-form.component.d.ts +11 -0
  573. package/lib/forms/directives/mat-form-field-readonly.directive.d.ts +3 -0
  574. package/lib/forms/forms.module.d.ts +23 -0
  575. package/lib/forms/helpers/abstract-mat-form-field.d.ts +4 -1
  576. package/lib/forms/helpers/value-accessor-base.d.ts +3 -0
  577. package/lib/forms/public_api.d.ts +2 -0
  578. package/lib/forms/validators/equal-validator.directive.d.ts +3 -0
  579. package/lib/forms/validators/native-element-injector.directive.d.ts +3 -0
  580. package/lib/forms/validators/unique-validator-directive.d.ts +3 -0
  581. package/lib/http/http.module.d.ts +5 -0
  582. package/lib/layout/layout-card-over/layout-card-over.component.d.ts +3 -0
  583. package/lib/layout/layout-footer/layout-footer.component.d.ts +3 -0
  584. package/lib/layout/layout-manage-list/layout-manage-list.component.d.ts +3 -0
  585. package/lib/layout/layout-manage-list/layout-manage-list.directives.d.ts +7 -0
  586. package/lib/layout/layout-nav/layout-nav.component.d.ts +3 -0
  587. package/lib/layout/layout-nav-list/layout-nav-list.component.d.ts +3 -0
  588. package/lib/layout/layout-nav-list/layout-nav-list.directives.d.ts +7 -0
  589. package/lib/layout/layout-toggle.class.d.ts +3 -0
  590. package/lib/layout/layout.component.d.ts +3 -0
  591. package/lib/layout/layout.directives.d.ts +7 -0
  592. package/lib/layout/layout.module.d.ts +22 -0
  593. package/lib/layout/navigation-drawer/navigation-drawer.component.d.ts +7 -0
  594. package/lib/media/directives/media-toggle.directive.d.ts +3 -0
  595. package/lib/media/media.module.d.ts +6 -0
  596. package/lib/media/services/media.service.d.ts +3 -0
  597. package/lib/menu/components/menu.component.d.ts +3 -0
  598. package/lib/menu/menu.module.d.ts +9 -0
  599. package/lib/menu/services/menu-items.service.d.ts +3 -0
  600. package/lib/menu/services/menu.resolve.d.ts +5 -0
  601. package/lib/menu/services/menu.service.d.ts +3 -0
  602. package/lib/search/search.module.d.ts +11 -0
  603. package/lib/search/vd-search-box/vd-search-box.component.d.ts +3 -0
  604. package/lib/search/vd-search-input/vd-search-input.component.d.ts +3 -0
  605. package/lib/select/public_api.d.ts +1 -0
  606. package/lib/select/select.component.d.ts +5 -0
  607. package/lib/select/select.module.d.ts +10 -0
  608. package/lib/table/components/dynamic-table/dynamic-table.component.d.ts +3 -0
  609. package/lib/table/components/filter-clear.component.d.ts +3 -0
  610. package/lib/table/components/filter-date.component.d.ts +3 -0
  611. package/lib/table/components/filter-input.component.d.ts +3 -0
  612. package/lib/table/components/filter-select.component.d.ts +5 -0
  613. package/lib/table/directives/data-source-filter.directive.d.ts +3 -0
  614. package/lib/table/paginator-intl.d.ts +3 -0
  615. package/lib/table/public_api.d.ts +1 -0
  616. package/lib/table/table.module.d.ts +28 -0
  617. package/messaia-cdk.d.ts +1 -25
  618. package/package.json +20 -8
  619. package/src/lib/common/styles/font/README.md +9 -0
  620. package/src/lib/layout/README.md +119 -0
  621. package/src/lib/layout/layout-card-over/README.md +36 -0
  622. package/src/lib/layout/layout-manage-list/README.md +76 -0
  623. package/src/lib/layout/layout-nav/README.md +40 -0
  624. package/src/lib/layout/layout-nav-list/README.md +85 -0
  625. package/bundles/messaia-cdk.umd.js +0 -17755
  626. package/bundles/messaia-cdk.umd.js.map +0 -1
  627. package/esm2015/lib/base/base.module.js +0 -47
  628. package/esm2015/lib/base/components/base.component.js +0 -441
  629. package/esm2015/lib/base/components/generic-form.component.js +0 -492
  630. package/esm2015/lib/base/components/generic-list.component.js +0 -469
  631. package/esm2015/lib/base/interceptors/base.interceptor.js +0 -148
  632. package/esm2015/lib/base/interceptors/caching-interceptor.js +0 -75
  633. package/esm2015/lib/base/interceptors/loading.interceptor.js +0 -70
  634. package/esm2015/lib/base/services/file.service.js +0 -25
  635. package/esm2015/lib/base/services/loading-screen.service.js +0 -46
  636. package/esm2015/lib/base/services/print.service.js +0 -49
  637. package/esm2015/lib/chips/chips.module.js +0 -44
  638. package/esm2015/lib/chips/components/chips.component.js +0 -420
  639. package/esm2015/lib/chips/public_api.js +0 -2
  640. package/esm2015/lib/common/behaviors/control-value-accesor.mixin.js +0 -41
  641. package/esm2015/lib/common/common.module.js +0 -86
  642. package/esm2015/lib/common/directives/disable-control.directive.js +0 -43
  643. package/esm2015/lib/common/functions/utils.js +0 -160
  644. package/esm2015/lib/common/helpers/app-storage.js +0 -51
  645. package/esm2015/lib/common/helpers/dynamic-builder.js +0 -58
  646. package/esm2015/lib/common/models/app-setting.js +0 -8
  647. package/esm2015/lib/common/pipes/data-source.pipe.js +0 -12
  648. package/esm2015/lib/common/pipes/enum.pipe.js +0 -20
  649. package/esm2015/lib/common/pipes/file-size.pipe.js +0 -34
  650. package/esm2015/lib/common/pipes/filter.pipe.js +0 -20
  651. package/esm2015/lib/common/pipes/first-letter.js +0 -21
  652. package/esm2015/lib/common/pipes/keys.js +0 -15
  653. package/esm2015/lib/common/pipes/month-name.pipe.js +0 -24
  654. package/esm2015/lib/common/pipes/only-number.js +0 -60
  655. package/esm2015/lib/common/pipes/order.pipe.js +0 -180
  656. package/esm2015/lib/common/pipes/placeholder.pipe.js +0 -23
  657. package/esm2015/lib/common/pipes/safe-html.pipe.js +0 -37
  658. package/esm2015/lib/common/pipes/time.pipe.js +0 -17
  659. package/esm2015/lib/common/pipes/titlecase.pipe.js +0 -11
  660. package/esm2015/lib/common/pipes/truncate.pipe.js +0 -12
  661. package/esm2015/lib/common/pipes/values.js +0 -11
  662. package/esm2015/lib/common/public_api.js +0 -2
  663. package/esm2015/lib/common/services/base.service.js +0 -26
  664. package/esm2015/lib/common/services/enum.service.js +0 -42
  665. package/esm2015/lib/dialogs/alert-dialog/alert-dialog.component.js +0 -38
  666. package/esm2015/lib/dialogs/confirm-dialog/confirm-dialog.component.js +0 -44
  667. package/esm2015/lib/dialogs/dialog.component.js +0 -47
  668. package/esm2015/lib/dialogs/dialogs.module.js +0 -54
  669. package/esm2015/lib/dialogs/prompt-dialog/prompt-dialog.component.js +0 -44
  670. package/esm2015/lib/dialogs/services/dialog.service.js +0 -145
  671. package/esm2015/lib/file/file-input.component.js +0 -301
  672. package/esm2015/lib/file/file.module.js +0 -25
  673. package/esm2015/lib/form-validators/abstract/typed-form.js +0 -3
  674. package/esm2015/lib/form-validators/algorithm/luhn-algorithm.js +0 -15
  675. package/esm2015/lib/form-validators/const/app-validators.const.js +0 -68
  676. package/esm2015/lib/form-validators/const/app.const.js +0 -17
  677. package/esm2015/lib/form-validators/const/config-names.const.js +0 -9
  678. package/esm2015/lib/form-validators/const/config-required-fields.const.js +0 -11
  679. package/esm2015/lib/form-validators/const/decorators.const.js +0 -23
  680. package/esm2015/lib/form-validators/const/events.const.js +0 -14
  681. package/esm2015/lib/form-validators/const/html-elements.const.js +0 -7
  682. package/esm2015/lib/form-validators/const/iban-country-wise-regex.const.js +0 -80
  683. package/esm2015/lib/form-validators/const/index.js +0 -6
  684. package/esm2015/lib/form-validators/const/operators.const.js +0 -7
  685. package/esm2015/lib/form-validators/const/validation-alphabet-locale.const.js +0 -9
  686. package/esm2015/lib/form-validators/const/validator.const.js +0 -8
  687. package/esm2015/lib/form-validators/core/defaultContainer.js +0 -243
  688. package/esm2015/lib/form-validators/core/validator.interface.js +0 -2
  689. package/esm2015/lib/form-validators/core/validator.static.js +0 -74
  690. package/esm2015/lib/form-validators/decorators/allOf.decorator.js +0 -10
  691. package/esm2015/lib/form-validators/decorators/alpha.decorator.js +0 -10
  692. package/esm2015/lib/form-validators/decorators/alphaNumeric.decorator.js +0 -10
  693. package/esm2015/lib/form-validators/decorators/and.decorator.js +0 -6
  694. package/esm2015/lib/form-validators/decorators/ascii.decorator.js +0 -6
  695. package/esm2015/lib/form-validators/decorators/async.decorator.js +0 -6
  696. package/esm2015/lib/form-validators/decorators/base-decorator.function.js +0 -7
  697. package/esm2015/lib/form-validators/decorators/choice.decorator.js +0 -10
  698. package/esm2015/lib/form-validators/decorators/compare.decorator.js +0 -6
  699. package/esm2015/lib/form-validators/decorators/compose.decorator.js +0 -6
  700. package/esm2015/lib/form-validators/decorators/contains.decorator.js +0 -10
  701. package/esm2015/lib/form-validators/decorators/credit-card.decorator.js +0 -10
  702. package/esm2015/lib/form-validators/decorators/cusip.decorator.js +0 -6
  703. package/esm2015/lib/form-validators/decorators/custom.decorator.js +0 -10
  704. package/esm2015/lib/form-validators/decorators/dataUri.decorator.js +0 -6
  705. package/esm2015/lib/form-validators/decorators/date.decorator.js +0 -10
  706. package/esm2015/lib/form-validators/decorators/different.decorator.js +0 -6
  707. package/esm2015/lib/form-validators/decorators/digit.decorator.js +0 -6
  708. package/esm2015/lib/form-validators/decorators/email.decorator.js +0 -6
  709. package/esm2015/lib/form-validators/decorators/endsWith.decorator.js +0 -10
  710. package/esm2015/lib/form-validators/decorators/even.decorator.js +0 -6
  711. package/esm2015/lib/form-validators/decorators/extension.decorator.js +0 -10
  712. package/esm2015/lib/form-validators/decorators/factor.decorator.js +0 -10
  713. package/esm2015/lib/form-validators/decorators/file.decorator.js +0 -10
  714. package/esm2015/lib/form-validators/decorators/fileSize.decorator.js +0 -10
  715. package/esm2015/lib/form-validators/decorators/greater-than-equal-to.decorator.js +0 -10
  716. package/esm2015/lib/form-validators/decorators/greater-than.decorator.js +0 -10
  717. package/esm2015/lib/form-validators/decorators/grid.decorator.js +0 -6
  718. package/esm2015/lib/form-validators/decorators/hexColor.decorator.js +0 -6
  719. package/esm2015/lib/form-validators/decorators/image.decorator.js +0 -10
  720. package/esm2015/lib/form-validators/decorators/index.js +0 -91
  721. package/esm2015/lib/form-validators/decorators/json.decorator.js +0 -6
  722. package/esm2015/lib/form-validators/decorators/latLong.decorator.js +0 -6
  723. package/esm2015/lib/form-validators/decorators/latitude.decorator.js +0 -6
  724. package/esm2015/lib/form-validators/decorators/leapYear.decorator.js +0 -6
  725. package/esm2015/lib/form-validators/decorators/less-than-equal-to.decorator.js +0 -10
  726. package/esm2015/lib/form-validators/decorators/less-than.decorator.js +0 -10
  727. package/esm2015/lib/form-validators/decorators/longitude.decorator.js +0 -6
  728. package/esm2015/lib/form-validators/decorators/lowercase.decorator.js +0 -6
  729. package/esm2015/lib/form-validators/decorators/mac.decorator.js +0 -6
  730. package/esm2015/lib/form-validators/decorators/mask.decorator.js +0 -6
  731. package/esm2015/lib/form-validators/decorators/maxDate.decorator.js +0 -10
  732. package/esm2015/lib/form-validators/decorators/maxLength.decorator.js +0 -10
  733. package/esm2015/lib/form-validators/decorators/maxNumber.decorator.js +0 -10
  734. package/esm2015/lib/form-validators/decorators/maxTime.decorator.js +0 -10
  735. package/esm2015/lib/form-validators/decorators/minDate.decorator.js +0 -10
  736. package/esm2015/lib/form-validators/decorators/minLength.decorator.js +0 -10
  737. package/esm2015/lib/form-validators/decorators/minNumber.decorator.js +0 -10
  738. package/esm2015/lib/form-validators/decorators/minTime.decorator.js +0 -10
  739. package/esm2015/lib/form-validators/decorators/model.decorator.js +0 -7
  740. package/esm2015/lib/form-validators/decorators/non-validation-decorators/disable.decorator.js +0 -8
  741. package/esm2015/lib/form-validators/decorators/non-validation-decorators/elementClass.decorator.js +0 -8
  742. package/esm2015/lib/form-validators/decorators/non-validation-decorators/error.decorator.js +0 -8
  743. package/esm2015/lib/form-validators/decorators/noneOf.decorator.js +0 -10
  744. package/esm2015/lib/form-validators/decorators/not.decorator.js +0 -6
  745. package/esm2015/lib/form-validators/decorators/notEmpty.decorator.js +0 -6
  746. package/esm2015/lib/form-validators/decorators/numeric.decorator.js +0 -10
  747. package/esm2015/lib/form-validators/decorators/odd.decorator.js +0 -6
  748. package/esm2015/lib/form-validators/decorators/oneOf.decorator.js +0 -10
  749. package/esm2015/lib/form-validators/decorators/or.decorator.js +0 -6
  750. package/esm2015/lib/form-validators/decorators/password.decorator.js +0 -10
  751. package/esm2015/lib/form-validators/decorators/pattern.decorator.js +0 -10
  752. package/esm2015/lib/form-validators/decorators/port.decorator.js +0 -6
  753. package/esm2015/lib/form-validators/decorators/primeNumber.decorator.js +0 -6
  754. package/esm2015/lib/form-validators/decorators/prop-array.decorator.js +0 -18
  755. package/esm2015/lib/form-validators/decorators/prop-object.decorator.js +0 -8
  756. package/esm2015/lib/form-validators/decorators/prop.decorator.js +0 -16
  757. package/esm2015/lib/form-validators/decorators/range.decorator.js +0 -10
  758. package/esm2015/lib/form-validators/decorators/required.decorator.js +0 -6
  759. package/esm2015/lib/form-validators/decorators/requiredTrue.decorator.js +0 -6
  760. package/esm2015/lib/form-validators/decorators/rule.decorator.js +0 -6
  761. package/esm2015/lib/form-validators/decorators/sanitize/blacklist.decorator.js +0 -8
  762. package/esm2015/lib/form-validators/decorators/sanitize/escape.decorator.js +0 -8
  763. package/esm2015/lib/form-validators/decorators/sanitize/ltrim.decorator.js +0 -8
  764. package/esm2015/lib/form-validators/decorators/sanitize/prefix.decorator.js +0 -8
  765. package/esm2015/lib/form-validators/decorators/sanitize/rtrim.decorator.js +0 -8
  766. package/esm2015/lib/form-validators/decorators/sanitize/sanitize.decorator.js +0 -8
  767. package/esm2015/lib/form-validators/decorators/sanitize/stripLow.decorator.js +0 -8
  768. package/esm2015/lib/form-validators/decorators/sanitize/suffix.decorator.js +0 -8
  769. package/esm2015/lib/form-validators/decorators/sanitize/toBoolean.decorator.js +0 -8
  770. package/esm2015/lib/form-validators/decorators/sanitize/toDate.decorator.js +0 -8
  771. package/esm2015/lib/form-validators/decorators/sanitize/toDouble.decorator.js +0 -8
  772. package/esm2015/lib/form-validators/decorators/sanitize/toFloat.decorator.js +0 -8
  773. package/esm2015/lib/form-validators/decorators/sanitize/toInt.decorator.js +0 -8
  774. package/esm2015/lib/form-validators/decorators/sanitize/toString.decorator.js +0 -8
  775. package/esm2015/lib/form-validators/decorators/sanitize/trim.decorator.js +0 -8
  776. package/esm2015/lib/form-validators/decorators/sanitize/whitelist.decorator.js +0 -8
  777. package/esm2015/lib/form-validators/decorators/startsWith.decorator.js +0 -10
  778. package/esm2015/lib/form-validators/decorators/time.decorator.js +0 -10
  779. package/esm2015/lib/form-validators/decorators/unique.decorator.js +0 -6
  780. package/esm2015/lib/form-validators/decorators/uppercase.decorator.js +0 -6
  781. package/esm2015/lib/form-validators/decorators/url.decorator.js +0 -10
  782. package/esm2015/lib/form-validators/directives/base-directive.js +0 -43
  783. package/esm2015/lib/form-validators/directives/control-host.directive.js +0 -42
  784. package/esm2015/lib/form-validators/directives/html-control-template.directive.js +0 -28
  785. package/esm2015/lib/form-validators/directives/rx-form.directive.js +0 -131
  786. package/esm2015/lib/form-validators/directives/template-validations/async-validation.directive.js +0 -26
  787. package/esm2015/lib/form-validators/directives/template-validations/base-validator.directive.js +0 -42
  788. package/esm2015/lib/form-validators/directives/template-validations/control-expression-process.js +0 -25
  789. package/esm2015/lib/form-validators/directives/template-validations/file-control.directive.js +0 -93
  790. package/esm2015/lib/form-validators/directives/template-validations/image-file-control.directive.js +0 -55
  791. package/esm2015/lib/form-validators/directives/template-validations/rxformcontrol.directive.js +0 -237
  792. package/esm2015/lib/form-validators/domain/disable-provider.js +0 -93
  793. package/esm2015/lib/form-validators/domain/element-processor/decimal.provider.js +0 -64
  794. package/esm2015/lib/form-validators/domain/element-processor/mask.provider.js +0 -430
  795. package/esm2015/lib/form-validators/domain/form-data.js +0 -47
  796. package/esm2015/lib/form-validators/enums/error-message-binding-strategy.js +0 -11
  797. package/esm2015/lib/form-validators/enums/index.js +0 -5
  798. package/esm2015/lib/form-validators/enums/ip-version.js +0 -7
  799. package/esm2015/lib/form-validators/enums/numeric-value-type.js +0 -7
  800. package/esm2015/lib/form-validators/enums/reset-type.js +0 -10
  801. package/esm2015/lib/form-validators/enums/url-validation-type.js +0 -7
  802. package/esm2015/lib/form-validators/models/config/alpha-config.js +0 -2
  803. package/esm2015/lib/form-validators/models/config/array-config.js +0 -2
  804. package/esm2015/lib/form-validators/models/config/base-config-fn.js +0 -2
  805. package/esm2015/lib/form-validators/models/config/base-config.js +0 -2
  806. package/esm2015/lib/form-validators/models/config/base-date-config.js +0 -2
  807. package/esm2015/lib/form-validators/models/config/choice-config.js +0 -2
  808. package/esm2015/lib/form-validators/models/config/compare-config.js +0 -2
  809. package/esm2015/lib/form-validators/models/config/component-config.js +0 -2
  810. package/esm2015/lib/form-validators/models/config/compose-config.js +0 -2
  811. package/esm2015/lib/form-validators/models/config/contains-config.js +0 -2
  812. package/esm2015/lib/form-validators/models/config/credit-card-config.js +0 -2
  813. package/esm2015/lib/form-validators/models/config/custom-config.js +0 -2
  814. package/esm2015/lib/form-validators/models/config/date-config.js +0 -2
  815. package/esm2015/lib/form-validators/models/config/default-config.js +0 -2
  816. package/esm2015/lib/form-validators/models/config/digit-config.js +0 -2
  817. package/esm2015/lib/form-validators/models/config/disable-config.js +0 -2
  818. package/esm2015/lib/form-validators/models/config/element-class-config.js +0 -2
  819. package/esm2015/lib/form-validators/models/config/email-config.js +0 -2
  820. package/esm2015/lib/form-validators/models/config/error-config.js +0 -2
  821. package/esm2015/lib/form-validators/models/config/extension-config.js +0 -2
  822. package/esm2015/lib/form-validators/models/config/factor-config.js +0 -2
  823. package/esm2015/lib/form-validators/models/config/field-config.js +0 -2
  824. package/esm2015/lib/form-validators/models/config/file-config.js +0 -2
  825. package/esm2015/lib/form-validators/models/config/hex-color-config.js +0 -2
  826. package/esm2015/lib/form-validators/models/config/iban-config.js +0 -2
  827. package/esm2015/lib/form-validators/models/config/image-config.js +0 -2
  828. package/esm2015/lib/form-validators/models/config/index.js +0 -35
  829. package/esm2015/lib/form-validators/models/config/ip-config.js +0 -2
  830. package/esm2015/lib/form-validators/models/config/logical-operator-config.js +0 -2
  831. package/esm2015/lib/form-validators/models/config/mask-config.js +0 -2
  832. package/esm2015/lib/form-validators/models/config/max-date-config.js +0 -2
  833. package/esm2015/lib/form-validators/models/config/message-config.js +0 -2
  834. package/esm2015/lib/form-validators/models/config/min-date-config.js +0 -2
  835. package/esm2015/lib/form-validators/models/config/model-config.js +0 -2
  836. package/esm2015/lib/form-validators/models/config/number-config.js +0 -2
  837. package/esm2015/lib/form-validators/models/config/numeric-config.js +0 -2
  838. package/esm2015/lib/form-validators/models/config/password-config.js +0 -2
  839. package/esm2015/lib/form-validators/models/config/pattern-config.js +0 -2
  840. package/esm2015/lib/form-validators/models/config/prop-config.js +0 -2
  841. package/esm2015/lib/form-validators/models/config/props-config.js +0 -2
  842. package/esm2015/lib/form-validators/models/config/range-config.js +0 -2
  843. package/esm2015/lib/form-validators/models/config/relational-operator-config.js +0 -2
  844. package/esm2015/lib/form-validators/models/config/required-config.js +0 -2
  845. package/esm2015/lib/form-validators/models/config/rule-config.js +0 -2
  846. package/esm2015/lib/form-validators/models/config/sanitize-config.js +0 -2
  847. package/esm2015/lib/form-validators/models/config/size-config.js +0 -2
  848. package/esm2015/lib/form-validators/models/config/string-comparison-config.js +0 -2
  849. package/esm2015/lib/form-validators/models/config/time-config.js +0 -2
  850. package/esm2015/lib/form-validators/models/config/todate-config.js +0 -2
  851. package/esm2015/lib/form-validators/models/config/unique-config.js +0 -2
  852. package/esm2015/lib/form-validators/models/config/url-config.js +0 -2
  853. package/esm2015/lib/form-validators/models/form-builder-configuration.js +0 -8
  854. package/esm2015/lib/form-validators/models/index.js +0 -3
  855. package/esm2015/lib/form-validators/models/interface/array-prop-instance-config.interface.js +0 -2
  856. package/esm2015/lib/form-validators/models/interface/auto-instance-config.interface.js +0 -2
  857. package/esm2015/lib/form-validators/models/interface/form-data-config.js +0 -2
  858. package/esm2015/lib/form-validators/models/interface/i-abstract-control.js +0 -4
  859. package/esm2015/lib/form-validators/models/interface/i-form-group.js +0 -2
  860. package/esm2015/lib/form-validators/models/interface/instance-argument.interface.js +0 -2
  861. package/esm2015/lib/form-validators/models/interface/object-prop-instance-config.interface.js +0 -2
  862. package/esm2015/lib/form-validators/models/interface/options.js +0 -2
  863. package/esm2015/lib/form-validators/models/password-validation.model.js +0 -2
  864. package/esm2015/lib/form-validators/models/prop-validation-config.js +0 -2
  865. package/esm2015/lib/form-validators/public_api.js +0 -25
  866. package/esm2015/lib/form-validators/reactive-form-validators/allOf.validator.js +0 -22
  867. package/esm2015/lib/form-validators/reactive-form-validators/alpha.validator.js +0 -9
  868. package/esm2015/lib/form-validators/reactive-form-validators/alphaNumeric.validator.js +0 -9
  869. package/esm2015/lib/form-validators/reactive-form-validators/and.validator.js +0 -23
  870. package/esm2015/lib/form-validators/reactive-form-validators/ascii.validator.js +0 -9
  871. package/esm2015/lib/form-validators/reactive-form-validators/async/base.async.validator.js +0 -24
  872. package/esm2015/lib/form-validators/reactive-form-validators/choice.validator.js +0 -19
  873. package/esm2015/lib/form-validators/reactive-form-validators/compare.validator.js +0 -20
  874. package/esm2015/lib/form-validators/reactive-form-validators/compose.validator.js +0 -23
  875. package/esm2015/lib/form-validators/reactive-form-validators/conditional-change.validator.js +0 -63
  876. package/esm2015/lib/form-validators/reactive-form-validators/contains.validator.js +0 -15
  877. package/esm2015/lib/form-validators/reactive-form-validators/credit-card.validator.js +0 -48
  878. package/esm2015/lib/form-validators/reactive-form-validators/cusip.validator.js +0 -38
  879. package/esm2015/lib/form-validators/reactive-form-validators/custom.validator.js +0 -23
  880. package/esm2015/lib/form-validators/reactive-form-validators/dataUri.validator.js +0 -9
  881. package/esm2015/lib/form-validators/reactive-form-validators/date.validator.js +0 -8
  882. package/esm2015/lib/form-validators/reactive-form-validators/different.validator.js +0 -19
  883. package/esm2015/lib/form-validators/reactive-form-validators/digit.validator.js +0 -9
  884. package/esm2015/lib/form-validators/reactive-form-validators/email.validator.js +0 -9
  885. package/esm2015/lib/form-validators/reactive-form-validators/endsWith.validator.js +0 -16
  886. package/esm2015/lib/form-validators/reactive-form-validators/even.validator.js +0 -15
  887. package/esm2015/lib/form-validators/reactive-form-validators/extension.validator.js +0 -40
  888. package/esm2015/lib/form-validators/reactive-form-validators/factor.validator.js +0 -37
  889. package/esm2015/lib/form-validators/reactive-form-validators/file.validator.js +0 -26
  890. package/esm2015/lib/form-validators/reactive-form-validators/fileSize.validator.js +0 -32
  891. package/esm2015/lib/form-validators/reactive-form-validators/greater-than-equal-to.validator.js +0 -8
  892. package/esm2015/lib/form-validators/reactive-form-validators/greater-than.validator.js +0 -8
  893. package/esm2015/lib/form-validators/reactive-form-validators/grid.validator.js +0 -31
  894. package/esm2015/lib/form-validators/reactive-form-validators/hexcolor.validator.js +0 -9
  895. package/esm2015/lib/form-validators/reactive-form-validators/iban.validator.js +0 -30
  896. package/esm2015/lib/form-validators/reactive-form-validators/image.validator.js +0 -48
  897. package/esm2015/lib/form-validators/reactive-form-validators/index.js +0 -66
  898. package/esm2015/lib/form-validators/reactive-form-validators/ip.validator.js +0 -35
  899. package/esm2015/lib/form-validators/reactive-form-validators/json.validator.js +0 -26
  900. package/esm2015/lib/form-validators/reactive-form-validators/latLong.validator.js +0 -18
  901. package/esm2015/lib/form-validators/reactive-form-validators/latitude.validator.js +0 -9
  902. package/esm2015/lib/form-validators/reactive-form-validators/leapYear.validator.js +0 -16
  903. package/esm2015/lib/form-validators/reactive-form-validators/less-than-equal-to.validator.js +0 -8
  904. package/esm2015/lib/form-validators/reactive-form-validators/less-than.validator.js +0 -8
  905. package/esm2015/lib/form-validators/reactive-form-validators/longitude.validator.js +0 -9
  906. package/esm2015/lib/form-validators/reactive-form-validators/lowercase.validator.js +0 -15
  907. package/esm2015/lib/form-validators/reactive-form-validators/mac.validator.js +0 -9
  908. package/esm2015/lib/form-validators/reactive-form-validators/mask.validator.js +0 -13
  909. package/esm2015/lib/form-validators/reactive-form-validators/maxDate.validator.js +0 -8
  910. package/esm2015/lib/form-validators/reactive-form-validators/maxLength.validator.js +0 -16
  911. package/esm2015/lib/form-validators/reactive-form-validators/maxNumber.validator.js +0 -16
  912. package/esm2015/lib/form-validators/reactive-form-validators/maxTime.validator.js +0 -8
  913. package/esm2015/lib/form-validators/reactive-form-validators/minDate.validator.js +0 -8
  914. package/esm2015/lib/form-validators/reactive-form-validators/minLength.validator.js +0 -16
  915. package/esm2015/lib/form-validators/reactive-form-validators/minNumber.validator.js +0 -16
  916. package/esm2015/lib/form-validators/reactive-form-validators/minTime.validator.js +0 -8
  917. package/esm2015/lib/form-validators/reactive-form-validators/noneOf.validator.js +0 -24
  918. package/esm2015/lib/form-validators/reactive-form-validators/not.validator.js +0 -23
  919. package/esm2015/lib/form-validators/reactive-form-validators/notEmpty.validator.js +0 -17
  920. package/esm2015/lib/form-validators/reactive-form-validators/numeric.validator.js +0 -20
  921. package/esm2015/lib/form-validators/reactive-form-validators/odd.validator.js +0 -16
  922. package/esm2015/lib/form-validators/reactive-form-validators/oneOf.validator.js +0 -22
  923. package/esm2015/lib/form-validators/reactive-form-validators/or.validator.js +0 -23
  924. package/esm2015/lib/form-validators/reactive-form-validators/password.validator.js +0 -33
  925. package/esm2015/lib/form-validators/reactive-form-validators/pattern.validator.js +0 -17
  926. package/esm2015/lib/form-validators/reactive-form-validators/port.validator.js +0 -18
  927. package/esm2015/lib/form-validators/reactive-form-validators/primeNumber.validator.js +0 -26
  928. package/esm2015/lib/form-validators/reactive-form-validators/range.validator.js +0 -16
  929. package/esm2015/lib/form-validators/reactive-form-validators/required.validator.js +0 -17
  930. package/esm2015/lib/form-validators/reactive-form-validators/requiredTrue.validator.js +0 -16
  931. package/esm2015/lib/form-validators/reactive-form-validators/rule.validator.js +0 -20
  932. package/esm2015/lib/form-validators/reactive-form-validators/startsWith.validator.js +0 -16
  933. package/esm2015/lib/form-validators/reactive-form-validators/time.validator.js +0 -18
  934. package/esm2015/lib/form-validators/reactive-form-validators/unique.validator.js +0 -70
  935. package/esm2015/lib/form-validators/reactive-form-validators/uppercase.validator.js +0 -15
  936. package/esm2015/lib/form-validators/reactive-form-validators/url.validator.js +0 -28
  937. package/esm2015/lib/form-validators/services/base-form-builder.js +0 -115
  938. package/esm2015/lib/form-validators/services/entity.service.js +0 -64
  939. package/esm2015/lib/form-validators/services/form-control.js +0 -349
  940. package/esm2015/lib/form-validators/services/form-group.js +0 -2
  941. package/esm2015/lib/form-validators/services/reactive-form.module.js +0 -53
  942. package/esm2015/lib/form-validators/services/rx-form-array.js +0 -100
  943. package/esm2015/lib/form-validators/services/rx-form-builder.js +0 -565
  944. package/esm2015/lib/form-validators/services/rx-form-group.js +0 -299
  945. package/esm2015/lib/form-validators/services/typed-form-builder.js +0 -29
  946. package/esm2015/lib/form-validators/util/alphabet-regex.locale.js +0 -29
  947. package/esm2015/lib/form-validators/util/app-util.js +0 -141
  948. package/esm2015/lib/form-validators/util/check-length.js +0 -10
  949. package/esm2015/lib/form-validators/util/config-provider.js +0 -35
  950. package/esm2015/lib/form-validators/util/date-checker.function.js +0 -52
  951. package/esm2015/lib/form-validators/util/date-provider.js +0 -97
  952. package/esm2015/lib/form-validators/util/form-const.js +0 -3
  953. package/esm2015/lib/form-validators/util/form-provider.js +0 -37
  954. package/esm2015/lib/form-validators/util/index.js +0 -7
  955. package/esm2015/lib/form-validators/util/instance-provider.function.js +0 -30
  956. package/esm2015/lib/form-validators/util/ip-checker.js +0 -18
  957. package/esm2015/lib/form-validators/util/linq.js +0 -147
  958. package/esm2015/lib/form-validators/util/object-maker.js +0 -38
  959. package/esm2015/lib/form-validators/util/reactive-form-config.js +0 -23
  960. package/esm2015/lib/form-validators/util/regex-rules.js +0 -37
  961. package/esm2015/lib/form-validators/util/regex-validator.js +0 -74
  962. package/esm2015/lib/form-validators/util/relational-checker.function.js +0 -85
  963. package/esm2015/lib/form-validators/util/reset-form.js +0 -56
  964. package/esm2015/lib/form-validators/util/sanitizers.js +0 -131
  965. package/esm2015/lib/form-validators/util/time-checker.function.js +0 -48
  966. package/esm2015/lib/form-validators/util/type.js +0 -2
  967. package/esm2015/lib/form-validators/util/validator-value-checker.js +0 -17
  968. package/esm2015/lib/form-validators/validators-extension/allOf-validator.extension.js +0 -11
  969. package/esm2015/lib/form-validators/validators-extension/alpha-validator.extension.js +0 -11
  970. package/esm2015/lib/form-validators/validators-extension/alphaNumeric-validator.extension.js +0 -11
  971. package/esm2015/lib/form-validators/validators-extension/and-validator.extension.js +0 -7
  972. package/esm2015/lib/form-validators/validators-extension/ascii-validator.extension.js +0 -7
  973. package/esm2015/lib/form-validators/validators-extension/base-validator.function.js +0 -33
  974. package/esm2015/lib/form-validators/validators-extension/choice-validator.extension.js +0 -11
  975. package/esm2015/lib/form-validators/validators-extension/compare-validator.extension.js +0 -7
  976. package/esm2015/lib/form-validators/validators-extension/compose-validator.extension.js +0 -7
  977. package/esm2015/lib/form-validators/validators-extension/contains-validator.extension.js +0 -11
  978. package/esm2015/lib/form-validators/validators-extension/credit-card-validator.extension.js +0 -11
  979. package/esm2015/lib/form-validators/validators-extension/cusip-validator.extension.js +0 -7
  980. package/esm2015/lib/form-validators/validators-extension/custom-validator.extension.js +0 -11
  981. package/esm2015/lib/form-validators/validators-extension/dataUri-validator.extension.js +0 -7
  982. package/esm2015/lib/form-validators/validators-extension/date-validator.extension.js +0 -11
  983. package/esm2015/lib/form-validators/validators-extension/different-validator.extension.js +0 -7
  984. package/esm2015/lib/form-validators/validators-extension/digit-validator.extension.js +0 -7
  985. package/esm2015/lib/form-validators/validators-extension/email-validator.extension.js +0 -7
  986. package/esm2015/lib/form-validators/validators-extension/endsWith-validator.extension.js +0 -11
  987. package/esm2015/lib/form-validators/validators-extension/even-validator.extension.js +0 -7
  988. package/esm2015/lib/form-validators/validators-extension/extension-validator.extension.js +0 -10
  989. package/esm2015/lib/form-validators/validators-extension/factor-validator.extension.js +0 -11
  990. package/esm2015/lib/form-validators/validators-extension/file-validator.extension.js +0 -10
  991. package/esm2015/lib/form-validators/validators-extension/fileSize-validator.extension.js +0 -10
  992. package/esm2015/lib/form-validators/validators-extension/greater-than-equal-to-validator.extension.js +0 -11
  993. package/esm2015/lib/form-validators/validators-extension/greater-than-validator.extension.js +0 -11
  994. package/esm2015/lib/form-validators/validators-extension/grid-validator.extension.js +0 -7
  995. package/esm2015/lib/form-validators/validators-extension/hexcolor-validator.extension.js +0 -7
  996. package/esm2015/lib/form-validators/validators-extension/iban-validator.extension.js +0 -11
  997. package/esm2015/lib/form-validators/validators-extension/image-validator.extension.js +0 -10
  998. package/esm2015/lib/form-validators/validators-extension/index.js +0 -68
  999. package/esm2015/lib/form-validators/validators-extension/ip-validator.extension.js +0 -11
  1000. package/esm2015/lib/form-validators/validators-extension/json-validator.extension.js +0 -7
  1001. package/esm2015/lib/form-validators/validators-extension/latLong-validator.extension.js +0 -7
  1002. package/esm2015/lib/form-validators/validators-extension/latitude-validator.extension.js +0 -7
  1003. package/esm2015/lib/form-validators/validators-extension/leapYear-validator.extension.js +0 -7
  1004. package/esm2015/lib/form-validators/validators-extension/less-than-equal-to-validator.extension.js +0 -11
  1005. package/esm2015/lib/form-validators/validators-extension/less-than-validator.extension.js +0 -11
  1006. package/esm2015/lib/form-validators/validators-extension/longitude-validator.extension.js +0 -7
  1007. package/esm2015/lib/form-validators/validators-extension/lowercase-validator.extension.js +0 -7
  1008. package/esm2015/lib/form-validators/validators-extension/mac-validator.extension.js +0 -7
  1009. package/esm2015/lib/form-validators/validators-extension/mask-validator.extension.js +0 -7
  1010. package/esm2015/lib/form-validators/validators-extension/maxDate-validator.extension.js +0 -11
  1011. package/esm2015/lib/form-validators/validators-extension/maxLength-validator.extension.js +0 -11
  1012. package/esm2015/lib/form-validators/validators-extension/maxNumber-validator.extension.js +0 -11
  1013. package/esm2015/lib/form-validators/validators-extension/maxTime-validator.extension.js +0 -11
  1014. package/esm2015/lib/form-validators/validators-extension/minDate-validator.extension.js +0 -11
  1015. package/esm2015/lib/form-validators/validators-extension/minLength-validator.extension.js +0 -11
  1016. package/esm2015/lib/form-validators/validators-extension/minNumber-validator.extension.js +0 -11
  1017. package/esm2015/lib/form-validators/validators-extension/minTime-validator.extension.js +0 -11
  1018. package/esm2015/lib/form-validators/validators-extension/noneOf-validator.extension.js +0 -11
  1019. package/esm2015/lib/form-validators/validators-extension/not-validator.extension.js +0 -7
  1020. package/esm2015/lib/form-validators/validators-extension/notEmpty-validator.extension.js +0 -7
  1021. package/esm2015/lib/form-validators/validators-extension/numeric-validator.extension.js +0 -11
  1022. package/esm2015/lib/form-validators/validators-extension/odd-validator.extension.js +0 -7
  1023. package/esm2015/lib/form-validators/validators-extension/oneOf-validator.extension.js +0 -11
  1024. package/esm2015/lib/form-validators/validators-extension/or-validator.extension.js +0 -7
  1025. package/esm2015/lib/form-validators/validators-extension/password-validator.extension.js +0 -11
  1026. package/esm2015/lib/form-validators/validators-extension/pattern-validator.extension.js +0 -11
  1027. package/esm2015/lib/form-validators/validators-extension/port-validator.extension.js +0 -7
  1028. package/esm2015/lib/form-validators/validators-extension/primeNumber-validator.extension.js +0 -7
  1029. package/esm2015/lib/form-validators/validators-extension/range-validator.extension.js +0 -11
  1030. package/esm2015/lib/form-validators/validators-extension/required-validator.extension.js +0 -7
  1031. package/esm2015/lib/form-validators/validators-extension/requiredTrue-validator.extension.js +0 -7
  1032. package/esm2015/lib/form-validators/validators-extension/rxweb-validators.js +0 -108
  1033. package/esm2015/lib/form-validators/validators-extension/startsWith-validator.extension.js +0 -11
  1034. package/esm2015/lib/form-validators/validators-extension/time-validator.extension.js +0 -11
  1035. package/esm2015/lib/form-validators/validators-extension/unique-validator.extension.js +0 -7
  1036. package/esm2015/lib/form-validators/validators-extension/uppercase-validator.extension.js +0 -7
  1037. package/esm2015/lib/form-validators/validators-extension/url-validator.extension.js +0 -11
  1038. package/esm2015/lib/form-validators/validators-function/alpha-validation.function.js +0 -37
  1039. package/esm2015/lib/form-validators/validators-function/regex-validation.function.js +0 -16
  1040. package/esm2015/lib/forms/components/generic-form/generic-form.component.js +0 -149
  1041. package/esm2015/lib/forms/directives/mat-form-field-readonly.directive.js +0 -40
  1042. package/esm2015/lib/forms/forms.module.js +0 -70
  1043. package/esm2015/lib/forms/functions/decorators.js +0 -129
  1044. package/esm2015/lib/forms/helpers/abstract-mat-form-field.js +0 -257
  1045. package/esm2015/lib/forms/helpers/value-accessor-base.js +0 -140
  1046. package/esm2015/lib/forms/public_api.js +0 -2
  1047. package/esm2015/lib/forms/validators/equal-validator.directive.js +0 -75
  1048. package/esm2015/lib/forms/validators/native-element-injector.directive.js +0 -38
  1049. package/esm2015/lib/forms/validators/unique-validator-directive.js +0 -78
  1050. package/esm2015/lib/http/http.module.js +0 -14
  1051. package/esm2015/lib/layout/layout-card-over/layout-card-over.component.js +0 -35
  1052. package/esm2015/lib/layout/layout-footer/layout-footer.component.js +0 -48
  1053. package/esm2015/lib/layout/layout-manage-list/layout-manage-list.component.js +0 -125
  1054. package/esm2015/lib/layout/layout-manage-list/layout-manage-list.directives.js +0 -103
  1055. package/esm2015/lib/layout/layout-nav/layout-nav.component.js +0 -59
  1056. package/esm2015/lib/layout/layout-nav-list/layout-nav-list.component.js +0 -111
  1057. package/esm2015/lib/layout/layout-nav-list/layout-nav-list.directives.js +0 -103
  1058. package/esm2015/lib/layout/layout-toggle.class.js +0 -80
  1059. package/esm2015/lib/layout/layout.component.js +0 -77
  1060. package/esm2015/lib/layout/layout.directives.js +0 -103
  1061. package/esm2015/lib/layout/layout.module.js +0 -64
  1062. package/esm2015/lib/layout/navigation-drawer/navigation-drawer.component.js +0 -148
  1063. package/esm2015/lib/media/directives/media-toggle.directive.js +0 -118
  1064. package/esm2015/lib/media/media.module.js +0 -29
  1065. package/esm2015/lib/media/services/media.service.js +0 -116
  1066. package/esm2015/lib/menu/components/menu.component.js +0 -45
  1067. package/esm2015/lib/menu/menu.module.js +0 -38
  1068. package/esm2015/lib/menu/services/menu-items.service.js +0 -26
  1069. package/esm2015/lib/menu/services/menu.resolve.js +0 -61
  1070. package/esm2015/lib/menu/services/menu.service.js +0 -26
  1071. package/esm2015/lib/search/search.module.js +0 -31
  1072. package/esm2015/lib/search/vd-search-box/vd-search-box.component.js +0 -111
  1073. package/esm2015/lib/search/vd-search-input/vd-search-input.component.js +0 -122
  1074. package/esm2015/lib/select/public_api.js +0 -2
  1075. package/esm2015/lib/select/select.component.js +0 -396
  1076. package/esm2015/lib/select/select.module.js +0 -29
  1077. package/esm2015/lib/table/components/dynamic-table/dynamic-table.component.js +0 -264
  1078. package/esm2015/lib/table/components/filter-clear.component.js +0 -45
  1079. package/esm2015/lib/table/components/filter-date.component.js +0 -133
  1080. package/esm2015/lib/table/components/filter-input.component.js +0 -179
  1081. package/esm2015/lib/table/components/filter-select.component.js +0 -309
  1082. package/esm2015/lib/table/directives/data-source-filter.directive.js +0 -43
  1083. package/esm2015/lib/table/functions/decorators.js +0 -137
  1084. package/esm2015/lib/table/functions/functions.js +0 -18
  1085. package/esm2015/lib/table/paginator-intl.js +0 -42
  1086. package/esm2015/lib/table/public_api.js +0 -2
  1087. package/esm2015/lib/table/table.data-source.js +0 -211
  1088. package/esm2015/lib/table/table.module.js +0 -84
  1089. package/esm2015/lib/table/table.static-data-source.js +0 -135
  1090. package/esm2015/messaia-cdk.js +0 -29
  1091. package/fesm2015/messaia-cdk.js +0 -15733
  1092. package/fesm2015/messaia-cdk.js.map +0 -1
  1093. package/messaia-cdk.metadata.json +0 -1
@@ -0,0 +1,461 @@
1
+ import { ChangeDetectorRef, Directive, HostListener, ViewChild } from '@angular/core';
2
+ import { MatPaginator } from '@angular/material/paginator';
3
+ import { MatSort } from '@angular/material/sort';
4
+ import { ActivatedRoute } from '@angular/router';
5
+ import { saveAs } from 'file-saver';
6
+ import { getEndpoint } from '../../common/functions/functions';
7
+ import { Utils } from '../../common/functions/utils';
8
+ import { AppStorage } from '../../common/helpers/app-storage';
9
+ import { VdDynamicTableComponent } from '../../table/components/dynamic-table/dynamic-table.component';
10
+ import { TableColumnType } from '../../table/enums/table-column-type';
11
+ import { getTableDefinition } from '../../table/functions/functions';
12
+ import { TableColumn } from '../../table/models/table-column';
13
+ import { TableDataSource } from '../../table/table.data-source';
14
+ import { BaseComponent } from './base.component';
15
+ import * as i0 from "@angular/core";
16
+ import * as i1 from "@angular/router";
17
+ /**
18
+ * A base list component for components with pagination support
19
+ */
20
+ // @dynamic
21
+ export class GenericListComponent extends BaseComponent {
22
+ /**
23
+ * Constructor
24
+ * @param service
25
+ */
26
+ constructor(service, route, changeDetectorRef, classType) {
27
+ super(route, changeDetectorRef);
28
+ this.service = service;
29
+ this.route = route;
30
+ this.changeDetectorRef = changeDetectorRef;
31
+ this.classType = classType;
32
+ /**
33
+ * List title
34
+ */
35
+ this.subtitle = '';
36
+ /**
37
+ * Page size options
38
+ */
39
+ this.pageSizeOptions = [5, 10, 15, 20, 30, 50, 100, 200];
40
+ /**
41
+ * The navigations to includes
42
+ */
43
+ this.includes = [];
44
+ /**
45
+ * Get params
46
+ */
47
+ this.query = {};
48
+ /**
49
+ * columns: TableColumn[]
50
+ */
51
+ this.columns = [];
52
+ /**
53
+ * The type of the dialog for creation
54
+ */
55
+ this.addDialogType = null;
56
+ /**
57
+ * Shows the column 'Checkbox'
58
+ */
59
+ this.selectable = true;
60
+ /**
61
+ * If true, show the button 'Add'
62
+ */
63
+ this.addable = true;
64
+ /**
65
+ * If true, show the menu 'Edit'
66
+ */
67
+ this.editable = true;
68
+ /**
69
+ * If true, show the menu 'Delete'
70
+ */
71
+ this.deleteable = true;
72
+ /**
73
+ * If true, show the menu 'Download'
74
+ */
75
+ this.downloadable = false;
76
+ /**
77
+ * If true, show the menu 'Duplicate'
78
+ */
79
+ this.duplicable = false;
80
+ /**
81
+ * rowNgClass: Function
82
+ */
83
+ this.rowNgClass = null;
84
+ /**
85
+ * rowClick: Function
86
+ */
87
+ this.rowClick = null;
88
+ /**
89
+ * detailsTemplate: Function
90
+ */
91
+ this.detailsTemplate = null;
92
+ /**
93
+ * Toolbar menu items
94
+ */
95
+ this.toolbarMenus = [];
96
+ /**
97
+ * Table row menu items
98
+ */
99
+ this.actionMenus = [];
100
+ }
101
+ /**
102
+ * Lifecycle hook that is called after data-bound properties
103
+ * of a directive are initialized.
104
+ */
105
+ ngOnInit() {
106
+ super.ngOnInit();
107
+ /* Read some params from routing data */
108
+ this.route.data.subscribe((data) => {
109
+ Object.assign(this.query, data.query || {});
110
+ this.classType || (this.classType = data.classType);
111
+ if (data.columns) {
112
+ this.columns = [...(data.columns || [])];
113
+ }
114
+ if (data.endpoint) {
115
+ this.service.endpoint = data.endpoint;
116
+ }
117
+ if (data.includes) {
118
+ this.includes = data.includes;
119
+ }
120
+ Object.keys(data).forEach(x => {
121
+ if (this.hasOwnProperty(x) && x != 'columns') {
122
+ this[x] = data[x];
123
+ }
124
+ });
125
+ });
126
+ /* Get columns from class */
127
+ if (this.classType) {
128
+ this.classInstance = new this.classType();
129
+ /* Get table definition */
130
+ var tableDefinition = getTableDefinition(this.classInstance);
131
+ Object.keys(tableDefinition || {}).forEach(x => {
132
+ if (this.hasOwnProperty(x)) {
133
+ this[x] = tableDefinition[x];
134
+ }
135
+ });
136
+ /* Get endpoint */
137
+ const endpoint = (getEndpoint(this.classInstance) || tableDefinition?.endpoint);
138
+ if (endpoint) {
139
+ this.service.endpoint = endpoint;
140
+ }
141
+ /* Sort the columns by index */
142
+ Utils.sortArray(tableDefinition.columns, 'index');
143
+ /* Sort the columns by index */
144
+ this.columns = [...tableDefinition.columns];
145
+ /* Handle events */
146
+ this.columns?.forEach((x) => {
147
+ if (typeof x.event === 'string') {
148
+ let eventName = (x.event);
149
+ x.event = (row) => (x.eventArgs ? this[eventName](row, x.eventArgs) : this[eventName](row));
150
+ }
151
+ });
152
+ /* Hide columns using route data */
153
+ this.route.data.subscribe((data) => {
154
+ this.columns = this.columns?.filter((x) => !x.hide || !x.hide(data));
155
+ });
156
+ }
157
+ if (this.dynamicTable) {
158
+ /* Add checkbox column */
159
+ if (this.selectable) {
160
+ this.columns.unshift({ name: 'select', type: TableColumnType.Checkbox, disable: (row) => !this.selectableItem(row), cellNgClass: (row) => this.selectColumnNgClass(row) });
161
+ }
162
+ /* Add duplicate menu */
163
+ if (this.duplicable) {
164
+ this.actionMenus.unshift({ title: $localize `:@@duplicate:Duplicate`, event: (row) => this.duplicate(row) });
165
+ }
166
+ /* Add download menu */
167
+ if (this.downloadable) {
168
+ this.actionMenus.unshift({ title: $localize `:@@download:Download`, event: (row) => this.download(row), hide: (row) => !this.canDownloadItem(row) });
169
+ }
170
+ /* Add delete menu */
171
+ if (this.deleteable) {
172
+ this.toolbarMenus.unshift({ title: $localize `:@@deleteSelected:Delete selected`, event: (_) => this.deleteItems() });
173
+ this.actionMenus.unshift({ title: $localize `:@@delete:Delete`, event: (row) => this.deleteItem(row), hide: (row) => !this.canDeleteItem(row) });
174
+ }
175
+ /* Add edit menu */
176
+ if (this.editable) {
177
+ this.actionMenus.unshift({ title: $localize `:@@edit:Edit`, event: (row) => this.edit(row) });
178
+ }
179
+ /* Check if the action column already exists */
180
+ var actionColmun = this.columns?.find(x => x.name == 'action');
181
+ /* If so, just add the menu items to it */
182
+ if (actionColmun != null) {
183
+ actionColmun.actionMenus = actionColmun.actionMenus || [];
184
+ this.actionMenus.forEach(y => actionColmun.actionMenus.unshift(y));
185
+ }
186
+ /* Otherwise add a new one */
187
+ else {
188
+ this.columns.push(new TableColumn({
189
+ index: 2000,
190
+ name: 'action',
191
+ type: TableColumnType.Action,
192
+ disabled: true,
193
+ actionMenus: this.actionMenus
194
+ }));
195
+ }
196
+ }
197
+ /* Set query params into query object */
198
+ this.route.queryParams.subscribe(x => Object.assign(this.query, x || {}, { returnUrl: null }));
199
+ /* Initilialize the data source with the current service, paginator and sort */
200
+ this.sort = this.dynamicTable?.matSort || (this.sort ? this.sort : new MatSort());
201
+ this.dataSource = new TableDataSource(this.service, this.paginator, this.sort);
202
+ /* Set includes */
203
+ this.dataSource.includes = this.includes;
204
+ /* Load query from browser storage */
205
+ var storredQuery = AppStorage.getObject(`${this.appSetting.projectName}.${this.router.url}`);
206
+ if (storredQuery) {
207
+ this.dataSource.fieldFilters = this.clean(storredQuery.fieldFilters) || {};
208
+ this.sortActive = storredQuery.sortBy;
209
+ this.sortDirection = storredQuery.sortDirection;
210
+ this.dataSource.pageSize = storredQuery.pageSize;
211
+ this.dataSource.pageIndex = storredQuery.pageIndex;
212
+ }
213
+ /* Add some filter from router */
214
+ if (this.query) {
215
+ this.dataSource.staticFieldFilters = this.query;
216
+ }
217
+ /* Remember the filters */
218
+ this.dataLoadedSubscription = this.dataSource.onDataLoaded.subscribe((result) => {
219
+ if (result) {
220
+ AppStorage.setObject(`${this.appSetting.projectName}.${this.router.url}`, {
221
+ fieldFilters: this.dataSource.fieldFilters,
222
+ sortBy: this.sort.active,
223
+ sortDirection: this.sort.direction,
224
+ pageSize: this.paginator.pageSize,
225
+ pageIndex: this.paginator.pageIndex,
226
+ });
227
+ }
228
+ });
229
+ }
230
+ /**
231
+ * Reloads items
232
+ */
233
+ loadList(resetSelection = true) {
234
+ this.dataSource.reload(resetSelection);
235
+ }
236
+ /**
237
+ * Search
238
+ * @param filter
239
+ */
240
+ search(filter) {
241
+ this.dataSource.filter = filter;
242
+ }
243
+ /**
244
+ * Navigates to the add page.
245
+ */
246
+ add() {
247
+ if (this.addDialogType) {
248
+ this.dialogService.open(this.addDialogType, { width: '650px', data: this.classInstance })
249
+ .afterClosed()
250
+ .subscribe(() => this.loadList(false));
251
+ }
252
+ else {
253
+ this.router.navigate([`${this.router.url}/add`]);
254
+ }
255
+ }
256
+ /**
257
+ * Navigates to the edit page.
258
+ * @param item The id of the item
259
+ */
260
+ edit(item) {
261
+ this.router.navigate([`${this.router.url}/edit/${item.id}`]);
262
+ }
263
+ /**
264
+ * Patches the entity
265
+ * Patches the entity
266
+ * @param id The ID of the entity
267
+ * @param fields The fields to patch
268
+ * @param value The (optional) value to change
269
+ * @param includes Includes some navigations
270
+ */
271
+ patch(id, fields, value, includes) {
272
+ this._patch(id, fields, value, includes, _ => this.loadList());
273
+ }
274
+ /**
275
+ * Patches the entity
276
+ * @param id The ID of the entity
277
+ * @param fields The fields to patch
278
+ * @param value The (optional) value to change
279
+ * @param includes Includes some navigations
280
+ * @param successCallback A callback function to e called on success
281
+ */
282
+ _patch(id, fields, value, includes, successCallback = null) {
283
+ this.isSaving = true;
284
+ /* Get entity by ID */
285
+ let entity = this.dataSource.items?.filter(x => x.id === id)[0];
286
+ if (entity) {
287
+ /* Build patch methods */
288
+ let patches = fields.map(x => { return { op: 'replace', path: `/${x}`, value: value != undefined ? value : entity[x] }; });
289
+ /* Send request */
290
+ this.service
291
+ .patch(id, patches, null, { headers: { 'Show-Message': 'Yes' }, params: includes ? Utils.toHttpParams({ includes: includes }) : null })
292
+ .subscribe(x => {
293
+ this.isSaving = false;
294
+ /* Invoke callback function, if any */
295
+ if (successCallback) {
296
+ successCallback(x);
297
+ }
298
+ }, _ => this.isSaving = false);
299
+ }
300
+ }
301
+ /**
302
+ * Deletes an item from the database.
303
+ */
304
+ deleteItem(item) {
305
+ this.showDeleteItemDialog()
306
+ .subscribe((accept) => {
307
+ if (accept) {
308
+ this.service.delete(item.id).subscribe(response => {
309
+ this.loadList(true);
310
+ }, error => {
311
+ console.debug(error);
312
+ });
313
+ }
314
+ });
315
+ }
316
+ /**
317
+ * Deletes an item from the database.
318
+ * @param ids the IDs of the items to delete
319
+ */
320
+ deleteItems() {
321
+ if (this.dataSource.selectionModel.hasValue()) {
322
+ this.showDeleteItemsDialog()
323
+ .subscribe((accept) => {
324
+ if (accept) {
325
+ this.service.deleteList(this.dataSource.getSelected()).subscribe(response => {
326
+ this.loadList(true);
327
+ }, error => {
328
+ console.debug(error);
329
+ });
330
+ }
331
+ });
332
+ }
333
+ }
334
+ /**
335
+ * Toggles a property
336
+ * @param id
337
+ * @param enabled
338
+ * @param property
339
+ */
340
+ toggle(item, property = 'enabled') {
341
+ this.service
342
+ .patch(item.id, [{ op: 'replace', path: `/${property}`, value: item[property] }])
343
+ .subscribe(x => this.loadList());
344
+ }
345
+ /**
346
+ * Uploads tarnsfers csv files
347
+ * @param file The file to upload
348
+ * @param reload If true, reload items
349
+ */
350
+ upload(file, reload = true) {
351
+ this.service.upload(file).subscribe(response => {
352
+ response = response.json();
353
+ /* Reload list */
354
+ if (reload) {
355
+ this.loadList();
356
+ }
357
+ }, error => { });
358
+ }
359
+ /**
360
+ * Downloads a document
361
+ * @param item
362
+ */
363
+ download(item, path = 'download') {
364
+ this.service.download(`${path}/${item.id}`).subscribe(x => {
365
+ saveAs(new Blob([x.data], {}), x.filename);
366
+ });
367
+ }
368
+ /**
369
+ * Duplicates a record
370
+ * @param item
371
+ */
372
+ duplicate(item) {
373
+ this.service.duplicate(item.id).subscribe(_ => this.loadList());
374
+ }
375
+ /**
376
+ * This informs the table how to uniquely identify rows to
377
+ * track how the data changes with each update.
378
+ * @param index
379
+ * @param item
380
+ */
381
+ trackById(_, item) {
382
+ return item.id;
383
+ }
384
+ /**
385
+ * Includes some navigations
386
+ * @param inc
387
+ */
388
+ include(...inc) {
389
+ inc?.forEach(x => this.includes.push(x));
390
+ }
391
+ /**
392
+ * Check if the item is deleteable
393
+ */
394
+ canDeleteItem(row) { return true; }
395
+ /**
396
+ * Check if the item is downloadable
397
+ */
398
+ canDownloadItem(row) { return true; }
399
+ /**
400
+ * Check if the item is selectable
401
+ */
402
+ selectableItem(row) { return true; }
403
+ /**
404
+ * Returns NgClass object for select column
405
+ */
406
+ selectColumnNgClass(row) { }
407
+ /**
408
+ * Responds to user-initiated events
409
+ * @param event
410
+ */
411
+ handleKeyboardEvent(event) {
412
+ if (event.ctrlKey || event.metaKey) {
413
+ switch (event.key) {
414
+ /* Navigate to add page */
415
+ case 'a':
416
+ event.preventDefault();
417
+ this.add();
418
+ break;
419
+ }
420
+ }
421
+ else {
422
+ switch (event.key) {
423
+ /* Navigate to previous page */
424
+ case 'PageUp':
425
+ this.paginator.previousPage();
426
+ break;
427
+ /* Navigate to next page */
428
+ case 'PageDown':
429
+ this.paginator.nextPage();
430
+ break;
431
+ }
432
+ }
433
+ }
434
+ /**
435
+ * A callback used for any custom cleanup that needs to occur
436
+ * when the instance is destroyed.
437
+ */
438
+ ngOnDestroy() {
439
+ if (this.dataLoadedSubscription) {
440
+ this.dataLoadedSubscription.unsubscribe();
441
+ }
442
+ }
443
+ }
444
+ /** @nocollapse */ /** @nocollapse */ GenericListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GenericListComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
445
+ /** @nocollapse */ /** @nocollapse */ GenericListComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.3", type: GenericListComponent, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, viewQueries: [{ propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true, static: true }, { propertyName: "dynamicTable", first: true, predicate: VdDynamicTableComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0 });
446
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: GenericListComponent, decorators: [{
447
+ type: Directive
448
+ }], ctorParameters: function () { return [{ type: undefined }, { type: i1.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: undefined }]; }, propDecorators: { paginator: [{
449
+ type: ViewChild,
450
+ args: [MatPaginator, { static: true }]
451
+ }], sort: [{
452
+ type: ViewChild,
453
+ args: [MatSort, { static: true }]
454
+ }], dynamicTable: [{
455
+ type: ViewChild,
456
+ args: [VdDynamicTableComponent, { static: true }]
457
+ }], handleKeyboardEvent: [{
458
+ type: HostListener,
459
+ args: ['document:keydown', ['$event']]
460
+ }] } });
461
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2Jhc2UvY29tcG9uZW50cy9nZW5lcmljLWxpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXBDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBRWpEOztHQUVHO0FBQ0gsV0FBVztBQUVYLE1BQU0sT0FBZ0Isb0JBQThGLFNBQVEsYUFBYTtJQWlJeEk7OztPQUdHO0lBQ0gsWUFDUSxPQUFp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O2dCQTBicEQsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBNYXRTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgc2F2ZUFzIH0gZnJvbSAnZmlsZS1zYXZlcic7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBnZXRFbmRwb2ludCB9IGZyb20gJy4uLy4uL2NvbW1vbi9mdW5jdGlvbnMvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgVXRpbHMgfSBmcm9tICcuLi8uLi9jb21tb24vZnVuY3Rpb25zL3V0aWxzJztcclxuaW1wb3J0IHsgQXBwU3RvcmFnZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9oZWxwZXJzL2FwcC1zdG9yYWdlJztcclxuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbHMvZW50aXR5JztcclxuaW1wb3J0IHsgR2VuZXJpY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9odHRwL3NlcnZpY2VzL2dlbmVyaWMuc2VydmljZSc7XHJcbmltcG9ydCB7IFZkRHluYW1pY1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vdGFibGUvY29tcG9uZW50cy9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFibGVDb2x1bW5UeXBlIH0gZnJvbSAnLi4vLi4vdGFibGUvZW51bXMvdGFibGUtY29sdW1uLXR5cGUnO1xyXG5pbXBvcnQgeyBnZXRUYWJsZURlZmluaXRpb24gfSBmcm9tICcuLi8uLi90YWJsZS9mdW5jdGlvbnMvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi90YWJsZS9tb2RlbHMvdGFibGUtY29sdW1uJztcclxuaW1wb3J0IHsgVGFibGVNZW51SXRlbSB9IGZyb20gJy4uLy4uL3RhYmxlL21vZGVscy90YWJsZS1tZW51LWl0ZW0nO1xyXG5pbXBvcnQgeyBUYWJsZURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi90YWJsZS90YWJsZS5kYXRhLXNvdXJjZSc7XHJcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UuY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBBIGJhc2UgbGlzdCBjb21wb25lbnQgZm9yIGNvbXBvbmVudHMgd2l0aCBwYWdpbmF0aW9uIHN1cHBvcnRcclxuICovXHJcbi8vIEBkeW5hbWljXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2VuZXJpY0xpc3RDb21wb25lbnQ8VEVudGl0eSBleHRlbmRzIElFbnRpdHkgfCBhbnksIFRTZXJ2aWNlIGV4dGVuZHMgR2VuZXJpY1NlcnZpY2U8VEVudGl0eT4+IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblx0LyoqXHJcblx0ICogTGlzdCB0aXRsZVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBzdWJ0aXRsZTogc3RyaW5nID0gJyc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgcmVmZXJlbmNlIHRvIE1kUGFnaW5hdG9yIGVsZW1lbnRcclxuXHQgKi9cclxuXHRAVmlld0NoaWxkKE1hdFBhZ2luYXRvciwgeyBzdGF0aWM6IHRydWUgfSlcclxuXHRwdWJsaWMgcGFnaW5hdG9yOiBNYXRQYWdpbmF0b3I7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgcmVmZXJlbmNlIHRvIE1kU29ydCBhdHRyaWJ1dGVcclxuXHQgKi9cclxuXHRAVmlld0NoaWxkKE1hdFNvcnQsIHsgc3RhdGljOiB0cnVlIH0pXHJcblx0cHVibGljIHNvcnQ6IE1hdFNvcnQ7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFBhZ2Ugc2l6ZSBvcHRpb25zXHJcblx0ICovXHJcblx0cHVibGljIHBhZ2VTaXplT3B0aW9uczogQXJyYXk8bnVtYmVyPiA9IFs1LCAxMCwgMTUsIDIwLCAzMCwgNTAsIDEwMCwgMjAwXTtcclxuXHJcblx0LyoqXHJcblx0ICogVGhlIG5hdmlnYXRpb25zIHRvIGluY2x1ZGVzXHJcblx0ICovXHJcblx0cHVibGljIGluY2x1ZGVzOiBBcnJheTxzdHJpbmc+ID0gW107XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldCBwYXJhbXNcclxuXHQgKi9cclxuXHRwdWJsaWMgcXVlcnk6IGFueSA9IHt9O1xyXG5cclxuXHQvKipcclxuXHQgKiBEYXRhLXRhYmxlIGRhdGFzb3VyY2VcclxuXHQgKi9cclxuXHRwdWJsaWMgZGF0YVNvdXJjZTogVGFibGVEYXRhU291cmNlPFRFbnRpdHksIFRTZXJ2aWNlPiB8IG51bGw7XHJcblxyXG5cdC8qKlxyXG5cdCAqIEN1cnJlbnQgc29ydCBjb2x1bW5cclxuXHQgKi9cclxuXHRwdWJsaWMgc29ydEFjdGl2ZTogc3RyaW5nO1xyXG5cclxuXHQvKipcclxuXHQgKiBDdXJyZW50IHNvcnQgZGlyZWN0aW9uXHJcblx0ICovXHJcblx0cHVibGljIHNvcnREaXJlY3Rpb246IHN0cmluZztcclxuXHJcblx0LyoqXHJcblx0ICogQW4gaW5zdGFuY2Ugb2YgdGhlIGNsYXNzIHRvIGNyZWF0ZSB0aGUgdGFibGUgZm9yXHJcblx0ICovXHJcblx0cHVibGljIGNsYXNzSW5zdGFuY2U6IGFueTtcclxuXHJcblx0LyoqXHJcblx0ICogY29sdW1uczogVGFibGVDb2x1bW5bXSBcclxuXHQgKi9cclxuXHRwdWJsaWMgY29sdW1uczogKFRhYmxlQ29sdW1uIHwgc3RyaW5nKVtdID0gW107XHJcblxyXG5cdC8qKlxyXG5cdCAqIEEgcmVmZXJlbmNlIHRvIE1kU29ydCBhdHRyaWJ1dGVcclxuXHQgKi9cclxuXHRAVmlld0NoaWxkKFZkRHluYW1pY1RhYmxlQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxyXG5cdHB1YmxpYyBkeW5hbWljVGFibGU6IFZkRHluYW1pY1RhYmxlQ29tcG9uZW50O1xyXG5cclxuXHQvKipcclxuXHQgKiBUaGUgdHlwZSBvZiB0aGUgZGlhbG9nIGZvciBjcmVhdGlvblxyXG5cdCAqL1xyXG5cdHB1YmxpYyBhZGREaWFsb2dUeXBlOiBhbnkgPSBudWxsO1xyXG5cclxuXHQvKipcclxuXHQgKiBTaG93cyB0aGUgY29sdW1uICdDaGVja2JveCdcclxuXHQgKi9cclxuXHRwdWJsaWMgc2VsZWN0YWJsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIElmIHRydWUsIHNob3cgdGhlIGJ1dHRvbiAnQWRkJ1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBhZGRhYmxlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcblx0LyoqXHJcblx0ICogSWYgdHJ1ZSwgc2hvdyB0aGUgbWVudSAnRWRpdCdcclxuXHQgKi9cclxuXHRwdWJsaWMgZWRpdGFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHQvKipcclxuXHQgKiBJZiB0cnVlLCBzaG93IHRoZSBtZW51ICdEZWxldGUnXHJcblx0ICovXHJcblx0cHVibGljIGRlbGV0ZWFibGU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuXHQvKipcclxuXHQgKiBJZiB0cnVlLCBzaG93IHRoZSBtZW51ICdEb3dubG9hZCdcclxuXHQgKi9cclxuXHRwdWJsaWMgZG93bmxvYWRhYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdC8qKlxyXG5cdCAqIElmIHRydWUsIHNob3cgdGhlIG1lbnUgJ0R1cGxpY2F0ZSdcclxuXHQgKi9cclxuXHRwdWJsaWMgZHVwbGljYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHQvKipcclxuXHQgKiByb3dOZ0NsYXNzOiBGdW5jdGlvblxyXG5cdCAqL1xyXG5cdHB1YmxpYyByb3dOZ0NsYXNzOiBGdW5jdGlvbiA9IG51bGw7XHJcblxyXG5cdC8qKlxyXG5cdCAqIHJvd0NsaWNrOiBGdW5jdGlvblxyXG5cdCAqL1xyXG5cdHB1YmxpYyByb3dDbGljazogRnVuY3Rpb24gPSBudWxsO1xyXG5cclxuXHQvKipcclxuXHQgKiBkZXRhaWxzVGVtcGxhdGU6IEZ1bmN0aW9uXHJcblx0ICovXHJcblx0cHVibGljIGRldGFpbHNUZW1wbGF0ZTogc3RyaW5nID0gbnVsbDtcclxuXHJcblx0LyoqXHJcblx0ICogVG9vbGJhciBtZW51IGl0ZW1zXHJcblx0ICovXHJcblx0cHVibGljIHRvb2xiYXJNZW51czogVGFibGVNZW51SXRlbVtdID0gW107XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRhYmxlIHJvdyBtZW51IGl0ZW1zXHJcblx0ICovXHJcblx0cHVibGljIGFjdGlvbk1lbnVzOiBUYWJsZU1lbnVJdGVtW10gPSBbXTtcclxuXHJcblx0LyoqXHJcblx0ICogRGF0YUxvYWRlZCBldmVudCBzdWJzY3JpcHRpb25cclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgZGF0YUxvYWRlZFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuXHQvKipcclxuXHQgKiBDb25zdHJ1Y3RvclxyXG5cdCAqIEBwYXJhbSBzZXJ2aWNlIFxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHVibGljIHNlcnZpY2U6IFRTZXJ2aWNlLFxyXG5cdFx0cHJvdGVjdGVkIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuXHRcdHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0XHRwdWJsaWMgY2xhc3NUeXBlPzogeyBuZXcoKTogVEVudGl0eSB9XHJcblx0KSB7XHJcblx0XHRzdXBlcihyb3V0ZSwgY2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogTGlmZWN5Y2xlIGhvb2sgdGhhdCBpcyBjYWxsZWQgYWZ0ZXIgZGF0YS1ib3VuZCBwcm9wZXJ0aWVzIFxyXG5cdCAqIG9mIGEgZGlyZWN0aXZlIGFyZSBpbml0aWFsaXplZC5cclxuXHQgKi9cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHN1cGVyLm5nT25Jbml0KCk7XHJcblxyXG5cdFx0LyogUmVhZCBzb21lIHBhcmFtcyBmcm9tIHJvdXRpbmcgZGF0YSAqL1xyXG5cdFx0dGhpcy5yb3V0ZS5kYXRhLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcblx0XHRcdE9iamVjdC5hc3NpZ24odGhpcy5xdWVyeSwgZGF0YS5xdWVyeSB8fCB7fSk7XHJcblx0XHRcdHRoaXMuY2xhc3NUeXBlIHx8PSBkYXRhLmNsYXNzVHlwZTtcclxuXHJcblx0XHRcdGlmIChkYXRhLmNvbHVtbnMpIHtcclxuXHRcdFx0XHR0aGlzLmNvbHVtbnMgPSBbLi4uKGRhdGEuY29sdW1ucyB8fCBbXSldO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAoZGF0YS5lbmRwb2ludCkge1xyXG5cdFx0XHRcdHRoaXMuc2VydmljZS5lbmRwb2ludCA9IGRhdGEuZW5kcG9pbnQ7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChkYXRhLmluY2x1ZGVzKSB7XHJcblx0XHRcdFx0dGhpcy5pbmNsdWRlcyA9IGRhdGEuaW5jbHVkZXM7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goeCA9PiB7XHJcblx0XHRcdFx0aWYgKHRoaXMuaGFzT3duUHJvcGVydHkoeCkgJiYgeCAhPSAnY29sdW1ucycpIHtcclxuXHRcdFx0XHRcdHRoaXNbeF0gPSBkYXRhW3hdO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9KTtcclxuXHJcblx0XHQvKiBHZXQgY29sdW1ucyBmcm9tIGNsYXNzICovXHJcblx0XHRpZiAodGhpcy5jbGFzc1R5cGUpIHtcclxuXHRcdFx0dGhpcy5jbGFzc0luc3RhbmNlID0gbmV3IHRoaXMuY2xhc3NUeXBlKCk7XHJcblxyXG5cdFx0XHQvKiBHZXQgdGFibGUgZGVmaW5pdGlvbiAqL1xyXG5cdFx0XHR2YXIgdGFibGVEZWZpbml0aW9uID0gZ2V0VGFibGVEZWZpbml0aW9uKHRoaXMuY2xhc3NJbnN0YW5jZSk7XHJcblxyXG5cdFx0XHRPYmplY3Qua2V5cyh0YWJsZURlZmluaXRpb24gfHwge30pLmZvckVhY2goeCA9PiB7XHJcblx0XHRcdFx0aWYgKHRoaXMuaGFzT3duUHJvcGVydHkoeCkpIHtcclxuXHRcdFx0XHRcdHRoaXNbeF0gPSB0YWJsZURlZmluaXRpb25beF07XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHJcblx0XHRcdC8qIEdldCBlbmRwb2ludCAqL1xyXG5cdFx0XHRjb25zdCBlbmRwb2ludCA9IChnZXRFbmRwb2ludCh0aGlzLmNsYXNzSW5zdGFuY2UpIHx8IHRhYmxlRGVmaW5pdGlvbj8uZW5kcG9pbnQpO1xyXG5cdFx0XHRpZiAoZW5kcG9pbnQpIHtcclxuXHRcdFx0XHR0aGlzLnNlcnZpY2UuZW5kcG9pbnQgPSBlbmRwb2ludDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LyogU29ydCB0aGUgY29sdW1ucyBieSBpbmRleCAqL1xyXG5cdFx0XHRVdGlscy5zb3J0QXJyYXkodGFibGVEZWZpbml0aW9uLmNvbHVtbnMsICdpbmRleCcpO1xyXG5cclxuXHRcdFx0LyogU29ydCB0aGUgY29sdW1ucyBieSBpbmRleCAqL1xyXG5cdFx0XHR0aGlzLmNvbHVtbnMgPSBbLi4udGFibGVEZWZpbml0aW9uLmNvbHVtbnNdO1xyXG5cclxuXHRcdFx0LyogSGFuZGxlIGV2ZW50cyAqL1xyXG5cdFx0XHR0aGlzLmNvbHVtbnM/LmZvckVhY2goKHg6IFRhYmxlQ29sdW1uKSA9PiB7XHJcblx0XHRcdFx0aWYgKHR5cGVvZiB4LmV2ZW50ID09PSAnc3RyaW5nJykge1xyXG5cdFx0XHRcdFx0bGV0IGV2ZW50TmFtZTogc3RyaW5nID0gKCh4LmV2ZW50KSBhcyBzdHJpbmcpO1xyXG5cdFx0XHRcdFx0eC5ldmVudCA9IChyb3c6IGFueSkgPT4gKHguZXZlbnRBcmdzID8gdGhpc1tldmVudE5hbWVdKHJvdywgeC5ldmVudEFyZ3MpIDogdGhpc1tldmVudE5hbWVdKHJvdykpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0XHQvKiBIaWRlIGNvbHVtbnMgdXNpbmcgcm91dGUgZGF0YSAqL1xyXG5cdFx0XHR0aGlzLnJvdXRlLmRhdGEuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuXHRcdFx0XHR0aGlzLmNvbHVtbnMgPSB0aGlzLmNvbHVtbnM/LmZpbHRlcigoeDogVGFibGVDb2x1bW4pID0+ICF4LmhpZGUgfHwgIXguaGlkZShkYXRhKSk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0aGlzLmR5bmFtaWNUYWJsZSkge1xyXG5cdFx0XHQvKiBBZGQgY2hlY2tib3ggY29sdW1uICovXHJcblx0XHRcdGlmICh0aGlzLnNlbGVjdGFibGUpIHtcclxuXHRcdFx0XHR0aGlzLmNvbHVtbnMudW5zaGlmdCh7IG5hbWU6ICdzZWxlY3QnLCB0eXBlOiBUYWJsZUNvbHVtblR5cGUuQ2hlY2tib3gsIGRpc2FibGU6IChyb3c6IFRFbnRpdHkpID0+ICF0aGlzLnNlbGVjdGFibGVJdGVtKHJvdyksIGNlbGxOZ0NsYXNzOiAocm93OiBURW50aXR5KSA9PiB0aGlzLnNlbGVjdENvbHVtbk5nQ2xhc3Mocm93KSB9KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LyogQWRkIGR1cGxpY2F0ZSBtZW51ICovXHJcblx0XHRcdGlmICh0aGlzLmR1cGxpY2FibGUpIHtcclxuXHRcdFx0XHR0aGlzLmFjdGlvbk1lbnVzLnVuc2hpZnQoeyB0aXRsZTogJGxvY2FsaXplYDpAQGR1cGxpY2F0ZTpEdXBsaWNhdGVgLCBldmVudDogKHJvdzogYW55KSA9PiB0aGlzLmR1cGxpY2F0ZShyb3cpIH0pO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvKiBBZGQgZG93bmxvYWQgbWVudSAqL1xyXG5cdFx0XHRpZiAodGhpcy5kb3dubG9hZGFibGUpIHtcclxuXHRcdFx0XHR0aGlzLmFjdGlvbk1lbnVzLnVuc2hpZnQoeyB0aXRsZTogJGxvY2FsaXplYDpAQGRvd25sb2FkOkRvd25sb2FkYCwgZXZlbnQ6IChyb3c6IGFueSkgPT4gdGhpcy5kb3dubG9hZChyb3cpLCBoaWRlOiAocm93OiBURW50aXR5KSA9PiAhdGhpcy5jYW5Eb3dubG9hZEl0ZW0ocm93KSB9KTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LyogQWRkIGRlbGV0ZSBtZW51ICovXHJcblx0XHRcdGlmICh0aGlzLmRlbGV0ZWFibGUpIHtcclxuXHRcdFx0XHR0aGlzLnRvb2xiYXJNZW51cy51bnNoaWZ0KHsgdGl0bGU6ICRsb2NhbGl6ZWA6QEBkZWxldGVTZWxlY3RlZDpEZWxldGUgc2VsZWN0ZWRgLCBldmVudDogKF86IGFueSkgPT4gdGhpcy5kZWxldGVJdGVtcygpIH0pO1xyXG5cdFx0XHRcdHRoaXMuYWN0aW9uTWVudXMudW5zaGlmdCh7IHRpdGxlOiAkbG9jYWxpemVgOkBAZGVsZXRlOkRlbGV0ZWAsIGV2ZW50OiAocm93OiBhbnkpID0+IHRoaXMuZGVsZXRlSXRlbShyb3cpLCBoaWRlOiAocm93OiBURW50aXR5KSA9PiAhdGhpcy5jYW5EZWxldGVJdGVtKHJvdykgfSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8qIEFkZCBlZGl0IG1lbnUgKi9cclxuXHRcdFx0aWYgKHRoaXMuZWRpdGFibGUpIHtcclxuXHRcdFx0XHR0aGlzLmFjdGlvbk1lbnVzLnVuc2hpZnQoeyB0aXRsZTogJGxvY2FsaXplYDpAQGVkaXQ6RWRpdGAsIGV2ZW50OiAocm93OiBhbnkpID0+IHRoaXMuZWRpdChyb3cpIH0pO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvKiBDaGVjayBpZiB0aGUgYWN0aW9uIGNvbHVtbiBhbHJlYWR5IGV4aXN0cyAqL1xyXG5cdFx0XHR2YXIgYWN0aW9uQ29sbXVuID0gKHRoaXMuY29sdW1ucyBhcyBUYWJsZUNvbHVtbltdKT8uZmluZCh4ID0+IHgubmFtZSA9PSAnYWN0aW9uJyk7XHJcblxyXG5cdFx0XHQvKiBJZiBzbywganVzdCBhZGQgdGhlIG1lbnUgaXRlbXMgdG8gaXQgKi9cclxuXHRcdFx0aWYgKGFjdGlvbkNvbG11biAhPSBudWxsKSB7XHJcblx0XHRcdFx0YWN0aW9uQ29sbXVuLmFjdGlvbk1lbnVzID0gYWN0aW9uQ29sbXVuLmFjdGlvbk1lbnVzIHx8IFtdO1xyXG5cdFx0XHRcdHRoaXMuYWN0aW9uTWVudXMuZm9yRWFjaCh5ID0+IGFjdGlvbkNvbG11bi5hY3Rpb25NZW51cy51bnNoaWZ0KHkpKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0LyogT3RoZXJ3aXNlIGFkZCBhIG5ldyBvbmUgKi9cclxuXHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5jb2x1bW5zLnB1c2gobmV3IFRhYmxlQ29sdW1uKHtcclxuXHRcdFx0XHRcdGluZGV4OiAyMDAwLFxyXG5cdFx0XHRcdFx0bmFtZTogJ2FjdGlvbicsXHJcblx0XHRcdFx0XHR0eXBlOiBUYWJsZUNvbHVtblR5cGUuQWN0aW9uLFxyXG5cdFx0XHRcdFx0ZGlzYWJsZWQ6IHRydWUsXHJcblx0XHRcdFx0XHRhY3Rpb25NZW51czogdGhpcy5hY3Rpb25NZW51c1xyXG5cdFx0XHRcdH0pKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC8qIFNldCBxdWVyeSBwYXJhbXMgaW50byBxdWVyeSBvYmplY3QgKi9cclxuXHRcdHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKHggPT4gT2JqZWN0LmFzc2lnbih0aGlzLnF1ZXJ5LCB4IHx8IHt9LCB7IHJldHVyblVybDogbnVsbCB9KSk7XHJcblxyXG5cdFx0LyogSW5pdGlsaWFsaXplIHRoZSBkYXRhIHNvdXJjZSB3aXRoIHRoZSBjdXJyZW50IHNlcnZpY2UsIHBhZ2luYXRvciBhbmQgc29ydCAqL1xyXG5cdFx0dGhpcy5zb3J0ID0gdGhpcy5keW5hbWljVGFibGU/Lm1hdFNvcnQgfHwgKHRoaXMuc29ydCA/IHRoaXMuc29ydCA6IG5ldyBNYXRTb3J0KCkpO1xyXG5cdFx0dGhpcy5kYXRhU291cmNlID0gbmV3IFRhYmxlRGF0YVNvdXJjZTxURW50aXR5LCBUU2VydmljZT4odGhpcy5zZXJ2aWNlISwgdGhpcy5wYWdpbmF0b3IsIHRoaXMuc29ydCk7XHJcblxyXG5cdFx0LyogU2V0IGluY2x1ZGVzICovXHJcblx0XHR0aGlzLmRhdGFTb3VyY2UuaW5jbHVkZXMgPSB0aGlzLmluY2x1ZGVzO1xyXG5cclxuXHRcdC8qIExvYWQgcXVlcnkgZnJvbSBicm93c2VyIHN0b3JhZ2UgKi9cclxuXHRcdHZhciBzdG9ycmVkUXVlcnkgPSBBcHBTdG9yYWdlLmdldE9iamVjdChgJHt0aGlzLmFwcFNldHRpbmcucHJvamVjdE5hbWV9LiR7dGhpcy5yb3V0ZXIudXJsfWApO1xyXG5cdFx0aWYgKHN0b3JyZWRRdWVyeSkge1xyXG5cdFx0XHR0aGlzLmRhdGFTb3VyY2UuZmllbGRGaWx0ZXJzID0gdGhpcy5jbGVhbihzdG9ycmVkUXVlcnkuZmllbGRGaWx0ZXJzKSB8fCB7fTtcclxuXHRcdFx0dGhpcy5zb3J0QWN0aXZlID0gc3RvcnJlZFF1ZXJ5LnNvcnRCeTtcclxuXHRcdFx0dGhpcy5zb3J0RGlyZWN0aW9uID0gc3RvcnJlZFF1ZXJ5LnNvcnREaXJlY3Rpb247XHJcblx0XHRcdHRoaXMuZGF0YVNvdXJjZS5wYWdlU2l6ZSA9IHN0b3JyZWRRdWVyeS5wYWdlU2l6ZTtcclxuXHRcdFx0dGhpcy5kYXRhU291cmNlLnBhZ2VJbmRleCA9IHN0b3JyZWRRdWVyeS5wYWdlSW5kZXg7XHJcblx0XHR9XHJcblxyXG5cdFx0LyogQWRkIHNvbWUgZmlsdGVyIGZyb20gcm91dGVyICovXHJcblx0XHRpZiAodGhpcy5xdWVyeSkge1xyXG5cdFx0XHR0aGlzLmRhdGFTb3VyY2Uuc3RhdGljRmllbGRGaWx0ZXJzID0gdGhpcy5xdWVyeTtcclxuXHRcdH1cclxuXHJcblx0XHQvKiBSZW1lbWJlciB0aGUgZmlsdGVycyAqL1xyXG5cdFx0dGhpcy5kYXRhTG9hZGVkU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhU291cmNlLm9uRGF0YUxvYWRlZC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG5cdFx0XHRpZiAocmVzdWx0KSB7XHJcblx0XHRcdFx0QXBwU3RvcmFnZS5zZXRPYmplY3QoYCR7dGhpcy5hcHBTZXR0aW5nLnByb2plY3ROYW1lfS4ke3RoaXMucm91dGVyLnVybH1gLCB7XHJcblx0XHRcdFx0XHRmaWVsZEZpbHRlcnM6IHRoaXMuZGF0YVNvdXJjZS5maWVsZEZpbHRlcnMsXHJcblx0XHRcdFx0XHRzb3J0Qnk6IHRoaXMuc29ydC5hY3RpdmUsXHJcblx0XHRcdFx0XHRzb3J0RGlyZWN0aW9uOiB0aGlzLnNvcnQuZGlyZWN0aW9uLFxyXG5cdFx0XHRcdFx0cGFnZVNpemU6IHRoaXMucGFnaW5hdG9yLnBhZ2VTaXplLFxyXG5cdFx0XHRcdFx0cGFnZUluZGV4OiB0aGlzLnBhZ2luYXRvci5wYWdlSW5kZXgsXHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUmVsb2FkcyBpdGVtc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBsb2FkTGlzdChyZXNldFNlbGVjdGlvbjogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcclxuXHRcdHRoaXMuZGF0YVNvdXJjZS5yZWxvYWQocmVzZXRTZWxlY3Rpb24pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogU2VhcmNoXHJcblx0ICogQHBhcmFtIGZpbHRlciBcclxuXHQgKi9cclxuXHRwdWJsaWMgc2VhcmNoKGZpbHRlcjogc3RyaW5nKTogdm9pZCB7XHJcblx0XHR0aGlzLmRhdGFTb3VyY2UuZmlsdGVyID0gZmlsdGVyO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogTmF2aWdhdGVzIHRvIHRoZSBhZGQgcGFnZS5cclxuXHQgKi9cclxuXHRwdWJsaWMgYWRkKCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMuYWRkRGlhbG9nVHlwZSkge1xyXG5cdFx0XHR0aGlzLmRpYWxvZ1NlcnZpY2Uub3Blbih0aGlzLmFkZERpYWxvZ1R5cGUsIHsgd2lkdGg6ICc2NTBweCcsIGRhdGE6IHRoaXMuY2xhc3NJbnN0YW5jZSB9KVxyXG5cdFx0XHRcdC5hZnRlckNsb3NlZCgpXHJcblx0XHRcdFx0LnN1YnNjcmliZSgoKSA9PiB0aGlzLmxvYWRMaXN0KGZhbHNlKSk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYCR7dGhpcy5yb3V0ZXIudXJsfS9hZGRgXSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBOYXZpZ2F0ZXMgdG8gdGhlIGVkaXQgcGFnZS5cclxuXHQgKiBAcGFyYW0gaXRlbSBUaGUgaWQgb2YgdGhlIGl0ZW1cclxuXHQgKi9cclxuXHRwdWJsaWMgZWRpdChpdGVtOiBURW50aXR5KTogdm9pZCB7XHJcblx0XHR0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYCR7dGhpcy5yb3V0ZXIudXJsfS9lZGl0LyR7KGl0ZW0gYXMgSUVudGl0eSkuaWR9YF0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUGF0Y2hlcyB0aGUgZW50aXR5XHJcblx0ICogUGF0Y2hlcyB0aGUgZW50aXR5XHJcblx0ICogQHBhcmFtIGlkIFRoZSBJRCBvZiB0aGUgZW50aXR5XHJcblx0ICogQHBhcmFtIGZpZWxkcyBUaGUgZmllbGRzIHRvIHBhdGNoXHJcblx0ICogQHBhcmFtIHZhbHVlIFRoZSAob3B0aW9uYWwpIHZhbHVlIHRvIGNoYW5nZVxyXG5cdCAqIEBwYXJhbSBpbmNsdWRlcyBJbmNsdWRlcyBzb21lIG5hdmlnYXRpb25zXHJcblx0ICovXHJcblx0cHVibGljIHBhdGNoKGlkOiBudW1iZXIsIGZpZWxkczogQXJyYXk8c3RyaW5nPiwgdmFsdWU6IGFueSwgaW5jbHVkZXM6IGFueSk6IHZvaWQge1xyXG5cdFx0dGhpcy5fcGF0Y2goaWQsIGZpZWxkcywgdmFsdWUsIGluY2x1ZGVzLCBfID0+IHRoaXMubG9hZExpc3QoKSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBQYXRjaGVzIHRoZSBlbnRpdHlcclxuXHQgKiBAcGFyYW0gaWQgVGhlIElEIG9mIHRoZSBlbnRpdHlcclxuXHQgKiBAcGFyYW0gZmllbGRzIFRoZSBmaWVsZHMgdG8gcGF0Y2hcclxuXHQgKiBAcGFyYW0gdmFsdWUgVGhlIChvcHRpb25hbCkgdmFsdWUgdG8gY2hhbmdlXHJcblx0ICogQHBhcmFtIGluY2x1ZGVzIEluY2x1ZGVzIHNvbWUgbmF2aWdhdGlvbnNcclxuXHQgKiBAcGFyYW0gc3VjY2Vzc0NhbGxiYWNrIEEgY2FsbGJhY2sgZnVuY3Rpb24gdG8gZSBjYWxsZWQgb24gc3VjY2Vzc1xyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBfcGF0Y2goaWQ6IG51bWJlciwgZmllbGRzOiBBcnJheTxzdHJpbmc+LCB2YWx1ZTogYW55LCBpbmNsdWRlczogYW55LCBzdWNjZXNzQ2FsbGJhY2s6IEZ1bmN0aW9uID0gbnVsbCk6IHZvaWQge1xyXG5cdFx0dGhpcy5pc1NhdmluZyA9IHRydWU7XHJcblxyXG5cdFx0LyogR2V0IGVudGl0eSBieSBJRCAqL1xyXG5cdFx0bGV0IGVudGl0eSA9IHRoaXMuZGF0YVNvdXJjZS5pdGVtcz8uZmlsdGVyKHggPT4gKDxhbnk+eCkuaWQgPT09IGlkKVswXTtcclxuXHRcdGlmIChlbnRpdHkpIHtcclxuXHRcdFx0LyogQnVpbGQgcGF0Y2ggbWV0aG9kcyAqL1xyXG5cdFx0XHRsZXQgcGF0Y2hlcyA9IGZpZWxkcy5tYXAoeCA9PiB7IHJldHVybiB7IG9wOiAncmVwbGFjZScsIHBhdGg6IGAvJHt4fWAsIHZhbHVlOiB2YWx1ZSAhPSB1bmRlZmluZWQgPyB2YWx1ZSA6IGVudGl0eVt4XSB9OyB9KTtcclxuXHJcblx0XHRcdC8qIFNlbmQgcmVxdWVzdCAqL1xyXG5cdFx0XHR0aGlzLnNlcnZpY2VcclxuXHRcdFx0XHQucGF0Y2goaWQsIHBhdGNoZXMsIG51bGwsIHsgaGVhZGVyczogeyAnU2hvdy1NZXNzYWdlJzogJ1llcycgfSwgcGFyYW1zOiBpbmNsdWRlcyA/IFV0aWxzLnRvSHR0cFBhcmFtcyh7IGluY2x1ZGVzOiBpbmNsdWRlcyB9KSA6IG51bGwgfSlcclxuXHRcdFx0XHQuc3Vic2NyaWJlKHggPT4ge1xyXG5cdFx0XHRcdFx0dGhpcy5pc1NhdmluZyA9IGZhbHNlO1xyXG5cclxuXHRcdFx0XHRcdC8qIEludm9rZSBjYWxsYmFjayBmdW5jdGlvbiwgaWYgYW55ICovXHJcblx0XHRcdFx0XHRpZiAoc3VjY2Vzc0NhbGxiYWNrKSB7XHJcblx0XHRcdFx0XHRcdHN1Y2Nlc3NDYWxsYmFjayh4KTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0fSwgXyA9PiB0aGlzLmlzU2F2aW5nID0gZmFsc2UpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRGVsZXRlcyBhbiBpdGVtIGZyb20gdGhlIGRhdGFiYXNlLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBkZWxldGVJdGVtKGl0ZW06IFRFbnRpdHkpOiB2b2lkIHtcclxuXHRcdHRoaXMuc2hvd0RlbGV0ZUl0ZW1EaWFsb2coKVxyXG5cdFx0XHQuc3Vic2NyaWJlKChhY2NlcHQ6IGJvb2xlYW4pID0+IHtcclxuXHRcdFx0XHRpZiAoYWNjZXB0KSB7XHJcblx0XHRcdFx0XHR0aGlzLnNlcnZpY2UuZGVsZXRlKChpdGVtIGFzIElFbnRpdHkpLmlkKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG5cdFx0XHRcdFx0XHR0aGlzLmxvYWRMaXN0KHRydWUpO1xyXG5cdFx0XHRcdFx0fSwgZXJyb3IgPT4ge1xyXG5cdFx0XHRcdFx0XHRjb25zb2xlLmRlYnVnKGVycm9yKTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBEZWxldGVzIGFuIGl0ZW0gZnJvbSB0aGUgZGF0YWJhc2UuXHJcblx0ICogQHBhcmFtIGlkcyB0aGUgSURzIG9mIHRoZSBpdGVtcyB0byBkZWxldGVcclxuXHQgKi9cclxuXHRwdWJsaWMgZGVsZXRlSXRlbXMoKTogdm9pZCB7XHJcblx0XHRpZiAodGhpcy5kYXRhU291cmNlLnNlbGVjdGlvbk1vZGVsLmhhc1ZhbHVlKCkpIHtcclxuXHRcdFx0dGhpcy5zaG93RGVsZXRlSXRlbXNEaWFsb2coKVxyXG5cdFx0XHRcdC5zdWJzY3JpYmUoKGFjY2VwdDogYm9vbGVhbikgPT4ge1xyXG5cdFx0XHRcdFx0aWYgKGFjY2VwdCkge1xyXG5cdFx0XHRcdFx0XHR0aGlzLnNlcnZpY2UuZGVsZXRlTGlzdCh0aGlzLmRhdGFTb3VyY2UuZ2V0U2VsZWN0ZWQoKSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLmxvYWRMaXN0KHRydWUpO1xyXG5cdFx0XHRcdFx0XHR9LCBlcnJvciA9PiB7XHJcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5kZWJ1ZyhlcnJvcik7XHJcblx0XHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogVG9nZ2xlcyBhIHByb3BlcnR5XHJcblx0ICogQHBhcmFtIGlkIFxyXG5cdCAqIEBwYXJhbSBlbmFibGVkIFxyXG5cdCAqIEBwYXJhbSBwcm9wZXJ0eVxyXG5cdCAqL1xyXG5cdHB1YmxpYyB0b2dnbGUoaXRlbTogVEVudGl0eSwgcHJvcGVydHk6IHN0cmluZyA9ICdlbmFibGVkJyk6IHZvaWQge1xyXG5cdFx0dGhpcy5zZXJ2aWNlXHJcblx0XHRcdC5wYXRjaCgoPGFueT5pdGVtKS5pZCwgW3sgb3A6ICdyZXBsYWNlJywgcGF0aDogYC8ke3Byb3BlcnR5fWAsIHZhbHVlOiBpdGVtW3Byb3BlcnR5XSB9XSlcclxuXHRcdFx0LnN1YnNjcmliZSh4ID0+IHRoaXMubG9hZExpc3QoKSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBVcGxvYWRzIHRhcm5zZmVycyBjc3YgZmlsZXNcclxuXHQgKiBAcGFyYW0gZmlsZSBUaGUgZmlsZSB0byB1cGxvYWRcclxuXHQgKiBAcGFyYW0gcmVsb2FkIElmIHRydWUsIHJlbG9hZCBpdGVtc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyB1cGxvYWQoZmlsZTogRmlsZSwgcmVsb2FkOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG5cdFx0dGhpcy5zZXJ2aWNlLnVwbG9hZChmaWxlKS5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xyXG5cdFx0XHRyZXNwb25zZSA9IHJlc3BvbnNlLmpzb24oKTtcclxuXHJcblx0XHRcdC8qIFJlbG9hZCBsaXN0ICovXHJcblx0XHRcdGlmIChyZWxvYWQpIHtcclxuXHRcdFx0XHR0aGlzLmxvYWRMaXN0KCk7XHJcblx0XHRcdH1cclxuXHRcdH0sIGVycm9yID0+IHsgfSk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBEb3dubG9hZHMgYSBkb2N1bWVudFxyXG5cdCAqIEBwYXJhbSBpdGVtIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBkb3dubG9hZChpdGVtOiBURW50aXR5LCBwYXRoOiBzdHJpbmcgPSAnZG93bmxvYWQnKTogdm9pZCB7XHJcblx0XHR0aGlzLnNlcnZpY2UuZG93bmxvYWQoYCR7cGF0aH0vJHsoaXRlbSBhcyBJRW50aXR5KS5pZH1gKS5zdWJzY3JpYmUoeCA9PiB7XHJcblx0XHRcdHNhdmVBcyhuZXcgQmxvYihbeC5kYXRhXSwge30pLCB4LmZpbGVuYW1lKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRHVwbGljYXRlcyBhIHJlY29yZFxyXG5cdCAqIEBwYXJhbSBpdGVtIFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBkdXBsaWNhdGUoaXRlbTogVEVudGl0eSkge1xyXG5cdFx0dGhpcy5zZXJ2aWNlLmR1cGxpY2F0ZSgoaXRlbSBhcyBJRW50aXR5KS5pZCkuc3Vic2NyaWJlKF8gPT4gdGhpcy5sb2FkTGlzdCgpKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFRoaXMgaW5mb3JtcyB0aGUgdGFibGUgaG93IHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHJvd3MgdG8gXHJcblx0ICogdHJhY2sgaG93IHRoZSBkYXRhIGNoYW5nZXMgd2l0aCBlYWNoIHVwZGF0ZS5cclxuXHQgKiBAcGFyYW0gaW5kZXggXHJcblx0ICogQHBhcmFtIGl0ZW0gXHJcblx0ICovXHJcblx0cHVibGljIHRyYWNrQnlJZChfOiBudW1iZXIsIGl0ZW06IGFueSkge1xyXG5cdFx0cmV0dXJuIGl0ZW0uaWQ7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBJbmNsdWRlcyBzb21lIG5hdmlnYXRpb25zXHJcblx0ICogQHBhcmFtIGluYyBcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgaW5jbHVkZSguLi5pbmM6IHN0cmluZ1tdKSB7XHJcblx0XHRpbmM/LmZvckVhY2goeCA9PiB0aGlzLmluY2x1ZGVzLnB1c2goeCkpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2hlY2sgaWYgdGhlIGl0ZW0gaXMgZGVsZXRlYWJsZVxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBjYW5EZWxldGVJdGVtKHJvdzogVEVudGl0eSk6IGJvb2xlYW4geyByZXR1cm4gdHJ1ZSB9XHJcblxyXG5cdC8qKlxyXG5cdCAqIENoZWNrIGlmIHRoZSBpdGVtIGlzIGRvd25sb2FkYWJsZVxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBjYW5Eb3dubG9hZEl0ZW0ocm93OiBURW50aXR5KTogYm9vbGVhbiB7IHJldHVybiB0cnVlIH1cclxuXHJcblx0LyoqXHJcblx0ICogQ2hlY2sgaWYgdGhlIGl0ZW0gaXMgc2VsZWN0YWJsZVxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCBzZWxlY3RhYmxlSXRlbShyb3c6IFRFbnRpdHkpOiBib29sZWFuIHsgcmV0dXJuIHRydWUgfVxyXG5cclxuXHQvKipcclxuXHQgKiBSZXR1cm5zIE5nQ2xhc3Mgb2JqZWN0IGZvciBzZWxlY3QgY29sdW1uXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHNlbGVjdENvbHVtbk5nQ2xhc3Mocm93OiBURW50aXR5KTogYW55IHsgfVxyXG5cclxuXHQvKipcclxuXHQgKiBSZXNwb25kcyB0byB1c2VyLWluaXRpYXRlZCBldmVudHNcclxuXHQgKiBAcGFyYW0gZXZlbnQgXHJcblx0ICovXHJcblx0QEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXHJcblx0aGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG5cdFx0aWYgKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkge1xyXG5cdFx0XHRzd2l0Y2ggKGV2ZW50LmtleSkge1xyXG5cdFx0XHRcdC8qIE5hdmlnYXRlIHRvIGFkZCBwYWdlICovXHJcblx0XHRcdFx0Y2FzZSAnYSc6XHJcblx0XHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0XHRcdFx0dGhpcy5hZGQoKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRzd2l0Y2ggKGV2ZW50LmtleSkge1xyXG5cdFx0XHRcdC8qIE5hdmlnYXRlIHRvIHByZXZpb3VzIHBhZ2UgKi9cclxuXHRcdFx0XHRjYXNlICdQYWdlVXAnOlxyXG5cdFx0XHRcdFx0dGhpcy5wYWdpbmF0b3IucHJldmlvdXNQYWdlKCk7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHJcblx0XHRcdFx0LyogTmF2aWdhdGUgdG8gbmV4dCBwYWdlICovXHJcblx0XHRcdFx0Y2FzZSAnUGFnZURvd24nOlxyXG5cdFx0XHRcdFx0dGhpcy5wYWdpbmF0b3IubmV4dFBhZ2UoKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBBIGNhbGxiYWNrIHVzZWQgZm9yIGFueSBjdXN0b20gY2xlYW51cCB0aGF0IG5lZWRzIHRvIG9jY3VyIFxyXG5cdCAqIHdoZW4gdGhlIGluc3RhbmNlIGlzIGRlc3Ryb3llZC5cclxuXHQgKi9cclxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLmRhdGFMb2FkZWRTdWJzY3JpcHRpb24pIHtcclxuXHRcdFx0dGhpcy5kYXRhTG9hZGVkU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcblx0XHR9XHJcblx0fVxyXG59Il19