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.
- package/README.md +63 -0
- package/assets/images/activity.svg +1 -0
- package/assets/images/airplay.svg +1 -0
- package/assets/images/alert-circle.svg +1 -0
- package/assets/images/alert-octagon.svg +1 -0
- package/assets/images/alert-triangle.svg +1 -0
- package/assets/images/align-center.svg +1 -0
- package/assets/images/align-justify.svg +1 -0
- package/assets/images/align-left.svg +1 -0
- package/assets/images/align-right.svg +1 -0
- package/assets/images/anchor.svg +1 -0
- package/assets/images/aperture.svg +1 -0
- package/assets/images/archive.svg +1 -0
- package/assets/images/arrow-down-circle.svg +1 -0
- package/assets/images/arrow-down-left.svg +1 -0
- package/assets/images/arrow-down-right.svg +1 -0
- package/assets/images/arrow-down.svg +1 -0
- package/assets/images/arrow-left-circle.svg +1 -0
- package/assets/images/arrow-left.svg +1 -0
- package/assets/images/arrow-right-circle.svg +1 -0
- package/assets/images/arrow-right.svg +1 -0
- package/assets/images/arrow-up-circle.svg +1 -0
- package/assets/images/arrow-up-left.svg +1 -0
- package/assets/images/arrow-up-right.svg +1 -0
- package/assets/images/arrow-up.svg +1 -0
- package/assets/images/at-sign.svg +1 -0
- package/assets/images/award.svg +1 -0
- package/assets/images/bar-chart-2.svg +1 -0
- package/assets/images/bar-chart.svg +1 -0
- package/assets/images/battery-charging.svg +1 -0
- package/assets/images/battery.svg +1 -0
- package/assets/images/bell-off.svg +1 -0
- package/assets/images/bell.svg +1 -0
- package/assets/images/bluetooth.svg +1 -0
- package/assets/images/bold.svg +1 -0
- package/assets/images/book-open.svg +1 -0
- package/assets/images/book.svg +1 -0
- package/assets/images/bookmark.svg +1 -0
- package/assets/images/box.svg +1 -0
- package/assets/images/briefcase.svg +1 -0
- package/assets/images/calendar.svg +1 -0
- package/assets/images/camera-off.svg +1 -0
- package/assets/images/camera.svg +1 -0
- package/assets/images/cast.svg +1 -0
- package/assets/images/check-circle.svg +1 -0
- package/assets/images/check-square.svg +1 -0
- package/assets/images/check.svg +1 -0
- package/assets/images/chevron-down.svg +1 -0
- package/assets/images/chevron-left.svg +1 -0
- package/assets/images/chevron-right.svg +1 -0
- package/assets/images/chevron-up.svg +1 -0
- package/assets/images/chevrons-down.svg +1 -0
- package/assets/images/chevrons-left.svg +1 -0
- package/assets/images/chevrons-right.svg +1 -0
- package/assets/images/chevrons-up.svg +1 -0
- package/assets/images/chrome.svg +1 -0
- package/assets/images/circle.svg +1 -0
- package/assets/images/clipboard.svg +1 -0
- package/assets/images/clock.svg +1 -0
- package/assets/images/cloud-drizzle.svg +1 -0
- package/assets/images/cloud-lightning.svg +1 -0
- package/assets/images/cloud-off.svg +1 -0
- package/assets/images/cloud-rain.svg +1 -0
- package/assets/images/cloud-snow.svg +1 -0
- package/assets/images/cloud.svg +1 -0
- package/assets/images/code.svg +1 -0
- package/assets/images/codepen.svg +1 -0
- package/assets/images/codesandbox.svg +1 -0
- package/assets/images/coffee.svg +1 -0
- package/assets/images/columns.svg +1 -0
- package/assets/images/command.svg +1 -0
- package/assets/images/compass.svg +1 -0
- package/assets/images/copy.svg +1 -0
- package/assets/images/corner-down-left.svg +1 -0
- package/assets/images/corner-down-right.svg +1 -0
- package/assets/images/corner-left-down.svg +1 -0
- package/assets/images/corner-left-up.svg +1 -0
- package/assets/images/corner-right-down.svg +1 -0
- package/assets/images/corner-right-up.svg +1 -0
- package/assets/images/corner-up-left.svg +1 -0
- package/assets/images/corner-up-right.svg +1 -0
- package/assets/images/cpu.svg +1 -0
- package/assets/images/credit-card.svg +1 -0
- package/assets/images/crop.svg +1 -0
- package/assets/images/crosshair.svg +1 -0
- package/assets/images/database.svg +1 -0
- package/assets/images/delete.svg +1 -0
- package/assets/images/disc.svg +1 -0
- package/assets/images/divide-circle.svg +1 -0
- package/assets/images/divide-square.svg +1 -0
- package/assets/images/divide.svg +1 -0
- package/assets/images/dollar-sign.svg +1 -0
- package/assets/images/download-cloud.svg +1 -0
- package/assets/images/download.svg +1 -0
- package/assets/images/dribbble.svg +1 -0
- package/assets/images/droplet.svg +1 -0
- package/assets/images/edit-2.svg +1 -0
- package/assets/images/edit-3.svg +1 -0
- package/assets/images/edit.svg +1 -0
- package/assets/images/external-link.svg +1 -0
- package/assets/images/eye-off.svg +1 -0
- package/assets/images/eye.svg +1 -0
- package/assets/images/facebook.svg +1 -0
- package/assets/images/fast-forward.svg +1 -0
- package/assets/images/feather.svg +1 -0
- package/assets/images/figma.svg +1 -0
- package/assets/images/file-minus.svg +1 -0
- package/assets/images/file-plus.svg +1 -0
- package/assets/images/file-text.svg +1 -0
- package/assets/images/file.svg +1 -0
- package/assets/images/film.svg +1 -0
- package/assets/images/filter.svg +1 -0
- package/assets/images/flag.svg +1 -0
- package/assets/images/folder-minus.svg +1 -0
- package/assets/images/folder-plus.svg +1 -0
- package/assets/images/folder.svg +1 -0
- package/assets/images/framer.svg +1 -0
- package/assets/images/frown.svg +1 -0
- package/assets/images/gift.svg +1 -0
- package/assets/images/git-branch.svg +1 -0
- package/assets/images/git-commit.svg +1 -0
- package/assets/images/git-merge.svg +1 -0
- package/assets/images/git-pull-request.svg +1 -0
- package/assets/images/github.svg +1 -0
- package/assets/images/gitlab.svg +1 -0
- package/assets/images/globe.svg +1 -0
- package/assets/images/grid.svg +1 -0
- package/assets/images/hard-drive.svg +1 -0
- package/assets/images/hash.svg +1 -0
- package/assets/images/headphones.svg +1 -0
- package/assets/images/heart.svg +1 -0
- package/assets/images/help-circle.svg +1 -0
- package/assets/images/hexagon.svg +1 -0
- package/assets/images/home.svg +1 -0
- package/assets/images/image.svg +1 -0
- package/assets/images/inbox.svg +1 -0
- package/assets/images/info.svg +1 -0
- package/assets/images/instagram.svg +1 -0
- package/assets/images/italic.svg +1 -0
- package/assets/images/key.svg +1 -0
- package/assets/images/layers.svg +1 -0
- package/assets/images/layout.svg +1 -0
- package/assets/images/life-buoy.svg +1 -0
- package/assets/images/link-2.svg +1 -0
- package/assets/images/link.svg +1 -0
- package/assets/images/linkedin.svg +1 -0
- package/assets/images/list.svg +1 -0
- package/assets/images/loader.svg +1 -0
- package/assets/images/lock.svg +1 -0
- package/assets/images/log-in.svg +1 -0
- package/assets/images/log-out.svg +1 -0
- package/assets/images/mail.svg +1 -0
- package/assets/images/map-pin.svg +1 -0
- package/assets/images/map.svg +1 -0
- package/assets/images/maximize-2.svg +1 -0
- package/assets/images/maximize.svg +1 -0
- package/assets/images/meh.svg +1 -0
- package/assets/images/menu.svg +1 -0
- package/assets/images/message-circle.svg +1 -0
- package/assets/images/message-square.svg +1 -0
- package/assets/images/mic-off.svg +1 -0
- package/assets/images/mic.svg +1 -0
- package/assets/images/minimize-2.svg +1 -0
- package/assets/images/minimize.svg +1 -0
- package/assets/images/minus-circle.svg +1 -0
- package/assets/images/minus-square.svg +1 -0
- package/assets/images/minus.svg +1 -0
- package/assets/images/monitor.svg +1 -0
- package/assets/images/moon.svg +1 -0
- package/assets/images/more-horizontal.svg +1 -0
- package/assets/images/more-vertical.svg +1 -0
- package/assets/images/mouse-pointer.svg +1 -0
- package/assets/images/move.svg +1 -0
- package/assets/images/music.svg +1 -0
- package/assets/images/navigation-2.svg +1 -0
- package/assets/images/navigation.svg +1 -0
- package/assets/images/octagon.svg +1 -0
- package/assets/images/package.svg +1 -0
- package/assets/images/paperclip.svg +1 -0
- package/assets/images/pause-circle.svg +1 -0
- package/assets/images/pause.svg +1 -0
- package/assets/images/pen-tool.svg +1 -0
- package/assets/images/percent.svg +1 -0
- package/assets/images/phone-call.svg +1 -0
- package/assets/images/phone-forwarded.svg +1 -0
- package/assets/images/phone-incoming.svg +1 -0
- package/assets/images/phone-missed.svg +1 -0
- package/assets/images/phone-off.svg +1 -0
- package/assets/images/phone-outgoing.svg +1 -0
- package/assets/images/phone.svg +1 -0
- package/assets/images/pie-chart.svg +1 -0
- package/assets/images/play-circle.svg +1 -0
- package/assets/images/play.svg +1 -0
- package/assets/images/plus-circle.svg +1 -0
- package/assets/images/plus-square.svg +1 -0
- package/assets/images/plus.svg +1 -0
- package/assets/images/pocket.svg +1 -0
- package/assets/images/power.svg +1 -0
- package/assets/images/printer.svg +1 -0
- package/assets/images/radio.svg +1 -0
- package/assets/images/refresh-ccw.svg +1 -0
- package/assets/images/refresh-cw.svg +1 -0
- package/assets/images/repeat.svg +1 -0
- package/assets/images/rewind.svg +1 -0
- package/assets/images/rotate-ccw.svg +1 -0
- package/assets/images/rotate-cw.svg +1 -0
- package/assets/images/rss.svg +1 -0
- package/assets/images/save.svg +1 -0
- package/assets/images/scissors.svg +1 -0
- package/assets/images/search.svg +1 -0
- package/assets/images/send.svg +1 -0
- package/assets/images/server.svg +1 -0
- package/assets/images/settings.svg +1 -0
- package/assets/images/share-2.svg +1 -0
- package/assets/images/share.svg +1 -0
- package/assets/images/shield-off.svg +1 -0
- package/assets/images/shield.svg +1 -0
- package/assets/images/shopping-bag.svg +1 -0
- package/assets/images/shopping-cart.svg +1 -0
- package/assets/images/shuffle.svg +1 -0
- package/assets/images/sidebar.svg +1 -0
- package/assets/images/skip-back.svg +1 -0
- package/assets/images/skip-forward.svg +1 -0
- package/assets/images/slack.svg +1 -0
- package/assets/images/slash.svg +1 -0
- package/assets/images/sliders.svg +1 -0
- package/assets/images/smartphone.svg +1 -0
- package/assets/images/smile.svg +1 -0
- package/assets/images/sort_down.svg +7 -0
- package/assets/images/sort_up.svg +7 -0
- package/assets/images/speaker.svg +1 -0
- package/assets/images/square.svg +1 -0
- package/assets/images/star.svg +1 -0
- package/assets/images/stop-circle.svg +1 -0
- package/assets/images/sun.svg +1 -0
- package/assets/images/sunrise.svg +1 -0
- package/assets/images/sunset.svg +1 -0
- package/assets/images/table.svg +1 -0
- package/assets/images/tablet.svg +1 -0
- package/assets/images/tag.svg +1 -0
- package/assets/images/target.svg +1 -0
- package/assets/images/terminal.svg +1 -0
- package/assets/images/thermometer.svg +1 -0
- package/assets/images/thumbs-down.svg +1 -0
- package/assets/images/thumbs-up.svg +1 -0
- package/assets/images/toggle-left.svg +1 -0
- package/assets/images/toggle-right.svg +1 -0
- package/assets/images/tool.svg +1 -0
- package/assets/images/trash-2.svg +1 -0
- package/assets/images/trash.svg +1 -0
- package/assets/images/trello.svg +1 -0
- package/assets/images/trending-down.svg +1 -0
- package/assets/images/trending-up.svg +1 -0
- package/assets/images/triangle.svg +1 -0
- package/assets/images/truck.svg +1 -0
- package/assets/images/tv.svg +1 -0
- package/assets/images/twitch.svg +1 -0
- package/assets/images/twitter.svg +1 -0
- package/assets/images/type.svg +1 -0
- package/assets/images/umbrella.svg +1 -0
- package/assets/images/underline.svg +1 -0
- package/assets/images/unlock.svg +1 -0
- package/assets/images/upload-cloud.svg +1 -0
- package/assets/images/upload.svg +1 -0
- package/assets/images/user-check.svg +1 -0
- package/assets/images/user-minus.svg +1 -0
- package/assets/images/user-plus.svg +1 -0
- package/assets/images/user-x.svg +1 -0
- package/assets/images/user.svg +1 -0
- package/assets/images/users.svg +1 -0
- package/assets/images/video-off.svg +1 -0
- package/assets/images/video.svg +1 -0
- package/assets/images/voicemail.svg +1 -0
- package/assets/images/volume-1.svg +1 -0
- package/assets/images/volume-2.svg +1 -0
- package/assets/images/volume-x.svg +1 -0
- package/assets/images/volume.svg +1 -0
- package/assets/images/watch.svg +1 -0
- package/assets/images/wifi-off.svg +1 -0
- package/assets/images/wifi.svg +1 -0
- package/assets/images/wind.svg +1 -0
- package/assets/images/x-circle.svg +1 -0
- package/assets/images/x-octagon.svg +1 -0
- package/assets/images/x-square.svg +1 -0
- package/assets/images/x.svg +1 -0
- package/assets/images/youtube.svg +1 -0
- package/assets/images/zap-off.svg +1 -0
- package/assets/images/zap.svg +1 -0
- package/assets/images/zoom-in.svg +1 -0
- package/assets/images/zoom-out.svg +1 -0
- package/fesm2022/cats-data-grid.mjs +530 -0
- package/fesm2022/cats-data-grid.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/cats-data-grid.component.d.ts +148 -0
- package/lib/directives/outside-click.directive.d.ts +10 -0
- package/lib/directives/renderer-parser.directive.d.ts +15 -0
- package/lib/pipes/add-class.pipe.d.ts +7 -0
- package/lib/services/cats-data-grid.service.d.ts +6 -0
- package/package.json +23 -0
- package/public-api.d.ts +2 -0
- package/styles/_index.scss +3 -0
- package/styles/base/_fonts.scss +74 -0
- package/styles/base/_index.scss +2 -0
- package/styles/base/_reset.scss +60 -0
- package/styles/component/_form.scss +246 -0
- package/styles/component/_index.scss +1 -0
- package/styles/sass-utils/_function.scss +14 -0
- package/styles/sass-utils/_index.scss +3 -0
- package/styles/sass-utils/_mixin.scss +56 -0
- 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":";;;;;;;MAKa,mBAAmB,CAAA;AAE9B,IAAA,WAAA,GAAA;wGAFW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCCY,YAAY,CAAA;IAEvB,SAAS,CAAC,KAAU,EAAE,WAAgB,EAAA;AACpC,QAAA,IAAI,WAAW,EAAE,UAAU,EAAE;AAC3B,YAAA,OAAO,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC;;AAEtC,QAAA,OAAO,EAAE;;wGANA,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;sGAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE;AACP,iBAAA;;;MCEY,qBAAqB,CAAA;AAEZ,IAAA,EAAA;AADV,IAAA,YAAY,GAAG,IAAI,YAAY,EAAE;AAC3C,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE;;IAEtB,OAAO,CAAC,KAAiB,EAAE,aAA0B,EAAA;QACnD,KAAK,CAAC,eAAe,EAAE;QACvB,IAAI,CAAC,aAAa,EAAE;YAClB;;AAEF,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC;AACjE,QAAA,IAAI,CAAC,WAAW;AAAE,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;;wGAVtC,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,+BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE;AACb,iBAAA;+EAEW,YAAY,EAAA,CAAA;sBAArB;gBAGD,OAAO,EAAA,CAAA;sBADN,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,gBAAgB,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC;;;MCGhD,uBAAuB,CAAA;AAMd,IAAA,EAAA;AAA8B,IAAA,EAAA;AALzC,IAAA,QAAQ;AACR,IAAA,GAAG;AACH,IAAA,GAAG;AACH,IAAA,YAAY;AACrB,IAAA,GAAG;IACH,WAAoB,CAAA,EAAoB,EAAU,EAAc,EAAA;QAA5C,IAAE,CAAA,EAAA,GAAF,EAAE;QAA4B,IAAE,CAAA,EAAA,GAAF,EAAE;;IACpD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE;AAChB,QAAA,IAAI,MAAM,GAAQ;YAChB,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,KAAK,EAAE,IAAI,CAAC,YAAY;AACxB,YAAA,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,kBAAkB;YACxC,GAAG,EAAE,IAAI,CAAC;SACX;AACD,QAAA,IACE,IAAI,CAAC,GAAG,EAAE,YAAY,EAAE,SAAS;AACjC,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,EACrE;AACA,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC;AAC1D,YAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC;;aACxC,IAAI,OAAO,IAAI,CAAC,GAAG,EAAE,YAAY,IAAI,UAAU,EAAE;YACtD,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC1C,YAAA,MAAM,CAAC,SAAS,GAAG,mBAAmB;YACtC,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC;YAChD,IAAI,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;YAC7C,IAAI,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;YAC3C,IAAI,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC3C,YAAA,SAAS,CAAC,SAAS,GAAG,eAAe;AACrC,YAAA,OAAO,CAAC,SAAS,GAAG,MAAM;AAC1B,YAAA,OAAO,CAAC,SAAS,GAAG,MAAM;AAC1B,YAAA,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS;AACpC,YAAA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;AAC5B,YAAA,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC;YAC9B,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC;YACzC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC;;;wGAnCrC,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,GAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAChC,iBAAA;8GAEU,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,GAAG,EAAA,CAAA;sBAAX;gBACQ,GAAG,EAAA,CAAA;sBAAX;gBACQ,YAAY,EAAA,CAAA;sBAApB;;;MCGU,qBAAqB,CAAA;AAiCZ,IAAA,EAAA;AAhCX,IAAA,YAAY;IACZ,YAAY,GAAW,CAAC;IACxB,eAAe,GAAG,KAAK;IACvB,iBAAiB,GAAG,KAAK;IACzB,qBAAqB,GAAG,UAAU;IAClC,OAAO,GAAU,EAAE;IACnB,OAAO,GAAU,EAAE;IACnB,kBAAkB,GAAG,IAAI;IACzB,gBAAgB,GAAY,KAAK;IACjC,cAAc,GAAY,KAAK;AAE9B,IAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE;AACvC,IAAA,mBAAmB,GAAG,IAAI,YAAY,EAAE;AACxC,IAAA,eAAe,GAAG,IAAI,YAAY,EAAE;AAE9C,IAAA,WAAW,GAAQ;AACjB,QAAA,QAAQ,EAAE,EAAE;AACZ,QAAA,UAAU,EAAE,CAAC;AACb,QAAA,WAAW,EAAE,CAAC;KACf;AACD,IAAA,aAAa,GAAQ;AACnB,QAAA,GAAG,EAAE,CAAC;AACN,QAAA,GAAG,EAAE,EAAE;KACR;AACD,IAAA,kBAAkB;IAClB,WAAW,GAAW,EAAE;IACxB,WAAW,GAAU,EAAE;IAEd,YAAY,GAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;IACnD,gBAAgB,GAAY,KAAK;IACjC,aAAa,GAAkB,IAAI;IACnC,YAAY,GAAkB,IAAI;AAClC,IAAA,WAAA,CAAoB,EAAqB,EAAA;QAArB,IAAE,CAAA,EAAA,GAAF,EAAE;;AAEtB,IAAA,QAAQ;AAER,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE;YACpC,IAAI,CAAC,gBAAgB,EAAE;;AAEzB,QAAA,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE;YACzC,IAAI,CAAC,YAAY,EAAE;;AAErB,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE;YACpC,IAAI,IAAI,CAAC,gBAAgB;AAAE,gBAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AAChD,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,GAAG,CACjD,CAAC,GAAQ,EAAE,CAAS,KAAI;gBACtB,GAAG,CAAC,KAAK,GAAG,CAAG,EAAA,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,CAAC,CAAA,CAAE;gBAChC,IAAI,GAAG,EAAE,UAAU;AAAE,oBAAA,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC;AAC/C,gBAAA,OAAO,GAAG;AACZ,aAAC,CACF;;;AAIL;;;;;;;AAOG;IACH,aAAa,CAAC,GAAQ,EAAE,OAAe,EAAA;QACrC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE;AAC3B,YAAA,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG;;aACrB;YACL,IAAI,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YACnC,IAAI,GAAG,GAAG,GAAG;AACb,YAAA,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;gBAC5B,GAAG;AACD,oBAAA,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK;0BACtC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;0BACb,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE;;;YAG1B,OAAO,GAAG,IAAI,GAAG;;;AAIrB;;;;;AAKG;IACH,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,EAAE;AAC9B,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC;AAChC,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC;AAC/B,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,EAAE;QAC3B,IAAI,CAAC,YAAY,EAAE;;AAGrB;;;;;AAKG;IACH,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CACrC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAC9C;;AAGH;;;;;AAKG;AACH,IAAA,iBAAiB,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC;AACxC,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC3C,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC3B,YAAA,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC;AACtC,YAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;AACpC,SAAA,CAAC;;AAGJ;;;AAGG;IACH,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ;AAC3E,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ;AAC3E,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC;AAClC,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC;AAEjE,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC3B,YAAA,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC;AACtC,YAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;AACpC,SAAA,CAAC;;AAGJ;;;AAGG;IACH,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ;AAC3E,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ;QAE3E,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU;AAC5D,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC;AAEjE,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC3B,YAAA,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC;AACtC,YAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;AACpC,SAAA,CAAC;;AAGJ;;;;AAIG;AACH,IAAA,gBAAgB,CAAC,KAAU,EAAA;AACzB,QAAA,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;AAC/B,QAAA,IAAI,MAAM,GAAG,CAAC,EAAE;AACd,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC;;aAC3B,IAAI,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE;YAC/C,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU;;QAE5D,IAAI,CAAC,aAAa,CAAC,GAAG;YACpB,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ;QAC1D,IAAI,CAAC,aAAa,CAAC,GAAG;YACpB,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ;AACxD,gBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ;AAE3B,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;AAC3B,YAAA,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,CAAC;AACtC,YAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ;AACpC,SAAA,CAAC;;AAGJ;;;;;;AAMG;IACH,gBAAgB,CAAC,iBAAyB,EAAE,SAAiB,EAAA;AAC3D,QAAA,IAAI,CAAC,kBAAkB,GAAG,iBAAiB;AAC3C,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC;AACvB,cAAE;AACF,cAAE,IAAI,CAAC,WAAW,IAAI;AACtB,kBAAE;kBACA,KAAK;AACT,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,KAAK,EAAE;AAC7B,YAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;;aACzB;AACL,YAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;;;AAInC;;;AAGG;AACH,IAAA,cAAc,CAAC,SAAiB,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACxC,YAAA,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE;AACvE,gBAAA,OAAO,CAAC;;iBACH;gBACL,OAAO,CAAC,CAAC;;AAEb,SAAC,CAAC;;AAGJ;;;AAGG;AACH,IAAA,eAAe,CAAC,SAAiB,EAAA;AAC/B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACxC,YAAA,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE;gBACvE,OAAO,CAAC,CAAC;;iBACJ;AACL,gBAAA,OAAO,CAAC;;AAEZ,SAAC,CAAC;;AAGJ;;;;AAIG;AACH,IAAA,sBAAsB,CAAC,KAAU,EAAA;AAC/B,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;AACxB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACvC,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,gBAAA,OAAO,IAAI;AACb,aAAC,CAAC;AACF,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;;aACtC;AACL,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACvC,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AACvB,gBAAA,OAAO,IAAI;AACb,aAAC,CAAC;AACF,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE;AACrB,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;;;AAIrC;;;;AAIG;AACH,IAAA,sBAAsB,CAAC,KAAU,EAAA;AAC/B,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;YACxB,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAC9B,CAAC,IAAS,KAAK,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAC7C;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,IAAI;AACnC,YAAA,IACE,IAAI,CAAC,qBAAqB,IAAI,UAAU;AACxC,gBAAA,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAC3B;AAEE,gBAAA,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAClD,CAAC,OAAO,GAAG,KAAK;AACjB,gBAAA,IAAI,CAAC,WAAW,GAAG,EAAE;;AAEvB,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAExC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;;aAC1C;YACL,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAC9B,CAAC,IAAS,KAAK,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAC7C;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,KAAK;YACpC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAChC,CAAC,IAAS,KAAK,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAC7C;YACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;;AAEjD,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;;AAEzB;;;;;AAKG;AACH,IAAA,QAAQ,CAAC,GAAQ,EAAA;QACf,OAAO,EAAE,KAAK,EAAE,CAAA,EAAG,GAAG,CAAC,KAAK,CAAI,EAAA,CAAA,EAAE;;IAEpC,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;;AAE/B,IAAA,cAAc,CAAC,IAAS,EAAA;QACtB,IAAI,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI;;AACvB,YAAA,OAAO,KAAK;;AAEnB,IAAA,cAAc,CAAC,KAAU,EAAA;QACvB,IACE,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS;AAChD,YAAA,KAAK,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC;AAC/B,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,EACnB;AACA,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;;;IAI/B,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;AAAE,YAAA,OAAO,KAAK;QACtC,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM;;IAEvD,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;AAAE,YAAA,OAAO,KAAK;AACtC,QAAA,QACE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;;AAIjD;;;;;AAKG;IACH,WAAW,CAAC,KAAgB,EAAE,KAAa,EAAA;AACzC,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,QAAA,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;;AAG7D;;;;;AAKG;IACH,UAAU,CAAC,KAAgB,EAAE,KAAa,EAAA;QACxC,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK;;;AAI9B;;;;;AAKG;IACH,MAAM,CAAC,KAAgB,EAAE,KAAa,EAAA;QACpC,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI;YAAE;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,CAAC;AAC1C,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;;AAG3B;;;;;AAKG;IACH,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;;wGAzXhB,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnBlC,oxNAyJM,EAAA,MAAA,EAAA,CAAA,isyBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED/IF,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,qBAAqB,EAAA,QAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,KAAA,EAAA,KAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EACvB,YAAY,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA;;4FAKH,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAZjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EACjB,OAAA,EAAA;wBACP,YAAY;wBACZ,WAAW;wBACX,qBAAqB;wBACrB,uBAAuB;wBACvB,YAAY;AACb,qBAAA,EAAA,QAAA,EAAA,oxNAAA,EAAA,MAAA,EAAA,CAAA,isyBAAA,CAAA,EAAA;sFAKQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,iBAAiB,EAAA,CAAA;sBAAzB;gBACQ,qBAAqB,EAAA,CAAA;sBAA7B;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,kBAAkB,EAAA,CAAA;sBAA1B;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBAES,kBAAkB,EAAA,CAAA;sBAA3B;gBACS,mBAAmB,EAAA,CAAA;sBAA5B;gBACS,eAAe,EAAA,CAAA;sBAAxB;gBAeQ,YAAY,EAAA,CAAA;sBAApB;;;AEhDH;;AAEG;;ACFH;;AAEG;;;;"}
|
package/index.d.ts
ADDED
|
@@ -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
|
+
}
|
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
|
+
}
|
package/public-api.d.ts
ADDED
|
@@ -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,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
|
+
}
|