@abp/ng.core 7.2.2 → 7.3.0-rc.1

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 (397) hide show
  1. package/{esm2020 → esm2022}/abp-ng.core.mjs +4 -4
  2. package/esm2022/lib/abstracts/abstract-guard.mjs +2 -0
  3. package/{esm2020 → esm2022}/lib/abstracts/auth-response.model.mjs +1 -1
  4. package/esm2022/lib/abstracts/auth.guard.mjs +18 -0
  5. package/esm2022/lib/abstracts/auth.service.mjs +46 -0
  6. package/esm2022/lib/abstracts/index.mjs +6 -0
  7. package/esm2022/lib/abstracts/ng-model.component.mjs +60 -0
  8. package/esm2022/lib/clients/http.client.mjs +29 -0
  9. package/{esm2020 → esm2022}/lib/clients/index.mjs +1 -1
  10. package/esm2022/lib/components/dynamic-layout.component.mjs +101 -0
  11. package/{esm2020 → esm2022}/lib/components/index.mjs +3 -3
  12. package/esm2022/lib/components/replaceable-route-container.component.mjs +43 -0
  13. package/esm2022/lib/components/router-outlet.component.mjs +16 -0
  14. package/{esm2020 → esm2022}/lib/constants/different-locales.mjs +336 -336
  15. package/{esm2020 → esm2022}/lib/constants/index.mjs +1 -1
  16. package/esm2022/lib/core.module.mjs +285 -0
  17. package/esm2022/lib/directives/autofocus.directive.mjs +31 -0
  18. package/esm2022/lib/directives/debounce.directive.mjs +37 -0
  19. package/esm2022/lib/directives/for.directive.mjs +160 -0
  20. package/esm2022/lib/directives/form-submit.directive.mjs +78 -0
  21. package/{esm2020 → esm2022}/lib/directives/index.mjs +8 -8
  22. package/esm2022/lib/directives/init.directive.mjs +22 -0
  23. package/esm2022/lib/directives/permission.directive.mjs +75 -0
  24. package/esm2022/lib/directives/replaceable-template.directive.mjs +133 -0
  25. package/esm2022/lib/directives/stop-propagation.directive.mjs +33 -0
  26. package/{esm2020 → esm2022}/lib/enums/common.mjs +1 -1
  27. package/{esm2020 → esm2022}/lib/enums/index.mjs +1 -1
  28. package/{esm2020 → esm2022}/lib/guards/index.mjs +1 -1
  29. package/esm2022/lib/guards/permission.guard.mjs +41 -0
  30. package/esm2022/lib/handlers/routes.handler.mjs +52 -0
  31. package/esm2022/lib/interceptors/api.interceptor.mjs +28 -0
  32. package/{esm2020 → esm2022}/lib/interceptors/index.mjs +1 -1
  33. package/esm2022/lib/localization.module.mjs +17 -0
  34. package/{esm2020 → esm2022}/lib/models/auth.mjs +1 -1
  35. package/{esm2020 → esm2022}/lib/models/common.mjs +1 -1
  36. package/{esm2020 → esm2022}/lib/models/dtos.mjs +134 -134
  37. package/{esm2020 → esm2022}/lib/models/environment.mjs +1 -1
  38. package/{esm2020 → esm2022}/lib/models/index.mjs +9 -9
  39. package/{esm2020 → esm2022}/lib/models/localization.mjs +1 -1
  40. package/{esm2020 → esm2022}/lib/models/replaceable-components.mjs +1 -1
  41. package/{esm2020 → esm2022}/lib/models/rest.mjs +1 -1
  42. package/{esm2020 → esm2022}/lib/models/session.mjs +1 -1
  43. package/{esm2020 → esm2022}/lib/models/utility.mjs +1 -1
  44. package/{esm2020 → esm2022}/lib/pipes/index.mjs +7 -7
  45. package/esm2022/lib/pipes/localization.pipe.mjs +34 -0
  46. package/esm2022/lib/pipes/safe-html.pipe.mjs +24 -0
  47. package/esm2022/lib/pipes/short-date-time.pipe.mjs +35 -0
  48. package/esm2022/lib/pipes/short-date.pipe.mjs +35 -0
  49. package/esm2022/lib/pipes/short-time.pipe.mjs +35 -0
  50. package/esm2022/lib/pipes/sort.pipe.mjs +50 -0
  51. package/esm2022/lib/pipes/to-injector.pipe.mjs +30 -0
  52. package/{esm2020 → esm2022}/lib/providers/cookie-language.provider.mjs +21 -21
  53. package/{esm2020 → esm2022}/lib/providers/include-localization-resources.provider.mjs +5 -5
  54. package/{esm2020 → esm2022}/lib/providers/locale.provider.mjs +25 -25
  55. package/esm2022/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.mjs +28 -0
  56. package/{esm2020 → esm2022}/lib/proxy/pages/abp/multi-tenancy/index.mjs +1 -1
  57. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.mjs +25 -0
  58. package/{esm2020 → esm2022}/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/index.mjs +1 -1
  59. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.mjs +25 -0
  60. package/esm2022/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.mjs +25 -0
  61. package/{esm2020 → esm2022}/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/index.mjs +5 -5
  62. package/{esm2020 → esm2022}/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.mjs +1 -1
  63. package/{esm2020 → esm2022}/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/index.mjs +1 -1
  64. package/{esm2020 → esm2022}/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.mjs +1 -1
  65. package/{esm2020 → esm2022}/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/index.mjs +1 -1
  66. package/{esm2020 → esm2022}/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.mjs +1 -1
  67. package/{esm2020 → esm2022}/lib/proxy/volo/abp/http/modeling/index.mjs +1 -1
  68. package/{esm2020 → esm2022}/lib/proxy/volo/abp/http/modeling/models.mjs +1 -1
  69. package/{esm2020 → esm2022}/lib/proxy/volo/abp/localization/index.mjs +1 -1
  70. package/{esm2020 → esm2022}/lib/proxy/volo/abp/localization/models.mjs +1 -1
  71. package/{esm2020 → esm2022}/lib/proxy/volo/abp/models.mjs +1 -1
  72. package/esm2022/lib/services/config-state.service.mjs +182 -0
  73. package/esm2022/lib/services/content-projection.service.mjs +18 -0
  74. package/esm2022/lib/services/dom-insertion.service.mjs +35 -0
  75. package/esm2022/lib/services/environment.service.mjs +49 -0
  76. package/esm2022/lib/services/http-error-reporter.service.mjs +30 -0
  77. package/esm2022/lib/services/http-wait.service.mjs +76 -0
  78. package/{esm2020 → esm2022}/lib/services/index.mjs +21 -21
  79. package/esm2022/lib/services/lazy-load.service.mjs +41 -0
  80. package/esm2022/lib/services/list.service.mjs +103 -0
  81. package/esm2022/lib/services/local-storage.service.mjs +33 -0
  82. package/esm2022/lib/services/localization.service.mjs +218 -0
  83. package/esm2022/lib/services/multi-tenancy.service.mjs +49 -0
  84. package/esm2022/lib/services/permission.service.mjs +64 -0
  85. package/esm2022/lib/services/replaceable-components.service.mjs +50 -0
  86. package/esm2022/lib/services/resource-wait.service.mjs +40 -0
  87. package/esm2022/lib/services/rest.service.mjs +79 -0
  88. package/esm2022/lib/services/router-events.service.mjs +39 -0
  89. package/esm2022/lib/services/router-wait.service.mjs +52 -0
  90. package/esm2022/lib/services/routes.service.mjs +165 -0
  91. package/esm2022/lib/services/session-state.service.mjs +81 -0
  92. package/esm2022/lib/services/subscription.service.mjs +44 -0
  93. package/esm2022/lib/services/track-by.service.mjs +22 -0
  94. package/{esm2020 → esm2022}/lib/strategies/container.strategy.mjs +37 -37
  95. package/{esm2020 → esm2022}/lib/strategies/content-security.strategy.mjs +29 -29
  96. package/{esm2020 → esm2022}/lib/strategies/content.strategy.mjs +51 -51
  97. package/{esm2020 → esm2022}/lib/strategies/context.strategy.mjs +36 -36
  98. package/{esm2020 → esm2022}/lib/strategies/cross-origin.strategy.mjs +27 -27
  99. package/{esm2020 → esm2022}/lib/strategies/dom.strategy.mjs +26 -26
  100. package/{esm2020 → esm2022}/lib/strategies/index.mjs +8 -8
  101. package/{esm2020 → esm2022}/lib/strategies/loading.strategy.mjs +57 -57
  102. package/{esm2020 → esm2022}/lib/strategies/projection.strategy.mjs +79 -79
  103. package/{esm2020 → esm2022}/lib/tokens/app-config.token.mjs +2 -2
  104. package/{esm2020 → esm2022}/lib/tokens/check-authentication-state.mjs +2 -2
  105. package/{esm2020 → esm2022}/lib/tokens/cookie-language-key.token.mjs +4 -4
  106. package/{esm2020 → esm2022}/lib/tokens/http-context.token.mjs +2 -2
  107. package/{esm2020 → esm2022}/lib/tokens/include-localization-resources.token.mjs +2 -2
  108. package/{esm2020 → esm2022}/lib/tokens/index.mjs +15 -15
  109. package/{esm2020 → esm2022}/lib/tokens/list.token.mjs +2 -2
  110. package/{esm2020 → esm2022}/lib/tokens/localization.token.mjs +9 -9
  111. package/{esm2020 → esm2022}/lib/tokens/lodaer-delay.token.mjs +2 -2
  112. package/{esm2020 → esm2022}/lib/tokens/manage-profile.token.mjs +2 -2
  113. package/{esm2020 → esm2022}/lib/tokens/options.token.mjs +7 -7
  114. package/{esm2020 → esm2022}/lib/tokens/others-group.token.mjs +2 -2
  115. package/{esm2020 → esm2022}/lib/tokens/pipe-to-login.token.mjs +2 -2
  116. package/{esm2020 → esm2022}/lib/tokens/queue.token.mjs +2 -2
  117. package/{esm2020 → esm2022}/lib/tokens/set-token-response-to-storage.token.mjs +5 -5
  118. package/{esm2020 → esm2022}/lib/tokens/tenant-key.token.mjs +2 -2
  119. package/{esm2020 → esm2022}/lib/utils/array-utils.mjs +6 -6
  120. package/{esm2020 → esm2022}/lib/utils/common-utils.mjs +34 -34
  121. package/{esm2020 → esm2022}/lib/utils/date-extensions.mjs +5 -5
  122. package/{esm2020 → esm2022}/lib/utils/date-utils.mjs +12 -12
  123. package/{esm2020 → esm2022}/lib/utils/environment-utils.mjs +35 -35
  124. package/{esm2020 → esm2022}/lib/utils/factory-utils.mjs +24 -24
  125. package/{esm2020 → esm2022}/lib/utils/file-utils.mjs +13 -13
  126. package/{esm2020 → esm2022}/lib/utils/form-utils.mjs +11 -11
  127. package/{esm2020 → esm2022}/lib/utils/generator-utils.mjs +33 -33
  128. package/{esm2020 → esm2022}/lib/utils/http-utils.mjs +18 -18
  129. package/{esm2020 → esm2022}/lib/utils/index.mjs +20 -20
  130. package/{esm2020 → esm2022}/lib/utils/initial-utils.mjs +59 -59
  131. package/esm2022/lib/utils/internal-store-utils.mjs +37 -0
  132. package/{esm2020 → esm2022}/lib/utils/lazy-load-utils.mjs +39 -39
  133. package/{esm2020 → esm2022}/lib/utils/localization-utils.mjs +48 -48
  134. package/{esm2020 → esm2022}/lib/utils/multi-tenancy-utils.mjs +80 -80
  135. package/{esm2020 → esm2022}/lib/utils/number-utils.mjs +3 -3
  136. package/{esm2020 → esm2022}/lib/utils/object-utils.mjs +36 -36
  137. package/{esm2020 → esm2022}/lib/utils/queue.mjs +40 -40
  138. package/{esm2020 → esm2022}/lib/utils/route-utils.mjs +25 -25
  139. package/{esm2020 → esm2022}/lib/utils/string-utils.mjs +29 -29
  140. package/{esm2020 → esm2022}/lib/utils/tree-utils.mjs +69 -69
  141. package/{esm2020 → esm2022}/lib/validators/age.validator.mjs +13 -13
  142. package/{esm2020 → esm2022}/lib/validators/credit-card.validator.mjs +20 -20
  143. package/esm2022/lib/validators/index.mjs +29 -0
  144. package/{esm2020 → esm2022}/lib/validators/range.validator.mjs +14 -14
  145. package/{esm2020 → esm2022}/lib/validators/required.validator.mjs +14 -14
  146. package/{esm2020 → esm2022}/lib/validators/string-length.validator.mjs +14 -14
  147. package/esm2022/lib/validators/unique-character.validator.mjs +13 -0
  148. package/{esm2020 → esm2022}/lib/validators/url.validator.mjs +16 -16
  149. package/{esm2020 → esm2022}/lib/validators/username.validator.mjs +13 -13
  150. package/{esm2020 → esm2022}/locale/abp-ng.core-locale.mjs +4 -4
  151. package/{esm2020 → esm2022}/locale/public-api.mjs +1 -1
  152. package/{esm2020 → esm2022}/locale/utils/register-locale.mjs +46 -46
  153. package/{esm2020 → esm2022}/public-api.mjs +26 -26
  154. package/{esm2020 → esm2022}/testing/abp-ng.core-testing.mjs +4 -4
  155. package/esm2022/testing/lib/core-testing.module.mjs +68 -0
  156. package/{esm2020 → esm2022}/testing/lib/services/index.mjs +2 -2
  157. package/esm2022/testing/lib/services/mock-permission.service.mjs +36 -0
  158. package/esm2022/testing/lib/services/mock-rest.service.mjs +32 -0
  159. package/{esm2020 → esm2022}/testing/lib/utils/clear-page.util.mjs +9 -9
  160. package/{esm2020 → esm2022}/testing/lib/utils/index.mjs +2 -2
  161. package/{esm2020 → esm2022}/testing/lib/utils/wait.util.mjs +4 -4
  162. package/{esm2020 → esm2022}/testing/public-api.mjs +3 -3
  163. package/{fesm2020 → fesm2022}/abp-ng.core-locale.mjs +45 -45
  164. package/{fesm2020 → fesm2022}/abp-ng.core-testing.mjs +120 -120
  165. package/{fesm2020 → fesm2022}/abp-ng.core-testing.mjs.map +1 -1
  166. package/{fesm2020 → fesm2022}/abp-ng.core.mjs +4199 -4187
  167. package/fesm2022/abp-ng.core.mjs.map +1 -0
  168. package/index.d.ts +5 -5
  169. package/lib/abstracts/abstract-guard.d.ts +5 -0
  170. package/lib/abstracts/auth-response.model.d.ts +10 -10
  171. package/lib/abstracts/auth.guard.d.ts +9 -10
  172. package/lib/abstracts/auth.service.d.ts +30 -30
  173. package/lib/abstracts/index.d.ts +5 -4
  174. package/lib/abstracts/ng-model.component.d.ts +25 -25
  175. package/lib/clients/http.client.d.ts +11 -11
  176. package/lib/clients/index.d.ts +1 -1
  177. package/lib/components/dynamic-layout.component.d.ts +28 -28
  178. package/lib/components/index.d.ts +3 -3
  179. package/lib/components/replaceable-route-container.component.d.ts +17 -17
  180. package/lib/components/router-outlet.component.d.ts +5 -5
  181. package/lib/constants/different-locales.d.ts +334 -334
  182. package/lib/constants/index.d.ts +1 -1
  183. package/lib/core.module.d.ts +57 -57
  184. package/lib/directives/autofocus.directive.d.ts +12 -12
  185. package/lib/directives/debounce.directive.d.ts +13 -13
  186. package/lib/directives/for.directive.d.ts +36 -36
  187. package/lib/directives/form-submit.directive.d.ts +23 -23
  188. package/lib/directives/index.d.ts +8 -8
  189. package/lib/directives/init.directive.d.ts +10 -10
  190. package/lib/directives/permission.directive.d.ts +24 -24
  191. package/lib/directives/replaceable-template.directive.d.ts +29 -29
  192. package/lib/directives/stop-propagation.directive.d.ts +12 -12
  193. package/lib/enums/common.d.ts +5 -5
  194. package/lib/enums/index.d.ts +1 -1
  195. package/lib/guards/index.d.ts +1 -1
  196. package/lib/guards/permission.guard.d.ts +16 -16
  197. package/lib/handlers/routes.handler.d.ts +11 -11
  198. package/lib/interceptors/api.interceptor.d.ts +14 -14
  199. package/lib/interceptors/index.d.ts +1 -1
  200. package/lib/localization.module.d.ts +7 -7
  201. package/lib/models/auth.d.ts +14 -14
  202. package/lib/models/common.d.ts +79 -79
  203. package/lib/models/dtos.d.ts +107 -107
  204. package/lib/models/environment.d.ts +38 -38
  205. package/lib/models/index.d.ts +9 -9
  206. package/lib/models/localization.d.ts +5 -5
  207. package/lib/models/replaceable-components.d.ts +45 -45
  208. package/lib/models/rest.d.ts +36 -36
  209. package/lib/models/session.d.ts +7 -7
  210. package/lib/models/utility.d.ts +14 -14
  211. package/lib/pipes/index.d.ts +7 -7
  212. package/lib/pipes/localization.pipe.d.ts +12 -12
  213. package/lib/pipes/safe-html.pipe.d.ts +9 -9
  214. package/lib/pipes/short-date-time.pipe.d.ts +12 -12
  215. package/lib/pipes/short-date.pipe.d.ts +12 -12
  216. package/lib/pipes/short-time.pipe.d.ts +12 -12
  217. package/lib/pipes/sort.pipe.d.ts +9 -9
  218. package/lib/pipes/to-injector.pipe.d.ts +10 -10
  219. package/lib/providers/cookie-language.provider.d.ts +3 -3
  220. package/lib/providers/include-localization-resources.provider.d.ts +2 -2
  221. package/lib/providers/locale.provider.d.ts +9 -9
  222. package/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.d.ts +12 -12
  223. package/lib/proxy/pages/abp/multi-tenancy/index.d.ts +1 -1
  224. package/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.d.ts +11 -11
  225. package/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/index.d.ts +1 -1
  226. package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.d.ts +11 -11
  227. package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.d.ts +11 -11
  228. package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/index.d.ts +5 -5
  229. package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.d.ts +106 -106
  230. package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/index.d.ts +1 -1
  231. package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.d.ts +71 -71
  232. package/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/index.d.ts +1 -1
  233. package/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.d.ts +14 -14
  234. package/lib/proxy/volo/abp/http/modeling/index.d.ts +1 -1
  235. package/lib/proxy/volo/abp/http/modeling/models.d.ts +88 -88
  236. package/lib/proxy/volo/abp/localization/index.d.ts +1 -1
  237. package/lib/proxy/volo/abp/localization/models.d.ts +7 -7
  238. package/lib/proxy/volo/abp/models.d.ts +4 -4
  239. package/lib/services/config-state.service.d.ts +379 -378
  240. package/lib/services/content-projection.service.d.ts +10 -10
  241. package/lib/services/dom-insertion.service.d.ts +10 -10
  242. package/lib/services/environment.service.d.ts +103 -103
  243. package/lib/services/http-error-reporter.service.d.ts +12 -12
  244. package/lib/services/http-wait.service.d.ts +30 -30
  245. package/lib/services/index.d.ts +21 -21
  246. package/lib/services/lazy-load.service.d.ts +13 -13
  247. package/lib/services/list.service.d.ts +39 -39
  248. package/lib/services/local-storage.service.d.ts +13 -13
  249. package/lib/services/localization.service.d.ts +54 -54
  250. package/lib/services/multi-tenancy.service.d.ts +22 -22
  251. package/lib/services/permission.service.d.ts +19 -19
  252. package/lib/services/replaceable-components.service.d.ts +19 -19
  253. package/lib/services/resource-wait.service.d.ts +15 -15
  254. package/lib/services/rest.service.d.ts +24 -24
  255. package/lib/services/router-events.service.d.ts +29 -29
  256. package/lib/services/router-wait.service.d.ts +20 -20
  257. package/lib/services/routes.service.d.ts +57 -57
  258. package/lib/services/session-state.service.d.ts +27 -27
  259. package/lib/services/subscription.service.d.ts +17 -17
  260. package/lib/services/track-by.service.d.ts +11 -11
  261. package/lib/strategies/container.strategy.d.ts +22 -22
  262. package/lib/strategies/content-security.strategy.d.ts +17 -17
  263. package/lib/strategies/content.strategy.d.ts +26 -26
  264. package/lib/strategies/context.strategy.d.ts +23 -23
  265. package/lib/strategies/cross-origin.strategy.d.ts +14 -14
  266. package/lib/strategies/dom.strategy.d.ts +13 -13
  267. package/lib/strategies/index.d.ts +8 -8
  268. package/lib/strategies/loading.strategy.d.ts +28 -28
  269. package/lib/strategies/projection.strategy.d.ts +39 -39
  270. package/lib/tokens/app-config.token.d.ts +3 -3
  271. package/lib/tokens/check-authentication-state.d.ts +3 -3
  272. package/lib/tokens/cookie-language-key.token.d.ts +2 -2
  273. package/lib/tokens/http-context.token.d.ts +2 -2
  274. package/lib/tokens/include-localization-resources.token.d.ts +2 -2
  275. package/lib/tokens/index.d.ts +15 -15
  276. package/lib/tokens/list.token.d.ts +2 -2
  277. package/lib/tokens/localization.token.d.ts +6 -6
  278. package/lib/tokens/lodaer-delay.token.d.ts +2 -2
  279. package/lib/tokens/manage-profile.token.d.ts +2 -2
  280. package/lib/tokens/options.token.d.ts +4 -4
  281. package/lib/tokens/others-group.token.d.ts +2 -2
  282. package/lib/tokens/pipe-to-login.token.d.ts +3 -3
  283. package/lib/tokens/queue.token.d.ts +3 -3
  284. package/lib/tokens/set-token-response-to-storage.token.d.ts +6 -6
  285. package/lib/tokens/tenant-key.token.d.ts +2 -2
  286. package/lib/utils/array-utils.d.ts +1 -1
  287. package/lib/utils/common-utils.d.ts +11 -11
  288. package/lib/utils/date-extensions.d.ts +6 -6
  289. package/lib/utils/date-utils.d.ts +4 -4
  290. package/lib/utils/environment-utils.d.ts +3 -3
  291. package/lib/utils/factory-utils.d.ts +11 -11
  292. package/lib/utils/file-utils.d.ts +1 -1
  293. package/lib/utils/form-utils.d.ts +2 -2
  294. package/lib/utils/generator-utils.d.ts +3 -3
  295. package/lib/utils/http-utils.d.ts +8 -8
  296. package/lib/utils/index.d.ts +20 -20
  297. package/lib/utils/initial-utils.d.ts +3 -3
  298. package/lib/utils/internal-store-utils.d.ts +14 -14
  299. package/lib/utils/lazy-load-utils.d.ts +4 -4
  300. package/lib/utils/localization-utils.d.ts +5 -5
  301. package/lib/utils/multi-tenancy-utils.d.ts +3 -3
  302. package/lib/utils/number-utils.d.ts +1 -1
  303. package/lib/utils/object-utils.d.ts +2 -2
  304. package/lib/utils/queue.d.ts +14 -14
  305. package/lib/utils/route-utils.d.ts +8 -8
  306. package/lib/utils/string-utils.d.ts +3 -3
  307. package/lib/utils/tree-utils.d.ts +26 -26
  308. package/lib/validators/age.validator.d.ts +10 -10
  309. package/lib/validators/credit-card.validator.d.ts +5 -5
  310. package/lib/validators/index.d.ts +28 -24
  311. package/lib/validators/range.validator.d.ts +12 -12
  312. package/lib/validators/required.validator.d.ts +8 -8
  313. package/lib/validators/string-length.validator.d.ts +14 -14
  314. package/lib/validators/unique-character.validator.d.ts +5 -0
  315. package/lib/validators/url.validator.d.ts +5 -5
  316. package/lib/validators/username.validator.d.ts +10 -10
  317. package/locale/index.d.ts +5 -5
  318. package/locale/public-api.d.ts +1 -1
  319. package/locale/utils/register-locale.d.ts +13 -13
  320. package/package.json +12 -22
  321. package/public-api.d.ts +25 -25
  322. package/testing/index.d.ts +5 -5
  323. package/testing/lib/core-testing.module.d.ts +16 -16
  324. package/testing/lib/services/index.d.ts +2 -2
  325. package/testing/lib/services/mock-permission.service.d.ts +10 -10
  326. package/testing/lib/services/mock-rest.service.d.ts +14 -14
  327. package/testing/lib/utils/clear-page.util.d.ts +2 -2
  328. package/testing/lib/utils/index.d.ts +2 -2
  329. package/testing/lib/utils/wait.util.d.ts +2 -2
  330. package/testing/public-api.d.ts +3 -3
  331. package/esm2020/lib/abstracts/auth.guard.mjs +0 -17
  332. package/esm2020/lib/abstracts/auth.service.mjs +0 -45
  333. package/esm2020/lib/abstracts/index.mjs +0 -5
  334. package/esm2020/lib/abstracts/ng-model.component.mjs +0 -59
  335. package/esm2020/lib/clients/http.client.mjs +0 -34
  336. package/esm2020/lib/components/dynamic-layout.component.mjs +0 -100
  337. package/esm2020/lib/components/replaceable-route-container.component.mjs +0 -42
  338. package/esm2020/lib/components/router-outlet.component.mjs +0 -15
  339. package/esm2020/lib/core.module.mjs +0 -282
  340. package/esm2020/lib/directives/autofocus.directive.mjs +0 -30
  341. package/esm2020/lib/directives/debounce.directive.mjs +0 -36
  342. package/esm2020/lib/directives/for.directive.mjs +0 -159
  343. package/esm2020/lib/directives/form-submit.directive.mjs +0 -77
  344. package/esm2020/lib/directives/init.directive.mjs +0 -21
  345. package/esm2020/lib/directives/permission.directive.mjs +0 -74
  346. package/esm2020/lib/directives/replaceable-template.directive.mjs +0 -132
  347. package/esm2020/lib/directives/stop-propagation.directive.mjs +0 -32
  348. package/esm2020/lib/guards/permission.guard.mjs +0 -44
  349. package/esm2020/lib/handlers/routes.handler.mjs +0 -51
  350. package/esm2020/lib/interceptors/api.interceptor.mjs +0 -27
  351. package/esm2020/lib/localization.module.mjs +0 -16
  352. package/esm2020/lib/pipes/localization.pipe.mjs +0 -33
  353. package/esm2020/lib/pipes/safe-html.pipe.mjs +0 -23
  354. package/esm2020/lib/pipes/short-date-time.pipe.mjs +0 -34
  355. package/esm2020/lib/pipes/short-date.pipe.mjs +0 -34
  356. package/esm2020/lib/pipes/short-time.pipe.mjs +0 -34
  357. package/esm2020/lib/pipes/sort.pipe.mjs +0 -49
  358. package/esm2020/lib/pipes/to-injector.pipe.mjs +0 -29
  359. package/esm2020/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.mjs +0 -27
  360. package/esm2020/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.mjs +0 -24
  361. package/esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.mjs +0 -24
  362. package/esm2020/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-localization.service.mjs +0 -24
  363. package/esm2020/lib/services/config-state.service.mjs +0 -178
  364. package/esm2020/lib/services/content-projection.service.mjs +0 -17
  365. package/esm2020/lib/services/dom-insertion.service.mjs +0 -34
  366. package/esm2020/lib/services/environment.service.mjs +0 -48
  367. package/esm2020/lib/services/http-error-reporter.service.mjs +0 -29
  368. package/esm2020/lib/services/http-wait.service.mjs +0 -75
  369. package/esm2020/lib/services/lazy-load.service.mjs +0 -40
  370. package/esm2020/lib/services/list.service.mjs +0 -102
  371. package/esm2020/lib/services/local-storage.service.mjs +0 -32
  372. package/esm2020/lib/services/localization.service.mjs +0 -217
  373. package/esm2020/lib/services/multi-tenancy.service.mjs +0 -48
  374. package/esm2020/lib/services/permission.service.mjs +0 -63
  375. package/esm2020/lib/services/replaceable-components.service.mjs +0 -49
  376. package/esm2020/lib/services/resource-wait.service.mjs +0 -39
  377. package/esm2020/lib/services/rest.service.mjs +0 -78
  378. package/esm2020/lib/services/router-events.service.mjs +0 -38
  379. package/esm2020/lib/services/router-wait.service.mjs +0 -51
  380. package/esm2020/lib/services/routes.service.mjs +0 -163
  381. package/esm2020/lib/services/session-state.service.mjs +0 -80
  382. package/esm2020/lib/services/subscription.service.mjs +0 -43
  383. package/esm2020/lib/services/track-by.service.mjs +0 -21
  384. package/esm2020/lib/utils/internal-store-utils.mjs +0 -37
  385. package/esm2020/lib/validators/index.mjs +0 -25
  386. package/esm2020/testing/lib/core-testing.module.mjs +0 -67
  387. package/esm2020/testing/lib/services/mock-permission.service.mjs +0 -35
  388. package/esm2020/testing/lib/services/mock-rest.service.mjs +0 -31
  389. package/fesm2015/abp-ng.core-locale.mjs +0 -57
  390. package/fesm2015/abp-ng.core-locale.mjs.map +0 -1
  391. package/fesm2015/abp-ng.core-testing.mjs +0 -146
  392. package/fesm2015/abp-ng.core-testing.mjs.map +0 -1
  393. package/fesm2015/abp-ng.core.mjs +0 -4460
  394. package/fesm2015/abp-ng.core.mjs.map +0 -1
  395. package/fesm2020/abp-ng.core.mjs.map +0 -1
  396. package/src/lib/proxy/README.md +0 -17
  397. /package/{fesm2020 → fesm2022}/abp-ng.core-locale.mjs.map +0 -0
@@ -1,70 +1,70 @@
1
- import { isArray } from './common-utils';
2
- /* eslint-disable @typescript-eslint/ban-types */
3
- export class BaseTreeNode {
4
- constructor(props) {
5
- this.children = [];
6
- this.isLeaf = true;
7
- Object.assign(this, props);
8
- }
9
- static create(props) {
10
- return new BaseTreeNode(props);
11
- }
12
- }
13
- export function createTreeFromList(list, keySelector, parentKeySelector, valueMapper) {
14
- const map = createMapFromList(list, keySelector, valueMapper);
15
- const tree = [];
16
- list.forEach(row => {
17
- const id = keySelector(row);
18
- const parentId = parentKeySelector(row);
19
- const node = map.get(id);
20
- if (!node)
21
- return;
22
- if (parentId) {
23
- const parent = map.get(parentId);
24
- if (!parent)
25
- return;
26
- parent.children.push(node);
27
- parent.isLeaf = false;
28
- node.parent = parent;
29
- }
30
- else {
31
- tree.push(node);
32
- }
33
- });
34
- return tree;
35
- }
36
- export function createMapFromList(list, keySelector, valueMapper) {
37
- const map = new Map();
38
- list.forEach(row => map.set(keySelector(row), valueMapper(row)));
39
- return map;
40
- }
41
- export function createTreeNodeFilterCreator(key, mapperFn) {
42
- return (search) => {
43
- const regex = new RegExp('.*' + search + '.*', 'i');
44
- return function collectNodes(nodes, matches = []) {
45
- for (const node of nodes) {
46
- if (regex.test(mapperFn(node[key])))
47
- matches.push(node);
48
- if (node.children.length)
49
- collectNodes(node.children, matches);
50
- }
51
- return matches;
52
- };
53
- };
54
- }
55
- export function createGroupMap(list, othersGroupKey) {
56
- if (!isArray(list) || !list.some(node => Boolean(node.group)))
57
- return undefined;
58
- const mapGroup = new Map();
59
- for (const node of list) {
60
- const group = node?.group || othersGroupKey;
61
- if (typeof group !== 'string') {
62
- throw new Error(`Invalid group: ${group}`);
63
- }
64
- const items = mapGroup.get(group) || [];
65
- items.push(node);
66
- mapGroup.set(group, items);
67
- }
68
- return mapGroup;
69
- }
1
+ import { isArray } from './common-utils';
2
+ /* eslint-disable @typescript-eslint/ban-types */
3
+ export class BaseTreeNode {
4
+ constructor(props) {
5
+ this.children = [];
6
+ this.isLeaf = true;
7
+ Object.assign(this, props);
8
+ }
9
+ static create(props) {
10
+ return new BaseTreeNode(props);
11
+ }
12
+ }
13
+ export function createTreeFromList(list, keySelector, parentKeySelector, valueMapper) {
14
+ const map = createMapFromList(list, keySelector, valueMapper);
15
+ const tree = [];
16
+ list.forEach(row => {
17
+ const id = keySelector(row);
18
+ const parentId = parentKeySelector(row);
19
+ const node = map.get(id);
20
+ if (!node)
21
+ return;
22
+ if (parentId) {
23
+ const parent = map.get(parentId);
24
+ if (!parent)
25
+ return;
26
+ parent.children.push(node);
27
+ parent.isLeaf = false;
28
+ node.parent = parent;
29
+ }
30
+ else {
31
+ tree.push(node);
32
+ }
33
+ });
34
+ return tree;
35
+ }
36
+ export function createMapFromList(list, keySelector, valueMapper) {
37
+ const map = new Map();
38
+ list.forEach(row => map.set(keySelector(row), valueMapper(row)));
39
+ return map;
40
+ }
41
+ export function createTreeNodeFilterCreator(key, mapperFn) {
42
+ return (search) => {
43
+ const regex = new RegExp('.*' + search + '.*', 'i');
44
+ return function collectNodes(nodes, matches = []) {
45
+ for (const node of nodes) {
46
+ if (regex.test(mapperFn(node[key])))
47
+ matches.push(node);
48
+ if (node.children.length)
49
+ collectNodes(node.children, matches);
50
+ }
51
+ return matches;
52
+ };
53
+ };
54
+ }
55
+ export function createGroupMap(list, othersGroupKey) {
56
+ if (!isArray(list) || !list.some(node => Boolean(node.group)))
57
+ return undefined;
58
+ const mapGroup = new Map();
59
+ for (const node of list) {
60
+ const group = node?.group || othersGroupKey;
61
+ if (typeof group !== 'string') {
62
+ throw new Error(`Invalid group: ${group}`);
63
+ }
64
+ const items = mapGroup.get(group) || [];
65
+ items.push(node);
66
+ mapGroup.set(group, items);
67
+ }
68
+ return mapGroup;
69
+ }
70
70
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy90cmVlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxpREFBaUQ7QUFDakQsTUFBTSxPQUFPLFlBQVk7SUFLdkIsWUFBWSxLQUFRO1FBSnBCLGFBQVEsR0FBa0IsRUFBRSxDQUFDO1FBQzdCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFJWixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBbUIsS0FBUTtRQUN0QyxPQUFPLElBQUksWUFBWSxDQUFJLEtBQUssQ0FBZ0IsQ0FBQztJQUNuRCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLElBQVMsRUFDVCxXQUFpQyxFQUNqQyxpQkFBcUMsRUFDckMsV0FBMkI7SUFFM0IsTUFBTSxHQUFHLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM5RCxNQUFNLElBQUksR0FBdUMsRUFBRSxDQUFDO0lBRXBELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDakIsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFekIsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBRWxCLElBQUksUUFBUSxFQUFFO1lBQ1osTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPO1lBQ25CLE1BQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ25DLE1BQWMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQVksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1NBQy9CO2FBQU07WUFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLElBQVMsRUFDVCxXQUFpQyxFQUNqQyxXQUEyQjtJQUkzQixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsRUFBYyxDQUFDO0lBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkIsQ0FDekMsR0FBWSxFQUNaLFFBQWdDO0lBRWhDLE9BQU8sQ0FBQyxNQUFjLEVBQUUsRUFBRTtRQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEdBQUcsTUFBTSxHQUFHLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUVwRCxPQUFPLFNBQVMsWUFBWSxDQUFDLEtBQW9CLEVBQUUsVUFBeUIsRUFBRTtZQUM1RSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRTtnQkFDeEIsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUV4RCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTTtvQkFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUNoRTtZQUVELE9BQU8sT0FBTyxDQUFDO1FBQ2pCLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUM1QixJQUFtQixFQUNuQixjQUFzQjtJQUV0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUVoRixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztJQUVsRCxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksRUFBRTtRQUN2QixNQUFNLEtBQUssR0FBRyxJQUFJLEVBQUUsS0FBSyxJQUFJLGNBQWMsQ0FBQztRQUM1QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQzVDO1FBRUQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQixRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztLQUM1QjtJQUVELE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnLi9jb21tb24tdXRpbHMnO1xyXG5cclxuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlcyAqL1xyXG5leHBvcnQgY2xhc3MgQmFzZVRyZWVOb2RlPFQgZXh0ZW5kcyBvYmplY3Q+IHtcclxuICBjaGlsZHJlbjogVHJlZU5vZGU8VD5bXSA9IFtdO1xyXG4gIGlzTGVhZiA9IHRydWU7XHJcbiAgcGFyZW50PzogVHJlZU5vZGU8VD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBUKSB7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHByb3BzKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjcmVhdGU8VCBleHRlbmRzIG9iamVjdD4ocHJvcHM6IFQpIHtcclxuICAgIHJldHVybiBuZXcgQmFzZVRyZWVOb2RlPFQ+KHByb3BzKSBhcyBUcmVlTm9kZTxUPjtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVUcmVlRnJvbUxpc3Q8VCBleHRlbmRzIG9iamVjdCwgUj4oXHJcbiAgbGlzdDogVFtdLFxyXG4gIGtleVNlbGVjdG9yOiAoaXRlbTogVCkgPT4gTm9kZUtleSxcclxuICBwYXJlbnRLZXlTZWxlY3RvcjogdHlwZW9mIGtleVNlbGVjdG9yLFxyXG4gIHZhbHVlTWFwcGVyOiAoaXRlbTogVCkgPT4gUixcclxuKSB7XHJcbiAgY29uc3QgbWFwID0gY3JlYXRlTWFwRnJvbUxpc3QobGlzdCwga2V5U2VsZWN0b3IsIHZhbHVlTWFwcGVyKTtcclxuICBjb25zdCB0cmVlOiBOb2RlVmFsdWU8VCwgdHlwZW9mIHZhbHVlTWFwcGVyPltdID0gW107XHJcblxyXG4gIGxpc3QuZm9yRWFjaChyb3cgPT4ge1xyXG4gICAgY29uc3QgaWQgPSBrZXlTZWxlY3Rvcihyb3cpO1xyXG4gICAgY29uc3QgcGFyZW50SWQgPSBwYXJlbnRLZXlTZWxlY3Rvcihyb3cpO1xyXG4gICAgY29uc3Qgbm9kZSA9IG1hcC5nZXQoaWQpO1xyXG5cclxuICAgIGlmICghbm9kZSkgcmV0dXJuO1xyXG5cclxuICAgIGlmIChwYXJlbnRJZCkge1xyXG4gICAgICBjb25zdCBwYXJlbnQgPSBtYXAuZ2V0KHBhcmVudElkKTtcclxuICAgICAgaWYgKCFwYXJlbnQpIHJldHVybjtcclxuICAgICAgKHBhcmVudCBhcyBhbnkpLmNoaWxkcmVuLnB1c2gobm9kZSk7XHJcbiAgICAgIChwYXJlbnQgYXMgYW55KS5pc0xlYWYgPSBmYWxzZTtcclxuICAgICAgKG5vZGUgYXMgYW55KS5wYXJlbnQgPSBwYXJlbnQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0cmVlLnB1c2gobm9kZSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIHJldHVybiB0cmVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWFwRnJvbUxpc3Q8VCBleHRlbmRzIG9iamVjdCwgUj4oXHJcbiAgbGlzdDogVFtdLFxyXG4gIGtleVNlbGVjdG9yOiAoaXRlbTogVCkgPT4gTm9kZUtleSxcclxuICB2YWx1ZU1hcHBlcjogKGl0ZW06IFQpID0+IFIsXHJcbikge1xyXG4gIHR5cGUgS2V5ID0gUmV0dXJuVHlwZTx0eXBlb2Yga2V5U2VsZWN0b3I+O1xyXG4gIHR5cGUgVmFsdWUgPSBOb2RlVmFsdWU8VCwgdHlwZW9mIHZhbHVlTWFwcGVyPjtcclxuICBjb25zdCBtYXAgPSBuZXcgTWFwPEtleSwgVmFsdWU+KCk7XHJcbiAgbGlzdC5mb3JFYWNoKHJvdyA9PiBtYXAuc2V0KGtleVNlbGVjdG9yKHJvdyksIHZhbHVlTWFwcGVyKHJvdykpKTtcclxuICByZXR1cm4gbWFwO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJlZU5vZGVGaWx0ZXJDcmVhdG9yPFQgZXh0ZW5kcyBvYmplY3Q+KFxyXG4gIGtleToga2V5b2YgVCxcclxuICBtYXBwZXJGbjogKHZhbHVlOiBhbnkpID0+IHN0cmluZyxcclxuKSB7XHJcbiAgcmV0dXJuIChzZWFyY2g6IHN0cmluZykgPT4ge1xyXG4gICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKCcuKicgKyBzZWFyY2ggKyAnLionLCAnaScpO1xyXG5cclxuICAgIHJldHVybiBmdW5jdGlvbiBjb2xsZWN0Tm9kZXMobm9kZXM6IFRyZWVOb2RlPFQ+W10sIG1hdGNoZXM6IFRyZWVOb2RlPFQ+W10gPSBbXSkge1xyXG4gICAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcclxuICAgICAgICBpZiAocmVnZXgudGVzdChtYXBwZXJGbihub2RlW2tleV0pKSkgbWF0Y2hlcy5wdXNoKG5vZGUpO1xyXG5cclxuICAgICAgICBpZiAobm9kZS5jaGlsZHJlbi5sZW5ndGgpIGNvbGxlY3ROb2Rlcyhub2RlLmNoaWxkcmVuLCBtYXRjaGVzKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIG1hdGNoZXM7XHJcbiAgICB9O1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVHcm91cE1hcDxUIGV4dGVuZHMgeyBncm91cD86IHN0cmluZyB9PihcclxuICBsaXN0OiBUcmVlTm9kZTxUPltdLFxyXG4gIG90aGVyc0dyb3VwS2V5OiBzdHJpbmcsXHJcbikge1xyXG4gIGlmICghaXNBcnJheShsaXN0KSB8fCAhbGlzdC5zb21lKG5vZGUgPT4gQm9vbGVhbihub2RlLmdyb3VwKSkpIHJldHVybiB1bmRlZmluZWQ7XHJcblxyXG4gIGNvbnN0IG1hcEdyb3VwID0gbmV3IE1hcDxzdHJpbmcsIFRyZWVOb2RlPFQ+W10+KCk7XHJcblxyXG4gIGZvciAoY29uc3Qgbm9kZSBvZiBsaXN0KSB7XHJcbiAgICBjb25zdCBncm91cCA9IG5vZGU/Lmdyb3VwIHx8IG90aGVyc0dyb3VwS2V5O1xyXG4gICAgaWYgKHR5cGVvZiBncm91cCAhPT0gJ3N0cmluZycpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGdyb3VwOiAke2dyb3VwfWApO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGl0ZW1zID0gbWFwR3JvdXAuZ2V0KGdyb3VwKSB8fCBbXTtcclxuICAgIGl0ZW1zLnB1c2gobm9kZSk7XHJcbiAgICBtYXBHcm91cC5zZXQoZ3JvdXAsIGl0ZW1zKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBtYXBHcm91cDtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVHJlZU5vZGU8VCBleHRlbmRzIG9iamVjdD4gPSB7XHJcbiAgW0sgaW4ga2V5b2YgVF06IFRbS107XHJcbn0gJiB7XHJcbiAgY2hpbGRyZW46IFRyZWVOb2RlPFQ+W107XHJcbiAgaXNMZWFmOiBib29sZWFuO1xyXG4gIHBhcmVudD86IFRyZWVOb2RlPFQ+O1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgUm91dGVHcm91cDxUIGV4dGVuZHMgb2JqZWN0PiA9IHtcclxuICByZWFkb25seSBncm91cDogc3RyaW5nO1xyXG4gIHJlYWRvbmx5IGl0ZW1zOiBUcmVlTm9kZTxUPltdO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgTm9kZUtleSA9IG51bWJlciB8IHN0cmluZyB8IHN5bWJvbCB8IHVuZGVmaW5lZCB8IG51bGw7XHJcblxyXG5leHBvcnQgdHlwZSBOb2RlVmFsdWU8VCBleHRlbmRzIG9iamVjdCwgRiBleHRlbmRzICguLi5hcmdzOiBhbnkpID0+IGFueT4gPSBGIGV4dGVuZHMgdW5kZWZpbmVkXHJcbiAgPyBUcmVlTm9kZTxUPlxyXG4gIDogUmV0dXJuVHlwZTxGPjtcclxuIl19
@@ -1,14 +1,14 @@
1
- export function validateMinAge({ age = 18 } = {}) {
2
- return (control) => {
3
- if (['', null, undefined].indexOf(control.value) > -1)
4
- return null;
5
- return isValidMinAge(control.value, age) ? null : { minAge: { age } };
6
- };
7
- }
8
- function isValidMinAge(value, minAge) {
9
- const date = new Date();
10
- date.setFullYear(date.getFullYear() - minAge);
11
- date.setHours(23, 59, 59, 999);
12
- return Number(new Date(value)) <= date.valueOf();
13
- }
1
+ export function validateMinAge({ age = 18 } = {}) {
2
+ return (control) => {
3
+ if (['', null, undefined].indexOf(control.value) > -1)
4
+ return null;
5
+ return isValidMinAge(control.value, age) ? null : { minAge: { age } };
6
+ };
7
+ }
8
+ function isValidMinAge(value, minAge) {
9
+ const date = new Date();
10
+ date.setFullYear(date.getFullYear() - minAge);
11
+ date.setHours(23, 59, 59, 999);
12
+ return Number(new Date(value)) <= date.valueOf();
13
+ }
14
14
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi92YWxpZGF0b3JzL2FnZS52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUEsTUFBTSxVQUFVLGNBQWMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEtBQW9CLEVBQUU7SUFDN0QsT0FBTyxDQUFDLE9BQXdCLEVBQXNCLEVBQUU7UUFDdEQsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVuRSxPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUN4RSxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsS0FBc0IsRUFBRSxNQUFjO0lBQzNELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDOUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUUvQixPQUFPLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTWluQWdlRXJyb3Ige1xyXG4gIG1pbkFnZToge1xyXG4gICAgYWdlOiBudW1iZXI7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBNaW5BZ2VPcHRpb25zIHtcclxuICBhZ2U/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZU1pbkFnZSh7IGFnZSA9IDE4IH06IE1pbkFnZU9wdGlvbnMgPSB7fSk6IFZhbGlkYXRvckZuIHtcclxuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IE1pbkFnZUVycm9yIHwgbnVsbCA9PiB7XHJcbiAgICBpZiAoWycnLCBudWxsLCB1bmRlZmluZWRdLmluZGV4T2YoY29udHJvbC52YWx1ZSkgPiAtMSkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgcmV0dXJuIGlzVmFsaWRNaW5BZ2UoY29udHJvbC52YWx1ZSwgYWdlKSA/IG51bGwgOiB7IG1pbkFnZTogeyBhZ2UgfSB9O1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVmFsaWRNaW5BZ2UodmFsdWU6IHN0cmluZyB8IG51bWJlciwgbWluQWdlOiBudW1iZXIpIHtcclxuICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcclxuICBkYXRlLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSAtIG1pbkFnZSk7XHJcbiAgZGF0ZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xyXG5cclxuICByZXR1cm4gTnVtYmVyKG5ldyBEYXRlKHZhbHVlKSkgPD0gZGF0ZS52YWx1ZU9mKCk7XHJcbn1cclxuIl19
@@ -1,21 +1,21 @@
1
- export function validateCreditCard() {
2
- return (control) => {
3
- if (['', null, undefined].indexOf(control.value) > -1)
4
- return null;
5
- return isValidCreditCard(String(control.value)) ? null : { creditCard: true };
6
- };
7
- }
8
- function isValidCreditCard(value) {
9
- value = value.replace(/[ -]/g, '');
10
- if (!/^[0-9]{13,19}$/.test(value))
11
- return false;
12
- let checksum = 0;
13
- let multiplier = 1;
14
- for (let i = value.length; i > 0; i--) {
15
- const digit = Number(value[i - 1]) * multiplier;
16
- checksum += (digit % 10) + ~~(digit / 10);
17
- multiplier = (multiplier * 2) % 3;
18
- }
19
- return checksum % 10 === 0;
20
- }
1
+ export function validateCreditCard() {
2
+ return (control) => {
3
+ if (['', null, undefined].indexOf(control.value) > -1)
4
+ return null;
5
+ return isValidCreditCard(String(control.value)) ? null : { creditCard: true };
6
+ };
7
+ }
8
+ function isValidCreditCard(value) {
9
+ value = value.replace(/[ -]/g, '');
10
+ if (!/^[0-9]{13,19}$/.test(value))
11
+ return false;
12
+ let checksum = 0;
13
+ let multiplier = 1;
14
+ for (let i = value.length; i > 0; i--) {
15
+ const digit = Number(value[i - 1]) * multiplier;
16
+ checksum += (digit % 10) + ~~(digit / 10);
17
+ multiplier = (multiplier * 2) % 3;
18
+ }
19
+ return checksum % 10 === 0;
20
+ }
21
21
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlZGl0LWNhcmQudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvY3JlZGl0LWNhcmQudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsT0FBTyxDQUFDLE9BQXdCLEVBQTBCLEVBQUU7UUFDMUQsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVuRSxPQUFPLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNoRixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxLQUFhO0lBQ3RDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRWhELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNqQixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFFbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDckMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUM7UUFDaEQsUUFBUSxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztRQUUxQyxVQUFVLEdBQUcsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ25DO0lBRUQsT0FBTyxRQUFRLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlZGl0Q2FyZEVycm9yIHtcclxuICBjcmVkaXRDYXJkOiB0cnVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVDcmVkaXRDYXJkKCk6IFZhbGlkYXRvckZuIHtcclxuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IENyZWRpdENhcmRFcnJvciB8IG51bGwgPT4ge1xyXG4gICAgaWYgKFsnJywgbnVsbCwgdW5kZWZpbmVkXS5pbmRleE9mKGNvbnRyb2wudmFsdWUpID4gLTEpIHJldHVybiBudWxsO1xyXG5cclxuICAgIHJldHVybiBpc1ZhbGlkQ3JlZGl0Q2FyZChTdHJpbmcoY29udHJvbC52YWx1ZSkpID8gbnVsbCA6IHsgY3JlZGl0Q2FyZDogdHJ1ZSB9O1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVmFsaWRDcmVkaXRDYXJkKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoL1sgLV0vZywgJycpO1xyXG5cclxuICBpZiAoIS9eWzAtOV17MTMsMTl9JC8udGVzdCh2YWx1ZSkpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgbGV0IGNoZWNrc3VtID0gMDtcclxuICBsZXQgbXVsdGlwbGllciA9IDE7XHJcblxyXG4gIGZvciAobGV0IGkgPSB2YWx1ZS5sZW5ndGg7IGkgPiAwOyBpLS0pIHtcclxuICAgIGNvbnN0IGRpZ2l0ID0gTnVtYmVyKHZhbHVlW2kgLSAxXSkgKiBtdWx0aXBsaWVyO1xyXG4gICAgY2hlY2tzdW0gKz0gKGRpZ2l0ICUgMTApICsgfn4oZGlnaXQgLyAxMCk7XHJcblxyXG4gICAgbXVsdGlwbGllciA9IChtdWx0aXBsaWVyICogMikgJSAzO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGNoZWNrc3VtICUgMTAgPT09IDA7XHJcbn1cclxuIl19
@@ -0,0 +1,29 @@
1
+ import { Validators } from '@angular/forms';
2
+ import { validateMinAge } from './age.validator';
3
+ import { validateCreditCard } from './credit-card.validator';
4
+ import { validateRange } from './range.validator';
5
+ import { validateRequired } from './required.validator';
6
+ import { validateStringLength } from './string-length.validator';
7
+ import { validateUniqueCharacter } from './unique-character.validator';
8
+ import { validateUrl } from './url.validator';
9
+ import { validateUsername } from './username.validator';
10
+ export { validateUniqueCharacter } from './unique-character.validator';
11
+ export * from './age.validator';
12
+ export * from './credit-card.validator';
13
+ export * from './range.validator';
14
+ export * from './required.validator';
15
+ export * from './string-length.validator';
16
+ export * from './url.validator';
17
+ export * from './unique-character.validator';
18
+ export const AbpValidators = {
19
+ creditCard: validateCreditCard,
20
+ emailAddress: () => Validators.email,
21
+ minAge: validateMinAge,
22
+ range: validateRange,
23
+ required: validateRequired,
24
+ stringLength: validateStringLength,
25
+ url: validateUrl,
26
+ username: validateUsername,
27
+ uniqueCharacter: validateUniqueCharacter,
28
+ };
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdmFsaWRhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFdkUsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDM0IsVUFBVSxFQUFFLGtCQUFrQjtJQUM5QixZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUs7SUFDcEMsTUFBTSxFQUFFLGNBQWM7SUFDdEIsS0FBSyxFQUFFLGFBQWE7SUFDcEIsUUFBUSxFQUFFLGdCQUFnQjtJQUMxQixZQUFZLEVBQUUsb0JBQW9CO0lBQ2xDLEdBQUcsRUFBRSxXQUFXO0lBQ2hCLFFBQVEsRUFBRSxnQkFBZ0I7SUFDMUIsZUFBZSxFQUFFLHVCQUF1QjtDQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgdmFsaWRhdGVNaW5BZ2UgfSBmcm9tICcuL2FnZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyB2YWxpZGF0ZUNyZWRpdENhcmQgfSBmcm9tICcuL2NyZWRpdC1jYXJkLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHZhbGlkYXRlUmFuZ2UgfSBmcm9tICcuL3JhbmdlLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHZhbGlkYXRlUmVxdWlyZWQgfSBmcm9tICcuL3JlcXVpcmVkLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHZhbGlkYXRlU3RyaW5nTGVuZ3RoIH0gZnJvbSAnLi9zdHJpbmctbGVuZ3RoLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHZhbGlkYXRlVW5pcXVlQ2hhcmFjdGVyIH0gZnJvbSAnLi91bmlxdWUtY2hhcmFjdGVyLnZhbGlkYXRvcic7XHJcbmltcG9ydCB7IHZhbGlkYXRlVXJsIH0gZnJvbSAnLi91cmwudmFsaWRhdG9yJztcclxuaW1wb3J0IHsgdmFsaWRhdGVVc2VybmFtZSB9IGZyb20gJy4vdXNlcm5hbWUudmFsaWRhdG9yJztcclxuZXhwb3J0IHsgdmFsaWRhdGVVbmlxdWVDaGFyYWN0ZXIgfSBmcm9tICcuL3VuaXF1ZS1jaGFyYWN0ZXIudmFsaWRhdG9yJztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vYWdlLnZhbGlkYXRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vY3JlZGl0LWNhcmQudmFsaWRhdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9yYW5nZS52YWxpZGF0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL3JlcXVpcmVkLnZhbGlkYXRvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3RyaW5nLWxlbmd0aC52YWxpZGF0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL3VybC52YWxpZGF0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL3VuaXF1ZS1jaGFyYWN0ZXIudmFsaWRhdG9yJztcclxuZXhwb3J0IGNvbnN0IEFicFZhbGlkYXRvcnMgPSB7XHJcbiAgY3JlZGl0Q2FyZDogdmFsaWRhdGVDcmVkaXRDYXJkLFxyXG4gIGVtYWlsQWRkcmVzczogKCkgPT4gVmFsaWRhdG9ycy5lbWFpbCxcclxuICBtaW5BZ2U6IHZhbGlkYXRlTWluQWdlLFxyXG4gIHJhbmdlOiB2YWxpZGF0ZVJhbmdlLFxyXG4gIHJlcXVpcmVkOiB2YWxpZGF0ZVJlcXVpcmVkLFxyXG4gIHN0cmluZ0xlbmd0aDogdmFsaWRhdGVTdHJpbmdMZW5ndGgsXHJcbiAgdXJsOiB2YWxpZGF0ZVVybCxcclxuICB1c2VybmFtZTogdmFsaWRhdGVVc2VybmFtZSxcclxuICB1bmlxdWVDaGFyYWN0ZXI6IHZhbGlkYXRlVW5pcXVlQ2hhcmFjdGVyLFxyXG59O1xyXG4iXX0=
@@ -1,15 +1,15 @@
1
- export function validateRange({ maximum = Infinity, minimum = 0 } = {}) {
2
- return (control) => {
3
- if (['', null, undefined].indexOf(control.value) > -1)
4
- return null;
5
- const value = Number(control.value);
6
- return getMinError(value, minimum, maximum) || getMaxError(value, maximum, minimum);
7
- };
8
- }
9
- function getMaxError(value, max, min) {
10
- return value > max ? { range: { max, min } } : null;
11
- }
12
- function getMinError(value, min, max) {
13
- return value < min ? { range: { min, max } } : null;
14
- }
1
+ export function validateRange({ maximum = Infinity, minimum = 0 } = {}) {
2
+ return (control) => {
3
+ if (['', null, undefined].indexOf(control.value) > -1)
4
+ return null;
5
+ const value = Number(control.value);
6
+ return getMinError(value, minimum, maximum) || getMaxError(value, maximum, minimum);
7
+ };
8
+ }
9
+ function getMaxError(value, max, min) {
10
+ return value > max ? { range: { max, min } } : null;
11
+ }
12
+ function getMinError(value, min, max) {
13
+ return value < min ? { range: { min, max } } : null;
14
+ }
15
15
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvcmFuZ2UudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBLE1BQU0sVUFBVSxhQUFhLENBQUMsRUFBRSxPQUFPLEdBQUcsUUFBUSxFQUFFLE9BQU8sR0FBRyxDQUFDLEtBQW1CLEVBQUU7SUFDbEYsT0FBTyxDQUFDLE9BQXdCLEVBQXFCLEVBQUU7UUFDckQsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVuRSxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEYsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEtBQWEsRUFBRSxHQUFXLEVBQUUsR0FBVztJQUMxRCxPQUFPLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN0RCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsS0FBYSxFQUFFLEdBQVcsRUFBRSxHQUFXO0lBQzFELE9BQU8sS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSYW5nZUVycm9yIHtcclxuICByYW5nZToge1xyXG4gICAgbWF4OiBudW1iZXI7XHJcbiAgICBtaW46IG51bWJlcjtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJhbmdlT3B0aW9ucyB7XHJcbiAgbWF4aW11bT86IG51bWJlcjtcclxuICBtaW5pbXVtPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVSYW5nZSh7IG1heGltdW0gPSBJbmZpbml0eSwgbWluaW11bSA9IDAgfTogUmFuZ2VPcHRpb25zID0ge30pOiBWYWxpZGF0b3JGbiB7XHJcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBSYW5nZUVycm9yIHwgbnVsbCA9PiB7XHJcbiAgICBpZiAoWycnLCBudWxsLCB1bmRlZmluZWRdLmluZGV4T2YoY29udHJvbC52YWx1ZSkgPiAtMSkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgY29uc3QgdmFsdWUgPSBOdW1iZXIoY29udHJvbC52YWx1ZSk7XHJcbiAgICByZXR1cm4gZ2V0TWluRXJyb3IodmFsdWUsIG1pbmltdW0sIG1heGltdW0pIHx8IGdldE1heEVycm9yKHZhbHVlLCBtYXhpbXVtLCBtaW5pbXVtKTtcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRNYXhFcnJvcih2YWx1ZTogbnVtYmVyLCBtYXg6IG51bWJlciwgbWluOiBudW1iZXIpOiBSYW5nZUVycm9yIHwgbnVsbCB7XHJcbiAgcmV0dXJuIHZhbHVlID4gbWF4ID8geyByYW5nZTogeyBtYXgsIG1pbiB9IH0gOiBudWxsO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRNaW5FcnJvcih2YWx1ZTogbnVtYmVyLCBtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBSYW5nZUVycm9yIHwgbnVsbCB7XHJcbiAgcmV0dXJuIHZhbHVlIDwgbWluID8geyByYW5nZTogeyBtaW4sIG1heCB9IH0gOiBudWxsO1xyXG59XHJcbiJdfQ==
@@ -1,15 +1,15 @@
1
- export function validateRequired({ allowEmptyStrings } = {}) {
2
- // note: please do not remove name of the function, it is used in function compare with type 'RequiredError'
3
- const required = (control) => {
4
- return isValidRequired(control.value, allowEmptyStrings) ? null : { required: true };
5
- };
6
- return required;
7
- }
8
- function isValidRequired(value, allowEmptyStrings) {
9
- if (value || value === 0 || value === false)
10
- return true;
11
- if (allowEmptyStrings && value === '')
12
- return true;
13
- return false;
14
- }
1
+ export function validateRequired({ allowEmptyStrings } = {}) {
2
+ // note: please do not remove name of the function, it is used in function compare with type 'RequiredError'
3
+ const required = (control) => {
4
+ return isValidRequired(control.value, allowEmptyStrings) ? null : { required: true };
5
+ };
6
+ return required;
7
+ }
8
+ function isValidRequired(value, allowEmptyStrings) {
9
+ if (value || value === 0 || value === false)
10
+ return true;
11
+ if (allowEmptyStrings && value === '')
12
+ return true;
13
+ return false;
14
+ }
15
15
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvcmVxdWlyZWQudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxFQUFFLGlCQUFpQixLQUFzQixFQUFFO0lBQzFFLDRHQUE0RztJQUM1RyxNQUFNLFFBQVEsR0FBRyxDQUFDLE9BQXdCLEVBQXdCLEVBQUU7UUFDbEUsT0FBTyxlQUFlLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQ3ZGLENBQUMsQ0FBQztJQUNGLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLGVBQWUsQ0FBQyxLQUFVLEVBQUUsaUJBQXNDO0lBQ3pFLElBQUksS0FBSyxJQUFJLEtBQUssS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLEtBQUs7UUFBRSxPQUFPLElBQUksQ0FBQztJQUV6RCxJQUFJLGlCQUFpQixJQUFJLEtBQUssS0FBSyxFQUFFO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFFbkQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWlyZWRFcnJvciB7XHJcbiAgcmVxdWlyZWQ6IHRydWU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVxdWlyZWRPcHRpb25zIHtcclxuICBhbGxvd0VtcHR5U3RyaW5ncz86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVJlcXVpcmVkKHsgYWxsb3dFbXB0eVN0cmluZ3MgfTogUmVxdWlyZWRPcHRpb25zID0ge30pOiBWYWxpZGF0b3JGbiB7XHJcbiAgLy8gbm90ZTogcGxlYXNlIGRvIG5vdCByZW1vdmUgbmFtZSBvZiB0aGUgZnVuY3Rpb24sIGl0IGlzIHVzZWQgaW4gZnVuY3Rpb24gY29tcGFyZSB3aXRoIHR5cGUgJ1JlcXVpcmVkRXJyb3InXHJcbiAgY29uc3QgcmVxdWlyZWQgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogUmVxdWlyZWRFcnJvciB8IG51bGwgPT4ge1xyXG4gICAgcmV0dXJuIGlzVmFsaWRSZXF1aXJlZChjb250cm9sLnZhbHVlLCBhbGxvd0VtcHR5U3RyaW5ncykgPyBudWxsIDogeyByZXF1aXJlZDogdHJ1ZSB9O1xyXG4gIH07XHJcbiAgcmV0dXJuIHJlcXVpcmVkO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1ZhbGlkUmVxdWlyZWQodmFsdWU6IGFueSwgYWxsb3dFbXB0eVN0cmluZ3M6IGJvb2xlYW4gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcclxuICBpZiAodmFsdWUgfHwgdmFsdWUgPT09IDAgfHwgdmFsdWUgPT09IGZhbHNlKSByZXR1cm4gdHJ1ZTtcclxuXHJcbiAgaWYgKGFsbG93RW1wdHlTdHJpbmdzICYmIHZhbHVlID09PSAnJykgcmV0dXJuIHRydWU7XHJcblxyXG4gIHJldHVybiBmYWxzZTtcclxufVxyXG4iXX0=
@@ -1,15 +1,15 @@
1
- export function validateStringLength({ maximumLength = Infinity, minimumLength = 0, } = {}) {
2
- return (control) => {
3
- if (['', null, undefined].indexOf(control.value) > -1)
4
- return null;
5
- const value = String(control.value);
6
- return getMinLengthError(value, minimumLength) || getMaxLengthError(value, maximumLength);
7
- };
8
- }
9
- function getMaxLengthError(value, requiredLength) {
10
- return value.length > requiredLength ? { maxlength: { requiredLength } } : null;
11
- }
12
- function getMinLengthError(value, requiredLength) {
13
- return value.length < requiredLength ? { minlength: { requiredLength } } : null;
14
- }
1
+ export function validateStringLength({ maximumLength = Infinity, minimumLength = 0, } = {}) {
2
+ return (control) => {
3
+ if (['', null, undefined].indexOf(control.value) > -1)
4
+ return null;
5
+ const value = String(control.value);
6
+ return getMinLengthError(value, minimumLength) || getMaxLengthError(value, maximumLength);
7
+ };
8
+ }
9
+ function getMaxLengthError(value, requiredLength) {
10
+ return value.length > requiredLength ? { maxlength: { requiredLength } } : null;
11
+ }
12
+ function getMinLengthError(value, requiredLength) {
13
+ return value.length < requiredLength ? { minlength: { requiredLength } } : null;
14
+ }
15
15
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWxlbmd0aC52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdmFsaWRhdG9ycy9zdHJpbmctbGVuZ3RoLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEVBQ25DLGFBQWEsR0FBRyxRQUFRLEVBQ3hCLGFBQWEsR0FBRyxDQUFDLE1BQ00sRUFBRTtJQUN6QixPQUFPLENBQUMsT0FBd0IsRUFBNEIsRUFBRTtRQUM1RCxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRW5FLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEMsT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLElBQUksaUJBQWlCLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzVGLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEtBQWEsRUFBRSxjQUFzQjtJQUM5RCxPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUNsRixDQUFDO0FBRUQsU0FBUyxpQkFBaUIsQ0FBQyxLQUFhLEVBQUUsY0FBc0I7SUFDOUQsT0FBTyxLQUFLLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDbEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ0xlbmd0aEVycm9yIHtcclxuICBtYXhsZW5ndGg/OiB7XHJcbiAgICByZXF1aXJlZExlbmd0aDogbnVtYmVyO1xyXG4gIH07XHJcbiAgbWlubGVuZ3RoPzoge1xyXG4gICAgcmVxdWlyZWRMZW5ndGg6IG51bWJlcjtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ0xlbmd0aE9wdGlvbnMge1xyXG4gIG1heGltdW1MZW5ndGg/OiBudW1iZXI7XHJcbiAgbWluaW11bUxlbmd0aD86IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlU3RyaW5nTGVuZ3RoKHtcclxuICBtYXhpbXVtTGVuZ3RoID0gSW5maW5pdHksXHJcbiAgbWluaW11bUxlbmd0aCA9IDAsXHJcbn06IFN0cmluZ0xlbmd0aE9wdGlvbnMgPSB7fSk6IFZhbGlkYXRvckZuIHtcclxuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFN0cmluZ0xlbmd0aEVycm9yIHwgbnVsbCA9PiB7XHJcbiAgICBpZiAoWycnLCBudWxsLCB1bmRlZmluZWRdLmluZGV4T2YoY29udHJvbC52YWx1ZSkgPiAtMSkgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgY29uc3QgdmFsdWUgPSBTdHJpbmcoY29udHJvbC52YWx1ZSk7XHJcblxyXG4gICAgcmV0dXJuIGdldE1pbkxlbmd0aEVycm9yKHZhbHVlLCBtaW5pbXVtTGVuZ3RoKSB8fCBnZXRNYXhMZW5ndGhFcnJvcih2YWx1ZSwgbWF4aW11bUxlbmd0aCk7XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TWF4TGVuZ3RoRXJyb3IodmFsdWU6IHN0cmluZywgcmVxdWlyZWRMZW5ndGg6IG51bWJlcik6IFN0cmluZ0xlbmd0aEVycm9yIHwgbnVsbCB7XHJcbiAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+IHJlcXVpcmVkTGVuZ3RoID8geyBtYXhsZW5ndGg6IHsgcmVxdWlyZWRMZW5ndGggfSB9IDogbnVsbDtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0TWluTGVuZ3RoRXJyb3IodmFsdWU6IHN0cmluZywgcmVxdWlyZWRMZW5ndGg6IG51bWJlcik6IFN0cmluZ0xlbmd0aEVycm9yIHwgbnVsbCB7XHJcbiAgcmV0dXJuIHZhbHVlLmxlbmd0aCA8IHJlcXVpcmVkTGVuZ3RoID8geyBtaW5sZW5ndGg6IHsgcmVxdWlyZWRMZW5ndGggfSB9IDogbnVsbDtcclxufVxyXG4iXX0=
@@ -0,0 +1,13 @@
1
+ import { isNullOrEmpty } from '../utils';
2
+ export function validateUniqueCharacter() {
3
+ return (control) => {
4
+ if (isNullOrEmpty(control.value))
5
+ return null;
6
+ return isUnqiueCharacter(control.value) ? null : { uniqueCharacter: true };
7
+ };
8
+ }
9
+ function isUnqiueCharacter(value) {
10
+ const set = new Set(value.split(''));
11
+ return set.size == value.length;
12
+ }
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pcXVlLWNoYXJhY3Rlci52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdmFsaWRhdG9ycy91bmlxdWUtY2hhcmFjdGVyLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBTXpDLE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsT0FBTyxDQUFDLE9BQXdCLEVBQStCLEVBQUU7UUFDL0QsSUFBSSxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTlDLE9BQU8saUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzdFLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLEtBQWE7SUFDdEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQVMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTdDLE9BQU8sR0FBRyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDO0FBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBpc051bGxPckVtcHR5IH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVbmlxdWVDaGFyYWN0ZXJFcnJvciB7XHJcbiAgdW5pcXVlQ2hhcmFjdGVyOiB0cnVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVVbmlxdWVDaGFyYWN0ZXIoKTogVmFsaWRhdG9yRm4ge1xyXG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVW5pcXVlQ2hhcmFjdGVyRXJyb3IgfCBudWxsID0+IHtcclxuICAgIGlmIChpc051bGxPckVtcHR5KGNvbnRyb2wudmFsdWUpKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICByZXR1cm4gaXNVbnFpdWVDaGFyYWN0ZXIoY29udHJvbC52YWx1ZSkgPyBudWxsIDogeyB1bmlxdWVDaGFyYWN0ZXI6IHRydWUgfTtcclxuICB9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc1VucWl1ZUNoYXJhY3Rlcih2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgY29uc3Qgc2V0ID0gbmV3IFNldDxzdHJpbmc+KHZhbHVlLnNwbGl0KCcnKSk7XHJcblxyXG4gIHJldHVybiBzZXQuc2l6ZSA9PSB2YWx1ZS5sZW5ndGg7XHJcbn1cclxuIl19
@@ -1,17 +1,17 @@
1
- import { isNullOrEmpty } from '../utils';
2
- export function validateUrl() {
3
- return (control) => {
4
- if (isNullOrEmpty(control.value))
5
- return null;
6
- return isValidUrl(control.value) ? null : { url: true };
7
- };
8
- }
9
- function isValidUrl(value) {
10
- if (/^http(s)?:\/\/[^/]/.test(value) || /^ftp:\/\/[^/]/.test(value)) {
11
- const a = document.createElement('a');
12
- a.href = value;
13
- return !!a.host;
14
- }
15
- return false;
16
- }
1
+ import { isNullOrEmpty } from '../utils';
2
+ export function validateUrl() {
3
+ return (control) => {
4
+ if (isNullOrEmpty(control.value))
5
+ return null;
6
+ return isValidUrl(control.value) ? null : { url: true };
7
+ };
8
+ }
9
+ function isValidUrl(value) {
10
+ if (/^http(s)?:\/\/[^/]/.test(value) || /^ftp:\/\/[^/]/.test(value)) {
11
+ const a = document.createElement('a');
12
+ a.href = value;
13
+ return !!a.host;
14
+ }
15
+ return false;
16
+ }
17
17
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi92YWxpZGF0b3JzL3VybC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQU16QyxNQUFNLFVBQVUsV0FBVztJQUN6QixPQUFPLENBQUMsT0FBd0IsRUFBbUIsRUFBRTtRQUNuRCxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFOUMsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzFELENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxLQUFhO0lBQy9CLElBQUksb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDbkUsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNmLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7S0FDakI7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBpc051bGxPckVtcHR5IH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVcmxFcnJvciB7XHJcbiAgdXJsOiB0cnVlO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVVcmwoKTogVmFsaWRhdG9yRm4ge1xyXG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVXJsRXJyb3IgfCBudWxsID0+IHtcclxuICAgIGlmIChpc051bGxPckVtcHR5KGNvbnRyb2wudmFsdWUpKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICByZXR1cm4gaXNWYWxpZFVybChjb250cm9sLnZhbHVlKSA/IG51bGwgOiB7IHVybDogdHJ1ZSB9O1xyXG4gIH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVmFsaWRVcmwodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gIGlmICgvXmh0dHAocyk/OlxcL1xcL1teL10vLnRlc3QodmFsdWUpIHx8IC9eZnRwOlxcL1xcL1teL10vLnRlc3QodmFsdWUpKSB7XHJcbiAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgYS5ocmVmID0gdmFsdWU7XHJcbiAgICByZXR1cm4gISFhLmhvc3Q7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gZmFsc2U7XHJcbn1cclxuIl19
@@ -1,14 +1,14 @@
1
- import { isNullOrEmpty } from '../utils';
2
- const onlyLetterAndNumberRegex = /^[a-zA-Z0-9]+$/;
3
- export function validateUsername({ pattern = /.*/ } = { pattern: onlyLetterAndNumberRegex }) {
4
- return (control) => {
5
- const isValid = isValidUserName(control.value, pattern);
6
- return isValid ? null : { usernamePattern: { actualValue: control.value } };
7
- };
8
- }
9
- function isValidUserName(value, pattern) {
10
- if (isNullOrEmpty(value))
11
- return true;
12
- return pattern.test(value);
13
- }
1
+ import { isNullOrEmpty } from '../utils';
2
+ const onlyLetterAndNumberRegex = /^[a-zA-Z0-9]+$/;
3
+ export function validateUsername({ pattern = /.*/ } = { pattern: onlyLetterAndNumberRegex }) {
4
+ return (control) => {
5
+ const isValid = isValidUserName(control.value, pattern);
6
+ return isValid ? null : { usernamePattern: { actualValue: control.value } };
7
+ };
8
+ }
9
+ function isValidUserName(value, pattern) {
10
+ if (isNullOrEmpty(value))
11
+ return true;
12
+ return pattern.test(value);
13
+ }
14
14
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcm5hbWUudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3ZhbGlkYXRvcnMvdXNlcm5hbWUudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFZekMsTUFBTSx3QkFBd0IsR0FBRyxnQkFBZ0IsQ0FBQztBQUVsRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEVBQUUsT0FBTyxHQUFHLElBQUksS0FBc0IsRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUU7SUFFM0UsT0FBTyxDQUFDLE9BQXdCLEVBQStCLEVBQUU7UUFDL0QsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEQsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLEVBQUUsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7SUFDOUUsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFDLEtBQVUsRUFBRSxPQUFlO0lBQ2xELElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQztRQUFFLE9BQU8sSUFBSSxDQUFDO0lBRXRDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgaXNOdWxsT3JFbXB0eSB9IGZyb20gJy4uL3V0aWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlcm5hbWVQYXR0ZXJuRXJyb3Ige1xyXG4gIHVzZXJuYW1lUGF0dGVybjoge1xyXG4gICAgYWN0dWFsVmFsdWU6IHN0cmluZztcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJuYW1lT3B0aW9ucyB7XHJcbiAgcGF0dGVybj86IFJlZ0V4cDtcclxufVxyXG5cclxuY29uc3Qgb25seUxldHRlckFuZE51bWJlclJlZ2V4ID0gL15bYS16QS1aMC05XSskLztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZVVzZXJuYW1lKFxyXG4gIHsgcGF0dGVybiA9IC8uKi8gfTogVXNlcm5hbWVPcHRpb25zID0geyBwYXR0ZXJuOiBvbmx5TGV0dGVyQW5kTnVtYmVyUmVnZXggfSxcclxuKTogVmFsaWRhdG9yRm4ge1xyXG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVXNlcm5hbWVQYXR0ZXJuRXJyb3IgfCBudWxsID0+IHtcclxuICAgIGNvbnN0IGlzVmFsaWQgPSBpc1ZhbGlkVXNlck5hbWUoY29udHJvbC52YWx1ZSwgcGF0dGVybik7XHJcbiAgICByZXR1cm4gaXNWYWxpZCA/IG51bGwgOiB7IHVzZXJuYW1lUGF0dGVybjogeyBhY3R1YWxWYWx1ZTogY29udHJvbC52YWx1ZSB9IH07XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNWYWxpZFVzZXJOYW1lKHZhbHVlOiBhbnksIHBhdHRlcm46IFJlZ0V4cCk6IGJvb2xlYW4ge1xyXG4gIGlmIChpc051bGxPckVtcHR5KHZhbHVlKSkgcmV0dXJuIHRydWU7XHJcblxyXG4gIHJldHVybiBwYXR0ZXJuLnRlc3QodmFsdWUpO1xyXG59XHJcbiJdfQ==
@@ -1,5 +1,5 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
5
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLmNvcmUtbG9jYWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9sb2NhbGUvc3JjL2FicC1uZy5jb3JlLWxvY2FsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,2 +1,2 @@
1
- export * from './utils/register-locale';
1
+ export * from './utils/register-locale';
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvbG9jYWxlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3V0aWxzL3JlZ2lzdGVyLWxvY2FsZSc7XHJcbiJdfQ==
@@ -1,47 +1,47 @@
1
- import { differentLocales } from '@abp/ng.core';
2
- import { isDevMode } from '@angular/core';
3
- let localeMap = {};
4
- export function registerLocale({ cultureNameLocaleFileMap = {}, errorHandlerFn = defaultLocalErrorHandlerFn, } = {}) {
5
- return (locale) => {
6
- localeMap = { ...differentLocales, ...cultureNameLocaleFileMap };
7
- const localePath = `/locales/${localeMap[locale] || locale}`;
8
- return new Promise((resolve, reject) => {
9
- return import(
10
- /* webpackMode: "lazy-once" */
11
- /* webpackChunkName: "locales"*/
12
- /* webpackInclude: /[/\\](ar|cs|en|en-GB|es|de|fi|fr|hi|hu|is|it|pt|tr|ru|ro|sk|sl|zh-Hans|zh-Hant)\.(mjs|js)$/ */
13
- /* webpackExclude: /[/\\]global|extra/ */
14
- `@angular/common${localePath}`)
15
- .then(val => {
16
- let module = val;
17
- while (module.default) {
18
- module = module.default;
19
- }
20
- resolve({ default: module });
21
- })
22
- .catch(error => {
23
- errorHandlerFn({
24
- resolve,
25
- reject,
26
- error,
27
- locale,
28
- });
29
- });
30
- });
31
- };
32
- }
33
- const extraLocales = {};
34
- export function storeLocaleData(data, localeId) {
35
- extraLocales[localeId] = data;
36
- }
37
- export async function defaultLocalErrorHandlerFn({ locale, resolve }) {
38
- if (extraLocales[locale]) {
39
- resolve({ default: extraLocales[localeMap[locale] || locale] });
40
- return;
41
- }
42
- if (isDevMode()) {
43
- console.error(`Cannot find the ${locale} locale file. You can check how can add new culture at https://docs.abp.io/en/abp/latest/UI/Angular/Localization#adding-a-new-culture`);
44
- }
45
- resolve();
46
- }
1
+ import { differentLocales } from '@abp/ng.core';
2
+ import { isDevMode } from '@angular/core';
3
+ let localeMap = {};
4
+ export function registerLocale({ cultureNameLocaleFileMap = {}, errorHandlerFn = defaultLocalErrorHandlerFn, } = {}) {
5
+ return (locale) => {
6
+ localeMap = { ...differentLocales, ...cultureNameLocaleFileMap };
7
+ const localePath = `/locales/${localeMap[locale] || locale}`;
8
+ return new Promise((resolve, reject) => {
9
+ return import(
10
+ /* webpackMode: "lazy-once" */
11
+ /* webpackChunkName: "locales"*/
12
+ /* webpackInclude: /[/\\](ar|cs|en|en-GB|es|de|fi|fr|hi|hu|is|it|pt|tr|ru|ro|sk|sl|zh-Hans|zh-Hant)\.(mjs|js)$/ */
13
+ /* webpackExclude: /[/\\]global|extra/ */
14
+ `@angular/common${localePath}`)
15
+ .then(val => {
16
+ let module = val;
17
+ while (module.default) {
18
+ module = module.default;
19
+ }
20
+ resolve({ default: module });
21
+ })
22
+ .catch(error => {
23
+ errorHandlerFn({
24
+ resolve,
25
+ reject,
26
+ error,
27
+ locale,
28
+ });
29
+ });
30
+ });
31
+ };
32
+ }
33
+ const extraLocales = {};
34
+ export function storeLocaleData(data, localeId) {
35
+ extraLocales[localeId] = data;
36
+ }
37
+ export async function defaultLocalErrorHandlerFn({ locale, resolve }) {
38
+ if (extraLocales[locale]) {
39
+ resolve({ default: extraLocales[localeMap[locale] || locale] });
40
+ return;
41
+ }
42
+ if (isDevMode()) {
43
+ console.error(`Cannot find the ${locale} locale file. You can check how can add new culture at https://docs.abp.io/en/abp/latest/UI/Angular/Localization#adding-a-new-culture`);
44
+ }
45
+ resolve();
46
+ }
47
47
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItbG9jYWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9sb2NhbGUvc3JjL3V0aWxzL3JlZ2lzdGVyLWxvY2FsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVMxQyxJQUFJLFNBQVMsR0FBRyxFQUErQixDQUFDO0FBT2hELE1BQU0sVUFBVSxjQUFjLENBQzVCLEVBQ0Usd0JBQXdCLEdBQUcsRUFBRSxFQUM3QixjQUFjLEdBQUcsMEJBQTBCLE1BQ3pDLEVBQXdCO0lBRTVCLE9BQU8sQ0FBQyxNQUFjLEVBQWdCLEVBQUU7UUFDdEMsU0FBUyxHQUFHLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxHQUFHLHdCQUF3QixFQUFFLENBQUM7UUFDakUsTUFBTSxVQUFVLEdBQUcsWUFBWSxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7UUFDN0QsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxPQUFPLE1BQU07WUFDWCw4QkFBOEI7WUFDOUIsZ0NBQWdDO1lBQ2hDLGtIQUFrSDtZQUNsSCx5Q0FBeUM7WUFDekMsa0JBQWtCLFVBQVUsRUFBRSxDQUMvQjtpQkFDRSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ1YsSUFBSSxNQUFNLEdBQUcsR0FBRyxDQUFDO2dCQUNqQixPQUFPLE1BQU0sQ0FBQyxPQUFPLEVBQUU7b0JBQ3JCLE1BQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO2lCQUN6QjtnQkFDRCxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUM7aUJBQ0QsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNiLGNBQWMsQ0FBQztvQkFDYixPQUFPO29CQUNQLE1BQU07b0JBQ04sS0FBSztvQkFDTCxNQUFNO2lCQUNQLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxZQUFZLEdBQUcsRUFBNEIsQ0FBQztBQUNsRCxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQVMsRUFBRSxRQUFnQjtJQUN6RCxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ2hDLENBQUM7QUFFRCxNQUFNLENBQUMsS0FBSyxVQUFVLDBCQUEwQixDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBMEI7SUFDMUYsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDeEIsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLE9BQU87S0FDUjtJQUVELElBQUksU0FBUyxFQUFFLEVBQUU7UUFDZixPQUFPLENBQUMsS0FBSyxDQUNYLG1CQUFtQixNQUFNLHVJQUF1SSxDQUNqSyxDQUFDO0tBQ0g7SUFFRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkaWZmZXJlbnRMb2NhbGVzIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsZUVycm9ySGFuZGxlckRhdGEge1xyXG4gIHJlc29sdmU6IGFueTtcclxuICByZWplY3Q6IGFueTtcclxuICBlcnJvcjogYW55O1xyXG4gIGxvY2FsZTogc3RyaW5nO1xyXG59XHJcblxyXG5sZXQgbG9jYWxlTWFwID0ge30gYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0ZXJMb2NhbGVEYXRhIHtcclxuICBjdWx0dXJlTmFtZUxvY2FsZUZpbGVNYXA/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xyXG4gIGVycm9ySGFuZGxlckZuPzogKGRhdGE6IExvY2FsZUVycm9ySGFuZGxlckRhdGEpID0+IGFueTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyTG9jYWxlKFxyXG4gIHtcclxuICAgIGN1bHR1cmVOYW1lTG9jYWxlRmlsZU1hcCA9IHt9LFxyXG4gICAgZXJyb3JIYW5kbGVyRm4gPSBkZWZhdWx0TG9jYWxFcnJvckhhbmRsZXJGbixcclxuICB9ID0ge30gYXMgUmVnaXN0ZXJMb2NhbGVEYXRhLFxyXG4pIHtcclxuICByZXR1cm4gKGxvY2FsZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+ID0+IHtcclxuICAgIGxvY2FsZU1hcCA9IHsgLi4uZGlmZmVyZW50TG9jYWxlcywgLi4uY3VsdHVyZU5hbWVMb2NhbGVGaWxlTWFwIH07XHJcbiAgICBjb25zdCBsb2NhbGVQYXRoID0gYC9sb2NhbGVzLyR7bG9jYWxlTWFwW2xvY2FsZV0gfHwgbG9jYWxlfWA7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICByZXR1cm4gaW1wb3J0KFxyXG4gICAgICAgIC8qIHdlYnBhY2tNb2RlOiBcImxhenktb25jZVwiICovXHJcbiAgICAgICAgLyogd2VicGFja0NodW5rTmFtZTogXCJsb2NhbGVzXCIqL1xyXG4gICAgICAgIC8qIHdlYnBhY2tJbmNsdWRlOiAvWy9cXFxcXShhcnxjc3xlbnxlbi1HQnxlc3xkZXxmaXxmcnxoaXxodXxpc3xpdHxwdHx0cnxydXxyb3xza3xzbHx6aC1IYW5zfHpoLUhhbnQpXFwuKG1qc3xqcykkLyAqL1xyXG4gICAgICAgIC8qIHdlYnBhY2tFeGNsdWRlOiAvWy9cXFxcXWdsb2JhbHxleHRyYS8gKi9cclxuICAgICAgICBgQGFuZ3VsYXIvY29tbW9uJHtsb2NhbGVQYXRofWBcclxuICAgICAgKVxyXG4gICAgICAgIC50aGVuKHZhbCA9PiB7XHJcbiAgICAgICAgICBsZXQgbW9kdWxlID0gdmFsO1xyXG4gICAgICAgICAgd2hpbGUgKG1vZHVsZS5kZWZhdWx0KSB7XHJcbiAgICAgICAgICAgIG1vZHVsZSA9IG1vZHVsZS5kZWZhdWx0O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmVzb2x2ZSh7IGRlZmF1bHQ6IG1vZHVsZSB9KTtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaChlcnJvciA9PiB7XHJcbiAgICAgICAgICBlcnJvckhhbmRsZXJGbih7XHJcbiAgICAgICAgICAgIHJlc29sdmUsXHJcbiAgICAgICAgICAgIHJlamVjdCxcclxuICAgICAgICAgICAgZXJyb3IsXHJcbiAgICAgICAgICAgIGxvY2FsZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfTtcclxufVxyXG5cclxuY29uc3QgZXh0cmFMb2NhbGVzID0ge30gYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcclxuZXhwb3J0IGZ1bmN0aW9uIHN0b3JlTG9jYWxlRGF0YShkYXRhOiBhbnksIGxvY2FsZUlkOiBzdHJpbmcpIHtcclxuICBleHRyYUxvY2FsZXNbbG9jYWxlSWRdID0gZGF0YTtcclxufVxyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlZmF1bHRMb2NhbEVycm9ySGFuZGxlckZuKHsgbG9jYWxlLCByZXNvbHZlIH06IExvY2FsZUVycm9ySGFuZGxlckRhdGEpIHtcclxuICBpZiAoZXh0cmFMb2NhbGVzW2xvY2FsZV0pIHtcclxuICAgIHJlc29sdmUoeyBkZWZhdWx0OiBleHRyYUxvY2FsZXNbbG9jYWxlTWFwW2xvY2FsZV0gfHwgbG9jYWxlXSB9KTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGlmIChpc0Rldk1vZGUoKSkge1xyXG4gICAgY29uc29sZS5lcnJvcihcclxuICAgICAgYENhbm5vdCBmaW5kIHRoZSAke2xvY2FsZX0gbG9jYWxlIGZpbGUuIFlvdSBjYW4gY2hlY2sgaG93IGNhbiBhZGQgbmV3IGN1bHR1cmUgYXQgaHR0cHM6Ly9kb2NzLmFicC5pby9lbi9hYnAvbGF0ZXN0L1VJL0FuZ3VsYXIvTG9jYWxpemF0aW9uI2FkZGluZy1hLW5ldy1jdWx0dXJlYCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXNvbHZlKCk7XHJcbn1cclxuIl19