ngx-register-base 1.3.1 → 1.3.3

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 (479) hide show
  1. package/esm2022/lib/components/checkbox-selector/checkbox-selector.component.mjs +129 -0
  2. package/esm2022/lib/components/checkbox-selector/checkbox-selector.types.mjs +8 -0
  3. package/esm2022/lib/components/column-settings/column-settings.component.mjs +249 -0
  4. package/esm2022/lib/components/column-settings/components/column-settings-template/column-settings-template.component.mjs +80 -0
  5. package/esm2022/lib/components/column-settings/consts/column-settings.consts.mjs +10 -0
  6. package/esm2022/lib/components/column-settings/index.mjs +3 -0
  7. package/esm2022/lib/components/column-settings/types/column-settings.types.mjs +7 -0
  8. package/esm2022/lib/components/divider/divider.component.mjs +16 -0
  9. package/esm2022/lib/components/filter-button/filter-button.component.mjs +19 -0
  10. package/esm2022/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.mjs +31 -0
  11. package/esm2022/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.mjs +57 -0
  12. package/esm2022/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.mjs +110 -0
  13. package/esm2022/lib/components/filters/components/filter-list/filter-list-saved/filter-list-saved.component.mjs +130 -0
  14. package/esm2022/lib/components/filters/components/filter-list/filter-list.service.mjs +89 -0
  15. package/esm2022/lib/components/filters/components/filter-list/filters-section/filters-section.component.mjs +41 -0
  16. package/esm2022/lib/components/filters/components/filter-list.module.mjs +45 -0
  17. package/esm2022/lib/components/filters/index.mjs +3 -0
  18. package/esm2022/lib/components/filters/register-table-filter.component.mjs +155 -0
  19. package/esm2022/lib/components/filters/register-table-filter.module.mjs +39 -0
  20. package/esm2022/lib/components/index.mjs +11 -0
  21. package/esm2022/lib/components/inputs/index.mjs +20 -0
  22. package/esm2022/lib/components/inputs/inputs.module.mjs +166 -0
  23. package/esm2022/lib/components/inputs/param-calendar-year/param-calendar-year.component.mjs +45 -0
  24. package/esm2022/lib/components/inputs/param-custom/param-custom.component.mjs +12 -0
  25. package/esm2022/lib/components/inputs/param-date/param-date.component.mjs +76 -0
  26. package/esm2022/lib/components/inputs/param-date-range/param-date-range.component.mjs +60 -0
  27. package/esm2022/lib/components/inputs/param-date-time/param-date-time.component.mjs +86 -0
  28. package/esm2022/lib/components/inputs/param-date-time-range/param-date-time-range.component.mjs +95 -0
  29. package/esm2022/lib/components/inputs/param-month/param-month.component.mjs +50 -0
  30. package/esm2022/lib/components/inputs/param-month-range/param-month-range.component.mjs +62 -0
  31. package/esm2022/lib/components/inputs/param-multi-select/param-multi-select.component.mjs +309 -0
  32. package/esm2022/lib/components/inputs/param-select/param-select.component.mjs +233 -0
  33. package/esm2022/lib/components/inputs/param-switcher/param-switcher.component.mjs +21 -0
  34. package/esm2022/lib/components/inputs/param-switcher-date-time-range/consts/param-switcher-date-time-range.consts.mjs +28 -0
  35. package/esm2022/lib/components/inputs/param-switcher-date-time-range/index.mjs +3 -0
  36. package/esm2022/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.mjs +105 -0
  37. package/esm2022/lib/components/inputs/param-switcher-date-time-range/types/param-switcher-date-time-range.types.mjs +10 -0
  38. package/esm2022/lib/components/inputs/param-text/param-text.component.mjs +40 -0
  39. package/esm2022/lib/components/inputs/param-textarea/param-textarea.component.mjs +38 -0
  40. package/esm2022/lib/components/inputs/param-toggle/param-toggle.component.mjs +20 -0
  41. package/esm2022/lib/components/inputs/param-tree/consts/param-tree.consts.mjs +37 -0
  42. package/esm2022/lib/components/inputs/param-tree/index.mjs +8 -0
  43. package/esm2022/lib/components/inputs/param-tree/param-tree.component.mjs +207 -0
  44. package/esm2022/lib/components/inputs/param-tree/services/param-tree.service.mjs +116 -0
  45. package/esm2022/lib/components/inputs/param-tree/services/sync-tree-loader.service.mjs +20 -0
  46. package/esm2022/lib/components/inputs/param-tree/tokens/param-tree.tokens.mjs +3 -0
  47. package/esm2022/lib/components/inputs/param-tree/types/param-tree.types.mjs +2 -0
  48. package/esm2022/lib/components/inputs/param-tree/utils/param-tree.utils.mjs +9 -0
  49. package/esm2022/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.mjs +80 -0
  50. package/esm2022/lib/components/inputs/param-tree-select/param-tree-select.component.mjs +85 -0
  51. package/esm2022/lib/components/inputs/sub-components/param-delete-content-icon/param-delete-content-btn.component.mjs +15 -0
  52. package/esm2022/lib/components/inputs/sub-components/param-invalid-icon/param-invalid-icon.component.mjs +12 -0
  53. package/esm2022/lib/components/menu-constructor/index.mjs +5 -0
  54. package/esm2022/lib/components/menu-constructor/sproc-menu-constructor.component.mjs +559 -0
  55. package/esm2022/lib/components/menu-constructor/store/sproc-abstract-menu-constructor.store.mjs +3 -0
  56. package/esm2022/lib/components/menu-constructor/store/sproc-menu-constructor.consts.mjs +5 -0
  57. package/esm2022/lib/components/menu-constructor/store/sproc-menu.tokens.mjs +3 -0
  58. package/esm2022/lib/components/page-menu/index.mjs +6 -0
  59. package/esm2022/lib/components/page-menu/schema/sproc-page-menu.consts.mjs +9 -0
  60. package/esm2022/lib/components/page-menu/schema/sproc-page-menu.schema.mjs +2 -0
  61. package/esm2022/lib/components/page-menu/schema/sproc-page-menu.tokens.mjs +4 -0
  62. package/esm2022/lib/components/page-menu/schema/sproc-page-menu.types.mjs +3 -0
  63. package/esm2022/lib/components/page-menu/sproc-page-menu.component.mjs +275 -0
  64. package/esm2022/lib/components/paginator/paginator.component.mjs +159 -0
  65. package/esm2022/lib/components/paginator/types/paginator.types.mjs +2 -0
  66. package/esm2022/lib/components/register-table/consts/register-table.consts.mjs +4 -0
  67. package/esm2022/lib/components/register-table/directives/cell-template.directive.mjs +19 -0
  68. package/esm2022/lib/components/register-table/directives/header-template.directive.mjs +18 -0
  69. package/esm2022/lib/components/register-table/index.mjs +4 -0
  70. package/esm2022/lib/components/register-table/model/schema.mjs +10 -0
  71. package/esm2022/lib/components/register-table/pipes/class-by-type.pipe.mjs +33 -0
  72. package/esm2022/lib/components/register-table/pipes/sticky-column.pipe.mjs +17 -0
  73. package/esm2022/lib/components/register-table/register-table.component.mjs +544 -0
  74. package/esm2022/lib/components/reset-settings-form/reset-settings-form.component.mjs +18 -0
  75. package/esm2022/lib/components/search-input/search-input.component.mjs +28 -0
  76. package/esm2022/lib/components/sliding-panel/sliding-panel.component.mjs +48 -0
  77. package/esm2022/lib/components/sliding-panel/sliding-panel.module.mjs +19 -0
  78. package/esm2022/lib/consts/date-time.consts.mjs +2 -0
  79. package/esm2022/lib/consts/index.mjs +4 -0
  80. package/esm2022/lib/consts/inputs.consts.mjs +4 -0
  81. package/esm2022/lib/consts/month.consts.mjs +77 -0
  82. package/esm2022/lib/consts/params.consts.mjs +2 -0
  83. package/esm2022/lib/consts/register-base.consts.mjs +26 -0
  84. package/esm2022/lib/core/form-group-wrapper/errors-consts.mjs +8 -0
  85. package/esm2022/lib/core/form-group-wrapper/form-group-wrapper.mjs +81 -0
  86. package/esm2022/lib/core/form-group-wrapper/index.mjs +2 -0
  87. package/esm2022/lib/core/index.mjs +5 -0
  88. package/esm2022/lib/core/input-control/index.mjs +2 -0
  89. package/esm2022/lib/core/input-control/input-control.mjs +11 -0
  90. package/esm2022/lib/core/param/index.mjs +6 -0
  91. package/esm2022/lib/core/param/param-base.mjs +215 -0
  92. package/esm2022/lib/core/param/param-date-base.mjs +26 -0
  93. package/esm2022/lib/core/param/param-select-base.mjs +114 -0
  94. package/esm2022/lib/core/param/param-text-base.mjs +25 -0
  95. package/esm2022/lib/core/param/param.tokens.mjs +4 -0
  96. package/esm2022/lib/core/register-base/index.mjs +3 -0
  97. package/esm2022/lib/core/register-base/register-base.mjs +575 -0
  98. package/esm2022/lib/core/register-base/register-base.store.mjs +43 -0
  99. package/esm2022/lib/directives/date/date-time.types.mjs +34 -0
  100. package/esm2022/lib/directives/date/format-date.pipe.mjs +33 -0
  101. package/esm2022/lib/directives/index.mjs +3 -0
  102. package/esm2022/lib/directives/number/number-only.directive.mjs +41 -0
  103. package/esm2022/lib/directives/sticky/index.mjs +3 -0
  104. package/esm2022/lib/directives/sticky/sticky-relative.directive.mjs +32 -0
  105. package/esm2022/lib/directives/sticky/sticky-relative.service.mjs +32 -0
  106. package/esm2022/lib/directives/sticky/sticky.directive.mjs +169 -0
  107. package/esm2022/lib/services/date-time.service.mjs +314 -0
  108. package/esm2022/lib/services/dialog/dialog.service.mjs +53 -0
  109. package/esm2022/lib/services/dialog/dialog.types.mjs +2 -0
  110. package/esm2022/lib/services/dialog/index.mjs +3 -0
  111. package/esm2022/lib/services/dom-intersection.service.mjs +22 -0
  112. package/esm2022/lib/services/filter/filters-state.service.mjs +65 -0
  113. package/esm2022/lib/services/filter/filters-transmit.service.mjs +82 -0
  114. package/esm2022/lib/services/filter/filters.service.mjs +23 -0
  115. package/esm2022/lib/services/index.mjs +8 -0
  116. package/esm2022/lib/services/inputs-state.service.mjs +130 -0
  117. package/esm2022/lib/services/inputs.service.mjs +88 -0
  118. package/esm2022/lib/services/key-pressed.service.mjs +37 -0
  119. package/esm2022/lib/services/resize-window-observer.service.mjs +33 -0
  120. package/esm2022/lib/services/selected-objects-state.service.mjs +123 -0
  121. package/esm2022/lib/store/fast-query-store.service.mjs +110 -0
  122. package/esm2022/lib/store/index.mjs +2 -0
  123. package/esm2022/lib/types/event.types.mjs +2 -0
  124. package/esm2022/lib/types/hasura.types.mjs +2 -0
  125. package/esm2022/lib/types/index.mjs +7 -0
  126. package/esm2022/lib/types/inputs.types.mjs +19 -0
  127. package/esm2022/lib/types/params.types.mjs +2 -0
  128. package/esm2022/lib/types/register-base.types.mjs +6 -0
  129. package/esm2022/lib/types/sub-types.mjs +2 -0
  130. package/esm2022/lib/types/user-profile.types.mjs +2 -0
  131. package/esm2022/lib/utils/functions.mjs +10 -0
  132. package/esm2022/lib/utils/get-url-segment.mjs +35 -0
  133. package/esm2022/lib/utils/index.mjs +5 -0
  134. package/esm2022/lib/utils/prizm.shared.module.mjs +284 -0
  135. package/esm2022/lib/utils/rxjs.mjs +28 -0
  136. package/esm2022/lib/utils/select-all-utils.mjs +11 -0
  137. package/esm2022/ngx-register-base.mjs +5 -0
  138. package/esm2022/public-api.mjs +9 -0
  139. package/fesm2022/ngx-register-base.mjs +7487 -0
  140. package/fesm2022/ngx-register-base.mjs.map +1 -0
  141. package/index.d.ts +5 -0
  142. package/lib/components/checkbox-selector/checkbox-selector.component.d.ts +33 -0
  143. package/lib/components/checkbox-selector/checkbox-selector.types.d.ts +7 -0
  144. package/lib/components/column-settings/column-settings.component.d.ts +80 -0
  145. package/lib/components/column-settings/components/column-settings-template/column-settings-template.component.d.ts +24 -0
  146. package/lib/components/column-settings/consts/column-settings.consts.d.ts +8 -0
  147. package/lib/components/column-settings/types/column-settings.types.d.ts +22 -0
  148. package/lib/components/divider/divider.component.d.ts +6 -0
  149. package/lib/components/filter-button/filter-button.component.d.ts +8 -0
  150. package/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.d.ts +14 -0
  151. package/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.d.ts +25 -0
  152. package/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.d.ts +39 -0
  153. package/lib/components/filters/components/filter-list/filter-list-saved/filter-list-saved.component.d.ts +41 -0
  154. package/lib/components/filters/components/filter-list/filter-list.service.d.ts +20 -0
  155. package/lib/components/filters/components/filter-list/filters-section/filters-section.component.d.ts +15 -0
  156. package/lib/components/filters/components/filter-list.module.d.ts +15 -0
  157. package/lib/components/filters/register-table-filter.component.d.ts +40 -0
  158. package/lib/components/filters/register-table-filter.module.d.ts +13 -0
  159. package/lib/components/inputs/inputs.module.d.ts +31 -0
  160. package/lib/components/inputs/param-calendar-year/param-calendar-year.component.d.ts +19 -0
  161. package/lib/components/inputs/param-custom/param-custom.component.d.ts +6 -0
  162. package/lib/components/inputs/param-date/param-date.component.d.ts +20 -0
  163. package/lib/components/inputs/param-date-range/param-date-range.component.d.ts +26 -0
  164. package/lib/components/inputs/param-date-time/param-date-time.component.d.ts +25 -0
  165. package/lib/components/inputs/param-date-time-range/param-date-time-range.component.d.ts +28 -0
  166. package/lib/components/inputs/param-month/param-month.component.d.ts +18 -0
  167. package/lib/components/inputs/param-month-range/param-month-range.component.d.ts +21 -0
  168. package/lib/components/inputs/param-multi-select/param-multi-select.component.d.ts +46 -0
  169. package/lib/components/inputs/param-select/param-select.component.d.ts +34 -0
  170. package/lib/components/inputs/param-switcher/param-switcher.component.d.ts +8 -0
  171. package/lib/components/inputs/param-switcher-date-time-range/consts/param-switcher-date-time-range.consts.d.ts +2 -0
  172. package/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.d.ts +19 -0
  173. package/lib/components/inputs/param-switcher-date-time-range/types/param-switcher-date-time-range.types.d.ts +8 -0
  174. package/lib/components/inputs/param-text/param-text.component.d.ts +10 -0
  175. package/lib/components/inputs/param-textarea/param-textarea.component.d.ts +10 -0
  176. package/lib/components/inputs/param-toggle/param-toggle.component.d.ts +9 -0
  177. package/lib/components/inputs/param-tree/consts/param-tree.consts.d.ts +7 -0
  178. package/lib/components/inputs/param-tree/param-tree.component.d.ts +41 -0
  179. package/lib/components/inputs/param-tree/services/param-tree.service.d.ts +37 -0
  180. package/lib/components/inputs/param-tree/services/sync-tree-loader.service.d.ts +10 -0
  181. package/{src/lib/components/inputs/param-tree/tokens/param-tree.tokens.ts → lib/components/inputs/param-tree/tokens/param-tree.tokens.d.ts} +1 -2
  182. package/lib/components/inputs/param-tree/types/param-tree.types.d.ts +32 -0
  183. package/lib/components/inputs/param-tree/utils/param-tree.utils.d.ts +7 -0
  184. package/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.d.ts +31 -0
  185. package/lib/components/inputs/param-tree-select/param-tree-select.component.d.ts +30 -0
  186. package/lib/components/inputs/sub-components/param-delete-content-icon/param-delete-content-btn.component.d.ts +6 -0
  187. package/lib/components/inputs/sub-components/param-invalid-icon/param-invalid-icon.component.d.ts +5 -0
  188. package/lib/components/menu-constructor/sproc-menu-constructor.component.d.ts +113 -0
  189. package/lib/components/menu-constructor/store/sproc-abstract-menu-constructor.store.d.ts +24 -0
  190. package/lib/components/menu-constructor/store/sproc-menu-constructor.consts.d.ts +36 -0
  191. package/{src/lib/components/menu-constructor/store/sproc-menu.tokens.ts → lib/components/menu-constructor/store/sproc-menu.tokens.d.ts} +1 -4
  192. package/lib/components/page-menu/schema/sproc-page-menu.consts.d.ts +7 -0
  193. package/lib/components/page-menu/schema/sproc-page-menu.schema.d.ts +30 -0
  194. package/lib/components/page-menu/schema/sproc-page-menu.tokens.d.ts +3 -0
  195. package/lib/components/page-menu/schema/sproc-page-menu.types.d.ts +36 -0
  196. package/lib/components/page-menu/sproc-page-menu.component.d.ts +48 -0
  197. package/lib/components/paginator/paginator.component.d.ts +52 -0
  198. package/lib/components/paginator/types/paginator.types.d.ts +15 -0
  199. package/lib/components/register-table/consts/register-table.consts.d.ts +3 -0
  200. package/lib/components/register-table/directives/cell-template.directive.d.ts +9 -0
  201. package/lib/components/register-table/directives/header-template.directive.d.ts +9 -0
  202. package/lib/components/register-table/model/schema.d.ts +52 -0
  203. package/lib/components/register-table/pipes/class-by-type.pipe.d.ts +8 -0
  204. package/lib/components/register-table/pipes/sticky-column.pipe.d.ts +7 -0
  205. package/lib/components/register-table/register-table.component.d.ts +165 -0
  206. package/lib/components/reset-settings-form/reset-settings-form.component.d.ts +9 -0
  207. package/lib/components/search-input/search-input.component.d.ts +11 -0
  208. package/lib/components/sliding-panel/sliding-panel.component.d.ts +14 -0
  209. package/lib/components/sliding-panel/sliding-panel.module.d.ts +9 -0
  210. package/lib/consts/date-time.consts.d.ts +1 -0
  211. package/lib/consts/index.d.ts +3 -0
  212. package/lib/consts/inputs.consts.d.ts +4 -0
  213. package/lib/consts/month.consts.d.ts +49 -0
  214. package/lib/consts/params.consts.d.ts +1 -0
  215. package/lib/consts/register-base.consts.d.ts +19 -0
  216. package/lib/core/form-group-wrapper/errors-consts.d.ts +5 -0
  217. package/lib/core/form-group-wrapper/form-group-wrapper.d.ts +15 -0
  218. package/lib/core/input-control/input-control.d.ts +11 -0
  219. package/lib/core/param/param-base.d.ts +68 -0
  220. package/lib/core/param/param-date-base.d.ts +18 -0
  221. package/lib/core/param/param-select-base.d.ts +42 -0
  222. package/lib/core/param/param-text-base.d.ts +15 -0
  223. package/{src/lib/core/param/param.tokens.ts → lib/core/param/param.tokens.d.ts} +1 -2
  224. package/lib/core/register-base/register-base.d.ts +168 -0
  225. package/lib/core/register-base/register-base.store.d.ts +35 -0
  226. package/lib/directives/date/date-time.types.d.ts +32 -0
  227. package/lib/directives/date/format-date.pipe.d.ts +10 -0
  228. package/lib/directives/number/number-only.directive.d.ts +10 -0
  229. package/lib/directives/sticky/sticky-relative.directive.d.ts +13 -0
  230. package/lib/directives/sticky/sticky-relative.service.d.ts +15 -0
  231. package/lib/directives/sticky/sticky.directive.d.ts +27 -0
  232. package/lib/services/date-time.service.d.ts +80 -0
  233. package/lib/services/dialog/dialog.service.d.ts +22 -0
  234. package/{src/lib/services/dialog/dialog.types.ts → lib/services/dialog/dialog.types.d.ts} +4 -8
  235. package/lib/services/dom-intersection.service.d.ts +8 -0
  236. package/lib/services/filter/filters-state.service.d.ts +21 -0
  237. package/lib/services/filter/filters-transmit.service.d.ts +28 -0
  238. package/lib/services/filter/filters.service.d.ts +12 -0
  239. package/lib/services/inputs-state.service.d.ts +57 -0
  240. package/lib/services/inputs.service.d.ts +28 -0
  241. package/lib/services/key-pressed.service.d.ts +15 -0
  242. package/lib/services/resize-window-observer.service.d.ts +11 -0
  243. package/lib/services/selected-objects-state.service.d.ts +47 -0
  244. package/lib/store/fast-query-store.service.d.ts +19 -0
  245. package/{src/lib/types/event.types.ts → lib/types/event.types.d.ts} +1 -1
  246. package/lib/types/hasura.types.d.ts +35 -0
  247. package/lib/types/inputs.types.d.ts +41 -0
  248. package/lib/types/params.types.d.ts +27 -0
  249. package/lib/types/register-base.types.d.ts +123 -0
  250. package/lib/types/sub-types.d.ts +8 -0
  251. package/lib/types/user-profile.types.d.ts +17 -0
  252. package/lib/utils/functions.d.ts +3 -0
  253. package/lib/utils/get-url-segment.d.ts +7 -0
  254. package/lib/utils/prizm.shared.module.d.ts +14 -0
  255. package/lib/utils/rxjs.d.ts +10 -0
  256. package/lib/utils/select-all-utils.d.ts +8 -0
  257. package/package.json +15 -12
  258. package/schematics/ng-update/replace-menu-state-token/index.d.ts +2 -0
  259. package/schematics/ng-update/replace-menu-state-token/index.js +29 -0
  260. package/schematics/ng-update/replace-menu-state-token/index.js.map +1 -0
  261. package/schematics/ng-update/update-prefix/index.d.ts +2 -0
  262. package/schematics/ng-update/update-prefix/index.js +33 -0
  263. package/schematics/ng-update/update-prefix/index.js.map +1 -0
  264. package/schematics/utils/{utils.ts → utils.d.ts} +2 -9
  265. package/schematics/utils/utils.js +25 -0
  266. package/schematics/utils/utils.js.map +1 -0
  267. package/ng-package.json +0 -15
  268. package/schematics/ng-update/replace-menu-state-token/index.ts +0 -33
  269. package/schematics/ng-update/update-prefix/index.ts +0 -38
  270. package/src/lib/components/checkbox-selector/checkbox-selector.component.html +0 -91
  271. package/src/lib/components/checkbox-selector/checkbox-selector.component.less +0 -67
  272. package/src/lib/components/checkbox-selector/checkbox-selector.component.ts +0 -176
  273. package/src/lib/components/checkbox-selector/checkbox-selector.types.ts +0 -8
  274. package/src/lib/components/column-settings/column-settings.component.html +0 -160
  275. package/src/lib/components/column-settings/column-settings.component.less +0 -131
  276. package/src/lib/components/column-settings/column-settings.component.ts +0 -352
  277. package/src/lib/components/column-settings/components/column-settings-template/column-settings-template.component.html +0 -65
  278. package/src/lib/components/column-settings/components/column-settings-template/column-settings-template.component.less +0 -79
  279. package/src/lib/components/column-settings/components/column-settings-template/column-settings-template.component.ts +0 -114
  280. package/src/lib/components/column-settings/consts/column-settings.consts.ts +0 -9
  281. package/src/lib/components/column-settings/types/column-settings.types.ts +0 -26
  282. package/src/lib/components/divider/divider.component.html +0 -4
  283. package/src/lib/components/divider/divider.component.less +0 -10
  284. package/src/lib/components/divider/divider.component.ts +0 -12
  285. package/src/lib/components/filter-button/filter-button.component.html +0 -20
  286. package/src/lib/components/filter-button/filter-button.component.less +0 -41
  287. package/src/lib/components/filter-button/filter-button.component.ts +0 -18
  288. package/src/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.html +0 -22
  289. package/src/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.less +0 -23
  290. package/src/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.ts +0 -31
  291. package/src/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.html +0 -49
  292. package/src/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.less +0 -37
  293. package/src/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.ts +0 -66
  294. package/src/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.html +0 -147
  295. package/src/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.less +0 -45
  296. package/src/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.ts +0 -114
  297. package/src/lib/components/filters/components/filter-list/filter-list-saved/filter-list-saved.component.html +0 -44
  298. package/src/lib/components/filters/components/filter-list/filter-list-saved/filter-list-saved.component.less +0 -49
  299. package/src/lib/components/filters/components/filter-list/filter-list-saved/filter-list-saved.component.ts +0 -167
  300. package/src/lib/components/filters/components/filter-list/filter-list.service.ts +0 -97
  301. package/src/lib/components/filters/components/filter-list/filters-section/filters-section.component.html +0 -18
  302. package/src/lib/components/filters/components/filter-list/filters-section/filters-section.component.less +0 -55
  303. package/src/lib/components/filters/components/filter-list/filters-section/filters-section.component.ts +0 -69
  304. package/src/lib/components/filters/components/filter-list.module.ts +0 -29
  305. package/src/lib/components/filters/register-table-filter.component.html +0 -53
  306. package/src/lib/components/filters/register-table-filter.component.less +0 -17
  307. package/src/lib/components/filters/register-table-filter.component.ts +0 -167
  308. package/src/lib/components/filters/register-table-filter.module.ts +0 -22
  309. package/src/lib/components/inputs/inputs.module.ts +0 -104
  310. package/src/lib/components/inputs/param-calendar-year/param-calendar-year.component.html +0 -49
  311. package/src/lib/components/inputs/param-calendar-year/param-calendar-year.component.less +0 -70
  312. package/src/lib/components/inputs/param-calendar-year/param-calendar-year.component.ts +0 -52
  313. package/src/lib/components/inputs/param-custom/param-custom.component.html +0 -1
  314. package/src/lib/components/inputs/param-custom/param-custom.component.ts +0 -9
  315. package/src/lib/components/inputs/param-date/param-date.component.html +0 -55
  316. package/src/lib/components/inputs/param-date/param-date.component.less +0 -67
  317. package/src/lib/components/inputs/param-date/param-date.component.ts +0 -77
  318. package/src/lib/components/inputs/param-date-range/param-date-range.component.html +0 -45
  319. package/src/lib/components/inputs/param-date-range/param-date-range.component.less +0 -75
  320. package/src/lib/components/inputs/param-date-range/param-date-range.component.ts +0 -67
  321. package/src/lib/components/inputs/param-date-time/param-date-time.component.html +0 -70
  322. package/src/lib/components/inputs/param-date-time/param-date-time.component.less +0 -72
  323. package/src/lib/components/inputs/param-date-time/param-date-time.component.ts +0 -101
  324. package/src/lib/components/inputs/param-date-time-range/param-date-time-range.component.html +0 -67
  325. package/src/lib/components/inputs/param-date-time-range/param-date-time-range.component.less +0 -103
  326. package/src/lib/components/inputs/param-date-time-range/param-date-time-range.component.ts +0 -128
  327. package/src/lib/components/inputs/param-month/param-month.component.html +0 -46
  328. package/src/lib/components/inputs/param-month/param-month.component.less +0 -72
  329. package/src/lib/components/inputs/param-month/param-month.component.ts +0 -55
  330. package/src/lib/components/inputs/param-month-range/param-month-range.component.html +0 -39
  331. package/src/lib/components/inputs/param-month-range/param-month-range.component.less +0 -71
  332. package/src/lib/components/inputs/param-month-range/param-month-range.component.ts +0 -76
  333. package/src/lib/components/inputs/param-multi-select/param-multi-select.component.html +0 -84
  334. package/src/lib/components/inputs/param-multi-select/param-multi-select.component.less +0 -108
  335. package/src/lib/components/inputs/param-multi-select/param-multi-select.component.ts +0 -448
  336. package/src/lib/components/inputs/param-select/param-select.component.html +0 -106
  337. package/src/lib/components/inputs/param-select/param-select.component.less +0 -26
  338. package/src/lib/components/inputs/param-select/param-select.component.ts +0 -318
  339. package/src/lib/components/inputs/param-switcher/param-switcher.component.html +0 -8
  340. package/src/lib/components/inputs/param-switcher/param-switcher.component.less +0 -53
  341. package/src/lib/components/inputs/param-switcher/param-switcher.component.ts +0 -13
  342. package/src/lib/components/inputs/param-switcher-date-time-range/consts/param-switcher-date-time-range.consts.ts +0 -29
  343. package/src/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.html +0 -19
  344. package/src/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.less +0 -76
  345. package/src/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.ts +0 -134
  346. package/src/lib/components/inputs/param-switcher-date-time-range/types/param-switcher-date-time-range.types.ts +0 -8
  347. package/src/lib/components/inputs/param-text/param-text.component.html +0 -59
  348. package/src/lib/components/inputs/param-text/param-text.component.less +0 -33
  349. package/src/lib/components/inputs/param-text/param-text.component.ts +0 -36
  350. package/src/lib/components/inputs/param-textarea/param-textarea.component.html +0 -61
  351. package/src/lib/components/inputs/param-textarea/param-textarea.component.less +0 -21
  352. package/src/lib/components/inputs/param-textarea/param-textarea.component.ts +0 -33
  353. package/src/lib/components/inputs/param-toggle/param-toggle.component.html +0 -40
  354. package/src/lib/components/inputs/param-toggle/param-toggle.component.less +0 -69
  355. package/src/lib/components/inputs/param-toggle/param-toggle.component.ts +0 -14
  356. package/src/lib/components/inputs/param-tree/consts/param-tree.consts.ts +0 -59
  357. package/src/lib/components/inputs/param-tree/param-tree.component.html +0 -51
  358. package/src/lib/components/inputs/param-tree/param-tree.component.less +0 -3
  359. package/src/lib/components/inputs/param-tree/param-tree.component.ts +0 -282
  360. package/src/lib/components/inputs/param-tree/services/param-tree.service.ts +0 -176
  361. package/src/lib/components/inputs/param-tree/services/sync-tree-loader.service.ts +0 -18
  362. package/src/lib/components/inputs/param-tree/types/param-tree.types.ts +0 -39
  363. package/src/lib/components/inputs/param-tree/utils/param-tree.utils.ts +0 -18
  364. package/src/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.html +0 -78
  365. package/src/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.less +0 -109
  366. package/src/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.ts +0 -89
  367. package/src/lib/components/inputs/param-tree-select/param-tree-select.component.html +0 -54
  368. package/src/lib/components/inputs/param-tree-select/param-tree-select.component.less +0 -56
  369. package/src/lib/components/inputs/param-tree-select/param-tree-select.component.ts +0 -91
  370. package/src/lib/components/inputs/sub-components/param-delete-content-icon/param-delete-content-btn.component.html +0 -5
  371. package/src/lib/components/inputs/sub-components/param-delete-content-icon/param-delete-content-btn.component.ts +0 -13
  372. package/src/lib/components/inputs/sub-components/param-invalid-icon/param-invalid-icon.component.html +0 -4
  373. package/src/lib/components/inputs/sub-components/param-invalid-icon/param-invalid-icon.component.ts +0 -11
  374. package/src/lib/components/menu-constructor/sproc-menu-constructor.component.html +0 -95
  375. package/src/lib/components/menu-constructor/sproc-menu-constructor.component.less +0 -183
  376. package/src/lib/components/menu-constructor/sproc-menu-constructor.component.ts +0 -687
  377. package/src/lib/components/menu-constructor/store/sproc-abstract-menu-constructor.store.ts +0 -32
  378. package/src/lib/components/menu-constructor/store/sproc-menu-constructor.consts.ts +0 -46
  379. package/src/lib/components/page-menu/README.md +0 -60
  380. package/src/lib/components/page-menu/schema/sproc-page-menu.consts.ts +0 -8
  381. package/src/lib/components/page-menu/schema/sproc-page-menu.schema.ts +0 -35
  382. package/src/lib/components/page-menu/schema/sproc-page-menu.tokens.ts +0 -5
  383. package/src/lib/components/page-menu/schema/sproc-page-menu.types.ts +0 -42
  384. package/src/lib/components/page-menu/sproc-page-menu.component.html +0 -166
  385. package/src/lib/components/page-menu/sproc-page-menu.component.less +0 -228
  386. package/src/lib/components/page-menu/sproc-page-menu.component.ts +0 -337
  387. package/src/lib/components/paginator/paginator.component.html +0 -97
  388. package/src/lib/components/paginator/paginator.component.less +0 -101
  389. package/src/lib/components/paginator/paginator.component.ts +0 -192
  390. package/src/lib/components/paginator/types/paginator.types.ts +0 -16
  391. package/src/lib/components/register-table/consts/register-table.consts.ts +0 -3
  392. package/src/lib/components/register-table/directives/cell-template.directive.ts +0 -11
  393. package/src/lib/components/register-table/directives/header-template.directive.ts +0 -11
  394. package/src/lib/components/register-table/model/schema.ts +0 -62
  395. package/src/lib/components/register-table/pipes/class-by-type.pipe.ts +0 -28
  396. package/src/lib/components/register-table/pipes/sticky-column.pipe.ts +0 -11
  397. package/src/lib/components/register-table/register-table.component.html +0 -257
  398. package/src/lib/components/register-table/register-table.component.less +0 -151
  399. package/src/lib/components/register-table/register-table.component.ts +0 -743
  400. package/src/lib/components/reset-settings-form/reset-settings-form.component.html +0 -14
  401. package/src/lib/components/reset-settings-form/reset-settings-form.component.less +0 -26
  402. package/src/lib/components/reset-settings-form/reset-settings-form.component.ts +0 -15
  403. package/src/lib/components/search-input/search-input.component.html +0 -6
  404. package/src/lib/components/search-input/search-input.component.less +0 -17
  405. package/src/lib/components/search-input/search-input.component.ts +0 -31
  406. package/src/lib/components/sliding-panel/sliding-panel.component.html +0 -13
  407. package/src/lib/components/sliding-panel/sliding-panel.component.less +0 -112
  408. package/src/lib/components/sliding-panel/sliding-panel.component.ts +0 -36
  409. package/src/lib/components/sliding-panel/sliding-panel.module.ts +0 -11
  410. package/src/lib/consts/date-time.consts.ts +0 -1
  411. package/src/lib/consts/index.ts +0 -8
  412. package/src/lib/consts/inputs.consts.ts +0 -9
  413. package/src/lib/consts/month.consts.ts +0 -82
  414. package/src/lib/consts/params.consts.ts +0 -1
  415. package/src/lib/consts/register-base.consts.ts +0 -40
  416. package/src/lib/core/form-group-wrapper/errors-consts.ts +0 -6
  417. package/src/lib/core/form-group-wrapper/form-group-wrapper.ts +0 -109
  418. package/src/lib/core/input-control/input-control.ts +0 -30
  419. package/src/lib/core/param/param-base.ts +0 -262
  420. package/src/lib/core/param/param-date-base.ts +0 -30
  421. package/src/lib/core/param/param-select-base.ts +0 -118
  422. package/src/lib/core/param/param-text-base.ts +0 -23
  423. package/src/lib/core/register-base/register-base.store.ts +0 -84
  424. package/src/lib/core/register-base/register-base.ts +0 -854
  425. package/src/lib/directives/date/date-time.types.ts +0 -36
  426. package/src/lib/directives/date/format-date.pipe.ts +0 -28
  427. package/src/lib/directives/number/number-only.directive.ts +0 -36
  428. package/src/lib/directives/sticky/sticky-relative.directive.ts +0 -30
  429. package/src/lib/directives/sticky/sticky-relative.service.ts +0 -34
  430. package/src/lib/directives/sticky/sticky.directive.ts +0 -189
  431. package/src/lib/services/date-time.service.ts +0 -399
  432. package/src/lib/services/dialog/dialog.service.ts +0 -62
  433. package/src/lib/services/dom-intersection.service.ts +0 -23
  434. package/src/lib/services/filter/filters-state.service.ts +0 -83
  435. package/src/lib/services/filter/filters-transmit.service.ts +0 -105
  436. package/src/lib/services/filter/filters.service.ts +0 -21
  437. package/src/lib/services/inputs-state.service.ts +0 -157
  438. package/src/lib/services/inputs.service.ts +0 -114
  439. package/src/lib/services/key-pressed.service.ts +0 -40
  440. package/src/lib/services/resize-window-observer.service.ts +0 -37
  441. package/src/lib/services/selected-objects-state.service.ts +0 -159
  442. package/src/lib/store/fast-query-store.service.ts +0 -132
  443. package/src/lib/types/hasura.types.ts +0 -41
  444. package/src/lib/types/inputs.types.ts +0 -63
  445. package/src/lib/types/params.types.ts +0 -42
  446. package/src/lib/types/register-base.types.ts +0 -161
  447. package/src/lib/types/sub-types.ts +0 -15
  448. package/src/lib/types/user-profile.types.ts +0 -18
  449. package/src/lib/utils/functions.ts +0 -11
  450. package/src/lib/utils/get-url-segment.ts +0 -46
  451. package/src/lib/utils/prizm.shared.module.ts +0 -176
  452. package/src/lib/utils/rxjs.ts +0 -33
  453. package/src/lib/utils/select-all-utils.ts +0 -16
  454. package/tsconfig.lib.json +0 -16
  455. package/tsconfig.lib.prod.json +0 -11
  456. package/tsconfig.schematics.json +0 -26
  457. package/tsconfig.spec.json +0 -15
  458. /package/{src/lib/components/column-settings/index.ts → lib/components/column-settings/index.d.ts} +0 -0
  459. /package/{src/lib/components/filters/index.ts → lib/components/filters/index.d.ts} +0 -0
  460. /package/{src/lib/components/index.ts → lib/components/index.d.ts} +0 -0
  461. /package/{src/lib/components/inputs/index.ts → lib/components/inputs/index.d.ts} +0 -0
  462. /package/{src/lib/components/inputs/param-switcher-date-time-range/index.ts → lib/components/inputs/param-switcher-date-time-range/index.d.ts} +0 -0
  463. /package/{src/lib/components/inputs/param-tree/index.ts → lib/components/inputs/param-tree/index.d.ts} +0 -0
  464. /package/{src/lib/components/menu-constructor/index.ts → lib/components/menu-constructor/index.d.ts} +0 -0
  465. /package/{src/lib/components/page-menu/index.ts → lib/components/page-menu/index.d.ts} +0 -0
  466. /package/{src/lib/components/register-table/index.ts → lib/components/register-table/index.d.ts} +0 -0
  467. /package/{src/lib/core/form-group-wrapper/index.ts → lib/core/form-group-wrapper/index.d.ts} +0 -0
  468. /package/{src/lib/core/index.ts → lib/core/index.d.ts} +0 -0
  469. /package/{src/lib/core/input-control/index.ts → lib/core/input-control/index.d.ts} +0 -0
  470. /package/{src/lib/core/param/index.ts → lib/core/param/index.d.ts} +0 -0
  471. /package/{src/lib/core/register-base/index.ts → lib/core/register-base/index.d.ts} +0 -0
  472. /package/{src/lib/directives/index.ts → lib/directives/index.d.ts} +0 -0
  473. /package/{src/lib/directives/sticky/index.ts → lib/directives/sticky/index.d.ts} +0 -0
  474. /package/{src/lib/services/dialog/index.ts → lib/services/dialog/index.d.ts} +0 -0
  475. /package/{src/lib/services/index.ts → lib/services/index.d.ts} +0 -0
  476. /package/{src/lib/store/index.ts → lib/store/index.d.ts} +0 -0
  477. /package/{src/lib/types/index.ts → lib/types/index.d.ts} +0 -0
  478. /package/{src/lib/utils/index.ts → lib/utils/index.d.ts} +0 -0
  479. /package/{src/public-api.ts → public-api.d.ts} +0 -0
@@ -0,0 +1,23 @@
1
+ import { Injectable, Optional } from '@angular/core';
2
+ import { InputsService } from '../inputs.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./filters-transmit.service";
5
+ export class FiltersService extends InputsService {
6
+ constructor(injector, _transmitter) {
7
+ super(injector);
8
+ this._transmitter = _transmitter;
9
+ }
10
+ init(group) {
11
+ super.init(group);
12
+ this._transmitter?.setForm(this.inputs);
13
+ this._transmitter?.setSearchInput(this.searchInput);
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FiltersService, deps: [{ token: i0.Injector }, { token: i1.FiltersTransmitService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
16
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FiltersService }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FiltersService, decorators: [{
19
+ type: Injectable
20
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.FiltersTransmitService, decorators: [{
21
+ type: Optional
22
+ }] }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZ2lzdGVyLWJhc2Uvc3JjL2xpYi9zZXJ2aWNlcy9maWx0ZXIvZmlsdGVycy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVksUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBS2xELE1BQU0sT0FBTyxjQUF5QixTQUFRLGFBQXVCO0lBQ25FLFlBQ0UsUUFBa0IsRUFDVyxZQUFvQztRQUVqRSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFGYSxpQkFBWSxHQUFaLFlBQVksQ0FBd0I7SUFHbkUsQ0FBQztJQUVlLElBQUksQ0FBQyxLQUFpQztRQUNwRCxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxCLElBQUksQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsWUFBWSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDdEQsQ0FBQzsrR0FiVSxjQUFjO21IQUFkLGNBQWM7OzRGQUFkLGNBQWM7a0JBRDFCLFVBQVU7OzBCQUlOLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElucHV0c1NlcnZpY2UgfSBmcm9tICcuLi9pbnB1dHMuc2VydmljZSc7XG5pbXBvcnQgeyBGaWx0ZXJzVHJhbnNtaXRTZXJ2aWNlIH0gZnJvbSAnLi9maWx0ZXJzLXRyYW5zbWl0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUdyb3VwV3JhcHBlciB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybS1ncm91cC13cmFwcGVyL2Zvcm0tZ3JvdXAtd3JhcHBlcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGaWx0ZXJzU2VydmljZTxGb3JtVHlwZT4gZXh0ZW5kcyBJbnB1dHNTZXJ2aWNlPEZvcm1UeXBlPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF90cmFuc21pdHRlcjogRmlsdGVyc1RyYW5zbWl0U2VydmljZVxuICApIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW5pdChncm91cDogRm9ybUdyb3VwV3JhcHBlcjxGb3JtVHlwZT4pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0KGdyb3VwKTtcblxuICAgIHRoaXMuX3RyYW5zbWl0dGVyPy5zZXRGb3JtKHRoaXMuaW5wdXRzKTtcbiAgICB0aGlzLl90cmFuc21pdHRlcj8uc2V0U2VhcmNoSW5wdXQodGhpcy5zZWFyY2hJbnB1dCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export * from './dialog';
2
+ export * from './date-time.service';
3
+ export { FiltersService } from './filter/filters.service';
4
+ export { FiltersStateService } from './filter/filters-state.service';
5
+ export { FiltersTransmitService } from './filter/filters-transmit.service';
6
+ export { ResizeWindowObserverService } from './resize-window-observer.service';
7
+ export { SelectedObjectsStateService } from './selected-objects-state.service';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL3NlcnZpY2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kaWFsb2cnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLXRpbWUuc2VydmljZSc7XG5leHBvcnQgeyBGaWx0ZXJzU2VydmljZSB9IGZyb20gJy4vZmlsdGVyL2ZpbHRlcnMuc2VydmljZSc7XG5leHBvcnQgeyBGaWx0ZXJzU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9maWx0ZXIvZmlsdGVycy1zdGF0ZS5zZXJ2aWNlJztcbmV4cG9ydCB7IEZpbHRlcnNUcmFuc21pdFNlcnZpY2UgfSBmcm9tICcuL2ZpbHRlci9maWx0ZXJzLXRyYW5zbWl0LnNlcnZpY2UnO1xuZXhwb3J0IHsgUmVzaXplV2luZG93T2JzZXJ2ZXJTZXJ2aWNlIH0gZnJvbSAnLi9yZXNpemUtd2luZG93LW9ic2VydmVyLnNlcnZpY2UnO1xuZXhwb3J0IHsgU2VsZWN0ZWRPYmplY3RzU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi9zZWxlY3RlZC1vYmplY3RzLXN0YXRlLnNlcnZpY2UnO1xuIl19
@@ -0,0 +1,130 @@
1
+ import { DestroyRef, inject, Injectable } from '@angular/core';
2
+ import { BehaviorSubject, Subject } from 'rxjs';
3
+ import { EInputsAction, EInputsState } from '../types';
4
+ import { Router } from '@angular/router';
5
+ import { getLastSegmentOfPathName } from '../utils';
6
+ import * as i0 from "@angular/core";
7
+ export const DEFAULT_LIMIT = 30;
8
+ export class InputsStateService {
9
+ constructor() {
10
+ this.unsubscribe$ = new Subject();
11
+ this._page$ = new BehaviorSubject(1);
12
+ this._limit$ = new BehaviorSubject(null);
13
+ this._offset$ = new BehaviorSubject(0);
14
+ this._count$ = new BehaviorSubject(0);
15
+ this._sorter$ = new BehaviorSubject([]);
16
+ this._name$ = new BehaviorSubject('');
17
+ this._state$ = new BehaviorSubject({
18
+ state: EInputsState.HIDDEN,
19
+ action: EInputsAction.OPEN,
20
+ });
21
+ // TODO: заменить на нормальный тип
22
+ this._gqlValues$ = new BehaviorSubject([]);
23
+ this._pinned$ = new BehaviorSubject(false);
24
+ this.page$ = this._page$.asObservable();
25
+ this.limit$ = this._limit$.asObservable();
26
+ this.offset$ = this._offset$.asObservable();
27
+ this.count$ = this._count$.asObservable();
28
+ this.sorter$ = this._sorter$.asObservable();
29
+ this.name$ = this._name$.asObservable();
30
+ this.state$ = this._state$.asObservable();
31
+ this.gqlValues$ = this._gqlValues$.asObservable();
32
+ this.pinned$ = this._pinned$.asObservable();
33
+ this.destroyRef = inject(DestroyRef);
34
+ this.router = inject(Router);
35
+ this.modulePath = getLastSegmentOfPathName(this.router.url);
36
+ this.pinStorageKey = `@pin/${this.modulePath}`;
37
+ this.pinnedInputsStorageKey = `@pinned-inputs/${this.modulePath}`;
38
+ }
39
+ toggle() {
40
+ const isOpen = this.state.state !== EInputsState.HIDDEN;
41
+ // если фильтр был открыт, значит его закрывают - открепляем
42
+ if (isOpen) {
43
+ this.setPin(false);
44
+ }
45
+ this.setState({
46
+ state: isOpen ? EInputsState.HIDDEN : EInputsState.FILTER_LIST,
47
+ action: EInputsAction.OPEN,
48
+ });
49
+ }
50
+ togglePin() {
51
+ this.setPin(!this.isPin);
52
+ }
53
+ ngOnDestroy() {
54
+ this._page$.complete();
55
+ this._limit$.complete();
56
+ this._name$.complete();
57
+ this._offset$.complete();
58
+ this._count$.complete();
59
+ this._state$.complete();
60
+ this._sorter$.complete();
61
+ this._gqlValues$.complete();
62
+ this._pinned$.complete();
63
+ this.unsubscribe$.next();
64
+ this.unsubscribe$.complete();
65
+ this.onDestroy();
66
+ }
67
+ onDestroy() { }
68
+ setPage(page) {
69
+ this._page$.next(page);
70
+ }
71
+ setLimit(limit) {
72
+ this._limit$.next(limit);
73
+ }
74
+ setOffset(offset) {
75
+ this._offset$.next(offset);
76
+ }
77
+ setSorter(sort) {
78
+ this._sorter$.next(sort);
79
+ }
80
+ setName(name) {
81
+ this._name$.next(name);
82
+ }
83
+ setCount(count) {
84
+ this._count$.next(count);
85
+ }
86
+ setState(state) {
87
+ if (!(this.isPin && state.state === EInputsState.HIDDEN)) {
88
+ this._state$.next(state);
89
+ }
90
+ }
91
+ setGqlValues(values) {
92
+ this._gqlValues$.next(values);
93
+ }
94
+ setPin(isPin) {
95
+ this._pinned$.next(isPin);
96
+ }
97
+ get page() {
98
+ return this._page$.getValue();
99
+ }
100
+ get limit() {
101
+ return this._limit$.getValue() ?? DEFAULT_LIMIT;
102
+ }
103
+ get offset() {
104
+ return this._offset$.getValue();
105
+ }
106
+ get state() {
107
+ return this._state$.getValue();
108
+ }
109
+ get count() {
110
+ return this._count$.getValue();
111
+ }
112
+ get sorter() {
113
+ return this._sorter$.getValue();
114
+ }
115
+ get name() {
116
+ return this._name$.getValue();
117
+ }
118
+ get gqlValues() {
119
+ return this._gqlValues$.getValue();
120
+ }
121
+ get isPin() {
122
+ return this._pinned$.getValue();
123
+ }
124
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputsStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
125
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputsStateService }); }
126
+ }
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputsStateService, decorators: [{
128
+ type: Injectable
129
+ }] });
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLXN0YXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL3NlcnZpY2VzL2lucHV0cy1zdGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBMkIsTUFBTSxVQUFVLENBQUM7QUFDaEYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFHcEQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztBQUdoQyxNQUFNLE9BQU8sa0JBQWtCO0lBRC9CO1FBRXFCLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUVuQyxXQUFNLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUNuRCxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBK0IsRUFBRSxDQUFDLENBQUM7UUFDakUsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLFlBQU8sR0FBRyxJQUFJLGVBQWUsQ0FBZTtZQUM3RCxLQUFLLEVBQUUsWUFBWSxDQUFDLE1BQU07WUFDMUIsTUFBTSxFQUFFLGFBQWEs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UUFDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksYUFBYSxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xDLENBQUM7K0dBakpVLGtCQUFrQjttSEFBbEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgaW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRUlucHV0c0FjdGlvbiwgRUlucHV0c1N0YXRlLCBHcWxGaWVsZHMsIElJbnB1dHNTdGF0ZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBnZXRMYXN0U2VnbWVudE9mUGF0aE5hbWUgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBSZWdpc3RlclRhYmxlQ2VsbFNvcnRlciB9IGZyb20gJy4uL2NvbXBvbmVudHMvcmVnaXN0ZXItdGFibGUvbW9kZWwvc2NoZW1hJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTElNSVQgPSAzMDtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElucHV0c1N0YXRlU2VydmljZTxUID0gYW55PiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByb3RlY3RlZCByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBfcGFnZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfbGltaXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9vZmZzZXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NvdW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigwKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9zb3J0ZXIkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxSZWdpc3RlclRhYmxlQ2VsbFNvcnRlcjxUPltdPihbXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfbmFtZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3N0YXRlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SUlucHV0c1N0YXRlPih7XG4gICAgc3RhdGU6IEVJbnB1dHNTdGF0ZS5ISURERU4sXG4gICAgYWN0aW9uOiBFSW5wdXRzQWN0aW9uLk9QRU4sXG4gIH0pO1xuICAvLyBUT0RPOiDQt9Cw0LzQtdC90LjRgtGMINC90LAg0L3QvtGA0LzQsNC70YzQvdGL0Lkg0YLQuNC/XG4gIHByb3RlY3RlZCByZWFkb25seSBfZ3FsVmFsdWVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8R3FsRmllbGRzPihbXSk7XG4gIHByb3RlY3RlZCByZWFkb25seSBfcGlubmVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHB1YmxpYyByZWFkb25seSBwYWdlJCA9IHRoaXMuX3BhZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICBwdWJsaWMgcmVhZG9ubHkgbGltaXQkID0gdGhpcy5fbGltaXQkLmFzT2JzZXJ2YWJsZSgpO1xuICBwdWJsaWMgcmVhZG9ubHkgb2Zmc2V0JCA9IHRoaXMuX29mZnNldCQuYXNPYnNlcnZhYmxlKCk7XG4gIHB1YmxpYyByZWFkb25seSBjb3VudCQgPSB0aGlzLl9jb3VudCQuYXNPYnNlcnZhYmxlKCk7XG4gIHB1YmxpYyByZWFkb25seSBzb3J0ZXIkID0gdGhpcy5fc29ydGVyJC5hc09ic2VydmFibGUoKTtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWUkID0gdGhpcy5fbmFtZSQuYXNPYnNlcnZhYmxlKCk7XG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZSQgPSB0aGlzLl9zdGF0ZSQuYXNPYnNlcnZhYmxlKCk7XG4gIHB1YmxpYyByZWFkb25seSBncWxWYWx1ZXMkID0gdGhpcy5fZ3FsVmFsdWVzJC5hc09ic2VydmFibGUoKTtcbiAgcHVibGljIHJlYWRvbmx5IHBpbm5lZCQgPSB0aGlzLl9waW5uZWQkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbW9kdWxlUGF0aCA9IGdldExhc3RTZWdtZW50T2ZQYXRoTmFtZSh0aGlzLnJvdXRlci51cmwpO1xuXG4gIHB1YmxpYyByZWFkb25seSBwaW5TdG9yYWdlS2V5ID0gYEBwaW4vJHt0aGlzLm1vZHVsZVBhdGh9YDtcbiAgcHVibGljIHJlYWRvbmx5IHBpbm5lZElucHV0c1N0b3JhZ2VLZXkgPSBgQHBpbm5lZC1pbnB1dHMvJHt0aGlzLm1vZHVsZVBhdGh9YDtcblxuICBwdWJsaWMgdG9nZ2xlKCk6IHZvaWQge1xuICAgIGNvbnN0IGlzT3BlbiA9IHRoaXMuc3RhdGUuc3RhdGUgIT09IEVJbnB1dHNTdGF0ZS5ISURERU47XG5cbiAgICAvLyDQtdGB0LvQuCDRhNC40LvRjNGC0YAg0LHRi9C7INC+0YLQutGA0YvRgiwg0LfQvdCw0YfQuNGCINC10LPQviDQt9Cw0LrRgNGL0LLQsNGO0YIgLSDQvtGC0LrRgNC10L/Qu9GP0LXQvFxuICAgIGlmIChpc09wZW4pIHtcbiAgICAgIHRoaXMuc2V0UGluKGZhbHNlKTtcbiAgICB9XG5cbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHN0YXRlOiBpc09wZW4gPyBFSW5wdXRzU3RhdGUuSElEREVOIDogRUlucHV0c1N0YXRlLkZJTFRFUl9MSVNULFxuICAgICAgYWN0aW9uOiBFSW5wdXRzQWN0aW9uLk9QRU4sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUGluKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0UGluKCF0aGlzLmlzUGluKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9wYWdlJC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2xpbWl0JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX25hbWUkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fb2Zmc2V0JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX2NvdW50JC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3N0YXRlJC5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX3NvcnRlciQuY29tcGxldGUoKTtcbiAgICB0aGlzLl9ncWxWYWx1ZXMkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fcGlubmVkJC5jb21wbGV0ZSgpO1xuXG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLm9uRGVzdHJveSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uRGVzdHJveSgpOiB2b2lkIHt9XG5cbiAgcHVibGljIHNldFBhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fcGFnZSQubmV4dChwYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaW1pdChsaW1pdDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fbGltaXQkLm5leHQobGltaXQpO1xuICB9XG5cbiAgcHVibGljIHNldE9mZnNldChvZmZzZXQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX29mZnNldCQubmV4dChvZmZzZXQpO1xuICB9XG5cbiAgcHVibGljIHNldFNvcnRlcihzb3J0OiBSZWdpc3RlclRhYmxlQ2VsbFNvcnRlcjxUPltdKTogdm9pZCB7XG4gICAgdGhpcy5fc29ydGVyJC5uZXh0KHNvcnQpO1xuICB9XG5cbiAgcHVibGljIHNldE5hbWUobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fbmFtZSQubmV4dChuYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRDb3VudChjb3VudDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fY291bnQkLm5leHQoY291bnQpO1xuICB9XG5cbiAgcHVibGljIHNldFN0YXRlKHN0YXRlOiBJSW5wdXRzU3RhdGUpOiB2b2lkIHtcbiAgICBpZiAoISh0aGlzLmlzUGluICYmIHN0YXRlLnN0YXRlID09PSBFSW5wdXRzU3RhdGUuSElEREVOKSkge1xuICAgICAgdGhpcy5fc3RhdGUkLm5leHQoc3RhdGUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRHcWxWYWx1ZXModmFsdWVzOiBHcWxGaWVsZHMpOiB2b2lkIHtcbiAgICB0aGlzLl9ncWxWYWx1ZXMkLm5leHQodmFsdWVzKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRQaW4oaXNQaW46IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9waW5uZWQkLm5leHQoaXNQaW4pO1xuICB9XG5cbiAgcHVibGljIGdldCBwYWdlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3BhZ2UkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxpbWl0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2xpbWl0JC5nZXRWYWx1ZSgpID8/IERFRkFVTFRfTElNSVQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9mZnNldCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9vZmZzZXQkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXRlKCk6IElJbnB1dHNTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBjb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jb3VudCQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc29ydGVyKCk6IFJlZ2lzdGVyVGFibGVDZWxsU29ydGVyPFQ+W10ge1xuICAgIHJldHVybiB0aGlzLl9zb3J0ZXIkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbmFtZSQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ3FsVmFsdWVzKCk6IEdxbEZpZWxkcyB7XG4gICAgcmV0dXJuIHRoaXMuX2dxbFZhbHVlcyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNQaW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Bpbm5lZCQuZ2V0VmFsdWUoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,88 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { InputControl } from '../core/input-control/input-control';
4
+ import { INPUTS_STATE_CONFIG_KEY, WARN_SEARCH_INPUT_UNDEFINED } from '../consts/inputs.consts';
5
+ import * as i0 from "@angular/core";
6
+ export class InputsService {
7
+ constructor(injector) {
8
+ this.injector = injector;
9
+ this.unsubscribe$ = new Subject();
10
+ this.config = this.injector.get(INPUTS_STATE_CONFIG_KEY, {});
11
+ const { searchInput } = this.config;
12
+ if (searchInput) {
13
+ this._searchInput = new InputControl(null);
14
+ }
15
+ }
16
+ get searchInput() {
17
+ if (!this._searchInput) {
18
+ console.warn(WARN_SEARCH_INPUT_UNDEFINED);
19
+ }
20
+ return this._searchInput;
21
+ }
22
+ get searchValue() {
23
+ return this.searchInput?.getRawValue();
24
+ }
25
+ init(group) {
26
+ this.inputs = group;
27
+ }
28
+ get values() {
29
+ return this.inputs.getRawValue();
30
+ }
31
+ get dirtyValues() {
32
+ return this.inputs.getDirtyValues();
33
+ }
34
+ clear() {
35
+ this.inputs.reset();
36
+ }
37
+ setUserSettingsFilterValues(values) {
38
+ this.clear();
39
+ for (const { id, value } of values) {
40
+ const key = id;
41
+ const control = this._control(key);
42
+ if (control?.saved_value$) {
43
+ control.saved_value$.next(value);
44
+ }
45
+ else {
46
+ console.warn(`Не найдено поле: ${id} для установки значения:`, value);
47
+ }
48
+ }
49
+ }
50
+ _control(key) {
51
+ return this.inputs.controls[key];
52
+ }
53
+ get userSettingsFilter() {
54
+ return Object.entries(this.inputs.controls).map(([id, abstractControl]) => {
55
+ const control = abstractControl;
56
+ const value = control.saved_value$.getValue();
57
+ const savedValue = value === null ? null : value;
58
+ return {
59
+ id,
60
+ value: savedValue,
61
+ };
62
+ });
63
+ }
64
+ get gqlFilter() {
65
+ const filter = [];
66
+ for (const abstractControl of Object.values(this.inputs.controls)) {
67
+ const control = abstractControl;
68
+ if (control.gql_value) {
69
+ filter.push(control.gql_value);
70
+ }
71
+ control.applied?.set(!!control.gql_value);
72
+ }
73
+ if (this.searchValue && this.searchInput?.gql_value) {
74
+ filter.push(this.searchInput.gql_value);
75
+ }
76
+ return filter;
77
+ }
78
+ ngOnDestroy() {
79
+ this.unsubscribe$.next();
80
+ this.unsubscribe$.complete();
81
+ }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputsService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
83
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputsService }); }
84
+ }
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InputsService, decorators: [{
86
+ type: Injectable
87
+ }], ctorParameters: () => [{ type: i0.Injector }] });
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL3NlcnZpY2VzL2lucHV0cy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFLL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUcvRixNQUFNLE9BQU8sYUFBYTtJQU94QixZQUE2QixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBTDVCLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQU1wRCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTdELE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRXBDLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixPQUFPLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUs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bUhBQWIsYUFBYTs7NEZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm1Hcm91cFdyYXBwZXIgfSBmcm9tICcuLi9jb3JlL2Zvcm0tZ3JvdXAtd3JhcHBlci9mb3JtLWdyb3VwLXdyYXBwZXInO1xuaW1wb3J0IHsgSVRwVXNlclNldHRpbmdzU2V0dGluZ3NGaWx0ZXIgfSBmcm9tICcuLi90eXBlcy9yZWdpc3Rlci1iYXNlLnR5cGVzJztcbmltcG9ydCB7IEV4dHJhY3RGb3JtIH0gZnJvbSAnLi4vdHlwZXMvc3ViLXR5cGVzJztcbmltcG9ydCB7IElJbnB1dENvbnRyb2wsIElJbnB1dHNTdGF0ZUNvbmZpZyB9IGZyb20gJy4uL3R5cGVzL2lucHV0cy50eXBlcyc7XG5pbXBvcnQgeyBJbnB1dENvbnRyb2wgfSBmcm9tICcuLi9jb3JlL2lucHV0LWNvbnRyb2wvaW5wdXQtY29udHJvbCc7XG5pbXBvcnQgeyBJTlBVVFNfU1RBVEVfQ09ORklHX0tFWSwgV0FSTl9TRUFSQ0hfSU5QVVRfVU5ERUZJTkVEIH0gZnJvbSAnLi4vY29uc3RzL2lucHV0cy5jb25zdHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSW5wdXRzU2VydmljZTxGb3JtVHlwZT4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29uZmlnOiBJSW5wdXRzU3RhdGVDb25maWc7XG4gIHByb3RlY3RlZCByZWFkb25seSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlYXJjaElucHV0OiBJSW5wdXRDb250cm9sPHN0cmluZyB8IG51bGw+IHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgaW5wdXRzITogRm9ybUdyb3VwV3JhcHBlcjxGb3JtVHlwZT47XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICB0aGlzLmNvbmZpZyA9IHRoaXMuaW5qZWN0b3IuZ2V0KElOUFVUU19TVEFURV9DT05GSUdfS0VZLCB7fSk7XG5cbiAgICBjb25zdCB7IHNlYXJjaElucHV0IH0gPSB0aGlzLmNvbmZpZztcblxuICAgIGlmIChzZWFyY2hJbnB1dCkge1xuICAgICAgdGhpcy5fc2VhcmNoSW5wdXQgPSBuZXcgSW5wdXRDb250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgc2VhcmNoSW5wdXQoKTogSUlucHV0Q29udHJvbDxzdHJpbmcgfCBudWxsPiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLl9zZWFyY2hJbnB1dCkge1xuICAgICAgY29uc29sZS53YXJuKFdBUk5fU0VBUkNIX0lOUFVUX1VOREVGSU5FRCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaElucHV0O1xuICB9XG5cbiAgcHVibGljIGdldCBzZWFyY2hWYWx1ZSgpOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hJbnB1dD8uZ2V0UmF3VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0KGdyb3VwOiBGb3JtR3JvdXBXcmFwcGVyPEZvcm1UeXBlPik6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRzID0gZ3JvdXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlcygpOiBFeHRyYWN0Rm9ybTxGb3JtVHlwZT4ge1xuICAgIHJldHVybiB0aGlzLmlucHV0cy5nZXRSYXdWYWx1ZSgpIGFzIEV4dHJhY3RGb3JtPEZvcm1UeXBlPjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGlydHlWYWx1ZXMoKTogUGFydGlhbDxFeHRyYWN0Rm9ybTxGb3JtVHlwZT4+IHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dHMuZ2V0RGlydHlWYWx1ZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0cy5yZXNldCgpO1xuICB9XG5cbiAgcHVibGljIHNldFVzZXJTZXR0aW5nc0ZpbHRlclZhbHVlcyh2YWx1ZXM6IElUcFVzZXJTZXR0aW5nc1NldHRpbmdzRmlsdGVyW10pOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyKCk7XG5cbiAgICBmb3IgKGNvbnN0IHsgaWQsIHZhbHVlIH0gb2YgdmFsdWVzKSB7XG4gICAgICBjb25zdCBrZXkgPSBpZCBhcyBrZXlvZiBGb3JtVHlwZTtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLl9jb250cm9sPGFueSwgYW55PihrZXkpO1xuXG4gICAgICBpZiAoY29udHJvbD8uc2F2ZWRfdmFsdWUkKSB7XG4gICAgICAgIGNvbnRyb2wuc2F2ZWRfdmFsdWUkLm5leHQodmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc29sZS53YXJuKGDQndC1INC90LDQudC00LXQvdC+INC/0L7Qu9C1OiAke2lkfSDQtNC70Y8g0YPRgdGC0LDQvdC+0LLQutC4INC30L3QsNGH0LXQvdC40Y86YCwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2NvbnRyb2w8VmFsdWVUeXBlIGV4dGVuZHMgRm9ybVR5cGVba2V5b2YgRm9ybVR5cGVdLCBTYXZlZFZhbHVlVHlwZT4oXG4gICAga2V5OiBrZXlvZiBGb3JtVHlwZVxuICApOiBJSW5wdXRDb250cm9sPFZhbHVlVHlwZSwgU2F2ZWRWYWx1ZVR5cGU+IHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dHMuY29udHJvbHNba2V5XSBhcyBJSW5wdXRDb250cm9sPFZhbHVlVHlwZSwgU2F2ZWRWYWx1ZVR5cGU+O1xuICB9XG5cbiAgcHVibGljIGdldCB1c2VyU2V0dGluZ3NGaWx0ZXIoKTogSVRwVXNlclNldHRpbmdzU2V0dGluZ3NGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHRoaXMuaW5wdXRzLmNvbnRyb2xzKS5tYXAoKFtpZCwgYWJzdHJhY3RDb250cm9sXSkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGFic3RyYWN0Q29udHJvbCBhcyBJSW5wdXRDb250cm9sO1xuICAgICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnNhdmVkX3ZhbHVlJC5nZXRWYWx1ZSgpO1xuICAgICAgY29uc3Qgc2F2ZWRWYWx1ZSA9IHZhbHVlID09PSBudWxsID8gbnVsbCA6IHZhbHVlO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZCxcbiAgICAgICAgdmFsdWU6IHNhdmVkVmFsdWUsXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldCBncWxGaWx0ZXIoKTogUmVjb3JkPHN0cmluZywgYW55PltdIHtcbiAgICBjb25zdCBmaWx0ZXI6IFJlY29yZDxzdHJpbmcsIGFueT5bXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBhYnN0cmFjdENvbnRyb2wgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLmlucHV0cy5jb250cm9scykpIHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBhYnN0cmFjdENvbnRyb2wgYXMgSUlucHV0Q29udHJvbDtcblxuICAgICAgaWYgKGNvbnRyb2wuZ3FsX3ZhbHVlKSB7XG4gICAgICAgIGZpbHRlci5wdXNoKGNvbnRyb2wuZ3FsX3ZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgY29udHJvbC5hcHBsaWVkPy5zZXQoISFjb250cm9sLmdxbF92YWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VhcmNoVmFsdWUgJiYgdGhpcy5zZWFyY2hJbnB1dD8uZ3FsX3ZhbHVlKSB7XG4gICAgICBmaWx0ZXIucHVzaCh0aGlzLnNlYXJjaElucHV0LmdxbF92YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlcjtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,37 @@
1
+ import { inject, Injectable, InjectionToken } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export const KEY_PRESSED = new InjectionToken('KEY_PRESSED_TOKEN');
5
+ export class KeyPressedService {
6
+ constructor() {
7
+ this._keyName = inject(KEY_PRESSED);
8
+ this._isPressed$ = new BehaviorSubject(false);
9
+ this.isPressed$ = this._isPressed$.asObservable();
10
+ this._keydownListener = (event) => {
11
+ if (event.key === this._keyName) {
12
+ this._isPressed$.next(true);
13
+ }
14
+ };
15
+ this._keyupListener = (event) => {
16
+ if (event.key === this._keyName) {
17
+ this._isPressed$.next(false);
18
+ }
19
+ };
20
+ window.addEventListener('keydown', this._keydownListener);
21
+ window.addEventListener('keyup', this._keyupListener);
22
+ }
23
+ isPressed() {
24
+ return this._isPressed$.getValue();
25
+ }
26
+ ngOnDestroy() {
27
+ this._isPressed$.complete();
28
+ window.removeEventListener('keydown', this._keydownListener);
29
+ window.removeEventListener('keyup', this._keyupListener);
30
+ }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KeyPressedService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KeyPressedService }); }
33
+ }
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: KeyPressedService, decorators: [{
35
+ type: Injectable
36
+ }], ctorParameters: () => [] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LXByZXNzZWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvc2VydmljZXMva2V5LXByZXNzZWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFFdkMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFTLG1CQUFtQixDQUFDLENBQUM7QUFHM0UsTUFBTSxPQUFPLGlCQUFpQjtJQU81QjtRQU5RLGFBQVEsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFdEIsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUUxQyxlQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQWlCNUMscUJBQWdCLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDM0QsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDOUIsQ0FBQztRQUNILENBQUMsQ0FBQztRQUVlLG1CQUFjLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUU7WUFDekQsSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUMsQ0FBQztRQXhCQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzFELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM3RCxNQUFNLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzRCxDQUFDOytHQXBCVSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjb25zdCBLRVlfUFJFU1NFRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KCdLRVlfUFJFU1NFRF9UT0tFTicpO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgS2V5UHJlc3NlZFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9rZXlOYW1lID0gaW5qZWN0KEtFWV9QUkVTU0VEKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9pc1ByZXNzZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlzUHJlc3NlZCQgPSB0aGlzLl9pc1ByZXNzZWQkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgdGhpcy5fa2V5ZG93bkxpc3RlbmVyKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9rZXl1cExpc3RlbmVyKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1ByZXNzZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lzUHJlc3NlZCQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9pc1ByZXNzZWQkLmNvbXBsZXRlKCk7XG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCB0aGlzLl9rZXlkb3duTGlzdGVuZXIpO1xuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXl1cCcsIHRoaXMuX2tleXVwTGlzdGVuZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfa2V5ZG93bkxpc3RlbmVyID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gdGhpcy5fa2V5TmFtZSkge1xuICAgICAgdGhpcy5faXNQcmVzc2VkJC5uZXh0KHRydWUpO1xuICAgIH1cbiAgfTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9rZXl1cExpc3RlbmVyID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gdGhpcy5fa2V5TmFtZSkge1xuICAgICAgdGhpcy5faXNQcmVzc2VkJC5uZXh0KGZhbHNlKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { afterNextRender, DestroyRef, inject, Injectable, NgZone, signal } from '@angular/core';
2
+ import { debounceTime, distinctUntilChanged, fromEvent, map } from 'rxjs';
3
+ import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
4
+ import * as i0 from "@angular/core";
5
+ const RESIZE_WINDOW_DEBOUNCE_MLS = 100;
6
+ export class ResizeWindowObserverService {
7
+ constructor() {
8
+ this._zone = inject(NgZone);
9
+ this._destroyRef = inject(DestroyRef);
10
+ this.innerHeight = signal(window.innerHeight);
11
+ this.innerWidth = signal(window.innerWidth);
12
+ this.innerHeight$ = toObservable(this.innerHeight);
13
+ afterNextRender(() => {
14
+ this._zone.runOutsideAngular(() => {
15
+ fromEvent(window, 'resize')
16
+ .pipe(debounceTime(RESIZE_WINDOW_DEBOUNCE_MLS), map(() => ({
17
+ height: window.innerHeight,
18
+ width: window.innerWidth,
19
+ })), distinctUntilChanged(), takeUntilDestroyed(this._destroyRef))
20
+ .subscribe(({ height, width }) => {
21
+ this.innerHeight.set(height);
22
+ this.innerWidth.set(width);
23
+ });
24
+ });
25
+ });
26
+ }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizeWindowObserverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
28
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizeWindowObserverService }); }
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizeWindowObserverService, decorators: [{
31
+ type: Injectable
32
+ }], ctorParameters: () => [] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLXdpbmRvdy1vYnNlcnZlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZ2lzdGVyLWJhc2Uvc3JjL2xpYi9zZXJ2aWNlcy9yZXNpemUtd2luZG93LW9ic2VydmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRTlFLE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxDQUFDO0FBR3ZDLE1BQU0sT0FBTywyQkFBMkI7SUFTdEM7UUFSaUIsVUFBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsQyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDekMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdkMsaUJBQVksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRzVELGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2hDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO3FCQUN4QixJQUFJLENBQ0gsWUFBWSxDQUFDLDBCQUEwQixDQUFDLEVBQ3hDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO29CQUNULE1BQU0sRUFBRSxNQUFNLENBQUMsV0FBVztvQkFDMUIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxVQUFVO2lCQUN6QixDQUFDLENBQUMsRUFDSCxvQkFBb0IsRUFBRSxFQUN0QixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ3JDO3FCQUNBLFNBQVMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7b0JBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0E1QlUsMkJBQTJCO21IQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZnRlck5leHRSZW5kZXIsIERlc3Ryb3lSZWYsIGluamVjdCwgSW5qZWN0YWJsZSwgTmdab25lLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZyb21FdmVudCwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQsIHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcblxuY29uc3QgUkVTSVpFX1dJTkRPV19ERUJPVU5DRV9NTFMgPSAxMDA7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZXNpemVXaW5kb3dPYnNlcnZlclNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF96b25lID0gaW5qZWN0KE5nWm9uZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgcHVibGljIHJlYWRvbmx5IGlubmVySGVpZ2h0ID0gc2lnbmFsKHdpbmRvdy5pbm5lckhlaWdodCk7XG4gIHB1YmxpYyByZWFkb25seSBpbm5lcldpZHRoID0gc2lnbmFsKHdpbmRvdy5pbm5lcldpZHRoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgaW5uZXJIZWlnaHQkID0gdG9PYnNlcnZhYmxlKHRoaXMuaW5uZXJIZWlnaHQpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgZnJvbUV2ZW50KHdpbmRvdywgJ3Jlc2l6ZScpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoUkVTSVpFX1dJTkRPV19ERUJPVU5DRV9NTFMpLFxuICAgICAgICAgICAgbWFwKCgpID0+ICh7XG4gICAgICAgICAgICAgIGhlaWdodDogd2luZG93LmlubmVySGVpZ2h0LFxuICAgICAgICAgICAgICB3aWR0aDogd2luZG93LmlubmVyV2lkdGgsXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHsgaGVpZ2h0LCB3aWR0aCB9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmlubmVySGVpZ2h0LnNldChoZWlnaHQpO1xuICAgICAgICAgICAgdGhpcy5pbm5lcldpZHRoLnNldCh3aWR0aCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,123 @@
1
+ import { computed, DestroyRef, inject, Injectable, signal } from '@angular/core';
2
+ import { BehaviorSubject, skip, take } from 'rxjs';
3
+ import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';
4
+ import { ERegisterObjectState } from '../types/register-base.types';
5
+ import { invertState } from '../consts/register-base.consts';
6
+ import { isDefined } from '../utils';
7
+ import { SelectionTypes, } from '../components/checkbox-selector/checkbox-selector.types';
8
+ import * as i0 from "@angular/core";
9
+ /** Сервис хранения состояния выбранных в реестре объектов */
10
+ export class SelectedObjectsStateService {
11
+ constructor() {
12
+ /** Состояние всех загруженных объектов реестра */
13
+ this.state = signal(new Map());
14
+ /** Ключи всех выбранных объектов реестра */
15
+ this.selectedKeys = computed(() => {
16
+ const selected = this._filterStateObjectsByState(this.state(), ERegisterObjectState.SELECTED);
17
+ return new Set(selected.keys());
18
+ });
19
+ /** Ключи всех выбранных или не выбранных объектов реестра (зависит от stateUnfetchedObjects) */
20
+ this.keys = computed(() => {
21
+ const unfetchedState = this.stateUnfetchedObjects();
22
+ return new Set(this._filterStateObjectsByState(this.state(), invertState(unfetchedState)).keys());
23
+ });
24
+ /** Значения всех выбранных объектов реестра */
25
+ this.selectedValues = computed(() => {
26
+ const selected = this._filterStateObjectsByState(this.state(), ERegisterObjectState.SELECTED);
27
+ return new Set([...selected.values()].map(({ object }) => object).filter((object) => isDefined(object)));
28
+ });
29
+ /** Значения всех не выбранных объектов реестра */
30
+ this.unselectedValues = computed(() => {
31
+ const selected = this._filterStateObjectsByState(this.state(), ERegisterObjectState.UNSELECTED);
32
+ return new Set([...selected.values()].map(({ object }) => object).filter((object) => isDefined(object)));
33
+ });
34
+ /** Значения всех выбранных или не выбранных объектов реестра (зависит от stateUnfetchedObjects) */
35
+ this.values = computed(() => {
36
+ const unfetchedState = this.stateUnfetchedObjects();
37
+ return new Set([...this._filterStateObjectsByState(this.state(), invertState(unfetchedState)).values()]
38
+ .map(({ object }) => object)
39
+ .filter((object) => isDefined(object)));
40
+ });
41
+ this.selectionType$ = new BehaviorSubject(null);
42
+ this.stateUnfetchedObjects$ = new BehaviorSubject(ERegisterObjectState.UNSELECTED);
43
+ this.stateUnfetchedObjects = toSignal(this.stateUnfetchedObjects$.asObservable(), {
44
+ initialValue: ERegisterObjectState.UNSELECTED,
45
+ });
46
+ this._dr = inject(DestroyRef);
47
+ this._subscribeOnSelectionType();
48
+ }
49
+ /**
50
+ * Установить состояние всем загруженным объектам
51
+ *
52
+ * @param nextState - устанавливаемое состояние
53
+ * */
54
+ setAllStateObjectsByState(nextState) {
55
+ if (nextState === ERegisterObjectState.UNSELECTED) {
56
+ this.stateUnfetchedObjects$.next(ERegisterObjectState.UNSELECTED);
57
+ }
58
+ for (const key of this.state().keys()) {
59
+ this.setStateObjectByKey(key, { state: nextState });
60
+ }
61
+ this._refresh();
62
+ }
63
+ /**
64
+ * Обновить свойства загруженного объекта по ключу
65
+ *
66
+ * @param key - ключ загруженного объекта
67
+ * @param updates - обновление, содержащее свойства которые нужно обновить
68
+ * */
69
+ setStateObjectByKey(key, updates) {
70
+ const objects = new Map(this.state());
71
+ const stateObject = objects.get(key) ?? { state: ERegisterObjectState.UNSELECTED };
72
+ objects.set(key, { ...stateObject, ...updates });
73
+ this.state.set(objects);
74
+ }
75
+ loadStateObjects(data) {
76
+ const state = this.stateUnfetchedObjects$?.getValue();
77
+ for (const object of data) {
78
+ if (!this.state().has(object.id)) {
79
+ this.setStateObjectByKey(object.id, { object, state });
80
+ }
81
+ }
82
+ this._refresh();
83
+ }
84
+ _refresh() {
85
+ this.state.update((state) => new Map(state));
86
+ }
87
+ resetState(data) {
88
+ this.stateUnfetchedObjects$
89
+ .asObservable()
90
+ .pipe(skip(1), take(1))
91
+ .subscribe(() => {
92
+ this.state.set(new Map());
93
+ if (data) {
94
+ this.loadStateObjects(data);
95
+ }
96
+ });
97
+ this.selectionType$.next(null);
98
+ }
99
+ _filterStateObjectsByState(stateObjects, filterState) {
100
+ return new Map([...stateObjects].filter(([_, { state }]) => state === filterState));
101
+ }
102
+ _subscribeOnSelectionType() {
103
+ this.selectionType$
104
+ .asObservable()
105
+ .pipe(takeUntilDestroyed(this._dr))
106
+ .subscribe((type) => {
107
+ let newState = ERegisterObjectState.UNSELECTED;
108
+ if (type === SelectionTypes.ALL) {
109
+ newState = ERegisterObjectState.SELECTED;
110
+ }
111
+ else if (type === SelectionTypes.INVERSE) {
112
+ newState = invertState(this.stateUnfetchedObjects$.getValue());
113
+ }
114
+ this.stateUnfetchedObjects$.next(newState);
115
+ });
116
+ }
117
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectedObjectsStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
118
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectedObjectsStateService }); }
119
+ }
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SelectedObjectsStateService, decorators: [{
121
+ type: Injectable
122
+ }], ctorParameters: () => [] });
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQtb2JqZWN0cy1zdGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZ2lzdGVyLWJhc2Uvc3JjL2xpYi9zZXJ2aWNlcy9zZWxlY3RlZC1vYmplY3RzLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsb0JBQW9CLEVBQW1CLE1BQU0sOEJBQThCLENBQUM7QUFDckYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDckMsT0FBTyxFQUVMLGNBQWMsR0FDZixNQUFNLHlEQUF5RCxDQUFDOztBQUVqRSw2REFBNkQ7QUFFN0QsTUFBTSxPQUFPLDJCQUEyQjtJQXVEdEM7UUF0REEsa0RBQWtEO1FBQ2xDLFVBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxHQUFHLEVBQWtDLENBQUMsQ0FBQztRQUMxRSw0Q0FBNEM7UUFDNUIsaUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzNDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFOUYsT0FBTyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FB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QUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2hDLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxRQUFRLENBQUM7WUFDM0MsQ0FBQztpQkFBTSxJQUFJLElBQUksS0FBSyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzNDLFFBQVEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDakUsQ0FBQztZQUVELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQS9JVSwyQkFBMkI7bUhBQTNCLDJCQUEyQjs7NEZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBEZXN0cm95UmVmLCBpbmplY3QsIEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2NhbGFyVVVJRCB9IGZyb20gJ2hhc3VyYSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIHNraXAsIHRha2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBFUmVnaXN0ZXJPYmplY3RTdGF0ZSwgSVJlZ2lzdGVyT2JqZWN0IH0gZnJvbSAnLi4vdHlwZXMvcmVnaXN0ZXItYmFzZS50eXBlcyc7XG5pbXBvcnQgeyBpbnZlcnRTdGF0ZSB9IGZyb20gJy4uL2NvbnN0cy9yZWdpc3Rlci1iYXNlLmNvbnN0cyc7XG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQge1xuICBBcHBseVNlbGVjdGlvblR5cGVzLFxuICBTZWxlY3Rpb25UeXBlcyxcbn0gZnJvbSAnLi4vY29tcG9uZW50cy9jaGVja2JveC1zZWxlY3Rvci9jaGVja2JveC1zZWxlY3Rvci50eXBlcyc7XG5cbi8qKiDQodC10YDQstC40YEg0YXRgNCw0L3QtdC90LjRjyDRgdC+0YHRgtC+0Y/QvdC40Y8g0LLRi9Cx0YDQsNC90L3Ri9GFINCyINGA0LXQtdGB0YLRgNC1INC+0LHRitC10LrRgtC+0LIgKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZWxlY3RlZE9iamVjdHNTdGF0ZVNlcnZpY2U8VCBleHRlbmRzIHsgaWQ6IFNjYWxhclVVSUQgfSA9IGFueT4ge1xuICAvKiog0KHQvtGB0YLQvtGP0L3QuNC1INCy0YHQtdGFINC30LDQs9GA0YPQttC10L3QvdGL0YUg0L7QsdGK0LXQutGC0L7QsiDRgNC10LXRgdGC0YDQsCAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdGUgPSBzaWduYWwobmV3IE1hcDxTY2FsYXJVVUlELCBJUmVnaXN0ZXJPYmplY3Q8VD4+KCkpO1xuICAvKiog0JrQu9GO0YfQuCDQstGB0LXRhSDQstGL0LHRgNCw0L3QvdGL0YUg0L7QsdGK0LXQutGC0L7QsiDRgNC10LXRgdGC0YDQsCAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRLZXlzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5fZmlsdGVyU3RhdGVPYmplY3RzQnlTdGF0ZSh0aGlzLnN0YXRlKCksIEVSZWdpc3Rlck9iamVjdFN0YXRlLlNFTEVDVEVEKTtcblxuICAgIHJldHVybiBuZXcgU2V0KHNlbGVjdGVkLmtleXMoKSk7XG4gIH0pO1xuICAvKiog0JrQu9GO0YfQuCDQstGB0LXRhSDQstGL0LHRgNCw0L3QvdGL0YUg0LjQu9C4INC90LUg0LLRi9Cx0YDQsNC90L3Ri9GFINC+0LHRitC10LrRgtC+0LIg0YDQtdC10YHRgtGA0LAgKNC30LDQstC40YHQuNGCINC+0YIgc3RhdGVVbmZldGNoZWRPYmplY3RzKSAqL1xuICBwdWJsaWMgcmVhZG9ubHkga2V5cyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB1bmZldGNoZWRTdGF0ZSA9IHRoaXMuc3RhdGVVbmZldGNoZWRPYmplY3RzKCk7XG5cbiAgICByZXR1cm4gbmV3IFNldChcbiAgICAgIHRoaXMuX2ZpbHRlclN0YXRlT2JqZWN0c0J5U3RhdGUodGhpcy5zdGF0ZSgpLCBpbnZlcnRTdGF0ZSh1bmZldGNoZWRTdGF0ZSkpLmtleXMoKVxuICAgICk7XG4gIH0pO1xuICAvKiog0JfQvdCw0YfQtdC90LjRjyDQstGB0LXRhSDQstGL0LHRgNCw0L3QvdGL0YUg0L7QsdGK0LXQutGC0L7QsiDRgNC10LXRgdGC0YDQsCAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRWYWx1ZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLl9maWx0ZXJTdGF0ZU9iamVjdHNCeVN0YXRlKHRoaXMuc3RhdGUoKSwgRVJlZ2lzdGVyT2JqZWN0U3RhdGUuU0VMRUNURUQpO1xuXG4gICAgcmV0dXJuIG5ldyBTZXQoXG4gICAgICBbLi4uc2VsZWN0ZWQudmFsdWVzKCldLm1hcCgoeyBvYmplY3QgfSkgPT4gb2JqZWN0KS5maWx0ZXIoKG9iamVjdCkgPT4gaXNEZWZpbmVkKG9iamVjdCkpXG4gICAgKTtcbiAgfSk7XG4gIC8qKiDQl9C90LDRh9C10L3QuNGPINCy0YHQtdGFINC90LUg0LLRi9Cx0YDQsNC90L3Ri9GFINC+0LHRitC10LrRgtC+0LIg0YDQtdC10YHRgtGA0LAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHVuc2VsZWN0ZWRWYWx1ZXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLl9maWx0ZXJTdGF0ZU9iamVjdHNCeVN0YXRlKHRoaXMuc3RhdGUoKSwgRVJlZ2lzdGVyT2JqZWN0U3RhdGUuVU5TRUxFQ1RFRCk7XG5cbiAgICByZXR1cm4gbmV3IFNldChcbiAgICAgIFsuLi5zZWxlY3RlZC52YWx1ZXMoKV0ubWFwKCh7IG9iamVjdCB9KSA9PiBvYmplY3QpLmZpbHRlcigob2JqZWN0KSA9PiBpc0RlZmluZWQob2JqZWN0KSlcbiAgICApO1xuICB9KTtcbiAgLyoqINCX0L3QsNGH0LXQvdC40Y8g0LLRgdC10YUg0LLRi9Cx0YDQsNC90L3Ri9GFINC40LvQuCDQvdC1INCy0YvQsdGA0LDQvdC90YvRhSDQvtCx0YrQtdC60YLQvtCyINGA0LXQtdGB0YLRgNCwICjQt9Cw0LLQuNGB0LjRgiDQvtGCIHN0YXRlVW5mZXRjaGVkT2JqZWN0cykgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB1bmZldGNoZWRTdGF0ZSA9IHRoaXMuc3RhdGVVbmZldGNoZWRPYmplY3RzKCk7XG5cbiAgICByZXR1cm4gbmV3IFNldChcbiAgICAgIFsuLi50aGlzLl9maWx0ZXJTdGF0ZU9iamVjdHNCeVN0YXRlKHRoaXMuc3RhdGUoKSwgaW52ZXJ0U3RhdGUodW5mZXRjaGVkU3RhdGUpKS52YWx1ZXMoKV1cbiAgICAgICAgLm1hcCgoeyBvYmplY3QgfSkgPT4gb2JqZWN0KVxuICAgICAgICAuZmlsdGVyKChvYmplY3QpID0+IGlzRGVmaW5lZChvYmplY3QpKVxuICAgICk7XG4gIH0pO1xuXG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3Rpb25UeXBlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXBwbHlTZWxlY3Rpb25UeXBlcz4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZVVuZmV0Y2hlZE9iamVjdHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFUmVnaXN0ZXJPYmplY3RTdGF0ZT4oXG4gICAgRVJlZ2lzdGVyT2JqZWN0U3RhdGUuVU5TRUxFQ1RFRFxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBzdGF0ZVVuZmV0Y2hlZE9iamVjdHMgPSB0b1NpZ25hbCh0aGlzLnN0YXRlVW5mZXRjaGVkT2JqZWN0cyQuYXNPYnNlcnZhYmxlKCksIHtcbiAgICBpbml0aWFsVmFsdWU6IEVSZWdpc3Rlck9iamVjdFN0YXRlLlVOU0VMRUNURUQsXG4gIH0pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RyID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuX3N1YnNjcmliZU9uU2VsZWN0aW9uVHlwZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqINCj0YHRgtCw0L3QvtCy0LjRgtGMINGB0L7RgdGC0L7Rj9C90LjQtSDQstGB0LXQvCDQt9Cw0LPRgNGD0LbQtdC90L3Ri9C8INC+0LHRitC10LrRgtCw0LxcbiAgICpcbiAgICogQHBhcmFtIG5leHRTdGF0ZSAtINGD0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdC80L7QtSDRgdC+0YHRgtC+0Y/QvdC40LVcbiAgICogKi9cbiAgcHVibGljIHNldEFsbFN0YXRlT2JqZWN0c0J5U3RhdGUobmV4dFN0YXRlOiBFUmVnaXN0ZXJPYmplY3RTdGF0ZSk6IHZvaWQge1xuICAgIGlmIChuZXh0U3RhdGUgPT09IEVSZWdpc3Rlck9iamVjdFN0YXRlLlVOU0VMRUNURUQpIHtcbiAgICAgIHRoaXMuc3RhdGVVbmZldGNoZWRPYmplY3RzJC5uZXh0KEVSZWdpc3Rlck9iamVjdFN0YXRlLlVOU0VMRUNURUQpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qga2V5IG9mIHRoaXMuc3RhdGUoKS5rZXlzKCkpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGVPYmplY3RCeUtleShrZXksIHsgc3RhdGU6IG5leHRTdGF0ZSB9KTtcbiAgICB9XG5cbiAgICB0aGlzLl9yZWZyZXNoKCk7XG4gIH1cblxuICAvKipcbiAgICog0J7QsdC90L7QstC40YLRjCDRgdCy0L7QudGB0YLQstCwINC30LDQs9GA0YPQttC10L3QvdC+0LPQviDQvtCx0YrQtdC60YLQsCDQv9C+INC60LvRjtGH0YNcbiAgICpcbiAgICogQHBhcmFtIGtleSAtINC60LvRjtGHINC30LDQs9GA0YPQttC10L3QvdC+0LPQviDQvtCx0YrQtdC60YLQsFxuICAgKiBAcGFyYW0gdXBkYXRlcyAtINC+0LHQvdC+0LLQu9C10L3QuNC1LCDRgdC+0LTQtdGA0LbQsNGJ0LXQtSDRgdCy0L7QudGB0YLQstCwINC60L7RgtC+0YDRi9C1INC90YPQttC90L4g0L7QsdC90L7QstC40YLRjFxuICAgKiAqL1xuICBwdWJsaWMgc2V0U3RhdGVPYmplY3RCeUtleShrZXk6IFNjYWxhclVVSUQsIHVwZGF0ZXM6IFBhcnRpYWw8SVJlZ2lzdGVyT2JqZWN0PFQ+Pik6IHZvaWQge1xuICAgIGNvbnN0IG9iamVjdHMgPSBuZXcgTWFwKHRoaXMuc3RhdGUoKSk7XG5cbiAgICBjb25zdCBzdGF0ZU9iamVjdCA9IG9iamVjdHMuZ2V0KGtleSkgPz8geyBzdGF0ZTogRVJlZ2lzdGVyT2JqZWN0U3RhdGUuVU5TRUxFQ1RFRCB9O1xuICAgIG9iamVjdHMuc2V0KGtleSwgeyAuLi5zdGF0ZU9iamVjdCwgLi4udXBkYXRlcyB9KTtcblxuICAgIHRoaXMuc3RhdGUuc2V0KG9iamVjdHMpO1xuICB9XG5cbiAgcHVibGljIGxvYWRTdGF0ZU9iamVjdHMoZGF0YTogVFtdKTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdGUgPSB0aGlzLnN0YXRlVW5mZXRjaGVkT2JqZWN0cyQ/LmdldFZhbHVlKCk7XG5cbiAgICBmb3IgKGNvbnN0IG9iamVjdCBvZiBkYXRhKSB7XG4gICAgICBpZiAoIXRoaXMuc3RhdGUoKS5oYXMob2JqZWN0LmlkKSkge1xuICAgICAgICB0aGlzLnNldFN0YXRlT2JqZWN0QnlLZXkob2JqZWN0LmlkLCB7IG9iamVjdCwgc3RhdGUgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fcmVmcmVzaCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVmcmVzaCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlLnVwZGF0ZSgoc3RhdGUpID0+IG5ldyBNYXAoc3RhdGUpKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldFN0YXRlKGRhdGE/OiBUW10pOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlVW5mZXRjaGVkT2JqZWN0cyRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUoc2tpcCgxKSwgdGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnN0YXRlLnNldChuZXcgTWFwKCkpO1xuXG4gICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgdGhpcy5sb2FkU3RhdGVPYmplY3RzKGRhdGEpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB0aGlzLnNlbGVjdGlvblR5cGUkLm5leHQobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXJTdGF0ZU9iamVjdHNCeVN0YXRlKFxuICAgIHN0YXRlT2JqZWN0czogTWFwPFNjYWxhclVVSUQsIElSZWdpc3Rlck9iamVjdDxUPj4sXG4gICAgZmlsdGVyU3RhdGU6IEVSZWdpc3Rlck9iamVjdFN0YXRlXG4gICkge1xuICAgIHJldHVybiBuZXcgTWFwKFsuLi5zdGF0ZU9iamVjdHNdLmZpbHRlcigoW18sIHsgc3RhdGUgfV0pID0+IHN0YXRlID09PSBmaWx0ZXJTdGF0ZSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3Vic2NyaWJlT25TZWxlY3Rpb25UeXBlKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0aW9uVHlwZSRcbiAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2RyKSlcbiAgICAgIC5zdWJzY3JpYmUoKHR5cGUpID0+IHtcbiAgICAgICAgbGV0IG5ld1N0YXRlID0gRVJlZ2lzdGVyT2JqZWN0U3RhdGUuVU5TRUxFQ1RFRDtcblxuICAgICAgICBpZiAodHlwZSA9PT0gU2VsZWN0aW9uVHlwZXMuQUxMKSB7XG4gICAgICAgICAgbmV3U3RhdGUgPSBFUmVnaXN0ZXJPYmplY3RTdGF0ZS5TRUxFQ1RFRDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBTZWxlY3Rpb25UeXBlcy5JTlZFUlNFKSB7XG4gICAgICAgICAgbmV3U3RhdGUgPSBpbnZlcnRTdGF0ZSh0aGlzLnN0YXRlVW5mZXRjaGVkT2JqZWN0cyQuZ2V0VmFsdWUoKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnN0YXRlVW5mZXRjaGVkT2JqZWN0cyQubmV4dChuZXdTdGF0ZSk7XG4gICAgICB9KTtcbiAgfVxufVxuIl19