@abp/ng.theme.shared 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 (314) hide show
  1. package/{esm2020 → esm2022}/abp-ng.theme.shared.mjs +4 -4
  2. package/{esm2020 → esm2022}/extensions/abp-ng.theme.shared-extensions.mjs +4 -4
  3. package/esm2022/extensions/lib/adapters/date-time.adapter.mjs +45 -0
  4. package/esm2022/extensions/lib/adapters/date.adapter.mjs +42 -0
  5. package/esm2022/extensions/lib/adapters/time.adapter.mjs +37 -0
  6. package/esm2022/extensions/lib/components/abstract-actions/abstract-actions.component.mjs +26 -0
  7. package/esm2022/extensions/lib/components/date-time-picker/date-time-picker.component.mjs +110 -0
  8. package/esm2022/extensions/lib/components/extensible-form/extensible-form-prop.component.mjs +199 -0
  9. package/esm2022/extensions/lib/components/extensible-form/extensible-form.component.mjs +74 -0
  10. package/esm2022/extensions/lib/components/extensible-table/extensible-table.component.mjs +136 -0
  11. package/esm2022/extensions/lib/components/grid-actions/grid-actions.component.mjs +40 -0
  12. package/esm2022/extensions/lib/components/page-toolbar/page-toolbar.component.mjs +39 -0
  13. package/{esm2020 → esm2022}/extensions/lib/constants/extra-properties.mjs +1 -1
  14. package/esm2022/extensions/lib/directives/disabled.directive.mjs +30 -0
  15. package/esm2022/extensions/lib/directives/prop-data.directive.mjs +42 -0
  16. package/{esm2020 → esm2022}/extensions/lib/enums/components.mjs +1 -1
  17. package/{esm2020 → esm2022}/extensions/lib/enums/props.enum.mjs +1 -1
  18. package/{esm2020 → esm2022}/extensions/lib/models/actions.mjs +46 -46
  19. package/{esm2020 → esm2022}/extensions/lib/models/entity-actions.mjs +28 -28
  20. package/{esm2020 → esm2022}/extensions/lib/models/entity-props.mjs +42 -42
  21. package/esm2022/extensions/lib/models/form-props.mjs +76 -0
  22. package/{esm2020 → esm2022}/extensions/lib/models/internal/object-extensions.mjs +2 -2
  23. package/{esm2020 → esm2022}/extensions/lib/models/object-extensions.mjs +2 -2
  24. package/esm2022/extensions/lib/models/props.mjs +54 -0
  25. package/{esm2020 → esm2022}/extensions/lib/models/toolbar-actions.mjs +43 -43
  26. package/esm2022/extensions/lib/pipes/create-injector.pipe.mjs +37 -0
  27. package/esm2022/extensions/lib/services/extensions.service.mjs +25 -0
  28. package/{esm2020 → esm2022}/extensions/lib/tokens/extensible-form-view-provider.token.mjs +2 -2
  29. package/{esm2020 → esm2022}/extensions/lib/tokens/extensions.token.mjs +11 -11
  30. package/esm2022/extensions/lib/ui-extensions.module.mjs +97 -0
  31. package/{esm2020 → esm2022}/extensions/lib/utils/actions.util.mjs +8 -8
  32. package/{esm2020 → esm2022}/extensions/lib/utils/enum.util.mjs +41 -41
  33. package/{esm2020 → esm2022}/extensions/lib/utils/factory.util.mjs +3 -3
  34. package/esm2022/extensions/lib/utils/form-props.util.mjs +51 -0
  35. package/{esm2020 → esm2022}/extensions/lib/utils/localization.util.mjs +12 -12
  36. package/{esm2020 → esm2022}/extensions/lib/utils/props.util.mjs +13 -13
  37. package/esm2022/extensions/lib/utils/state.util.mjs +126 -0
  38. package/{esm2020 → esm2022}/extensions/lib/utils/typeahead.util.mjs +51 -51
  39. package/{esm2020 → esm2022}/extensions/lib/utils/validation.util.mjs +10 -10
  40. package/{esm2020 → esm2022}/extensions/public-api.mjs +30 -30
  41. package/{esm2020 → esm2022}/lib/animations/bounce.animations.mjs +16 -16
  42. package/{esm2020 → esm2022}/lib/animations/collapse.animations.mjs +49 -49
  43. package/{esm2020 → esm2022}/lib/animations/fade.animations.mjs +37 -37
  44. package/{esm2020 → esm2022}/lib/animations/index.mjs +6 -6
  45. package/{esm2020 → esm2022}/lib/animations/modal.animations.mjs +10 -10
  46. package/{esm2020 → esm2022}/lib/animations/slide.animations.mjs +7 -7
  47. package/{esm2020 → esm2022}/lib/animations/toast.animations.mjs +12 -12
  48. package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +44 -0
  49. package/esm2022/lib/components/breadcrumb-items/breadcrumb-items.component.mjs +20 -0
  50. package/esm2022/lib/components/button/button.component.mjs +103 -0
  51. package/{esm2020 → esm2022}/lib/components/card/card-body.component.mjs +27 -26
  52. package/esm2022/lib/components/card/card-footer.component.mjs +31 -0
  53. package/esm2022/lib/components/card/card-header.component.mjs +31 -0
  54. package/esm2022/lib/components/card/card-header.directive.mjs +20 -0
  55. package/esm2022/lib/components/card/card-img-top.directive.mjs +20 -0
  56. package/esm2022/lib/components/card/card-subtitle.directive.mjs +20 -0
  57. package/esm2022/lib/components/card/card-title.directive.mjs +20 -0
  58. package/esm2022/lib/components/card/card.component.mjs +24 -0
  59. package/esm2022/lib/components/card/card.module.mjs +50 -0
  60. package/{esm2020 → esm2022}/lib/components/card/index.mjs +9 -9
  61. package/esm2022/lib/components/checkbox/checkbox.component.mjs +89 -0
  62. package/esm2022/lib/components/confirmation/confirmation.component.mjs +46 -0
  63. package/esm2022/lib/components/form-input/form-input.component.mjs +95 -0
  64. package/esm2022/lib/components/http-error-wrapper/http-error-wrapper.component.mjs +60 -0
  65. package/{esm2020 → esm2022}/lib/components/index.mjs +16 -16
  66. package/esm2022/lib/components/loader-bar/loader-bar.component.mjs +122 -0
  67. package/esm2022/lib/components/loading/loading.component.mjs +20 -0
  68. package/esm2022/lib/components/modal/modal-close.directive.mjs +28 -0
  69. package/esm2022/lib/components/modal/modal-ref.service.mjs +27 -0
  70. package/esm2022/lib/components/modal/modal.component.mjs +190 -0
  71. package/esm2022/lib/components/password/password.component.mjs +39 -0
  72. package/esm2022/lib/components/toast/toast.component.mjs +56 -0
  73. package/esm2022/lib/components/toast-container/toast-container.component.mjs +59 -0
  74. package/{esm2020 → esm2022}/lib/constants/styles.mjs +1 -1
  75. package/{esm2020 → esm2022}/lib/constants/validation.mjs +19 -19
  76. package/esm2022/lib/directives/ellipsis.directive.mjs +65 -0
  77. package/{esm2020 → esm2022}/lib/directives/index.mjs +5 -5
  78. package/esm2022/lib/directives/loading.directive.mjs +90 -0
  79. package/esm2022/lib/directives/ngx-datatable-default.directive.mjs +76 -0
  80. package/esm2022/lib/directives/ngx-datatable-list.directive.mjs +95 -0
  81. package/esm2022/lib/directives/visible.directive.mjs +63 -0
  82. package/{esm2020 → esm2022}/lib/enums/form.mjs +5 -5
  83. package/{esm2020 → esm2022}/lib/enums/index.mjs +2 -2
  84. package/{esm2020 → esm2022}/lib/enums/route-names.mjs +1 -1
  85. package/esm2022/lib/handlers/document-dir.handler.mjs +32 -0
  86. package/esm2022/lib/handlers/error.handler.mjs +294 -0
  87. package/{esm2020 → esm2022}/lib/handlers/index.mjs +2 -2
  88. package/{esm2020 → esm2022}/lib/models/common.mjs +1 -1
  89. package/{esm2020 → esm2022}/lib/models/confirmation.mjs +9 -9
  90. package/{esm2020 → esm2022}/lib/models/index.mjs +7 -7
  91. package/{esm2020 → esm2022}/lib/models/nav-item.mjs +5 -5
  92. package/{esm2020 → esm2022}/lib/models/statistics.mjs +1 -1
  93. package/{esm2020 → esm2022}/lib/models/toaster.mjs +1 -1
  94. package/{esm2020 → esm2022}/lib/models/user-menu.mjs +3 -3
  95. package/{esm2020 → esm2022}/lib/models/validation.mjs +1 -1
  96. package/{esm2020 → esm2022}/lib/providers/index.mjs +2 -2
  97. package/{esm2020 → esm2022}/lib/providers/ng-bootstrap-config.provider.mjs +16 -16
  98. package/{esm2020 → esm2022}/lib/providers/route.provider.mjs +17 -17
  99. package/{esm2020 → esm2022}/lib/services/abstract-menu.service.mjs +49 -49
  100. package/esm2022/lib/services/confirmation.service.mjs +69 -0
  101. package/{esm2020 → esm2022}/lib/services/index.mjs +5 -5
  102. package/esm2022/lib/services/nav-items.service.mjs +18 -0
  103. package/esm2022/lib/services/page-alert.service.mjs +29 -0
  104. package/esm2022/lib/services/toaster.service.mjs +104 -0
  105. package/esm2022/lib/services/user-menu.service.mjs +18 -0
  106. package/esm2022/lib/theme-shared.module.mjs +202 -0
  107. package/{esm2020 → esm2022}/lib/tokens/append-content.token.mjs +10 -10
  108. package/{esm2020 → esm2022}/lib/tokens/confirmation-icons.token.mjs +10 -10
  109. package/{esm2020 → esm2022}/lib/tokens/http-error.token.mjs +13 -13
  110. package/{esm2020 → esm2022}/lib/tokens/index.mjs +4 -4
  111. package/{esm2020 → esm2022}/lib/tokens/ngx-datatable-messages.token.mjs +7 -7
  112. package/{esm2020 → esm2022}/lib/tokens/suppress-unsaved-changes-warning.token.mjs +2 -2
  113. package/esm2022/lib/utils/date-parser-formatter.mjs +59 -0
  114. package/{esm2020 → esm2022}/lib/utils/index.mjs +2 -2
  115. package/{esm2020 → esm2022}/lib/utils/validation-utils.mjs +61 -61
  116. package/{esm2020 → esm2022}/public-api.mjs +15 -15
  117. package/{esm2020 → esm2022}/testing/abp-ng.theme.shared-testing.mjs +4 -4
  118. package/{esm2020 → esm2022}/testing/lib/models/config.mjs +1 -1
  119. package/{esm2020 → esm2022}/testing/lib/models/index.mjs +1 -1
  120. package/esm2022/testing/lib/theme-shared-testing.module.mjs +47 -0
  121. package/{esm2020 → esm2022}/testing/public-api.mjs +3 -3
  122. package/extensions/index.d.ts +5 -5
  123. package/extensions/lib/adapters/date-time.adapter.d.ts +11 -11
  124. package/extensions/lib/adapters/date.adapter.d.ts +9 -9
  125. package/extensions/lib/adapters/time.adapter.d.ts +8 -8
  126. package/extensions/lib/components/abstract-actions/abstract-actions.component.d.ts +12 -12
  127. package/extensions/lib/components/date-time-picker/date-time-picker.component.d.ts +16 -16
  128. package/extensions/lib/components/extensible-form/extensible-form-prop.component.d.ts +43 -43
  129. package/extensions/lib/components/extensible-form/extensible-form.component.d.ts +25 -25
  130. package/extensions/lib/components/extensible-table/extensible-table.component.d.ts +38 -38
  131. package/extensions/lib/components/grid-actions/grid-actions.component.d.ts +13 -13
  132. package/extensions/lib/components/page-toolbar/page-toolbar.component.d.ts +20 -20
  133. package/extensions/lib/constants/extra-properties.d.ts +1 -1
  134. package/extensions/lib/directives/disabled.directive.d.ts +11 -11
  135. package/extensions/lib/directives/prop-data.directive.d.ts +19 -19
  136. package/extensions/lib/enums/components.d.ts +3 -3
  137. package/extensions/lib/enums/props.enum.d.ts +16 -16
  138. package/extensions/lib/models/actions.d.ts +36 -36
  139. package/extensions/lib/models/entity-actions.d.ts +22 -22
  140. package/extensions/lib/models/entity-props.d.ts +29 -29
  141. package/extensions/lib/models/form-props.d.ts +59 -58
  142. package/extensions/lib/models/internal/object-extensions.d.ts +86 -85
  143. package/extensions/lib/models/object-extensions.d.ts +2 -2
  144. package/extensions/lib/models/props.d.ts +45 -44
  145. package/extensions/lib/models/toolbar-actions.d.ts +38 -38
  146. package/extensions/lib/pipes/create-injector.pipe.d.ts +8 -8
  147. package/extensions/lib/services/extensions.service.d.ts +14 -14
  148. package/extensions/lib/tokens/extensible-form-view-provider.token.d.ts +5 -5
  149. package/extensions/lib/tokens/extensions.token.d.ts +20 -24
  150. package/extensions/lib/ui-extensions.module.d.ts +24 -24
  151. package/extensions/lib/utils/actions.util.d.ts +7 -7
  152. package/extensions/lib/utils/enum.util.d.ts +7 -7
  153. package/extensions/lib/utils/factory.util.d.ts +1 -1
  154. package/extensions/lib/utils/form-props.util.d.ts +3 -3
  155. package/extensions/lib/utils/localization.util.d.ts +3 -3
  156. package/extensions/lib/utils/props.util.d.ts +9 -9
  157. package/extensions/lib/utils/state.util.d.ts +5 -5
  158. package/extensions/lib/utils/typeahead.util.d.ts +11 -11
  159. package/extensions/lib/utils/validation.util.d.ts +3 -3
  160. package/extensions/public-api.d.ts +30 -30
  161. package/{fesm2020 → fesm2022}/abp-ng.theme.shared-extensions.mjs +1335 -1330
  162. package/fesm2022/abp-ng.theme.shared-extensions.mjs.map +1 -0
  163. package/{fesm2020 → fesm2022}/abp-ng.theme.shared-testing.mjs +40 -40
  164. package/{fesm2015 → fesm2022}/abp-ng.theme.shared-testing.mjs.map +1 -1
  165. package/{fesm2020 → fesm2022}/abp-ng.theme.shared.mjs +2292 -2293
  166. package/fesm2022/abp-ng.theme.shared.mjs.map +1 -0
  167. package/index.d.ts +5 -5
  168. package/lib/animations/bounce.animations.d.ts +1 -1
  169. package/lib/animations/collapse.animations.d.ts +9 -9
  170. package/lib/animations/fade.animations.d.ts +10 -10
  171. package/lib/animations/index.d.ts +6 -6
  172. package/lib/animations/modal.animations.d.ts +2 -2
  173. package/lib/animations/slide.animations.d.ts +1 -1
  174. package/lib/animations/toast.animations.d.ts +1 -1
  175. package/lib/components/breadcrumb/breadcrumb.component.d.ts +16 -16
  176. package/lib/components/breadcrumb-items/breadcrumb-items.component.d.ts +7 -7
  177. package/lib/components/button/button.component.d.ts +26 -26
  178. package/lib/components/card/card-body.component.d.ts +8 -8
  179. package/lib/components/card/card-footer.component.d.ts +8 -8
  180. package/lib/components/card/card-header.component.d.ts +8 -8
  181. package/lib/components/card/card-header.directive.d.ts +6 -6
  182. package/lib/components/card/card-img-top.directive.d.ts +6 -6
  183. package/lib/components/card/card-subtitle.directive.d.ts +6 -6
  184. package/lib/components/card/card-title.directive.d.ts +6 -6
  185. package/lib/components/card/card.component.d.ts +7 -7
  186. package/lib/components/card/card.module.d.ts +15 -15
  187. package/lib/components/card/index.d.ts +9 -9
  188. package/lib/components/checkbox/checkbox.component.d.ts +18 -18
  189. package/lib/components/confirmation/confirmation.component.d.ts +19 -19
  190. package/lib/components/form-input/form-input.component.d.ts +19 -20
  191. package/lib/components/http-error-wrapper/http-error-wrapper.component.d.ts +27 -27
  192. package/lib/components/index.d.ts +16 -16
  193. package/lib/components/loader-bar/loader-bar.component.d.ts +33 -33
  194. package/lib/components/loading/loading.component.d.ts +5 -5
  195. package/lib/components/modal/modal-close.directive.d.ts +9 -9
  196. package/lib/components/modal/modal-ref.service.d.ts +13 -13
  197. package/lib/components/modal/modal.component.d.ts +50 -50
  198. package/lib/components/password/password.component.d.ts +12 -12
  199. package/lib/components/toast/toast.component.d.ts +14 -14
  200. package/lib/components/toast-container/toast-container.component.d.ts +22 -22
  201. package/lib/constants/styles.d.ts +2 -2
  202. package/lib/constants/validation.d.ts +19 -19
  203. package/lib/directives/ellipsis.directive.d.ts +21 -21
  204. package/lib/directives/index.d.ts +5 -5
  205. package/lib/directives/loading.directive.d.ts +25 -25
  206. package/lib/directives/ngx-datatable-default.directive.d.ts +30 -30
  207. package/lib/directives/ngx-datatable-list.directive.d.ts +24 -24
  208. package/lib/directives/visible.directive.d.ts +18 -18
  209. package/lib/enums/form.d.ts +4 -4
  210. package/lib/enums/index.d.ts +2 -2
  211. package/lib/enums/route-names.d.ts +3 -3
  212. package/lib/handlers/document-dir.handler.d.ts +13 -13
  213. package/lib/handlers/error.handler.d.ts +83 -83
  214. package/lib/handlers/index.d.ts +2 -2
  215. package/lib/models/common.d.ts +21 -21
  216. package/lib/models/confirmation.d.ts +27 -27
  217. package/lib/models/index.d.ts +7 -7
  218. package/lib/models/nav-item.d.ts +13 -13
  219. package/lib/models/statistics.d.ts +12 -12
  220. package/lib/models/toaster.d.ts +30 -30
  221. package/lib/models/user-menu.d.ts +8 -8
  222. package/lib/models/validation.d.ts +1 -1
  223. package/lib/providers/index.d.ts +2 -2
  224. package/lib/providers/ng-bootstrap-config.provider.d.ts +8 -8
  225. package/lib/providers/route.provider.d.ts +8 -8
  226. package/lib/services/abstract-menu.service.d.ts +13 -13
  227. package/lib/services/confirmation.service.d.ts +21 -21
  228. package/lib/services/index.d.ts +5 -5
  229. package/lib/services/nav-items.service.d.ts +8 -8
  230. package/lib/services/page-alert.service.d.ts +18 -18
  231. package/lib/services/toaster.service.d.ts +60 -60
  232. package/lib/services/user-menu.service.d.ts +8 -8
  233. package/lib/theme-shared.module.d.ts +38 -38
  234. package/lib/tokens/append-content.token.d.ts +2 -2
  235. package/lib/tokens/confirmation-icons.token.d.ts +11 -11
  236. package/lib/tokens/http-error.token.d.ts +5 -5
  237. package/lib/tokens/index.d.ts +4 -4
  238. package/lib/tokens/ngx-datatable-messages.token.d.ts +12 -12
  239. package/lib/tokens/suppress-unsaved-changes-warning.token.d.ts +2 -2
  240. package/lib/utils/date-parser-formatter.d.ts +12 -12
  241. package/lib/utils/index.d.ts +2 -2
  242. package/lib/utils/validation-utils.d.ts +5 -5
  243. package/package.json +14 -24
  244. package/public-api.d.ts +12 -12
  245. package/testing/index.d.ts +5 -5
  246. package/testing/lib/models/config.d.ts +4 -4
  247. package/testing/lib/models/index.d.ts +1 -1
  248. package/testing/lib/theme-shared-testing.module.d.ts +14 -14
  249. package/testing/public-api.d.ts +3 -3
  250. package/esm2020/extensions/lib/adapters/date-time.adapter.mjs +0 -44
  251. package/esm2020/extensions/lib/adapters/date.adapter.mjs +0 -41
  252. package/esm2020/extensions/lib/adapters/time.adapter.mjs +0 -36
  253. package/esm2020/extensions/lib/components/abstract-actions/abstract-actions.component.mjs +0 -25
  254. package/esm2020/extensions/lib/components/date-time-picker/date-time-picker.component.mjs +0 -109
  255. package/esm2020/extensions/lib/components/extensible-form/extensible-form-prop.component.mjs +0 -198
  256. package/esm2020/extensions/lib/components/extensible-form/extensible-form.component.mjs +0 -73
  257. package/esm2020/extensions/lib/components/extensible-table/extensible-table.component.mjs +0 -135
  258. package/esm2020/extensions/lib/components/grid-actions/grid-actions.component.mjs +0 -39
  259. package/esm2020/extensions/lib/components/page-toolbar/page-toolbar.component.mjs +0 -38
  260. package/esm2020/extensions/lib/directives/disabled.directive.mjs +0 -29
  261. package/esm2020/extensions/lib/directives/prop-data.directive.mjs +0 -41
  262. package/esm2020/extensions/lib/models/form-props.mjs +0 -75
  263. package/esm2020/extensions/lib/models/props.mjs +0 -53
  264. package/esm2020/extensions/lib/pipes/create-injector.pipe.mjs +0 -36
  265. package/esm2020/extensions/lib/services/extensions.service.mjs +0 -24
  266. package/esm2020/extensions/lib/ui-extensions.module.mjs +0 -95
  267. package/esm2020/extensions/lib/utils/form-props.util.mjs +0 -51
  268. package/esm2020/extensions/lib/utils/state.util.mjs +0 -123
  269. package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +0 -43
  270. package/esm2020/lib/components/breadcrumb-items/breadcrumb-items.component.mjs +0 -19
  271. package/esm2020/lib/components/button/button.component.mjs +0 -102
  272. package/esm2020/lib/components/card/card-footer.component.mjs +0 -30
  273. package/esm2020/lib/components/card/card-header.component.mjs +0 -30
  274. package/esm2020/lib/components/card/card-header.directive.mjs +0 -19
  275. package/esm2020/lib/components/card/card-img-top.directive.mjs +0 -19
  276. package/esm2020/lib/components/card/card-subtitle.directive.mjs +0 -19
  277. package/esm2020/lib/components/card/card-title.directive.mjs +0 -19
  278. package/esm2020/lib/components/card/card.component.mjs +0 -23
  279. package/esm2020/lib/components/card/card.module.mjs +0 -49
  280. package/esm2020/lib/components/checkbox/checkbox.component.mjs +0 -88
  281. package/esm2020/lib/components/confirmation/confirmation.component.mjs +0 -45
  282. package/esm2020/lib/components/form-input/form-input.component.mjs +0 -97
  283. package/esm2020/lib/components/http-error-wrapper/http-error-wrapper.component.mjs +0 -59
  284. package/esm2020/lib/components/loader-bar/loader-bar.component.mjs +0 -121
  285. package/esm2020/lib/components/loading/loading.component.mjs +0 -19
  286. package/esm2020/lib/components/modal/modal-close.directive.mjs +0 -27
  287. package/esm2020/lib/components/modal/modal-ref.service.mjs +0 -26
  288. package/esm2020/lib/components/modal/modal.component.mjs +0 -189
  289. package/esm2020/lib/components/password/password.component.mjs +0 -38
  290. package/esm2020/lib/components/toast/toast.component.mjs +0 -55
  291. package/esm2020/lib/components/toast-container/toast-container.component.mjs +0 -58
  292. package/esm2020/lib/directives/ellipsis.directive.mjs +0 -63
  293. package/esm2020/lib/directives/loading.directive.mjs +0 -89
  294. package/esm2020/lib/directives/ngx-datatable-default.directive.mjs +0 -75
  295. package/esm2020/lib/directives/ngx-datatable-list.directive.mjs +0 -94
  296. package/esm2020/lib/directives/visible.directive.mjs +0 -62
  297. package/esm2020/lib/handlers/document-dir.handler.mjs +0 -31
  298. package/esm2020/lib/handlers/error.handler.mjs +0 -291
  299. package/esm2020/lib/services/confirmation.service.mjs +0 -68
  300. package/esm2020/lib/services/nav-items.service.mjs +0 -17
  301. package/esm2020/lib/services/page-alert.service.mjs +0 -28
  302. package/esm2020/lib/services/toaster.service.mjs +0 -103
  303. package/esm2020/lib/services/user-menu.service.mjs +0 -17
  304. package/esm2020/lib/theme-shared.module.mjs +0 -200
  305. package/esm2020/lib/utils/date-parser-formatter.mjs +0 -58
  306. package/esm2020/testing/lib/theme-shared-testing.module.mjs +0 -46
  307. package/fesm2015/abp-ng.theme.shared-extensions.mjs +0 -1460
  308. package/fesm2015/abp-ng.theme.shared-extensions.mjs.map +0 -1
  309. package/fesm2015/abp-ng.theme.shared-testing.mjs +0 -54
  310. package/fesm2015/abp-ng.theme.shared.mjs +0 -2770
  311. package/fesm2015/abp-ng.theme.shared.mjs.map +0 -1
  312. package/fesm2020/abp-ng.theme.shared-extensions.mjs.map +0 -1
  313. package/fesm2020/abp-ng.theme.shared-testing.mjs.map +0 -1
  314. package/fesm2020/abp-ng.theme.shared.mjs.map +0 -1
@@ -0,0 +1,89 @@
1
+ import { AbstractNgModelComponent } from '@abp/ng.core';
2
+ import { Component, EventEmitter, forwardRef, Injector, Input, Output } from '@angular/core';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "@abp/ng.core";
8
+ class FormCheckboxComponent extends AbstractNgModelComponent {
9
+ constructor(injector) {
10
+ super(injector);
11
+ this.labelClass = 'form-check-label';
12
+ this.checkboxClass = 'form-check-input';
13
+ this.checkboxReadonly = false;
14
+ this.checkboxBlur = new EventEmitter();
15
+ this.checkboxFocus = new EventEmitter();
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FormCheckboxComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: FormCheckboxComponent, selector: "abp-checkbox", inputs: { label: "label", labelClass: "labelClass", checkboxId: "checkboxId", checkboxStyle: "checkboxStyle", checkboxClass: "checkboxClass", checkboxReadonly: "checkboxReadonly" }, outputs: { checkboxBlur: "checkboxBlur", checkboxFocus: "checkboxFocus" }, providers: [
19
+ {
20
+ provide: NG_VALUE_ACCESSOR,
21
+ useExisting: forwardRef(() => FormCheckboxComponent),
22
+ multi: true,
23
+ },
24
+ ], usesInheritance: true, ngImport: i0, template: `
25
+ <div class="mb-3">
26
+ <input
27
+ type="checkbox"
28
+ [(ngModel)]="value"
29
+ [id]="checkboxId"
30
+ [readonly]="checkboxReadonly"
31
+ [ngClass]="checkboxClass"
32
+ [ngStyle]="checkboxStyle"
33
+ (blur)="checkboxBlur.next()"
34
+ (focus)="checkboxFocus.next()"
35
+ />
36
+ <label *ngIf="label" [ngClass]="labelClass" [for]="checkboxId">
37
+ {{ label | abpLocalization }}
38
+ </label>
39
+ </div>
40
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] }); }
41
+ }
42
+ export { FormCheckboxComponent };
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FormCheckboxComponent, decorators: [{
44
+ type: Component,
45
+ args: [{
46
+ selector: 'abp-checkbox',
47
+ template: `
48
+ <div class="mb-3">
49
+ <input
50
+ type="checkbox"
51
+ [(ngModel)]="value"
52
+ [id]="checkboxId"
53
+ [readonly]="checkboxReadonly"
54
+ [ngClass]="checkboxClass"
55
+ [ngStyle]="checkboxStyle"
56
+ (blur)="checkboxBlur.next()"
57
+ (focus)="checkboxFocus.next()"
58
+ />
59
+ <label *ngIf="label" [ngClass]="labelClass" [for]="checkboxId">
60
+ {{ label | abpLocalization }}
61
+ </label>
62
+ </div>
63
+ `,
64
+ providers: [
65
+ {
66
+ provide: NG_VALUE_ACCESSOR,
67
+ useExisting: forwardRef(() => FormCheckboxComponent),
68
+ multi: true,
69
+ },
70
+ ],
71
+ }]
72
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { label: [{
73
+ type: Input
74
+ }], labelClass: [{
75
+ type: Input
76
+ }], checkboxId: [{
77
+ type: Input
78
+ }], checkboxStyle: [{
79
+ type: Input
80
+ }], checkboxClass: [{
81
+ type: Input
82
+ }], checkboxReadonly: [{
83
+ type: Input
84
+ }], checkboxBlur: [{
85
+ type: Output
86
+ }], checkboxFocus: [{
87
+ type: Output
88
+ }] } });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFbkQsTUEyQmEscUJBQXNCLFNBQVEsd0JBQXdCO0lBZWpFLFlBQVksUUFBa0I7UUFDNUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBZFQsZUFBVSxHQUFHLGtCQUFrQixDQUFDO1FBUWhDLGtCQUFhLEdBQUcsa0JBQWtCLENBQUM7UUFDbkMscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN4QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFJbkQsQ0FBQzs4R0FqQlUscUJBQXFCO2tHQUFyQixxQkFBcUIsd1NBUnJCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDcEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLGlEQXZCUzs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVDs7U0FTVSxxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkEzQmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7NEJBQ3BELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGOytGQUVVLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFNRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdE5nTW9kZWxDb21wb25lbnQgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5qZWN0b3IsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1jaGVja2JveCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICAgICAgW2lkXT1cImNoZWNrYm94SWRcIlxyXG4gICAgICAgIFtyZWFkb25seV09XCJjaGVja2JveFJlYWRvbmx5XCJcclxuICAgICAgICBbbmdDbGFzc109XCJjaGVja2JveENsYXNzXCJcclxuICAgICAgICBbbmdTdHlsZV09XCJjaGVja2JveFN0eWxlXCJcclxuICAgICAgICAoYmx1cik9XCJjaGVja2JveEJsdXIubmV4dCgpXCJcclxuICAgICAgICAoZm9jdXMpPVwiY2hlY2tib3hGb2N1cy5uZXh0KClcIlxyXG4gICAgICAvPlxyXG4gICAgICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIFtuZ0NsYXNzXT1cImxhYmVsQ2xhc3NcIiBbZm9yXT1cImNoZWNrYm94SWRcIj5cclxuICAgICAgICB7eyBsYWJlbCB8IGFicExvY2FsaXphdGlvbiB9fVxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvcm1DaGVja2JveENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUNoZWNrYm94Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3ROZ01vZGVsQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcclxuICBASW5wdXQoKSBsYWJlbENsYXNzID0gJ2Zvcm0tY2hlY2stbGFiZWwnO1xyXG4gIEBJbnB1dCgpIGNoZWNrYm94SWQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2hlY2tib3hTdHlsZTpcclxuICAgIHwge1xyXG4gICAgICAgIFtrbGFzczogc3RyaW5nXTogYW55O1xyXG4gICAgICB9XHJcbiAgICB8IG51bGxcclxuICAgIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGNoZWNrYm94Q2xhc3MgPSAnZm9ybS1jaGVjay1pbnB1dCc7XHJcbiAgQElucHV0KCkgY2hlY2tib3hSZWFkb25seSA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBjaGVja2JveEJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIGNoZWNrYm94Rm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,46 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { Confirmation } from '../../models/confirmation';
3
+ import { CONFIRMATION_ICONS } from '../../tokens/confirmation-icons.token';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@abp/ng.core";
7
+ class ConfirmationComponent {
8
+ constructor(icons) {
9
+ this.icons = icons;
10
+ this.confirm = Confirmation.Status.confirm;
11
+ this.reject = Confirmation.Status.reject;
12
+ this.dismiss = Confirmation.Status.dismiss;
13
+ }
14
+ close(status) {
15
+ this.clear(status);
16
+ }
17
+ getIconClass({ severity, options }) {
18
+ if (options && options.icon) {
19
+ return options.icon;
20
+ }
21
+ if (!this.icons) {
22
+ return '';
23
+ }
24
+ if (severity) {
25
+ return this.icons[severity];
26
+ }
27
+ return this.icons.default;
28
+ }
29
+ isCustomIconExists({ options }) {
30
+ return !!(options && (options.iconTemplate || options.icon));
31
+ }
32
+ isIconTemplateExits({ options }) {
33
+ return !!(options && options.iconTemplate);
34
+ }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ConfirmationComponent, deps: [{ token: CONFIRMATION_ICONS }], target: i0.ɵɵFactoryTarget.Component }); }
36
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: ConfirmationComponent, selector: "abp-confirmation", ngImport: i0, template: "<div class=\"confirmation\" *ngIf=\"confirmation$ | async as data\">\r\n <div\r\n class=\"confirmation-backdrop\"\r\n (click)=\"data.options?.dismissible ? close(dismiss) : null\"\r\n ></div>\r\n <div class=\"confirmation-dialog\">\r\n <div class=\"icon-container\" [ngClass]=\"data.severity\" *ngIf=\"data.severity || isCustomIconExists(data)\">\r\n <div [outerHTML]=\"data.options.iconTemplate\" *ngIf=\"isIconTemplateExits(data); else iconHolder\" ></div>\r\n <ng-template #iconHolder>\r\n <i class=\"icon\" [ngClass]=\"getIconClass(data)\"></i>\r\n </ng-template>\r\n </div>\r\n <div class=\"content\">\r\n <h1\r\n class=\"title\"\r\n *ngIf=\"data.title\"\r\n [innerHTML]=\"data.title | abpLocalization: data.options?.titleLocalizationParams\"\r\n ></h1>\r\n <p\r\n class=\"message\"\r\n *ngIf=\"data.message\"\r\n [innerHTML]=\"data.message | abpLocalization: data.options?.messageLocalizationParams\"\r\n ></p>\r\n </div>\r\n <div class=\"footer\">\r\n <button\r\n id=\"cancel\"\r\n class=\"confirmation-button confirmation-button--reject\"\r\n [innerHTML]=\"data.options?.cancelText || 'AbpUi::Cancel' | abpLocalization\"\r\n *ngIf=\"!data?.options?.hideCancelBtn\"\r\n (click)=\"close(reject)\"\r\n ></button>\r\n <button\r\n id=\"confirm\"\r\n class=\"confirmation-button confirmation-button--approve\"\r\n [innerHTML]=\"data.options?.yesText || 'AbpUi::Yes' | abpLocalization\"\r\n *ngIf=\"!data?.options?.hideYesBtn\"\r\n (click)=\"close(confirm)\"\r\n ></button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".confirmation{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:1060}.confirmation .confirmation-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:1061!important}.confirmation .confirmation-dialog{display:flex;flex-direction:column;margin:20px auto;padding:0;width:450px;min-height:300px;z-index:1062!important}@media screen and (max-width: 500px){.confirmation .confirmation-dialog{width:90vw}}.confirmation .confirmation-dialog .icon-container{display:flex;align-items:center;justify-content:center;margin:0 0 10px;padding:20px}.confirmation .confirmation-dialog .icon-container .icon{width:100px;height:100px;stroke-width:1;font-size:80px;text-align:center}.confirmation .confirmation-dialog .content{flex-grow:1;display:block}.confirmation .confirmation-dialog .content .title{display:block;margin:0;padding:0;font-size:27px;font-weight:600;text-align:center}.confirmation .confirmation-dialog .content .message{display:block;margin:10px auto;padding:20px;font-size:16px;font-weight:400;text-align:center}.confirmation .confirmation-dialog .footer{display:flex;align-items:center;justify-content:flex-end;margin:10px 0 0;padding:20px;width:100%}.confirmation .confirmation-dialog .footer .confirmation-button{display:inline-block;margin:0 5px;padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:600}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.LocalizationPipe, name: "abpLocalization" }] }); }
37
+ }
38
+ export { ConfirmationComponent };
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ConfirmationComponent, decorators: [{
40
+ type: Component,
41
+ args: [{ selector: 'abp-confirmation', template: "<div class=\"confirmation\" *ngIf=\"confirmation$ | async as data\">\r\n <div\r\n class=\"confirmation-backdrop\"\r\n (click)=\"data.options?.dismissible ? close(dismiss) : null\"\r\n ></div>\r\n <div class=\"confirmation-dialog\">\r\n <div class=\"icon-container\" [ngClass]=\"data.severity\" *ngIf=\"data.severity || isCustomIconExists(data)\">\r\n <div [outerHTML]=\"data.options.iconTemplate\" *ngIf=\"isIconTemplateExits(data); else iconHolder\" ></div>\r\n <ng-template #iconHolder>\r\n <i class=\"icon\" [ngClass]=\"getIconClass(data)\"></i>\r\n </ng-template>\r\n </div>\r\n <div class=\"content\">\r\n <h1\r\n class=\"title\"\r\n *ngIf=\"data.title\"\r\n [innerHTML]=\"data.title | abpLocalization: data.options?.titleLocalizationParams\"\r\n ></h1>\r\n <p\r\n class=\"message\"\r\n *ngIf=\"data.message\"\r\n [innerHTML]=\"data.message | abpLocalization: data.options?.messageLocalizationParams\"\r\n ></p>\r\n </div>\r\n <div class=\"footer\">\r\n <button\r\n id=\"cancel\"\r\n class=\"confirmation-button confirmation-button--reject\"\r\n [innerHTML]=\"data.options?.cancelText || 'AbpUi::Cancel' | abpLocalization\"\r\n *ngIf=\"!data?.options?.hideCancelBtn\"\r\n (click)=\"close(reject)\"\r\n ></button>\r\n <button\r\n id=\"confirm\"\r\n class=\"confirmation-button confirmation-button--approve\"\r\n [innerHTML]=\"data.options?.yesText || 'AbpUi::Yes' | abpLocalization\"\r\n *ngIf=\"!data?.options?.hideYesBtn\"\r\n (click)=\"close(confirm)\"\r\n ></button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".confirmation{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:1060}.confirmation .confirmation-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:1061!important}.confirmation .confirmation-dialog{display:flex;flex-direction:column;margin:20px auto;padding:0;width:450px;min-height:300px;z-index:1062!important}@media screen and (max-width: 500px){.confirmation .confirmation-dialog{width:90vw}}.confirmation .confirmation-dialog .icon-container{display:flex;align-items:center;justify-content:center;margin:0 0 10px;padding:20px}.confirmation .confirmation-dialog .icon-container .icon{width:100px;height:100px;stroke-width:1;font-size:80px;text-align:center}.confirmation .confirmation-dialog .content{flex-grow:1;display:block}.confirmation .confirmation-dialog .content .title{display:block;margin:0;padding:0;font-size:27px;font-weight:600;text-align:center}.confirmation .confirmation-dialog .content .message{display:block;margin:10px auto;padding:20px;font-size:16px;font-weight:400;text-align:center}.confirmation .confirmation-dialog .footer{display:flex;align-items:center;justify-content:flex-end;margin:10px 0 0;padding:20px;width:100%}.confirmation .confirmation-dialog .footer .confirmation-button{display:inline-block;margin:0 5px;padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:600}\n"] }]
42
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
43
+ type: Inject,
44
+ args: [CONFIRMATION_ICONS]
45
+ }] }]; } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpcm1hdGlvbi9jb25maXJtYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBcUIsTUFBTSx1Q0FBdUMsQ0FBQzs7OztBQUU5RixNQUthLHFCQUFxQjtJQUNoQyxZQUFnRCxLQUF3QjtRQUF4QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUV4RSxZQUFPLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDdEMsV0FBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ3BDLFlBQU8sR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUpxQyxDQUFDO0lBVTVFLEtBQUssQ0FBQyxNQUEyQjtRQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxZQUFZLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUEyQjtRQUN6RCxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQzNCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQztTQUNyQjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzdCO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUM1QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsRUFBRSxPQUFPLEVBQTJCO1FBQ3JELE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsbUJBQW1CLENBQUMsRUFBRSxPQUFPLEVBQTJCO1FBQ3RELE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUM3QyxDQUFDOzhHQWxDVSxxQkFBcUIsa0JBQ1osa0JBQWtCO2tHQUQzQixxQkFBcUIsd0RDVmxDLHNyREEwQ0E7O1NEaENhLHFCQUFxQjsyRkFBckIscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQjs7MEJBS2YsTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9jb25maXJtYXRpb24nO1xyXG5pbXBvcnQgeyBDT05GSVJNQVRJT05fSUNPTlMsIENvbmZpcm1hdGlvbkljb25zIH0gZnJvbSAnLi4vLi4vdG9rZW5zL2NvbmZpcm1hdGlvbi1pY29ucy50b2tlbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1jb25maXJtYXRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maXJtYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbmZpcm1hdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uZmlybWF0aW9uQ29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KENPTkZJUk1BVElPTl9JQ09OUykgcHJpdmF0ZSBpY29uczogQ29uZmlybWF0aW9uSWNvbnMpIHt9XHJcblxyXG4gIGNvbmZpcm0gPSBDb25maXJtYXRpb24uU3RhdHVzLmNvbmZpcm07XHJcbiAgcmVqZWN0ID0gQ29uZmlybWF0aW9uLlN0YXR1cy5yZWplY3Q7XHJcbiAgZGlzbWlzcyA9IENvbmZpcm1hdGlvbi5TdGF0dXMuZGlzbWlzcztcclxuXHJcbiAgY29uZmlybWF0aW9uJCE6IFJlcGxheVN1YmplY3Q8Q29uZmlybWF0aW9uLkRpYWxvZ0RhdGEgfCBudWxsPjtcclxuXHJcbiAgY2xlYXIhOiAoc3RhdHVzOiBDb25maXJtYXRpb24uU3RhdHVzKSA9PiB2b2lkO1xyXG5cclxuICBjbG9zZShzdGF0dXM6IENvbmZpcm1hdGlvbi5TdGF0dXMpIHtcclxuICAgIHRoaXMuY2xlYXIoc3RhdHVzKTtcclxuICB9XHJcblxyXG4gIGdldEljb25DbGFzcyh7IHNldmVyaXR5LCBvcHRpb25zIH06IENvbmZpcm1hdGlvbi5EaWFsb2dEYXRhKTogc3RyaW5nIHtcclxuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuaWNvbikge1xyXG4gICAgICByZXR1cm4gb3B0aW9ucy5pY29uO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmljb25zKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIGlmIChzZXZlcml0eSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5pY29uc1tzZXZlcml0eV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5pY29ucy5kZWZhdWx0O1xyXG4gIH1cclxuXHJcbiAgaXNDdXN0b21JY29uRXhpc3RzKHsgb3B0aW9ucyB9OiBDb25maXJtYXRpb24uRGlhbG9nRGF0YSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhKG9wdGlvbnMgJiYgKG9wdGlvbnMuaWNvblRlbXBsYXRlIHx8IG9wdGlvbnMuaWNvbikpO1xyXG4gIH1cclxuXHJcbiAgaXNJY29uVGVtcGxhdGVFeGl0cyh7IG9wdGlvbnMgfTogQ29uZmlybWF0aW9uLkRpYWxvZ0RhdGEpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIShvcHRpb25zICYmIG9wdGlvbnMuaWNvblRlbXBsYXRlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbmZpcm1hdGlvblwiICpuZ0lmPVwiY29uZmlybWF0aW9uJCB8IGFzeW5jIGFzIGRhdGFcIj5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImNvbmZpcm1hdGlvbi1iYWNrZHJvcFwiXHJcbiAgICAoY2xpY2spPVwiZGF0YS5vcHRpb25zPy5kaXNtaXNzaWJsZSA/IGNsb3NlKGRpc21pc3MpIDogbnVsbFwiXHJcbiAgPjwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJjb25maXJtYXRpb24tZGlhbG9nXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIiBbbmdDbGFzc109XCJkYXRhLnNldmVyaXR5XCIgKm5nSWY9XCJkYXRhLnNldmVyaXR5IHx8IGlzQ3VzdG9tSWNvbkV4aXN0cyhkYXRhKVwiPlxyXG4gICAgICA8ZGl2ICBbb3V0ZXJIVE1MXT1cImRhdGEub3B0aW9ucy5pY29uVGVtcGxhdGVcIiAqbmdJZj1cImlzSWNvblRlbXBsYXRlRXhpdHMoZGF0YSk7IGVsc2UgaWNvbkhvbGRlclwiID48L2Rpdj5cclxuICAgICAgIDxuZy10ZW1wbGF0ZSAjaWNvbkhvbGRlcj5cclxuICAgICAgICAgPGkgY2xhc3M9XCJpY29uXCIgW25nQ2xhc3NdPVwiZ2V0SWNvbkNsYXNzKGRhdGEpXCI+PC9pPlxyXG4gICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj5cclxuICAgICAgPGgxXHJcbiAgICAgICAgY2xhc3M9XCJ0aXRsZVwiXHJcbiAgICAgICAgKm5nSWY9XCJkYXRhLnRpdGxlXCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cImRhdGEudGl0bGUgfCBhYnBMb2NhbGl6YXRpb246IGRhdGEub3B0aW9ucz8udGl0bGVMb2NhbGl6YXRpb25QYXJhbXNcIlxyXG4gICAgICA+PC9oMT5cclxuICAgICAgPHBcclxuICAgICAgICBjbGFzcz1cIm1lc3NhZ2VcIlxyXG4gICAgICAgICpuZ0lmPVwiZGF0YS5tZXNzYWdlXCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cImRhdGEubWVzc2FnZSB8IGFicExvY2FsaXphdGlvbjogZGF0YS5vcHRpb25zPy5tZXNzYWdlTG9jYWxpemF0aW9uUGFyYW1zXCJcclxuICAgICAgPjwvcD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgaWQ9XCJjYW5jZWxcIlxyXG4gICAgICAgIGNsYXNzPVwiY29uZmlybWF0aW9uLWJ1dHRvbiBjb25maXJtYXRpb24tYnV0dG9uLS1yZWplY3RcIlxyXG4gICAgICAgIFtpbm5lckhUTUxdPVwiZGF0YS5vcHRpb25zPy5jYW5jZWxUZXh0IHx8ICdBYnBVaTo6Q2FuY2VsJyB8IGFicExvY2FsaXphdGlvblwiXHJcbiAgICAgICAgKm5nSWY9XCIhZGF0YT8ub3B0aW9ucz8uaGlkZUNhbmNlbEJ0blwiXHJcbiAgICAgICAgKGNsaWNrKT1cImNsb3NlKHJlamVjdClcIlxyXG4gICAgICA+PC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBpZD1cImNvbmZpcm1cIlxyXG4gICAgICAgIGNsYXNzPVwiY29uZmlybWF0aW9uLWJ1dHRvbiBjb25maXJtYXRpb24tYnV0dG9uLS1hcHByb3ZlXCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cImRhdGEub3B0aW9ucz8ueWVzVGV4dCB8fCAnQWJwVWk6OlllcycgfCBhYnBMb2NhbGl6YXRpb25cIlxyXG4gICAgICAgICpuZ0lmPVwiIWRhdGE/Lm9wdGlvbnM/LmhpZGVZZXNCdG5cIlxyXG4gICAgICAgIChjbGljayk9XCJjbG9zZShjb25maXJtKVwiXHJcbiAgICAgID48L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,95 @@
1
+ import { AbstractNgModelComponent } from '@abp/ng.core';
2
+ import { Component, EventEmitter, forwardRef, Injector, Input, Output } from '@angular/core';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "@abp/ng.core";
8
+ class FormInputComponent extends AbstractNgModelComponent {
9
+ constructor(injector) {
10
+ super(injector);
11
+ this.inputReadonly = false;
12
+ this.label = '';
13
+ this.labelClass = 'form-label';
14
+ this.inputPlaceholder = '';
15
+ this.inputClass = 'form-control';
16
+ this.formBlur = new EventEmitter();
17
+ this.formFocus = new EventEmitter();
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FormInputComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: FormInputComponent, selector: "abp-form-input", inputs: { inputId: "inputId", inputReadonly: "inputReadonly", label: "label", labelClass: "labelClass", inputPlaceholder: "inputPlaceholder", inputStyle: "inputStyle", inputClass: "inputClass" }, outputs: { formBlur: "formBlur", formFocus: "formFocus" }, providers: [
21
+ {
22
+ provide: NG_VALUE_ACCESSOR,
23
+ useExisting: forwardRef(() => FormInputComponent),
24
+ multi: true,
25
+ },
26
+ ], usesInheritance: true, ngImport: i0, template: `
27
+ <div class="mb-3">
28
+ <label *ngIf="label" [ngClass]="labelClass" [for]="inputId">
29
+ {{ label | abpLocalization }}
30
+ </label>
31
+ <input
32
+ type="text"
33
+ [id]="inputId"
34
+ [placeholder]="inputPlaceholder"
35
+ [readonly]="inputReadonly"
36
+ [ngClass]="inputClass"
37
+ [ngStyle]="inputStyle"
38
+ (blur)="formBlur.next()"
39
+ (focus)="formFocus.next()"
40
+ [(ngModel)]="value"
41
+ />
42
+ </div>
43
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] }); }
44
+ }
45
+ export { FormInputComponent };
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: FormInputComponent, decorators: [{
47
+ type: Component,
48
+ args: [{
49
+ selector: 'abp-form-input',
50
+ template: `
51
+ <div class="mb-3">
52
+ <label *ngIf="label" [ngClass]="labelClass" [for]="inputId">
53
+ {{ label | abpLocalization }}
54
+ </label>
55
+ <input
56
+ type="text"
57
+ [id]="inputId"
58
+ [placeholder]="inputPlaceholder"
59
+ [readonly]="inputReadonly"
60
+ [ngClass]="inputClass"
61
+ [ngStyle]="inputStyle"
62
+ (blur)="formBlur.next()"
63
+ (focus)="formFocus.next()"
64
+ [(ngModel)]="value"
65
+ />
66
+ </div>
67
+ `,
68
+ providers: [
69
+ {
70
+ provide: NG_VALUE_ACCESSOR,
71
+ useExisting: forwardRef(() => FormInputComponent),
72
+ multi: true,
73
+ },
74
+ ],
75
+ }]
76
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { inputId: [{
77
+ type: Input
78
+ }], inputReadonly: [{
79
+ type: Input
80
+ }], label: [{
81
+ type: Input
82
+ }], labelClass: [{
83
+ type: Input
84
+ }], inputPlaceholder: [{
85
+ type: Input
86
+ }], inputStyle: [{
87
+ type: Input
88
+ }], inputClass: [{
89
+ type: Input
90
+ }], formBlur: [{
91
+ type: Output
92
+ }], formFocus: [{
93
+ type: Output
94
+ }] } });
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0taW5wdXQvZm9ybS1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFFbkQsTUE0QmEsa0JBQW1CLFNBQVEsd0JBQXdCO0lBZ0I5RCxZQUFZLFFBQWtCO1FBQzVCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQWZULGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxlQUFVLEdBQUcsWUFBWSxDQUFDO1FBQzFCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQU90QixlQUFVLEdBQUcsY0FBYyxDQUFDO1FBQzNCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3BDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBSS9DLENBQUM7OEdBbEJVLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHdTQVJsQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7Z0JBQ2pELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixpREF4QlM7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJUOztTQVNVLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQTVCOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJUO29CQUNELFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxtQkFBbUIsQ0FBQzs0QkFDakQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7K0ZBRVUsT0FBTztzQkFBZixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTUcsVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdE5nTW9kZWxDb21wb25lbnQgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5qZWN0b3IsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FicC1mb3JtLWlucHV0JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBbbmdDbGFzc109XCJsYWJlbENsYXNzXCIgW2Zvcl09XCJpbnB1dElkXCI+XHJcbiAgICAgICAge3sgbGFiZWwgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgPC9sYWJlbD5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgIFtpZF09XCJpbnB1dElkXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaW5wdXRQbGFjZWhvbGRlclwiXHJcbiAgICAgICAgW3JlYWRvbmx5XT1cImlucHV0UmVhZG9ubHlcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cImlucHV0Q2xhc3NcIlxyXG4gICAgICAgIFtuZ1N0eWxlXT1cImlucHV0U3R5bGVcIlxyXG4gICAgICAgIChibHVyKT1cImZvcm1CbHVyLm5leHQoKVwiXHJcbiAgICAgICAgKGZvY3VzKT1cImZvcm1Gb2N1cy5uZXh0KClcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEZvcm1JbnB1dENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUlucHV0Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3ROZ01vZGVsQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBpbnB1dElkITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGlucHV0UmVhZG9ubHkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xyXG4gIEBJbnB1dCgpIGxhYmVsQ2xhc3MgPSAnZm9ybS1sYWJlbCc7XHJcbiAgQElucHV0KCkgaW5wdXRQbGFjZWhvbGRlciA9ICcnO1xyXG4gIEBJbnB1dCgpIGlucHV0U3R5bGU6XHJcbiAgICB8IHtcclxuICAgICAgICBba2xhc3M6IHN0cmluZ106IGFueTtcclxuICAgICAgfVxyXG4gICAgfCBudWxsXHJcbiAgICB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBpbnB1dENsYXNzID0gJ2Zvcm0tY29udHJvbCc7XHJcbiAgQE91dHB1dCgpIGZvcm1CbHVyID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgc3VwZXIoaW5qZWN0b3IpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,60 @@
1
+ import { SubscriptionService } from '@abp/ng.core';
2
+ import { Component, ElementRef, ViewChild, } from '@angular/core';
3
+ import { fromEvent } from 'rxjs';
4
+ import { debounceTime, filter } from 'rxjs/operators';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@abp/ng.core";
7
+ import * as i2 from "@angular/common";
8
+ import * as i3 from "@angular/router";
9
+ class HttpErrorWrapperComponent {
10
+ get statusText() {
11
+ return this.status ? `[${this.status}]` : '';
12
+ }
13
+ constructor(subscription) {
14
+ this.subscription = subscription;
15
+ this.status = 0;
16
+ this.title = 'Oops!';
17
+ this.details = 'Sorry, an error has occured.';
18
+ this.customComponent = undefined;
19
+ this.hideCloseIcon = false;
20
+ this.isHomeShow = true;
21
+ }
22
+ ngOnInit() {
23
+ this.backgroundColor =
24
+ window.getComputedStyle(document.body)?.getPropertyValue('background-color') || '#fff';
25
+ }
26
+ ngAfterViewInit() {
27
+ if (this.customComponent) {
28
+ const customComponentRef = this.cfRes
29
+ .resolveComponentFactory(this.customComponent)
30
+ .create(this.injector);
31
+ customComponentRef.instance.errorStatus = this.status;
32
+ customComponentRef.instance.destroy$ = this.destroy$;
33
+ this.appRef.attachView(customComponentRef.hostView);
34
+ if (this.containerRef) {
35
+ this.containerRef.nativeElement.appendChild(customComponentRef.hostView.rootNodes[0]);
36
+ }
37
+ customComponentRef.changeDetectorRef.detectChanges();
38
+ }
39
+ const keyup$ = fromEvent(document, 'keyup').pipe(debounceTime(150), filter((key) => key && key.key === 'Escape'));
40
+ this.subscription.addOne(keyup$, () => this.destroy());
41
+ }
42
+ ngOnDestroy() {
43
+ this.destroy();
44
+ }
45
+ destroy() {
46
+ this.destroy$.next();
47
+ this.destroy$.complete();
48
+ }
49
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: HttpErrorWrapperComponent, deps: [{ token: i1.SubscriptionService }], target: i0.ɵɵFactoryTarget.Component }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: HttpErrorWrapperComponent, selector: "abp-http-error-wrapper", providers: [SubscriptionService], viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div\r\n #container\r\n id=\"abp-http-error-container\"\r\n class=\"error\"\r\n [style.backgroundColor]=\"backgroundColor\"\r\n>\r\n <button\r\n *ngIf=\"!hideCloseIcon\"\r\n id=\"abp-close-button\"\r\n type=\"button\"\r\n class=\"btn-close me-2\"\r\n (click)=\"destroy()\"\r\n ></button>\r\n\r\n <div *ngIf=\"!customComponent\" class=\"row centered\">\r\n <div class=\"col-md-12\">\r\n <div class=\"error-template\">\r\n <h1>{{ statusText }} {{ title | abpLocalization }}</h1>\r\n <div class=\"error-details\">\r\n {{ details | abpLocalization }}\r\n </div>\r\n <div class=\"error-actions\">\r\n <a\r\n *ngIf=\"isHomeShow\"\r\n (click)=\"destroy()\"\r\n routerLink=\"/\"\r\n class=\"btn btn-primary btn-md mt-2\"\r\n ><span class=\"glyphicon glyphicon-home\"></span>\r\n {{ { key: '::Menu:Home', defaultValue: 'Home' } | abpLocalization }}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".error{position:fixed;top:0;width:100vw;height:100vh;z-index:999999}.centered{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }] }); }
51
+ }
52
+ export { HttpErrorWrapperComponent };
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: HttpErrorWrapperComponent, decorators: [{
54
+ type: Component,
55
+ args: [{ selector: 'abp-http-error-wrapper', providers: [SubscriptionService], template: "<div\r\n #container\r\n id=\"abp-http-error-container\"\r\n class=\"error\"\r\n [style.backgroundColor]=\"backgroundColor\"\r\n>\r\n <button\r\n *ngIf=\"!hideCloseIcon\"\r\n id=\"abp-close-button\"\r\n type=\"button\"\r\n class=\"btn-close me-2\"\r\n (click)=\"destroy()\"\r\n ></button>\r\n\r\n <div *ngIf=\"!customComponent\" class=\"row centered\">\r\n <div class=\"col-md-12\">\r\n <div class=\"error-template\">\r\n <h1>{{ statusText }} {{ title | abpLocalization }}</h1>\r\n <div class=\"error-details\">\r\n {{ details | abpLocalization }}\r\n </div>\r\n <div class=\"error-actions\">\r\n <a\r\n *ngIf=\"isHomeShow\"\r\n (click)=\"destroy()\"\r\n routerLink=\"/\"\r\n class=\"btn btn-primary btn-md mt-2\"\r\n ><span class=\"glyphicon glyphicon-home\"></span>\r\n {{ { key: '::Menu:Home', defaultValue: 'Home' } | abpLocalization }}\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".error{position:fixed;top:0;width:100vw;height:100vh;z-index:999999}.centered{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}\n"] }]
56
+ }], ctorParameters: function () { return [{ type: i1.SubscriptionService }]; }, propDecorators: { containerRef: [{
57
+ type: ViewChild,
58
+ args: ['container', { static: false }]
59
+ }] } });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci13cmFwcGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvaHR0cC1lcnJvci13cmFwcGVyL2h0dHAtZXJyb3Itd3JhcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2h0dHAtZXJyb3Itd3JhcHBlci9odHRwLWVycm9yLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN0RSxPQUFPLEVBR0wsU0FBUyxFQUVULFVBQVUsRUFNVixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBVyxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQUV0RCxNQU1hLHlCQUF5QjtJQTBCcEMsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxZQUFvQixZQUFpQztRQUFqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUF2QnJELFdBQU0sR0FBRyxDQUFDLENBQUM7UUFFWCxVQUFLLEdBQXNCLE9BQU8sQ0FBQztRQUVuQyxZQUFPLEdBQXNCLDhCQUE4QixDQUFDO1FBRTVELG9CQUFlLEdBQTBCLFNBQVMsQ0FBQztRQUluRCxrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUl0QixlQUFVLEdBQUcsSUFBSSxDQUFDO0lBU3NDLENBQUM7SUFFekQsUUFBUTtRQUNOLElBQUksQ0FBQyxlQUFlO1lBQ2xCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxNQUFNLENBQUM7SUFDM0YsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDeEIsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsS0FBSztpQkFDbEMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztpQkFDN0MsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QixrQkFBa0IsQ0FBQyxRQUFRLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDdEQsa0JBQWtCLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUN4QyxrQkFBa0IsQ0FBQyxRQUFpQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FDbkUsQ0FBQzthQUNIO1lBQ0Qsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDdEQ7UUFFRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQWdCLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzdELFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsTUFBTSxDQUFDLENBQUMsR0FBa0IsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQzVELENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs4R0FuRVUseUJBQXlCO2tHQUF6Qix5QkFBeUIsaURBRnpCLENBQUMsbUJBQW1CLENBQUMscUlDckJsQyxtakNBbUNBOztTRFphLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQU5yQyxTQUFTOytCQUNFLHdCQUF3QixhQUd2QixDQUFDLG1CQUFtQixDQUFDOzBHQTBCaEMsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhbGl6YXRpb25QYXJhbSwgU3Vic2NyaXB0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBBcHBsaWNhdGlvblJlZixcclxuICBDb21wb25lbnQsXHJcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRW1iZWRkZWRWaWV3UmVmLFxyXG4gIEluamVjdG9yLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgVHlwZSxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGZyb21FdmVudCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLWh0dHAtZXJyb3Itd3JhcHBlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2h0dHAtZXJyb3Itd3JhcHBlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ2h0dHAtZXJyb3Itd3JhcHBlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1N1YnNjcmlwdGlvblNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSHR0cEVycm9yV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgT25Jbml0IHtcclxuICBhcHBSZWYhOiBBcHBsaWNhdGlvblJlZjtcclxuXHJcbiAgY2ZSZXMhOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI7XHJcblxyXG4gIGluamVjdG9yITogSW5qZWN0b3I7XHJcblxyXG4gIHN0YXR1cyA9IDA7XHJcblxyXG4gIHRpdGxlOiBMb2NhbGl6YXRpb25QYXJhbSA9ICdPb3BzISc7XHJcblxyXG4gIGRldGFpbHM6IExvY2FsaXphdGlvblBhcmFtID0gJ1NvcnJ5LCBhbiBlcnJvciBoYXMgb2NjdXJlZC4nO1xyXG5cclxuICBjdXN0b21Db21wb25lbnQ6IFR5cGU8YW55PiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgZGVzdHJveSQhOiBTdWJqZWN0PHZvaWQ+O1xyXG5cclxuICBoaWRlQ2xvc2VJY29uID0gZmFsc2U7XHJcblxyXG4gIGJhY2tncm91bmRDb2xvciE6IHN0cmluZztcclxuXHJcbiAgaXNIb21lU2hvdyA9IHRydWU7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIGNvbnRhaW5lclJlZj86IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG5cclxuICBnZXQgc3RhdHVzVGV4dCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID8gYFske3RoaXMuc3RhdHVzfV1gIDogJyc7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmJhY2tncm91bmRDb2xvciA9XHJcbiAgICAgIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpPy5nZXRQcm9wZXJ0eVZhbHVlKCdiYWNrZ3JvdW5kLWNvbG9yJykgfHwgJyNmZmYnO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tQ29tcG9uZW50KSB7XHJcbiAgICAgIGNvbnN0IGN1c3RvbUNvbXBvbmVudFJlZiA9IHRoaXMuY2ZSZXNcclxuICAgICAgICAucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkodGhpcy5jdXN0b21Db21wb25lbnQpXHJcbiAgICAgICAgLmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcclxuICAgICAgY3VzdG9tQ29tcG9uZW50UmVmLmluc3RhbmNlLmVycm9yU3RhdHVzID0gdGhpcy5zdGF0dXM7XHJcbiAgICAgIGN1c3RvbUNvbXBvbmVudFJlZi5pbnN0YW5jZS5kZXN0cm95JCA9IHRoaXMuZGVzdHJveSQ7XHJcbiAgICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcoY3VzdG9tQ29tcG9uZW50UmVmLmhvc3RWaWV3KTtcclxuICAgICAgaWYgKHRoaXMuY29udGFpbmVyUmVmKSB7XHJcbiAgICAgICAgdGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5hcHBlbmRDaGlsZChcclxuICAgICAgICAgIChjdXN0b21Db21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSxcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGN1c3RvbUNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qga2V5dXAkID0gZnJvbUV2ZW50PEtleWJvYXJkRXZlbnQ+KGRvY3VtZW50LCAna2V5dXAnKS5waXBlKFxyXG4gICAgICBkZWJvdW5jZVRpbWUoMTUwKSxcclxuICAgICAgZmlsdGVyKChrZXk6IEtleWJvYXJkRXZlbnQpID0+IGtleSAmJiBrZXkua2V5ID09PSAnRXNjYXBlJyksXHJcbiAgICApO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkT25lKGtleXVwJCwgKCkgPT4gdGhpcy5kZXN0cm95KCkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIGRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICNjb250YWluZXJcclxuICBpZD1cImFicC1odHRwLWVycm9yLWNvbnRhaW5lclwiXHJcbiAgY2xhc3M9XCJlcnJvclwiXHJcbiAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJiYWNrZ3JvdW5kQ29sb3JcIlxyXG4+XHJcbiAgPGJ1dHRvblxyXG4gICAgKm5nSWY9XCIhaGlkZUNsb3NlSWNvblwiXHJcbiAgICBpZD1cImFicC1jbG9zZS1idXR0b25cIlxyXG4gICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICBjbGFzcz1cImJ0bi1jbG9zZSBtZS0yXCJcclxuICAgIChjbGljayk9XCJkZXN0cm95KClcIlxyXG4gID48L2J1dHRvbj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cIiFjdXN0b21Db21wb25lbnRcIiBjbGFzcz1cInJvdyBjZW50ZXJlZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItdGVtcGxhdGVcIj5cclxuICAgICAgICA8aDE+e3sgc3RhdHVzVGV4dCB9fSB7eyB0aXRsZSB8IGFicExvY2FsaXphdGlvbiB9fTwvaDE+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yLWRldGFpbHNcIj5cclxuICAgICAgICAgIHt7IGRldGFpbHMgfCBhYnBMb2NhbGl6YXRpb24gfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItYWN0aW9uc1wiPlxyXG4gICAgICAgICAgPGFcclxuICAgICAgICAgICAgKm5nSWY9XCJpc0hvbWVTaG93XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImRlc3Ryb3koKVwiXHJcbiAgICAgICAgICAgIHJvdXRlckxpbms9XCIvXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgYnRuLW1kIG10LTJcIlxyXG4gICAgICAgICAgICA+PHNwYW4gY2xhc3M9XCJnbHlwaGljb24gZ2x5cGhpY29uLWhvbWVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIHt7IHsga2V5OiAnOjpNZW51OkhvbWUnLCBkZWZhdWx0VmFsdWU6ICdIb21lJyB9IHwgYWJwTG9jYWxpemF0aW9uIH19XHJcbiAgICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,17 +1,17 @@
1
- export * from './breadcrumb-items/breadcrumb-items.component';
2
- export * from './breadcrumb/breadcrumb.component';
3
- export * from './button/button.component';
4
- export * from './confirmation/confirmation.component';
5
- export * from './http-error-wrapper/http-error-wrapper.component';
6
- export * from './loader-bar/loader-bar.component';
7
- export * from './loading/loading.component';
8
- export * from './modal/modal-close.directive';
9
- export * from './modal/modal-ref.service';
10
- export * from './modal/modal.component';
11
- export * from './toast-container/toast-container.component';
12
- export * from './toast/toast.component';
13
- export * from './password/password.component';
14
- export * from './card/index';
15
- export * from './checkbox/checkbox.component';
16
- export * from './form-input/form-input.component';
1
+ export * from './breadcrumb-items/breadcrumb-items.component';
2
+ export * from './breadcrumb/breadcrumb.component';
3
+ export * from './button/button.component';
4
+ export * from './confirmation/confirmation.component';
5
+ export * from './http-error-wrapper/http-error-wrapper.component';
6
+ export * from './loader-bar/loader-bar.component';
7
+ export * from './loading/loading.component';
8
+ export * from './modal/modal-close.directive';
9
+ export * from './modal/modal-ref.service';
10
+ export * from './modal/modal.component';
11
+ export * from './toast-container/toast-container.component';
12
+ export * from './toast/toast.component';
13
+ export * from './password/password.component';
14
+ export * from './card/index';
15
+ export * from './checkbox/checkbox.component';
16
+ export * from './form-input/form-input.component';
17
17
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9icmVhZGNydW1iLWl0ZW1zL2JyZWFkY3J1bWItaXRlbXMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlybWF0aW9uL2NvbmZpcm1hdGlvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2h0dHAtZXJyb3Itd3JhcHBlci9odHRwLWVycm9yLXdyYXBwZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2FkZXItYmFyL2xvYWRlci1iYXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2FkaW5nL2xvYWRpbmcuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RhbC9tb2RhbC1jbG9zZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL21vZGFsL21vZGFsLXJlZi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RvYXN0LWNvbnRhaW5lci90b2FzdC1jb250YWluZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi90b2FzdC90b2FzdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3Bhc3N3b3JkL3Bhc3N3b3JkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2FyZC9pbmRleCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9mb3JtLWlucHV0L2Zvcm0taW5wdXQuY29tcG9uZW50JztcclxuIl19
@@ -0,0 +1,122 @@
1
+ import { HttpWaitService, RouterWaitService, SubscriptionService } from '@abp/ng.core';
2
+ import { ChangeDetectorRef, Component, Input } from '@angular/core';
3
+ import { Router } from '@angular/router';
4
+ import { combineLatest, Subscription, timer } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/router";
7
+ import * as i2 from "@abp/ng.core";
8
+ import * as i3 from "@angular/common";
9
+ class LoaderBarComponent {
10
+ set isLoading(value) {
11
+ this._isLoading = value;
12
+ this.cdRef.detectChanges();
13
+ }
14
+ get isLoading() {
15
+ return this._isLoading;
16
+ }
17
+ get boxShadow() {
18
+ return `0 0 10px rgba(${this.color}, 0.5)`;
19
+ }
20
+ constructor(router, cdRef, subscription, httpWaitService, routerWaitService) {
21
+ this.router = router;
22
+ this.cdRef = cdRef;
23
+ this.subscription = subscription;
24
+ this.httpWaitService = httpWaitService;
25
+ this.routerWaitService = routerWaitService;
26
+ this.containerClass = 'abp-loader-bar';
27
+ this.color = '#77b6ff';
28
+ this.progressLevel = 0;
29
+ this.interval = new Subscription();
30
+ this.timer = new Subscription();
31
+ this.intervalPeriod = 350;
32
+ this.stopDelay = 800;
33
+ this.clearProgress = () => {
34
+ this.progressLevel = 0;
35
+ this.cdRef.detectChanges();
36
+ };
37
+ this.reportProgress = () => {
38
+ if (this.progressLevel < 75) {
39
+ this.progressLevel += 1 + Math.random() * 9;
40
+ }
41
+ else if (this.progressLevel < 90) {
42
+ this.progressLevel += 0.4;
43
+ }
44
+ else if (this.progressLevel < 100) {
45
+ this.progressLevel += 0.1;
46
+ }
47
+ else {
48
+ this.interval.unsubscribe();
49
+ }
50
+ this.cdRef.detectChanges();
51
+ };
52
+ }
53
+ ngOnInit() {
54
+ this.subscribeLoading();
55
+ }
56
+ subscribeLoading() {
57
+ this.subscription.addOne(combineLatest([this.httpWaitService.getLoading$(), this.routerWaitService.getLoading$()]), ([httpLoading, routerLoading]) => {
58
+ if (httpLoading || routerLoading)
59
+ this.startLoading();
60
+ else
61
+ this.stopLoading();
62
+ });
63
+ }
64
+ ngOnDestroy() {
65
+ this.interval.unsubscribe();
66
+ }
67
+ startLoading() {
68
+ if (this.isLoading || !this.interval.closed)
69
+ return;
70
+ this.isLoading = true;
71
+ this.progressLevel = 0;
72
+ this.cdRef.detectChanges();
73
+ this.interval = timer(0, this.intervalPeriod).subscribe(this.reportProgress);
74
+ this.timer.unsubscribe();
75
+ }
76
+ stopLoading() {
77
+ this.interval.unsubscribe();
78
+ this.progressLevel = 100;
79
+ this.isLoading = false;
80
+ if (!this.timer.closed)
81
+ return;
82
+ this.timer = timer(this.stopDelay).subscribe(this.clearProgress);
83
+ }
84
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LoaderBarComponent, deps: [{ token: i1.Router }, { token: i0.ChangeDetectorRef }, { token: i2.SubscriptionService }, { token: i2.HttpWaitService }, { token: i2.RouterWaitService }], target: i0.ɵɵFactoryTarget.Component }); }
85
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: LoaderBarComponent, selector: "abp-loader-bar", inputs: { isLoading: "isLoading", containerClass: "containerClass", color: "color" }, providers: [SubscriptionService], ngImport: i0, template: `
86
+ <div id="abp-loader-bar" [ngClass]="containerClass" [class.is-loading]="isLoading">
87
+ <div
88
+ class="abp-progress"
89
+ [class.progressing]="progressLevel"
90
+ [style.width.vw]="progressLevel"
91
+ [ngStyle]="{
92
+ 'background-color': color,
93
+ 'box-shadow': boxShadow
94
+ }"
95
+ ></div>
96
+ </div>
97
+ `, isInline: true, styles: [".abp-loader-bar{left:0;opacity:0;position:fixed;top:0;transition:opacity .4s linear .4s;z-index:99999}.abp-loader-bar.is-loading{opacity:1;transition:none}.abp-loader-bar .abp-progress{height:3px;left:0;position:fixed;top:0}.abp-loader-bar .abp-progress.progressing{transition:width .4s ease}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] }); }
98
+ }
99
+ export { LoaderBarComponent };
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LoaderBarComponent, decorators: [{
101
+ type: Component,
102
+ args: [{ selector: 'abp-loader-bar', template: `
103
+ <div id="abp-loader-bar" [ngClass]="containerClass" [class.is-loading]="isLoading">
104
+ <div
105
+ class="abp-progress"
106
+ [class.progressing]="progressLevel"
107
+ [style.width.vw]="progressLevel"
108
+ [ngStyle]="{
109
+ 'background-color': color,
110
+ 'box-shadow': boxShadow
111
+ }"
112
+ ></div>
113
+ </div>
114
+ `, providers: [SubscriptionService], styles: [".abp-loader-bar{left:0;opacity:0;position:fixed;top:0;transition:opacity .4s linear .4s;z-index:99999}.abp-loader-bar.is-loading{opacity:1;transition:none}.abp-loader-bar .abp-progress{height:3px;left:0;position:fixed;top:0}.abp-loader-bar .abp-progress.progressing{transition:width .4s ease}\n"] }]
115
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i0.ChangeDetectorRef }, { type: i2.SubscriptionService }, { type: i2.HttpWaitService }, { type: i2.RouterWaitService }]; }, propDecorators: { isLoading: [{
116
+ type: Input
117
+ }], containerClass: [{
118
+ type: Input
119
+ }], color: [{
120
+ type: Input
121
+ }] } });
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2xvYWRlci1iYXIvbG9hZGVyLWJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFFMUQsTUFrQmEsa0JBQWtCO0lBRzdCLElBQ0ksU0FBUyxDQUFDLEtBQWM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBQ0QsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFvQ0QsSUFBSSxTQUFTO1FBQ1gsT0FBTyxpQkFBaUIsSUFBSSxDQUFDLEtBQUssUUFBUSxDQUFDO0lBQzdDLENBQUM7SUFFRCxZQUNVLE1BQWMsRUFDZCxLQUF3QixFQUN4QixZQUFpQyxFQUNqQyxlQUFnQyxFQUNoQyxpQkFBb0M7UUFKcEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNqQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQTFDOUMsbUJBQWMsR0FBRyxnQkFBZ0IsQ0FBQztRQUdsQyxVQUFLLEdBQUcsU0FBUyxDQUFDO1FBRWxCLGtCQUFhLEdBQUcsQ0FBQyxDQUFDO1FBRWxCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTlCLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNCLG1CQUFjLEdBQUcsR0FBRyxDQUFDO1FBRXJCLGNBQVMsR0FBRyxHQUFHLENBQUM7UUFFQyxrQkFBYSxHQUFHLEdBQUcsRUFBRTtZQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztZQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQztRQUVlLG1CQUFjLEdBQUcsR0FBRyxFQUFFO1lBQ3JDLElBQUksSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7YUFDN0M7aUJBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLGFBQWEsSUFBSSxHQUFHLENBQUM7YUFDM0I7aUJBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsRUFBRTtnQkFDbkMsSUFBSSxDQUFDLGFBQWEsSUFBSSxHQUFHLENBQUM7YUFDM0I7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUM3QjtZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDO0lBWUMsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQ3RCLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFDekYsQ0FBQyxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFO1lBQy9CLElBQUksV0FBVyxJQUFJLGFBQWE7Z0JBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDOztnQkFDakQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUVwRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUU1QixJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV2QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUUvQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRSxDQUFDOzhHQS9GVSxrQkFBa0I7a0dBQWxCLGtCQUFrQiwrSEFGbEIsQ0FBQyxtQkFBbUIsQ0FBQywwQkFkdEI7Ozs7Ozs7Ozs7OztHQVlUOztTQUlVLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQWxCOUIsU0FBUzsrQkFDRSxnQkFBZ0IsWUFDaEI7Ozs7Ozs7Ozs7OztHQVlULGFBRVUsQ0FBQyxtQkFBbUIsQ0FBQzs2TkFNNUIsU0FBUztzQkFEWixLQUFLO2dCQVVOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwV2FpdFNlcnZpY2UsIFJvdXRlcldhaXRTZXJ2aWNlLCBTdWJzY3JpcHRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIFN1YnNjcmlwdGlvbiwgdGltZXIgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWJwLWxvYWRlci1iYXInLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGlkPVwiYWJwLWxvYWRlci1iYXJcIiBbbmdDbGFzc109XCJjb250YWluZXJDbGFzc1wiIFtjbGFzcy5pcy1sb2FkaW5nXT1cImlzTG9hZGluZ1wiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJhYnAtcHJvZ3Jlc3NcIlxyXG4gICAgICAgIFtjbGFzcy5wcm9ncmVzc2luZ109XCJwcm9ncmVzc0xldmVsXCJcclxuICAgICAgICBbc3R5bGUud2lkdGgudnddPVwicHJvZ3Jlc3NMZXZlbFwiXHJcbiAgICAgICAgW25nU3R5bGVdPVwie1xyXG4gICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiBjb2xvcixcclxuICAgICAgICAgICdib3gtc2hhZG93JzogYm94U2hhZG93XHJcbiAgICAgICAgfVwiXHJcbiAgICAgID48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbG9hZGVyLWJhci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1N1YnNjcmlwdGlvblNlcnZpY2VdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9hZGVyQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xyXG4gIHByb3RlY3RlZCBfaXNMb2FkaW5nITogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgaXNMb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9pc0xvYWRpbmcgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuICBnZXQgaXNMb2FkaW5nKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzTG9hZGluZztcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY29udGFpbmVyQ2xhc3MgPSAnYWJwLWxvYWRlci1iYXInO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNvbG9yID0gJyM3N2I2ZmYnO1xyXG5cclxuICBwcm9ncmVzc0xldmVsID0gMDtcclxuXHJcbiAgaW50ZXJ2YWwgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gIHRpbWVyID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG5cclxuICBpbnRlcnZhbFBlcmlvZCA9IDM1MDtcclxuXHJcbiAgc3RvcERlbGF5ID0gODAwO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGNsZWFyUHJvZ3Jlc3MgPSAoKSA9PiB7XHJcbiAgICB0aGlzLnByb2dyZXNzTGV2ZWwgPSAwO1xyXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSByZXBvcnRQcm9ncmVzcyA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLnByb2dyZXNzTGV2ZWwgPCA3NSkge1xyXG4gICAgICB0aGlzLnByb2dyZXNzTGV2ZWwgKz0gMSArIE1hdGgucmFuZG9tKCkgKiA5O1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnByb2dyZXNzTGV2ZWwgPCA5MCkge1xyXG4gICAgICB0aGlzLnByb2dyZXNzTGV2ZWwgKz0gMC40O1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnByb2dyZXNzTGV2ZWwgPCAxMDApIHtcclxuICAgICAgdGhpcy5wcm9ncmVzc0xldmVsICs9IDAuMTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW50ZXJ2YWwudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH07XHJcblxyXG4gIGdldCBib3hTaGFkb3coKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgMCAwIDEwcHggcmdiYSgke3RoaXMuY29sb3J9LCAwLjUpYDtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGh0dHBXYWl0U2VydmljZTogSHR0cFdhaXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXJXYWl0U2VydmljZTogUm91dGVyV2FpdFNlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc3Vic2NyaWJlTG9hZGluZygpO1xyXG4gIH1cclxuXHJcbiAgc3Vic2NyaWJlTG9hZGluZygpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZE9uZShcclxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5odHRwV2FpdFNlcnZpY2UuZ2V0TG9hZGluZyQoKSwgdGhpcy5yb3V0ZXJXYWl0U2VydmljZS5nZXRMb2FkaW5nJCgpXSksXHJcbiAgICAgIChbaHR0cExvYWRpbmcsIHJvdXRlckxvYWRpbmddKSA9PiB7XHJcbiAgICAgICAgaWYgKGh0dHBMb2FkaW5nIHx8IHJvdXRlckxvYWRpbmcpIHRoaXMuc3RhcnRMb2FkaW5nKCk7XHJcbiAgICAgICAgZWxzZSB0aGlzLnN0b3BMb2FkaW5nKCk7XHJcbiAgICAgIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmludGVydmFsLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzdGFydExvYWRpbmcoKSB7XHJcbiAgICBpZiAodGhpcy5pc0xvYWRpbmcgfHwgIXRoaXMuaW50ZXJ2YWwuY2xvc2VkKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5wcm9ncmVzc0xldmVsID0gMDtcclxuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5pbnRlcnZhbCA9IHRpbWVyKDAsIHRoaXMuaW50ZXJ2YWxQZXJpb2QpLnN1YnNjcmliZSh0aGlzLnJlcG9ydFByb2dyZXNzKTtcclxuICAgIHRoaXMudGltZXIudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHN0b3BMb2FkaW5nKCkge1xyXG4gICAgdGhpcy5pbnRlcnZhbC51bnN1YnNjcmliZSgpO1xyXG5cclxuICAgIHRoaXMucHJvZ3Jlc3NMZXZlbCA9IDEwMDtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgaWYgKCF0aGlzLnRpbWVyLmNsb3NlZCkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMudGltZXIgPSB0aW1lcih0aGlzLnN0b3BEZWxheSkuc3Vic2NyaWJlKHRoaXMuY2xlYXJQcm9ncmVzcyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { Component, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ class LoadingComponent {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: LoadingComponent, selector: "abp-loading", ngImport: i0, template: `
6
+ <div class="abp-loading">
7
+ <i class="fa fa-spinner fa-pulse abp-spinner" aria-hidden="true"></i>
8
+ </div>
9
+ `, isInline: true, styles: [".abp-loading{position:absolute;width:100%;height:100%;top:0;left:0;z-index:1040}.abp-loading .abp-spinner{position:absolute;top:50%;left:50%;font-size:14px;transform:translate(-50%) translateY(-50%)}\n"], encapsulation: i0.ViewEncapsulation.None }); }
10
+ }
11
+ export { LoadingComponent };
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: LoadingComponent, decorators: [{
13
+ type: Component,
14
+ args: [{ selector: 'abp-loading', template: `
15
+ <div class="abp-loading">
16
+ <i class="fa fa-spinner fa-pulse abp-spinner" aria-hidden="true"></i>
17
+ </div>
18
+ `, encapsulation: ViewEncapsulation.None, styles: [".abp-loading{position:absolute;width:100%;height:100%;top:0;left:0;z-index:1040}.abp-loading .abp-spinner{position:absolute;top:50%;left:50%;font-size:14px;transform:translate(-50%) translateY(-50%)}\n"] }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFN0QsTUFpQ2EsZ0JBQWdCOzhHQUFoQixnQkFBZ0I7a0dBQWhCLGdCQUFnQixtREEvQmpCOzs7O0dBSVQ7O1NBMkJVLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQWpDNUIsU0FBUzsrQkFDRSxhQUFhLFlBQ2I7Ozs7R0FJVCxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhYnAtbG9hZGluZycsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJhYnAtbG9hZGluZ1wiPlxyXG4gICAgICA8aSBjbGFzcz1cImZhIGZhLXNwaW5uZXIgZmEtcHVsc2UgYWJwLXNwaW5uZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgc3R5bGVzOiBbXHJcbiAgICBgXHJcbiAgICAgIC5hYnAtbG9hZGluZyB7XHJcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICB0b3A6IDA7XHJcbiAgICAgICAgbGVmdDogMDtcclxuICAgICAgICB6LWluZGV4OiAxMDQwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuYWJwLWxvYWRpbmcgLmFicC1zcGlubmVyIHtcclxuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgICAgdG9wOiA1MCU7XHJcbiAgICAgICAgbGVmdDogNTAlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG4gICAgICB9XHJcbiAgICBgLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2FkaW5nQ29tcG9uZW50IHt9XHJcbiJdfQ==
@@ -0,0 +1,28 @@
1
+ import { Directive, HostListener, Optional } from '@angular/core';
2
+ import { ModalComponent } from './modal.component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./modal.component";
5
+ class ModalCloseDirective {
6
+ constructor(modal) {
7
+ this.modal = modal;
8
+ if (!modal) {
9
+ console.error('Please use abpClose within an abp-modal');
10
+ }
11
+ }
12
+ onClick() {
13
+ this.modal?.close();
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ModalCloseDirective, deps: [{ token: i1.ModalComponent, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
16
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: ModalCloseDirective, selector: "[abpClose]", host: { listeners: { "click": "onClick()" } }, ngImport: i0 }); }
17
+ }
18
+ export { ModalCloseDirective };
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ModalCloseDirective, decorators: [{
20
+ type: Directive,
21
+ args: [{ selector: '[abpClose]' }]
22
+ }], ctorParameters: function () { return [{ type: i1.ModalComponent, decorators: [{
23
+ type: Optional
24
+ }] }]; }, propDecorators: { onClick: [{
25
+ type: HostListener,
26
+ args: ['click']
27
+ }] } });
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY2xvc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC1jbG9zZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBRW5ELE1BQ2EsbUJBQW1CO0lBQzlCLFlBQWdDLEtBQXFCO1FBQXJCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ25ELElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7U0FDMUQ7SUFDSCxDQUFDO0lBR0QsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQzs4R0FWVSxtQkFBbUI7a0dBQW5CLG1CQUFtQjs7U0FBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBRC9CLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFOzswQkFFdEIsUUFBUTs0Q0FPckIsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLmNvbXBvbmVudCc7XHJcblxyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbYWJwQ2xvc2VdJyB9KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxDbG9zZURpcmVjdGl2ZSB7XHJcbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSBtb2RhbDogTW9kYWxDb21wb25lbnQpIHtcclxuICAgIGlmICghbW9kYWwpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignUGxlYXNlIHVzZSBhYnBDbG9zZSB3aXRoaW4gYW4gYWJwLW1vZGFsJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXHJcbiAgb25DbGljaygpIHtcclxuICAgIHRoaXMubW9kYWw/LmNsb3NlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,27 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ class ModalRefService {
4
+ constructor() {
5
+ this.modalRefs = [];
6
+ }
7
+ register(modal) {
8
+ this.modalRefs.push(modal);
9
+ }
10
+ unregister(modal) {
11
+ const index = this.modalRefs.indexOf(modal);
12
+ if (index > -1) {
13
+ this.modalRefs.splice(index, 1);
14
+ }
15
+ }
16
+ dismissAll(mode) {
17
+ this.modalRefs.forEach(modal => modal.dismiss(mode));
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ModalRefService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
20
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ModalRefService, providedIn: 'root' }); }
21
+ }
22
+ export { ModalRefService };
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ModalRefService, decorators: [{
24
+ type: Injectable,
25
+ args: [{ providedIn: 'root' }]
26
+ }] });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtcmVmLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLXJlZi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUTNDLE1BQ2EsZUFBZTtJQUQ1QjtRQUVFLGNBQVMsR0FBdUIsRUFBRSxDQUFDO0tBZXBDO0lBYkMsUUFBUSxDQUFDLEtBQXVCO1FBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxVQUFVLENBQUMsS0FBdUI7UUFDaEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQXNCO1FBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OEdBZlUsZUFBZTtrSEFBZixlQUFlLGNBREYsTUFBTTs7U0FDbkIsZUFBZTsyRkFBZixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCB0eXBlIE1vZGFsRGlzbWlzc01vZGUgPSAnaGFyZCcgfCAnc29mdCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERpc21pc3NhYmxlTW9kYWwge1xyXG4gIGRpc21pc3MobW9kZTogTW9kYWxEaXNtaXNzTW9kZSk6IHZvaWQ7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBNb2RhbFJlZlNlcnZpY2Uge1xyXG4gIG1vZGFsUmVmczogRGlzbWlzc2FibGVNb2RhbFtdID0gW107XHJcblxyXG4gIHJlZ2lzdGVyKG1vZGFsOiBEaXNtaXNzYWJsZU1vZGFsKSB7XHJcbiAgICB0aGlzLm1vZGFsUmVmcy5wdXNoKG1vZGFsKTtcclxuICB9XHJcbiAgdW5yZWdpc3Rlcihtb2RhbDogRGlzbWlzc2FibGVNb2RhbCkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLm1vZGFsUmVmcy5pbmRleE9mKG1vZGFsKTtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHRoaXMubW9kYWxSZWZzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBkaXNtaXNzQWxsKG1vZGU6IE1vZGFsRGlzbWlzc01vZGUpIHtcclxuICAgIHRoaXMubW9kYWxSZWZzLmZvckVhY2gobW9kYWwgPT4gbW9kYWwuZGlzbWlzcyhtb2RlKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==