@ng-atomic/common 18.12.0 → 18.13.0-preview-v19f.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,145 +0,0 @@
1
- import { inject, Injectable } from "@angular/core";
2
- import { FormBuilder, Validators } from "@angular/forms";
3
- import { wrapActions } from "@ng-atomic/core";
4
- import * as i0 from "@angular/core";
5
- export class ColumnsFormBuilder {
6
- constructor() {
7
- this.fb = inject(FormBuilder).nonNullable;
8
- }
9
- build(columns = {
10
- ids: ['id', 'user'],
11
- map: {
12
- user: {
13
- type: 'text',
14
- width: 80,
15
- visible: true,
16
- },
17
- id: {
18
- type: 'text',
19
- width: 80,
20
- visible: true,
21
- },
22
- },
23
- }) {
24
- return this.fb.group({
25
- ids: this.fb.control(columns.ids, Validators.required),
26
- map: this.fb.group(Object.entries(columns.map).reduce((obj, [key, value]) => ({
27
- ...obj,
28
- [key]: this.buildColumnForm(value),
29
- }), {})),
30
- });
31
- }
32
- buildColumnForm(column) {
33
- switch (column.type) {
34
- case 'tree':
35
- return this.fb.group({
36
- type: this.fb.control({ value: 'tree', disabled: true }),
37
- visible: this.fb.control(column.visible),
38
- width: this.fb.control(column.width),
39
- sticky: this.fb.control(column.sticky),
40
- stickyEnd: this.fb.control(column.stickyEnd),
41
- });
42
- case 'text':
43
- return this.fb.group({
44
- type: this.fb.control({ value: 'text', disabled: true }),
45
- visible: this.fb.control(column.visible),
46
- width: this.fb.control(column.width),
47
- sticky: this.fb.control(column.sticky),
48
- stickyEnd: this.fb.control(column.stickyEnd),
49
- });
50
- case 'checkbox':
51
- return this.fb.group({
52
- type: this.fb.control({ value: 'checkbox', disabled: true }),
53
- visible: this.fb.control(column.visible),
54
- width: this.fb.control(column.width),
55
- sticky: this.fb.control(column.sticky),
56
- stickyEnd: this.fb.control(column.stickyEnd),
57
- });
58
- case 'actions':
59
- return this.fb.group({
60
- type: this.fb.control({ value: 'actions', disabled: true }),
61
- visible: this.fb.control(column.visible),
62
- width: this.fb.control(column.width),
63
- actions: this.fb.control(column.actions),
64
- sticky: this.fb.control(column.sticky),
65
- stickyEnd: this.fb.control(column.stickyEnd),
66
- });
67
- default:
68
- throw new Error(`Unknown column type: ${column.type}`);
69
- }
70
- }
71
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ColumnsFormBuilder, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
72
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ColumnsFormBuilder, providedIn: 'root' }); }
73
- }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: ColumnsFormBuilder, decorators: [{
75
- type: Injectable,
76
- args: [{ providedIn: 'root' }]
77
- }] });
78
- export function injectColumnsForm() {
79
- return inject(ColumnsFormBuilder).build();
80
- }
81
- function buildColumn(nameOrAction, i, sticky, stickyEnd) {
82
- if (typeof nameOrAction === 'string') {
83
- if (nameOrAction === '__actions') {
84
- return {
85
- type: 'actions',
86
- name: `actions_${i}`,
87
- visible: true,
88
- width: 40,
89
- sticky,
90
- stickyEnd,
91
- };
92
- }
93
- else if (nameOrAction === '__checkbox') {
94
- return {
95
- type: 'checkbox',
96
- name: 'checkbox',
97
- visible: true,
98
- width: 24,
99
- sticky,
100
- stickyEnd,
101
- };
102
- }
103
- else if (nameOrAction.startsWith('__tree')) {
104
- return {
105
- type: 'tree',
106
- name: nameOrAction.split('__tree_')?.[1] ?? '__tree',
107
- visible: true,
108
- width: 240,
109
- sticky,
110
- stickyEnd,
111
- };
112
- }
113
- else {
114
- return {
115
- type: 'text',
116
- name: nameOrAction,
117
- visible: true,
118
- width: 100,
119
- sticky,
120
- stickyEnd,
121
- };
122
- }
123
- }
124
- else {
125
- return {
126
- type: 'actions',
127
- name: `actions_${i}`,
128
- visible: true,
129
- width: 40,
130
- sticky,
131
- stickyEnd,
132
- actions: wrapActions(nameOrAction),
133
- };
134
- }
135
- }
136
- export function buildColumns(columnIdOrActions, { stickyStart = 0, stickyEnd = 0, } = {}) {
137
- const columns = columnIdOrActions.map((columnIdOrAction, i) => {
138
- return buildColumn(columnIdOrAction, i, i < stickyStart, i >= columnIdOrActions.length - stickyEnd);
139
- });
140
- return {
141
- ids: columns.map((column) => column.name),
142
- map: columns.reduce((obj, column) => ({ ...obj, [column.name]: column }), {}),
143
- };
144
- }
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9mb3JtL2NvbHVtbnMvY29sdW1ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYSxXQUFXLEVBQXNDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hHLE9BQU8sRUFBVyxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUE0Q3ZELE1BQU0sT0FBTyxrQkFBa0I7SUFEL0I7UUFFcUIsT0FBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLENBQUM7S0FpRXpEO0lBL0RDLEtBQUssQ0FBQyxVQUE0QjtRQUNoQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDO1FBQ25CLEdBQUcsRUFBRTtZQUNILElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsTUFBZTtnQkFDckIsS0FBSyxFQUFFLEVBQUU7Z0JBQ1QsT0FBTyxFQUFFLElBQUk7YUFDZDtZQUNELEVBQUUsRUFBRTtnQkFDRixJQUFJLEVBQUUsTUFBTTtnQkFDWixLQUFLLEVBQUUsRUFBRTtnQkFDVCxPQUFPLEVBQUUsSUFBSTthQUNkO1NBQ0Y7S0FDRjtRQUNDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDbkIsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUN0RCxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENB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QUFnQixFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsV0FBVyxFQUFFLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUM7SUFDdEcsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPO1FBQ0wsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDekMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7S0FDNUUsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybVJlY29yZCwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQWN0aW9ucywgd3JhcEFjdGlvbnMgfSBmcm9tIFwiQG5nLWF0b21pYy9jb3JlXCI7XG5pbXBvcnQgeyBDb2x1bW4gfSBmcm9tIFwiQG5nLWF0b21pYy9jb21tb24vbW9kZWxzXCI7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbnNDb2x1bW5Gb3JtID0gRm9ybUdyb3VwPHtcbiAgdHlwZTogRm9ybUNvbnRyb2w8J2FjdGlvbnMnPixcbiAgdmlzaWJsZTogRm9ybUNvbnRyb2w8Ym9vbGVhbj4sXG4gIHdpZHRoOiBGb3JtQ29udHJvbDxudW1iZXI+LFxuICBhY3Rpb25zOiBGb3JtQ29udHJvbDxhbnk+LFxuICBzdGlja3k6IEZvcm1Db250cm9sPGJvb2xlYW4+LFxuICBzdGlja3lFbmQ6IEZvcm1Db250cm9sPGJvb2xlYW4+LFxufT47XG5cbmV4cG9ydCB0eXBlIENoZWNrYm94Q29sdW1uRm9ybSA9IEZvcm1Hcm91cDx7XG4gIHR5cGU6IEZvcm1Db250cm9sPCdjaGVja2JveCc+LFxuICB2aXNpYmxlOiBGb3JtQ29udHJvbDxib29sZWFuPixcbiAgd2lkdGg6IEZvcm1Db250cm9sPG51bWJlcj4sXG4gIHN0aWNreTogRm9ybUNvbnRyb2w8Ym9vbGVhbj4sXG4gIHN0aWNreUVuZDogRm9ybUNvbnRyb2w8Ym9vbGVhbj4sXG59PjtcblxuZXhwb3J0IHR5cGUgVGV4dENvbHVtbkZvcm0gPSBGb3JtR3JvdXA8e1xuICB0eXBlOiBGb3JtQ29udHJvbDwndGV4dCc+LFxuICB2aXNpYmxlOiBGb3JtQ29udHJvbDxib29sZWFuPixcbiAgd2lkdGg6IEZvcm1Db250cm9sPG51bWJlcj4sXG4gIHN0aWNreTogRm9ybUNvbnRyb2w8Ym9vbGVhbj4sXG4gIHN0aWNreUVuZDogRm9ybUNvbnRyb2w8Ym9vbGVhbj4sXG59PjtcblxuZXhwb3J0IHR5cGUgVHJlZUNvbHVtbkZvcm0gPSBGb3JtR3JvdXA8e1xuICB0eXBlOiBGb3JtQ29udHJvbDwndHJlZSc+LFxuICB2aXNpYmxlOiBGb3JtQ29udHJvbDxib29sZWFuPixcbiAgd2lkdGg6IEZvcm1Db250cm9sPG51bWJlcj4sXG4gIHN0aWNreTogRm9ybUNvbnRyb2w8Ym9vbGVhbj4sXG4gIHN0aWNreUVuZDogRm9ybUNvbnRyb2w8Ym9vbGVhbj4sXG59PjtcblxuZXhwb3J0IHR5cGUgQ29sdW1uc0Zvcm0gPSBGb3JtQXJyYXk8Rm9ybVJlY29yZDxBY3Rpb25zQ29sdW1uRm9ybSB8IENoZWNrYm94Q29sdW1uRm9ybSB8IFRleHRDb2x1bW5Gb3JtIHwgVHJlZUNvbHVtbkZvcm0+PjtcblxuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5zRm9ybVZhbHVlIHtcbiAgaWRzOiBzdHJpbmdbXSxcbiAgbWFwOiB7IFtrZXk6IHN0cmluZ106IENvbHVtbiB9LFxufVxuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBDb2x1bW5zRm9ybUJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpLm5vbk51bGxhYmxlO1xuXG4gIGJ1aWxkKGNvbHVtbnM6IENvbHVtbnNGb3JtVmFsdWUgPSB7XG4gICAgaWRzOiBbJ2lkJywgJ3VzZXInXSxcbiAgICBtYXA6IHtcbiAgICAgIHVzZXI6IHtcbiAgICAgICAgdHlwZTogJ3RleHQnIGFzIGNvbnN0LFxuICAgICAgICB3aWR0aDogODAsXG4gICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICB9LFxuICAgICAgaWQ6IHtcbiAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICB3aWR0aDogODAsXG4gICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pIHtcbiAgICByZXR1cm4gdGhpcy5mYi5ncm91cCh7XG4gICAgICBpZHM6IHRoaXMuZmIuY29udHJvbChjb2x1bW5zLmlkcywgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICBtYXA6IHRoaXMuZmIuZ3JvdXAoT2JqZWN0LmVudHJpZXMoY29sdW1ucy5tYXApLnJlZHVjZSgob2JqLCBba2V5LCB2YWx1ZV0pID0+ICh7XG4gICAgICAgIC4uLm9iaixcbiAgICAgICAgW2tleV06IHRoaXMuYnVpbGRDb2x1bW5Gb3JtKHZhbHVlKSxcbiAgICAgIH0pLCB7fSkpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkQ29sdW1uRm9ybShjb2x1bW46IENvbHVtbikge1xuICAgIHN3aXRjaCAoY29sdW1uLnR5cGUpIHtcbiAgICAgIGNhc2UgJ3RyZWUnOlxuICAgICAgICByZXR1cm4gdGhpcy5mYi5ncm91cCh7XG4gICAgICAgICAgdHlwZTogdGhpcy5mYi5jb250cm9sKHt2YWx1ZTogJ3RyZWUnIGFzIGNvbnN0LCBkaXNhYmxlZDogdHJ1ZX0pLFxuICAgICAgICAgIHZpc2libGU6IHRoaXMuZmIuY29udHJvbChjb2x1bW4udmlzaWJsZSksXG4gICAgICAgICAgd2lkdGg6IHRoaXMuZmIuY29udHJvbChjb2x1bW4ud2lkdGgpLFxuICAgICAgICAgIHN0aWNreTogdGhpcy5mYi5jb250cm9sKGNvbHVtbi5zdGlja3kpLFxuICAgICAgICAgIHN0aWNreUVuZDogdGhpcy5mYi5jb250cm9sKGNvbHVtbi5zdGlja3lFbmQpLFxuICAgICAgICB9KSBhcyBUcmVlQ29sdW1uRm9ybTtcbiAgICAgIGNhc2UgJ3RleHQnOiBcbiAgICAgICAgcmV0dXJuIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgIHR5cGU6IHRoaXMuZmIuY29udHJvbCh7dmFsdWU6ICd0ZXh0JyBhcyBjb25zdCwgZGlzYWJsZWQ6IHRydWV9KSxcbiAgICAgICAgICB2aXNpYmxlOiB0aGlzLmZiLmNvbnRyb2woY29sdW1uLnZpc2libGUpLFxuICAgICAgICAgIHdpZHRoOiB0aGlzLmZiLmNvbnRyb2woY29sdW1uLndpZHRoKSxcbiAgICAgICAgICBzdGlja3k6IHRoaXMuZmIuY29udHJvbChjb2x1bW4uc3RpY2t5KSxcbiAgICAgICAgICBzdGlja3lFbmQ6IHRoaXMuZmIuY29udHJvbChjb2x1bW4uc3RpY2t5RW5kKSxcbiAgICAgICAgfSkgYXMgVGV4dENvbHVtbkZvcm07XG4gICAgICBjYXNlICdjaGVja2JveCc6XG4gICAgICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAgICB0eXBlOiB0aGlzLmZiLmNvbnRyb2woe3ZhbHVlOiAnY2hlY2tib3gnIGFzIGNvbnN0LCBkaXNhYmxlZDogdHJ1ZX0pLFxuICAgICAgICAgIHZpc2libGU6IHRoaXMuZmIuY29udHJvbChjb2x1bW4udmlzaWJsZSksXG4gICAgICAgICAgd2lkdGg6IHRoaXMuZmIuY29udHJvbChjb2x1bW4ud2lkdGgpLFxuICAgICAgICAgIHN0aWNreTogdGhpcy5mYi5jb250cm9sKGNvbHVtbi5zdGlja3kpLFxuICAgICAgICAgIHN0aWNreUVuZDogdGhpcy5mYi5jb250cm9sKGNvbHVtbi5zdGlja3lFbmQpLFxuICAgICAgICB9KSBhcyBDaGVja2JveENvbHVtbkZvcm07XG4gICAgICBjYXNlICdhY3Rpb25zJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICAgIHR5cGU6IHRoaXMuZmIuY29udHJvbCh7dmFsdWU6ICdhY3Rpb25zJyBhcyBjb25zdCwgZGlzYWJsZWQ6IHRydWV9KSxcbiAgICAgICAgICB2aXNpYmxlOiB0aGlzLmZiLmNvbnRyb2woY29sdW1uLnZpc2libGUpLFxuICAgICAgICAgIHdpZHRoOiB0aGlzLmZiLmNvbnRyb2woY29sdW1uLndpZHRoKSxcbiAgICAgICAgICBhY3Rpb25zOiB0aGlzLmZiLmNvbnRyb2woY29sdW1uLmFjdGlvbnMpLFxuICAgICAgICAgIHN0aWNreTogdGhpcy5mYi5jb250cm9sKGNvbHVtbi5zdGlja3kpLFxuICAgICAgICAgIHN0aWNreUVuZDogdGhpcy5mYi5jb250cm9sKGNvbHVtbi5zdGlja3lFbmQpLFxuICAgICAgICB9KSBhcyBBY3Rpb25zQ29sdW1uRm9ybTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBjb2x1bW4gdHlwZTogJHsoY29sdW1uIGFzIGFueSkudHlwZX1gKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdENvbHVtbnNGb3JtKCkge1xuICByZXR1cm4gaW5qZWN0KENvbHVtbnNGb3JtQnVpbGRlcikuYnVpbGQoKTtcbn1cblxuZnVuY3Rpb24gYnVpbGRDb2x1bW4obmFtZU9yQWN0aW9uOiAoc3RyaW5nIHwgQWN0aW9ucyksIGk6IG51bWJlciwgc3RpY2t5OiBib29sZWFuLCBzdGlja3lFbmQ6IGJvb2xlYW4pOiBDb2x1bW4ge1xuICBpZiAodHlwZW9mIG5hbWVPckFjdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAobmFtZU9yQWN0aW9uID09PSAnX19hY3Rpb25zJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdHlwZTogJ2FjdGlvbnMnLFxuICAgICAgICBuYW1lOiBgYWN0aW9uc18ke2l9YCxcbiAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgd2lkdGg6IDQwLFxuICAgICAgICBzdGlja3ksXG4gICAgICAgIHN0aWNreUVuZCxcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5hbWVPckFjdGlvbiA9PT0gJ19fY2hlY2tib3gnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgICBuYW1lOiAnY2hlY2tib3gnLFxuICAgICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgICB3aWR0aDogMjQsXG4gICAgICAgIHN0aWNreSxcbiAgICAgICAgc3RpY2t5RW5kLFxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobmFtZU9yQWN0aW9uLnN0YXJ0c1dpdGgoJ19fdHJlZScpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiAndHJlZScsXG4gICAgICAgIG5hbWU6IG5hbWVPckFjdGlvbi5zcGxpdCgnX190cmVlXycpPy5bMV0gPz8gJ19fdHJlZScsXG4gICAgICAgIHZpc2libGU6IHRydWUsXG4gICAgICAgIHdpZHRoOiAyNDAsXG4gICAgICAgIHN0aWNreSxcbiAgICAgICAgc3RpY2t5RW5kLFxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgIG5hbWU6IG5hbWVPckFjdGlvbixcbiAgICAgICAgdmlzaWJsZTogdHJ1ZSxcbiAgICAgICAgd2lkdGg6IDEwMCxcbiAgICAgICAgc3RpY2t5LFxuICAgICAgICBzdGlja3lFbmQsXG4gICAgICB9O1xuICAgIH0gICAgICBcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ2FjdGlvbnMnLFxuICAgICAgbmFtZTogYGFjdGlvbnNfJHtpfWAsXG4gICAgICB2aXNpYmxlOiB0cnVlLFxuICAgICAgd2lkdGg6IDQwLFxuICAgICAgc3RpY2t5LFxuICAgICAgc3RpY2t5RW5kLFxuICAgICAgYWN0aW9uczogd3JhcEFjdGlvbnMobmFtZU9yQWN0aW9uKSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZENvbHVtbnMoY29sdW1uSWRPckFjdGlvbnM6IChzdHJpbmcgfCBBY3Rpb25zKVtdLCB7XG4gIHN0aWNreVN0YXJ0ID0gMCxcbiAgc3RpY2t5RW5kID0gMCxcbn06IHtcbiAgc3RpY2t5U3RhcnQ/OiBudW1iZXIsXG4gIHN0aWNreUVuZD86IG51bWJlcixcbn0gPSB7fSk6IHtpZHM6IHN0cmluZ1tdLCBtYXA6IHtba2V5OiBzdHJpbmddOiBDb2x1bW59fSB7XG4gIGNvbnN0IGNvbHVtbnMgPSBjb2x1bW5JZE9yQWN0aW9ucy5tYXAoKGNvbHVtbklkT3JBY3Rpb24sIGkpID0+IHtcbiAgICByZXR1cm4gYnVpbGRDb2x1bW4oY29sdW1uSWRPckFjdGlvbiwgaSwgaSA8IHN0aWNreVN0YXJ0LCBpID49IGNvbHVtbklkT3JBY3Rpb25zLmxlbmd0aCAtIHN0aWNreUVuZCk7XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGlkczogY29sdW1ucy5tYXAoKGNvbHVtbikgPT4gY29sdW1uLm5hbWUpLFxuICAgIG1hcDogY29sdW1ucy5yZWR1Y2UoKG9iaiwgY29sdW1uKSA9PiAoey4uLm9iaiwgW2NvbHVtbi5uYW1lXTogY29sdW1ufSksIHt9KSxcbiAgfTtcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './columns.service';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2Zvcm0vY29sdW1ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb2x1bW5zLnNlcnZpY2UnOyJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zZXJ2aWNlcy1mb3JtLWNvbHVtbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2Zvcm0vY29sdW1ucy9uZy1hdG9taWMtY29tbW9uLXNlcnZpY2VzLWZvcm0tY29sdW1ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,38 +0,0 @@
1
- import { toObject, isIsoString } from '@ng-atomic/common/utils';
2
- import dayjs from 'dayjs';
3
- import { unflatten, flatten } from 'flat';
4
- import { omit, pick } from 'lodash-es';
5
- const isNumeric = (v) => !isNaN(Number(v));
6
- const parseQueryString = (v, key) => key.match(/id$/i)
7
- ? v
8
- : typeof v === 'string' && isIsoString(v)
9
- ? dayjs(v)
10
- : v === ''
11
- ? v
12
- : isNumeric(v)
13
- ? Number(v)
14
- : v;
15
- export class BaseFormService {
16
- static fromQueryParams(obj) {
17
- return Object.entries(unflatten(obj)?.form ?? {}).reduce((m, [k, v]) => ({
18
- ...m, [k]: parseQueryString(v, k),
19
- }), {});
20
- }
21
- static toQueryParams(obj) {
22
- return flatten({ form: Object.entries(obj).reduce((m, [k, v]) => ({
23
- ...m, [k]: dayjs.isDayjs(v) ? v.isValid() ? v.toISOString() : null : v,
24
- }), {}) });
25
- }
26
- static dayjsKeys(object) {
27
- return Object.entries(object).filter(([_, v]) => dayjs.isDayjs(v)).map(([k]) => k);
28
- }
29
- static toValue(object) {
30
- const keys = this.dayjsKeys(object);
31
- return { ...flatten(omit(toObject(object), keys)), ...pick(toObject(object), keys) };
32
- }
33
- static fromValue(value) {
34
- const keys = this.dayjsKeys(value);
35
- return { ...unflatten(omit(value, keys)), ...pick(value, keys) };
36
- }
37
- }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9mb3JtL2Zvcm0uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUV2QyxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQVMsRUFBVyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFNUQsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLENBQVMsRUFBRSxHQUFXLEVBQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ3pFLENBQUMsQ0FBQyxDQUFDO0lBQ0gsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFO1lBQ1YsQ0FBQyxDQUFDLENBQUM7WUFDSCxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDZCxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDWCxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRU4sTUFBTSxPQUFPLGVBQWU7SUFDMUIsTUFBTSxDQUFDLGVBQWUsQ0FBSSxHQUFNO1FBQzlCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBRSxTQUFTLENBQUMsR0FBRyxDQUFTLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQW1CLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbEcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2xDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFJLEdBQVc7UUFDakMsT0FBTyxPQUFPLENBQUMsRUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQy9ELEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN2RSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBYztRQUM3QixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFjO1FBQzNCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsT0FBTyxFQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQztJQUNyRixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFhO1FBQzVCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsT0FBTyxFQUFDLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUMsQ0FBQztJQUNqRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0b09iamVjdCwgaXNJc29TdHJpbmcgfSBmcm9tICdAbmctYXRvbWljL2NvbW1vbi91dGlscyc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgdW5mbGF0dGVuLCBmbGF0dGVuIH0gZnJvbSAnZmxhdCc7XG5pbXBvcnQgeyBvbWl0LCBwaWNrIH0gZnJvbSAnbG9kYXNoLWVzJztcblxuY29uc3QgaXNOdW1lcmljID0gKHY6IHN0cmluZyk6IGJvb2xlYW4gPT4gIWlzTmFOKE51bWJlcih2KSk7XG5cbmNvbnN0IHBhcnNlUXVlcnlTdHJpbmcgPSAodjogc3RyaW5nLCBrZXk6IHN0cmluZyk6IGFueSA9PiBrZXkubWF0Y2goL2lkJC9pKSBcbiAgPyB2XG4gIDogdHlwZW9mIHYgPT09ICdzdHJpbmcnICYmIGlzSXNvU3RyaW5nKHYpIFxuICA/IGRheWpzKHYpIFxuICA6IHYgPT09ICcnXG4gID8gdlxuICA6IGlzTnVtZXJpYyh2KVxuICA/IE51bWJlcih2KVxuICA6IHY7XG5cbmV4cG9ydCBjbGFzcyBCYXNlRm9ybVNlcnZpY2Uge1xuICBzdGF0aWMgZnJvbVF1ZXJ5UGFyYW1zPFQ+KG9iajogVCk6IG9iamVjdCB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKCh1bmZsYXR0ZW4ob2JqKSBhcyBhbnkpPy5mb3JtID8/IHt9KS5yZWR1Y2UoKG0sIFtrLCB2XTogW3N0cmluZywgc3RyaW5nXSkgPT4gKHtcbiAgICAgIC4uLm0sIFtrXTogcGFyc2VRdWVyeVN0cmluZyh2LCBrKSxcbiAgICB9KSwge30pO1xuICB9XG5cbiAgc3RhdGljIHRvUXVlcnlQYXJhbXM8VD4ob2JqOiBvYmplY3QpOiBUIHsgICAgXG4gICAgcmV0dXJuIGZsYXR0ZW4oe2Zvcm06IE9iamVjdC5lbnRyaWVzKG9iaikucmVkdWNlKChtLCBbaywgdl0pID0+ICh7XG4gICAgICAuLi5tLCBba106IGRheWpzLmlzRGF5anModikgPyB2LmlzVmFsaWQoKSA/IHYudG9JU09TdHJpbmcoKSA6IG51bGwgOiB2LFxuICAgIH0pLCB7fSl9KTtcbiAgfVxuXG4gIHN0YXRpYyBkYXlqc0tleXMob2JqZWN0OiBvYmplY3QpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKG9iamVjdCkuZmlsdGVyKChbXywgdl0pID0+IGRheWpzLmlzRGF5anModikpLm1hcCgoW2tdKSA9PiBrKTtcbiAgfVxuXG4gIHN0YXRpYyB0b1ZhbHVlKG9iamVjdDogb2JqZWN0KTogb2JqZWN0IHtcbiAgICBjb25zdCBrZXlzID0gdGhpcy5kYXlqc0tleXMob2JqZWN0KTtcbiAgICByZXR1cm4gey4uLmZsYXR0ZW4ob21pdCh0b09iamVjdChvYmplY3QpLCBrZXlzKSksIC4uLnBpY2sodG9PYmplY3Qob2JqZWN0KSwga2V5cyl9O1xuICB9XG5cbiAgc3RhdGljIGZyb21WYWx1ZSh2YWx1ZTogb2JqZWN0KTogb2JqZWN0IHtcbiAgICBjb25zdCBrZXlzID0gdGhpcy5kYXlqc0tleXModmFsdWUpO1xuICAgIHJldHVybiB7Li4udW5mbGF0dGVuKG9taXQodmFsdWUsIGtleXMpKSwgLi4ucGljayh2YWx1ZSwga2V5cyl9O1xuICB9XG59Il19
@@ -1,2 +0,0 @@
1
- export * from './form.service';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2Zvcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9ybS5zZXJ2aWNlJztcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './json-schema.service';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2Zvcm0vanNvbi1zY2hlbWEvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vanNvbi1zY2hlbWEuc2VydmljZSc7Il19
@@ -1,51 +0,0 @@
1
- import { ValidationTypes } from "class-validator";
2
- import { targetConstructorToSchema as _targetConstructorToSchema } from "class-validator-jsonschema";
3
- // TODO(@NozomuMiyamoto): fix
4
- // @ts-ignore
5
- // const { defaultMetadataStorage } = require('class-transformer/cjs/storage');
6
- import { defaultMetadataStorage } from 'class-transformer/esm5/storage';
7
- function getPropType(target, property) {
8
- return Reflect.getMetadata('design:type', target, property);
9
- }
10
- function targetToSchema(type, options) {
11
- if (typeof type === 'function') {
12
- if (type.prototype === String.prototype ||
13
- type.prototype === Symbol.prototype) {
14
- return { type: 'string' };
15
- }
16
- else if (type.prototype === Number.prototype) {
17
- return { type: 'number' };
18
- }
19
- else if (type.prototype === Boolean.prototype) {
20
- return { type: 'boolean' };
21
- }
22
- return targetConstructorToSchema(type, options);
23
- }
24
- }
25
- const additionalConverters = {
26
- [ValidationTypes.NESTED_VALIDATION]: (meta, options) => {
27
- if (typeof meta.target === 'function') {
28
- const typeMeta = options.classTransformerMetadataStorage
29
- ? options.classTransformerMetadataStorage.findTypeMetadata(meta.target, meta.propertyName)
30
- : null;
31
- const childType = typeMeta
32
- ? typeMeta.typeFunction()
33
- : getPropType(meta.target.prototype, meta.propertyName);
34
- return targetToSchema(childType, options);
35
- }
36
- },
37
- isDayjs: (meta) => {
38
- return {
39
- type: 'string',
40
- format: 'date-time', // JSON Schemaで日付型を指定
41
- };
42
- },
43
- };
44
- export function targetConstructorToSchema(target, options = {}) {
45
- return _targetConstructorToSchema(target, {
46
- ...options,
47
- additionalConverters,
48
- classTransformerMetadataStorage: defaultMetadataStorage,
49
- });
50
- }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1zY2hlbWEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2Zvcm0vanNvbi1zY2hlbWEvanNvbi1zY2hlbWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ2pELE9BQU8sRUFBRSx5QkFBeUIsSUFBSSwwQkFBMEIsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBR3BHLDZCQUE2QjtBQUM3QixhQUFhO0FBQ2IsK0VBQStFO0FBQy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXhFLFNBQVMsV0FBVyxDQUFDLE1BQWMsRUFBRSxRQUFnQjtJQUNuRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQTtBQUM3RCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQ3JCLElBQVMsRUFDVCxPQUFZO0lBRVosSUFBSSxPQUFPLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMvQixJQUNFLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLFNBQVM7WUFDbkMsSUFBSSxDQUFDLFNBQVMsS0FBSyxNQUFNLENBQUMsU0FBUyxFQUNuQyxDQUFDO1lBQ0QsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQTtRQUMzQixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFBO1FBQzNCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hELE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUE7UUFDNUIsQ0FBQztRQUVELE9BQU8seUJBQXlCLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ2pELENBQUM7QUFDSCxDQUFDO0FBRUQsTUFBTSxvQkFBb0IsR0FBRTtJQUMxQixDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsSUFBUyxFQUFFLE9BQVksRUFBRSxFQUFFO1FBQy9ELElBQUksT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQywrQkFBK0I7Z0JBQ3RELENBQUMsQ0FBQyxPQUFPLENBQUMsK0JBQStCLENBQUMsZ0JBQWdCLENBQ3RELElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLFlBQVksQ0FDbEI7Z0JBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQTtZQUNSLE1BQU0sU0FBUyxHQUFHLFFBQVE7Z0JBQ3hCLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFO2dCQUN6QixDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtZQUN6RCxPQUFPLGNBQWMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDM0MsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFTLEVBQWUsRUFBRTtRQUNsQyxPQUFPO1lBQ0wsSUFBSSxFQUFFLFFBQVE7WUFDZCxNQUFNLEVBQUUsV0FBVyxFQUFFLHFCQUFxQjtTQUMzQyxDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUM7QUFFRixNQUFNLFVBQVUseUJBQXlCLENBQUMsTUFBZ0IsRUFBRSxVQUE2QixFQUFFO0lBQ3pGLE9BQU8sMEJBQTBCLENBQUMsTUFBTSxFQUFFO1FBQ3hDLEdBQUcsT0FBTztRQUNWLG9CQUFvQjtRQUNwQiwrQkFBK0IsRUFBRSxzQkFBc0I7S0FDeEQsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRpb25UeXBlcyB9IGZyb20gXCJjbGFzcy12YWxpZGF0b3JcIlxuaW1wb3J0IHsgdGFyZ2V0Q29uc3RydWN0b3JUb1NjaGVtYSBhcyBfdGFyZ2V0Q29uc3RydWN0b3JUb1NjaGVtYSB9IGZyb20gXCJjbGFzcy12YWxpZGF0b3ItanNvbnNjaGVtYVwiXG5pbXBvcnQgeyBJT3B0aW9ucyB9IGZyb20gXCJjbGFzcy12YWxpZGF0b3ItanNvbnNjaGVtYS9idWlsZC9vcHRpb25zXCI7XG5pbXBvcnQgeyBKU09OU2NoZW1hNyB9IGZyb20gJ2pzb24tc2NoZW1hJztcbi8vIFRPRE8oQE5vem9tdU1peWFtb3RvKTogZml4XG4vLyBAdHMtaWdub3JlXG4vLyBjb25zdCB7IGRlZmF1bHRNZXRhZGF0YVN0b3JhZ2UgfSA9IHJlcXVpcmUoJ2NsYXNzLXRyYW5zZm9ybWVyL2Nqcy9zdG9yYWdlJyk7XG5pbXBvcnQgeyBkZWZhdWx0TWV0YWRhdGFTdG9yYWdlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXIvZXNtNS9zdG9yYWdlJztcblxuZnVuY3Rpb24gZ2V0UHJvcFR5cGUodGFyZ2V0OiBvYmplY3QsIHByb3BlcnR5OiBzdHJpbmcpIHtcbiAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoJ2Rlc2lnbjp0eXBlJywgdGFyZ2V0LCBwcm9wZXJ0eSlcbn1cblxuZnVuY3Rpb24gdGFyZ2V0VG9TY2hlbWEoXG4gIHR5cGU6IGFueSxcbiAgb3B0aW9uczogYW55XG4pOiBhbnkge1xuICBpZiAodHlwZW9mIHR5cGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoXG4gICAgICB0eXBlLnByb3RvdHlwZSA9PT0gU3RyaW5nLnByb3RvdHlwZSB8fFxuICAgICAgdHlwZS5wcm90b3R5cGUgPT09IFN5bWJvbC5wcm90b3R5cGVcbiAgICApIHtcbiAgICAgIHJldHVybiB7IHR5cGU6ICdzdHJpbmcnIH1cbiAgICB9IGVsc2UgaWYgKHR5cGUucHJvdG90eXBlID09PSBOdW1iZXIucHJvdG90eXBlKSB7XG4gICAgICByZXR1cm4geyB0eXBlOiAnbnVtYmVyJyB9XG4gICAgfSBlbHNlIGlmICh0eXBlLnByb3RvdHlwZSA9PT0gQm9vbGVhbi5wcm90b3R5cGUpIHtcbiAgICAgIHJldHVybiB7IHR5cGU6ICdib29sZWFuJyB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRhcmdldENvbnN0cnVjdG9yVG9TY2hlbWEodHlwZSwgb3B0aW9ucylcbiAgfVxufVxuXG5jb25zdCBhZGRpdGlvbmFsQ29udmVydGVycz0ge1xuICBbVmFsaWRhdGlvblR5cGVzLk5FU1RFRF9WQUxJREFUSU9OXTogKG1ldGE6IGFueSwgb3B0aW9uczogYW55KSA9PiB7XG4gICAgaWYgKHR5cGVvZiBtZXRhLnRhcmdldCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgY29uc3QgdHlwZU1ldGEgPSBvcHRpb25zLmNsYXNzVHJhbnNmb3JtZXJNZXRhZGF0YVN0b3JhZ2VcbiAgICAgICAgPyBvcHRpb25zLmNsYXNzVHJhbnNmb3JtZXJNZXRhZGF0YVN0b3JhZ2UuZmluZFR5cGVNZXRhZGF0YShcbiAgICAgICAgICAgIG1ldGEudGFyZ2V0LFxuICAgICAgICAgICAgbWV0YS5wcm9wZXJ0eU5hbWVcbiAgICAgICAgICApXG4gICAgICAgIDogbnVsbFxuICAgICAgY29uc3QgY2hpbGRUeXBlID0gdHlwZU1ldGFcbiAgICAgICAgPyB0eXBlTWV0YS50eXBlRnVuY3Rpb24oKVxuICAgICAgICA6IGdldFByb3BUeXBlKG1ldGEudGFyZ2V0LnByb3RvdHlwZSwgbWV0YS5wcm9wZXJ0eU5hbWUpXG4gICAgICByZXR1cm4gdGFyZ2V0VG9TY2hlbWEoY2hpbGRUeXBlLCBvcHRpb25zKVxuICAgIH1cbiAgfSxcbiAgaXNEYXlqczogKG1ldGE6IGFueSk6IEpTT05TY2hlbWE3ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICBmb3JtYXQ6ICdkYXRlLXRpbWUnLCAvLyBKU09OIFNjaGVtYeOBp+aXpeS7mOWei+OCkuaMh+WumlxuICAgIH07XG4gIH0sXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gdGFyZ2V0Q29uc3RydWN0b3JUb1NjaGVtYSh0YXJnZXQ6IEZ1bmN0aW9uLCBvcHRpb25zOiBQYXJ0aWFsPElPcHRpb25zPiA9IHt9KSB7XG4gIHJldHVybiBfdGFyZ2V0Q29uc3RydWN0b3JUb1NjaGVtYSh0YXJnZXQsIHtcbiAgICAuLi5vcHRpb25zLFxuICAgIGFkZGl0aW9uYWxDb252ZXJ0ZXJzLFxuICAgIGNsYXNzVHJhbnNmb3JtZXJNZXRhZGF0YVN0b3JhZ2U6IGRlZmF1bHRNZXRhZGF0YVN0b3JhZ2UsXG4gIH0pO1xufVxuIl19
@@ -1,178 +0,0 @@
1
- import { Injectable, inject } from "@angular/core";
2
- import { FormBuilder, Validators } from "@angular/forms";
3
- import { targetConstructorToSchema } from './json-schema';
4
- import { merge } from "lodash-es";
5
- import * as i0 from "@angular/core";
6
- export class JsonSchemaFormUtils {
7
- static removeObjectPercent(value) {
8
- return Object.entries(value).reduce((acc, [key, value]) => {
9
- if (typeof value === 'string' && value.startsWith('%') && value.endsWith('%')) {
10
- acc[key] = value.slice(1, -1);
11
- }
12
- else if (typeof value === 'string' && value.startsWith('%')) {
13
- acc[key] = value.slice(1);
14
- }
15
- else if (typeof value === 'string' && value.endsWith('%')) {
16
- acc[key] = value.slice(0, -1);
17
- }
18
- else {
19
- acc[key] = value;
20
- }
21
- return acc;
22
- }, {});
23
- }
24
- static buildFormGroupByJsonSchema(schema, { fb = inject(FormBuilder).nonNullable, value = {}, } = {}) {
25
- console.debug('[buildFormGroupByJsonSchema] schema:', schema);
26
- if (!schema || !schema?.properties) {
27
- return fb.group({});
28
- }
29
- const group = {};
30
- for (const key in schema.properties) {
31
- const property = schema.properties[key];
32
- const validators = [];
33
- if (schema.required && schema.required.includes(key) && !property.nullable) {
34
- validators.push(Validators.required);
35
- }
36
- group[key] = this.buildFormByJsonSchemaProperty(property, { fb, value: value?.[key], validators });
37
- // MEMO(@NozomuMiyamoto): Arrayなら追加用のダミーコントロールを追加する
38
- if (property.type === 'array') {
39
- group[`${key}__add_action`] = fb.control(property);
40
- }
41
- }
42
- return fb.group(group);
43
- }
44
- static buildFormArrayByJsonSchema(schema, { fb = inject(FormBuilder).nonNullable, value = [], } = {}) {
45
- if (!schema || !schema.items) {
46
- return fb.array([]);
47
- }
48
- console.debug('[buildFormArrayByJsonSchema] schema:', schema);
49
- const formArray = fb.array([
50
- this.buildFormGroupByJsonSchema(schema.items, { fb }),
51
- ]);
52
- return formArray;
53
- }
54
- static buildFormByJsonSchemaProperty(property, { fb = inject(FormBuilder).nonNullable, value = null, validators = [], } = {}) {
55
- switch (property.type) {
56
- case 'string': switch (property.format) {
57
- case 'date':
58
- case 'date-time':
59
- return fb.control(value ?? property.default ?? null, { nonNullable: !property.nullable, validators });
60
- case 'binary':
61
- return fb.control(value ?? property.default ?? null, { nonNullable: !property.nullable, validators });
62
- case 'email':
63
- return fb.control(value ?? property.default ?? '', {
64
- nonNullable: !property.nullable,
65
- validators: [...validators, Validators.email],
66
- });
67
- default:
68
- return fb.control(value ?? property.default ?? '', { nonNullable: !property.nullable, validators });
69
- }
70
- case 'boolean':
71
- return fb.control(value ?? property.default ?? false, { nonNullable: !property.nullable, validators });
72
- case 'integer':
73
- return fb.control(value ?? property.default ?? 0, { nonNullable: !property.nullable, validators });
74
- case 'number':
75
- return fb.control(value ?? property.default ?? 0, { nonNullable: !property.nullable, validators });
76
- case 'object':
77
- return this.buildFormGroupByJsonSchema(property, { fb, value });
78
- case 'array':
79
- return this.buildFormArrayByJsonSchema(property, { fb, value: value });
80
- }
81
- }
82
- static buildFormByJsonSchema(schema, { fb = inject(FormBuilder).nonNullable, value = {}, fieldMap = {}, } = {}) {
83
- return {
84
- form: this.buildFormGroupByJsonSchema(schema, { fb, value }),
85
- fieldMap: this.buildFormFieldMapByJsonSchema(schema, { merge: fieldMap }),
86
- };
87
- }
88
- static buildFormFieldByProperty(property) {
89
- switch (property.type) {
90
- case 'string': {
91
- if (property.enum) {
92
- return { type: 'select', options: property.enum.map((v) => ({ value: v, name: v })) };
93
- }
94
- else if (['date-time', 'date'].includes(property.format)) {
95
- return { type: 'date' };
96
- }
97
- else if (property.format === 'binary') {
98
- return { type: 'file' };
99
- }
100
- else {
101
- return { type: 'text' };
102
- }
103
- }
104
- case 'boolean': return { type: 'select', options: [{ value: true, name: 'はい' }, { value: false, name: 'いいえ' }] };
105
- case 'integer': return { type: 'number' };
106
- case 'number': return { type: 'number' };
107
- default: return { type: property.type };
108
- }
109
- }
110
- static buildFormFieldMapByJsonSchema(schema, options = {}) {
111
- if (!schema || !schema.properties) {
112
- return {
113
- id: { type: 'hidden' },
114
- };
115
- }
116
- const fieldMap = {};
117
- for (const key in schema.properties) {
118
- const property = schema.properties[key];
119
- switch (property.type) {
120
- case 'object': {
121
- const childFieldMap = this.buildFormFieldMapByJsonSchema(property, options);
122
- for (const childKey in childFieldMap) {
123
- fieldMap[`${key}.${childKey}`] = childFieldMap[childKey];
124
- }
125
- break;
126
- }
127
- case 'array': {
128
- const childFieldMap = this.buildFormFieldMapByJsonSchema(property.items, options);
129
- for (const childKey in childFieldMap) {
130
- // TODO: 正規表現でパスマッチを判定できるようにする。
131
- fieldMap[`${key}.\\d+.${childKey}`] = childFieldMap[childKey];
132
- }
133
- break;
134
- }
135
- default: {
136
- fieldMap[key] = this.buildFormFieldByProperty(property);
137
- }
138
- }
139
- }
140
- console.debug('[buildFormFieldMapByJsonSchema] fieldMap:', fieldMap);
141
- console.debug('[buildFormFieldMapByJsonSchema] options.merge:', options.merge);
142
- return { ...fieldMap, ...options.merge };
143
- }
144
- }
145
- export function buildFormGroup(klass, { fb = inject(FormBuilder).nonNullable, value, }) {
146
- const schema = targetConstructorToSchema(klass);
147
- return JsonSchemaFormUtils.buildFormGroupByJsonSchema(schema, { fb, value });
148
- }
149
- export function buildFormFieldMap(klass, options) {
150
- const schema = targetConstructorToSchema(klass);
151
- const map = JsonSchemaFormUtils.buildFormFieldMapByJsonSchema(schema, options);
152
- return merge(map, options.merge);
153
- }
154
- export function buildForm(klass, { fb = inject(FormBuilder).nonNullable, value = {}, fieldMap = {}, } = {}) {
155
- const schema = targetConstructorToSchema(klass);
156
- return {
157
- form: JsonSchemaFormUtils.buildFormGroupByJsonSchema(schema, { fb, value }),
158
- fieldMap: JsonSchemaFormUtils.buildFormFieldMapByJsonSchema(schema, { merge: fieldMap }),
159
- };
160
- }
161
- export class JsonSchemaFormService {
162
- constructor() {
163
- this.fb = inject(FormBuilder);
164
- }
165
- build(schema, { fb = this.fb, value = {}, } = {}) {
166
- return JsonSchemaFormUtils.buildFormGroupByJsonSchema(schema, { fb, value });
167
- }
168
- buildFieldMap(schema, options = {}) {
169
- return JsonSchemaFormUtils.buildFormFieldMapByJsonSchema(schema, options);
170
- }
171
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: JsonSchemaFormService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
172
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: JsonSchemaFormService, providedIn: 'root' }); }
173
- }
174
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: JsonSchemaFormService, decorators: [{
175
- type: Injectable,
176
- args: [{ providedIn: 'root' }]
177
- }] });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1zY2hlbWEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BuZy1hdG9taWMvY29tbW9uL3NyYy9saWIvc2VydmljZXMvZm9ybS9qc29uLXNjaGVtYS9qc29uLXNjaGVtYS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQXFDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUdsQyxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBbUIsS0FBUTtRQUNuRCxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDeEQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzlFLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLENBQUM7aUJBQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM5RCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1QixDQUFDO2lCQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDNUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDbkIsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVELE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxNQUFrQixFQUFFLEVBQ3BELEVBQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxFQUNwQyxLQUFLLEdBQUcsRUFBRSxNQUlSLEVBQUU7UUFDSixPQUFPLENBQUMsS0FBSyxDQUFDLHNDQUFzQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLENBQUM7WUFDbkMsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7UUFDRCxNQUFNLEtBQUssR0FBUSxFQUFFLENBQUM7UUFFdEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QyxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7WUFFdEIsSUFBSSxNQUFNLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUMzRSxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2QyxDQUFDO1lBQ0QsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRLEVBQUUsRUFBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFVBQVUsRUFBQyxDQUFDLENBQUM7WUFDakcsbURBQW1EO1lBQ25ELElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDOUIsS0FBSyxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JELENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxNQUFNLENBQUMsMEJBQTBCLENBQUMsTUFBa0IsRUFBRSxFQUNwRCxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFdBQVcsRUFDcEMsS0FBSyxHQUFHLEVBQUUsTUFJUixFQUFFO1FBQ0osSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3QixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsQ0FBQztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsc0NBQXNDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDOUQsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN6QixJQUFJLENBQUMsMEJBQTBCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFDLEVBQUUsRUFBQyxDQUFDO1NBQ3BELENBQUMsQ0FBQztRQUNILE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxNQUFNLENBQUMsNkJBQTZCLENBQUMsUUFBb0IsRUFBRSxFQUN6RCxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFdBQVcsRUFDcEMsS0FBSyxHQUFHLElBQUksRUFDWixVQUFVLEdBQUcsRUFBRSxNQUtiLEVBQUU7UUFDSixRQUFRLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN0QixLQUFLLFFBQVEsQ0FBQyxDQUFDLFFBQVEsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN2QyxLQUFLLE1BQU0sQ0FBQztnQkFDWixLQUFLLFdBQVc7b0JBQ2QsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxRQUFRLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDeEcsS0FBSyxRQUFRO29CQUNYLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hHLEtBQUssT0FBTztvQkFDVixPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFO3dCQUNqRCxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUTt3QkFDL0IsVUFBVSxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQztxQkFDOUMsQ0FBQyxDQUFDO2dCQUNMO29CQUNFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDeEcsQ0FBQztZQUNELEtBQUssU0FBUztnQkFDWixPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksS0FBSyxFQUFFLEVBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO1lBQ3ZHLEtBQUssU0FBUztnQkFDWixPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFFLEVBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO1lBQ25HLEtBQUssUUFBUTtnQkFDWCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUFFLEVBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUMsQ0FBQyxDQUFDO1lBQ25HLEtBQUssUUFBUTtnQkFDWCxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsRUFBQyxFQUFFLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztZQUNoRSxLQUFLLE9BQU87Z0JBQ1YsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsUUFBUSxFQUFFLEVBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFjLEVBQUMsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7SUFDSCxDQUFDO0lBR0QsTUFBTSxDQUFDLHFCQUFxQixDQUFDLE1BQWtCLEVBQUUsRUFDL0MsRUFBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLEVBQ3BDLEtBQUssR0FBRyxFQUFFLEVBQ1YsUUFBUSxHQUFHLEVBQUUsTUFLWCxFQUFFO1FBQ0osT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsMEJBQTBCLENBQUMsTUFBTSxFQUFFLEVBQUMsRUFBRSxFQUFFLEtBQUssRUFBQyxDQUFDO1lBQzFELFFBQVEsRUFBRSxJQUFJLENBQUMsNkJBQTZCLENBQUMsTUFBTSxFQUFFLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBQyxDQUFDO1NBQ3hFLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxDQUFDLHdCQUF3QixDQUFDLFFBQWtDO1FBQ2hFLFFBQVEsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3RCLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDZCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDbEIsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hHLENBQUM7cUJBQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQzNELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQzFCLENBQUM7cUJBQU0sSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUN4QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUMxQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDMUIsQ0FBQztZQUNILENBQUM7WUFDRCxLQUFLLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDakgsS0FBSyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQzFDLEtBQUssUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUN6QyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyw2QkFBNkIsQ0FDbEMsTUFBa0IsRUFDbEIsVUFFSSxFQUFFO1FBRU4sSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQyxPQUFPO2dCQUNMLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7YUFDdkIsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLFFBQVEsR0FBUSxFQUFFLENBQUM7UUFFekIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QyxRQUFRLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdEIsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDO29CQUNkLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBQzVFLEtBQUssTUFBTSxRQUFRLElBQUksYUFBYSxFQUFFLENBQUM7d0JBQ3JDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDM0QsQ0FBQztvQkFDRCxNQUFNO2dCQUNSLENBQUM7Z0JBQ0QsS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUNiLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO29CQUNsRixLQUFLLE1BQU0sUUFBUSxJQUFJLGFBQWEsRUFBRSxDQUFDO3dCQUNyQywrQkFBK0I7d0JBQy9CLFFBQVEsQ0FBQyxHQUFHLEdBQUcsU0FBUyxRQUFRLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDaEUsQ0FBQztvQkFDRCxNQUFNO2dCQUNSLENBQUM7Z0JBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztvQkFDUixRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMxRCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0RBQWdELEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9FLE9BQU8sRUFBQyxHQUFHLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUMsQ0FBQztJQUN6QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQW1CLEVBQUUsRUFDbEQsRUFBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLEVBQ3BDLEtBQUssR0FJTjtJQUNDLE1BQU0sTUFBTSxHQUFHLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELE9BQU8sbUJBQW1CLENBQUMsMEJBQTBCLENBQUMsTUFBTSxFQUFFLEVBQUMsRUFBRSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUdELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFtQixFQUFFLE9BRXREO0lBQ0MsTUFBTSxNQUFNLEdBQUcseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsTUFBTSxHQUFHLEdBQUcsbUJBQW1CLENBQUMsNkJBQTZCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9FLE9BQU8sS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBbUIsRUFBRSxFQUM3QyxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFdBQVcsRUFDcEMsS0FBSyxHQUFHLEVBQUUsRUFDVixRQUFRLEdBQUcsRUFBRSxNQUtYLEVBQUU7SUFDSixNQUFNLE1BQU0sR0FBRyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLG1CQUFtQixDQUFDLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxFQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUMsQ0FBQztRQUN6RSxRQUFRLEVBQUUsbUJBQW1CLENBQUMsNkJBQTZCLENBQUMsTUFBTSxFQUFFLEVBQUMsS0FBSyxFQUFFLFFBQVEsRUFBQyxDQUFDO0tBQ3ZGLENBQUM7QUFDSixDQUFDO0FBSUQsTUFBTSxPQUFPLHFCQUFxQjtJQURsQztRQUVVLE9BQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FvQmxDO0lBbEJDLEtBQUssQ0FBQyxNQUFrQixFQUFFLEVBQ3hCLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxFQUNaLEtBQUssR0FBRyxFQUFFLE1BSVIsRUFBRTtRQUNKLE9BQU8sbUJBQW1CLENBQUMsMEJBQTBCLENBQUMsTUFBTSxFQUFFLEVBQUMsRUFBRSxFQUFFLEtBQUssRUFBQyxDQUFDLENBQUM7SUFDN0UsQ0FBQztJQUVELGFBQWEsQ0FDWCxNQUFrQixFQUNsQixVQUVJLEVBQUU7UUFFTixPQUFPLG1CQUFtQixDQUFDLDZCQUE2QixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RSxDQUFDOzhHQXBCVSxxQkFBcUI7a0hBQXJCLHFCQUFxQixjQURSLE1BQU07OzJGQUNuQixxQkFBcUI7a0JBRGpDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IEpzb25TY2hlbWEgfSBmcm9tIFwianNvbi1zY2hlbWEtbGlicmFyeVwiO1xuaW1wb3J0IHsgdGFyZ2V0Q29uc3RydWN0b3JUb1NjaGVtYSB9IGZyb20gJy4vanNvbi1zY2hlbWEnO1xuaW1wb3J0IHsgbWVyZ2UgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBGb3JtRmllbGRNYXAgfSBmcm9tIFwiQG5nLWF0b21pYy9jb21tb24vcGlwZXMvc21hcnQtZmllbGRcIjtcblxuZXhwb3J0IGNsYXNzIEpzb25TY2hlbWFGb3JtVXRpbHMge1xuICBzdGF0aWMgcmVtb3ZlT2JqZWN0UGVyY2VudDxUIGV4dGVuZHMgb2JqZWN0Pih2YWx1ZTogVCk6IGFueSB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHZhbHVlKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5zdGFydHNXaXRoKCclJykgJiYgdmFsdWUuZW5kc1dpdGgoJyUnKSkge1xuICAgICAgICBhY2Nba2V5XSA9IHZhbHVlLnNsaWNlKDEsIC0xKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5zdGFydHNXaXRoKCclJykpIHtcbiAgICAgICAgYWNjW2tleV0gPSB2YWx1ZS5zbGljZSgxKTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS5lbmRzV2l0aCgnJScpKSB7XG4gICAgICAgIGFjY1trZXldID0gdmFsdWUuc2xpY2UoMCwgLTEpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWNjW2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuICB9XG5cbiAgc3RhdGljIGJ1aWxkRm9ybUdyb3VwQnlKc29uU2NoZW1hKHNjaGVtYTogSnNvblNjaGVtYSwge1xuICAgIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKS5ub25OdWxsYWJsZSxcbiAgICB2YWx1ZSA9IHt9LFxuICB9OiB7XG4gICAgZmI/OiBGb3JtQnVpbGRlciB8IE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsXG4gICAgdmFsdWU/OiBvYmplY3QsXG4gIH0gPSB7fSk6IEZvcm1Hcm91cCB7XG4gICAgY29uc29sZS5kZWJ1ZygnW2J1aWxkRm9ybUdyb3VwQnlKc29uU2NoZW1hXSBzY2hlbWE6Jywgc2NoZW1hKTtcbiAgICBpZiAoIXNjaGVtYSB8fCAhc2NoZW1hPy5wcm9wZXJ0aWVzKSB7XG4gICAgICByZXR1cm4gZmIuZ3JvdXAoe30pO1xuICAgIH1cbiAgICBjb25zdCBncm91cDogYW55ID0ge307XG4gICAgXG4gICAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hLnByb3BlcnRpZXMpIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5ID0gc2NoZW1hLnByb3BlcnRpZXNba2V5XTtcbiAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbXTtcbiAgXG4gICAgICBpZiAoc2NoZW1hLnJlcXVpcmVkICYmIHNjaGVtYS5yZXF1aXJlZC5pbmNsdWRlcyhrZXkpICYmICFwcm9wZXJ0eS5udWxsYWJsZSkge1xuICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB9XG4gICAgICBncm91cFtrZXldID0gdGhpcy5idWlsZEZvcm1CeUpzb25TY2hlbWFQcm9wZXJ0eShwcm9wZXJ0eSwge2ZiLCB2YWx1ZTogdmFsdWU/LltrZXldLCB2YWxpZGF0b3JzfSk7XG4gICAgICAvLyBNRU1PKEBOb3pvbXVNaXlhbW90byk6IEFycmF544Gq44KJ6L+95Yqg55So44Gu44OA44Of44O844Kz44Oz44OI44Ot44O844Or44KS6L+95Yqg44GZ44KLXG4gICAgICBpZiAocHJvcGVydHkudHlwZSA9PT0gJ2FycmF5Jykge1xuICAgICAgICBncm91cFtgJHtrZXl9X19hZGRfYWN0aW9uYF0gPSBmYi5jb250cm9sKHByb3BlcnR5KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZiLmdyb3VwKGdyb3VwKTtcbiAgfVxuICBcbiAgc3RhdGljIGJ1aWxkRm9ybUFycmF5QnlKc29uU2NoZW1hKHNjaGVtYTogSnNvblNjaGVtYSwge1xuICAgIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKS5ub25OdWxsYWJsZSxcbiAgICB2YWx1ZSA9IFtdLFxuICB9OiB7XG4gICAgZmI/OiBGb3JtQnVpbGRlciB8IE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsXG4gICAgdmFsdWU/OiBhbnlbXSxcbiAgfSA9IHt9KTogYW55IHtcbiAgICBpZiAoIXNjaGVtYSB8fCAhc2NoZW1hLml0ZW1zKSB7XG4gICAgICByZXR1cm4gZmIuYXJyYXkoW10pO1xuICAgIH1cbiAgICBjb25zb2xlLmRlYnVnKCdbYnVpbGRGb3JtQXJyYXlCeUpzb25TY2hlbWFdIHNjaGVtYTonLCBzY2hlbWEpO1xuICAgIGNvbnN0IGZvcm1BcnJheSA9IGZiLmFycmF5KFtcbiAgICAgIHRoaXMuYnVpbGRGb3JtR3JvdXBCeUpzb25TY2hlbWEoc2NoZW1hLml0ZW1zLCB7ZmJ9KSxcbiAgICBdKTtcbiAgICByZXR1cm4gZm9ybUFycmF5O1xuICB9XG4gIFxuICBzdGF0aWMgYnVpbGRGb3JtQnlKc29uU2NoZW1hUHJvcGVydHkocHJvcGVydHk6IEpzb25TY2hlbWEsIHtcbiAgICBmYiA9IGluamVjdChGb3JtQnVpbGRlcikubm9uTnVsbGFibGUsXG4gICAgdmFsdWUgPSBudWxsLFxuICAgIHZhbGlkYXRvcnMgPSBbXSxcbiAgfToge1xuICAgIGZiPzogRm9ybUJ1aWxkZXIgfCBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLFxuICAgIHZhbHVlPzogb2JqZWN0IHwgb2JqZWN0W10sXG4gICAgdmFsaWRhdG9ycz86IGFueVtdLFxuICB9ID0ge30pOiBhbnkge1xuICAgIHN3aXRjaCAocHJvcGVydHkudHlwZSkge1xuICAgICAgY2FzZSAnc3RyaW5nJzogc3dpdGNoIChwcm9wZXJ0eS5mb3JtYXQpIHtcbiAgICAgICAgY2FzZSAnZGF0ZSc6XG4gICAgICAgIGNhc2UgJ2RhdGUtdGltZSc6XG4gICAgICAgICAgcmV0dXJuIGZiLmNvbnRyb2wodmFsdWUgPz8gcHJvcGVydHkuZGVmYXVsdCA/PyBudWxsLCB7IG5vbk51bGxhYmxlOiAhcHJvcGVydHkubnVsbGFibGUsIHZhbGlkYXRvcnMgfSk7XG4gICAgICAgIGNhc2UgJ2JpbmFyeSc6XG4gICAgICAgICAgcmV0dXJuIGZiLmNvbnRyb2wodmFsdWUgPz8gcHJvcGVydHkuZGVmYXVsdCA/PyBudWxsLCB7IG5vbk51bGxhYmxlOiAhcHJvcGVydHkubnVsbGFibGUsIHZhbGlkYXRvcnMgfSk7XG4gICAgICAgIGNhc2UgJ2VtYWlsJzpcbiAgICAgICAgICByZXR1cm4gZmIuY29udHJvbCh2YWx1ZSA/PyBwcm9wZXJ0eS5kZWZhdWx0ID8/ICcnLCB7XG4gICAgICAgICAgICBub25OdWxsYWJsZTogIXByb3BlcnR5Lm51bGxhYmxlLFxuICAgICAgICAgICAgdmFsaWRhdG9yczogWy4uLnZhbGlkYXRvcnMsIFZhbGlkYXRvcnMuZW1haWxdLFxuICAgICAgICAgIH0pO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiBmYi5jb250cm9sKHZhbHVlID8/IHByb3BlcnR5LmRlZmF1bHQgPz8gJycsIHsgbm9uTnVsbGFibGU6ICFwcm9wZXJ0eS5udWxsYWJsZSwgdmFsaWRhdG9ycyB9KTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICByZXR1cm4gZmIuY29udHJvbCh2YWx1ZSA/PyBwcm9wZXJ0eS5kZWZhdWx0ID8/IGZhbHNlLCB7bm9uTnVsbGFibGU6ICFwcm9wZXJ0eS5udWxsYWJsZSwgdmFsaWRhdG9yc30pO1xuICAgICAgY2FzZSAnaW50ZWdlcic6XG4gICAgICAgIHJldHVybiBmYi5jb250cm9sKHZhbHVlID8/IHByb3BlcnR5LmRlZmF1bHQgPz8gMCwge25vbk51bGxhYmxlOiAhcHJvcGVydHkubnVsbGFibGUsIHZhbGlkYXRvcnN9KTtcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIHJldHVybiBmYi5jb250cm9sKHZhbHVlID8/IHByb3BlcnR5LmRlZmF1bHQgPz8gMCwge25vbk51bGxhYmxlOiAhcHJvcGVydHkubnVsbGFibGUsIHZhbGlkYXRvcnN9KTtcbiAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkRm9ybUdyb3VwQnlKc29uU2NoZW1hKHByb3BlcnR5LCB7ZmIsIHZhbHVlfSk7XG4gICAgICBjYXNlICdhcnJheSc6XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkRm9ybUFycmF5QnlKc29uU2NoZW1hKHByb3BlcnR5LCB7ZmIsIHZhbHVlOiB2YWx1ZSBhcyBhbnlbXX0pO1xuICAgIH1cbiAgfVxuICBcblxuICBzdGF0aWMgYnVpbGRGb3JtQnlKc29uU2NoZW1hKHNjaGVtYTogSnNvblNjaGVtYSwge1xuICAgIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKS5ub25OdWxsYWJsZSxcbiAgICB2YWx1ZSA9IHt9LFxuICAgIGZpZWxkTWFwID0ge30sXG4gIH06IHtcbiAgICBmYj86IEZvcm1CdWlsZGVyIHwgTm9uTnVsbGFibGVGb3JtQnVpbGRlcixcbiAgICB2YWx1ZT86IG9iamVjdCxcbiAgICBmaWVsZE1hcD86IG9iamVjdCxcbiAgfSA9IHt9KTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgZm9ybTogdGhpcy5idWlsZEZvcm1Hcm91cEJ5SnNvblNjaGVtYShzY2hlbWEsIHtmYiwgdmFsdWV9KSxcbiAgICAgIGZpZWxkTWFwOiB0aGlzLmJ1aWxkRm9ybUZpZWxkTWFwQnlKc29uU2NoZW1hKHNjaGVtYSwge21lcmdlOiBmaWVsZE1hcH0pLFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgYnVpbGRGb3JtRmllbGRCeVByb3BlcnR5KHByb3BlcnR5OiBKc29uU2NoZW1hWydwcm9wZXJ0aWVzJ10pIHtcbiAgICBzd2l0Y2ggKHByb3BlcnR5LnR5cGUpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6IHtcbiAgICAgICAgaWYgKHByb3BlcnR5LmVudW0pIHtcbiAgICAgICAgICByZXR1cm4geyB0eXBlOiAnc2VsZWN0Jywgb3B0aW9uczogcHJvcGVydHkuZW51bS5tYXAoKHY6IHN0cmluZykgPT4gKHsgdmFsdWU6IHYsIG5hbWU6IHYgfSkpIH07XG4gICAgICAgIH0gZWxzZSBpZiAoWydkYXRlLXRpbWUnLCAnZGF0ZSddLmluY2x1ZGVzKHByb3BlcnR5LmZvcm1hdCkpIHtcbiAgICAgICAgICByZXR1cm4geyB0eXBlOiAnZGF0ZScgfTtcbiAgICAgICAgfSBlbHNlIGlmIChwcm9wZXJ0eS5mb3JtYXQgPT09ICdiaW5hcnknKSB7XG4gICAgICAgICAgcmV0dXJuIHsgdHlwZTogJ2ZpbGUnIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHsgdHlwZTogJ3RleHQnIH07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGNhc2UgJ2Jvb2xlYW4nOiByZXR1cm4geyB0eXBlOiAnc2VsZWN0Jywgb3B0aW9uczogW3sgdmFsdWU6IHRydWUsIG5hbWU6ICfjga/jgYQnIH0sIHsgdmFsdWU6IGZhbHNlLCBuYW1lOiAn44GE44GE44GIJyB9XSB9O1xuICAgICAgY2FzZSAnaW50ZWdlcic6IHJldHVybiB7IHR5cGU6ICdudW1iZXInIH07XG4gICAgICBjYXNlICdudW1iZXInOiByZXR1cm4geyB0eXBlOiAnbnVtYmVyJyB9O1xuICAgICAgZGVmYXVsdDogcmV0dXJuIHsgdHlwZTogcHJvcGVydHkudHlwZSB9O1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBidWlsZEZvcm1GaWVsZE1hcEJ5SnNvblNjaGVtYShcbiAgICBzY2hlbWE6IEpzb25TY2hlbWEsXG4gICAgb3B0aW9uczoge1xuICAgICAgbWVyZ2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICAgIH0gPSB7fSxcbiAgKTogYW55IHtcbiAgICBpZiAoIXNjaGVtYSB8fCAhc2NoZW1hLnByb3BlcnRpZXMpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiB7IHR5cGU6ICdoaWRkZW4nIH0sXG4gICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBmaWVsZE1hcDogYW55ID0ge307XG4gICAgXG4gICAgZm9yIChjb25zdCBrZXkgaW4gc2NoZW1hLnByb3BlcnRpZXMpIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5ID0gc2NoZW1hLnByb3BlcnRpZXNba2V5XTtcbiAgICAgIHN3aXRjaCAocHJvcGVydHkudHlwZSkge1xuICAgICAgICBjYXNlICdvYmplY3QnOiB7XG4gICAgICAgICAgY29uc3QgY2hpbGRGaWVsZE1hcCA9IHRoaXMuYnVpbGRGb3JtRmllbGRNYXBCeUpzb25TY2hlbWEocHJvcGVydHksIG9wdGlvbnMpO1xuICAgICAgICAgIGZvciAoY29uc3QgY2hpbGRLZXkgaW4gY2hpbGRGaWVsZE1hcCkge1xuICAgICAgICAgICAgZmllbGRNYXBbYCR7a2V5fS4ke2NoaWxkS2V5fWBdID0gY2hpbGRGaWVsZE1hcFtjaGlsZEtleV07XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgJ2FycmF5Jzoge1xuICAgICAgICAgIGNvbnN0IGNoaWxkRmllbGRNYXAgPSB0aGlzLmJ1aWxkRm9ybUZpZWxkTWFwQnlKc29uU2NoZW1hKHByb3BlcnR5Lml0ZW1zLCBvcHRpb25zKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkS2V5IGluIGNoaWxkRmllbGRNYXApIHtcbiAgICAgICAgICAgIC8vIFRPRE86IOato+imj+ihqOePvuOBp+ODkeOCueODnuODg+ODgeOCkuWIpOWumuOBp+OBjeOCi+OCiOOBhuOBq+OBmeOCi+OAglxuICAgICAgICAgICAgZmllbGRNYXBbYCR7a2V5fS5cXFxcZCsuJHtjaGlsZEtleX1gXSA9IGNoaWxkRmllbGRNYXBbY2hpbGRLZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgZmllbGRNYXBba2V5XSA9IHRoaXMuYnVpbGRGb3JtRmllbGRCeVByb3BlcnR5KHByb3BlcnR5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgXG4gICAgY29uc29sZS5kZWJ1ZygnW2J1aWxkRm9ybUZpZWxkTWFwQnlKc29uU2NoZW1hXSBmaWVsZE1hcDonLCBmaWVsZE1hcCk7XG4gICAgY29uc29sZS5kZWJ1ZygnW2J1aWxkRm9ybUZpZWxkTWFwQnlKc29uU2NoZW1hXSBvcHRpb25zLm1lcmdlOicsIG9wdGlvbnMubWVyZ2UpO1xuICBcbiAgICByZXR1cm4gey4uLmZpZWxkTWFwLCAuLi5vcHRpb25zLm1lcmdlfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGb3JtR3JvdXAoa2xhc3M6IG5ldygpID0+IGFueSwge1xuICBmYiA9IGluamVjdChGb3JtQnVpbGRlcikubm9uTnVsbGFibGUsXG4gIHZhbHVlLFxufToge1xuICBmYj86IEZvcm1CdWlsZGVyIHwgTm9uTnVsbGFibGVGb3JtQnVpbGRlcixcbiAgdmFsdWU/OiBvYmplY3QsXG59KTogRm9ybUdyb3VwIHtcbiAgY29uc3Qgc2NoZW1hID0gdGFyZ2V0Q29uc3RydWN0b3JUb1NjaGVtYShrbGFzcyk7XG4gIHJldHVybiBKc29uU2NoZW1hRm9ybVV0aWxzLmJ1aWxkRm9ybUdyb3VwQnlKc29uU2NoZW1hKHNjaGVtYSwge2ZiLCB2YWx1ZX0pO1xufVxuXG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZvcm1GaWVsZE1hcChrbGFzczogbmV3KCkgPT4gYW55LCBvcHRpb25zOiB7XG4gIG1lcmdlPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfSxcbn0pOiBhbnkge1xuICBjb25zdCBzY2hlbWEgPSB0YXJnZXRDb25zdHJ1Y3RvclRvU2NoZW1hKGtsYXNzKTtcbiAgY29uc3QgbWFwID0gSnNvblNjaGVtYUZvcm1VdGlscy5idWlsZEZvcm1GaWVsZE1hcEJ5SnNvblNjaGVtYShzY2hlbWEsIG9wdGlvbnMpO1xuICByZXR1cm4gbWVyZ2UobWFwLCBvcHRpb25zLm1lcmdlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRm9ybShrbGFzczogbmV3KCkgPT4gYW55LCB7XG4gIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKS5ub25OdWxsYWJsZSxcbiAgdmFsdWUgPSB7fSxcbiAgZmllbGRNYXAgPSB7fSxcbn06IHtcbiAgZmI/OiBGb3JtQnVpbGRlciB8IE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsXG4gIHZhbHVlPzogb2JqZWN0LFxuICBmaWVsZE1hcD86IEZvcm1GaWVsZE1hcCxcbn0gPSB7fSk6IGFueSB7XG4gIGNvbnN0IHNjaGVtYSA9IHRhcmdldENvbnN0cnVjdG9yVG9TY2hlbWEoa2xhc3MpO1xuICByZXR1cm4ge1xuICAgIGZvcm06IEpzb25TY2hlbWFGb3JtVXRpbHMuYnVpbGRGb3JtR3JvdXBCeUpzb25TY2hlbWEoc2NoZW1hLCB7ZmIsIHZhbHVlfSksXG4gICAgZmllbGRNYXA6IEpzb25TY2hlbWFGb3JtVXRpbHMuYnVpbGRGb3JtRmllbGRNYXBCeUpzb25TY2hlbWEoc2NoZW1hLCB7bWVyZ2U6IGZpZWxkTWFwfSksXG4gIH07XG59XG5cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBKc29uU2NoZW1hRm9ybVNlcnZpY2Uge1xuICBwcml2YXRlIGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcblxuICBidWlsZChzY2hlbWE6IEpzb25TY2hlbWEsIHtcbiAgICBmYiA9IHRoaXMuZmIsXG4gICAgdmFsdWUgPSB7fSxcbiAgfToge1xuICAgIGZiPzogRm9ybUJ1aWxkZXIgfCBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLFxuICAgIHZhbHVlPzogb2JqZWN0LFxuICB9ID0ge30pOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiBKc29uU2NoZW1hRm9ybVV0aWxzLmJ1aWxkRm9ybUdyb3VwQnlKc29uU2NoZW1hKHNjaGVtYSwge2ZiLCB2YWx1ZX0pO1xuICB9XG5cbiAgYnVpbGRGaWVsZE1hcChcbiAgICBzY2hlbWE6IEpzb25TY2hlbWEsXG4gICAgb3B0aW9uczoge1xuICAgICAgbWVyZ2U/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9LFxuICAgIH0gPSB7fSxcbiAgKTogYW55IHtcbiAgICByZXR1cm4gSnNvblNjaGVtYUZvcm1VdGlscy5idWlsZEZvcm1GaWVsZE1hcEJ5SnNvblNjaGVtYShzY2hlbWEsIG9wdGlvbnMpO1xuICB9XG59XG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zZXJ2aWNlcy1mb3JtLWpzb24tc2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9mb3JtL2pzb24tc2NoZW1hL25nLWF0b21pYy1jb21tb24tc2VydmljZXMtZm9ybS1qc29uLXNjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zZXJ2aWNlcy1mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9mb3JtL25nLWF0b21pYy1jb21tb24tc2VydmljZXMtZm9ybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './pagination.service';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2Zvcm0vcGFnaW5hdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wYWdpbmF0aW9uLnNlcnZpY2UnO1xuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zZXJ2aWNlcy1mb3JtLXBhZ2luYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2Zvcm0vcGFnaW5hdGlvbi9uZy1hdG9taWMtY29tbW9uLXNlcnZpY2VzLWZvcm0tcGFnaW5hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,24 +0,0 @@
1
- import { Injectable, inject } from '@angular/core';
2
- import { FormBuilder } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- export class PaginationService {
5
- constructor() {
6
- this.fb = inject(FormBuilder);
7
- }
8
- build({ size = 50, index = 0, length = 0, } = {}) {
9
- return this.fb.group({
10
- size: [size],
11
- index: [index],
12
- length: [length],
13
- });
14
- }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: PaginationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
16
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: PaginationService, providedIn: 'root' }); }
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: PaginationService, decorators: [{
19
- type: Injectable,
20
- args: [{
21
- providedIn: 'root'
22
- }]
23
- }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9mb3JtL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFXN0MsTUFBTSxPQUFPLGlCQUFpQjtJQUg5QjtRQUlVLE9BQUUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7S0FhbEM7SUFYQyxLQUFLLENBQUMsRUFDSixJQUFJLEdBQUcsRUFBRSxFQUNULEtBQUssR0FBRyxDQUFDLEVBQ1QsTUFBTSxHQUFHLENBQUMsTUFDc0IsRUFBRTtRQUNsQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ25CLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQztZQUNaLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNkLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQztTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQWJVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2luYXRpb25Gb3JtVmFsdWUge1xuICBzaXplOiBudW1iZXIsXG4gIGluZGV4OiBudW1iZXIsXG4gIGxlbmd0aDogbnVtYmVyLFxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgZmIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xuXG4gIGJ1aWxkKHtcbiAgICBzaXplID0gNTAsXG4gICAgaW5kZXggPSAwLFxuICAgIGxlbmd0aCA9IDAsXG4gIH06IFBhcnRpYWw8UGFnaW5hdGlvbkZvcm1WYWx1ZT4gPSB7fSkge1xuICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHNpemU6IFtzaXplXSxcbiAgICAgIGluZGV4OiBbaW5kZXhdLFxuICAgICAgbGVuZ3RoOiBbbGVuZ3RoXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export * from './sort.service';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2Zvcm0vc29ydC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zb3J0LnNlcnZpY2UnO1xuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zZXJ2aWNlcy1mb3JtLXNvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL3NlcnZpY2VzL2Zvcm0vc29ydC9uZy1hdG9taWMtY29tbW9uLXNlcnZpY2VzLWZvcm0tc29ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,33 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { FormBuilder } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/forms";
5
- export class SortService {
6
- constructor(fb) {
7
- this.fb = fb;
8
- }
9
- build({ key = null, order = 'asc' } = {}) {
10
- return this.fb.group({
11
- key: [key],
12
- order: [order],
13
- });
14
- }
15
- toggle(form, name) {
16
- if (form.get('key').value === name) {
17
- form.get('order').setValue(form.get('order').value === 'asc' ? 'desc' : 'asc');
18
- }
19
- else {
20
- form.get('order').setValue('asc');
21
- form.get('key').setValue(name);
22
- }
23
- }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SortService, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Injectable }); }
25
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SortService, providedIn: 'root' }); }
26
- }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SortService, decorators: [{
28
- type: Injectable,
29
- args: [{
30
- providedIn: 'root'
31
- }]
32
- }], ctorParameters: () => [{ type: i1.FormBuilder }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9mb3JtL3NvcnQvc29ydC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBc0MsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBVWpGLE1BQU0sT0FBTyxXQUFXO0lBRXRCLFlBQW9CLEVBQWU7UUFBZixPQUFFLEdBQUYsRUFBRSxDQUFhO0lBQUksQ0FBQztJQUV4QyxLQUFLLENBQUMsRUFBQyxHQUFHLEdBQUUsSUFBSSxFQUFFLEtBQUssR0FBRyxLQUFLLEtBQTRCLEVBQUU7UUFDM0QsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNuQixHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDVixLQUFLLEVBQUUsQ0FBQyxLQUF1QixDQUFDO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBbUMsRUFBRSxJQUFZO1FBQ3RELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pGLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7OEdBbEJVLFdBQVc7a0hBQVgsV0FBVyxjQUZWLE1BQU07OzJGQUVQLFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29ydEZvcm1WYWx1ZSB7XG4gIGtleT86IHN0cmluZyxcbiAgb3JkZXI/OiAnYXNjJyB8ICdkZXNjJyxcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU29ydFNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7IH1cblxuICBidWlsZCh7a2V5PSBudWxsLCBvcmRlciA9ICdhc2MnfTogUGFydGlhbDxTb3J0Rm9ybVZhbHVlPiA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAga2V5OiBba2V5XSxcbiAgICAgIG9yZGVyOiBbb3JkZXIgYXMgJ2FzYycgfCAnZGVzYyddLFxuICAgIH0pO1xuICB9XG5cbiAgdG9nZ2xlKGZvcm06IFJldHVyblR5cGU8dHlwZW9mIHRoaXMuYnVpbGQ+LCBuYW1lOiBzdHJpbmcpIHtcbiAgICBpZiAoZm9ybS5nZXQoJ2tleScpLnZhbHVlID09PSBuYW1lKSB7XG4gICAgICBmb3JtLmdldCgnb3JkZXInKS5zZXRWYWx1ZShmb3JtLmdldCgnb3JkZXInKS52YWx1ZSA9PT0gJ2FzYycgPyAnZGVzYycgOiAnYXNjJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvcm0uZ2V0KCdvcmRlcicpLnNldFZhbHVlKCdhc2MnKTtcbiAgICAgIGZvcm0uZ2V0KCdrZXknKS5zZXRWYWx1ZShuYW1lKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==