@abp/ng.theme.shared 4.4.1 → 5.0.0-beta.1-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 (305) hide show
  1. package/abp-ng.theme.shared.d.ts +1 -34
  2. package/bundles/abp-ng.theme.shared-extensions.umd.js +473 -361
  3. package/bundles/abp-ng.theme.shared-extensions.umd.js.map +1 -1
  4. package/bundles/abp-ng.theme.shared-testing.umd.js +33 -7
  5. package/bundles/abp-ng.theme.shared-testing.umd.js.map +1 -1
  6. package/bundles/abp-ng.theme.shared.umd.js +691 -1078
  7. package/bundles/abp-ng.theme.shared.umd.js.map +1 -1
  8. package/esm2015/abp-ng.theme.shared.js +1 -34
  9. package/esm2015/abp-ng.theme.shared.js.map +1 -0
  10. package/esm2015/extensions/abp-ng.theme.shared-extensions.js +1 -5
  11. package/esm2015/extensions/abp-ng.theme.shared-extensions.js.map +1 -0
  12. package/esm2015/extensions/lib/adapters/date-time.adapter.js +7 -4
  13. package/esm2015/extensions/lib/adapters/date-time.adapter.js.map +1 -0
  14. package/esm2015/extensions/lib/adapters/date.adapter.js +7 -4
  15. package/esm2015/extensions/lib/adapters/date.adapter.js.map +1 -0
  16. package/esm2015/extensions/lib/adapters/time.adapter.js +7 -4
  17. package/esm2015/extensions/lib/adapters/time.adapter.js.map +1 -0
  18. package/esm2015/extensions/lib/components/abstract-actions/abstract-actions.component.js +9 -12
  19. package/esm2015/extensions/lib/components/abstract-actions/abstract-actions.component.js.map +1 -0
  20. package/esm2015/extensions/lib/components/date-time-picker/date-time-picker.component.js +74 -35
  21. package/esm2015/extensions/lib/components/date-time-picker/date-time-picker.component.js.map +1 -0
  22. package/esm2015/extensions/lib/components/extensible-form/extensible-form-prop.component.js +49 -34
  23. package/esm2015/extensions/lib/components/extensible-form/extensible-form-prop.component.js.map +1 -0
  24. package/esm2015/extensions/lib/components/extensible-form/extensible-form.component.js +42 -30
  25. package/esm2015/extensions/lib/components/extensible-form/extensible-form.component.js.map +1 -0
  26. package/esm2015/extensions/lib/components/extensible-table/extensible-table.component.js +59 -28
  27. package/esm2015/extensions/lib/components/extensible-table/extensible-table.component.js.map +1 -0
  28. package/esm2015/extensions/lib/components/grid-actions/grid-actions.component.js +34 -23
  29. package/esm2015/extensions/lib/components/grid-actions/grid-actions.component.js.map +1 -0
  30. package/esm2015/extensions/lib/components/page-toolbar/page-toolbar.component.js +26 -18
  31. package/esm2015/extensions/lib/components/page-toolbar/page-toolbar.component.js.map +1 -0
  32. package/esm2015/extensions/lib/constants/extra-properties.js +1 -1
  33. package/esm2015/extensions/lib/constants/extra-properties.js.map +1 -0
  34. package/esm2015/extensions/lib/directives/disabled.directive.js +15 -12
  35. package/esm2015/extensions/lib/directives/disabled.directive.js.map +1 -0
  36. package/esm2015/extensions/lib/directives/prop-data.directive.js +21 -18
  37. package/esm2015/extensions/lib/directives/prop-data.directive.js.map +1 -0
  38. package/esm2015/extensions/lib/enums/props.enum.js +1 -1
  39. package/esm2015/extensions/lib/enums/props.enum.js.map +1 -0
  40. package/esm2015/extensions/lib/models/actions.js +1 -2
  41. package/esm2015/extensions/lib/models/actions.js.map +1 -0
  42. package/esm2015/extensions/lib/models/entity-actions.js +1 -1
  43. package/esm2015/extensions/lib/models/entity-actions.js.map +1 -0
  44. package/esm2015/extensions/lib/models/entity-props.js +3 -1
  45. package/esm2015/extensions/lib/models/entity-props.js.map +1 -0
  46. package/esm2015/extensions/lib/models/form-props.js +1 -2
  47. package/esm2015/extensions/lib/models/form-props.js.map +1 -0
  48. package/esm2015/extensions/lib/models/internal/object-extensions.js +1 -1
  49. package/esm2015/extensions/lib/models/internal/object-extensions.js.map +1 -0
  50. package/esm2015/extensions/lib/models/object-extensions.js +1 -1
  51. package/esm2015/extensions/lib/models/object-extensions.js.map +1 -0
  52. package/esm2015/extensions/lib/models/props.js +1 -2
  53. package/esm2015/extensions/lib/models/props.js.map +1 -0
  54. package/esm2015/extensions/lib/models/toolbar-actions.js +1 -1
  55. package/esm2015/extensions/lib/models/toolbar-actions.js.map +1 -0
  56. package/esm2015/extensions/lib/services/extensions.service.js +9 -7
  57. package/esm2015/extensions/lib/services/extensions.service.js.map +1 -0
  58. package/esm2015/extensions/lib/tokens/extensions.token.js +2 -1
  59. package/esm2015/extensions/lib/tokens/extensions.token.js.map +1 -0
  60. package/esm2015/extensions/lib/ui-extensions.module.js +75 -39
  61. package/esm2015/extensions/lib/ui-extensions.module.js.map +1 -0
  62. package/esm2015/extensions/lib/utils/actions.util.js +1 -1
  63. package/esm2015/extensions/lib/utils/actions.util.js.map +1 -0
  64. package/esm2015/extensions/lib/utils/enum.util.js +1 -1
  65. package/esm2015/extensions/lib/utils/enum.util.js.map +1 -0
  66. package/esm2015/extensions/lib/utils/factory.util.js +1 -1
  67. package/esm2015/extensions/lib/utils/factory.util.js.map +1 -0
  68. package/esm2015/extensions/lib/utils/form-props.util.js +1 -1
  69. package/esm2015/extensions/lib/utils/form-props.util.js.map +1 -0
  70. package/esm2015/extensions/lib/utils/localization.util.js +1 -1
  71. package/esm2015/extensions/lib/utils/localization.util.js.map +1 -0
  72. package/esm2015/extensions/lib/utils/props.util.js +1 -1
  73. package/esm2015/extensions/lib/utils/props.util.js.map +1 -0
  74. package/esm2015/extensions/lib/utils/state.util.js +1 -1
  75. package/esm2015/extensions/lib/utils/state.util.js.map +1 -0
  76. package/esm2015/extensions/lib/utils/typeahead.util.js +1 -1
  77. package/esm2015/extensions/lib/utils/typeahead.util.js.map +1 -0
  78. package/esm2015/extensions/lib/utils/validation.util.js +1 -1
  79. package/esm2015/extensions/lib/utils/validation.util.js.map +1 -0
  80. package/esm2015/extensions/public-api.js +1 -1
  81. package/esm2015/extensions/public-api.js.map +1 -0
  82. package/esm2015/lib/animations/bounce.animations.js +5 -5
  83. package/esm2015/lib/animations/bounce.animations.js.map +1 -0
  84. package/esm2015/lib/animations/collapse.animations.js +1 -1
  85. package/esm2015/lib/animations/collapse.animations.js.map +1 -0
  86. package/esm2015/lib/animations/fade.animations.js +1 -1
  87. package/esm2015/lib/animations/fade.animations.js.map +1 -0
  88. package/esm2015/lib/animations/index.js +1 -1
  89. package/esm2015/lib/animations/index.js.map +1 -0
  90. package/esm2015/lib/animations/modal.animations.js +1 -1
  91. package/esm2015/lib/animations/modal.animations.js.map +1 -0
  92. package/esm2015/lib/animations/slide.animations.js +1 -1
  93. package/esm2015/lib/animations/slide.animations.js.map +1 -0
  94. package/esm2015/lib/animations/toast.animations.js +1 -1
  95. package/esm2015/lib/animations/toast.animations.js.map +1 -0
  96. package/esm2015/lib/components/breadcrumb/breadcrumb.component.js +19 -21
  97. package/esm2015/lib/components/breadcrumb/breadcrumb.component.js.map +1 -0
  98. package/esm2015/lib/components/breadcrumb-items/breadcrumb-items.component.js +22 -0
  99. package/esm2015/lib/components/breadcrumb-items/breadcrumb-items.component.js.map +1 -0
  100. package/esm2015/lib/components/button/button.component.js +57 -30
  101. package/esm2015/lib/components/button/button.component.js.map +1 -0
  102. package/esm2015/lib/components/confirmation/confirmation.component.js +14 -8
  103. package/esm2015/lib/components/confirmation/confirmation.component.js.map +1 -0
  104. package/esm2015/lib/components/http-error-wrapper/http-error-wrapper.component.js +25 -20
  105. package/esm2015/lib/components/http-error-wrapper/http-error-wrapper.component.js.map +1 -0
  106. package/esm2015/lib/components/index.js +3 -6
  107. package/esm2015/lib/components/index.js.map +1 -0
  108. package/esm2015/lib/components/loader-bar/loader-bar.component.js +34 -21
  109. package/esm2015/lib/components/loader-bar/loader-bar.component.js.map +1 -0
  110. package/esm2015/lib/components/loading/loading.component.js +20 -13
  111. package/esm2015/lib/components/loading/loading.component.js.map +1 -0
  112. package/esm2015/lib/components/modal/modal-close.directive.js +14 -10
  113. package/esm2015/lib/components/modal/modal-close.directive.js.map +1 -0
  114. package/esm2015/lib/components/modal/modal-ref.service.js +7 -5
  115. package/esm2015/lib/components/modal/modal-ref.service.js.map +1 -0
  116. package/esm2015/lib/components/modal/modal.component.js +57 -65
  117. package/esm2015/lib/components/modal/modal.component.js.map +1 -0
  118. package/esm2015/lib/components/toast/toast.component.js +25 -22
  119. package/esm2015/lib/components/toast/toast.component.js.map +1 -0
  120. package/esm2015/lib/components/toast-container/toast-container.component.js +25 -16
  121. package/esm2015/lib/components/toast-container/toast-container.component.js.map +1 -0
  122. package/esm2015/lib/constants/styles.js +1 -1
  123. package/esm2015/lib/constants/styles.js.map +1 -0
  124. package/esm2015/lib/constants/validation.js +1 -1
  125. package/esm2015/lib/constants/validation.js.map +1 -0
  126. package/esm2015/lib/directives/ellipsis.directive.js +40 -24
  127. package/esm2015/lib/directives/ellipsis.directive.js.map +1 -0
  128. package/esm2015/lib/directives/index.js +2 -3
  129. package/esm2015/lib/directives/index.js.map +1 -0
  130. package/esm2015/lib/directives/loading.directive.js +20 -17
  131. package/esm2015/lib/directives/loading.directive.js.map +1 -0
  132. package/esm2015/lib/directives/ngx-datatable-default.directive.js +21 -16
  133. package/esm2015/lib/directives/ngx-datatable-default.directive.js.map +1 -0
  134. package/esm2015/lib/directives/ngx-datatable-list.directive.js +22 -18
  135. package/esm2015/lib/directives/ngx-datatable-list.directive.js.map +1 -0
  136. package/esm2015/lib/enums/index.js +1 -1
  137. package/esm2015/lib/enums/index.js.map +1 -0
  138. package/esm2015/lib/enums/route-names.js +1 -1
  139. package/esm2015/lib/enums/route-names.js.map +1 -0
  140. package/esm2015/lib/handlers/error.handler.js +28 -37
  141. package/esm2015/lib/handlers/error.handler.js.map +1 -0
  142. package/esm2015/lib/handlers/index.js +1 -1
  143. package/esm2015/lib/handlers/index.js.map +1 -0
  144. package/esm2015/lib/handlers/lazy-style.handler.js +9 -10
  145. package/esm2015/lib/handlers/lazy-style.handler.js.map +1 -0
  146. package/esm2015/lib/models/common.js +1 -1
  147. package/esm2015/lib/models/common.js.map +1 -0
  148. package/esm2015/lib/models/confirmation.js +1 -1
  149. package/esm2015/lib/models/confirmation.js.map +1 -0
  150. package/esm2015/lib/models/index.js +1 -1
  151. package/esm2015/lib/models/index.js.map +1 -0
  152. package/esm2015/lib/models/nav-item.js +1 -1
  153. package/esm2015/lib/models/nav-item.js.map +1 -0
  154. package/esm2015/lib/models/statistics.js +1 -1
  155. package/esm2015/lib/models/statistics.js.map +1 -0
  156. package/esm2015/lib/models/toaster.js +1 -1
  157. package/esm2015/lib/models/toaster.js.map +1 -0
  158. package/esm2015/lib/providers/index.js +1 -1
  159. package/esm2015/lib/providers/index.js.map +1 -0
  160. package/esm2015/lib/providers/ng-bootstrap-config.provider.js +1 -1
  161. package/esm2015/lib/providers/ng-bootstrap-config.provider.js.map +1 -0
  162. package/esm2015/lib/providers/route.provider.js +1 -1
  163. package/esm2015/lib/providers/route.provider.js.map +1 -0
  164. package/esm2015/lib/services/confirmation.service.js +7 -8
  165. package/esm2015/lib/services/confirmation.service.js.map +1 -0
  166. package/esm2015/lib/services/index.js +2 -3
  167. package/esm2015/lib/services/index.js.map +1 -0
  168. package/esm2015/lib/services/nav-items.service.js +7 -5
  169. package/esm2015/lib/services/nav-items.service.js.map +1 -0
  170. package/esm2015/lib/services/page-alert.service.js +7 -6
  171. package/esm2015/lib/services/page-alert.service.js.map +1 -0
  172. package/esm2015/lib/services/toaster.service.js +22 -21
  173. package/esm2015/lib/services/toaster.service.js.map +1 -0
  174. package/esm2015/lib/theme-shared.module.js +72 -39
  175. package/esm2015/lib/theme-shared.module.js.map +1 -0
  176. package/esm2015/lib/tokens/append-content.token.js +1 -3
  177. package/esm2015/lib/tokens/append-content.token.js.map +1 -0
  178. package/esm2015/lib/tokens/http-error.token.js +1 -1
  179. package/esm2015/lib/tokens/http-error.token.js.map +1 -0
  180. package/esm2015/lib/tokens/index.js +1 -1
  181. package/esm2015/lib/tokens/index.js.map +1 -0
  182. package/esm2015/lib/tokens/lazy-styles.token.js +1 -1
  183. package/esm2015/lib/tokens/lazy-styles.token.js.map +1 -0
  184. package/esm2015/lib/tokens/ngx-datatable-messages.token.js +1 -1
  185. package/esm2015/lib/tokens/ngx-datatable-messages.token.js.map +1 -0
  186. package/esm2015/lib/tokens/suppress-unsaved-changes-warning.token.js +1 -2
  187. package/esm2015/lib/tokens/suppress-unsaved-changes-warning.token.js.map +1 -0
  188. package/esm2015/lib/utils/date-parser-formatter.js +13 -10
  189. package/esm2015/lib/utils/date-parser-formatter.js.map +1 -0
  190. package/esm2015/lib/utils/index.js +1 -2
  191. package/esm2015/lib/utils/index.js.map +1 -0
  192. package/esm2015/lib/utils/validation-utils.js +1 -1
  193. package/esm2015/lib/utils/validation-utils.js.map +1 -0
  194. package/esm2015/public-api.js +1 -1
  195. package/esm2015/public-api.js.map +1 -0
  196. package/esm2015/testing/abp-ng.theme.shared-testing.js +1 -1
  197. package/esm2015/testing/abp-ng.theme.shared-testing.js.map +1 -0
  198. package/esm2015/testing/lib/models/config.js +1 -1
  199. package/esm2015/testing/lib/models/config.js.map +1 -0
  200. package/esm2015/testing/lib/models/index.js +1 -1
  201. package/esm2015/testing/lib/models/index.js.map +1 -0
  202. package/esm2015/testing/lib/theme-shared-testing.module.js +12 -7
  203. package/esm2015/testing/lib/theme-shared-testing.module.js.map +1 -0
  204. package/esm2015/testing/public-api.js +1 -1
  205. package/esm2015/testing/public-api.js.map +1 -0
  206. package/extensions/abp-ng.theme.shared-extensions.d.ts +1 -4
  207. package/extensions/lib/adapters/date-time.adapter.d.ts +3 -0
  208. package/extensions/lib/adapters/date.adapter.d.ts +3 -0
  209. package/extensions/lib/adapters/time.adapter.d.ts +3 -0
  210. package/extensions/lib/components/abstract-actions/abstract-actions.component.d.ts +3 -0
  211. package/extensions/lib/components/date-time-picker/date-time-picker.component.d.ts +3 -0
  212. package/extensions/lib/components/extensible-form/extensible-form-prop.component.d.ts +3 -0
  213. package/extensions/lib/components/extensible-form/extensible-form.component.d.ts +3 -0
  214. package/extensions/lib/components/extensible-table/extensible-table.component.d.ts +9 -4
  215. package/extensions/lib/components/grid-actions/grid-actions.component.d.ts +3 -0
  216. package/extensions/lib/components/page-toolbar/page-toolbar.component.d.ts +3 -0
  217. package/extensions/lib/directives/disabled.directive.d.ts +3 -0
  218. package/extensions/lib/directives/prop-data.directive.d.ts +3 -0
  219. package/extensions/lib/models/entity-props.d.ts +5 -2
  220. package/extensions/lib/services/extensions.service.d.ts +3 -0
  221. package/extensions/lib/tokens/extensions.token.d.ts +3 -1
  222. package/extensions/lib/ui-extensions.module.d.ts +19 -0
  223. package/extensions/lib/utils/state.util.d.ts +1 -1
  224. package/extensions/package.json +0 -1
  225. package/fesm2015/abp-ng.theme.shared-extensions.js +540 -409
  226. package/fesm2015/abp-ng.theme.shared-extensions.js.map +1 -1
  227. package/fesm2015/abp-ng.theme.shared-testing.js +11 -6
  228. package/fesm2015/abp-ng.theme.shared-testing.js.map +1 -1
  229. package/fesm2015/abp-ng.theme.shared.js +645 -917
  230. package/fesm2015/abp-ng.theme.shared.js.map +1 -1
  231. package/lib/components/breadcrumb/breadcrumb.component.d.ts +3 -0
  232. package/lib/components/breadcrumb-items/breadcrumb-items.component.d.ts +6 -0
  233. package/lib/components/button/button.component.d.ts +4 -1
  234. package/lib/components/confirmation/confirmation.component.d.ts +3 -0
  235. package/lib/components/http-error-wrapper/http-error-wrapper.component.d.ts +6 -3
  236. package/lib/components/index.d.ts +2 -5
  237. package/lib/components/loader-bar/loader-bar.component.d.ts +3 -0
  238. package/lib/components/loading/loading.component.d.ts +4 -4
  239. package/lib/components/modal/modal-close.directive.d.ts +3 -0
  240. package/lib/components/modal/modal-ref.service.d.ts +3 -0
  241. package/lib/components/modal/modal.component.d.ts +4 -18
  242. package/lib/components/toast/toast.component.d.ts +5 -4
  243. package/lib/components/toast-container/toast-container.component.d.ts +5 -1
  244. package/lib/directives/ellipsis.directive.d.ts +6 -0
  245. package/lib/directives/index.d.ts +1 -2
  246. package/lib/directives/loading.directive.d.ts +3 -0
  247. package/lib/directives/ngx-datatable-default.directive.d.ts +3 -0
  248. package/lib/directives/ngx-datatable-list.directive.d.ts +3 -0
  249. package/lib/handlers/error.handler.d.ts +9 -7
  250. package/lib/handlers/lazy-style.handler.d.ts +3 -0
  251. package/lib/models/confirmation.d.ts +3 -3
  252. package/lib/models/toaster.d.ts +5 -5
  253. package/lib/providers/ng-bootstrap-config.provider.d.ts +1 -1
  254. package/lib/providers/route.provider.d.ts +1 -1
  255. package/lib/services/confirmation.service.d.ts +3 -0
  256. package/lib/services/index.d.ts +1 -2
  257. package/lib/services/nav-items.service.d.ts +3 -0
  258. package/lib/services/page-alert.service.d.ts +3 -0
  259. package/lib/services/toaster.service.d.ts +4 -1
  260. package/lib/theme-shared.module.d.ts +26 -0
  261. package/lib/utils/date-parser-formatter.d.ts +3 -0
  262. package/lib/utils/index.d.ts +0 -1
  263. package/package.json +4 -6
  264. package/testing/abp-ng.theme.shared-testing.d.ts +1 -0
  265. package/testing/lib/theme-shared-testing.module.d.ts +6 -0
  266. package/testing/package.json +0 -1
  267. package/abp-ng.theme.shared.metadata.json +0 -1
  268. package/bundles/abp-ng.theme.shared-extensions-testing.umd.js +0 -28
  269. package/bundles/abp-ng.theme.shared-extensions-testing.umd.js.map +0 -1
  270. package/bundles/abp-ng.theme.shared-extensions-testing.umd.min.js +0 -2
  271. package/bundles/abp-ng.theme.shared-extensions-testing.umd.min.js.map +0 -1
  272. package/bundles/abp-ng.theme.shared-extensions.umd.min.js +0 -17
  273. package/bundles/abp-ng.theme.shared-extensions.umd.min.js.map +0 -1
  274. package/bundles/abp-ng.theme.shared-testing.umd.min.js +0 -2
  275. package/bundles/abp-ng.theme.shared-testing.umd.min.js.map +0 -1
  276. package/bundles/abp-ng.theme.shared.umd.min.js +0 -2
  277. package/bundles/abp-ng.theme.shared.umd.min.js.map +0 -1
  278. package/esm2015/extensions/testing/abp-ng.theme.shared-extensions-testing.js +0 -5
  279. package/esm2015/extensions/testing/lib/ui-extensions-testing.module.js +0 -11
  280. package/esm2015/extensions/testing/public-api.js +0 -2
  281. package/esm2015/lib/components/chart/chart.component.js +0 -120
  282. package/esm2015/lib/components/modal/modal-container.component.js +0 -16
  283. package/esm2015/lib/components/sort-order-icon/sort-order-icon.component.js +0 -62
  284. package/esm2015/lib/components/table/table.component.js +0 -71
  285. package/esm2015/lib/components/table-empty-message/table-empty-message.component.js +0 -29
  286. package/esm2015/lib/directives/table-sort.directive.js +0 -43
  287. package/esm2015/lib/services/modal.service.js +0 -46
  288. package/esm2015/lib/utils/widget-utils.js +0 -13
  289. package/extensions/abp-ng.theme.shared-extensions.metadata.json +0 -1
  290. package/extensions/testing/abp-ng.theme.shared-extensions-testing.d.ts +0 -4
  291. package/extensions/testing/abp-ng.theme.shared-extensions-testing.metadata.json +0 -1
  292. package/extensions/testing/lib/ui-extensions-testing.module.d.ts +0 -2
  293. package/extensions/testing/package.json +0 -11
  294. package/extensions/testing/public-api.d.ts +0 -1
  295. package/fesm2015/abp-ng.theme.shared-extensions-testing.js +0 -18
  296. package/fesm2015/abp-ng.theme.shared-extensions-testing.js.map +0 -1
  297. package/lib/components/chart/chart.component.d.ts +0 -30
  298. package/lib/components/modal/modal-container.component.d.ts +0 -7
  299. package/lib/components/sort-order-icon/sort-order-icon.component.d.ts +0 -18
  300. package/lib/components/table/table.component.d.ts +0 -30
  301. package/lib/components/table-empty-message/table-empty-message.component.d.ts +0 -7
  302. package/lib/directives/table-sort.directive.d.ts +0 -21
  303. package/lib/services/modal.service.d.ts +0 -16
  304. package/lib/utils/widget-utils.d.ts +0 -3
  305. package/testing/abp-ng.theme.shared-testing.metadata.json +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../packages/theme-shared/src/lib/animations/bounce.animations.ts","../../../packages/theme-shared/src/lib/animations/collapse.animations.ts","../../../packages/theme-shared/src/lib/animations/fade.animations.ts","../../../packages/theme-shared/src/lib/animations/modal.animations.ts","../../../packages/theme-shared/src/lib/animations/slide.animations.ts","../../../packages/theme-shared/src/lib/animations/toast.animations.ts","../../../node_modules/tslib/tslib.es6.js","../../../packages/theme-shared/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../packages/theme-shared/src/lib/components/button/button.component.ts","../../../packages/theme-shared/src/lib/models/confirmation.ts","../../../packages/theme-shared/src/lib/utils/widget-utils.ts","../../../packages/theme-shared/src/lib/components/chart/chart.component.ts","../../../packages/theme-shared/src/lib/components/confirmation/confirmation.component.ts","../../../packages/theme-shared/src/lib/components/http-error-wrapper/http-error-wrapper.component.ts","../../../packages/theme-shared/src/lib/components/loader-bar/loader-bar.component.ts","../../../packages/theme-shared/src/lib/components/loading/loading.component.ts","../../../packages/theme-shared/src/lib/services/confirmation.service.ts","../../../packages/theme-shared/src/lib/tokens/suppress-unsaved-changes-warning.token.ts","../../../packages/theme-shared/src/lib/components/modal/modal-ref.service.ts","../../../packages/theme-shared/src/lib/components/modal/modal.component.ts","../../../packages/theme-shared/src/lib/components/modal/modal-close.directive.ts","../../../packages/theme-shared/src/lib/components/sort-order-icon/sort-order-icon.component.ts","../../../packages/theme-shared/src/lib/components/table-empty-message/table-empty-message.component.ts","../../../packages/theme-shared/src/lib/components/table/table.component.ts","../../../packages/theme-shared/src/lib/components/toast-container/toast-container.component.ts","../../../packages/theme-shared/src/lib/services/toaster.service.ts","../../../packages/theme-shared/src/lib/components/toast/toast.component.ts","../../../packages/theme-shared/src/lib/constants/styles.ts","../../../packages/theme-shared/src/lib/constants/validation.ts","../../../packages/theme-shared/src/lib/directives/loading.directive.ts","../../../packages/theme-shared/src/lib/directives/ngx-datatable-default.directive.ts","../../../packages/theme-shared/src/lib/tokens/ngx-datatable-messages.token.ts","../../../packages/theme-shared/src/lib/directives/ngx-datatable-list.directive.ts","../../../packages/theme-shared/src/lib/directives/table-sort.directive.ts","../../../packages/theme-shared/src/lib/directives/ellipsis.directive.ts","../../../packages/theme-shared/src/lib/tokens/http-error.token.ts","../../../packages/theme-shared/src/lib/handlers/error.handler.ts","../../../packages/theme-shared/src/lib/tokens/lazy-styles.token.ts","../../../packages/theme-shared/src/lib/handlers/lazy-style.handler.ts","../../../packages/theme-shared/src/lib/models/nav-item.ts","../../../packages/theme-shared/src/lib/providers/ng-bootstrap-config.provider.ts","../../../packages/theme-shared/src/lib/providers/route.provider.ts","../../../packages/theme-shared/src/lib/components/modal/modal-container.component.ts","../../../packages/theme-shared/src/lib/services/modal.service.ts","../../../packages/theme-shared/src/lib/services/nav-items.service.ts","../../../packages/theme-shared/src/lib/services/page-alert.service.ts","../../../packages/theme-shared/src/lib/tokens/append-content.token.ts","../../../packages/theme-shared/src/lib/utils/date-parser-formatter.ts","../../../packages/theme-shared/src/lib/theme-shared.module.ts","../../../packages/theme-shared/src/lib/utils/validation-utils.ts"],"names":["bounceIn","animation","style","opacity","display","animate","keyframes","transform","offset","params","time","easing","collapseY","height","overflow","box-sizing","padding","collapseYWithMargin","margin-top","margin-left","collapseX","width","expandY","expandYWithMargin","expandX","collapse","trigger","state","transition","useAnimation","collapseWithMargin","collapseLinearWithMargin","fadeIn","fadeOut","fadeInDown","fadeInUp","fadeInLeft","fadeInRight","fadeOutDown","fadeOutUp","fadeOutLeft","fadeOutRight","fadeAnimation","dialogAnimation","slideFromBottom","toastInOut","query","optional","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__rest","s","e","t","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","create","__read","o","n","m","Symbol","iterator","r","ar","next","done","push","value","error","__spread","arguments","concat","BreadcrumbComponent","cdRef","router","routes","subscription","routerEvents","this","segments","ngOnInit","_this","addOne","getNavigationEvents","pipe","startWith","map","search","path","getRoutePath","route","node","parent","children","isLeaf","segment","isAdministration","unshift","detectChanges","name","Component","args","selector","template","changeDetection","ChangeDetectionStrategy","OnPush","providers","SubscriptionService","ChangeDetectorRef","Router","RoutesService","RouterEvents","ButtonComponent","renderer","buttonId","buttonClass","buttonType","loading","disabled","click","EventEmitter","focus","blur","abpClick","abpFocus","abpBlur","defineProperty","iconClass","attributes","keys","forEach","key","setAttribute","buttonRef","nativeElement","Renderer2","Input","Output","ViewChild","static","Status","Confirmation","chartJsLoaded$","ReplaySubject","ChartComponent","el","options","plugins","responsive","onDataSelect","initialized","BehaviorSubject","onCanvasClick","event","chart","element","getElementAtEvent","dataset","getDatasetAtEvent","emit","originalEvent","initChart","opts","maintainAspectRatio","Chart","canvas","type","data","generateLegend","refresh","update","reinit","destroy","_data","val","toBase64Image","ngAfterViewInit","subscribe","testChartJs","_initialized","Error","ngOnDestroy","ElementRef","ConfirmationComponent","confirm","reject","dismiss","close","status","clear","getIconClass","_a","severity","HttpErrorWrapperComponent","title","details","customComponent","hideCloseIcon","isHomeShow","backgroundColor","snq","window","getComputedStyle","document","body","getPropertyValue","customComponentRef","cfRes","resolveComponentFactory","injector","instance","errorStatus","destroy$","appRef","attachView","hostView","containerRef","appendChild","rootNodes","changeDetectorRef","keyup$","fromEvent","debounceTime","filter","complete","LoaderBarComponent","httpWaitService","routerWaitService","containerClass","color","progressLevel","interval","Subscription","timer","intervalPeriod","stopDelay","clearProgress","reportProgress","Math","random","unsubscribe","_isLoading","subscribeLoading","combineLatest","getLoading$","_b","httpLoading","routerLoading","startLoading","stopLoading","isLoading","closed","HttpWaitService","RouterWaitService","LoadingComponent","encapsulation","ViewEncapsulation","None","ConfirmationService","contentProjectionService","confirmation$","status$","setContainer","containerComponentRef","projectContent","PROJECTION_STRATEGY","AppendComponentToBody","setTimeout","info","message","show","success","warn","Subject","dismissible","listenToEscape","takeUntil","_","Injectable","providedIn","ContentProjectionService","SUPPRESS_UNSAVED_CHANGES_WARNING","InjectionToken","ModalRefService","modalRefs","register","modal","unregister","index","splice","dismissAll","mode","ModalComponent","confirmationService","suppressUnsavedChangesWarningToken","modalRefService","centered","modalClass","size","suppressUnsavedChangesWarning","visibleChange","init","appear","disappear","_visible","_busy","isConfirmationOpen","modalIdentifier","uuid","toggle$","initToggleStream","abpSubmit","querySelector","Boolean","modalWindowRef","visible","distinctUntilChanged","toggle","modalRef","listen","open","modalContent","assign","keyboard","scrollable","beforeDismiss","windowClass","busy","isFormDirty","preventDefault","returnValue","abpClose","warnForDeprecatedClose","isDevMode","console","Optional","Inject","NgbModal","ContentChild","read","ModalCloseDirective","onClick","Directive","decorators","HostListener","SortOrderIconComponent","orderChange","selectedSortKeyChange","_selectedSortKey","_order","selectedSortKey","sortKey","order","sort","TableEmptyMessageComponent","colspan","localizationResource","localizationProp","TableComponent","bodyScrollLeft","page","trackingProp","emptyMessage","pageChange","trackByFn","_totalRecords","newValue","rows","ceil","totalRecords","start","slice","marginCalculator","dir","rtlCalculator","ltrCalculator","div","scrollLeft","scrollWidth","clientWidth","ToastContainerComponent","toasts","right","bottom","toasts$","toastKey","containerKey","trackByFunc","toast","id","animations","ToasterService","lastId","closable","remove","ToastComponent","toasterService","sticky","timeout","life","tap","tapToDismiss","BOOTSTRAP","DEFAULT_VALIDATION_BLUEPRINTS","creditCard","email","invalid","max","maxlength","min","minlength","ngbDate","passwordMismatch","range","required","url","LoadingDirective","elRef","vcRef","cdRes","position","delay","_loading","timerSubscription","rootNode","removeChild","parentElement","take","componentRef","targetElement","offsetHeight","offsetWidth","ViewContainerRef","ComponentFactoryResolver","Injector","HostBinding","NgxDatatableDefaultDirective","table","resizeDiff","class","columnMode","ColumnMode","force","footerHeight","headerHeight","rowHeight","scrollbarH","virtualization","fixHorizontalGap","scroller","documentElement","scrollHeight","clientHeight","innerWidth","fixStyleOnWindowResize","bodyComponent","add","exportAs","DatatableComponent","DOCUMENT","defaultNgxDatatableMessages","totalMessage","selectedMessage","NGX_DATATABLE_MESSAGES","NgxDatatableListDirective","localizationService","ngxDatatableMessages","querySubscription","setInitialValues","externalPaging","externalSorting","messages","instant","subscribeToPage","sub","list","subscribeToSort","_c","sorts","prop","sortOrder","subscribeToQuery","query$","ngOnChanges","firstChange","currentValue","maxResultCount","limit","LocalizationService","TableSortDirective","abpTable","sortPipe","component","abpTableSort","clone","SortPipe","Host","Self","EllipsisDirective","enabled","undefined","innerText","httpErrorConfigFactory","config","errorScreen","forWhichErrors","skipHandledErrorCodes","NgModule","exports","declarations","HTTP_ERROR_CONFIG","HTTP_ERROR_HANDLER","DEFAULT_ERROR_MESSAGES","defaultError","defaultError401","defaultError403","defaultError404","defaultError500","DEFAULT_ERROR_LOCALIZATIONS","ErrorHandler","actions","rendererFactory","httpErrorConfig","httpErrorHandler","get","err","throwError","executeErrorHandler","Observable","of","catchError","handleError","filterRestErrors","findIndex","code","filterRouteErrors","navigationError","listenToRestError","listenToRouterError","listenToRouterDataResolved","show404Page","getEvents","ResolveEnd","ofActionSuccessful","RestOccurError","action","payload","switchMap","defaultValue","HttpErrorResponse","headers","showError","navigateToLogin","canCreateCustomError","show401Page","createErrorComponent","statusText","hideCancelBtn","yesText","AuthService","createRenderer","host","selectRootElement","ApplicationRef","Actions","RendererFactory2","LAZY_STYLES","LazyStyleHandler","_dir","loaded","Map","setStyles","setLazyLoad","listenToLanguageChanges","switchCSS","setBodyDir","getHrefFromLink","link","a","createElement","href","pathname","replace","getLoadedBootstrap","createLazyStyleHref","l10n","languageChange$","currentLang","locale","getLocaleDirection","lazyLoad","LazyLoadService","set","styles","oldHref","newHref","strategy","LOADING_STRATEGY","PrependAnonymousStyleToHead","load","oldLink","delete","newLink","initLazyStyleHandler","props","NG_BOOTSTRAP_CONFIG_PROVIDERS","provide","APP_INITIALIZER","useFactory","configureNgBootstrap","deps","NgbInputDatepickerConfig","NgbTypeaheadConfig","multi","datepicker","typeahead","container","THEME_SHARED_ROUTE_PROVIDERS","configureRoutes","routesService","ModalService","ModalContainerComponent","clearModal","getContainer","renderTemplate","context","ProjectTemplateToContainer","NavItemsService","_items$","asObservable","addItems","newItems","items","item","NavItem","sortItems","removeItem","patchItem","PageAlertService","alerts","InternalStore","alerts$","sliceState","alert","newAlert","THEME_SHARED_APPEND_CONTENT","factory","inject","DomInsertionService","insertContent","CONTENT_STRATEGY","AppendStyleToHead","import","then","isNumber","isNaN","toInteger","parseInt","DateParserFormatter","configState","_super","TypeError","String","__","constructor","__extends","parse","dateParts","trim","split","year","month","day","format","date","localization","getOne","dateFormat","currentCulture","dateTimeFormat","shortDatePattern","formatDate","Date","NgbDateParserFormatter","ConfigStateService","LOCALE_ID","declarationsWithExports","imports","CoreModule","NgxDatatableModule","NgxValidateCoreModule","NgbPaginationModule","EllipsisModule","DatePipe","entryComponents","ThemeSharedModule","forRoot","validation","ngModule","noop","useValue","useClass","VALIDATION_BLUEPRINTS","blueprints","VALIDATION_MAP_ERRORS_FN","mapErrorsFn","defaultMapErrorsFn","VALIDATION_VALIDATE_ON_SUBMIT","validateOnSubmit","BaseThemeSharedModule","minLength","Validators","maxLength","getRule","getSettings","toLowerCase","getRuleFn","passwordRulesArr","requiredLength","Number","isInteger","validatePassword","count","colors","g"],"mappings":"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","sourcesContent":["import { animate, animation, keyframes, style } from '@angular/animations';\n\nexport const bounceIn = animation(\n [\n style({ opacity: '0', display: '{{ display }}' }),\n animate(\n '{{ time}} {{ easing }}',\n keyframes([\n style({ opacity: '0', transform: '{{ transform }} scale(0.0)', offset: 0 }),\n style({ opacity: '0', transform: '{{ transform }} scale(0.8)', offset: 0.5 }),\n style({ opacity: '1', transform: '{{ transform }} scale(1.0)', offset: 1 })\n ])\n )\n ],\n {\n params: {\n time: '350ms',\n easing: 'cubic-bezier(.7,.31,.72,1.47)',\n display: 'block',\n transform: 'translate(-50%, -50%)'\n }\n }\n);\n","import {\n animate,\n animation,\n trigger,\n state,\n style,\n transition,\n useAnimation,\n} from '@angular/animations';\n\nexport const collapseY = animation(\n [\n style({ height: '*', overflow: 'hidden', 'box-sizing': 'border-box' }),\n animate('{{ time }} {{ easing }}', style({ height: '0', padding: '0px' })),\n ],\n { params: { time: '350ms', easing: 'ease' } },\n);\n\nexport const collapseYWithMargin = animation(\n [\n style({ 'margin-top': '0' }),\n animate('{{ time }} {{ easing }}', style({ 'margin-left': '-100%' })),\n ],\n {\n params: { time: '500ms', easing: 'ease' },\n },\n);\n\nexport const collapseX = animation(\n [\n style({ width: '*', overflow: 'hidden', 'box-sizing': 'border-box' }),\n animate('{{ time }} {{ easing }}', style({ width: '0', padding: '0px' })),\n ],\n { params: { time: '350ms', easing: 'ease' } },\n);\n\nexport const expandY = animation(\n [\n style({ height: '0', overflow: 'hidden', 'box-sizing': 'border-box' }),\n animate('{{ time }} {{ easing }}', style({ height: '*', padding: '*' })),\n ],\n { params: { time: '350ms', easing: 'ease' } },\n);\n\nexport const expandYWithMargin = animation(\n [\n style({ 'margin-top': '-100%' }),\n animate('{{ time }} {{ easing }}', style({ 'margin-top': '0' })),\n ],\n {\n params: { time: '500ms', easing: 'ease' },\n },\n);\n\nexport const expandX = animation(\n [\n style({ width: '0', overflow: 'hidden', 'box-sizing': 'border-box' }),\n animate('{{ time }} {{ easing }}', style({ width: '*', padding: '*' })),\n ],\n { params: { time: '350ms', easing: 'ease' } },\n);\n\nexport const collapse = trigger('collapse', [\n state('collapsed', style({ height: '0', overflow: 'hidden' })),\n state('expanded', style({ height: '*', overflow: 'hidden' })),\n transition('expanded => collapsed', useAnimation(collapseY)),\n transition('collapsed => expanded', useAnimation(expandY)),\n]);\n\nexport const collapseWithMargin = trigger('collapseWithMargin', [\n state('collapsed', style({ 'margin-top': '-100%' })),\n state('expanded', style({ 'margin-top': '0' })),\n transition('expanded => collapsed', useAnimation(collapseYWithMargin), {\n params: { time: '400ms', easing: 'linear' },\n }),\n transition('collapsed => expanded', useAnimation(expandYWithMargin)),\n]);\n\nexport const collapseLinearWithMargin = trigger('collapseLinearWithMargin', [\n state('collapsed', style({ 'margin-top': '-100vh' })),\n state('expanded', style({ 'margin-top': '0' })),\n transition(\n 'expanded => collapsed',\n useAnimation(collapseYWithMargin, { params: { time: '200ms', easing: 'linear' } }),\n ),\n transition(\n 'collapsed => expanded',\n useAnimation(expandYWithMargin, { params: { time: '250ms', easing: 'linear' } }),\n ),\n]);\n","import { animate, animation, style } from '@angular/animations';\n\nexport const fadeIn = animation([style({ opacity: '0' }), animate('{{ time}} {{ easing }}', style({ opacity: '1' }))], {\n params: { time: '350ms', easing: 'ease' },\n});\n\nexport const fadeOut = animation(\n [style({ opacity: '1' }), animate('{{ time}} {{ easing }}', style({ opacity: '0' }))],\n { params: { time: '350ms', easing: 'ease' } },\n);\n\nexport const fadeInDown = animation(\n [\n style({ opacity: '0', transform: '{{ transform }} translateY(-20px)' }),\n animate('{{ time }} {{ easing }}', style({ opacity: '1', transform: '{{ transform }} translateY(0)' })),\n ],\n { params: { time: '350ms', easing: 'ease', transform: '' } },\n);\n\nexport const fadeInUp = animation(\n [\n style({ opacity: '0', transform: '{{ transform }} translateY(20px)' }),\n animate('{{ time }} {{ easing }}', style({ opacity: '1', transform: '{{ transform }} translateY(0)' })),\n ],\n { params: { time: '350ms', easing: 'ease', transform: '' } },\n);\n\nexport const fadeInLeft = animation(\n [\n style({ opacity: '0', transform: '{{ transform }} translateX(20px)' }),\n animate('{{ time }} {{ easing }}', style({ opacity: '1', transform: '{{ transform }} translateX(0)' })),\n ],\n { params: { time: '350ms', easing: 'ease', transform: '' } },\n);\n\nexport const fadeInRight = animation(\n [\n style({ opacity: '0', transform: '{{ transform }} translateX(-20px)' }),\n animate('{{ time }} {{ easing }}', style({ opacity: '1', transform: '{{ transform }} translateX(0)' })),\n ],\n { params: { time: '350ms', easing: 'ease', transform: '' } },\n);\n\nexport const fadeOutDown = animation(\n [\n style({ opacity: '1', transform: '{{ transform }} translateY(0)' }),\n animate('{{ time }} {{ easing }}', style({ opacity: '0', transform: '{{ transform }} translateY(20px)' })),\n ],\n { params: { time: '350ms', easing: 'ease', transform: '' } },\n);\n\nexport const fadeOutUp = animation(\n [\n style({ opacity: '1', transform: '{{ transform }} translateY(0)' }),\n animate('{{ time }} {{ easing }}', style({ opacity: '0', transform: '{{ transform }} translateY(-20px)' })),\n ],\n { params: { time: '350ms', easing: 'ease', transform: '' } },\n);\n\nexport const fadeOutLeft = animation(\n [\n style({ opacity: '1', transform: '{{ transform }} translateX(0)' }),\n animate('{{ time }} {{ easing }}', style({ opacity: '0', transform: '{{ transform }} translateX(20px)' })),\n ],\n { params: { time: '350ms', easing: 'ease', transform: '' } },\n);\n\nexport const fadeOutRight = animation(\n [\n style({ opacity: '1', transform: '{{ transform }} translateX(0)' }),\n animate('{{ time }} {{ easing }}', style({ opacity: '0', transform: '{{ transform }} translateX(-20px)' })),\n ],\n { params: { time: '350ms', easing: 'ease', transform: '' } },\n);\n","import { transition, trigger, useAnimation } from '@angular/animations';\nimport { fadeIn, fadeInDown, fadeOut } from './fade.animations';\n\nexport const fadeAnimation = trigger('fade', [\n transition(':enter', useAnimation(fadeIn)),\n transition(':leave', useAnimation(fadeOut)),\n]);\n\nexport const dialogAnimation = trigger('dialog', [\n transition(':enter', useAnimation(fadeInDown)),\n transition(':leave', useAnimation(fadeOut)),\n]);\n","import { animate, state, style, transition, trigger, query } from '@angular/animations';\nexport const slideFromBottom = trigger('slideFromBottom', [\n transition('* <=> *', [\n style({ 'margin-top': '20px', opacity: '0' }),\n animate('0.2s ease-out', style({ opacity: '1', 'margin-top': '0px' })),\n ]),\n]);\n","import { animate, query, style, transition, trigger } from '@angular/animations';\n\nexport const toastInOut = trigger('toastInOut', [\n transition('* <=> *', [\n query(\n ':enter',\n [\n style({ opacity: 0, transform: 'translateY(20px)' }),\n animate('350ms ease', style({ opacity: 1, transform: 'translateY(0)' })),\n ],\n { optional: true },\n ),\n query(':leave', animate('450ms ease', style({ opacity: 0 })), {\n optional: true,\n }),\n ]),\n]);\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || from);\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {\n ABP,\n getRoutePath,\n RouterEvents,\n RoutesService,\n SubscriptionService,\n TreeNode,\n} from '@abp/ng.core';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { map, startWith } from 'rxjs/operators';\nimport { eThemeSharedRouteNames } from '../../enums';\n\n@Component({\n selector: 'abp-breadcrumb',\n templateUrl: './breadcrumb.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [SubscriptionService],\n})\nexport class BreadcrumbComponent implements OnInit {\n segments: Partial<ABP.Route>[] = [];\n\n constructor(\n public readonly cdRef: ChangeDetectorRef,\n private router: Router,\n private routes: RoutesService,\n private subscription: SubscriptionService,\n private routerEvents: RouterEvents,\n ) {}\n\n ngOnInit(): void {\n this.subscription.addOne(\n this.routerEvents.getNavigationEvents('End').pipe(\n // tslint:disable-next-line:deprecation\n startWith(null),\n map(() => this.routes.search({ path: getRoutePath(this.router) })),\n ),\n route => {\n this.segments = [];\n if (route) {\n let node = { parent: route } as TreeNode<ABP.Route>;\n\n while (node.parent) {\n node = node.parent;\n const { parent, children, isLeaf, ...segment } = node;\n if (!isAdministration(segment)) this.segments.unshift(segment);\n }\n\n this.cdRef.detectChanges();\n }\n },\n );\n }\n}\n\nfunction isAdministration(route: ABP.Route) {\n return route.name === eThemeSharedRouteNames.Administration;\n}\n","import {\n Component,\n EventEmitter,\n Input,\n Output,\n ViewChild,\n ElementRef,\n Renderer2,\n OnInit,\n} from '@angular/core';\nimport { ABP } from '@abp/ng.core';\n\n@Component({\n selector: 'abp-button',\n template: `\n <button\n #button\n [id]=\"buttonId\"\n [attr.type]=\"buttonType\"\n [ngClass]=\"buttonClass\"\n [disabled]=\"loading || disabled\"\n (click.stop)=\"click.next($event); abpClick.next($event)\"\n (focus)=\"focus.next($event); abpFocus.next($event)\"\n (blur)=\"blur.next($event); abpBlur.next($event)\"\n >\n <i [ngClass]=\"icon\" class=\"mr-1\"></i><ng-content></ng-content>\n </button>\n `,\n})\nexport class ButtonComponent implements OnInit {\n @Input()\n buttonId = '';\n\n @Input()\n buttonClass = 'btn btn-primary';\n\n @Input()\n buttonType = 'button';\n\n @Input()\n iconClass: string;\n\n @Input()\n loading = false;\n\n @Input()\n disabled = false;\n\n @Input()\n attributes: ABP.Dictionary<string>;\n\n // tslint:disable\n @Output() readonly click = new EventEmitter<MouseEvent>();\n\n @Output() readonly focus = new EventEmitter<FocusEvent>();\n\n @Output() readonly blur = new EventEmitter<FocusEvent>();\n // tslint:enable\n\n @Output() readonly abpClick = new EventEmitter<MouseEvent>();\n\n @Output() readonly abpFocus = new EventEmitter<FocusEvent>();\n\n @Output() readonly abpBlur = new EventEmitter<FocusEvent>();\n\n @ViewChild('button', { static: true })\n buttonRef: ElementRef<HTMLButtonElement>;\n\n get icon(): string {\n return `${this.loading ? 'fa fa-spinner fa-spin' : this.iconClass || 'd-none'}`;\n }\n\n constructor(private renderer: Renderer2) {}\n\n ngOnInit() {\n if (this.attributes) {\n Object.keys(this.attributes).forEach(key => {\n this.renderer.setAttribute(this.buttonRef.nativeElement, key, this.attributes[key]);\n });\n }\n }\n}\n","import { Config, LocalizationParam } from '@abp/ng.core';\n\nexport namespace Confirmation {\n export interface Options {\n id?: any;\n dismissible?: boolean;\n messageLocalizationParams?: string[];\n titleLocalizationParams?: string[];\n hideCancelBtn?: boolean;\n hideYesBtn?: boolean;\n cancelText?: LocalizationParam;\n yesText?: LocalizationParam;\n }\n\n export interface DialogData {\n message: Config.LocalizationParam;\n title?: Config.LocalizationParam;\n severity?: Severity;\n options?: Partial<Options>;\n }\n\n export type Severity = 'neutral' | 'success' | 'info' | 'warning' | 'error';\n\n export enum Status {\n confirm = 'confirm',\n reject = 'reject',\n dismiss = 'dismiss',\n }\n}\n","import { ReplaySubject } from 'rxjs';\n\nexport function getRandomBackgroundColor(count) {\n const colors = [];\n\n for (let i = 0; i < count; i++) {\n const r = ((i + 5) * (i + 5) * 474) % 255;\n const g = ((i + 5) * (i + 5) * 1600) % 255;\n const b = ((i + 5) * (i + 5) * 84065) % 255;\n colors.push('rgba(' + r + ', ' + g + ', ' + b + ', 0.7)');\n }\n\n return colors;\n}\n\nexport const chartJsLoaded$ = new ReplaySubject(1);\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnDestroy,\n Output,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { chartJsLoaded$ } from '../../utils/widget-utils';\ndeclare const Chart: any;\n\n@Component({\n selector: 'abp-chart',\n templateUrl: './chart.component.html',\n})\nexport class ChartComponent implements AfterViewInit, OnDestroy {\n @Input() type: string;\n\n @Input() options: any = {};\n\n @Input() plugins: any[] = [];\n\n @Input() width: string;\n\n @Input() height: string;\n\n @Input() responsive = true;\n\n // tslint:disable-next-line: no-output-on-prefix\n @Output() readonly onDataSelect: EventEmitter<any> = new EventEmitter();\n\n @Output() readonly initialized = new BehaviorSubject(this);\n\n private _initialized: boolean;\n\n _data: any;\n\n chart: any;\n\n constructor(public el: ElementRef, private cdRef: ChangeDetectorRef) {}\n\n @Input() get data(): any {\n return this._data;\n }\n\n set data(val: any) {\n this._data = val;\n this.reinit();\n }\n\n get canvas() {\n return this.el.nativeElement.children[0].children[0];\n }\n\n get base64Image() {\n return this.chart.toBase64Image();\n }\n\n ngAfterViewInit() {\n chartJsLoaded$.subscribe(() => {\n this.testChartJs();\n\n this.initChart();\n this._initialized = true;\n });\n }\n\n testChartJs() {\n try {\n // tslint:disable-next-line: no-unused-expression\n Chart;\n } catch (error) {\n throw new Error(`Chart is not found. Import the Chart from app.module like shown below:\n import('chart.js');\n `);\n }\n }\n\n onCanvasClick = event => {\n if (this.chart) {\n const element = this.chart.getElementAtEvent(event);\n const dataset = this.chart.getDatasetAtEvent(event);\n if (element && element.length && dataset) {\n this.onDataSelect.emit({\n originalEvent: event,\n element: element[0],\n dataset,\n });\n }\n }\n };\n\n initChart = () => {\n const opts = this.options || {};\n opts.responsive = this.responsive;\n\n // allows chart to resize in responsive mode\n if (opts.responsive && (this.height || this.width)) {\n opts.maintainAspectRatio = false;\n }\n\n this.chart = new Chart(this.canvas, {\n type: this.type,\n data: this.data,\n options: this.options,\n plugins: this.plugins,\n });\n\n this.cdRef.detectChanges();\n };\n\n generateLegend = () => {\n if (this.chart) {\n return this.chart.generateLegend();\n }\n };\n\n refresh = () => {\n if (this.chart) {\n this.chart.update();\n this.cdRef.detectChanges();\n }\n };\n\n reinit = () => {\n if (this.chart) {\n this.chart.destroy();\n this.initChart();\n }\n };\n\n ngOnDestroy() {\n if (this.chart) {\n this.chart.destroy();\n this._initialized = false;\n this.chart = null;\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport { Confirmation } from '../../models/confirmation';\n\n@Component({\n selector: 'abp-confirmation',\n templateUrl: './confirmation.component.html',\n styleUrls: ['./confirmation.component.scss'],\n})\nexport class ConfirmationComponent {\n confirm = Confirmation.Status.confirm;\n reject = Confirmation.Status.reject;\n dismiss = Confirmation.Status.dismiss;\n\n confirmation$: ReplaySubject<Confirmation.DialogData>;\n\n clear: (status: Confirmation.Status) => void;\n\n close(status: Confirmation.Status) {\n this.clear(status);\n }\n\n getIconClass({ severity }: Confirmation.DialogData): string {\n switch (severity) {\n case 'info':\n return 'fa-info-circle';\n case 'success':\n return 'fa-check-circle';\n case 'warning':\n return 'fa-exclamation-triangle';\n case 'error':\n return 'fa-times-circle';\n default:\n return 'fa-question-circle';\n }\n }\n}\n","import { Config, SubscriptionService } from '@abp/ng.core';\nimport {\n AfterViewInit,\n ApplicationRef,\n Component,\n ComponentFactoryResolver,\n ElementRef,\n EmbeddedViewRef,\n Injector,\n OnDestroy,\n OnInit,\n Type,\n ViewChild,\n} from '@angular/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, filter } from 'rxjs/operators';\nimport snq from 'snq';\n\n@Component({\n selector: 'abp-http-error-wrapper',\n templateUrl: './http-error-wrapper.component.html',\n styleUrls: ['http-error-wrapper.component.scss'],\n providers: [SubscriptionService],\n})\nexport class HttpErrorWrapperComponent implements AfterViewInit, OnDestroy, OnInit {\n appRef: ApplicationRef;\n\n cfRes: ComponentFactoryResolver;\n\n injector: Injector;\n\n status = 0;\n\n title: Config.LocalizationParam = 'Oops!';\n\n details: Config.LocalizationParam = 'Sorry, an error has occured.';\n\n customComponent: Type<any> = null;\n\n destroy$: Subject<void>;\n\n hideCloseIcon = false;\n\n backgroundColor: string;\n\n isHomeShow = true;\n\n @ViewChild('container', { static: false })\n containerRef: ElementRef<HTMLDivElement>;\n\n get statusText(): string {\n return this.status ? `[${this.status}]` : '';\n }\n\n constructor(private subscription: SubscriptionService) {}\n\n ngOnInit() {\n this.backgroundColor =\n snq(() => window.getComputedStyle(document.body).getPropertyValue('background-color')) ||\n '#fff';\n }\n\n ngAfterViewInit() {\n if (this.customComponent) {\n const customComponentRef = this.cfRes\n .resolveComponentFactory(this.customComponent)\n .create(this.injector);\n customComponentRef.instance.errorStatus = this.status;\n customComponentRef.instance.destroy$ = this.destroy$;\n this.appRef.attachView(customComponentRef.hostView);\n this.containerRef.nativeElement.appendChild(\n (customComponentRef.hostView as EmbeddedViewRef<any>).rootNodes[0],\n );\n customComponentRef.changeDetectorRef.detectChanges();\n }\n\n const keyup$ = fromEvent(document, 'keyup').pipe(\n debounceTime(150),\n filter((key: KeyboardEvent) => key && key.key === 'Escape'),\n );\n this.subscription.addOne(keyup$, () => this.destroy());\n }\n\n ngOnDestroy() {}\n\n destroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { HttpWaitService, RouterWaitService, SubscriptionService } from '@abp/ng.core';\nimport { ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { combineLatest, Subscription, timer } from 'rxjs';\n\n@Component({\n selector: 'abp-loader-bar',\n template: `\n <div id=\"abp-loader-bar\" [ngClass]=\"containerClass\" [class.is-loading]=\"isLoading\">\n <div\n class=\"abp-progress\"\n [class.progressing]=\"progressLevel\"\n [style.width.vw]=\"progressLevel\"\n [ngStyle]=\"{\n 'background-color': color,\n 'box-shadow': boxShadow\n }\"\n ></div>\n </div>\n `,\n styleUrls: ['./loader-bar.component.scss'],\n providers: [SubscriptionService],\n})\nexport class LoaderBarComponent implements OnDestroy, OnInit {\n protected _isLoading: boolean;\n\n @Input()\n set isLoading(value: boolean) {\n this._isLoading = value;\n this.cdRef.detectChanges();\n }\n get isLoading(): boolean {\n return this._isLoading;\n }\n\n @Input()\n containerClass = 'abp-loader-bar';\n\n @Input()\n color = '#77b6ff';\n\n progressLevel = 0;\n\n interval = new Subscription();\n\n timer = new Subscription();\n\n intervalPeriod = 350;\n\n stopDelay = 800;\n\n private readonly clearProgress = () => {\n this.progressLevel = 0;\n this.cdRef.detectChanges();\n };\n\n private readonly reportProgress = () => {\n if (this.progressLevel < 75) {\n this.progressLevel += 1 + Math.random() * 9;\n } else if (this.progressLevel < 90) {\n this.progressLevel += 0.4;\n } else if (this.progressLevel < 100) {\n this.progressLevel += 0.1;\n } else {\n this.interval.unsubscribe();\n }\n this.cdRef.detectChanges();\n };\n\n get boxShadow(): string {\n return `0 0 10px rgba(${this.color}, 0.5)`;\n }\n\n constructor(\n private router: Router,\n private cdRef: ChangeDetectorRef,\n private subscription: SubscriptionService,\n private httpWaitService: HttpWaitService,\n private routerWaitService: RouterWaitService,\n ) {}\n\n ngOnInit() {\n this.subscribeLoading();\n }\n\n subscribeLoading() {\n this.subscription.addOne(\n combineLatest([this.httpWaitService.getLoading$(), this.routerWaitService.getLoading$()]),\n ([httpLoading, routerLoading]) => {\n if (httpLoading || routerLoading) this.startLoading();\n else this.stopLoading();\n },\n );\n }\n\n ngOnDestroy() {\n this.interval.unsubscribe();\n }\n\n startLoading() {\n if (this.isLoading || !this.interval.closed) return;\n\n this.isLoading = true;\n this.progressLevel = 0;\n this.cdRef.detectChanges();\n this.interval = timer(0, this.intervalPeriod).subscribe(this.reportProgress);\n this.timer.unsubscribe();\n }\n\n stopLoading() {\n this.interval.unsubscribe();\n\n this.progressLevel = 100;\n this.isLoading = false;\n\n if (!this.timer.closed) return;\n\n this.timer = timer(this.stopDelay).subscribe(this.clearProgress);\n }\n}\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'abp-loading',\n template: `\n <div class=\"abp-loading\">\n <i class=\"fa fa-spinner fa-pulse abp-spinner\"></i>\n </div>\n `,\n encapsulation: ViewEncapsulation.None,\n styles: [\n `\n .abp-loading {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n z-index: 1040;\n }\n\n .abp-loading .abp-spinner {\n position: absolute;\n top: 50%;\n left: 50%;\n font-size: 14px;\n -moz-transform: translateX(-50%) translateY(-50%);\n -o-transform: translateX(-50%) translateY(-50%);\n -ms-transform: translateX(-50%) translateY(-50%);\n -webkit-transform: translateX(-50%) translateY(-50%);\n transform: translateX(-50%) translateY(-50%);\n }\n `,\n ],\n})\nexport class LoadingComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {}\n}\n","import { ContentProjectionService, LocalizationParam, PROJECTION_STRATEGY } from '@abp/ng.core';\nimport { ComponentRef, Injectable } from '@angular/core';\nimport { fromEvent, Observable, ReplaySubject, Subject } from 'rxjs';\nimport { debounceTime, filter, takeUntil } from 'rxjs/operators';\nimport { ConfirmationComponent } from '../components/confirmation/confirmation.component';\nimport { Confirmation } from '../models/confirmation';\n\n@Injectable({ providedIn: 'root' })\nexport class ConfirmationService {\n status$: Subject<Confirmation.Status>;\n confirmation$ = new ReplaySubject<Confirmation.DialogData>(1);\n\n private containerComponentRef: ComponentRef<ConfirmationComponent>;\n\n clear = (status: Confirmation.Status = Confirmation.Status.dismiss) => {\n this.confirmation$.next();\n this.status$.next(status);\n };\n\n constructor(private contentProjectionService: ContentProjectionService) {}\n\n private setContainer() {\n this.containerComponentRef = this.contentProjectionService.projectContent(\n PROJECTION_STRATEGY.AppendComponentToBody(ConfirmationComponent, {\n confirmation$: this.confirmation$,\n clear: this.clear,\n }),\n );\n\n setTimeout(() => {\n this.containerComponentRef.changeDetectorRef.detectChanges();\n }, 0);\n }\n\n info(\n message: LocalizationParam,\n title: LocalizationParam,\n options?: Partial<Confirmation.Options>,\n ): Observable<Confirmation.Status> {\n return this.show(message, title, 'info', options);\n }\n\n success(\n message: LocalizationParam,\n title: LocalizationParam,\n options?: Partial<Confirmation.Options>,\n ): Observable<Confirmation.Status> {\n return this.show(message, title, 'success', options);\n }\n\n warn(\n message: LocalizationParam,\n title: LocalizationParam,\n options?: Partial<Confirmation.Options>,\n ): Observable<Confirmation.Status> {\n return this.show(message, title, 'warning', options);\n }\n\n error(\n message: LocalizationParam,\n title: LocalizationParam,\n options?: Partial<Confirmation.Options>,\n ): Observable<Confirmation.Status> {\n return this.show(message, title, 'error', options);\n }\n\n show(\n message: LocalizationParam,\n title: LocalizationParam,\n severity?: Confirmation.Severity,\n options = {} as Partial<Confirmation.Options>,\n ): Observable<Confirmation.Status> {\n if (!this.containerComponentRef) this.setContainer();\n\n this.confirmation$.next({\n message,\n title,\n severity: severity || 'neutral',\n options,\n });\n\n this.status$ = new Subject();\n const { dismissible = true } = options;\n if (dismissible) this.listenToEscape();\n\n return this.status$;\n }\n\n private listenToEscape() {\n fromEvent(document, 'keyup')\n .pipe(\n takeUntil(this.status$),\n debounceTime(150),\n filter((key: KeyboardEvent) => key && key.key === 'Escape'),\n )\n .subscribe(_ => {\n this.clear();\n });\n }\n}\n","import { InjectionToken } from '@angular/core';\n\n// TODO: Should be documented\nexport const SUPPRESS_UNSAVED_CHANGES_WARNING = new InjectionToken<boolean>(\n 'SUPPRESS_UNSAVED_CHANGES_WARNING',\n);\n","import { Injectable } from '@angular/core';\n\nexport type ModalDismissMode = 'hard' | 'soft';\n\nexport interface DismissableModal {\n dismiss(mode: ModalDismissMode);\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ModalRefService {\n modalRefs: DismissableModal[] = [];\n\n register(modal: DismissableModal) {\n this.modalRefs.push(modal);\n }\n unregister(modal: DismissableModal) {\n const index = this.modalRefs.indexOf(modal);\n if (index > -1) {\n this.modalRefs.splice(index, 1);\n }\n }\n\n dismissAll(mode: ModalDismissMode) {\n this.modalRefs.forEach(modal => modal.dismiss(mode));\n }\n}\n","import { SubscriptionService, uuid } from '@abp/ng.core';\nimport {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Inject,\n Input,\n isDevMode,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n TemplateRef,\n ViewChild\n} from '@angular/core';\nimport { NgbModal, NgbModalOptions, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { fromEvent, Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, takeUntil } from 'rxjs/operators';\nimport { Confirmation } from '../../models/confirmation';\nimport { ConfirmationService } from '../../services/confirmation.service';\nimport { SUPPRESS_UNSAVED_CHANGES_WARNING } from '../../tokens/suppress-unsaved-changes-warning.token';\nimport { ButtonComponent } from '../button/button.component';\nimport { DismissableModal, ModalDismissMode, ModalRefService } from './modal-ref.service';\n\nexport type ModalSize = 'sm' | 'md' | 'lg' | 'xl';\n\n@Component({\n selector: 'abp-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n providers: [SubscriptionService],\n})\nexport class ModalComponent implements OnInit, OnDestroy, DismissableModal {\n /**\n * @deprecated Use centered property of options input instead. To be deleted in v5.0.\n */\n @Input() centered = false;\n /**\n * @deprecated Use windowClass property of options input instead. To be deleted in v5.0.\n */\n @Input() modalClass = '';\n /**\n * @deprecated Use size property of options input instead. To be deleted in v5.0.\n */\n @Input() size: ModalSize = 'lg';\n\n @Input()\n get visible(): boolean {\n return this._visible;\n }\n set visible(value: boolean) {\n if (typeof value !== 'boolean') return;\n this.toggle$.next(value);\n }\n\n @Input()\n get busy(): boolean {\n return this._busy;\n }\n set busy(value: boolean) {\n if (this.abpSubmit && this.abpSubmit instanceof ButtonComponent) {\n this.abpSubmit.loading = value;\n }\n\n this._busy = value;\n }\n\n @Input() options: NgbModalOptions = {};\n\n @Input() suppressUnsavedChangesWarning = this.suppressUnsavedChangesWarningToken;\n\n @ViewChild('modalContent') modalContent: TemplateRef<any>;\n\n @ContentChild('abpHeader', { static: false }) abpHeader: TemplateRef<any>;\n\n @ContentChild('abpBody', { static: false }) abpBody: TemplateRef<any>;\n\n @ContentChild('abpFooter', { static: false }) abpFooter: TemplateRef<any>;\n\n @ContentChild(ButtonComponent, { static: false, read: ButtonComponent })\n abpSubmit: ButtonComponent;\n\n /**\n * @deprecated will be removed in v5.0\n */\n @ContentChild('abpClose', { static: false, read: ElementRef })\n abpClose: ElementRef<any>;\n\n @Output() readonly visibleChange = new EventEmitter<boolean>();\n\n @Output() readonly init = new EventEmitter<void>();\n\n @Output() readonly appear = new EventEmitter<void>();\n\n @Output() readonly disappear = new EventEmitter<void>();\n\n _visible = false;\n\n _busy = false;\n\n modalRef: NgbModalRef;\n\n isConfirmationOpen = false;\n\n destroy$ = new Subject<void>();\n\n modalIdentifier = `modal-${uuid()}`;\n\n private toggle$ = new Subject<boolean>();\n\n get modalWindowRef() {\n return document.querySelector(`ngb-modal-window.${this.modalIdentifier}`);\n }\n\n get isFormDirty(): boolean {\n return Boolean(this.modalWindowRef.querySelector('.ng-dirty'));\n }\n\n constructor(\n private confirmationService: ConfirmationService,\n private subscription: SubscriptionService,\n @Optional()\n @Inject(SUPPRESS_UNSAVED_CHANGES_WARNING)\n private suppressUnsavedChangesWarningToken: boolean,\n private modal: NgbModal,\n private modalRefService: ModalRefService,\n ) {\n this.initToggleStream();\n }\n ngOnInit(): void {\n this.modalRefService.register(this);\n }\n\n dismiss(mode: ModalDismissMode) {\n switch (mode) {\n case 'hard':\n this.visible = false;\n break;\n case 'soft':\n this.close();\n break;\n default:\n break;\n }\n }\n\n private initToggleStream() {\n this.subscription.addOne(this.toggle$.pipe(debounceTime(0), distinctUntilChanged()), value =>\n this.toggle(value),\n );\n }\n\n private toggle(value: boolean) {\n this._visible = value;\n this.visibleChange.emit(value);\n\n if (!value) {\n this.modalRef?.dismiss();\n this.disappear.emit();\n this.destroy$.next();\n return;\n }\n\n setTimeout(() => this.listen(), 0);\n this.modalRef = this.modal.open(this.modalContent, {\n // TODO: set size to 'lg' when removed the size variable\n size: this.size,\n centered: this.centered,\n keyboard: false,\n scrollable: true,\n beforeDismiss: () => {\n if (!this.visible) return true;\n\n this.close();\n return !this.visible;\n },\n ...this.options,\n windowClass: `${this.modalClass} ${this.options.windowClass || ''} ${this.modalIdentifier}`,\n });\n\n this.appear.emit();\n }\n\n ngOnDestroy(): void {\n this.modalRefService.unregister(this);\n this.toggle(false);\n this.destroy$.next();\n }\n\n close() {\n if (this.busy) return;\n\n if (this.isFormDirty && !this.suppressUnsavedChangesWarning) {\n if (this.isConfirmationOpen) return;\n\n this.isConfirmationOpen = true;\n this.confirmationService\n .warn(\n 'AbpAccount::AreYouSureYouWantToCancelEditingWarningMessage',\n 'AbpAccount::AreYouSure',\n { dismissible: false },\n )\n .subscribe((status: Confirmation.Status) => {\n this.isConfirmationOpen = false;\n if (status === Confirmation.Status.confirm) {\n this.visible = false;\n }\n });\n } else {\n this.visible = false;\n }\n }\n\n listen() {\n fromEvent(this.modalWindowRef, 'keyup')\n .pipe(\n takeUntil(this.destroy$),\n debounceTime(150),\n filter((key: KeyboardEvent) => key && key.key === 'Escape'),\n )\n .subscribe(() => this.close());\n\n fromEvent(window, 'beforeunload')\n .pipe(takeUntil(this.destroy$))\n .subscribe(event => {\n event.preventDefault();\n if (this.isFormDirty && !this.suppressUnsavedChangesWarning) {\n event.returnValue = true;\n } else {\n delete event.returnValue;\n }\n });\n\n setTimeout(() => {\n if (!this.abpClose) return;\n this.warnForDeprecatedClose();\n fromEvent(this.abpClose.nativeElement, 'click')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.close());\n }, 0);\n\n this.init.emit();\n }\n\n private warnForDeprecatedClose() {\n if (isDevMode()) {\n console.warn(\n 'Please use abpClose directive instead of #abpClose template variable. #abpClose will be removed in v5.0',\n );\n }\n }\n}\n","import { Directive, HostListener, Optional } from '@angular/core';\nimport { ModalComponent } from './modal.component';\n\n@Directive({ selector: '[abpClose]' })\nexport class ModalCloseDirective {\n constructor(@Optional() private modal: ModalComponent) {\n if (!modal) {\n console.error('Please use abpClose within an abp-modal');\n }\n }\n\n @HostListener('click')\n onClick() {\n this.modal?.close();\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n/**\n * @deprecated To be deleted in v5.0. Use ngx-datatale instead.\n */\n@Component({\n selector: 'abp-sort-order-icon',\n templateUrl: './sort-order-icon.component.html',\n})\nexport class SortOrderIconComponent {\n private _order: 'asc' | 'desc' | '';\n private _selectedSortKey: string;\n\n @Input()\n sortKey: string;\n\n @Input()\n set selectedSortKey(value: string) {\n this._selectedSortKey = value;\n this.selectedSortKeyChange.emit(value);\n }\n get selectedSortKey(): string {\n return this._selectedSortKey;\n }\n\n @Input()\n set order(value: 'asc' | 'desc' | '') {\n this._order = value;\n this.orderChange.emit(value);\n }\n get order(): 'asc' | 'desc' | '' {\n return this._order;\n }\n\n @Output() readonly orderChange = new EventEmitter<string>();\n @Output() readonly selectedSortKeyChange = new EventEmitter<string>();\n\n @Input()\n iconClass: string;\n\n get icon(): string {\n if (this.selectedSortKey === this.sortKey) return `sorting_${this.order}`;\n else return 'sorting';\n }\n\n sort(key: string) {\n this.selectedSortKey = key;\n switch (this.order) {\n case '':\n this.order = 'asc';\n this.orderChange.emit('asc');\n break;\n case 'asc':\n this.order = 'desc';\n this.orderChange.emit('desc');\n break;\n case 'desc':\n this.order = '';\n this.orderChange.emit('');\n break;\n }\n }\n}\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n // tslint:disable-next-line: component-selector\n selector: '[abp-table-empty-message]',\n template: `\n <td class=\"text-center\" [attr.colspan]=\"colspan\">\n {{ emptyMessage | abpLocalization }}\n </td>\n `\n})\nexport class TableEmptyMessageComponent {\n @Input()\n colspan = 2;\n\n @Input()\n message: string;\n\n @Input()\n localizationResource = 'AbpAccount';\n\n @Input()\n localizationProp = 'NoDataAvailableInDatatable';\n\n get emptyMessage(): string {\n return this.message || `${this.localizationResource}::${this.localizationProp}`;\n }\n}\n","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n TrackByFunction,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\n/**\n *\n * @deprecated To be deleted in v5.0. Use ngx-datatale instead.\n */\n@Component({\n selector: 'abp-table',\n templateUrl: 'table.component.html',\n styleUrls: ['table.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class TableComponent implements OnInit {\n private _totalRecords: number;\n bodyScrollLeft = 0;\n\n @Input()\n value: any[];\n\n @Input()\n headerTemplate: TemplateRef<any>;\n\n @Input()\n bodyTemplate: TemplateRef<any>;\n\n @Input()\n colgroupTemplate: TemplateRef<any>;\n\n @Input()\n scrollHeight: string;\n\n @Input()\n scrollable: boolean;\n\n @Input()\n rows: number;\n\n @Input()\n page = 1;\n\n @Input()\n trackingProp = 'id';\n\n @Input()\n emptyMessage = 'AbpAccount::NoDataAvailableInDatatable';\n\n @Output()\n readonly pageChange = new EventEmitter<number>();\n\n @ViewChild('wrapper', { read: ElementRef })\n wrapperRef: ElementRef<HTMLDivElement>;\n\n @Input()\n get totalRecords(): number {\n return this._totalRecords || this.value.length;\n }\n set totalRecords(newValue: number) {\n if (newValue < 0) this._totalRecords = 0;\n\n this._totalRecords = newValue;\n }\n\n get totalPages(): number {\n if (!this.rows) {\n return;\n }\n\n return Math.ceil(this.totalRecords / this.rows);\n }\n\n get slicedValue(): any[] {\n if (!this.rows || this.rows >= this.value.length) {\n return this.value;\n }\n\n const start = (this.page - 1) * this.rows;\n return this.value.slice(start, start + this.rows);\n }\n\n marginCalculator: MarginCalculator;\n\n trackByFn: TrackByFunction<any> = (_, value) => {\n return typeof value === 'object' ? value[this.trackingProp] || value : value;\n };\n\n ngOnInit() {\n this.marginCalculator = document.body.dir === 'rtl' ? rtlCalculator : ltrCalculator;\n }\n}\n\nfunction ltrCalculator(div: HTMLDivElement): string {\n return `0 auto 0 -${div.scrollLeft}px`;\n}\n\nfunction rtlCalculator(div: HTMLDivElement): string {\n return `0 ${-(div.scrollWidth - div.clientWidth - div.scrollLeft)}px 0 auto`;\n}\n\ntype MarginCalculator = (div: HTMLDivElement) => string;\n","import { Component, Input, OnInit } from '@angular/core';\nimport { toastInOut } from '../../animations/toast.animations';\nimport { Toaster } from '../../models/toaster';\nimport { ReplaySubject } from 'rxjs';\n\n@Component({\n selector: 'abp-toast-container',\n templateUrl: './toast-container.component.html',\n styleUrls: ['./toast-container.component.scss'],\n animations: [toastInOut],\n})\nexport class ToastContainerComponent implements OnInit {\n toasts$: ReplaySubject<Toaster.Toast[]>;\n\n toasts = [] as Toaster.Toast[];\n\n @Input()\n top: string;\n\n @Input()\n right = '30px';\n\n @Input()\n bottom = '30px';\n\n @Input()\n left: string;\n\n @Input()\n toastKey: string;\n\n ngOnInit() {\n this.toasts$.subscribe(toasts => {\n this.toasts = this.toastKey\n ? toasts.filter(t => {\n return t.options && t.options.containerKey !== this.toastKey;\n })\n : toasts;\n });\n }\n\n trackByFunc(index, toast) {\n if (!toast) return null;\n return toast.options.id;\n }\n}\n","import {\n ContentProjectionService,\n LocalizationParam,\n PROJECTION_STRATEGY,\n Strict,\n} from '@abp/ng.core';\nimport { ComponentRef, Injectable } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport snq from 'snq';\nimport { ToastContainerComponent } from '../components/toast-container/toast-container.component';\nimport { Toaster } from '../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToasterService implements ToasterContract {\n private toasts$ = new ReplaySubject<Toaster.Toast[]>(1);\n\n private lastId = -1;\n\n private toasts = [] as Toaster.Toast[];\n\n private containerComponentRef: ComponentRef<ToastContainerComponent>;\n\n constructor(private contentProjectionService: ContentProjectionService) {}\n\n private setContainer() {\n this.containerComponentRef = this.contentProjectionService.projectContent(\n PROJECTION_STRATEGY.AppendComponentToBody(ToastContainerComponent, { toasts$: this.toasts$ }),\n );\n\n this.containerComponentRef.changeDetectorRef.detectChanges();\n }\n\n /**\n * Creates an info toast with given parameters.\n * @param message Content of the toast\n * @param title Title of the toast\n * @param options Spesific style or structural options for individual toast\n */\n info(\n message: LocalizationParam,\n title?: LocalizationParam,\n options?: Partial<Toaster.ToastOptions>,\n ): Toaster.ToasterId {\n return this.show(message, title, 'info', options);\n }\n\n /**\n * Creates a success toast with given parameters.\n * @param message Content of the toast\n * @param title Title of the toast\n * @param options Spesific style or structural options for individual toast\n */\n success(\n message: LocalizationParam,\n title?: LocalizationParam,\n options?: Partial<Toaster.ToastOptions>,\n ): Toaster.ToasterId {\n return this.show(message, title, 'success', options);\n }\n\n /**\n * Creates a warning toast with given parameters.\n * @param message Content of the toast\n * @param title Title of the toast\n * @param options Spesific style or structural options for individual toast\n */\n warn(\n message: LocalizationParam,\n title?: LocalizationParam,\n options?: Partial<Toaster.ToastOptions>,\n ): Toaster.ToasterId {\n return this.show(message, title, 'warning', options);\n }\n\n /**\n * Creates an error toast with given parameters.\n * @param message Content of the toast\n * @param title Title of the toast\n * @param options Spesific style or structural options for individual toast\n */\n error(\n message: LocalizationParam,\n title?: LocalizationParam,\n options?: Partial<Toaster.ToastOptions>,\n ): Toaster.ToasterId {\n return this.show(message, title, 'error', options);\n }\n\n /**\n * Creates a toast with given parameters.\n * @param message Content of the toast\n * @param title Title of the toast\n * @param severity Sets color of the toast. \"success\", \"warning\" etc.\n * @param options Spesific style or structural options for individual toast\n */\n\n show(\n message: LocalizationParam,\n title: LocalizationParam = null,\n severity: Toaster.Severity = 'neutral',\n options = {} as Partial<Toaster.ToastOptions>,\n ): Toaster.ToasterId {\n if (!this.containerComponentRef) this.setContainer();\n\n const id = ++this.lastId;\n this.toasts.push({\n message,\n title,\n severity,\n options: { closable: true, id, ...options },\n });\n this.toasts$.next(this.toasts);\n return id;\n }\n\n /**\n * Removes the toast with given id.\n * @param id ID of the toast to be removed.\n */\n remove(id: number): void {\n this.toasts = this.toasts.filter(toast => snq(() => toast.options.id) !== id);\n this.toasts$.next(this.toasts);\n }\n\n /**\n * Removes all open toasts at once.\n */\n clear(containerKey?: string): void {\n this.toasts = !containerKey\n ? []\n : this.toasts.filter(toast => snq(() => toast.options.containerKey) !== containerKey);\n this.toasts$.next(this.toasts);\n }\n}\n\nexport type ToasterContract = Strict<ToasterService, Toaster.Service>;\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Toaster } from '../../models/toaster';\nimport { ToasterService } from '../../services/toaster.service';\nimport snq from 'snq';\n\n@Component({\n selector: 'abp-toast',\n templateUrl: './toast.component.html',\n styleUrls: ['./toast.component.scss'],\n})\nexport class ToastComponent implements OnInit {\n @Input()\n toast: Toaster.Toast;\n\n get severityClass(): string {\n if (!this.toast || !this.toast.severity) return '';\n return `abp-toast-${this.toast.severity}`;\n }\n\n get iconClass(): string {\n switch (this.toast.severity) {\n case 'success':\n return 'fa-check-circle';\n case 'info':\n return 'fa-info-circle';\n case 'warning':\n return 'fa-exclamation-triangle';\n case 'error':\n return 'fa-times-circle';\n default:\n return 'fa-exclamation-circle';\n }\n }\n\n constructor(private toasterService: ToasterService) {}\n\n ngOnInit() {\n if (snq(() => this.toast.options.sticky)) return;\n const timeout = snq(() => this.toast.options.life) || 5000;\n setTimeout(() => {\n this.close();\n }, timeout);\n }\n\n close() {\n this.toasterService.remove(this.toast.options.id);\n }\n\n tap() {\n if (this.toast.options?.tapToDismiss) this.close();\n }\n}\n","export default `\n.is-invalid .form-control {\n border-color: #dc3545;\n border-style: solid !important;\n padding-right: calc(1.5em + .75rem);\n background-image: url(data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e);\n background-repeat: no-repeat;\n background-position: right calc(.375em + .1875rem) center;\n background-size: calc(.75em + .375rem) calc(.75em + .375rem);\n}\n\n.is-invalid .invalid-feedback,\n.is-invalid + * .invalid-feedback {\n display: block;\n}\n\n.data-tables-filter {\n text-align: right;\n}\n\n[dir=rtl] .data-tables-filter {\n text-align: left;\n}\n\n.pointer {\n cursor: pointer;\n}\n\n.navbar .dropdown-submenu a::after {\n transform: rotate(-90deg);\n position: absolute;\n right: 16px;\n top: 18px;\n}\n\n.navbar .dropdown-menu {\n min-width: 215px;\n}\n\n.datatable-scroll {\n margin-bottom: 5px !important;\n width: unset !important;\n}\n\n.ui-table-scrollable-body::-webkit-scrollbar {\n height: 5px !important;\n width: 5px !important;\n}\n\n.ui-table-scrollable-body::-webkit-scrollbar-track {\n background: #ddd;\n}\n\n.ui-table-scrollable-body::-webkit-scrollbar-thumb {\n background: #8a8686;\n}\n\n.abp-ellipsis-inline {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.abp-ellipsis {\n overflow: hidden !important;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.ui-widget-overlay {\n z-index: 1000;\n}\n\n.color-white {\n color: #FFF !important;\n}\n\n.custom-checkbox > label {\n cursor: pointer;\n}\n\n/* <animations */\n\n.fade-in-top {\n animation: fadeInTop 0.2s ease-in-out;\n}\n\n.fade-out-top {\n animation: fadeOutTop 0.2s ease-in-out;\n}\n\n.abp-collapsed-height {\n -moz-transition: max-height linear 0.35s;\n -ms-transition: max-height linear 0.35s;\n -o-transition: max-height linear 0.35s;\n -webkit-transition: max-height linear 0.35s;\n overflow:hidden;\n transition:max-height 0.35s linear;\n height:auto;\n max-height: 0;\n}\n\n.abp-mh-25 {\n max-height: 25vh;\n}\n\n.abp-mh-50 {\n transition:max-height 0.65s linear;\n max-height: 50vh;\n}\n\n.abp-mh-75 {\n transition:max-height 0.85s linear;\n max-height: 75vh;\n}\n\n.abp-mh-100 {\n transition:max-height 1s linear;\n max-height: 100vh;\n}\n\n[class^=\"sorting\"] {\n opacity: .3;\n cursor: pointer;\n}\n[class^=\"sorting\"]:before {\n right: 0.5rem;\n content: \"↑\";\n}\n[class^=\"sorting\"]:after {\n right: 0.5rem;\n content: \"↓\";\n}\n\n.sorting_desc {\n opacity: 1;\n}\n.sorting_desc:before {\n opacity: .3;\n}\n\n.sorting_asc {\n opacity: 1;\n}\n.sorting_asc:after {\n opacity: .3;\n}\n.ngx-datatable.material {\n box-shadow: none;\n}\nngb-typeahead-window, ngb-typeahead-window.dropdown-menu {\n max-height: 25em;\n overflow-y: scroll !important;\n z-index: 1050;\n}\n\n@keyframes fadeInTop {\n from {\n transform: translateY(-5px);\n opacity: 0;\n }\n\n to {\n transform: translateY(0px);\n opacity: 1;\n }\n}\n\n@keyframes fadeOutTop {\n to {\n transform: translateY(-5px);\n opacity: 0;\n }\n}\n\n/* </animations */\n\n`;\n\nexport const BOOTSTRAP = 'bootstrap-{{dir}}.min.css';\n","export const DEFAULT_VALIDATION_BLUEPRINTS = {\n creditCard: 'AbpValidation::ThisFieldIsNotAValidCreditCardNumber.',\n email: 'AbpValidation::ThisFieldIsNotAValidEmailAddress.',\n invalid: 'AbpValidation::ThisFieldIsNotValid.',\n max: 'AbpValidation::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]',\n maxlength:\n 'AbpValidation::ThisFieldMustBeAStringOrArrayTypeWithAMaximumLengthOf{0}[{{ requiredLength }}]',\n min: 'AbpValidation::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]',\n minlength:\n 'AbpValidation::ThisFieldMustBeAStringOrArrayTypeWithAMinimumLengthOf{0}[{{ requiredLength }}]',\n ngbDate: 'AbpValidation::ThisFieldIsNotValid.',\n passwordMismatch: 'AbpIdentity::Volo.Abp.Identity:PasswordConfirmationFailed',\n range: 'AbpValidation::ThisFieldMustBeBetween{0}And{1}[{{ min }},{{ max }}]',\n required: 'AbpValidation::ThisFieldIsRequired.',\n url: 'AbpValidation::ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl',\n};\n","import {\n ComponentFactoryResolver,\n ComponentRef,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n HostBinding,\n Injector,\n Input,\n OnDestroy,\n OnInit,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { Subscription, timer } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { LoadingComponent } from '../components/loading/loading.component';\n\n@Directive({ selector: '[abpLoading]' })\nexport class LoadingDirective implements OnInit, OnDestroy {\n private _loading: boolean;\n\n @HostBinding('style.position')\n position = 'relative';\n\n @Input('abpLoading')\n get loading(): boolean {\n return this._loading;\n }\n\n set loading(newValue: boolean) {\n setTimeout(() => {\n if (!newValue && this.timerSubscription) {\n this.timerSubscription.unsubscribe();\n this.timerSubscription = null;\n this._loading = newValue;\n\n if (this.rootNode) {\n this.renderer.removeChild(this.rootNode.parentElement, this.rootNode);\n this.rootNode = null;\n }\n return;\n }\n\n this.timerSubscription = timer(this.delay)\n .pipe(take(1))\n .subscribe(() => {\n if (!this.componentRef) {\n this.componentRef = this.cdRes\n .resolveComponentFactory(LoadingComponent)\n .create(this.injector);\n }\n\n if (newValue && !this.rootNode) {\n this.rootNode = (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0];\n this.targetElement.appendChild(this.rootNode);\n } else if (this.rootNode) {\n this.renderer.removeChild(this.rootNode.parentElement, this.rootNode);\n this.rootNode = null;\n }\n\n this._loading = newValue;\n this.timerSubscription = null;\n });\n }, 0);\n }\n\n @Input('abpLoadingTargetElement')\n targetElement: HTMLElement;\n\n @Input('abpLoadingDelay')\n delay = 0;\n\n componentRef: ComponentRef<LoadingComponent>;\n rootNode: HTMLDivElement;\n timerSubscription: Subscription;\n\n constructor(\n private elRef: ElementRef<HTMLElement>,\n private vcRef: ViewContainerRef,\n private cdRes: ComponentFactoryResolver,\n private injector: Injector,\n private renderer: Renderer2,\n ) {}\n\n ngOnInit() {\n if (!this.targetElement) {\n const { offsetHeight, offsetWidth } = this.elRef.nativeElement;\n if (!offsetHeight && !offsetWidth && this.elRef.nativeElement.children.length) {\n this.targetElement = this.elRef.nativeElement.children[0] as HTMLElement;\n } else {\n this.targetElement = this.elRef.nativeElement;\n }\n }\n }\n\n ngOnDestroy() {\n if (this.timerSubscription) {\n this.timerSubscription.unsubscribe();\n }\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, Directive, HostBinding, Inject, Input, OnDestroy } from '@angular/core';\nimport { ColumnMode, DatatableComponent, ScrollerComponent } from '@swimlane/ngx-datatable';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\n@Directive({\n // tslint:disable-next-line\n selector: 'ngx-datatable[default]',\n exportAs: 'ngxDatatableDefault',\n})\nexport class NgxDatatableDefaultDirective implements AfterViewInit, OnDestroy {\n private subscription = new Subscription();\n\n private resizeDiff = 0;\n\n @Input() class = 'material bordered';\n\n @HostBinding('class')\n get classes(): string {\n return `ngx-datatable ${this.class}`;\n }\n\n constructor(private table: DatatableComponent, @Inject(DOCUMENT) private document: MockDocument) {\n this.table.columnMode = ColumnMode.force;\n this.table.footerHeight = 50;\n this.table.headerHeight = 50;\n this.table.rowHeight = 'auto';\n this.table.scrollbarH = true;\n this.table.virtualization = false;\n }\n\n private fixHorizontalGap(scroller: ScrollerComponent) {\n const { body, documentElement } = this.document;\n\n if (documentElement.scrollHeight !== documentElement.clientHeight) {\n if (this.resizeDiff === 0) {\n this.resizeDiff = window.innerWidth - body.offsetWidth;\n scroller.scrollWidth -= this.resizeDiff;\n }\n } else {\n scroller.scrollWidth += this.resizeDiff;\n this.resizeDiff = 0;\n }\n }\n\n private fixStyleOnWindowResize() {\n // avoided @HostListener('window:resize') in favor of performance\n const subscription = fromEvent(window, 'resize')\n .pipe(debounceTime(500))\n .subscribe(() => {\n const { scroller } = this.table.bodyComponent;\n\n if (!scroller) return;\n\n this.fixHorizontalGap(scroller);\n });\n\n this.subscription.add(subscription);\n }\n\n ngAfterViewInit() {\n this.fixStyleOnWindowResize();\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n\n// fix: https://github.com/angular/angular/issues/20351\ninterface MockDocument {\n body: MockBody;\n documentElement: MockDocumentElement;\n}\n\ninterface MockBody {\n offsetWidth: number;\n}\n\ninterface MockDocumentElement {\n clientHeight: number;\n scrollHeight: number;\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface NgxDatatableMessages {\n emptyMessage: string;\n totalMessage: string;\n selectedMessage: string;\n}\n\nexport const defaultNgxDatatableMessages = {\n emptyMessage: 'AbpUi::NoDataAvailableInDatatable',\n totalMessage: 'AbpUi::Total',\n selectedMessage: 'AbpUi::Selected',\n};\n\nexport const NGX_DATATABLE_MESSAGES = new InjectionToken<Partial<NgxDatatableMessages>>(\n 'NGX_DATATABLE_MESSAGES',\n);\n","import { ListService, LocalizationService } from '@abp/ng.core';\nimport {\n ChangeDetectorRef,\n Directive,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n SimpleChanges,\n} from '@angular/core';\nimport { DatatableComponent } from '@swimlane/ngx-datatable';\nimport { Subscription } from 'rxjs';\nimport {\n defaultNgxDatatableMessages,\n NgxDatatableMessages,\n NGX_DATATABLE_MESSAGES,\n} from '../tokens/ngx-datatable-messages.token';\n\n@Directive({\n // tslint:disable-next-line\n selector: 'ngx-datatable[list]',\n exportAs: 'ngxDatatableList',\n})\nexport class NgxDatatableListDirective implements OnChanges, OnDestroy, OnInit {\n private subscription = new Subscription();\n private querySubscription = new Subscription();\n\n @Input() list: ListService;\n\n constructor(\n private table: DatatableComponent,\n private cdRef: ChangeDetectorRef,\n private localizationService: LocalizationService,\n @Optional() @Inject(NGX_DATATABLE_MESSAGES) private ngxDatatableMessages: NgxDatatableMessages,\n ) {\n this.setInitialValues();\n }\n\n private setInitialValues() {\n this.table.externalPaging = true;\n this.table.externalSorting = true;\n\n const { emptyMessage, selectedMessage, totalMessage } =\n this.ngxDatatableMessages || defaultNgxDatatableMessages;\n\n this.table.messages = {\n emptyMessage: this.localizationService.instant(emptyMessage),\n totalMessage: this.localizationService.instant(totalMessage),\n selectedMessage: this.localizationService.instant(selectedMessage),\n };\n }\n\n private subscribeToPage() {\n const sub = this.table.page.subscribe(({ offset }) => {\n this.list.page = offset;\n this.table.offset = offset;\n });\n this.subscription.add(sub);\n }\n\n private subscribeToSort() {\n const sub = this.table.sort.subscribe(({ sorts: [{ prop, dir }] }) => {\n if (prop === this.list.sortKey && this.list.sortOrder === 'desc') {\n this.list.sortKey = '';\n this.list.sortOrder = '';\n this.table.sorts = [];\n this.cdRef.detectChanges();\n } else {\n this.list.sortKey = prop;\n this.list.sortOrder = dir;\n }\n });\n this.subscription.add(sub);\n }\n\n private subscribeToQuery() {\n if (!this.querySubscription.closed) this.querySubscription.unsubscribe();\n\n this.querySubscription = this.list.query$.subscribe(() => {\n const offset = this.list.page;\n if (this.table.offset !== offset) this.table.offset = offset;\n });\n }\n\n ngOnChanges({ list }: SimpleChanges) {\n this.subscribeToQuery();\n\n if (!list.firstChange) return;\n\n const { maxResultCount, page } = list.currentValue;\n this.table.limit = maxResultCount;\n this.table.offset = page;\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n this.querySubscription.unsubscribe();\n }\n\n ngOnInit() {\n this.subscribeToPage();\n this.subscribeToSort();\n }\n}\n","import { SortOrder, SortPipe } from '@abp/ng.core';\nimport {\n ChangeDetectorRef,\n Directive,\n Host,\n Input,\n OnChanges,\n Optional,\n Self,\n SimpleChanges,\n} from '@angular/core';\nimport clone from 'just-clone';\nimport snq from 'snq';\nimport { TableComponent } from '../components/table/table.component';\n\nexport interface TableSortOptions {\n key: string;\n order: SortOrder;\n}\n\n/**\n *\n * @deprecated To be deleted in v5.0\n */\n@Directive({\n selector: '[abpTableSort]',\n providers: [SortPipe],\n})\nexport class TableSortDirective implements OnChanges {\n @Input()\n abpTableSort: TableSortOptions;\n\n @Input()\n value: any[] = [];\n\n get table(): TableComponent | any {\n return (\n this.abpTable || snq(() => this.cdRef['_view'].component) || snq(() => this.cdRef['context']) // 'context' for ivy\n );\n }\n\n constructor(\n @Host() @Optional() @Self() private abpTable: TableComponent,\n private sortPipe: SortPipe,\n private cdRef: ChangeDetectorRef,\n ) {}\n\n ngOnChanges({ value, abpTableSort }: SimpleChanges) {\n if (this.table && (value || abpTableSort)) {\n this.abpTableSort = this.abpTableSort || ({} as TableSortOptions);\n this.table.value = this.sortPipe.transform(\n clone(this.value),\n this.abpTableSort.order,\n this.abpTableSort.key,\n );\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n NgModule,\n} from '@angular/core';\n\n@Directive({\n selector: '[abpEllipsis]',\n})\nexport class EllipsisDirective implements AfterViewInit {\n @Input('abpEllipsis')\n width: string;\n\n @HostBinding('title')\n @Input()\n title: string;\n\n @Input('abpEllipsisEnabled')\n enabled = true;\n\n @HostBinding('class.abp-ellipsis-inline')\n get inlineClass() {\n return this.enabled && this.width;\n }\n\n @HostBinding('class.abp-ellipsis')\n get class() {\n return this.enabled && !this.width;\n }\n\n @HostBinding('style.max-width')\n get maxWidth() {\n return this.enabled && this.width ? this.width || '170px' : undefined;\n }\n\n constructor(private cdRef: ChangeDetectorRef, private elRef: ElementRef) {}\n\n ngAfterViewInit() {\n this.title = this.title || (this.elRef.nativeElement as HTMLElement).innerText;\n this.cdRef.detectChanges();\n }\n}\n\n@NgModule({\n exports: [EllipsisDirective],\n declarations: [EllipsisDirective],\n})\nexport class EllipsisModule {}\n","import { InjectionToken } from '@angular/core';\nimport { HttpErrorConfig, HttpErrorHandler } from '../models/common';\n\nexport function httpErrorConfigFactory(config = {} as HttpErrorConfig) {\n if (config.errorScreen && config.errorScreen.component && !config.errorScreen.forWhichErrors) {\n config.errorScreen.forWhichErrors = [401, 403, 404, 500];\n }\n\n return {\n skipHandledErrorCodes: [],\n errorScreen: {},\n ...config,\n } as HttpErrorConfig;\n}\n\nexport const HTTP_ERROR_CONFIG = new InjectionToken<HttpErrorConfig>('HTTP_ERROR_CONFIG');\n\nexport const HTTP_ERROR_HANDLER = new InjectionToken<HttpErrorHandler>('HTTP_ERROR_HANDLER');\n","import { AuthService, LocalizationParam, RestOccurError, RouterEvents } from '@abp/ng.core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n EmbeddedViewRef,\n Inject,\n Injectable,\n Injector,\n RendererFactory2,\n} from '@angular/core';\nimport { NavigationError, ResolveEnd } from '@angular/router';\nimport { Actions, ofActionSuccessful } from '@ngxs/store';\nimport { Observable, of, Subject, throwError } from 'rxjs';\nimport { catchError, filter, map, switchMap } from 'rxjs/operators';\nimport snq from 'snq';\nimport { HttpErrorWrapperComponent } from '../components/http-error-wrapper/http-error-wrapper.component';\nimport { ErrorScreenErrorCodes, HttpErrorConfig } from '../models/common';\nimport { Confirmation } from '../models/confirmation';\nimport { ConfirmationService } from '../services/confirmation.service';\nimport { HTTP_ERROR_HANDLER } from '../tokens/http-error.token';\n\nexport const DEFAULT_ERROR_MESSAGES = {\n defaultError: {\n title: 'An error has occurred!',\n details: 'Error detail not sent by server.',\n },\n defaultError401: {\n title: 'You are not authenticated!',\n details: 'You should be authenticated (sign in) in order to perform this operation.',\n },\n defaultError403: {\n title: 'You are not authorized!',\n details: 'You are not allowed to perform this operation.',\n },\n defaultError404: {\n title: 'Resource not found!',\n details: 'The resource requested could not found on the server.',\n },\n defaultError500: {\n title: 'Internal server error',\n details: 'Error detail not sent by server.',\n },\n};\n\nexport const DEFAULT_ERROR_LOCALIZATIONS = {\n defaultError: {\n title: 'AbpUi::DefaultErrorMessage',\n details: 'AbpUi::DefaultErrorMessageDetail',\n },\n defaultError401: {\n title: 'AbpUi::DefaultErrorMessage401',\n details: 'AbpUi::DefaultErrorMessage401Detail',\n },\n defaultError403: {\n title: 'AbpUi::DefaultErrorMessage403',\n details: 'AbpUi::DefaultErrorMessage403Detail',\n },\n defaultError404: {\n title: 'AbpUi::DefaultErrorMessage404',\n details: 'AbpUi::DefaultErrorMessage404Detail',\n },\n defaultError500: {\n title: 'AbpUi::500Message',\n details: 'AbpUi::DefaultErrorMessage',\n },\n};\n\n@Injectable({ providedIn: 'root' })\nexport class ErrorHandler {\n componentRef: ComponentRef<HttpErrorWrapperComponent>;\n\n protected httpErrorHandler = this.injector.get(HTTP_ERROR_HANDLER, (_, err: HttpErrorResponse) =>\n throwError(err),\n );\n\n constructor(\n protected actions: Actions,\n protected routerEvents: RouterEvents,\n protected confirmationService: ConfirmationService,\n protected cfRes: ComponentFactoryResolver,\n protected rendererFactory: RendererFactory2,\n protected injector: Injector,\n @Inject('HTTP_ERROR_CONFIG') protected httpErrorConfig: HttpErrorConfig,\n ) {\n this.listenToRestError();\n this.listenToRouterError();\n this.listenToRouterDataResolved();\n }\n\n protected listenToRouterError() {\n this.routerEvents\n .getNavigationEvents('Error')\n .pipe(filter(this.filterRouteErrors))\n .subscribe(() => this.show404Page());\n }\n\n protected listenToRouterDataResolved() {\n this.routerEvents\n .getEvents(ResolveEnd)\n .pipe(filter(() => !!this.componentRef))\n .subscribe(() => {\n this.componentRef.destroy();\n this.componentRef = null;\n });\n }\n\n protected listenToRestError() {\n this.actions\n .pipe(\n ofActionSuccessful(RestOccurError),\n map(action => action.payload),\n filter(this.filterRestErrors),\n switchMap(this.executeErrorHandler),\n )\n .subscribe();\n }\n\n private executeErrorHandler = error => {\n const returnValue = this.httpErrorHandler(this.injector, error);\n\n return (returnValue instanceof Observable ? returnValue : of(null)).pipe(\n catchError(err => {\n this.handleError(err);\n return of(null);\n }),\n );\n };\n\n private handleError(err: any) {\n const body = snq(() => err.error.error, {\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,\n });\n\n if (err instanceof HttpErrorResponse && err.headers.get('_AbpErrorFormat')) {\n const confirmation$ = this.showError(null, null, body);\n\n if (err.status === 401) {\n confirmation$.subscribe(() => {\n this.navigateToLogin();\n });\n }\n } else {\n switch (err.status) {\n case 401:\n this.canCreateCustomError(401)\n ? this.show401Page()\n : this.showError(\n {\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError401.title,\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError401.title,\n },\n {\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError401.details,\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError401.details,\n },\n ).subscribe(() => this.navigateToLogin());\n break;\n case 403:\n this.createErrorComponent({\n title: {\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError403.title,\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError403.title,\n },\n details: {\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError403.details,\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError403.details,\n },\n status: 403,\n });\n break;\n case 404:\n this.canCreateCustomError(404)\n ? this.show404Page()\n : this.showError(\n {\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError404.details,\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError404.details,\n },\n {\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError404.title,\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError404.title,\n },\n );\n break;\n case 500:\n this.createErrorComponent({\n title: {\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError500.title,\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError500.title,\n },\n details: {\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError500.details,\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError500.details,\n },\n status: 500,\n });\n break;\n case 0:\n if (err.statusText === 'Unknown Error') {\n this.createErrorComponent({\n title: {\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,\n },\n details: err.message,\n isHomeShow: false,\n });\n }\n break;\n default:\n this.showError(\n {\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.details,\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.details,\n },\n {\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,\n },\n );\n break;\n }\n }\n }\n\n protected show401Page() {\n this.createErrorComponent({\n title: {\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError401.title,\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError401.title,\n },\n status: 401,\n });\n }\n\n protected show404Page() {\n this.createErrorComponent({\n title: {\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError404.title,\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError404.title,\n },\n status: 404,\n });\n }\n\n protected showError(\n message?: LocalizationParam,\n title?: LocalizationParam,\n body?: any,\n ): Observable<Confirmation.Status> {\n if (body) {\n if (body.details) {\n message = body.details;\n title = body.message;\n } else if (body.message) {\n title = {\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,\n };\n message = body.message;\n } else {\n message = body.message || {\n key: DEFAULT_ERROR_LOCALIZATIONS.defaultError.title,\n defaultValue: DEFAULT_ERROR_MESSAGES.defaultError.title,\n };\n }\n }\n\n return this.confirmationService.error(message, title, {\n hideCancelBtn: true,\n yesText: 'AbpAccount::Close',\n });\n }\n\n private navigateToLogin() {\n this.injector.get(AuthService).navigateToLogin();\n }\n\n createErrorComponent(instance: Partial<HttpErrorWrapperComponent>) {\n const renderer = this.rendererFactory.createRenderer(null, null);\n const host = renderer.selectRootElement(document.body, true);\n\n this.componentRef = this.cfRes\n .resolveComponentFactory(HttpErrorWrapperComponent)\n .create(this.injector);\n\n for (const key in instance) {\n /* istanbul ignore else */\n if (this.componentRef.instance.hasOwnProperty(key)) {\n this.componentRef.instance[key] = instance[key];\n }\n }\n\n this.componentRef.instance.hideCloseIcon = this.httpErrorConfig.errorScreen.hideCloseIcon;\n const appRef = this.injector.get(ApplicationRef);\n\n if (this.canCreateCustomError(instance.status as ErrorScreenErrorCodes)) {\n this.componentRef.instance.cfRes = this.cfRes;\n this.componentRef.instance.appRef = appRef;\n this.componentRef.instance.injector = this.injector;\n this.componentRef.instance.customComponent = this.httpErrorConfig.errorScreen.component;\n }\n\n appRef.attachView(this.componentRef.hostView);\n renderer.appendChild(host, (this.componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0]);\n\n const destroy$ = new Subject<void>();\n this.componentRef.instance.destroy$ = destroy$;\n destroy$.subscribe(() => {\n this.componentRef.destroy();\n this.componentRef = null;\n });\n }\n\n canCreateCustomError(status: ErrorScreenErrorCodes): boolean {\n return snq(\n () =>\n this.httpErrorConfig.errorScreen.component &&\n this.httpErrorConfig.errorScreen.forWhichErrors.indexOf(status) > -1,\n );\n }\n\n protected filterRestErrors = ({ status }: HttpErrorResponse): boolean => {\n if (typeof status !== 'number') return false;\n\n return this.httpErrorConfig.skipHandledErrorCodes.findIndex(code => code === status) < 0;\n };\n\n protected filterRouteErrors = (navigationError: NavigationError): boolean => {\n return (\n snq(() => navigationError.error.message.indexOf('Cannot match') > -1) &&\n this.httpErrorConfig.skipHandledErrorCodes.findIndex(code => code === 404) < 0\n );\n };\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const LAZY_STYLES = new InjectionToken<string[]>('LAZY_STYLES');\n","import {\n getLocaleDirection,\n LazyLoadService,\n LOADING_STRATEGY,\n LocalizationService,\n} from '@abp/ng.core';\nimport { Injectable, Injector } from '@angular/core';\nimport { map, startWith } from 'rxjs/operators';\nimport { BOOTSTRAP } from '../constants/styles';\nimport { LocaleDirection } from '../models/common';\nimport { LAZY_STYLES } from '../tokens/lazy-styles.token';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LazyStyleHandler {\n private lazyLoad: LazyLoadService;\n private styles: string[];\n private _dir: LocaleDirection = 'ltr';\n\n readonly loaded = new Map<string, HTMLLinkElement>();\n\n set dir(dir: LocaleDirection) {\n if (dir === this._dir) return;\n\n this.switchCSS(dir);\n this.setBodyDir(dir);\n this._dir = dir;\n }\n\n get dir(): LocaleDirection {\n return this._dir;\n }\n\n constructor(injector: Injector) {\n this.setStyles(injector);\n this.setLazyLoad(injector);\n this.listenToLanguageChanges(injector);\n }\n\n private getHrefFromLink(link: HTMLLinkElement | null): string {\n if (!link) return '';\n\n const a = document.createElement('a');\n a.href = link.href;\n return a.pathname.replace(/^\\//, '');\n }\n\n private getLoadedBootstrap(): LoadedStyle {\n const href = createLazyStyleHref(BOOTSTRAP, this.dir);\n const selector = `[href*=\"${href.replace(/\\.css$/, '')}\"]`;\n const link = document.querySelector<HTMLLinkElement>(selector);\n return { href, link };\n }\n\n private listenToLanguageChanges(injector: Injector) {\n const l10n = injector.get(LocalizationService);\n\n // will always listen, no need to unsubscribe\n l10n.languageChange$.pipe(startWith(l10n.currentLang)).subscribe(locale => {\n this.dir = getLocaleDirection(locale);\n });\n }\n\n private setBodyDir(dir: LocaleDirection) {\n document.body.dir = dir;\n }\n\n private setLazyLoad(injector: Injector) {\n this.lazyLoad = injector.get(LazyLoadService);\n const { href, link } = this.getLoadedBootstrap();\n this.lazyLoad.loaded.set(href, link);\n }\n\n private setStyles(injector: Injector) {\n this.styles = injector.get(LAZY_STYLES, [BOOTSTRAP]);\n }\n\n private switchCSS(dir: LocaleDirection) {\n this.styles.forEach(style => {\n const oldHref = createLazyStyleHref(style, this.dir);\n const newHref = createLazyStyleHref(style, dir);\n const link = this.loaded.get(newHref);\n const href = this.getHrefFromLink(link) || newHref;\n\n const strategy = LOADING_STRATEGY.PrependAnonymousStyleToHead(href);\n this.lazyLoad.load(strategy).subscribe(() => {\n const oldLink = this.lazyLoad.loaded.get(oldHref) as HTMLLinkElement;\n this.loaded.delete(newHref);\n this.loaded.set(oldHref, oldLink);\n const newLink = this.lazyLoad.loaded.get(href) as HTMLLinkElement;\n this.lazyLoad.loaded.delete(href);\n this.lazyLoad.loaded.set(newHref, newLink);\n this.lazyLoad.remove(oldHref);\n });\n });\n }\n}\n\nexport function createLazyStyleHref(style: string, dir: string): string {\n return style.replace(/{{\\s*dir\\s*}}/g, dir);\n}\n\nexport function initLazyStyleHandler(injector: Injector) {\n return () => new LazyStyleHandler(injector);\n}\n\ninterface LoadedStyle {\n href: string;\n link: HTMLLinkElement;\n}\n","import { Type } from '@angular/core';\n\nexport class NavItem {\n id: string | number;\n component?: Type<any>;\n html?: string;\n action?: () => void;\n order?: number;\n requiredPolicy?: string;\n visible?: () => boolean;\n constructor(props: Partial<NavItem>) {\n props = { ...props, visible: props.visible || (() => true) };\n Object.assign(this, props);\n }\n}\n","import { APP_INITIALIZER } from '@angular/core';\nimport { NgbInputDatepickerConfig, NgbTypeaheadConfig } from '@ng-bootstrap/ng-bootstrap';\n\nexport const NG_BOOTSTRAP_CONFIG_PROVIDERS = [\n {\n provide: APP_INITIALIZER,\n useFactory: configureNgBootstrap,\n deps: [NgbInputDatepickerConfig, NgbTypeaheadConfig],\n multi: true,\n },\n];\n\nexport function configureNgBootstrap(\n datepicker: NgbInputDatepickerConfig,\n typeahead: NgbTypeaheadConfig,\n) {\n return () => {\n datepicker.container = 'body';\n typeahead.container = 'body';\n };\n}\n","import { RoutesService } from '@abp/ng.core';\nimport { APP_INITIALIZER } from '@angular/core';\nimport { eThemeSharedRouteNames } from '../enums/route-names';\n\nexport const THEME_SHARED_ROUTE_PROVIDERS = [\n { provide: APP_INITIALIZER, useFactory: configureRoutes, deps: [RoutesService], multi: true },\n];\n\nexport function configureRoutes(routesService: RoutesService) {\n return () => {\n routesService.add([\n {\n path: undefined,\n name: eThemeSharedRouteNames.Administration,\n iconClass: 'fa fa-wrench',\n order: 100,\n },\n ]);\n };\n}\n","import { Component, ViewChild, ViewContainerRef } from '@angular/core';\n\n/**\n * @deprecated To be removed in v5.0\n */\n@Component({\n selector: 'abp-modal-container',\n template: '<ng-container #container></ng-container>',\n})\nexport class ModalContainerComponent {\n @ViewChild('container', { static: true, read: ViewContainerRef })\n container: ViewContainerRef;\n}\n","import { ContentProjectionService, PROJECTION_STRATEGY } from '@abp/ng.core';\nimport { ComponentRef, Injectable, TemplateRef, ViewContainerRef, OnDestroy } from '@angular/core';\nimport { ModalContainerComponent } from '../components/modal/modal-container.component';\n\n/**\n * @deprecated Use ng-bootstrap modal. To be deleted in v5.0.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService implements OnDestroy {\n private containerComponentRef: ComponentRef<ModalContainerComponent>;\n\n constructor(private contentProjectionService: ContentProjectionService) {\n this.setContainer();\n }\n\n private setContainer() {\n this.containerComponentRef = this.contentProjectionService.projectContent(\n PROJECTION_STRATEGY.AppendComponentToBody(ModalContainerComponent),\n );\n\n this.containerComponentRef.changeDetectorRef.detectChanges();\n }\n\n clearModal() {\n this.getContainer().clear();\n this.detectChanges();\n }\n\n detectChanges() {\n this.containerComponentRef.changeDetectorRef.detectChanges();\n }\n\n getContainer(): ViewContainerRef {\n return this.containerComponentRef.instance.container;\n }\n\n renderTemplate<T extends any>(template: TemplateRef<T>, context?: T) {\n const containerRef = this.getContainer();\n\n const strategy = PROJECTION_STRATEGY.ProjectTemplateToContainer(\n template,\n containerRef,\n context,\n );\n\n this.contentProjectionService.projectContent(strategy);\n }\n\n ngOnDestroy() {\n this.containerComponentRef.destroy();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { NavItem } from '../models/nav-item';\n\n@Injectable({ providedIn: 'root' })\nexport class NavItemsService {\n private _items$ = new BehaviorSubject<NavItem[]>([]);\n\n get items(): NavItem[] {\n return this._items$.value;\n }\n\n get items$(): Observable<NavItem[]> {\n return this._items$.asObservable();\n }\n\n addItems(newItems: NavItem[]) {\n const items = [...this.items];\n newItems.forEach(item => items.push(new NavItem(item)));\n items.sort(sortItems);\n this._items$.next(items);\n }\n\n removeItem(id: string | number) {\n const index = this.items.findIndex(item => item.id === id);\n\n if (index < 0) return;\n\n const items = [...this.items.slice(0, index), ...this.items.slice(index + 1)];\n this._items$.next(items);\n }\n\n patchItem(id: string | number, item: Partial<Omit<NavItem, 'id'>>) {\n const index = this.items.findIndex(i => i.id === id);\n\n if (index < 0) return;\n\n const items = [...this.items];\n items[index] = new NavItem({ ...items[index], ...item });\n items.sort(sortItems);\n this._items$.next(items);\n }\n}\n\nfunction sortItems(a: NavItem, b: NavItem) {\n if (!a.order) return 1;\n if (!b.order) return -1;\n\n return a.order - b.order;\n}\n","import { Injectable } from '@angular/core';\nimport { InternalStore } from '@abp/ng.core';\n\nexport interface PageAlert {\n type: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'light' | 'dark';\n message: string;\n dismissible?: boolean;\n title?: string;\n messageLocalizationParams?: string[];\n titleLocalizationParams?: string[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class PageAlertService {\n private alerts = new InternalStore<PageAlert[]>([]);\n\n alerts$ = this.alerts.sliceState(state => state);\n\n constructor() {}\n\n show(alert: PageAlert) {\n const newAlert: PageAlert = {\n ...alert,\n dismissible: alert.dismissible ?? true,\n };\n this.alerts.set([newAlert, ...this.alerts.state]);\n }\n\n remove(index: number) {\n const alerts = [...this.alerts.state];\n alerts.splice(index, 1);\n this.alerts.set(alerts);\n }\n}\n","import { CONTENT_STRATEGY, DomInsertionService } from '@abp/ng.core';\nimport { inject, InjectionToken } from '@angular/core';\nimport styles from '../constants/styles';\nimport { chartJsLoaded$ } from '../utils/widget-utils';\n\nexport const THEME_SHARED_APPEND_CONTENT = new InjectionToken<void>('THEME_SHARED_APPEND_CONTENT', {\n providedIn: 'root',\n factory: () => {\n const domInsertion: DomInsertionService = inject(DomInsertionService);\n\n domInsertion.insertContent(CONTENT_STRATEGY.AppendStyleToHead(styles));\n\n import('chart.js').then(() => chartJsLoaded$.next(true));\n },\n});\n","import { ApplicationLocalizationConfigurationDto, ConfigStateService } from '@abp/ng.core';\nimport { formatDate } from '@angular/common';\nimport { Inject, Injectable, LOCALE_ID } from '@angular/core';\nimport { NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\nimport snq from 'snq';\n\nfunction isNumber(value: any): boolean {\n return !isNaN(toInteger(value));\n}\n\nfunction toInteger(value: any): number {\n return parseInt(`${value}`, 10);\n}\n\n@Injectable()\nexport class DateParserFormatter extends NgbDateParserFormatter {\n constructor(private configState: ConfigStateService, @Inject(LOCALE_ID) private locale: string) {\n super();\n }\n\n parse(value: string): NgbDateStruct {\n if (value) {\n const dateParts = value.trim().split('-');\n if (dateParts.length === 1 && isNumber(dateParts[0])) {\n return { year: toInteger(dateParts[0]), month: null, day: null };\n } else if (dateParts.length === 2 && isNumber(dateParts[0]) && isNumber(dateParts[1])) {\n return { year: toInteger(dateParts[0]), month: toInteger(dateParts[1]), day: null };\n } else if (\n dateParts.length === 3 &&\n isNumber(dateParts[0]) &&\n isNumber(dateParts[1]) &&\n isNumber(dateParts[2])\n ) {\n return {\n year: toInteger(dateParts[0]),\n month: toInteger(dateParts[1]),\n day: toInteger(dateParts[2]),\n };\n }\n }\n return null;\n }\n\n format(date: NgbDateStruct): string {\n if (!date) return '';\n\n const localization: ApplicationLocalizationConfigurationDto = this.configState.getOne(\n 'localization',\n );\n\n const dateFormat =\n snq(() => localization.currentCulture.dateTimeFormat.shortDatePattern) || 'yyyy-MM-dd';\n\n return formatDate(new Date(date.year, date.month - 1, date.day), dateFormat, this.locale);\n }\n}\n","import { CoreModule, noop } from '@abp/ng.core';\nimport { DatePipe } from '@angular/common';\nimport { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { NgbDateParserFormatter, NgbPaginationModule } from '@ng-bootstrap/ng-bootstrap';\nimport {\n defaultMapErrorsFn,\n NgxValidateCoreModule,\n VALIDATION_BLUEPRINTS,\n VALIDATION_MAP_ERRORS_FN,\n VALIDATION_VALIDATE_ON_SUBMIT,\n} from '@ngx-validate/core';\nimport { NgxDatatableModule } from '@swimlane/ngx-datatable';\nimport { BreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';\nimport { ButtonComponent } from './components/button/button.component';\nimport { ChartComponent } from './components/chart/chart.component';\nimport { ConfirmationComponent } from './components/confirmation/confirmation.component';\nimport { HttpErrorWrapperComponent } from './components/http-error-wrapper/http-error-wrapper.component';\nimport { LoaderBarComponent } from './components/loader-bar/loader-bar.component';\nimport { LoadingComponent } from './components/loading/loading.component';\nimport { ModalCloseDirective } from './components/modal/modal-close.directive';\nimport { ModalContainerComponent } from './components/modal/modal-container.component';\nimport { ModalComponent } from './components/modal/modal.component';\nimport { SortOrderIconComponent } from './components/sort-order-icon/sort-order-icon.component';\nimport { TableEmptyMessageComponent } from './components/table-empty-message/table-empty-message.component';\nimport { TableComponent } from './components/table/table.component';\nimport { ToastContainerComponent } from './components/toast-container/toast-container.component';\nimport { ToastComponent } from './components/toast/toast.component';\nimport { DEFAULT_VALIDATION_BLUEPRINTS } from './constants/validation';\nimport { EllipsisModule } from './directives/ellipsis.directive';\nimport { LoadingDirective } from './directives/loading.directive';\nimport { NgxDatatableDefaultDirective } from './directives/ngx-datatable-default.directive';\nimport { NgxDatatableListDirective } from './directives/ngx-datatable-list.directive';\nimport { TableSortDirective } from './directives/table-sort.directive';\nimport { ErrorHandler } from './handlers/error.handler';\nimport { initLazyStyleHandler } from './handlers/lazy-style.handler';\nimport { RootParams } from './models/common';\nimport { NG_BOOTSTRAP_CONFIG_PROVIDERS } from './providers';\nimport { THEME_SHARED_ROUTE_PROVIDERS } from './providers/route.provider';\nimport { THEME_SHARED_APPEND_CONTENT } from './tokens/append-content.token';\nimport { httpErrorConfigFactory, HTTP_ERROR_CONFIG } from './tokens/http-error.token';\nimport { DateParserFormatter } from './utils/date-parser-formatter';\n\nconst declarationsWithExports = [\n BreadcrumbComponent,\n ButtonComponent,\n ChartComponent,\n ConfirmationComponent,\n LoaderBarComponent,\n LoadingComponent,\n ModalComponent,\n TableComponent,\n TableEmptyMessageComponent,\n ToastComponent,\n ToastContainerComponent,\n SortOrderIconComponent,\n NgxDatatableDefaultDirective,\n NgxDatatableListDirective,\n LoadingDirective,\n TableSortDirective,\n ModalCloseDirective,\n];\n\n@NgModule({\n imports: [\n CoreModule,\n NgxDatatableModule,\n NgxValidateCoreModule,\n NgbPaginationModule,\n EllipsisModule,\n ],\n declarations: [...declarationsWithExports, HttpErrorWrapperComponent, ModalContainerComponent],\n exports: [NgxDatatableModule, EllipsisModule, ...declarationsWithExports],\n providers: [DatePipe],\n entryComponents: [\n HttpErrorWrapperComponent,\n LoadingComponent,\n ModalContainerComponent,\n ToastContainerComponent,\n ConfirmationComponent,\n ],\n})\nexport class BaseThemeSharedModule {}\n\n@NgModule({\n imports: [BaseThemeSharedModule],\n exports: [BaseThemeSharedModule],\n})\nexport class ThemeSharedModule {\n static forRoot(\n { httpErrorConfig, validation = {} } = {} as RootParams,\n ): ModuleWithProviders<ThemeSharedModule> {\n return {\n ngModule: ThemeSharedModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [ErrorHandler],\n useFactory: noop,\n },\n THEME_SHARED_ROUTE_PROVIDERS,\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [THEME_SHARED_APPEND_CONTENT],\n useFactory: noop,\n },\n {\n provide: APP_INITIALIZER,\n multi: true,\n deps: [Injector],\n useFactory: initLazyStyleHandler,\n },\n { provide: HTTP_ERROR_CONFIG, useValue: httpErrorConfig },\n {\n provide: 'HTTP_ERROR_CONFIG',\n useFactory: httpErrorConfigFactory,\n deps: [HTTP_ERROR_CONFIG],\n },\n { provide: NgbDateParserFormatter, useClass: DateParserFormatter },\n NG_BOOTSTRAP_CONFIG_PROVIDERS,\n {\n provide: VALIDATION_BLUEPRINTS,\n useValue: {\n ...DEFAULT_VALIDATION_BLUEPRINTS,\n ...(validation.blueprints || {}),\n },\n },\n {\n provide: VALIDATION_MAP_ERRORS_FN,\n useValue: validation.mapErrorsFn || defaultMapErrorsFn,\n },\n {\n provide: VALIDATION_VALIDATE_ON_SUBMIT,\n useValue: validation.validateOnSubmit,\n },\n ],\n };\n }\n}\n","import { ABP, ConfigStateService } from '@abp/ng.core';\nimport { Injector } from '@angular/core';\nimport { ValidatorFn, Validators } from '@angular/forms';\nimport { PasswordRules, validatePassword } from '@ngx-validate/core';\n\nconst { minLength, maxLength } = Validators;\n\nexport function getPasswordValidators(injector: Injector): ValidatorFn[] {\n const getRule = getRuleFn(injector);\n\n const passwordRulesArr = [] as PasswordRules;\n let requiredLength = 1;\n\n if (getRule('RequireDigit') === 'true') {\n passwordRulesArr.push('number');\n }\n\n if (getRule('RequireLowercase') === 'true') {\n passwordRulesArr.push('small');\n }\n\n if (getRule('RequireUppercase') === 'true') {\n passwordRulesArr.push('capital');\n }\n\n if (getRule('RequireNonAlphanumeric') === 'true') {\n passwordRulesArr.push('special');\n }\n\n if (Number.isInteger(+getRule('RequiredLength'))) {\n requiredLength = +getRule('RequiredLength');\n }\n\n return [validatePassword(passwordRulesArr), minLength(requiredLength), maxLength(128)];\n}\n\nfunction getRuleFn(injector: Injector) {\n const configState = injector.get(ConfigStateService);\n\n return (key: string) => {\n const passwordRules: ABP.Dictionary<string> = configState.getSettings('Identity.Password');\n\n return (passwordRules[`Abp.Identity.Password.${key}`] || '').toLowerCase();\n };\n}\n"]}
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJwLW5nLnRoZW1lLnNoYXJlZC1leHRlbnNpb25zLXRlc3RpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy90aGVtZS1zaGFyZWQvZXh0ZW5zaW9ucy90ZXN0aW5nL3NyYy9hYnAtbmcudGhlbWUuc2hhcmVkLWV4dGVuc2lvbnMtdGVzdGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,11 +0,0 @@
1
- import { BaseUiExtensionsModule } from '@abp/ng.theme.shared/extensions';
2
- import { NgModule } from '@angular/core';
3
- export class UiExtensionsTestingModule {
4
- }
5
- UiExtensionsTestingModule.decorators = [
6
- { type: NgModule, args: [{
7
- exports: [BaseUiExtensionsModule],
8
- imports: [BaseUiExtensionsModule],
9
- },] }
10
- ];
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZXh0ZW5zaW9ucy10ZXN0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9leHRlbnNpb25zL3Rlc3Rpbmcvc3JjL2xpYi91aS1leHRlbnNpb25zLXRlc3RpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNekMsTUFBTSxPQUFPLHlCQUF5Qjs7O1lBSnJDLFFBQVEsU0FBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDakMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7YUFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVWlFeHRlbnNpb25zTW9kdWxlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQvZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ATmdNb2R1bGUoe1xuICBleHBvcnRzOiBbQmFzZVVpRXh0ZW5zaW9uc01vZHVsZV0sXG4gIGltcG9ydHM6IFtCYXNlVWlFeHRlbnNpb25zTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgVWlFeHRlbnNpb25zVGVzdGluZ01vZHVsZSB7fVxuIl19
@@ -1,2 +0,0 @@
1
- export * from './lib/ui-extensions-testing.module';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9leHRlbnNpb25zL3Rlc3Rpbmcvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3VpLWV4dGVuc2lvbnMtdGVzdGluZy5tb2R1bGUnO1xuIl19
@@ -1,120 +0,0 @@
1
- import { Component, ElementRef, EventEmitter, Input, Output, ChangeDetectorRef, } from '@angular/core';
2
- import { BehaviorSubject } from 'rxjs';
3
- import { chartJsLoaded$ } from '../../utils/widget-utils';
4
- export class ChartComponent {
5
- constructor(el, cdRef) {
6
- this.el = el;
7
- this.cdRef = cdRef;
8
- this.options = {};
9
- this.plugins = [];
10
- this.responsive = true;
11
- // tslint:disable-next-line: no-output-on-prefix
12
- this.onDataSelect = new EventEmitter();
13
- this.initialized = new BehaviorSubject(this);
14
- this.onCanvasClick = event => {
15
- if (this.chart) {
16
- const element = this.chart.getElementAtEvent(event);
17
- const dataset = this.chart.getDatasetAtEvent(event);
18
- if (element && element.length && dataset) {
19
- this.onDataSelect.emit({
20
- originalEvent: event,
21
- element: element[0],
22
- dataset,
23
- });
24
- }
25
- }
26
- };
27
- this.initChart = () => {
28
- const opts = this.options || {};
29
- opts.responsive = this.responsive;
30
- // allows chart to resize in responsive mode
31
- if (opts.responsive && (this.height || this.width)) {
32
- opts.maintainAspectRatio = false;
33
- }
34
- this.chart = new Chart(this.canvas, {
35
- type: this.type,
36
- data: this.data,
37
- options: this.options,
38
- plugins: this.plugins,
39
- });
40
- this.cdRef.detectChanges();
41
- };
42
- this.generateLegend = () => {
43
- if (this.chart) {
44
- return this.chart.generateLegend();
45
- }
46
- };
47
- this.refresh = () => {
48
- if (this.chart) {
49
- this.chart.update();
50
- this.cdRef.detectChanges();
51
- }
52
- };
53
- this.reinit = () => {
54
- if (this.chart) {
55
- this.chart.destroy();
56
- this.initChart();
57
- }
58
- };
59
- }
60
- get data() {
61
- return this._data;
62
- }
63
- set data(val) {
64
- this._data = val;
65
- this.reinit();
66
- }
67
- get canvas() {
68
- return this.el.nativeElement.children[0].children[0];
69
- }
70
- get base64Image() {
71
- return this.chart.toBase64Image();
72
- }
73
- ngAfterViewInit() {
74
- chartJsLoaded$.subscribe(() => {
75
- this.testChartJs();
76
- this.initChart();
77
- this._initialized = true;
78
- });
79
- }
80
- testChartJs() {
81
- try {
82
- // tslint:disable-next-line: no-unused-expression
83
- Chart;
84
- }
85
- catch (error) {
86
- throw new Error(`Chart is not found. Import the Chart from app.module like shown below:
87
- import('chart.js');
88
- `);
89
- }
90
- }
91
- ngOnDestroy() {
92
- if (this.chart) {
93
- this.chart.destroy();
94
- this._initialized = false;
95
- this.chart = null;
96
- }
97
- }
98
- }
99
- ChartComponent.decorators = [
100
- { type: Component, args: [{
101
- selector: 'abp-chart',
102
- template: "<div\n style=\"position:relative\"\n [style.width]=\"responsive && !width ? null : width\"\n [style.height]=\"responsive && !height ? null : height\"\n>\n <canvas\n [attr.width]=\"responsive && !width ? null : width\"\n [attr.height]=\"responsive && !height ? null : height\"\n (click)=\"onCanvasClick($event)\"\n ></canvas>\n</div>\n"
103
- },] }
104
- ];
105
- ChartComponent.ctorParameters = () => [
106
- { type: ElementRef },
107
- { type: ChangeDetectorRef }
108
- ];
109
- ChartComponent.propDecorators = {
110
- type: [{ type: Input }],
111
- options: [{ type: Input }],
112
- plugins: [{ type: Input }],
113
- width: [{ type: Input }],
114
- height: [{ type: Input }],
115
- responsive: [{ type: Input }],
116
- onDataSelect: [{ type: Output }],
117
- initialized: [{ type: Output }],
118
- data: [{ type: Input }]
119
- };
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9jaGFydC9jaGFydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBTzFELE1BQU0sT0FBTyxjQUFjO0lBd0J6QixZQUFtQixFQUFjLEVBQVUsS0FBd0I7UUFBaEQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBckIxRCxZQUFPLEdBQVEsRUFBRSxDQUFDO1FBRWxCLFlBQU8sR0FBVSxFQUFFLENBQUM7UUFNcEIsZUFBVSxHQUFHLElBQUksQ0FBQztRQUUzQixnREFBZ0Q7UUFDN0IsaUJBQVksR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVyRCxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBK0MzRCxrQkFBYSxHQUFHLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDZCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sRUFBRTtvQkFDeEMsSUFBSSxD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QUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNuQjtJQUNILENBQUM7OztZQTlIRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLHdXQUFxQzthQUN0Qzs7O1lBZEMsVUFBVTtZQUtWLGlCQUFpQjs7O21CQVdoQixLQUFLO3NCQUVMLEtBQUs7c0JBRUwsS0FBSztvQkFFTCxLQUFLO3FCQUVMLEtBQUs7eUJBRUwsS0FBSzsyQkFHTCxNQUFNOzBCQUVOLE1BQU07bUJBVU4sS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2hhcnRKc0xvYWRlZCQgfSBmcm9tICcuLi8uLi91dGlscy93aWRnZXQtdXRpbHMnO1xuZGVjbGFyZSBjb25zdCBDaGFydDogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhYnAtY2hhcnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBDaGFydENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHR5cGU6IHN0cmluZztcblxuICBASW5wdXQoKSBvcHRpb25zOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKSBwbHVnaW5zOiBhbnlbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgaGVpZ2h0OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgcmVzcG9uc2l2ZSA9IHRydWU7XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1vdXRwdXQtb24tcHJlZml4XG4gIEBPdXRwdXQoKSByZWFkb25seSBvbkRhdGFTZWxlY3Q6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSBpbml0aWFsaXplZCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcyk7XG5cbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG5cbiAgX2RhdGE6IGFueTtcblxuICBjaGFydDogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgQElucHV0KCkgZ2V0IGRhdGEoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YTtcbiAgfVxuXG4gIHNldCBkYXRhKHZhbDogYW55KSB7XG4gICAgdGhpcy5fZGF0YSA9IHZhbDtcbiAgICB0aGlzLnJlaW5pdCgpO1xuICB9XG5cbiAgZ2V0IGNhbnZhcygpIHtcbiAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdLmNoaWxkcmVuWzBdO1xuICB9XG5cbiAgZ2V0IGJhc2U2NEltYWdlKCkge1xuICAgIHJldHVybiB0aGlzLmNoYXJ0LnRvQmFzZTY0SW1hZ2UoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjaGFydEpzTG9hZGVkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy50ZXN0Q2hhcnRKcygpO1xuXG4gICAgICB0aGlzLmluaXRDaGFydCgpO1xuICAgICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgdGVzdENoYXJ0SnMoKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogbm8tdW51c2VkLWV4cHJlc3Npb25cbiAgICAgIENoYXJ0O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENoYXJ0IGlzIG5vdCBmb3VuZC4gSW1wb3J0IHRoZSBDaGFydCBmcm9tIGFwcC5tb2R1bGUgbGlrZSBzaG93biBiZWxvdzpcbiAgICAgIGltcG9ydCgnY2hhcnQuanMnKTtcbiAgICAgIGApO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2FudmFzQ2xpY2sgPSBldmVudCA9PiB7XG4gICAgaWYgKHRoaXMuY2hhcnQpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmNoYXJ0LmdldEVsZW1lbnRBdEV2ZW50KGV2ZW50KTtcbiAgICAgIGNvbnN0IGRhdGFzZXQgPSB0aGlzLmNoYXJ0LmdldERhdGFzZXRBdEV2ZW50KGV2ZW50KTtcbiAgICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQubGVuZ3RoICYmIGRhdGFzZXQpIHtcbiAgICAgICAgdGhpcy5vbkRhdGFTZWxlY3QuZW1pdCh7XG4gICAgICAgICAgb3JpZ2luYWxFdmVudDogZXZlbnQsXG4gICAgICAgICAgZWxlbWVudDogZWxlbWVudFswXSxcbiAgICAgICAgICBkYXRhc2V0LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgaW5pdENoYXJ0ID0gKCkgPT4ge1xuICAgIGNvbnN0IG9wdHMgPSB0aGlzLm9wdGlvbnMgfHwge307XG4gICAgb3B0cy5yZXNwb25zaXZlID0gdGhpcy5yZXNwb25zaXZlO1xuXG4gICAgLy8gYWxsb3dzIGNoYXJ0IHRvIHJlc2l6ZSBpbiByZXNwb25zaXZlIG1vZGVcbiAgICBpZiAob3B0cy5yZXNwb25zaXZlICYmICh0aGlzLmhlaWdodCB8fCB0aGlzLndpZHRoKSkge1xuICAgICAgb3B0cy5tYWludGFpbkFzcGVjdFJhdGlvID0gZmFsc2U7XG4gICAgfVxuXG4gICAgdGhpcy5jaGFydCA9IG5ldyBDaGFydCh0aGlzLmNhbnZhcywge1xuICAgICAgdHlwZTogdGhpcy50eXBlLFxuICAgICAgZGF0YTogdGhpcy5kYXRhLFxuICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgICAgcGx1Z2luczogdGhpcy5wbHVnaW5zLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH07XG5cbiAgZ2VuZXJhdGVMZWdlbmQgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMuY2hhcnQpIHtcbiAgICAgIHJldHVybiB0aGlzLmNoYXJ0LmdlbmVyYXRlTGVnZW5kKCk7XG4gICAgfVxuICB9O1xuXG4gIHJlZnJlc2ggPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMuY2hhcnQpIHtcbiAgICAgIHRoaXMuY2hhcnQudXBkYXRlKCk7XG4gICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH07XG5cbiAgcmVpbml0ID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLmNoYXJ0KSB7XG4gICAgICB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuaW5pdENoYXJ0KCk7XG4gICAgfVxuICB9O1xuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmNoYXJ0KSB7XG4gICAgICB0aGlzLmNoYXJ0LmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuX2luaXRpYWxpemVkID0gZmFsc2U7XG4gICAgICB0aGlzLmNoYXJ0ID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,16 +0,0 @@
1
- import { Component, ViewChild, ViewContainerRef } from '@angular/core';
2
- /**
3
- * @deprecated To be removed in v5.0
4
- */
5
- export class ModalContainerComponent {
6
- }
7
- ModalContainerComponent.decorators = [
8
- { type: Component, args: [{
9
- selector: 'abp-modal-container',
10
- template: '<ng-container #container></ng-container>'
11
- },] }
12
- ];
13
- ModalContainerComponent.propDecorators = {
14
- container: [{ type: ViewChild, args: ['container', { static: true, read: ViewContainerRef },] }]
15
- };
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9zcmMvbGliL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwtY29udGFpbmVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RTs7R0FFRztBQUtILE1BQU0sT0FBTyx1QkFBdUI7OztZQUpuQyxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsUUFBUSxFQUFFLDBDQUEwQzthQUNyRDs7O3dCQUVFLFNBQVMsU0FBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgVG8gYmUgcmVtb3ZlZCBpbiB2NS4wXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FicC1tb2RhbC1jb250YWluZXInLFxuICB0ZW1wbGF0ZTogJzxuZy1jb250YWluZXIgI2NvbnRhaW5lcj48L25nLWNvbnRhaW5lcj4nLFxufSlcbmV4cG9ydCBjbGFzcyBNb2RhbENvbnRhaW5lckNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlLCByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXG4gIGNvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcbn1cbiJdfQ==