ngx-register-base 1.3.1 → 1.3.2

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 +225 -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 +7479 -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,43 @@
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { ComponentStore } from '@ngrx/component-store';
3
+ import { Apollo } from 'apollo-angular';
4
+ import { ReplaySubject } from 'rxjs';
5
+ import * as i0 from "@angular/core";
6
+ export class RegisterBaseStore extends ComponentStore {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.apollo = inject(Apollo);
10
+ this.error = (e) => {
11
+ console.error(e);
12
+ this.setLoading(false);
13
+ };
14
+ this.mutationCompleted$ = new ReplaySubject();
15
+ this.loading$ = this.select((state) => state.loading);
16
+ this.count$ = this.select((state) => state.count);
17
+ this.total$ = this.select((state) => state.total);
18
+ this.objects$ = this.select((state) => state.objects);
19
+ this.setObjects = this.updater((store, objects) => ({
20
+ ...store,
21
+ loading: false,
22
+ objects,
23
+ }));
24
+ this.setLoading = this.updater((store, loading) => ({ ...store, loading }));
25
+ this.setCount = this.updater((store, count) => ({
26
+ ...store,
27
+ count,
28
+ }));
29
+ this.setTotal = this.updater((state, total) => ({
30
+ ...state,
31
+ total,
32
+ }));
33
+ }
34
+ getBaseFilter(params) {
35
+ return {};
36
+ }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RegisterBaseStore, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
38
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RegisterBaseStore }); }
39
+ }
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RegisterBaseStore, decorators: [{
41
+ type: Injectable
42
+ }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXItYmFzZS5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvY29yZS9yZWdpc3Rlci1iYXNlL3JlZ2lzdGVyLWJhc2Uuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXZELE9BQU8sRUFBRSxNQUFNLEVBQWtCLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFjLGFBQWEsRUFBZ0IsTUFBTSxNQUFNLENBQUM7O0FBTy9ELE1BQU0sT0FBZ0IsaUJBSXBCLFNBQVEsY0FBcUI7SUFML0I7O1FBUVksV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV6QixVQUFLLEdBQUcsQ0FBQyxDQUFjLEVBQVEsRUFBRTtZQUN4QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDO1FBTU8sdUJBQWtCLEdBQUcsSUFBSSxhQUFhLEVBQVcsQ0FBQztRQUNsRCxhQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELFdBQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsV0FBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QyxhQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELGVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUNoQyxDQUFDLEtBQUssRUFBRSxPQUFlLEVBQVMsRUFBRSxDQUFDLENBQUM7WUFDbEMsR0FBRyxLQUFLO1lBQ1IsT0FBTyxFQUFFLEtBQUs7WUFDZCxPQUFPO1NBQ1IsQ0FBQyxDQUNILENBQUM7UUFFTyxlQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFnQixFQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZGLGFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUM5QixDQUFDLEtBQUssRUFBRSxLQUFhLEVBQVMsRUFBRSxDQUFDLENBQUM7WUFDaEMsR0FBRyxLQUFLO1lBQ1IsS0FBSztTQUNOLENBQUMsQ0FDSCxDQUFDO1FBRU8sYUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQzlCLENBQUMsS0FBSyxFQUFFLEtBQWEsRUFBUyxFQUFFLENBQUMsQ0FBQztZQUNoQyxHQUFHLEtBQUs7WUFDUixLQUFLO1NBQ04sQ0FBQyxDQUNILENBQUM7S0EyQkg7SUExRFEsYUFBYSxDQUFDLE1BQVk7UUFDL0IsT0FBTyxFQUF5QixDQUFDO0lBQ25DLENBQUM7K0dBaEJtQixpQkFBaUI7bUhBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEdEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQtc3RvcmUnO1xuaW1wb3J0IHsgUHJpem1UYWJsZUNlbGxTb3J0ZXIgfSBmcm9tICdAcHJpem0tdWkvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBBcG9sbG8sIE11dGF0aW9uUmVzdWx0IH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJSGFzdXJhUXVlcnlGaWx0ZXIgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3JlZ2lzdGVyLXRhYmxlL21vZGVsL3NjaGVtYSc7XG5pbXBvcnQgeyBHcWxGaWVsZHMgfSBmcm9tICcuLi8uLi90eXBlcy9pbnB1dHMudHlwZXMnO1xuaW1wb3J0IHsgSUJhc2VSZWdpc3RlclN0b3JlLCBJQmFzZVJlZ2lzdGVyU3RvcmVTdGF0ZSB9IGZyb20gJy4uLy4uL3R5cGVzL3JlZ2lzdGVyLWJhc2UudHlwZXMnO1xuaW1wb3J0IHsgSGFzdXJhRXJyb3IgfSBmcm9tICcuLi8uLi90eXBlcy9oYXN1cmEudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUmVnaXN0ZXJCYXNlU3RvcmU8XG4gICAgVHlwZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgU3RhdGUgZXh0ZW5kcyBJQmFzZVJlZ2lzdGVyU3RvcmVTdGF0ZTxUeXBlPiA9IElCYXNlUmVnaXN0ZXJTdG9yZVN0YXRlPFR5cGU+LFxuICA+XG4gIGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8U3RhdGU+XG4gIGltcGxlbWVudHMgSUJhc2VSZWdpc3RlclN0b3JlPFR5cGU+XG57XG4gIHByb3RlY3RlZCBhcG9sbG8gPSBpbmplY3QoQXBvbGxvKTtcblxuICByZWFkb25seSBlcnJvciA9IChlOiBIYXN1cmFFcnJvcik6IHZvaWQgPT4ge1xuICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgdGhpcy5zZXRMb2FkaW5nKGZhbHNlKTtcbiAgfTtcblxuICBwdWJsaWMgZ2V0QmFzZUZpbHRlcihwYXJhbXM/OiBhbnkpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4ge30gYXMgUmVjb3JkPHN0cmluZywgYW55PjtcbiAgfVxuXG4gIHJlYWRvbmx5IG11dGF0aW9uQ29tcGxldGVkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGxvYWRpbmckID0gdGhpcy5zZWxlY3QoKHN0YXRlKSA9PiBzdGF0ZS5sb2FkaW5nKTtcbiAgcmVhZG9ubHkgY291bnQkID0gdGhpcy5zZWxlY3QoKHN0YXRlKSA9PiBzdGF0ZS5jb3VudCk7XG4gIHJlYWRvbmx5IHRvdGFsJCA9IHRoaXMuc2VsZWN0KChzdGF0ZSkgPT4gc3RhdGUudG90YWwpO1xuXG4gIHJlYWRvbmx5IG9iamVjdHMkID0gdGhpcy5zZWxlY3QoKHN0YXRlKSA9PiBzdGF0ZS5vYmplY3RzKTtcbiAgcmVhZG9ubHkgc2V0T2JqZWN0cyA9IHRoaXMudXBkYXRlcihcbiAgICAoc3RvcmUsIG9iamVjdHM6IFR5cGVbXSk6IFN0YXRlID0+ICh7XG4gICAgICAuLi5zdG9yZSxcbiAgICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgICAgb2JqZWN0cyxcbiAgICB9KVxuICApO1xuXG4gIHJlYWRvbmx5IHNldExvYWRpbmcgPSB0aGlzLnVwZGF0ZXIoKHN0b3JlLCBsb2FkaW5nOiBib29sZWFuKTogU3RhdGUgPT4gKHsgLi4uc3RvcmUsIGxvYWRpbmcgfSkpO1xuICByZWFkb25seSBzZXRDb3VudCA9IHRoaXMudXBkYXRlcihcbiAgICAoc3RvcmUsIGNvdW50OiBudW1iZXIpOiBTdGF0ZSA9PiAoe1xuICAgICAgLi4uc3RvcmUsXG4gICAgICBjb3VudCxcbiAgICB9KVxuICApO1xuXG4gIHJlYWRvbmx5IHNldFRvdGFsID0gdGhpcy51cGRhdGVyKFxuICAgIChzdGF0ZSwgdG90YWw6IG51bWJlcik6IFN0YXRlID0+ICh7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHRvdGFsLFxuICAgIH0pXG4gICk7XG5cbiAgYWJzdHJhY3QgcmVhZG9ubHkgZGVsZXRlQnlJZHM6IChcbiAgICBpZHM6IHN0cmluZ1tdLFxuICAgIC4uLmFyZ3M6IHVua25vd25bXVxuICApID0+IE9ic2VydmFibGU8TXV0YXRpb25SZXN1bHQ8VHlwZVtdPiB8IG51bGw+O1xuICBhYnN0cmFjdCByZWFkb25seSBmZXRjaFRvdGFsOiAoXG4gICAgb2JzZXJ2YWJsZU9yVmFsdWU6IFJlY29yZDxzdHJpbmcsIGFueT4gfCBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIGFueT4+XG4gICkgPT4gU3Vic2NyaXB0aW9uO1xuICBhYnN0cmFjdCByZWFkb25seSBmZXRjaE9iamVjdHM6IChcbiAgICBvYnNlcnZhYmxlT3JWYWx1ZTpcbiAgICAgIHwge1xuICAgICAgICAgIGZpbHRlcjogSUhhc3VyYVF1ZXJ5RmlsdGVyPFR5cGU+O1xuICAgICAgICAgIGNhbGxiYWNrPzogKGRhdGE6IFR5cGVbXSkgPT4gdm9pZDtcbiAgICAgICAgfVxuICAgICAgfCBPYnNlcnZhYmxlPHtcbiAgICAgICAgICBmaWx0ZXI6IElIYXN1cmFRdWVyeUZpbHRlcjxUeXBlPjtcbiAgICAgICAgICBjYWxsYmFjaz86IChkYXRhOiBUeXBlW10pID0+IHZvaWQ7XG4gICAgICAgIH0+XG4gICkgPT4gU3Vic2NyaXB0aW9uO1xuXG4gIGFic3RyYWN0IGJ1aWxkRmlsdGVyKFxuICAgIGxpbWl0OiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgb2Zmc2V0OiBudW1iZXIgfCB1bmRlZmluZWQsXG4gICAgZ3FsRmlsdGVyOiBHcWxGaWVsZHMgfCB1bmRlZmluZWQsXG4gICAgc29ydGVyPzogUHJpem1UYWJsZUNlbGxTb3J0ZXI8VHlwZT5bXVxuICApOiBJSGFzdXJhUXVlcnlGaWx0ZXI8VHlwZT47XG59XG4iXX0=
@@ -0,0 +1,34 @@
1
+ export var EDatePattern;
2
+ (function (EDatePattern) {
3
+ EDatePattern["MONTH_YEAR"] = "MM.yyyy";
4
+ EDatePattern["DATE"] = "dd.MM.yyyy";
5
+ EDatePattern["SHORT_YEAR_DATE"] = "dd.MM.yy";
6
+ EDatePattern["DATE_TIME_WITHOUT_SECONDS"] = "dd.MM.yyyy HH:mm";
7
+ EDatePattern["DATE_TIME"] = "dd.MM.yyyy HH:mm:ss";
8
+ EDatePattern["YEAR_MONTH_DAY"] = "yyyy-MM-dd";
9
+ EDatePattern["DD_MM_YYYY"] = "dd-MM-yyyy";
10
+ EDatePattern["DATE_TIME_ISO_MARKED_TIMEZONE"] = "yyyy-MM-dd'T'HH:mm:ss";
11
+ EDatePattern["YYYY_MM_DD"] = "yyyy/MM/dd";
12
+ EDatePattern["MMMM_YYYY"] = "MMMM YYYY";
13
+ EDatePattern["DATE_TIME_ISO_PATTERN"] = "YYYY-MM-DDTHH:mm:ss";
14
+ EDatePattern["DATE_TIME_FOR_TRACKER"] = "YYYY-MM-DD HH:mm:ss";
15
+ EDatePattern["DATE_TIME_FOR_TRACKER_NOT_SIMPLE"] = "yyyy-MM-dd HH:mm:ss";
16
+ EDatePattern["TUI_YMD"] = "YMD";
17
+ EDatePattern["DAY"] = "d";
18
+ EDatePattern["HOUR_MINUTE"] = "HH:mm";
19
+ })(EDatePattern || (EDatePattern = {}));
20
+ export var EMomentPattern;
21
+ (function (EMomentPattern) {
22
+ EMomentPattern["YYYY_MM_DD"] = "YYYY-MM-DD";
23
+ EMomentPattern["YYYYMMDD"] = "yyyy/MM/DD";
24
+ })(EMomentPattern || (EMomentPattern = {}));
25
+ export var ETimezone;
26
+ (function (ETimezone) {
27
+ ETimezone["UTC"] = "+00:00";
28
+ ETimezone["MSK"] = "+03:00";
29
+ ETimezone["AQT"] = "+05:00";
30
+ ETimezone["NVS"] = "+07:00";
31
+ ETimezone["IRK"] = "+08:00";
32
+ ETimezone["YAK"] = "+09:00";
33
+ })(ETimezone || (ETimezone = {}));
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLnR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZ2lzdGVyLWJhc2Uvc3JjL2xpYi9kaXJlY3RpdmVzL2RhdGUvZGF0ZS10aW1lLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBTixJQUFZLFlBaUJYO0FBakJELFdBQVksWUFBWTtJQUN0QixzQ0FBc0IsQ0FBQTtJQUN0QixtQ0FBbUIsQ0FBQTtJQUNuQiw0Q0FBNEIsQ0FBQTtJQUM1Qiw4REFBOEMsQ0FBQTtJQUM5QyxpREFBaUMsQ0FBQTtJQUNqQyw2Q0FBNkIsQ0FBQTtJQUM3Qix5Q0FBeUIsQ0FBQTtJQUN6Qix1RUFBdUQsQ0FBQTtJQUN2RCx5Q0FBeUIsQ0FBQTtJQUN6Qix1Q0FBdUIsQ0FBQTtJQUN2Qiw2REFBNkMsQ0FBQTtJQUM3Qyw2REFBNkMsQ0FBQTtJQUM3Qyx3RUFBd0QsQ0FBQTtJQUN4RCwrQkFBZSxDQUFBO0lBQ2YseUJBQVMsQ0FBQTtJQUNULHFDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFqQlcsWUFBWSxLQUFaLFlBQVksUUFpQnZCO0FBRUQsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN4QiwyQ0FBeUIsQ0FBQTtJQUN6Qix5Q0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBSFcsY0FBYyxLQUFkLGNBQWMsUUFHekI7QUFFRCxNQUFNLENBQU4sSUFBWSxTQU9YO0FBUEQsV0FBWSxTQUFTO0lBQ25CLDJCQUFjLENBQUE7SUFDZCwyQkFBYyxDQUFBO0lBQ2QsMkJBQWMsQ0FBQTtJQUNkLDJCQUFjLENBQUE7SUFDZCwyQkFBYyxDQUFBO0lBQ2QsMkJBQWMsQ0FBQTtBQUNoQixDQUFDLEVBUFcsU0FBUyxLQUFULFNBQVMsUUFPcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcml6bURheSwgUHJpem1UaW1lIH0gZnJvbSAnQHByaXptLXVpL2NvbXBvbmVudHMnO1xuXG5leHBvcnQgZW51bSBFRGF0ZVBhdHRlcm4ge1xuICBNT05USF9ZRUFSID0gJ01NLnl5eXknLFxuICBEQVRFID0gJ2RkLk1NLnl5eXknLFxuICBTSE9SVF9ZRUFSX0RBVEUgPSAnZGQuTU0ueXknLFxuICBEQVRFX1RJTUVfV0lUSE9VVF9TRUNPTkRTID0gJ2RkLk1NLnl5eXkgSEg6bW0nLFxuICBEQVRFX1RJTUUgPSAnZGQuTU0ueXl5eSBISDptbTpzcycsXG4gIFlFQVJfTU9OVEhfREFZID0gJ3l5eXktTU0tZGQnLFxuICBERF9NTV9ZWVlZID0gJ2RkLU1NLXl5eXknLFxuICBEQVRFX1RJTUVfSVNPX01BUktFRF9USU1FWk9ORSA9IGB5eXl5LU1NLWRkJ1QnSEg6bW06c3NgLFxuICBZWVlZX01NX0REID0gJ3l5eXkvTU0vZGQnLFxuICBNTU1NX1lZWVkgPSAnTU1NTSBZWVlZJyxcbiAgREFURV9USU1FX0lTT19QQVRURVJOID0gJ1lZWVktTU0tRERUSEg6bW06c3MnLFxuICBEQVRFX1RJTUVfRk9SX1RSQUNLRVIgPSAnWVlZWS1NTS1ERCBISDptbTpzcycsXG4gIERBVEVfVElNRV9GT1JfVFJBQ0tFUl9OT1RfU0lNUExFID0gJ3l5eXktTU0tZGQgSEg6bW06c3MnLFxuICBUVUlfWU1EID0gJ1lNRCcsXG4gIERBWSA9ICdkJyxcbiAgSE9VUl9NSU5VVEUgPSAnSEg6bW0nLFxufVxuXG5leHBvcnQgZW51bSBFTW9tZW50UGF0dGVybiB7XG4gIFlZWVlfTU1fREQgPSAnWVlZWS1NTS1ERCcsXG4gIFlZWVlNTUREID0gJ3l5eXkvTU0vREQnLFxufVxuXG5leHBvcnQgZW51bSBFVGltZXpvbmUge1xuICBVVEMgPSAnKzAwOjAwJyxcbiAgTVNLID0gJyswMzowMCcsXG4gIEFRVCA9ICcrMDU6MDAnLFxuICBOVlMgPSAnKzA3OjAwJyxcbiAgSVJLID0gJyswODowMCcsXG4gIFlBSyA9ICcrMDk6MDAnLFxufVxuXG5leHBvcnQgdHlwZSBTbWFQcml6bURhdGVUaW1lID0gW1ByaXptRGF5LCBQcml6bVRpbWUgfCB1bmRlZmluZWRdO1xuIl19
@@ -0,0 +1,33 @@
1
+ import { Pipe } from '@angular/core';
2
+ import moment from 'moment';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/date-time.service";
5
+ export class FormatDatePipe {
6
+ constructor(_dateTimeService) {
7
+ this._dateTimeService = _dateTimeService;
8
+ }
9
+ transform(value, valueTZ, pattern, _) {
10
+ let utc = null;
11
+ if (value instanceof Date) {
12
+ const iso = this._dateTimeService.convertDateToISOWithTZ(value, valueTZ);
13
+ utc = moment(iso).toISOString();
14
+ }
15
+ else if (typeof value === 'string') {
16
+ utc = value;
17
+ }
18
+ if (!utc) {
19
+ return value;
20
+ }
21
+ return this._dateTimeService.parseDate(utc, pattern);
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormatDatePipe, deps: [{ token: i1.DateTimeService }], target: i0.ɵɵFactoryTarget.Pipe }); }
24
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: FormatDatePipe, isStandalone: true, name: "formatDate" }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: FormatDatePipe, decorators: [{
27
+ type: Pipe,
28
+ args: [{
29
+ name: 'formatDate',
30
+ standalone: true,
31
+ }]
32
+ }], ctorParameters: () => [{ type: i1.DateTimeService }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWRhdGUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvZGlyZWN0aXZlcy9kYXRlL2Zvcm1hdC1kYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7QUFPNUIsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFBNkIsZ0JBQWlDO1FBQWpDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7SUFBRyxDQUFDO0lBRWxFLFNBQVMsQ0FBQyxLQUFjLEVBQUUsT0FBZSxFQUFFLE9BQWUsRUFBRSxDQUFvQjtRQUM5RSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFFZixJQUFJLEtBQUssWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3pFLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsQ0FBQzthQUFNLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDckMsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNkLENBQUM7UUFFRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZELENBQUM7K0dBbEJVLGNBQWM7NkdBQWQsY0FBYzs7NEZBQWQsY0FBYztrQkFKMUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsWUFBWTtvQkFDbEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgRGF0ZVRpbWVTZXJ2aWNlLCBJVGltZVpvbmUgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRlLXRpbWUuc2VydmljZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2Zvcm1hdERhdGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtYXREYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9kYXRlVGltZVNlcnZpY2U6IERhdGVUaW1lU2VydmljZSkge31cblxuICB0cmFuc2Zvcm0odmFsdWU6IHVua25vd24sIHZhbHVlVFo6IHN0cmluZywgcGF0dGVybjogc3RyaW5nLCBfPzogSVRpbWVab25lIHwgbnVsbCk6IHVua25vd24ge1xuICAgIGxldCB1dGMgPSBudWxsO1xuXG4gICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgY29uc3QgaXNvID0gdGhpcy5fZGF0ZVRpbWVTZXJ2aWNlLmNvbnZlcnREYXRlVG9JU09XaXRoVFoodmFsdWUsIHZhbHVlVFopO1xuICAgICAgdXRjID0gbW9tZW50KGlzbykudG9JU09TdHJpbmcoKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHV0YyA9IHZhbHVlO1xuICAgIH1cblxuICAgIGlmICghdXRjKSB7XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2RhdGVUaW1lU2VydmljZS5wYXJzZURhdGUodXRjLCBwYXR0ZXJuKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export { NumberOnlyDirective } from './number/number-only.directive';
2
+ export * from './sticky/index';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE51bWJlck9ubHlEaXJlY3RpdmUgfSBmcm9tICcuL251bWJlci9udW1iZXItb25seS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGlja3kvaW5kZXgnO1xuIl19
@@ -0,0 +1,41 @@
1
+ import { Directive, HostListener, input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /** Ввод только числовых выражений */
4
+ export class NumberOnlyDirective {
5
+ constructor() {
6
+ /** Разрешать пользователю вводить дробные числа (возможность использовать точку или запятую) */
7
+ this.allowFractional = input(false);
8
+ }
9
+ onInput(event) {
10
+ const element = event.target;
11
+ let value = element.value;
12
+ if (this.allowFractional()) {
13
+ value = value.replace(/,/g, '.');
14
+ value = value.replace(/[^\d.]/g, '');
15
+ // Проверяем, чтобы точка была только одна
16
+ const parts = value.split('.');
17
+ if (parts.length > 2) {
18
+ value = `${parts.shift()}.${parts.join('')}`;
19
+ }
20
+ }
21
+ else {
22
+ value = value.replace(/\D/g, '');
23
+ }
24
+ if (element.value !== value) {
25
+ element.value = value;
26
+ }
27
+ }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberOnlyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: NumberOnlyDirective, isStandalone: true, selector: "[numberOnly]", inputs: { allowFractional: { classPropertyName: "allowFractional", publicName: "allowFractional", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "input": "onInput($event)" } }, ngImport: i0 }); }
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberOnlyDirective, decorators: [{
32
+ type: Directive,
33
+ args: [{
34
+ standalone: true,
35
+ selector: '[numberOnly]',
36
+ }]
37
+ }], propDecorators: { onInput: [{
38
+ type: HostListener,
39
+ args: ['input', ['$event']]
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLW9ubHkuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlZ2lzdGVyLWJhc2Uvc3JjL2xpYi9kaXJlY3RpdmVzL251bWJlci9udW1iZXItb25seS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUcvRCxxQ0FBcUM7QUFLckMsTUFBTSxPQUFPLG1CQUFtQjtJQUpoQztRQUtFLGdHQUFnRztRQUN6RixvQkFBZSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztLQXlCdkM7SUF0QlEsT0FBTyxDQUFDLEtBQXdCO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDN0IsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUUxQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1lBQzNCLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUVqQyxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFckMsMENBQTBDO1lBQzFDLE1BQU0sS0FBSyxHQUFhLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyQixLQUFLLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFHLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hELENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuQyxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDOytHQTFCVSxtQkFBbUI7bUdBQW5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFKL0IsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLGNBQWM7aUJBQ3pCOzhCQU1RLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lciwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElucHV0RWxlbWVudEV2ZW50IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG4vKiog0JLQstC+0LQg0YLQvtC70YzQutC+INGH0LjRgdC70L7QstGL0YUg0LLRi9GA0LDQttC10L3QuNC5ICovXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdbbnVtYmVyT25seV0nLFxufSlcbmV4cG9ydCBjbGFzcyBOdW1iZXJPbmx5RGlyZWN0aXZlIHtcbiAgLyoqINCg0LDQt9GA0LXRiNCw0YLRjCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y4g0LLQstC+0LTQuNGC0Ywg0LTRgNC+0LHQvdGL0LUg0YfQuNGB0LvQsCAo0LLQvtC30LzQvtC20L3QvtGB0YLRjCDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0YLQvtGH0LrRgyDQuNC70Lgg0LfQsNC/0Y/RgtGD0Y4pICovXG4gIHB1YmxpYyBhbGxvd0ZyYWN0aW9uYWwgPSBpbnB1dChmYWxzZSk7XG5cbiAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25JbnB1dChldmVudDogSW5wdXRFbGVtZW50RXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xuICAgIGxldCB2YWx1ZSA9IGVsZW1lbnQudmFsdWU7XG5cbiAgICBpZiAodGhpcy5hbGxvd0ZyYWN0aW9uYWwoKSkge1xuICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC8sL2csICcuJyk7XG5cbiAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgvW15cXGQuXS9nLCAnJyk7XG5cbiAgICAgIC8vINCf0YDQvtCy0LXRgNGP0LXQvCwg0YfRgtC+0LHRiyDRgtC+0YfQutCwINCx0YvQu9CwINGC0L7Qu9GM0LrQviDQvtC00L3QsFxuICAgICAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gdmFsdWUuc3BsaXQoJy4nKTtcbiAgICAgIGlmIChwYXJ0cy5sZW5ndGggPiAyKSB7XG4gICAgICAgIHZhbHVlID0gYCR7cGFydHMuc2hpZnQoKSF9LiR7cGFydHMuam9pbignJyl9YDtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpO1xuICAgIH1cblxuICAgIGlmIChlbGVtZW50LnZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgZWxlbWVudC52YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './sticky.directive';
2
+ export * from './sticky-relative.directive';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2RpcmVjdGl2ZXMvc3RpY2t5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3RpY2t5LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0aWNreS1yZWxhdGl2ZS5kaXJlY3RpdmUnO1xuIl19
@@ -0,0 +1,32 @@
1
+ import { DestroyRef, Directive, ElementRef, inject, input } from '@angular/core';
2
+ import { StickyRelativeService } from './sticky-relative.service';
3
+ import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
4
+ import { skip } from 'rxjs';
5
+ import { distinctUntilChangedJSONs } from '../../utils';
6
+ import * as i0 from "@angular/core";
7
+ export class StickyRelativeDirective {
8
+ constructor() {
9
+ this.columns = input.required();
10
+ this._columnsChanges$ = toObservable(this.columns).pipe(distinctUntilChangedJSONs(), skip(1));
11
+ this._stickyRelativeService = inject(StickyRelativeService);
12
+ this._dr = inject(DestroyRef);
13
+ this._elRef = inject(ElementRef);
14
+ this._columnsChanges$.pipe(takeUntilDestroyed(this._dr)).subscribe(() => {
15
+ this._stickyRelativeService.nextChangesChildren();
16
+ });
17
+ }
18
+ ngOnInit() {
19
+ this._stickyRelativeService.element = this._elRef.nativeElement;
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StickyRelativeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
22
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: StickyRelativeDirective, isStandalone: true, selector: "[stickyRelative]", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null } }, providers: [StickyRelativeService], ngImport: i0 }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StickyRelativeDirective, decorators: [{
25
+ type: Directive,
26
+ args: [{
27
+ selector: '[stickyRelative]',
28
+ standalone: true,
29
+ providers: [StickyRelativeService],
30
+ }]
31
+ }], ctorParameters: () => [] });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LXJlbGF0aXZlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvZGlyZWN0aXZlcy9zdGlja3kvc3RpY2t5LXJlbGF0aXZlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxhQUFhLENBQUM7O0FBT3RELE1BQU0sT0FBTyx1QkFBdUI7SUFTbEM7UUFSTyxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBYSxDQUFDO1FBRXJDLHFCQUFnQixHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFaEYsMkJBQXNCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDdkQsUUFBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QixXQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRzNDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN0RSxJQUFJLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUNwRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztJQUNsRSxDQUFDOytHQWpCVSx1QkFBdUI7bUdBQXZCLHVCQUF1Qix3TUFGdkIsQ0FBQyxxQkFBcUIsQ0FBQzs7NEZBRXZCLHVCQUF1QjtrQkFMbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzdHJveVJlZiwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbmplY3QsIGlucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0aWNreVJlbGF0aXZlU2VydmljZSB9IGZyb20gJy4vc3RpY2t5LXJlbGF0aXZlLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkLCB0b09ic2VydmFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBza2lwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkSlNPTnN9IGZyb20gJy4uLy4uL3V0aWxzJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3N0aWNreVJlbGF0aXZlXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHByb3ZpZGVyczogW1N0aWNreVJlbGF0aXZlU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFN0aWNreVJlbGF0aXZlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIGNvbHVtbnMgPSBpbnB1dC5yZXF1aXJlZDx1bmtub3duW10+KCk7XG5cbiAgcHJpdmF0ZSBfY29sdW1uc0NoYW5nZXMkID0gdG9PYnNlcnZhYmxlKHRoaXMuY29sdW1ucykucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZEpTT05zKCksIHNraXAoMSkpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0aWNreVJlbGF0aXZlU2VydmljZSA9IGluamVjdChTdGlja3lSZWxhdGl2ZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kciA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWxSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fY29sdW1uc0NoYW5nZXMkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2RyKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX3N0aWNreVJlbGF0aXZlU2VydmljZS5uZXh0Q2hhbmdlc0NoaWxkcmVuKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RpY2t5UmVsYXRpdmVTZXJ2aWNlLmVsZW1lbnQgPSB0aGlzLl9lbFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG59XG4iXX0=
@@ -0,0 +1,32 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { shareReplay } from 'rxjs/operators';
4
+ import * as i0 from "@angular/core";
5
+ export class StickyRelativeService {
6
+ constructor() {
7
+ this._changesChildren$ = new Subject();
8
+ this._resizeObserver = new ResizeObserver(() => {
9
+ this._changesChildren$.next();
10
+ });
11
+ this.changesChildren$ = this._changesChildren$.pipe(shareReplay(1));
12
+ }
13
+ add(item) {
14
+ this._resizeObserver.observe(item.elRef.nativeElement);
15
+ }
16
+ delete(item) {
17
+ this._resizeObserver.unobserve(item.elRef.nativeElement);
18
+ }
19
+ nextChangesChildren() {
20
+ this._changesChildren$.next();
21
+ }
22
+ ngOnDestroy() {
23
+ this._resizeObserver.disconnect();
24
+ this._changesChildren$.complete();
25
+ }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StickyRelativeService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
27
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StickyRelativeService }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StickyRelativeService, decorators: [{
30
+ type: Injectable
31
+ }] });
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LXJlbGF0aXZlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2RpcmVjdGl2ZXMvc3RpY2t5L3N0aWNreS1yZWxhdGl2ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFFdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRzdDLE1BQU0sT0FBTyxxQkFBcUI7SUFEbEM7UUFJbUIsc0JBQWlCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV4QyxvQkFBZSxHQUFHLElBQUksY0FBYyxDQUFDLEdBQUcsRUFBRTtZQUN6RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEMsQ0FBQyxDQUFDLENBQUM7UUFFYSxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBa0JoRjtJQWhCUSxHQUFHLENBQUMsSUFBcUI7UUFDOUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQXFCO1FBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEMsQ0FBQzsrR0ExQlUscUJBQXFCO21IQUFyQixxQkFBcUI7OzRGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0aWNreURpcmVjdGl2ZSB9IGZyb20gJy4vc3RpY2t5LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzaGFyZVJlcGxheSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFN0aWNreVJlbGF0aXZlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBlbGVtZW50ITogSFRNTEVsZW1lbnQ7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfY2hhbmdlc0NoaWxkcmVuJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgIHRoaXMuX2NoYW5nZXNDaGlsZHJlbiQubmV4dCgpO1xuICB9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY2hhbmdlc0NoaWxkcmVuJCA9IHRoaXMuX2NoYW5nZXNDaGlsZHJlbiQucGlwZShzaGFyZVJlcGxheSgxKSk7XG5cbiAgcHVibGljIGFkZChpdGVtOiBTdGlja3lEaXJlY3RpdmUpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5vYnNlcnZlKGl0ZW0uZWxSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlKGl0ZW06IFN0aWNreURpcmVjdGl2ZSk6IHZvaWQge1xuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyLnVub2JzZXJ2ZShpdGVtLmVsUmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIG5leHRDaGFuZ2VzQ2hpbGRyZW4oKTogdm9pZCB7XG4gICAgdGhpcy5fY2hhbmdlc0NoaWxkcmVuJC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuX2NoYW5nZXNDaGlsZHJlbiQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,169 @@
1
+ import { DestroyRef, Directive, ElementRef, HostBinding, inject, input, Renderer2, } from '@angular/core';
2
+ import { filter, map, observeOn, switchMap, takeUntil, tap } from 'rxjs/operators';
3
+ import { StickyRelativeService } from './sticky-relative.service';
4
+ import { animationFrameScheduler, of, Subject } from 'rxjs';
5
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
+ import { toPx } from '../../utils';
7
+ import { moveInEventLoopIteration } from '../../utils';
8
+ import * as i0 from "@angular/core";
9
+ export class StickyDirective {
10
+ constructor() {
11
+ this.stickyLeft = input();
12
+ this.stickyRight = input();
13
+ this.stickyTop = input();
14
+ this.stickyBottom = input();
15
+ this.stickyRelative = input();
16
+ this.position = input('sticky');
17
+ this.stylesOnSticky = input();
18
+ this.elRef = inject(ElementRef);
19
+ this._relativeService = inject(StickyRelativeService);
20
+ this._renderer = inject(Renderer2);
21
+ this._destroyRef = inject(DestroyRef);
22
+ this._destroyPrevious = new Subject();
23
+ this._changedSides = {
24
+ right: true,
25
+ left: true,
26
+ top: true,
27
+ bottom: true,
28
+ };
29
+ this._setActiveStyle = false;
30
+ }
31
+ get applySticky() {
32
+ return this.stickyLeft() || this.stickyRight() || this.stickyTop() || this.stickyBottom()
33
+ ? this.position()
34
+ : '';
35
+ }
36
+ ngOnInit() {
37
+ this._relativeService.add(this);
38
+ }
39
+ ngOnDestroy() {
40
+ this._relativeService.delete(this);
41
+ this._destroyPrevious.complete();
42
+ }
43
+ ngOnChanges() {
44
+ this._init();
45
+ }
46
+ _init() {
47
+ this._destroyPrevious.next();
48
+ const parent = this.stickyRelative() ?? this._relativeService?.element;
49
+ this._relativeService?.changesChildren$
50
+ .pipe(map(() => this.elRef.nativeElement.getBoundingClientRect()), observeOn(animationFrameScheduler), filter((i) => Boolean(i.width || i.height)), switchMap((result) => {
51
+ if (this.stickyRight() || this._changedSides.right) {
52
+ this._renderer.removeStyle(this.elRef.nativeElement, 'right');
53
+ }
54
+ if (this.stickyLeft() || this._changedSides.left) {
55
+ this._renderer.removeStyle(this.elRef.nativeElement, 'left');
56
+ }
57
+ if (this.stickyTop() || this._changedSides.top) {
58
+ this._renderer.removeStyle(this.elRef.nativeElement, 'top');
59
+ }
60
+ if (this.stickyBottom() || this._changedSides.bottom) {
61
+ this._renderer.removeStyle(this.elRef.nativeElement, 'bottom');
62
+ }
63
+ this._clearStylesIfSet();
64
+ return of(result).pipe(moveInEventLoopIteration(1));
65
+ }), tap(() => {
66
+ const parentRect = parent?.getBoundingClientRect();
67
+ const elRect = this.elRef.nativeElement.getBoundingClientRect();
68
+ let styleRight = 0;
69
+ this._setStylesIfExist();
70
+ if (this.stickyLeft()) {
71
+ const left = parentRect?.left ? elRect.left - parentRect.left : elRect.left;
72
+ this._renderer.setStyle(this.elRef.nativeElement, 'left', toPx(left));
73
+ this._changedSides.left = true;
74
+ }
75
+ else {
76
+ this._changedSides.left = true;
77
+ }
78
+ if (this.stickyRight()) {
79
+ styleRight = Number.parseInt(this.elRef.nativeElement.style.right || '0', 10);
80
+ let right = elRect.right;
81
+ let scrollOffset = 0;
82
+ let diff = 0;
83
+ if (parent) {
84
+ scrollOffset = parent.scrollWidth - parent.clientWidth - parent.scrollLeft;
85
+ diff = Math.abs(elRect.right - parentRect.right - scrollOffset - styleRight);
86
+ right = Math.floor(diff);
87
+ }
88
+ this._renderer.setStyle(this.elRef.nativeElement, 'right', toPx(right));
89
+ this._changedSides.right = true;
90
+ }
91
+ else {
92
+ this._changedSides.right = true;
93
+ }
94
+ if (this.stickyTop()) {
95
+ const top = parentRect?.top ? elRect.top - parentRect.top : elRect.top;
96
+ this._renderer.setStyle(this.elRef.nativeElement, 'top', toPx(top));
97
+ this._changedSides.top = true;
98
+ }
99
+ else {
100
+ this._changedSides.top = true;
101
+ }
102
+ if (this.stickyBottom()) {
103
+ const bottom = parentRect?.bottom ? elRect.bottom - parentRect.bottom : elRect.bottom;
104
+ this._renderer.setStyle(this.elRef.nativeElement, 'bottom', toPx(bottom));
105
+ this._changedSides.bottom = true;
106
+ }
107
+ else {
108
+ this._changedSides.bottom = true;
109
+ }
110
+ this._setStylesIfExist();
111
+ }),
112
+ // eslint-disable-next-line rxjs/no-unsafe-takeuntil
113
+ takeUntil(this._destroyPrevious), takeUntilDestroyed(this._destroyRef))
114
+ .subscribe();
115
+ }
116
+ _clearStylesIfSet() {
117
+ if (!this._setActiveStyle) {
118
+ return;
119
+ }
120
+ const stylesOnSticky = this.stylesOnSticky();
121
+ const keys = stylesOnSticky && Object.keys(stylesOnSticky);
122
+ if (!keys?.length) {
123
+ return;
124
+ }
125
+ for (const key of keys) {
126
+ this.elRef.nativeElement.style[key] = '';
127
+ }
128
+ this._setActiveStyle = false;
129
+ }
130
+ _setStylesIfExist() {
131
+ if (!this.stickyRight() && !this.stickyLeft() && !this.stickyBottom() && !this.stickyTop()) {
132
+ return;
133
+ }
134
+ const stylesOnSticky = this.stylesOnSticky();
135
+ const keys = stylesOnSticky && Object.keys(stylesOnSticky);
136
+ if (!keys?.length) {
137
+ return;
138
+ }
139
+ for (const key of keys) {
140
+ this.elRef.nativeElement.style[key] = this.stylesOnSticky()?.[key] ?? '';
141
+ }
142
+ this._setActiveStyle = true;
143
+ }
144
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StickyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
145
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.14", type: StickyDirective, isStandalone: true, selector: "[stickyLeft], [stickyRight], [stickyTop], [stickyBottom]", inputs: { stickyLeft: { classPropertyName: "stickyLeft", publicName: "stickyLeft", isSignal: true, isRequired: false, transformFunction: null }, stickyRight: { classPropertyName: "stickyRight", publicName: "stickyRight", isSignal: true, isRequired: false, transformFunction: null }, stickyTop: { classPropertyName: "stickyTop", publicName: "stickyTop", isSignal: true, isRequired: false, transformFunction: null }, stickyBottom: { classPropertyName: "stickyBottom", publicName: "stickyBottom", isSignal: true, isRequired: false, transformFunction: null }, stickyRelative: { classPropertyName: "stickyRelative", publicName: "stickyRelative", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, stylesOnSticky: { classPropertyName: "stylesOnSticky", publicName: "stylesOnSticky", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.sticky-left": "this.stickyLeft", "class.sticky-right": "this.stickyRight", "class.sticky-top": "this.stickyTop", "class.sticky-bottom": "this.stickyBottom", "style.position": "this.applySticky" } }, usesOnChanges: true, ngImport: i0 }); }
146
+ }
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StickyDirective, decorators: [{
148
+ type: Directive,
149
+ args: [{
150
+ selector: '[stickyLeft], [stickyRight], [stickyTop], [stickyBottom]',
151
+ standalone: true,
152
+ }]
153
+ }], propDecorators: { stickyLeft: [{
154
+ type: HostBinding,
155
+ args: ['class.sticky-left']
156
+ }], stickyRight: [{
157
+ type: HostBinding,
158
+ args: ['class.sticky-right']
159
+ }], stickyTop: [{
160
+ type: HostBinding,
161
+ args: ['class.sticky-top']
162
+ }], stickyBottom: [{
163
+ type: HostBinding,
164
+ args: ['class.sticky-bottom']
165
+ }], applySticky: [{
166
+ type: HostBinding,
167
+ args: ['style.position']
168
+ }] } });
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZWdpc3Rlci1iYXNlL3NyYy9saWIvZGlyZWN0aXZlcy9zdGlja3kvc3RpY2t5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsVUFBVSxFQUNWLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBSUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25GLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbkMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sYUFBYSxDQUFDOztBQU12RCxNQUFNLE9BQU8sZUFBZTtJQUo1QjtRQU1TLGVBQVUsR0FBRyxLQUFLLEVBQVcsQ0FBQztRQUU5QixnQkFBVyxHQUFHLEtBQUssRUFBVyxDQUFDO1FBRS9CLGNBQVMsR0FBRyxLQUFLLEVBQVcsQ0FBQztRQUU3QixpQkFBWSxHQUFHLEtBQUssRUFBVyxDQUFDO1FBQ2hDLG1CQUFjLEdBQUcsS0FBSyxFQUEyQixDQUFDO1FBQ2xELGFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0IsbUJBQWMsR0FBRyxLQUFLLEVBQXVDLENBQUM7UUFTckQsVUFBSyxHQUFHLE1BQU0sQ0FB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QixXQUFXO3VCQUFDLG9CQUFvQjtnQkFHMUIsU0FBUztzQkFEZixXQUFXO3VCQUFDLGtCQUFrQjtnQkFHeEIsWUFBWTtzQkFEbEIsV0FBVzt1QkFBQyxxQkFBcUI7Z0JBTzlCLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEZXN0cm95UmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIG9ic2VydmVPbiwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN0aWNreVJlbGF0aXZlU2VydmljZSB9IGZyb20gJy4vc3RpY2t5LXJlbGF0aXZlLnNlcnZpY2UnO1xuaW1wb3J0IHsgYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyB0b1B4IH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgbW92ZUluRXZlbnRMb29wSXRlcmF0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc3RpY2t5TGVmdF0sIFtzdGlja3lSaWdodF0sIFtzdGlja3lUb3BdLCBbc3RpY2t5Qm90dG9tXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFN0aWNreURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnN0aWNreS1sZWZ0JylcbiAgcHVibGljIHN0aWNreUxlZnQgPSBpbnB1dDxib29sZWFuPigpO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnN0aWNreS1yaWdodCcpXG4gIHB1YmxpYyBzdGlja3lSaWdodCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIEBIb3N0QmluZGluZygnY2xhc3Muc3RpY2t5LXRvcCcpXG4gIHB1YmxpYyBzdGlja3lUb3AgPSBpbnB1dDxib29sZWFuPigpO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnN0aWNreS1ib3R0b20nKVxuICBwdWJsaWMgc3RpY2t5Qm90dG9tID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHN0aWNreVJlbGF0aXZlID0gaW5wdXQ8SFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ+KCk7XG4gIHB1YmxpYyBwb3NpdGlvbiA9IGlucHV0KCdzdGlja3knKTtcbiAgcHVibGljIHN0eWxlc09uU3RpY2t5ID0gaW5wdXQ8UmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCB1bmRlZmluZWQ+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wb3NpdGlvbicpXG4gIGdldCBhcHBseVN0aWNreSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnN0aWNreUxlZnQoKSB8fCB0aGlzLnN0aWNreVJpZ2h0KCkgfHwgdGhpcy5zdGlja3lUb3AoKSB8fCB0aGlzLnN0aWNreUJvdHRvbSgpXG4gICAgICA/IHRoaXMucG9zaXRpb24oKVxuICAgICAgOiAnJztcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBlbFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9yZWxhdGl2ZVNlcnZpY2UgPSBpbmplY3QoU3RpY2t5UmVsYXRpdmVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UHJldmlvdXMgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VkU2lkZXMgPSB7XG4gICAgcmlnaHQ6IHRydWUsXG4gICAgbGVmdDogdHJ1ZSxcbiAgICB0b3A6IHRydWUsXG4gICAgYm90dG9tOiB0cnVlLFxuICB9O1xuXG4gIHByaXZhdGUgX3NldEFjdGl2ZVN0eWxlID0gZmFsc2U7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3JlbGF0aXZlU2VydmljZS5hZGQodGhpcyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fcmVsYXRpdmVTZXJ2aWNlLmRlbGV0ZSh0aGlzKTtcbiAgICB0aGlzLl9kZXN0cm95UHJldmlvdXMuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9pbml0KCk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3lQcmV2aW91cy5uZXh0KCk7XG5cbiAgICBjb25zdCBwYXJlbnQgPSB0aGlzLnN0aWNreVJlbGF0aXZlKCkgPz8gdGhpcy5fcmVsYXRpdmVTZXJ2aWNlPy5lbGVtZW50O1xuICAgIHRoaXMuX3JlbGF0aXZlU2VydmljZT8uY2hhbmdlc0NoaWxkcmVuJFxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLFxuICAgICAgICBvYnNlcnZlT24oYW5pbWF0aW9uRnJhbWVTY2hlZHVsZXIpLFxuICAgICAgICBmaWx0ZXIoKGkpID0+IEJvb2xlYW4oaS53aWR0aCB8fCBpLmhlaWdodCkpLFxuICAgICAgICBzd2l0Y2hNYXAoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLnN0aWNreVJpZ2h0KCkgfHwgdGhpcy5fY2hhbmdlZFNpZGVzLnJpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsICdyaWdodCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5zdGlja3lMZWZ0KCkgfHwgdGhpcy5fY2hhbmdlZFNpZGVzLmxlZnQpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ2xlZnQnKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuc3RpY2t5VG9wKCkgfHwgdGhpcy5fY2hhbmdlZFNpZGVzLnRvcCkge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCAndG9wJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLnN0aWNreUJvdHRvbSgpIHx8IHRoaXMuX2NoYW5nZWRTaWRlcy5ib3R0b20pIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ2JvdHRvbScpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuX2NsZWFyU3R5bGVzSWZTZXQoKTtcblxuICAgICAgICAgIHJldHVybiBvZihyZXN1bHQpLnBpcGUobW92ZUluRXZlbnRMb29wSXRlcmF0aW9uKDEpKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGFyZW50UmVjdCA9IHBhcmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgY29uc3QgZWxSZWN0ID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICAgIGxldCBzdHlsZVJpZ2h0ID0gMDtcblxuICAgICAgICAgIHRoaXMuX3NldFN0eWxlc0lmRXhpc3QoKTtcblxuICAgICAgICAgIGlmICh0aGlzLnN0aWNreUxlZnQoKSkge1xuICAgICAgICAgICAgY29uc3QgbGVmdCA9IHBhcmVudFJlY3Q/LmxlZnQgPyBlbFJlY3QubGVmdCAtIHBhcmVudFJlY3QubGVmdCA6IGVsUmVjdC5sZWZ0O1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCAnbGVmdCcsIHRvUHgobGVmdCkpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlZFNpZGVzLmxlZnQgPSB0cnVlO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VkU2lkZXMubGVmdCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0aGlzLnN0aWNreVJpZ2h0KCkpIHtcbiAgICAgICAgICAgIHN0eWxlUmlnaHQgPSBOdW1iZXIucGFyc2VJbnQodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLnJpZ2h0IHx8ICcwJywgMTApO1xuXG4gICAgICAgICAgICBsZXQgcmlnaHQgPSBlbFJlY3QucmlnaHQ7XG4gICAgICAgICAgICBsZXQgc2Nyb2xsT2Zmc2V0ID0gMDtcbiAgICAgICAgICAgIGxldCBkaWZmID0gMDtcbiAgICAgICAgICAgIGlmIChwYXJlbnQpIHtcbiAgICAgICAgICAgICAgc2Nyb2xsT2Zmc2V0ID0gcGFyZW50LnNjcm9sbFdpZHRoIC0gcGFyZW50LmNsaWVudFdpZHRoIC0gcGFyZW50LnNjcm9sbExlZnQ7XG4gICAgICAgICAgICAgIGRpZmYgPSBNYXRoLmFicyhlbFJlY3QucmlnaHQgLSBwYXJlbnRSZWN0LnJpZ2h0IC0gc2Nyb2xsT2Zmc2V0IC0gc3R5bGVSaWdodCk7XG4gICAgICAgICAgICAgIHJpZ2h0ID0gTWF0aC5mbG9vcihkaWZmKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ3JpZ2h0JywgdG9QeChyaWdodCkpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlZFNpZGVzLnJpZ2h0ID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlZFNpZGVzLnJpZ2h0ID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuc3RpY2t5VG9wKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRvcCA9IHBhcmVudFJlY3Q/LnRvcCA/IGVsUmVjdC50b3AgLSBwYXJlbnRSZWN0LnRvcCA6IGVsUmVjdC50b3A7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCB0b1B4KHRvcCkpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlZFNpZGVzLnRvcCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZWRTaWRlcy50b3AgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5zdGlja3lCb3R0b20oKSkge1xuICAgICAgICAgICAgY29uc3QgYm90dG9tID0gcGFyZW50UmVjdD8uYm90dG9tID8gZWxSZWN0LmJvdHRvbSAtIHBhcmVudFJlY3QuYm90dG9tIDogZWxSZWN0LmJvdHRvbTtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgJ2JvdHRvbScsIHRvUHgoYm90dG9tKSk7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VkU2lkZXMuYm90dG9tID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlZFNpZGVzLmJvdHRvbSA9IHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5fc2V0U3R5bGVzSWZFeGlzdCgpO1xuICAgICAgICB9KSxcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJ4anMvbm8tdW5zYWZlLXRha2V1bnRpbFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveVByZXZpb3VzKSxcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9jbGVhclN0eWxlc0lmU2V0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fc2V0QWN0aXZlU3R5bGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdHlsZXNPblN0aWNreSA9IHRoaXMuc3R5bGVzT25TdGlja3koKTtcbiAgICBjb25zdCBrZXlzID0gc3R5bGVzT25TdGlja3kgJiYgT2JqZWN0LmtleXMoc3R5bGVzT25TdGlja3kpO1xuICAgIGlmICgha2V5cz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlW2tleV0gPSAnJztcbiAgICB9XG5cbiAgICB0aGlzLl9zZXRBY3RpdmVTdHlsZSA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0U3R5bGVzSWZFeGlzdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc3RpY2t5UmlnaHQoKSAmJiAhdGhpcy5zdGlja3lMZWZ0KCkgJiYgIXRoaXMuc3RpY2t5Qm90dG9tKCkgJiYgIXRoaXMuc3RpY2t5VG9wKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzdHlsZXNPblN0aWNreSA9IHRoaXMuc3R5bGVzT25TdGlja3koKTtcbiAgICBjb25zdCBrZXlzID0gc3R5bGVzT25TdGlja3kgJiYgT2JqZWN0LmtleXMoc3R5bGVzT25TdGlja3kpO1xuICAgIGlmICgha2V5cz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlW2tleV0gPSAodGhpcy5zdHlsZXNPblN0aWNreSgpPy5ba2V5XSBhcyBzdHJpbmcpID8/ICcnO1xuICAgIH1cblxuICAgIHRoaXMuX3NldEFjdGl2ZVN0eWxlID0gdHJ1ZTtcbiAgfVxufVxuIl19