@ng-atomic/common 18.12.0 → 18.13.0-preview-v19e.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 (333) hide show
  1. package/directives/molecules/column/column.molecule.d.ts +2 -1
  2. package/fesm2022/ng-atomic-common-directives-fallback-src.mjs +3 -3
  3. package/fesm2022/ng-atomic-common-directives-ios-safari-scroll-buggyfill.mjs +9 -8
  4. package/fesm2022/ng-atomic-common-directives-ios-safari-scroll-buggyfill.mjs.map +1 -1
  5. package/fesm2022/ng-atomic-common-directives-molecules-column.mjs +18 -12
  6. package/fesm2022/ng-atomic-common-directives-molecules-column.mjs.map +1 -1
  7. package/fesm2022/ng-atomic-common-directives-resize-column.mjs +6 -6
  8. package/fesm2022/ng-atomic-common-interceptors-authorization.mjs +3 -4
  9. package/fesm2022/ng-atomic-common-interceptors-authorization.mjs.map +1 -1
  10. package/fesm2022/ng-atomic-common-interceptors-throttle.mjs +6 -6
  11. package/fesm2022/ng-atomic-common-interceptors-token.mjs +3 -3
  12. package/fesm2022/ng-atomic-common-interceptors.mjs +4 -4
  13. package/fesm2022/ng-atomic-common-pipes-actions.mjs +3 -3
  14. package/fesm2022/ng-atomic-common-pipes-auto-columns.mjs +3 -3
  15. package/fesm2022/ng-atomic-common-pipes-columns.mjs +3 -3
  16. package/fesm2022/ng-atomic-common-pipes-data-accessor.mjs +3 -3
  17. package/fesm2022/ng-atomic-common-pipes-domain.mjs +3 -3
  18. package/fesm2022/ng-atomic-common-pipes-error.mjs +3 -3
  19. package/fesm2022/ng-atomic-common-pipes-expression.mjs +3 -3
  20. package/fesm2022/ng-atomic-common-pipes-grouped-by.mjs +3 -3
  21. package/fesm2022/ng-atomic-common-pipes-index-length.mjs +3 -3
  22. package/fesm2022/ng-atomic-common-pipes-index.mjs +3 -3
  23. package/fesm2022/ng-atomic-common-pipes-keys.mjs +3 -3
  24. package/fesm2022/ng-atomic-common-pipes-map.mjs +3 -3
  25. package/fesm2022/ng-atomic-common-pipes-page.mjs +3 -3
  26. package/fesm2022/ng-atomic-common-pipes-pagination.mjs +4 -4
  27. package/fesm2022/ng-atomic-common-pipes-query.mjs +4 -4
  28. package/fesm2022/ng-atomic-common-pipes-resolve-columns.mjs +3 -3
  29. package/fesm2022/ng-atomic-common-pipes-secret.mjs +3 -3
  30. package/fesm2022/ng-atomic-common-pipes-select-id.mjs +3 -3
  31. package/fesm2022/ng-atomic-common-pipes-signal.mjs +3 -3
  32. package/fesm2022/ng-atomic-common-pipes-smart-field.mjs +3 -3
  33. package/fesm2022/ng-atomic-common-pipes-sort-by.mjs +3 -3
  34. package/fesm2022/ng-atomic-common-pipes-sort.mjs +3 -3
  35. package/fesm2022/ng-atomic-common-pipes-style.mjs +3 -3
  36. package/fesm2022/ng-atomic-common-pipes-yen.mjs +3 -3
  37. package/fesm2022/ng-atomic-common-services-app.mjs +6 -6
  38. package/fesm2022/ng-atomic-common-services-auth.mjs +3 -3
  39. package/fesm2022/ng-atomic-common-services-breakpoint.mjs +3 -3
  40. package/fesm2022/ng-atomic-common-services-chips-manager.mjs +3 -3
  41. package/fesm2022/ng-atomic-common-services-csv.mjs +3 -3
  42. package/fesm2022/ng-atomic-common-services-fab.mjs +3 -3
  43. package/fesm2022/ng-atomic-common-services-form-_index.mjs +3 -3
  44. package/fesm2022/ng-atomic-common-services-form-columns.mjs +3 -3
  45. package/fesm2022/ng-atomic-common-services-form-json-schema.mjs +3 -3
  46. package/fesm2022/ng-atomic-common-services-form-pagination.mjs +3 -3
  47. package/fesm2022/ng-atomic-common-services-form-sort.mjs +3 -3
  48. package/fesm2022/ng-atomic-common-services-initializer.mjs +3 -3
  49. package/fesm2022/ng-atomic-common-services-language.mjs +3 -3
  50. package/fesm2022/ng-atomic-common-services-loading.mjs +6 -6
  51. package/fesm2022/ng-atomic-common-services-navigation-history.mjs +3 -3
  52. package/fesm2022/ng-atomic-common-services-query-resolver.mjs +6 -6
  53. package/fesm2022/ng-atomic-common-services-root-property.mjs +14 -15
  54. package/fesm2022/ng-atomic-common-services-root-property.mjs.map +1 -1
  55. package/fesm2022/ng-atomic-common-services-router.mjs +3 -3
  56. package/fesm2022/ng-atomic-common-services-secret.mjs +3 -3
  57. package/fesm2022/ng-atomic-common-services-sheets-actions.mjs +4 -4
  58. package/fesm2022/ng-atomic-common-services-sheets-actions.mjs.map +1 -1
  59. package/fesm2022/ng-atomic-common-services-sheets.mjs +7 -7
  60. package/fesm2022/ng-atomic-common-services-side-app.mjs +6 -6
  61. package/fesm2022/ng-atomic-common-services-side-nav-mode.mjs +3 -3
  62. package/fesm2022/ng-atomic-common-services-snack-bar.mjs +7 -7
  63. package/fesm2022/ng-atomic-common-services-spreadsheet.mjs +31 -31
  64. package/fesm2022/ng-atomic-common-services-spreadsheet.mjs.map +1 -1
  65. package/fesm2022/ng-atomic-common-services-ui.mjs +5 -5
  66. package/fesm2022/ng-atomic-common-services-ui.mjs.map +1 -1
  67. package/fesm2022/ng-atomic-common-stores-entities.mjs +9 -9
  68. package/fesm2022/ng-atomic-common-stores-pagination.mjs +3 -3
  69. package/fesm2022/ng-atomic-common-stores-query.mjs +3 -3
  70. package/fesm2022/ng-atomic-common-stores-selection.mjs +3 -3
  71. package/fesm2022/ng-atomic-common-stores-sort.mjs +3 -3
  72. package/fesm2022/ng-atomic-common-utils.mjs +7 -7
  73. package/fesm2022/ng-atomic-common.mjs +11 -11
  74. package/package.json +54 -178
  75. package/pipes/index/index.pipe.d.ts +1 -1
  76. package/pipes/index-length/index-length.pipe.d.ts +1 -1
  77. package/services/spreadsheet/directives/grid-cell.directive.d.ts +3 -3
  78. package/services/ui/ui.helpers.d.ts +1 -1
  79. package/esm2022/common.module.mjs +0 -34
  80. package/esm2022/directives/fallback-src/fallback-src.directive.mjs +0 -25
  81. package/esm2022/directives/fallback-src/index.mjs +0 -2
  82. package/esm2022/directives/fallback-src/ng-atomic-common-directives-fallback-src.mjs +0 -5
  83. package/esm2022/directives/ios-safari-scroll-buggyfill/index.mjs +0 -3
  84. package/esm2022/directives/ios-safari-scroll-buggyfill/ios-safari-scroll-buggyfill.directive.mjs +0 -24
  85. package/esm2022/directives/ios-safari-scroll-buggyfill/ios-safari-scroll-buggyfill.module.mjs +0 -24
  86. package/esm2022/directives/ios-safari-scroll-buggyfill/ng-atomic-common-directives-ios-safari-scroll-buggyfill.mjs +0 -5
  87. package/esm2022/directives/molecules/column/column.molecule.mjs +0 -112
  88. package/esm2022/directives/molecules/column/index.mjs +0 -2
  89. package/esm2022/directives/molecules/column/ng-atomic-common-directives-molecules-column.mjs +0 -5
  90. package/esm2022/directives/resize-column/index.mjs +0 -2
  91. package/esm2022/directives/resize-column/ng-atomic-common-directives-resize-column.mjs +0 -5
  92. package/esm2022/directives/resize-column/resize-column.directive.mjs +0 -62
  93. package/esm2022/directives/resize-column/resize-handle.component.mjs +0 -13
  94. package/esm2022/index.mjs +0 -2
  95. package/esm2022/interceptors/authorization/authorization.interceptor.mjs +0 -39
  96. package/esm2022/interceptors/authorization/index.mjs +0 -2
  97. package/esm2022/interceptors/authorization/ng-atomic-common-interceptors-authorization.mjs +0 -5
  98. package/esm2022/interceptors/index.mjs +0 -2
  99. package/esm2022/interceptors/interceptors.module.mjs +0 -44
  100. package/esm2022/interceptors/ng-atomic-common-interceptors.mjs +0 -5
  101. package/esm2022/interceptors/throttle/index.mjs +0 -2
  102. package/esm2022/interceptors/throttle/ng-atomic-common-interceptors-throttle.mjs +0 -5
  103. package/esm2022/interceptors/throttle/throttle.interceptor.mjs +0 -63
  104. package/esm2022/interceptors/token/authorization.interceptor.mjs +0 -26
  105. package/esm2022/interceptors/token/index.mjs +0 -2
  106. package/esm2022/interceptors/token/ng-atomic-common-interceptors-token.mjs +0 -5
  107. package/esm2022/models/index.mjs +0 -2
  108. package/esm2022/models/menu-item.mjs +0 -2
  109. package/esm2022/models/ng-atomic-common-models.mjs +0 -5
  110. package/esm2022/ng-atomic-common.mjs +0 -5
  111. package/esm2022/pipes/actions/actions.pipe.mjs +0 -19
  112. package/esm2022/pipes/actions/index.mjs +0 -2
  113. package/esm2022/pipes/actions/ng-atomic-common-pipes-actions.mjs +0 -5
  114. package/esm2022/pipes/auto-columns/auto-columns.pipe.mjs +0 -20
  115. package/esm2022/pipes/auto-columns/index.mjs +0 -2
  116. package/esm2022/pipes/auto-columns/ng-atomic-common-pipes-auto-columns.mjs +0 -5
  117. package/esm2022/pipes/columns/columns.pipe.mjs +0 -18
  118. package/esm2022/pipes/columns/index.mjs +0 -2
  119. package/esm2022/pipes/columns/ng-atomic-common-pipes-columns.mjs +0 -5
  120. package/esm2022/pipes/data-accessor/data-accessor.pipe.mjs +0 -46
  121. package/esm2022/pipes/data-accessor/index.mjs +0 -2
  122. package/esm2022/pipes/data-accessor/ng-atomic-common-pipes-data-accessor.mjs +0 -5
  123. package/esm2022/pipes/domain/domain.pipe.mjs +0 -71
  124. package/esm2022/pipes/domain/index.mjs +0 -2
  125. package/esm2022/pipes/domain/ng-atomic-common-pipes-domain.mjs +0 -5
  126. package/esm2022/pipes/error/error.pipe.mjs +0 -46
  127. package/esm2022/pipes/error/index.mjs +0 -2
  128. package/esm2022/pipes/error/ng-atomic-common-pipes-error.mjs +0 -5
  129. package/esm2022/pipes/expression/expression.pipe.mjs +0 -18
  130. package/esm2022/pipes/expression/index.mjs +0 -2
  131. package/esm2022/pipes/expression/ng-atomic-common-pipes-expression.mjs +0 -5
  132. package/esm2022/pipes/grouped-by/grouped-by.pipe.mjs +0 -29
  133. package/esm2022/pipes/grouped-by/index.mjs +0 -2
  134. package/esm2022/pipes/grouped-by/ng-atomic-common-pipes-grouped-by.mjs +0 -5
  135. package/esm2022/pipes/index/index.mjs +0 -2
  136. package/esm2022/pipes/index/index.pipe.mjs +0 -29
  137. package/esm2022/pipes/index/ng-atomic-common-pipes-index.mjs +0 -5
  138. package/esm2022/pipes/index-length/index-length.pipe.mjs +0 -22
  139. package/esm2022/pipes/index-length/index.mjs +0 -2
  140. package/esm2022/pipes/index-length/ng-atomic-common-pipes-index-length.mjs +0 -5
  141. package/esm2022/pipes/keys/index.mjs +0 -2
  142. package/esm2022/pipes/keys/keys.pipe.mjs +0 -18
  143. package/esm2022/pipes/keys/ng-atomic-common-pipes-keys.mjs +0 -5
  144. package/esm2022/pipes/map/index.mjs +0 -2
  145. package/esm2022/pipes/map/map.pipe.mjs +0 -17
  146. package/esm2022/pipes/map/ng-atomic-common-pipes-map.mjs +0 -5
  147. package/esm2022/pipes/page/index.mjs +0 -2
  148. package/esm2022/pipes/page/ng-atomic-common-pipes-page.mjs +0 -5
  149. package/esm2022/pipes/page/page.pipe.mjs +0 -25
  150. package/esm2022/pipes/pagination/index.mjs +0 -2
  151. package/esm2022/pipes/pagination/ng-atomic-common-pipes-pagination.mjs +0 -5
  152. package/esm2022/pipes/pagination/pagination.pipe.mjs +0 -32
  153. package/esm2022/pipes/query/index.mjs +0 -2
  154. package/esm2022/pipes/query/ng-atomic-common-pipes-query.mjs +0 -5
  155. package/esm2022/pipes/query/query.pipe.mjs +0 -33
  156. package/esm2022/pipes/resolve-columns/index.mjs +0 -2
  157. package/esm2022/pipes/resolve-columns/ng-atomic-common-pipes-resolve-columns.mjs +0 -5
  158. package/esm2022/pipes/resolve-columns/resolve-columns.pipe.mjs +0 -24
  159. package/esm2022/pipes/secret/index.mjs +0 -2
  160. package/esm2022/pipes/secret/ng-atomic-common-pipes-secret.mjs +0 -5
  161. package/esm2022/pipes/secret/secret.pipe.mjs +0 -21
  162. package/esm2022/pipes/select-id/index.mjs +0 -2
  163. package/esm2022/pipes/select-id/ng-atomic-common-pipes-select-id.mjs +0 -5
  164. package/esm2022/pipes/select-id/select-id.pipe.mjs +0 -29
  165. package/esm2022/pipes/signal/index.mjs +0 -2
  166. package/esm2022/pipes/signal/ng-atomic-common-pipes-signal.mjs +0 -5
  167. package/esm2022/pipes/signal/signal.pipe.mjs +0 -23
  168. package/esm2022/pipes/smart-field/index.mjs +0 -2
  169. package/esm2022/pipes/smart-field/ng-atomic-common-pipes-smart-field.mjs +0 -5
  170. package/esm2022/pipes/smart-field/smart-field.pipe.mjs +0 -44
  171. package/esm2022/pipes/sort/index.mjs +0 -2
  172. package/esm2022/pipes/sort/ng-atomic-common-pipes-sort.mjs +0 -5
  173. package/esm2022/pipes/sort/sort.pipe.mjs +0 -14
  174. package/esm2022/pipes/sort-by/index.mjs +0 -2
  175. package/esm2022/pipes/sort-by/ng-atomic-common-pipes-sort-by.mjs +0 -5
  176. package/esm2022/pipes/sort-by/sort-by.pipe.mjs +0 -32
  177. package/esm2022/pipes/style/index.mjs +0 -2
  178. package/esm2022/pipes/style/ng-atomic-common-pipes-style.mjs +0 -5
  179. package/esm2022/pipes/style/style.pipe.mjs +0 -41
  180. package/esm2022/pipes/yen/index.mjs +0 -2
  181. package/esm2022/pipes/yen/ng-atomic-common-pipes-yen.mjs +0 -5
  182. package/esm2022/pipes/yen/yen.pipe.mjs +0 -20
  183. package/esm2022/services/app/app.service.mjs +0 -78
  184. package/esm2022/services/app/index.mjs +0 -2
  185. package/esm2022/services/app/ng-atomic-common-services-app.mjs +0 -5
  186. package/esm2022/services/auth/auth.service.mjs +0 -66
  187. package/esm2022/services/auth/index.mjs +0 -2
  188. package/esm2022/services/auth/ng-atomic-common-services-auth.mjs +0 -5
  189. package/esm2022/services/breakpoint/breakpoint.service.mjs +0 -57
  190. package/esm2022/services/breakpoint/index.mjs +0 -2
  191. package/esm2022/services/breakpoint/ng-atomic-common-services-breakpoint.mjs +0 -5
  192. package/esm2022/services/chips-manager/chips.manager.mjs +0 -29
  193. package/esm2022/services/chips-manager/index.mjs +0 -2
  194. package/esm2022/services/chips-manager/ng-atomic-common-services-chips-manager.mjs +0 -5
  195. package/esm2022/services/csv/csv.service.mjs +0 -25
  196. package/esm2022/services/csv/index.mjs +0 -2
  197. package/esm2022/services/csv/ng-atomic-common-services-csv.mjs +0 -5
  198. package/esm2022/services/fab/fab.service.mjs +0 -46
  199. package/esm2022/services/fab/index.mjs +0 -2
  200. package/esm2022/services/fab/ng-atomic-common-services-fab.mjs +0 -5
  201. package/esm2022/services/form/_index/index.mjs +0 -2
  202. package/esm2022/services/form/_index/index.service.mjs +0 -51
  203. package/esm2022/services/form/_index/ng-atomic-common-services-form-_index.mjs +0 -5
  204. package/esm2022/services/form/columns/columns.service.mjs +0 -145
  205. package/esm2022/services/form/columns/index.mjs +0 -2
  206. package/esm2022/services/form/columns/ng-atomic-common-services-form-columns.mjs +0 -5
  207. package/esm2022/services/form/form.service.mjs +0 -38
  208. package/esm2022/services/form/index.mjs +0 -2
  209. package/esm2022/services/form/json-schema/index.mjs +0 -2
  210. package/esm2022/services/form/json-schema/json-schema.mjs +0 -51
  211. package/esm2022/services/form/json-schema/json-schema.service.mjs +0 -178
  212. package/esm2022/services/form/json-schema/ng-atomic-common-services-form-json-schema.mjs +0 -5
  213. package/esm2022/services/form/ng-atomic-common-services-form.mjs +0 -5
  214. package/esm2022/services/form/pagination/index.mjs +0 -2
  215. package/esm2022/services/form/pagination/ng-atomic-common-services-form-pagination.mjs +0 -5
  216. package/esm2022/services/form/pagination/pagination.service.mjs +0 -24
  217. package/esm2022/services/form/sort/index.mjs +0 -2
  218. package/esm2022/services/form/sort/ng-atomic-common-services-form-sort.mjs +0 -5
  219. package/esm2022/services/form/sort/sort.service.mjs +0 -33
  220. package/esm2022/services/initializer/index.mjs +0 -2
  221. package/esm2022/services/initializer/initializer.service.mjs +0 -44
  222. package/esm2022/services/initializer/ng-atomic-common-services-initializer.mjs +0 -5
  223. package/esm2022/services/language/index.mjs +0 -2
  224. package/esm2022/services/language/language.service.mjs +0 -39
  225. package/esm2022/services/language/ng-atomic-common-services-language.mjs +0 -5
  226. package/esm2022/services/loading/index.mjs +0 -2
  227. package/esm2022/services/loading/loading.service.mjs +0 -62
  228. package/esm2022/services/loading/ng-atomic-common-services-loading.mjs +0 -5
  229. package/esm2022/services/navigation-history/index.mjs +0 -2
  230. package/esm2022/services/navigation-history/navigation-history.service.mjs +0 -50
  231. package/esm2022/services/navigation-history/ng-atomic-common-services-navigation-history.mjs +0 -5
  232. package/esm2022/services/query-resolver/index.mjs +0 -2
  233. package/esm2022/services/query-resolver/ng-atomic-common-services-query-resolver.mjs +0 -5
  234. package/esm2022/services/query-resolver/query-resolver.service.mjs +0 -94
  235. package/esm2022/services/root-property/index.mjs +0 -3
  236. package/esm2022/services/root-property/ng-atomic-common-services-root-property.mjs +0 -5
  237. package/esm2022/services/root-property/root-property.di.mjs +0 -15
  238. package/esm2022/services/root-property/root-property.service.mjs +0 -169
  239. package/esm2022/services/router/index.mjs +0 -2
  240. package/esm2022/services/router/ng-atomic-common-services-router.mjs +0 -5
  241. package/esm2022/services/router/router.service.mjs +0 -25
  242. package/esm2022/services/secret/index.mjs +0 -2
  243. package/esm2022/services/secret/ng-atomic-common-services-secret.mjs +0 -5
  244. package/esm2022/services/secret/secret.service.mjs +0 -16
  245. package/esm2022/services/sheets/actions/actions.sheet.mjs +0 -45
  246. package/esm2022/services/sheets/actions/index.mjs +0 -2
  247. package/esm2022/services/sheets/actions/ng-atomic-common-services-sheets-actions.mjs +0 -5
  248. package/esm2022/services/sheets/index.mjs +0 -3
  249. package/esm2022/services/sheets/ng-atomic-common-services-sheets.mjs +0 -5
  250. package/esm2022/services/sheets/sheets.module.mjs +0 -25
  251. package/esm2022/services/sheets/sheets.service.mjs +0 -22
  252. package/esm2022/services/side-app/index.mjs +0 -2
  253. package/esm2022/services/side-app/ng-atomic-common-services-side-app.mjs +0 -5
  254. package/esm2022/services/side-app/side-app.service.mjs +0 -55
  255. package/esm2022/services/side-nav-mode/index.mjs +0 -2
  256. package/esm2022/services/side-nav-mode/ng-atomic-common-services-side-nav-mode.mjs +0 -5
  257. package/esm2022/services/side-nav-mode/side-nav-mode.service.mjs +0 -27
  258. package/esm2022/services/snack-bar/index.mjs +0 -3
  259. package/esm2022/services/snack-bar/ng-atomic-common-services-snack-bar.mjs +0 -5
  260. package/esm2022/services/snack-bar/snack-bar.module.mjs +0 -22
  261. package/esm2022/services/snack-bar/snack-bar.service.mjs +0 -41
  262. package/esm2022/services/spreadsheet/directives/grid-cell.directive.mjs +0 -124
  263. package/esm2022/services/spreadsheet/directives/index.mjs +0 -2
  264. package/esm2022/services/spreadsheet/features/clipboard.service.mjs +0 -71
  265. package/esm2022/services/spreadsheet/features/data.service.mjs +0 -63
  266. package/esm2022/services/spreadsheet/features/editor.service.mjs +0 -65
  267. package/esm2022/services/spreadsheet/features/grid.service.mjs +0 -54
  268. package/esm2022/services/spreadsheet/features/index.mjs +0 -8
  269. package/esm2022/services/spreadsheet/features/navigation.service.mjs +0 -71
  270. package/esm2022/services/spreadsheet/features/protection.service.mjs +0 -25
  271. package/esm2022/services/spreadsheet/features/selection.service.mjs +0 -129
  272. package/esm2022/services/spreadsheet/index.mjs +0 -5
  273. package/esm2022/services/spreadsheet/models/cell.model.mjs +0 -2
  274. package/esm2022/services/spreadsheet/models/index.mjs +0 -2
  275. package/esm2022/services/spreadsheet/ng-atomic-common-services-spreadsheet.mjs +0 -5
  276. package/esm2022/services/spreadsheet/spreadsheet.service.mjs +0 -183
  277. package/esm2022/services/ui/index.mjs +0 -3
  278. package/esm2022/services/ui/ng-atomic-common-services-ui.mjs +0 -5
  279. package/esm2022/services/ui/ui.helpers.mjs +0 -241
  280. package/esm2022/services/ui/ui.service.mjs +0 -30
  281. package/esm2022/stores/entities/di.mjs +0 -64
  282. package/esm2022/stores/entities/entity-store-adapter.mjs +0 -34
  283. package/esm2022/stores/entities/entity-store-manager.mjs +0 -25
  284. package/esm2022/stores/entities/entity-store.mjs +0 -121
  285. package/esm2022/stores/entities/index.mjs +0 -7
  286. package/esm2022/stores/entities/ng-atomic-common-stores-entities.mjs +0 -5
  287. package/esm2022/stores/entities/proxy-id.service.mjs +0 -29
  288. package/esm2022/stores/entities/task-composer.mjs +0 -71
  289. package/esm2022/stores/entity/entity.store.mjs +0 -34
  290. package/esm2022/stores/entity/index.mjs +0 -2
  291. package/esm2022/stores/entity/ng-atomic-common-stores-entity.mjs +0 -5
  292. package/esm2022/stores/pagination/index.mjs +0 -2
  293. package/esm2022/stores/pagination/ng-atomic-common-stores-pagination.mjs +0 -5
  294. package/esm2022/stores/pagination/pagination.store.mjs +0 -23
  295. package/esm2022/stores/query/index.mjs +0 -2
  296. package/esm2022/stores/query/ng-atomic-common-stores-query.mjs +0 -5
  297. package/esm2022/stores/query/query.store.mjs +0 -31
  298. package/esm2022/stores/selection/index.mjs +0 -2
  299. package/esm2022/stores/selection/ng-atomic-common-stores-selection.mjs +0 -5
  300. package/esm2022/stores/selection/selection.store.mjs +0 -29
  301. package/esm2022/stores/sort/index.mjs +0 -2
  302. package/esm2022/stores/sort/ng-atomic-common-stores-sort.mjs +0 -5
  303. package/esm2022/stores/sort/sort.store.mjs +0 -27
  304. package/esm2022/utils/comma/comma.mjs +0 -4
  305. package/esm2022/utils/comma/index.mjs +0 -2
  306. package/esm2022/utils/compare-by-id/compare-by-id.mjs +0 -5
  307. package/esm2022/utils/compare-by-id/index.mjs +0 -2
  308. package/esm2022/utils/date-utils/date-utils.mjs +0 -13
  309. package/esm2022/utils/date-utils/index.mjs +0 -2
  310. package/esm2022/utils/diff/diff.mjs +0 -7
  311. package/esm2022/utils/diff/index.mjs +0 -2
  312. package/esm2022/utils/expression/expression.transformer.mjs +0 -38
  313. package/esm2022/utils/expression/index.mjs +0 -2
  314. package/esm2022/utils/form/form.mjs +0 -26
  315. package/esm2022/utils/form/index.mjs +0 -2
  316. package/esm2022/utils/get/get.mjs +0 -6
  317. package/esm2022/utils/get/index.mjs +0 -2
  318. package/esm2022/utils/index.mjs +0 -15
  319. package/esm2022/utils/inject/index.mjs +0 -2
  320. package/esm2022/utils/inject/inject.mjs +0 -177
  321. package/esm2022/utils/mat-dayjs-date/dayjs-date.adapter.mjs +0 -191
  322. package/esm2022/utils/mat-dayjs-date/dayjs-date.formats.mjs +0 -15
  323. package/esm2022/utils/mat-dayjs-date/dayjs-date.module.mjs +0 -37
  324. package/esm2022/utils/mat-dayjs-date/dayjs-jp-providers.mjs +0 -20
  325. package/esm2022/utils/mat-dayjs-date/index.mjs +0 -5
  326. package/esm2022/utils/ng-atomic-common-utils.mjs +0 -5
  327. package/esm2022/utils/page/index.mjs +0 -2
  328. package/esm2022/utils/page/page.mjs +0 -20
  329. package/esm2022/utils/router/index.mjs +0 -2
  330. package/esm2022/utils/router/router.mjs +0 -54
  331. package/esm2022/utils/time.mjs +0 -8
  332. package/esm2022/utils/to-object/index.mjs +0 -2
  333. package/esm2022/utils/to-object/to-object.mjs +0 -10
@@ -1,241 +0,0 @@
1
- import { ElementRef, InjectionToken, Injector, computed, effect, inject, isSignal, runInInjectionContext, signal } from "@angular/core";
2
- import { UiService } from "./ui.service";
3
- import { get, set } from "lodash-es";
4
- import { ActivatedRoute, PRIMARY_OUTLET, Router } from "@angular/router";
5
- import { map, shareReplay, startWith, take } from "rxjs";
6
- import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
7
- import { NavigationHistoryService } from "@ng-atomic/common/services/navigation-history";
8
- import { derivedAsync } from "ngxtension/derived-async";
9
- export function scoped(source, path) {
10
- const scopedSignal = signal(get(source(), path));
11
- effect(() => {
12
- scopedSignal.set(get(source(), path, source()));
13
- }, { allowSignalWrites: true });
14
- return computed(() => scopedSignal());
15
- }
16
- export function injectBreakpoint() {
17
- return inject(UiService).breakpoint.breakpoint;
18
- }
19
- export function injectIsMobile() {
20
- const breakpoint = injectBreakpoint();
21
- return computed(() => ['xSmall', 'small'].includes(breakpoint()));
22
- }
23
- export var NavActionId;
24
- (function (NavActionId) {
25
- NavActionId["TOGGLE_SIDE_NAV"] = "[@ng-atomic/common/services/ui] TOGGLE_SIDE_NAV";
26
- NavActionId["BACK"] = "[@ng-atomic/common/services/ui] BACK";
27
- NavActionId["CLOSE"] = "[@ng-atomic/common/services/ui] CLOSE";
28
- })(NavActionId || (NavActionId = {}));
29
- // routeを遡る
30
- function flattenRoutes(route) {
31
- const routes = [];
32
- let route_ = route;
33
- while (route_) {
34
- routes.push(route_);
35
- if (!route_.parent)
36
- break;
37
- route_ = route_.parent;
38
- }
39
- return routes;
40
- }
41
- export function injectIsRootPage$(outlet = PRIMARY_OUTLET) {
42
- const router = inject(Router);
43
- const route = inject(ActivatedRoute);
44
- return router.events.pipe(startWith(null), map(() => {
45
- const routes = flattenRoutes(route).reverse();
46
- const outletComponentRoutes = routes
47
- .slice(routes.findIndex(route => route.outlet === outlet))
48
- .filter(route => route.snapshot.paramMap.get('skip') !== 'true' && !!route?.component);
49
- return outletComponentRoutes.length <= 2;
50
- }), take(1), shareReplay(1), takeUntilDestroyed());
51
- }
52
- export function injectIsRootPage(outlet = PRIMARY_OUTLET) {
53
- const isRootPage$ = injectIsRootPage$(outlet);
54
- const injector = inject(Injector);
55
- return derivedAsync(() => isRootPage$, { injector });
56
- }
57
- export function injectNavStartActions(isRootPage = signal(false)) {
58
- const context = injectUiContext();
59
- const navigationHistory = inject(NavigationHistoryService);
60
- let isInitial = false;
61
- return computed(() => {
62
- console.debug('[UiService] navigationHistory:', navigationHistory);
63
- const isRootPage_ = isRootPage();
64
- // MEMO(@NozomuMIyamoto): history.forward()したときに、isInitialがtrueのままになって、戻るボタンが表示されない問題があるためコメントアウト
65
- // isInitial ??= navigationHistory.isInitial();
66
- console.debug('[UiService] isInitial:', isInitial);
67
- console.debug('[UiService] isRootPage:', isRootPage());
68
- const context_ = context();
69
- switch (context_.breakpoint) {
70
- case 'xLarge':
71
- case 'large':
72
- case 'medium':
73
- case 'small': {
74
- if (isRootPage_) {
75
- return [];
76
- }
77
- else {
78
- if (isInitial) {
79
- return [];
80
- }
81
- else {
82
- return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];
83
- }
84
- }
85
- }
86
- case 'xSmall': {
87
- if (isRootPage_) {
88
- return [{ id: NavActionId.TOGGLE_SIDE_NAV, name: 'メニュー', icon: 'menu' }];
89
- }
90
- else {
91
- if (isInitial) {
92
- return [{ id: NavActionId.TOGGLE_SIDE_NAV, name: 'メニュー', icon: 'menu' }];
93
- }
94
- else {
95
- return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];
96
- }
97
- }
98
- }
99
- default: {
100
- if (isRootPage_)
101
- return [];
102
- return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];
103
- }
104
- }
105
- });
106
- }
107
- export function injectNavStartActionsV2() {
108
- const isRootPage = injectIsRootPage();
109
- return injectNavStartActions(isRootPage);
110
- }
111
- export function injectSideAppNavStartActions(isRootPage = signal(false)) {
112
- const context = injectUiContext();
113
- return computed(() => {
114
- switch (context().breakpoint) {
115
- default: {
116
- if (isRootPage())
117
- return [
118
- { id: NavActionId.CLOSE, name: 'CLOSE', icon: 'close' },
119
- ];
120
- return [{ id: NavActionId.BACK, name: 'BACK', icon: 'arrow_back' }];
121
- }
122
- }
123
- });
124
- }
125
- export function injectUiContext() {
126
- return inject(UiService).uiContext;
127
- }
128
- export const UI_CONFIG_REDUCER = new InjectionToken('UI_CONFIG_REDUCER');
129
- export const wrap = (defaultReducerFactory) => {
130
- return (injector, hostInjector) => {
131
- const reducer = defaultReducerFactory(injector, hostInjector);
132
- return (_, context) => {
133
- return reducer(context);
134
- };
135
- };
136
- };
137
- export function call(signalOrValue) {
138
- return isSignal(signalOrValue) ? signalOrValue() : signalOrValue;
139
- }
140
- function setReducerPath(reducer, path) {
141
- Object.defineProperty(reducer, 'path', { value: path, configurable: true });
142
- return reducer;
143
- }
144
- function getReducerPath(reducer) {
145
- return reducer['path'];
146
- }
147
- export function provideUiConfig(reducerFactory, path = [], name = 'name', token = UI_CONFIG_REDUCER) {
148
- return {
149
- provide: token,
150
- useFactory: (injector) => {
151
- function _reducerFactory(hostInjector) {
152
- const reducer = reducerFactory(injector, hostInjector);
153
- return (config, context) => {
154
- if (path.length === 0)
155
- return reducer(config, context);
156
- return set(config, path, reducer(get(config, path), context));
157
- };
158
- }
159
- Object.defineProperty(_reducerFactory, 'name', { value: name, configurable: true });
160
- setReducerPath(_reducerFactory, path);
161
- return _reducerFactory;
162
- },
163
- deps: [Injector],
164
- multi: true,
165
- };
166
- }
167
- export function injectRootConfig(paths = [], token = UI_CONFIG_REDUCER) {
168
- const uiContext = injectUiContext();
169
- const factories = injectReducerFactories(paths, token);
170
- const hostInjector = inject(Injector);
171
- const reducers = factories.map(factory => {
172
- return runInInjectionContext(hostInjector, () => factory(hostInjector));
173
- });
174
- if (!reducers)
175
- return undefined;
176
- const rootConfig = computed(() => {
177
- const context = uiContext();
178
- return reducers.reduce((acc, reducer) => {
179
- return runInInjectionContext(hostInjector, () => reducer(acc, context));
180
- }, {});
181
- });
182
- return rootConfig;
183
- }
184
- // TODO(@nontangent): itemsなどの取得が全てのコンポーネントで行われるので計算を最適化する。
185
- export function injectUiConfig(paths = [], token = UI_CONFIG_REDUCER) {
186
- const rootConfig = injectRootConfig(paths, token);
187
- return scoped(rootConfig, paths);
188
- }
189
- export function makeConfig(defaultUseFactory, path) {
190
- const factory = wrap(defaultUseFactory);
191
- const token = new InjectionToken(`[${path.join('.')}] UI_CONFIG_REDUCER`);
192
- return {
193
- provide(useFactory, label = useFactory ? 'custom' : 'default') {
194
- useFactory ??= factory;
195
- return provideUiConfig(useFactory, path, `[${path.join('.')}] ${label}`, token);
196
- },
197
- inject() {
198
- return injectUiConfig(path, token);
199
- },
200
- };
201
- }
202
- function injectReducers(token) {
203
- return injectDeepMulti(token);
204
- }
205
- function injectReducerFactories(path = [], token = UI_CONFIG_REDUCER) {
206
- return injectReducers(token).filter(factory => {
207
- return getReducerPath(factory).every((p, i) => path[i] === p);
208
- });
209
- }
210
- export function injectDeepMulti(token, injector = inject(Injector)) {
211
- const valueOrArray = injector.get(token, [], { optional: true });
212
- const items = Array.isArray(valueOrArray) ? valueOrArray : [valueOrArray];
213
- const parentInjector = injector.get(Injector, null, { skipSelf: true });
214
- if (!parentInjector)
215
- return items;
216
- return [...new Set([...injectDeepMulti(token, parentInjector), ...items])];
217
- }
218
- export function debugInjector(injector = inject(Injector)) {
219
- const getParent = (injector, n = 0) => {
220
- while (injector && n-- > 0) {
221
- injector = injector.get(Injector, null, { skipSelf: true });
222
- }
223
- return injector;
224
- };
225
- const getInjectorName = (injector) => {
226
- const name = injector.get(ElementRef, null)?.nativeElement?.tagName?.toLowerCase();
227
- if (name)
228
- return `<${name}>`;
229
- return `${injector['source']}`;
230
- };
231
- const isNodeInjector = (injector) => {
232
- return injector.get(ElementRef, null) !== null;
233
- };
234
- const mapToNames = (reducers) => (reducers ?? []).map(reducer => reducer.name);
235
- for (let i = 0; i < 20; i++) {
236
- injector = getParent(injector, i);
237
- if (injector === Injector.NULL)
238
- break;
239
- }
240
- }
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvdWkvdWkuaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQW1DLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekssT0FBTyxFQUFhLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsY0FBYyxFQUFpQixjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEYsT0FBTyxFQUFVLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQVksTUFBTSw0QkFBNEIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFeEQsTUFBTSxVQUFVLE1BQU0sQ0FBeUMsTUFBaUIsRUFBRSxJQUFtQjtJQUNuRyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQVUsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUQsTUFBTSxDQUFDLEdBQUcsRUFBRTtRQUNWLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBWSxDQUFDLENBQUM7SUFDN0QsQ0FBQyxFQUFF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QUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDakMsQ0FBQyxDQUFBO0lBRUQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxRQUFrQixFQUFXLEVBQUU7UUFDckQsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUM7SUFDakQsQ0FBQyxDQUFBO0lBRUQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxRQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVwRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDNUIsUUFBUSxHQUFHLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBSSxRQUFRLEtBQUssUUFBUSxDQUFDLElBQUk7WUFBRSxNQUFNO0lBQ3hDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0aW9uVG9rZW4sIEluamVjdG9yLCBQcm92aWRlciwgUHJvdmlkZXJUb2tlbiwgU2lnbmFsLCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIGlzU2lnbmFsLCBydW5JbkluamVjdGlvbkNvbnRleHQsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBVSUNvbnRleHQsIFVpU2VydmljZSB9IGZyb20gXCIuL3VpLnNlcnZpY2VcIjtcbmltcG9ydCB7IGdldCwgc2V0IH0gZnJvbSBcImxvZGFzaC1lc1wiO1xuaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSBcIkBuZy1hdG9taWMvY29yZVwiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFBSSU1BUllfT1VUTEVULCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc2hhcmVSZXBsYXksIHN0YXJ0V2l0aCwgdGFrZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvU2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCI7XG5pbXBvcnQgeyBjb21wdXRlZEFzeW5jIH0gZnJvbSBcIm5neHRlbnNpb24vY29tcHV0ZWQtYXN5bmNcIjtcbmltcG9ydCB7IE5hdmlnYXRpb25IaXN0b3J5U2VydmljZSB9IGZyb20gXCJAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLWhpc3RvcnlcIjtcbmltcG9ydCB7IGRlcml2ZWRBc3luYyB9IGZyb20gXCJuZ3h0ZW5zaW9uL2Rlcml2ZWQtYXN5bmNcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIHNjb3BlZDxUIGV4dGVuZHMgb2JqZWN0LCBUS2V5IGV4dGVuZHMga2V5b2YgVD4oc291cmNlOiBTaWduYWw8VD4sIHBhdGg6IFRLZXkgfCBbVEtleV0pOiBTaWduYWw8VFtUS2V5XT4ge1xuICBjb25zdCBzY29wZWRTaWduYWwgPSBzaWduYWw8VFtUS2V5XT4oZ2V0KHNvdXJjZSgpLCBwYXRoKSk7XG4gIGVmZmVjdCgoKSA9PiB7XG4gICAgc2NvcGVkU2lnbmFsLnNldChnZXQoc291cmNlKCksIHBhdGgsIHNvdXJjZSgpKSBhcyBUW1RLZXldKTtcbiAgfSwge2FsbG93U2lnbmFsV3JpdGVzOiB0cnVlfSk7XG4gIHJldHVybiBjb21wdXRlZCgoKSA9PiBzY29wZWRTaWduYWwoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RCcmVha3BvaW50KCkge1xuICByZXR1cm4gaW5qZWN0KFVpU2VydmljZSkuYnJlYWtwb2ludC5icmVha3BvaW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SXNNb2JpbGUoKSB7XG4gIGNvbnN0IGJyZWFrcG9pbnQgPSBpbmplY3RCcmVha3BvaW50KCk7XG4gIHJldHVybiBjb21wdXRlZCgoKSA9PiAgWyd4U21hbGwnLCAnc21hbGwnXS5pbmNsdWRlcyhicmVha3BvaW50KCkpKTtcbn1cblxuZXhwb3J0IGVudW0gTmF2QWN0aW9uSWQge1xuICBUT0dHTEVfU0lERV9OQVYgPSAnW0BuZy1hdG9taWMvY29tbW9uL3NlcnZpY2VzL3VpXSBUT0dHTEVfU0lERV9OQVYnLFxuICBCQUNLID0gJ1tAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy91aV0gQkFDSycsXG4gIENMT1NFID0gJ1tAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy91aV0gQ0xPU0UnLFxufVxuXG4vLyByb3V0ZeOCkumBoeOCi1xuZnVuY3Rpb24gZmxhdHRlblJvdXRlcyhyb3V0ZTogQWN0aXZhdGVkUm91dGUpOiBBY3RpdmF0ZWRSb3V0ZVtdIHtcbiAgY29uc3Qgcm91dGVzID0gW107XG4gIGxldCByb3V0ZV8gPSByb3V0ZTsgXG4gIHdoaWxlKHJvdXRlXykge1xuICAgIHJvdXRlcy5wdXNoKHJvdXRlXyk7XG4gICAgaWYgKCFyb3V0ZV8ucGFyZW50KSBicmVhaztcbiAgICByb3V0ZV8gPSByb3V0ZV8ucGFyZW50O1xuICB9XG4gIHJldHVybiByb3V0ZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RJc1Jvb3RQYWdlJChvdXRsZXQgPSBQUklNQVJZX09VVExFVCkge1xuICBjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgY29uc3Qgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICByZXR1cm4gcm91dGVyLmV2ZW50cy5waXBlKFxuICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICBtYXAoKCkgPT4ge1xuICAgICAgY29uc3Qgcm91dGVzID0gZmxhdHRlblJvdXRlcyhyb3V0ZSkucmV2ZXJzZSgpO1xuICAgICAgY29uc3Qgb3V0bGV0Q29tcG9uZW50Um91dGVzID0gcm91dGVzXG4gICAgICAgIC5zbGljZShyb3V0ZXMuZmluZEluZGV4KHJvdXRlID0+IHJvdXRlLm91dGxldCA9PT0gb3V0bGV0KSlcbiAgICAgICAgLmZpbHRlcihyb3V0ZSA9PiByb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ3NraXAnKSAhPT0gJ3RydWUnICYmICEhcm91dGU/LmNvbXBvbmVudCk7XG4gICAgICByZXR1cm4gb3V0bGV0Q29tcG9uZW50Um91dGVzLmxlbmd0aCA8PSAyO1xuICAgIH0pLFxuICAgIHRha2UoMSksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RJc1Jvb3RQYWdlKG91dGxldCA9IFBSSU1BUllfT1VUTEVUKSB7XG4gIGNvbnN0IGlzUm9vdFBhZ2UkID0gaW5qZWN0SXNSb290UGFnZSQob3V0bGV0KTtcbiAgY29uc3QgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICByZXR1cm4gZGVyaXZlZEFzeW5jKCgpID0+IGlzUm9vdFBhZ2UkLCB7aW5qZWN0b3J9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5hdlN0YXJ0QWN0aW9ucyhcbiAgaXNSb290UGFnZTogU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKSxcbik6IFNpZ25hbDxBY3Rpb25bXT4ge1xuICBjb25zdCBjb250ZXh0ID0gaW5qZWN0VWlDb250ZXh0KCk7XG4gIGNvbnN0IG5hdmlnYXRpb25IaXN0b3J5ID0gaW5qZWN0KE5hdmlnYXRpb25IaXN0b3J5U2VydmljZSk7XG4gIGxldCBpc0luaXRpYWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcmV0dXJuIGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zb2xlLmRlYnVnKCdbVWlTZXJ2aWNlXSBuYXZpZ2F0aW9uSGlzdG9yeTonLCBuYXZpZ2F0aW9uSGlzdG9yeSlcbiAgICBjb25zdCBpc1Jvb3RQYWdlXyA9IGlzUm9vdFBhZ2UoKTtcbiAgICAvLyBNRU1PKEBOb3pvbXVNSXlhbW90byk6IGhpc3RvcnkuZm9yd2FyZCgp44GX44Gf44Go44GN44Gr44CBaXNJbml0aWFs44GMdHJ1ZeOBruOBvuOBvuOBq+OBquOBo+OBpuOAgeaIu+OCi+ODnOOCv+ODs+OBjOihqOekuuOBleOCjOOBquOBhOWVj+mhjOOBjOOBguOCi+OBn+OCgeOCs+ODoeODs+ODiOOCouOCpuODiFxuICAgIC8vIGlzSW5pdGlhbCA/Pz0gbmF2aWdhdGlvbkhpc3RvcnkuaXNJbml0aWFsKCk7XG4gICAgY29uc29sZS5kZWJ1ZygnW1VpU2VydmljZV0gaXNJbml0aWFsOicsIGlzSW5pdGlhbClcbiAgICBjb25zb2xlLmRlYnVnKCdbVWlTZXJ2aWNlXSBpc1Jvb3RQYWdlOicsIGlzUm9vdFBhZ2UoKSlcbiAgICBjb25zdCBjb250ZXh0XyA9IGNvbnRleHQoKTtcbiAgICBzd2l0Y2goY29udGV4dF8uYnJlYWtwb2ludCkge1xuICAgICAgY2FzZSAneExhcmdlJzpcbiAgICAgIGNhc2UgJ2xhcmdlJzpcbiAgICAgIGNhc2UgJ21lZGl1bSc6XG4gICAgICBjYXNlICdzbWFsbCc6IHtcbiAgICAgICAgaWYgKGlzUm9vdFBhZ2VfKSB7XG4gICAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChpc0luaXRpYWwpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFt7IGlkOiBOYXZBY3Rpb25JZC5CQUNLLCBuYW1lOiAnQkFDSycsIGljb246ICdhcnJvd19iYWNrJyB9XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNhc2UgJ3hTbWFsbCc6IHtcbiAgICAgICAgaWYgKGlzUm9vdFBhZ2VfKSB7XG4gICAgICAgICAgcmV0dXJuIFt7IGlkOiBOYXZBY3Rpb25JZC5UT0dHTEVfU0lERV9OQVYsIG5hbWU6ICfjg6Hjg4vjg6Xjg7wnLCBpY29uOiAnbWVudScgfV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGlzSW5pdGlhbCkge1xuICAgICAgICAgICAgcmV0dXJuIFt7IGlkOiBOYXZBY3Rpb25JZC5UT0dHTEVfU0lERV9OQVYsIG5hbWU6ICfjg6Hjg4vjg6Xjg7wnLCBpY29uOiAnbWVudScgfV1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFt7IGlkOiBOYXZBY3Rpb25JZC5CQUNLLCBuYW1lOiAnQkFDSycsIGljb246ICdhcnJvd19iYWNrJyB9XTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgaWYgKGlzUm9vdFBhZ2VfKSByZXR1cm4gW107XG4gICAgICAgIHJldHVybiBbeyBpZDogTmF2QWN0aW9uSWQuQkFDSywgbmFtZTogJ0JBQ0snLCBpY29uOiAnYXJyb3dfYmFjaycgfV07XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE5hdlN0YXJ0QWN0aW9uc1YyKCkge1xuICBjb25zdCBpc1Jvb3RQYWdlID0gaW5qZWN0SXNSb290UGFnZSgpO1xuICByZXR1cm4gaW5qZWN0TmF2U3RhcnRBY3Rpb25zKGlzUm9vdFBhZ2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0U2lkZUFwcE5hdlN0YXJ0QWN0aW9ucyhcbiAgaXNSb290UGFnZTogU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKSxcbik6IFNpZ25hbDxBY3Rpb25bXT4ge1xuICBjb25zdCBjb250ZXh0ID0gaW5qZWN0VWlDb250ZXh0KCk7XG4gIHJldHVybiBjb21wdXRlZCgoKSA9PiB7XG4gICAgc3dpdGNoKGNvbnRleHQoKS5icmVha3BvaW50KSB7XG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGlmIChpc1Jvb3RQYWdlKCkpIHJldHVybiBbXG4gICAgICAgICAgeyBpZDogTmF2QWN0aW9uSWQuQ0xPU0UsIG5hbWU6ICdDTE9TRScsIGljb246ICdjbG9zZScgfSxcbiAgICAgICAgXTtcbiAgICAgICAgcmV0dXJuIFt7IGlkOiBOYXZBY3Rpb25JZC5CQUNLLCBuYW1lOiAnQkFDSycsIGljb246ICdhcnJvd19iYWNrJyB9XTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFVpQ29udGV4dCgpOiBTaWduYWw8VUlDb250ZXh0PiB7XG4gIHJldHVybiBpbmplY3QoVWlTZXJ2aWNlKS51aUNvbnRleHQ7XG59XG5cbmV4cG9ydCB0eXBlIFVpQ29uZmlnUmVkdWNlcjxUIGV4dGVuZHMgb2JqZWN0IHwgc3RyaW5nLCBDIGV4dGVuZHMgVUlDb250ZXh0ID0gYW55PiA9IChjb25maWc6IFQsIGNvbnRleHQ6IEMpID0+IFQ7XG5leHBvcnQgY29uc3QgVUlfQ09ORklHX1JFRFVDRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48VWlDb25maWdSZWR1Y2VyPGFueT4+KCdVSV9DT05GSUdfUkVEVUNFUicpO1xuZXhwb3J0IHR5cGUgUmVkdWNlckZhY3Rvcnk8VCBleHRlbmRzIG9iamVjdCB8IHN0cmluZz4gXG4gID0gKGluamVjdG9yOiBJbmplY3RvciwgaG9zdEluamVjdG9yOiBJbmplY3RvcikgPT4gKGNvbmZpZzogVCwgY29udGV4dDogVUlDb250ZXh0KSA9PiBUO1xuXG5leHBvcnQgdHlwZSBEZWZhdWx0UmVkdWNlckZhY3Rvcnk8VCBleHRlbmRzIG9iamVjdCB8IHN0cmluZz5cbiAgPSAoaW5qZWN0b3I6IEluamVjdG9yLCBob3N0SW5qZWN0b3I6IEluamVjdG9yKSA9PiAoY29udGV4dDogVUlDb250ZXh0KSA9PiBUO1xuXG5leHBvcnQgY29uc3Qgd3JhcCA9IDxUIGV4dGVuZHMgb2JqZWN0IHwgc3RyaW5nPihcbiAgZGVmYXVsdFJlZHVjZXJGYWN0b3J5OiBEZWZhdWx0UmVkdWNlckZhY3Rvcnk8VD4sXG4pOiBSZWR1Y2VyRmFjdG9yeTxUPiA9PiB7XG4gIHJldHVybiAoaW5qZWN0b3I6IEluamVjdG9yLCBob3N0SW5qZWN0b3I6IEluamVjdG9yKSA9PiB7XG4gICAgY29uc3QgcmVkdWNlciA9IGRlZmF1bHRSZWR1Y2VyRmFjdG9yeShpbmplY3RvciwgaG9zdEluamVjdG9yKTtcbiAgICByZXR1cm4gKF86IFQsIGNvbnRleHQ6IFVJQ29udGV4dCkgPT4ge1xuICAgICAgcmV0dXJuIHJlZHVjZXIoY29udGV4dCk7XG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FsbDxUPihzaWduYWxPclZhbHVlOiBTaWduYWw8VD4gfCBUKTogVCB7XG4gIHJldHVybiBpc1NpZ25hbChzaWduYWxPclZhbHVlKSA/IHNpZ25hbE9yVmFsdWUoKSA6IHNpZ25hbE9yVmFsdWU7XG59XG5cbmZ1bmN0aW9uIHNldFJlZHVjZXJQYXRoKHJlZHVjZXI6IEZ1bmN0aW9uLCBwYXRoOiBzdHJpbmdbXSkge1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocmVkdWNlciwgJ3BhdGgnLCB7IHZhbHVlOiBwYXRoLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG4gIHJldHVybiByZWR1Y2VyO1xufVxuXG5mdW5jdGlvbiBnZXRSZWR1Y2VyUGF0aChyZWR1Y2VyOiBGdW5jdGlvbikge1xuICByZXR1cm4gcmVkdWNlclsncGF0aCddO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVVpQ29uZmlnPFQgZXh0ZW5kcyBvYmplY3QgfCBzdHJpbmc+KFxuICByZWR1Y2VyRmFjdG9yeTogUmVkdWNlckZhY3Rvcnk8VD4sXG4gIHBhdGg6IHN0cmluZ1tdID0gW10sXG4gIG5hbWUgPSAnbmFtZScsXG4gIHRva2VuID0gVUlfQ09ORklHX1JFRFVDRVIsXG4pOiBQcm92aWRlciB7XG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogdG9rZW4sXG4gICAgdXNlRmFjdG9yeTogKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgZnVuY3Rpb24gX3JlZHVjZXJGYWN0b3J5KGhvc3RJbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgY29uc3QgcmVkdWNlciA9IHJlZHVjZXJGYWN0b3J5KGluamVjdG9yLCBob3N0SW5qZWN0b3IpOyBcbiAgICAgICAgcmV0dXJuIChjb25maWc6IFQsIGNvbnRleHQ6IGFueSk6IFQgPT4ge1xuICAgICAgICAgIGlmIChwYXRoLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHJlZHVjZXIoY29uZmlnLCBjb250ZXh0KTtcbiAgICAgICAgICByZXR1cm4gc2V0KGNvbmZpZyBhcyBvYmplY3QsIHBhdGgsIHJlZHVjZXIoZ2V0PGFueSwgYW55Pihjb25maWcsIHBhdGgpLCBjb250ZXh0KSkgYXMgVDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KF9yZWR1Y2VyRmFjdG9yeSwgJ25hbWUnLCB7IHZhbHVlOiBuYW1lLCBjb25maWd1cmFibGU6IHRydWUgfSk7XG4gICAgICBzZXRSZWR1Y2VyUGF0aChfcmVkdWNlckZhY3RvcnksIHBhdGgpO1xuICAgICAgcmV0dXJuIF9yZWR1Y2VyRmFjdG9yeTtcbiAgICB9LFxuICAgIGRlcHM6IFtJbmplY3Rvcl0sXG4gICAgbXVsdGk6IHRydWUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RSb290Q29uZmlnPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICBwYXRoczogc3RyaW5nW10gPSBbXSxcbiAgdG9rZW4gPSBVSV9DT05GSUdfUkVEVUNFUixcbik6IFNpZ25hbDxUPiB7XG4gIGNvbnN0IHVpQ29udGV4dCA9IGluamVjdFVpQ29udGV4dCgpO1xuICBjb25zdCBmYWN0b3JpZXMgPSBpbmplY3RSZWR1Y2VyRmFjdG9yaWVzKHBhdGhzLCB0b2tlbik7XG4gIGNvbnN0IGhvc3RJbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIGNvbnN0IHJlZHVjZXJzID0gZmFjdG9yaWVzLm1hcChmYWN0b3J5ID0+IHtcbiAgICByZXR1cm4gcnVuSW5JbmplY3Rpb25Db250ZXh0KGhvc3RJbmplY3RvciwgKCkgPT4gZmFjdG9yeShob3N0SW5qZWN0b3IpKTtcbiAgfSk7XG4gIGlmICghcmVkdWNlcnMpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IHJvb3RDb25maWcgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY29udGV4dCA9IHVpQ29udGV4dCgpO1xuICAgIHJldHVybiByZWR1Y2Vycy5yZWR1Y2UoKGFjYywgcmVkdWNlcikgPT4ge1xuICAgICAgcmV0dXJuIHJ1bkluSW5qZWN0aW9uQ29udGV4dChob3N0SW5qZWN0b3IsICgpID0+IHJlZHVjZXIoYWNjLCBjb250ZXh0KSk7XG4gICAgfSwge30gYXMgVCk7XG4gIH0pO1xuICByZXR1cm4gcm9vdENvbmZpZztcbn1cblxuLy8gVE9ETyhAbm9udGFuZ2VudCk6IGl0ZW1z44Gq44Gp44Gu5Y+W5b6X44GM5YWo44Gm44Gu44Kz44Oz44Od44O844ON44Oz44OI44Gn6KGM44KP44KM44KL44Gu44Gn6KiI566X44KS5pyA6YGp5YyW44GZ44KL44CCXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0VWlDb25maWc8VCBleHRlbmRzIG9iamVjdD4oXG4gIHBhdGhzOiBzdHJpbmdbXSA9IFtdLFxuICB0b2tlbjogSW5qZWN0aW9uVG9rZW48VWlDb25maWdSZWR1Y2VyPGFueT4+ID0gVUlfQ09ORklHX1JFRFVDRVIsXG4pOiBTaWduYWw8VD4ge1xuICBjb25zdCByb290Q29uZmlnID0gaW5qZWN0Um9vdENvbmZpZzxUPihwYXRocywgdG9rZW4pO1xuICByZXR1cm4gc2NvcGVkKHJvb3RDb25maWcsIHBhdGhzIGFzIGFueSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtYWtlQ29uZmlnPFQgZXh0ZW5kcyBvYmplY3Q+KGRlZmF1bHRVc2VGYWN0b3J5OiBEZWZhdWx0UmVkdWNlckZhY3Rvcnk8VD4sIHBhdGg6IHN0cmluZ1tdKSB7XG4gIGNvbnN0IGZhY3RvcnkgPSB3cmFwKGRlZmF1bHRVc2VGYWN0b3J5KTtcbiAgY29uc3QgdG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48VWlDb25maWdSZWR1Y2VyPFQ+PihgWyR7cGF0aC5qb2luKCcuJyl9XSBVSV9DT05GSUdfUkVEVUNFUmApO1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGUodXNlRmFjdG9yeT86IFJlZHVjZXJGYWN0b3J5PFQ+LCBsYWJlbCA9IHVzZUZhY3RvcnkgPyAnY3VzdG9tJyA6ICdkZWZhdWx0Jykge1xuICAgICAgdXNlRmFjdG9yeSA/Pz0gZmFjdG9yeTtcbiAgICAgIHJldHVybiBwcm92aWRlVWlDb25maWc8VD4odXNlRmFjdG9yeSwgcGF0aCwgYFske3BhdGguam9pbignLicpfV0gJHtsYWJlbH1gLCB0b2tlbik7XG4gICAgfSxcbiAgICBpbmplY3QoKSB7XG4gICAgICByZXR1cm4gaW5qZWN0VWlDb25maWc8VD4ocGF0aCwgdG9rZW4pO1xuICAgIH0sXG4gIH1cbn1cblxuZnVuY3Rpb24gaW5qZWN0UmVkdWNlcnModG9rZW4pOiAoKGhvc3RJbmplY3RvcjogSW5qZWN0b3IpID0+IFVpQ29uZmlnUmVkdWNlcjxhbnk+KVtdIHtcbiAgcmV0dXJuIGluamVjdERlZXBNdWx0aTwoaG9zdEluamVjdG9yOiBJbmplY3RvcikgPT4gVWlDb25maWdSZWR1Y2VyPGFueT4+KHRva2VuKTtcbn1cblxuZnVuY3Rpb24gaW5qZWN0UmVkdWNlckZhY3RvcmllcyhcbiAgcGF0aDogc3RyaW5nW10gPSBbXSxcbiAgdG9rZW4gPSBVSV9DT05GSUdfUkVEVUNFUixcbik6ICgoaG9zdEluamVjdG9yOiBJbmplY3RvcikgPT4gVWlDb25maWdSZWR1Y2VyPGFueT4pW10ge1xuICByZXR1cm4gaW5qZWN0UmVkdWNlcnModG9rZW4pLmZpbHRlcihmYWN0b3J5ID0+IHtcbiAgICByZXR1cm4gZ2V0UmVkdWNlclBhdGgoZmFjdG9yeSkuZXZlcnkoKHAsIGkpID0+IHBhdGhbaV0gPT09IHApO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdERlZXBNdWx0aTxUPih0b2tlbjogUHJvdmlkZXJUb2tlbjxUPiwgaW5qZWN0b3I6IEluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKSk6IFRbXSB7XG4gIGNvbnN0IHZhbHVlT3JBcnJheSA9IGluamVjdG9yLmdldCh0b2tlbiBhcyBQcm92aWRlclRva2VuPFRbXT4sIFtdLCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgY29uc3QgaXRlbXMgPSBBcnJheS5pc0FycmF5KHZhbHVlT3JBcnJheSkgPyB2YWx1ZU9yQXJyYXkgOiBbdmFsdWVPckFycmF5XTtcbiAgY29uc3QgcGFyZW50SW5qZWN0b3IgPSBpbmplY3Rvci5nZXQoSW5qZWN0b3IsIG51bGwsIHtza2lwU2VsZjogdHJ1ZX0pO1xuICBpZiAoIXBhcmVudEluamVjdG9yKSByZXR1cm4gaXRlbXM7XG4gIHJldHVybiBbLi4ubmV3IFNldChbLi4uaW5qZWN0RGVlcE11bHRpKHRva2VuLCBwYXJlbnRJbmplY3RvciksIC4uLml0ZW1zXSldO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVidWdJbmplY3RvcihpbmplY3RvcjogSW5qZWN0b3IgfCBudWxsID0gaW5qZWN0KEluamVjdG9yKSkge1xuICAgICAgY29uc3QgZ2V0UGFyZW50ID0gKGluamVjdG9yOiBJbmplY3RvciwgbiA9IDApOiBJbmplY3RvciB8IG51bGwgPT4ge1xuICAgICAgd2hpbGUgKGluamVjdG9yICYmIG4tLSA+IDApIHtcbiAgICAgICAgaW5qZWN0b3IgPSBpbmplY3Rvci5nZXQoSW5qZWN0b3IsIG51bGwsIHsgc2tpcFNlbGY6IHRydWUgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaW5qZWN0b3I7XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SW5qZWN0b3JOYW1lID0gKGluamVjdG9yOiBJbmplY3Rvcik6IHN0cmluZyA9PiB7XG4gICAgICBjb25zdCBuYW1lID0gaW5qZWN0b3IuZ2V0KEVsZW1lbnRSZWYsIG51bGwpPy5uYXRpdmVFbGVtZW50Py50YWdOYW1lPy50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKG5hbWUpIHJldHVybiBgPCR7bmFtZX0+YDtcbiAgICAgIHJldHVybiBgJHtpbmplY3Rvclsnc291cmNlJ119YDtcbiAgICB9XG5cbiAgICBjb25zdCBpc05vZGVJbmplY3RvciA9IChpbmplY3RvcjogSW5qZWN0b3IpOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBpbmplY3Rvci5nZXQoRWxlbWVudFJlZiwgbnVsbCkgIT09IG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgbWFwVG9OYW1lcyA9IChyZWR1Y2VyczogYW55KSA9PiAocmVkdWNlcnMgPz8gW10pLm1hcChyZWR1Y2VyID0+IHJlZHVjZXIubmFtZSk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIwOyBpKyspIHtcbiAgICAgIGluamVjdG9yID0gZ2V0UGFyZW50KGluamVjdG9yLCBpKTtcbiAgICAgIGlmIChpbmplY3RvciA9PT0gSW5qZWN0b3IuTlVMTCkgYnJlYWs7XG4gICAgfVxufVxuIl19
@@ -1,30 +0,0 @@
1
- import { Injectable, PLATFORM_ID, computed, inject } from '@angular/core';
2
- import { toSignal } from '@angular/core/rxjs-interop';
3
- import { NavigationStart } from '@angular/router';
4
- import { filter, map, startWith } from 'rxjs';
5
- import { isPlatformBrowser } from '@angular/common';
6
- import { RouterService } from '@ng-atomic/common/services/router';
7
- import { BreakpointService } from '@ng-atomic/common/services/breakpoint';
8
- import * as i0 from "@angular/core";
9
- export class UiService {
10
- constructor() {
11
- this.breakpoint = inject(BreakpointService);
12
- this.router = inject(RouterService);
13
- this.platformId = inject(PLATFORM_ID);
14
- this.paths$ = this.router.events.pipe(filter(event => event instanceof NavigationStart), map((event) => event.url), startWith(isPlatformBrowser(this.platformId) ? window?.location?.pathname : ''), map(url => this.router.parseUrl(url)), map(urlTree => urlTree.root.children?.primary?.segments ?? []));
15
- this.paths = toSignal(this.paths$);
16
- this.snapshot$ = this.router.events.pipe(filter(event => event instanceof NavigationStart), map(() => this.router.routerState.snapshot.root));
17
- this.snapshot = toSignal(this.snapshot$);
18
- this.uiContext = computed(() => ({
19
- breakpoint: this.breakpoint.breakpoint(),
20
- paths: this.paths(),
21
- }));
22
- }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
24
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UiService, providedIn: 'root' }); }
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: UiService, decorators: [{
27
- type: Injectable,
28
- args: [{ providedIn: 'root' }]
29
- }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvdWkvdWkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUNsRSxPQUFPLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFRdEYsTUFBTSxPQUFPLFNBQVM7SUFEdEI7UUFFVyxlQUFVLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQixlQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWpDLFdBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3ZDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxlQUFlLENBQUMsRUFDakQsR0FBRyxDQUFDLENBQUMsS0FBc0IsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUMxQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQy9FLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ3JDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDLENBQy9ELENBQUM7UUFDTyxVQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU5QixjQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUMxQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksZUFBZSxDQUFDLEVBQ2pELEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQ2pELENBQUM7UUFDTyxhQUFRLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVwQyxjQUFTLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDbkMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFO1lBQ3hDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFO1NBQ3BCLENBQUMsQ0FBQyxDQUFDO0tBQ0w7OEdBeEJZLFNBQVM7a0hBQVQsU0FBUyxjQURJLE1BQU07OzJGQUNuQixTQUFTO2tCQURyQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgUExBVEZPUk1fSUQsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJvdXRlclNlcnZpY2UgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9yb3V0ZXInO1xuaW1wb3J0IHsgQnJlYWtwb2ludCwgQnJlYWtwb2ludFNlcnZpY2UgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi9zZXJ2aWNlcy9icmVha3BvaW50JztcblxuZXhwb3J0IGludGVyZmFjZSBVSUNvbnRleHQge1xuICBicmVha3BvaW50OiBCcmVha3BvaW50O1xuICBwYXRoczogYW55W107XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgVWlTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgYnJlYWtwb2ludCA9IGluamVjdChCcmVha3BvaW50U2VydmljZSk7XG4gIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG5cbiAgcmVhZG9ubHkgcGF0aHMkID0gdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSxcbiAgICBtYXAoKGV2ZW50OiBOYXZpZ2F0aW9uU3RhcnQpID0+IGV2ZW50LnVybCksXG4gICAgc3RhcnRXaXRoKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgPyB3aW5kb3c/LmxvY2F0aW9uPy5wYXRobmFtZSA6ICcnKSxcbiAgICBtYXAodXJsID0+IHRoaXMucm91dGVyLnBhcnNlVXJsKHVybCkpLFxuICAgIG1hcCh1cmxUcmVlID0+IHVybFRyZWUucm9vdC5jaGlsZHJlbj8ucHJpbWFyeT8uc2VnbWVudHMgPz8gW10pLFxuICApO1xuICByZWFkb25seSBwYXRocyA9IHRvU2lnbmFsKHRoaXMucGF0aHMkKTtcblxuICByZWFkb25seSBzbmFwc2hvdCQgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpLFxuICAgIG1hcCgoKSA9PiB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC5yb290KSxcbiAgKTtcbiAgcmVhZG9ubHkgc25hcHNob3QgPSB0b1NpZ25hbCh0aGlzLnNuYXBzaG90JCk7XG5cbiAgcmVhZG9ubHkgdWlDb250ZXh0ID0gY29tcHV0ZWQoKCkgPT4gKHtcbiAgICBicmVha3BvaW50OiB0aGlzLmJyZWFrcG9pbnQuYnJlYWtwb2ludCgpLFxuICAgIHBhdGhzOiB0aGlzLnBhdGhzKCksXG4gIH0pKTtcbn1cbiJdfQ==
@@ -1,64 +0,0 @@
1
- import { takeUntilDestroyed, toObservable, toSignal } from '@angular/core/rxjs-interop';
2
- import { computed, inject } from '@angular/core';
3
- import { injectResolver$ } from '@ng-atomic/common/utils';
4
- import { combineLatest, isObservable, of, filter, map, shareReplay, switchMap } from 'rxjs';
5
- import { injectEntityStore } from './entity-store-manager';
6
- import { computedAsync } from 'ngxtension/computed-async';
7
- export function injectOne$(Entity, params, resolverType) {
8
- if (resolverType) {
9
- return combineLatest({
10
- resolver: injectResolver$(resolverType, params),
11
- Entity: injectEntityStore(Entity).mapToOne(params.id).pipe(filter((Entity) => !!Entity)),
12
- }).pipe(map(({ resolver, Entity }) => resolver.resolve(Entity)), shareReplay(1), takeUntilDestroyed());
13
- }
14
- return injectEntityStore(Entity).mapToOne(params.id).pipe(shareReplay(1), takeUntilDestroyed());
15
- }
16
- function signalMapToObs(map) {
17
- return Object.entries(map).reduce((acc, [key, value]) => {
18
- acc[key] = toObservable(value);
19
- return acc;
20
- }, {});
21
- }
22
- export function injectOne(Entity, params, resolverType) {
23
- return toSignal(injectOne$(Entity, signalMapToObs(params), resolverType));
24
- }
25
- export function injectAll$(Entity, params = {}, resolverType) {
26
- if (resolverType) {
27
- return combineLatest({
28
- resolver: injectResolver$(resolverType, params),
29
- entities: injectEntityStore(Entity).all$,
30
- }).pipe(map(({ resolver, entities }) => resolver.resolveMany(entities)), shareReplay(1), takeUntilDestroyed());
31
- }
32
- return injectEntityStore(Entity).entities$.pipe(shareReplay(1), takeUntilDestroyed());
33
- }
34
- export const callSignalMap = (map) => {
35
- return computed(() => Object.entries(map).reduce((acc, [key, value]) => {
36
- return { ...acc, [key]: value() };
37
- }, {}));
38
- };
39
- // export function injectAll<T extends Entity>(
40
- // Entity: Type<T>,
41
- // params: Record<string, Signal<any>> = {},
42
- // resolverType?: new (params: Record<string, any>) => Resolver<T>
43
- // ) {
44
- // const store = injectEntityStore(Entity);
45
- // if (resolverType) {
46
- // return computed(() => {
47
- // const resolver = getResolver(resolverType, callSignalMap(params)());
48
- // const items = resolver.resolveMany(store.all());
49
- // return items;
50
- // });
51
- // }
52
- // return computed(() => store.all());
53
- // }
54
- export function injectAll(Entity, params = {}, resolverType) {
55
- const $params = signalMapToObs(params);
56
- const all$ = injectAll$(Entity, $params, resolverType);
57
- return computedAsync(() => all$, { initialValue: [] });
58
- }
59
- export function mapToOne$(storeType, keyOrKey$) {
60
- const store = inject(storeType, {});
61
- const key$ = isObservable(keyOrKey$) ? keyOrKey$ : of(keyOrKey$);
62
- return key$.pipe(switchMap(key => store.mapToOne(key)));
63
- }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3N0b3Jlcy9lbnRpdGllcy9kaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hGLE9BQU8sRUFBVSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBeUIsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakYsT0FBTyxFQUFjLGFBQWEsRUFBRSxZQUFZLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBNkIsTUFBTSxNQUFNLENBQUM7QUFHbkksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSzFELE1BQU0sVUFBVSxVQUFVLENBQ3hCLE1BQWUsRUFDZixNQUFpQyxFQUNqQyxZQUEyRTtJQUUzRSxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pCLE9BQU8sYUFBYSxDQUFDO1lBQ25CLFFBQVEsRUFBRSxlQUFlLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQztZQUMvQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3hELE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUM3QjtTQUNGLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFP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QUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUMsWUFBWSxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUlELE1BQU0sVUFBVSxTQUFTLENBQ3ZCLFNBQW1DLEVBQ25DLFNBQW9DO0lBRXBDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBaUIsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDakUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBTaWduYWwsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdAbngtZGRkL2NvbW1vbi9kb21haW4vbW9kZWxzJztcbmltcG9ydCB7IFJlc29sdmVyLCBnZXRSZXNvbHZlciwgaW5qZWN0UmVzb2x2ZXIkIH0gZnJvbSAnQG5nLWF0b21pYy9jb21tb24vdXRpbHMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29tYmluZUxhdGVzdCwgaXNPYnNlcnZhYmxlLCBvZiwgZmlsdGVyLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4vdGFzay1jb21wb3Nlcic7XG5pbXBvcnQgeyBFbnRpdHlTdG9yZSB9IGZyb20gJy4vZW50aXR5LXN0b3JlJztcbmltcG9ydCB7IGluamVjdEVudGl0eVN0b3JlIH0gZnJvbSAnLi9lbnRpdHktc3RvcmUtbWFuYWdlcic7XG5pbXBvcnQgeyBjb21wdXRlZEFzeW5jIH0gZnJvbSAnbmd4dGVuc2lvbi9jb21wdXRlZC1hc3luYyc7XG5cbnR5cGUgT25lUHJvcHM8Vj4gPSB7aWQ6IFYsIFtrZXk6IHN0cmluZ106IFZ9O1xudHlwZSBBbGxQcm9wczxWPiA9IHtba2V5OiBzdHJpbmddOiBWfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdE9uZSQ8VCBleHRlbmRzIEVudGl0eT4oXG4gIEVudGl0eTogVHlwZTxUPixcbiAgcGFyYW1zOiBPbmVQcm9wczxPYnNlcnZhYmxlPGFueT4+LFxuICByZXNvbHZlclR5cGU/OiBuZXcgKHBhcmFtczogUmVjb3JkPHN0cmluZywgT2JzZXJ2YWJsZTxhbnk+PikgPT4gUmVzb2x2ZXI8VD5cbik6IE9ic2VydmFibGU8VD4ge1xuICBpZiAocmVzb2x2ZXJUeXBlKSB7XG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3Qoe1xuICAgICAgcmVzb2x2ZXI6IGluamVjdFJlc29sdmVyJChyZXNvbHZlclR5cGUsIHBhcmFtcyksXG4gICAgICBFbnRpdHk6IGluamVjdEVudGl0eVN0b3JlKEVudGl0eSkubWFwVG9PbmUocGFyYW1zLmlkKS5waXBlKFxuICAgICAgICBmaWx0ZXIoKEVudGl0eSkgPT4gISFFbnRpdHkpXG4gICAgICApLFxuICAgIH0pLnBpcGUoXG4gICAgICBtYXAoKHsgcmVzb2x2ZXIsIEVudGl0eSB9KSA9PiByZXNvbHZlci5yZXNvbHZlKEVudGl0eSkpLFxuICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGluamVjdEVudGl0eVN0b3JlKEVudGl0eSkubWFwVG9PbmUocGFyYW1zLmlkKS5waXBlKFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApO1xufVxuXG5mdW5jdGlvbiBzaWduYWxNYXBUb09icyhtYXA6IEFsbFByb3BzPFNpZ25hbDxhbnk+Pik6IEFsbFByb3BzPE9ic2VydmFibGU8YW55Pj4ge1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMobWFwKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgYWNjW2tleV0gPSB0b09ic2VydmFibGUodmFsdWUgYXMgYW55KTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSBhcyBBbGxQcm9wczxPYnNlcnZhYmxlPGFueT4+KTtcbn1cblxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0T25lPFQgZXh0ZW5kcyBFbnRpdHk+KFxuICBFbnRpdHk6IFR5cGU8VD4sXG4gIHBhcmFtczogT25lUHJvcHM8U2lnbmFsPGFueT4+LFxuICByZXNvbHZlclR5cGU/OiBuZXcgKHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PikgPT4gUmVzb2x2ZXI8VD5cbikge1xuICByZXR1cm4gdG9TaWduYWwoaW5qZWN0T25lJChFbnRpdHksIHNpZ25hbE1hcFRvT2JzKHBhcmFtcykgYXMgYW55LCByZXNvbHZlclR5cGUpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEFsbCQ8VCBleHRlbmRzIEVudGl0eT4oXG4gIEVudGl0eTogVHlwZTxUPixcbiAgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBPYnNlcnZhYmxlPGFueT4+ID0ge30sXG4gIHJlc29sdmVyVHlwZT86IG5ldyAocGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiBSZXNvbHZlcjxUPlxuKSB7XG4gIGlmIChyZXNvbHZlclR5cGUpIHtcbiAgICByZXR1cm4gY29tYmluZUxhdGVzdCh7XG4gICAgICByZXNvbHZlcjogaW5qZWN0UmVzb2x2ZXIkKHJlc29sdmVyVHlwZSwgcGFyYW1zKSxcbiAgICAgIGVudGl0aWVzOiBpbmplY3RFbnRpdHlTdG9yZShFbnRpdHkpLmFsbCQsXG4gICAgfSkucGlwZShcbiAgICAgIG1hcCgoeyByZXNvbHZlciwgZW50aXRpZXMgfSkgPT4gcmVzb2x2ZXIucmVzb2x2ZU1hbnkoZW50aXRpZXMpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBpbmplY3RFbnRpdHlTdG9yZShFbnRpdHkpLmVudGl0aWVzJC5waXBlKFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApO1xufVxuXG5leHBvcnQgY29uc3QgY2FsbFNpZ25hbE1hcCA9IDxUIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgU2lnbmFsPGFueT4+PihtYXA6IFQpOiBTaWduYWw8VD4gPT4gIHtcbiAgcmV0dXJuIGNvbXB1dGVkKCgpID0+IE9iamVjdC5lbnRyaWVzKG1hcCkucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIHJldHVybiB7Li4uYWNjLCBba2V5XTogdmFsdWUoKX07XG4gIH0sIHt9IGFzIFQpKTtcbn1cblxuLy8gZXhwb3J0IGZ1bmN0aW9uIGluamVjdEFsbDxUIGV4dGVuZHMgRW50aXR5Pihcbi8vICAgRW50aXR5OiBUeXBlPFQ+LFxuLy8gICBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIFNpZ25hbDxhbnk+PiA9IHt9LFxuLy8gICByZXNvbHZlclR5cGU/OiBuZXcgKHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PikgPT4gUmVzb2x2ZXI8VD5cbi8vICkge1xuLy8gICBjb25zdCBzdG9yZSA9IGluamVjdEVudGl0eVN0b3JlKEVudGl0eSk7XG4vLyAgIGlmIChyZXNvbHZlclR5cGUpIHtcbi8vICAgICByZXR1cm4gY29tcHV0ZWQoKCkgPT4ge1xuLy8gICAgICAgY29uc3QgcmVzb2x2ZXIgPSBnZXRSZXNvbHZlcihyZXNvbHZlclR5cGUsIGNhbGxTaWduYWxNYXAocGFyYW1zKSgpKTtcbi8vICAgICAgIGNvbnN0IGl0ZW1zID0gcmVzb2x2ZXIucmVzb2x2ZU1hbnkoc3RvcmUuYWxsKCkpO1xuLy8gICAgICAgcmV0dXJuIGl0ZW1zO1xuLy8gICAgIH0pO1xuLy8gICB9XG4vLyAgIHJldHVybiBjb21wdXRlZCgoKSA9PiBzdG9yZS5hbGwoKSk7XG4vLyB9XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RBbGw8VCBleHRlbmRzIEVudGl0eT4oXG4gIEVudGl0eTogVHlwZTxUPixcbiAgcGFyYW1zOiBBbGxQcm9wczxTaWduYWw8YW55Pj4gPSB7fSxcbiAgcmVzb2x2ZXJUeXBlPzogbmV3IChwYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IFJlc29sdmVyPFQ+XG4pIHtcbiAgY29uc3QgJHBhcmFtcyA9IHNpZ25hbE1hcFRvT2JzKHBhcmFtcyk7XG4gIGNvbnN0IGFsbCQgPSBpbmplY3RBbGwkKEVudGl0eSwgJHBhcmFtcywgcmVzb2x2ZXJUeXBlKTtcbiAgcmV0dXJuIGNvbXB1dGVkQXN5bmMoKCkgPT4gYWxsJCwge2luaXRpYWxWYWx1ZTogW119KTtcbn1cblxuZXhwb3J0IHR5cGUgVmFsdWVPck9ic2VydmFibGU8VD4gPSBUIHwgT2JzZXJ2YWJsZTxUPjtcblxuZXhwb3J0IGZ1bmN0aW9uIG1hcFRvT25lJDxUIGV4dGVuZHMge2lkOiBzdHJpbmd9PihcbiAgc3RvcmVUeXBlOiBuZXcgKCkgPT4gRW50aXR5U3RvcmU8VD4sXG4gIGtleU9yS2V5JDogVmFsdWVPck9ic2VydmFibGU8c3RyaW5nPixcbik6IE9ic2VydmFibGU8VD4ge1xuICBjb25zdCBzdG9yZSA9IGluamVjdDxFbnRpdHlTdG9yZTxUPj4oc3RvcmVUeXBlLCB7fSk7XG4gIGNvbnN0IGtleSQgPSBpc09ic2VydmFibGUoa2V5T3JLZXkkKSA/IGtleU9yS2V5JCA6IG9mKGtleU9yS2V5JCk7XG4gIHJldHVybiBrZXkkLnBpcGUoc3dpdGNoTWFwKGtleSA9PiBzdG9yZS5tYXBUb09uZShrZXkpKSk7XG59XG4iXX0=
@@ -1,34 +0,0 @@
1
- import { InjectionToken, Injector, inject } from '@angular/core';
2
- export class EntityStoreAdapter {
3
- list() {
4
- throw new Error('not implemented');
5
- }
6
- create(entity) {
7
- throw new Error('not implemented');
8
- }
9
- update(entity) {
10
- throw new Error('not implemented');
11
- }
12
- delete(entity) {
13
- throw new Error('not implemented');
14
- }
15
- save(entity) {
16
- throw new Error('not implemented');
17
- }
18
- }
19
- export const ENTITY_STORE_ADAPTER = new InjectionToken('ENTITY_STORE_ADAPTER');
20
- export function provideEntityStoreAdapter(entity, adapterFactory) {
21
- return {
22
- provide: ENTITY_STORE_ADAPTER,
23
- multi: true,
24
- useFactory: (injector) => {
25
- return { entity, adapter: adapterFactory(injector) };
26
- },
27
- deps: [Injector]
28
- };
29
- }
30
- export function injectEntityStoreAdapter(entity) {
31
- const adapters = inject(ENTITY_STORE_ADAPTER, { optional: true }) ?? [];
32
- return adapters.find(adapter => adapter.entity === entity)?.adapter;
33
- }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JlLWFkYXB0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3N0b3Jlcy9lbnRpdGllcy9lbnRpdHktc3RvcmUtYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLakUsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixJQUFJO1FBQ0YsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLENBQUUsTUFBUztRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTSxDQUFFLE1BQWtDO1FBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTSxDQUFFLE1BQXFCO1FBQzNCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxDQUFFLE1BQVM7UUFDYixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBR2pELHNCQUFzQixDQUFDLENBQUM7QUFFN0IsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxNQUFlLEVBQ2YsY0FBNkQ7SUFFN0QsT0FBTztRQUNMLE9BQU8sRUFBRSxvQkFBb0I7UUFDN0IsS0FBSyxFQUFFLElBQUk7UUFDWCxVQUFVLEVBQUUsQ0FBQyxRQUFrQixFQUFFLEVBQUU7WUFDakMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDdkQsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQztLQUNqQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSx3QkFBd0IsQ0FBbUIsTUFBZTtJQUN4RSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEUsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsRUFBRSxPQUFnQyxDQUFDO0FBQy9GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IEluamVjdGlvblRva2VuLCBJbmplY3RvciwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUeXBlIH0gZnJvbSAnQG54LWRkZC9jb21tb24vZG9tYWluL21vZGVscyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuL3Rhc2stY29tcG9zZXInO1xuXG5leHBvcnQgY2xhc3MgRW50aXR5U3RvcmVBZGFwdGVyPEUgZXh0ZW5kcyBFbnRpdHk+IHtcbiAgbGlzdD8oKTogT2JzZXJ2YWJsZTxFW10+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgY3JlYXRlPyhlbnRpdHk6IEUpOiBQcm9taXNlPEU+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgdXBkYXRlPyhlbnRpdHk6IFBhcnRpYWw8RT4gJiBQaWNrPEUsICdpZCc+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIGRlbGV0ZT8oZW50aXR5OiBQaWNrPEUsICdpZCc+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIHNhdmU/KGVudGl0eTogRSk6IFByb21pc2U8RT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignbm90IGltcGxlbWVudGVkJyk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEVOVElUWV9TVE9SRV9BREFQVEVSID0gbmV3IEluamVjdGlvblRva2VuPHtcbiAgZW50aXR5OiBUeXBlPEVudGl0eT4sXG4gIGFkYXB0ZXI6IEVudGl0eVN0b3JlQWRhcHRlcjxFbnRpdHk+XG59W10+KCdFTlRJVFlfU1RPUkVfQURBUFRFUicpO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUVudGl0eVN0b3JlQWRhcHRlcjxFIGV4dGVuZHMgRW50aXR5PihcbiAgZW50aXR5OiBUeXBlPEU+LFxuICBhZGFwdGVyRmFjdG9yeTogKGluamVjdG9yOiBJbmplY3RvcikgPT4gRW50aXR5U3RvcmVBZGFwdGVyPEU+LFxuKSB7XG4gIHJldHVybiB7XG4gICAgcHJvdmlkZTogRU5USVRZX1NUT1JFX0FEQVBURVIsXG4gICAgbXVsdGk6IHRydWUsXG4gICAgdXNlRmFjdG9yeTogKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgcmV0dXJuIHsgZW50aXR5LCBhZGFwdGVyOiBhZGFwdGVyRmFjdG9yeShpbmplY3RvcikgfTtcbiAgICB9LFxuICAgIGRlcHM6IFtJbmplY3Rvcl1cbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEVudGl0eVN0b3JlQWRhcHRlcjxFIGV4dGVuZHMgRW50aXR5PihlbnRpdHk6IFR5cGU8RT4pOiBFbnRpdHlTdG9yZUFkYXB0ZXI8RT4ge1xuICBjb25zdCBhZGFwdGVycyA9IGluamVjdChFTlRJVFlfU1RPUkVfQURBUFRFUiwge29wdGlvbmFsOiB0cnVlfSkgPz8gW107XG4gIHJldHVybiBhZGFwdGVycy5maW5kKGFkYXB0ZXIgPT4gYWRhcHRlci5lbnRpdHkgPT09IGVudGl0eSk/LmFkYXB0ZXIgYXMgRW50aXR5U3RvcmVBZGFwdGVyPEU+O1xufVxuIl19
@@ -1,25 +0,0 @@
1
- import { Injectable, inject } from '@angular/core';
2
- import { EntityStore } from './entity-store';
3
- import * as i0 from "@angular/core";
4
- export { distinctUntilChangedArray } from './entity-store';
5
- export class EntityStoreService {
6
- constructor() {
7
- this.storeMap = new Map();
8
- }
9
- get(Entity) {
10
- if (!this.storeMap.has(Entity)) {
11
- this.storeMap.set(Entity, new EntityStore(Entity));
12
- }
13
- return this.storeMap.get(Entity);
14
- }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: EntityStoreService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
16
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: EntityStoreService, providedIn: 'root' }); }
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: EntityStoreService, decorators: [{
19
- type: Injectable,
20
- args: [{ providedIn: 'root' }]
21
- }] });
22
- export function injectEntityStore(Entity) {
23
- return inject(EntityStoreService).get(Entity);
24
- }
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXN0b3JlLW1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3N0b3Jlcy9lbnRpdGllcy9lbnRpdHktc3RvcmUtbWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBQzdDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNELE1BQU0sT0FBTyxrQkFBa0I7SUFEL0I7UUFFWSxhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQXFDLENBQUM7S0FRbkU7SUFOQyxHQUFHLENBQW1CLE1BQWU7UUFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFtQixDQUFDO0lBQ3JELENBQUM7OEdBUlUsa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FETixNQUFNOzsyRkFDbEIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7QUFZaEMsTUFBTSxVQUFVLGlCQUFpQixDQUFtQixNQUFlO0lBQ2pFLE9BQU8sTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdAbngtZGRkL2NvbW1vbi9kb21haW4vbW9kZWxzJztcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4vdGFzay1jb21wb3Nlcic7XG5pbXBvcnQgeyBFbnRpdHlTdG9yZSB9IGZyb20gJy4vZW50aXR5LXN0b3JlJztcbmV4cG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkQXJyYXkgfSBmcm9tICcuL2VudGl0eS1zdG9yZSc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEVudGl0eVN0b3JlU2VydmljZSB7XG4gIHByb3RlY3RlZCBzdG9yZU1hcCA9IG5ldyBNYXA8VHlwZTxFbnRpdHk+LCBFbnRpdHlTdG9yZTxFbnRpdHk+PigpO1xuXG4gIGdldDxFIGV4dGVuZHMgRW50aXR5PihFbnRpdHk6IFR5cGU8RT4pOiBFbnRpdHlTdG9yZTxFPiB7XG4gICAgaWYgKCF0aGlzLnN0b3JlTWFwLmhhcyhFbnRpdHkpKSB7XG4gICAgICB0aGlzLnN0b3JlTWFwLnNldChFbnRpdHksIG5ldyBFbnRpdHlTdG9yZShFbnRpdHkpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVNYXAuZ2V0KEVudGl0eSkgYXMgRW50aXR5U3RvcmU8RT47XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEVudGl0eVN0b3JlPEUgZXh0ZW5kcyBFbnRpdHk+KEVudGl0eTogVHlwZTxFPik6IEVudGl0eVN0b3JlPEU+IHtcbiAgcmV0dXJuIGluamVjdChFbnRpdHlTdG9yZVNlcnZpY2UpLmdldChFbnRpdHkpO1xufVxuIl19