@abp/ng.core 5.0.0-rc.1 → 5.0.2

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 (297) hide show
  1. package/abp-ng.core.d.ts +5 -5
  2. package/bundles/abp-ng.core-locale.umd.js +361 -361
  3. package/bundles/abp-ng.core-locale.umd.js.map +1 -1
  4. package/bundles/abp-ng.core-testing.umd.js +442 -442
  5. package/bundles/abp-ng.core.umd.js +4873 -4860
  6. package/bundles/abp-ng.core.umd.js.map +1 -1
  7. package/esm2015/abp-ng.core.js +4 -4
  8. package/esm2015/lib/abstracts/index.js +1 -1
  9. package/esm2015/lib/abstracts/ng-model.component.js +58 -58
  10. package/esm2015/lib/components/dynamic-layout.component.js +89 -99
  11. package/esm2015/lib/components/index.js +3 -3
  12. package/esm2015/lib/components/replaceable-route-container.component.js +37 -37
  13. package/esm2015/lib/components/router-outlet.component.js +14 -14
  14. package/esm2015/lib/constants/different-locales.js +336 -336
  15. package/esm2015/lib/constants/index.js +1 -1
  16. package/esm2015/lib/core.module.js +280 -280
  17. package/esm2015/lib/directives/autofocus.directive.js +29 -29
  18. package/esm2015/lib/directives/debounce.directive.js +35 -35
  19. package/esm2015/lib/directives/for.directive.js +150 -150
  20. package/esm2015/lib/directives/form-submit.directive.js +68 -68
  21. package/esm2015/lib/directives/index.js +8 -8
  22. package/esm2015/lib/directives/init.directive.js +20 -20
  23. package/esm2015/lib/directives/permission.directive.js +47 -47
  24. package/esm2015/lib/directives/replaceable-template.directive.js +120 -120
  25. package/esm2015/lib/directives/stop-propagation.directive.js +31 -31
  26. package/esm2015/lib/enums/common.js +1 -1
  27. package/esm2015/lib/enums/index.js +1 -1
  28. package/esm2015/lib/guards/auth.guard.js +28 -28
  29. package/esm2015/lib/guards/index.js +2 -2
  30. package/esm2015/lib/guards/permission.guard.js +43 -43
  31. package/esm2015/lib/handlers/oauth-configuration.handler.js +36 -36
  32. package/esm2015/lib/handlers/routes.handler.js +46 -46
  33. package/esm2015/lib/interceptors/api.interceptor.js +53 -53
  34. package/esm2015/lib/interceptors/index.js +1 -1
  35. package/esm2015/lib/localization.module.js +15 -15
  36. package/esm2015/lib/models/auth.js +1 -1
  37. package/esm2015/lib/models/common.js +1 -1
  38. package/esm2015/lib/models/dtos.js +118 -118
  39. package/esm2015/lib/models/environment.js +1 -1
  40. package/esm2015/lib/models/index.js +9 -9
  41. package/esm2015/lib/models/localization.js +1 -1
  42. package/esm2015/lib/models/replaceable-components.js +1 -1
  43. package/esm2015/lib/models/rest.js +2 -2
  44. package/esm2015/lib/models/session.js +1 -1
  45. package/esm2015/lib/models/utility.js +1 -1
  46. package/esm2015/lib/pipes/index.js +2 -2
  47. package/esm2015/lib/pipes/localization.pipe.js +32 -32
  48. package/esm2015/lib/pipes/sort.pipe.js +48 -48
  49. package/esm2015/lib/providers/cookie-language.provider.js +21 -21
  50. package/esm2015/lib/providers/locale.provider.js +21 -21
  51. package/esm2015/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.js +28 -28
  52. package/esm2015/lib/proxy/pages/abp/multi-tenancy/index.js +1 -1
  53. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.js +23 -23
  54. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/index.js +1 -1
  55. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.js +24 -24
  56. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/index.js +4 -4
  57. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.js +1 -1
  58. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/index.js +1 -1
  59. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.js +2 -2
  60. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/index.js +1 -1
  61. package/esm2015/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.js +1 -1
  62. package/esm2015/lib/proxy/volo/abp/http/modeling/index.js +1 -1
  63. package/esm2015/lib/proxy/volo/abp/http/modeling/models.js +2 -2
  64. package/esm2015/lib/proxy/volo/abp/localization/index.js +1 -1
  65. package/esm2015/lib/proxy/volo/abp/localization/models.js +1 -1
  66. package/esm2015/lib/proxy/volo/abp/models.js +1 -1
  67. package/esm2015/lib/services/auth.service.js +46 -46
  68. package/esm2015/lib/services/config-state.service.js +129 -129
  69. package/esm2015/lib/services/content-projection.service.js +16 -16
  70. package/esm2015/lib/services/dom-insertion.service.js +31 -31
  71. package/esm2015/lib/services/environment.service.js +34 -34
  72. package/esm2015/lib/services/http-error-reporter.service.js +28 -28
  73. package/esm2015/lib/services/http-wait.service.js +71 -71
  74. package/esm2015/lib/services/index.js +21 -21
  75. package/esm2015/lib/services/lazy-load.service.js +37 -37
  76. package/esm2015/lib/services/list.service.js +102 -102
  77. package/esm2015/lib/services/localization.service.js +181 -181
  78. package/esm2015/lib/services/multi-tenancy.service.js +47 -47
  79. package/esm2015/lib/services/permission.service.js +63 -63
  80. package/esm2015/lib/services/replaceable-components.service.js +48 -48
  81. package/esm2015/lib/services/resource-wait.service.js +38 -38
  82. package/esm2015/lib/services/rest.service.js +63 -59
  83. package/esm2015/lib/services/router-events.service.js +37 -37
  84. package/esm2015/lib/services/router-wait.service.js +50 -50
  85. package/esm2015/lib/services/routes.service.js +146 -146
  86. package/esm2015/lib/services/session-state.service.js +75 -75
  87. package/esm2015/lib/services/subscription.service.js +40 -40
  88. package/esm2015/lib/services/track-by.service.js +20 -20
  89. package/esm2015/lib/strategies/auth-flow.strategy.js +201 -201
  90. package/esm2015/lib/strategies/container.strategy.js +37 -37
  91. package/esm2015/lib/strategies/content-security.strategy.js +27 -27
  92. package/esm2015/lib/strategies/content.strategy.js +47 -47
  93. package/esm2015/lib/strategies/context.strategy.js +36 -36
  94. package/esm2015/lib/strategies/cross-origin.strategy.js +25 -25
  95. package/esm2015/lib/strategies/dom.strategy.js +26 -26
  96. package/esm2015/lib/strategies/index.js +8 -8
  97. package/esm2015/lib/strategies/loading.strategy.js +57 -57
  98. package/esm2015/lib/strategies/projection.strategy.js +79 -79
  99. package/esm2015/lib/tokens/app-config.token.js +2 -2
  100. package/esm2015/lib/tokens/cookie-language-key.token.js +4 -4
  101. package/esm2015/lib/tokens/index.js +8 -8
  102. package/esm2015/lib/tokens/list.token.js +2 -2
  103. package/esm2015/lib/tokens/localization.token.js +9 -9
  104. package/esm2015/lib/tokens/lodaer-delay.token.js +2 -2
  105. package/esm2015/lib/tokens/manage-profile.token.js +11 -11
  106. package/esm2015/lib/tokens/options.token.js +7 -7
  107. package/esm2015/lib/tokens/tenant-key.token.js +2 -2
  108. package/esm2015/lib/utils/array-utils.js +6 -6
  109. package/esm2015/lib/utils/auth-utils.js +41 -41
  110. package/esm2015/lib/utils/common-utils.js +28 -28
  111. package/esm2015/lib/utils/date-extensions.js +5 -5
  112. package/esm2015/lib/utils/date-utils.js +12 -12
  113. package/esm2015/lib/utils/environment-utils.js +35 -35
  114. package/esm2015/lib/utils/factory-utils.js +23 -23
  115. package/esm2015/lib/utils/file-utils.js +13 -13
  116. package/esm2015/lib/utils/form-utils.js +11 -11
  117. package/esm2015/lib/utils/generator-utils.js +33 -33
  118. package/esm2015/lib/utils/http-utils.js +18 -18
  119. package/esm2015/lib/utils/index.js +20 -20
  120. package/esm2015/lib/utils/initial-utils.js +63 -63
  121. package/esm2015/lib/utils/internal-store-utils.js +35 -35
  122. package/esm2015/lib/utils/lazy-load-utils.js +39 -39
  123. package/esm2015/lib/utils/localization-utils.js +49 -49
  124. package/esm2015/lib/utils/multi-tenancy-utils.js +82 -82
  125. package/esm2015/lib/utils/number-utils.js +3 -3
  126. package/esm2015/lib/utils/object-utils.js +36 -36
  127. package/esm2015/lib/utils/route-utils.js +26 -26
  128. package/esm2015/lib/utils/string-utils.js +25 -21
  129. package/esm2015/lib/utils/tree-utils.js +53 -53
  130. package/esm2015/lib/validators/age.validator.js +13 -13
  131. package/esm2015/lib/validators/credit-card.validator.js +20 -20
  132. package/esm2015/lib/validators/index.js +22 -22
  133. package/esm2015/lib/validators/range.validator.js +14 -14
  134. package/esm2015/lib/validators/required.validator.js +12 -12
  135. package/esm2015/lib/validators/string-length.validator.js +14 -14
  136. package/esm2015/lib/validators/url.validator.js +15 -15
  137. package/esm2015/locale/abp-ng.core-locale.js +4 -4
  138. package/esm2015/locale/public-api.js +1 -1
  139. package/esm2015/locale/utils/register-locale.js +43 -43
  140. package/esm2015/public-api.js +25 -25
  141. package/esm2015/testing/abp-ng.core-testing.js +4 -4
  142. package/esm2015/testing/lib/core-testing.module.js +61 -61
  143. package/esm2015/testing/lib/services/index.js +2 -2
  144. package/esm2015/testing/lib/services/mock-permission.service.js +34 -34
  145. package/esm2015/testing/lib/services/mock-rest.service.js +29 -29
  146. package/esm2015/testing/lib/utils/clear-page.util.js +9 -9
  147. package/esm2015/testing/lib/utils/index.js +2 -2
  148. package/esm2015/testing/lib/utils/wait.util.js +4 -4
  149. package/esm2015/testing/public-api.js +3 -3
  150. package/fesm2015/abp-ng.core-locale.js +40 -40
  151. package/fesm2015/abp-ng.core-locale.js.map +1 -1
  152. package/fesm2015/abp-ng.core-testing.js +113 -113
  153. package/fesm2015/abp-ng.core.js +3976 -3977
  154. package/fesm2015/abp-ng.core.js.map +1 -1
  155. package/lib/abstracts/index.d.ts +1 -1
  156. package/lib/abstracts/ng-model.component.d.ts +25 -25
  157. package/lib/components/dynamic-layout.component.d.ts +27 -27
  158. package/lib/components/index.d.ts +3 -3
  159. package/lib/components/replaceable-route-container.component.d.ts +17 -17
  160. package/lib/components/router-outlet.component.d.ts +5 -5
  161. package/lib/constants/different-locales.d.ts +334 -334
  162. package/lib/constants/index.d.ts +1 -1
  163. package/lib/core.module.d.ts +56 -56
  164. package/lib/directives/autofocus.directive.d.ts +12 -12
  165. package/lib/directives/debounce.directive.d.ts +13 -13
  166. package/lib/directives/for.directive.d.ts +36 -36
  167. package/lib/directives/form-submit.directive.d.ts +19 -19
  168. package/lib/directives/index.d.ts +8 -8
  169. package/lib/directives/init.directive.d.ts +10 -10
  170. package/lib/directives/permission.directive.d.ts +18 -18
  171. package/lib/directives/replaceable-template.directive.d.ts +30 -30
  172. package/lib/directives/stop-propagation.directive.d.ts +12 -12
  173. package/lib/enums/common.d.ts +5 -5
  174. package/lib/enums/index.d.ts +1 -1
  175. package/lib/guards/auth.guard.d.ts +13 -13
  176. package/lib/guards/index.d.ts +2 -2
  177. package/lib/guards/permission.guard.d.ts +16 -16
  178. package/lib/handlers/oauth-configuration.handler.d.ts +13 -13
  179. package/lib/handlers/routes.handler.d.ts +11 -11
  180. package/lib/interceptors/api.interceptor.d.ts +16 -16
  181. package/lib/interceptors/index.d.ts +1 -1
  182. package/lib/localization.module.d.ts +7 -7
  183. package/lib/models/auth.d.ts +6 -6
  184. package/lib/models/common.d.ts +77 -77
  185. package/lib/models/dtos.d.ts +95 -95
  186. package/lib/models/environment.d.ts +35 -35
  187. package/lib/models/index.d.ts +9 -9
  188. package/lib/models/localization.d.ts +5 -5
  189. package/lib/models/replaceable-components.d.ts +45 -45
  190. package/lib/models/rest.d.ts +35 -33
  191. package/lib/models/session.d.ts +7 -7
  192. package/lib/models/utility.d.ts +14 -14
  193. package/lib/pipes/index.d.ts +2 -2
  194. package/lib/pipes/localization.pipe.d.ts +12 -12
  195. package/lib/pipes/sort.pipe.d.ts +9 -9
  196. package/lib/providers/cookie-language.provider.d.ts +3 -3
  197. package/lib/providers/locale.provider.d.ts +9 -9
  198. package/lib/proxy/pages/abp/multi-tenancy/abp-tenant.service.d.ts +12 -12
  199. package/lib/proxy/pages/abp/multi-tenancy/index.d.ts +1 -1
  200. package/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/abp-api-definition.service.d.ts +11 -11
  201. package/lib/proxy/volo/abp/asp-net-core/mvc/api-exploring/index.d.ts +1 -1
  202. package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/abp-application-configuration.service.d.ts +11 -11
  203. package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/index.d.ts +4 -4
  204. package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/models.d.ts +85 -85
  205. package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/index.d.ts +1 -1
  206. package/lib/proxy/volo/abp/asp-net-core/mvc/application-configurations/object-extending/models.d.ts +71 -71
  207. package/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/index.d.ts +1 -1
  208. package/lib/proxy/volo/abp/asp-net-core/mvc/multi-tenancy/models.d.ts +14 -14
  209. package/lib/proxy/volo/abp/http/modeling/index.d.ts +1 -1
  210. package/lib/proxy/volo/abp/http/modeling/models.d.ts +70 -70
  211. package/lib/proxy/volo/abp/localization/index.d.ts +1 -1
  212. package/lib/proxy/volo/abp/localization/models.d.ts +6 -6
  213. package/lib/proxy/volo/abp/models.d.ts +4 -4
  214. package/lib/services/auth.service.d.ts +17 -17
  215. package/lib/services/config-state.service.d.ts +339 -339
  216. package/lib/services/content-projection.service.d.ts +10 -10
  217. package/lib/services/dom-insertion.service.d.ts +10 -10
  218. package/lib/services/environment.service.d.ts +96 -96
  219. package/lib/services/http-error-reporter.service.d.ts +12 -12
  220. package/lib/services/http-wait.service.d.ts +30 -30
  221. package/lib/services/index.d.ts +21 -21
  222. package/lib/services/lazy-load.service.d.ts +13 -13
  223. package/lib/services/list.service.d.ts +39 -39
  224. package/lib/services/localization.service.d.ts +47 -47
  225. package/lib/services/multi-tenancy.service.d.ts +22 -22
  226. package/lib/services/permission.service.d.ts +19 -19
  227. package/lib/services/replaceable-components.service.d.ts +19 -19
  228. package/lib/services/resource-wait.service.d.ts +15 -15
  229. package/lib/services/rest.service.d.ts +20 -19
  230. package/lib/services/router-events.service.d.ts +29 -29
  231. package/lib/services/router-wait.service.d.ts +20 -20
  232. package/lib/services/routes.service.d.ts +50 -50
  233. package/lib/services/session-state.service.d.ts +25 -25
  234. package/lib/services/subscription.service.d.ts +17 -17
  235. package/lib/services/track-by.service.d.ts +11 -11
  236. package/lib/strategies/auth-flow.strategy.d.ts +367 -367
  237. package/lib/strategies/container.strategy.d.ts +22 -22
  238. package/lib/strategies/content-security.strategy.d.ts +17 -17
  239. package/lib/strategies/content.strategy.d.ts +26 -26
  240. package/lib/strategies/context.strategy.d.ts +23 -23
  241. package/lib/strategies/cross-origin.strategy.d.ts +14 -14
  242. package/lib/strategies/dom.strategy.d.ts +13 -13
  243. package/lib/strategies/index.d.ts +8 -8
  244. package/lib/strategies/loading.strategy.d.ts +28 -28
  245. package/lib/strategies/projection.strategy.d.ts +39 -39
  246. package/lib/tokens/app-config.token.d.ts +3 -3
  247. package/lib/tokens/cookie-language-key.token.d.ts +2 -2
  248. package/lib/tokens/index.d.ts +8 -8
  249. package/lib/tokens/list.token.d.ts +2 -2
  250. package/lib/tokens/localization.token.d.ts +6 -6
  251. package/lib/tokens/lodaer-delay.token.d.ts +2 -2
  252. package/lib/tokens/manage-profile.token.d.ts +2 -2
  253. package/lib/tokens/options.token.d.ts +4 -4
  254. package/lib/tokens/tenant-key.token.d.ts +2 -2
  255. package/lib/utils/array-utils.d.ts +1 -1
  256. package/lib/utils/auth-utils.d.ts +162 -162
  257. package/lib/utils/common-utils.d.ts +9 -9
  258. package/lib/utils/date-extensions.d.ts +6 -6
  259. package/lib/utils/date-utils.d.ts +4 -4
  260. package/lib/utils/environment-utils.d.ts +3 -3
  261. package/lib/utils/factory-utils.d.ts +9 -9
  262. package/lib/utils/file-utils.d.ts +1 -1
  263. package/lib/utils/form-utils.d.ts +2 -2
  264. package/lib/utils/generator-utils.d.ts +3 -3
  265. package/lib/utils/http-utils.d.ts +8 -8
  266. package/lib/utils/index.d.ts +20 -20
  267. package/lib/utils/initial-utils.d.ts +159 -159
  268. package/lib/utils/internal-store-utils.d.ts +14 -14
  269. package/lib/utils/lazy-load-utils.d.ts +4 -4
  270. package/lib/utils/localization-utils.d.ts +5 -5
  271. package/lib/utils/multi-tenancy-utils.d.ts +3 -3
  272. package/lib/utils/number-utils.d.ts +1 -1
  273. package/lib/utils/object-utils.d.ts +1 -1
  274. package/lib/utils/route-utils.d.ts +8 -8
  275. package/lib/utils/string-utils.d.ts +3 -2
  276. package/lib/utils/tree-utils.d.ts +19 -19
  277. package/lib/validators/age.validator.d.ts +10 -10
  278. package/lib/validators/credit-card.validator.d.ts +5 -5
  279. package/lib/validators/index.d.ts +22 -22
  280. package/lib/validators/range.validator.d.ts +12 -12
  281. package/lib/validators/required.validator.d.ts +8 -8
  282. package/lib/validators/string-length.validator.d.ts +14 -14
  283. package/lib/validators/url.validator.d.ts +5 -5
  284. package/locale/abp-ng.core-locale.d.ts +5 -5
  285. package/locale/public-api.d.ts +1 -1
  286. package/locale/utils/register-locale.d.ts +13 -13
  287. package/package.json +2 -2
  288. package/public-api.d.ts +24 -24
  289. package/testing/abp-ng.core-testing.d.ts +5 -5
  290. package/testing/lib/core-testing.module.d.ts +16 -16
  291. package/testing/lib/services/index.d.ts +2 -2
  292. package/testing/lib/services/mock-permission.service.d.ts +10 -10
  293. package/testing/lib/services/mock-rest.service.d.ts +13 -13
  294. package/testing/lib/utils/clear-page.util.d.ts +2 -2
  295. package/testing/lib/utils/index.d.ts +2 -2
  296. package/testing/lib/utils/wait.util.d.ts +2 -2
  297. package/testing/public-api.d.ts +3 -3
@@ -1,30 +1,30 @@
1
- import { Directive, ElementRef, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class AutofocusDirective {
4
- constructor(elRef) {
5
- this.elRef = elRef;
6
- this._delay = 0;
7
- }
8
- set delay(val) {
9
- this._delay = Number(val) || 0;
10
- }
11
- get delay() {
12
- return this._delay;
13
- }
14
- ngAfterViewInit() {
15
- setTimeout(() => this.elRef.nativeElement.focus(), this.delay);
16
- }
17
- }
18
- AutofocusDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AutofocusDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
19
- AutofocusDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: AutofocusDirective, selector: "[autofocus]", inputs: { delay: ["autofocus", "delay"] }, ngImport: i0 });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AutofocusDirective, decorators: [{
21
- type: Directive,
22
- args: [{
23
- // eslint-disable-next-line @angular-eslint/directive-selector
24
- selector: '[autofocus]',
25
- }]
26
- }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { delay: [{
27
- type: Input,
28
- args: ['autofocus']
29
- }] } });
1
+ import { Directive, ElementRef, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class AutofocusDirective {
4
+ constructor(elRef) {
5
+ this.elRef = elRef;
6
+ this._delay = 0;
7
+ }
8
+ set delay(val) {
9
+ this._delay = Number(val) || 0;
10
+ }
11
+ get delay() {
12
+ return this._delay;
13
+ }
14
+ ngAfterViewInit() {
15
+ setTimeout(() => this.elRef.nativeElement.focus(), this.delay);
16
+ }
17
+ }
18
+ AutofocusDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AutofocusDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
19
+ AutofocusDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: AutofocusDirective, selector: "[autofocus]", inputs: { delay: ["autofocus", "delay"] }, ngImport: i0 });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: AutofocusDirective, decorators: [{
21
+ type: Directive,
22
+ args: [{
23
+ // eslint-disable-next-line @angular-eslint/directive-selector
24
+ selector: '[autofocus]',
25
+ }]
26
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { delay: [{
27
+ type: Input,
28
+ args: ['autofocus']
29
+ }] } });
30
30
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2F1dG9mb2N1cy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNNUUsTUFBTSxPQUFPLGtCQUFrQjtJQVk3QixZQUFvQixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO1FBWDdCLFdBQU0sR0FBRyxDQUFDLENBQUM7SUFXcUIsQ0FBQztJQVR6QyxJQUNJLEtBQUssQ0FBQyxHQUFnQztRQUN4QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBSUQsZUFBZTtRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBZSxDQUFDLENBQUM7SUFDM0UsQ0FBQzs7Z0hBaEJVLGtCQUFrQjtvR0FBbEIsa0JBQWtCOzRGQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7aUdBS0ssS0FBSztzQkFEUixLQUFLO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1thdXRvZm9jdXNdJyxcbn0pXG5leHBvcnQgY2xhc3MgQXV0b2ZvY3VzRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByaXZhdGUgX2RlbGF5ID0gMDtcblxuICBASW5wdXQoJ2F1dG9mb2N1cycpXG4gIHNldCBkZWxheSh2YWw6IG51bWJlciB8IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX2RlbGF5ID0gTnVtYmVyKHZhbCkgfHwgMDtcbiAgfVxuXG4gIGdldCBkZWxheSgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGVsYXk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsUmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpLCB0aGlzLmRlbGF5IGFzIG51bWJlcik7XG4gIH1cbn1cbiJdfQ==
@@ -1,36 +1,36 @@
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
- export 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
- }
21
- InputEventDebounceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: InputEventDebounceDirective, deps: [{ token: i0.ElementRef }, { token: i1.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive });
22
- InputEventDebounceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: InputEventDebounceDirective, selector: "[input.debounce]", inputs: { debounce: "debounce" }, outputs: { debounceEvent: "input.debounce" }, providers: [SubscriptionService], ngImport: i0 });
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: InputEventDebounceDirective, decorators: [{
24
- type: Directive,
25
- args: [{
26
- // eslint-disable-next-line @angular-eslint/directive-selector
27
- selector: '[input.debounce]',
28
- providers: [SubscriptionService],
29
- }]
30
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SubscriptionService }]; }, propDecorators: { debounce: [{
31
- type: Input
32
- }], debounceEvent: [{
33
- type: Output,
34
- args: ['input.debounce']
35
- }] } });
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
+ export 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
+ }
21
+ InputEventDebounceDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: InputEventDebounceDirective, deps: [{ token: i0.ElementRef }, { token: i1.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive });
22
+ InputEventDebounceDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: InputEventDebounceDirective, selector: "[input.debounce]", inputs: { debounce: "debounce" }, outputs: { debounceEvent: "input.debounce" }, providers: [SubscriptionService], ngImport: i0 });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: InputEventDebounceDirective, decorators: [{
24
+ type: Directive,
25
+ args: [{
26
+ // eslint-disable-next-line @angular-eslint/directive-selector
27
+ selector: '[input.debounce]',
28
+ providers: [SubscriptionService],
29
+ }]
30
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SubscriptionService }]; }, propDecorators: { debounce: [{
31
+ type: Input
32
+ }], debounceEvent: [{
33
+ type: Output,
34
+ args: ['input.debounce']
35
+ }] } });
36
36
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVib3VuY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvZGVib3VuY2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFPdkUsTUFBTSxPQUFPLDJCQUEyQjtJQUt0QyxZQUFvQixFQUFjLEVBQVUsWUFBaUM7UUFBekQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUpwRSxhQUFRLEdBQUcsR0FBRyxDQUFDO1FBRVcsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO0lBRUcsQ0FBQztJQUVqRixRQUFRO1FBQ04sTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFM0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDaEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzt5SEFiVSwyQkFBMkI7NkdBQTNCLDJCQUEyQiwySEFGM0IsQ0FBQyxtQkFBbUIsQ0FBQzs0RkFFckIsMkJBQTJCO2tCQUx2QyxTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQ2pDO21JQUVVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRTZCLGFBQWE7c0JBQS9DLE1BQU07dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3Vic2NyaXB0aW9uLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdbaW5wdXQuZGVib3VuY2VdJyxcbiAgcHJvdmlkZXJzOiBbU3Vic2NyaXB0aW9uU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIElucHV0RXZlbnREZWJvdW5jZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGRlYm91bmNlID0gMzAwO1xuXG4gIEBPdXRwdXQoJ2lucHV0LmRlYm91bmNlJykgcmVhZG9ubHkgZGVib3VuY2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvblNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQkID0gZnJvbUV2ZW50KHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2lucHV0JykucGlwZShkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZSkpO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkT25lKGlucHV0JCwgKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgdGhpcy5kZWJvdW5jZUV2ZW50LmVtaXQoZXZlbnQpO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,151 +1,151 @@
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
- export class ForDirective {
20
- constructor(tempRef, vcRef, differs) {
21
- this.tempRef = tempRef;
22
- this.vcRef = vcRef;
23
- this.differs = differs;
24
- }
25
- get compareFn() {
26
- return this.compareBy || compare;
27
- }
28
- get trackByFn() {
29
- return this.trackBy || ((index, item) => item.id || index);
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);
36
- rw.push(new RecordView(record, view));
37
- }
38
- else if (currentIndex == null) {
39
- this.vcRef.remove(previousIndex);
40
- }
41
- else {
42
- const view = this.vcRef.get(previousIndex);
43
- this.vcRef.move(view, currentIndex);
44
- rw.push(new RecordView(record, view));
45
- }
46
- });
47
- for (let i = 0, l = rw.length; i < l; i++) {
48
- rw[i].view.context.$implicit = rw[i].record.item;
49
- }
50
- }
51
- iterateOverAttachedViews(changes) {
52
- for (let i = 0, l = this.vcRef.length; i < l; i++) {
53
- const viewRef = this.vcRef.get(i);
54
- viewRef.context.index = i;
55
- viewRef.context.count = l;
56
- viewRef.context.list = this.items;
57
- }
58
- changes.forEachIdentityChange((record) => {
59
- const viewRef = this.vcRef.get(record.currentIndex);
60
- viewRef.context.$implicit = record.item;
61
- });
62
- }
63
- projectItems(items) {
64
- if (!items.length && this.emptyRef) {
65
- this.vcRef.clear();
66
- this.vcRef.createEmbeddedView(this.emptyRef).rootNodes;
67
- this.isShowEmptyRef = true;
68
- this.differ = null;
69
- return;
70
- }
71
- if (this.emptyRef && this.isShowEmptyRef) {
72
- this.vcRef.clear();
73
- this.isShowEmptyRef = false;
74
- }
75
- if (!this.differ && items) {
76
- this.differ = this.differs.find(items).create(this.trackByFn);
77
- }
78
- if (this.differ) {
79
- const changes = this.differ.diff(items);
80
- if (changes) {
81
- this.iterateOverAppliedOperations(changes);
82
- this.iterateOverAttachedViews(changes);
83
- }
84
- }
85
- }
86
- sortItems(items) {
87
- if (this.orderBy) {
88
- items.sort((a, b) => a[this.orderBy] > b[this.orderBy] ? 1 : a[this.orderBy] < b[this.orderBy] ? -1 : 0);
89
- }
90
- else {
91
- items.sort();
92
- }
93
- }
94
- ngOnChanges() {
95
- let items = clone(this.items);
96
- if (!Array.isArray(items))
97
- return;
98
- const compareFn = this.compareFn;
99
- if (typeof this.filterBy !== 'undefined' &&
100
- typeof this.filterVal !== 'undefined' &&
101
- this.filterVal !== '') {
102
- items = items.filter(item => compareFn(item[this.filterBy], this.filterVal));
103
- }
104
- switch (this.orderDir) {
105
- case 'ASC':
106
- this.sortItems(items);
107
- this.projectItems(items);
108
- break;
109
- case 'DESC':
110
- this.sortItems(items);
111
- items.reverse();
112
- this.projectItems(items);
113
- break;
114
- default:
115
- this.projectItems(items);
116
- }
117
- }
118
- }
119
- ForDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ForDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });
120
- ForDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", 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 });
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ForDirective, decorators: [{
122
- type: Directive,
123
- args: [{
124
- selector: '[abpFor]',
125
- }]
126
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i0.IterableDiffers }]; }, propDecorators: { items: [{
127
- type: Input,
128
- args: ['abpForOf']
129
- }], orderBy: [{
130
- type: Input,
131
- args: ['abpForOrderBy']
132
- }], orderDir: [{
133
- type: Input,
134
- args: ['abpForOrderDir']
135
- }], filterBy: [{
136
- type: Input,
137
- args: ['abpForFilterBy']
138
- }], filterVal: [{
139
- type: Input,
140
- args: ['abpForFilterVal']
141
- }], trackBy: [{
142
- type: Input,
143
- args: ['abpForTrackBy']
144
- }], compareBy: [{
145
- type: Input,
146
- args: ['abpForCompareBy']
147
- }], emptyRef: [{
148
- type: Input,
149
- args: ['abpForEmptyRef']
150
- }] } });
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
+ export class ForDirective {
20
+ constructor(tempRef, vcRef, differs) {
21
+ this.tempRef = tempRef;
22
+ this.vcRef = vcRef;
23
+ this.differs = differs;
24
+ }
25
+ get compareFn() {
26
+ return this.compareBy || compare;
27
+ }
28
+ get trackByFn() {
29
+ return this.trackBy || ((index, item) => item.id || index);
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);
36
+ rw.push(new RecordView(record, view));
37
+ }
38
+ else if (currentIndex == null) {
39
+ this.vcRef.remove(previousIndex);
40
+ }
41
+ else {
42
+ const view = this.vcRef.get(previousIndex);
43
+ this.vcRef.move(view, currentIndex);
44
+ rw.push(new RecordView(record, view));
45
+ }
46
+ });
47
+ for (let i = 0, l = rw.length; i < l; i++) {
48
+ rw[i].view.context.$implicit = rw[i].record.item;
49
+ }
50
+ }
51
+ iterateOverAttachedViews(changes) {
52
+ for (let i = 0, l = this.vcRef.length; i < l; i++) {
53
+ const viewRef = this.vcRef.get(i);
54
+ viewRef.context.index = i;
55
+ viewRef.context.count = l;
56
+ viewRef.context.list = this.items;
57
+ }
58
+ changes.forEachIdentityChange((record) => {
59
+ const viewRef = this.vcRef.get(record.currentIndex);
60
+ viewRef.context.$implicit = record.item;
61
+ });
62
+ }
63
+ projectItems(items) {
64
+ if (!items.length && this.emptyRef) {
65
+ this.vcRef.clear();
66
+ this.vcRef.createEmbeddedView(this.emptyRef).rootNodes;
67
+ this.isShowEmptyRef = true;
68
+ this.differ = null;
69
+ return;
70
+ }
71
+ if (this.emptyRef && this.isShowEmptyRef) {
72
+ this.vcRef.clear();
73
+ this.isShowEmptyRef = false;
74
+ }
75
+ if (!this.differ && items) {
76
+ this.differ = this.differs.find(items).create(this.trackByFn);
77
+ }
78
+ if (this.differ) {
79
+ const changes = this.differ.diff(items);
80
+ if (changes) {
81
+ this.iterateOverAppliedOperations(changes);
82
+ this.iterateOverAttachedViews(changes);
83
+ }
84
+ }
85
+ }
86
+ sortItems(items) {
87
+ if (this.orderBy) {
88
+ items.sort((a, b) => a[this.orderBy] > b[this.orderBy] ? 1 : a[this.orderBy] < b[this.orderBy] ? -1 : 0);
89
+ }
90
+ else {
91
+ items.sort();
92
+ }
93
+ }
94
+ ngOnChanges() {
95
+ let items = clone(this.items);
96
+ if (!Array.isArray(items))
97
+ return;
98
+ const compareFn = this.compareFn;
99
+ if (typeof this.filterBy !== 'undefined' &&
100
+ typeof this.filterVal !== 'undefined' &&
101
+ this.filterVal !== '') {
102
+ items = items.filter(item => compareFn(item[this.filterBy], this.filterVal));
103
+ }
104
+ switch (this.orderDir) {
105
+ case 'ASC':
106
+ this.sortItems(items);
107
+ this.projectItems(items);
108
+ break;
109
+ case 'DESC':
110
+ this.sortItems(items);
111
+ items.reverse();
112
+ this.projectItems(items);
113
+ break;
114
+ default:
115
+ this.projectItems(items);
116
+ }
117
+ }
118
+ }
119
+ ForDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ForDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });
120
+ ForDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", 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 });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ForDirective, decorators: [{
122
+ type: Directive,
123
+ args: [{
124
+ selector: '[abpFor]',
125
+ }]
126
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i0.IterableDiffers }]; }, propDecorators: { items: [{
127
+ type: Input,
128
+ args: ['abpForOf']
129
+ }], orderBy: [{
130
+ type: Input,
131
+ args: ['abpForOrderBy']
132
+ }], orderDir: [{
133
+ type: Input,
134
+ args: ['abpForOrderDir']
135
+ }], filterBy: [{
136
+ type: Input,
137
+ args: ['abpForFilterBy']
138
+ }], filterVal: [{
139
+ type: Input,
140
+ args: ['abpForFilterVal']
141
+ }], trackBy: [{
142
+ type: Input,
143
+ args: ['abpForTrackBy']
144
+ }], compareBy: [{
145
+ type: Input,
146
+ args: ['abpForCompareBy']
147
+ }], emptyRef: [{
148
+ type: Input,
149
+ args: ['abpForEmptyRef']
150
+ }] } });
151
151
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi9kaXJlY3RpdmVzL2Zvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEVBSUwsZUFBZSxFQUVmLFdBQVcsRUFFWCxnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQy9CLE9BQU8sT0FBTyxNQUFNLGNBQWMsQ0FBQzs7QUFJbkMsTUFBTSxhQUFhO0lBQ2pCLFlBQ1MsU0FBYyxFQUNkLEtBQWEsRUFDYixLQUFhLEVBQ2IsSUFBVztRQUhYLGNBQVMsR0FBVCxTQUFTLENBQUs7UUFDZCxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQ2IsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQUNiLFNBQUksR0FBSixJQUFJLENBQU87SUFDakIsQ0FBQztDQUNMO0FBRUQsTUFBTSxVQUFVO0lBQ2QsWUFDUyxNQUFpQyxFQUNqQyxJQUFvQztRQURwQyxXQUFNLEdBQU4sTUFBTSxDQUEyQjtRQUNqQyxTQUFJLEdBQUosSUFBSSxDQUFnQztJQUMxQyxDQUFDO0NBQ0w7QUFLRCxNQUFNLE9BQU8sWUFBWTtJQXNDdkIsWUFDVSxPQUFtQyxFQUNuQyxLQUF1QixFQUN2QixPQUF3QjtRQUZ4QixZQUFPLEdBQVAsT0FBTyxDQUE0QjtRQUNuQyxVQUFLLEdBQUwsS0FBSyxDQUFrQjtRQUN2QixZQUFPLEdBQVAsT0FBTyxDQUFpQjtJQUMvQixDQUFDO0lBWkosSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxLQUFhLEVBQUUsSUFBUyxFQUFFLEVBQUUsQ0FB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S0FBSztzQkFESixLQUFLO3VCQUFDLFVBQVU7Z0JBSWpCLE9BQU87c0JBRE4sS0FBSzt1QkFBQyxlQUFlO2dCQUl0QixRQUFRO3NCQURQLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUl2QixRQUFRO3NCQURQLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUl2QixTQUFTO3NCQURSLEtBQUs7dUJBQUMsaUJBQWlCO2dCQUl4QixPQUFPO3NCQUROLEtBQUs7dUJBQUMsZUFBZTtnQkFJdEIsU0FBUztzQkFEUixLQUFLO3VCQUFDLGlCQUFpQjtnQkFJeEIsUUFBUTtzQkFEUCxLQUFLO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRW1iZWRkZWRWaWV3UmVmLFxuICBJbnB1dCxcbiAgSXRlcmFibGVDaGFuZ2VSZWNvcmQsXG4gIEl0ZXJhYmxlQ2hhbmdlcyxcbiAgSXRlcmFibGVEaWZmZXIsXG4gIEl0ZXJhYmxlRGlmZmVycyxcbiAgT25DaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVHJhY2tCeUZ1bmN0aW9uLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBjbG9uZSBmcm9tICdqdXN0LWNsb25lJztcbmltcG9ydCBjb21wYXJlIGZyb20gJ2p1c3QtY29tcGFyZSc7XG5cbmV4cG9ydCB0eXBlIENvbXBhcmVGbjxUID0gYW55PiA9ICh2YWx1ZTogVCwgY29tcGFyaXNvbjogVCkgPT4gYm9vbGVhbjtcblxuY2xhc3MgQWJwRm9yQ29udGV4dCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyAkaW1wbGljaXQ6IGFueSxcbiAgICBwdWJsaWMgaW5kZXg6IG51bWJlcixcbiAgICBwdWJsaWMgY291bnQ6IG51bWJlcixcbiAgICBwdWJsaWMgbGlzdDogYW55W10sXG4gICkge31cbn1cblxuY2xhc3MgUmVjb3JkVmlldyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWNvcmQ6IEl0ZXJhYmxlQ2hhbmdlUmVjb3JkPGFueT4sXG4gICAgcHVibGljIHZpZXc6IEVtYmVkZGVkVmlld1JlZjxBYnBGb3JDb250ZXh0PixcbiAgKSB7fVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYWJwRm9yXScsXG59KVxuZXhwb3J0IGNsYXNzIEZvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnYWJwRm9yT2YnKVxuICBpdGVtczogYW55W107XG5cbiAgQElucHV0KCdhYnBGb3JPcmRlckJ5JylcbiAgb3JkZXJCeTogc3RyaW5nO1xuXG4gIEBJbnB1dCgnYWJwRm9yT3JkZXJEaXInKVxuICBvcmRlckRpcjogJ0FTQycgfCAnREVTQyc7XG5cbiAgQElucHV0KCdhYnBGb3JGaWx0ZXJCeScpXG4gIGZpbHRlckJ5OiBzdHJpbmc7XG5cbiAgQElucHV0KCdhYnBGb3JGaWx0ZXJWYWwnKVxuICBmaWx0ZXJWYWw6IGFueTtcblxuICBASW5wdXQoJ2FicEZvclRyYWNrQnknKVxuICB0cmFja0J5O1xuXG4gIEBJbnB1dCgnYWJwRm9yQ29tcGFyZUJ5JylcbiAgY29tcGFyZUJ5OiBDb21wYXJlRm47XG5cbiAgQElucHV0KCdhYnBGb3JFbXB0eVJlZicpXG4gIGVtcHR5UmVmOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIHByaXZhdGUgZGlmZmVyOiBJdGVyYWJsZURpZmZlcjxhbnk+O1xuXG4gIHByaXZhdGUgaXNTaG93RW1wdHlSZWY6IGJvb2xlYW47XG5cbiAgZ2V0IGNvbXBhcmVGbigpOiBDb21wYXJlRm4ge1xuICAgIHJldHVybiB0aGlzLmNvbXBhcmVCeSB8fCBjb21wYXJlO1xuICB9XG5cbiAgZ2V0IHRyYWNrQnlGbigpOiBUcmFja0J5RnVuY3Rpb248YW55PiB7XG4gICAgcmV0dXJuIHRoaXMudHJhY2tCeSB8fCAoKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkgPT4gKGl0ZW0gYXMgYW55KS5pZCB8fCBpbmRleCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRlbXBSZWY6IFRlbXBsYXRlUmVmPEFicEZvckNvbnRleHQ+LFxuICAgIHByaXZhdGUgdmNSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgcHJpdmF0ZSBkaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMsXG4gICkge31cblxuICBwcml2YXRlIGl0ZXJhdGVPdmVyQXBwbGllZE9wZXJhdGlvbnMoY2hhbmdlczogSXRlcmFibGVDaGFuZ2VzPGFueT4pIHtcbiAgICBjb25zdCBydzogUmVjb3JkVmlld1tdID0gW107XG5cbiAgICBjaGFuZ2VzLmZvckVhY2hPcGVyYXRpb24oXG4gICAgICAocmVjb3JkOiBJdGVyYWJsZUNoYW5nZVJlY29yZDxhbnk+LCBwcmV2aW91c0luZGV4OiBudW1iZXIsIGN1cnJlbnRJbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGlmIChyZWNvcmQucHJldmlvdXNJbmRleCA9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgdmlldyA9IHRoaXMudmNSZWYuY3JlYXRlRW1iZWRkZWRWaWV3KFxuICAgICAgICAgICAgdGhpcy50ZW1wUmVmLFxuICAgICAgICAgICAgbmV3IEFicEZvckNvbnRleHQobnVsbCwgLTEsIC0xLCB0aGlzLml0ZW1zKSxcbiAgICAgICAgICAgIGN1cnJlbnRJbmRleCxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgcncucHVzaChuZXcgUmVjb3JkVmlldyhyZWNvcmQsIHZpZXcpKTtcbiAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50SW5kZXggPT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMudmNSZWYucmVtb3ZlKHByZXZpb3VzSW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHZpZXcgPSB0aGlzLnZjUmVmLmdldChwcmV2aW91c0luZGV4KTtcbiAgICAgICAgICB0aGlzLnZjUmVmLm1vdmUodmlldywgY3VycmVudEluZGV4KTtcblxuICAgICAgICAgIHJ3LnB1c2gobmV3IFJlY29yZFZpZXcocmVjb3JkLCB2aWV3IGFzIEVtYmVkZGVkVmlld1JlZjxBYnBGb3JDb250ZXh0PikpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICk7XG5cbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHJ3Lmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgcndbaV0udmlldy5jb250ZXh0LiRpbXBsaWNpdCA9IHJ3W2ldLnJlY29yZC5pdGVtO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXRlcmF0ZU92ZXJBdHRhY2hlZFZpZXdzKGNoYW5nZXM6IEl0ZXJhYmxlQ2hhbmdlczxhbnk+KSB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLnZjUmVmLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgY29uc3Qgdmlld1JlZiA9IHRoaXMudmNSZWYuZ2V0KGkpIGFzIEVtYmVkZGVkVmlld1JlZjxBYnBGb3JDb250ZXh0PjtcbiAgICAgIHZpZXdSZWYuY29udGV4dC5pbmRleCA9IGk7XG4gICAgICB2aWV3UmVmLmNvbnRleHQuY291bnQgPSBsO1xuICAgICAgdmlld1JlZi5jb250ZXh0Lmxpc3QgPSB0aGlzLml0ZW1zO1xuICAgIH1cblxuICAgIGNoYW5nZXMuZm9yRWFjaElkZW50aXR5Q2hhbmdlKChyZWNvcmQ6IEl0ZXJhYmxlQ2hhbmdlUmVjb3JkPGFueT4pID0+IHtcbiAgICAgIGNvbnN0IHZpZXdSZWYgPSB0aGlzLnZjUmVmLmdldChyZWNvcmQuY3VycmVudEluZGV4KSBhcyBFbWJlZGRlZFZpZXdSZWY8QWJwRm9yQ29udGV4dD47XG4gICAgICB2aWV3UmVmLmNvbnRleHQuJGltcGxpY2l0ID0gcmVjb3JkLml0ZW07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHByb2plY3RJdGVtcyhpdGVtczogYW55W10pOiB2b2lkIHtcbiAgICBpZiAoIWl0ZW1zLmxlbmd0aCAmJiB0aGlzLmVtcHR5UmVmKSB7XG4gICAgICB0aGlzLnZjUmVmLmNsZWFyKCk7XG4gICAgICB0aGlzLnZjUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLmVtcHR5UmVmKS5yb290Tm9kZXM7XG4gICAgICB0aGlzLmlzU2hvd0VtcHR5UmVmID0gdHJ1ZTtcbiAgICAgIHRoaXMuZGlmZmVyID0gbnVsbDtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmVtcHR5UmVmICYmIHRoaXMuaXNTaG93RW1wdHlSZWYpIHtcbiAgICAgIHRoaXMudmNSZWYuY2xlYXIoKTtcbiAgICAgIHRoaXMuaXNTaG93RW1wdHlSZWYgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGlmZmVyICYmIGl0ZW1zKSB7XG4gICAgICB0aGlzLmRpZmZlciA9IHRoaXMuZGlmZmVycy5maW5kKGl0ZW1zKS5jcmVhdGUodGhpcy50cmFja0J5Rm4pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRpZmZlcikge1xuICAgICAgY29uc3QgY2hhbmdlcyA9IHRoaXMuZGlmZmVyLmRpZmYoaXRlbXMpO1xuXG4gICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICB0aGlzLml0ZXJhdGVPdmVyQXBwbGllZE9wZXJhdGlvbnMoY2hhbmdlcyk7XG4gICAgICAgIHRoaXMuaXRlcmF0ZU92ZXJBdHRhY2hlZFZpZXdzKGNoYW5nZXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc29ydEl0ZW1zKGl0ZW1zOiBhbnlbXSkge1xuICAgIGlmICh0aGlzLm9yZGVyQnkpIHtcbiAgICAgIGl0ZW1zLnNvcnQoKGEsIGIpID0+XG4gICAgICAgIGFbdGhpcy5vcmRlckJ5XSA+IGJbdGhpcy5vcmRlckJ5XSA/IDEgOiBhW3RoaXMub3JkZXJCeV0gPCBiW3RoaXMub3JkZXJCeV0gPyAtMSA6IDAsXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBpdGVtcy5zb3J0KCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgbGV0IGl0ZW1zID0gY2xvbmUodGhpcy5pdGVtcykgYXMgYW55W107XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGl0ZW1zKSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY29tcGFyZUZuID0gdGhpcy5jb21wYXJlRm47XG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgdGhpcy5maWx0ZXJCeSAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgIHR5cGVvZiB0aGlzLmZpbHRlclZhbCAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgIHRoaXMuZmlsdGVyVmFsICE9PSAnJ1xuICAgICkge1xuICAgICAgaXRlbXMgPSBpdGVtcy5maWx0ZXIoaXRlbSA9PiBjb21wYXJlRm4oaXRlbVt0aGlzLmZpbHRlckJ5XSwgdGhpcy5maWx0ZXJWYWwpKTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRoaXMub3JkZXJEaXIpIHtcbiAgICAgIGNhc2UgJ0FTQyc6XG4gICAgICAgIHRoaXMuc29ydEl0ZW1zKGl0ZW1zKTtcbiAgICAgICAgdGhpcy5wcm9qZWN0SXRlbXMoaXRlbXMpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnREVTQyc6XG4gICAgICAgIHRoaXMuc29ydEl0ZW1zKGl0ZW1zKTtcbiAgICAgICAgaXRlbXMucmV2ZXJzZSgpO1xuICAgICAgICB0aGlzLnByb2plY3RJdGVtcyhpdGVtcyk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLnByb2plY3RJdGVtcyhpdGVtcyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,69 +1,69 @@
1
- import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, Input, Output, Self, } from '@angular/core';
2
- import { FormGroupDirective } from '@angular/forms';
3
- import { fromEvent } from 'rxjs';
4
- import { debounceTime, filter } from 'rxjs/operators';
5
- import { SubscriptionService } from '../services/subscription.service';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/forms";
8
- import * as i2 from "../services/subscription.service";
9
- export class FormSubmitDirective {
10
- constructor(formGroupDirective, host, cdRef, subscription) {
11
- this.formGroupDirective = formGroupDirective;
12
- this.host = host;
13
- this.cdRef = cdRef;
14
- this.subscription = subscription;
15
- this.debounce = 200;
16
- this.ngSubmit = new EventEmitter();
17
- this.executedNgSubmit = false;
18
- }
19
- ngOnInit() {
20
- this.subscription.addOne(this.formGroupDirective.ngSubmit, () => {
21
- this.markAsDirty();
22
- this.executedNgSubmit = true;
23
- });
24
- const keyup$ = fromEvent(this.host.nativeElement, 'keyup').pipe(debounceTime(this.debounce), filter(event => !(event.target instanceof HTMLTextAreaElement)), filter((event) => event && event.key === 'Enter'));
25
- this.subscription.addOne(keyup$, () => {
26
- if (!this.executedNgSubmit) {
27
- this.host.nativeElement.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));
28
- }
29
- this.executedNgSubmit = false;
30
- });
31
- }
32
- markAsDirty() {
33
- const { form } = this.formGroupDirective;
34
- setDirty(form.controls);
35
- form.markAsDirty();
36
- this.cdRef.detectChanges();
37
- }
38
- }
39
- FormSubmitDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FormSubmitDirective, deps: [{ token: i1.FormGroupDirective, self: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive });
40
- FormSubmitDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: { debounce: "debounce", notValidateOnSubmit: "notValidateOnSubmit" }, outputs: { ngSubmit: "ngSubmit" }, providers: [SubscriptionService], ngImport: i0 });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FormSubmitDirective, decorators: [{
42
- type: Directive,
43
- args: [{
44
- // eslint-disable-next-line @angular-eslint/directive-selector
45
- selector: 'form[ngSubmit][formGroup]',
46
- providers: [SubscriptionService],
47
- }]
48
- }], ctorParameters: function () { return [{ type: i1.FormGroupDirective, decorators: [{
49
- type: Self
50
- }] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i2.SubscriptionService }]; }, propDecorators: { debounce: [{
51
- type: Input
52
- }], notValidateOnSubmit: [{
53
- type: Input
54
- }], ngSubmit: [{
55
- type: Output
56
- }] } });
57
- function setDirty(controls) {
58
- if (Array.isArray(controls)) {
59
- controls.forEach(group => {
60
- setDirty(group.controls);
61
- });
62
- return;
63
- }
64
- Object.keys(controls).forEach(key => {
65
- controls[key].markAsDirty();
66
- controls[key].updateValueAndValidity();
67
- });
68
- }
1
+ import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, Input, Output, Self, } from '@angular/core';
2
+ import { FormGroupDirective } from '@angular/forms';
3
+ import { fromEvent } from 'rxjs';
4
+ import { debounceTime, filter } from 'rxjs/operators';
5
+ import { SubscriptionService } from '../services/subscription.service';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/forms";
8
+ import * as i2 from "../services/subscription.service";
9
+ export class FormSubmitDirective {
10
+ constructor(formGroupDirective, host, cdRef, subscription) {
11
+ this.formGroupDirective = formGroupDirective;
12
+ this.host = host;
13
+ this.cdRef = cdRef;
14
+ this.subscription = subscription;
15
+ this.debounce = 200;
16
+ this.ngSubmit = new EventEmitter();
17
+ this.executedNgSubmit = false;
18
+ }
19
+ ngOnInit() {
20
+ this.subscription.addOne(this.formGroupDirective.ngSubmit, () => {
21
+ this.markAsDirty();
22
+ this.executedNgSubmit = true;
23
+ });
24
+ const keyup$ = fromEvent(this.host.nativeElement, 'keyup').pipe(debounceTime(this.debounce), filter(event => !(event.target instanceof HTMLTextAreaElement)), filter((event) => event && event.key === 'Enter'));
25
+ this.subscription.addOne(keyup$, () => {
26
+ if (!this.executedNgSubmit) {
27
+ this.host.nativeElement.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));
28
+ }
29
+ this.executedNgSubmit = false;
30
+ });
31
+ }
32
+ markAsDirty() {
33
+ const { form } = this.formGroupDirective;
34
+ setDirty(form.controls);
35
+ form.markAsDirty();
36
+ this.cdRef.detectChanges();
37
+ }
38
+ }
39
+ FormSubmitDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FormSubmitDirective, deps: [{ token: i1.FormGroupDirective, self: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.SubscriptionService }], target: i0.ɵɵFactoryTarget.Directive });
40
+ FormSubmitDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.13", type: FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: { debounce: "debounce", notValidateOnSubmit: "notValidateOnSubmit" }, outputs: { ngSubmit: "ngSubmit" }, providers: [SubscriptionService], ngImport: i0 });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: FormSubmitDirective, decorators: [{
42
+ type: Directive,
43
+ args: [{
44
+ // eslint-disable-next-line @angular-eslint/directive-selector
45
+ selector: 'form[ngSubmit][formGroup]',
46
+ providers: [SubscriptionService],
47
+ }]
48
+ }], ctorParameters: function () { return [{ type: i1.FormGroupDirective, decorators: [{
49
+ type: Self
50
+ }] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i2.SubscriptionService }]; }, propDecorators: { debounce: [{
51
+ type: Input
52
+ }], notValidateOnSubmit: [{
53
+ type: Input
54
+ }], ngSubmit: [{
55
+ type: Output
56
+ }] } });
57
+ function setDirty(controls) {
58
+ if (Array.isArray(controls)) {
59
+ controls.forEach(group => {
60
+ setDirty(group.controls);
61
+ });
62
+ return;
63
+ }
64
+ Object.keys(controls).forEach(key => {
65
+ controls[key].markAsDirty();
66
+ controls[key].updateValueAndValidity();
67
+ });
68
+ }
69
69
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zdWJtaXQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL2RpcmVjdGl2ZXMvZm9ybS1zdWJtaXQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixJQUFJLEdBQ0wsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUEwQixrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQVN2RSxNQUFNLE9BQU8sbUJBQW1CO0lBVzlCLFlBQ2tCLGtCQUFzQyxFQUM5QyxJQUFpQyxFQUNqQyxLQUF3QixFQUN4QixZQUFpQztRQUh6Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQzlDLFNBQUksR0FBSixJQUFJLENBQTZCO1FBQ2pDLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQWIzQyxhQUFRLEdBQUcsR0FBRyxDQUFDO1FBS0ksYUFBUSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFakQscUJBQWdCLEdBQUcsS0FBSyxDQUFDO0lBT3RCLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDOUQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUE0QixFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDNUUsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFDM0IsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLFlBQVksbUJBQW1CLENBQUMsQ0FBQyxFQUMvRCxNQUFNLENBQUMsQ0FBQyxLQUFvQixFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUMsQ0FDakUsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUNuQyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUN6RCxDQUFDO2FBQ0g7WUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBRXpDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBMEMsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7O2lIQWhEVSxtQkFBbUI7cUdBQW5CLG1CQUFtQixxS0FGbkIsQ0FBQyxtQkFBbUIsQ0FBQzs0RkFFckIsbUJBQW1CO2tCQUwvQixTQUFTO21CQUFDO29CQUNULDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQ2pDOzswQkFhSSxJQUFJO3VJQVZQLFFBQVE7c0JBRFAsS0FBSztnQkFJTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBR2EsUUFBUTtzQkFBMUIsTUFBTTs7QUE0Q1QsU0FBUyxRQUFRLENBQUMsUUFBa0I7SUFDbEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQzNCLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDdkIsUUFBUSxDQUFDLEtBQUssQ0FBQyxRQUEwQyxDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPO0tBQ1I7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNsQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDNUIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybUdyb3VwRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZnJvbUV2ZW50IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9zdWJzY3JpcHRpb24uc2VydmljZSc7XG5cbnR5cGUgQ29udHJvbHMgPSB7IFtrZXk6IHN0cmluZ106IEZvcm1Db250cm9sIH0gfCBGb3JtR3JvdXBbXTtcblxuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnZm9ybVtuZ1N1Ym1pdF1bZm9ybUdyb3VwXScsXG4gIHByb3ZpZGVyczogW1N1YnNjcmlwdGlvblNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtU3VibWl0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KClcbiAgZGVib3VuY2UgPSAyMDA7XG5cbiAgQElucHV0KClcbiAgbm90VmFsaWRhdGVPblN1Ym1pdDogc3RyaW5nIHwgYm9vbGVhbjtcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgbmdTdWJtaXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZXhlY3V0ZWROZ1N1Ym1pdCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBTZWxmKCkgcHJpdmF0ZSBmb3JtR3JvdXBEaXJlY3RpdmU6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbiAgICBwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWY8SFRNTEZvcm1FbGVtZW50PixcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uU2VydmljZSxcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZE9uZSh0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZS5uZ1N1Ym1pdCwgKCkgPT4ge1xuICAgICAgdGhpcy5tYXJrQXNEaXJ0eSgpO1xuICAgICAgdGhpcy5leGVjdXRlZE5nU3VibWl0ID0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGtleXVwJCA9IGZyb21FdmVudCh0aGlzLmhvc3QubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCwgJ2tleXVwJykucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlKSxcbiAgICAgIGZpbHRlcihldmVudCA9PiAhKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpKSxcbiAgICAgIGZpbHRlcigoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IGV2ZW50ICYmIGV2ZW50LmtleSA9PT0gJ0VudGVyJyksXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZE9uZShrZXl1cCQsICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5leGVjdXRlZE5nU3VibWl0KSB7XG4gICAgICAgIHRoaXMuaG9zdC5uYXRpdmVFbGVtZW50LmRpc3BhdGNoRXZlbnQoXG4gICAgICAgICAgbmV3IEV2ZW50KCdzdWJtaXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUgfSksXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZXhlY3V0ZWROZ1N1Ym1pdCA9IGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgbWFya0FzRGlydHkoKSB7XG4gICAgY29uc3QgeyBmb3JtIH0gPSB0aGlzLmZvcm1Hcm91cERpcmVjdGl2ZTtcblxuICAgIHNldERpcnR5KGZvcm0uY29udHJvbHMgYXMgeyBba2V5OiBzdHJpbmddOiBGb3JtQ29udHJvbCB9KTtcbiAgICBmb3JtLm1hcmtBc0RpcnR5KCk7XG5cbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzZXREaXJ0eShjb250cm9sczogQ29udHJvbHMpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoY29udHJvbHMpKSB7XG4gICAgY29udHJvbHMuZm9yRWFjaChncm91cCA9PiB7XG4gICAgICBzZXREaXJ0eShncm91cC5jb250cm9scyBhcyB7IFtrZXk6IHN0cmluZ106IEZvcm1Db250cm9sIH0pO1xuICAgIH0pO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIE9iamVjdC5rZXlzKGNvbnRyb2xzKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgY29udHJvbHNba2V5XS5tYXJrQXNEaXJ0eSgpO1xuICAgIGNvbnRyb2xzW2tleV0udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9KTtcbn1cbiJdfQ==