verben-ng-ui 1.3.0 → 1.3.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"verben-ng-ui-src-lib-components-table-filter.mjs","sources":["../../../projects/verben-ng-ui/src/lib/components/table-filter/table-filter.component.ts","../../../projects/verben-ng-ui/src/lib/components/table-filter/table-filter.component.html","../../../projects/verben-ng-ui/src/lib/components/table-filter/table-filter.module.ts","../../../projects/verben-ng-ui/src/lib/components/table-filter/verben-ng-ui-src-lib-components-table-filter.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { DataFilterType, IDataFilter } from 'verben-ng-ui/src/lib/models';\nimport { Config } from 'verben-ng-ui/src/lib/models';\n\n@Component({\n selector: 'verben-table-filter',\n templateUrl: './table-filter.component.html',\n styleUrls: ['./table-filter.component.css'],\n})\nexport class TableFilterComponent implements OnInit {\n @Input() filterOptions: IDataFilter[] = [];\n @Input() pd?: string;\n @Input() mg?: string;\n @Input() height?: string;\n @Input() width?: string;\n @Input() bgColor?: string;\n @Input() boxShadow?: string;\n @Input() textColor?: string;\n @Input() primaryColor?: string;\n @Input() secondaryColor?: string;\n @Input() tertiaryColor?: string;\n @Input() border?: string;\n @Input() borderRadius?: string;\n @Input() selectWidth?: string;\n @Input() maxFilterLength: number = 3;\n @Input() tooltip: boolean = false;\n @Output() filtersApplied = new EventEmitter<any>();\n @Output() resetSortData = new EventEmitter<any>();\n filterArray: string[] = [];\n selectedFilterValue: string = '';\n selectedFilterType?: any;\n conditionOptions: string[] = [];\n selectedCondition: string | undefined = '';\n inputValue?: string | number;\n savedFilters: IDataFilter[] = [];\n selectedFilters: IDataFilter[] = [];\n showAllFilters: boolean = false;\n editIndex: number | null = null;\n checkAll: boolean = false;\n isDuplicateFilter: boolean = false;\n disableAddFilterBtn: boolean = false;\n disableApplyFilterBtn: boolean = true;\n duplicateMessage?: string = '';\n configInstance: Config;\n storageKey: string = 'savedFilters';\n filterCount: number = 0;\n\n constructor() {\n this.configInstance = new Config();\n }\n\n ngOnInit(): void {\n this.filterArray = this.filterOptions.map((item) => item.name);\n }\n\n onFilterNameChange(selectedFilterValue: string) {\n const selectedFilter = this.filterOptions.find(\n (option) => option.name === selectedFilterValue\n );\n\n if (selectedFilter) {\n this.selectedFilterType = selectedFilter.type;\n this.conditionOptions =\n this.configInstance.getConditionOptions(this.selectedFilterType) || [];\n this.selectedCondition = '';\n }\n }\n\n resetFilters() {\n this.selectedFilterType = null;\n this.selectedCondition = '';\n this.inputValue = '';\n this.savedFilters = [];\n this.editIndex = null;\n this.checkAll = false;\n this.isDuplicateFilter = false;\n this.disableApplyFilterBtn = true;\n this.duplicateMessage = '';\n localStorage.removeItem(this.storageKey);\n this.filterCount = this.savedFilters.filter(\n (item) => item.checked === true\n ).length;\n this.resetSortData.emit();\n }\n\n addFilter() {\n if (\n !this.selectedFilterValue ||\n !this.selectedCondition ||\n !this.inputValue\n ) {\n return;\n }\n\n if (this.editIndex === null && this.isDuplicateFilter) {\n return;\n }\n // 00:00 23:59\n if (\n (this.selectedFilterType as DataFilterType) == DataFilterType.Date &&\n this.selectedCondition == 'On'\n ) {\n const leftFilter: IDataFilter = {\n name: this.selectedFilterValue,\n type: this.selectedFilterType,\n condition: 'After',\n value: (this.inputValue as string).concat(' 00:00'),\n checked: true,\n };\n\n const rightFilter: IDataFilter = {\n name: this.selectedFilterValue,\n type: this.selectedFilterType,\n condition: 'Before',\n value: (this.inputValue as string).concat(' 23:59'),\n checked: true,\n };\n\n const filters = [leftFilter, rightFilter];\n\n for (let newFilter of filters) {\n if (this.editIndex !== null) {\n const isDuplicate = this.savedFilters.some(\n (filter, index) =>\n filter.name === newFilter.name &&\n filter.condition === newFilter.condition &&\n index !== this.editIndex\n );\n\n if (isDuplicate) {\n continue;\n }\n this.savedFilters[this.editIndex] = newFilter;\n this.editIndex = null;\n } else {\n if (\n this.savedFilters.some(\n (filter) =>\n filter.name === newFilter.name &&\n filter.condition === newFilter.condition\n )\n ) {\n continue;\n }\n this.savedFilters.push(newFilter);\n this.filterCount = this.savedFilters.filter(\n (item) => item.checked === true\n ).length;\n }\n }\n } else {\n const newFilter: IDataFilter = {\n name: this.selectedFilterValue,\n type: this.selectedFilterType,\n condition: this.selectedCondition,\n value: this.inputValue,\n checked: true,\n };\n\n if (this.editIndex !== null) {\n const isDuplicate = this.savedFilters.some(\n (filter, index) =>\n filter.name === newFilter.name &&\n filter.condition === newFilter.condition &&\n index !== this.editIndex\n );\n\n if (isDuplicate) {\n return;\n }\n this.savedFilters[this.editIndex] = newFilter;\n this.editIndex = null;\n } else {\n if (\n this.savedFilters.some(\n (filter) =>\n filter.name === newFilter.name &&\n filter.condition === newFilter.condition\n )\n ) {\n return;\n }\n this.savedFilters.push(newFilter);\n this.filterCount = this.savedFilters.filter(\n (item) => item.checked === true\n ).length;\n }\n }\n\n this.clearOperationSection();\n this.checkFilterButton();\n }\n\n toggleCheckbox(index: number) {\n this.savedFilters[index].checked = !this.savedFilters[index].checked;\n this.checkAll = this.savedFilters.every((item) => item.checked);\n this.filterCount = this.savedFilters.filter(\n (item) => item.checked === true\n ).length;\n }\n\n deleteFilter(index: number) {\n this.savedFilters.splice(index, 1);\n this.checkDuplicateFilter();\n this.checkFilterButton();\n this.filterCount = this.savedFilters.filter(\n (item) => item.checked === true\n ).length;\n if (this.savedFilters.length === 0) {\n this.checkAll = false;\n }\n }\n\n editFilter(index: number) {\n const filter = this.savedFilters[index];\n this.selectedFilterType = filter.type;\n this.selectedFilterValue = filter.name;\n this.onFilterNameChange(this.selectedFilterValue);\n this.selectedCondition = filter.condition;\n this.inputValue = filter.value;\n this.editIndex = index;\n }\n\n applyFilters() {\n this.selectedFilters = this.savedFilters.filter((filter) => filter.checked);\n this.filtersApplied.emit(this.selectedFilters);\n this.filtersApplied.emit(this.storageKey);\n }\n\n toggleShowMore() {\n this.showAllFilters = !this.showAllFilters;\n }\n\n get visibleFilters() {\n return this.showAllFilters\n ? this.savedFilters\n : this.savedFilters.slice(0, this.maxFilterLength);\n }\n\n clearOperationSection() {\n this.selectedFilterValue = '';\n this.selectedCondition = '';\n this.inputValue = '';\n }\n\n checkFilterButton() {\n this.disableApplyFilterBtn = this.savedFilters.length === 0;\n }\n\n toggleSelectAll(): void {\n this.checkAll = !this.checkAll;\n this.savedFilters.forEach((filter) => (filter.checked = this.checkAll));\n this.filterCount = this.savedFilters.filter(\n (item) => item.checked === true\n ).length;\n }\n\n checkDuplicateFilter(): void {\n if (this.editIndex !== null) {\n const exists = this.savedFilters.some(\n (filter, index) =>\n filter.name === this.selectedFilterValue &&\n filter.condition === this.selectedCondition &&\n index !== this.editIndex\n );\n this.disableAddFilterBtn = exists;\n this.isDuplicateFilter = exists;\n this.duplicateMessage = exists\n ? 'This entry is a duplicate and cannot be added.'\n : '';\n } else {\n const exists = this.savedFilters.some(\n (filter) =>\n filter.name === this.selectedFilterValue &&\n filter.condition === this.selectedCondition\n );\n this.disableAddFilterBtn = exists;\n this.isDuplicateFilter = exists;\n this.duplicateMessage = exists\n ? 'This entry is a duplicate and cannot be added.'\n : '';\n }\n }\n}\n","<section\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n>\n <div class=\"top\">\n <h3 [style.color]=\"tertiaryColor\" [style.font-size]=\"'14px'\">\n Filters\n <span [style.color]=\"secondaryColor\"\n ><sup>({{ filterCount }})</sup></span\n >\n </h3>\n <button\n [style.color]=\"secondaryColor\"\n [style.background-color]=\"bgColor\"\n [style.border]=\"'none'\"\n [style.cursor]=\"'pointer'\"\n [style.font-size]=\"'12px'\"\n (click)=\"resetFilters()\"\n >\n Reset\n </button>\n </div>\n <hr />\n\n <!-- Saved Filters Section -->\n <div class=\"center\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Saved Filters</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n ></verben-svg>\n </div>\n <div class=\"selectAllWrapper\" *ngIf=\"savedFilters.length\">\n <input\n type=\"checkbox\"\n [checked]=\"checkAll\"\n (change)=\"toggleSelectAll()\"\n />\n <p [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">Select All</p>\n </div>\n <div\n *ngFor=\"let filter of visibleFilters; let i = index\"\n class=\"centerInnerWrapper\"\n >\n <div class=\"checkboxWrapper\">\n <span\n ><input\n type=\"checkbox\"\n [checked]=\"filter.checked\"\n (click)=\"toggleCheckbox(i)\"\n /></span>\n <p\n [style.font-size]=\"'13px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ filter.name }} {{ filter.condition }} {{ filter.value}}\n </p>\n </div>\n <div class=\"iconWrapper\">\n <verben-svg\n icon=\"pencil\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-border-focus)\"\n fill=\"var(--vbn-color-surface)\"\n (click)=\"editFilter(i)\"\n ></verben-svg>\n <verben-svg\n icon=\"trash\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-error)\"\n (click)=\"deleteFilter(i)\"\n ></verben-svg>\n </div>\n </div>\n\n <div\n class=\"moreWrapper\"\n *ngIf=\"savedFilters.length > maxFilterLength\"\n (click)=\"toggleShowMore()\"\n >\n <p\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ showAllFilters ? \"Show less\" : \"Show more\" }}\n </p>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"var(--vbn-color-text)\"\n stroke=\"var(--vbn-color-text)\"\n ></verben-svg>\n </div>\n </div>\n <hr />\n\n <!-- Operation Section -->\n <div class=\"bottom\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Operation</h3>\n <div [ngStyle]=\"{'position':'relative'}\"> \n \n <verben-tooltip \n [tooltipContent]=\"tooltipTemplate\"\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n width=\"200px\" \n [top]=\"'20px'\" \n [right]=\"'0px'\" \n >\n <verben-svg \n icon=\"info\" \n [width]=\"15\" \n [height]=\"15\" \n *ngIf=\"isDuplicateFilter\"\n fill=\"var(--vbn-color-error)\"\n >\n </verben-svg>\n </verben-tooltip>\n \n <ng-template #tooltipTemplate>\n {{duplicateMessage}}\n </ng-template>\n <!-- <verben-tooltip\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [padding]=\"'10px'\"\n [borderRadius]=\"'8px'\"\n [top]=\"'20px'\" \n [right]=\"'0px'\" \n width=\"250px\" \n #tooltip \n *ngIf=\"tooltip\"\n >\n <h3>{{duplicateMessage}}</h3>\n </verben-tooltip> -->\n </div>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n *ngIf=\"!isDuplicateFilter\"\n ></verben-svg>\n </div>\n\n <div class=\"inputsWrapper\">\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n [options]=\"filterArray\"\n [(ngModel)]=\"selectedFilterValue\"\n (ngModelChange)=\"onFilterNameChange(selectedFilterValue)\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n placeholder=\"Select value\"\n [options]=\"conditionOptions\"\n (onChange)=\"checkDuplicateFilter()\"\n [(ngModel)]=\"selectedCondition\"\n >\n </verben-drop-down>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Date'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"80px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [type]=\"'date'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Credit' || selectedFilterType === 'Integer'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input integer\"\n [showBorder]=\"true\"\n\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n\n appValidate=\"integer\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Decimal'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input a decimal\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"decimal\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType !== 'Credit' && selectedFilterType !== 'Date' && selectedFilterType !== 'Integer' && selectedFilterType !== 'Decimal'\"\n border=\"1px solid var(--vbn-color-border)\"\n placeHolder=\"input value\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n </div>\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.border-radius]=\"borderRadius\"\n [style.background-color]=\"'transparent'\"\n [style.color]=\"secondaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [disabled]=\"disableAddFilterBtn\"\n [ngClass]=\"{\n disablebtn: disableAddFilterBtn,\n enableBtn: !disableAddFilterBtn\n }\"\n (click)=\"addFilter()\"\n >\n + Add\n </button>\n </div>\n <hr />\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\"\n (click)=\"applyFilters()\"\n [disabled]=\"disableApplyFilterBtn\"\n [ngClass]=\"{\n disablebtn: disableApplyFilterBtn,\n enableBtn: !disableApplyFilterBtn\n }\"\n >\n Filter\n </button>\n </div>\n\n\n </div>\n\n</section>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableFilterComponent } from './table-filter.component';\nimport { FormsModule } from '@angular/forms';\nimport { DropDownModule } from 'verben-ng-ui/src/lib/components/drop-down';\nimport { VerbenaInputModule } from 'verben-ng-ui/src/lib/verbena-input';\nimport { TooltipModule } from 'verben-ng-ui/src/lib/components/tooltip';\nimport { ValidationModule } from 'verben-ng-ui/src/lib/validate';\nimport { SvgModule } from 'verben-ng-ui/src/lib/components/svg';\n\n@NgModule({\n declarations: [TableFilterComponent],\n imports: [\n CommonModule,\n FormsModule,\n DropDownModule,\n VerbenaInputModule,\n ValidationModule,\n TooltipModule,\n SvgModule,\n ],\n exports: [TableFilterComponent],\n})\nexport class TableFilterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verben-ng-ui-src-lib-components-table-filter.mjs","sources":["../../../projects/verben-ng-ui/src/lib/components/table-filter/table-filter.component.ts","../../../projects/verben-ng-ui/src/lib/components/table-filter/table-filter.component.html","../../../projects/verben-ng-ui/src/lib/components/table-filter/table-filter.module.ts","../../../projects/verben-ng-ui/src/lib/components/table-filter/verben-ng-ui-src-lib-components-table-filter.ts"],"sourcesContent":["import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core';\nimport { DataFilterType, IDataFilter } from 'verben-ng-ui/src/lib/models';\nimport { Config } from 'verben-ng-ui/src/lib/models';\n\n@Component({\n selector: 'verben-table-filter',\n templateUrl: './table-filter.component.html',\n styleUrls: ['./table-filter.component.css'],\n})\nexport class TableFilterComponent implements OnInit {\n @Input() filterOptions: IDataFilter[] = [];\n @Input() pd?: string;\n @Input() mg?: string;\n @Input() height?: string;\n @Input() width?: string;\n @Input() bgColor?: string;\n @Input() boxShadow?: string;\n @Input() textColor?: string;\n @Input() primaryColor?: string;\n @Input() secondaryColor?: string;\n @Input() tertiaryColor?: string;\n @Input() border?: string;\n @Input() borderRadius?: string;\n @Input() selectWidth?: string;\n @Input() maxFilterLength: number = 3;\n @Input() savedFilters: IDataFilter[] = [];\n @Input() tooltip: boolean = false;\n @Input() saveCallback?: (items: IDataFilter[]) => Promise<void>;\n @Output() filtersApplied = new EventEmitter<any>();\n @Output() resetSortData = new EventEmitter<any>();\n filterArray: string[] = [];\n selectedFilterValue: string = '';\n selectedFilterType: DataFilterType | null = null;\n conditionOptions: string[] = [];\n selectedCondition: string | undefined = '';\n inputValue?: string | number;\n selectedFilters: IDataFilter[] = [];\n showAllFilters: boolean = false;\n editIndex: number | null = null;\n checkAll: boolean = false;\n isDuplicateFilter: boolean = false;\n disableAddFilterBtn: boolean = false;\n //disableApplyFilterBtn: boolean = true;\n duplicateMessage?: string = '';\n configInstance: Config;\n storageKey: string = 'savedFilters';\n filterCount: number = 0;\n\n constructor() {\n this.configInstance = new Config();\n }\n\n ngOnInit(): void {\n this.filterArray = this.filterOptions.map((item) => item.name);\n }\n\n onFilterNameChange(selectedFilterValue: string) {\n const selectedFilter = this.filterOptions.find(\n (option) => option.name === selectedFilterValue,\n );\n\n if (selectedFilter) {\n this.selectedFilterType = selectedFilter.type;\n this.conditionOptions =\n this.configInstance.getConditionOptions(this.selectedFilterType) || [];\n this.selectedCondition = '';\n }\n }\n\n resetFilters() {\n this.selectedFilterType = null;\n this.selectedCondition = '';\n this.inputValue = '';\n // this.savedFilters = [];\n this.savedFilters.forEach((x) => {\n x.checked = false;\n });\n this.editIndex = null;\n this.checkAll = false;\n this.isDuplicateFilter = false;\n // this.disableApplyFilterBtn = true;\n this.duplicateMessage = '';\n localStorage.removeItem(this.storageKey);\n this.filterCount = this.savedFilters.filter(\n (item) => item.checked === true,\n ).length;\n this.resetSortData.emit();\n this.applyFilters(true);\n }\n\n addFilter() {\n if (\n !this.selectedFilterValue ||\n !this.selectedCondition ||\n !this.inputValue\n ) {\n return;\n }\n\n if (this.editIndex === null && this.isDuplicateFilter) {\n return;\n }\n // 00:00 23:59\n if (\n (this.selectedFilterType as DataFilterType) == DataFilterType.Date &&\n this.selectedCondition == 'On'\n ) {\n const leftFilter: IDataFilter = {\n name: this.selectedFilterValue,\n type: this.selectedFilterType || DataFilterType.String,\n condition: 'After',\n value: (this.inputValue as string).concat(' 00:00'),\n checked: true,\n };\n\n const rightFilter: IDataFilter = {\n name: this.selectedFilterValue,\n type: this.selectedFilterType || DataFilterType.String,\n condition: 'Before',\n value: (this.inputValue as string).concat(' 23:59'),\n checked: true,\n };\n\n const filters = [leftFilter, rightFilter];\n\n for (let newFilter of filters) {\n if (this.editIndex !== null) {\n const isDuplicate = this.savedFilters.some(\n (filter, index) =>\n filter.name === newFilter.name &&\n filter.condition === newFilter.condition &&\n index !== this.editIndex,\n );\n\n if (isDuplicate) {\n continue;\n }\n this.savedFilters[this.editIndex] = newFilter;\n this.editIndex = null;\n } else {\n if (\n this.savedFilters.some(\n (filter) =>\n filter.name === newFilter.name &&\n filter.condition === newFilter.condition,\n )\n ) {\n continue;\n }\n this.savedFilters.push(newFilter);\n this.filterCount = this.savedFilters.filter(\n (item) => item.checked === true,\n ).length;\n }\n }\n } else {\n const newFilter: IDataFilter = {\n name: this.selectedFilterValue,\n type: this.selectedFilterType || DataFilterType.String,\n condition: this.selectedCondition,\n value: this.inputValue,\n checked: true,\n };\n\n if (this.editIndex !== null) {\n const isDuplicate = this.savedFilters.some(\n (filter, index) =>\n filter.name === newFilter.name &&\n filter.condition === newFilter.condition &&\n index !== this.editIndex,\n );\n\n if (isDuplicate) {\n return;\n }\n this.savedFilters[this.editIndex] = newFilter;\n this.editIndex = null;\n } else {\n if (\n this.savedFilters.some(\n (filter) =>\n filter.name === newFilter.name &&\n filter.condition === newFilter.condition,\n )\n ) {\n return;\n }\n this.savedFilters.push(newFilter);\n this.filterCount = this.savedFilters.filter(\n (item) => item.checked === true,\n ).length;\n }\n }\n\n this.clearOperationSection();\n // this.checkFilterButton();\n }\n\n toggleCheckbox(index: number) {\n this.savedFilters[index].checked = !this.savedFilters[index].checked;\n this.checkAll = this.savedFilters.every((item) => item.checked);\n this.filterCount = this.savedFilters.filter(\n (item) => item.checked === true,\n ).length;\n }\n\n deleteFilter(index: number) {\n this.savedFilters.splice(index, 1);\n this.checkDuplicateFilter();\n // this.checkFilterButton();\n this.filterCount = this.savedFilters.filter(\n (item) => item.checked === true,\n ).length;\n if (this.savedFilters.length === 0) {\n this.checkAll = false;\n }\n if (this.saveCallback) {\n this.saveCallback(this.savedFilters);\n }\n }\n\n editFilter(index: number) {\n const filter = this.savedFilters[index];\n this.selectedFilterType = filter.type;\n this.selectedFilterValue = filter.name;\n this.onFilterNameChange(this.selectedFilterValue);\n this.selectedCondition = filter.condition;\n this.inputValue = filter.value;\n this.editIndex = index;\n }\n\n applyFilters(skipSave: boolean = false) {\n this.selectedFilters = this.savedFilters.filter((filter) => filter.checked);\n if (this.saveCallback && !skipSave) {\n this.saveCallback(this.savedFilters);\n }\n this.filtersApplied.emit(this.selectedFilters);\n this.filtersApplied.emit(this.storageKey);\n }\n\n toggleShowMore() {\n this.showAllFilters = !this.showAllFilters;\n }\n\n get visibleFilters() {\n return this.showAllFilters\n ? this.savedFilters\n : this.savedFilters.slice(0, this.maxFilterLength);\n }\n\n clearOperationSection() {\n this.selectedFilterValue = '';\n this.selectedCondition = '';\n this.inputValue = '';\n }\n\n // checkFilterButton() {\n // this.disableApplyFilterBtn = this.savedFilters.length === 0;\n // }\n\n toggleSelectAll(): void {\n this.checkAll = !this.checkAll;\n this.savedFilters.forEach((filter) => (filter.checked = this.checkAll));\n this.filterCount = this.savedFilters.filter(\n (item) => item.checked === true,\n ).length;\n }\n\n checkDuplicateFilter(): void {\n if (this.editIndex !== null) {\n const exists = this.savedFilters.some(\n (filter, index) =>\n filter.name === this.selectedFilterValue &&\n filter.condition === this.selectedCondition &&\n index !== this.editIndex,\n );\n this.disableAddFilterBtn = exists;\n this.isDuplicateFilter = exists;\n this.duplicateMessage = exists\n ? 'This entry is a duplicate and cannot be added.'\n : '';\n } else {\n const exists = this.savedFilters.some(\n (filter) =>\n filter.name === this.selectedFilterValue &&\n filter.condition === this.selectedCondition,\n );\n this.disableAddFilterBtn = exists;\n this.isDuplicateFilter = exists;\n this.duplicateMessage = exists\n ? 'This entry is a duplicate and cannot be added.'\n : '';\n }\n }\n}\n","<section\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n>\n <div class=\"top\">\n <h3 [style.color]=\"tertiaryColor\" [style.font-size]=\"'14px'\">\n Filters\n <span [style.color]=\"secondaryColor\"\n ><sup>({{ filterCount }})</sup></span\n >\n </h3>\n <button\n [style.color]=\"secondaryColor\"\n [style.background-color]=\"bgColor\"\n [style.border]=\"'none'\"\n [style.cursor]=\"'pointer'\"\n [style.font-size]=\"'12px'\"\n (click)=\"resetFilters()\"\n >\n Reset\n </button>\n </div>\n <hr />\n\n <!-- Saved Filters Section -->\n <div class=\"center\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Saved Filters</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n ></verben-svg>\n </div>\n <div class=\"selectAllWrapper\" *ngIf=\"savedFilters.length\">\n <input\n type=\"checkbox\"\n [checked]=\"checkAll\"\n (change)=\"toggleSelectAll()\"\n />\n <p [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">Select All</p>\n </div>\n <div\n *ngFor=\"let filter of visibleFilters; let i = index\"\n class=\"centerInnerWrapper\"\n >\n <div class=\"checkboxWrapper\">\n <span\n ><input\n type=\"checkbox\"\n [checked]=\"filter.checked\"\n (click)=\"toggleCheckbox(i)\"\n /></span>\n <p\n [style.font-size]=\"'13px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ filter.name }} {{ filter.condition }} {{ filter.value }}\n </p>\n </div>\n <div class=\"iconWrapper\">\n <verben-svg\n icon=\"pencil\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-border-focus)\"\n fill=\"var(--vbn-color-surface)\"\n (click)=\"editFilter(i)\"\n ></verben-svg>\n <verben-svg\n icon=\"trash\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-error)\"\n (click)=\"deleteFilter(i)\"\n ></verben-svg>\n </div>\n </div>\n\n <div\n class=\"moreWrapper\"\n *ngIf=\"savedFilters.length > maxFilterLength\"\n (click)=\"toggleShowMore()\"\n >\n <p\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ showAllFilters ? \"Show less\" : \"Show more\" }}\n </p>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"var(--vbn-color-text)\"\n stroke=\"var(--vbn-color-text)\"\n ></verben-svg>\n </div>\n </div>\n <hr />\n\n <!-- Operation Section -->\n <div class=\"bottom\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Operation</h3>\n <div [ngStyle]=\"{ position: 'relative' }\">\n <verben-tooltip\n [tooltipContent]=\"tooltipTemplate\"\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n width=\"200px\"\n [top]=\"'20px'\"\n [right]=\"'0px'\"\n >\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n *ngIf=\"isDuplicateFilter\"\n fill=\"var(--vbn-color-error)\"\n >\n </verben-svg>\n </verben-tooltip>\n\n <ng-template #tooltipTemplate>\n {{ duplicateMessage }}\n </ng-template>\n <!-- <verben-tooltip\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [padding]=\"'10px'\"\n [borderRadius]=\"'8px'\"\n [top]=\"'20px'\" \n [right]=\"'0px'\" \n width=\"250px\" \n #tooltip \n *ngIf=\"tooltip\"\n >\n <h3>{{duplicateMessage}}</h3>\n </verben-tooltip> -->\n </div>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n *ngIf=\"!isDuplicateFilter\"\n ></verben-svg>\n </div>\n\n <div class=\"inputsWrapper\">\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n [options]=\"filterArray\"\n [(ngModel)]=\"selectedFilterValue\"\n (ngModelChange)=\"onFilterNameChange(selectedFilterValue)\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n placeholder=\"Select value\"\n [options]=\"conditionOptions\"\n (onChange)=\"checkDuplicateFilter()\"\n [(ngModel)]=\"selectedCondition\"\n >\n </verben-drop-down>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Date'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"80px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [type]=\"'date'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"\n selectedFilterType === 'Credit' || selectedFilterType === 'Integer'\n \"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input integer\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"integer\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Decimal'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input a decimal\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"decimal\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Number'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input number\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n type=\"number\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"number\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"\n selectedFilterType !== 'Credit' &&\n selectedFilterType !== 'Date' &&\n selectedFilterType !== 'Integer' &&\n selectedFilterType !== 'Decimal' &&\n selectedFilterType !== 'Number'\n \"\n border=\"1px solid var(--vbn-color-border)\"\n placeHolder=\"input value\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n </div>\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.border-radius]=\"borderRadius\"\n [style.background-color]=\"'transparent'\"\n [style.color]=\"secondaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [disabled]=\"disableAddFilterBtn\"\n [ngClass]=\"{\n disablebtn: disableAddFilterBtn,\n enableBtn: !disableAddFilterBtn,\n }\"\n (click)=\"addFilter()\"\n >\n + Add\n </button>\n </div>\n <hr />\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\"\n (click)=\"applyFilters()\"\n >\n Confirm\n </button>\n </div>\n </div>\n</section>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableFilterComponent } from './table-filter.component';\nimport { FormsModule } from '@angular/forms';\nimport { DropDownModule } from 'verben-ng-ui/src/lib/components/drop-down';\nimport { VerbenaInputModule } from 'verben-ng-ui/src/lib/verbena-input';\nimport { TooltipModule } from 'verben-ng-ui/src/lib/components/tooltip';\nimport { ValidationModule } from 'verben-ng-ui/src/lib/validate';\nimport { SvgModule } from 'verben-ng-ui/src/lib/components/svg';\n\n@NgModule({\n declarations: [TableFilterComponent],\n imports: [\n CommonModule,\n FormsModule,\n DropDownModule,\n VerbenaInputModule,\n ValidationModule,\n TooltipModule,\n SvgModule,\n ],\n exports: [TableFilterComponent],\n})\nexport class TableFilterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ class VisibleColumnComponent {
27
27
  borderRadius;
28
28
  selectWidth;
29
29
  closeColumn;
30
+ saveCallback;
30
31
  columnsUpdated = new EventEmitter();
31
32
  resetFilter = new EventEmitter();
32
33
  originalColumnOrder = [];
@@ -56,6 +57,9 @@ class VisibleColumnComponent {
56
57
  column.checked = this.visibleColumns[index];
57
58
  });
58
59
  const selectedColumns = this.columns.filter((column) => column.checked);
60
+ if (this.saveCallback) {
61
+ this.saveCallback(selectedColumns);
62
+ }
59
63
  this.columnsUpdated.emit(selectedColumns);
60
64
  }
61
65
  toggleShowMore() {
@@ -94,7 +98,7 @@ class VisibleColumnComponent {
94
98
  ];
95
99
  }
96
100
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VisibleColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
97
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VisibleColumnComponent, selector: "verben-visible-column", inputs: { columns: "columns", items: "items", enableDragAndDrop: "enableDragAndDrop", displayedColumns: "displayedColumns", showMore: "showMore", pd: "pd", mg: "mg", height: "height", width: "width", bgColor: "bgColor", boxShadow: "boxShadow", textColor: "textColor", primaryColor: "primaryColor", secondaryColor: "secondaryColor", tertiaryColor: "tertiaryColor", border: "border", borderRadius: "borderRadius", selectWidth: "selectWidth", closeColumn: "closeColumn" }, outputs: { columnsUpdated: "columnsUpdated", resetFilter: "resetFilter" }, ngImport: i0, template: "<div\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n class=\"column-control\"\n>\n <div class=\"visible-column-header flex justify-between text-sm\">\n <span class=\"column-title\">\n Column <sup>[{{ getSelectedColumnCount() }}]</sup>\n </span>\n <span class=\"column-reset\" (click)=\"resetColumns()\">Reset</span>\n </div>\n <hr />\n\n <!-- Select All Checkbox -->\n <div class=\"flex items-center gap\" [style.padding]=\"'4px 10px'\">\n <label [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">\n <input type=\"checkbox\" [checked]=\"selectAll\" (change)=\"toggleSelectAll()\" />\n Select All\n </label>\n </div>\n\n <div class=\"center\">\n <ul *ngFor=\"let column of columns; let i = index\" class=\"column-options-container\">\n <li\n [attr.draggable]=\"enableDragAndDrop\"\n (dragstart)=\"onDragStart(i, $event)\"\n (dragover)=\"onDragOver($event)\"\n (drop)=\"onDrop(i, $event)\"\n *ngIf=\"i < displayedColumns\"\n [style.font-size]=\"'14px'\"\n [style.margin-top]=\"'14px'\"\n class=\"flex gap-sm items-center\"\n >\n <verben-svg *ngIf=\"enableDragAndDrop\" fill=\"var(--vbn-color-text)\" class=\"svg\" icon=\"square-dot\"></verben-svg>\n <label class=\"flex gap-md items-center\">\n <input type=\"checkbox\" [(ngModel)]=\"visibleColumns[i]\" (ngModelChange)=\"updateSelectAllStatus()\" />\n {{ column.name }}\n </label>\n </li>\n </ul>\n\n <!-- Show More / Show Less -->\n <div *ngIf=\"displayedColumns <= columns.length\" class=\"cursor-pointer\" [style.padding]=\"'20px 10px 0px 10px'\">\n <span (click)=\"toggleShowMore()\">\n {{ displayedColumns === columns.length ? \"Show Less\" : \"Show More\" }}\n </span>\n </div>\n </div>\n\n <hr />\n\n <!-- Save Button -->\n <div class=\"btn-wrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\" \n [disabled]=\"getSelectedColumnCount() === 0\"\n [ngClass]=\"{\n disabledBtn: getSelectedColumnCount() === 0,\n enableBtn: getSelectedColumnCount() !== 0\n }\"\n (click)=\"saveColumnVisibility()\"\n >\n Save\n </button>\n </div>\n</div>\n", styles: ["hr{border:1px solid var(--vbn-color-border);margin:.8rem 0rem}.flex{display:flex}.justify-between{justify-content:space-between}.items-center{align-items:center}.font-semibold{font-weight:600}.center{overflow-y:auto;max-height:24rem}.font-normal{font-weight:400}.text-sm{font-size:13px}.gap{gap:10px}.gap-sm{gap:2px}.gap-md{gap:6px}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.visible-column-header{margin-bottom:10px;padding:10px 0}.column-title{font-weight:700;font-size:14px}.column-title sup{color:var(--vbn-color-border-focus);font-weight:600}.column-reset{color:var(--vbn-color-border-focus);font-size:13px;font-weight:500;cursor:pointer}.btn-wrapper{display:flex;justify-content:end}.disabledBtn{cursor:not-allowed}.enabledBtn{cursor:pointer}.show-more{font-size:12px;cursor:pointer;padding:16px 0;display:flex;align-items:center;gap:2px;color:var(--vbn-color-text-muted)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
101
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: VisibleColumnComponent, selector: "verben-visible-column", inputs: { columns: "columns", items: "items", enableDragAndDrop: "enableDragAndDrop", displayedColumns: "displayedColumns", showMore: "showMore", pd: "pd", mg: "mg", height: "height", width: "width", bgColor: "bgColor", boxShadow: "boxShadow", textColor: "textColor", primaryColor: "primaryColor", secondaryColor: "secondaryColor", tertiaryColor: "tertiaryColor", border: "border", borderRadius: "borderRadius", selectWidth: "selectWidth", closeColumn: "closeColumn", saveCallback: "saveCallback" }, outputs: { columnsUpdated: "columnsUpdated", resetFilter: "resetFilter" }, ngImport: i0, template: "<div\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n class=\"column-control\"\n>\n <div class=\"visible-column-header flex justify-between text-sm\">\n <span class=\"column-title\">\n Column <sup>[{{ getSelectedColumnCount() }}]</sup>\n </span>\n <span class=\"column-reset\" (click)=\"resetColumns()\">Reset</span>\n </div>\n <hr />\n\n <!-- Select All Checkbox -->\n <div class=\"flex items-center gap\" [style.padding]=\"'4px 10px'\">\n <label [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">\n <input type=\"checkbox\" [checked]=\"selectAll\" (change)=\"toggleSelectAll()\" />\n Select All\n </label>\n </div>\n\n <div class=\"center\">\n <ul *ngFor=\"let column of columns; let i = index\" class=\"column-options-container\">\n <li\n [attr.draggable]=\"enableDragAndDrop\"\n (dragstart)=\"onDragStart(i, $event)\"\n (dragover)=\"onDragOver($event)\"\n (drop)=\"onDrop(i, $event)\"\n *ngIf=\"i < displayedColumns\"\n [style.font-size]=\"'14px'\"\n [style.margin-top]=\"'14px'\"\n class=\"flex gap-sm items-center\"\n >\n <verben-svg *ngIf=\"enableDragAndDrop\" fill=\"var(--vbn-color-text)\" class=\"svg\" icon=\"square-dot\"></verben-svg>\n <label class=\"flex gap-md items-center\">\n <input type=\"checkbox\" [(ngModel)]=\"visibleColumns[i]\" (ngModelChange)=\"updateSelectAllStatus()\" />\n {{ column.name }}\n </label>\n </li>\n </ul>\n\n <!-- Show More / Show Less -->\n <div *ngIf=\"displayedColumns <= columns.length\" class=\"cursor-pointer\" [style.padding]=\"'20px 10px 0px 10px'\">\n <span (click)=\"toggleShowMore()\">\n {{ displayedColumns === columns.length ? \"Show Less\" : \"Show More\" }}\n </span>\n </div>\n </div>\n\n <hr />\n\n <!-- Save Button -->\n <div class=\"btn-wrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\" \n [disabled]=\"getSelectedColumnCount() === 0\"\n [ngClass]=\"{\n disabledBtn: getSelectedColumnCount() === 0,\n enableBtn: getSelectedColumnCount() !== 0\n }\"\n (click)=\"saveColumnVisibility()\"\n >\n Save\n </button>\n </div>\n</div>\n", styles: ["hr{border:1px solid var(--vbn-color-border);margin:.8rem 0rem}.flex{display:flex}.justify-between{justify-content:space-between}.items-center{align-items:center}.font-semibold{font-weight:600}.center{overflow-y:auto;max-height:24rem}.font-normal{font-weight:400}.text-sm{font-size:13px}.gap{gap:10px}.gap-sm{gap:2px}.gap-md{gap:6px}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.visible-column-header{margin-bottom:10px;padding:10px 0}.column-title{font-weight:700;font-size:14px}.column-title sup{color:var(--vbn-color-border-focus);font-weight:600}.column-reset{color:var(--vbn-color-border-focus);font-size:13px;font-weight:500;cursor:pointer}.btn-wrapper{display:flex;justify-content:end}.disabledBtn{cursor:not-allowed}.enabledBtn{cursor:pointer}.show-more{font-size:12px;cursor:pointer;padding:16px 0;display:flex;align-items:center;gap:2px;color:var(--vbn-color-text-muted)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
98
102
  }
99
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: VisibleColumnComponent, decorators: [{
100
104
  type: Component,
@@ -137,6 +141,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
137
141
  type: Input
138
142
  }], closeColumn: [{
139
143
  type: Input
144
+ }], saveCallback: [{
145
+ type: Input
140
146
  }], columnsUpdated: [{
141
147
  type: Output
142
148
  }], resetFilter: [{
@@ -1 +1 @@
1
- {"version":3,"file":"verben-ng-ui-src-lib-components-visible-column.mjs","sources":["../../../projects/verben-ng-ui/src/lib/components/visible-column/visible-column.component.ts","../../../projects/verben-ng-ui/src/lib/components/visible-column/visible-column.component.html","../../../projects/verben-ng-ui/src/lib/components/visible-column/visible-column.module.ts","../../../projects/verben-ng-ui/src/lib/components/visible-column/verben-ng-ui-src-lib-components-visible-column.ts"],"sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { IDataFilter } from 'verben-ng-ui/src/lib/models';\n\ninterface Item {\n [key: string]: any;\n}\n\n@Component({\n selector: 'verben-visible-column',\n templateUrl: './visible-column.component.html',\n styleUrls: ['./visible-column.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VisibleColumnComponent {\n @Input() columns: IDataFilter[] = [];\n @Input() items: Item[] = [];\n @Input() enableDragAndDrop: boolean = true;\n @Input() displayedColumns: number = 5;\n @Input() showMore: boolean = false;\n @Input() pd?: string;\n @Input() mg?: string;\n @Input() height?: string;\n @Input() width?: string;\n @Input() bgColor?: string;\n @Input() boxShadow?: string;\n @Input() textColor?: string;\n @Input() primaryColor?: string;\n @Input() secondaryColor?: string;\n @Input() tertiaryColor?: string;\n @Input() border?: string;\n @Input() borderRadius?: string;\n @Input() selectWidth?: string;\n @Input() closeColumn?: boolean;\n @Output() columnsUpdated = new EventEmitter<IDataFilter[]>();\n @Output() resetFilter = new EventEmitter();\n originalColumnOrder: IDataFilter[] = [];\n visibleColumns: boolean[] = [];\n draggedIndex: number | null = null;\n selectAll: boolean = false;\n\n ngOnInit() {\n this.originalColumnOrder = [...this.columns];\n this.initializeColumnVisibility();\n }\n\n private initializeColumnVisibility() {\n this.visibleColumns = this.columns.map((column) => column.checked);\n this.updateSelectAllStatus();\n }\n\n resetColumns() {\n this.columns = JSON.parse(JSON.stringify(this.originalColumnOrder)); // Ensure it's a deep copy\n this.initializeColumnVisibility();\n this.selectAll = false; // Reset select all\n this.updateSelectAllStatus();\n this.resetFilter.emit();\n }\n\n getSelectedColumnCount(): number {\n return this.visibleColumns.filter((isVisible) => isVisible).length;\n }\n\n saveColumnVisibility() {\n this.columns.forEach((column, index) => {\n column.checked = this.visibleColumns[index];\n });\n\n const selectedColumns = this.columns.filter((column) => column.checked);\n this.columnsUpdated.emit(selectedColumns);\n }\n\n toggleShowMore() {\n this.showMore = !this.showMore;\n this.displayedColumns = this.showMore ? this.columns.length : 5;\n }\n\n toggleSelectAll() {\n this.selectAll = !this.selectAll;\n this.visibleColumns = this.visibleColumns.map(() => this.selectAll);\n }\n\n updateSelectAllStatus() {\n this.selectAll = this.visibleColumns.every((isVisible) => isVisible);\n }\n\n onDragStart(index: number, event: DragEvent) {\n this.draggedIndex = index;\n event.dataTransfer?.setData('text/plain', String(index));\n }\n\n onDragOver(event: DragEvent) {\n event.preventDefault();\n }\n\n onDrop(index: number, event: DragEvent) {\n event.preventDefault();\n if (this.draggedIndex !== null && this.draggedIndex !== index) {\n this.swapColumns(this.draggedIndex, index);\n }\n this.draggedIndex = null;\n }\n\n private swapColumns(fromIndex: number, toIndex: number) {\n [this.columns[fromIndex], this.columns[toIndex]] = [\n this.columns[toIndex],\n this.columns[fromIndex],\n ];\n [this.visibleColumns[fromIndex], this.visibleColumns[toIndex]] = [\n this.visibleColumns[toIndex],\n this.visibleColumns[fromIndex],\n ];\n }\n}\n","<div\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n class=\"column-control\"\n>\n <div class=\"visible-column-header flex justify-between text-sm\">\n <span class=\"column-title\">\n Column <sup>[{{ getSelectedColumnCount() }}]</sup>\n </span>\n <span class=\"column-reset\" (click)=\"resetColumns()\">Reset</span>\n </div>\n <hr />\n\n <!-- Select All Checkbox -->\n <div class=\"flex items-center gap\" [style.padding]=\"'4px 10px'\">\n <label [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">\n <input type=\"checkbox\" [checked]=\"selectAll\" (change)=\"toggleSelectAll()\" />\n Select All\n </label>\n </div>\n\n <div class=\"center\">\n <ul *ngFor=\"let column of columns; let i = index\" class=\"column-options-container\">\n <li\n [attr.draggable]=\"enableDragAndDrop\"\n (dragstart)=\"onDragStart(i, $event)\"\n (dragover)=\"onDragOver($event)\"\n (drop)=\"onDrop(i, $event)\"\n *ngIf=\"i < displayedColumns\"\n [style.font-size]=\"'14px'\"\n [style.margin-top]=\"'14px'\"\n class=\"flex gap-sm items-center\"\n >\n <verben-svg *ngIf=\"enableDragAndDrop\" fill=\"var(--vbn-color-text)\" class=\"svg\" icon=\"square-dot\"></verben-svg>\n <label class=\"flex gap-md items-center\">\n <input type=\"checkbox\" [(ngModel)]=\"visibleColumns[i]\" (ngModelChange)=\"updateSelectAllStatus()\" />\n {{ column.name }}\n </label>\n </li>\n </ul>\n\n <!-- Show More / Show Less -->\n <div *ngIf=\"displayedColumns <= columns.length\" class=\"cursor-pointer\" [style.padding]=\"'20px 10px 0px 10px'\">\n <span (click)=\"toggleShowMore()\">\n {{ displayedColumns === columns.length ? \"Show Less\" : \"Show More\" }}\n </span>\n </div>\n </div>\n\n <hr />\n\n <!-- Save Button -->\n <div class=\"btn-wrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\" \n [disabled]=\"getSelectedColumnCount() === 0\"\n [ngClass]=\"{\n disabledBtn: getSelectedColumnCount() === 0,\n enableBtn: getSelectedColumnCount() !== 0\n }\"\n (click)=\"saveColumnVisibility()\"\n >\n Save\n </button>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { VisibleColumnComponent } from './visible-column.component';\nimport { SvgModule } from 'verben-ng-ui/src/lib/components/svg';\n@NgModule({\n declarations: [VisibleColumnComponent],\n imports: [CommonModule, FormsModule, SvgModule],\n exports: [VisibleColumnComponent],\n})\nexport class VisibleColumnModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verben-ng-ui-src-lib-components-visible-column.mjs","sources":["../../../projects/verben-ng-ui/src/lib/components/visible-column/visible-column.component.ts","../../../projects/verben-ng-ui/src/lib/components/visible-column/visible-column.component.html","../../../projects/verben-ng-ui/src/lib/components/visible-column/visible-column.module.ts","../../../projects/verben-ng-ui/src/lib/components/visible-column/verben-ng-ui-src-lib-components-visible-column.ts"],"sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { IDataFilter } from 'verben-ng-ui/src/lib/models';\n\ninterface Item {\n [key: string]: any;\n}\n\n@Component({\n selector: 'verben-visible-column',\n templateUrl: './visible-column.component.html',\n styleUrls: ['./visible-column.component.css'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class VisibleColumnComponent {\n @Input() columns: IDataFilter[] = [];\n @Input() items: Item[] = [];\n @Input() enableDragAndDrop: boolean = true;\n @Input() displayedColumns: number = 5;\n @Input() showMore: boolean = false;\n @Input() pd?: string;\n @Input() mg?: string;\n @Input() height?: string;\n @Input() width?: string;\n @Input() bgColor?: string;\n @Input() boxShadow?: string;\n @Input() textColor?: string;\n @Input() primaryColor?: string;\n @Input() secondaryColor?: string;\n @Input() tertiaryColor?: string;\n @Input() border?: string;\n @Input() borderRadius?: string;\n @Input() selectWidth?: string;\n @Input() closeColumn?: boolean;\n @Input() saveCallback?: (items: IDataFilter[]) => Promise<void>;\n @Output() columnsUpdated = new EventEmitter<IDataFilter[]>();\n @Output() resetFilter = new EventEmitter();\n\n originalColumnOrder: IDataFilter[] = [];\n visibleColumns: boolean[] = [];\n draggedIndex: number | null = null;\n selectAll: boolean = false;\n\n ngOnInit() {\n this.originalColumnOrder = [...this.columns];\n this.initializeColumnVisibility();\n }\n\n private initializeColumnVisibility() {\n this.visibleColumns = this.columns.map((column) => column.checked);\n this.updateSelectAllStatus();\n }\n\n resetColumns() {\n this.columns = JSON.parse(JSON.stringify(this.originalColumnOrder)); // Ensure it's a deep copy\n this.initializeColumnVisibility();\n this.selectAll = false; // Reset select all\n this.updateSelectAllStatus();\n this.resetFilter.emit();\n }\n\n getSelectedColumnCount(): number {\n return this.visibleColumns.filter((isVisible) => isVisible).length;\n }\n\n saveColumnVisibility() {\n this.columns.forEach((column, index) => {\n column.checked = this.visibleColumns[index];\n });\n\n const selectedColumns = this.columns.filter((column) => column.checked);\n if (this.saveCallback) {\n this.saveCallback(selectedColumns);\n }\n this.columnsUpdated.emit(selectedColumns);\n }\n\n toggleShowMore() {\n this.showMore = !this.showMore;\n this.displayedColumns = this.showMore ? this.columns.length : 5;\n }\n\n toggleSelectAll() {\n this.selectAll = !this.selectAll;\n this.visibleColumns = this.visibleColumns.map(() => this.selectAll);\n }\n\n updateSelectAllStatus() {\n this.selectAll = this.visibleColumns.every((isVisible) => isVisible);\n }\n\n onDragStart(index: number, event: DragEvent) {\n this.draggedIndex = index;\n event.dataTransfer?.setData('text/plain', String(index));\n }\n\n onDragOver(event: DragEvent) {\n event.preventDefault();\n }\n\n onDrop(index: number, event: DragEvent) {\n event.preventDefault();\n if (this.draggedIndex !== null && this.draggedIndex !== index) {\n this.swapColumns(this.draggedIndex, index);\n }\n this.draggedIndex = null;\n }\n\n private swapColumns(fromIndex: number, toIndex: number) {\n [this.columns[fromIndex], this.columns[toIndex]] = [\n this.columns[toIndex],\n this.columns[fromIndex],\n ];\n [this.visibleColumns[fromIndex], this.visibleColumns[toIndex]] = [\n this.visibleColumns[toIndex],\n this.visibleColumns[fromIndex],\n ];\n }\n}\n","<div\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n class=\"column-control\"\n>\n <div class=\"visible-column-header flex justify-between text-sm\">\n <span class=\"column-title\">\n Column <sup>[{{ getSelectedColumnCount() }}]</sup>\n </span>\n <span class=\"column-reset\" (click)=\"resetColumns()\">Reset</span>\n </div>\n <hr />\n\n <!-- Select All Checkbox -->\n <div class=\"flex items-center gap\" [style.padding]=\"'4px 10px'\">\n <label [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">\n <input type=\"checkbox\" [checked]=\"selectAll\" (change)=\"toggleSelectAll()\" />\n Select All\n </label>\n </div>\n\n <div class=\"center\">\n <ul *ngFor=\"let column of columns; let i = index\" class=\"column-options-container\">\n <li\n [attr.draggable]=\"enableDragAndDrop\"\n (dragstart)=\"onDragStart(i, $event)\"\n (dragover)=\"onDragOver($event)\"\n (drop)=\"onDrop(i, $event)\"\n *ngIf=\"i < displayedColumns\"\n [style.font-size]=\"'14px'\"\n [style.margin-top]=\"'14px'\"\n class=\"flex gap-sm items-center\"\n >\n <verben-svg *ngIf=\"enableDragAndDrop\" fill=\"var(--vbn-color-text)\" class=\"svg\" icon=\"square-dot\"></verben-svg>\n <label class=\"flex gap-md items-center\">\n <input type=\"checkbox\" [(ngModel)]=\"visibleColumns[i]\" (ngModelChange)=\"updateSelectAllStatus()\" />\n {{ column.name }}\n </label>\n </li>\n </ul>\n\n <!-- Show More / Show Less -->\n <div *ngIf=\"displayedColumns <= columns.length\" class=\"cursor-pointer\" [style.padding]=\"'20px 10px 0px 10px'\">\n <span (click)=\"toggleShowMore()\">\n {{ displayedColumns === columns.length ? \"Show Less\" : \"Show More\" }}\n </span>\n </div>\n </div>\n\n <hr />\n\n <!-- Save Button -->\n <div class=\"btn-wrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\" \n [disabled]=\"getSelectedColumnCount() === 0\"\n [ngClass]=\"{\n disabledBtn: getSelectedColumnCount() === 0,\n enableBtn: getSelectedColumnCount() !== 0\n }\"\n (click)=\"saveColumnVisibility()\"\n >\n Save\n </button>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { VisibleColumnComponent } from './visible-column.component';\nimport { SvgModule } from 'verben-ng-ui/src/lib/components/svg';\n@NgModule({\n declarations: [VisibleColumnComponent],\n imports: [CommonModule, FormsModule, SvgModule],\n exports: [VisibleColumnComponent],\n})\nexport class VisibleColumnModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ var DataFilterType;
21
21
  DataFilterType["Date"] = "Date";
22
22
  DataFilterType["Bool"] = "Bool";
23
23
  DataFilterType["Number"] = "Number";
24
+ DataFilterType["Enum"] = "Enum";
24
25
  })(DataFilterType || (DataFilterType = {}));
25
26
 
26
27
  class Config {
@@ -29,6 +30,10 @@ class Config {
29
30
  type: DataFilterType.String,
30
31
  options: [ConditionalOptions.On, ConditionalOptions.NotEqual],
31
32
  },
33
+ {
34
+ type: DataFilterType.Enum,
35
+ options: [ConditionalOptions.On, ConditionalOptions.NotEqual],
36
+ },
32
37
  {
33
38
  type: DataFilterType.Integer,
34
39
  options: [
@@ -39,6 +44,16 @@ class Config {
39
44
  ConditionalOptions.GreaterThanAndEqual,
40
45
  ],
41
46
  },
47
+ {
48
+ type: DataFilterType.Number,
49
+ options: [
50
+ ConditionalOptions.On,
51
+ ConditionalOptions.Before,
52
+ ConditionalOptions.LessThanAndEqual,
53
+ ConditionalOptions.After,
54
+ ConditionalOptions.GreaterThanAndEqual,
55
+ ],
56
+ },
42
57
  {
43
58
  type: DataFilterType.Decimal,
44
59
  options: [
@@ -1 +1 @@
1
- {"version":3,"file":"verben-ng-ui-src-lib-models.mjs","sources":["../../../projects/verben-ng-ui/src/lib/models/table-filter.ts","../../../projects/verben-ng-ui/src/lib/models/DataFilterType.ts","../../../projects/verben-ng-ui/src/lib/models/config.ts","../../../projects/verben-ng-ui/src/lib/models/tokens.ts","../../../projects/verben-ng-ui/src/lib/models/verben-ng-ui-src-lib-models.ts"],"sourcesContent":["import { DataFilterType } from './DataFilterType';\n\nexport enum ConditionalOptions {\n GreaterThanAndEqual = 'GTE',\n LessThanAndEqual = 'LTE',\n NotEqual = 'NEQ',\n On = 'On',\n Before = 'Before',\n After = 'After',\n Yes = 'Yes',\n No = 'No',\n}\n\nexport interface ITypeOption {\n type: DataFilterType;\n options: string[];\n}\n","export enum DataFilterType {\n String = 'String',\n Integer = 'Integer',\n Decimal = 'Decimal',\n Credit = 'Credit',\n Date = 'Date',\n Bool = 'Bool',\n Number = 'Number',\n}\n","import { DataFilterType } from './DataFilterType';\nimport { ConditionalOptions, ITypeOption } from './table-filter';\n\nexport class Config {\n typeOptions: ITypeOption[] = [\n {\n type: DataFilterType.String,\n options: [ConditionalOptions.On, ConditionalOptions.NotEqual],\n },\n {\n type: DataFilterType.Integer,\n options: [\n ConditionalOptions.On,\n ConditionalOptions.Before,\n ConditionalOptions.LessThanAndEqual,\n ConditionalOptions.After,\n ConditionalOptions.GreaterThanAndEqual,\n ],\n },\n {\n type: DataFilterType.Decimal,\n options: [\n ConditionalOptions.On,\n ConditionalOptions.Before,\n ConditionalOptions.LessThanAndEqual,\n ConditionalOptions.After,\n ConditionalOptions.GreaterThanAndEqual,\n ],\n },\n {\n type: DataFilterType.Credit,\n options: [\n ConditionalOptions.On,\n ConditionalOptions.Before,\n ConditionalOptions.LessThanAndEqual,\n ConditionalOptions.After,\n ConditionalOptions.GreaterThanAndEqual,\n ],\n },\n {\n type: DataFilterType.Date,\n options: [\n ConditionalOptions.On,\n ConditionalOptions.Before,\n ConditionalOptions.After,\n ],\n },\n {\n type: DataFilterType.Bool,\n options: [ConditionalOptions.Yes, ConditionalOptions.No],\n },\n ];\n\n getConditionOptions(filterType: DataFilterType): string[] | null {\n const typeOption = this.typeOptions.find(\n (option) => option.type === filterType\n );\n return typeOption ? typeOption.options : null;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const UTIL_SERVICE = new InjectionToken<any>('UTIL_SERVICE');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verben-ng-ui-src-lib-models.mjs","sources":["../../../projects/verben-ng-ui/src/lib/models/table-filter.ts","../../../projects/verben-ng-ui/src/lib/models/DataFilterType.ts","../../../projects/verben-ng-ui/src/lib/models/config.ts","../../../projects/verben-ng-ui/src/lib/models/tokens.ts","../../../projects/verben-ng-ui/src/lib/models/verben-ng-ui-src-lib-models.ts"],"sourcesContent":["import { DataFilterType } from './DataFilterType';\n\nexport enum ConditionalOptions {\n GreaterThanAndEqual = 'GTE',\n LessThanAndEqual = 'LTE',\n NotEqual = 'NEQ',\n On = 'On',\n Before = 'Before',\n After = 'After',\n Yes = 'Yes',\n No = 'No',\n}\n\nexport interface ITypeOption {\n type: DataFilterType;\n options: string[];\n}\n","export enum DataFilterType {\n String = 'String',\n Integer = 'Integer',\n Decimal = 'Decimal',\n Credit = 'Credit',\n Date = 'Date',\n Bool = 'Bool',\n Number = 'Number',\n Enum = 'Enum',\n}\n","import { DataFilterType } from './DataFilterType';\nimport { ConditionalOptions, ITypeOption } from './table-filter';\n\nexport class Config {\n typeOptions: ITypeOption[] = [\n {\n type: DataFilterType.String,\n options: [ConditionalOptions.On, ConditionalOptions.NotEqual],\n },\n {\n type: DataFilterType.Enum,\n options: [ConditionalOptions.On, ConditionalOptions.NotEqual],\n },\n {\n type: DataFilterType.Integer,\n options: [\n ConditionalOptions.On,\n ConditionalOptions.Before,\n ConditionalOptions.LessThanAndEqual,\n ConditionalOptions.After,\n ConditionalOptions.GreaterThanAndEqual,\n ],\n },\n {\n type: DataFilterType.Number,\n options: [\n ConditionalOptions.On,\n ConditionalOptions.Before,\n ConditionalOptions.LessThanAndEqual,\n ConditionalOptions.After,\n ConditionalOptions.GreaterThanAndEqual,\n ],\n },\n {\n type: DataFilterType.Decimal,\n options: [\n ConditionalOptions.On,\n ConditionalOptions.Before,\n ConditionalOptions.LessThanAndEqual,\n ConditionalOptions.After,\n ConditionalOptions.GreaterThanAndEqual,\n ],\n },\n {\n type: DataFilterType.Credit,\n options: [\n ConditionalOptions.On,\n ConditionalOptions.Before,\n ConditionalOptions.LessThanAndEqual,\n ConditionalOptions.After,\n ConditionalOptions.GreaterThanAndEqual,\n ],\n },\n {\n type: DataFilterType.Date,\n options: [\n ConditionalOptions.On,\n ConditionalOptions.Before,\n ConditionalOptions.After,\n ],\n },\n {\n type: DataFilterType.Bool,\n options: [ConditionalOptions.Yes, ConditionalOptions.No],\n },\n ];\n\n getConditionOptions(filterType: DataFilterType): string[] | null {\n const typeOption = this.typeOptions.find(\n (option) => option.type === filterType,\n );\n return typeOption ? typeOption.options : null;\n }\n}\n","import { InjectionToken } from '@angular/core';\n\nexport const UTIL_SERVICE = new InjectionToken<any>('UTIL_SERVICE');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}