ngx-register-base 1.2.3 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. package/ng-package.json +15 -0
  2. package/package.json +12 -15
  3. package/schematics/ng-update/replace-menu-state-token/index.ts +33 -0
  4. package/schematics/ng-update/update-prefix/index.ts +38 -0
  5. package/schematics/utils/{utils.d.ts → utils.ts} +9 -2
  6. package/src/lib/components/checkbox-selector/checkbox-selector.component.html +91 -0
  7. package/src/lib/components/checkbox-selector/checkbox-selector.component.less +67 -0
  8. package/src/lib/components/checkbox-selector/checkbox-selector.component.ts +176 -0
  9. package/src/lib/components/checkbox-selector/checkbox-selector.types.ts +8 -0
  10. package/src/lib/components/column-settings/column-settings.component.html +160 -0
  11. package/src/lib/components/column-settings/column-settings.component.less +131 -0
  12. package/src/lib/components/column-settings/column-settings.component.ts +352 -0
  13. package/src/lib/components/column-settings/components/column-settings-template/column-settings-template.component.html +65 -0
  14. package/src/lib/components/column-settings/components/column-settings-template/column-settings-template.component.less +79 -0
  15. package/src/lib/components/column-settings/components/column-settings-template/column-settings-template.component.ts +114 -0
  16. package/src/lib/components/column-settings/consts/column-settings.consts.ts +9 -0
  17. package/src/lib/components/column-settings/types/column-settings.types.ts +26 -0
  18. package/src/lib/components/divider/divider.component.html +4 -0
  19. package/src/lib/components/divider/divider.component.less +10 -0
  20. package/src/lib/components/divider/divider.component.ts +12 -0
  21. package/src/lib/components/filter-button/filter-button.component.html +20 -0
  22. package/src/lib/components/filter-button/filter-button.component.less +41 -0
  23. package/src/lib/components/filter-button/filter-button.component.ts +18 -0
  24. package/src/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.html +22 -0
  25. package/src/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.less +23 -0
  26. package/src/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.ts +31 -0
  27. package/src/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.html +49 -0
  28. package/src/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.less +37 -0
  29. package/src/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.ts +66 -0
  30. package/src/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.html +147 -0
  31. package/src/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.less +45 -0
  32. package/src/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.ts +114 -0
  33. package/src/lib/components/filters/components/filter-list/filter-list-saved/filter-list-saved.component.html +44 -0
  34. package/src/lib/components/filters/components/filter-list/filter-list-saved/filter-list-saved.component.less +49 -0
  35. package/src/lib/components/filters/components/filter-list/filter-list-saved/filter-list-saved.component.ts +167 -0
  36. package/src/lib/components/filters/components/filter-list/filter-list.service.ts +97 -0
  37. package/src/lib/components/filters/components/filter-list/filters-section/filters-section.component.html +18 -0
  38. package/src/lib/components/filters/components/filter-list/filters-section/filters-section.component.less +55 -0
  39. package/src/lib/components/filters/components/filter-list/filters-section/filters-section.component.ts +69 -0
  40. package/src/lib/components/filters/components/filter-list.module.ts +29 -0
  41. package/src/lib/components/filters/register-table-filter.component.html +53 -0
  42. package/src/lib/components/filters/register-table-filter.component.less +17 -0
  43. package/src/lib/components/filters/register-table-filter.component.ts +167 -0
  44. package/src/lib/components/filters/register-table-filter.module.ts +22 -0
  45. package/src/lib/components/inputs/inputs.module.ts +104 -0
  46. package/src/lib/components/inputs/param-calendar-year/param-calendar-year.component.html +49 -0
  47. package/src/lib/components/inputs/param-calendar-year/param-calendar-year.component.less +70 -0
  48. package/src/lib/components/inputs/param-calendar-year/param-calendar-year.component.ts +52 -0
  49. package/src/lib/components/inputs/param-custom/param-custom.component.html +1 -0
  50. package/src/lib/components/inputs/param-custom/param-custom.component.ts +9 -0
  51. package/src/lib/components/inputs/param-date/param-date.component.html +55 -0
  52. package/src/lib/components/inputs/param-date/param-date.component.less +67 -0
  53. package/src/lib/components/inputs/param-date/param-date.component.ts +77 -0
  54. package/src/lib/components/inputs/param-date-range/param-date-range.component.html +45 -0
  55. package/src/lib/components/inputs/param-date-range/param-date-range.component.less +75 -0
  56. package/src/lib/components/inputs/param-date-range/param-date-range.component.ts +67 -0
  57. package/src/lib/components/inputs/param-date-time/param-date-time.component.html +70 -0
  58. package/src/lib/components/inputs/param-date-time/param-date-time.component.less +72 -0
  59. package/src/lib/components/inputs/param-date-time/param-date-time.component.ts +101 -0
  60. package/src/lib/components/inputs/param-date-time-range/param-date-time-range.component.html +67 -0
  61. package/src/lib/components/inputs/param-date-time-range/param-date-time-range.component.less +103 -0
  62. package/src/lib/components/inputs/param-date-time-range/param-date-time-range.component.ts +128 -0
  63. package/src/lib/components/inputs/param-month/param-month.component.html +46 -0
  64. package/src/lib/components/inputs/param-month/param-month.component.less +72 -0
  65. package/src/lib/components/inputs/param-month/param-month.component.ts +55 -0
  66. package/src/lib/components/inputs/param-month-range/param-month-range.component.html +39 -0
  67. package/src/lib/components/inputs/param-month-range/param-month-range.component.less +71 -0
  68. package/src/lib/components/inputs/param-month-range/param-month-range.component.ts +76 -0
  69. package/src/lib/components/inputs/param-multi-select/param-multi-select.component.html +84 -0
  70. package/src/lib/components/inputs/param-multi-select/param-multi-select.component.less +108 -0
  71. package/src/lib/components/inputs/param-multi-select/param-multi-select.component.ts +448 -0
  72. package/src/lib/components/inputs/param-select/param-select.component.html +106 -0
  73. package/src/lib/components/inputs/param-select/param-select.component.less +26 -0
  74. package/src/lib/components/inputs/param-select/param-select.component.ts +318 -0
  75. package/src/lib/components/inputs/param-switcher/param-switcher.component.html +8 -0
  76. package/src/lib/components/inputs/param-switcher/param-switcher.component.less +53 -0
  77. package/src/lib/components/inputs/param-switcher/param-switcher.component.ts +13 -0
  78. package/src/lib/components/inputs/param-switcher-date-time-range/consts/param-switcher-date-time-range.consts.ts +29 -0
  79. package/src/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.html +19 -0
  80. package/src/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.less +76 -0
  81. package/src/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.ts +134 -0
  82. package/src/lib/components/inputs/param-switcher-date-time-range/types/param-switcher-date-time-range.types.ts +8 -0
  83. package/src/lib/components/inputs/param-text/param-text.component.html +59 -0
  84. package/src/lib/components/inputs/param-text/param-text.component.less +33 -0
  85. package/src/lib/components/inputs/param-text/param-text.component.ts +36 -0
  86. package/src/lib/components/inputs/param-textarea/param-textarea.component.html +61 -0
  87. package/src/lib/components/inputs/param-textarea/param-textarea.component.less +21 -0
  88. package/src/lib/components/inputs/param-textarea/param-textarea.component.ts +33 -0
  89. package/src/lib/components/inputs/param-toggle/param-toggle.component.html +40 -0
  90. package/src/lib/components/inputs/param-toggle/param-toggle.component.less +69 -0
  91. package/src/lib/components/inputs/param-toggle/param-toggle.component.ts +14 -0
  92. package/src/lib/components/inputs/param-tree/consts/param-tree.consts.ts +59 -0
  93. package/src/lib/components/inputs/param-tree/param-tree.component.html +51 -0
  94. package/src/lib/components/inputs/param-tree/param-tree.component.less +3 -0
  95. package/src/lib/components/inputs/param-tree/param-tree.component.ts +282 -0
  96. package/src/lib/components/inputs/param-tree/services/param-tree.service.ts +176 -0
  97. package/src/lib/components/inputs/param-tree/services/sync-tree-loader.service.ts +18 -0
  98. package/{lib/components/inputs/param-tree/tokens/param-tree.tokens.d.ts → src/lib/components/inputs/param-tree/tokens/param-tree.tokens.ts} +2 -1
  99. package/src/lib/components/inputs/param-tree/types/param-tree.types.ts +39 -0
  100. package/src/lib/components/inputs/param-tree/utils/param-tree.utils.ts +18 -0
  101. package/src/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.html +78 -0
  102. package/src/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.less +109 -0
  103. package/src/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.ts +89 -0
  104. package/src/lib/components/inputs/param-tree-select/param-tree-select.component.html +54 -0
  105. package/src/lib/components/inputs/param-tree-select/param-tree-select.component.less +56 -0
  106. package/src/lib/components/inputs/param-tree-select/param-tree-select.component.ts +91 -0
  107. package/src/lib/components/inputs/sub-components/param-delete-content-icon/param-delete-content-btn.component.html +5 -0
  108. package/src/lib/components/inputs/sub-components/param-delete-content-icon/param-delete-content-btn.component.ts +13 -0
  109. package/src/lib/components/inputs/sub-components/param-invalid-icon/param-invalid-icon.component.html +4 -0
  110. package/src/lib/components/inputs/sub-components/param-invalid-icon/param-invalid-icon.component.ts +11 -0
  111. package/src/lib/components/menu-constructor/sproc-menu-constructor.component.html +95 -0
  112. package/src/lib/components/menu-constructor/sproc-menu-constructor.component.less +183 -0
  113. package/src/lib/components/menu-constructor/sproc-menu-constructor.component.ts +687 -0
  114. package/src/lib/components/menu-constructor/store/sproc-abstract-menu-constructor.store.ts +32 -0
  115. package/src/lib/components/menu-constructor/store/sproc-menu-constructor.consts.ts +46 -0
  116. package/{lib/components/menu-constructor/store/sproc-menu.tokens.d.ts → src/lib/components/menu-constructor/store/sproc-menu.tokens.ts} +4 -1
  117. package/src/lib/components/page-menu/README.md +60 -0
  118. package/src/lib/components/page-menu/schema/sproc-page-menu.consts.ts +8 -0
  119. package/src/lib/components/page-menu/schema/sproc-page-menu.schema.ts +35 -0
  120. package/src/lib/components/page-menu/schema/sproc-page-menu.tokens.ts +5 -0
  121. package/src/lib/components/page-menu/schema/sproc-page-menu.types.ts +42 -0
  122. package/src/lib/components/page-menu/sproc-page-menu.component.html +166 -0
  123. package/src/lib/components/page-menu/sproc-page-menu.component.less +228 -0
  124. package/src/lib/components/page-menu/sproc-page-menu.component.ts +337 -0
  125. package/src/lib/components/paginator/paginator.component.html +97 -0
  126. package/src/lib/components/paginator/paginator.component.less +101 -0
  127. package/src/lib/components/paginator/paginator.component.ts +192 -0
  128. package/src/lib/components/paginator/types/paginator.types.ts +16 -0
  129. package/src/lib/components/register-table/consts/register-table.consts.ts +3 -0
  130. package/src/lib/components/register-table/directives/cell-template.directive.ts +11 -0
  131. package/src/lib/components/register-table/directives/header-template.directive.ts +11 -0
  132. package/src/lib/components/register-table/model/schema.ts +62 -0
  133. package/src/lib/components/register-table/pipes/class-by-type.pipe.ts +28 -0
  134. package/src/lib/components/register-table/pipes/sticky-column.pipe.ts +11 -0
  135. package/src/lib/components/register-table/register-table.component.html +257 -0
  136. package/src/lib/components/register-table/register-table.component.less +151 -0
  137. package/src/lib/components/register-table/register-table.component.ts +743 -0
  138. package/src/lib/components/reset-settings-form/reset-settings-form.component.html +14 -0
  139. package/src/lib/components/reset-settings-form/reset-settings-form.component.less +26 -0
  140. package/src/lib/components/reset-settings-form/reset-settings-form.component.ts +15 -0
  141. package/src/lib/components/search-input/search-input.component.html +6 -0
  142. package/src/lib/components/search-input/search-input.component.less +17 -0
  143. package/src/lib/components/search-input/search-input.component.ts +31 -0
  144. package/src/lib/components/sliding-panel/sliding-panel.component.html +13 -0
  145. package/src/lib/components/sliding-panel/sliding-panel.component.less +112 -0
  146. package/src/lib/components/sliding-panel/sliding-panel.component.ts +36 -0
  147. package/src/lib/components/sliding-panel/sliding-panel.module.ts +11 -0
  148. package/src/lib/consts/date-time.consts.ts +1 -0
  149. package/src/lib/consts/index.ts +8 -0
  150. package/src/lib/consts/inputs.consts.ts +9 -0
  151. package/src/lib/consts/month.consts.ts +82 -0
  152. package/src/lib/consts/params.consts.ts +1 -0
  153. package/src/lib/consts/register-base.consts.ts +40 -0
  154. package/src/lib/core/form-group-wrapper/errors-consts.ts +6 -0
  155. package/src/lib/core/form-group-wrapper/form-group-wrapper.ts +109 -0
  156. package/src/lib/core/input-control/input-control.ts +30 -0
  157. package/src/lib/core/param/param-base.ts +262 -0
  158. package/src/lib/core/param/param-date-base.ts +30 -0
  159. package/src/lib/core/param/param-select-base.ts +118 -0
  160. package/src/lib/core/param/param-text-base.ts +23 -0
  161. package/{lib/core/param/param.tokens.d.ts → src/lib/core/param/param.tokens.ts} +2 -1
  162. package/src/lib/core/register-base/register-base.store.ts +84 -0
  163. package/src/lib/core/register-base/register-base.ts +854 -0
  164. package/src/lib/directives/date/date-time.types.ts +36 -0
  165. package/src/lib/directives/date/format-date.pipe.ts +28 -0
  166. package/src/lib/directives/number/number-only.directive.ts +36 -0
  167. package/src/lib/directives/sticky/sticky-relative.directive.ts +30 -0
  168. package/src/lib/directives/sticky/sticky-relative.service.ts +34 -0
  169. package/src/lib/directives/sticky/sticky.directive.ts +189 -0
  170. package/src/lib/services/date-time.service.ts +399 -0
  171. package/src/lib/services/dialog/dialog.service.ts +62 -0
  172. package/{lib/services/dialog/dialog.types.d.ts → src/lib/services/dialog/dialog.types.ts} +8 -4
  173. package/src/lib/services/dom-intersection.service.ts +23 -0
  174. package/src/lib/services/filter/filters-state.service.ts +83 -0
  175. package/src/lib/services/filter/filters-transmit.service.ts +105 -0
  176. package/src/lib/services/filter/filters.service.ts +21 -0
  177. package/src/lib/services/inputs-state.service.ts +157 -0
  178. package/src/lib/services/inputs.service.ts +114 -0
  179. package/src/lib/services/key-pressed.service.ts +40 -0
  180. package/src/lib/services/resize-window-observer.service.ts +37 -0
  181. package/src/lib/services/selected-objects-state.service.ts +159 -0
  182. package/src/lib/store/fast-query-store.service.ts +132 -0
  183. package/{lib/types/event.types.d.ts → src/lib/types/event.types.ts} +1 -1
  184. package/src/lib/types/hasura.types.ts +41 -0
  185. package/src/lib/types/inputs.types.ts +63 -0
  186. package/src/lib/types/params.types.ts +42 -0
  187. package/src/lib/types/register-base.types.ts +161 -0
  188. package/src/lib/types/sub-types.ts +15 -0
  189. package/src/lib/types/user-profile.types.ts +18 -0
  190. package/src/lib/utils/functions.ts +11 -0
  191. package/src/lib/utils/get-url-segment.ts +46 -0
  192. package/src/lib/utils/prizm.shared.module.ts +176 -0
  193. package/src/lib/utils/rxjs.ts +33 -0
  194. package/src/lib/utils/select-all-utils.ts +16 -0
  195. package/tsconfig.lib.json +16 -0
  196. package/tsconfig.lib.prod.json +11 -0
  197. package/tsconfig.schematics.json +26 -0
  198. package/tsconfig.spec.json +15 -0
  199. package/esm2022/lib/components/checkbox-selector/checkbox-selector.component.mjs +0 -129
  200. package/esm2022/lib/components/checkbox-selector/checkbox-selector.types.mjs +0 -8
  201. package/esm2022/lib/components/column-settings/column-settings.component.mjs +0 -249
  202. package/esm2022/lib/components/column-settings/components/column-settings-template/column-settings-template.component.mjs +0 -80
  203. package/esm2022/lib/components/column-settings/consts/column-settings.consts.mjs +0 -10
  204. package/esm2022/lib/components/column-settings/index.mjs +0 -3
  205. package/esm2022/lib/components/column-settings/types/column-settings.types.mjs +0 -7
  206. package/esm2022/lib/components/divider/divider.component.mjs +0 -16
  207. package/esm2022/lib/components/filter-button/filter-button.component.mjs +0 -19
  208. package/esm2022/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.mjs +0 -31
  209. package/esm2022/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.mjs +0 -57
  210. package/esm2022/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.mjs +0 -110
  211. package/esm2022/lib/components/filters/components/filter-list/filter-list-saved/filter-list-saved.component.mjs +0 -130
  212. package/esm2022/lib/components/filters/components/filter-list/filter-list.service.mjs +0 -89
  213. package/esm2022/lib/components/filters/components/filter-list/filters-section/filters-section.component.mjs +0 -41
  214. package/esm2022/lib/components/filters/components/filter-list.module.mjs +0 -45
  215. package/esm2022/lib/components/filters/index.mjs +0 -3
  216. package/esm2022/lib/components/filters/register-table-filter.component.mjs +0 -155
  217. package/esm2022/lib/components/filters/register-table-filter.module.mjs +0 -39
  218. package/esm2022/lib/components/index.mjs +0 -11
  219. package/esm2022/lib/components/inputs/index.mjs +0 -20
  220. package/esm2022/lib/components/inputs/inputs.module.mjs +0 -166
  221. package/esm2022/lib/components/inputs/param-calendar-year/param-calendar-year.component.mjs +0 -45
  222. package/esm2022/lib/components/inputs/param-custom/param-custom.component.mjs +0 -12
  223. package/esm2022/lib/components/inputs/param-date/param-date.component.mjs +0 -76
  224. package/esm2022/lib/components/inputs/param-date-range/param-date-range.component.mjs +0 -61
  225. package/esm2022/lib/components/inputs/param-date-time/param-date-time.component.mjs +0 -86
  226. package/esm2022/lib/components/inputs/param-date-time-range/param-date-time-range.component.mjs +0 -96
  227. package/esm2022/lib/components/inputs/param-month/param-month.component.mjs +0 -50
  228. package/esm2022/lib/components/inputs/param-month-range/param-month-range.component.mjs +0 -62
  229. package/esm2022/lib/components/inputs/param-multi-select/param-multi-select.component.mjs +0 -309
  230. package/esm2022/lib/components/inputs/param-select/param-select.component.mjs +0 -209
  231. package/esm2022/lib/components/inputs/param-switcher/param-switcher.component.mjs +0 -21
  232. package/esm2022/lib/components/inputs/param-switcher-date-time-range/consts/param-switcher-date-time-range.consts.mjs +0 -28
  233. package/esm2022/lib/components/inputs/param-switcher-date-time-range/index.mjs +0 -3
  234. package/esm2022/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.mjs +0 -105
  235. package/esm2022/lib/components/inputs/param-switcher-date-time-range/types/param-switcher-date-time-range.types.mjs +0 -10
  236. package/esm2022/lib/components/inputs/param-text/param-text.component.mjs +0 -40
  237. package/esm2022/lib/components/inputs/param-textarea/param-textarea.component.mjs +0 -38
  238. package/esm2022/lib/components/inputs/param-toggle/param-toggle.component.mjs +0 -20
  239. package/esm2022/lib/components/inputs/param-tree/consts/param-tree.consts.mjs +0 -37
  240. package/esm2022/lib/components/inputs/param-tree/index.mjs +0 -8
  241. package/esm2022/lib/components/inputs/param-tree/param-tree.component.mjs +0 -207
  242. package/esm2022/lib/components/inputs/param-tree/services/param-tree.service.mjs +0 -116
  243. package/esm2022/lib/components/inputs/param-tree/services/sync-tree-loader.service.mjs +0 -20
  244. package/esm2022/lib/components/inputs/param-tree/tokens/param-tree.tokens.mjs +0 -3
  245. package/esm2022/lib/components/inputs/param-tree/types/param-tree.types.mjs +0 -2
  246. package/esm2022/lib/components/inputs/param-tree/utils/param-tree.utils.mjs +0 -9
  247. package/esm2022/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.mjs +0 -80
  248. package/esm2022/lib/components/inputs/param-tree-select/param-tree-select.component.mjs +0 -85
  249. package/esm2022/lib/components/inputs/sub-components/param-delete-content-icon/param-delete-content-btn.component.mjs +0 -15
  250. package/esm2022/lib/components/inputs/sub-components/param-invalid-icon/param-invalid-icon.component.mjs +0 -12
  251. package/esm2022/lib/components/menu-constructor/index.mjs +0 -5
  252. package/esm2022/lib/components/menu-constructor/sproc-menu-constructor.component.mjs +0 -559
  253. package/esm2022/lib/components/menu-constructor/store/sproc-abstract-menu-constructor.store.mjs +0 -3
  254. package/esm2022/lib/components/menu-constructor/store/sproc-menu-constructor.consts.mjs +0 -5
  255. package/esm2022/lib/components/menu-constructor/store/sproc-menu.tokens.mjs +0 -3
  256. package/esm2022/lib/components/page-menu/index.mjs +0 -6
  257. package/esm2022/lib/components/page-menu/schema/sproc-page-menu.consts.mjs +0 -9
  258. package/esm2022/lib/components/page-menu/schema/sproc-page-menu.schema.mjs +0 -2
  259. package/esm2022/lib/components/page-menu/schema/sproc-page-menu.tokens.mjs +0 -4
  260. package/esm2022/lib/components/page-menu/schema/sproc-page-menu.types.mjs +0 -3
  261. package/esm2022/lib/components/page-menu/sproc-page-menu.component.mjs +0 -275
  262. package/esm2022/lib/components/paginator/paginator.component.mjs +0 -159
  263. package/esm2022/lib/components/paginator/types/paginator.types.mjs +0 -2
  264. package/esm2022/lib/components/register-table/consts/register-table.consts.mjs +0 -4
  265. package/esm2022/lib/components/register-table/directives/cell-template.directive.mjs +0 -19
  266. package/esm2022/lib/components/register-table/directives/header-template.directive.mjs +0 -18
  267. package/esm2022/lib/components/register-table/index.mjs +0 -4
  268. package/esm2022/lib/components/register-table/model/schema.mjs +0 -10
  269. package/esm2022/lib/components/register-table/pipes/class-by-type.pipe.mjs +0 -33
  270. package/esm2022/lib/components/register-table/pipes/sticky-column.pipe.mjs +0 -17
  271. package/esm2022/lib/components/register-table/register-table.component.mjs +0 -544
  272. package/esm2022/lib/components/reset-settings-form/reset-settings-form.component.mjs +0 -18
  273. package/esm2022/lib/components/search-input/search-input.component.mjs +0 -28
  274. package/esm2022/lib/components/sliding-panel/sliding-panel.component.mjs +0 -48
  275. package/esm2022/lib/components/sliding-panel/sliding-panel.module.mjs +0 -19
  276. package/esm2022/lib/consts/date-time.consts.mjs +0 -2
  277. package/esm2022/lib/consts/index.mjs +0 -4
  278. package/esm2022/lib/consts/inputs.consts.mjs +0 -4
  279. package/esm2022/lib/consts/month.consts.mjs +0 -77
  280. package/esm2022/lib/consts/params.consts.mjs +0 -2
  281. package/esm2022/lib/consts/register-base.consts.mjs +0 -26
  282. package/esm2022/lib/core/form-group-wrapper/errors-consts.mjs +0 -8
  283. package/esm2022/lib/core/form-group-wrapper/form-group-wrapper.mjs +0 -81
  284. package/esm2022/lib/core/form-group-wrapper/index.mjs +0 -2
  285. package/esm2022/lib/core/index.mjs +0 -5
  286. package/esm2022/lib/core/input-control/index.mjs +0 -2
  287. package/esm2022/lib/core/input-control/input-control.mjs +0 -11
  288. package/esm2022/lib/core/param/index.mjs +0 -6
  289. package/esm2022/lib/core/param/param-base.mjs +0 -215
  290. package/esm2022/lib/core/param/param-date-base.mjs +0 -26
  291. package/esm2022/lib/core/param/param-select-base.mjs +0 -114
  292. package/esm2022/lib/core/param/param-text-base.mjs +0 -25
  293. package/esm2022/lib/core/param/param.tokens.mjs +0 -4
  294. package/esm2022/lib/core/register-base/index.mjs +0 -3
  295. package/esm2022/lib/core/register-base/register-base.mjs +0 -575
  296. package/esm2022/lib/core/register-base/register-base.store.mjs +0 -43
  297. package/esm2022/lib/directives/date/date-time.types.mjs +0 -34
  298. package/esm2022/lib/directives/date/format-date.pipe.mjs +0 -33
  299. package/esm2022/lib/directives/index.mjs +0 -3
  300. package/esm2022/lib/directives/number/number-only.directive.mjs +0 -41
  301. package/esm2022/lib/directives/sticky/index.mjs +0 -3
  302. package/esm2022/lib/directives/sticky/sticky-relative.directive.mjs +0 -32
  303. package/esm2022/lib/directives/sticky/sticky-relative.service.mjs +0 -32
  304. package/esm2022/lib/directives/sticky/sticky.directive.mjs +0 -169
  305. package/esm2022/lib/services/date-time.service.mjs +0 -314
  306. package/esm2022/lib/services/dialog/dialog.service.mjs +0 -53
  307. package/esm2022/lib/services/dialog/dialog.types.mjs +0 -2
  308. package/esm2022/lib/services/dialog/index.mjs +0 -3
  309. package/esm2022/lib/services/dom-intersection.service.mjs +0 -22
  310. package/esm2022/lib/services/filter/filters-state.service.mjs +0 -65
  311. package/esm2022/lib/services/filter/filters-transmit.service.mjs +0 -82
  312. package/esm2022/lib/services/filter/filters.service.mjs +0 -23
  313. package/esm2022/lib/services/index.mjs +0 -8
  314. package/esm2022/lib/services/inputs-state.service.mjs +0 -130
  315. package/esm2022/lib/services/inputs.service.mjs +0 -88
  316. package/esm2022/lib/services/key-pressed.service.mjs +0 -37
  317. package/esm2022/lib/services/resize-window-observer.service.mjs +0 -33
  318. package/esm2022/lib/services/selected-objects-state.service.mjs +0 -123
  319. package/esm2022/lib/store/fast-query-store.service.mjs +0 -110
  320. package/esm2022/lib/store/index.mjs +0 -2
  321. package/esm2022/lib/types/event.types.mjs +0 -2
  322. package/esm2022/lib/types/hasura.types.mjs +0 -2
  323. package/esm2022/lib/types/index.mjs +0 -7
  324. package/esm2022/lib/types/inputs.types.mjs +0 -19
  325. package/esm2022/lib/types/params.types.mjs +0 -2
  326. package/esm2022/lib/types/register-base.types.mjs +0 -6
  327. package/esm2022/lib/types/sub-types.mjs +0 -2
  328. package/esm2022/lib/types/user-profile.types.mjs +0 -2
  329. package/esm2022/lib/utils/functions.mjs +0 -10
  330. package/esm2022/lib/utils/get-url-segment.mjs +0 -35
  331. package/esm2022/lib/utils/index.mjs +0 -5
  332. package/esm2022/lib/utils/prizm.shared.module.mjs +0 -284
  333. package/esm2022/lib/utils/rxjs.mjs +0 -28
  334. package/esm2022/lib/utils/select-all-utils.mjs +0 -11
  335. package/esm2022/ngx-register-base.mjs +0 -5
  336. package/esm2022/public-api.mjs +0 -9
  337. package/fesm2022/ngx-register-base.mjs +0 -7465
  338. package/fesm2022/ngx-register-base.mjs.map +0 -1
  339. package/index.d.ts +0 -5
  340. package/lib/components/checkbox-selector/checkbox-selector.component.d.ts +0 -33
  341. package/lib/components/checkbox-selector/checkbox-selector.types.d.ts +0 -7
  342. package/lib/components/column-settings/column-settings.component.d.ts +0 -80
  343. package/lib/components/column-settings/components/column-settings-template/column-settings-template.component.d.ts +0 -24
  344. package/lib/components/column-settings/consts/column-settings.consts.d.ts +0 -8
  345. package/lib/components/column-settings/types/column-settings.types.d.ts +0 -22
  346. package/lib/components/divider/divider.component.d.ts +0 -6
  347. package/lib/components/filter-button/filter-button.component.d.ts +0 -8
  348. package/lib/components/filters/components/filter-list/filter-edit/filter-edit.component.d.ts +0 -14
  349. package/lib/components/filters/components/filter-list/filter-list-footer/filter-list-footer.component.d.ts +0 -25
  350. package/lib/components/filters/components/filter-list/filter-list-header/filter-list-header.component.d.ts +0 -39
  351. package/lib/components/filters/components/filter-list/filter-list-saved/filter-list-saved.component.d.ts +0 -41
  352. package/lib/components/filters/components/filter-list/filter-list.service.d.ts +0 -20
  353. package/lib/components/filters/components/filter-list/filters-section/filters-section.component.d.ts +0 -15
  354. package/lib/components/filters/components/filter-list.module.d.ts +0 -15
  355. package/lib/components/filters/register-table-filter.component.d.ts +0 -40
  356. package/lib/components/filters/register-table-filter.module.d.ts +0 -13
  357. package/lib/components/inputs/inputs.module.d.ts +0 -31
  358. package/lib/components/inputs/param-calendar-year/param-calendar-year.component.d.ts +0 -19
  359. package/lib/components/inputs/param-custom/param-custom.component.d.ts +0 -6
  360. package/lib/components/inputs/param-date/param-date.component.d.ts +0 -20
  361. package/lib/components/inputs/param-date-range/param-date-range.component.d.ts +0 -26
  362. package/lib/components/inputs/param-date-time/param-date-time.component.d.ts +0 -25
  363. package/lib/components/inputs/param-date-time-range/param-date-time-range.component.d.ts +0 -28
  364. package/lib/components/inputs/param-month/param-month.component.d.ts +0 -18
  365. package/lib/components/inputs/param-month-range/param-month-range.component.d.ts +0 -21
  366. package/lib/components/inputs/param-multi-select/param-multi-select.component.d.ts +0 -46
  367. package/lib/components/inputs/param-select/param-select.component.d.ts +0 -30
  368. package/lib/components/inputs/param-switcher/param-switcher.component.d.ts +0 -8
  369. package/lib/components/inputs/param-switcher-date-time-range/consts/param-switcher-date-time-range.consts.d.ts +0 -2
  370. package/lib/components/inputs/param-switcher-date-time-range/param-switcher-date-time-range.component.d.ts +0 -19
  371. package/lib/components/inputs/param-switcher-date-time-range/types/param-switcher-date-time-range.types.d.ts +0 -8
  372. package/lib/components/inputs/param-text/param-text.component.d.ts +0 -10
  373. package/lib/components/inputs/param-textarea/param-textarea.component.d.ts +0 -10
  374. package/lib/components/inputs/param-toggle/param-toggle.component.d.ts +0 -9
  375. package/lib/components/inputs/param-tree/consts/param-tree.consts.d.ts +0 -7
  376. package/lib/components/inputs/param-tree/param-tree.component.d.ts +0 -41
  377. package/lib/components/inputs/param-tree/services/param-tree.service.d.ts +0 -37
  378. package/lib/components/inputs/param-tree/services/sync-tree-loader.service.d.ts +0 -10
  379. package/lib/components/inputs/param-tree/types/param-tree.types.d.ts +0 -32
  380. package/lib/components/inputs/param-tree/utils/param-tree.utils.d.ts +0 -7
  381. package/lib/components/inputs/param-tree-multi-select/param-tree-multi-select.component.d.ts +0 -31
  382. package/lib/components/inputs/param-tree-select/param-tree-select.component.d.ts +0 -30
  383. package/lib/components/inputs/sub-components/param-delete-content-icon/param-delete-content-btn.component.d.ts +0 -6
  384. package/lib/components/inputs/sub-components/param-invalid-icon/param-invalid-icon.component.d.ts +0 -5
  385. package/lib/components/menu-constructor/sproc-menu-constructor.component.d.ts +0 -113
  386. package/lib/components/menu-constructor/store/sproc-abstract-menu-constructor.store.d.ts +0 -24
  387. package/lib/components/menu-constructor/store/sproc-menu-constructor.consts.d.ts +0 -36
  388. package/lib/components/page-menu/schema/sproc-page-menu.consts.d.ts +0 -7
  389. package/lib/components/page-menu/schema/sproc-page-menu.schema.d.ts +0 -30
  390. package/lib/components/page-menu/schema/sproc-page-menu.tokens.d.ts +0 -3
  391. package/lib/components/page-menu/schema/sproc-page-menu.types.d.ts +0 -36
  392. package/lib/components/page-menu/sproc-page-menu.component.d.ts +0 -48
  393. package/lib/components/paginator/paginator.component.d.ts +0 -52
  394. package/lib/components/paginator/types/paginator.types.d.ts +0 -15
  395. package/lib/components/register-table/consts/register-table.consts.d.ts +0 -3
  396. package/lib/components/register-table/directives/cell-template.directive.d.ts +0 -9
  397. package/lib/components/register-table/directives/header-template.directive.d.ts +0 -9
  398. package/lib/components/register-table/model/schema.d.ts +0 -52
  399. package/lib/components/register-table/pipes/class-by-type.pipe.d.ts +0 -8
  400. package/lib/components/register-table/pipes/sticky-column.pipe.d.ts +0 -7
  401. package/lib/components/register-table/register-table.component.d.ts +0 -165
  402. package/lib/components/reset-settings-form/reset-settings-form.component.d.ts +0 -9
  403. package/lib/components/search-input/search-input.component.d.ts +0 -11
  404. package/lib/components/sliding-panel/sliding-panel.component.d.ts +0 -14
  405. package/lib/components/sliding-panel/sliding-panel.module.d.ts +0 -9
  406. package/lib/consts/date-time.consts.d.ts +0 -1
  407. package/lib/consts/index.d.ts +0 -3
  408. package/lib/consts/inputs.consts.d.ts +0 -4
  409. package/lib/consts/month.consts.d.ts +0 -49
  410. package/lib/consts/params.consts.d.ts +0 -1
  411. package/lib/consts/register-base.consts.d.ts +0 -19
  412. package/lib/core/form-group-wrapper/errors-consts.d.ts +0 -5
  413. package/lib/core/form-group-wrapper/form-group-wrapper.d.ts +0 -15
  414. package/lib/core/input-control/input-control.d.ts +0 -11
  415. package/lib/core/param/param-base.d.ts +0 -68
  416. package/lib/core/param/param-date-base.d.ts +0 -18
  417. package/lib/core/param/param-select-base.d.ts +0 -42
  418. package/lib/core/param/param-text-base.d.ts +0 -15
  419. package/lib/core/register-base/register-base.d.ts +0 -168
  420. package/lib/core/register-base/register-base.store.d.ts +0 -35
  421. package/lib/directives/date/date-time.types.d.ts +0 -32
  422. package/lib/directives/date/format-date.pipe.d.ts +0 -10
  423. package/lib/directives/number/number-only.directive.d.ts +0 -10
  424. package/lib/directives/sticky/sticky-relative.directive.d.ts +0 -13
  425. package/lib/directives/sticky/sticky-relative.service.d.ts +0 -15
  426. package/lib/directives/sticky/sticky.directive.d.ts +0 -27
  427. package/lib/services/date-time.service.d.ts +0 -80
  428. package/lib/services/dialog/dialog.service.d.ts +0 -22
  429. package/lib/services/dom-intersection.service.d.ts +0 -8
  430. package/lib/services/filter/filters-state.service.d.ts +0 -21
  431. package/lib/services/filter/filters-transmit.service.d.ts +0 -28
  432. package/lib/services/filter/filters.service.d.ts +0 -12
  433. package/lib/services/inputs-state.service.d.ts +0 -57
  434. package/lib/services/inputs.service.d.ts +0 -28
  435. package/lib/services/key-pressed.service.d.ts +0 -15
  436. package/lib/services/resize-window-observer.service.d.ts +0 -11
  437. package/lib/services/selected-objects-state.service.d.ts +0 -47
  438. package/lib/store/fast-query-store.service.d.ts +0 -19
  439. package/lib/types/hasura.types.d.ts +0 -35
  440. package/lib/types/inputs.types.d.ts +0 -41
  441. package/lib/types/params.types.d.ts +0 -27
  442. package/lib/types/register-base.types.d.ts +0 -123
  443. package/lib/types/sub-types.d.ts +0 -8
  444. package/lib/types/user-profile.types.d.ts +0 -17
  445. package/lib/utils/functions.d.ts +0 -3
  446. package/lib/utils/get-url-segment.d.ts +0 -7
  447. package/lib/utils/prizm.shared.module.d.ts +0 -14
  448. package/lib/utils/rxjs.d.ts +0 -10
  449. package/lib/utils/select-all-utils.d.ts +0 -8
  450. package/schematics/ng-update/replace-menu-state-token/index.d.ts +0 -2
  451. package/schematics/ng-update/replace-menu-state-token/index.js +0 -29
  452. package/schematics/ng-update/replace-menu-state-token/index.js.map +0 -1
  453. package/schematics/ng-update/update-prefix/index.d.ts +0 -2
  454. package/schematics/ng-update/update-prefix/index.js +0 -33
  455. package/schematics/ng-update/update-prefix/index.js.map +0 -1
  456. package/schematics/utils/utils.js +0 -25
  457. package/schematics/utils/utils.js.map +0 -1
  458. /package/{lib/components/column-settings/index.d.ts → src/lib/components/column-settings/index.ts} +0 -0
  459. /package/{lib/components/filters/index.d.ts → src/lib/components/filters/index.ts} +0 -0
  460. /package/{lib/components/index.d.ts → src/lib/components/index.ts} +0 -0
  461. /package/{lib/components/inputs/index.d.ts → src/lib/components/inputs/index.ts} +0 -0
  462. /package/{lib/components/inputs/param-switcher-date-time-range/index.d.ts → src/lib/components/inputs/param-switcher-date-time-range/index.ts} +0 -0
  463. /package/{lib/components/inputs/param-tree/index.d.ts → src/lib/components/inputs/param-tree/index.ts} +0 -0
  464. /package/{lib/components/menu-constructor/index.d.ts → src/lib/components/menu-constructor/index.ts} +0 -0
  465. /package/{lib/components/page-menu/index.d.ts → src/lib/components/page-menu/index.ts} +0 -0
  466. /package/{lib/components/register-table/index.d.ts → src/lib/components/register-table/index.ts} +0 -0
  467. /package/{lib/core/form-group-wrapper/index.d.ts → src/lib/core/form-group-wrapper/index.ts} +0 -0
  468. /package/{lib/core/index.d.ts → src/lib/core/index.ts} +0 -0
  469. /package/{lib/core/input-control/index.d.ts → src/lib/core/input-control/index.ts} +0 -0
  470. /package/{lib/core/param/index.d.ts → src/lib/core/param/index.ts} +0 -0
  471. /package/{lib/core/register-base/index.d.ts → src/lib/core/register-base/index.ts} +0 -0
  472. /package/{lib/directives/index.d.ts → src/lib/directives/index.ts} +0 -0
  473. /package/{lib/directives/sticky/index.d.ts → src/lib/directives/sticky/index.ts} +0 -0
  474. /package/{lib/services/dialog/index.d.ts → src/lib/services/dialog/index.ts} +0 -0
  475. /package/{lib/services/index.d.ts → src/lib/services/index.ts} +0 -0
  476. /package/{lib/store/index.d.ts → src/lib/store/index.ts} +0 -0
  477. /package/{lib/types/index.d.ts → src/lib/types/index.ts} +0 -0
  478. /package/{lib/utils/index.d.ts → src/lib/utils/index.ts} +0 -0
  479. /package/{public-api.d.ts → src/public-api.ts} +0 -0
@@ -1,43 +0,0 @@
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=
@@ -1,34 +0,0 @@
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
@@ -1,33 +0,0 @@
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
@@ -1,3 +0,0 @@
1
- export { NumberOnlyDirective } from './number/number-only.directive';
2
- export * from './sticky/index';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDckUsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IE51bWJlck9ubHlEaXJlY3RpdmUgfSBmcm9tICcuL251bWJlci9udW1iZXItb25seS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGlja3kvaW5kZXgnO1xuIl19
@@ -1,41 +0,0 @@
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
@@ -1,3 +0,0 @@
1
- export * from './sticky.directive';
2
- export * from './sticky-relative.directive';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmVnaXN0ZXItYmFzZS9zcmMvbGliL2RpcmVjdGl2ZXMvc3RpY2t5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3RpY2t5LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3N0aWNreS1yZWxhdGl2ZS5kaXJlY3RpdmUnO1xuIl19
@@ -1,32 +0,0 @@
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=
@@ -1,32 +0,0 @@
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
@@ -1,169 +0,0 @@
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