@inspark/inspark-components 19.0.49 → 19.0.51

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 (500) hide show
  1. package/copy.json +8 -0
  2. package/karma.conf.js +31 -0
  3. package/ng-package.json +7 -0
  4. package/package.json +17 -1
  5. package/src/assets/i18n/en_US.json +1631 -0
  6. package/src/assets/i18n/ru.json +1673 -0
  7. package/src/bms-css.js +3 -0
  8. package/src/components/autocomplete/autocomplete.component.html +68 -0
  9. package/src/components/autocomplete/autocomplete.component.scss +3 -0
  10. package/src/components/autocomplete/autocomplete.component.ts +209 -0
  11. package/src/components/autocomplete/autocomplete.module.ts +21 -0
  12. package/src/components/breadcrumb/breadcrumb.component.html +13 -0
  13. package/src/components/breadcrumb/breadcrumb.component.scss +0 -0
  14. package/src/components/breadcrumb/breadcrumb.component.ts +20 -0
  15. package/src/components/breadcrumb/breadcrumb.module.ts +18 -0
  16. package/src/components/button/button.component.html +155 -0
  17. package/src/components/button/button.component.scss +284 -0
  18. package/src/components/button/button.component.ts +134 -0
  19. package/src/components/button/button.module.ts +22 -0
  20. package/src/components/checkbox/checkbox.component.html +12 -0
  21. package/src/components/checkbox/checkbox.component.scss +30 -0
  22. package/src/components/checkbox/checkbox.component.ts +77 -0
  23. package/src/components/checkbox/checkbox.module.ts +18 -0
  24. package/src/components/communication.service.ts +22 -0
  25. package/src/components/component-container/component-container.component.html +3 -0
  26. package/src/components/component-container/component-container.component.scss +13 -0
  27. package/src/components/component-container/component-container.component.ts +17 -0
  28. package/src/components/component-container/component-container.module.ts +17 -0
  29. package/src/components/content-toggle/content-toggle.component.html +19 -0
  30. package/src/components/content-toggle/content-toggle.component.scss +58 -0
  31. package/src/components/content-toggle/content-toggle.component.ts +42 -0
  32. package/src/components/dropdown/dropdown.component.css +4 -0
  33. package/src/components/dropdown/dropdown.component.html +43 -0
  34. package/src/components/dropdown/dropdown.component.ts +167 -0
  35. package/src/components/dropdown/dropdown.interface.ts +25 -0
  36. package/src/components/dropdown/dropdown.module.ts +21 -0
  37. package/src/components/empty/empty.component.html +3 -0
  38. package/src/components/empty/empty.component.scss +4 -0
  39. package/src/components/empty/empty.component.ts +16 -0
  40. package/src/components/file/file.component.css +3 -0
  41. package/src/components/file/file.component.html +10 -0
  42. package/src/components/file/file.component.ts +41 -0
  43. package/src/components/file/file.module.ts +18 -0
  44. package/src/components/header/header.component.html +26 -0
  45. package/src/components/header/header.component.scss +64 -0
  46. package/src/components/header/header.component.ts +25 -0
  47. package/src/components/inline-message/inline-message.component.html +4 -0
  48. package/src/components/inline-message/inline-message.component.scss +13 -0
  49. package/src/components/inline-message/inline-message.component.ts +16 -0
  50. package/src/components/input-group/input-group.component.html +74 -0
  51. package/src/components/input-group/input-group.component.scss +1 -0
  52. package/src/components/input-group/input-group.component.ts +134 -0
  53. package/src/components/input-text/input-text.component.html +45 -0
  54. package/src/components/input-text/input-text.component.scss +69 -0
  55. package/src/components/input-text/input-text.component.ts +100 -0
  56. package/src/components/input-text/input-text.module.ts +19 -0
  57. package/src/components/inspark.module.ts +132 -0
  58. package/src/components/inspark.scss +28 -0
  59. package/src/components/inspark.shared.ts +20 -0
  60. package/src/components/legacy/legacy-components.module.ts +26 -0
  61. package/src/components/legacy/legacy-ui.module.ts +28 -0
  62. package/src/components/link/link.component.html +75 -0
  63. package/src/components/link/link.component.scss +95 -0
  64. package/src/components/link/link.component.ts +108 -0
  65. package/src/components/link/link.module.ts +23 -0
  66. package/src/components/modal-input-text/modal-input-text.component.html +46 -0
  67. package/src/components/modal-input-text/modal-input-text.component.scss +36 -0
  68. package/src/components/modal-input-text/modal-input-text.component.ts +100 -0
  69. package/src/components/object-tree/object-tree.component.html +1 -0
  70. package/src/components/object-tree/object-tree.component.scss +0 -0
  71. package/src/components/object-tree/object-tree.component.ts +17 -0
  72. package/src/components/panel/panel.component.html +3 -0
  73. package/src/components/panel/panel.component.scss +3 -0
  74. package/src/components/panel/panel.component.ts +13 -0
  75. package/src/components/pie/pie.component.html +17 -0
  76. package/src/components/pie/pie.component.scss +17 -0
  77. package/src/components/pie/pie.component.ts +66 -0
  78. package/src/components/pie/pie.service.ts +67 -0
  79. package/src/components/preloader/preloader.component.html +17 -0
  80. package/src/components/preloader/preloader.component.scss +144 -0
  81. package/src/components/preloader/preloader.component.ts +25 -0
  82. package/src/components/preloader/preloader.module.ts +16 -0
  83. package/src/components/primeng.module.ts +28 -0
  84. package/src/components/radiobutton/radiobutton.component.html +24 -0
  85. package/src/components/radiobutton/radiobutton.component.scss +9 -0
  86. package/src/components/radiobutton/radiobutton.component.ts +47 -0
  87. package/src/components/select-button/select-button.component.html +23 -0
  88. package/src/components/select-button/select-button.component.scss +28 -0
  89. package/src/components/select-button/select-button.component.ts +190 -0
  90. package/src/components/select-button/select-button.module.ts +18 -0
  91. package/src/components/select-list/select-list.component.html +27 -0
  92. package/src/components/select-list/select-list.component.scss +36 -0
  93. package/src/components/select-list/select-list.component.ts +65 -0
  94. package/src/components/shared/shared-components.module.ts +24 -0
  95. package/src/components/shared/shared-ui.module.ts +23 -0
  96. package/src/components/status-circle/status-circle.component.html +10 -0
  97. package/src/components/status-circle/status-circle.component.scss +115 -0
  98. package/src/components/status-circle/status-circle.component.ts +24 -0
  99. package/src/components/sticky/sticky.component.html +9 -0
  100. package/src/components/sticky/sticky.component.scss +17 -0
  101. package/src/components/sticky/sticky.component.ts +60 -0
  102. package/src/components/sticky/sticky.module.ts +18 -0
  103. package/src/components/svg/svg.component.html +3 -0
  104. package/src/components/svg/svg.component.scss +14 -0
  105. package/src/components/svg/svg.component.ts +18 -0
  106. package/src/components/svg/svg.module.ts +18 -0
  107. package/src/components/switcher/switcher.component.html +23 -0
  108. package/src/components/switcher/switcher.component.scss +30 -0
  109. package/src/components/switcher/switcher.component.ts +104 -0
  110. package/src/components/table/table-click-outside.directive.ts +24 -0
  111. package/src/components/table/table-columns-multiselect/table-columns-multiselect.component.html +26 -0
  112. package/src/components/table/table-columns-multiselect/table-columns-multiselect.component.scss +3 -0
  113. package/src/components/table/table-columns-multiselect/table-columns-multiselect.component.ts +26 -0
  114. package/src/components/table/table-menu-overlay/table-menu-overlay-blue.component.scss +8 -0
  115. package/src/components/table/table-menu-overlay/table-menu-overlay-contrast.component.scss +8 -0
  116. package/src/components/table/table-menu-overlay/table-menu-overlay-green.component.scss +8 -0
  117. package/src/components/table/table-menu-overlay/table-menu-overlay-light.component.scss +8 -0
  118. package/src/components/table/table-menu-overlay/table-menu-overlay.component.html +13 -0
  119. package/src/components/table/table-menu-overlay/table-menu-overlay.component.scss +32 -0
  120. package/src/components/table/table-menu-overlay/table-menu-overlay.component.ts +22 -0
  121. package/src/components/table/table.component.html +301 -0
  122. package/src/components/table/table.component.scss +148 -0
  123. package/src/components/table/table.component.ts +538 -0
  124. package/src/components/textarea/textarea.component.html +19 -0
  125. package/src/components/textarea/textarea.component.scss +0 -0
  126. package/src/components/textarea/textarea.component.ts +71 -0
  127. package/src/components/textarea/textarea.module.ts +19 -0
  128. package/src/components/toolbar/toolbar.component.html +19 -0
  129. package/src/components/toolbar/toolbar.component.scss +117 -0
  130. package/src/components/toolbar/toolbar.component.ts +38 -0
  131. package/src/components/toolbar/toolbar.module.ts +18 -0
  132. package/src/components/tooltip/tooltip.component.html +7 -0
  133. package/src/components/tooltip/tooltip.component.scss +47 -0
  134. package/src/components/tooltip/tooltip.component.ts +17 -0
  135. package/src/components/tree-table/tree-table.component.html +162 -0
  136. package/src/components/tree-table/tree-table.component.scss +129 -0
  137. package/src/components/tree-table/tree-table.component.ts +366 -0
  138. package/src/components/types.ts +7 -0
  139. package/src/css.js +6 -0
  140. package/src/interface.ts +80 -0
  141. package/src/pipes/pipes.module.ts +12 -0
  142. package/src/pipes/propertyValue.pipe.ts +18 -0
  143. package/src/pipes/safeUrl.pipe.ts +30 -0
  144. package/src/pipes/sort-by.pipe.ts +23 -0
  145. package/src/pipes/time.pipe.ts +197 -0
  146. package/src/public_api.ts +5 -0
  147. package/src/scss/main.scss +6 -0
  148. package/src/scss/patchPrimeng/_loader.components.primeng.scss +35 -0
  149. package/src/scss/patchPrimeng/_loader.components.primeng.theme-blue.scss +27 -0
  150. package/src/scss/patchPrimeng/_loader.components.primeng.theme-bms-dark.scss +25 -0
  151. package/src/scss/patchPrimeng/_loader.components.primeng.theme-bms-light.scss +27 -0
  152. package/src/scss/patchPrimeng/_loader.components.primeng.theme-contrast.scss +27 -0
  153. package/src/scss/patchPrimeng/_loader.components.primeng.theme-dark.scss +26 -0
  154. package/src/scss/patchPrimeng/_loader.components.primeng.theme-light.scss +29 -0
  155. package/src/scss/patchPrimeng/autocomplete/_primeng.components.autocomplete.scss +193 -0
  156. package/src/scss/patchPrimeng/autocomplete/_primeng.components.autocomplete.theme-blue.scss +58 -0
  157. package/src/scss/patchPrimeng/autocomplete/_primeng.components.autocomplete.theme-contrast.scss +58 -0
  158. package/src/scss/patchPrimeng/autocomplete/_primeng.components.autocomplete.theme-dark.scss +72 -0
  159. package/src/scss/patchPrimeng/autocomplete/_primeng.components.autocomplete.theme-light.scss +72 -0
  160. package/src/scss/patchPrimeng/breadcrumb/_primeng.components.breadcrumb.scss +0 -0
  161. package/src/scss/patchPrimeng/button/_primeng.components.button.compat.scss +114 -0
  162. package/src/scss/patchPrimeng/button/_primeng.components.button.scss +213 -0
  163. package/src/scss/patchPrimeng/button/_primeng.components.button.theme-blue.scss +109 -0
  164. package/src/scss/patchPrimeng/button/_primeng.components.button.theme-bms-dark.scss +109 -0
  165. package/src/scss/patchPrimeng/button/_primeng.components.button.theme-bms-light.scss +114 -0
  166. package/src/scss/patchPrimeng/button/_primeng.components.button.theme-contrast.scss +109 -0
  167. package/src/scss/patchPrimeng/button/_primeng.components.button.theme-dark.scss +108 -0
  168. package/src/scss/patchPrimeng/button/_primeng.components.button.theme-light.scss +113 -0
  169. package/src/scss/patchPrimeng/calendar/_primeng.components.calendar.scss +401 -0
  170. package/src/scss/patchPrimeng/calendar/_primeng.components.calendar.theme-light.scss +67 -0
  171. package/src/scss/patchPrimeng/card/_primeng.components.card.scss +6 -0
  172. package/src/scss/patchPrimeng/card/_primeng.components.card.theme-contrast.scss +3 -0
  173. package/src/scss/patchPrimeng/card/_primeng.components.card.theme-dark.scss +3 -0
  174. package/src/scss/patchPrimeng/card/_primeng.components.card.theme-light.scss +3 -0
  175. package/src/scss/patchPrimeng/checkbox/_primeng.components.checkbox.scss +75 -0
  176. package/src/scss/patchPrimeng/checkbox/_primeng.components.checkbox.theme-contrast.scss +45 -0
  177. package/src/scss/patchPrimeng/checkbox/_primeng.components.checkbox.theme-dark.scss +46 -0
  178. package/src/scss/patchPrimeng/checkbox/_primeng.components.checkbox.theme-light.scss +46 -0
  179. package/src/scss/patchPrimeng/common/_primeng.components.common.scss +356 -0
  180. package/src/scss/patchPrimeng/common/_primeng.components.common.theme-contrast.scss +12 -0
  181. package/src/scss/patchPrimeng/common/_primeng.components.common.theme-dark.scss +12 -0
  182. package/src/scss/patchPrimeng/common/_primeng.components.common.theme-light.scss +12 -0
  183. package/src/scss/patchPrimeng/contextmenu/_primeng.components.contextmenu.scss +64 -0
  184. package/src/scss/patchPrimeng/contextmenu/_primeng.components.contextmenu.theme-contrast.scss +0 -0
  185. package/src/scss/patchPrimeng/contextmenu/_primeng.components.contextmenu.theme-dark.scss +0 -0
  186. package/src/scss/patchPrimeng/contextmenu/_primeng.components.contextmenu.theme-light.scss +0 -0
  187. package/src/scss/patchPrimeng/dialog/_primeng.components.dialog.scss +155 -0
  188. package/src/scss/patchPrimeng/dialog/_primeng.components.dialog.theme-contrast.scss +3 -0
  189. package/src/scss/patchPrimeng/dialog/_primeng.components.dialog.theme-dark.scss +0 -0
  190. package/src/scss/patchPrimeng/dialog/_primeng.components.dialog.theme-light.scss +3 -0
  191. package/src/scss/patchPrimeng/drawer/_primeng.components.drawer.scss +7 -0
  192. package/src/scss/patchPrimeng/drawer/_primeng.components.drawer.theme-contrast.scss +3 -0
  193. package/src/scss/patchPrimeng/drawer/_primeng.components.drawer.theme-dark.scss +3 -0
  194. package/src/scss/patchPrimeng/drawer/_primeng.components.drawer.theme-light.scss +3 -0
  195. package/src/scss/patchPrimeng/dropdown/_primeng.components.dropdown.scss +171 -0
  196. package/src/scss/patchPrimeng/dropdown/_primeng.components.dropdown.theme-contrast.scss +4 -0
  197. package/src/scss/patchPrimeng/dropdown/_primeng.components.dropdown.theme-dark.scss +15 -0
  198. package/src/scss/patchPrimeng/dropdown/_primeng.components.dropdown.theme-light.scss +22 -0
  199. package/src/scss/patchPrimeng/dropdown/_primeng.components.dropdown.themes.scss +20 -0
  200. package/src/scss/patchPrimeng/fieldset/_primeng.components.fieldset.scss +87 -0
  201. package/src/scss/patchPrimeng/fieldset/_primeng.components.fieldset.theme-contrast.scss +0 -0
  202. package/src/scss/patchPrimeng/fieldset/_primeng.components.fieldset.theme-dark.scss +4 -0
  203. package/src/scss/patchPrimeng/fieldset/_primeng.components.fieldset.theme-light.scss +4 -0
  204. package/src/scss/patchPrimeng/fileupload/_primeng.components.fileupload.scss +185 -0
  205. package/src/scss/patchPrimeng/fileupload/_primeng.components.fileupload.theme-contrast.scss +31 -0
  206. package/src/scss/patchPrimeng/fileupload/_primeng.components.fileupload.theme-dark.scss +31 -0
  207. package/src/scss/patchPrimeng/fileupload/_primeng.components.fileupload.theme-light.scss +31 -0
  208. package/src/scss/patchPrimeng/grid/_primeng.components.grid.scss +0 -0
  209. package/src/scss/patchPrimeng/icons/_primeng.components.icons.scss +21 -0
  210. package/src/scss/patchPrimeng/icons/_primeng.components.icons.theme-contrast.scss +0 -0
  211. package/src/scss/patchPrimeng/icons/_primeng.components.icons.theme-dark.scss +0 -0
  212. package/src/scss/patchPrimeng/icons/_primeng.components.icons.theme-light.scss +0 -0
  213. package/src/scss/patchPrimeng/inplace/_primeng.components.inplace.scss +1 -0
  214. package/src/scss/patchPrimeng/inplace/_primeng.components.inplace.theme-contrast.scss +0 -0
  215. package/src/scss/patchPrimeng/inplace/_primeng.components.inplace.theme-dark.scss +0 -0
  216. package/src/scss/patchPrimeng/inplace/_primeng.components.inplace.theme-light.scss +0 -0
  217. package/src/scss/patchPrimeng/inputmask/_primeng.components.inputmask.scss +1 -0
  218. package/src/scss/patchPrimeng/inputmask/_primeng.components.inputmask.theme-contrast.scss +0 -0
  219. package/src/scss/patchPrimeng/inputmask/_primeng.components.inputmask.theme-dark.scss +0 -0
  220. package/src/scss/patchPrimeng/inputmask/_primeng.components.inputmask.theme-light.scss +0 -0
  221. package/src/scss/patchPrimeng/inputswitch/_primeng.components.inputswitch.scss +1 -0
  222. package/src/scss/patchPrimeng/inputswitch/_primeng.components.inputswitch.theme-contrast.scss +0 -0
  223. package/src/scss/patchPrimeng/inputswitch/_primeng.components.inputswitch.theme-dark.scss +0 -0
  224. package/src/scss/patchPrimeng/inputswitch/_primeng.components.inputswitch.theme-light.scss +0 -0
  225. package/src/scss/patchPrimeng/inputtext/_primeng.components.inputtext.scss +78 -0
  226. package/src/scss/patchPrimeng/inputtext/_primeng.components.inputtext.theme-contrast.scss +85 -0
  227. package/src/scss/patchPrimeng/inputtext/_primeng.components.inputtext.theme-dark.scss +85 -0
  228. package/src/scss/patchPrimeng/inputtext/_primeng.components.inputtext.theme-light.scss +83 -0
  229. package/src/scss/patchPrimeng/lightbox/_primeng.components.lightbox.scss +96 -0
  230. package/src/scss/patchPrimeng/lightbox/_primeng.components.lightbox.theme-contrast.scss +9 -0
  231. package/src/scss/patchPrimeng/lightbox/_primeng.components.lightbox.theme-dark.scss +9 -0
  232. package/src/scss/patchPrimeng/lightbox/_primeng.components.lightbox.theme-light.scss +9 -0
  233. package/src/scss/patchPrimeng/listbox/_primeng.components.listbox.scss +27 -0
  234. package/src/scss/patchPrimeng/listbox/_primeng.components.listbox.theme-contrast.scss +4 -0
  235. package/src/scss/patchPrimeng/listbox/_primeng.components.listbox.theme-dark.scss +3 -0
  236. package/src/scss/patchPrimeng/listbox/_primeng.components.listbox.theme-light.scss +4 -0
  237. package/src/scss/patchPrimeng/menu/_primeng.components.menu.scss +62 -0
  238. package/src/scss/patchPrimeng/menu/_primeng.components.menu.theme-contrast.scss +0 -0
  239. package/src/scss/patchPrimeng/menu/_primeng.components.menu.theme-dark.scss +0 -0
  240. package/src/scss/patchPrimeng/menu/_primeng.components.menu.theme-light.scss +16 -0
  241. package/src/scss/patchPrimeng/modal/_primeng.modal.scss +5 -0
  242. package/src/scss/patchPrimeng/multiselect/_primeng.components.multiselect.scss +290 -0
  243. package/src/scss/patchPrimeng/multiselect/_primeng.components.multiselect.theme-contrast.scss +39 -0
  244. package/src/scss/patchPrimeng/multiselect/_primeng.components.multiselect.theme-dark.scss +10 -0
  245. package/src/scss/patchPrimeng/multiselect/_primeng.components.multiselect.theme-light.scss +38 -0
  246. package/src/scss/patchPrimeng/overlay/_primeng.components.overlay.scss +1 -0
  247. package/src/scss/patchPrimeng/overlaypanel/_primeng.components.overlaypanel.scss +1 -0
  248. package/src/scss/patchPrimeng/picklist/_primeng.components.picklist.scss +220 -0
  249. package/src/scss/patchPrimeng/picklist/_primeng.components.picklist.theme-dark.scss +41 -0
  250. package/src/scss/patchPrimeng/picklist/_primeng.components.picklist.theme-light.scss +42 -0
  251. package/src/scss/patchPrimeng/radiobutton/_primeng.components.radiobutton.scss +133 -0
  252. package/src/scss/patchPrimeng/radiobutton/_primeng.components.radiobutton.themes.scss +12 -0
  253. package/src/scss/patchPrimeng/scroller/_primeng.components.scroller.scss +1 -0
  254. package/src/scss/patchPrimeng/selectbutton/_primeng.components.selectbutton.scss +95 -0
  255. package/src/scss/patchPrimeng/selectbutton/_primeng.components.selectbutton.theme-contrast.scss +0 -0
  256. package/src/scss/patchPrimeng/selectbutton/_primeng.components.selectbutton.theme-dark.scss +0 -0
  257. package/src/scss/patchPrimeng/selectbutton/_primeng.components.selectbutton.theme-light.scss +0 -0
  258. package/src/scss/patchPrimeng/sidebar/_primeng.components.sidebar.scss +20 -0
  259. package/src/scss/patchPrimeng/sidebar/_primeng.components.sidebar.theme-contrast.scss +3 -0
  260. package/src/scss/patchPrimeng/sidebar/_primeng.components.sidebar.theme-dark.scss +3 -0
  261. package/src/scss/patchPrimeng/sidebar/_primeng.components.sidebar.theme-light.scss +3 -0
  262. package/src/scss/patchPrimeng/slider/_primeng.components.slider.scss +124 -0
  263. package/src/scss/patchPrimeng/slider/_primeng.components.slider.themes.scss +29 -0
  264. package/src/scss/patchPrimeng/steps/_primeng.components.steps.scss +5 -0
  265. package/src/scss/patchPrimeng/steps/_primeng.components.steps.theme-contrast.scss +4 -0
  266. package/src/scss/patchPrimeng/steps/_primeng.components.steps.theme-dark.scss +4 -0
  267. package/src/scss/patchPrimeng/steps/_primeng.components.steps.theme-light.scss +3 -0
  268. package/src/scss/patchPrimeng/table/_primeng.components.table.scss +345 -0
  269. package/src/scss/patchPrimeng/table/_primeng.components.table.theme-contrast.scss +58 -0
  270. package/src/scss/patchPrimeng/table/_primeng.components.table.theme-dark.scss +51 -0
  271. package/src/scss/patchPrimeng/table/_primeng.components.table.theme-light.scss +77 -0
  272. package/src/scss/patchPrimeng/tabview/_primeng.components.tabview.scss +82 -0
  273. package/src/scss/patchPrimeng/tabview/_primeng.components.tabview.theme-contrast.scss +11 -0
  274. package/src/scss/patchPrimeng/tabview/_primeng.components.tabview.theme-dark.scss +12 -0
  275. package/src/scss/patchPrimeng/tabview/_primeng.components.tabview.theme-light.scss +10 -0
  276. package/src/scss/patchPrimeng/toast/_primeng.components.toast.scss +98 -0
  277. package/src/scss/patchPrimeng/toast/_primeng.components.toast.theme-contrast.scss +42 -0
  278. package/src/scss/patchPrimeng/toast/_primeng.components.toast.theme-dark.scss +34 -0
  279. package/src/scss/patchPrimeng/toast/_primeng.components.toast.theme-light.scss +42 -0
  280. package/src/scss/patchPrimeng/tree/_primeng.components.tree.compat.scss +12 -0
  281. package/src/scss/patchPrimeng/tree/_primeng.components.tree.scss +235 -0
  282. package/src/scss/patchPrimeng/tree/_primeng.components.tree.theme-contrast.scss +0 -0
  283. package/src/scss/patchPrimeng/tree/_primeng.components.tree.theme-dark.scss +0 -0
  284. package/src/scss/patchPrimeng/tree/_primeng.components.tree.theme-light.scss +0 -0
  285. package/src/scss/patchPrimeng/treetable/_primeng.components.treetable.compat.scss +355 -0
  286. package/src/scss/patchPrimeng/treetable/_primeng.components.treetable.scss +343 -0
  287. package/src/scss/patchPrimeng/treetable/_primeng.components.treetable.theme-blue.scss +31 -0
  288. package/src/scss/patchPrimeng/treetable/_primeng.components.treetable.theme-contrast.scss +41 -0
  289. package/src/scss/patchPrimeng/treetable/_primeng.components.treetable.theme-dark.scss +26 -0
  290. package/src/scss/patchPrimeng/treetable/_primeng.components.treetable.theme-light.scss +31 -0
  291. package/src/scss/settings/_loader.settings.scss +15 -0
  292. package/src/scss/settings/_settings.box-shadows.scss +32 -0
  293. package/src/scss/settings/_settings.colors.scss +215 -0
  294. package/src/scss/settings/_settings.config.scss +35 -0
  295. package/src/scss/settings/_settings.core.scss +93 -0
  296. package/src/scss/settings/_settings.global.scss +220 -0
  297. package/src/scss/theme-blue.scss +622 -0
  298. package/src/scss/theme-bms-dark.scss +92 -0
  299. package/src/scss/theme-bms-light.scss +500 -0
  300. package/src/scss/theme-contrast.scss +882 -0
  301. package/src/scss/theme-dark.scss +39 -0
  302. package/src/scss/theme-green.scss +619 -0
  303. package/src/scss/theme-light.scss +500 -0
  304. package/src/services/inspark-dialog.service.ts +28 -0
  305. package/src/services/inspark-message.service.ts +76 -0
  306. package/src/test.ts +16 -0
  307. package/src/utils/gettextMarker.function.ts +5 -0
  308. package/src/utils/hybrid/prime-table/prime-table-action-buttons/prime-table-action-buttons.component.html +22 -0
  309. package/src/utils/hybrid/prime-table/prime-table-action-buttons/prime-table-action-buttons.component.scss +0 -0
  310. package/src/utils/hybrid/prime-table/prime-table-action-buttons/prime-table-action-buttons.component.ts +26 -0
  311. package/src/utils/hybrid/prime-table/prime-table-action-buttons/table-action-buttons.model.ts +6 -0
  312. package/src/utils/hybrid/prime-table/prime-table-columns-multi-select/prime-table-columns-multi-select.component.html +56 -0
  313. package/src/utils/hybrid/prime-table/prime-table-columns-multi-select/prime-table-columns-multi-select.component.scss +4 -0
  314. package/src/utils/hybrid/prime-table/prime-table-columns-multi-select/prime-table-columns-multi-select.component.ts +40 -0
  315. package/src/utils/hybrid/prime-table/prime-table-theme-light.component.scss +0 -0
  316. package/src/utils/hybrid/prime-table/prime-table.component.html +173 -0
  317. package/src/utils/hybrid/prime-table/prime-table.component.scss +59 -0
  318. package/src/utils/hybrid/prime-table/prime-table.component.ts +155 -0
  319. package/src/utils/hybrid/prime-table/row-state.enum.ts +7 -0
  320. package/src/utils/hybrid/prime-table/table-column-type.enum.ts +5 -0
  321. package/src/utils/hybrid/prime-table/table-column.model.ts +12 -0
  322. package/src/utils/hybrid/prime-table/table-filter-type.enum.ts +4 -0
  323. package/src/utils/hybrid/prime-table/table-filters.model.ts +29 -0
  324. package/src/utils/hybrid/prime-table/table-grouping.model.ts +10 -0
  325. package/src/utils/hybrid/prime-table/table-options.model.ts +16 -0
  326. package/src/utils/hybrid/prime-table/table-row-data.model.ts +7 -0
  327. package/src/utils/hybrid/prime-tree-table-hybrid/tree-table-column.model.ts +10 -0
  328. package/src/utils/hybrid/prime-tree-table-hybrid/tree-table-node-data.model.ts +9 -0
  329. package/src/utils/hybrid/prime-tree-table-hybrid/tree-table-node.model.ts +9 -0
  330. package/tsconfig.lib.json +17 -0
  331. package/tsconfig.lib.prod.json +9 -0
  332. package/tsconfig.spec.json +17 -0
  333. package/tslint.json +17 -0
  334. package/versions/full/copy.json +15 -0
  335. package/versions/full/package.json +7 -0
  336. package/versions/full/public_api.ts +83 -0
  337. package/versions/interfaces/copy.json +15 -0
  338. package/versions/interfaces/package.json +7 -0
  339. package/versions/interfaces/public_api.ts +5 -0
  340. package/webpack.config.js +68 -0
  341. package/full/bms.css +0 -3
  342. package/full/bms.js +0 -1
  343. package/full/components/autocomplete/autocomplete.component.d.ts +0 -63
  344. package/full/components/autocomplete/autocomplete.component.d.ts.map +0 -1
  345. package/full/components/autocomplete/autocomplete.module.d.ts +0 -10
  346. package/full/components/autocomplete/autocomplete.module.d.ts.map +0 -1
  347. package/full/components/breadcrumb/breadcrumb.component.d.ts +0 -11
  348. package/full/components/breadcrumb/breadcrumb.component.d.ts.map +0 -1
  349. package/full/components/breadcrumb/breadcrumb.module.d.ts +0 -9
  350. package/full/components/breadcrumb/breadcrumb.module.d.ts.map +0 -1
  351. package/full/components/button/button.component.d.ts +0 -63
  352. package/full/components/button/button.component.d.ts.map +0 -1
  353. package/full/components/button/button.module.d.ts +0 -12
  354. package/full/components/button/button.module.d.ts.map +0 -1
  355. package/full/components/checkbox/checkbox.component.d.ts +0 -40
  356. package/full/components/checkbox/checkbox.component.d.ts.map +0 -1
  357. package/full/components/checkbox/checkbox.module.d.ts +0 -10
  358. package/full/components/checkbox/checkbox.module.d.ts.map +0 -1
  359. package/full/components/communication.service.d.ts +0 -10
  360. package/full/components/communication.service.d.ts.map +0 -1
  361. package/full/components/component-container/component-container.component.d.ts +0 -9
  362. package/full/components/component-container/component-container.component.d.ts.map +0 -1
  363. package/full/components/component-container/component-container.module.d.ts +0 -9
  364. package/full/components/component-container/component-container.module.d.ts.map +0 -1
  365. package/full/components/content-toggle/content-toggle.component.d.ts +0 -18
  366. package/full/components/content-toggle/content-toggle.component.d.ts.map +0 -1
  367. package/full/components/dropdown/dropdown.component.d.ts +0 -53
  368. package/full/components/dropdown/dropdown.component.d.ts.map +0 -1
  369. package/full/components/dropdown/dropdown.module.d.ts +0 -10
  370. package/full/components/dropdown/dropdown.module.d.ts.map +0 -1
  371. package/full/components/empty/empty.component.d.ts +0 -6
  372. package/full/components/empty/empty.component.d.ts.map +0 -1
  373. package/full/components/file/file.component.d.ts +0 -18
  374. package/full/components/file/file.component.d.ts.map +0 -1
  375. package/full/components/file/file.module.d.ts +0 -9
  376. package/full/components/file/file.module.d.ts.map +0 -1
  377. package/full/components/header/header.component.d.ts +0 -13
  378. package/full/components/header/header.component.d.ts.map +0 -1
  379. package/full/components/inline-message/inline-message.component.d.ts +0 -8
  380. package/full/components/inline-message/inline-message.component.d.ts.map +0 -1
  381. package/full/components/input-group/input-group.component.d.ts +0 -59
  382. package/full/components/input-group/input-group.component.d.ts.map +0 -1
  383. package/full/components/input-text/input-text.component.d.ts +0 -56
  384. package/full/components/input-text/input-text.component.d.ts.map +0 -1
  385. package/full/components/input-text/input-text.module.d.ts +0 -10
  386. package/full/components/input-text/input-text.module.d.ts.map +0 -1
  387. package/full/components/inspark.module.d.ts +0 -48
  388. package/full/components/inspark.module.d.ts.map +0 -1
  389. package/full/components/inspark.shared.d.ts +0 -12
  390. package/full/components/inspark.shared.d.ts.map +0 -1
  391. package/full/components/legacy/legacy-components.module.d.ts +0 -12
  392. package/full/components/legacy/legacy-components.module.d.ts.map +0 -1
  393. package/full/components/legacy/legacy-ui.module.d.ts +0 -13
  394. package/full/components/legacy/legacy-ui.module.d.ts.map +0 -1
  395. package/full/components/link/link.component.d.ts +0 -48
  396. package/full/components/link/link.component.d.ts.map +0 -1
  397. package/full/components/link/link.module.d.ts +0 -11
  398. package/full/components/link/link.module.d.ts.map +0 -1
  399. package/full/components/modal-input-text/modal-input-text.component.d.ts +0 -36
  400. package/full/components/modal-input-text/modal-input-text.component.d.ts.map +0 -1
  401. package/full/components/object-tree/object-tree.component.d.ts +0 -9
  402. package/full/components/object-tree/object-tree.component.d.ts.map +0 -1
  403. package/full/components/panel/panel.component.d.ts +0 -6
  404. package/full/components/panel/panel.component.d.ts.map +0 -1
  405. package/full/components/pie/pie.component.d.ts +0 -20
  406. package/full/components/pie/pie.component.d.ts.map +0 -1
  407. package/full/components/pie/pie.service.d.ts +0 -20
  408. package/full/components/pie/pie.service.d.ts.map +0 -1
  409. package/full/components/preloader/preloader.component.d.ts +0 -14
  410. package/full/components/preloader/preloader.component.d.ts.map +0 -1
  411. package/full/components/preloader/preloader.module.d.ts +0 -9
  412. package/full/components/preloader/preloader.module.d.ts.map +0 -1
  413. package/full/components/radiobutton/radiobutton.component.d.ts +0 -24
  414. package/full/components/radiobutton/radiobutton.component.d.ts.map +0 -1
  415. package/full/components/select-button/select-button.component.d.ts +0 -50
  416. package/full/components/select-button/select-button.component.d.ts.map +0 -1
  417. package/full/components/select-button/select-button.module.d.ts +0 -9
  418. package/full/components/select-button/select-button.module.d.ts.map +0 -1
  419. package/full/components/select-list/select-list.component.d.ts +0 -29
  420. package/full/components/select-list/select-list.component.d.ts.map +0 -1
  421. package/full/components/shared/shared-components.module.d.ts +0 -11
  422. package/full/components/shared/shared-components.module.d.ts.map +0 -1
  423. package/full/components/shared/shared-ui.module.d.ts +0 -12
  424. package/full/components/shared/shared-ui.module.d.ts.map +0 -1
  425. package/full/components/status-circle/status-circle.component.d.ts +0 -15
  426. package/full/components/status-circle/status-circle.component.d.ts.map +0 -1
  427. package/full/components/sticky/sticky.component.d.ts +0 -24
  428. package/full/components/sticky/sticky.component.d.ts.map +0 -1
  429. package/full/components/sticky/sticky.module.d.ts +0 -9
  430. package/full/components/sticky/sticky.module.d.ts.map +0 -1
  431. package/full/components/svg/svg.component.d.ts +0 -12
  432. package/full/components/svg/svg.component.d.ts.map +0 -1
  433. package/full/components/svg/svg.module.d.ts +0 -10
  434. package/full/components/svg/svg.module.d.ts.map +0 -1
  435. package/full/components/switcher/switcher.component.d.ts +0 -49
  436. package/full/components/switcher/switcher.component.d.ts.map +0 -1
  437. package/full/components/table/table-click-outside.directive.d.ts +0 -11
  438. package/full/components/table/table-click-outside.directive.d.ts.map +0 -1
  439. package/full/components/table/table-columns-multiselect/table-columns-multiselect.component.d.ts +0 -21
  440. package/full/components/table/table-columns-multiselect/table-columns-multiselect.component.d.ts.map +0 -1
  441. package/full/components/table/table-menu-overlay/table-menu-overlay.component.d.ts +0 -12
  442. package/full/components/table/table-menu-overlay/table-menu-overlay.component.d.ts.map +0 -1
  443. package/full/components/table/table.component.d.ts +0 -151
  444. package/full/components/table/table.component.d.ts.map +0 -1
  445. package/full/components/textarea/textarea.component.d.ts +0 -36
  446. package/full/components/textarea/textarea.component.d.ts.map +0 -1
  447. package/full/components/textarea/textarea.module.d.ts +0 -10
  448. package/full/components/textarea/textarea.module.d.ts.map +0 -1
  449. package/full/components/toolbar/toolbar.component.d.ts +0 -18
  450. package/full/components/toolbar/toolbar.component.d.ts.map +0 -1
  451. package/full/components/toolbar/toolbar.module.d.ts +0 -9
  452. package/full/components/toolbar/toolbar.module.d.ts.map +0 -1
  453. package/full/components/tooltip/tooltip.component.d.ts +0 -9
  454. package/full/components/tooltip/tooltip.component.d.ts.map +0 -1
  455. package/full/components/tree-table/tree-table.component.d.ts +0 -99
  456. package/full/components/tree-table/tree-table.component.d.ts.map +0 -1
  457. package/full/fesm2022/inspark-inspark-components.mjs +0 -6705
  458. package/full/fesm2022/inspark-inspark-components.mjs.map +0 -1
  459. package/full/index.css +0 -6
  460. package/full/index.d.ts +0 -6
  461. package/full/index.js +0 -1
  462. package/full/inspark-inspark-components.d.ts.map +0 -1
  463. package/full/interface.d.ts +0 -68
  464. package/full/interface.d.ts.map +0 -1
  465. package/full/pipes/pipes.module.d.ts +0 -11
  466. package/full/pipes/pipes.module.d.ts.map +0 -1
  467. package/full/pipes/propertyValue.pipe.d.ts +0 -8
  468. package/full/pipes/propertyValue.pipe.d.ts.map +0 -1
  469. package/full/pipes/safeUrl.pipe.d.ts +0 -24
  470. package/full/pipes/safeUrl.pipe.d.ts.map +0 -1
  471. package/full/pipes/sort-by.pipe.d.ts +0 -8
  472. package/full/pipes/sort-by.pipe.d.ts.map +0 -1
  473. package/full/pipes/time.pipe.d.ts +0 -35
  474. package/full/pipes/time.pipe.d.ts.map +0 -1
  475. package/full/public_api.d.ts +0 -74
  476. package/full/public_api.d.ts.map +0 -1
  477. package/full/services/inspark-dialog.service.d.ts +0 -12
  478. package/full/services/inspark-dialog.service.d.ts.map +0 -1
  479. package/full/services/inspark-message.service.d.ts +0 -22
  480. package/full/services/inspark-message.service.d.ts.map +0 -1
  481. package/full/utils/gettextMarker.function.d.ts +0 -2
  482. package/full/utils/gettextMarker.function.d.ts.map +0 -1
  483. package/full/utils/hybrid/prime-table/row-state.enum.d.ts +0 -8
  484. package/full/utils/hybrid/prime-table/row-state.enum.d.ts.map +0 -1
  485. package/full/utils/hybrid/prime-table/table-row-data.model.d.ts +0 -7
  486. package/full/utils/hybrid/prime-table/table-row-data.model.d.ts.map +0 -1
  487. package/interface/fesm2022/inspark-inspark-components.mjs +0 -8
  488. package/interface/fesm2022/inspark-inspark-components.mjs.map +0 -1
  489. package/interface/index.d.ts +0 -6
  490. package/interface/inspark-inspark-components.d.ts.map +0 -1
  491. package/interface/interface.d.ts +0 -68
  492. package/interface/interface.d.ts.map +0 -1
  493. package/interface/public_api.d.ts +0 -2
  494. package/interface/public_api.d.ts.map +0 -1
  495. /package/{full → src}/assets/error.svg +0 -0
  496. /package/{full → src}/assets/falsevalue.svg +0 -0
  497. /package/{full → src}/assets/icon.svg +0 -0
  498. /package/{full → src}/assets/none.svg +0 -0
  499. /package/{full → src}/assets/success.svg +0 -0
  500. /package/{full → src}/assets/warning.svg +0 -0
@@ -0,0 +1,538 @@
1
+ import {
2
+ AfterContentInit,
3
+ AfterViewInit,
4
+ Component,
5
+ ContentChildren,
6
+ EventEmitter,
7
+ Input,
8
+ NgModule, OnChanges, OnInit,
9
+ Output,
10
+ QueryList, SimpleChanges,
11
+ TemplateRef,
12
+ ViewChild
13
+ } from '@angular/core';
14
+ import {Table, TableModule, TableService} from 'primeng/table';
15
+ import {CommonModule} from '@angular/common';
16
+ import {InsparkTemplate} from '../inspark.shared';
17
+ import {TranslateModule} from '@ngx-translate/core';
18
+ import {FormsModule} from '@angular/forms';
19
+ import {TableColumnsMultiselectComponent} from './table-columns-multiselect/table-columns-multiselect.component';
20
+ import {TableMenuOverlayComponent} from './table-menu-overlay/table-menu-overlay.component';
21
+ import {TableClickOutsideDirective} from './table-click-outside.directive';
22
+ import {DropdownModule} from 'primeng/dropdown';
23
+ import {MultiSelectModule} from 'primeng/multiselect';
24
+ import {NgbDropdownModule} from '@ng-bootstrap/ng-bootstrap';
25
+ import {CheckboxModule} from 'primeng/checkbox';
26
+ import {TableRowData} from '../../utils/hybrid/prime-table/table-row-data.model';
27
+ import {PipesModule} from '../../pipes/pipes.module';
28
+ import {TableColumns, ToolBar, ToolBarFilterColumn} from '../../interface';
29
+
30
+
31
+ // NEW Factory Function
32
+ export function tableFactory(wrapper: TableComponent) {
33
+ return wrapper.dt;
34
+ }
35
+
36
+ @Component({
37
+ standalone: false,
38
+ selector: 'in-table',
39
+ templateUrl: './table.component.html',
40
+ styleUrls: ['./table.component.scss'],
41
+ providers: [TableService],
42
+ })
43
+
44
+ export class TableComponent implements OnInit, AfterContentInit {
45
+
46
+ @Input() columns: TableColumns[] = [];
47
+ filteredColumns: TableColumns[] = [];
48
+ globalFilteredColumns: string[] = [];
49
+ primaryColumns: TableColumns[] = [];
50
+ @Input() values = [];
51
+ @Input() scrollHeight: string;
52
+ @Input() scrollable: boolean;
53
+ @Input() selectionMode: 'single' | 'multiple' | null = null;
54
+ @Input() label: string;
55
+ @Input() error: string;
56
+ @Input() class: string;
57
+ @Input() required: boolean;
58
+ @Input() style: any;
59
+ @Input() toolbar: ToolBar;
60
+ @Input() checkboxSelection = true;
61
+ @Input() active;
62
+ @Input() sortField;
63
+ @Input() isAscending;
64
+ @Input() dataKey;
65
+ @Input() stateKey;
66
+ @Input() isGrouped: boolean;
67
+ @Input() customSort: boolean;
68
+ @Input() isGroupedExpanded?: boolean;
69
+ @Input() showHeader = true;
70
+ @Input() isMobileView = false;
71
+ @Input() resizableColumns = true;
72
+ @Input() isTextSearch = true;
73
+ @Input() isSortIcon = true;
74
+ @Input() columnResizeMode: 'expand' | 'fit' = 'expand';
75
+
76
+ @Output() activeChange = new EventEmitter<any>();
77
+ @ContentChildren(InsparkTemplate) templates: QueryList<InsparkTemplate>;
78
+ @Output() selectionChange: EventEmitter<any> = new EventEmitter();
79
+ @Output() addAction: EventEmitter<any> = new EventEmitter<any>();
80
+ @Output() treeAction: EventEmitter<any> = new EventEmitter<any>();
81
+ @Output() csvAction: EventEmitter<any> = new EventEmitter<any>();
82
+ @Output() saveAction: EventEmitter<any> = new EventEmitter<any>();
83
+ @Output() removeAction: EventEmitter<any> = new EventEmitter<any>();
84
+ @Output() unlinkAction: EventEmitter<any> = new EventEmitter<any>();
85
+ @Output() linkAction: EventEmitter<any> = new EventEmitter<any>();
86
+ @Output() groupEditAction: EventEmitter<any> = new EventEmitter<any>();
87
+ @Output() paramsEditAction: EventEmitter<any> = new EventEmitter<any>();
88
+ @Output() sortFunction: EventEmitter<any> = new EventEmitter<any>();
89
+ @Output() filterFunction: EventEmitter<any> = new EventEmitter<any>();
90
+
91
+ @ViewChild(Table) dt!: Table;
92
+
93
+ groupMode = 0;
94
+ groupInfo = {};
95
+ groupIndex = {};
96
+ headerTemplate: TemplateRef<any>;
97
+ bodyTemplate: TemplateRef<any>;
98
+ loadingBodyTemplate: TemplateRef<any>;
99
+ captionTemplate: TemplateRef<any>;
100
+ frozenRowsTemplate: TemplateRef<any>;
101
+ footerTemplate: TemplateRef<any>;
102
+ summaryTemplate: TemplateRef<any>;
103
+ colGroupTemplate: TemplateRef<any>;
104
+ expandedRowTemplate: TemplateRef<any>;
105
+ frozenHeaderTemplate: TemplateRef<any>;
106
+ frozenBodyTemplate: TemplateRef<any>;
107
+ frozenFooterTemplate: TemplateRef<any>;
108
+ frozenColGroupTemplate: TemplateRef<any>;
109
+ emptyMessageTemplate: TemplateRef<any>;
110
+ paginatorLeftTemplate: TemplateRef<any>;
111
+ paginatorRightTemplate: TemplateRef<any>;
112
+ valueTemplate: TemplateRef<any>;
113
+ searchText: string;
114
+ _selection = null;
115
+
116
+ constructor() {
117
+ TableComponent.patchPrimeTableSaveColumnWidths();
118
+ }
119
+
120
+ /**
121
+ * В PrimeNG 19 при восстановленном глобальном фильтре p-table может вызвать saveState()/saveColumnWidths()
122
+ * до того, как DOM-колонки полностью готовы. В таком случае внутри PrimeNG падает чтение offsetWidth.
123
+ * Патчим метод один раз на уровне прототипа Table: обычное поведение сохраняется, а в раннем ошибочном
124
+ * вызове в state возвращаются ранее сохраненные columnWidths/tableWidth.
125
+ */
126
+ private static patchPrimeTableSaveColumnWidths(): void {
127
+ const tablePrototype = (Table as any).prototype;
128
+
129
+ if (!tablePrototype || tablePrototype.__insparkSaveColumnWidthsPatched || typeof tablePrototype.saveColumnWidths !== 'function') {
130
+ return;
131
+ }
132
+
133
+ const originalSaveColumnWidths = tablePrototype.saveColumnWidths;
134
+
135
+ tablePrototype.saveColumnWidths = function(state: any) {
136
+ try {
137
+ return originalSaveColumnWidths.apply(this, arguments);
138
+ } catch (error) {
139
+ if (!TableComponent.isOffsetWidthError(error)) {
140
+ throw error;
141
+ }
142
+
143
+ TableComponent.copyColumnWidthsFromSavedState(this, state);
144
+ }
145
+ };
146
+
147
+ tablePrototype.__insparkSaveColumnWidthsPatched = true;
148
+ }
149
+
150
+ private static isOffsetWidthError(error: any): boolean {
151
+ return !!error && typeof error.message === 'string' && error.message.indexOf('offsetWidth') !== -1;
152
+ }
153
+
154
+ private static copyColumnWidthsFromSavedState(table: any, state: any): void {
155
+ if (!state || !table || !table.stateKey) {
156
+ return;
157
+ }
158
+
159
+ const storage = table.stateStorage === 'session' ? window.sessionStorage : window.localStorage;
160
+ const savedState = storage.getItem(table.stateKey);
161
+
162
+ if (!savedState) {
163
+ return;
164
+ }
165
+
166
+ try {
167
+ const parsedState = JSON.parse(savedState);
168
+
169
+ if (parsedState.columnWidths) {
170
+ state.columnWidths = parsedState.columnWidths;
171
+ }
172
+
173
+ if (parsedState.tableWidth) {
174
+ state.tableWidth = parsedState.tableWidth;
175
+ }
176
+ } catch (parseError) {
177
+ // сохраненный state поврежден; игнорируем его и даем PrimeNG сохранить новый state без ширин колонок
178
+ }
179
+ }
180
+
181
+ /** O(1) selected-row lookup. Rebuilt whenever selection changes.
182
+ * Replaces p-tableCheckbox which calls dt.isSelected() (O(M)) for EVERY
183
+ * row on EVERY CD cycle via TableService.selectionSource$ subscription. */
184
+ private _selectionSet = new Set<any>();
185
+
186
+ private _rebuildSelectionSet(val: any[]): void {
187
+ this._selectionSet = new Set<any>();
188
+ if (Array.isArray(val)) {
189
+ const key = this.dataKey || 'id';
190
+ for (const item of val) {
191
+ if (item != null) { this._selectionSet.add(item[key] ?? item); }
192
+ }
193
+ }
194
+ }
195
+
196
+ ngAfterContentInit() {
197
+ this.templates.forEach((item: InsparkTemplate) => {
198
+ switch (item.getType()) {
199
+ case 'value':
200
+ this.valueTemplate = item.template;
201
+ break;
202
+ case 'header':
203
+ this.headerTemplate = item.template;
204
+ break;
205
+ case 'body':
206
+ this.bodyTemplate = item.template;
207
+ break;
208
+ // добавьте другие типы по необходимости
209
+ }
210
+ });
211
+ }
212
+
213
+ /** O(1) check used in template instead of dt.isSelected() */
214
+ public _isRowSelected(row: any): boolean {
215
+ const key = this.dataKey || 'id';
216
+ return this._selectionSet.has(row?.[key] ?? row);
217
+ }
218
+
219
+ /** Check — uses filteredValue when filter is active, full values otherwise */
220
+ public _isAllSelected(): boolean {
221
+ const data = this.dt?.filteredValue ?? this.values;
222
+ if (!data || data.length === 0) { return false; }
223
+ const key = this.dataKey || 'id';
224
+ return data.every(row => this._selectionSet.has(row?.[key] ?? row));
225
+ }
226
+
227
+ /** Select/deselect all rows respecting active filter */
228
+ public _onHeaderCheckboxChange(event: Event): void {
229
+ const checked = (event.target as HTMLInputElement).checked;
230
+ const key = this.dataKey || 'id';
231
+ const data = this.dt?.filteredValue ?? this.values;
232
+ if (checked) {
233
+ this._selectionSet = new Set<any>(
234
+ (data || []).map(row => row?.[key] ?? row)
235
+ );
236
+ this._selection = [...(data || [])];
237
+ } else {
238
+ this._selectionSet = new Set<any>();
239
+ this._selection = [];
240
+ }
241
+ this.selectionValue = this._selection;
242
+ }
243
+
244
+ /** Called when native checkbox changes */
245
+ public _onCheckboxChange(event: Event, row: any): void {
246
+ const checked = (event.target as HTMLInputElement).checked;
247
+ const key = this.dataKey || 'id';
248
+
249
+ const rowKey = row?.[key] ?? row;
250
+ if (checked) {
251
+ this._selectionSet.add(rowKey);
252
+ this._selection = [...(this._selection || []), row];
253
+ } else {
254
+ this._selectionSet.delete(rowKey);
255
+ this._selection = (this._selection || []).filter(
256
+ (item: any) => (item?.[key] ?? item) !== rowKey
257
+ );
258
+ }
259
+ this.selectionValue = this._selection;
260
+ }
261
+
262
+ @Input() set selection(val) {
263
+ this._selection = val;
264
+ this._rebuildSelectionSet(val);
265
+ }
266
+
267
+ get selectionValue() {
268
+ return this._selection;
269
+ }
270
+
271
+ set selectionValue(val) {
272
+ this._selection = val;
273
+ this._rebuildSelectionSet(val);
274
+ this.selectionChange.emit(val);
275
+ }
276
+
277
+ public isRowActive(row: TableRowData) {
278
+ return this.active && this.active.id === row.id;
279
+ }
280
+
281
+ ngOnInit() {
282
+ this.updateData();
283
+ }
284
+
285
+
286
+ updateData() {
287
+ this.primaryColumns = this.columns.filter(column => !column.isSecondary);
288
+ this.globalFilteredColumns = this.columns.filter(column => column.isFiltering !== false).map(val => val.field);
289
+ this.visibleColumns();
290
+ }
291
+
292
+ public visibleColumns(): TableColumns[] {
293
+ this.restoreHiddenColumns();
294
+ this.filteredColumns = this.columns.filter(column => !column.isHidden);
295
+ return this.filteredColumns;
296
+ }
297
+
298
+ public columnsChange(data) {
299
+ data.column.isHidden = !data.event;
300
+ this.resetColumnWidth();
301
+ this.saveHiddenColumns();
302
+ this.visibleColumns();
303
+ }
304
+
305
+ public showTooltip(event) {
306
+ const target = event.target;
307
+ if (target.title === undefined || !target.textContent) {
308
+ return;
309
+ }
310
+ target.title = target.scrollWidth > target.clientWidth ? target.textContent : '';
311
+ }
312
+
313
+ public colFilter(field): ToolBarFilterColumn {
314
+ const found = this.toolbar.filter.cols.filter(item => item.field === field);
315
+ return found.length === 1 ? found[0] : undefined;
316
+ }
317
+
318
+ public onFilterToolbar(event) {
319
+ if (this.toolbar && this.toolbar.filter) {
320
+ this.toolbar.filter.active = !this.toolbar.filter.active;
321
+ }
322
+ }
323
+ public onFilter(event) {
324
+ this.onSort();
325
+ this.filterFunction.emit(event.filteredValue);
326
+ }
327
+
328
+ public stateSave(state) {
329
+ }
330
+
331
+ public saveToLocalStorage(state, key) {
332
+ if (key) {
333
+ window.localStorage.setItem(key, JSON.stringify(state));
334
+ }
335
+ }
336
+
337
+ public isHiddenFieldsChanged(): boolean {
338
+ const hiddenFieldsSaved = this.getHiddenHiddenFieldsFromStorage();
339
+ const hiddenFieldsColumns = (this.columns || []).filter(_col => _col.isHidden).map(_col => _col.field);
340
+ if (hiddenFieldsSaved.length === hiddenFieldsColumns.length) {
341
+ const diff = hiddenFieldsSaved.filter(field => !hiddenFieldsColumns.includes(field));
342
+ // tslint:disable-next-line:no-unused-expression
343
+ diff.length !== 0;
344
+ }
345
+ return true;
346
+ }
347
+ public saveHiddenColumns() {
348
+ if (this.stateKey) {
349
+ if (!this.isHiddenFieldsChanged()) {
350
+ return;
351
+ }
352
+ const hiddenFields = (this.columns || []).filter(_col => _col.isHidden).map(_col => _col.field).join(',');
353
+ this.saveToLocalStorage(hiddenFields, this.stateKey + 'HiddenFields');
354
+ window.localStorage.removeItem(this.stateKey);
355
+
356
+ if (this.searchText) {
357
+ window.localStorage.setItem(this.stateKey, JSON.stringify({
358
+ filters: {global: {value: this.searchText, matchMode: 'contains'}}
359
+ }));
360
+ }
361
+
362
+ if (this.dt) {
363
+ this.dt.restoreState();
364
+ }
365
+ }
366
+ }
367
+
368
+ public countVisibleColumns() {
369
+ return (this.columns || []).filter(_col => !_col.isHidden).length;
370
+ }
371
+
372
+
373
+ public restoreSearchText() {
374
+ const state = window.localStorage.getItem(this.stateKey);
375
+ if (state) {
376
+ const parsedState = JSON.parse(state);
377
+ // tslint:disable-next-line:max-line-length
378
+ this.searchText = (parsedState.filters || {global: {value: ''}}).global ? (parsedState.filters || {global: {value: ''}}).global.value : '';
379
+ this.sortField = parsedState.sortField || this.sortField;
380
+ } else {
381
+ this.resetColumnWidth();
382
+ }
383
+ }
384
+
385
+ public resetColumnWidthIfToWide() {
386
+ const visibleColumns = this.columns.filter(_column => !_column.isHidden);
387
+ const totalWidthInPercent = visibleColumns.reduce((s, column) => {
388
+ const percent = column.width.indexOf('%') > 0 ? parseInt(column.width, 10) : 0;
389
+ return s + percent;
390
+ }, 0);
391
+
392
+ if (totalWidthInPercent > 100) {
393
+ console.error(`Масимальная суммарная ширина столбцов таблицы 100%, текущая суммарная ширина ${totalWidthInPercent}%.`
394
+ + `Выполняется принудительный перерасчет ширины для таблицы ${this.stateKey}`);
395
+ this.resetColumnWidth();
396
+ }
397
+ if (totalWidthInPercent < 100 && this.columns.length > 0) {
398
+ // расширяем первый столбец, чтобы не тянулся столбец с чекбоксом
399
+ const percent = this.columns[0].width.indexOf('%') > 0 ? parseInt(this.columns[0].width, 10) : 0;
400
+ this.columns[0].width = 100 - totalWidthInPercent + percent + '%';
401
+ }
402
+
403
+ }
404
+
405
+ public resetColumnWidth() {
406
+ const cvc = this.countVisibleColumns();
407
+ let percent = Math.floor(100 / cvc);
408
+ let firstColumnPercent = percent;
409
+ if (cvc > 10) {
410
+ percent = Math.floor(90 / (cvc - 1));
411
+ firstColumnPercent = Math.floor(100 - (percent * (cvc - 1)));
412
+ }
413
+ this.columns.forEach((column, index) => column.width = index === 0 ? firstColumnPercent + '%' : `${percent}%`);
414
+ }
415
+
416
+ private getHiddenHiddenFieldsFromStorage(): string[] {
417
+ if (this.stateKey) {
418
+ const hiddenFields = window.localStorage.getItem(this.stateKey + 'HiddenFields');
419
+ if (hiddenFields) {
420
+ return JSON.parse(hiddenFields).split(',');
421
+ }
422
+ }
423
+ return [];
424
+ }
425
+ public restoreHiddenColumns() {
426
+ if (this.stateKey && window.localStorage.getItem(this.stateKey + 'HiddenFields')) {
427
+ const hiddenFieldsArray = this.getHiddenHiddenFieldsFromStorage();
428
+ this.columns.forEach(_col => _col.isHidden = hiddenFieldsArray.includes(_col.field) || _col.col_invisible);
429
+ }
430
+ }
431
+
432
+ public calcWidth(idx, label, width) {
433
+ return width && idx >= 0 ? width : 'auto';
434
+ }
435
+
436
+
437
+ public onSort() {
438
+ if (this.isGrouped) {
439
+
440
+ Object.entries(this.groupInfo).forEach(([key, value]) => {
441
+ const cacheFlag = (this.groupInfo[key] || {}).isExpanded;
442
+ this.groupInfo[key] = {isExpanded: cacheFlag === undefined ? true : cacheFlag};
443
+ });
444
+
445
+ this.sortByGroup();
446
+ if (this.dt && this.dt.filteredValue) {
447
+ this.sortByGroup(this.dt.filteredValue, this.dt._sortOrder);
448
+ } else if (this.dt && this.dt._value && this.dt._sortOrder) {
449
+ this.sortByGroup(this.dt._value, this.dt._sortOrder);
450
+ }
451
+ }
452
+ }
453
+
454
+ public isShowGroup(key, rowIndex) {
455
+ if (rowIndex === 0) {
456
+ this.groupIndex = {};
457
+ }
458
+
459
+ if (!this.groupInfo[key]) {
460
+ this.groupInfo[key] = {isExpanded: this.isGroupedExpanded !== undefined ? this.isGroupedExpanded : true};
461
+ }
462
+
463
+ if (!this.groupIndex[key]) {
464
+ this.groupIndex[key] = {rowIndex};
465
+ }
466
+ return this.groupIndex[key].rowIndex === rowIndex;
467
+ }
468
+
469
+ public toggleGroup(rowIndex: number, key: string) {
470
+ this.groupInfo[key].isExpanded = !this.groupInfo[key].isExpanded;
471
+ this.onSort();
472
+ }
473
+
474
+ clear() {
475
+ this.dt.filterGlobal('', 'contains');
476
+ this.searchText = '';
477
+ this.dt.saveState();
478
+ }
479
+
480
+ localSearch(dt, searchText) {
481
+ dt.filterGlobal(searchText, 'contains');
482
+ }
483
+
484
+ private sortByGroup(values?: any, sortOrder?: number) {
485
+ const g = this.groupMode;
486
+ if (values) {
487
+ return values.sort((row1: TableRowData, row2: TableRowData) => {
488
+ if (typeof (row1['groupOrder'][g]) === 'number') {
489
+ return sortOrder * (row1['groupOrder'][g] - row2['groupOrder'][g]);
490
+ } else {
491
+ return sortOrder * row1['groupOrder'][g].localeCompare(row2['groupOrder'][g], undefined, {numeric: true, sensitivity: 'base'});
492
+ }
493
+ });
494
+ }
495
+ this.values.sort((row1: TableRowData, row2: TableRowData) => {
496
+ if (typeof (row1['groupOrder'][g]) === 'number') {
497
+ return row1['groupOrder'][g] - row2['groupOrder'][g];
498
+ } else {
499
+ return row1['groupOrder'][g].localeCompare(row2['groupOrder'][g], undefined, {numeric: true, sensitivity: 'base'});
500
+ }
501
+ });
502
+ }
503
+
504
+ countGroup(groupKey, g: number): number {
505
+ return this.values.filter(_value => _value.groupKey[g] === groupKey).length;
506
+ }
507
+
508
+ toggleNodes(isExpanded: boolean) {
509
+ const g = this.groupMode;
510
+ this.values.forEach(v => {
511
+ if (this.groupInfo[v.groupKey[g]]) {
512
+ this.groupInfo[v.groupKey[g]].isExpanded = isExpanded;
513
+ }
514
+ });
515
+ }
516
+
517
+ toggleMode(item) {
518
+ this.groupMode = item;
519
+ this.groupInfo = {};
520
+ for (let i = 0; i < this.values.length; i++) {
521
+ this.isShowGroup(this.values[i].groupKey[this.groupMode], i);
522
+ }
523
+ if (this.searchText) {
524
+ this.dt.filterGlobal(this.searchText, 'contains');
525
+ }
526
+ this.sortByGroup();
527
+ }
528
+ }
529
+
530
+
531
+ @NgModule({
532
+ // tslint:disable-next-line:max-line-length
533
+ imports: [CommonModule, TableModule, PipesModule, TranslateModule.forChild(), FormsModule, DropdownModule, MultiSelectModule, NgbDropdownModule, CheckboxModule],
534
+ exports: [TableComponent, TableColumnsMultiselectComponent],
535
+ declarations: [TableComponent, TableColumnsMultiselectComponent, TableMenuOverlayComponent, TableClickOutsideDirective]
536
+ })
537
+ export class TableComponentModule {
538
+ }
@@ -0,0 +1,19 @@
1
+ <label class="c-label">
2
+ <span *ngIf="label" class="c-label__content">
3
+ {{label}}
4
+ <span *ngIf="required" class="c-label__req">*</span>
5
+ <span *ngIf="error" class="c-label__sub_is-error">{{error}}</span>
6
+ </span>
7
+ <textarea (change)="onChange($event)"
8
+ (input)="onChange($event)"
9
+ [(ngModel)]="value"
10
+ [disabled]="disabled"
11
+ [id]="id"
12
+ [name]="name"
13
+ [ngStyle]="{ 'min-height': minHeight+'px' }"
14
+ [placeholder]="placeholder"
15
+ [required]="required"
16
+ class="c-textarea field_{{id}}"
17
+ type="text"
18
+ ></textarea>
19
+ </label>
@@ -0,0 +1,71 @@
1
+ import {Component, forwardRef, Input} from '@angular/core';
2
+ import {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';
3
+
4
+ @Component({
5
+ standalone: false,
6
+ selector: 'in-textarea',
7
+ templateUrl: './textarea.component.html',
8
+ styleUrls: ['./textarea.component.scss'],
9
+ providers: [
10
+ {
11
+ provide: NG_VALUE_ACCESSOR,
12
+ useExisting: forwardRef(() => TextareaComponent),
13
+ multi: true,
14
+ }
15
+ ],
16
+ })
17
+ export class TextareaComponent implements ControlValueAccessor {
18
+
19
+ @Input() name = null;
20
+ @Input() label = null;
21
+ @Input() required = false;
22
+ @Input() error = null;
23
+ @Input() placeholder = '';
24
+ @Input() id = null;
25
+ @Input() disabled: boolean;
26
+ @Input() minHeight = 30;
27
+ @Input() maxlength = 100000;
28
+
29
+ value: string;
30
+
31
+ /**
32
+ * Write form value to the DOM element (model => view)
33
+ */
34
+ writeValue(value: any): void {
35
+ this.value = value;
36
+ }
37
+
38
+ /**
39
+ * Write form disabled state to the DOM element (model => view)
40
+ */
41
+ setDisabledState(isDisabled: boolean): void {
42
+ this.disabled = isDisabled;
43
+ }
44
+
45
+ /**
46
+ * Update form when DOM element value changes (view => model)
47
+ */
48
+ registerOnChange(fn: any): void {
49
+ // Store the provided function as an internal method.
50
+ this.propagateChange = fn;
51
+ }
52
+
53
+ /**
54
+ * Update form when DOM element is blurred (view => model)
55
+ */
56
+ registerOnTouched(fn: any): void {
57
+ // Store the provided function as an internal method.
58
+ this.onTouched = fn;
59
+ }
60
+
61
+ private propagateChange = (_: any) => {
62
+ };
63
+
64
+ onChange(_: any) {
65
+ this.propagateChange(this.value);
66
+ }
67
+
68
+ private onTouched() {
69
+ }
70
+
71
+ }
@@ -0,0 +1,19 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { FormsModule } from '@angular/forms';
3
+
4
+ import { TextareaComponent } from './textarea.component';
5
+ import {SharedUiModule } from '../shared/shared-ui.module';
6
+
7
+ @NgModule({
8
+ declarations: [
9
+ TextareaComponent
10
+ ],
11
+ imports: [
12
+ SharedUiModule,
13
+ FormsModule
14
+ ],
15
+ exports: [
16
+ TextareaComponent
17
+ ]
18
+ })
19
+ export class TextareaComponentModule {}
@@ -0,0 +1,19 @@
1
+ <div class="toolbar-wrapper">
2
+ <in-sticky [top]="60">
3
+
4
+ <div class="c-panel toolbar-container">
5
+ <div class="c-toolbar">
6
+ <div class="c-toolbar__side-left">
7
+ <div class="c-toolbar__title">{{title}}</div>
8
+ </div>
9
+ <div class="c-toolbar__side-center">
10
+
11
+ </div>
12
+ <div class="c-toolbar__side-right">
13
+ <ng-content></ng-content>
14
+ </div>
15
+
16
+ </div>
17
+ </div>
18
+ </in-sticky>
19
+ </div>