@abp/ng.core 7.2.1 → 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,2 +1,2 @@
1
- export * from './different-locales';
1
+ export * from './different-locales';
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvY29uc3RhbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RpZmZlcmVudC1sb2NhbGVzJztcclxuIl19
@@ -0,0 +1,285 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { HttpClientModule, HttpClientXsrfModule } from '@angular/common/http';
3
+ import { APP_INITIALIZER, Injector, NgModule } from '@angular/core';
4
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
+ import { RouterModule } from '@angular/router';
6
+ import { AbstractNgModelComponent } from './abstracts/ng-model.component';
7
+ import { DynamicLayoutComponent } from './components/dynamic-layout.component';
8
+ import { ReplaceableRouteContainerComponent } from './components/replaceable-route-container.component';
9
+ import { RouterOutletComponent } from './components/router-outlet.component';
10
+ import { AutofocusDirective } from './directives/autofocus.directive';
11
+ import { InputEventDebounceDirective } from './directives/debounce.directive';
12
+ import { ForDirective } from './directives/for.directive';
13
+ import { FormSubmitDirective } from './directives/form-submit.directive';
14
+ import { InitDirective } from './directives/init.directive';
15
+ import { PermissionDirective } from './directives/permission.directive';
16
+ import { ReplaceableTemplateDirective } from './directives/replaceable-template.directive';
17
+ import { StopPropagationDirective } from './directives/stop-propagation.directive';
18
+ import { RoutesHandler } from './handlers/routes.handler';
19
+ import { LocalizationModule } from './localization.module';
20
+ import { LocalizationPipe } from './pipes/localization.pipe';
21
+ import { SortPipe } from './pipes/sort.pipe';
22
+ import { ToInjectorPipe } from './pipes/to-injector.pipe';
23
+ import { CookieLanguageProvider } from './providers/cookie-language.provider';
24
+ import { LocaleProvider } from './providers/locale.provider';
25
+ import { LocalizationService } from './services/localization.service';
26
+ import { OTHERS_GROUP } from './tokens';
27
+ import { localizationContributor, LOCALIZATIONS } from './tokens/localization.token';
28
+ import { CORE_OPTIONS, coreOptionsFactory } from './tokens/options.token';
29
+ import { TENANT_KEY } from './tokens/tenant-key.token';
30
+ import { noop } from './utils/common-utils';
31
+ import './utils/date-extensions';
32
+ import { getInitialData, localeInitializer } from './utils/initial-utils';
33
+ import { ShortDateTimePipe } from './pipes/short-date-time.pipe';
34
+ import { ShortTimePipe } from './pipes/short-time.pipe';
35
+ import { ShortDatePipe } from './pipes/short-date.pipe';
36
+ import { SafeHtmlPipe } from './pipes/safe-html.pipe';
37
+ import { QUEUE_MANAGER } from './tokens/queue.token';
38
+ import { DefaultQueueManager } from './utils/queue';
39
+ import { IncludeLocalizationResourcesProvider } from './providers/include-localization-resources.provider';
40
+ import * as i0 from "@angular/core";
41
+ import * as i1 from "@angular/common/http";
42
+ /**
43
+ * BaseCoreModule is the module that holds
44
+ * all imports, declarations, exports, and entryComponents
45
+ * but not the providers.
46
+ * This module will be imported and exported by all others.
47
+ */
48
+ class BaseCoreModule {
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: BaseCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
50
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: BaseCoreModule, declarations: [AbstractNgModelComponent,
51
+ AutofocusDirective,
52
+ DynamicLayoutComponent,
53
+ ForDirective,
54
+ FormSubmitDirective,
55
+ InitDirective,
56
+ InputEventDebounceDirective,
57
+ PermissionDirective,
58
+ ReplaceableRouteContainerComponent,
59
+ ReplaceableTemplateDirective,
60
+ RouterOutletComponent,
61
+ SortPipe,
62
+ SafeHtmlPipe,
63
+ StopPropagationDirective,
64
+ ToInjectorPipe,
65
+ ShortDateTimePipe,
66
+ ShortTimePipe,
67
+ ShortDatePipe], imports: [CommonModule,
68
+ HttpClientModule,
69
+ FormsModule,
70
+ ReactiveFormsModule,
71
+ RouterModule,
72
+ LocalizationModule], exports: [CommonModule,
73
+ HttpClientModule,
74
+ FormsModule,
75
+ ReactiveFormsModule,
76
+ RouterModule,
77
+ LocalizationModule,
78
+ AbstractNgModelComponent,
79
+ AutofocusDirective,
80
+ DynamicLayoutComponent,
81
+ ForDirective,
82
+ FormSubmitDirective,
83
+ InitDirective,
84
+ InputEventDebounceDirective,
85
+ PermissionDirective,
86
+ ReplaceableRouteContainerComponent,
87
+ ReplaceableTemplateDirective,
88
+ RouterOutletComponent,
89
+ SortPipe,
90
+ SafeHtmlPipe,
91
+ StopPropagationDirective,
92
+ ToInjectorPipe,
93
+ ShortDateTimePipe,
94
+ ShortTimePipe,
95
+ ShortDatePipe] }); }
96
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: BaseCoreModule, providers: [LocalizationPipe], imports: [CommonModule,
97
+ HttpClientModule,
98
+ FormsModule,
99
+ ReactiveFormsModule,
100
+ RouterModule,
101
+ LocalizationModule, CommonModule,
102
+ HttpClientModule,
103
+ FormsModule,
104
+ ReactiveFormsModule,
105
+ RouterModule,
106
+ LocalizationModule] }); }
107
+ }
108
+ export { BaseCoreModule };
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: BaseCoreModule, decorators: [{
110
+ type: NgModule,
111
+ args: [{
112
+ exports: [
113
+ CommonModule,
114
+ HttpClientModule,
115
+ FormsModule,
116
+ ReactiveFormsModule,
117
+ RouterModule,
118
+ LocalizationModule,
119
+ AbstractNgModelComponent,
120
+ AutofocusDirective,
121
+ DynamicLayoutComponent,
122
+ ForDirective,
123
+ FormSubmitDirective,
124
+ InitDirective,
125
+ InputEventDebounceDirective,
126
+ PermissionDirective,
127
+ ReplaceableRouteContainerComponent,
128
+ ReplaceableTemplateDirective,
129
+ RouterOutletComponent,
130
+ SortPipe,
131
+ SafeHtmlPipe,
132
+ StopPropagationDirective,
133
+ ToInjectorPipe,
134
+ ShortDateTimePipe,
135
+ ShortTimePipe,
136
+ ShortDatePipe,
137
+ ],
138
+ imports: [
139
+ CommonModule,
140
+ HttpClientModule,
141
+ FormsModule,
142
+ ReactiveFormsModule,
143
+ RouterModule,
144
+ LocalizationModule,
145
+ ],
146
+ declarations: [
147
+ AbstractNgModelComponent,
148
+ AutofocusDirective,
149
+ DynamicLayoutComponent,
150
+ ForDirective,
151
+ FormSubmitDirective,
152
+ InitDirective,
153
+ InputEventDebounceDirective,
154
+ PermissionDirective,
155
+ ReplaceableRouteContainerComponent,
156
+ ReplaceableTemplateDirective,
157
+ RouterOutletComponent,
158
+ SortPipe,
159
+ SafeHtmlPipe,
160
+ StopPropagationDirective,
161
+ ToInjectorPipe,
162
+ ShortDateTimePipe,
163
+ ShortTimePipe,
164
+ ShortDatePipe,
165
+ ],
166
+ providers: [LocalizationPipe],
167
+ }]
168
+ }] });
169
+ /**
170
+ * RootCoreModule is the module that will be used at root level
171
+ * and it introduces imports useful at root level (e.g. NGXS)
172
+ */
173
+ class RootCoreModule {
174
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: RootCoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
175
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: RootCoreModule, imports: [BaseCoreModule, LocalizationModule, i1.HttpClientXsrfModule], exports: [BaseCoreModule, LocalizationModule] }); }
176
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: RootCoreModule, imports: [BaseCoreModule,
177
+ LocalizationModule,
178
+ HttpClientXsrfModule.withOptions({
179
+ cookieName: 'XSRF-TOKEN',
180
+ headerName: 'RequestVerificationToken',
181
+ }), BaseCoreModule, LocalizationModule] }); }
182
+ }
183
+ export { RootCoreModule };
184
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: RootCoreModule, decorators: [{
185
+ type: NgModule,
186
+ args: [{
187
+ exports: [BaseCoreModule, LocalizationModule],
188
+ imports: [
189
+ BaseCoreModule,
190
+ LocalizationModule,
191
+ HttpClientXsrfModule.withOptions({
192
+ cookieName: 'XSRF-TOKEN',
193
+ headerName: 'RequestVerificationToken',
194
+ }),
195
+ ],
196
+ }]
197
+ }] });
198
+ /**
199
+ * CoreModule is the module that is publicly available
200
+ */
201
+ class CoreModule {
202
+ static forRoot(options = {}) {
203
+ return {
204
+ ngModule: RootCoreModule,
205
+ providers: [
206
+ LocaleProvider,
207
+ CookieLanguageProvider,
208
+ {
209
+ provide: 'CORE_OPTIONS',
210
+ useValue: options,
211
+ },
212
+ {
213
+ provide: CORE_OPTIONS,
214
+ useFactory: coreOptionsFactory,
215
+ deps: ['CORE_OPTIONS'],
216
+ },
217
+ {
218
+ provide: APP_INITIALIZER,
219
+ multi: true,
220
+ deps: [Injector],
221
+ useFactory: getInitialData,
222
+ },
223
+ {
224
+ provide: APP_INITIALIZER,
225
+ multi: true,
226
+ deps: [Injector],
227
+ useFactory: localeInitializer,
228
+ },
229
+ {
230
+ provide: APP_INITIALIZER,
231
+ multi: true,
232
+ deps: [LocalizationService],
233
+ useFactory: noop,
234
+ },
235
+ {
236
+ provide: APP_INITIALIZER,
237
+ multi: true,
238
+ deps: [RoutesHandler],
239
+ useFactory: noop,
240
+ },
241
+ { provide: TENANT_KEY, useValue: options.tenantKey || '__tenant' },
242
+ {
243
+ provide: LOCALIZATIONS,
244
+ multi: true,
245
+ useValue: localizationContributor(options.localizations),
246
+ deps: [LocalizationService],
247
+ },
248
+ {
249
+ provide: QUEUE_MANAGER,
250
+ useClass: DefaultQueueManager,
251
+ },
252
+ {
253
+ provide: OTHERS_GROUP,
254
+ useValue: options.othersGroup || 'AbpUi::OthersGroup',
255
+ },
256
+ IncludeLocalizationResourcesProvider,
257
+ ],
258
+ };
259
+ }
260
+ static forChild(options = {}) {
261
+ return {
262
+ ngModule: RootCoreModule,
263
+ providers: [
264
+ {
265
+ provide: LOCALIZATIONS,
266
+ multi: true,
267
+ useValue: localizationContributor(options.localizations),
268
+ deps: [LocalizationService],
269
+ },
270
+ ],
271
+ };
272
+ }
273
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CoreModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
274
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: CoreModule, imports: [BaseCoreModule], exports: [BaseCoreModule] }); }
275
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CoreModule, imports: [BaseCoreModule, BaseCoreModule] }); }
276
+ }
277
+ export { CoreModule };
278
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: CoreModule, decorators: [{
279
+ type: NgModule,
280
+ args: [{
281
+ exports: [BaseCoreModule],
282
+ imports: [BaseCoreModule],
283
+ }]
284
+ }] });
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvY29yZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUN4RyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzNGLE9B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QkFDUixPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7b0JBQ3pCLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlLCBIdHRwQ2xpZW50WHNyZk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBJbmplY3RvciwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEFic3RyYWN0TmdNb2RlbENvbXBvbmVudCB9IGZyb20gJy4vYWJzdHJhY3RzL25nLW1vZGVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IER5bmFtaWNMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZHluYW1pYy1sYXlvdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVwbGFjZWFibGVSb3V0ZUNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9yZXBsYWNlYWJsZS1yb3V0ZS1jb250YWluZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUm91dGVyT3V0bGV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JvdXRlci1vdXRsZXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXV0b2ZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2F1dG9mb2N1cy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBJbnB1dEV2ZW50RGVib3VuY2VEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZGVib3VuY2UuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRm9yRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Zvci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGb3JtU3VibWl0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Zvcm0tc3VibWl0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEluaXREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvaW5pdC5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Blcm1pc3Npb24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUmVwbGFjZWFibGVUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZXBsYWNlYWJsZS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTdG9wUHJvcGFnYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvc3RvcC1wcm9wYWdhdGlvbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXNIYW5kbGVyIH0gZnJvbSAnLi9oYW5kbGVycy9yb3V0ZXMuaGFuZGxlcic7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvbk1vZHVsZSB9IGZyb20gJy4vbG9jYWxpemF0aW9uLm1vZHVsZSc7XHJcbmltcG9ydCB7IEFCUCB9IGZyb20gJy4vbW9kZWxzL2NvbW1vbic7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblBpcGUgfSBmcm9tICcuL3BpcGVzL2xvY2FsaXphdGlvbi5waXBlJztcclxuaW1wb3J0IHsgU29ydFBpcGUgfSBmcm9tICcuL3BpcGVzL3NvcnQucGlwZSc7XHJcbmltcG9ydCB7IFRvSW5qZWN0b3JQaXBlIH0gZnJvbSAnLi9waXBlcy90by1pbmplY3Rvci5waXBlJztcclxuaW1wb3J0IHsgQ29va2llTGFuZ3VhZ2VQcm92aWRlciB9IGZyb20gJy4vcHJvdmlkZXJzL2Nvb2tpZS1sYW5ndWFnZS5wcm92aWRlcic7XHJcbmltcG9ydCB7IExvY2FsZVByb3ZpZGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvbG9jYWxlLnByb3ZpZGVyJztcclxuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPVEhFUlNfR1JPVVAgfSBmcm9tICcuL3Rva2Vucyc7XHJcbmltcG9ydCB7IGxvY2FsaXphdGlvbkNvbnRyaWJ1dG9yLCBMT0NBTElaQVRJT05TIH0gZnJvbSAnLi90b2tlbnMvbG9jYWxpemF0aW9uLnRva2VuJztcclxuaW1wb3J0IHsgQ09SRV9PUFRJT05TLCBjb3JlT3B0aW9uc0ZhY3RvcnkgfSBmcm9tICcuL3Rva2Vucy9vcHRpb25zLnRva2VuJztcclxuaW1wb3J0IHsgVEVOQU5UX0tFWSB9IGZyb20gJy4vdG9rZW5zL3RlbmFudC1rZXkudG9rZW4nO1xyXG5pbXBvcnQgeyBub29wIH0gZnJvbSAnLi91dGlscy9jb21tb24tdXRpbHMnO1xyXG5pbXBvcnQgJy4vdXRpbHMvZGF0ZS1leHRlbnNpb25zJztcclxuaW1wb3J0IHsgZ2V0SW5pdGlhbERhdGEsIGxvY2FsZUluaXRpYWxpemVyIH0gZnJvbSAnLi91dGlscy9pbml0aWFsLXV0aWxzJztcclxuaW1wb3J0IHsgU2hvcnREYXRlVGltZVBpcGUgfSBmcm9tICcuL3BpcGVzL3Nob3J0LWRhdGUtdGltZS5waXBlJztcclxuaW1wb3J0IHsgU2hvcnRUaW1lUGlwZSB9IGZyb20gJy4vcGlwZXMvc2hvcnQtdGltZS5waXBlJztcclxuaW1wb3J0IHsgU2hvcnREYXRlUGlwZSB9IGZyb20gJy4vcGlwZXMvc2hvcnQtZGF0ZS5waXBlJztcclxuaW1wb3J0IHsgU2FmZUh0bWxQaXBlIH0gZnJvbSAnLi9waXBlcy9zYWZlLWh0bWwucGlwZSc7XHJcbmltcG9ydCB7IFFVRVVFX01BTkFHRVIgfSBmcm9tICcuL3Rva2Vucy9xdWV1ZS50b2tlbic7XHJcbmltcG9ydCB7IERlZmF1bHRRdWV1ZU1hbmFnZXIgfSBmcm9tICcuL3V0aWxzL3F1ZXVlJztcclxuaW1wb3J0IHsgSW5jbHVkZUxvY2FsaXphdGlvblJlc291cmNlc1Byb3ZpZGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvaW5jbHVkZS1sb2NhbGl6YXRpb24tcmVzb3VyY2VzLnByb3ZpZGVyJztcclxuXHJcbi8qKlxyXG4gKiBCYXNlQ29yZU1vZHVsZSBpcyB0aGUgbW9kdWxlIHRoYXQgaG9sZHNcclxuICogYWxsIGltcG9ydHMsIGRlY2xhcmF0aW9ucywgZXhwb3J0cywgYW5kIGVudHJ5Q29tcG9uZW50c1xyXG4gKiBidXQgbm90IHRoZSBwcm92aWRlcnMuXHJcbiAqIFRoaXMgbW9kdWxlIHdpbGwgYmUgaW1wb3J0ZWQgYW5kIGV4cG9ydGVkIGJ5IGFsbCBvdGhlcnMuXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGV4cG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGUsXHJcbiAgICBBYnN0cmFjdE5nTW9kZWxDb21wb25lbnQsXHJcbiAgICBBdXRvZm9jdXNEaXJlY3RpdmUsXHJcbiAgICBEeW5hbWljTGF5b3V0Q29tcG9uZW50LFxyXG4gICAgRm9yRGlyZWN0aXZlLFxyXG4gICAgRm9ybVN1Ym1pdERpcmVjdGl2ZSxcclxuICAgIEluaXREaXJlY3RpdmUsXHJcbiAgICBJbnB1dEV2ZW50RGVib3VuY2VEaXJlY3RpdmUsXHJcbiAgICBQZXJtaXNzaW9uRGlyZWN0aXZlLFxyXG4gICAgUmVwbGFjZWFibGVSb3V0ZUNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIFJlcGxhY2VhYmxlVGVtcGxhdGVEaXJlY3RpdmUsXHJcbiAgICBSb3V0ZXJPdXRsZXRDb21wb25lbnQsXHJcbiAgICBTb3J0UGlwZSxcclxuICAgIFNhZmVIdG1sUGlwZSxcclxuICAgIFN0b3BQcm9wYWdhdGlvbkRpcmVjdGl2ZSxcclxuICAgIFRvSW5qZWN0b3JQaXBlLFxyXG4gICAgU2hvcnREYXRlVGltZVBpcGUsXHJcbiAgICBTaG9ydFRpbWVQaXBlLFxyXG4gICAgU2hvcnREYXRlUGlwZSxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBMb2NhbGl6YXRpb25Nb2R1bGUsXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEFic3RyYWN0TmdNb2RlbENvbXBvbmVudCxcclxuICAgIEF1dG9mb2N1c0RpcmVjdGl2ZSxcclxuICAgIER5bmFtaWNMYXlvdXRDb21wb25lbnQsXHJcbiAgICBGb3JEaXJlY3RpdmUsXHJcbiAgICBGb3JtU3VibWl0RGlyZWN0aXZlLFxyXG4gICAgSW5pdERpcmVjdGl2ZSxcclxuICAgIElucHV0RXZlbnREZWJvdW5jZURpcmVjdGl2ZSxcclxuICAgIFBlcm1pc3Npb25EaXJlY3RpdmUsXHJcbiAgICBSZXBsYWNlYWJsZVJvdXRlQ29udGFpbmVyQ29tcG9uZW50LFxyXG4gICAgUmVwbGFjZWFibGVUZW1wbGF0ZURpcmVjdGl2ZSxcclxuICAgIFJvdXRlck91dGxldENvbXBvbmVudCxcclxuICAgIFNvcnRQaXBlLFxyXG4gICAgU2FmZUh0bWxQaXBlLFxyXG4gICAgU3RvcFByb3BhZ2F0aW9uRGlyZWN0aXZlLFxyXG4gICAgVG9JbmplY3RvclBpcGUsXHJcbiAgICBTaG9ydERhdGVUaW1lUGlwZSxcclxuICAgIFNob3J0VGltZVBpcGUsXHJcbiAgICBTaG9ydERhdGVQaXBlLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbTG9jYWxpemF0aW9uUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlQ29yZU1vZHVsZSB7fVxyXG5cclxuLyoqXHJcbiAqIFJvb3RDb3JlTW9kdWxlIGlzIHRoZSBtb2R1bGUgdGhhdCB3aWxsIGJlIHVzZWQgYXQgcm9vdCBsZXZlbFxyXG4gKiBhbmQgaXQgaW50cm9kdWNlcyBpbXBvcnRzIHVzZWZ1bCBhdCByb290IGxldmVsIChlLmcuIE5HWFMpXHJcbiAqL1xyXG5ATmdNb2R1bGUoe1xyXG4gIGV4cG9ydHM6IFtCYXNlQ29yZU1vZHVsZSwgTG9jYWxpemF0aW9uTW9kdWxlXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBCYXNlQ29yZU1vZHVsZSxcclxuICAgIExvY2FsaXphdGlvbk1vZHVsZSxcclxuICAgIEh0dHBDbGllbnRYc3JmTW9kdWxlLndpdGhPcHRpb25zKHtcclxuICAgICAgY29va2llTmFtZTogJ1hTUkYtVE9LRU4nLFxyXG4gICAgICBoZWFkZXJOYW1lOiAnUmVxdWVzdFZlcmlmaWNhdGlvblRva2VuJyxcclxuICAgIH0pLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb290Q29yZU1vZHVsZSB7fVxyXG5cclxuLyoqXHJcbiAqIENvcmVNb2R1bGUgaXMgdGhlIG1vZHVsZSB0aGF0IGlzIHB1YmxpY2x5IGF2YWlsYWJsZVxyXG4gKi9cclxuQE5nTW9kdWxlKHtcclxuICBleHBvcnRzOiBbQmFzZUNvcmVNb2R1bGVdLFxyXG4gIGltcG9ydHM6IFtCYXNlQ29yZU1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdChvcHRpb25zID0ge30gYXMgQUJQLlJvb3QpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFJvb3RDb3JlTW9kdWxlPiB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogUm9vdENvcmVNb2R1bGUsXHJcbiAgICAgIHByb3ZpZGVyczogW1xyXG4gICAgICAgIExvY2FsZVByb3ZpZGVyLFxyXG4gICAgICAgIENvb2tpZUxhbmd1YWdlUHJvdmlkZXIsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogJ0NPUkVfT1BUSU9OUycsXHJcbiAgICAgICAgICB1c2VWYWx1ZTogb3B0aW9ucyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IENPUkVfT1BUSU9OUyxcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGNvcmVPcHRpb25zRmFjdG9yeSxcclxuICAgICAgICAgIGRlcHM6IFsnQ09SRV9PUFRJT05TJ10sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgIGRlcHM6IFtJbmplY3Rvcl0sXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBnZXRJbml0aWFsRGF0YSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICAgICAgZGVwczogW0luamVjdG9yXSxcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGxvY2FsZUluaXRpYWxpemVyLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICBkZXBzOiBbTG9jYWxpemF0aW9uU2VydmljZV0sXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBub29wLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICBkZXBzOiBbUm91dGVzSGFuZGxlcl0sXHJcbiAgICAgICAgICB1c2VGYWN0b3J5OiBub29wLFxyXG4gICAgICAgIH0sXHJcblxyXG4gICAgICAgIHsgcHJvdmlkZTogVEVOQU5UX0tFWSwgdXNlVmFsdWU6IG9wdGlvbnMudGVuYW50S2V5IHx8ICdfX3RlbmFudCcgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBMT0NBTElaQVRJT05TLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICB1c2VWYWx1ZTogbG9jYWxpemF0aW9uQ29udHJpYnV0b3Iob3B0aW9ucy5sb2NhbGl6YXRpb25zKSxcclxuICAgICAgICAgIGRlcHM6IFtMb2NhbGl6YXRpb25TZXJ2aWNlXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IFFVRVVFX01BTkFHRVIsXHJcbiAgICAgICAgICB1c2VDbGFzczogRGVmYXVsdFF1ZXVlTWFuYWdlcixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IE9USEVSU19HUk9VUCxcclxuICAgICAgICAgIHVzZVZhbHVlOiBvcHRpb25zLm90aGVyc0dyb3VwIHx8ICdBYnBVaTo6T3RoZXJzR3JvdXAnLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgSW5jbHVkZUxvY2FsaXphdGlvblJlc291cmNlc1Byb3ZpZGVyLFxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBmb3JDaGlsZChvcHRpb25zID0ge30gYXMgQUJQLkNoaWxkKTogTW9kdWxlV2l0aFByb3ZpZGVyczxSb290Q29yZU1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IFJvb3RDb3JlTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBMT0NBTElaQVRJT05TLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICB1c2VWYWx1ZTogbG9jYWxpemF0aW9uQ29udHJpYnV0b3Iob3B0aW9ucy5sb2NhbGl6YXRpb25zKSxcclxuICAgICAgICAgIGRlcHM6IFtMb2NhbGl6YXRpb25TZXJ2aWNlXSxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,31 @@
1
+ import { Directive, ElementRef, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ class AutofocusDirective {
4
+ set delay(val) {
5
+ this._delay = Number(val) || 0;
6
+ }
7
+ get delay() {
8
+ return this._delay;
9
+ }
10
+ constructor(elRef) {
11
+ this.elRef = elRef;
12
+ this._delay = 0;
13
+ }
14
+ ngAfterViewInit() {
15
+ setTimeout(() => this.elRef.nativeElement.focus(), this.delay);
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AutofocusDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
18
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: AutofocusDirective, selector: "[autofocus]", inputs: { delay: ["autofocus", "delay"] }, ngImport: i0 }); }
19
+ }
20
+ export { AutofocusDirective };
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: AutofocusDirective, decorators: [{
22
+ type: Directive,
23
+ args: [{
24
+ // eslint-disable-next-line @angular-eslint/directive-selector
25
+ selector: '[autofocus]',
26
+ }]
27
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { delay: [{
28
+ type: Input,
29
+ args: ['autofocus']
30
+ }] } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2F1dG9mb2N1cy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFNUUsTUFJYSxrQkFBa0I7SUFHN0IsSUFDSSxLQUFLLENBQUMsR0FBZ0M7UUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQW9CLEtBQWlCO1FBQWpCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFYN0IsV0FBTSxHQUFHLENBQUMsQ0FBQztJQVdxQixDQUFDO0lBRXpDLGVBQWU7UUFDYixVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQWUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7OEdBaEJVLGtCQUFrQjtrR0FBbEIsa0JBQWtCOztTQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFKOUIsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxhQUFhO2lCQUN4QjtpR0FLSyxLQUFLO3NCQURSLEtBQUs7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdbYXV0b2ZvY3VzXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRvZm9jdXNEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICBwcml2YXRlIF9kZWxheSA9IDA7XHJcblxyXG4gIEBJbnB1dCgnYXV0b2ZvY3VzJylcclxuICBzZXQgZGVsYXkodmFsOiBudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuX2RlbGF5ID0gTnVtYmVyKHZhbCkgfHwgMDtcclxuICB9XHJcblxyXG4gIGdldCBkZWxheSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9kZWxheTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYpIHt9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCksIHRoaXMuZGVsYXkgYXMgbnVtYmVyKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,37 @@
1
+ import { Directive, ElementRef, EventEmitter, Input, Output } from '@angular/core';
2
+ import { fromEvent } from 'rxjs';
3
+ import { debounceTime } from 'rxjs/operators';
4
+ import { SubscriptionService } from '../services/subscription.service';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../services/subscription.service";
7
+ class InputEventDebounceDirective {
8
+ constructor(el, subscription) {
9
+ this.el = el;
10
+ this.subscription = subscription;
11
+ this.debounce = 300;
12
+ this.debounceEvent = new EventEmitter();
13
+ }
14
+ ngOnInit() {
15
+ const input$ = fromEvent(this.el.nativeElement, 'input').pipe(debounceTime(this.debounce));
16
+ this.subscription.addOne(input$, (event) => {
17
+ this.debounceEvent.emit(event);
18
+ });
19
+ }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: InputEventDebounceDirective, deps: [{ token: i0.ElementRef }, { token: i1.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive }); }
21
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: InputEventDebounceDirective, selector: "[input.debounce]", inputs: { debounce: "debounce" }, outputs: { debounceEvent: "input.debounce" }, providers: [SubscriptionService], ngImport: i0 }); }
22
+ }
23
+ export { InputEventDebounceDirective };
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: InputEventDebounceDirective, decorators: [{
25
+ type: Directive,
26
+ args: [{
27
+ // eslint-disable-next-line @angular-eslint/directive-selector
28
+ selector: '[input.debounce]',
29
+ providers: [SubscriptionService],
30
+ }]
31
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SubscriptionService }]; }, propDecorators: { debounce: [{
32
+ type: Input
33
+ }], debounceEvent: [{
34
+ type: Output,
35
+ args: ['input.debounce']
36
+ }] } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvZGVib3VuY2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFFdkUsTUFLYSwyQkFBMkI7SUFLdEMsWUFBb0IsRUFBYyxFQUFVLFlBQWlDO1FBQXpELE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFKcEUsYUFBUSxHQUFHLEdBQUcsQ0FBQztRQUVXLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUVHLENBQUM7SUFFakYsUUFBUTtRQUNOLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBYSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3ZFLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQzVCLENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUNoRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBZlUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsMkhBRjNCLENBQUMsbUJBQW1CLENBQUM7O1NBRXJCLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQUx2QyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQ2pDO21JQUVVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRTZCLGFBQWE7c0JBQS9DLE1BQU07dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3Vic2NyaXB0aW9uLnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ1tpbnB1dC5kZWJvdW5jZV0nLFxyXG4gIHByb3ZpZGVyczogW1N1YnNjcmlwdGlvblNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRFdmVudERlYm91bmNlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBkZWJvdW5jZSA9IDMwMDtcclxuXHJcbiAgQE91dHB1dCgnaW5wdXQuZGVib3VuY2UnKSByZWFkb25seSBkZWJvdW5jZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvblNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgaW5wdXQkID0gZnJvbUV2ZW50PElucHV0RXZlbnQ+KHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2lucHV0JykucGlwZShcclxuICAgICAgZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2UpLFxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGRPbmUoaW5wdXQkLCAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuZGVib3VuY2VFdmVudC5lbWl0KGV2ZW50KTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,160 @@
1
+ import { Directive, Input, IterableDiffers, TemplateRef, ViewContainerRef, } from '@angular/core';
2
+ import clone from 'just-clone';
3
+ import compare from 'just-compare';
4
+ import * as i0 from "@angular/core";
5
+ class AbpForContext {
6
+ constructor($implicit, index, count, list) {
7
+ this.$implicit = $implicit;
8
+ this.index = index;
9
+ this.count = count;
10
+ this.list = list;
11
+ }
12
+ }
13
+ class RecordView {
14
+ constructor(record, view) {
15
+ this.record = record;
16
+ this.view = view;
17
+ }
18
+ }
19
+ class ForDirective {
20
+ get compareFn() {
21
+ return this.compareBy || compare;
22
+ }
23
+ get trackByFn() {
24
+ return this.trackBy || ((index, item) => item.id || index);
25
+ }
26
+ constructor(tempRef, vcRef, differs) {
27
+ this.tempRef = tempRef;
28
+ this.vcRef = vcRef;
29
+ this.differs = differs;
30
+ }
31
+ iterateOverAppliedOperations(changes) {
32
+ const rw = [];
33
+ changes.forEachOperation((record, previousIndex, currentIndex) => {
34
+ if (record.previousIndex == null) {
35
+ const view = this.vcRef.createEmbeddedView(this.tempRef, new AbpForContext(null, -1, -1, this.items), currentIndex || 0);
36
+ rw.push(new RecordView(record, view));
37
+ }
38
+ else if (currentIndex == null && previousIndex !== null) {
39
+ this.vcRef.remove(previousIndex);
40
+ }
41
+ else {
42
+ if (previousIndex !== null) {
43
+ const view = this.vcRef.get(previousIndex);
44
+ if (view && currentIndex !== null) {
45
+ this.vcRef.move(view, currentIndex);
46
+ rw.push(new RecordView(record, view));
47
+ }
48
+ }
49
+ }
50
+ });
51
+ for (let i = 0, l = rw.length; i < l; i++) {
52
+ rw[i].view.context.$implicit = rw[i].record.item;
53
+ }
54
+ }
55
+ iterateOverAttachedViews(changes) {
56
+ for (let i = 0, l = this.vcRef.length; i < l; i++) {
57
+ const viewRef = this.vcRef.get(i);
58
+ viewRef.context.index = i;
59
+ viewRef.context.count = l;
60
+ viewRef.context.list = this.items;
61
+ }
62
+ changes.forEachIdentityChange((record) => {
63
+ if (record.currentIndex !== null) {
64
+ const viewRef = this.vcRef.get(record.currentIndex);
65
+ viewRef.context.$implicit = record.item;
66
+ }
67
+ });
68
+ }
69
+ projectItems(items) {
70
+ if (!items.length && this.emptyRef) {
71
+ this.vcRef.clear();
72
+ this.vcRef.createEmbeddedView(this.emptyRef).rootNodes;
73
+ this.isShowEmptyRef = true;
74
+ this.differ = null;
75
+ return;
76
+ }
77
+ if (this.emptyRef && this.isShowEmptyRef) {
78
+ this.vcRef.clear();
79
+ this.isShowEmptyRef = false;
80
+ }
81
+ if (!this.differ && items) {
82
+ this.differ = this.differs.find(items).create(this.trackByFn);
83
+ }
84
+ if (this.differ) {
85
+ const changes = this.differ.diff(items);
86
+ if (changes) {
87
+ this.iterateOverAppliedOperations(changes);
88
+ this.iterateOverAttachedViews(changes);
89
+ }
90
+ }
91
+ }
92
+ sortItems(items) {
93
+ const orderBy = this.orderBy;
94
+ if (orderBy) {
95
+ items.sort((a, b) => (a[orderBy] > b[orderBy] ? 1 : a[orderBy] < b[orderBy] ? -1 : 0));
96
+ }
97
+ else {
98
+ items.sort();
99
+ }
100
+ }
101
+ ngOnChanges() {
102
+ let items = clone(this.items);
103
+ if (!Array.isArray(items))
104
+ return;
105
+ const compareFn = this.compareFn;
106
+ const filterBy = this.filterBy;
107
+ if (typeof filterBy !== 'undefined' &&
108
+ typeof this.filterVal !== 'undefined' &&
109
+ this.filterVal !== '') {
110
+ items = items.filter(item => compareFn(item[filterBy], this.filterVal));
111
+ }
112
+ switch (this.orderDir) {
113
+ case 'ASC':
114
+ this.sortItems(items);
115
+ this.projectItems(items);
116
+ break;
117
+ case 'DESC':
118
+ this.sortItems(items);
119
+ items.reverse();
120
+ this.projectItems(items);
121
+ break;
122
+ default:
123
+ this.projectItems(items);
124
+ }
125
+ }
126
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ForDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive }); }
127
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: ForDirective, selector: "[abpFor]", inputs: { items: ["abpForOf", "items"], orderBy: ["abpForOrderBy", "orderBy"], orderDir: ["abpForOrderDir", "orderDir"], filterBy: ["abpForFilterBy", "filterBy"], filterVal: ["abpForFilterVal", "filterVal"], trackBy: ["abpForTrackBy", "trackBy"], compareBy: ["abpForCompareBy", "compareBy"], emptyRef: ["abpForEmptyRef", "emptyRef"] }, usesOnChanges: true, ngImport: i0 }); }
128
+ }
129
+ export { ForDirective };
130
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ForDirective, decorators: [{
131
+ type: Directive,
132
+ args: [{
133
+ selector: '[abpFor]',
134
+ }]
135
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i0.IterableDiffers }]; }, propDecorators: { items: [{
136
+ type: Input,
137
+ args: ['abpForOf']
138
+ }], orderBy: [{
139
+ type: Input,
140
+ args: ['abpForOrderBy']
141
+ }], orderDir: [{
142
+ type: Input,
143
+ args: ['abpForOrderDir']
144
+ }], filterBy: [{
145
+ type: Input,
146
+ args: ['abpForFilterBy']
147
+ }], filterVal: [{
148
+ type: Input,
149
+ args: ['abpForFilterVal']
150
+ }], trackBy: [{
151
+ type: Input,
152
+ args: ['abpForTrackBy']
153
+ }], compareBy: [{
154
+ type: Input,
155
+ args: ['abpForCompareBy']
156
+ }], emptyRef: [{
157
+ type: Input,
158
+ args: ['abpForEmptyRef']
159
+ }] } });
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2Zvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBSUwsZUFBZSxFQUVmLFdBQVcsRUFFWCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQy9CLE9BQU8sT0FBTyxNQUFNLGNBQWMsQ0FBQzs7QUFJbkMsTUFBTSxhQUFhO0lBQ2pCLFlBQ1MsU0FBYyxFQUNkLEtBQWEsRUFDYixLQUFhLEVBQ2IsSUFBVztRQUhYLGNBQVMsR0FBVCxTQUFTLENBQUs7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFNBQUksR0FBSixJQUFJLENBQU87SUFDakIsQ0FBQztDQUNMO0FBRUQsTUFBTSxVQUFVO0lBQ2QsWUFDUyxNQUFpQyxFQUNqQyxJQUFvQztRQURwQyxXQUFNLEdBQU4sTUFBTSxDQUEyQjtRQUNqQyxTQUFJLEdBQUosSUFBSSxDQUFnQztJQUMxQyxDQUFDO0NBQ0w7QUFFRCxNQUdhLFlBQVk7SUE4QnZCLElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLFNBQVMsSUFBSSxPQUFPLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsS0FBYSxFQUFFLElBQVMsRUFBRSxFQUFFLENBQUUsSUFBWSxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsWUFDVSxPQUFtQyxFQUNuQyxLQUF1QixFQUN2QixPQUF3QjtRQUZ4QixZQUFPLEdBQVAsT0FBTyxDQUE0QjtRQUNuQyxVQUFLLEdBQUwsS0FBSyxD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LENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3pCLE1BQU07WUFFUjtnQkFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO0lBQ0gsQ0FBQzs4R0FuS1UsWUFBWTtrR0FBWixZQUFZOztTQUFaLFlBQVk7MkZBQVosWUFBWTtrQkFIeEIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsVUFBVTtpQkFDckI7K0pBSUMsS0FBSztzQkFESixLQUFLO3VCQUFDLFVBQVU7Z0JBSWpCLE9BQU87c0JBRE4sS0FBSzt1QkFBQyxlQUFlO2dCQUl0QixRQUFRO3NCQURQLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUl2QixRQUFRO3NCQURQLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUl2QixTQUFTO3NCQURSLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUl4QixPQUFPO3NCQUROLEtBQUs7dUJBQUMsZUFBZTtnQkFJdEIsU0FBUztzQkFEUixLQUFLO3VCQUFDLGlCQUFpQjtnQkFJeEIsUUFBUTtzQkFEUCxLQUFLO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVtYmVkZGVkVmlld1JlZixcclxuICBJbnB1dCxcclxuICBJdGVyYWJsZUNoYW5nZVJlY29yZCxcclxuICBJdGVyYWJsZUNoYW5nZXMsXHJcbiAgSXRlcmFibGVEaWZmZXIsXHJcbiAgSXRlcmFibGVEaWZmZXJzLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBUZW1wbGF0ZVJlZixcclxuICBUcmFja0J5RnVuY3Rpb24sXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnO1xyXG5pbXBvcnQgY29tcGFyZSBmcm9tICdqdXN0LWNvbXBhcmUnO1xyXG5cclxuZXhwb3J0IHR5cGUgQ29tcGFyZUZuPFQgPSBhbnk+ID0gKHZhbHVlOiBULCBjb21wYXJpc29uOiBUKSA9PiBib29sZWFuO1xyXG5cclxuY2xhc3MgQWJwRm9yQ29udGV4dCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgJGltcGxpY2l0OiBhbnksXHJcbiAgICBwdWJsaWMgaW5kZXg6IG51bWJlcixcclxuICAgIHB1YmxpYyBjb3VudDogbnVtYmVyLFxyXG4gICAgcHVibGljIGxpc3Q6IGFueVtdLFxyXG4gICkge31cclxufVxyXG5cclxuY2xhc3MgUmVjb3JkVmlldyB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVjb3JkOiBJdGVyYWJsZUNoYW5nZVJlY29yZDxhbnk+LFxyXG4gICAgcHVibGljIHZpZXc6IEVtYmVkZGVkVmlld1JlZjxBYnBGb3JDb250ZXh0PixcclxuICApIHt9XHJcbn1cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FicEZvcl0nLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9yRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxyXG4gIEBJbnB1dCgnYWJwRm9yT2YnKVxyXG4gIGl0ZW1zITogYW55W107XHJcblxyXG4gIEBJbnB1dCgnYWJwRm9yT3JkZXJCeScpXHJcbiAgb3JkZXJCeT86IHN0cmluZztcclxuXHJcbiAgQElucHV0KCdhYnBGb3JPcmRlckRpcicpXHJcbiAgb3JkZXJEaXI/OiAnQVNDJyB8ICdERVNDJztcclxuXHJcbiAgQElucHV0KCdhYnBGb3JGaWx0ZXJCeScpXHJcbiAgZmlsdGVyQnk/OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgnYWJwRm9yRmlsdGVyVmFsJylcclxuICBmaWx0ZXJWYWw6IGFueTtcclxuXHJcbiAgQElucHV0KCdhYnBGb3JUcmFja0J5JylcclxuICB0cmFja0J5PzogVHJhY2tCeUZ1bmN0aW9uPGFueT47XHJcblxyXG4gIEBJbnB1dCgnYWJwRm9yQ29tcGFyZUJ5JylcclxuICBjb21wYXJlQnk/OiBDb21wYXJlRm47XHJcblxyXG4gIEBJbnB1dCgnYWJwRm9yRW1wdHlSZWYnKVxyXG4gIGVtcHR5UmVmPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgcHJpdmF0ZSBkaWZmZXIhOiBJdGVyYWJsZURpZmZlcjxhbnk+IHwgbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBpc1Nob3dFbXB0eVJlZiE6IGJvb2xlYW47XHJcblxyXG4gIGdldCBjb21wYXJlRm4oKTogQ29tcGFyZUZuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBhcmVCeSB8fCBjb21wYXJlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRyYWNrQnlGbigpOiBUcmFja0J5RnVuY3Rpb248YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFja0J5IHx8ICgoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSA9PiAoaXRlbSBhcyBhbnkpLmlkIHx8IGluZGV4KTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0ZW1wUmVmOiBUZW1wbGF0ZVJlZjxBYnBGb3JDb250ZXh0PixcclxuICAgIHByaXZhdGUgdmNSZWY6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIGRpZmZlcnM6IEl0ZXJhYmxlRGlmZmVycyxcclxuICApIHt9XHJcblxyXG4gIHByaXZhdGUgaXRlcmF0ZU92ZXJBcHBsaWVkT3BlcmF0aW9ucyhjaGFuZ2VzOiBJdGVyYWJsZUNoYW5nZXM8YW55Pikge1xyXG4gICAgY29uc3Qgcnc6IFJlY29yZFZpZXdbXSA9IFtdO1xyXG5cclxuICAgIGNoYW5nZXMuZm9yRWFjaE9wZXJhdGlvbihcclxuICAgICAgKFxyXG4gICAgICAgIHJlY29yZDogSXRlcmFibGVDaGFuZ2VSZWNvcmQ8YW55PixcclxuICAgICAgICBwcmV2aW91c0luZGV4OiBudW1iZXIgfCBudWxsLFxyXG4gICAgICAgIGN1cnJlbnRJbmRleDogbnVtYmVyIHwgbnVsbCxcclxuICAgICAgKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlY29yZC5wcmV2aW91c0luZGV4ID09IG51bGwpIHtcclxuICAgICAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZjUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyhcclxuICAgICAgICAgICAgdGhpcy50ZW1wUmVmLFxyXG4gICAgICAgICAgICBuZXcgQWJwRm9yQ29udGV4dChudWxsLCAtMSwgLTEsIHRoaXMuaXRlbXMpLFxyXG4gICAgICAgICAgICBjdXJyZW50SW5kZXggfHwgMCxcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgcncucHVzaChuZXcgUmVjb3JkVmlldyhyZWNvcmQsIHZpZXcpKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRJbmRleCA9PSBudWxsICYmIHByZXZpb3VzSW5kZXggIT09IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMudmNSZWYucmVtb3ZlKHByZXZpb3VzSW5kZXgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAocHJldmlvdXNJbmRleCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy52Y1JlZi5nZXQocHJldmlvdXNJbmRleCk7XHJcbiAgICAgICAgICAgIGlmICh2aWV3ICYmIGN1cnJlbnRJbmRleCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudmNSZWYubW92ZSh2aWV3LCBjdXJyZW50SW5kZXgpO1xyXG4gICAgICAgICAgICAgIHJ3LnB1c2gobmV3IFJlY29yZFZpZXcocmVjb3JkLCB2aWV3IGFzIEVtYmVkZGVkVmlld1JlZjxBYnBGb3JDb250ZXh0PikpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgKTtcclxuXHJcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHJ3Lmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICByd1tpXS52aWV3LmNvbnRleHQuJGltcGxpY2l0ID0gcndbaV0ucmVjb3JkLml0ZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGl0ZXJhdGVPdmVyQXR0YWNoZWRWaWV3cyhjaGFuZ2VzOiBJdGVyYWJsZUNoYW5nZXM8YW55Pikge1xyXG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLnZjUmVmLmxlbmd0aDsgaSA8IGw7IGkrKykge1xyXG4gICAgICBjb25zdCB2aWV3UmVmID0gdGhpcy52Y1JlZi5nZXQoaSkgYXMgRW1iZWRkZWRWaWV3UmVmPEFicEZvckNvbnRleHQ+O1xyXG4gICAgICB2aWV3UmVmLmNvbnRleHQuaW5kZXggPSBpO1xyXG4gICAgICB2aWV3UmVmLmNvbnRleHQuY291bnQgPSBsO1xyXG4gICAgICB2aWV3UmVmLmNvbnRleHQubGlzdCA9IHRoaXMuaXRlbXM7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlcy5mb3JFYWNoSWRlbnRpdHlDaGFuZ2UoKHJlY29yZDogSXRlcmFibGVDaGFuZ2VSZWNvcmQ8YW55PikgPT4ge1xyXG4gICAgICBpZiAocmVjb3JkLmN1cnJlbnRJbmRleCAhPT0gbnVsbCkge1xyXG4gICAgICAgIGNvbnN0IHZpZXdSZWYgPSB0aGlzLnZjUmVmLmdldChyZWNvcmQuY3VycmVudEluZGV4KSBhcyBFbWJlZGRlZFZpZXdSZWY8QWJwRm9yQ29udGV4dD47XHJcbiAgICAgICAgdmlld1JlZi5jb250ZXh0LiRpbXBsaWNpdCA9IHJlY29yZC5pdGVtO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJvamVjdEl0ZW1zKGl0ZW1zOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgaWYgKCFpdGVtcy5sZW5ndGggJiYgdGhpcy5lbXB0eVJlZikge1xyXG4gICAgICB0aGlzLnZjUmVmLmNsZWFyKCk7XHJcbiAgICAgIHRoaXMudmNSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuZW1wdHlSZWYpLnJvb3ROb2RlcztcclxuICAgICAgdGhpcy5pc1Nob3dFbXB0eVJlZiA9IHRydWU7XHJcbiAgICAgIHRoaXMuZGlmZmVyID0gbnVsbDtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5lbXB0eVJlZiAmJiB0aGlzLmlzU2hvd0VtcHR5UmVmKSB7XHJcbiAgICAgIHRoaXMudmNSZWYuY2xlYXIoKTtcclxuICAgICAgdGhpcy5pc1Nob3dFbXB0eVJlZiA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy5kaWZmZXIgJiYgaXRlbXMpIHtcclxuICAgICAgdGhpcy5kaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZChpdGVtcykuY3JlYXRlKHRoaXMudHJhY2tCeUZuKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kaWZmZXIpIHtcclxuICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuZGlmZmVyLmRpZmYoaXRlbXMpO1xyXG5cclxuICAgICAgaWYgKGNoYW5nZXMpIHtcclxuICAgICAgICB0aGlzLml0ZXJhdGVPdmVyQXBwbGllZE9wZXJhdGlvbnMoY2hhbmdlcyk7XHJcbiAgICAgICAgdGhpcy5pdGVyYXRlT3ZlckF0dGFjaGVkVmlld3MoY2hhbmdlcyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc29ydEl0ZW1zKGl0ZW1zOiBhbnlbXSkge1xyXG4gICAgY29uc3Qgb3JkZXJCeSA9IHRoaXMub3JkZXJCeTtcclxuICAgIGlmIChvcmRlckJ5KSB7XHJcbiAgICAgIGl0ZW1zLnNvcnQoKGEsIGIpID0+IChhW29yZGVyQnldID4gYltvcmRlckJ5XSA/IDEgOiBhW29yZGVyQnldIDwgYltvcmRlckJ5XSA/IC0xIDogMCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaXRlbXMuc29ydCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICBsZXQgaXRlbXMgPSBjbG9uZSh0aGlzLml0ZW1zKSBhcyBhbnlbXTtcclxuICAgIGlmICghQXJyYXkuaXNBcnJheShpdGVtcykpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBjb21wYXJlRm4gPSB0aGlzLmNvbXBhcmVGbjtcclxuICAgIGNvbnN0IGZpbHRlckJ5ID0gdGhpcy5maWx0ZXJCeTtcclxuICAgIGlmIChcclxuICAgICAgdHlwZW9mIGZpbHRlckJ5ICE9PSAndW5kZWZpbmVkJyAmJlxyXG4gICAgICB0eXBlb2YgdGhpcy5maWx0ZXJWYWwgIT09ICd1bmRlZmluZWQnICYmXHJcbiAgICAgIHRoaXMuZmlsdGVyVmFsICE9PSAnJ1xyXG4gICAgKSB7XHJcbiAgICAgIGl0ZW1zID0gaXRlbXMuZmlsdGVyKGl0ZW0gPT4gY29tcGFyZUZuKGl0ZW1bZmlsdGVyQnldLCB0aGlzLmZpbHRlclZhbCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHN3aXRjaCAodGhpcy5vcmRlckRpcikge1xyXG4gICAgICBjYXNlICdBU0MnOlxyXG4gICAgICAgIHRoaXMuc29ydEl0ZW1zKGl0ZW1zKTtcclxuICAgICAgICB0aGlzLnByb2plY3RJdGVtcyhpdGVtcyk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlICdERVNDJzpcclxuICAgICAgICB0aGlzLnNvcnRJdGVtcyhpdGVtcyk7XHJcbiAgICAgICAgaXRlbXMucmV2ZXJzZSgpO1xyXG4gICAgICAgIHRoaXMucHJvamVjdEl0ZW1zKGl0ZW1zKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhpcy5wcm9qZWN0SXRlbXMoaXRlbXMpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=