cats-data-grid 0.0.1 → 0.0.5

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 (354) hide show
  1. package/README.md +63 -63
  2. package/ng-package.json +20 -0
  3. package/package.json +4 -15
  4. package/src/lib/assets/images/check-white.svg +3 -0
  5. package/src/lib/assets/images/filter-icon.svg +1 -0
  6. package/src/lib/assets/images/gripper.svg +8 -0
  7. package/src/lib/assets/images/minus-blue.svg +3 -0
  8. package/src/lib/assets/images/pin.svg +4 -0
  9. package/src/lib/assets/images/t-arrow-down.svg +4 -0
  10. package/src/lib/assets/images/t-arrow-up.svg +4 -0
  11. package/src/lib/assets/images/t-choose-column.svg +3 -0
  12. package/src/lib/assets/images/t-data-pipeline.svg +13 -0
  13. package/src/lib/assets/images/t-filter-applied.svg +4 -0
  14. package/src/lib/assets/images/t-filter.svg +3 -0
  15. package/src/lib/assets/images/t-gripper.svg +8 -0
  16. package/src/lib/assets/images/t-group-by-name.svg +3 -0
  17. package/src/lib/assets/images/t-more-vertical.svg +5 -0
  18. package/src/lib/assets/images/t-move.svg +15 -0
  19. package/src/lib/assets/images/t-x.svg +4 -0
  20. package/src/lib/cats-data-grid.component.html +1389 -0
  21. package/src/lib/cats-data-grid.component.scss +736 -0
  22. package/src/lib/cats-data-grid.component.ts +1756 -0
  23. package/src/lib/common-components/common-calendar/common-calendar.component.html +228 -0
  24. package/src/lib/common-components/common-calendar/common-calendar.component.scss +279 -0
  25. package/src/lib/common-components/common-calendar/common-calendar.component.spec.ts +23 -0
  26. package/src/lib/common-components/common-calendar/common-calendar.component.ts +606 -0
  27. package/src/lib/common-components/common-input/common-input.component.html +36 -0
  28. package/src/lib/common-components/common-input/common-input.component.scss +3 -0
  29. package/src/lib/common-components/common-input/common-input.component.spec.ts +23 -0
  30. package/src/lib/common-components/common-input/common-input.component.ts +51 -0
  31. package/src/lib/directives/adaptive-position.directive.ts +192 -0
  32. package/src/lib/directives/outside-click.directive.ts +32 -0
  33. package/src/lib/directives/renderer-parser.directive.ts +51 -0
  34. package/src/lib/pipes/add-class.pipe.ts +18 -0
  35. package/src/lib/renderers/common-renderer/common-renderer.component.html +129 -0
  36. package/src/lib/renderers/common-renderer/common-renderer.component.scss +256 -0
  37. package/src/lib/renderers/common-renderer/common-renderer.component.spec.ts +23 -0
  38. package/src/lib/renderers/common-renderer/common-renderer.component.ts +302 -0
  39. package/src/lib/services/cats-data-grid.service.spec.ts +16 -0
  40. package/src/lib/services/cats-data-grid.service.ts +9 -0
  41. package/{styles → src/lib/styles}/_index.scss +3 -3
  42. package/{styles → src/lib/styles}/base/_fonts.scss +74 -74
  43. package/{styles → src/lib/styles}/base/_index.scss +1 -1
  44. package/{styles → src/lib/styles}/base/_reset.scss +60 -60
  45. package/src/lib/styles/component/_form.scss +371 -0
  46. package/{styles → src/lib/styles}/component/_index.scss +1 -1
  47. package/{styles → src/lib/styles}/sass-utils/_function.scss +14 -14
  48. package/{styles → src/lib/styles}/sass-utils/_index.scss +3 -3
  49. package/{styles → src/lib/styles}/sass-utils/_mixin.scss +87 -56
  50. package/src/lib/styles/sass-utils/_variable.scss +77 -0
  51. package/src/public-api.ts +7 -0
  52. package/tsconfig.lib.json +15 -0
  53. package/tsconfig.lib.prod.json +11 -0
  54. package/tsconfig.spec.json +15 -0
  55. package/fesm2022/cats-data-grid.mjs +0 -530
  56. package/fesm2022/cats-data-grid.mjs.map +0 -1
  57. package/index.d.ts +0 -5
  58. package/lib/cats-data-grid.component.d.ts +0 -148
  59. package/lib/directives/outside-click.directive.d.ts +0 -10
  60. package/lib/directives/renderer-parser.directive.d.ts +0 -15
  61. package/lib/pipes/add-class.pipe.d.ts +0 -7
  62. package/lib/services/cats-data-grid.service.d.ts +0 -6
  63. package/public-api.d.ts +0 -2
  64. package/styles/component/_form.scss +0 -246
  65. package/styles/sass-utils/_variable.scss +0 -66
  66. /package/{assets → src/lib/assets}/images/activity.svg +0 -0
  67. /package/{assets → src/lib/assets}/images/airplay.svg +0 -0
  68. /package/{assets → src/lib/assets}/images/alert-circle.svg +0 -0
  69. /package/{assets → src/lib/assets}/images/alert-octagon.svg +0 -0
  70. /package/{assets → src/lib/assets}/images/alert-triangle.svg +0 -0
  71. /package/{assets → src/lib/assets}/images/align-center.svg +0 -0
  72. /package/{assets → src/lib/assets}/images/align-justify.svg +0 -0
  73. /package/{assets → src/lib/assets}/images/align-left.svg +0 -0
  74. /package/{assets → src/lib/assets}/images/align-right.svg +0 -0
  75. /package/{assets → src/lib/assets}/images/anchor.svg +0 -0
  76. /package/{assets → src/lib/assets}/images/aperture.svg +0 -0
  77. /package/{assets → src/lib/assets}/images/archive.svg +0 -0
  78. /package/{assets → src/lib/assets}/images/arrow-down-circle.svg +0 -0
  79. /package/{assets → src/lib/assets}/images/arrow-down-left.svg +0 -0
  80. /package/{assets → src/lib/assets}/images/arrow-down-right.svg +0 -0
  81. /package/{assets → src/lib/assets}/images/arrow-down.svg +0 -0
  82. /package/{assets → src/lib/assets}/images/arrow-left-circle.svg +0 -0
  83. /package/{assets → src/lib/assets}/images/arrow-left.svg +0 -0
  84. /package/{assets → src/lib/assets}/images/arrow-right-circle.svg +0 -0
  85. /package/{assets → src/lib/assets}/images/arrow-right.svg +0 -0
  86. /package/{assets → src/lib/assets}/images/arrow-up-circle.svg +0 -0
  87. /package/{assets → src/lib/assets}/images/arrow-up-left.svg +0 -0
  88. /package/{assets → src/lib/assets}/images/arrow-up-right.svg +0 -0
  89. /package/{assets → src/lib/assets}/images/arrow-up.svg +0 -0
  90. /package/{assets → src/lib/assets}/images/at-sign.svg +0 -0
  91. /package/{assets → src/lib/assets}/images/award.svg +0 -0
  92. /package/{assets → src/lib/assets}/images/bar-chart-2.svg +0 -0
  93. /package/{assets → src/lib/assets}/images/bar-chart.svg +0 -0
  94. /package/{assets → src/lib/assets}/images/battery-charging.svg +0 -0
  95. /package/{assets → src/lib/assets}/images/battery.svg +0 -0
  96. /package/{assets → src/lib/assets}/images/bell-off.svg +0 -0
  97. /package/{assets → src/lib/assets}/images/bell.svg +0 -0
  98. /package/{assets → src/lib/assets}/images/bluetooth.svg +0 -0
  99. /package/{assets → src/lib/assets}/images/bold.svg +0 -0
  100. /package/{assets → src/lib/assets}/images/book-open.svg +0 -0
  101. /package/{assets → src/lib/assets}/images/book.svg +0 -0
  102. /package/{assets → src/lib/assets}/images/bookmark.svg +0 -0
  103. /package/{assets → src/lib/assets}/images/box.svg +0 -0
  104. /package/{assets → src/lib/assets}/images/briefcase.svg +0 -0
  105. /package/{assets → src/lib/assets}/images/calendar.svg +0 -0
  106. /package/{assets → src/lib/assets}/images/camera-off.svg +0 -0
  107. /package/{assets → src/lib/assets}/images/camera.svg +0 -0
  108. /package/{assets → src/lib/assets}/images/cast.svg +0 -0
  109. /package/{assets → src/lib/assets}/images/check-circle.svg +0 -0
  110. /package/{assets → src/lib/assets}/images/check-square.svg +0 -0
  111. /package/{assets → src/lib/assets}/images/check.svg +0 -0
  112. /package/{assets → src/lib/assets}/images/chevron-down.svg +0 -0
  113. /package/{assets → src/lib/assets}/images/chevron-left.svg +0 -0
  114. /package/{assets → src/lib/assets}/images/chevron-right.svg +0 -0
  115. /package/{assets → src/lib/assets}/images/chevron-up.svg +0 -0
  116. /package/{assets → src/lib/assets}/images/chevrons-down.svg +0 -0
  117. /package/{assets → src/lib/assets}/images/chevrons-left.svg +0 -0
  118. /package/{assets → src/lib/assets}/images/chevrons-right.svg +0 -0
  119. /package/{assets → src/lib/assets}/images/chevrons-up.svg +0 -0
  120. /package/{assets → src/lib/assets}/images/chrome.svg +0 -0
  121. /package/{assets → src/lib/assets}/images/circle.svg +0 -0
  122. /package/{assets → src/lib/assets}/images/clipboard.svg +0 -0
  123. /package/{assets → src/lib/assets}/images/clock.svg +0 -0
  124. /package/{assets → src/lib/assets}/images/cloud-drizzle.svg +0 -0
  125. /package/{assets → src/lib/assets}/images/cloud-lightning.svg +0 -0
  126. /package/{assets → src/lib/assets}/images/cloud-off.svg +0 -0
  127. /package/{assets → src/lib/assets}/images/cloud-rain.svg +0 -0
  128. /package/{assets → src/lib/assets}/images/cloud-snow.svg +0 -0
  129. /package/{assets → src/lib/assets}/images/cloud.svg +0 -0
  130. /package/{assets → src/lib/assets}/images/code.svg +0 -0
  131. /package/{assets → src/lib/assets}/images/codepen.svg +0 -0
  132. /package/{assets → src/lib/assets}/images/codesandbox.svg +0 -0
  133. /package/{assets → src/lib/assets}/images/coffee.svg +0 -0
  134. /package/{assets → src/lib/assets}/images/columns.svg +0 -0
  135. /package/{assets → src/lib/assets}/images/command.svg +0 -0
  136. /package/{assets → src/lib/assets}/images/compass.svg +0 -0
  137. /package/{assets → src/lib/assets}/images/copy.svg +0 -0
  138. /package/{assets → src/lib/assets}/images/corner-down-left.svg +0 -0
  139. /package/{assets → src/lib/assets}/images/corner-down-right.svg +0 -0
  140. /package/{assets → src/lib/assets}/images/corner-left-down.svg +0 -0
  141. /package/{assets → src/lib/assets}/images/corner-left-up.svg +0 -0
  142. /package/{assets → src/lib/assets}/images/corner-right-down.svg +0 -0
  143. /package/{assets → src/lib/assets}/images/corner-right-up.svg +0 -0
  144. /package/{assets → src/lib/assets}/images/corner-up-left.svg +0 -0
  145. /package/{assets → src/lib/assets}/images/corner-up-right.svg +0 -0
  146. /package/{assets → src/lib/assets}/images/cpu.svg +0 -0
  147. /package/{assets → src/lib/assets}/images/credit-card.svg +0 -0
  148. /package/{assets → src/lib/assets}/images/crop.svg +0 -0
  149. /package/{assets → src/lib/assets}/images/crosshair.svg +0 -0
  150. /package/{assets → src/lib/assets}/images/database.svg +0 -0
  151. /package/{assets → src/lib/assets}/images/delete.svg +0 -0
  152. /package/{assets → src/lib/assets}/images/disc.svg +0 -0
  153. /package/{assets → src/lib/assets}/images/divide-circle.svg +0 -0
  154. /package/{assets → src/lib/assets}/images/divide-square.svg +0 -0
  155. /package/{assets → src/lib/assets}/images/divide.svg +0 -0
  156. /package/{assets → src/lib/assets}/images/dollar-sign.svg +0 -0
  157. /package/{assets → src/lib/assets}/images/download-cloud.svg +0 -0
  158. /package/{assets → src/lib/assets}/images/download.svg +0 -0
  159. /package/{assets → src/lib/assets}/images/dribbble.svg +0 -0
  160. /package/{assets → src/lib/assets}/images/droplet.svg +0 -0
  161. /package/{assets → src/lib/assets}/images/edit-2.svg +0 -0
  162. /package/{assets → src/lib/assets}/images/edit-3.svg +0 -0
  163. /package/{assets → src/lib/assets}/images/edit.svg +0 -0
  164. /package/{assets → src/lib/assets}/images/external-link.svg +0 -0
  165. /package/{assets → src/lib/assets}/images/eye-off.svg +0 -0
  166. /package/{assets → src/lib/assets}/images/eye.svg +0 -0
  167. /package/{assets → src/lib/assets}/images/facebook.svg +0 -0
  168. /package/{assets → src/lib/assets}/images/fast-forward.svg +0 -0
  169. /package/{assets → src/lib/assets}/images/feather.svg +0 -0
  170. /package/{assets → src/lib/assets}/images/figma.svg +0 -0
  171. /package/{assets → src/lib/assets}/images/file-minus.svg +0 -0
  172. /package/{assets → src/lib/assets}/images/file-plus.svg +0 -0
  173. /package/{assets → src/lib/assets}/images/file-text.svg +0 -0
  174. /package/{assets → src/lib/assets}/images/file.svg +0 -0
  175. /package/{assets → src/lib/assets}/images/film.svg +0 -0
  176. /package/{assets → src/lib/assets}/images/filter.svg +0 -0
  177. /package/{assets → src/lib/assets}/images/flag.svg +0 -0
  178. /package/{assets → src/lib/assets}/images/folder-minus.svg +0 -0
  179. /package/{assets → src/lib/assets}/images/folder-plus.svg +0 -0
  180. /package/{assets → src/lib/assets}/images/folder.svg +0 -0
  181. /package/{assets → src/lib/assets}/images/framer.svg +0 -0
  182. /package/{assets → src/lib/assets}/images/frown.svg +0 -0
  183. /package/{assets → src/lib/assets}/images/gift.svg +0 -0
  184. /package/{assets → src/lib/assets}/images/git-branch.svg +0 -0
  185. /package/{assets → src/lib/assets}/images/git-commit.svg +0 -0
  186. /package/{assets → src/lib/assets}/images/git-merge.svg +0 -0
  187. /package/{assets → src/lib/assets}/images/git-pull-request.svg +0 -0
  188. /package/{assets → src/lib/assets}/images/github.svg +0 -0
  189. /package/{assets → src/lib/assets}/images/gitlab.svg +0 -0
  190. /package/{assets → src/lib/assets}/images/globe.svg +0 -0
  191. /package/{assets → src/lib/assets}/images/grid.svg +0 -0
  192. /package/{assets → src/lib/assets}/images/hard-drive.svg +0 -0
  193. /package/{assets → src/lib/assets}/images/hash.svg +0 -0
  194. /package/{assets → src/lib/assets}/images/headphones.svg +0 -0
  195. /package/{assets → src/lib/assets}/images/heart.svg +0 -0
  196. /package/{assets → src/lib/assets}/images/help-circle.svg +0 -0
  197. /package/{assets → src/lib/assets}/images/hexagon.svg +0 -0
  198. /package/{assets → src/lib/assets}/images/home.svg +0 -0
  199. /package/{assets → src/lib/assets}/images/image.svg +0 -0
  200. /package/{assets → src/lib/assets}/images/inbox.svg +0 -0
  201. /package/{assets → src/lib/assets}/images/info.svg +0 -0
  202. /package/{assets → src/lib/assets}/images/instagram.svg +0 -0
  203. /package/{assets → src/lib/assets}/images/italic.svg +0 -0
  204. /package/{assets → src/lib/assets}/images/key.svg +0 -0
  205. /package/{assets → src/lib/assets}/images/layers.svg +0 -0
  206. /package/{assets → src/lib/assets}/images/layout.svg +0 -0
  207. /package/{assets → src/lib/assets}/images/life-buoy.svg +0 -0
  208. /package/{assets → src/lib/assets}/images/link-2.svg +0 -0
  209. /package/{assets → src/lib/assets}/images/link.svg +0 -0
  210. /package/{assets → src/lib/assets}/images/linkedin.svg +0 -0
  211. /package/{assets → src/lib/assets}/images/list.svg +0 -0
  212. /package/{assets → src/lib/assets}/images/loader.svg +0 -0
  213. /package/{assets → src/lib/assets}/images/lock.svg +0 -0
  214. /package/{assets → src/lib/assets}/images/log-in.svg +0 -0
  215. /package/{assets → src/lib/assets}/images/log-out.svg +0 -0
  216. /package/{assets → src/lib/assets}/images/mail.svg +0 -0
  217. /package/{assets → src/lib/assets}/images/map-pin.svg +0 -0
  218. /package/{assets → src/lib/assets}/images/map.svg +0 -0
  219. /package/{assets → src/lib/assets}/images/maximize-2.svg +0 -0
  220. /package/{assets → src/lib/assets}/images/maximize.svg +0 -0
  221. /package/{assets → src/lib/assets}/images/meh.svg +0 -0
  222. /package/{assets → src/lib/assets}/images/menu.svg +0 -0
  223. /package/{assets → src/lib/assets}/images/message-circle.svg +0 -0
  224. /package/{assets → src/lib/assets}/images/message-square.svg +0 -0
  225. /package/{assets → src/lib/assets}/images/mic-off.svg +0 -0
  226. /package/{assets → src/lib/assets}/images/mic.svg +0 -0
  227. /package/{assets → src/lib/assets}/images/minimize-2.svg +0 -0
  228. /package/{assets → src/lib/assets}/images/minimize.svg +0 -0
  229. /package/{assets → src/lib/assets}/images/minus-circle.svg +0 -0
  230. /package/{assets → src/lib/assets}/images/minus-square.svg +0 -0
  231. /package/{assets → src/lib/assets}/images/minus.svg +0 -0
  232. /package/{assets → src/lib/assets}/images/monitor.svg +0 -0
  233. /package/{assets → src/lib/assets}/images/moon.svg +0 -0
  234. /package/{assets → src/lib/assets}/images/more-horizontal.svg +0 -0
  235. /package/{assets → src/lib/assets}/images/more-vertical.svg +0 -0
  236. /package/{assets → src/lib/assets}/images/mouse-pointer.svg +0 -0
  237. /package/{assets → src/lib/assets}/images/move.svg +0 -0
  238. /package/{assets → src/lib/assets}/images/music.svg +0 -0
  239. /package/{assets → src/lib/assets}/images/navigation-2.svg +0 -0
  240. /package/{assets → src/lib/assets}/images/navigation.svg +0 -0
  241. /package/{assets → src/lib/assets}/images/octagon.svg +0 -0
  242. /package/{assets → src/lib/assets}/images/package.svg +0 -0
  243. /package/{assets → src/lib/assets}/images/paperclip.svg +0 -0
  244. /package/{assets → src/lib/assets}/images/pause-circle.svg +0 -0
  245. /package/{assets → src/lib/assets}/images/pause.svg +0 -0
  246. /package/{assets → src/lib/assets}/images/pen-tool.svg +0 -0
  247. /package/{assets → src/lib/assets}/images/percent.svg +0 -0
  248. /package/{assets → src/lib/assets}/images/phone-call.svg +0 -0
  249. /package/{assets → src/lib/assets}/images/phone-forwarded.svg +0 -0
  250. /package/{assets → src/lib/assets}/images/phone-incoming.svg +0 -0
  251. /package/{assets → src/lib/assets}/images/phone-missed.svg +0 -0
  252. /package/{assets → src/lib/assets}/images/phone-off.svg +0 -0
  253. /package/{assets → src/lib/assets}/images/phone-outgoing.svg +0 -0
  254. /package/{assets → src/lib/assets}/images/phone.svg +0 -0
  255. /package/{assets → src/lib/assets}/images/pie-chart.svg +0 -0
  256. /package/{assets → src/lib/assets}/images/play-circle.svg +0 -0
  257. /package/{assets → src/lib/assets}/images/play.svg +0 -0
  258. /package/{assets → src/lib/assets}/images/plus-circle.svg +0 -0
  259. /package/{assets → src/lib/assets}/images/plus-square.svg +0 -0
  260. /package/{assets → src/lib/assets}/images/plus.svg +0 -0
  261. /package/{assets → src/lib/assets}/images/pocket.svg +0 -0
  262. /package/{assets → src/lib/assets}/images/power.svg +0 -0
  263. /package/{assets → src/lib/assets}/images/printer.svg +0 -0
  264. /package/{assets → src/lib/assets}/images/radio.svg +0 -0
  265. /package/{assets → src/lib/assets}/images/refresh-ccw.svg +0 -0
  266. /package/{assets → src/lib/assets}/images/refresh-cw.svg +0 -0
  267. /package/{assets → src/lib/assets}/images/repeat.svg +0 -0
  268. /package/{assets → src/lib/assets}/images/rewind.svg +0 -0
  269. /package/{assets → src/lib/assets}/images/rotate-ccw.svg +0 -0
  270. /package/{assets → src/lib/assets}/images/rotate-cw.svg +0 -0
  271. /package/{assets → src/lib/assets}/images/rss.svg +0 -0
  272. /package/{assets → src/lib/assets}/images/save.svg +0 -0
  273. /package/{assets → src/lib/assets}/images/scissors.svg +0 -0
  274. /package/{assets → src/lib/assets}/images/search.svg +0 -0
  275. /package/{assets → src/lib/assets}/images/send.svg +0 -0
  276. /package/{assets → src/lib/assets}/images/server.svg +0 -0
  277. /package/{assets → src/lib/assets}/images/settings.svg +0 -0
  278. /package/{assets → src/lib/assets}/images/share-2.svg +0 -0
  279. /package/{assets → src/lib/assets}/images/share.svg +0 -0
  280. /package/{assets → src/lib/assets}/images/shield-off.svg +0 -0
  281. /package/{assets → src/lib/assets}/images/shield.svg +0 -0
  282. /package/{assets → src/lib/assets}/images/shopping-bag.svg +0 -0
  283. /package/{assets → src/lib/assets}/images/shopping-cart.svg +0 -0
  284. /package/{assets → src/lib/assets}/images/shuffle.svg +0 -0
  285. /package/{assets → src/lib/assets}/images/sidebar.svg +0 -0
  286. /package/{assets → src/lib/assets}/images/skip-back.svg +0 -0
  287. /package/{assets → src/lib/assets}/images/skip-forward.svg +0 -0
  288. /package/{assets → src/lib/assets}/images/slack.svg +0 -0
  289. /package/{assets → src/lib/assets}/images/slash.svg +0 -0
  290. /package/{assets → src/lib/assets}/images/sliders.svg +0 -0
  291. /package/{assets → src/lib/assets}/images/smartphone.svg +0 -0
  292. /package/{assets → src/lib/assets}/images/smile.svg +0 -0
  293. /package/{assets → src/lib/assets}/images/sort_down.svg +0 -0
  294. /package/{assets → src/lib/assets}/images/sort_up.svg +0 -0
  295. /package/{assets → src/lib/assets}/images/speaker.svg +0 -0
  296. /package/{assets → src/lib/assets}/images/square.svg +0 -0
  297. /package/{assets → src/lib/assets}/images/star.svg +0 -0
  298. /package/{assets → src/lib/assets}/images/stop-circle.svg +0 -0
  299. /package/{assets → src/lib/assets}/images/sun.svg +0 -0
  300. /package/{assets → src/lib/assets}/images/sunrise.svg +0 -0
  301. /package/{assets → src/lib/assets}/images/sunset.svg +0 -0
  302. /package/{assets → src/lib/assets}/images/table.svg +0 -0
  303. /package/{assets → src/lib/assets}/images/tablet.svg +0 -0
  304. /package/{assets → src/lib/assets}/images/tag.svg +0 -0
  305. /package/{assets → src/lib/assets}/images/target.svg +0 -0
  306. /package/{assets → src/lib/assets}/images/terminal.svg +0 -0
  307. /package/{assets → src/lib/assets}/images/thermometer.svg +0 -0
  308. /package/{assets → src/lib/assets}/images/thumbs-down.svg +0 -0
  309. /package/{assets → src/lib/assets}/images/thumbs-up.svg +0 -0
  310. /package/{assets → src/lib/assets}/images/toggle-left.svg +0 -0
  311. /package/{assets → src/lib/assets}/images/toggle-right.svg +0 -0
  312. /package/{assets → src/lib/assets}/images/tool.svg +0 -0
  313. /package/{assets → src/lib/assets}/images/trash-2.svg +0 -0
  314. /package/{assets → src/lib/assets}/images/trash.svg +0 -0
  315. /package/{assets → src/lib/assets}/images/trello.svg +0 -0
  316. /package/{assets → src/lib/assets}/images/trending-down.svg +0 -0
  317. /package/{assets → src/lib/assets}/images/trending-up.svg +0 -0
  318. /package/{assets → src/lib/assets}/images/triangle.svg +0 -0
  319. /package/{assets → src/lib/assets}/images/truck.svg +0 -0
  320. /package/{assets → src/lib/assets}/images/tv.svg +0 -0
  321. /package/{assets → src/lib/assets}/images/twitch.svg +0 -0
  322. /package/{assets → src/lib/assets}/images/twitter.svg +0 -0
  323. /package/{assets → src/lib/assets}/images/type.svg +0 -0
  324. /package/{assets → src/lib/assets}/images/umbrella.svg +0 -0
  325. /package/{assets → src/lib/assets}/images/underline.svg +0 -0
  326. /package/{assets → src/lib/assets}/images/unlock.svg +0 -0
  327. /package/{assets → src/lib/assets}/images/upload-cloud.svg +0 -0
  328. /package/{assets → src/lib/assets}/images/upload.svg +0 -0
  329. /package/{assets → src/lib/assets}/images/user-check.svg +0 -0
  330. /package/{assets → src/lib/assets}/images/user-minus.svg +0 -0
  331. /package/{assets → src/lib/assets}/images/user-plus.svg +0 -0
  332. /package/{assets → src/lib/assets}/images/user-x.svg +0 -0
  333. /package/{assets → src/lib/assets}/images/user.svg +0 -0
  334. /package/{assets → src/lib/assets}/images/users.svg +0 -0
  335. /package/{assets → src/lib/assets}/images/video-off.svg +0 -0
  336. /package/{assets → src/lib/assets}/images/video.svg +0 -0
  337. /package/{assets → src/lib/assets}/images/voicemail.svg +0 -0
  338. /package/{assets → src/lib/assets}/images/volume-1.svg +0 -0
  339. /package/{assets → src/lib/assets}/images/volume-2.svg +0 -0
  340. /package/{assets → src/lib/assets}/images/volume-x.svg +0 -0
  341. /package/{assets → src/lib/assets}/images/volume.svg +0 -0
  342. /package/{assets → src/lib/assets}/images/watch.svg +0 -0
  343. /package/{assets → src/lib/assets}/images/wifi-off.svg +0 -0
  344. /package/{assets → src/lib/assets}/images/wifi.svg +0 -0
  345. /package/{assets → src/lib/assets}/images/wind.svg +0 -0
  346. /package/{assets → src/lib/assets}/images/x-circle.svg +0 -0
  347. /package/{assets → src/lib/assets}/images/x-octagon.svg +0 -0
  348. /package/{assets → src/lib/assets}/images/x-square.svg +0 -0
  349. /package/{assets → src/lib/assets}/images/x.svg +0 -0
  350. /package/{assets → src/lib/assets}/images/youtube.svg +0 -0
  351. /package/{assets → src/lib/assets}/images/zap-off.svg +0 -0
  352. /package/{assets → src/lib/assets}/images/zap.svg +0 -0
  353. /package/{assets → src/lib/assets}/images/zoom-in.svg +0 -0
  354. /package/{assets → src/lib/assets}/images/zoom-out.svg +0 -0
@@ -0,0 +1,256 @@
1
+ @use "./../../styles" as *;
2
+
3
+ // Action menu dropdown CSS starts here
4
+ .action-menu {
5
+ position: relative;
6
+ text-align: center;
7
+ .action_dots {
8
+ background: transparent;
9
+ border: none;
10
+ cursor: pointer;
11
+ img {
12
+ max-width: rem(16px);
13
+ }
14
+ }
15
+ .menu {
16
+ background-color: var(--white);
17
+ box-shadow: 0px rem(12px) rem(16px) rem(-4px) var(--box-shadow);
18
+ @include border();
19
+ z-index: 99;
20
+ width: max-content;
21
+ min-width: rem(120px);
22
+ max-width: rem(200px);
23
+ position: absolute;
24
+ top: rem(10px);
25
+ .item_wrapper {
26
+ position: relative;
27
+ max-height: rem(240px);
28
+ overflow-y: auto;
29
+ margin: rem(4px) 0;
30
+ .menu_item {
31
+ min-height: rem(40px);
32
+ width: 100%;
33
+ padding: rem(10px) rem(16px);
34
+ @include flex(start, center, rem(8px));
35
+ cursor: pointer;
36
+ position: relative;
37
+ @include fontStyle(rem(14px), rem(20px), 400);
38
+ color: var(--neutral-600);
39
+ &.disabled_item {
40
+ color: var(--neutral-300);
41
+ pointer-events: none;
42
+ img {
43
+ opacity: 0.3;
44
+ }
45
+ }
46
+ &:hover {
47
+ background-color: var(--blue-50);
48
+ }
49
+ img {
50
+ @include box(rem(16px), rem(16px));
51
+ opacity: 0.7;
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+
58
+ // tag css starts here
59
+ %more {
60
+ @include fontStyle(var(--fs-14), rem(20px), 500);
61
+ color: var(--neutral-500);
62
+ background-color: var(--white);
63
+ padding: rem(3px) rem(8px);
64
+ @include border();
65
+ }
66
+
67
+ .tag_wrapper {
68
+ position: relative;
69
+ @include flex(start, center, 6px);
70
+
71
+ .tag_chip {
72
+ @extend %more;
73
+ white-space: nowrap;
74
+ @include flex(start, center, rem(4px));
75
+ // max-width: rem(200px);
76
+
77
+ .circle {
78
+ @include box(rem(8px), rem(8px));
79
+ border-radius: 50%;
80
+ background-color: var(--neutral-500);
81
+
82
+ &.bg_error {
83
+ background-color: var(--red-700);
84
+ }
85
+ &.bg_pending {
86
+ background-color: var(--yellow-700);
87
+ }
88
+ &.bg_active {
89
+ background-color: var(--green-600);
90
+ }
91
+ &.bg_info {
92
+ background-color: var(--blue-700);
93
+ }
94
+ }
95
+ .suffix {
96
+ order: 1;
97
+ }
98
+ .icon {
99
+ max-width: rem(16px);
100
+ max-height: rem(16px);
101
+ }
102
+ }
103
+ .hidden_list {
104
+ display: flex;
105
+ .tag_more {
106
+ @extend %more;
107
+ cursor: pointer;
108
+ background-color: var(--neutral-50);
109
+ }
110
+
111
+ .tag_dropdown {
112
+ position: relative;
113
+ // @include positioning(100%, 0);
114
+ top: 100%;
115
+ right: 0;
116
+ max-width: rem(180px);
117
+ min-width: rem(120px);
118
+ max-height: rem(220px);
119
+ overflow: auto;
120
+ overflow-x: hidden;
121
+ background: var(--white);
122
+ @include border();
123
+ box-shadow: 0 rem(4px) rem(10px) rem(4px) var(--box-shadow);
124
+ z-index: 1;
125
+ padding: rem(8px);
126
+ // @include flex("", "", rem(8px), "", wrap);
127
+ @include flex("", "", rem(8px), column);
128
+ .dropdown_item {
129
+ @include fontStyle(var(--fs-14), rem(20px), 500);
130
+ color: var(--neutral-500);
131
+ padding: rem(3px) rem(8px);
132
+ // white-space: nowrap;
133
+ width: auto;
134
+ // width: fit-content;
135
+ @include border();
136
+ }
137
+ }
138
+ }
139
+
140
+ .tag_chip,
141
+ .hidden_list .tag_dropdown .dropdown_item {
142
+ &.active {
143
+ background-color: var(--green-100);
144
+ border-color: var(--green-200);
145
+ color: var(--green-700);
146
+ }
147
+ &.pending {
148
+ background-color: var(--yellow-100);
149
+ border-color: var(--yellow-300);
150
+ color: var(--yellow-700);
151
+ }
152
+ &.error {
153
+ background-color: var(--red-100);
154
+ border-color: var(--red-300);
155
+ color: var(--red-700);
156
+ }
157
+ &.info {
158
+ background-color: var(--blue-100);
159
+ border-color: var(--blue-300);
160
+ color: var(--blue-700);
161
+ }
162
+ &.disable {
163
+ background-color: var(--neutral-50);
164
+ border-color: var(--neutral-300);
165
+ color: var(--neutral-400);
166
+ cursor: not-allowed;
167
+ }
168
+ }
169
+ }
170
+ // tag css ends here
171
+
172
+ .ellipsis,
173
+ .textTruncate {
174
+ white-space: nowrap;
175
+ overflow: hidden;
176
+ text-overflow: ellipsis;
177
+ max-width: rem(200px);
178
+ }
179
+
180
+ ::ng-deep td:has(.action-menu:focus-within) {
181
+ z-index: 15 !important;
182
+ }
183
+
184
+ // .more_data_section{
185
+ // position: relative;
186
+
187
+ // .shsh{
188
+
189
+ // }
190
+ // }
191
+
192
+ .cell-value {
193
+ // line-height: 1 !important;
194
+ line-height: rem(18px) !important;
195
+
196
+ &.ellipsis,
197
+ .ellipsis {
198
+ max-width: -webkit-fill-available;
199
+ width: inherit;
200
+ }
201
+ &.ellipsis:hover {
202
+ .see_more_data {
203
+ display: flex;
204
+ }
205
+ }
206
+ }
207
+
208
+ :host::ng-deep .see_more_data {
209
+ position: absolute;
210
+ min-width: rem(140px);
211
+ max-width: rem(317px);
212
+ background-color: var(--white);
213
+ @include border($radius: rem(8px));
214
+ box-shadow: 0px rem(4px) rem(10px) 0px var(--box-shadow);
215
+ display: none;
216
+ flex-direction: column;
217
+ max-height: rem(250px);
218
+ overflow-y: auto;
219
+ // z-index: 14;
220
+ z-index: 1;
221
+ left: 0;
222
+ // top: rem(40px);
223
+ // padding: rem(6px) 0;
224
+ .item {
225
+ @include box(100%, "");
226
+ min-height: rem(40px);
227
+ @include flex("", start);
228
+ padding: rem(10px) rem(16px);
229
+ color: var(--neutral-500);
230
+ @include fontStyle(var(--fs-14), rem(20px), 500);
231
+ .desc {
232
+ text-wrap: wrap;
233
+ word-break: break-word;
234
+ }
235
+ }
236
+ }
237
+
238
+ .grid-link {
239
+ color: var(--blue-700);
240
+ cursor: pointer;
241
+ text-decoration: none;
242
+ user-select: none;
243
+ }
244
+
245
+ .grid-link:hover {
246
+ text-decoration: underline;
247
+ }
248
+
249
+ .grid-link:active {
250
+ opacity: 0.8;
251
+ }
252
+
253
+ .grid-link:focus {
254
+ outline: none;
255
+ text-decoration: underline;
256
+ }
@@ -0,0 +1,23 @@
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+
3
+ import { CommonRendererComponent } from './common-renderer.component';
4
+
5
+ describe('CommonRendererComponent', () => {
6
+ let component: CommonRendererComponent;
7
+ let fixture: ComponentFixture<CommonRendererComponent>;
8
+
9
+ beforeEach(async () => {
10
+ await TestBed.configureTestingModule({
11
+ imports: [CommonRendererComponent]
12
+ })
13
+ .compileComponents();
14
+
15
+ fixture = TestBed.createComponent(CommonRendererComponent);
16
+ component = fixture.componentInstance;
17
+ fixture.detectChanges();
18
+ });
19
+
20
+ it('should create', () => {
21
+ expect(component).toBeTruthy();
22
+ });
23
+ });
@@ -0,0 +1,302 @@
1
+ import { Component, HostListener, signal } from '@angular/core';
2
+ import { OutsideClickDirective } from '../../directives/outside-click.directive';
3
+ import { AdaptivePositionDirective } from '../../directives/adaptive-position.directive';
4
+ import { CommonModule } from '@angular/common';
5
+ import { AddClassPipe } from '../../pipes/add-class.pipe';
6
+
7
+ @Component({
8
+ selector: 'lib-common-renderer',
9
+ imports: [
10
+ OutsideClickDirective,
11
+ AdaptivePositionDirective,
12
+ CommonModule,
13
+ AddClassPipe,
14
+ ],
15
+ templateUrl: './common-renderer.component.html',
16
+ styleUrl: './common-renderer.component.scss',
17
+ })
18
+ export class CommonRendererComponent {
19
+ params: any;
20
+
21
+ private static _activeRowId = signal<number | null>(null);
22
+ private static _activeTagId = signal<string | null>(null);
23
+
24
+ // wrapper to access static signal easily
25
+ activeRowId = CommonRendererComponent._activeRowId;
26
+ activeTagId = CommonRendererComponent._activeTagId;
27
+ clickTimer: any = null;
28
+ clickDelay = 250;
29
+
30
+ maxVisible: number = 2;
31
+
32
+ cellInit(params: any, data: any) {
33
+ this.params = params;
34
+ }
35
+
36
+ /**
37
+ * @description Returns the renderer type defined in cellRendererParams.
38
+ * @author Anand Pandey
39
+ * @returns {string | undefined}
40
+ */
41
+ get type() {
42
+ return this.params?.cellParams?.type;
43
+ }
44
+
45
+ /**
46
+ * @description Returns the renderer subtype defined in cellRendererParams.
47
+ * @author Anand Pandey
48
+ * @returns {string | undefined}
49
+ */
50
+ get actionSubType() {
51
+ return this.params?.cellParams?.subType;
52
+ }
53
+
54
+ /**
55
+ * @description Returns the cell value from params or fallback to row data field.
56
+ * @author Anand Pandey
57
+ * @returns {any}
58
+ */
59
+ get value() {
60
+ return this.params?.value ?? this.params?.data?.[this.params?.field];
61
+ }
62
+
63
+ /**
64
+ * @description Returns the list of actions configured for the action menu.
65
+ * @author Anand Pandey
66
+ * @returns {any[]}
67
+ */
68
+ get actions() {
69
+ return this.params?.cellParams?.actions.map((action: any) => {
70
+ return {
71
+ ...action,
72
+ class: action.class || '',
73
+ };
74
+ });
75
+ }
76
+
77
+ /**
78
+ * @description Determines whether the current row's action menu should be open.
79
+ * @author Anand Pandey
80
+ * @returns {boolean}
81
+ */
82
+ get openActionMenu() {
83
+ return this.activeRowId() === this.params.data.rowId;
84
+ }
85
+
86
+ /**
87
+ * @description Emits a callback function defined in cellRendererParams.
88
+ * @author Anand Pandey
89
+ * @param {string} eventName
90
+ * @param {any} data
91
+ * @returns {void}
92
+ */
93
+ emit(eventName: string, data: any) {
94
+ const handler = this.params?.cellParams?.[eventName];
95
+ if (typeof handler === 'function') handler(data);
96
+ }
97
+
98
+ /**
99
+ * @description Handles switch toggle and emits value change event.
100
+ * @author Anand Pandey
101
+ * @param {Event} event
102
+ * @returns {void}
103
+ */
104
+ onToggle(event: any) {
105
+ this.emit('onToggle', {
106
+ row: this.params.data,
107
+ value: event.target.checked,
108
+ });
109
+ }
110
+
111
+ /**
112
+ * @description Toggles the three-dots action menu for the current row.
113
+ * @author Anand Pandey
114
+ * @returns {void}
115
+ */
116
+ onThreeDotsMenuClick() {
117
+ if (this.openActionMenu) {
118
+ this.activeRowId.set(null);
119
+ } else {
120
+ this.activeRowId.set(this.params.data.rowId);
121
+ }
122
+ }
123
+
124
+ /**
125
+ * @description Handles click on an action option and emits selected action event.
126
+ * @author Anand Pandey
127
+ * @param {any} action
128
+ * @returns {void}
129
+ */
130
+ onActionClick(action: any) {
131
+ this.activeRowId.set(null);
132
+ this.emit('onAction', {
133
+ row: this.params.data,
134
+ action,
135
+ });
136
+ }
137
+
138
+ linkSingleClick() {
139
+ if (this.clickTimer) {
140
+ clearTimeout(this.clickTimer);
141
+ this.clickTimer = null;
142
+ }
143
+ this.clickTimer = setTimeout(() => {
144
+ this.emit('onLinkClick', {
145
+ row: this.params.data,
146
+ event: 'singleClick',
147
+ });
148
+ this.clickTimer = null;
149
+ }, this.clickDelay);
150
+ }
151
+
152
+ linkDoubleClick() {
153
+ if (this.clickTimer) {
154
+ clearTimeout(this.clickTimer);
155
+ this.clickTimer = null;
156
+ }
157
+ this.emit('onLinkClick', {
158
+ row: this.params.data,
159
+ event: 'doubleClick',
160
+ });
161
+ }
162
+
163
+ /**
164
+ * @description Closes the action menu when clicking outside the component.
165
+ * @author Anand Pandey
166
+ * @param {Event} e
167
+ * @returns {void}
168
+ */
169
+ clickOutside(e: any) {
170
+ this.activeRowId.set(null);
171
+ }
172
+
173
+ /**
174
+ * @description Returns the complete list of tags after normalizing value input (supports array, object, string).
175
+ * @author Anand Pandey
176
+ * @returns {string[]}
177
+ */
178
+ get allTags(): any {
179
+ return this.transformValue('tagKey', 'tagValue');
180
+ }
181
+
182
+ /**
183
+ * @description Returns the subset of tags that should be visibly displayed in the UI based on maxVisible count.
184
+ * @author Anand Pandey
185
+ * @returns {string[]}
186
+ */
187
+ get visibleTags() {
188
+ return this.allTags.slice(0, this.maxVisible);
189
+ }
190
+
191
+ /**
192
+ * @description Returns the count of tags hidden behind the "+" more indicator.
193
+ * @author Anand Pandey
194
+ * @returns {number}
195
+ */
196
+ get hiddenCount() {
197
+ return Math.max(0, this.allTags.length - this.maxVisible);
198
+ }
199
+
200
+ /**
201
+ * @description Determines whether the dropdown should be open for the current row based on activeTagId.
202
+ * @author Anand Pandey
203
+ * @returns {boolean}
204
+ */
205
+ get openDropdown() {
206
+ return (
207
+ this.activeTagId() ===
208
+ `${this.params.col.fieldName}-${this.params.data.rowId}`
209
+ );
210
+ }
211
+
212
+ /**
213
+ * @description Handles hover entry and activates dropdown if cursor enters +icon, hidden-list, dropdown or its items.
214
+ * @author Anand Pandey
215
+ * @param {MouseEvent} event
216
+ * @returns {void}
217
+ */
218
+ toggleDropdown(event: MouseEvent) {
219
+ const target = event.target as HTMLElement;
220
+ if (
221
+ target &&
222
+ (target.closest('.hidden_list') ||
223
+ target.closest('.tag_more') ||
224
+ target.closest('.tag_dropdown') ||
225
+ target.closest('.dropdown_item') ||
226
+ this.openDropdown)
227
+ ) {
228
+ this.activeTagId.set(
229
+ `${this.params.col.fieldName}-${this.params.data.rowId}`,
230
+ );
231
+ return;
232
+ }
233
+ if (this.openDropdown) {
234
+ this.activeTagId.set(null);
235
+ }
236
+ }
237
+
238
+ /**
239
+ * @description Closes the dropdown only when cursor leaves the entire component area and not moving inside child elements.
240
+ * @author Anand Pandey
241
+ * @param {MouseEvent} event
242
+ * @returns {void}
243
+ */
244
+ closeDropdown(event: MouseEvent) {
245
+ const target = event.relatedTarget as HTMLElement;
246
+
247
+ if (
248
+ target &&
249
+ (target.closest('.tag_wrapper') ||
250
+ target.closest('.hidden_list') ||
251
+ target.closest('.tag_more') ||
252
+ target.closest('tag_dropdown') ||
253
+ target.closest('dropdown_item'))
254
+ ) {
255
+ return;
256
+ }
257
+ this.activeTagId.set(null);
258
+ }
259
+
260
+ /**
261
+ * @description Returns normalized link values derived from the cell `value`.
262
+ * Uses the configured `linkKey` from `cellParams` to extract display data
263
+ * @author Anand Pandey
264
+ * @returns {Array<{ linkValue: string; class: string }>} Normalized link values
265
+ */
266
+ get linkVal(): any {
267
+ return this.transformValue('linkKey', 'linkValue');
268
+ }
269
+
270
+ /**
271
+ * @description Normalizes the component `value` into a consistent array structure.
272
+ * @author Anand Pandey
273
+ * @param {string} key Key in `cellParams` used to determine which field to read from object values
274
+ * @param {string} valueProp Property name assigned to the normalized output value
275
+ * @returns {Array<{ [key: string]: string; class: string }>} Array of normalized value objects
276
+ */
277
+ transformValue(key: string, valueProp: any) {
278
+ const value = this.value;
279
+ if (!value) return [];
280
+
281
+ if (Array.isArray(value)) {
282
+ return value.map((val) => {
283
+ if (typeof val === 'object') {
284
+ return {
285
+ [valueProp]: val[this.params.cellParams?.[key]],
286
+ class: val['class'] || '',
287
+ };
288
+ } else {
289
+ return { [valueProp]: String(val).trim(), class: '' };
290
+ }
291
+ });
292
+ } else if (!Array.isArray(value) && typeof value === 'object') {
293
+ return [
294
+ {
295
+ [valueProp]: value[this.params.cellParams?.[key]],
296
+ class: value['class'] || '',
297
+ },
298
+ ];
299
+ }
300
+ return [{ [valueProp]: String(value).trim(), class: '' }];
301
+ }
302
+ }
@@ -0,0 +1,16 @@
1
+ import { TestBed } from '@angular/core/testing';
2
+
3
+ import { CatsDataGridService } from './cats-data-grid.service';
4
+
5
+ describe('CatsDataGridService', () => {
6
+ let service: CatsDataGridService;
7
+
8
+ beforeEach(() => {
9
+ TestBed.configureTestingModule({});
10
+ service = TestBed.inject(CatsDataGridService);
11
+ });
12
+
13
+ it('should be created', () => {
14
+ expect(service).toBeTruthy();
15
+ });
16
+ });
@@ -0,0 +1,9 @@
1
+ import { Injectable } from '@angular/core';
2
+
3
+ @Injectable({
4
+ providedIn: 'root'
5
+ })
6
+ export class CatsDataGridService {
7
+
8
+ constructor() { }
9
+ }
@@ -1,3 +1,3 @@
1
- @forward "sass-utils";
2
- @forward "component";
3
- @forward "base";
1
+ @forward "sass-utils";
2
+ @forward "component";
3
+ @forward "base";