@one-paragon/angular-utilities 0.3.10 → 0.3.11-beta.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 (395) hide show
  1. package/karma.conf.js +44 -0
  2. package/ng-package.json +7 -0
  3. package/package.json +16 -30
  4. package/src/action-state/action-state-spinner/action-state-spinner.component.css +16 -0
  5. package/src/action-state/action-state-spinner/action-state-spinner.component.html +6 -0
  6. package/src/action-state/action-state-spinner/action-state-spinner.component.spec.ts +25 -0
  7. package/src/action-state/action-state-spinner/action-state-spinner.component.ts +26 -0
  8. package/src/action-state/action-state-ui/action-state-ui.module.ts +13 -0
  9. package/{action-state/index.d.ts → src/action-state/index.ts} +8 -4
  10. package/src/action-state/ngrx-ext/ngrx-ext.module.ts +15 -0
  11. package/src/action-state/ngrx.ts +69 -0
  12. package/src/http-request-state/HttpRequestStateFactory.ts +29 -0
  13. package/src/http-request-state/HttpRequestStateStore.ts +147 -0
  14. package/src/http-request-state/directives/HttpStateDirectiveBase.ts +38 -0
  15. package/src/http-request-state/directives/http-error-state-directive.ts +32 -0
  16. package/src/http-request-state/directives/http-inProgress-state-directive.ts +32 -0
  17. package/src/http-request-state/directives/http-notStarted-state-directive.ts +31 -0
  18. package/src/http-request-state/directives/http-success-state-directive.ts +40 -0
  19. package/src/http-request-state/directives/request-state-directive.spec.ts +72 -0
  20. package/src/http-request-state/directives/request-state-directive.ts +79 -0
  21. package/src/http-request-state/helpers.ts +30 -0
  22. package/src/http-request-state/http-request-state.ts +69 -0
  23. package/src/http-request-state/http-state-module.ts +23 -0
  24. package/{http-request-state/index.d.ts → src/http-request-state/index.ts} +1 -1
  25. package/src/http-request-state/observable.spec.ts +43 -0
  26. package/src/http-request-state/rxjs/getRequestorBody.ts +10 -0
  27. package/src/http-request-state/rxjs/getRequestorState.ts +8 -0
  28. package/src/http-request-state/rxjs/tapError.ts +16 -0
  29. package/src/http-request-state/rxjs/tapSuccess.ts +16 -0
  30. package/src/http-request-state/strategies.spec.ts +42 -0
  31. package/src/http-request-state/types.ts +50 -0
  32. package/src/ngrx/actionable-selector.ts +95 -0
  33. package/src/ngrx/index.ts +1 -0
  34. package/{public-api.d.ts → src/public-api.ts} +35 -16
  35. package/src/rxjs/defaultShareReplay.ts +8 -0
  36. package/{rxjs/index.d.ts → src/rxjs/index.ts} +4 -4
  37. package/src/rxjs/mapError.ts +8 -0
  38. package/src/rxjs/rxjs-operators.ts +132 -0
  39. package/src/rxjs/subjectifier.ts +15 -0
  40. package/src/specs/clickSubject.spec.ts +95 -0
  41. package/src/specs/dialog.spec.ts +101 -0
  42. package/src/specs/toggleGroupDirective.spec.ts +229 -0
  43. package/src/table-builder/classes/DefaultSettings.ts +11 -0
  44. package/src/table-builder/classes/MatTableObservableDataSource.ts +23 -0
  45. package/src/table-builder/classes/TableBuilderConfig.ts +35 -0
  46. package/src/table-builder/classes/TableBuilderDataSource.ts +57 -0
  47. package/src/table-builder/classes/TableState.ts +83 -0
  48. package/src/table-builder/classes/filter-info.ts +131 -0
  49. package/src/table-builder/classes/table-builder-general-settings.ts +90 -0
  50. package/src/table-builder/classes/table-builder.ts +52 -0
  51. package/src/table-builder/classes/table-store.ts +394 -0
  52. package/src/table-builder/components/array-column.component.ts +36 -0
  53. package/src/table-builder/components/column-builder/column-builder.component.html +58 -0
  54. package/src/table-builder/components/column-builder/column-builder.component.scss +43 -0
  55. package/src/table-builder/components/column-builder/column-builder.component.spec.ts +49 -0
  56. package/src/table-builder/components/column-builder/column-builder.component.ts +117 -0
  57. package/src/table-builder/components/column-builder/column-helpers.ts +38 -0
  58. package/src/table-builder/components/date-filter/date-filter.component.html +23 -0
  59. package/src/table-builder/components/date-filter/date-filter.component.ts +24 -0
  60. package/src/table-builder/components/date-time-filter/date-time-filter.component.html +9 -0
  61. package/src/table-builder/components/date-time-filter/date-time-filter.component.ts +22 -0
  62. package/src/table-builder/components/filter/filter.component.html +88 -0
  63. package/src/table-builder/components/filter/filter.component.scss +64 -0
  64. package/src/table-builder/components/filter/filter.component.spec.ts +87 -0
  65. package/src/table-builder/components/filter/filter.component.ts +55 -0
  66. package/src/table-builder/components/filter/in-list/in-list-filter.component.ts +92 -0
  67. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.html +55 -0
  68. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.scss +57 -0
  69. package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.ts +55 -0
  70. package/src/table-builder/components/generic-table/generic-table.component.html +71 -0
  71. package/src/table-builder/components/generic-table/generic-table.component.scss +51 -0
  72. package/src/table-builder/components/generic-table/generic-table.component.ts +220 -0
  73. package/src/table-builder/components/generic-table/paginator.component.ts +94 -0
  74. package/src/table-builder/components/group-by-list/group-by-list.component.css +8 -0
  75. package/src/table-builder/components/group-by-list/group-by-list.component.html +12 -0
  76. package/src/table-builder/components/group-by-list/group-by-list.component.spec.ts +23 -0
  77. package/src/table-builder/components/group-by-list/group-by-list.component.ts +21 -0
  78. package/src/table-builder/components/header-menu/header-menu.component.html +98 -0
  79. package/src/table-builder/components/header-menu/header-menu.component.scss +96 -0
  80. package/src/table-builder/components/header-menu/header-menu.component.ts +98 -0
  81. package/src/table-builder/components/in-filter/in-filter.component.css +3 -0
  82. package/src/table-builder/components/in-filter/in-filter.component.html +20 -0
  83. package/src/table-builder/components/in-filter/in-filter.component.ts +64 -0
  84. package/{table-builder/components/index.d.ts → src/table-builder/components/index.ts} +9 -9
  85. package/src/table-builder/components/initialization-component/initialization-component.html +29 -0
  86. package/src/table-builder/components/initialization-component/initialization-component.ts +24 -0
  87. package/src/table-builder/components/link-column.component.ts +47 -0
  88. package/src/table-builder/components/number-filter/number-filter.component.css +10 -0
  89. package/src/table-builder/components/number-filter/number-filter.component.html +19 -0
  90. package/src/table-builder/components/number-filter/number-filter.component.spec.ts +30 -0
  91. package/src/table-builder/components/number-filter/number-filter.component.ts +25 -0
  92. package/src/table-builder/components/scroll-strategy.ts +82 -0
  93. package/src/table-builder/components/sort-menu/sort-menu.component-store.ts +62 -0
  94. package/src/table-builder/components/sort-menu/sort-menu.component.html +111 -0
  95. package/src/table-builder/components/sort-menu/sort-menu.component.scss +119 -0
  96. package/src/table-builder/components/sort-menu/sort-menu.component.ts +95 -0
  97. package/{table-builder/components/table-container/table-container-imports.d.ts → src/table-builder/components/table-container/table-container-imports.ts} +30 -14
  98. package/src/table-builder/components/table-container/table-container.css +45 -0
  99. package/src/table-builder/components/table-container/table-container.helpers/data-state.helpers.ts +141 -0
  100. package/src/table-builder/components/table-container/table-container.helpers/filter-state.helpers.ts +106 -0
  101. package/src/table-builder/components/table-container/table-container.helpers/groupBy.helpers.ts +69 -0
  102. package/src/table-builder/components/table-container/table-container.helpers/sort-state.helpers.ts +45 -0
  103. package/src/table-builder/components/table-container/table-container.html +117 -0
  104. package/src/table-builder/components/table-container/table-container.spec.ts +154 -0
  105. package/src/table-builder/components/table-container/table-container.ts +325 -0
  106. package/src/table-builder/components/table-container/tableProps.ts +18 -0
  107. package/src/table-builder/components/table-container/virtual-scroll-container.ts +126 -0
  108. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.html +31 -0
  109. package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.ts +52 -0
  110. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.css +42 -0
  111. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.html +10 -0
  112. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.spec.ts +86 -0
  113. package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.ts +38 -0
  114. package/src/table-builder/components/table-container-filter/table-wrapper-filter-store.ts +23 -0
  115. package/src/table-builder/directives/custom-cell-directive.ts +46 -0
  116. package/{table-builder/directives/index.d.ts → src/table-builder/directives/index.ts} +6 -5
  117. package/src/table-builder/directives/multi-sort.directive.spec.ts +124 -0
  118. package/src/table-builder/directives/multi-sort.directive.ts +49 -0
  119. package/src/table-builder/directives/resize-column.directive.ts +105 -0
  120. package/src/table-builder/directives/table-wrapper.directive.ts +14 -0
  121. package/src/table-builder/directives/tb-filter.directive.ts +370 -0
  122. package/src/table-builder/enums/filterTypes.ts +79 -0
  123. package/src/table-builder/functions/boolean-filter-function.ts +13 -0
  124. package/src/table-builder/functions/date-filter-function.ts +69 -0
  125. package/src/table-builder/functions/download-data.ts +11 -0
  126. package/src/table-builder/functions/null-filter-function.ts +9 -0
  127. package/src/table-builder/functions/number-filter-function.ts +42 -0
  128. package/src/table-builder/functions/sort-data-function.ts +23 -0
  129. package/src/table-builder/functions/string-filter-function.ts +52 -0
  130. package/{table-builder/interfaces/ColumnInfo.d.ts → src/table-builder/interfaces/ColumnInfo.ts} +3 -2
  131. package/src/table-builder/interfaces/column-template.ts +9 -0
  132. package/{table-builder/interfaces/dictionary.d.ts → src/table-builder/interfaces/dictionary.ts} +3 -3
  133. package/src/table-builder/interfaces/report-def.ts +153 -0
  134. package/src/table-builder/ngrx/tableBuilderStateStore.ts +143 -0
  135. package/src/table-builder/pipes/column-total.pipe.ts +17 -0
  136. package/src/table-builder/pipes/format-filter-type.pipe.ts +12 -0
  137. package/src/table-builder/pipes/format-filter-value.pipe.ts +41 -0
  138. package/src/table-builder/pipes/key-display.ts +16 -0
  139. package/src/table-builder/services/export-to-csv.service.ts +96 -0
  140. package/src/table-builder/services/link-creator.service.ts +68 -0
  141. package/src/table-builder/services/table-template-service.ts +55 -0
  142. package/src/table-builder/services/transform-creator.ts +92 -0
  143. package/src/table-builder/specs/table-custom-filters.spec.ts +262 -0
  144. package/src/table-builder/styles/collapser.styles.scss +15 -0
  145. package/src/table-builder/table-builder.module.ts +73 -0
  146. package/src/test.ts +17 -0
  147. package/src/utilities/array-helpers.ts +13 -0
  148. package/src/utilities/directives/auto-focus.directive.ts +20 -0
  149. package/src/utilities/directives/clickEmitterDirective.ts +16 -0
  150. package/src/utilities/directives/clickSubject.ts +20 -0
  151. package/src/utilities/directives/conditional-classes.directive.ts +36 -0
  152. package/src/utilities/directives/dialog-service.ts +19 -0
  153. package/src/utilities/directives/dialog.ts +142 -0
  154. package/src/utilities/directives/mat-toggle-group-directive.ts +61 -0
  155. package/src/utilities/directives/prevent-enter.directive.ts +13 -0
  156. package/src/utilities/directives/stop-propagation.directive.ts +20 -0
  157. package/src/utilities/directives/styler.ts +39 -0
  158. package/src/utilities/directives/trim-whitespace.directive.ts +21 -0
  159. package/{utilities/index.d.ts → src/utilities/index.ts} +22 -15
  160. package/src/utilities/module.ts +55 -0
  161. package/src/utilities/pipes/function.pipe.ts +16 -0
  162. package/src/utilities/pipes/phone.pipe.ts +15 -0
  163. package/src/utilities/pipes/space-case.pipes.spec.ts +47 -0
  164. package/src/utilities/pipes/space-case.pipes.ts +23 -0
  165. package/tsconfig.lib.json +19 -0
  166. package/tsconfig.lib.prod.json +10 -0
  167. package/tsconfig.spec.json +17 -0
  168. package/action-state/action-state-spinner/action-state-spinner.component.d.ts +0 -12
  169. package/action-state/action-state-ui/action-state-ui.module.d.ts +0 -7
  170. package/action-state/ngrx-ext/ngrx-ext.module.d.ts +0 -8
  171. package/action-state/ngrx.d.ts +0 -31
  172. package/esm2022/action-state/action-state-spinner/action-state-spinner.component.mjs +0 -24
  173. package/esm2022/action-state/action-state-ui/action-state-ui.module.mjs +0 -20
  174. package/esm2022/action-state/index.mjs +0 -8
  175. package/esm2022/action-state/ngrx-ext/ngrx-ext.module.mjs +0 -23
  176. package/esm2022/action-state/ngrx.mjs +0 -42
  177. package/esm2022/http-request-state/HttpRequestStateFactory.mjs +0 -27
  178. package/esm2022/http-request-state/HttpRequestStateStore.mjs +0 -98
  179. package/esm2022/http-request-state/directives/HttpStateDirectiveBase.mjs +0 -34
  180. package/esm2022/http-request-state/directives/http-error-state-directive.mjs +0 -29
  181. package/esm2022/http-request-state/directives/http-inProgress-state-directive.mjs +0 -29
  182. package/esm2022/http-request-state/directives/http-notStarted-state-directive.mjs +0 -29
  183. package/esm2022/http-request-state/directives/http-success-state-directive.mjs +0 -34
  184. package/esm2022/http-request-state/directives/index.mjs +0 -6
  185. package/esm2022/http-request-state/directives/request-state-directive.mjs +0 -60
  186. package/esm2022/http-request-state/helpers.mjs +0 -22
  187. package/esm2022/http-request-state/http-request-state.mjs +0 -39
  188. package/esm2022/http-request-state/http-state-module.mjs +0 -40
  189. package/esm2022/http-request-state/index.mjs +0 -7
  190. package/esm2022/http-request-state/rxjs/getRequestorBody.mjs +0 -4
  191. package/esm2022/http-request-state/rxjs/getRequestorState.mjs +0 -3
  192. package/esm2022/http-request-state/rxjs/index.mjs +0 -5
  193. package/esm2022/http-request-state/rxjs/tapError.mjs +0 -12
  194. package/esm2022/http-request-state/rxjs/tapSuccess.mjs +0 -12
  195. package/esm2022/http-request-state/types.mjs +0 -16
  196. package/esm2022/ngrx/actionable-selector.mjs +0 -73
  197. package/esm2022/ngrx/index.mjs +0 -2
  198. package/esm2022/one-paragon-angular-utilities.mjs +0 -5
  199. package/esm2022/public-api.mjs +0 -20
  200. package/esm2022/rxjs/defaultShareReplay.mjs +0 -7
  201. package/esm2022/rxjs/index.mjs +0 -5
  202. package/esm2022/rxjs/mapError.mjs +0 -8
  203. package/esm2022/rxjs/rxjs-operators.mjs +0 -92
  204. package/esm2022/rxjs/subjectifier.mjs +0 -15
  205. package/esm2022/table-builder/classes/DefaultSettings.mjs +0 -6
  206. package/esm2022/table-builder/classes/MatTableObservableDataSource.mjs +0 -21
  207. package/esm2022/table-builder/classes/TableBuilderConfig.mjs +0 -18
  208. package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +0 -50
  209. package/esm2022/table-builder/classes/TableState.mjs +0 -42
  210. package/esm2022/table-builder/classes/display-col.mjs +0 -2
  211. package/esm2022/table-builder/classes/filter-info.mjs +0 -73
  212. package/esm2022/table-builder/classes/table-builder-general-settings.mjs +0 -68
  213. package/esm2022/table-builder/classes/table-builder.mjs +0 -82
  214. package/esm2022/table-builder/classes/table-store.mjs +0 -314
  215. package/esm2022/table-builder/components/array-column.component.mjs +0 -78
  216. package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +0 -118
  217. package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +0 -29
  218. package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +0 -24
  219. package/esm2022/table-builder/components/filter/filter.component.mjs +0 -66
  220. package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +0 -101
  221. package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +0 -52
  222. package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +0 -205
  223. package/esm2022/table-builder/components/generic-table/paginator.component.mjs +0 -79
  224. package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +0 -23
  225. package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +0 -101
  226. package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +0 -64
  227. package/esm2022/table-builder/components/index.mjs +0 -10
  228. package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +0 -36
  229. package/esm2022/table-builder/components/link-column.component.mjs +0 -73
  230. package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +0 -29
  231. package/esm2022/table-builder/components/scroll-strategy.mjs +0 -63
  232. package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +0 -43
  233. package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +0 -81
  234. package/esm2022/table-builder/components/table-container/table-container-imports.mjs +0 -26
  235. package/esm2022/table-builder/components/table-container/table-container.helpers/data-state.helpers.mjs +0 -2
  236. package/esm2022/table-builder/components/table-container/table-container.helpers/filter-state.helpers.mjs +0 -62
  237. package/esm2022/table-builder/components/table-container/table-container.helpers/groupBy.helpers.mjs +0 -56
  238. package/esm2022/table-builder/components/table-container/table-container.helpers/sort-state.helpers.mjs +0 -36
  239. package/esm2022/table-builder/components/table-container/table-container.mjs +0 -337
  240. package/esm2022/table-builder/components/table-container/tableProps.mjs +0 -9
  241. package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +0 -101
  242. package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +0 -47
  243. package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +0 -36
  244. package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +0 -25
  245. package/esm2022/table-builder/components/table-context.mjs +0 -2
  246. package/esm2022/table-builder/directives/custom-cell-directive.mjs +0 -60
  247. package/esm2022/table-builder/directives/index.mjs +0 -6
  248. package/esm2022/table-builder/directives/multi-sort.directive.mjs +0 -50
  249. package/esm2022/table-builder/directives/resize-column.directive.mjs +0 -87
  250. package/esm2022/table-builder/directives/table-wrapper.directive.mjs +0 -20
  251. package/esm2022/table-builder/directives/tb-filter.directive.mjs +0 -410
  252. package/esm2022/table-builder/enums/filterTypes.mjs +0 -72
  253. package/esm2022/table-builder/functions/boolean-filter-function.mjs +0 -10
  254. package/esm2022/table-builder/functions/date-filter-function.mjs +0 -58
  255. package/esm2022/table-builder/functions/download-data.mjs +0 -12
  256. package/esm2022/table-builder/functions/null-filter-function.mjs +0 -8
  257. package/esm2022/table-builder/functions/number-filter-function.mjs +0 -32
  258. package/esm2022/table-builder/functions/sort-data-function.mjs +0 -17
  259. package/esm2022/table-builder/functions/string-filter-function.mjs +0 -41
  260. package/esm2022/table-builder/interfaces/ColumnInfo.mjs +0 -2
  261. package/esm2022/table-builder/interfaces/dictionary.mjs +0 -2
  262. package/esm2022/table-builder/interfaces/report-def.mjs +0 -35
  263. package/esm2022/table-builder/ngrx/tableBuilderStateStore.mjs +0 -115
  264. package/esm2022/table-builder/pipes/column-total.pipe.mjs +0 -22
  265. package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +0 -18
  266. package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +0 -45
  267. package/esm2022/table-builder/pipes/key-display.mjs +0 -20
  268. package/esm2022/table-builder/services/export-to-csv.service.mjs +0 -88
  269. package/esm2022/table-builder/services/link-creator.service.mjs +0 -42
  270. package/esm2022/table-builder/services/table-template-service.mjs +0 -44
  271. package/esm2022/table-builder/services/transform-creator.mjs +0 -78
  272. package/esm2022/table-builder/table-builder.module.mjs +0 -124
  273. package/esm2022/utilities/array-helpers.mjs +0 -14
  274. package/esm2022/utilities/directives/auto-focus.directive.mjs +0 -27
  275. package/esm2022/utilities/directives/clickEmitterDirective.mjs +0 -22
  276. package/esm2022/utilities/directives/clickSubject.mjs +0 -28
  277. package/esm2022/utilities/directives/conditional-classes.directive.mjs +0 -36
  278. package/esm2022/utilities/directives/dialog-service.mjs +0 -23
  279. package/esm2022/utilities/directives/dialog.mjs +0 -138
  280. package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +0 -60
  281. package/esm2022/utilities/directives/prevent-enter.directive.mjs +0 -20
  282. package/esm2022/utilities/directives/stop-propagation.directive.mjs +0 -26
  283. package/esm2022/utilities/directives/styler.mjs +0 -42
  284. package/esm2022/utilities/directives/trim-whitespace.directive.mjs +0 -30
  285. package/esm2022/utilities/index.mjs +0 -16
  286. package/esm2022/utilities/module.mjs +0 -90
  287. package/esm2022/utilities/pipes/function.pipe.mjs +0 -22
  288. package/esm2022/utilities/pipes/phone.pipe.mjs +0 -20
  289. package/esm2022/utilities/pipes/space-case.pipes.mjs +0 -28
  290. package/fesm2022/one-paragon-angular-utilities.mjs +0 -5045
  291. package/fesm2022/one-paragon-angular-utilities.mjs.map +0 -1
  292. package/http-request-state/HttpRequestStateFactory.d.ts +0 -15
  293. package/http-request-state/HttpRequestStateStore.d.ts +0 -49
  294. package/http-request-state/directives/HttpStateDirectiveBase.d.ts +0 -16
  295. package/http-request-state/directives/http-error-state-directive.d.ts +0 -12
  296. package/http-request-state/directives/http-inProgress-state-directive.d.ts +0 -12
  297. package/http-request-state/directives/http-notStarted-state-directive.d.ts +0 -12
  298. package/http-request-state/directives/http-success-state-directive.d.ts +0 -21
  299. package/http-request-state/directives/request-state-directive.d.ts +0 -35
  300. package/http-request-state/helpers.d.ts +0 -9
  301. package/http-request-state/http-request-state.d.ts +0 -12
  302. package/http-request-state/http-state-module.d.ts +0 -11
  303. package/http-request-state/rxjs/getRequestorBody.d.ts +0 -3
  304. package/http-request-state/rxjs/getRequestorState.d.ts +0 -3
  305. package/http-request-state/rxjs/tapError.d.ts +0 -3
  306. package/http-request-state/rxjs/tapSuccess.d.ts +0 -3
  307. package/http-request-state/types.d.ts +0 -36
  308. package/index.d.ts +0 -5
  309. package/ngrx/actionable-selector.d.ts +0 -17
  310. package/ngrx/index.d.ts +0 -1
  311. package/rxjs/defaultShareReplay.d.ts +0 -2
  312. package/rxjs/mapError.d.ts +0 -2
  313. package/rxjs/rxjs-operators.d.ts +0 -13
  314. package/rxjs/subjectifier.d.ts +0 -9
  315. package/table-builder/classes/DefaultSettings.d.ts +0 -9
  316. package/table-builder/classes/MatTableObservableDataSource.d.ts +0 -9
  317. package/table-builder/classes/TableBuilderConfig.d.ts +0 -21
  318. package/table-builder/classes/TableBuilderDataSource.d.ts +0 -13
  319. package/table-builder/classes/TableState.d.ts +0 -55
  320. package/table-builder/classes/filter-info.d.ts +0 -127
  321. package/table-builder/classes/table-builder-general-settings.d.ts +0 -43
  322. package/table-builder/classes/table-builder.d.ts +0 -14
  323. package/table-builder/classes/table-store.d.ts +0 -124
  324. package/table-builder/components/array-column.component.d.ts +0 -14
  325. package/table-builder/components/column-builder/column-builder.component.d.ts +0 -54
  326. package/table-builder/components/date-filter/date-filter.component.d.ts +0 -10
  327. package/table-builder/components/date-time-filter/date-time-filter.component.d.ts +0 -10
  328. package/table-builder/components/filter/filter.component.d.ts +0 -112
  329. package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +0 -27
  330. package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +0 -16
  331. package/table-builder/components/generic-table/generic-table.component.d.ts +0 -69
  332. package/table-builder/components/generic-table/paginator.component.d.ts +0 -27
  333. package/table-builder/components/group-by-list/group-by-list.component.d.ts +0 -7
  334. package/table-builder/components/header-menu/header-menu.component.d.ts +0 -25
  335. package/table-builder/components/in-filter/in-filter.component.d.ts +0 -21
  336. package/table-builder/components/initialization-component/initialization-component.d.ts +0 -12
  337. package/table-builder/components/link-column.component.d.ts +0 -17
  338. package/table-builder/components/number-filter/number-filter.component.d.ts +0 -12
  339. package/table-builder/components/scroll-strategy.d.ts +0 -23
  340. package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +0 -24
  341. package/table-builder/components/sort-menu/sort-menu.component.d.ts +0 -25
  342. package/table-builder/components/table-container/table-container.d.ts +0 -75
  343. package/table-builder/components/table-container/table-container.helpers/data-state.helpers.d.ts +0 -5
  344. package/table-builder/components/table-container/table-container.helpers/filter-state.helpers.d.ts +0 -15
  345. package/table-builder/components/table-container/table-container.helpers/groupBy.helpers.d.ts +0 -15
  346. package/table-builder/components/table-container/table-container.helpers/sort-state.helpers.d.ts +0 -9
  347. package/table-builder/components/table-container/tableProps.d.ts +0 -11
  348. package/table-builder/components/table-container/virtual-scroll-container.d.ts +0 -17
  349. package/table-builder/components/table-container-filter/filter-list/filter-list.component.d.ts +0 -16
  350. package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +0 -14
  351. package/table-builder/components/table-container-filter/table-wrapper-filter-store.d.ts +0 -14
  352. package/table-builder/components/table-context.d.ts +0 -10
  353. package/table-builder/directives/custom-cell-directive.d.ts +0 -19
  354. package/table-builder/directives/multi-sort.directive.d.ts +0 -11
  355. package/table-builder/directives/resize-column.directive.d.ts +0 -43
  356. package/table-builder/directives/table-wrapper.directive.d.ts +0 -8
  357. package/table-builder/directives/tb-filter.directive.d.ts +0 -120
  358. package/table-builder/enums/filterTypes.d.ts +0 -77
  359. package/table-builder/functions/boolean-filter-function.d.ts +0 -3
  360. package/table-builder/functions/date-filter-function.d.ts +0 -4
  361. package/table-builder/functions/download-data.d.ts +0 -1
  362. package/table-builder/functions/null-filter-function.d.ts +0 -2
  363. package/table-builder/functions/number-filter-function.d.ts +0 -4
  364. package/table-builder/functions/sort-data-function.d.ts +0 -6
  365. package/table-builder/functions/string-filter-function.d.ts +0 -7
  366. package/table-builder/interfaces/report-def.d.ts +0 -147
  367. package/table-builder/ngrx/tableBuilderStateStore.d.ts +0 -62
  368. package/table-builder/pipes/column-total.pipe.d.ts +0 -8
  369. package/table-builder/pipes/format-filter-type.pipe.d.ts +0 -8
  370. package/table-builder/pipes/format-filter-value.pipe.d.ts +0 -14
  371. package/table-builder/pipes/key-display.d.ts +0 -11
  372. package/table-builder/services/export-to-csv.service.d.ts +0 -22
  373. package/table-builder/services/link-creator.service.d.ts +0 -12
  374. package/table-builder/services/table-template-service.d.ts +0 -14
  375. package/table-builder/services/transform-creator.d.ts +0 -19
  376. package/table-builder/table-builder.module.d.ts +0 -21
  377. package/utilities/array-helpers.d.ts +0 -1
  378. package/utilities/directives/auto-focus.directive.d.ts +0 -10
  379. package/utilities/directives/clickEmitterDirective.d.ts +0 -7
  380. package/utilities/directives/clickSubject.d.ts +0 -9
  381. package/utilities/directives/conditional-classes.directive.d.ts +0 -14
  382. package/utilities/directives/dialog-service.d.ts +0 -10
  383. package/utilities/directives/dialog.d.ts +0 -46
  384. package/utilities/directives/mat-toggle-group-directive.d.ts +0 -21
  385. package/utilities/directives/prevent-enter.directive.d.ts +0 -6
  386. package/utilities/directives/stop-propagation.directive.d.ts +0 -7
  387. package/utilities/directives/styler.d.ts +0 -16
  388. package/utilities/directives/trim-whitespace.directive.d.ts +0 -9
  389. package/utilities/module.d.ts +0 -19
  390. package/utilities/pipes/function.pipe.d.ts +0 -7
  391. package/utilities/pipes/phone.pipe.d.ts +0 -7
  392. package/utilities/pipes/space-case.pipes.d.ts +0 -17
  393. /package/{http-request-state/directives/index.d.ts → src/http-request-state/directives/index.ts} +0 -0
  394. /package/{http-request-state/rxjs/index.d.ts → src/http-request-state/rxjs/index.ts} +0 -0
  395. /package/{table-builder/classes/display-col.d.ts → src/table-builder/classes/display-col.ts} +0 -0
@@ -1,20 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { ActionStateSpinnerComponent } from '../action-state-spinner/action-state-spinner.component';
3
- import * as i0 from "@angular/core";
4
- export class ActionStateUiModule {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ActionStateUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: ActionStateUiModule, imports: [ActionStateSpinnerComponent], exports: [ActionStateSpinnerComponent] }); }
7
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ActionStateUiModule, imports: [ActionStateSpinnerComponent] }); }
8
- }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: ActionStateUiModule, decorators: [{
10
- type: NgModule,
11
- args: [{
12
- imports: [
13
- ActionStateSpinnerComponent,
14
- ],
15
- exports: [
16
- ActionStateSpinnerComponent,
17
- ]
18
- }]
19
- }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLXN0YXRlLXVpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy9hY3Rpb24tc3RhdGUvYWN0aW9uLXN0YXRlLXVpL2FjdGlvbi1zdGF0ZS11aS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQzs7QUFXckcsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1COytHQUFuQixtQkFBbUIsWUFONUIsMkJBQTJCLGFBRzNCLDJCQUEyQjsrR0FHbEIsbUJBQW1CLFlBTjVCLDJCQUEyQjs7MkZBTWxCLG1CQUFtQjtrQkFSL0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsMkJBQTJCO3FCQUM1QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsMkJBQTJCO3FCQUM1QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGlvblN0YXRlU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4uL2FjdGlvbi1zdGF0ZS1zcGlubmVyL2FjdGlvbi1zdGF0ZS1zcGlubmVyLmNvbXBvbmVudCc7XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBBY3Rpb25TdGF0ZVNwaW5uZXJDb21wb25lbnQsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBBY3Rpb25TdGF0ZVNwaW5uZXJDb21wb25lbnQsXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWN0aW9uU3RhdGVVaU1vZHVsZSB7IH1cclxuIl19
@@ -1,8 +0,0 @@
1
- /*
2
- * Public API Surface of action-state
3
- */
4
- export * from './ngrx';
5
- export * from './ngrx-ext/ngrx-ext.module';
6
- export * from './action-state-ui/action-state-ui.module';
7
- export * from './action-state-spinner/action-state-spinner.component';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvYWN0aW9uLXN0YXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsdURBQXVELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYWN0aW9uLXN0YXRlXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9uZ3J4JztcclxuZXhwb3J0ICogZnJvbSAnLi9uZ3J4LWV4dC9uZ3J4LWV4dC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FjdGlvbi1zdGF0ZS11aS9hY3Rpb24tc3RhdGUtdWkubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24tc3RhdGUtc3Bpbm5lci9hY3Rpb24tc3RhdGUtc3Bpbm5lci5jb21wb25lbnQnO1xyXG4iXX0=
@@ -1,23 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { actionStatusReducer } from '../ngrx';
4
- import { StoreModule } from '@ngrx/store';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@ngrx/store";
7
- export class NgrxExtModule {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgrxExtModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: NgrxExtModule, imports: [CommonModule, i1.StoreFeatureModule] }); }
10
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgrxExtModule, imports: [CommonModule,
11
- StoreModule.forFeature('ActionStatus', actionStatusReducer)] }); }
12
- }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NgrxExtModule, decorators: [{
14
- type: NgModule,
15
- args: [{
16
- declarations: [],
17
- imports: [
18
- CommonModule,
19
- StoreModule.forFeature('ActionStatus', actionStatusReducer),
20
- ]
21
- }]
22
- }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyeC1leHQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL2FjdGlvbi1zdGF0ZS9uZ3J4LWV4dC9uZ3J4LWV4dC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7OztBQVcxQyxNQUFNLE9BQU8sYUFBYTs4R0FBYixhQUFhOytHQUFiLGFBQWEsWUFKdEIsWUFBWTsrR0FJSCxhQUFhLFlBSnRCLFlBQVk7WUFDWixXQUFXLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQzs7MkZBR2xELGFBQWE7a0JBUHpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVcsQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLG1CQUFtQixDQUFDO3FCQUM1RDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IGFjdGlvblN0YXR1c1JlZHVjZXIgfSBmcm9tICcuLi9uZ3J4JztcclxuaW1wb3J0IHsgU3RvcmVNb2R1bGUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XHJcblxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBTdG9yZU1vZHVsZS5mb3JGZWF0dXJlKCdBY3Rpb25TdGF0dXMnLCBhY3Rpb25TdGF0dXNSZWR1Y2VyKSxcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3J4RXh0TW9kdWxlIHsgfVxyXG4iXX0=
@@ -1,42 +0,0 @@
1
- import { createFeatureSelector, createSelector } from '@ngrx/store';
2
- import { createEntityAdapter } from '@ngrx/entity';
3
- import { get } from 'lodash';
4
- // State
5
- export class AppStatusState {
6
- }
7
- export class ActionStatus {
8
- }
9
- const InitialState = {
10
- ids: [],
11
- entities: {}
12
- };
13
- export var serverStatusTypes;
14
- (function (serverStatusTypes) {
15
- serverStatusTypes[serverStatusTypes["notStarted"] = 0] = "notStarted";
16
- serverStatusTypes[serverStatusTypes["inProgress"] = 1] = "inProgress";
17
- serverStatusTypes[serverStatusTypes["success"] = 2] = "success";
18
- serverStatusTypes[serverStatusTypes["error"] = 3] = "error";
19
- })(serverStatusTypes || (serverStatusTypes = {}));
20
- // Entity and Selectors
21
- export const statusAdapter = createEntityAdapter();
22
- export const initialState = statusAdapter.getInitialState(InitialState);
23
- export const getStatusState = createFeatureSelector('ActionStatus');
24
- export const { selectIds, selectEntities, selectAll, selectTotal } = statusAdapter.getSelectors(getStatusState);
25
- export const selectEntity = (id) => createSelector(selectEntities, (entities) => entities[id]);
26
- // Reducers
27
- export function actionStatusReducer(state = initialState, action) {
28
- const actionStatus = get(action, 'payload.actionStatus');
29
- if (actionStatus) {
30
- if (state.ids.find(id => id === actionStatus.id)) {
31
- const modifiedObj = { ...state.entities[actionStatus.id] };
32
- modifiedObj.status = actionStatus.status;
33
- modifiedObj.responsePayload = actionStatus.responsePayload;
34
- return statusAdapter.upsertOne(modifiedObj, state);
35
- }
36
- else {
37
- return statusAdapter.addOne(actionStatus, state);
38
- }
39
- }
40
- return state;
41
- }
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdyeC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy9hY3Rpb24tc3RhdGUvbmdyeC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBZSxNQUFNLGNBQWMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTdCLFFBQVE7QUFDUixNQUFNLE9BQU8sY0FBYztDQUUxQjtBQU9ELE1BQU0sT0FBTyxZQUFZO0NBS3hCO0FBRUQsTUFBTSxZQUFZLEdBQWdCO0lBQ2hDLEdBQUcsRUFBRSxFQUFFO0lBQ1AsUUFBUSxFQUFFLEVBQUU7Q0FDYixDQUFDO0FBRUYsTUFBTSxDQUFOLElBQVksaUJBS1g7QUFMRCxXQUFZLGlCQUFpQjtJQUMzQixxRUFBYyxDQUFBO0lBQ2QscUVBQWMsQ0FBQTtJQUNkLCtEQUFXLENBQUE7SUFDWCwyREFBUyxDQUFBO0FBQ1gsQ0FBQyxFQUxXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFLNUI7QUFFRCx1QkFBdUI7QUFDdkIsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLG1CQUFtQixFQUFnQixDQUFDO0FBRWpFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBZ0IsYUFBYSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUVyRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcscUJBQXFCLENBQVEsY0FBYyxDQUFDLENBQUM7QUFDM0UsTUFBTSxDQUFDLE1BQU0sRUFDWCxTQUFTLEVBQ1QsY0FBYyxFQUNkLFNBQVMsRUFDVCxXQUFXLEVBQ1osR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUN4RCxjQUFjLEVBQ2QsQ0FBQyxRQUFhLEVBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FDakMsQ0FBQztBQUVGLFdBQVc7QUFDWCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsUUFBcUIsWUFBWSxFQUFFLE1BQWM7SUFFbkYsTUFBTSxZQUFZLEdBQWlCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsc0JBQXNCLENBQUUsQ0FBQztJQUV4RSxJQUFLLFlBQVksRUFBRztRQUNsQixJQUFLLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRztZQUNsRCxNQUFNLFdBQVcsR0FBRyxFQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUMxRCxXQUFXLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7WUFDekMsV0FBVyxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDO1lBQzNELE9BQU8sYUFBYSxDQUFDLFNBQVMsQ0FBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDckQ7YUFBTTtZQUNMLE9BQU8sYUFBYSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUcsS0FBSyxDQUFDLENBQUM7U0FDbkQ7S0FFRjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbiwgY3JlYXRlRmVhdHVyZVNlbGVjdG9yLCBjcmVhdGVTZWxlY3RvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0IHsgY3JlYXRlRW50aXR5QWRhcHRlciwgRW50aXR5U3RhdGUgfSBmcm9tICdAbmdyeC9lbnRpdHknO1xyXG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gnO1xyXG5cclxuLy8gU3RhdGVcclxuZXhwb3J0IGNsYXNzIEFwcFN0YXR1c1N0YXRlIHtcclxuICByZWFkb25seSBBY3Rpb25TdGF0dXNCYXIhOiBBY3Rpb25TdGF0dXNbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdGF0dXNTdGF0ZSB7XHJcbiAgaWRzOiBzdHJpbmdbXTtcclxuICBlbnRpdGllczoge1tpZDogc3RyaW5nXTogQWN0aW9uU3RhdHVzfTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFjdGlvblN0YXR1cyB7XHJcbiAgaWQhOiBzdHJpbmc7XHJcbiAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XHJcbiAgc3RhdHVzITogc2VydmVyU3RhdHVzVHlwZXM7XHJcbiAgcmVzcG9uc2VQYXlsb2FkPzogYW55O1xyXG59XHJcblxyXG5jb25zdCBJbml0aWFsU3RhdGU6IFN0YXR1c1N0YXRlID0ge1xyXG4gIGlkczogW10sXHJcbiAgZW50aXRpZXM6IHt9XHJcbn07XHJcblxyXG5leHBvcnQgZW51bSBzZXJ2ZXJTdGF0dXNUeXBlcyB7XHJcbiAgbm90U3RhcnRlZCA9IDAsXHJcbiAgaW5Qcm9ncmVzcyA9IDEsXHJcbiAgc3VjY2VzcyA9IDIsXHJcbiAgZXJyb3IgPSAzXHJcbn1cclxuXHJcbi8vIEVudGl0eSBhbmQgU2VsZWN0b3JzXHJcbmV4cG9ydCBjb25zdCBzdGF0dXNBZGFwdGVyID0gY3JlYXRlRW50aXR5QWRhcHRlcjxBY3Rpb25TdGF0dXM+KCk7XHJcbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGUgZXh0ZW5kcyBFbnRpdHlTdGF0ZTxBY3Rpb25TdGF0dXM+IHt9XHJcbmV4cG9ydCBjb25zdCBpbml0aWFsU3RhdGU6IFN0YXR1c1N0YXRlID0gc3RhdHVzQWRhcHRlci5nZXRJbml0aWFsU3RhdGUoSW5pdGlhbFN0YXRlKTtcclxuXHJcbmV4cG9ydCBjb25zdCBnZXRTdGF0dXNTdGF0ZSA9IGNyZWF0ZUZlYXR1cmVTZWxlY3RvcjxTdGF0ZT4oJ0FjdGlvblN0YXR1cycpO1xyXG5leHBvcnQgY29uc3Qge1xyXG4gIHNlbGVjdElkcyxcclxuICBzZWxlY3RFbnRpdGllcyxcclxuICBzZWxlY3RBbGwsXHJcbiAgc2VsZWN0VG90YWxcclxufSA9IHN0YXR1c0FkYXB0ZXIuZ2V0U2VsZWN0b3JzKGdldFN0YXR1c1N0YXRlKTtcclxuXHJcbmV4cG9ydCBjb25zdCBzZWxlY3RFbnRpdHkgPSAoaWQ6IHN0cmluZykgPT4gY3JlYXRlU2VsZWN0b3IoXHJcbiAgc2VsZWN0RW50aXRpZXMsXHJcbiAgKGVudGl0aWVzOiBhbnkpICA9PiBlbnRpdGllc1tpZF1cclxuKTtcclxuXHJcbi8vIFJlZHVjZXJzXHJcbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb25TdGF0dXNSZWR1Y2VyKHN0YXRlOiBTdGF0dXNTdGF0ZSA9IGluaXRpYWxTdGF0ZSwgYWN0aW9uOiBBY3Rpb24pIHtcclxuXHJcbiAgY29uc3QgYWN0aW9uU3RhdHVzOiBBY3Rpb25TdGF0dXMgPSBnZXQoYWN0aW9uLCAncGF5bG9hZC5hY3Rpb25TdGF0dXMnICk7XHJcblxyXG4gIGlmICggYWN0aW9uU3RhdHVzICkge1xyXG4gICAgaWYgKCBzdGF0ZS5pZHMuZmluZChpZCA9PiBpZCA9PT0gYWN0aW9uU3RhdHVzLmlkKSApIHtcclxuICAgICAgY29uc3QgbW9kaWZpZWRPYmogPSB7Li4uc3RhdGUuZW50aXRpZXNbYWN0aW9uU3RhdHVzLmlkXSB9O1xyXG4gICAgICBtb2RpZmllZE9iai5zdGF0dXMgPSBhY3Rpb25TdGF0dXMuc3RhdHVzO1xyXG4gICAgICBtb2RpZmllZE9iai5yZXNwb25zZVBheWxvYWQgPSBhY3Rpb25TdGF0dXMucmVzcG9uc2VQYXlsb2FkO1xyXG4gICAgICByZXR1cm4gc3RhdHVzQWRhcHRlci51cHNlcnRPbmUoIG1vZGlmaWVkT2JqLCBzdGF0ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gc3RhdHVzQWRhcHRlci5hZGRPbmUoYWN0aW9uU3RhdHVzICwgc3RhdGUpO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgcmV0dXJuIHN0YXRlO1xyXG59XHJcbiJdfQ==
@@ -1,27 +0,0 @@
1
- import { Injectable } from "@angular/core";
2
- import { HttpRequestStateStore } from './HttpRequestStateStore';
3
- import * as i0 from "@angular/core";
4
- export class HttpRequestStateFactory {
5
- constructor() {
6
- this.requestors = [];
7
- }
8
- ngOnDestroy() {
9
- this.requestors.forEach(request => request.ngOnDestroy());
10
- }
11
- create(req, optionsOrProject, options) {
12
- const requestor = (typeof (optionsOrProject) === 'function' ? new HttpRequestStateStore(req, options, optionsOrProject) : new HttpRequestStateStore(req, options));
13
- this.requestors.push(requestor);
14
- return requestor;
15
- }
16
- createHttpClient(r, options) {
17
- const requestor = new HttpRequestStateStore(r, options);
18
- this.requestors.push(requestor);
19
- return requestor;
20
- }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HttpRequestStateFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
22
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HttpRequestStateFactory }); }
23
- }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HttpRequestStateFactory, decorators: [{
25
- type: Injectable
26
- }], ctorParameters: () => [] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFJlcXVlc3RTdGF0ZUZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvaHR0cC1yZXF1ZXN0LXN0YXRlL0h0dHBSZXF1ZXN0U3RhdGVGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBSWhFLE1BQU0sT0FBTyx1QkFBdUI7SUFFbEM7UUFJUSxlQUFVLEdBQWdCLEVBQUUsQ0FBQztJQUp0QixDQUFDO0lBQ2hCLFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBRSxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFLRCxNQUFNLENBQWlFLEdBQWtDLEVBQUUsZ0JBQXNELEVBQUUsT0FBNkI7UUFDOUwsTUFBTSxTQUFTLEdBQUcsQ0FBQyxPQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFFLElBQUkscUJBQXFCLENBQWtCLEdBQUcsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxxQkFBcUIsQ0FBa0IsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDck0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELGdCQUFnQixDQUFLLENBQXVDLEVBQUcsT0FBNkI7UUFDMUYsTUFBTSxTQUFTLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzs4R0FwQlUsdUJBQXVCO2tIQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBIdHRwUmVxdWVzdEZhY3RvcnksIFJlcXVlc3RTdGF0ZU9wdGlvbnMgfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5pbXBvcnQgeyBIdHRwUmVxdWVzdFN0YXRlU3RvcmUgfSBmcm9tICcuL0h0dHBSZXF1ZXN0U3RhdGVTdG9yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSHR0cFJlcXVlc3RTdGF0ZUZhY3RvcnkgIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0b3JzLmZvckVhY2goIHJlcXVlc3QgPT4gcmVxdWVzdC5uZ09uRGVzdHJveSgpKTtcclxuICB9XHJcbiAgcHJpdmF0ZSByZXF1ZXN0b3JzOiBPbkRlc3Ryb3lbXSA9IFtdO1xyXG5cclxuICBjcmVhdGU8VFBhcmFtIGV4dGVuZHMgYW55W10sIFY+KCByZXE6IEh0dHBSZXF1ZXN0RmFjdG9yeTxUUGFyYW0sIFY+LCBvcHRpb25zPzogUmVxdWVzdFN0YXRlT3B0aW9ucykgOiBIdHRwUmVxdWVzdFN0YXRlU3RvcmU8VFBhcmFtLCBWPlxyXG4gIGNyZWF0ZTxUUGFyYW0gZXh0ZW5kcyBhbnlbXSwgViwgUiwgVCA9IFI+KCByZXE6IEh0dHBSZXF1ZXN0RmFjdG9yeTxUUGFyYW0sIFY+LCBwcm9qZWN0OiAodjogVikgPT4gUiAsIG9wdGlvbnM/OiBSZXF1ZXN0U3RhdGVPcHRpb25zKSA6IEh0dHBSZXF1ZXN0U3RhdGVTdG9yZTxUUGFyYW0sIFYsIFQ+XHJcbiAgY3JlYXRlPFRQYXJhbSBleHRlbmRzIGFueVtdLCBWLCBSID0gbnVsbCwgVCA9IFIgZXh0ZW5kcyBudWxsID8gViA6IFI+KCByZXE6IEh0dHBSZXF1ZXN0RmFjdG9yeTxUUGFyYW0sIFY+LCBvcHRpb25zT3JQcm9qZWN0PzogUmVxdWVzdFN0YXRlT3B0aW9ucyB8ICgodjogVikgPT4gUiksIG9wdGlvbnM/OiBSZXF1ZXN0U3RhdGVPcHRpb25zICkgOiBIdHRwUmVxdWVzdFN0YXRlU3RvcmU8VFBhcmFtLCBWLCBSLCBUPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0b3IgPSAodHlwZW9mKG9wdGlvbnNPclByb2plY3QpID09PSAnZnVuY3Rpb24nID8gIG5ldyBIdHRwUmVxdWVzdFN0YXRlU3RvcmU8VFBhcmFtLCBWLCBSLCBUPihyZXEsIG9wdGlvbnMsIG9wdGlvbnNPclByb2plY3QpIDogbmV3IEh0dHBSZXF1ZXN0U3RhdGVTdG9yZTxUUGFyYW0sIFYsIFIsIFQ+KHJlcSwgb3B0aW9ucykpO1xyXG4gICAgdGhpcy5yZXF1ZXN0b3JzLnB1c2gocmVxdWVzdG9yKTtcclxuICAgIHJldHVybiByZXF1ZXN0b3I7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVIdHRwQ2xpZW50PFQ+KCByOiAobzogT2JzZXJ2YWJsZTxUPiApID0+IE9ic2VydmFibGU8VD4gLCBvcHRpb25zPzogUmVxdWVzdFN0YXRlT3B0aW9ucyApICB7XHJcbiAgICBjb25zdCByZXF1ZXN0b3IgPSBuZXcgSHR0cFJlcXVlc3RTdGF0ZVN0b3JlKHIsIG9wdGlvbnMpO1xyXG4gICAgdGhpcy5yZXF1ZXN0b3JzLnB1c2gocmVxdWVzdG9yKTtcclxuICAgIHJldHVybiByZXF1ZXN0b3I7XHJcbiAgfVxyXG5cclxufSJdfQ==
@@ -1,98 +0,0 @@
1
- import { of } from 'rxjs';
2
- import { ComponentStore } from '@ngrx/component-store';
3
- import { HttpRequestStrategy, HttpRequestStatus } from './types';
4
- import { createFailure, createSuccess, inProgress, isErrorState, isSuccessOrErrorState, isSuccessState, notStarted } from './helpers';
5
- import { concatMap, filter, map, mergeMap, startWith, switchMap, tap } from 'rxjs/operators';
6
- import { mapError } from '../rxjs/mapError';
7
- import { defaultShareReplay } from '../rxjs/defaultShareReplay';
8
- import { Directive } from '@angular/core';
9
- import * as i0 from "@angular/core";
10
- export class HttpRequestStateStore extends ComponentStore {
11
- constructor(req, options, project) {
12
- super({ requestParams: null, response: notStarted });
13
- this.req = req;
14
- this.options = options;
15
- this.project = project;
16
- this.flatteningStrategy = () => {
17
- if (this.options?.strategy === HttpRequestStrategy.concurrent)
18
- return mergeMap((params) => this.createRequest(...params));
19
- if (this.options?.strategy === HttpRequestStrategy.sequential)
20
- return concatMap((params) => this.createRequest(...params));
21
- return switchMap((params) => (params[0] instanceof CancellationToken) ?
22
- of({ requestParams: params[0], response: { status: HttpRequestStatus.cancelled } }) : this.createRequest(...params));
23
- };
24
- this.requestEffect = this.effect((obs) => {
25
- return (obs).pipe(this.flatteningStrategy(), tap(state => this.setState(state)));
26
- });
27
- this.flattenedRequest = (...value) => {
28
- return this.requestEffect(value);
29
- };
30
- this.singleUseRequest = (...value) => {
31
- if (this.get().response.status !== HttpRequestStatus.notStarted) {
32
- throw new Error("state can not be reused. either reset the state by calling reset() or use a state requester that allows concurrent requests.");
33
- }
34
- return this.requestEffect(value);
35
- };
36
- this.selectHttpState$ = this.state$.pipe(map(a => a.response));
37
- this.selectStatus$ = this.selectHttpState$.pipe(map(a => a.status));
38
- this.selectError$ = this.state$.pipe(map(r => r.response), filter(isErrorState), map(state => state.error));
39
- this.selectResponse$ = this.state$.pipe(map(r => r.response), filter(isSuccessState), map(state => state.body));
40
- this.selectSuccessOrError$ = this.state$.pipe(map(r => r.response), filter(isSuccessOrErrorState), map(() => null));
41
- this.errorHandled = false;
42
- this.on = (srcObservable, func) => {
43
- return this.effect((src) => {
44
- return src.pipe(tap(func));
45
- })(srcObservable);
46
- };
47
- this.request = (this.options?.strategy === HttpRequestStrategy.singleUse) ? this.singleUseRequest : this.flattenedRequest;
48
- }
49
- reset() {
50
- this.setState({ requestParams: null, response: notStarted });
51
- }
52
- onError(cb) {
53
- this.errorHandled = true;
54
- this.on(this.selectError$, cb);
55
- return this;
56
- }
57
- onSuccess(cb) {
58
- this.on(this.selectResponse$, cb);
59
- return this;
60
- }
61
- onSuccessOrError(cb) {
62
- this.on(this.selectSuccessOrError$, cb);
63
- return this;
64
- }
65
- onSuccessWithRequest(func) {
66
- this.onUpdate(({ requestParams, response }) => {
67
- if (isSuccessState(response)) {
68
- func({ requestParams, body: response.body });
69
- }
70
- });
71
- return this;
72
- }
73
- onErrorWithRequest(func) {
74
- this.onUpdate(({ requestParams, response }) => {
75
- if (isErrorState(response)) {
76
- func({ requestParams, error: response.error });
77
- }
78
- });
79
- return this;
80
- }
81
- createRequest(...params) {
82
- return this.req(...params).pipe(map(re => createSuccess((this.project ? this.project(re) : re))), mapError(createFailure), startWith(inProgress), map(state => ({ requestParams: params, response: state })), defaultShareReplay());
83
- }
84
- onUpdate(func) {
85
- this.on(this.state$, func);
86
- }
87
- ngOnDestroy() {
88
- super.ngOnDestroy();
89
- }
90
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HttpRequestStateStore, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive }); }
91
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: HttpRequestStateStore, usesInheritance: true, ngImport: i0 }); }
92
- }
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HttpRequestStateStore, decorators: [{
94
- type: Directive
95
- }], ctorParameters: () => [{ type: undefined }, { type: undefined }, { type: undefined }] });
96
- export class CancellationToken {
97
- }
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFJlcXVlc3RTdGF0ZVN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL2h0dHAtcmVxdWVzdC1zdGF0ZS9IdHRwUmVxdWVzdFN0YXRlU3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBc0IsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQW9FLE1BQU0sU0FBUyxDQUFDO0FBQ3ZKLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0SSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0YsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUTFDLE1BQU0sT0FBTyxxQkFBcUYsU0FBUSxjQUEwQztJQUVoSixZQUFvQixHQUFrQyxFQUFVLE9BQTZCLEVBQVUsT0FBcUI7UUFDMUgsS0FBSyxDQUFDLEVBQUUsYUFBYSxFQUFFLElBQVcsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUQxQyxRQUFHLEdBQUgsR0FBRyxDQUErQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBYztRQVNwSCx1QkFBa0Is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QUFDLFVBQVUsQ0FBQyxFQUNyQixHQUFHLENBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUMzRCxrQkFBa0IsRUFBRSxDQUNyQixDQUFDO0lBQ0osQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUdDO1FBQ1IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFVRCxXQUFXO1FBQ1QsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7OEdBOUhRLHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxTQUFTOztBQW1JUixNQUFNLE9BQU8saUJBQWlCO0NBQUciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudFN0b3JlIH0gZnJvbSAnQG5ncngvY29tcG9uZW50LXN0b3JlJztcclxuaW1wb3J0IHsgSHR0cFJlcXVlc3RGYWN0b3J5LCBIdHRwUmVxdWVzdFN0cmF0ZWd5LCBIdHRwUmVxdWVzdFN0YXR1cywgSHR0cFJlcXVlc3RTdGF0ZSwgUmVxdWVzdFN0YXRlT3B0aW9ucywgSHR0cFJlcXVlc3RTdGF0ZUNhbmNlbGxlZCB9IGZyb20gJy4vdHlwZXMnO1xyXG5pbXBvcnQgeyBjcmVhdGVGYWlsdXJlLCBjcmVhdGVTdWNjZXNzLCBpblByb2dyZXNzLCBpc0Vycm9yU3RhdGUsIGlzU3VjY2Vzc09yRXJyb3JTdGF0ZSwgaXNTdWNjZXNzU3RhdGUsIG5vdFN0YXJ0ZWQgfSBmcm9tICcuL2hlbHBlcnMnO1xyXG5pbXBvcnQgeyBjb25jYXRNYXAsIGZpbHRlciwgbWFwLCBtZXJnZU1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IG1hcEVycm9yIH0gZnJvbSAnLi4vcnhqcy9tYXBFcnJvcic7XHJcbmltcG9ydCB7IGRlZmF1bHRTaGFyZVJlcGxheSB9IGZyb20gJy4uL3J4anMvZGVmYXVsdFNoYXJlUmVwbGF5JztcclxuaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RSZXNwb25zZTxUUGFyYW0gZXh0ZW5kcyBhbnlbXSwgVD4ge1xyXG4gIHJlcXVlc3RQYXJhbXM6IFsuLi5UUGFyYW1dO1xyXG4gIHJlc3BvbnNlOiBIdHRwUmVxdWVzdFN0YXRlPFQ+O1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIEh0dHBSZXF1ZXN0U3RhdGVTdG9yZTxUUGFyYW0gZXh0ZW5kcyBhbnlbXSwgViwgUiA9IG51bGwsIFQgPSBSIGV4dGVuZHMgbnVsbCA/IFYgOiBSPiBleHRlbmRzIENvbXBvbmVudFN0b3JlPFJlcXVlc3RSZXNwb25zZTxUUGFyYW0sIFQ+PiB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZXE6IEh0dHBSZXF1ZXN0RmFjdG9yeTxUUGFyYW0sIFY+ICxwcml2YXRlIG9wdGlvbnM/OiBSZXF1ZXN0U3RhdGVPcHRpb25zLCBwcml2YXRlIHByb2plY3Q/OiAodjogVikgPT4gUikge1xyXG4gICAgICBzdXBlcih7IHJlcXVlc3RQYXJhbXM6IG51bGwgYXMgYW55LCByZXNwb25zZTogbm90U3RhcnRlZCB9KTtcclxuICAgICAgdGhpcy5yZXF1ZXN0ID0gKHRoaXMub3B0aW9ucz8uc3RyYXRlZ3kgPT09IEh0dHBSZXF1ZXN0U3RyYXRlZ3kuc2luZ2xlVXNlKSA/IHRoaXMuc2luZ2xlVXNlUmVxdWVzdCA6ICB0aGlzLmZsYXR0ZW5lZFJlcXVlc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgcmVzZXQoKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyByZXF1ZXN0UGFyYW1zOm51bGwgYXMgYW55LCByZXNwb25zZTogbm90U3RhcnRlZCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGZsYXR0ZW5pbmdTdHJhdGVneSA9ICgpID0+IHtcclxuICAgICAgaWYodGhpcy5vcHRpb25zPy5zdHJhdGVneSA9PT0gSHR0cFJlcXVlc3RTdHJhdGVneS5jb25jdXJyZW50KVxyXG4gICAgICAgIHJldHVybiBtZXJnZU1hcCggKHBhcmFtczogWy4uLlRQYXJhbV0pID0+IHRoaXMuY3JlYXRlUmVxdWVzdCguLi5wYXJhbXMpKTtcclxuICAgICAgaWYodGhpcy5vcHRpb25zPy5zdHJhdGVneSA9PT0gSHR0cFJlcXVlc3RTdHJhdGVneS5zZXF1ZW50aWFsKVxyXG4gICAgICAgIHJldHVybiBjb25jYXRNYXAoIChwYXJhbXM6IFsuLi5UUGFyYW1dKSA9PiB0aGlzLmNyZWF0ZVJlcXVlc3QoLi4ucGFyYW1zKSk7XHJcbiAgICAgIHJldHVybiBzd2l0Y2hNYXAoIChwYXJhbXM6IFsuLi5UUGFyYW1dKSA9PiAoKHBhcmFtc1swXSBhcyBhbnkpIGluc3RhbmNlb2YgQ2FuY2VsbGF0aW9uVG9rZW4pID9cclxuICAgICAgICBvZih7IHJlcXVlc3RQYXJhbXM6IHBhcmFtc1swXSwgcmVzcG9uc2U6IHsgc3RhdHVzOiBIdHRwUmVxdWVzdFN0YXR1cy5jYW5jZWxsZWQgfSBhcyBIdHRwUmVxdWVzdFN0YXRlQ2FuY2VsbGVkIH0gKSA6IHRoaXMuY3JlYXRlUmVxdWVzdCguLi5wYXJhbXMpICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZXF1ZXN0RWZmZWN0OiAodmFsdWU6IFsuLi5UUGFyYW1dICkgPT4gU3Vic2NyaXB0aW9uID0gdGhpcy5lZmZlY3QoKG9iczogT2JzZXJ2YWJsZTxbLi4uVFBhcmFtXT4pID0+IHtcclxuICAgICAgcmV0dXJuIChvYnMpLnBpcGUoXHJcbiAgICAgICAgdGhpcy5mbGF0dGVuaW5nU3RyYXRlZ3koKSxcclxuICAgICAgICB0YXA8UmVxdWVzdFJlc3BvbnNlPFRQYXJhbSwgVD4+KHN0YXRlID0+IHRoaXMuc2V0U3RhdGUoc3RhdGUpKSxcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHByaXZhdGUgZmxhdHRlbmVkUmVxdWVzdCA9ICguLi52YWx1ZTogWy4uLlRQYXJhbV0pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdEVmZmVjdCh2YWx1ZSkgYXMgU3Vic2NyaXB0aW9uO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBzaW5nbGVVc2VSZXF1ZXN0ID0gKC4uLnZhbHVlOiBbLi4uVFBhcmFtXSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5nZXQoKS5yZXNwb25zZS5zdGF0dXMgIT09IEh0dHBSZXF1ZXN0U3RhdHVzLm5vdFN0YXJ0ZWQpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzdGF0ZSBjYW4gbm90IGJlIHJldXNlZC4gZWl0aGVyIHJlc2V0IHRoZSBzdGF0ZSBieSBjYWxsaW5nIHJlc2V0KCkgb3IgdXNlIGEgc3RhdGUgcmVxdWVzdGVyIHRoYXQgYWxsb3dzIGNvbmN1cnJlbnQgcmVxdWVzdHMuXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLnJlcXVlc3RFZmZlY3QodmFsdWUpIGFzIFN1YnNjcmlwdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RIdHRwU3RhdGUkID0gdGhpcy5zdGF0ZSQucGlwZShtYXAoYSA9PiBhLnJlc3BvbnNlKSk7XHJcblxyXG4gICAgc2VsZWN0U3RhdHVzJCA9IHRoaXMuc2VsZWN0SHR0cFN0YXRlJC5waXBlKG1hcChhID0+IGEuc3RhdHVzKSk7XHJcblxyXG4gICAgc2VsZWN0RXJyb3IkID0gdGhpcy5zdGF0ZSQucGlwZShcclxuICAgICAgbWFwKHIgPT4gci5yZXNwb25zZSksXHJcbiAgICAgIGZpbHRlcihpc0Vycm9yU3RhdGUpLFxyXG4gICAgICBtYXAoIHN0YXRlID0+IHN0YXRlLmVycm9yKVxyXG4gICAgKTtcclxuXHJcbiAgICBzZWxlY3RSZXNwb25zZSQ6IE9ic2VydmFibGU8VD4gPSB0aGlzLnN0YXRlJC5waXBlKFxyXG4gICAgICBtYXAociA9PiByLnJlc3BvbnNlKSxcclxuICAgICAgZmlsdGVyKGlzU3VjY2Vzc1N0YXRlKSxcclxuICAgICAgbWFwKCBzdGF0ZSA9PiBzdGF0ZS5ib2R5KVxyXG4gICAgKTtcclxuICAgIHNlbGVjdFN1Y2Nlc3NPckVycm9yJCA9IHRoaXMuc3RhdGUkLnBpcGUoXHJcbiAgICAgIG1hcChyID0+IHIucmVzcG9uc2UpLFxyXG4gICAgICBmaWx0ZXIoaXNTdWNjZXNzT3JFcnJvclN0YXRlKSxcclxuICAgICAgbWFwKCAoKSA9PiBudWxsKVxyXG4gICAgKTtcclxuXHJcbiAgICBlcnJvckhhbmRsZWQgPSBmYWxzZTtcclxuICAgIG9uRXJyb3IoIGNiOiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JIYW5kbGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5vbih0aGlzLnNlbGVjdEVycm9yJCwgY2IpO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvblN1Y2Nlc3MoIGNiOiAoYm9keT86IFQpID0+IHZvaWQpIHtcclxuICAgICAgdGhpcy5vbih0aGlzLnNlbGVjdFJlc3BvbnNlJCwgY2IpO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvblN1Y2Nlc3NPckVycm9yKGNiOiAoKSA9PiB2b2lkKXtcclxuICAgICAgdGhpcy5vbih0aGlzLnNlbGVjdFN1Y2Nlc3NPckVycm9yJCwgY2IpO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvblN1Y2Nlc3NXaXRoUmVxdWVzdChmdW5jOiAoc3RhdGU6IHtcclxuICAgICAgcmVxdWVzdFBhcmFtczogWy4uLlRQYXJhbV07XHJcbiAgICAgIGJvZHk6IFQ7XHJcbiAgICB9KSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMub25VcGRhdGUoKHsgcmVxdWVzdFBhcmFtcywgcmVzcG9uc2UgfSkgPT4ge1xyXG4gICAgICAgIGlmKGlzU3VjY2Vzc1N0YXRlKHJlc3BvbnNlKSl7XHJcbiAgICAgICAgICBmdW5jKHtyZXF1ZXN0UGFyYW1zLGJvZHk6IHJlc3BvbnNlLmJvZHl9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvbkVycm9yV2l0aFJlcXVlc3QoZnVuYzogKHN0YXRlOiB7XHJcbiAgICAgIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZTtcclxuICAgICAgcmVxdWVzdFBhcmFtczogWy4uLlRQYXJhbV07XHJcbiAgICB9KSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMub25VcGRhdGUoICh7IHJlcXVlc3RQYXJhbXMsIHJlc3BvbnNlIH0pID0+IHtcclxuICAgICAgICBpZihpc0Vycm9yU3RhdGUocmVzcG9uc2UpKXtcclxuICAgICAgICAgIGZ1bmMoeyByZXF1ZXN0UGFyYW1zLCBlcnJvcjogcmVzcG9uc2UuZXJyb3IgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVSZXF1ZXN0KC4uLnBhcmFtczogWy4uLlRQYXJhbV0pOiBPYnNlcnZhYmxlPFJlcXVlc3RSZXNwb25zZTxUUGFyYW0sIFQ+PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJlcSguLi5wYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgbWFwKHJlID0+IGNyZWF0ZVN1Y2Nlc3MoKHRoaXMucHJvamVjdCA/IHRoaXMucHJvamVjdChyZSkgOiByZSkgYXMgVCkpLFxyXG4gICAgICAgIG1hcEVycm9yKGNyZWF0ZUZhaWx1cmUpLFxyXG4gICAgICAgIHN0YXJ0V2l0aChpblByb2dyZXNzKSxcclxuICAgICAgICBtYXAoIHN0YXRlID0+ICh7IHJlcXVlc3RQYXJhbXM6IHBhcmFtcywgcmVzcG9uc2U6IHN0YXRlIH0pKSxcclxuICAgICAgICBkZWZhdWx0U2hhcmVSZXBsYXkoKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVXBkYXRlKGZ1bmM6IChzdGF0ZToge1xyXG4gICAgICByZXF1ZXN0UGFyYW1zOiBbLi4uVFBhcmFtXTtcclxuICAgICAgcmVzcG9uc2U6IEh0dHBSZXF1ZXN0U3RhdGU8VD47XHJcbiAgICB9KSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMub24odGhpcy5zdGF0ZSQsIGZ1bmMpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uID0gPFY+KHNyY09ic2VydmFibGU6IE9ic2VydmFibGU8Vj4sIGZ1bmM6IChvYmo6IFYpID0+IHZvaWQpOiBTdWJzY3JpcHRpb24gPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5lZmZlY3QoKHNyYzogT2JzZXJ2YWJsZTxWPikgPT4ge1xyXG4gICAgICAgIHJldHVybiBzcmMucGlwZSh0YXAoZnVuYykpO1xyXG4gICAgICB9KShzcmNPYnNlcnZhYmxlKSBhcyBTdWJzY3JpcHRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcmVxdWVzdDogKC4uLnZhbHVlOiBbLi4uVFBhcmFtXSApID0+IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBleHBvcnQgY2xhc3MgQ2FuY2VsbGF0aW9uVG9rZW4ge31cclxuIl19
@@ -1,34 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { HttpRequestStateDirective } from './request-state-directive';
3
- import * as i0 from "@angular/core";
4
- export class HttpStateDirectiveBase {
5
- constructor(injector, templateRef, viewContainer) {
6
- this.injector = injector;
7
- this.templateRef = templateRef;
8
- this.viewContainer = viewContainer;
9
- this.hasView = false;
10
- this.baseRender = (state) => {
11
- if (this.hasView) {
12
- this.viewContainer.clear();
13
- this.hasView = false;
14
- }
15
- this.hasView = this.render(state);
16
- };
17
- }
18
- ngOnInit() {
19
- const parent = this.injector.get(HttpRequestStateDirective);
20
- if (parent == null) {
21
- throw new Error('You can only use an http state directive as a child of the httpRequestState directive.');
22
- }
23
- parent.hooks.push(this.baseRender);
24
- this.baseRender(parent.ViewContext.state);
25
- }
26
- ngOnDestroy() {
27
- }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HttpStateDirectiveBase, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
29
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: HttpStateDirectiveBase, ngImport: i0 }); }
30
- }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HttpStateDirectiveBase, decorators: [{
32
- type: Directive
33
- }], ctorParameters: () => [{ type: i0.Injector }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFN0YXRlRGlyZWN0aXZlQmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy9odHRwLXJlcXVlc3Qtc3RhdGUvZGlyZWN0aXZlcy9IdHRwU3RhdGVEaXJlY3RpdmVCYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTJDLE1BQU0sZUFBZSxDQUFDO0FBRW5GLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUd0RSxNQUFNLE9BQWdCLHNCQUFzQjtJQUV4QyxZQUNZLFFBQWtCLEVBQ2hCLFdBQTZCLEVBQzdCLGFBQStCO1FBRmpDLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUo3QyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBc0JSLGVBQVUsR0FBRyxDQUFDLEtBQXNCLEVBQVUsRUFBRTtZQUNwRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7YUFDeEI7WUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFBO0lBckJELENBQUM7SUFFRCxRQUFRO1FBQ0osTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM1RCxJQUFHLE1BQU0sSUFBSSxJQUFJLEVBQUU7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLHdGQUF3RixDQUFDLENBQUM7U0FDN0c7UUFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxXQUFXO0lBRVgsQ0FBQzs4R0FyQmlCLHNCQUFzQjtrR0FBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQUQzQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RvciwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cFJlcXVlc3RTdGF0ZSB9IGZyb20gJy4uL3R5cGVzJztcclxuaW1wb3J0IHsgSHR0cFJlcXVlc3RTdGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vcmVxdWVzdC1zdGF0ZS1kaXJlY3RpdmUnO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBIdHRwU3RhdGVEaXJlY3RpdmVCYXNlIHtcclxuICAgIGhhc1ZpZXcgPSBmYWxzZTtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByb3RlY3RlZCB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgICAgICBwcm90ZWN0ZWQgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcclxuICAgICkge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBjb25zdCBwYXJlbnQgPSB0aGlzLmluamVjdG9yLmdldChIdHRwUmVxdWVzdFN0YXRlRGlyZWN0aXZlKTtcclxuICAgICAgICBpZihwYXJlbnQgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW4gb25seSB1c2UgYW4gaHR0cCBzdGF0ZSBkaXJlY3RpdmUgYXMgYSBjaGlsZCBvZiB0aGUgaHR0cFJlcXVlc3RTdGF0ZSBkaXJlY3RpdmUuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHBhcmVudC5ob29rcy5wdXNoKHRoaXMuYmFzZVJlbmRlcik7XHJcbiAgICAgICAgdGhpcy5iYXNlUmVuZGVyKHBhcmVudC5WaWV3Q29udGV4dC5zdGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBiYXNlUmVuZGVyID0gKHN0YXRlOkh0dHBSZXF1ZXN0U3RhdGUgKSA6IHZvaWQgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmhhc1ZpZXcpIHtcclxuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuaGFzVmlldyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmhhc1ZpZXcgPSB0aGlzLnJlbmRlcihzdGF0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgYWJzdHJhY3QgcmVuZGVyOiAoc3RhdGU6IEh0dHBSZXF1ZXN0U3RhdGUpID0+IGJvb2xlYW47XHJcbn1cclxuIl19
@@ -1,29 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { isErrorState } from '../helpers';
3
- import { HttpStateDirectiveBase } from './HttpStateDirectiveBase';
4
- import * as i0 from "@angular/core";
5
- export class HttpErrorStateDirective extends HttpStateDirectiveBase {
6
- constructor(injector, templateRef, viewContainer) {
7
- super(injector, templateRef, viewContainer);
8
- this.render = (state) => {
9
- if (isErrorState(state)) {
10
- this.viewContainer.createEmbeddedView(this.templateRef, { $implicit: state.error });
11
- return true;
12
- }
13
- return false;
14
- };
15
- }
16
- ngOnInit() {
17
- super.ngOnInit();
18
- }
19
- ngOnDestroy() {
20
- super.ngOnDestroy();
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HttpErrorStateDirective, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
23
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: HttpErrorStateDirective, isStandalone: true, selector: "[httpErrorState]", usesInheritance: true, ngImport: i0 }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HttpErrorStateDirective, decorators: [{
26
- type: Directive,
27
- args: [{ selector: '[httpErrorState]', standalone: true }]
28
- }], ctorParameters: () => [{ type: i0.Injector }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci1zdGF0ZS1kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvaHR0cC1yZXF1ZXN0LXN0YXRlL2RpcmVjdGl2ZXMvaHR0cC1lcnJvci1zdGF0ZS1kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBMkMsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUxQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFHbEUsTUFBTSxPQUFPLHVCQUFpRCxTQUFRLHNCQUFzQjtJQUUxRixZQUNFLFFBQWtCLEVBQ2xCLFdBQTZCLEVBQzdCLGFBQStCO1FBRS9CLEtBQUssQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRzlDLFdBQU0sR0FBRyxDQUFDLEtBQTRCLEVBQUUsRUFBRTtZQUN4QyxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUNwRixPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDLENBQUM7SUFSRixDQUFDO0lBVUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN0QixDQUFDOzhHQXhCVSx1QkFBdUI7a0dBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFEbkMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RvciwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgaXNFcnJvclN0YXRlIH0gZnJvbSAnLi4vaGVscGVycyc7XHJcbmltcG9ydCB7IEh0dHBSZXF1ZXN0U3RhdGUgfSBmcm9tICcuLi90eXBlcyc7XHJcbmltcG9ydCB7IEh0dHBTdGF0ZURpcmVjdGl2ZUJhc2UgfSBmcm9tICcuL0h0dHBTdGF0ZURpcmVjdGl2ZUJhc2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2h0dHBFcnJvclN0YXRlXScsIHN0YW5kYWxvbmU6IHRydWUgfSlcclxuZXhwb3J0IGNsYXNzIEh0dHBFcnJvclN0YXRlRGlyZWN0aXZlPFRQYXJhbSBleHRlbmRzIGFueVtdLCBUPiBleHRlbmRzIEh0dHBTdGF0ZURpcmVjdGl2ZUJhc2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxyXG4gICAgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZixcclxuICApIHtcclxuICAgIHN1cGVyKGluamVjdG9yLCB0ZW1wbGF0ZVJlZiwgdmlld0NvbnRhaW5lcik7XHJcbiAgfVxyXG5cclxuICByZW5kZXIgPSAoc3RhdGU6IEh0dHBSZXF1ZXN0U3RhdGU8YW55PikgPT4ge1xyXG4gICAgaWYgKGlzRXJyb3JTdGF0ZShzdGF0ZSkpIHtcclxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmLCB7ICRpbXBsaWNpdDogc3RhdGUuZXJyb3IgfSk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH07XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcbn0iXX0=
@@ -1,29 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { HttpStateDirectiveBase } from './HttpStateDirectiveBase';
3
- import { HttpRequestStatus } from '../types';
4
- import * as i0 from "@angular/core";
5
- export class HttpInProgressStateDirective extends HttpStateDirectiveBase {
6
- constructor(injector, templateRef, viewContainer) {
7
- super(injector, templateRef, viewContainer);
8
- this.render = (state) => {
9
- if (state.status === HttpRequestStatus.inProgress) {
10
- this.viewContainer.createEmbeddedView(this.templateRef);
11
- return true;
12
- }
13
- return false;
14
- };
15
- }
16
- ngOnInit() {
17
- super.ngOnInit();
18
- }
19
- ngOnDestroy() {
20
- super.ngOnDestroy();
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HttpInProgressStateDirective, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
23
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: HttpInProgressStateDirective, isStandalone: true, selector: "[httpInProgressState]", usesInheritance: true, ngImport: i0 }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HttpInProgressStateDirective, decorators: [{
26
- type: Directive,
27
- args: [{ selector: '[httpInProgressState]', standalone: true }]
28
- }], ctorParameters: () => [{ type: i0.Injector }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1pblByb2dyZXNzLXN0YXRlLWRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy9odHRwLXJlcXVlc3Qtc3RhdGUvZGlyZWN0aXZlcy9odHRwLWluUHJvZ3Jlc3Mtc3RhdGUtZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTJDLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2xFLE9BQU8sRUFBb0IsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUE7O0FBSTlELE1BQU0sT0FBTyw0QkFBOEIsU0FBUSxzQkFBc0I7SUFTckUsWUFDRyxRQUFrQixFQUNqQixXQUE2QixFQUM3QixhQUErQjtRQUUvQixLQUFLLENBQUMsUUFBUSxFQUFDLFdBQVcsRUFBQyxhQUFhLENBQUMsQ0FBQztRQWI5QyxXQUFNLEdBQUcsQ0FBQyxLQUE0QixFQUFFLEVBQUU7WUFDdEMsSUFBRyxLQUFLLENBQUMsTUFBTSxLQUFLLGlCQUFpQixDQUFDLFVBQVUsRUFBQztnQkFDN0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFFLENBQUM7Z0JBQ3pELE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUM7SUFRRixDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQXZCUSw0QkFBNEI7a0dBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RvciwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cFN0YXRlRGlyZWN0aXZlQmFzZSB9IGZyb20gJy4vSHR0cFN0YXRlRGlyZWN0aXZlQmFzZSc7XHJcbmltcG9ydCB7IEh0dHBSZXF1ZXN0U3RhdGUsIEh0dHBSZXF1ZXN0U3RhdHVzIH0gZnJvbSAnLi4vdHlwZXMnXHJcblxyXG5cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2h0dHBJblByb2dyZXNzU3RhdGVdJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxyXG5leHBvcnQgY2xhc3MgSHR0cEluUHJvZ3Jlc3NTdGF0ZURpcmVjdGl2ZSAgZXh0ZW5kcyBIdHRwU3RhdGVEaXJlY3RpdmVCYXNlIHtcclxuICAgIHJlbmRlciA9IChzdGF0ZTogSHR0cFJlcXVlc3RTdGF0ZTxhbnk+KSA9PiB7XHJcbiAgICAgICAgaWYoc3RhdGUuc3RhdHVzID09PSBIdHRwUmVxdWVzdFN0YXR1cy5pblByb2dyZXNzKXtcclxuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmICk7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxyXG4gICAgICAgIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihpbmplY3Rvcix0ZW1wbGF0ZVJlZix2aWV3Q29udGFpbmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -1,29 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { HttpRequestStatus } from '../types';
3
- import { HttpStateDirectiveBase } from './HttpStateDirectiveBase';
4
- import * as i0 from "@angular/core";
5
- export class HttpNotStartedStateDirective extends HttpStateDirectiveBase {
6
- constructor(injector, templateRef, viewContainer) {
7
- super(injector, templateRef, viewContainer);
8
- this.render = (state) => {
9
- if (state.status === HttpRequestStatus.notStarted) {
10
- this.viewContainer.createEmbeddedView(this.templateRef);
11
- return true;
12
- }
13
- return false;
14
- };
15
- }
16
- ngOnInit() {
17
- super.ngOnInit();
18
- }
19
- ngOnDestroy() {
20
- super.ngOnDestroy();
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HttpNotStartedStateDirective, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
23
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: HttpNotStartedStateDirective, isStandalone: true, selector: "[httpNotStartedState]", usesInheritance: true, ngImport: i0 }); }
24
- }
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HttpNotStartedStateDirective, decorators: [{
26
- type: Directive,
27
- args: [{ selector: '[httpNotStartedState]', standalone: true }]
28
- }], ctorParameters: () => [{ type: i0.Injector }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1ub3RTdGFydGVkLXN0YXRlLWRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy9odHRwLXJlcXVlc3Qtc3RhdGUvZGlyZWN0aXZlcy9odHRwLW5vdFN0YXJ0ZWQtc3RhdGUtZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQTJDLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBb0IsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBSWxFLE1BQU0sT0FBTyw0QkFBcUQsU0FBUSxzQkFBc0I7SUFTNUYsWUFDSSxRQUFrQixFQUNsQixXQUE2QixFQUM3QixhQUErQjtRQUUvQixLQUFLLENBQUMsUUFBUSxFQUFDLFdBQVcsRUFBQyxhQUFhLENBQUMsQ0FBQztRQWI5QyxXQUFNLEdBQUcsQ0FBQyxLQUE0QixFQUFFLEVBQUU7WUFDdEMsSUFBRyxLQUFLLENBQUMsTUFBTSxLQUFLLGlCQUFpQixDQUFDLFVBQVUsRUFBQztnQkFDN0MsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFFLENBQUM7Z0JBQ3pELE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUM7SUFRRixDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsV0FBVztRQUNQLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQXZCUSw0QkFBNEI7a0dBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RvciwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cFJlcXVlc3RTdGF0ZSwgSHR0cFJlcXVlc3RTdGF0dXMgfSBmcm9tICcuLi90eXBlcyc7XHJcbmltcG9ydCB7IEh0dHBTdGF0ZURpcmVjdGl2ZUJhc2UgfSBmcm9tICcuL0h0dHBTdGF0ZURpcmVjdGl2ZUJhc2UnO1xyXG5cclxuXHJcbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1todHRwTm90U3RhcnRlZFN0YXRlXScsIHN0YW5kYWxvbmU6IHRydWUgfSlcclxuZXhwb3J0IGNsYXNzIEh0dHBOb3RTdGFydGVkU3RhdGVEaXJlY3RpdmU8VFBhcmFtIGV4dGVuZHMgYW55W10sVD4gZXh0ZW5kcyBIdHRwU3RhdGVEaXJlY3RpdmVCYXNlIHtcclxuICAgIHJlbmRlciA9IChzdGF0ZTogSHR0cFJlcXVlc3RTdGF0ZTxhbnk+KSA9PiB7XHJcbiAgICAgICAgaWYoc3RhdGUuc3RhdHVzID09PSBIdHRwUmVxdWVzdFN0YXR1cy5ub3RTdGFydGVkKXtcclxuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmICk7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgICAgICB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IsdGVtcGxhdGVSZWYsdmlld0NvbnRhaW5lcik7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -1,34 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import { isSuccessState } from '../helpers';
3
- import { HttpStateDirectiveBase } from './HttpStateDirectiveBase';
4
- import * as i0 from "@angular/core";
5
- export class HttpSuccessStateDirective extends HttpStateDirectiveBase {
6
- constructor(injector, templateRef, viewContainer) {
7
- super(injector, templateRef, viewContainer);
8
- this.render = (state) => {
9
- if (isSuccessState(state)) {
10
- this.viewContainer.createEmbeddedView(this.templateRef, { $implicit: state.body });
11
- return true;
12
- }
13
- return false;
14
- };
15
- }
16
- ngOnInit() {
17
- super.ngOnInit();
18
- }
19
- ngOnDestroy() {
20
- super.ngOnDestroy();
21
- }
22
- static ngTemplateContextGuard(dir, ctx) {
23
- return true;
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HttpSuccessStateDirective, deps: [{ token: i0.Injector }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
26
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: HttpSuccessStateDirective, isStandalone: true, selector: "[httpSuccessState]", inputs: { httpSuccessStateTypeSafety: "httpSuccessStateTypeSafety" }, usesInheritance: true, ngImport: i0 }); }
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HttpSuccessStateDirective, decorators: [{
29
- type: Directive,
30
- args: [{ selector: '[httpSuccessState]', standalone: true }]
31
- }], ctorParameters: () => [{ type: i0.Injector }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }], propDecorators: { httpSuccessStateTypeSafety: [{
32
- type: Input
33
- }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1zdWNjZXNzLXN0YXRlLWRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy9odHRwLXJlcXVlc3Qtc3RhdGUvZGlyZWN0aXZlcy9odHRwLXN1Y2Nlc3Mtc3RhdGUtZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVksS0FBSyxFQUFpQyxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQVNsRSxNQUFNLE9BQU8seUJBQXVDLFNBQVEsc0JBQXNCO0lBU2hGLFlBQ0UsUUFBa0IsRUFDbEIsV0FBK0QsRUFDL0QsYUFBK0I7UUFFL0IsS0FBSyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFaOUMsV0FBTSxHQUFHLENBQUMsS0FBK0MsRUFBRSxFQUFFO1lBQzNELElBQUksY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ25GLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQztJQU9GLENBQUM7SUFFRCxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXO1FBQ1QsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxNQUFNLENBQUMsc0JBQXNCLENBQU8sR0FBb0MsRUFBRSxHQUFRO1FBQ2hGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs4R0EzQlUseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBRHJDLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTtzSUFFcEQsMEJBQTBCO3NCQUFsQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RvciwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzU3VjY2Vzc1N0YXRlIH0gZnJvbSAnLi4vaGVscGVycyc7XHJcbmltcG9ydCB7IEh0dHBTdGF0ZURpcmVjdGl2ZUJhc2UgfSBmcm9tICcuL0h0dHBTdGF0ZURpcmVjdGl2ZUJhc2UnO1xyXG5pbXBvcnQgeyBIdHRwUmVxdWVzdFN0YXRlIH0gZnJvbSAnLi4vdHlwZXMnO1xyXG5pbXBvcnQgeyBIdHRwUmVxdWVzdFN0YXRlU3RvcmUgfSBmcm9tICcuLi9IdHRwUmVxdWVzdFN0YXRlU3RvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBTdWNjZXNzU3RhdGVWaWV3Q29udGV4dDxUPiB7XHJcbiAgJGltcGxpY2l0OiBUO1xyXG59XHJcbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1todHRwU3VjY2Vzc1N0YXRlXScsIHN0YW5kYWxvbmU6IHRydWUgfSlcclxuZXhwb3J0IGNsYXNzIEh0dHBTdWNjZXNzU3RhdGVEaXJlY3RpdmU8ViwgUiA9IG51bGw+IGV4dGVuZHMgSHR0cFN0YXRlRGlyZWN0aXZlQmFzZSB7XHJcbiAgQElucHV0KCkgaHR0cFN1Y2Nlc3NTdGF0ZVR5cGVTYWZldHk/OiBIdHRwUmVxdWVzdFN0YXRlU3RvcmU8YW55LCBWLCBSPiB8IE9ic2VydmFibGU8SHR0cFJlcXVlc3RTdGF0ZTxWPj47XHJcbiAgcmVuZGVyID0gKHN0YXRlOiBIdHRwUmVxdWVzdFN0YXRlPFIgZXh0ZW5kcyBudWxsID8gViA6IFI+KSA9PiB7XHJcbiAgICBpZiAoaXNTdWNjZXNzU3RhdGUoc3RhdGUpKSB7XHJcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZiwgeyAkaW1wbGljaXQ6IHN0YXRlLmJvZHkgfSk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH07XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFIgZXh0ZW5kcyBudWxsID8gViA6IFIgfT4sXHJcbiAgICB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICkge1xyXG4gICAgc3VwZXIoaW5qZWN0b3IsIHRlbXBsYXRlUmVmLCB2aWV3Q29udGFpbmVyKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgc3VwZXIubmdPbkluaXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBuZ1RlbXBsYXRlQ29udGV4dEd1YXJkPFYsIFI+KGRpcjogSHR0cFN1Y2Nlc3NTdGF0ZURpcmVjdGl2ZTxWLCBSPiwgY3R4OiBhbnkpOiBjdHggaXMgSHR0cFN1Y2Nlc3NTdGF0ZVZpZXdDb250ZXh0PFIgZXh0ZW5kcyBudWxsID8gViA6IFI+IHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,6 +0,0 @@
1
- export * from './http-error-state-directive';
2
- export * from './http-inProgress-state-directive';
3
- export * from './http-notStarted-state-directive';
4
- export * from './http-success-state-directive';
5
- export * from './request-state-directive';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvaHR0cC1yZXF1ZXN0LXN0YXRlL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9odHRwLWVycm9yLXN0YXRlLWRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2h0dHAtaW5Qcm9ncmVzcy1zdGF0ZS1kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9odHRwLW5vdFN0YXJ0ZWQtc3RhdGUtZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vaHR0cC1zdWNjZXNzLXN0YXRlLWRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlcXVlc3Qtc3RhdGUtZGlyZWN0aXZlJztcbiJdfQ==
@@ -1,60 +0,0 @@
1
- import { Directive, Input } from '@angular/core';
2
- import { defaultShareReplay } from '../../rxjs/defaultShareReplay';
3
- import { isObservable, Subject } from 'rxjs';
4
- import { map, switchAll } from 'rxjs/operators';
5
- import { HttpRequestStatus } from '../types';
6
- import * as i0 from "@angular/core";
7
- export class HttpRequestStateDirective {
8
- set stateStore(store) {
9
- if (isObservable(store)) {
10
- this.subject.next(store);
11
- }
12
- else {
13
- this.subject.next(store.state$.pipe(map(state => state.response)));
14
- }
15
- }
16
- constructor(templateRef, viewContainer) {
17
- this.templateRef = templateRef;
18
- this.viewContainer = viewContainer;
19
- this.ViewContext = {
20
- $implicit: undefined,
21
- state: undefined,
22
- status: {
23
- inProgress: false,
24
- notStarted: true,
25
- success: false,
26
- error: false,
27
- }
28
- };
29
- this.subject = new Subject();
30
- this.state = this.subject.pipe(switchAll(), defaultShareReplay());
31
- this.hooks = [];
32
- this.viewContainer.createEmbeddedView(this.templateRef, this.ViewContext);
33
- this.subscription = this.state.subscribe(state => {
34
- this.ViewContext.$implicit = state;
35
- this.ViewContext.state = state;
36
- this.ViewContext.status.inProgress = state.status === HttpRequestStatus.inProgress;
37
- this.ViewContext.status.notStarted = state.status === HttpRequestStatus.notStarted;
38
- this.ViewContext.status.success = state.status === HttpRequestStatus.success;
39
- this.ViewContext.status.error = state.status === HttpRequestStatus.fail;
40
- this.hooks.forEach(hook => hook(state));
41
- });
42
- }
43
- ngOnDestroy() {
44
- this.viewContainer.clear();
45
- this.subscription.unsubscribe();
46
- }
47
- static ngTemplateContextGuard(dir, ctx) {
48
- return true;
49
- }
50
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HttpRequestStateDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive }); }
51
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: HttpRequestStateDirective, isStandalone: true, selector: "[httpRequestState]", inputs: { stateStore: ["httpRequestState", "stateStore"] }, ngImport: i0 }); }
52
- }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: HttpRequestStateDirective, decorators: [{
54
- type: Directive,
55
- args: [{ selector: '[httpRequestState]', standalone: true }]
56
- }], ctorParameters: () => [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }], propDecorators: { stateStore: [{
57
- type: Input,
58
- args: ['httpRequestState']
59
- }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1zdGF0ZS1kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvaHR0cC1yZXF1ZXN0LXN0YXRlL2RpcmVjdGl2ZXMvcmVxdWVzdC1zdGF0ZS1kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWlDLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQWMsT0FBTyxFQUFrQixNQUFNLE1BQU0sQ0FBQztBQUN6RSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFBb0IsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBYy9ELE1BQU0sT0FBTyx5QkFBeUI7SUFtQnBDLElBQStCLFVBQVUsQ0FBQyxLQUErRTtRQUN2SCxJQUFJLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxQjthQUFNO1lBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwRTtJQUVILENBQUM7SUFDRCxZQUNVLFdBQTZCLEVBQzdCLGFBQStCO1FBRC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUEzQmhDLGdCQUFXLEdBQW1DO1lBQ3JELFNBQVMsRUFBRSxTQUFTO1lBQ3BCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLE1BQU0sRUFBRTtnQkFDTixVQUFVLEVBQUUsS0FBSztnQkFDakIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLE9BQU8sRUFBRSxLQUFLO2dCQUNkLEtBQUssRUFBRSxLQUFLO2FBQ2I7U0FDRixDQUFDO1FBR0YsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFtQyxDQUFDO1FBQ3pELFVBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLENBQUM7UUFFN0QsVUFBSyxHQUE2QyxFQUFFLENBQUM7UUFjbkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9DLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLEtBQUssaUJBQWlCLENBQUMsVUFBVSxDQUFDO1lBQ25GLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxLQUFLLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztZQUNuRixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sS0FBSyxpQkFBaUIsQ0FBQyxPQUFPLENBQUM7WUFDN0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLEtBQUssaUJBQWlCLENBQUMsSUFBSSxDQUFDO1lBQ3hFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLHNCQUFzQixDQUFPLEdBQXlDLEVBQUUsR0FBUTtRQUNyRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OEdBbkRVLHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7K0dBb0I5QixVQUFVO3NCQUF4QyxLQUFLO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGRlZmF1bHRTaGFyZVJlcGxheSB9IGZyb20gJy4uLy4uL3J4anMvZGVmYXVsdFNoYXJlUmVwbGF5JztcclxuaW1wb3J0IHsgaXNPYnNlcnZhYmxlLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBVbnN1YnNjcmliYWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN3aXRjaEFsbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cFJlcXVlc3RTdGF0ZVN0b3JlIH0gZnJvbSAnLi4vSHR0cFJlcXVlc3RTdGF0ZVN0b3JlJztcclxuaW1wb3J0IHsgSHR0cFJlcXVlc3RTdGF0ZSwgSHR0cFJlcXVlc3RTdGF0dXMgfSBmcm9tICcuLi90eXBlcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBSZXF1ZXN0U3RhdGVWaWV3Q29udGV4dDxUPiB7XHJcbiAgJGltcGxpY2l0PzogSHR0cFJlcXVlc3RTdGF0ZUFueTxUPjtcclxuICBzdGF0ZT86IEh0dHBSZXF1ZXN0U3RhdGVBbnk8VD47XHJcbiAgc3RhdHVzOiB7XHJcbiAgICBpblByb2dyZXNzOiBib29sZWFuO1xyXG4gICAgbm90U3RhcnRlZDogYm9vbGVhbjtcclxuICAgIHN1Y2Nlc3M6IGJvb2xlYW47XHJcbiAgICBlcnJvcjogYm9vbGVhbjtcclxuICB9O1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbaHR0cFJlcXVlc3RTdGF0ZV0nLCBzdGFuZGFsb25lOiB0cnVlIH0pXHJcbmV4cG9ydCBjbGFzcyBIdHRwUmVxdWVzdFN0YXRlRGlyZWN0aXZlPFRQYXJhbSBleHRlbmRzIGFueVtdLCBWLCBSLCBUID0gUiBleHRlbmRzIG51bGwgPyBWIDogUj4ge1xyXG5cclxuICByZWFkb25seSBWaWV3Q29udGV4dDogSHR0cFJlcXVlc3RTdGF0ZVZpZXdDb250ZXh0PFQ+ID0ge1xyXG4gICAgJGltcGxpY2l0OiB1bmRlZmluZWQsXHJcbiAgICBzdGF0ZTogdW5kZWZpbmVkLFxyXG4gICAgc3RhdHVzOiB7XHJcbiAgICAgIGluUHJvZ3Jlc3M6IGZhbHNlLFxyXG4gICAgICBub3RTdGFydGVkOiB0cnVlLFxyXG4gICAgICBzdWNjZXNzOiBmYWxzZSxcclxuICAgICAgZXJyb3I6IGZhbHNlLFxyXG4gICAgfVxyXG4gIH07XHJcblxyXG5cclxuICBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8T2JzZXJ2YWJsZTxIdHRwUmVxdWVzdFN0YXRlPFQ+Pj4oKTtcclxuICBzdGF0ZSA9IHRoaXMuc3ViamVjdC5waXBlKHN3aXRjaEFsbCgpLCBkZWZhdWx0U2hhcmVSZXBsYXkoKSk7XHJcbiAgc3Vic2NyaXB0aW9uOiBVbnN1YnNjcmliYWJsZTtcclxuICBob29rczogKChzdGF0ZTogSHR0cFJlcXVlc3RTdGF0ZTxUPikgPT4gdm9pZClbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoJ2h0dHBSZXF1ZXN0U3RhdGUnKSBzZXQgc3RhdGVTdG9yZShzdG9yZTogSHR0cFJlcXVlc3RTdGF0ZVN0b3JlPFRQYXJhbSwgViwgUiwgVD4gfCBPYnNlcnZhYmxlPEh0dHBSZXF1ZXN0U3RhdGU8VD4+KSB7XHJcbiAgICBpZiAoaXNPYnNlcnZhYmxlKHN0b3JlKSkge1xyXG4gICAgICB0aGlzLnN1YmplY3QubmV4dChzdG9yZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN1YmplY3QubmV4dChzdG9yZS5zdGF0ZSQucGlwZShtYXAoc3RhdGUgPT4gc3RhdGUucmVzcG9uc2UpKSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXHJcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgKSB7XHJcbiAgICB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYsIHRoaXMuVmlld0NvbnRleHQpO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnN0YXRlLnN1YnNjcmliZShzdGF0ZSA9PiB7XHJcbiAgICAgIHRoaXMuVmlld0NvbnRleHQuJGltcGxpY2l0ID0gc3RhdGU7XHJcbiAgICAgIHRoaXMuVmlld0NvbnRleHQuc3RhdGUgPSBzdGF0ZTtcclxuICAgICAgdGhpcy5WaWV3Q29udGV4dC5zdGF0dXMuaW5Qcm9ncmVzcyA9IHN0YXRlLnN0YXR1cyA9PT0gSHR0cFJlcXVlc3RTdGF0dXMuaW5Qcm9ncmVzcztcclxuICAgICAgdGhpcy5WaWV3Q29udGV4dC5zdGF0dXMubm90U3RhcnRlZCA9IHN0YXRlLnN0YXR1cyA9PT0gSHR0cFJlcXVlc3RTdGF0dXMubm90U3RhcnRlZDtcclxuICAgICAgdGhpcy5WaWV3Q29udGV4dC5zdGF0dXMuc3VjY2VzcyA9IHN0YXRlLnN0YXR1cyA9PT0gSHR0cFJlcXVlc3RTdGF0dXMuc3VjY2VzcztcclxuICAgICAgdGhpcy5WaWV3Q29udGV4dC5zdGF0dXMuZXJyb3IgPSBzdGF0ZS5zdGF0dXMgPT09IEh0dHBSZXF1ZXN0U3RhdHVzLmZhaWw7XHJcbiAgICAgIHRoaXMuaG9va3MuZm9yRWFjaChob29rID0+IGhvb2soc3RhdGUpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIG5nVGVtcGxhdGVDb250ZXh0R3VhcmQ8ViwgUj4oZGlyOiBIdHRwUmVxdWVzdFN0YXRlRGlyZWN0aXZlPGFueSwgViwgUj4sIGN0eDogYW55KTogY3R4IGlzIEh0dHBSZXF1ZXN0U3RhdGVWaWV3Q29udGV4dDxSIGV4dGVuZHMgbnVsbCA/IFYgOiBSPiB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBIdHRwUmVxdWVzdFN0YXRlQW55PFQ+ID0ge1xyXG4gIHN0YXR1czogSHR0cFJlcXVlc3RTdGF0dXM7XHJcbiAgYm9keT86IFQ7XHJcbiAgZXJyb3I/OiBhbnk7XHJcbn1cclxuIl19
@@ -1,22 +0,0 @@
1
- import { HttpRequestStatus } from "./types";
2
- export function isErrorState(state) {
3
- return state.status === HttpRequestStatus.fail;
4
- }
5
- export function isSuccessState(state) {
6
- return state.status === HttpRequestStatus.success;
7
- }
8
- export function isSuccessOrErrorState(state) {
9
- return state.status === HttpRequestStatus.success || state.status === HttpRequestStatus.fail;
10
- }
11
- export function createSuccess(body) {
12
- return { status: HttpRequestStatus.success, body };
13
- }
14
- export function createFailure(error) {
15
- return { status: HttpRequestStatus.fail, error };
16
- }
17
- export const notStarted = { status: HttpRequestStatus.notStarted };
18
- export const inProgress = { status: HttpRequestStatus.inProgress };
19
- export function statusIsSuccessOrInProgress(status) {
20
- return [HttpRequestStatus.success, HttpRequestStatus.inProgress].includes(status);
21
- }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy9odHRwLXJlcXVlc3Qtc3RhdGUvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRILGlCQUFpQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXRLLE1BQU0sVUFBVSxZQUFZLENBQUksS0FBMEI7SUFDeEQsT0FBTyxLQUFLLENBQUMsTUFBTSxLQUFLLGlCQUFpQixDQUFDLElBQUksQ0FBQztBQUNqRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBSSxLQUEwQjtJQUMxRCxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssaUJBQWlCLENBQUMsT0FBTyxDQUFDO0FBQ3BELENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUksS0FBMEI7SUFDakUsT0FBTyxLQUFLLENBQUMsTUFBTSxLQUFLLGlCQUFpQixDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLGlCQUFpQixDQUFDLElBQUksQ0FBQztBQUMvRixDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBSSxJQUFPO0lBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0FBQ3JELENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLEtBQVU7SUFDdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDbkQsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBK0IsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUM7QUFHL0YsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUErQixFQUFFLE1BQU0sRUFBRSxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUUvRixNQUFNLFVBQVUsMkJBQTJCLENBQUUsTUFBeUI7SUFDcEUsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBSZXF1ZXN0U3RhdGUsIEh0dHBSZXF1ZXN0U3RhdGVFcnJvciwgSHR0cFJlcXVlc3RTdGF0ZUluUHJvZ3Jlc3MsIEh0dHBSZXF1ZXN0U3RhdGVOb3RTdGFydGVkLCBIdHRwUmVxdWVzdFN0YXRlU3VjY2VzcywgSHR0cFJlcXVlc3RTdGF0dXMgfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzRXJyb3JTdGF0ZTxUPihzdGF0ZTogSHR0cFJlcXVlc3RTdGF0ZTxUPik6IHN0YXRlIGlzIEh0dHBSZXF1ZXN0U3RhdGVFcnJvciB7XHJcbiAgcmV0dXJuIHN0YXRlLnN0YXR1cyA9PT0gSHR0cFJlcXVlc3RTdGF0dXMuZmFpbDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGlzU3VjY2Vzc1N0YXRlPFQ+KHN0YXRlOiBIdHRwUmVxdWVzdFN0YXRlPFQ+KTogc3RhdGUgaXMgSHR0cFJlcXVlc3RTdGF0ZVN1Y2Nlc3M8VD4ge1xyXG4gIHJldHVybiBzdGF0ZS5zdGF0dXMgPT09IEh0dHBSZXF1ZXN0U3RhdHVzLnN1Y2Nlc3M7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBpc1N1Y2Nlc3NPckVycm9yU3RhdGU8VD4oc3RhdGU6IEh0dHBSZXF1ZXN0U3RhdGU8VD4pOiBzdGF0ZSBpcyAoSHR0cFJlcXVlc3RTdGF0ZVN1Y2Nlc3M8VD4gfCBIdHRwUmVxdWVzdFN0YXRlRXJyb3IpIHtcclxuICByZXR1cm4gc3RhdGUuc3RhdHVzID09PSBIdHRwUmVxdWVzdFN0YXR1cy5zdWNjZXNzIHx8IHN0YXRlLnN0YXR1cyA9PT0gSHR0cFJlcXVlc3RTdGF0dXMuZmFpbDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN1Y2Nlc3M8VD4oYm9keTogVCk6IEh0dHBSZXF1ZXN0U3RhdGVTdWNjZXNzPFQ+IHtcclxuICByZXR1cm4geyBzdGF0dXM6IEh0dHBSZXF1ZXN0U3RhdHVzLnN1Y2Nlc3MsIGJvZHkgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZhaWx1cmUoZXJyb3I6IGFueSk6IEh0dHBSZXF1ZXN0U3RhdGVFcnJvciB7XHJcbiAgcmV0dXJuIHsgc3RhdHVzOiBIdHRwUmVxdWVzdFN0YXR1cy5mYWlsLCBlcnJvciB9O1xyXG59XHJcblxyXG5leHBvcnQgY29uc3Qgbm90U3RhcnRlZDogSHR0cFJlcXVlc3RTdGF0ZU5vdFN0YXJ0ZWQgPSB7IHN0YXR1czogSHR0cFJlcXVlc3RTdGF0dXMubm90U3RhcnRlZCB9O1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBpblByb2dyZXNzOiBIdHRwUmVxdWVzdFN0YXRlSW5Qcm9ncmVzcyA9IHsgc3RhdHVzOiBIdHRwUmVxdWVzdFN0YXR1cy5pblByb2dyZXNzIH07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3RhdHVzSXNTdWNjZXNzT3JJblByb2dyZXNzKCBzdGF0dXM6IEh0dHBSZXF1ZXN0U3RhdHVzKSB7XHJcbiAgcmV0dXJuIFtIdHRwUmVxdWVzdFN0YXR1cy5zdWNjZXNzLCBIdHRwUmVxdWVzdFN0YXR1cy5pblByb2dyZXNzXS5pbmNsdWRlcyhzdGF0dXMpO1xyXG59Il19