cats-data-grid 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/README.md +63 -0
  2. package/assets/images/activity.svg +1 -0
  3. package/assets/images/airplay.svg +1 -0
  4. package/assets/images/alert-circle.svg +1 -0
  5. package/assets/images/alert-octagon.svg +1 -0
  6. package/assets/images/alert-triangle.svg +1 -0
  7. package/assets/images/align-center.svg +1 -0
  8. package/assets/images/align-justify.svg +1 -0
  9. package/assets/images/align-left.svg +1 -0
  10. package/assets/images/align-right.svg +1 -0
  11. package/assets/images/anchor.svg +1 -0
  12. package/assets/images/aperture.svg +1 -0
  13. package/assets/images/archive.svg +1 -0
  14. package/assets/images/arrow-down-circle.svg +1 -0
  15. package/assets/images/arrow-down-left.svg +1 -0
  16. package/assets/images/arrow-down-right.svg +1 -0
  17. package/assets/images/arrow-down.svg +1 -0
  18. package/assets/images/arrow-left-circle.svg +1 -0
  19. package/assets/images/arrow-left.svg +1 -0
  20. package/assets/images/arrow-right-circle.svg +1 -0
  21. package/assets/images/arrow-right.svg +1 -0
  22. package/assets/images/arrow-up-circle.svg +1 -0
  23. package/assets/images/arrow-up-left.svg +1 -0
  24. package/assets/images/arrow-up-right.svg +1 -0
  25. package/assets/images/arrow-up.svg +1 -0
  26. package/assets/images/at-sign.svg +1 -0
  27. package/assets/images/award.svg +1 -0
  28. package/assets/images/bar-chart-2.svg +1 -0
  29. package/assets/images/bar-chart.svg +1 -0
  30. package/assets/images/battery-charging.svg +1 -0
  31. package/assets/images/battery.svg +1 -0
  32. package/assets/images/bell-off.svg +1 -0
  33. package/assets/images/bell.svg +1 -0
  34. package/assets/images/bluetooth.svg +1 -0
  35. package/assets/images/bold.svg +1 -0
  36. package/assets/images/book-open.svg +1 -0
  37. package/assets/images/book.svg +1 -0
  38. package/assets/images/bookmark.svg +1 -0
  39. package/assets/images/box.svg +1 -0
  40. package/assets/images/briefcase.svg +1 -0
  41. package/assets/images/calendar.svg +1 -0
  42. package/assets/images/camera-off.svg +1 -0
  43. package/assets/images/camera.svg +1 -0
  44. package/assets/images/cast.svg +1 -0
  45. package/assets/images/check-circle.svg +1 -0
  46. package/assets/images/check-square.svg +1 -0
  47. package/assets/images/check.svg +1 -0
  48. package/assets/images/chevron-down.svg +1 -0
  49. package/assets/images/chevron-left.svg +1 -0
  50. package/assets/images/chevron-right.svg +1 -0
  51. package/assets/images/chevron-up.svg +1 -0
  52. package/assets/images/chevrons-down.svg +1 -0
  53. package/assets/images/chevrons-left.svg +1 -0
  54. package/assets/images/chevrons-right.svg +1 -0
  55. package/assets/images/chevrons-up.svg +1 -0
  56. package/assets/images/chrome.svg +1 -0
  57. package/assets/images/circle.svg +1 -0
  58. package/assets/images/clipboard.svg +1 -0
  59. package/assets/images/clock.svg +1 -0
  60. package/assets/images/cloud-drizzle.svg +1 -0
  61. package/assets/images/cloud-lightning.svg +1 -0
  62. package/assets/images/cloud-off.svg +1 -0
  63. package/assets/images/cloud-rain.svg +1 -0
  64. package/assets/images/cloud-snow.svg +1 -0
  65. package/assets/images/cloud.svg +1 -0
  66. package/assets/images/code.svg +1 -0
  67. package/assets/images/codepen.svg +1 -0
  68. package/assets/images/codesandbox.svg +1 -0
  69. package/assets/images/coffee.svg +1 -0
  70. package/assets/images/columns.svg +1 -0
  71. package/assets/images/command.svg +1 -0
  72. package/assets/images/compass.svg +1 -0
  73. package/assets/images/copy.svg +1 -0
  74. package/assets/images/corner-down-left.svg +1 -0
  75. package/assets/images/corner-down-right.svg +1 -0
  76. package/assets/images/corner-left-down.svg +1 -0
  77. package/assets/images/corner-left-up.svg +1 -0
  78. package/assets/images/corner-right-down.svg +1 -0
  79. package/assets/images/corner-right-up.svg +1 -0
  80. package/assets/images/corner-up-left.svg +1 -0
  81. package/assets/images/corner-up-right.svg +1 -0
  82. package/assets/images/cpu.svg +1 -0
  83. package/assets/images/credit-card.svg +1 -0
  84. package/assets/images/crop.svg +1 -0
  85. package/assets/images/crosshair.svg +1 -0
  86. package/assets/images/database.svg +1 -0
  87. package/assets/images/delete.svg +1 -0
  88. package/assets/images/disc.svg +1 -0
  89. package/assets/images/divide-circle.svg +1 -0
  90. package/assets/images/divide-square.svg +1 -0
  91. package/assets/images/divide.svg +1 -0
  92. package/assets/images/dollar-sign.svg +1 -0
  93. package/assets/images/download-cloud.svg +1 -0
  94. package/assets/images/download.svg +1 -0
  95. package/assets/images/dribbble.svg +1 -0
  96. package/assets/images/droplet.svg +1 -0
  97. package/assets/images/edit-2.svg +1 -0
  98. package/assets/images/edit-3.svg +1 -0
  99. package/assets/images/edit.svg +1 -0
  100. package/assets/images/external-link.svg +1 -0
  101. package/assets/images/eye-off.svg +1 -0
  102. package/assets/images/eye.svg +1 -0
  103. package/assets/images/facebook.svg +1 -0
  104. package/assets/images/fast-forward.svg +1 -0
  105. package/assets/images/feather.svg +1 -0
  106. package/assets/images/figma.svg +1 -0
  107. package/assets/images/file-minus.svg +1 -0
  108. package/assets/images/file-plus.svg +1 -0
  109. package/assets/images/file-text.svg +1 -0
  110. package/assets/images/file.svg +1 -0
  111. package/assets/images/film.svg +1 -0
  112. package/assets/images/filter.svg +1 -0
  113. package/assets/images/flag.svg +1 -0
  114. package/assets/images/folder-minus.svg +1 -0
  115. package/assets/images/folder-plus.svg +1 -0
  116. package/assets/images/folder.svg +1 -0
  117. package/assets/images/framer.svg +1 -0
  118. package/assets/images/frown.svg +1 -0
  119. package/assets/images/gift.svg +1 -0
  120. package/assets/images/git-branch.svg +1 -0
  121. package/assets/images/git-commit.svg +1 -0
  122. package/assets/images/git-merge.svg +1 -0
  123. package/assets/images/git-pull-request.svg +1 -0
  124. package/assets/images/github.svg +1 -0
  125. package/assets/images/gitlab.svg +1 -0
  126. package/assets/images/globe.svg +1 -0
  127. package/assets/images/grid.svg +1 -0
  128. package/assets/images/hard-drive.svg +1 -0
  129. package/assets/images/hash.svg +1 -0
  130. package/assets/images/headphones.svg +1 -0
  131. package/assets/images/heart.svg +1 -0
  132. package/assets/images/help-circle.svg +1 -0
  133. package/assets/images/hexagon.svg +1 -0
  134. package/assets/images/home.svg +1 -0
  135. package/assets/images/image.svg +1 -0
  136. package/assets/images/inbox.svg +1 -0
  137. package/assets/images/info.svg +1 -0
  138. package/assets/images/instagram.svg +1 -0
  139. package/assets/images/italic.svg +1 -0
  140. package/assets/images/key.svg +1 -0
  141. package/assets/images/layers.svg +1 -0
  142. package/assets/images/layout.svg +1 -0
  143. package/assets/images/life-buoy.svg +1 -0
  144. package/assets/images/link-2.svg +1 -0
  145. package/assets/images/link.svg +1 -0
  146. package/assets/images/linkedin.svg +1 -0
  147. package/assets/images/list.svg +1 -0
  148. package/assets/images/loader.svg +1 -0
  149. package/assets/images/lock.svg +1 -0
  150. package/assets/images/log-in.svg +1 -0
  151. package/assets/images/log-out.svg +1 -0
  152. package/assets/images/mail.svg +1 -0
  153. package/assets/images/map-pin.svg +1 -0
  154. package/assets/images/map.svg +1 -0
  155. package/assets/images/maximize-2.svg +1 -0
  156. package/assets/images/maximize.svg +1 -0
  157. package/assets/images/meh.svg +1 -0
  158. package/assets/images/menu.svg +1 -0
  159. package/assets/images/message-circle.svg +1 -0
  160. package/assets/images/message-square.svg +1 -0
  161. package/assets/images/mic-off.svg +1 -0
  162. package/assets/images/mic.svg +1 -0
  163. package/assets/images/minimize-2.svg +1 -0
  164. package/assets/images/minimize.svg +1 -0
  165. package/assets/images/minus-circle.svg +1 -0
  166. package/assets/images/minus-square.svg +1 -0
  167. package/assets/images/minus.svg +1 -0
  168. package/assets/images/monitor.svg +1 -0
  169. package/assets/images/moon.svg +1 -0
  170. package/assets/images/more-horizontal.svg +1 -0
  171. package/assets/images/more-vertical.svg +1 -0
  172. package/assets/images/mouse-pointer.svg +1 -0
  173. package/assets/images/move.svg +1 -0
  174. package/assets/images/music.svg +1 -0
  175. package/assets/images/navigation-2.svg +1 -0
  176. package/assets/images/navigation.svg +1 -0
  177. package/assets/images/octagon.svg +1 -0
  178. package/assets/images/package.svg +1 -0
  179. package/assets/images/paperclip.svg +1 -0
  180. package/assets/images/pause-circle.svg +1 -0
  181. package/assets/images/pause.svg +1 -0
  182. package/assets/images/pen-tool.svg +1 -0
  183. package/assets/images/percent.svg +1 -0
  184. package/assets/images/phone-call.svg +1 -0
  185. package/assets/images/phone-forwarded.svg +1 -0
  186. package/assets/images/phone-incoming.svg +1 -0
  187. package/assets/images/phone-missed.svg +1 -0
  188. package/assets/images/phone-off.svg +1 -0
  189. package/assets/images/phone-outgoing.svg +1 -0
  190. package/assets/images/phone.svg +1 -0
  191. package/assets/images/pie-chart.svg +1 -0
  192. package/assets/images/play-circle.svg +1 -0
  193. package/assets/images/play.svg +1 -0
  194. package/assets/images/plus-circle.svg +1 -0
  195. package/assets/images/plus-square.svg +1 -0
  196. package/assets/images/plus.svg +1 -0
  197. package/assets/images/pocket.svg +1 -0
  198. package/assets/images/power.svg +1 -0
  199. package/assets/images/printer.svg +1 -0
  200. package/assets/images/radio.svg +1 -0
  201. package/assets/images/refresh-ccw.svg +1 -0
  202. package/assets/images/refresh-cw.svg +1 -0
  203. package/assets/images/repeat.svg +1 -0
  204. package/assets/images/rewind.svg +1 -0
  205. package/assets/images/rotate-ccw.svg +1 -0
  206. package/assets/images/rotate-cw.svg +1 -0
  207. package/assets/images/rss.svg +1 -0
  208. package/assets/images/save.svg +1 -0
  209. package/assets/images/scissors.svg +1 -0
  210. package/assets/images/search.svg +1 -0
  211. package/assets/images/send.svg +1 -0
  212. package/assets/images/server.svg +1 -0
  213. package/assets/images/settings.svg +1 -0
  214. package/assets/images/share-2.svg +1 -0
  215. package/assets/images/share.svg +1 -0
  216. package/assets/images/shield-off.svg +1 -0
  217. package/assets/images/shield.svg +1 -0
  218. package/assets/images/shopping-bag.svg +1 -0
  219. package/assets/images/shopping-cart.svg +1 -0
  220. package/assets/images/shuffle.svg +1 -0
  221. package/assets/images/sidebar.svg +1 -0
  222. package/assets/images/skip-back.svg +1 -0
  223. package/assets/images/skip-forward.svg +1 -0
  224. package/assets/images/slack.svg +1 -0
  225. package/assets/images/slash.svg +1 -0
  226. package/assets/images/sliders.svg +1 -0
  227. package/assets/images/smartphone.svg +1 -0
  228. package/assets/images/smile.svg +1 -0
  229. package/assets/images/sort_down.svg +7 -0
  230. package/assets/images/sort_up.svg +7 -0
  231. package/assets/images/speaker.svg +1 -0
  232. package/assets/images/square.svg +1 -0
  233. package/assets/images/star.svg +1 -0
  234. package/assets/images/stop-circle.svg +1 -0
  235. package/assets/images/sun.svg +1 -0
  236. package/assets/images/sunrise.svg +1 -0
  237. package/assets/images/sunset.svg +1 -0
  238. package/assets/images/table.svg +1 -0
  239. package/assets/images/tablet.svg +1 -0
  240. package/assets/images/tag.svg +1 -0
  241. package/assets/images/target.svg +1 -0
  242. package/assets/images/terminal.svg +1 -0
  243. package/assets/images/thermometer.svg +1 -0
  244. package/assets/images/thumbs-down.svg +1 -0
  245. package/assets/images/thumbs-up.svg +1 -0
  246. package/assets/images/toggle-left.svg +1 -0
  247. package/assets/images/toggle-right.svg +1 -0
  248. package/assets/images/tool.svg +1 -0
  249. package/assets/images/trash-2.svg +1 -0
  250. package/assets/images/trash.svg +1 -0
  251. package/assets/images/trello.svg +1 -0
  252. package/assets/images/trending-down.svg +1 -0
  253. package/assets/images/trending-up.svg +1 -0
  254. package/assets/images/triangle.svg +1 -0
  255. package/assets/images/truck.svg +1 -0
  256. package/assets/images/tv.svg +1 -0
  257. package/assets/images/twitch.svg +1 -0
  258. package/assets/images/twitter.svg +1 -0
  259. package/assets/images/type.svg +1 -0
  260. package/assets/images/umbrella.svg +1 -0
  261. package/assets/images/underline.svg +1 -0
  262. package/assets/images/unlock.svg +1 -0
  263. package/assets/images/upload-cloud.svg +1 -0
  264. package/assets/images/upload.svg +1 -0
  265. package/assets/images/user-check.svg +1 -0
  266. package/assets/images/user-minus.svg +1 -0
  267. package/assets/images/user-plus.svg +1 -0
  268. package/assets/images/user-x.svg +1 -0
  269. package/assets/images/user.svg +1 -0
  270. package/assets/images/users.svg +1 -0
  271. package/assets/images/video-off.svg +1 -0
  272. package/assets/images/video.svg +1 -0
  273. package/assets/images/voicemail.svg +1 -0
  274. package/assets/images/volume-1.svg +1 -0
  275. package/assets/images/volume-2.svg +1 -0
  276. package/assets/images/volume-x.svg +1 -0
  277. package/assets/images/volume.svg +1 -0
  278. package/assets/images/watch.svg +1 -0
  279. package/assets/images/wifi-off.svg +1 -0
  280. package/assets/images/wifi.svg +1 -0
  281. package/assets/images/wind.svg +1 -0
  282. package/assets/images/x-circle.svg +1 -0
  283. package/assets/images/x-octagon.svg +1 -0
  284. package/assets/images/x-square.svg +1 -0
  285. package/assets/images/x.svg +1 -0
  286. package/assets/images/youtube.svg +1 -0
  287. package/assets/images/zap-off.svg +1 -0
  288. package/assets/images/zap.svg +1 -0
  289. package/assets/images/zoom-in.svg +1 -0
  290. package/assets/images/zoom-out.svg +1 -0
  291. package/fesm2022/cats-data-grid.mjs +530 -0
  292. package/fesm2022/cats-data-grid.mjs.map +1 -0
  293. package/index.d.ts +5 -0
  294. package/lib/cats-data-grid.component.d.ts +148 -0
  295. package/lib/directives/outside-click.directive.d.ts +10 -0
  296. package/lib/directives/renderer-parser.directive.d.ts +15 -0
  297. package/lib/pipes/add-class.pipe.d.ts +7 -0
  298. package/lib/services/cats-data-grid.service.d.ts +6 -0
  299. package/package.json +23 -0
  300. package/public-api.d.ts +2 -0
  301. package/styles/_index.scss +3 -0
  302. package/styles/base/_fonts.scss +74 -0
  303. package/styles/base/_index.scss +2 -0
  304. package/styles/base/_reset.scss +60 -0
  305. package/styles/component/_form.scss +246 -0
  306. package/styles/component/_index.scss +1 -0
  307. package/styles/sass-utils/_function.scss +14 -0
  308. package/styles/sass-utils/_index.scss +3 -0
  309. package/styles/sass-utils/_mixin.scss +56 -0
  310. package/styles/sass-utils/_variable.scss +66 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cats-data-grid.mjs","sources":["../../../projects/cats-data-grid/src/lib/services/cats-data-grid.service.ts","../../../projects/cats-data-grid/src/lib/pipes/add-class.pipe.ts","../../../projects/cats-data-grid/src/lib/directives/outside-click.directive.ts","../../../projects/cats-data-grid/src/lib/directives/renderer-parser.directive.ts","../../../projects/cats-data-grid/src/lib/cats-data-grid.component.ts","../../../projects/cats-data-grid/src/lib/cats-data-grid.component.html","../../../projects/cats-data-grid/src/public-api.ts","../../../projects/cats-data-grid/src/cats-data-grid.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CatsDataGridService {\r\n\r\n constructor() { }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'addClass'\r\n})\r\nexport class AddClassPipe implements PipeTransform {\r\n\r\n transform(value: any, tableOption: any): string {\r\n if (tableOption?.addClasses) {\r\n return tableOption.addClasses(value)\r\n }\r\n return '';\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, EventEmitter, HostListener, Output } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: \"[appOutsideClick]\",\r\n standalone: true\r\n})\r\nexport class OutsideClickDirective {\r\n @Output() clickOutside = new EventEmitter();\r\n constructor(private el: ElementRef) { }\r\n @HostListener('document:click', ['$event', '$event.target'])\r\n onClick(event: MouseEvent, targetElement: HTMLElement) {\r\n event.stopPropagation();\r\n if (!targetElement) {\r\n return;\r\n }\r\n const clickInside = this.el.nativeElement.contains(targetElement);\r\n if (!clickInside) this.clickOutside.emit(event)\r\n }\r\n}","import {\r\n Component,\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appRendererParser]',\r\n})\r\nexport class RendererParserDirective implements OnInit {\r\n @Input() rowParam: any;\r\n @Input() col: any;\r\n @Input() api: any;\r\n @Input() currentValue: any;\r\n ref: any;\r\n constructor(private el: ViewContainerRef, private er: ElementRef) { }\r\n ngOnInit() {\r\n this.el?.clear();\r\n let params: any = {\r\n data: this.rowParam,\r\n value: this.currentValue,\r\n cellParams: this.col?.cellRendererParams,\r\n col: this.col\r\n };\r\n if (\r\n this.col?.cellRenderer?.prototype &&\r\n this.col.cellRenderer.prototype?.constructor == this.col.cellRenderer\r\n ) {\r\n this.ref = this.el.createComponent(this.col?.cellRenderer);\r\n this.ref.instance?.cellInit(params, this.api);\r\n } else if (typeof this.col?.cellRenderer == 'function') {\r\n let newDiv = document.createElement('div');\r\n newDiv.className = 'more_data_wrapper';\r\n newDiv.innerHTML = this.col.cellRenderer(params);\r\n let toltipDiv = document.createElement('div');\r\n let itemDiv = document.createElement('div');\r\n let descDiv = document.createElement('div');\r\n toltipDiv.className = 'see_more_data';\r\n itemDiv.className = 'item';\r\n descDiv.className = 'desc';\r\n descDiv.innerHTML = newDiv.innerText;\r\n itemDiv.appendChild(descDiv);\r\n toltipDiv.appendChild(itemDiv);\r\n this.er.nativeElement.appendChild(newDiv);\r\n this.er.nativeElement.appendChild(toltipDiv);\r\n }\r\n }\r\n}\r\n","import { AddClassPipe } from \"./pipes/add-class.pipe\";\r\nimport { CommonModule } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnChanges, Output, SimpleChanges } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { OutsideClickDirective } from './directives/outside-click.directive';\r\nimport { RendererParserDirective } from './directives/renderer-parser.directive';\r\n\r\n@Component({\r\n selector: 'cats-data-grid',\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n OutsideClickDirective,\r\n RendererParserDirective,\r\n AddClassPipe,\r\n ],\r\n templateUrl: './cats-data-grid.component.html',\r\n styleUrl: './cats-data-grid.component.scss',\r\n})\r\nexport class CatsDataGridComponent implements OnChanges {\r\n @Input() tableOptions: any;\r\n @Input() totalRecords: number = 0;\r\n @Input() sortingRequired = false;\r\n @Input() checkBoxSelection = false;\r\n @Input() checkboxSelectionType = 'multiple';\r\n @Input() rowData: any[] = [];\r\n @Input() colDefs: any[] = [];\r\n @Input() paginationRequired = true;\r\n @Input() selectedRowEmpty: boolean = false;\r\n @Input() filterRequired: boolean = false;\r\n\r\n @Output() onPaginationChange = new EventEmitter();\r\n @Output() onCheckboxSelection = new EventEmitter();\r\n @Output() onScrollEmitter = new EventEmitter();\r\n\r\n pageDetails: any = {\r\n pageSize: 20,\r\n totalPages: 1,\r\n currentPage: 1,\r\n };\r\n recordsToShow: any = {\r\n min: 0,\r\n max: 20,\r\n };\r\n sortingColumnIndex!: number;\r\n sortingType: string = '';\r\n selectedRow: any[] = [];\r\n\r\n @Input() pageSizeList: number[] = [20, 50, 75, 100];\r\n showPageSizeList: boolean = false;\r\n dragOverIndex: null | number = null;\r\n draggedIndex: null | number = null;\r\n constructor(private cd: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['colDefs']?.currentValue) {\r\n this.resetTableConfig();\r\n }\r\n if (changes['totalRecords']?.currentValue) {\r\n this.setPageCount();\r\n }\r\n if (changes['rowData']?.currentValue) {\r\n if (this.selectedRowEmpty) this.selectedRow = [];\r\n this.rowData = changes['rowData']?.currentValue.map(\r\n (row: any, i: number) => {\r\n row.rowId = `${Date.now()}_${i}`;\r\n if (row?.isSelected) [...this.selectedRow, row];\r\n return row;\r\n }\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * @description Method to parse column value from rowdata object\r\n * according to given field value in column Defination\r\n * @author Tarun Kumar\r\n * @param row - current row object\r\n * @param toParse - field value\r\n * @returns string\r\n */\r\n parseColValue(row: any, toParse: string): string {\r\n if (!toParse?.includes('.')) {\r\n return row[toParse] || '-';\r\n } else {\r\n let toParseArr = toParse.split('.');\r\n let val = row;\r\n for (const key of toParseArr) {\r\n val =\r\n row?.[val.key] && typeof row[val.key] === 'object'\r\n ? row[val.key].name\r\n : row[val.key] ?? '';\r\n // val = val[key];\r\n }\r\n return val || '-';\r\n }\r\n }\r\n\r\n /**\r\n * @description method to reset table configuration\r\n * @author Tarun Kumar\r\n * @param none\r\n * @returns void\r\n */\r\n resetTableConfig(): void {\r\n this.pageDetails.pageSize = 20;\r\n this.pageDetails.currentPage = 1;\r\n this.pageDetails.totalPages = 1;\r\n this.recordsToShow.min = 0;\r\n this.recordsToShow.max = 20;\r\n this.setPageCount();\r\n }\r\n\r\n /**\r\n * @description method to set total pages count\r\n * @author Tarun Kumar\r\n * @param none\r\n * @returns void\r\n */\r\n setPageCount(): void {\r\n this.pageDetails.totalPages = Math.ceil(\r\n this.totalRecords / this.pageDetails.pageSize\r\n );\r\n }\r\n\r\n /**\r\n * @description method to update table on page size change\r\n * @author Tarun Kumar\r\n * @param event\r\n * @returns void\r\n */\r\n onPageSizeChanged(event: any): void {\r\n this.recordsToShow.min = 0;\r\n this.recordsToShow.max = parseInt(event);\r\n this.pageDetails.currentPage = 1;\r\n this.pageDetails.pageSize = parseInt(event);\r\n this.setPageCount();\r\n this.onPaginationChange.emit({\r\n page: this.pageDetails.currentPage - 1,\r\n pageSize: this.pageDetails.pageSize,\r\n });\r\n }\r\n\r\n /**\r\n * @description method to update table on previous button click\r\n * @author Tarun Kumar\r\n */\r\n onBtPrevClick(): void {\r\n this.recordsToShow.min = this.recordsToShow.min - this.pageDetails.pageSize;\r\n this.recordsToShow.max = this.recordsToShow.max - this.pageDetails.pageSize;\r\n if (this.pageDetails.currentPage > 1)\r\n this.pageDetails.currentPage = this.pageDetails.currentPage - 1;\r\n\r\n this.onPaginationChange.emit({\r\n page: this.pageDetails.currentPage - 1,\r\n pageSize: this.pageDetails.pageSize,\r\n });\r\n }\r\n\r\n /**\r\n * @description method to update table on next button click\r\n * @author Tarun Kumar\r\n */\r\n onBtNextClick(): void {\r\n this.recordsToShow.min = this.recordsToShow.min + this.pageDetails.pageSize;\r\n this.recordsToShow.max = this.recordsToShow.max + this.pageDetails.pageSize;\r\n\r\n if (this.pageDetails.currentPage < this.pageDetails.totalPages)\r\n this.pageDetails.currentPage = this.pageDetails.currentPage + 1;\r\n\r\n this.onPaginationChange.emit({\r\n page: this.pageDetails.currentPage - 1,\r\n pageSize: this.pageDetails.pageSize,\r\n });\r\n }\r\n\r\n /**\r\n * @description method to update table on selecting any page randomly\r\n * @author Tarun Kumar\r\n * @param event\r\n */\r\n goToSelectedPage(event: any): void {\r\n let pageNo = event.target.value;\r\n if (pageNo < 1) {\r\n this.pageDetails.currentPage = 1;\r\n } else if (pageNo > this.pageDetails.totalPages) {\r\n this.pageDetails.currentPage = this.pageDetails.totalPages;\r\n }\r\n this.recordsToShow.max =\r\n this.pageDetails.currentPage * this.pageDetails.pageSize;\r\n this.recordsToShow.min =\r\n this.pageDetails.currentPage * this.pageDetails.pageSize -\r\n this.pageDetails.pageSize;\r\n\r\n this.onPaginationChange.emit({\r\n page: this.pageDetails.currentPage - 1,\r\n pageSize: this.pageDetails.pageSize,\r\n });\r\n }\r\n\r\n /**\r\n * @description method to sort data according to type and column\r\n * @author Tarun Kumar\r\n * @param sortingColumIndex\r\n * @param fieldName\r\n * @param sortingType\r\n */\r\n onSortingRowData(sortingColumIndex: number, fieldName: string): void {\r\n this.sortingColumnIndex = sortingColumIndex;\r\n this.sortingType = !this.sortingType\r\n ? 'asc'\r\n : this.sortingType == 'asc'\r\n ? 'dsc'\r\n : 'asc';\r\n if (this.sortingType == 'asc') {\r\n this.ascendingOrder(fieldName);\r\n } else {\r\n this.descendingOrder(fieldName);\r\n }\r\n }\r\n\r\n /**\r\n * @description method to sort table in ascending order according to given field\r\n * @param fieldName\r\n */\r\n ascendingOrder(fieldName: string): void {\r\n this.rowData = this.rowData.sort((a, b) => {\r\n if (this.parseColValue(a, fieldName) > this.parseColValue(b, fieldName)) {\r\n return 1;\r\n } else {\r\n return -1;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * @description method to sort table in descending order according to given field\r\n * @param fieldName\r\n */\r\n descendingOrder(fieldName: string): void {\r\n this.rowData = this.rowData.sort((a, b) => {\r\n if (this.parseColValue(a, fieldName) > this.parseColValue(b, fieldName)) {\r\n return -1;\r\n } else {\r\n return 1;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * @description method to check/uncheck all rows on header checkbox selection/deselection\r\n * @author Tarun Kumar\r\n * @param event\r\n */\r\n onHeaderCheckboxChange(event: any): void {\r\n if (event.target.checked) {\r\n this.rowData = this.rowData.map((data) => {\r\n data.isSelected = true;\r\n return data;\r\n });\r\n this.selectedRow = JSON.parse(JSON.stringify(this.rowData));\r\n this.onCheckboxSelection.emit(this.rowData);\r\n } else {\r\n this.rowData = this.rowData.map((data) => {\r\n data.isSelected = false;\r\n return data;\r\n });\r\n this.selectedRow = [];\r\n this.onCheckboxSelection.emit([]);\r\n }\r\n }\r\n\r\n /**\r\n * @description method to check/uncheck row on row checkbox selection/deselection\r\n * @author Tarun Kumar\r\n * @param event\r\n */\r\n onRowCheckboxSelection(event: any): void {\r\n if (event.target.checked) {\r\n let ind = this.rowData.findIndex(\r\n (item: any) => item.rowId == event.target.id\r\n );\r\n this.rowData[ind].isSelected = true;\r\n if (\r\n this.checkboxSelectionType != 'multiple' &&\r\n this.selectedRow.length > 0\r\n ) {\r\n (\r\n document.getElementById(this.selectedRow[0].rowId) as HTMLInputElement\r\n ).checked = false;\r\n this.selectedRow = [];\r\n }\r\n this.selectedRow.push(this.rowData[ind]);\r\n\r\n this.onCheckboxSelection.emit(this.selectedRow);\r\n } else {\r\n let ind = this.rowData.findIndex(\r\n (item: any) => item.rowId == event.target.id\r\n );\r\n this.rowData[ind].isSelected = false;\r\n let i = this.selectedRow.findIndex(\r\n (item: any) => item.rowId == event.target.id\r\n );\r\n this.selectedRow.splice(i, 1);\r\n this.onCheckboxSelection.emit(this.selectedRow);\r\n }\r\n this.cd.detectChanges();\r\n }\r\n /**\r\n * @description method to check/uncheck all rows on header checkbox selection/deselection\r\n * @author Tarun Kumar\r\n * @param col\r\n * @returns {object}\r\n */\r\n getStyle(col: any): object {\r\n return { width: `${col.width}px` };\r\n }\r\n onClickOutside() {\r\n this.showPageSizeList = false;\r\n }\r\n checkCondition(data: any): boolean {\r\n if (data.status) return true;\r\n else return false;\r\n }\r\n infinityScroll(event: any) {\r\n if (\r\n event.target.offsetHeight + event.target.scrollTop >=\r\n event.target.scrollHeight - 1 &&\r\n this.rowData.length\r\n ) {\r\n this.onScrollEmitter.emit();\r\n }\r\n }\r\n\r\n checkAllSelected(): boolean {\r\n if (!this.rowData.length) return false;\r\n return this.selectedRow.length == this.rowData.length;\r\n }\r\n checkInterminate(): boolean {\r\n if (!this.rowData.length) return false;\r\n return (\r\n this.selectedRow.length > 0 &&\r\n this.selectedRow.length < this.rowData.length\r\n );\r\n }\r\n\r\n /**\r\n * @author Tarun Kumar\r\n * @description function triggered when the drag starts\r\n * @param {event object, index}\r\n * @returns {void}\r\n */\r\n onDragStart(event: DragEvent, index: number) {\r\n this.draggedIndex = index;\r\n event.dataTransfer?.setData('text/plain', index.toString());\r\n }\r\n\r\n /**\r\n * @author Tarun Kumar\r\n * @description function to track the index of the element being dragged over and allow dropping\r\n * @param {event object, index}\r\n * @returns {void}\r\n */\r\n onDragOver(event: DragEvent, index: number) {\r\n event.preventDefault();\r\n if (this.dragOverIndex !== index) {\r\n this.dragOverIndex = index;\r\n }\r\n }\r\n\r\n /**\r\n * @author Tarun Kumar\r\n * @description function to Reorder the items on drop\r\n * @param {event object, index}\r\n * @returns {void}\r\n */\r\n onDrop(event: DragEvent, index: number) {\r\n event.preventDefault();\r\n if (this.draggedIndex === null) return;\r\n const draggedItem = this.colDefs[this.draggedIndex];\r\n this.colDefs.splice(this.draggedIndex, 1);\r\n this.colDefs.splice(index, 0, draggedItem);\r\n this.draggedIndex = null;\r\n this.dragOverIndex = null;\r\n }\r\n\r\n /**\r\n * @author Tarun Kumar\r\n * @description function to reset dragOverIndex when the drag ends\r\n * @param {none}\r\n * @returns {void}\r\n */\r\n onDragEnd() {\r\n this.draggedIndex = null;\r\n this.dragOverIndex = null;\r\n }\r\n}\r\n\r\n","<div class=\"tableArea\">\r\n <div class=\"table_wrapper\" id=\"container_scroll\" (scroll)=\"infinityScroll($event)\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <thead class=\"sticky-top\">\r\n <tr>\r\n @if (checkBoxSelection && checkboxSelectionType == 'multiple') {\r\n <th style=\"width: 50px\">\r\n <span><input class=\"form-check-input cursor-pointer\" type=\"checkbox\" name=\"\" id=\"\" [checked]=\"checkAllSelected()\"\r\n [indeterminate]=\"checkInterminate()\" (change)=\"onHeaderCheckboxChange($event)\" /></span>\r\n </th>\r\n } @for (col of colDefs; track $index) {\r\n <th [ngStyle]=\"getStyle(col)\" [ngClass]=\"{ 'drag-over': dragOverIndex === $index }\" draggable=\"true\"\r\n (dragstart)=\"onDragStart($event, $index)\" (dragover)=\"onDragOver($event, $index)\" (drop)=\"onDrop($event, $index)\"\r\n (dragend)=\"onDragEnd()\" >\r\n <div class=\"flex-center\" [ngStyle]=\"getStyle(col)\" (click)=\"onSortingRowData($index, col?.fieldName)\">\r\n <span class=\"ellipsis headerName\">{{ col?.headerName }}</span>\r\n @if (sortingRequired && sortingColumnIndex == $index) {\r\n <span class=\"headerName-icon\">\r\n <ul class=\"\">\r\n <li class=\"cursor-pointer\">\r\n <img src=\"images/sort_up.svg\" class=\"sorting_up\" [ngClass]=\"\r\n sortingColumnIndex == $index && sortingType == 'asc'\r\n ? 'd-none'\r\n : ''\r\n \" />\r\n </li>\r\n <li class=\"cursor-pointer\">\r\n <!-- <i class=\"fa fa-caret-down\" [ngClass]=\"sortingColumnIndex == $index && sortingType == 'dsc' ? 'muted_sort' : ''\"></i> -->\r\n <img src=\"images/sort_down.svg\" class=\"sorting_down\" [ngClass]=\"\r\n sortingColumnIndex == $index && sortingType == 'dsc'\r\n ? 'd-none'\r\n : ''\r\n \" />\r\n </li>\r\n </ul>\r\n </span>\r\n }\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @for (data of rowData; track data.rowId) {\r\n <tr [ngClass]=\"data | addClass : tableOptions\">\r\n @if (checkBoxSelection) {\r\n <td style=\"min-width: 50px\">\r\n @if (checkboxSelectionType=='multiple') {\r\n <span><input type=\"checkbox\" class=\"form-check-input pointer\" name=\"\" id=\"{{ data.rowId }}\"\r\n [checked]=\"data?.isSelected\" (change)=\"onRowCheckboxSelection($event)\" /></span>\r\n\r\n }@else{\r\n <span class=\"checkboxInput\">\r\n <input type=\"radio\" name=\"\" id=\"{{ data.rowId }}\" [checked]=\"data?.isSelected\"\r\n (change)=\"onRowCheckboxSelection($event)\" />\r\n </span>\r\n\r\n }\r\n </td>\r\n } @for (col of colDefs; track $index) {\r\n <td [ngStyle]=\"getStyle(col)\" [ngClass]=\"col?.addClass ? col.addClass(data) : ''\">\r\n @if (!col?.cellRenderer) {\r\n <div class=\"cell-value\">\r\n <div class=\"more_data_wrapper\" [ngClass]=\"{ ellipsis: !col.wrapText }\">\r\n {{ parseColValue(data, col.fieldName) }}\r\n </div>\r\n <div class=\"see_more_data\">\r\n <div class=\"item\">\r\n <span class=\"desc\">\r\n {{ parseColValue(data, col.fieldName) }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n } @else{\r\n <div [rowParam]=\"data\" [col]=\"col\" [api]=\"tableOptions\" [currentValue]=\"data[col.fieldName]\"\r\n appRendererParser></div>\r\n }\r\n <!-- Commented for later use -->\r\n <!-- <div class=\"tool_tip\">\r\n <span class=\"\"> {{ parseColValue(data, col.fieldName) }}aditya </span>\r\n </div> -->\r\n </td>\r\n }\r\n </tr>\r\n } @empty {\r\n <tr>\r\n <td [attr.colspan]=\"colDefs.length + 1\">\r\n <div class=\"small_data\">\r\n @if (tableOptions?.noDataTemplate) {\r\n <ng-container *ngTemplateOutlet=\"tableOptions?.noDataTemplate\"></ng-container>\r\n\r\n }@else{\r\n <!-- need to style it properly then we will add it -->\r\n <span>No Data To Show</span>\r\n\r\n }\r\n </div>\r\n </td>\r\n </tr>\r\n\r\n }\r\n </tbody>\r\n </table>\r\n </div>\r\n <!-- Table Wrapper Ends-->\r\n @if(paginationRequired){\r\n <div class=\"pagination_main\">\r\n <div class=\"entries_details\">\r\n <span>Showing</span>\r\n <div class=\"pagination_select\" appOutsideClick (clickOutside)=\"onClickOutside()\">\r\n <div class=\"select_dropdown pointer\" (click)=\"showPageSizeList = !showPageSizeList\">\r\n <p class=\"select_text mb-0\">{{ pageDetails.pageSize }}</p>\r\n <span class=\"chevron_img\">\r\n <img src=\"/assets/images/common/chevron-down.svg\" class=\"pointer\" />\r\n </span>\r\n </div>\r\n @if(showPageSizeList){\r\n <div class=\"select_option\">\r\n @for(option of pageSizeList;track $index){\r\n <span class=\"pointer\" (click)=\"onPageSizeChanged(option); onClickOutside()\">{{ option }}</span>\r\n }\r\n </div>\r\n }\r\n </div>\r\n <span>Rows | {{ totalRecords > 0 ? recordsToShow.min + 1 : 0 }} -\r\n {{\r\n recordsToShow.max > totalRecords ? totalRecords : recordsToShow.max\r\n }}\r\n of\r\n {{ totalRecords }} Entries</span>\r\n </div>\r\n <div class=\"pagination_form d-flex align-items-center\">\r\n <span>Page</span>\r\n\r\n <button class=\"outlined_btn prev_btn\" [ngClass]=\"pageDetails.currentPage > 1 ? '' : 'disable_btn'\" type=\"button\"\r\n (click)=\"onBtPrevClick()\">\r\n <span> < </span>\r\n </button>\r\n <div>\r\n <input class=\"input_style right\" type=\"number\" [(ngModel)]=\"pageDetails.currentPage\"\r\n (change)=\"goToSelectedPage($event)\" name=\"\" id=\"\" />\r\n </div>\r\n <button class=\"outlined_btn next_btn\" type=\"button\" [ngClass]=\"\r\n pageDetails.currentPage < pageDetails.totalPages ? '' : 'disable_btn'\r\n \" (click)=\"onBtNextClick()\">\r\n <span> > </span>\r\n </button>\r\n <span>of {{ pageDetails.totalPages }}</span>\r\n </div>\r\n </div>\r\n }\r\n <!-- Pagination Ends -->\r\n</div>","/*\r\n * Public API Surface of cats-data-grid\r\n */\r\n\r\nexport * from './lib/services/cats-data-grid.service';\r\nexport * from './lib/cats-data-grid.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="cats-data-grid" />
5
+ export * from './public-api';
@@ -0,0 +1,148 @@
1
+ import { ChangeDetectorRef, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class CatsDataGridComponent implements OnChanges {
4
+ private cd;
5
+ tableOptions: any;
6
+ totalRecords: number;
7
+ sortingRequired: boolean;
8
+ checkBoxSelection: boolean;
9
+ checkboxSelectionType: string;
10
+ rowData: any[];
11
+ colDefs: any[];
12
+ paginationRequired: boolean;
13
+ selectedRowEmpty: boolean;
14
+ filterRequired: boolean;
15
+ onPaginationChange: EventEmitter<any>;
16
+ onCheckboxSelection: EventEmitter<any>;
17
+ onScrollEmitter: EventEmitter<any>;
18
+ pageDetails: any;
19
+ recordsToShow: any;
20
+ sortingColumnIndex: number;
21
+ sortingType: string;
22
+ selectedRow: any[];
23
+ pageSizeList: number[];
24
+ showPageSizeList: boolean;
25
+ dragOverIndex: null | number;
26
+ draggedIndex: null | number;
27
+ constructor(cd: ChangeDetectorRef);
28
+ ngOnInit(): void;
29
+ ngOnChanges(changes: SimpleChanges): void;
30
+ /**
31
+ * @description Method to parse column value from rowdata object
32
+ * according to given field value in column Defination
33
+ * @author Tarun Kumar
34
+ * @param row - current row object
35
+ * @param toParse - field value
36
+ * @returns string
37
+ */
38
+ parseColValue(row: any, toParse: string): string;
39
+ /**
40
+ * @description method to reset table configuration
41
+ * @author Tarun Kumar
42
+ * @param none
43
+ * @returns void
44
+ */
45
+ resetTableConfig(): void;
46
+ /**
47
+ * @description method to set total pages count
48
+ * @author Tarun Kumar
49
+ * @param none
50
+ * @returns void
51
+ */
52
+ setPageCount(): void;
53
+ /**
54
+ * @description method to update table on page size change
55
+ * @author Tarun Kumar
56
+ * @param event
57
+ * @returns void
58
+ */
59
+ onPageSizeChanged(event: any): void;
60
+ /**
61
+ * @description method to update table on previous button click
62
+ * @author Tarun Kumar
63
+ */
64
+ onBtPrevClick(): void;
65
+ /**
66
+ * @description method to update table on next button click
67
+ * @author Tarun Kumar
68
+ */
69
+ onBtNextClick(): void;
70
+ /**
71
+ * @description method to update table on selecting any page randomly
72
+ * @author Tarun Kumar
73
+ * @param event
74
+ */
75
+ goToSelectedPage(event: any): void;
76
+ /**
77
+ * @description method to sort data according to type and column
78
+ * @author Tarun Kumar
79
+ * @param sortingColumIndex
80
+ * @param fieldName
81
+ * @param sortingType
82
+ */
83
+ onSortingRowData(sortingColumIndex: number, fieldName: string): void;
84
+ /**
85
+ * @description method to sort table in ascending order according to given field
86
+ * @param fieldName
87
+ */
88
+ ascendingOrder(fieldName: string): void;
89
+ /**
90
+ * @description method to sort table in descending order according to given field
91
+ * @param fieldName
92
+ */
93
+ descendingOrder(fieldName: string): void;
94
+ /**
95
+ * @description method to check/uncheck all rows on header checkbox selection/deselection
96
+ * @author Tarun Kumar
97
+ * @param event
98
+ */
99
+ onHeaderCheckboxChange(event: any): void;
100
+ /**
101
+ * @description method to check/uncheck row on row checkbox selection/deselection
102
+ * @author Tarun Kumar
103
+ * @param event
104
+ */
105
+ onRowCheckboxSelection(event: any): void;
106
+ /**
107
+ * @description method to check/uncheck all rows on header checkbox selection/deselection
108
+ * @author Tarun Kumar
109
+ * @param col
110
+ * @returns {object}
111
+ */
112
+ getStyle(col: any): object;
113
+ onClickOutside(): void;
114
+ checkCondition(data: any): boolean;
115
+ infinityScroll(event: any): void;
116
+ checkAllSelected(): boolean;
117
+ checkInterminate(): boolean;
118
+ /**
119
+ * @author Tarun Kumar
120
+ * @description function triggered when the drag starts
121
+ * @param {event object, index}
122
+ * @returns {void}
123
+ */
124
+ onDragStart(event: DragEvent, index: number): void;
125
+ /**
126
+ * @author Tarun Kumar
127
+ * @description function to track the index of the element being dragged over and allow dropping
128
+ * @param {event object, index}
129
+ * @returns {void}
130
+ */
131
+ onDragOver(event: DragEvent, index: number): void;
132
+ /**
133
+ * @author Tarun Kumar
134
+ * @description function to Reorder the items on drop
135
+ * @param {event object, index}
136
+ * @returns {void}
137
+ */
138
+ onDrop(event: DragEvent, index: number): void;
139
+ /**
140
+ * @author Tarun Kumar
141
+ * @description function to reset dragOverIndex when the drag ends
142
+ * @param {none}
143
+ * @returns {void}
144
+ */
145
+ onDragEnd(): void;
146
+ static ɵfac: i0.ɵɵFactoryDeclaration<CatsDataGridComponent, never>;
147
+ static ɵcmp: i0.ɵɵComponentDeclaration<CatsDataGridComponent, "cats-data-grid", never, { "tableOptions": { "alias": "tableOptions"; "required": false; }; "totalRecords": { "alias": "totalRecords"; "required": false; }; "sortingRequired": { "alias": "sortingRequired"; "required": false; }; "checkBoxSelection": { "alias": "checkBoxSelection"; "required": false; }; "checkboxSelectionType": { "alias": "checkboxSelectionType"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; "colDefs": { "alias": "colDefs"; "required": false; }; "paginationRequired": { "alias": "paginationRequired"; "required": false; }; "selectedRowEmpty": { "alias": "selectedRowEmpty"; "required": false; }; "filterRequired": { "alias": "filterRequired"; "required": false; }; "pageSizeList": { "alias": "pageSizeList"; "required": false; }; }, { "onPaginationChange": "onPaginationChange"; "onCheckboxSelection": "onCheckboxSelection"; "onScrollEmitter": "onScrollEmitter"; }, never, never, true, never>;
148
+ }
@@ -0,0 +1,10 @@
1
+ import { ElementRef, EventEmitter } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export declare class OutsideClickDirective {
4
+ private el;
5
+ clickOutside: EventEmitter<any>;
6
+ constructor(el: ElementRef);
7
+ onClick(event: MouseEvent, targetElement: HTMLElement): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<OutsideClickDirective, never>;
9
+ static ɵdir: i0.ɵɵDirectiveDeclaration<OutsideClickDirective, "[appOutsideClick]", never, {}, { "clickOutside": "clickOutside"; }, never, never, true, never>;
10
+ }
@@ -0,0 +1,15 @@
1
+ import { ElementRef, OnInit, ViewContainerRef } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class RendererParserDirective implements OnInit {
4
+ private el;
5
+ private er;
6
+ rowParam: any;
7
+ col: any;
8
+ api: any;
9
+ currentValue: any;
10
+ ref: any;
11
+ constructor(el: ViewContainerRef, er: ElementRef);
12
+ ngOnInit(): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<RendererParserDirective, never>;
14
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RendererParserDirective, "[appRendererParser]", never, { "rowParam": { "alias": "rowParam"; "required": false; }; "col": { "alias": "col"; "required": false; }; "api": { "alias": "api"; "required": false; }; "currentValue": { "alias": "currentValue"; "required": false; }; }, {}, never, never, true, never>;
15
+ }
@@ -0,0 +1,7 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class AddClassPipe implements PipeTransform {
4
+ transform(value: any, tableOption: any): string;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<AddClassPipe, never>;
6
+ static ɵpipe: i0.ɵɵPipeDeclaration<AddClassPipe, "addClass", true>;
7
+ }
@@ -0,0 +1,6 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class CatsDataGridService {
3
+ constructor();
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<CatsDataGridService, never>;
5
+ static ɵprov: i0.ɵɵInjectableDeclaration<CatsDataGridService>;
6
+ }
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "cats-data-grid",
3
+ "version": "0.0.1",
4
+ "peerDependencies": {
5
+ "@angular/common": "^19.2.0",
6
+ "@angular/core": "^19.2.0"
7
+ },
8
+ "dependencies": {
9
+ "tslib": "^2.3.0"
10
+ },
11
+ "sideEffects": false,
12
+ "module": "fesm2022/cats-data-grid.mjs",
13
+ "typings": "index.d.ts",
14
+ "exports": {
15
+ "./package.json": {
16
+ "default": "./package.json"
17
+ },
18
+ ".": {
19
+ "types": "./index.d.ts",
20
+ "default": "./fesm2022/cats-data-grid.mjs"
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,2 @@
1
+ export * from './lib/services/cats-data-grid.service';
2
+ export * from './lib/cats-data-grid.component';
@@ -0,0 +1,3 @@
1
+ @forward "sass-utils";
2
+ @forward "component";
3
+ @forward "base";
@@ -0,0 +1,74 @@
1
+ // @use url("https://fonts.googleapis.com/css2?family=Rethink+Sans:ital,wght@0,400..800;1,400..800&display=swap");
2
+
3
+ @use "../sass-utils" as *;
4
+
5
+ :root {
6
+ --fs-6: 6px;
7
+ --fs-12: 12px;
8
+ --fs-14: 14px;
9
+ --fs-16: 16px;
10
+ --fs-18: 18px;
11
+ --fs-20: 20px;
12
+ --fs-24: 24px;
13
+ --fs-28: 28px;
14
+ --fs-30: 30px;
15
+ --fs-32: 32px;
16
+ --fs-42: 42px;
17
+ --fs-48: 48px;
18
+ --img-w: 28px;
19
+ --scale: 1;
20
+ }
21
+
22
+ @include width-range($tablet, $mediumDesktop) {
23
+ :root {
24
+ --scale: 1.5;
25
+ --fs-6: calc(6px / var(--scale));
26
+ --fs-12: calc(12px / var(--scale));
27
+ --fs-14: calc(14px / var(--scale));
28
+ --fs-16: calc(16px / var(--scale));
29
+ --fs-18: calc(18px / var(--scale));
30
+ --fs-20: calc(20px / var(--scale));
31
+ --fs-24: calc(24px / var(--scale));
32
+ --fs-28: calc(28px / var(--scale));
33
+ --fs-30: calc(30px / var(--scale));
34
+ --fs-32: calc(32px / var(--scale));
35
+ --fs-42: calc(42px / var(--scale));
36
+ --fs-48: calc(48px / var(--scale));
37
+ }
38
+ }
39
+
40
+ @include width-range($largeDesktop, $extraLargeDesktop) {
41
+ :root {
42
+ --scale: 1.33;
43
+ --fs-6: calc(6px / var(--scale));
44
+ --fs-12: calc(12px / var(--scale));
45
+ --fs-14: calc(14px / var(--scale));
46
+ --fs-16: calc(16px / var(--scale));
47
+ --fs-18: calc(18px / var(--scale));
48
+ --fs-20: calc(20px / var(--scale));
49
+ --fs-24: calc(24px / var(--scale));
50
+ --fs-28: calc(28px / var(--scale));
51
+ --fs-30: calc(30px / var(--scale));
52
+ --fs-32: calc(32px / var(--scale));
53
+ --fs-42: calc(42px / var(--scale));
54
+ --fs-48: calc(48px / var(--scale));
55
+ }
56
+ }
57
+
58
+ @include width-range($xxlargeDesktop, $ultraWideDesktop) {
59
+ :root {
60
+ --scale: 1.25;
61
+ --fs-6: calc(6px / var(--scale));
62
+ --fs-12: calc(12px / var(--scale));
63
+ --fs-14: calc(14px / var(--scale));
64
+ --fs-16: calc(16px / var(--scale));
65
+ --fs-18: calc(18px / var(--scale));
66
+ --fs-20: calc(20px / var(--scale));
67
+ --fs-24: calc(24px / var(--scale));
68
+ --fs-28: calc(28px / var(--scale));
69
+ --fs-30: calc(30px / var(--scale));
70
+ --fs-32: calc(32px / var(--scale));
71
+ --fs-42: calc(42px / var(--scale));
72
+ --fs-48: calc(48px / var(--scale));
73
+ }
74
+ }
@@ -0,0 +1,2 @@
1
+ @forward "./reset";
2
+ @forward "./fonts";
@@ -0,0 +1,60 @@
1
+ // Box Sizing
2
+ *,
3
+ *::before,
4
+ *::after {
5
+ box-sizing: border-box;
6
+ margin: 0;
7
+ padding: 0;
8
+ font-family: "Rethink";
9
+ }
10
+
11
+ body {
12
+ font-size: 100%;
13
+ }
14
+
15
+ // Font-inflation
16
+ html {
17
+ -moz-text-size-adjust: none;
18
+ -webkit-text-size-adjust: none;
19
+ -ms-text-size-adjust: none;
20
+ text-size-adjust: none;
21
+ }
22
+
23
+ // Remove default margin and padding
24
+ h1,
25
+ h2,
26
+ h3,
27
+ h4,
28
+ h5,
29
+ h6,
30
+ ul,
31
+ ol,
32
+ p {
33
+ margin: 0;
34
+ padding: 0;
35
+ text-wrap: pretty;
36
+ }
37
+
38
+ // Remove list styles on ul, ol elements
39
+ ul[role="list"],
40
+ ol[role="list"] {
41
+ list-style: none;
42
+ }
43
+
44
+ ul {
45
+ list-style: none;
46
+ }
47
+
48
+ // images
49
+ img,
50
+ picture {
51
+ max-width: 100%;
52
+ display: block;
53
+ }
54
+
55
+ input,
56
+ select,
57
+ textarea {
58
+ outline: none;
59
+ box-shadow: none;
60
+ }