@zeedhi/teknisa-components-vuetify 3.2.0 → 3.3.0

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.
@@ -3232,3 +3232,4 @@ export {
3232
3232
  hn as TekUserInfoList,
3233
3233
  Cn as default
3234
3234
  };
3235
+ //# sourceMappingURL=teknisa-components-vuetify.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teknisa-components-vuetify.es.js","sources":["../src/components/tek-breadcrumb-header/TekBreadcrumbHeader.ts?vue&type=script&src=true&lang.ts","../src/components/tek-breadcrumb-header/TekBreadcrumbHeader.vue","../src/composables/useTableLayout.ts","../src/components/tek-grid/TekGrid.ts?vue&type=script&src=true&lang.ts","../src/components/tek-grid/TekGrid.vue","../src/utils/isArrayOperation.ts","../src/components/tek-grid/column-filter/TekGridColumnFilter.ts?vue&type=script&src=true&lang.ts","../src/components/tek-grid/column-filter/TekGridColumnFilter.vue","../src/components/tek-grid/column-header/TekGridHeaderRow.ts?vue&type=script&src=true&lang.ts","../src/components/tek-grid/column-header/TekGridHeaderRow.vue","../src/components/tek-grid/columns-button/TekGridColumnsOptionsController.ts","../src/components/tek-grid/columns-button/TekGridColumnsOptionsModal.ts","../src/components/tek-grid/columns-button/TekGridColumnsButton.ts?vue&type=script&src=true&lang.ts","../src/components/tek-grid/columns-button/TekGridColumnsButton.vue","../src/components/tek-grid/filter-button/TekGridFilterButton.ts?vue&type=script&src=true&lang.ts","../src/components/tek-grid/filter-button/TekGridFilterButton.vue","../src/components/tek-grid/indentation/TekGridIndentation.ts?vue&type=script&src=true&lang.ts","../src/components/tek-grid/indentation/TekGridIndentation.vue","../src/components/tek-grid/layout-options/TekGridLayoutOptions.ts?vue&type=script&src=true&lang.ts","../src/components/tek-grid/layout-options/TekGridLayoutOptions.vue","../src/components/tek-grid/row/TekGridFooterRow.ts?vue&type=script&src=true&lang.ts","../src/components/tek-grid/row/TekGridFooterRow.vue","../src/components/tek-grid/row/TekGridGroupRow.ts?vue&type=script&src=true&lang.ts","../src/components/tek-grid/row/TekGridGroupRow.vue","../src/components/tek-loading/TekLoading.ts?vue&type=script&src=true&lang.ts","../src/components/tek-loading/TekLoading.vue","../src/components/tek-user-info/TekUserInfo.ts?vue&type=script&src=true&lang.ts","../src/components/tek-user-info/TekUserInfo.vue","../src/components/tek-user-info/TekUserInfoList.ts?vue&type=script&src=true&lang.ts","../src/components/tek-user-info/TekUserInfoList.vue","../src/components/tek-breadcrumb-header/TekBreadcrumbHeader.ts","../src/components/tek-loading/TekLoading.ts","../src/components/index.ts","../src/components/tek-grid/TekGrid.ts","../src/components/tek-grid/column-filter/TekGridColumnFilter.ts","../src/components/tek-grid/columns-button/TekGridColumnsButton.ts","../src/components/tek-grid/filter-button/TekGridFilterButton.ts","../src/components/tek-grid/layout-options/TekGridLayoutOptions.ts","../src/components/tek-user-info/TekUserInfo.ts","../src/components/tek-user-info/TekUserInfoList.ts","../src/index.ts"],"sourcesContent":["import { BreadcrumbHeader } from '@zeedhi/teknisa-components-common';\nimport { defineComponent } from 'vue';\nimport { useCreateInstance, ZdComponentRenderProps } from '@zeedhi/vuetify';\n\nexport const TekBreadcrumbHeaderProps = {\n\t...ZdComponentRenderProps,\n\ttitle: {\n\t\ttype: String,\n\t\tdefault: '',\n\t},\n\tbreadcrumb: {\n\t\ttype: Object,\n\t\tdefault: {},\n\t\twatch: false,\n\t},\n\trightSlot: {\n\t\ttype: Array,\n\t\tdefault: () => [],\n\t\twatch: false,\n\t},\n};\n\nconst breadcrumbHeaderComponent = defineComponent({\n\tprops: TekBreadcrumbHeaderProps,\n\tinheritAttrs: false,\n\tsetup(props, ctx) {\n\t\tconst { instance, root } = useCreateInstance<BreadcrumbHeader>(\n\t\t\tprops,\n\t\t\tctx,\n\t\t\tBreadcrumbHeader,\n\t\t\tTekBreadcrumbHeaderProps,\n\t\t);\n\n\t\treturn {\n\t\t\tinstance,\n\t\t\troot,\n\t\t};\n\t},\n});\n\nexport default breadcrumbHeaderComponent;\n","<template>\n <div\n :id=\"instance.name\"\n ref=\"root\"\n class=\"tek-breadcrumb-header\">\n <zd-breadcrumbs\n v-bind=\"instance.breadcrumb\"\n :theme=\"instance.theme\"\n />\n <v-col class=\"tek-breadcrumb-header-title-col\" cols=\"12\">\n <zd-text\n v-bind=\"{\n name: `${instance.name}-title`,\n cssClass: 'tek-breadcrumb-header-title',\n text: $t(instance.title),\n }\"\n />\n <span class=\"tek-breadcrumb-header-slot-right\" >\n <span v-if=\"instance.rightSlot.length\">\n <component\n v-for=\"(child) in instance.rightSlot\"\n v-bind=\"child\"\n :is=\"child.component\"\n :key=\"child.name\"\n >\n </component>\n </span>\n <slot name=\"rightSlot\"></slot>\n </span>\n </v-col>\n </div>\n</template>\n\n<script lang=\"ts\" src=\"./TekBreadcrumbHeader.ts\"></script>\n\n<style lang=\"scss\">\n.tek-breadcrumb-header {\n .v-breadcrumbs-item {\n padding: 0;\n }\n\n .tek-breadcrumb-header-title-col {\n display: flex;\n padding-top: 5px;\n padding-left: 0;\n\n .tek-breadcrumb-header-slot-right {\n margin-left: auto;\n }\n }\n\n .zd-breadcrumbs {\n padding: 0;\n font-size: var(--zd-font-body2-size);\n\n .v-breadcrumbs__item--disabled {\n color: #667080;\n }\n }\n\n .zd-text {\n color: #667080;\n\n &.tek-breadcrumb-header-title {\n font-size: 32px;\n font-weight: bold;\n line-height: 35px;\n margin-bottom: 10px;\n }\n\n > p {\n margin: 0;\n }\n }\n}\n</style>","import type { IIterable } from '@zeedhi/common';\nimport {\n\ttype IDynamicFilterItem,\n\ttype IGroupedDataManager,\n\ttype ITekGridLayout,\n\ttype ITekGridLayoutColumn,\n\tTekFilterHelper,\n\tTekGridColumn,\n\tTekRestDatasource, } from '@zeedhi/teknisa-components-common';\nimport { type IDictionary, Utils } from '@zeedhi/core';\nimport cloneDeep from 'lodash.clonedeep';\nimport { NotProvidedError } from '@zeedhi/vuetify';\nimport { type ComputedRef, type UnwrapNestedRefs, computed, inject, nextTick, provide } from 'vue';\n\nexport type DefaultLayout = {\n\toriginalDatasourceOrder: string[];\n\toriginalDatasourceFilter: IDictionary<any>;\n\toriginalColumnProps: ITekGridLayoutColumn[];\n\toriginalDatasourceDynamicFilter: IDictionary<IDynamicFilterItem[]>;\n};\n\nexport type ApplyLayout = (params: {\n\tlayout?: ITekGridLayout;\n\tdefaultLayout: DefaultLayout;\n\tchangeLayoutCallback: (layout: ITekGridLayout) => void;\n}) => void;\nexport type GetColumnElements = () => IDictionary<Element>;\nexport type GetTableWidth = () => string;\n\nexport function useTableLayout() {\n\tconst applyLayout = inject<ApplyLayout>('applyLayout');\n\tconst getColumnElements = inject<GetColumnElements>('getColumnElements');\n\tconst getTableWidth = inject<GetTableWidth>('getTableWidth');\n\n\tif (!applyLayout) {\n\t\tthrow new NotProvidedError('applyLayout');\n\t}\n\n\tif (!getColumnElements) {\n\t\tthrow new NotProvidedError('getColumnElements');\n\t}\n\n\tif (!getTableWidth) {\n\t\tthrow new NotProvidedError('getTableWidth');\n\t}\n\n\treturn { applyLayout, getColumnElements, getTableWidth };\n}\n\nexport function provideTableLayout<T extends IIterable<TekGridColumn> & IGroupedDataManager>({\n\tinstance,\n\trootEl,\n}: {\n\tinstance: UnwrapNestedRefs<T>;\n\trootEl: ComputedRef<HTMLElement | undefined>;\n}) {\n\tconst tableElement = rootEl.value?.querySelector('table');\n\n\tconst columnDictionary = computed(() => getColumnDictionary(instance.columns));\n\n\tconst datasourceDynamicFilter = () => {\n\t\tconst datasource = instance.datasource;\n\t\tif (datasource instanceof TekRestDatasource) return datasource.dynamicFilter;\n\t\treturn {};\n\t};\n\n\tconst getColumnDictionary = (columns: UnwrapNestedRefs<TekGridColumn>[]) => {\n\t\tconst columnDictionary: IDictionary<UnwrapNestedRefs<TekGridColumn>> = {};\n\t\tcolumns.forEach((column: UnwrapNestedRefs<TekGridColumn>) => {\n\t\t\tcolumnDictionary[column.name] = column;\n\t\t});\n\t\treturn columnDictionary;\n\t};\n\n\tconst addMissingColumns = (layout: ITekGridLayout) => {\n\t\tconst layoutColumnNames: string[] = layout.columns?.map((column) => column.name) || [];\n\t\tconst columnNames: string[] = Object.keys(columnDictionary.value);\n\t\tcolumnNames.forEach((columnName) => {\n\t\t\tif (!layoutColumnNames.includes(columnName)) {\n\t\t\t\tlayout.columns?.push(columnDictionary.value[columnName]);\n\t\t\t}\n\t\t});\n\t};\n\n\tconst setHelperValue = (column: any, value: string | IDictionary<any>) => {\n\t\tif (column instanceof TekGridColumn) {\n\t\t\tif (!Array.isArray(column.filterProps) && typeof value === 'string') {\n\t\t\t\tcolumn.filterProps.helperValue = value;\n\t\t\t} else if (Array.isArray(column.filterProps) && Array.isArray(value)) {\n\t\t\t\tcolumn.filterProps.forEach((prop: any, index: number) => {\n\t\t\t\t\tprop.value = value[index];\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n\n\tconst getHelperValues = (dynamicFilter: IDictionary<IDynamicFilterItem[]>, columns: any[]) => {\n\t\tconst filter = cloneDeep(dynamicFilter);\n\t\tObject.keys(filter).forEach((columnName) => {\n\t\t\tconst filterOptions = filter[columnName];\n\t\t\tconst column = columns[columns.findIndex((col) => col.name === columnName)];\n\t\t\tconst { filterHelperValue } = column;\n\n\t\t\tfilterOptions.forEach((item) => {\n\t\t\t\tif (['IN', 'NOT_IN', 'BETWEEN'].includes(item.operation) && !Array.isArray(item.value)) {\n\t\t\t\t\titem.value = item.value.split(';');\n\t\t\t\t}\n\n\t\t\t\tlet helperValue = '';\n\t\t\t\tif (!Array.isArray(filterHelperValue)) {\n\t\t\t\t\thelperValue = filterHelperValue;\n\t\t\t\t} else {\n\t\t\t\t\tObject.keys(filterHelperValue).forEach((key: any) => {\n\t\t\t\t\t\tconst value = filterHelperValue[key] || '';\n\t\t\t\t\t\tif (`${item.relation || 'AND'}-${item.operation || 'CONTAINS'}` === key) {\n\t\t\t\t\t\t\thelperValue = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (helperValue) {\n\t\t\t\t\tconst columnObj = instance.getColumn(column.name);\n\t\t\t\t\titem.value = TekFilterHelper.getValue(helperValue, columnObj as any);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\treturn filter;\n\t};\n\n\t/**\n\t * Applies the default grid layout\n\t * @returns a boolean to indicate whether the group parameters changed\n\t */\n\tconst applyDefaultLayout = (defaultLayout: DefaultLayout) => {\n\t\tlet groupParamsChanged = false;\n\n\t\tinstance.datasource.order = [...defaultLayout.originalDatasourceOrder];\n\t\tinstance.datasource.filter = { ...defaultLayout.originalDatasourceFilter };\n\t\tif (instance.datasource instanceof TekRestDatasource) {\n\t\t\tinstance.datasource.dynamicFilter = getHelperValues(\n\t\t\t\tdefaultLayout.originalDatasourceDynamicFilter,\n\t\t\t\tdefaultLayout.originalColumnProps,\n\t\t\t);\n\t\t}\n\t\tinstance.columns = defaultLayout.originalColumnProps.map((defaultColumn) => {\n\t\t\tconst col = columnDictionary.value[defaultColumn.name];\n\n\t\t\tgroupParamsChanged =\n\t\t\t\tgroupParamsChanged ||\n\t\t\t\tcol.grouped !== defaultColumn.grouped ||\n\t\t\t\tcol.groupOpened !== defaultColumn.groupOpened ||\n\t\t\t\tcol.aggregation !== defaultColumn.aggregation;\n\n\t\t\tcol.isVisible = defaultColumn.isVisible ?? col.isVisible;\n\t\t\tcol.label = defaultColumn.label ?? col.label;\n\t\t\tcol.align = defaultColumn.align ?? col.align;\n\t\t\tcol.fixed = defaultColumn.fixed ?? col.fixed;\n\t\t\tcol.grouped = defaultColumn.grouped ?? col.grouped;\n\t\t\tcol.groupOpened = defaultColumn.groupOpened ?? col.groupOpened;\n\t\t\tcol.aggregation = defaultColumn.aggregation ?? col.aggregation;\n\t\t\tcol.minWidth = defaultColumn.minWidth ?? col.minWidth;\n\t\t\tcol.maxWidth = defaultColumn.maxWidth ?? col.maxWidth;\n\t\t\tcol.width = defaultColumn.width ?? col.width;\n\n\t\t\tsetHelperValue(col, defaultColumn.filterHelperValue || '');\n\t\t\treturn col;\n\t\t});\n\n\t\tif (tableElement) {\n\t\t\ttableElement.style.width = '100%';\n\t\t\tconst columnElements = Array.from(tableElement.querySelectorAll('tr th:not(.selectable)'));\n\t\t\tcolumnElements.forEach((item) => {\n\t\t\t\t(item as HTMLElement).style.width = 'unset';\n\t\t\t});\n\t\t}\n\n\t\treturn groupParamsChanged;\n\t};\n\n\tconst applyNewLayout = (layout: ITekGridLayout, changeLayoutCallback: (layout: ITekGridLayout) => void) => {\n\t\tconst gridColumnNames: string[] = Object.keys(columnDictionary.value);\n\t\tlet layoutChanged = false;\n\n\t\t// removes columns that are in the layout but not in grid\n\t\tlayout.columns = layout.columns?.filter((column: any) => {\n\t\t\tconst isInGrid = gridColumnNames.includes(column.name);\n\t\t\tif (!isInGrid) layoutChanged = true;\n\n\t\t\treturn isInGrid;\n\t\t});\n\n\t\tif (layoutChanged) {\n\t\t\tchangeLayoutCallback(layout);\n\t\t}\n\n\t\tif (tableElement) tableElement.style.width = layout.gridWidth || 'auto';\n\n\t\tinstance.datasource.order = layout.order !== undefined ? layout.order : instance.datasource.order;\n\t\tinstance.datasource.filter = layout.filter !== undefined ? layout.filter : instance.datasource.filter;\n\t\tif (instance.datasource instanceof TekRestDatasource && layout.dynamicFilter !== undefined) {\n\t\t\tinstance.datasource.dynamicFilter = getHelperValues(layout.dynamicFilter, layout.columns || instance.columns);\n\t\t}\n\n\t\tif (layout.columns) {\n\t\t\tinstance.columns = layout.columns.map((column) => {\n\t\t\t\tconst col = columnDictionary.value[column.name];\n\t\t\t\tcol.label = column.label !== undefined ? column.label : col.label;\n\t\t\t\tcol.align = column.align !== undefined ? column.align : col.align;\n\t\t\t\tcol.isVisible = column.isVisible !== undefined ? column.isVisible : col.isVisible;\n\t\t\t\tcol.fixed = !!column.fixed;\n\t\t\t\tcol.grouped = !!column.grouped;\n\t\t\t\tcol.groupOpened = !!column.groupOpened;\n\t\t\t\tcol.aggregation = column.aggregation;\n\t\t\t\tcol.minWidth = column.minWidth || '';\n\t\t\t\tcol.maxWidth = column.maxWidth || '';\n\t\t\t\tcol.width = column.width;\n\t\t\t\tsetHelperValue(col, column.filterHelperValue || '');\n\n\t\t\t\treturn col;\n\t\t\t});\n\n\t\t\t// wait to change column orders\n\t\t\tnextTick(() => {\n\t\t\t\tgridColumnNames.forEach((_key, index) => {\n\t\t\t\t\tconst columnElement: HTMLElement | null | undefined = tableElement?.querySelector(\n\t\t\t\t\t\t`tr th:not(.selectable)[index=\"${index}\"]`,\n\t\t\t\t\t);\n\t\t\t\t\tif (columnElement) {\n\t\t\t\t\t\tcolumnElement.style.width = layout.columns![index].width || 'unset';\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t};\n\n\tconst applyLayout: ApplyLayout = ({\n\t\tlayout,\n\t\tdefaultLayout,\n\t\tchangeLayoutCallback,\n\t}: {\n\t\tdefaultLayout: DefaultLayout;\n\t\tlayout?: ITekGridLayout;\n\t\tchangeLayoutCallback: (layout: ITekGridLayout) => void;\n\t}) => {\n\t\tconst oldOrder = instance.datasource.order;\n\t\tconst oldFilter = instance.datasource.filter;\n\t\tconst oldDynamicFilter = datasourceDynamicFilter();\n\n\t\tlet groupParamsChanged = false;\n\n\t\tif (layout) {\n\t\t\taddMissingColumns(layout);\n\t\t\tapplyNewLayout(layout, changeLayoutCallback);\n\t\t} else {\n\t\t\tgroupParamsChanged = applyDefaultLayout(defaultLayout);\n\t\t}\n\n\t\tif (\n\t\t\t(!Utils.isEqual(instance.datasource.order, oldOrder) ||\n\t\t\t\t!Utils.isEqual(instance.datasource.filter, oldFilter) ||\n\t\t\t\t!Utils.isEqual(datasourceDynamicFilter(), oldDynamicFilter)) &&\n\t\t\t!groupParamsChanged\n\t\t) {\n\t\t\t// Se os parametros de agrupamento tiverem sido alterados um get é feito automaticamente\n\t\t\tinstance.loadAfterTasks();\n\t\t}\n\t};\n\n\tconst getColumnElements: GetColumnElements = () => {\n\t\tconst elementDict: IDictionary<Element> = {};\n\n\t\tconst columnElements = tableElement?.querySelectorAll('tr th:not(.selectable)[index]') || [];\n\n\t\tcolumnElements.forEach((el) => {\n\t\t\tconst index = el.getAttribute('index');\n\t\t\tif (index === null) return;\n\n\t\t\telementDict[index] = el;\n\t\t});\n\n\t\treturn elementDict;\n\t};\n\n\tconst getTableWidth: GetTableWidth = () => {\n\t\treturn tableElement ? window.getComputedStyle(tableElement).width : 'auto';\n\t};\n\n\tprovide('applyLayout', applyLayout);\n\tprovide('getColumnElements', getColumnElements);\n\tprovide('getTableWidth', getTableWidth);\n}\n","import {\n\ttype IDynamicFilterItem,\n\ttype ITekConfig,\n\ttype ITekGridGroupFooter,\n\ttype ITekGridGroupHeader,\n\tTekGrid,\n\tTekMemoryDatasource,\n\tTekRestDatasource,\n} from '@zeedhi/teknisa-components-common';\nimport { Config, type IDictionary, Utils } from '@zeedhi/core';\nimport { type IComponentRender, type LabelFormatter } from '@zeedhi/common';\nimport cloneDeep from 'lodash.clonedeep';\nimport debounce from 'lodash.debounce';\nimport { type ComponentPublicInstance, type PropType, computed, defineComponent, nextTick } from 'vue';\nimport { buildProps, useGridColumns, getRootElement, useCreateInstance, ZdGridEditableProps, useGridEditableInstance } from '@zeedhi/vuetify';\nimport { provideTableLayout } from '../../composables/useTableLayout'\n\nexport const TekGridProps = buildProps({\n\t...ZdGridEditableProps,\n\ttoolbarSlot: {\n\t\ttype: Array,\n\t\tdefault: undefined,\n\t\twatch: false,\n\t},\n\ttitle: {\n\t\ttype: String,\n\t\tdefault: '',\n\t},\n\taddButton: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\tdeleteButton: {\n\t\ttype: [String, Boolean],\n\t\tdefault: 'none',\n\t},\n\tcolumnsButton: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\tcolumnsButtonIgnore: {\n\t\ttype: [Array, String],\n\t\tdefault: () => [],\n\t},\n\tshowEditButtons: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n\tfilterButton: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\tmodalFilterProps: {\n\t\ttype: Object,\n\t\tdefault: () => ({}),\n\t},\n\tshowSearch: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n\tcolumnFilterButton: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\thideActions: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\tactions: {\n\t\ttype: Array,\n\t\tdefault: () => [],\n\t\twatch: false,\n\t},\n\tdragColumns: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n\tresizeColumns: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n\tshowLayoutOptions: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n\tshowExport: {\n\t\ttype: [String, Boolean],\n\t\tdefault: false,\n\t},\n\tshowReload: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n\texportConfig: {\n\t\ttype: Array,\n\t},\n\texportActions: {\n\t\ttype: Array,\n\t\twatch: false,\n\t},\n\tgroupsOpened: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\tshowSummaryTotal: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n\tmainGrid: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n\txlsDefaultType: {\n\t\ttype: String,\n\t\tdefault: undefined,\n\t},\n\tshowCheckboxAllFilter: {\n\t\ttype: [Boolean, String],\n\t\tdefault: (Config as ITekConfig).gridShowCheckboxAllFilter,\n\t},\n\ttoolbarOpened: {\n\t\ttype: [Boolean],\n\t\tdefault: true,\n\t},\n\tdefaultFilter: {\n\t\ttype: Object,\n\t},\n\treportTitle: {\n\t\ttype: String,\n\t},\n\teditNewRowsOnly: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\ttoolbarConfig: {\n\t\ttype: Array as PropType<(IComponentRender | string)[]>,\n\t\tdefault: () => [],\n\t\twatch: false,\n\t},\n\treportLabelFormatter: {\n\t\ttype: Function as PropType<LabelFormatter>,\n\t\tdefault: undefined,\n\t},\n\tshowHideButton: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n});\n\nconst gridEditableComponent = defineComponent({\n\tprops: TekGridProps,\n\tinheritAttrs: false,\n\tsetup(props, ctx) {\n\t\tconst { instance, root } = useCreateInstance<TekGrid, ComponentPublicInstance>(props, ctx, TekGrid, TekGridProps);\n\n\t\tconst renderedData = computed(() => {\n\t\t\tif (instance.isGrouped()) {\n\t\t\t\treturn instance.getGroupedData();\n\t\t\t}\n\t\t\treturn instance.getData();\n\t\t});\n\n\t\tconst visibleData = computed(() => {\n\t\t\treturn renderedData.value.filter((row) => instance.isItemVisible(row));\n\t\t});\n\n\t\tconst isNavigableRow = (element: Element) => {\n\t\t\treturn element.classList.contains('zd-grid__row')\n\t\t\t\t&& !element.classList.contains('tek-grid-group-row')\n\t\t\t\t&& !element.classList.contains('tek-grid-footer-row');\n\t\t};\n\n\t\tconst gridEditableScope = useGridEditableInstance({\n\t\t\tinstance,\n\t\t\troot,\n\t\t\trenderedData: visibleData,\n\t\t\tisNavigableRow,\n\t\t});\n\n\t\tconst rootEl = getRootElement(root);\n\t\tconst { visibleColumns } = useGridColumns({\n\t\t\tinstance,\n\t\t\trootEl,\n\t\t\tvisibilityCondition: (column: any) => column.isVisible && !column.grouped,\n\t\t});\n\n\t\tprovideTableLayout({ instance, rootEl });\n\n\t\tconst debouncedDatasourceGet = debounce((instance) => {\n\t\t\tconst event = new Event('change', { cancelable: true });\n\t\t\tinstance.callEvent('beforeApplyFilter', { component: instance, event });\n\t\t\tif (event.defaultPrevented) return;\n\n\t\t\tconst { datasource } = instance;\n\t\t\tif (datasource instanceof TekRestDatasource || datasource instanceof TekMemoryDatasource) {\n\t\t\t\tdatasource.updateDynamicFilter();\n\t\t\t} else {\n\t\t\t\tdatasource.get();\n\t\t\t}\n\t\t}, 500);\n\n\t\tconst filter = computed<IDictionary<IDynamicFilterItem[]>>(() => {\n\t\t\tif (instance.datasource instanceof TekRestDatasource || instance.datasource instanceof TekMemoryDatasource) {\n\t\t\t\treturn instance.datasource.dynamicFilter;\n\t\t\t}\n\n\t\t\tconst datasourceFilter = instance.datasource.filter;\n\t\t\tconst simpleFilter: IDictionary<IDynamicFilterItem[]> = {};\n\t\t\tObject.keys(datasourceFilter).forEach((key) => {\n\t\t\t\tsimpleFilter[key] = [{ relation: 'AND', operation: 'CONTAINS', value: datasourceFilter[key] }];\n\t\t\t});\n\t\t\treturn simpleFilter;\n\t\t});\n\n\t\tconst setFilter = (newFilter: IDictionary<IDynamicFilterItem[]>) => {\n\t\t\tif (Utils.isEqual(filter, newFilter)) return;\n\n\t\t\tif (instance.datasource instanceof TekRestDatasource || instance.datasource instanceof TekMemoryDatasource) {\n\t\t\t\tinstance.datasource.dynamicFilter = cloneDeep(newFilter);\n\t\t\t} else {\n\t\t\t\tconst normalFilter: IDictionary<any> = {};\n\t\t\t\tObject.keys(newFilter).forEach((key) => {\n\t\t\t\t\tif (!newFilter[key][0].value) return;\n\n\t\t\t\t\tnormalFilter[key] = newFilter[key][0].value;\n\t\t\t\t});\n\t\t\t\tinstance.datasource.filter = normalFilter;\n\t\t\t}\n\t\t\tdebouncedDatasourceGet(instance);\n\t\t\tinstance.changeLayout();\n\t\t};\n\n\t\tconst columnHasFilter = (columnName: string) => {\n\t\t\treturn instance.columnHasFilter(columnName);\n\t\t};\n\n\t\tconst isRowVisible = (row: IDictionary<any>, index: number) => {\n\t\t\treturn instance.isItemVisible(row) && gridEditableScope.shouldRender(index);\n\t\t};\n\n\t\tconst isCurrentRowGroup = (row: IDictionary<any>) => {\n\t\t\tconst { uniqueKey, currentRow } = instance.datasource;\n\n\t\t\treturn !!(\n\t\t\t\t(row.group && row.groupValue === currentRow.groupValue) ||\n\t\t\t\t(row[uniqueKey] && row[uniqueKey] === currentRow[uniqueKey])\n\t\t\t);\n\t\t};\n\n\t\tconst isGroupSelectIndeterminate = (item: ITekGridGroupHeader) => {\n\t\t\tlet hasSelected = false;\n\t\t\tlet hasNotSelected = false;\n\t\t\tconst { uniqueKey } = instance.datasource;\n\t\t\titem.children.forEach((child) => {\n\t\t\t\tconst idx = instance.selectedRows.findIndex((row) => child[uniqueKey] === row[uniqueKey]);\n\t\t\t\thasSelected = hasSelected || idx !== -1;\n\t\t\t\thasNotSelected = hasNotSelected || idx === -1;\n\t\t\t});\n\t\t\treturn hasSelected && hasNotSelected;\n\t\t};\n\n\t\tconst isGroupSelected = (item: ITekGridGroupHeader) => {\n\t\t\treturn item.children.every((child) => {\n\t\t\t\tconst { uniqueKey } = instance.datasource;\n\t\t\t\tconst idx = instance.selectedRows.findIndex((row) => child[uniqueKey] === row[uniqueKey]);\n\t\t\t\treturn idx !== -1;\n\t\t\t});\n\t\t};\n\n\t\tconst selectGroupRowClick = (row: IDictionary<any>, isSelected: boolean, event: Event) => {\n\t\t\tnextTick(() => {\n\t\t\t\tconst rootElement = getRootElement(root);\n\t\t\t\tinstance.selectGroupClick(row, isSelected, event, rootElement.value);\n\t\t\t});\n\t\t};\n\n\t\tconst selectGroup = (item: ITekGridGroupHeader, event: Event) => {\n\t\t\tconst { uniqueKey } = instance.datasource;\n\t\t\tconst isSelected = isGroupSelected(item);\n\t\t\tif (!isSelected) {\n\t\t\t\t// here we fetch the item from renderedData because vuetify isSelected checks for object reference\n\t\t\t\t// so we need to find the item inside renderedData to call selectRow() with the correct reference\n\t\t\t\t// https://github.com/vuetifyjs/vuetify/blob/master/packages/vuetify/src/components/VDataTable/composables/select.ts#L128\n\t\t\t\tconst items = item.children.map((child) => {\n\t\t\t\t\treturn renderedData.value.find((row) => child[uniqueKey] === row[uniqueKey]);\n\t\t\t\t});\n\n\t\t\t\titems.forEach((child) => {\n\t\t\t\t\tif (!child) return;\n\n\t\t\t\t\tconst idx = instance.selectedRows.findIndex((row) => child[uniqueKey] === row[uniqueKey]);\n\t\t\t\t\tif (idx === -1) {\n\t\t\t\t\t\tinstance.selectRow(child, true);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\titem.children.forEach((child) => {\n\t\t\t\t\tconst idx = instance.selectedRows.findIndex((row) => child[uniqueKey] === row[uniqueKey]);\n\t\t\t\t\tif (idx !== -1) {\n\t\t\t\t\t\tinstance.selectRow(child, false);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tselectGroupRowClick(item, !isSelected, event);\n\t\t};\n\n\t\tconst openGroup = (item: ITekGridGroupHeader) => {\n\t\t\tinstance.openGroup(item);\n\t\t};\n\n\t\tconst isGroup = (item: IDictionary<any>): item is ITekGridGroupHeader => {\n\t\t\treturn !!item.group;\n\t\t};\n\n\t\tconst isFooter = (item: IDictionary<any>): item is ITekGridGroupFooter => {\n\t\t\treturn !!item.groupFooter;\n\t\t};\n\n\t\tconst groupColumnNames = computed(() => {\n\t\t\treturn instance.columns.filter((column) => column.grouped).map((column) => column.name) || [];\n\t\t});\n\n\t\tconst sortBy = computed(() => {\n\t\t\treturn gridEditableScope.sortBy.value.map(({ key, order }) => ({\n\t\t\t\tkey,\n\t\t\t\torder: order as 'asc' | 'desc',\n\t\t\t}));\n\t\t});\n\n\t\treturn {\n\t\t\t...gridEditableScope,\n\t\t\tinstance,\n\t\t\troot,\n\t\t\tfilter,\n\t\t\tsetFilter,\n\t\t\tcolumnHasFilter,\n\t\t\tvisibleColumns,\n\t\t\tisRowVisible,\n\t\t\tisCurrentRowGroup,\n\t\t\tisGroupSelectIndeterminate,\n\t\t\tselectGroup,\n\t\t\tisGroup,\n\t\t\topenGroup,\n\t\t\trenderedData,\n\t\t\tisGroupSelected,\n\t\t\tgroupColumnNames,\n\t\t\tisFooter,\n\t\t\tvisibleData,\n\t\t\tsortBy,\n\t\t};\n\t},\n});\n\nexport default gridEditableComponent;\n","<template>\n <v-data-table\n v-show=\"instance.isVisible\"\n ref=\"root\"\n :id=\"instance.name\"\n v-model=\"selectedRows\"\n :class=\"[\n 'zd-grid',\n 'tek-grid',\n 'zd-grid-editable',\n instance.cssClass,\n {\n 'zd-grid--loading': instance.datasource.loading,\n 'zd-grid--cell-selection': instance.cellSelection,\n },\n ]\"\n :style=\"[\n cssColorVars,\n {\n height: $formatSize(instance.height),\n width: $formatSize(instance.width),\n maxHeight: $formatSize(instance.maxHeight),\n minHeight: $formatSize(instance.minHeight),\n maxWidth: $formatSize(instance.maxWidth),\n minWidth: $formatSize(instance.minWidth),\n },\n $styleObject(instance.cssStyle),\n ]\"\n :theme=\"instance.theme\"\n sort-asc-icon=\"$collapse\"\n sort-desc-icon=\"$expand\"\n fixed-header\n multi-sort\n hide-default-footer\n :name=\"instance.name\"\n :headers=\"headers\"\n :items=\"renderedData\"\n :search=\"instance.datasource.search\"\n :density=\"instance.dense ? 'compact' : 'default'\"\n :loading=\"instance.datasource.loading\"\n :item-value=\"instance.datasource.uniqueKey\"\n :items-per-page=\"-1\"\n no-filter\n :sort-by=\"sortBy\"\n disable-sort\n return-object\n tabindex=\"0\"\n @update:sort-by=\"updateSortBy($event)\"\n >\n <template v-slot:top>\n <zd-grid-toolbar v-if=\"!hasToolbarSlot\"></zd-grid-toolbar>\n <slot name=\"toolbarSlot\"></slot>\n </template>\n\n <template\n v-slot:headers=\"{ columns: tableColumns, isSorted, getSortIcon, toggleSort, sortBy }\"\n >\n <tek-grid-header-row\n v-if=\"instance.showHeader\"\n :name=\"instance.name\"\n :selectable=\"instance.selectable\"\n :headerBackground=\"instance.headerBackground\"\n :showSelectAll=\"instance.showSelectAll\"\n :allselectedState=\"allselectedState\"\n :visibleColumns=\"visibleColumns\"\n :dragColumns=\"instance.dragColumns\"\n :headerCellTextColor=\"instance.headerCellTextColor\"\n :resizeColumns=\"instance.resizeColumns\"\n :getSortIcon=\"getSortIcon\"\n :toggleSort=\"toggleSort\"\n :sortBy=\"sortBy\"\n :tableColumns=\"tableColumns\"\n :isSorted=\"isSorted\"\n :disableCheckbox=\"instance.editing\"\n :instanceName=\"instance.name\"\n :filterRelationsDatasource=\"instance.filterRelationsDatasource\"\n :filterOperationsDatasource=\"instance.filterOperationsDatasource\"\n :modelValue=\"filter\"\n :columnFilterButton=\"instance.columnFilterButton\"\n :columnHasFilter=\"columnHasFilter\"\n :level=\"groupColumnNames.length\"\n @update:modelValue=\"setFilter($event)\"\n @resizeMousedown=\"resizeMouseDownHandler($event.column, $event.event)\"\n @resizeClick=\"resizeClickHandler($event.event)\"\n @selectAllClick=\"selectAllClick($event)\"\n ></tek-grid-header-row>\n </template>\n\n <template\n v-if=\"addTopPadding()\"\n v-slot:body.prepend=\"{ headers }\"\n >\n <tr>\n <td\n :colspan=\"headers.length\"\n :style=\"`padding-top:${scrollData.startHeight}px`\"\n >\n </td>\n </tr>\n </template>\n\n <template\n v-if=\"addBottomPadding()\"\n v-slot:body.append=\"{ headers }\"\n >\n <tr>\n <td\n :colspan=\"headers.length\"\n :style=\"`padding-top:${scrollData.endHeight}px`\"\n >\n </td>\n </tr>\n </template>\n\n <template\n v-if=\"instance.datasource.data.length\"\n v-slot:body=\"{ internalItems, isSelected }\"\n >\n <template v-for=\"(item, i) in visibleData\">\n <template v-if=\"isRowVisible(item, i)\">\n <tek-grid-group-row\n v-if=\"isGroup(item)\"\n :key=\"item.groupColumnName + item.groupValue\"\n :row=\"item\"\n :is-current-row=\"isCurrentRowGroup(item)\"\n :selectable=\"instance.selectable\"\n :selectionDisabled=\"instance.callDisableSelection(item)\"\n :cellSelection=\"instance.cellSelection\"\n :is-current=\"isCurrent\"\n :isSelected=\"isGroupSelected(item)\"\n :indeterminate=\"isGroupSelectIndeterminate(item)\"\n @click=\"rowClick(item, $event)\"\n @checkboxClick=\"selectGroup(item, $event)\"\n @focusin=\"cellFocusIn($event)\"\n @expandClick=\"openGroup(item)\"\n ></tek-grid-group-row>\n\n <zd-grid-editable-row\n v-else-if=\"!isFooter(item)\"\n :key=\"instance.getRowKey(item)\"\n :isSelected=\"isSelected(internalItems[i])\"\n :isCurrentRow=\"isCurrentRow(item)\"\n :selectable=\"instance.selectable\"\n :selectionDisabled=\"instance.callDisableSelection(item)\"\n :cellSelection=\"instance.cellSelection\"\n :isCurrent=\"isCurrent\"\n :columns=\"visibleColumns\"\n :row=\"item\"\n :fixedLeft=\"fixedLeft\"\n :fixedRight=\"fixedRight\"\n :isEditing=\"isEditing\"\n @cellFocus=\"cellFocus($event)\"\n @cellClick=\"cellClick($event)\"\n @click=\"rowClick(item, $event)\"\n @focusin=\"cellFocusIn($event)\"\n @checkboxClick=\"selectRowClick(item, !isSelected(internalItems[i]), $event)\"\n @cellEnterEdit=\"cellEnterEdit($event)\"\n @cellKeydown=\"cellKeydown($event)\"\n >\n <template #cell-prepend=\"{ index }\">\n <tek-grid-indentation\n v-if=\"index === 0 && groupColumnNames.length > 0\"\n :level=\"item.groupHeaders?.length\"\n ></tek-grid-indentation>\n </template>\n </zd-grid-editable-row>\n\n <tek-grid-footer-row\n v-else\n :key=\"'footer' + item.groupColumnName + item.groupValue\"\n :isSelected=\"isSelected(internalItems[i])\"\n :selectable=\"instance.selectable\"\n :selectionDisabled=\"instance.callDisableSelection(item)\"\n :cellSelection=\"instance.cellSelection\"\n :isCurrent=\"isCurrent\"\n :columns=\"visibleColumns\"\n :row=\"item\"\n :fixedLeft=\"fixedLeft\"\n :fixedRight=\"fixedRight\"\n @cellFocus=\"cellFocus($event)\"\n @focusin=\"cellFocusIn($event)\"\n ></tek-grid-footer-row>\n </template>\n </template>\n </template>\n\n <template v-slot:no-data>\n <zd-iterable-no-data>\n <template v-slot:errorSlot>\n <slot name=\"errorSlot\"></slot>\n </template>\n <template v-slot:noResultSlot>\n <slot name=\"noResultSlot\"></slot>\n </template>\n <template v-slot:noDataSlot>\n <slot name=\"noDataSlot\"></slot>\n </template>\n </zd-iterable-no-data>\n </template>\n\n <template v-slot:bottom>\n <zd-grid-footer v-if=\"instance.showFooter && !hasFooterSlot\"></zd-grid-footer>\n <slot name=\"footerSlot\"></slot>\n </template>\n </v-data-table>\n</template>\n\n<script lang=\"ts\" src=\"./TekGrid.ts\"></script>\n\n<style lang=\"scss\">\n.tek-grid {\n .zd-grid__row:not(.tek-grid-group-row) {\n :nth-child(1 of td:not(.zd-grid__selectable-cell)) {\n display: flex;\n }\n }\n\n .is-rotated {\n transform: rotate(180deg);\n transition: transform 0.3s ease;\n }\n\n .toolbar-visible {\n width: 0;\n overflow: hidden;\n white-space: nowrap;\n }\n\n .zd-grid__toolbar {\n height: auto;\n\n .toolbar-divider {\n margin: 10px;\n }\n\n .zd-search {\n width: 200px;\n }\n }\n}\n</style>\n","const isArrayOperation = (operation: string) => {\n\treturn ['IN', 'NOT_IN', 'BETWEEN'].includes(operation);\n};\n\nexport { isArrayOperation };\n","import { Input, Radio, Select } from '@zeedhi/common';\nimport { type IDynamicFilterItem } from '@zeedhi/teknisa-components-common';\nimport { Config, type IEventParam, Metadata, Utils, dayjs } from '@zeedhi/core';\nimport cloneDeep from 'lodash.clonedeep';\nimport debounce from 'lodash.debounce';\nimport { type PropType, computed, defineComponent, reactive } from 'vue';\nimport { isArrayOperation } from '../../../utils/isArrayOperation';\n\nexport const TekGridColumnFilterProps = {\n\thasFilterData: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\tcolumn: {\n\t\ttype: Object,\n\t\trequired: true,\n\t},\n\tmodelValue: {\n\t\ttype: Array as PropType<IDynamicFilterItem[]>,\n\t\tdefault: [],\n\t},\n\tinstanceName: {\n\t\ttype: String,\n\t\trequired: true,\n\t},\n\tfilterRelationsDatasource: {\n\t\ttype: [Object, null] as PropType<boolean | null>,\n\t\trequired: false,\n\t},\n\tfilterOperationsDatasource: {\n\t\ttype: [Object, null] as PropType<boolean | null>,\n\t\trequired: false,\n\t},\n\tisHovering: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\tmultiple: {\n\t\ttype: Boolean,\n\t\trequired: true,\n\t},\n} as const;\n\ntype InputType = Input | Select | Radio;\n\nconst tekGridColumnFilter = defineComponent({\n\tprops: TekGridColumnFilterProps,\n\tinheritAttrs: false,\n\temits: ['update:modelValue'],\n\tsetup(props, ctx) {\n\t\tconst getValueInputName = (index: number) => `${props.instanceName}-${props.column.name}-filter-value-${index}`;\n\n\t\tconst focusValueInput = (index: number) => {\n\t\t\tconst valueInputName = getValueInputName(index);\n\t\t\tconst input = Metadata.getInstance<Input>(valueInputName);\n\n\t\t\tinput.setFocus();\n\t\t};\n\n\t\tconst createNewFilter = () => {\n\t\t\treturn reactive<IDynamicFilterItem>({\n\t\t\t\toperation: 'CONTAINS',\n\t\t\t\trelation: 'AND',\n\t\t\t\tvalue: undefined,\n\t\t\t});\n\t\t};\n\n\t\tlet newFilter = createNewFilter();\n\n\t\tconst convertToDateFormat = (value: string, revert: boolean) => {\n\t\t\tconst dateFormat = props.column!.componentProps.dateFormat || Config.dateFormat;\n\t\t\tconst displayFormat = props.column!.componentProps.displayFormat || Config.displayFormat;\n\n\t\t\tif (revert) {\n\t\t\t\tif (dayjs(value, displayFormat).isValid() || !dayjs(value, dateFormat).isValid()) {\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t\treturn dayjs(value, dateFormat).format(displayFormat);\n\t\t\t}\n\n\t\t\tif (dayjs(value, dateFormat).isValid() || !dayjs(value, displayFormat).isValid()) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\treturn dayjs(value, displayFormat).format(dateFormat);\n\t\t};\n\n\t\tconst checkDateValueFormat = (value: string | string[], revert = false) => {\n\t\t\tif (!['ZdDate', 'ZdDateRange'].includes(props.column!.componentProps.component)) return value;\n\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\treturn value.map((item) => convertToDateFormat(item, revert));\n\t\t\t}\n\t\t\treturn convertToDateFormat(value, revert);\n\t\t};\n\n\t\t// use WeakMap to avoid memory leaks\n\t\tconst idMap = new WeakMap<object, string>();\n\t\tlet idCounter = 0;\n\n\t\t// retrieves a unique id for each item\n\t\tconst getId = (item: object) => {\n\t\t\tif (!idMap.has(item)) {\n\t\t\t\tidMap.set(item, `__item__${idCounter++}`);\n\t\t\t}\n\t\t\treturn idMap.get(item)!;\n\t\t};\n\n\t\t// use computed to generate unique ids for each filter item\n\t\t// this is needed for the v-for :key updates\n\t\tconst modelWithIds = computed(() => {\n\t\t\tif (!props.multiple) {\n\t\t\t\tif (props.modelValue.length > 0) {\n\t\t\t\t\treturn [{ id: getId(props.modelValue[0]), item: props.modelValue[0] }];\n\t\t\t\t}\n\n\t\t\t\treturn [{ id: getId(newFilter), item: newFilter }];\n\t\t\t}\n\n\t\t\treturn [...props.modelValue, newFilter].map((item) => ({\n\t\t\t\tid: getId(item),\n\t\t\t\titem,\n\t\t\t}));\n\t\t});\n\n\t\tconst debounceUpdateModel = debounce((modelValue: IDynamicFilterItem[]) => {\n\t\t\tif (Utils.isEqual(modelValue, props.modelValue)) return;\n\t\t\tctx.emit('update:modelValue', modelValue);\n\t\t\tnewFilter = createNewFilter();\n\t\t}, 500);\n\n\t\tconst changeRelation = (index: number, { component }: IEventParam<InputType>) => {\n\t\t\tconst modelValue = cloneDeep(props.modelValue);\n\t\t\tconst isNewFilter = index === modelValue.length;\n\t\t\tconst filter = isNewFilter ? newFilter : modelValue[index];\n\t\t\tconst { value } = component;\n\n\t\t\tfocusValueInput(index);\n\n\t\t\t// update item type value\n\t\t\tfilter.relation = value;\n\n\t\t\tif (isNewFilter) return;\n\n\t\t\tdebounceUpdateModel(modelValue);\n\t\t};\n\n\t\tconst changeOperation = (index: number, { component }: IEventParam<InputType>) => {\n\t\t\tconst modelValue = cloneDeep(props.modelValue);\n\t\t\tconst filterItem = modelValue[index];\n\t\t\tconst isNewFilter = index === modelValue.length;\n\t\t\tconst filter = isNewFilter ? newFilter : filterItem;\n\t\t\tconst { value } = component;\n\n\t\t\tfocusValueInput(index);\n\n\t\t\t// if operation is IN, NOT_IN or BETWEEN, value should be an array\n\t\t\tif (isArrayOperation(value)) {\n\t\t\t\tfilter.value = Array.isArray(filterItem.value) ? filterItem.value : [filterItem.value];\n\t\t\t}\n\n\t\t\t// update item type value\n\t\t\tfilter.operation = value;\n\n\t\t\tif (isNewFilter) return;\n\n\t\t\tdebounceUpdateModel(modelValue);\n\t\t};\n\n\t\tconst changeValue = (item: IDynamicFilterItem, index: number, { component }: IEventParam<InputType>) => {\n\t\t\tconst modelValue = cloneDeep(props.modelValue);\n\t\t\tconst filter = cloneDeep(item);\n\t\t\tconst { value } = component;\n\t\t\tconst isNewFilter = props.multiple && index === modelValue.length;\n\t\t\tlet formattedValue = value;\n\n\t\t\tif (value && isArrayOperation(filter.operation)) {\n\t\t\t\tformattedValue = value.split(';');\n\t\t\t}\n\n\t\t\tfilter.value = checkDateValueFormat(formattedValue);\n\n\t\t\tif (!props.multiple) {\n\t\t\t\tdebounceUpdateModel([filter]);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (isNewFilter) {\n\t\t\t\t// only emit event when newFilter has value\n\t\t\t\tif (!filter.value) return;\n\n\t\t\t\tdebounceUpdateModel([...modelValue, filter]);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!filter.value) {\n\t\t\t\t// when removing the last (not new) filter, should pass its operation and relation to the new filter\n\t\t\t\tif (index === modelValue.length - 1) {\n\t\t\t\t\tnewFilter.operation = filter.operation;\n\t\t\t\t\tnewFilter.relation = filter.relation;\n\t\t\t\t}\n\n\t\t\t\tmodelValue.splice(index, 1);\n\n\t\t\t\t// if the removed filter was the first, should set the new first relation to AND\n\t\t\t\tif (modelValue.length > 0 && index === 0) {\n\t\t\t\t\tmodelValue[0].relation = 'AND';\n\t\t\t\t}\n\n\t\t\t\t// if the removed filter was the last, should set the newFilter relation to AND\n\t\t\t\tif (modelValue.length === 0) {\n\t\t\t\t\tnewFilter.relation = 'AND';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdebounceUpdateModel(modelValue);\n\t\t};\n\n\t\tconst getComponentType = (operation: string) => {\n\t\t\treturn isArrayOperation(operation) ? 'ZdTextInput' : props.column.componentProps.component;\n\t\t};\n\n\t\tconst getComponentHint = (operation: string) => {\n\t\t\treturn isArrayOperation(operation) ? 'TEKGRID_MULTIPLE_VALUE_HINT' : '';\n\t\t};\n\n\t\tconst getItemValue = (item: IDynamicFilterItem) => {\n\t\t\treturn isArrayOperation(item.operation) ? item.value.join(';') : item.value;\n\t\t};\n\n\t\treturn {\n\t\t\tchangeValue,\n\t\t\tchangeRelation,\n\t\t\tchangeOperation,\n\t\t\tgetValueInputName,\n\t\t\tnewFilter,\n\t\t\tgetComponentType,\n\t\t\tgetComponentHint,\n\t\t\tmodelWithIds,\n\t\t\tgetItemValue,\n\t\t};\n\t},\n});\n\nexport default tekGridColumnFilter;\n","<template>\n <v-menu\n offset-overflow\n offset-y\n transition=\"scale-transition\"\n content-class=\"tek-grid-column-filter__menu\"\n :close-on-content-click=\"false\"\n >\n <template #activator=\"{ props }\">\n <zd-grid-header-icon\n v-bind=\"props\"\n :icon=\"$getIcon('filter')\"\n :hidden=\"!isHovering && !hasFilterData\"\n :color=\"hasFilterData ? 'primary' : ''\"\n ></zd-grid-header-icon>\n </template>\n\n <v-card\n class=\"zd-pa-4 zd-pb-0\"\n :min-width=\"200\"\n :max-height=\"300\"\n >\n <template\n v-for=\"({ item, id }, filterIndex) in modelWithIds\"\n :key=\"id\"\n >\n <!-- relation -->\n <zd-radio\n v-if=\"multiple && filterIndex > 0\"\n :name=\"`${instanceName}-${column.name}-filter-relation-${filterIndex}`\"\n v-bind=\"{\n showLabel: false,\n showHelper: false,\n vertical: false,\n cssClass: 'zd-mb-2',\n datasource: filterRelationsDatasource,\n dataValue: 'value',\n dataLabel: 'text',\n value: item.relation,\n events: {\n change: (params: any) => changeRelation(filterIndex, params),\n },\n }\"\n />\n\n <!-- operation -->\n <zd-select\n v-if=\"multiple && item.operation\"\n :name=\"`${instanceName}-${column.name}-filter-operation-${filterIndex}`\"\n v-bind=\"{\n autocomplete: false,\n showLabel: false,\n showHelper: false,\n clearable: false,\n cssClass: 'zd-mb-2',\n datasource: filterOperationsDatasource,\n dataValue: 'value',\n dataText: 'text',\n value: item.operation,\n events: {\n change: (params: any) => changeOperation(filterIndex, params),\n },\n }\"\n />\n\n <!-- value -->\n <component\n :name=\"`${instanceName}-${column.name}-filter-value-${filterIndex}`\"\n :is=\"getComponentType(item.operation)\"\n v-bind=\"{\n ...column.componentProps,\n showLabel: false,\n showHelper: true,\n autofill: false,\n cssClass: 'zd-mb-2',\n value: getItemValue(item),\n persistentHint: true,\n hint: getComponentHint(item.operation),\n events: {\n input: (params: any) => changeValue(item, filterIndex, params),\n change: (params: any) => changeValue(item, filterIndex, params),\n },\n }\"\n />\n </template>\n </v-card>\n </v-menu>\n</template>\n\n<script lang=\"ts\" src=\"./TekGridColumnFilter.ts\"></script>\n\n<style lang=\"scss\">\n</style>","import { Column, GridColumn } from '@zeedhi/common';\nimport { type IDynamicFilterItem, TekGridColumn } from '@zeedhi/teknisa-components-common';\nimport type { IDictionary } from '@zeedhi/core';\nimport { type PropType, type UnwrapRef, defineComponent, inject } from 'vue';\nimport type { ResizeParams, CalcWidth } from '@zeedhi/vuetify';\n\nexport default defineComponent({\n\tprops: {\n\t\tselectable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\theaderBackground: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tshowSelectAll: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tallselectedState: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t\tvisibleColumns: {\n\t\t\ttype: Array as PropType<GridColumn[]>,\n\t\t\tdefault: () => [],\n\t\t},\n\t\tdragColumns: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\theaderCellTextColor: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tresizeColumns: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tgetSortIcon: {\n\t\t\ttype: Function,\n\t\t\tdefault: () => {},\n\t\t},\n\t\tisSorted: {\n\t\t\ttype: Function,\n\t\t\tdefault: () => {},\n\t\t},\n\t\ttoggleSort: {\n\t\t\ttype: Function,\n\t\t\tdefault: () => {},\n\t\t},\n\t\ttableColumns: {\n\t\t\ttype: Array as PropType<any[]>,\n\t\t\tdefault: () => [],\n\t\t},\n\t\tsortBy: {\n\t\t\ttype: Array as PropType<any[]>,\n\t\t\tdefault: () => [],\n\t\t},\n\t\tdisableCheckbox: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tsortable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tmodelValue: {\n\t\t\ttype: Object as PropType<IDictionary<IDynamicFilterItem[]>>,\n\t\t\tdefault: () => [],\n\t\t},\n\t\tinstanceName: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tfilterRelationsDatasource: {\n\t\t\ttype: [Object, null],\n\t\t\trequired: false,\n\t\t},\n\t\tfilterOperationsDatasource: {\n\t\t\ttype: [Object, null],\n\t\t\trequired: false,\n\t\t},\n\t\tcolumnFilterButton: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tcolumnHasFilter: {\n\t\t\ttype: Function as PropType<(columnName: string) => boolean>,\n\t\t\trequired: true,\n\t\t},\n\t\tlevel: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t},\n\temits: ['selectAllClick', 'resizeMousedown', 'resizeClick', 'update:modelValue'],\n\tsetup(props, { emit }) {\n\t\tconst calcWidth = inject<CalcWidth>('calcWidth');\n\n\t\tif (!calcWidth) {\n\t\t\t// TODO: use NotProvidedError\n\t\t\tthrow new Error('calcWidth');\n\t\t}\n\n\t\tconst selectAllClick = (event: Event) => {\n\t\t\temit('selectAllClick', event);\n\t\t};\n\n\t\tconst resizeMousedown = (column: GridColumn, event: ResizeParams) => {\n\t\t\temit('resizeMousedown', { event, column });\n\t\t};\n\n\t\tconst resizeClick = (event: Event) => {\n\t\t\temit('resizeClick', { event });\n\t\t};\n\n\t\tconst findOrderIndex = (sortBy: readonly any[], column: UnwrapRef<Column>) => {\n\t\t\treturn sortBy.findIndex((sort) => sort.key === column.name);\n\t\t};\n\n\t\tconst updateModelValue = (columnName: string, value: IDynamicFilterItem[]) => {\n\t\t\tconst modelValue = { ...props.modelValue };\n\t\t\tmodelValue[columnName] = value;\n\t\t\temit('update:modelValue', modelValue);\n\t\t};\n\n\t\tconst showFilterButton = (column: TekGridColumn) => {\n\t\t\treturn column.type !== 'action' && props.columnFilterButton && column.filterable;\n\t\t};\n\n\t\treturn {\n\t\t\tcalcWidth,\n\t\t\tresizeMousedown,\n\t\t\tresizeClick,\n\t\t\tfindOrderIndex,\n\t\t\tupdateModelValue,\n\t\t\tshowFilterButton,\n\t\t\tselectAllClick,\n\t\t};\n\t},\n});\n","<template>\n <zd-grid-header-row\n :name=\"name\"\n :selectable=\"selectable\"\n :headerBackground=\"headerBackground\"\n :showSelectAll=\"showSelectAll\"\n :allselectedState=\"allselectedState\"\n :visibleColumns=\"visibleColumns\"\n :dragColumns=\"dragColumns\"\n :headerCellTextColor=\"headerCellTextColor\"\n :resizeColumns=\"resizeColumns\"\n :getSortIcon=\"getSortIcon\"\n :toggleSort=\"toggleSort\"\n :sortBy=\"sortBy\"\n :tableColumns=\"tableColumns\"\n :isSorted=\"isSorted\"\n :disableCheckbox=\"disableCheckbox\"\n @selectAllClick=\"selectAllClick\"\n >\n <template #default=\"{ column, index, isHovering }\">\n <zd-grid-column-header\n :cssStyle=\"{\n 'color': headerCellTextColor,\n width: calcWidth(column),\n }\"\n :action=\"column.type === 'action'\"\n :overflow=\"column.overflow\"\n :helperText=\"column.helperText\"\n :label=\"column.label\"\n :columnAlign=\"column.align\"\n :orderIndex=\"findOrderIndex(sortBy, column)\"\n :isSortable=\"sortable && column.sortable\"\n :resizeColumns=\"resizeColumns\"\n :sortIcon=\"getSortIcon(tableColumns[index])\"\n :isSorted=\"isSorted(tableColumns[index])\"\n :isHovering=\"isHovering\"\n @click=\"toggleSort(tableColumns[index])\"\n @resizeMousedown=\"resizeMousedown(column, $event)\"\n @resizeClick=\"resizeClick($event)\"\n >\n <template #prepend v-if=\"index === 0\">\n <tek-grid-indentation\n :level=\"level\"\n :show-divider=\"false\"\n ></tek-grid-indentation>\n </template>\n <template #label>\n <span\n v-if=\"column.aggregation\"\n class=\"tek-grid-column-aggregation\"\n >({{ $t(`TEKGRID_AGGREGATION_${column.aggregation}`) }})\n </span>\n </template>\n\n <template\n #append=\"{ isHovering }\"\n v-if=\"showFilterButton(column)\"\n >\n <tek-grid-column-filter\n :modelValue=\"modelValue[column.name]\"\n :hasFilterData=\"columnHasFilter(column.name)\"\n :column=\"column\"\n :instanceName=\"instanceName\"\n :filterRelationsDatasource=\"filterRelationsDatasource\"\n :filterOperationsDatasource=\"filterOperationsDatasource\"\n :isHovering=\"isHovering\"\n :multiple=\"!!filterRelationsDatasource && !!filterOperationsDatasource\"\n @update:modelValue=\"updateModelValue(column.name, $event)\"\n ></tek-grid-column-filter>\n </template>\n </zd-grid-column-header>\n </template>\n </zd-grid-header-row>\n</template>\n\n<script lang=\"ts\" src=\"./TekGridHeaderRow.ts\"></script>\n\n<style lang=\"scss\"></style>\n","import { Iterable, Modal, Select } from '@zeedhi/common';\nimport { TekGrid, TekGridColumnsButton } from '@zeedhi/teknisa-components-common';\nimport { I18n, type IDictionary, type IEventParam, Metadata, Singleton, Utils } from '@zeedhi/core';\nimport Sortable from 'sortablejs';\n\n@Singleton\nexport default class TekGridColumnsOptionsController {\n\tpublic modal: Modal;\n\n\tpublic columnData: IDictionary<any> = {};\n\n\tpublic fixedColumns: IDictionary<any>[] = [];\n\n\tpublic visibleColumns: IDictionary<any>[] = [];\n\n\tpublic groupedColumns: IDictionary<any>[] = [];\n\n\tpublic otherColumns: IDictionary<any>[] = [];\n\n\tpublic aggregationData: IDictionary<any>[] = [];\n\n\tpublic selectedColumnNames: string[] = [];\n\n\tpublic searchValue = '';\n\n\tpublic showGroups = true;\n\n\tprivate selectedColumnsAlignment?: string;\n\n\tprivate selectedColumnsAggregation?: string;\n\n\tprivate iterableComponent!: Iterable;\n\n\tprivate instanceValue!: TekGridColumnsButton;\n\n\tconstructor(modal: Modal) {\n\t\tthis.modal = modal;\n\t}\n\n\tprivate updateArrays() {\n\t\tthis.fixedColumns = [];\n\t\tthis.visibleColumns = [];\n\t\tthis.groupedColumns = [];\n\t\tthis.otherColumns = [];\n\n\t\tObject.keys(this.columnData).forEach((name) => {\n\t\t\tconst column = this.columnData[name];\n\n\t\t\tif (this.instanceValue && this.instanceValue.ignoreColumns.indexOf(column.name) === -1) {\n\t\t\t\tif (column.grouped) {\n\t\t\t\t\tthis.groupedColumns.push(column);\n\t\t\t\t} else if (column.fixed) {\n\t\t\t\t\tthis.fixedColumns.push(column);\n\t\t\t\t} else if (column.isVisible) {\n\t\t\t\t\tthis.visibleColumns.push(column);\n\t\t\t\t} else {\n\t\t\t\t\tthis.otherColumns.push(column);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tset instance(instance: TekGridColumnsButton) {\n\t\tthis.instanceValue = instance;\n\t\tthis.iterableComponent = instance.iterableComponent;\n\t\tthis.showGroups = instance.iterableComponent instanceof TekGrid;\n\t\tthis.aggregationData = instance.getAggregationSelectData();\n\t\tthis.columnData = {};\n\n\t\tthis.iterableComponent.columns.forEach((column: any) => {\n\t\t\tthis.columnData[column.name] = {\n\t\t\t\tname: column.name,\n\t\t\t\tlabel: column.label,\n\t\t\t\tfixed: column.fixed,\n\t\t\t\tisVisible: column.isVisible,\n\t\t\t\talign: column.align,\n\t\t\t\tgrouped: column.grouped || false,\n\t\t\t\tgroupOpened: column.groupOpened || false,\n\t\t\t\taggregation: column.aggregation,\n\t\t\t\taggregationText: this.getAggregationText(column.aggregation),\n\t\t\t\tselected: false,\n\t\t\t};\n\t\t});\n\n\t\tthis.updateArrays();\n\n\t\tthis.selectedColumnNames = [];\n\t}\n\n\tprivate getAggregationText(aggregation?: string) {\n\t\tlet result = '';\n\t\tif (aggregation) {\n\t\t\tconst idx = this.aggregationData.findIndex((item) => item.value === aggregation);\n\t\t\tif (idx !== -1) {\n\t\t\t\tresult = ` (${this.aggregationData[idx].text})`;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tprivate columnInSearch(column: any) {\n\t\treturn !this.searchValue || Utils.normalize(column.label).indexOf(Utils.normalize(this.searchValue)) !== -1;\n\t}\n\n\tget fixedColumnData() {\n\t\treturn this.fixedColumns.filter(this.columnInSearch.bind(this));\n\t}\n\n\tset fixedColumnData(_data: any) {\n\t\t// do nothing\n\t}\n\n\tget visibleColumnData() {\n\t\treturn this.visibleColumns.filter(this.columnInSearch.bind(this));\n\t}\n\n\tset visibleColumnData(_data: any) {\n\t\t// do nothing\n\t}\n\n\tget groupedColumnData() {\n\t\treturn this.groupedColumns.filter(this.columnInSearch.bind(this));\n\t}\n\n\tset groupedColumnData(_data: any) {\n\t\t// do nothing\n\t}\n\n\tget otherColumnData() {\n\t\treturn this.otherColumns.filter(this.columnInSearch.bind(this));\n\t}\n\n\tset otherColumnData(_data: any) {\n\t\t// do nothing\n\t}\n\n\tget hasSelectedColumn(): boolean {\n\t\treturn this.selectedColumnNames.length > 0;\n\t}\n\n\tget hasNoSelectedColumn(): boolean {\n\t\treturn !this.hasSelectedColumn;\n\t}\n\n\tget detailColumnName(): string {\n\t\tconst columnNames = this.selectedColumnNames.length\n\t\t\t? this.selectedColumnNames.join(', ')\n\t\t\t: I18n.translate('TEKGRID_SELECT_COLUMN');\n\n\t\treturn `${I18n.translate('TEKGRID_DETAILS_FOR')} ${columnNames}`;\n\t}\n\n\tget hasNoFixedColumns(): boolean {\n\t\treturn this.fixedColumns.length === 0;\n\t}\n\n\tget hasNoVisibleColumns(): boolean {\n\t\treturn this.visibleColumns.length === 0;\n\t}\n\n\tget hasNoGroupedColumns(): boolean {\n\t\treturn this.groupedColumns.length === 0;\n\t}\n\n\tget hasNoOtherColumns(): boolean {\n\t\treturn this.otherColumns.length === 0;\n\t}\n\n\tget hasNoSingleSelection(): boolean {\n\t\treturn this.selectedColumnNames.length !== 1;\n\t}\n\n\tget selectedColumnLabel() {\n\t\treturn this.selectedColumnNames.length === 1 ? this.columnData[this.selectedColumnNames[0]].label : '';\n\t}\n\n\tset selectedColumnLabel(value: string) {\n\t\tif (this.selectedColumnNames.length === 1) {\n\t\t\tthis.columnData[this.selectedColumnNames[0]].label = value;\n\t\t}\n\t}\n\n\tprivate getSameValue(propName: string) {\n\t\tconst isEqual =\n\t\t\tthis.selectedColumnNames.length > 0 &&\n\t\t\tthis.selectedColumnNames.every(\n\t\t\t\t(name) => this.columnData[name][propName] === this.columnData[this.selectedColumnNames[0]][propName],\n\t\t\t);\n\t\treturn isEqual ? this.columnData[this.selectedColumnNames[0]][propName] : undefined;\n\t}\n\n\tprivate setSameValue(propName: string, value: any) {\n\t\tthis.selectedColumnNames.forEach((name) => {\n\t\t\tthis.columnData[name][propName] = value;\n\t\t});\n\t}\n\n\tget groupInSelection(): boolean {\n\t\treturn this.hasNoSelectedColumn || this.selectedColumnNames.some((name) => this.columnData[name].grouped);\n\t}\n\n\tget notGroupInSelection(): boolean {\n\t\treturn this.hasNoSelectedColumn || this.selectedColumnNames.some((name) => !this.columnData[name].grouped);\n\t}\n\n\tget selectedColumnGroupOpened(): any {\n\t\treturn this.getSameValue('groupOpened');\n\t}\n\n\tset selectedColumnGroupOpened(value: any) {\n\t\tthis.setSameValue('groupOpened', value);\n\t}\n\n\tpublic onShowModal() {\n\t\tconst selectNames = ['tekGridColumnsOptionsColumnAlignment', 'tekGridColumnsOptionsColumnAggregation'];\n\t\tselectNames.forEach((name) => {\n\t\t\tconst select = Metadata.getInstance<Select>(name);\n\t\t\tselect.value = '';\n\t\t});\n\t}\n\n\tpublic selectMounted({ component }: IEventParam<Select>) {\n\t\tthis.updatingSelect = true;\n\t\tif (component.name === 'tekGridColumnsOptionsColumnAlignment') {\n\t\t\tcomponent.value = this.selectedColumnsAlignment;\n\t\t} else if (component.name === 'tekGridColumnsOptionsColumnAggregation') {\n\t\t\tcomponent.value = this.selectedColumnsAggregation;\n\t\t}\n\n\t\t// prevent changing column value from here\n\t\tsetTimeout(() => {\n\t\t\tthis.updatingSelect = false;\n\t\t}, 0);\n\t}\n\n\tprivate updatingSelect = false;\n\n\tpublic selectChange({ component }: IEventParam<Select>) {\n\t\tif (this.updatingSelect) return;\n\n\t\tif (component.name === 'tekGridColumnsOptionsColumnAlignment') {\n\t\t\tthis.setSameValue('align', component.value);\n\t\t} else {\n\t\t\tthis.setSameValue('aggregation', component.value);\n\t\t\tthis.setSameValue('aggregationText', this.getAggregationText(component.value));\n\t\t}\n\t}\n\n\tprivate updateSelects() {\n\t\tthis.selectedColumnsAlignment = this.updateSelect('align');\n\t\tthis.selectedColumnsAggregation = this.updateSelect('aggregation');\n\t}\n\n\tprivate updateSelect(propName: string) {\n\t\tthis.updatingSelect = true;\n\t\tconst propValue = this.getSameValue(propName);\n\t\tconst selectNames: IDictionary<any> = {\n\t\t\talign: 'tekGridColumnsOptionsColumnAlignment',\n\t\t\taggregation: 'tekGridColumnsOptionsColumnAggregation',\n\t\t};\n\n\t\tconst instances = Metadata.getInstances(selectNames[propName]);\n\t\tif (instances[0]) {\n\t\t\t(instances[0] as Select).value = propValue;\n\t\t}\n\n\t\t// prevent changing column value from here\n\t\tsetTimeout(() => {\n\t\t\tthis.updatingSelect = false;\n\t\t}, 0);\n\t\treturn propValue;\n\t}\n\n\tprivate columnRemoveClick(column: IDictionary) {\n\t\tcolumn.isVisible = false;\n\t\tthis.selectedColumnNames.splice(this.selectedColumnNames.indexOf(column.name), 1);\n\t\tthis.otherColumns.push(column);\n\t}\n\n\tpublic columnFixedRemoveClick({ element }: IEventParam<any>) {\n\t\tconst columnName = element?.getAttribute('columnname');\n\t\tif (columnName) {\n\t\t\tconst column = this.columnData[columnName];\n\t\t\tthis.columnRemoveClick(column);\n\t\t\tthis.fixedColumns.splice(this.fixedColumns.indexOf(column), 1);\n\t\t}\n\t}\n\n\tpublic columnVisibleRemoveClick({ element }: IEventParam<any>) {\n\t\tconst columnName = element?.getAttribute('columnname');\n\t\tif (columnName) {\n\t\t\tconst column = this.columnData[columnName];\n\t\t\tthis.columnRemoveClick(column);\n\t\t\tthis.visibleColumns.splice(this.visibleColumns.indexOf(column), 1);\n\t\t}\n\t}\n\n\tpublic columnGroupedRemoveClick({ element }: IEventParam<any>) {\n\t\tconst columnName = element?.getAttribute('columnname');\n\t\tif (columnName) {\n\t\t\tconst column = this.columnData[columnName];\n\t\t\tthis.columnRemoveClick(column);\n\t\t\tthis.groupedColumns.splice(this.groupedColumns.indexOf(column), 1);\n\t\t}\n\t}\n\n\tprivate isMacPlatform() {\n\t\treturn /Mac/.test(navigator.platform);\n\t}\n\n\tprivate isMobilePlatform() {\n\t\treturn /iPhone|iPad|Android/.test(navigator.platform);\n\t}\n\n\tpublic columnClick({ element, event }: IEventParam<any>) {\n\t\tconst columnName = element!.getAttribute('columnname');\n\t\tif (columnName) {\n\t\t\tconst mouseEvent = event as MouseEvent;\n\t\t\tconst multiple = (this.isMacPlatform() && mouseEvent.metaKey) || mouseEvent.ctrlKey || this.isMobilePlatform();\n\t\t\tif (!multiple) {\n\t\t\t\tObject.keys(this.columnData).forEach((name) => {\n\t\t\t\t\tconst column = this.columnData[name];\n\t\t\t\t\tcolumn.selected = column.name === columnName;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.columnData[columnName].selected = !this.columnData[columnName].selected;\n\t\t\t}\n\n\t\t\tconst orderedColumns = this.fixedColumns\n\t\t\t\t.concat(this.visibleColumns)\n\t\t\t\t.concat(this.groupedColumns)\n\t\t\t\t.concat(this.otherColumns);\n\t\t\tthis.selectedColumnNames = orderedColumns.filter((column) => column.selected).map((column) => column.name);\n\t\t\tthis.updateSelects();\n\t\t}\n\t}\n\n\tprivate removeFromSourceList(columnName: string) {\n\t\tconst column = this.columnData[columnName];\n\t\tconst fixedIdx = this.fixedColumns.indexOf(column);\n\t\tif (fixedIdx !== -1) {\n\t\t\tthis.fixedColumns.splice(fixedIdx, 1);\n\t\t} else {\n\t\t\tconst visibleIdx = this.visibleColumns.indexOf(column);\n\t\t\tif (visibleIdx !== -1) {\n\t\t\t\tthis.visibleColumns.splice(visibleIdx, 1);\n\t\t\t} else {\n\t\t\t\tconst groupedIdx = this.groupedColumns.indexOf(column);\n\t\t\t\tif (groupedIdx !== -1) {\n\t\t\t\t\tthis.groupedColumns.splice(groupedIdx, 1);\n\t\t\t\t} else {\n\t\t\t\t\tconst otherIdx = this.otherColumns.indexOf(column);\n\t\t\t\t\tif (otherIdx !== -1) {\n\t\t\t\t\t\tthis.otherColumns.splice(otherIdx, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate onDragEnd(event: any) {\n\t\tconst columnName = event.item.getAttribute('columnname');\n\t\tif (this.selectedColumnNames.indexOf(columnName) === -1) {\n\t\t\tthis.selectedColumnNames = [columnName];\n\t\t\tthis.updateSelects();\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tObject.keys(this.columnData).forEach((name) => {\n\t\t\t\t\tconst column = this.columnData[name];\n\t\t\t\t\tcolumn.selected = column.name === columnName;\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tthis.selectedColumnNames.forEach((name, index) => {\n\t\t\tconst newIndex = event.newIndex + index;\n\t\t\tif (name) {\n\t\t\t\tthis.removeFromSourceList(name);\n\t\t\t\tconst column = this.columnData[name];\n\t\t\t\tif (event.to.id === 'tekGridColumnsOptionsFixedColumns') {\n\t\t\t\t\tcolumn.fixed = true;\n\t\t\t\t\tcolumn.isVisible = true;\n\t\t\t\t\tcolumn.grouped = false;\n\t\t\t\t\tcolumn.groupOpened = false;\n\t\t\t\t\tthis.fixedColumns.splice(newIndex, 0, column);\n\t\t\t\t} else if (event.to.id === 'tekGridColumnsOptionsVisibleColumns') {\n\t\t\t\t\tcolumn.fixed = false;\n\t\t\t\t\tcolumn.isVisible = true;\n\t\t\t\t\tcolumn.grouped = false;\n\t\t\t\t\tcolumn.groupOpened = false;\n\t\t\t\t\tthis.visibleColumns.splice(newIndex, 0, column);\n\t\t\t\t} else if (event.to.id === 'tekGridColumnsOptionsOtherColumns') {\n\t\t\t\t\tcolumn.fixed = false;\n\t\t\t\t\tcolumn.isVisible = false;\n\t\t\t\t\tcolumn.grouped = false;\n\t\t\t\t\tcolumn.groupOpened = false;\n\t\t\t\t\tthis.otherColumns.splice(newIndex, 0, column);\n\t\t\t\t} else if (event.to.id === 'tekGridColumnsOptionsGroupedColumns') {\n\t\t\t\t\tcolumn.fixed = false;\n\t\t\t\t\tcolumn.isVisible = true;\n\t\t\t\t\tcolumn.grouped = true;\n\t\t\t\t\tcolumn.aggregation = undefined;\n\t\t\t\t\tcolumn.aggregationText = '';\n\t\t\t\t\tthis.groupedColumns.splice(newIndex, 0, column);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic columnContainerMounted({ element }: IEventParam<Modal>) {\n\t\tif (element) {\n\t\t\tSortable.create(element, {\n\t\t\t\thandle: '.tek-grid-column-option-box',\n\t\t\t\tgroup: 'column-container',\n\t\t\t\tfilter: '.no-data, .tek-grid-column-option-grouped-true',\n\t\t\t\tonEnd: this.onDragEnd.bind(this),\n\t\t\t} as any);\n\t\t}\n\t}\n\n\tpublic selectAll({ component }: IEventParam<any>) {\n\t\tlet list: IDictionary<any>[];\n\t\tif (component.name === 'tekGridColumnsOptionsFixedSelectAll') {\n\t\t\tlist = this.fixedColumns;\n\t\t} else if (component.name === 'tekGridColumnsOptionsVisibleSelectAll') {\n\t\t\tlist = this.visibleColumns;\n\t\t} else if (component.name === 'tekGridColumnsOptionsOtherSelectAll') {\n\t\t\tlist = this.otherColumns;\n\t\t} else {\n\t\t\tlist = this.groupedColumns;\n\t\t}\n\n\t\tthis.selectedColumnNames = list.map((column) => column.name);\n\t\tObject.keys(this.columnData).forEach((columnName) => {\n\t\t\tconst column = this.columnData[columnName];\n\t\t\tcolumn.selected = this.selectedColumnNames.indexOf(column.name) !== -1;\n\t\t});\n\t}\n\n\tpublic cancelChanges() {\n\t\tthis.modal.hide();\n\t}\n\n\tpublic applyChanges({ event, element }: IEventParam<any>) {\n\t\tconst ignoredColumns = this.iterableComponent.columns.filter(\n\t\t\t(column) => this.instanceValue && this.instanceValue.ignoreColumns.indexOf(column.name) !== -1,\n\t\t);\n\t\tconst orderedColumns = this.groupedColumns\n\t\t\t.concat(this.fixedColumns)\n\t\t\t.concat(this.visibleColumns)\n\t\t\t.concat(this.otherColumns)\n\t\t\t.concat(ignoredColumns);\n\t\tif (this.iterableComponent) {\n\t\t\tthis.iterableComponent.columns = orderedColumns.map((orderColumn) => {\n\t\t\t\tconst columnIdx = this.iterableComponent.columns.findIndex((column) => column.name === orderColumn.name);\n\t\t\t\tconst iterableColumn = this.iterableComponent.columns[columnIdx] as any;\n\t\t\t\titerableColumn.fixed = orderColumn.fixed;\n\t\t\t\titerableColumn.isVisible = orderColumn.isVisible;\n\t\t\t\titerableColumn.grouped = orderColumn.grouped;\n\t\t\t\titerableColumn.groupOpened = orderColumn.groupOpened;\n\t\t\t\titerableColumn.label = orderColumn.label;\n\t\t\t\titerableColumn.align = orderColumn.align;\n\t\t\t\titerableColumn.aggregation = orderColumn.aggregation;\n\t\t\t\treturn iterableColumn;\n\t\t\t});\n\n\t\t\tconst { datasource } = this.iterableComponent;\n\t\t\tconst order = datasource.order.filter((item) => {\n\t\t\t\tconst columnName = item.split('.')[0];\n\t\t\t\treturn this.groupedColumns.findIndex((column) => column.name === columnName) === -1;\n\t\t\t});\n\t\t\tdatasource.order = this.groupedColumns.map((column) => `${column.name}.asc`).concat(order);\n\n\t\t\tthis.iterableComponent.changeLayout(event, element);\n\t\t}\n\t\tthis.modal.hide();\n\t}\n}\n","import { type IModal, Modal, ModalService } from '@zeedhi/common';\nimport { TekGridColumnsButton } from '@zeedhi/teknisa-components-common';\nimport { Loader } from '@zeedhi/core';\nimport type { UnwrapNestedRefs } from 'vue';\nimport TekGridColumnsOptionsController from './TekGridColumnsOptionsController';\n\nexport default class TekGridColumnsOptionsModal {\n\tprivate static controllerName = `TekGridColumnsOptionsController_${Date.now()}`;\n\n\tprivate static modalDef: IModal = {\n\t\tname: 'tekGridColumnsOptionsModal',\n\t\ttitle: '',\n\t\tpersistent: true,\n\t\tgrid: {\n\t\t\tsm: 11,\n\t\t\tmd: 9,\n\t\t},\n\t\tchildren: [\n\t\t\t{\n\t\t\t\tname: 'tekGridColumnsOptionsCloseButtonContainer',\n\t\t\t\tcomponent: 'ZdContainer',\n\t\t\t\tcssClass: 'zd-pa-0 zd-mb-6 zd-display-flex',\n\t\t\t\tchildren: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'tekGridColumnsOptionsTitleText',\n\t\t\t\t\t\tcomponent: 'ZdText',\n\t\t\t\t\t\ttext: 'TEKGRID_COLUMNS_OPTIONS',\n\t\t\t\t\t\tcssClass: 'zd-theme-font-title',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'tekGridColumnsOptionsFilterSpacer',\n\t\t\t\t\t\tcomponent: 'VSpacer',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'tekGridColumnsOptionsCloseModalButton',\n\t\t\t\t\t\tcomponent: 'ZdModalCloseButton',\n\t\t\t\t\t\tsmall: true,\n\t\t\t\t\t\tmodalName: 'tekGridColumnsOptionsModal',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'tekGridColumnsOptionsSearchRow',\n\t\t\t\tcomponent: 'ZdRow',\n\t\t\t\tchildren: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'tekGridColumnsOptionsSearchCol',\n\t\t\t\t\t\tcomponent: 'ZdCol',\n\t\t\t\t\t\tcols: 12,\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsSearchInput',\n\t\t\t\t\t\t\t\tcomponent: 'ZdTextInput',\n\t\t\t\t\t\t\t\tshowLabel: false,\n\t\t\t\t\t\t\t\tshowHelper: false,\n\t\t\t\t\t\t\t\tplaceholder: 'SEARCH',\n\t\t\t\t\t\t\t\tappendIcon: 'magnify',\n\t\t\t\t\t\t\t\tvalue: `{{${TekGridColumnsOptionsModal.controllerName}.searchValue}}`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'tekGridColumnsOptionsFixedRow',\n\t\t\t\tcomponent: 'ZdRow',\n\t\t\t\tchildren: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'tekGridColumnsOptionsFixedCol',\n\t\t\t\t\t\tcomponent: 'ZdCol',\n\t\t\t\t\t\tcols: 12,\n\t\t\t\t\t\tcssClass: 'tek-grid-column-option-container-col',\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsFixedLabel',\n\t\t\t\t\t\t\t\tcomponent: 'ZdText',\n\t\t\t\t\t\t\t\ttext: 'TEKGRID_FIXED_COLUMNS',\n\t\t\t\t\t\t\t\tcssClass: 'tek-grid-column-option-label',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsFixedSelectAll',\n\t\t\t\t\t\t\t\tcomponent: 'ZdText',\n\t\t\t\t\t\t\t\ttext: 'TEKGRID_SELECT_ALL',\n\t\t\t\t\t\t\t\tcssClass: 'tek-grid-column-option-select-all',\n\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\tclick: `{{${TekGridColumnsOptionsModal.controllerName}.selectAll}}`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsFixedDropHere',\n\t\t\t\t\t\t\t\tcomponent: 'ZdText',\n\t\t\t\t\t\t\t\ttext: 'TEKGRID_DROP_COLUMNS',\n\t\t\t\t\t\t\t\tcssClass: 'tek-grid-column-option-drop-here',\n\t\t\t\t\t\t\t\tisVisible: `{{${TekGridColumnsOptionsModal.controllerName}.hasNoFixedColumns}}`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsFixedColumns',\n\t\t\t\t\t\t\t\tcomponent: 'TekIterableComponentRender',\n\t\t\t\t\t\t\t\tid: 'tekGridColumnsOptionsFixedColumns',\n\t\t\t\t\t\t\t\tcssClass: 'tek-grid-column-option-container',\n\t\t\t\t\t\t\t\tdatasource: {\n\t\t\t\t\t\t\t\t\tuniqueKey: 'name',\n\t\t\t\t\t\t\t\t\tdata: `{{${TekGridColumnsOptionsModal.controllerName}.fixedColumnData}}`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnoDataSlot: [],\n\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\tonMounted: `{{${TekGridColumnsOptionsModal.controllerName}.columnContainerMounted}}`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tcomponentMetadata: {\n\t\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsFixedColumn_<<row.name>>',\n\t\t\t\t\t\t\t\t\tcomponent: 'ZdTag',\n\t\t\t\t\t\t\t\t\tcolumnName: '<<row.name>>',\n\t\t\t\t\t\t\t\t\tcssClass:\n\t\t\t\t\t\t\t\t\t\t'tek-grid-column-option-box zd-elevation-1 ' + 'tek-grid-column-option-selected-<<row.selected>>',\n\t\t\t\t\t\t\t\t\ttag: 'div',\n\t\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsFixedColumnText_<<row.name>>',\n\t\t\t\t\t\t\t\t\t\t\tcolumnName: '<<row.name>>',\n\t\t\t\t\t\t\t\t\t\t\tcomponent: 'ZdText',\n\t\t\t\t\t\t\t\t\t\t\ttext: '<<row.label>><<row.aggregationText>>',\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsFixedColumnRemove_<<row.name>>',\n\t\t\t\t\t\t\t\t\t\t\tcolumnName: '<<row.name>>',\n\t\t\t\t\t\t\t\t\t\t\tcomponent: 'ZdIcon',\n\t\t\t\t\t\t\t\t\t\t\ticonName: 'close',\n\t\t\t\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\t\t\t\tclick: `{{${TekGridColumnsOptionsModal.controllerName}.columnFixedRemoveClick}}`,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\t\tclick: `{{${TekGridColumnsOptionsModal.controllerName}.columnClick}}`,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'tekGridColumnsOptionsVisibleRow',\n\t\t\t\tcomponent: 'ZdRow',\n\t\t\t\tchildren: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'tekGridColumnsOptionsVisibleCol',\n\t\t\t\t\t\tcomponent: 'ZdCol',\n\t\t\t\t\t\tcols: 12,\n\t\t\t\t\t\tcssClass: 'tek-grid-column-option-container-col',\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsVisibleLabel',\n\t\t\t\t\t\t\t\tcomponent: 'ZdText',\n\t\t\t\t\t\t\t\ttext: 'TEKGRID_VISIBLE_COLUMNS',\n\t\t\t\t\t\t\t\tcssClass: 'tek-grid-column-option-label',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsVisibleSelectAll',\n\t\t\t\t\t\t\t\tcomponent: 'ZdText',\n\t\t\t\t\t\t\t\ttext: 'TEKGRID_SELECT_ALL',\n\t\t\t\t\t\t\t\tcssClass: 'tek-grid-column-option-select-all',\n\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\tclick: `{{${TekGridColumnsOptionsModal.controllerName}.selectAll}}`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsVisibleDropHere',\n\t\t\t\t\t\t\t\tcomponent: 'ZdText',\n\t\t\t\t\t\t\t\ttext: 'TEKGRID_DROP_COLUMNS',\n\t\t\t\t\t\t\t\tcssClass: 'tek-grid-column-option-drop-here',\n\t\t\t\t\t\t\t\tisVisible: `{{${TekGridColumnsOptionsModal.controllerName}.hasNoVisibleColumns}}`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsVisibleColumns',\n\t\t\t\t\t\t\t\tcomponent: 'TekIterableComponentRender',\n\t\t\t\t\t\t\t\tid: 'tekGridColumnsOptionsVisibleColumns',\n\t\t\t\t\t\t\t\tcssClass: 'tek-grid-column-option-container',\n\t\t\t\t\t\t\t\tdatasource: {\n\t\t\t\t\t\t\t\t\tuniqueKey: 'name',\n\t\t\t\t\t\t\t\t\tdata: `{{${TekGridColumnsOptionsModal.controllerName}.visibleColumnData}}`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnoDataSlot: [],\n\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\tonMounted: `{{${TekGridColumnsOptionsModal.controllerName}.columnContainerMounted}}`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tcomponentMetadata: {\n\t\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsVisibleColumn_<<row.name>>',\n\t\t\t\t\t\t\t\t\tcomponent: 'ZdTag',\n\t\t\t\t\t\t\t\t\tcolumnName: '<<row.name>>',\n\t\t\t\t\t\t\t\t\tcssClass:\n\t\t\t\t\t\t\t\t\t\t'tek-grid-column-option-box zd-elevation-1 ' + 'tek-grid-column-option-selected-<<row.selected>>',\n\t\t\t\t\t\t\t\t\ttag: 'div',\n\t\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsVisibleColumnText_<<row.name>>',\n\t\t\t\t\t\t\t\t\t\t\tcolumnName: '<<row.name>>',\n\t\t\t\t\t\t\t\t\t\t\tcomponent: 'ZdText',\n\t\t\t\t\t\t\t\t\t\t\ttext: '<<row.label>><<row.aggregationText>>',\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsVisibleColumnRemove_<<row.name>>',\n\t\t\t\t\t\t\t\t\t\t\tcolumnName: '<<row.name>>',\n\t\t\t\t\t\t\t\t\t\t\tcomponent: 'ZdIcon',\n\t\t\t\t\t\t\t\t\t\t\ticonName: 'close',\n\t\t\t\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\t\t\t\tclick: `{{${TekGridColumnsOptionsModal.controllerName}.columnVisibleRemoveClick}}`,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\t\tclick: `{{${TekGridColumnsOptionsModal.controllerName}.columnClick}}`,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'tekGridColumnsOptionsGroupedRow',\n\t\t\t\tcomponent: 'ZdRow',\n\t\t\t\tisVisible: `{{${TekGridColumnsOptionsModal.controllerName}.showGroups}}`,\n\t\t\t\tchildren: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'tekGridColumnsOptionsGroupedCol',\n\t\t\t\t\t\tcomponent: 'ZdCol',\n\t\t\t\t\t\tcssClass: 'tek-grid-column-option-container-col',\n\t\t\t\t\t\tcols: 12,\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsGroupedLabel',\n\t\t\t\t\t\t\t\tcomponent: 'ZdText',\n\t\t\t\t\t\t\t\ttext: 'TEKGRID_GROUPED_COLUMNS',\n\t\t\t\t\t\t\t\tcssClass: 'tek-grid-column-option-label',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsGroupedSelectAll',\n\t\t\t\t\t\t\t\tcomponent: 'ZdText',\n\t\t\t\t\t\t\t\ttext: 'TEKGRID_SELECT_ALL',\n\t\t\t\t\t\t\t\tcssClass: 'tek-grid-column-option-select-all',\n\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\tclick: `{{${TekGridColumnsOptionsModal.controllerName}.selectAll}}`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsGroupedDropHere',\n\t\t\t\t\t\t\t\tcomponent: 'ZdText',\n\t\t\t\t\t\t\t\ttext: 'TEKGRID_DROP_COLUMNS',\n\t\t\t\t\t\t\t\tcssClass: 'tek-grid-column-option-drop-here',\n\t\t\t\t\t\t\t\tisVisible: `{{${TekGridColumnsOptionsModal.controllerName}.hasNoGroupedColumns}}`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsGroupedColumns',\n\t\t\t\t\t\t\t\tcomponent: 'TekIterableComponentRender',\n\t\t\t\t\t\t\t\tid: 'tekGridColumnsOptionsGroupedColumns',\n\t\t\t\t\t\t\t\tcssClass: 'tek-grid-column-option-container',\n\t\t\t\t\t\t\t\tdatasource: {\n\t\t\t\t\t\t\t\t\tuniqueKey: 'name',\n\t\t\t\t\t\t\t\t\tdata: `{{${TekGridColumnsOptionsModal.controllerName}.groupedColumnData}}`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnoDataSlot: [],\n\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\tonMounted: `{{${TekGridColumnsOptionsModal.controllerName}.columnContainerMounted}}`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tcomponentMetadata: {\n\t\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsGroupedColumn_<<row.name>>',\n\t\t\t\t\t\t\t\t\tcomponent: 'ZdTag',\n\t\t\t\t\t\t\t\t\tcolumnName: '<<row.name>>',\n\t\t\t\t\t\t\t\t\tcssClass:\n\t\t\t\t\t\t\t\t\t\t'tek-grid-column-option-box zd-elevation-1 ' + 'tek-grid-column-option-selected-<<row.selected>>',\n\t\t\t\t\t\t\t\t\ttag: 'div',\n\t\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsGroupedColumnText_<<row.name>>',\n\t\t\t\t\t\t\t\t\t\t\tcolumnName: '<<row.name>>',\n\t\t\t\t\t\t\t\t\t\t\tcomponent: 'ZdText',\n\t\t\t\t\t\t\t\t\t\t\ttext: '<<row.label>><<row.aggregationText>>',\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsGroupedColumnRemove_<<row.name>>',\n\t\t\t\t\t\t\t\t\t\t\tcolumnName: '<<row.name>>',\n\t\t\t\t\t\t\t\t\t\t\tcomponent: 'ZdIcon',\n\t\t\t\t\t\t\t\t\t\t\ticonName: 'close',\n\t\t\t\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\t\t\t\tclick: `{{${TekGridColumnsOptionsModal.controllerName}.columnGroupedRemoveClick}}`,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\t\tclick: `{{${TekGridColumnsOptionsModal.controllerName}.columnClick}}`,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'tekGridColumnsOptionsOtherRow',\n\t\t\t\tcomponent: 'ZdRow',\n\t\t\t\tchildren: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'tekGridColumnsOptionsOtherCol',\n\t\t\t\t\t\tcomponent: 'ZdCol',\n\t\t\t\t\t\tcssClass: 'tek-grid-column-option-container-col',\n\t\t\t\t\t\tcols: 12,\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsOtherLabel',\n\t\t\t\t\t\t\t\tcomponent: 'ZdText',\n\t\t\t\t\t\t\t\ttext: 'TEKGRID_OTHER_COLUMNS',\n\t\t\t\t\t\t\t\tcssClass: 'tek-grid-column-option-label',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsOtherSelectAll',\n\t\t\t\t\t\t\t\tcomponent: 'ZdText',\n\t\t\t\t\t\t\t\ttext: 'TEKGRID_SELECT_ALL',\n\t\t\t\t\t\t\t\tcssClass: 'tek-grid-column-option-select-all',\n\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\tclick: `{{${TekGridColumnsOptionsModal.controllerName}.selectAll}}`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsOtherDropHere',\n\t\t\t\t\t\t\t\tcomponent: 'ZdText',\n\t\t\t\t\t\t\t\ttext: 'TEKGRID_DROP_COLUMNS',\n\t\t\t\t\t\t\t\tcssClass: 'tek-grid-column-option-drop-here',\n\t\t\t\t\t\t\t\tisVisible: `{{${TekGridColumnsOptionsModal.controllerName}.hasNoOtherColumns}}`,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsOtherColumns',\n\t\t\t\t\t\t\t\tcomponent: 'TekIterableComponentRender',\n\t\t\t\t\t\t\t\tid: 'tekGridColumnsOptionsOtherColumns',\n\t\t\t\t\t\t\t\tcssClass: 'tek-grid-column-option-container',\n\t\t\t\t\t\t\t\tdatasource: {\n\t\t\t\t\t\t\t\t\tuniqueKey: 'name',\n\t\t\t\t\t\t\t\t\tdata: `{{${TekGridColumnsOptionsModal.controllerName}.otherColumnData}}`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tnoDataSlot: [],\n\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\tonMounted: `{{${TekGridColumnsOptionsModal.controllerName}.columnContainerMounted}}`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tcomponentMetadata: {\n\t\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsOtherColumn_<<row.name>>',\n\t\t\t\t\t\t\t\t\tcomponent: 'ZdText',\n\t\t\t\t\t\t\t\t\tcolumnName: '<<row.name>>',\n\t\t\t\t\t\t\t\t\ttext: '<<row.label>><<row.aggregationText>>',\n\t\t\t\t\t\t\t\t\tcssClass:\n\t\t\t\t\t\t\t\t\t\t'tek-grid-column-option-box zd-elevation-1 ' + 'tek-grid-column-option-selected-<<row.selected>>',\n\t\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\t\tclick: `{{${TekGridColumnsOptionsModal.controllerName}.columnClick}}`,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'tekGridColumnsOptionsDetailColumnName',\n\t\t\t\tcomponent: 'ZdText',\n\t\t\t\tcssClass: 'tek-grid-column-option-detail-name',\n\t\t\t\ttext: `{{${TekGridColumnsOptionsModal.controllerName}.detailColumnName}}`,\n\t\t\t\tgrid: {\n\t\t\t\t\txs: 12,\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'tekGridColumnsOptionsDetailRow',\n\t\t\t\tcomponent: 'ZdRow',\n\t\t\t\tchildren: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'tekGridColumnsOptionsDetailCol',\n\t\t\t\t\t\tcomponent: 'ZdCol',\n\t\t\t\t\t\tcols: 12,\n\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsDetailForm',\n\t\t\t\t\t\t\t\tcomponent: 'ZdForm',\n\t\t\t\t\t\t\t\tcssClass: 'tek-grid-column-option-detail-form',\n\t\t\t\t\t\t\t\tchildren: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsColumnLabel',\n\t\t\t\t\t\t\t\t\t\tcomponent: 'ZdTextInput',\n\t\t\t\t\t\t\t\t\t\tlabel: 'TEKGRID_COLUMN_LABEL',\n\t\t\t\t\t\t\t\t\t\tshowHelper: false,\n\t\t\t\t\t\t\t\t\t\tclearable: false,\n\t\t\t\t\t\t\t\t\t\tdisabled: `{{${TekGridColumnsOptionsModal.controllerName}.hasNoSingleSelection}}`,\n\t\t\t\t\t\t\t\t\t\tvalue: `{{${TekGridColumnsOptionsModal.controllerName}.selectedColumnLabel}}`,\n\t\t\t\t\t\t\t\t\t\tgrid: {\n\t\t\t\t\t\t\t\t\t\t\txs: 12,\n\t\t\t\t\t\t\t\t\t\t\tmd: 5,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsColumnAlignment',\n\t\t\t\t\t\t\t\t\t\tcomponent: 'ZdSelect',\n\t\t\t\t\t\t\t\t\t\tautocomplete: false,\n\t\t\t\t\t\t\t\t\t\tlabel: 'TEKGRID_COLUMN_ALIGNMENT',\n\t\t\t\t\t\t\t\t\t\tdisabled: `{{${TekGridColumnsOptionsModal.controllerName}.hasNoSelectedColumn}}`,\n\t\t\t\t\t\t\t\t\t\tshowHelper: false,\n\t\t\t\t\t\t\t\t\t\tclearable: false,\n\t\t\t\t\t\t\t\t\t\tgrid: {\n\t\t\t\t\t\t\t\t\t\t\txs: 6,\n\t\t\t\t\t\t\t\t\t\t\tmd: 2,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tdataText: 'text',\n\t\t\t\t\t\t\t\t\t\tdataValue: 'value',\n\t\t\t\t\t\t\t\t\t\tdatasource: {\n\t\t\t\t\t\t\t\t\t\t\tdata: [\n\t\t\t\t\t\t\t\t\t\t\t\t{ text: 'TEKGRID_LEFT', value: 'left' },\n\t\t\t\t\t\t\t\t\t\t\t\t{ text: 'TEKGRID_CENTER', value: 'center' },\n\t\t\t\t\t\t\t\t\t\t\t\t{ text: 'TEKGRID_RIGHT', value: 'right' },\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\ttranslate: 'text',\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\t\t\tchange: `{{${TekGridColumnsOptionsModal.controllerName}.selectChange}}`,\n\t\t\t\t\t\t\t\t\t\t\tonMounted: `{{${TekGridColumnsOptionsModal.controllerName}.selectMounted}}`,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsColumnAggregation',\n\t\t\t\t\t\t\t\t\t\tcomponent: 'ZdSelect',\n\t\t\t\t\t\t\t\t\t\tisVisible: `{{${TekGridColumnsOptionsModal.controllerName}.showGroups}}`,\n\t\t\t\t\t\t\t\t\t\tautocomplete: false,\n\t\t\t\t\t\t\t\t\t\tlabel: 'TEKGRID_COLUMN_AGGREGATION',\n\t\t\t\t\t\t\t\t\t\tshowHelper: false,\n\t\t\t\t\t\t\t\t\t\tdisabled: `{{${TekGridColumnsOptionsModal.controllerName}.groupInSelection}}`,\n\t\t\t\t\t\t\t\t\t\tdataText: 'text',\n\t\t\t\t\t\t\t\t\t\tdataValue: 'value',\n\t\t\t\t\t\t\t\t\t\tgrid: {\n\t\t\t\t\t\t\t\t\t\t\txs: 6,\n\t\t\t\t\t\t\t\t\t\t\tmd: 2,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tdatasource: {\n\t\t\t\t\t\t\t\t\t\t\tdata: `{{${TekGridColumnsOptionsModal.controllerName}.aggregationData}}`,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\t\t\t\t\tchange: `{{${TekGridColumnsOptionsModal.controllerName}.selectChange}}`,\n\t\t\t\t\t\t\t\t\t\t\tonMounted: `{{${TekGridColumnsOptionsModal.controllerName}.selectMounted}}`,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tname: 'tekGridColumnsOptionsColumnGroupOpened',\n\t\t\t\t\t\t\t\t\t\tcomponent: 'ZdCheckbox',\n\t\t\t\t\t\t\t\t\t\tisVisible: `{{${TekGridColumnsOptionsModal.controllerName}.showGroups}}`,\n\t\t\t\t\t\t\t\t\t\tcssClass: 'zd-form-input-align',\n\t\t\t\t\t\t\t\t\t\tdisabled: `{{${TekGridColumnsOptionsModal.controllerName}.notGroupInSelection}}`,\n\t\t\t\t\t\t\t\t\t\tlabel: 'TEKGRID_COLUMN_GROUP_OPENED',\n\t\t\t\t\t\t\t\t\t\tvalue: `{{${TekGridColumnsOptionsModal.controllerName}.selectedColumnGroupOpened}}`,\n\t\t\t\t\t\t\t\t\t\tgrid: {\n\t\t\t\t\t\t\t\t\t\t\txs: 6,\n\t\t\t\t\t\t\t\t\t\t\tmd: 3,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'tekGridColumnsOptionsDetailFooter',\n\t\t\t\tcomponent: 'ZdFooter',\n\t\t\t\tpadless: true,\n\t\t\t\tcolor: 'transparent',\n\t\t\t\tcssClass: 'zd-mt-6',\n\t\t\t\trightSlot: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'tekGridColumnsOptionsDetailCancel',\n\t\t\t\t\t\tcomponent: 'ZdButton',\n\t\t\t\t\t\toutline: true,\n\t\t\t\t\t\tlabel: 'TEKGRID_CANCEL',\n\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\tclick: `{{${TekGridColumnsOptionsModal.controllerName}.cancelChanges}}`,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'tekGridColumnsOptionsDetailApply',\n\t\t\t\t\t\tcomponent: 'ZdButton',\n\t\t\t\t\t\tlabel: 'TEKGRID_APPLY',\n\t\t\t\t\t\tevents: {\n\t\t\t\t\t\t\tclick: `{{${TekGridColumnsOptionsModal.controllerName}.applyChanges}}`,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t\tevents: {\n\t\t\tonShow: () => TekGridColumnsOptionsModal.callOnShowModal(),\n\t\t},\n\t};\n\n\tprivate static modal: Modal;\n\n\tpublic static show(instance: UnwrapNestedRefs<TekGridColumnsButton>) {\n\t\tif (!TekGridColumnsOptionsModal.modal) {\n\t\t\tTekGridColumnsOptionsModal.modal = ModalService.create(TekGridColumnsOptionsModal.modalDef);\n\t\t\tLoader.addController(TekGridColumnsOptionsModal.controllerName, TekGridColumnsOptionsController, [\n\t\t\t\tTekGridColumnsOptionsModal.modal,\n\t\t\t]);\n\t\t}\n\n\t\tconst controller = Loader.getInstance(TekGridColumnsOptionsModal.controllerName);\n\t\tcontroller.instance = instance;\n\t\tTekGridColumnsOptionsModal.modal.show();\n\t}\n\n\tpublic static hide() {\n\t\tif (TekGridColumnsOptionsModal.modal) {\n\t\t\tTekGridColumnsOptionsModal.modal.hide();\n\t\t}\n\t}\n\n\tprivate static callOnShowModal() {\n\t\tconst controller = Loader.getInstance(TekGridColumnsOptionsModal.controllerName);\n\t\tif (controller) controller.onShowModal();\n\t}\n}\n","import { TekGrid, TekGridColumnsButton } from '@zeedhi/teknisa-components-common';\nimport sortable from 'sortablejs';\nimport { type ComponentPublicInstance, computed, defineComponent, mergeProps, nextTick, ref, watch } from 'vue';\nimport { ZdIterableColumnsButtonProps, useButtonInstance, useCreateInstance } from '@zeedhi/vuetify';\nimport optionsModal from './TekGridColumnsOptionsModal';\n\nexport const TekGridColumnsButtonProps = {\n\t...ZdIterableColumnsButtonProps,\n\thideGroups: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n};\n\nconst tekGridColumnsButton = defineComponent({\n\tprops: TekGridColumnsButtonProps,\n\tinheritAttrs: false,\n\tsetup(props, ctx) {\n\t\tconst { instance, root } = useCreateInstance<TekGridColumnsButton, ComponentPublicInstance>(\n\t\t\tprops,\n\t\t\tctx,\n\t\t\tTekGridColumnsButton,\n\t\t\tTekGridColumnsButtonProps,\n\t\t);\n\t\tconst buttonScope = useButtonInstance({ instance, root });\n\n\t\tconst menuIsOpened = ref(false);\n\n\t\tconst sortableInitialized = ref(false);\n\n\t\tconst teste = (a: any) => {\n\t\t\tconsole.warn(a);\n\t\t};\n\n\t\twatch(menuIsOpened, () => {\n\t\t\tif (!menuIsOpened.value || sortableInitialized.value) return;\n\n\t\t\tsortableInitialized.value = true;\n\t\t\tnextTick(() => {\n\t\t\t\tconst columnsTableBody = document.querySelector(`#${instance.name}_columns_table tbody`);\n\t\t\t\tif (columnsTableBody) {\n\t\t\t\t\tsortable.create(columnsTableBody as HTMLElement, {\n\t\t\t\t\t\thandle: '.sortHandle',\n\t\t\t\t\t\tdragClass: 'tek-grid-columns-button-sortable-drag',\n\t\t\t\t\t\tonEnd: sortEnd,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tconst gridGroupColumnNames = computed(() => {\n\t\t\treturn instance.iterableComponent.columns.filter((column) => column.grouped).map((column) => column.name) || [];\n\t\t});\n\n\t\tconst sortEnd = (event: any) => {\n\t\t\tconst grid: TekGrid = instance.iterableComponent as any;\n\t\t\tconst newOrder = Array.from(event.srcElement.querySelectorAll('tr')).map((row: any) => row.getAttribute('name'));\n\t\t\tconst groupColumnNames: string[] = [];\n\t\t\tconst newColumns = newOrder.map((columnName) => {\n\t\t\t\tconst column = grid.getColumn(columnName);\n\t\t\t\tif (column.grouped) {\n\t\t\t\t\tgroupColumnNames.push(columnName);\n\t\t\t\t}\n\n\t\t\t\treturn column;\n\t\t\t});\n\t\t\tconst ignoredColumns = grid.columns.filter((column) => instance.ignoreColumns.indexOf(column.name) !== -1);\n\t\t\tgrid.columns = newColumns.concat(ignoredColumns);\n\n\t\t\tif (grid.updateGrouping && JSON.stringify(groupColumnNames) !== JSON.stringify(gridGroupColumnNames)) {\n\t\t\t\tgrid.updateGrouping();\n\t\t\t}\n\t\t\tgrid.changeLayout();\n\t\t};\n\n\t\tconst moreOptions = () => {\n\t\t\toptionsModal.show(instance);\n\t\t};\n\n\t\tconst close = () => {\n\t\t\tmenuIsOpened.value = false;\n\t\t};\n\n\t\treturn {\n\t\t\t...buttonScope,\n\t\t\tinstance,\n\t\t\troot,\n\t\t\tmenuIsOpened,\n\t\t\tmoreOptions,\n\t\t\tclose,\n\t\t\tteste,\n\t\t\tmergeProps,\n\t\t};\n\t},\n});\n\nexport default tekGridColumnsButton;\n","<template>\n <v-menu\n :id=\"instance.name\"\n v-model=\"menuIsOpened\"\n :class=\"['zd-iterable-columns-button', 'tek-grid-columns-button', instance.cssClass]\"\n :style=\"instance.cssStyle\"\n :closeOnContentClick=\"false\"\n offset-y\n content-class=\"zd-iterable-columns-button-options tek-grid-columns-button-options\"\n >\n <template v-slot:activator=\"{ props: onMenu }\">\n <v-tooltip bottom>\n <template v-slot:activator=\"{ props: onTooltip }\">\n <zd-activator-wrapper\n :child-props=\"{\n component: 'ZdButton',\n name: instance.name,\n instanceObject: instance,\n }\"\n v-bind=\"mergeProps(onMenu, onTooltip)\"\n ></zd-activator-wrapper>\n </template>\n <span>{{ $t('TEKGRID_COLUMNS') }}</span>\n </v-tooltip>\n </template>\n\n <v-card class=\"zd-pa-2\">\n <div class=\"tek-grid-columns-button-table-wrapper zd-mb-2\">\n <table class=\"tek-grid-columns-button-table\" :id=\"instance.name + '_columns_table'\">\n <thead>\n <tr>\n <th><!--Name--></th>\n <th>{{ $t('TEKGRID_COLUMN_VISIBLE') }}</th>\n <th v-if=\"!instance.hideGroups\">{{ $t('TEKGRID_COLUMN_GROUPED') }}</th>\n <th v-if=\"!instance.hideGroups\">{{ $t('TEKGRID_COLUMN_AGGREGATION') }}</th>\n </tr>\n </thead>\n <tbody>\n <tr\n v-for=\"column in instance.filteredColumns()\"\n :key=\"column.name\"\n :name=\"column.name\"\n >\n <td class=\"tek-grid-columns-button-column-name sortHandle\">\n <span>⦙⦙</span>{{ $t(column.label) }}\n </td>\n <td>\n <zd-checkbox\n :name=\"instance.name + '_column_visible_' + column.name\"\n :value=\"column.grouped || column.isVisible\"\n :events=\"{\n change: instance.controller.showHideTekColumn.bind(instance.controller, column)\n }\"\n />\n </td>\n <td v-if=\"!instance.hideGroups\">\n <zd-checkbox\n v-if=\"column.type !== 'action'\"\n :name=\"instance.name + '_column_grouped_' + column.name\"\n :value=\"column.grouped\"\n :events=\"{\n change: instance.controller.changeGroupedColumn.bind(instance.controller, column)\n }\"\n />\n </td>\n <td v-if=\"!instance.hideGroups\" class=\"tek-grid-columns-button-column-aggregation\">\n <zd-select\n v-if=\"column.type !== 'action'\"\n :name=\"instance.name + '_column_aggregation_' + column.name\"\n v-bind=\"{\n value: column.aggregation,\n disabled: column.grouped || !column.isVisible,\n events: {\n change: instance.controller.changeAggregationColumn.bind(instance.controller, column)\n },\n dataText: 'text',\n dataValue: 'value',\n autocomplete: false,\n showHelper: false,\n showLabel: false,\n datasource: {\n data: instance.getAggregationSelectData(),\n },\n }\"\n />\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <div class=\"tek-grid-columns-button-table-footer\">\n <zd-button\n :name=\"instance.name + '_columns_table_footer_button'\"\n label=\"TEKGRID_MORE_OPTIONS\"\n small\n outline\n cssClass=\"zd-ma-2 zd-mr-1\"\n @click=\"moreOptions()\"\n ></zd-button>\n <zd-button\n :name=\"instance.name + '_columns_table_footer_close'\"\n label=\"TEKGRID_CLOSE\"\n small\n cssClass=\"zd-ma-2 zd-ml-1\"\n @click=\"close()\"\n ></zd-button>\n </div>\n </v-card>\n </v-menu>\n</template>\n\n<script lang=\"ts\" src=\"./TekGridColumnsButton.ts\"></script>\n\n<style lang=\"scss\">\n.tek-grid-columns-button-options {\n max-height: 250px;\n display: flex;\n flex-direction: column;\n background-color: #fff;\n\n &.theme--dark {\n background-color: #1e1e1e\n }\n\n .tek-grid-columns-button-table-wrapper {\n flex: 1;\n overflow-y: auto;\n\n .tek-grid-columns-button-table {\n font-size: 13px;\n border-spacing: 0;\n width: 100%;\n\n thead {\n tr {\n th {\n padding: var(--spacing-2) var(--spacing-2) var(--spacing-1) var(--spacing-2);\n white-space: nowrap;\n text-align: left;\n position: sticky;\n top: 0;\n z-index: 10;\n background-color: var(--zd-background-base);\n }\n }\n }\n\n tbody {\n tr {\n td {\n padding: var(--spacing-1) var(--spacing-2);\n white-space: nowrap;\n\n &.tek-grid-columns-button-column-name {\n cursor: -webkit-grab;\n\n > span {\n padding-right: 4px;\n }\n }\n\n &.tek-grid-columns-button-column-aggregation {\n max-width: 150px;\n }\n }\n }\n }\n }\n }\n\n .tek-grid-columns-button-table-footer {\n display: flex;\n\n .zd-button {\n flex: 1;\n }\n }\n}\n\n.tek-grid-columns-button-sortable-drag {\n background: white;\n}\n\n// column options modal\n.tek-grid-column-option-box {\n margin: var(--spacing-1);\n background: #ccc;\n padding: 2px var(--spacing-1);\n cursor: pointer;\n\n > * {\n display: inline-block;\n }\n\n > .zd-icon {\n font-size: 0.9rem;\n margin-left: var(--spacing-2);\n }\n\n &.tek-grid-column-option-grouped-true {\n cursor: default;\n background: #fafafa;\n\n > .zd-icon {\n display: none;\n }\n }\n\n &.tek-grid-column-option-selected-true {\n background: var(--v-primary-base);\n color: white;\n\n > .zd-icon {\n color: white;\n }\n }\n}\n\n\n.tek-grid-column-option-container-col {\n position: relative;\n\n .tek-grid-column-option-container {\n background: #eee;\n padding: var(--spacing-1);\n max-height: 100px;\n min-height: 42px;\n align-content: center;\n position: relative;\n\n .tek-iterable-footer {\n display: none !important;\n }\n\n .zd-text.no-data {\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n text-align: center;\n font-size: 0.7rem;\n }\n }\n\n .tek-grid-column-option-label {\n font-weight: var(--zd-font-body2-weight);\n }\n\n .tek-grid-column-option-select-all {\n position: absolute;\n top: 0.5rem;\n right: var(--spacing-1);\n color: var(--v-primary-base);\n cursor: pointer;\n font-size: 0.8rem;\n }\n\n .tek-grid-column-option-drop-here {\n position: absolute;\n z-index: 100;\n left: 50%;\n transform: translateX(-50%);\n top: 35px;\n }\n}\n\n.tek-grid-column-option-detail-name {\n color: var(--v-primary-base);\n font-weight: var(--zd-font-body2-weight);\n font-size: 1.1rem;\n margin-top: var(--spacing-6);\n}\n</style>\n","import { Button } from '@zeedhi/common';\nimport { TekGridFilterButton } from '@zeedhi/teknisa-components-common';\nimport type { IEventParam } from '@zeedhi/core';\nimport { type ComponentPublicInstance, defineComponent } from 'vue';\nimport { ZdButtonProps, useButtonInstance, useCreateInstance } from '@zeedhi/vuetify';\n\nexport const TekGridFilterButtonProps = {\n\t...ZdButtonProps,\n\tgridName: {\n\t\ttype: String,\n\t\tdefault: '',\n\t},\n\tgrid: {\n\t\ttype: [Object, String],\n\t\tdefault: () => {},\n\t},\n\tshowCheckboxAll: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n};\n\nconst tekGridFilterButtonComponent = defineComponent({\n\tprops: TekGridFilterButtonProps,\n\tinheritAttrs: false,\n\tsetup(props, ctx) {\n\t\tconst { instance, root } = useCreateInstance<TekGridFilterButton, ComponentPublicInstance>(\n\t\t\tprops,\n\t\t\tctx,\n\t\t\tTekGridFilterButton,\n\t\t\tTekGridFilterButtonProps,\n\t\t);\n\t\tconst buttonScope = useButtonInstance({ instance, root });\n\n\t\tconst filterClick = ({ event }: IEventParam<Button>) => {\n\t\t\tinstance.click(event);\n\t\t};\n\n\t\treturn {\n\t\t\t...buttonScope,\n\t\t\tinstance,\n\t\t\troot,\n\t\t\tfilterClick,\n\t\t};\n\t},\n});\n\nexport default tekGridFilterButtonComponent;\n","<template>\n <zd-button\n :id=\"`instance.name`\"\n :name=\"`${instance.name}_name`\"\n v-bind=\"{\n icon: true,\n cssClass: 'tek-grid-filter-button',\n iconName: 'mdi-filter',\n isVisible: instance.grid.filterButton,\n events: {\n click: filterClick,\n },\n }\"\n />\n</template>\n\n<script lang=\"ts\" src=\"./TekGridFilterButton.ts\"></script>\n\n<style lang=\"scss\">\n.zd-container.tek-grid-filter-content-container {\n position: relative;\n left: calc(var(--zd-default-padding) * -1) !important;\n padding-left: var(--zd-default-padding) !important;\n width: calc(100% + var(--zd-default-padding) * 2) !important;\n padding-right: var(--zd-default-padding) !important;\n max-width: none !important;\n}\n</style>","import { defineComponent } from 'vue';\n\nexport default defineComponent({\n\tprops: {\n\t\tshowDivider: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tlevel: {\n\t\t\ttype: Number,\n\t\t\tdefault: 0,\n\t\t},\n\t\tfooter: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tsetup() {\n\t\treturn {};\n\t},\n});\n","<template>\n <span\n v-for=\"n in level\"\n :key=\"n\"\n :class=\"[\n 'tek-grid-indentation',\n {\n 'tek-grid-indentation--corner': footer && n === level,\n 'tek-grid-indentation--divider': showDivider,\n }\n ]\"\n ></span>\n</template>\n\n<script lang=\"ts\" src=\"./TekGridIndentation\"></script>\n\n<style lang=\"scss\">\n.tek-grid-indentation {\n display: flex;\n width: 8px;\n margin-left: 10px;\n height: 100%;\n\n &--divider {\n border-left: solid 1px #ccc;\n }\n\n &--corner {\n height: 60%;\n border-bottom: 1px solid #ccc;\n }\n}\n</style>","import { Button, Input } from '@zeedhi/common';\nimport { type ITekGridLayout, TekGridLayoutOptions, TekRestDatasource } from '@zeedhi/teknisa-components-common';\nimport type { IEventParam } from '@zeedhi/core';\nimport { defineComponent, mergeProps, onMounted, ref } from 'vue';\nimport { ZdComponentRenderProps, useCreateInstance } from '@zeedhi/vuetify';\nimport { useTableLayout } from '../../../composables/useTableLayout';\n\nexport const TekGridLayoutOptionsProps = {\n\t...ZdComponentRenderProps,\n\t// Zeedhi 3.0\n};\n\nconst layoutOptionsComponent = defineComponent({\n\tprops: TekGridLayoutOptionsProps,\n\tinheritAttrs: false,\n\tsetup(props, ctx) {\n\t\tconst { instance, root } = useCreateInstance<TekGridLayoutOptions>(\n\t\t\tprops,\n\t\t\tctx,\n\t\t\tTekGridLayoutOptions,\n\t\t\tTekGridLayoutOptionsProps,\n\t\t);\n\n\t\tconst { applyLayout: applyTekGridLayout, getColumnElements, getTableWidth } = useTableLayout();\n\n\t\tonMounted(() => {\n\t\t\tinstance.viewApplyLayout = applyLayout;\n\t\t\tinstance.viewGetCurrentLayout = getCurrentLayout;\n\t\t});\n\n\t\tconst confirmLayoutClick = ({ component }: IEventParam<Input>) => {\n\t\t\tconst layoutName = component.value;\n\t\t\tif (layoutName) {\n\t\t\t\tconst newLayout: ITekGridLayout = getCurrentLayout(layoutName);\n\t\t\t\tinstance.newLayout(newLayout);\n\t\t\t}\n\n\t\t\tmenuActive.value = false;\n\t\t\tcomponent.value = '';\n\t\t};\n\n\t\tconst datasourceDynamicFilter = () => {\n\t\t\tconst datasource = instance.grid.datasource;\n\t\t\tif (datasource instanceof TekRestDatasource) return datasource.dynamicFilter;\n\t\t\treturn {};\n\t\t};\n\n\t\tconst changeLayout = (layout: ITekGridLayout) => {\n\t\t\tinstance.updateLayout(layout.name, getCurrentLayout(layout.name));\n\t\t};\n\n\t\tconst applyLayout = (layout?: ITekGridLayout) => {\n\t\t\tconst defaultLayout = {\n\t\t\t\toriginalDatasourceOrder: instance.originalDatasourceOrder,\n\t\t\t\toriginalDatasourceFilter: instance.originalDatasourceFilter,\n\t\t\t\toriginalColumnProps: instance.originalColumnProps,\n\t\t\t\toriginalDatasourceDynamicFilter: instance.originalDatasourceDynamicFilter,\n\t\t\t};\n\t\t\tapplyTekGridLayout({ layout, defaultLayout, changeLayoutCallback: changeLayout });\n\t\t\tmenuActive.value = false;\n\t\t};\n\n\t\tconst getCurrentLayout = (layoutName: string) => {\n\t\t\tconst { grid } = instance;\n\n\t\t\tconst gridWidth = getTableWidth();\n\t\t\tconst columnElementsDict = getColumnElements();\n\n\t\t\treturn {\n\t\t\t\tname: layoutName,\n\t\t\t\tgridWidth,\n\t\t\t\torder: grid.datasource.order,\n\t\t\t\tfilter: grid.datasource.filter,\n\t\t\t\tdynamicFilter: datasourceDynamicFilter(),\n\t\t\t\tcolumns: grid.columns.map((column: any, index) => {\n\t\t\t\t\tconst columnElement = columnElementsDict[index];\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname: column.name,\n\t\t\t\t\t\tlabel: column.label,\n\t\t\t\t\t\talign: column.align,\n\t\t\t\t\t\twidth: columnElement ? window.getComputedStyle(columnElement).width : 'unset',\n\t\t\t\t\t\tminWidth: column.minWidth,\n\t\t\t\t\t\tmaxWidth: column.maxWidth,\n\t\t\t\t\t\tisVisible: column.isVisible,\n\t\t\t\t\t\tfixed: column.fixed,\n\t\t\t\t\t\tgrouped: column.grouped,\n\t\t\t\t\t\tgroupOpened: column.groupOpened,\n\t\t\t\t\t\taggregation: column.aggregation,\n\t\t\t\t\t\tfilterHelperValue: instance.getHelperValue(column),\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t};\n\t\t};\n\n\t\tconst menuActive = ref(false);\n\n\t\tconst applyOrUpdateLayout = (event: Event, layoutName: string) => {\n\t\t\tif (instance.layoutEdited) {\n\t\t\t\tinstance.updateLayout(layoutName, getCurrentLayout(layoutName));\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\tmenuActive.value = false;\n\t\t\t} else {\n\t\t\t\tinstance.applyLayout(layoutName);\n\t\t\t}\n\t\t};\n\n\t\tconst deleteLayout = (event: Event, layoutName: string) => {\n\t\t\tinstance.deleteLayout(layoutName);\n\t\t\tevent.stopImmediatePropagation();\n\t\t};\n\n\t\tconst deleteButtonClick = (layoutName: string) => {\n\t\t\treturn ({ event }: IEventParam<Button>) => { \n\t\t\t\tdeleteLayout(event!, layoutName);\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tinstance,\n\t\t\troot,\n\t\t\tmenuActive,\n\t\t\tconfirmLayoutClick,\n\t\t\tapplyOrUpdateLayout,\n\t\t\tdeleteButtonClick,\n\t\t\tmergeProps,\n\t\t};\n\t},\n});\n\nexport default layoutOptionsComponent;\n","<template>\n <v-menu\n :id=\"instance.name\"\n :name=\"instance.name\"\n :class=\"['tek-grid-layout-options', instance.cssClass]\"\n :style=\"instance.cssStyle\"\n v-model=\"menuActive\"\n offset-y\n :closeOnContentClick=\"false\"\n >\n <template v-slot:activator=\"{ props: onMenu }\">\n <v-tooltip bottom>\n <template v-slot:activator=\"{ props: onTooltip }\">\n <v-badge\n v-show=\"instance.isVisible\"\n overlap\n class=\"tek-grid-layout-options-badge\"\n dot\n :offsetX=\"12\"\n :offsetY=\"12\"\n :value=\"instance.layoutEdited\"\n >\n <zd-activator-wrapper\n ref=\"root\"\n v-bind=\"mergeProps(onMenu, onTooltip)\"\n :child-props=\"{\n component: 'ZdButton',\n name: instance.name + '_button',\n icon: true,\n iconName: 'mdi-table-star',\n isVisible: instance.isVisible,\n }\"\n ></zd-activator-wrapper>\n </v-badge>\n </template>\n <span>{{ $t('LAYOUT') + (instance.currentLayoutName || $t('DEFAULT_LAYOUT')) }}</span>\n </v-tooltip>\n </template>\n <v-list>\n <v-list-item\n :class=\"['tek-grid-layout-item-header', { edited: instance.layoutEdited }]\"\n >\n {{ instance.layoutEdited ? $t('LAYOUT_MODIFIED') : $t('LAYOUT_NOT_MODIFIED')}}\n </v-list-item>\n <v-list-item>\n <zd-text-input\n :name=\"instance.name+'_new_layout'\"\n ref=\"inputNewLayout\"\n v-bind=\"{\n showHelper: false,\n showLabel: false,\n placeholder: 'NEW_LAYOUT',\n appendOuterIcon: 'mdi-check',\n autofocus: true,\n autofill: false,\n keyMap: {\n enter: {\n event: confirmLayoutClick,\n input: true,\n active: true,\n },\n },\n events: {\n appendOuterIconClick: confirmLayoutClick,\n },\n }\"\n />\n </v-list-item>\n <v-list-item\n v-if=\"!instance.layoutEdited\"\n :class=\"['tek-grid-layout-item', {\n selected: instance.currentLayoutName === ''\n }]\"\n @click=\"instance.applyLayout('')\"\n >\n {{ $t('DEFAULT_LAYOUT') }}\n </v-list-item>\n <v-list-item\n v-for=\"item in instance.layoutNames\"\n :key=\"item\"\n :class=\"['tek-grid-layout-item', {\n selected: item === instance.currentLayoutName\n }]\"\n @click=\"applyOrUpdateLayout($event, item)\"\n >\n {{ item }}\n <span v-if=\"!instance.layoutEdited\" class=\"tek-grid-layout-item-buttons\">\n <zd-button\n :name=\"'tek-grid-layout-item-delete_' + instance.name + item\"\n v-bind=\"{\n small: true,\n icon: true,\n iconName: 'mdi-trash-can-outline',\n events: {\n click: deleteButtonClick(item),\n },\n }\"\n />\n </span>\n </v-list-item>\n <v-list-item\n v-if=\"instance.layoutEdited\"\n :class=\"['tek-grid-layout-item-discard']\"\n @click=\"instance.discardChanges()\"\n >\n <zd-button small color=\"error darken-2\" width=\"100%\" name=\"tek-grid-layout-item-discard-changes\" label=\"LAYOUT_DISCART_CHANGES\"></zd-button>\n </v-list-item>\n </v-list>\n </v-menu>\n</template>\n\n<script lang=\"ts\" src=\"./TekGridLayoutOptions.ts\"></script>\n\n<style lang=\"scss\">\n.tek-grid-layout-options {\n &-badge {\n .v-badge__badge {\n font-size: var(--zd-font-caption-size);\n font-weight: var(--zd-font-caption-weight);\n line-height: 14px;\n pointer-events: none;\n background-color: var(--zd-badge-background-color) !important;\n\n span {\n color: var(--zd-badge-text-color) !important;\n }\n }\n }\n}\n\n.tek-grid-layout-item {\n font-size: 13px;\n cursor: pointer;\n min-height: 30px;\n\n &.selected {\n font-weight: 700;\n }\n\n &:hover {\n &.theme--light {\n background: #eee;\n }\n }\n\n .tek-grid-layout-item-buttons {\n position: absolute;\n right: 16px;\n\n .v-icon {\n font-size: 18px;\n }\n }\n}\n\n.tek-grid-layout-item-header {\n max-width: 270px;\n font-size: 13px;\n font-weight: bold;\n color: var(--v-primary-base) !important;\n line-height: 18px;\n\n &.edited {\n color: var(--v-error-darken2) !important;\n }\n}\n\n.tek-grid-layout-item-discard {\n min-height: 30px;\n padding-top: 10px;\n}\n</style>","import { GridColumn } from '@zeedhi/common';\nimport type { IDictionary } from '@zeedhi/core';\nimport { type PropType, defineComponent } from 'vue';\n\nexport default defineComponent({\n\tprops: {\n\t\tisSelected: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tselectable: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tselectionDisabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tcellSelection: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tisCurrent: {\n\t\t\ttype: Function as PropType<(args: { row: IDictionary; column?: GridColumn }) => boolean>,\n\t\t\trequired: true,\n\t\t},\n\t\tcolumns: {\n\t\t\ttype: Array as PropType<GridColumn[]>,\n\t\t\trequired: true,\n\t\t},\n\t\trow: {\n\t\t\ttype: Object as PropType<IDictionary>,\n\t\t\trequired: true,\n\t\t},\n\t\tfixedLeft: {\n\t\t\ttype: Object as PropType<IDictionary>,\n\t\t\trequired: true,\n\t\t},\n\t\tfixedRight: {\n\t\t\ttype: Object as PropType<IDictionary>,\n\t\t\trequired: true,\n\t\t},\n\t},\n\temits: ['focusin', 'cellFocus'],\n\tsetup(props, { emit }) {\n\t\tconst focusin = (event: Event) => {\n\t\t\temit('focusin', { event, row: props.row });\n\t\t};\n\n\t\tconst cellFocus = (event: Event, column: GridColumn) => {\n\t\t\temit('cellFocus', { event, row: props.row, column });\n\t\t};\n\n\t\tconst getLevel = (row: IDictionary) => {\n\t\t\tif (!row.groupHeaders) return 0;\n\n\t\t\tconst { length } = row.groupHeaders;\n\t\t\treturn length + 1;\n\t\t};\n\n\t\treturn {\n\t\t\tfocusin,\n\t\t\tgetLevel,\n\t\t\tcellFocus,\n\t\t};\n\t},\n});\n","<template>\n <table-row\n :cssClass=\"[\n 'tek-grid-footer-row',\n { 'tek-grid-footer-row--summary': row.groupSummary }\n ]\"\n >\n <td\n v-if=\"selectable\"\n :class=\"[\n 'zd-grid__cell',\n 'zd-grid__cell--fixed',\n 'zd-grid__selectable-cell',\n ]\"\n ></td>\n <zd-grid-cell\n v-for=\"(column, index) in columns\" :key=\"column.name\"\n :row=\"row\"\n :column=\"column\"\n :cssClass=\"[\n {\n 'zd-grid__cell--fixed': column.fixed,\n 'zd-grid__action-cell--fixed': column.actionFixed,\n },\n ]\"\n :cssStyle=\"[{\n left: column.fixed ? fixedLeft[column.name] : 'unset',\n right: column.actionFixed ? fixedRight[column.name] : 'unset',\n }]\"\n :cellSelection=\"cellSelection\"\n :isCurrent=\"isCurrent({ row, column })\"\n v-memo=\"[row, column, fixedLeft, fixedRight, cellSelection, isCurrent({ row, column })]\"\n @focus=\"cellFocus($event, column)\"\n @focusin=\"focusin($event)\"\n >\n <template #prepend>\n <tek-grid-indentation\n v-if=\"index === 0\"\n footer\n :level=\"getLevel(row)\"\n ></tek-grid-indentation>\n </template>\n </zd-grid-cell>\n </table-row>\n</template>\n\n<script lang=\"ts\" src=\"./TekGridFooterRow\"></script>\n\n<style lang=\"scss\">\n.tek-grid-footer-row {\n &--summary {\n background: var(--row-active-color);\n\n .zd-grid__cell-content {\n font-size: 15px;\n }\n }\n\n .zd-grid__cell-content {\n padding: 0 8px;\n font-weight: bold;\n }\n}\n</style>\n","import { GridColumn } from '@zeedhi/common';\nimport type { IDictionary } from '@zeedhi/core';\nimport { type PropType, defineComponent } from 'vue';\n\nexport default defineComponent({\n\tprops: {\n\t\tisSelected: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tisCurrentRow: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tselectable: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tselectionDisabled: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tcellSelection: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tisCurrent: {\n\t\t\ttype: Function as PropType<(args: { row: IDictionary; column?: GridColumn }) => boolean>,\n\t\t\trequired: true,\n\t\t},\n\t\trow: {\n\t\t\ttype: Object as PropType<IDictionary>,\n\t\t\trequired: true,\n\t\t},\n\t\tindeterminate: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t},\n\temits: ['click', 'checkboxClick', 'focusin', 'expandClick'],\n\tsetup(props, { emit }) {\n\t\tconst click = (event: Event) => {\n\t\t\temit('click', event);\n\t\t};\n\n\t\tconst checkboxClick = (event: Event) => {\n\t\t\temit('checkboxClick', event);\n\t\t};\n\n\t\tconst focusin = (event: Event) => {\n\t\t\temit('focusin', { event, row: props.row });\n\t\t};\n\n\t\tconst expandClick = (event: Event) => {\n\t\t\temit('expandClick', { event, row: props.row });\n\t\t};\n\n\t\treturn {\n\t\t\tclick,\n\t\t\tfocusin,\n\t\t\tcheckboxClick,\n\t\t\texpandClick,\n\t\t};\n\t},\n});\n","<template>\n <table-row\n :class=\"[\n 'tek-grid-group-row',\n { 'tek-grid-row-group--summary': row.groupSummary }\n ]\"\n :isCurrentRow=\"isCurrentRow\"\n @click=\"click($event)\"\n >\n <zd-grid-checkbox\n v-if=\"selectable\"\n :disabled=\"selectionDisabled\"\n :isSelected=\"isSelected\"\n :indeterminate=\"indeterminate\"\n :cellSelection=\"cellSelection\"\n :isCurrent=\"isCurrent({ row })\"\n @focusin=\"focusin($event)\"\n @click.stop=\"checkboxClick($event)\"\n />\n\n <td\n :colspan=\"999\"\n :class=\"\n [\n 'zd-grid__cell',\n 'text-left',\n 'tek-grid-group-cell',\n 'zd-grid__cell--fixed',\n ]\"\n :style=\"`left: ${(selectable ? 40 : 0)}px`\"\n :tabindex=\"cellSelection ? 0 : ''\"\n >\n <span\n :class=\"[\n 'tek-grid-group-cell__container'\n ]\"\n :style=\"`left: ${(selectable ? 48 : 8)}px`\"\n >\n <tek-grid-indentation\n :level=\"row.groupHeaders.length\"\n ></tek-grid-indentation>\n <v-icon\n :class=\"{ closed: !row.groupOpened }\"\n @click=\"expandClick($event)\"\n :key=\"`${row.groupIndex}_${row.groupValue}`\"\n >{{ $getIcon('expand') }}</v-icon>\n <span class=\"tek-grid__group-text zd-ml-2\">{{ (row.groupLabel? row.groupLabel + ': ': '') + row.groupValue }}</span>\n </span>\n </td>\n </table-row>\n</template>\n\n<script lang=\"ts\" src=\"./TekGridGroupRow\"></script>\n\n<style lang=\"scss\">\n.tek-grid-group-cell {\n font-weight: bold;\n\n &__container {\n height: 100%;\n align-items: center;\n position: sticky;\n }\n}\n</style>\n","import { Loading } from '@zeedhi/teknisa-components-common';\nimport { useCreateInstance, ZdLoadingProps } from '@zeedhi/vuetify';\nimport { defineComponent } from 'vue';\n\nexport const TekLoadingProps = {\n\t...ZdLoadingProps,\n\ttext: {\n\t\ttype: String,\n\t\tdefault: '',\n\t},\n\timage: {\n\t\ttype: String,\n\t\tdefault: undefined,\n\t},\n};\n\nconst loadingComponent = defineComponent({\n\tprops: TekLoadingProps,\n\tinheritAttrs: false,\n\tsetup(props, ctx) {\n\t\tconst { instance, root } = useCreateInstance<Loading>(props, ctx, Loading, TekLoadingProps);\n\n\t\treturn {\n\t\t\tinstance,\n\t\t\troot,\n\t\t};\n\t},\n});\n\nexport default loadingComponent;\n","<template>\n <zd-loading\n ref=\"root\"\n v-bind=\"{\n name: instance.name,\n text: instance.text,\n image: instance.image,\n zIndex: instance.zIndex,\n textColor,\n loadingColor,\n size,\n loadingWidth,\n opacity,\n }\"\n />\n</template>\n\n<script lang=\"ts\" src=\"./TekLoading.ts\"></script>\n","import { ZdUserInfoProps } from '@zeedhi/zd-user-info-vue';\nimport { defineComponent } from 'vue';\nimport { TekUserInfo as TekUserInfoClass } from '@zeedhi/teknisa-components-common';\nimport type { IComponentRender } from '@zeedhi/common';\nimport { useCreateInstance, useGetMethods } from '@zeedhi/vuetify';\n\nexport const TekUserInfoProps ={\n ...ZdUserInfoProps,\n aboutImage: {\n type: String,\n default: '',\n },\n defaultEmail: {\n type: String,\n default: '',\n },\n versionInfo: {\n type: [Object, String],\n default: null,\n },\n versionUrl: {\n type: String,\n default: '',\n },\n bottomSlot: {\n type: Array as () => IComponentRender[],\n default: undefined,\n\t\twatch: false,\n },\n};\n\nconst tekUserInfoComponent = defineComponent({\n props: TekUserInfoProps,\n inheritAttrs: false,\n setup(props, ctx) {\n const { instance, root } = useCreateInstance<TekUserInfoClass>(props, ctx, TekUserInfoClass, TekUserInfoProps);\n\n const { click, focus, blur, mouseenter, mouseleave } = useGetMethods(instance, root);\n\n return {\n instance,\n root,\n click,\n focus,\n blur,\n mouseenter,\n mouseleave,\n };\n }\n})\n\nexport default tekUserInfoComponent;\n","<template>\n <zd-user-info\n :id=\"instance.name\"\n :instance-object=\"instance\"\n name=\"user-info\"\n >\n </zd-user-info>\n</template>\n\n<script lang=\"ts\" src=\"./TekUserInfo.ts\"></script>\n\n<style lang=\"scss\">\n.about-modal {\n flex-grow: 0;\n overflow-y: unset;\n width: auto;\n border: 3px solid var(--v-primary-base);\n\n .zd-modal-card, .zd-modal-card-text, .zd-modal-container, .zd-tabs {\n height: 100%;\n }\n\n .v-card-text {\n font-size: .875rem !important;\n }\n\n .zd-modal-card-text{\n padding: 8px !important;\n }\n\n .zd-modal-container {\n display: flex;\n flex-direction: column;\n }\n\n .zd-tabs, .v-tabs-items {\n overflow-y: auto;\n }\n\n .zd-image-valid{\n width: 50%;\n align-items: center;\n }\n\n #basic-user-info_version_tabs{\n height: 300px !important;\n } \n\n #basic-user-info_about_image {\n text-align: center;\n }\n}\n</style>\n","import { TekUserInfoList as TekUserInfoListClass } from '@zeedhi/teknisa-components-common';\nimport { defineComponent } from 'vue';\nimport { useCreateInstance, useGetMethods, ZdListProps } from '@zeedhi/vuetify';\n\n\nconst TekUserInfoListProps = {\n ...ZdListProps,\n parentName: {\n type: String,\n default: '',\n },\n dense: {\n type: [Boolean, String],\n default: true,\n },\n};\n\nconst tekUserInfoListComponent = defineComponent({\n props: TekUserInfoListProps,\n inheritAttrs: false,\n setup(props,ctx) {\n const { instance, root } = useCreateInstance<TekUserInfoListClass>(\n props,\n ctx,\n TekUserInfoListClass,\n TekUserInfoListProps,\n );\n\n const { click, focus, blur, mouseenter, mouseleave } = useGetMethods(instance, root);\n\n return {\n instance,\n root,\n click,\n focus,\n blur,\n mouseenter,\n mouseleave,\n }; \n }\n\n})\n\nexport default tekUserInfoListComponent;\n","<template>\n <zd-list\n :id=\"instance.name\"\n :instance-object=\"instance\"\n name=\"list\"\n ></zd-list>\n</template>\n\n<script lang=\"ts\" src=\"./TekUserInfoList.ts\"></script>\n\n<style lang=\"scss\">\n</style>\n","import { BreadcrumbHeader } from '@zeedhi/teknisa-components-common';\nimport { defineComponent } from 'vue';\nimport { useCreateInstance, ZdComponentRenderProps } from '@zeedhi/vuetify';\n\nexport const TekBreadcrumbHeaderProps = {\n\t...ZdComponentRenderProps,\n\ttitle: {\n\t\ttype: String,\n\t\tdefault: '',\n\t},\n\tbreadcrumb: {\n\t\ttype: Object,\n\t\tdefault: {},\n\t\twatch: false,\n\t},\n\trightSlot: {\n\t\ttype: Array,\n\t\tdefault: () => [],\n\t\twatch: false,\n\t},\n};\n\nconst breadcrumbHeaderComponent = defineComponent({\n\tprops: TekBreadcrumbHeaderProps,\n\tinheritAttrs: false,\n\tsetup(props, ctx) {\n\t\tconst { instance, root } = useCreateInstance<BreadcrumbHeader>(\n\t\t\tprops,\n\t\t\tctx,\n\t\t\tBreadcrumbHeader,\n\t\t\tTekBreadcrumbHeaderProps,\n\t\t);\n\n\t\treturn {\n\t\t\tinstance,\n\t\t\troot,\n\t\t};\n\t},\n});\n\nexport default breadcrumbHeaderComponent;\n","import { Loading } from '@zeedhi/teknisa-components-common';\nimport { useCreateInstance, ZdLoadingProps } from '@zeedhi/vuetify';\nimport { defineComponent } from 'vue';\n\nexport const TekLoadingProps = {\n\t...ZdLoadingProps,\n\ttext: {\n\t\ttype: String,\n\t\tdefault: '',\n\t},\n\timage: {\n\t\ttype: String,\n\t\tdefault: undefined,\n\t},\n};\n\nconst loadingComponent = defineComponent({\n\tprops: TekLoadingProps,\n\tinheritAttrs: false,\n\tsetup(props, ctx) {\n\t\tconst { instance, root } = useCreateInstance<Loading>(props, ctx, Loading, TekLoadingProps);\n\n\t\treturn {\n\t\t\tinstance,\n\t\t\troot,\n\t\t};\n\t},\n});\n\nexport default loadingComponent;\n","import type { App } from 'vue';\nimport type { IDictionary } from '@zeedhi/core';\n\nimport TekBreadcrumbHeader from './tek-breadcrumb-header/TekBreadcrumbHeader.vue';\nimport TekGrid from './tek-grid/TekGrid.vue';\nimport TekGridColumnFilter from './tek-grid/column-filter/TekGridColumnFilter.vue';\nimport TekGridHeaderRow from './tek-grid/column-header/TekGridHeaderRow.vue';\nimport TekGridColumnsButton from './tek-grid/columns-button/TekGridColumnsButton.vue';\nimport TekGridFilterButton from './tek-grid/filter-button/TekGridFilterButton.vue';\nimport TekGridIndentation from './tek-grid/indentation/TekGridIndentation.vue';\nimport TekGridLayoutOptions from './tek-grid/layout-options/TekGridLayoutOptions.vue';\nimport TekGridFooterRow from './tek-grid/row/TekGridFooterRow.vue';\nimport TekGridGroupRow from './tek-grid/row/TekGridGroupRow.vue';\nimport TekLoading from './tek-loading/TekLoading.vue';\nimport TekUserInfo from './tek-user-info/TekUserInfo.vue';\nimport TekUserInfoList from './tek-user-info/TekUserInfoList.vue';\n\nexport * from './tek-breadcrumb-header/TekBreadcrumbHeader';\nexport * from './tek-loading/TekLoading';\n\nexport const components: IDictionary<any> = {\n TekBreadcrumbHeader,\n TekGrid,\n TekGridColumnFilter,\n TekGridHeaderRow,\n TekGridColumnsButton,\n TekGridFilterButton,\n TekGridIndentation,\n TekGridLayoutOptions,\n TekGridFooterRow,\n TekGridGroupRow,\n TekLoading,\n TekUserInfo,\n TekUserInfoList,\n};\n\nexport function RegisterComponents(app: App) {\n\tfor (const name in components) {\n\t\tapp.component(name, components[name]);\n\t}\n}\n","import {\n\ttype IDynamicFilterItem,\n\ttype ITekConfig,\n\ttype ITekGridGroupFooter,\n\ttype ITekGridGroupHeader,\n\tTekGrid,\n\tTekMemoryDatasource,\n\tTekRestDatasource,\n} from '@zeedhi/teknisa-components-common';\nimport { Config, type IDictionary, Utils } from '@zeedhi/core';\nimport { type IComponentRender, type LabelFormatter } from '@zeedhi/common';\nimport cloneDeep from 'lodash.clonedeep';\nimport debounce from 'lodash.debounce';\nimport { type ComponentPublicInstance, type PropType, computed, defineComponent, nextTick } from 'vue';\nimport { buildProps, useGridColumns, getRootElement, useCreateInstance, ZdGridEditableProps, useGridEditableInstance } from '@zeedhi/vuetify';\nimport { provideTableLayout } from '../../composables/useTableLayout'\n\nexport const TekGridProps = buildProps({\n\t...ZdGridEditableProps,\n\ttoolbarSlot: {\n\t\ttype: Array,\n\t\tdefault: undefined,\n\t\twatch: false,\n\t},\n\ttitle: {\n\t\ttype: String,\n\t\tdefault: '',\n\t},\n\taddButton: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\tdeleteButton: {\n\t\ttype: [String, Boolean],\n\t\tdefault: 'none',\n\t},\n\tcolumnsButton: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\tcolumnsButtonIgnore: {\n\t\ttype: [Array, String],\n\t\tdefault: () => [],\n\t},\n\tshowEditButtons: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n\tfilterButton: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\tmodalFilterProps: {\n\t\ttype: Object,\n\t\tdefault: () => ({}),\n\t},\n\tshowSearch: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n\tcolumnFilterButton: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\thideActions: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\tactions: {\n\t\ttype: Array,\n\t\tdefault: () => [],\n\t\twatch: false,\n\t},\n\tdragColumns: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n\tresizeColumns: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n\tshowLayoutOptions: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n\tshowExport: {\n\t\ttype: [String, Boolean],\n\t\tdefault: false,\n\t},\n\tshowReload: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n\texportConfig: {\n\t\ttype: Array,\n\t},\n\texportActions: {\n\t\ttype: Array,\n\t\twatch: false,\n\t},\n\tgroupsOpened: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\tshowSummaryTotal: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n\tmainGrid: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n\txlsDefaultType: {\n\t\ttype: String,\n\t\tdefault: undefined,\n\t},\n\tshowCheckboxAllFilter: {\n\t\ttype: [Boolean, String],\n\t\tdefault: (Config as ITekConfig).gridShowCheckboxAllFilter,\n\t},\n\ttoolbarOpened: {\n\t\ttype: [Boolean],\n\t\tdefault: true,\n\t},\n\tdefaultFilter: {\n\t\ttype: Object,\n\t},\n\treportTitle: {\n\t\ttype: String,\n\t},\n\teditNewRowsOnly: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n\ttoolbarConfig: {\n\t\ttype: Array as PropType<(IComponentRender | string)[]>,\n\t\tdefault: () => [],\n\t\twatch: false,\n\t},\n\treportLabelFormatter: {\n\t\ttype: Function as PropType<LabelFormatter>,\n\t\tdefault: undefined,\n\t},\n\tshowHideButton: {\n\t\ttype: [Boolean, String],\n\t\tdefault: true,\n\t},\n});\n\nconst gridEditableComponent = defineComponent({\n\tprops: TekGridProps,\n\tinheritAttrs: false,\n\tsetup(props, ctx) {\n\t\tconst { instance, root } = useCreateInstance<TekGrid, ComponentPublicInstance>(props, ctx, TekGrid, TekGridProps);\n\n\t\tconst renderedData = computed(() => {\n\t\t\tif (instance.isGrouped()) {\n\t\t\t\treturn instance.getGroupedData();\n\t\t\t}\n\t\t\treturn instance.getData();\n\t\t});\n\n\t\tconst visibleData = computed(() => {\n\t\t\treturn renderedData.value.filter((row) => instance.isItemVisible(row));\n\t\t});\n\n\t\tconst isNavigableRow = (element: Element) => {\n\t\t\treturn element.classList.contains('zd-grid__row')\n\t\t\t\t&& !element.classList.contains('tek-grid-group-row')\n\t\t\t\t&& !element.classList.contains('tek-grid-footer-row');\n\t\t};\n\n\t\tconst gridEditableScope = useGridEditableInstance({\n\t\t\tinstance,\n\t\t\troot,\n\t\t\trenderedData: visibleData,\n\t\t\tisNavigableRow,\n\t\t});\n\n\t\tconst rootEl = getRootElement(root);\n\t\tconst { visibleColumns } = useGridColumns({\n\t\t\tinstance,\n\t\t\trootEl,\n\t\t\tvisibilityCondition: (column: any) => column.isVisible && !column.grouped,\n\t\t});\n\n\t\tprovideTableLayout({ instance, rootEl });\n\n\t\tconst debouncedDatasourceGet = debounce((instance) => {\n\t\t\tconst event = new Event('change', { cancelable: true });\n\t\t\tinstance.callEvent('beforeApplyFilter', { component: instance, event });\n\t\t\tif (event.defaultPrevented) return;\n\n\t\t\tconst { datasource } = instance;\n\t\t\tif (datasource instanceof TekRestDatasource || datasource instanceof TekMemoryDatasource) {\n\t\t\t\tdatasource.updateDynamicFilter();\n\t\t\t} else {\n\t\t\t\tdatasource.get();\n\t\t\t}\n\t\t}, 500);\n\n\t\tconst filter = computed<IDictionary<IDynamicFilterItem[]>>(() => {\n\t\t\tif (instance.datasource instanceof TekRestDatasource || instance.datasource instanceof TekMemoryDatasource) {\n\t\t\t\treturn instance.datasource.dynamicFilter;\n\t\t\t}\n\n\t\t\tconst datasourceFilter = instance.datasource.filter;\n\t\t\tconst simpleFilter: IDictionary<IDynamicFilterItem[]> = {};\n\t\t\tObject.keys(datasourceFilter).forEach((key) => {\n\t\t\t\tsimpleFilter[key] = [{ relation: 'AND', operation: 'CONTAINS', value: datasourceFilter[key] }];\n\t\t\t});\n\t\t\treturn simpleFilter;\n\t\t});\n\n\t\tconst setFilter = (newFilter: IDictionary<IDynamicFilterItem[]>) => {\n\t\t\tif (Utils.isEqual(filter, newFilter)) return;\n\n\t\t\tif (instance.datasource instanceof TekRestDatasource || instance.datasource instanceof TekMemoryDatasource) {\n\t\t\t\tinstance.datasource.dynamicFilter = cloneDeep(newFilter);\n\t\t\t} else {\n\t\t\t\tconst normalFilter: IDictionary<any> = {};\n\t\t\t\tObject.keys(newFilter).forEach((key) => {\n\t\t\t\t\tif (!newFilter[key][0].value) return;\n\n\t\t\t\t\tnormalFilter[key] = newFilter[key][0].value;\n\t\t\t\t});\n\t\t\t\tinstance.datasource.filter = normalFilter;\n\t\t\t}\n\t\t\tdebouncedDatasourceGet(instance);\n\t\t\tinstance.changeLayout();\n\t\t};\n\n\t\tconst columnHasFilter = (columnName: string) => {\n\t\t\treturn instance.columnHasFilter(columnName);\n\t\t};\n\n\t\tconst isRowVisible = (row: IDictionary<any>, index: number) => {\n\t\t\treturn instance.isItemVisible(row) && gridEditableScope.shouldRender(index);\n\t\t};\n\n\t\tconst isCurrentRowGroup = (row: IDictionary<any>) => {\n\t\t\tconst { uniqueKey, currentRow } = instance.datasource;\n\n\t\t\treturn !!(\n\t\t\t\t(row.group && row.groupValue === currentRow.groupValue) ||\n\t\t\t\t(row[uniqueKey] && row[uniqueKey] === currentRow[uniqueKey])\n\t\t\t);\n\t\t};\n\n\t\tconst isGroupSelectIndeterminate = (item: ITekGridGroupHeader) => {\n\t\t\tlet hasSelected = false;\n\t\t\tlet hasNotSelected = false;\n\t\t\tconst { uniqueKey } = instance.datasource;\n\t\t\titem.children.forEach((child) => {\n\t\t\t\tconst idx = instance.selectedRows.findIndex((row) => child[uniqueKey] === row[uniqueKey]);\n\t\t\t\thasSelected = hasSelected || idx !== -1;\n\t\t\t\thasNotSelected = hasNotSelected || idx === -1;\n\t\t\t});\n\t\t\treturn hasSelected && hasNotSelected;\n\t\t};\n\n\t\tconst isGroupSelected = (item: ITekGridGroupHeader) => {\n\t\t\treturn item.children.every((child) => {\n\t\t\t\tconst { uniqueKey } = instance.datasource;\n\t\t\t\tconst idx = instance.selectedRows.findIndex((row) => child[uniqueKey] === row[uniqueKey]);\n\t\t\t\treturn idx !== -1;\n\t\t\t});\n\t\t};\n\n\t\tconst selectGroupRowClick = (row: IDictionary<any>, isSelected: boolean, event: Event) => {\n\t\t\tnextTick(() => {\n\t\t\t\tconst rootElement = getRootElement(root);\n\t\t\t\tinstance.selectGroupClick(row, isSelected, event, rootElement.value);\n\t\t\t});\n\t\t};\n\n\t\tconst selectGroup = (item: ITekGridGroupHeader, event: Event) => {\n\t\t\tconst { uniqueKey } = instance.datasource;\n\t\t\tconst isSelected = isGroupSelected(item);\n\t\t\tif (!isSelected) {\n\t\t\t\t// here we fetch the item from renderedData because vuetify isSelected checks for object reference\n\t\t\t\t// so we need to find the item inside renderedData to call selectRow() with the correct reference\n\t\t\t\t// https://github.com/vuetifyjs/vuetify/blob/master/packages/vuetify/src/components/VDataTable/composables/select.ts#L128\n\t\t\t\tconst items = item.children.map((child) => {\n\t\t\t\t\treturn renderedData.value.find((row) => child[uniqueKey] === row[uniqueKey]);\n\t\t\t\t});\n\n\t\t\t\titems.forEach((child) => {\n\t\t\t\t\tif (!child) return;\n\n\t\t\t\t\tconst idx = instance.selectedRows.findIndex((row) => child[uniqueKey] === row[uniqueKey]);\n\t\t\t\t\tif (idx === -1) {\n\t\t\t\t\t\tinstance.selectRow(child, true);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\titem.children.forEach((child) => {\n\t\t\t\t\tconst idx = instance.selectedRows.findIndex((row) => child[uniqueKey] === row[uniqueKey]);\n\t\t\t\t\tif (idx !== -1) {\n\t\t\t\t\t\tinstance.selectRow(child, false);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tselectGroupRowClick(item, !isSelected, event);\n\t\t};\n\n\t\tconst openGroup = (item: ITekGridGroupHeader) => {\n\t\t\tinstance.openGroup(item);\n\t\t};\n\n\t\tconst isGroup = (item: IDictionary<any>): item is ITekGridGroupHeader => {\n\t\t\treturn !!item.group;\n\t\t};\n\n\t\tconst isFooter = (item: IDictionary<any>): item is ITekGridGroupFooter => {\n\t\t\treturn !!item.groupFooter;\n\t\t};\n\n\t\tconst groupColumnNames = computed(() => {\n\t\t\treturn instance.columns.filter((column) => column.grouped).map((column) => column.name) || [];\n\t\t});\n\n\t\tconst sortBy = computed(() => {\n\t\t\treturn gridEditableScope.sortBy.value.map(({ key, order }) => ({\n\t\t\t\tkey,\n\t\t\t\torder: order as 'asc' | 'desc',\n\t\t\t}));\n\t\t});\n\n\t\treturn {\n\t\t\t...gridEditableScope,\n\t\t\tinstance,\n\t\t\troot,\n\t\t\tfilter,\n\t\t\tsetFilter,\n\t\t\tcolumnHasFilter,\n\t\t\tvisibleColumns,\n\t\t\tisRowVisible,\n\t\t\tisCurrentRowGroup,\n\t\t\tisGroupSelectIndeterminate,\n\t\t\tselectGroup,\n\t\t\tisGroup,\n\t\t\topenGroup,\n\t\t\trenderedData,\n\t\t\tisGroupSelected,\n\t\t\tgroupColumnNames,\n\t\t\tisFooter,\n\t\t\tvisibleData,\n\t\t\tsortBy,\n\t\t};\n\t},\n});\n\nexport default gridEditableComponent;\n","import { Input, Radio, Select } from '@zeedhi/common';\nimport { type IDynamicFilterItem } from '@zeedhi/teknisa-components-common';\nimport { Config, type IEventParam, Metadata, Utils, dayjs } from '@zeedhi/core';\nimport cloneDeep from 'lodash.clonedeep';\nimport debounce from 'lodash.debounce';\nimport { type PropType, computed, defineComponent, reactive } from 'vue';\nimport { isArrayOperation } from '../../../utils/isArrayOperation';\n\nexport const TekGridColumnFilterProps = {\n\thasFilterData: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\tcolumn: {\n\t\ttype: Object,\n\t\trequired: true,\n\t},\n\tmodelValue: {\n\t\ttype: Array as PropType<IDynamicFilterItem[]>,\n\t\tdefault: [],\n\t},\n\tinstanceName: {\n\t\ttype: String,\n\t\trequired: true,\n\t},\n\tfilterRelationsDatasource: {\n\t\ttype: [Object, null] as PropType<boolean | null>,\n\t\trequired: false,\n\t},\n\tfilterOperationsDatasource: {\n\t\ttype: [Object, null] as PropType<boolean | null>,\n\t\trequired: false,\n\t},\n\tisHovering: {\n\t\ttype: Boolean,\n\t\tdefault: false,\n\t},\n\tmultiple: {\n\t\ttype: Boolean,\n\t\trequired: true,\n\t},\n} as const;\n\ntype InputType = Input | Select | Radio;\n\nconst tekGridColumnFilter = defineComponent({\n\tprops: TekGridColumnFilterProps,\n\tinheritAttrs: false,\n\temits: ['update:modelValue'],\n\tsetup(props, ctx) {\n\t\tconst getValueInputName = (index: number) => `${props.instanceName}-${props.column.name}-filter-value-${index}`;\n\n\t\tconst focusValueInput = (index: number) => {\n\t\t\tconst valueInputName = getValueInputName(index);\n\t\t\tconst input = Metadata.getInstance<Input>(valueInputName);\n\n\t\t\tinput.setFocus();\n\t\t};\n\n\t\tconst createNewFilter = () => {\n\t\t\treturn reactive<IDynamicFilterItem>({\n\t\t\t\toperation: 'CONTAINS',\n\t\t\t\trelation: 'AND',\n\t\t\t\tvalue: undefined,\n\t\t\t});\n\t\t};\n\n\t\tlet newFilter = createNewFilter();\n\n\t\tconst convertToDateFormat = (value: string, revert: boolean) => {\n\t\t\tconst dateFormat = props.column!.componentProps.dateFormat || Config.dateFormat;\n\t\t\tconst displayFormat = props.column!.componentProps.displayFormat || Config.displayFormat;\n\n\t\t\tif (revert) {\n\t\t\t\tif (dayjs(value, displayFormat).isValid() || !dayjs(value, dateFormat).isValid()) {\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t\treturn dayjs(value, dateFormat).format(displayFormat);\n\t\t\t}\n\n\t\t\tif (dayjs(value, dateFormat).isValid() || !dayjs(value, displayFormat).isValid()) {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\treturn dayjs(value, displayFormat).format(dateFormat);\n\t\t};\n\n\t\tconst checkDateValueFormat = (value: string | string[], revert = false) => {\n\t\t\tif (!['ZdDate', 'ZdDateRange'].includes(props.column!.componentProps.component)) return value;\n\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\treturn value.map((item) => convertToDateFormat(item, revert));\n\t\t\t}\n\t\t\treturn convertToDateFormat(value, revert);\n\t\t};\n\n\t\t// use WeakMap to avoid memory leaks\n\t\tconst idMap = new WeakMap<object, string>();\n\t\tlet idCounter = 0;\n\n\t\t// retrieves a unique id for each item\n\t\tconst getId = (item: object) => {\n\t\t\tif (!idMap.has(item)) {\n\t\t\t\tidMap.set(item, `__item__${idCounter++}`);\n\t\t\t}\n\t\t\treturn idMap.get(item)!;\n\t\t};\n\n\t\t// use computed to generate unique ids for each filter item\n\t\t// this is needed for the v-for :key updates\n\t\tconst modelWithIds = computed(() => {\n\t\t\tif (!props.multiple) {\n\t\t\t\tif (props.modelValue.length > 0) {\n\t\t\t\t\treturn [{ id: getId(props.modelValue[0]), item: props.modelValue[0] }];\n\t\t\t\t}\n\n\t\t\t\treturn [{ id: getId(newFilter), item: newFilter }];\n\t\t\t}\n\n\t\t\treturn [...props.modelValue, newFilter].map((item) => ({\n\t\t\t\tid: getId(item),\n\t\t\t\titem,\n\t\t\t}));\n\t\t});\n\n\t\tconst debounceUpdateModel = debounce((modelValue: IDynamicFilterItem[]) => {\n\t\t\tif (Utils.isEqual(modelValue, props.modelValue)) return;\n\t\t\tctx.emit('update:modelValue', modelValue);\n\t\t\tnewFilter = createNewFilter();\n\t\t}, 500);\n\n\t\tconst changeRelation = (index: number, { component }: IEventParam<InputType>) => {\n\t\t\tconst modelValue = cloneDeep(props.modelValue);\n\t\t\tconst isNewFilter = index === modelValue.length;\n\t\t\tconst filter = isNewFilter ? newFilter : modelValue[index];\n\t\t\tconst { value } = component;\n\n\t\t\tfocusValueInput(index);\n\n\t\t\t// update item type value\n\t\t\tfilter.relation = value;\n\n\t\t\tif (isNewFilter) return;\n\n\t\t\tdebounceUpdateModel(modelValue);\n\t\t};\n\n\t\tconst changeOperation = (index: number, { component }: IEventParam<InputType>) => {\n\t\t\tconst modelValue = cloneDeep(props.modelValue);\n\t\t\tconst filterItem = modelValue[index];\n\t\t\tconst isNewFilter = index === modelValue.length;\n\t\t\tconst filter = isNewFilter ? newFilter : filterItem;\n\t\t\tconst { value } = component;\n\n\t\t\tfocusValueInput(index);\n\n\t\t\t// if operation is IN, NOT_IN or BETWEEN, value should be an array\n\t\t\tif (isArrayOperation(value)) {\n\t\t\t\tfilter.value = Array.isArray(filterItem.value) ? filterItem.value : [filterItem.value];\n\t\t\t}\n\n\t\t\t// update item type value\n\t\t\tfilter.operation = value;\n\n\t\t\tif (isNewFilter) return;\n\n\t\t\tdebounceUpdateModel(modelValue);\n\t\t};\n\n\t\tconst changeValue = (item: IDynamicFilterItem, index: number, { component }: IEventParam<InputType>) => {\n\t\t\tconst modelValue = cloneDeep(props.modelValue);\n\t\t\tconst filter = cloneDeep(item);\n\t\t\tconst { value } = component;\n\t\t\tconst isNewFilter = props.multiple && index === modelValue.length;\n\t\t\tlet formattedValue = value;\n\n\t\t\tif (value && isArrayOperation(filter.operation)) {\n\t\t\t\tformattedValue = value.split(';');\n\t\t\t}\n\n\t\t\tfilter.value = checkDateValueFormat(formattedValue);\n\n\t\t\tif (!props.multiple) {\n\t\t\t\tdebounceUpdateModel([filter]);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (isNewFilter) {\n\t\t\t\t// only emit event when newFilter has value\n\t\t\t\tif (!filter.value) return;\n\n\t\t\t\tdebounceUpdateModel([...modelValue, filter]);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!filter.value) {\n\t\t\t\t// when removing the last (not new) filter, should pass its operation and relation to the new filter\n\t\t\t\tif (index === modelValue.length - 1) {\n\t\t\t\t\tnewFilter.operation = filter.operation;\n\t\t\t\t\tnewFilter.relation = filter.relation;\n\t\t\t\t}\n\n\t\t\t\tmodelValue.splice(index, 1);\n\n\t\t\t\t// if the removed filter was the first, should set the new first relation to AND\n\t\t\t\tif (modelValue.length > 0 && index === 0) {\n\t\t\t\t\tmodelValue[0].relation = 'AND';\n\t\t\t\t}\n\n\t\t\t\t// if the removed filter was the last, should set the newFilter relation to AND\n\t\t\t\tif (modelValue.length === 0) {\n\t\t\t\t\tnewFilter.relation = 'AND';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdebounceUpdateModel(modelValue);\n\t\t};\n\n\t\tconst getComponentType = (operation: string) => {\n\t\t\treturn isArrayOperation(operation) ? 'ZdTextInput' : props.column.componentProps.component;\n\t\t};\n\n\t\tconst getComponentHint = (operation: string) => {\n\t\t\treturn isArrayOperation(operation) ? 'TEKGRID_MULTIPLE_VALUE_HINT' : '';\n\t\t};\n\n\t\tconst getItemValue = (item: IDynamicFilterItem) => {\n\t\t\treturn isArrayOperation(item.operation) ? item.value.join(';') : item.value;\n\t\t};\n\n\t\treturn {\n\t\t\tchangeValue,\n\t\t\tchangeRelation,\n\t\t\tchangeOperation,\n\t\t\tgetValueInputName,\n\t\t\tnewFilter,\n\t\t\tgetComponentType,\n\t\t\tgetComponentHint,\n\t\t\tmodelWithIds,\n\t\t\tgetItemValue,\n\t\t};\n\t},\n});\n\nexport default tekGridColumnFilter;\n","import { TekGrid, TekGridColumnsButton } from '@zeedhi/teknisa-components-common';\nimport sortable from 'sortablejs';\nimport { type ComponentPublicInstance, computed, defineComponent, mergeProps, nextTick, ref, watch } from 'vue';\nimport { ZdIterableColumnsButtonProps, useButtonInstance, useCreateInstance } from '@zeedhi/vuetify';\nimport optionsModal from './TekGridColumnsOptionsModal';\n\nexport const TekGridColumnsButtonProps = {\n\t...ZdIterableColumnsButtonProps,\n\thideGroups: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n};\n\nconst tekGridColumnsButton = defineComponent({\n\tprops: TekGridColumnsButtonProps,\n\tinheritAttrs: false,\n\tsetup(props, ctx) {\n\t\tconst { instance, root } = useCreateInstance<TekGridColumnsButton, ComponentPublicInstance>(\n\t\t\tprops,\n\t\t\tctx,\n\t\t\tTekGridColumnsButton,\n\t\t\tTekGridColumnsButtonProps,\n\t\t);\n\t\tconst buttonScope = useButtonInstance({ instance, root });\n\n\t\tconst menuIsOpened = ref(false);\n\n\t\tconst sortableInitialized = ref(false);\n\n\t\tconst teste = (a: any) => {\n\t\t\tconsole.warn(a);\n\t\t};\n\n\t\twatch(menuIsOpened, () => {\n\t\t\tif (!menuIsOpened.value || sortableInitialized.value) return;\n\n\t\t\tsortableInitialized.value = true;\n\t\t\tnextTick(() => {\n\t\t\t\tconst columnsTableBody = document.querySelector(`#${instance.name}_columns_table tbody`);\n\t\t\t\tif (columnsTableBody) {\n\t\t\t\t\tsortable.create(columnsTableBody as HTMLElement, {\n\t\t\t\t\t\thandle: '.sortHandle',\n\t\t\t\t\t\tdragClass: 'tek-grid-columns-button-sortable-drag',\n\t\t\t\t\t\tonEnd: sortEnd,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tconst gridGroupColumnNames = computed(() => {\n\t\t\treturn instance.iterableComponent.columns.filter((column) => column.grouped).map((column) => column.name) || [];\n\t\t});\n\n\t\tconst sortEnd = (event: any) => {\n\t\t\tconst grid: TekGrid = instance.iterableComponent as any;\n\t\t\tconst newOrder = Array.from(event.srcElement.querySelectorAll('tr')).map((row: any) => row.getAttribute('name'));\n\t\t\tconst groupColumnNames: string[] = [];\n\t\t\tconst newColumns = newOrder.map((columnName) => {\n\t\t\t\tconst column = grid.getColumn(columnName);\n\t\t\t\tif (column.grouped) {\n\t\t\t\t\tgroupColumnNames.push(columnName);\n\t\t\t\t}\n\n\t\t\t\treturn column;\n\t\t\t});\n\t\t\tconst ignoredColumns = grid.columns.filter((column) => instance.ignoreColumns.indexOf(column.name) !== -1);\n\t\t\tgrid.columns = newColumns.concat(ignoredColumns);\n\n\t\t\tif (grid.updateGrouping && JSON.stringify(groupColumnNames) !== JSON.stringify(gridGroupColumnNames)) {\n\t\t\t\tgrid.updateGrouping();\n\t\t\t}\n\t\t\tgrid.changeLayout();\n\t\t};\n\n\t\tconst moreOptions = () => {\n\t\t\toptionsModal.show(instance);\n\t\t};\n\n\t\tconst close = () => {\n\t\t\tmenuIsOpened.value = false;\n\t\t};\n\n\t\treturn {\n\t\t\t...buttonScope,\n\t\t\tinstance,\n\t\t\troot,\n\t\t\tmenuIsOpened,\n\t\t\tmoreOptions,\n\t\t\tclose,\n\t\t\tteste,\n\t\t\tmergeProps,\n\t\t};\n\t},\n});\n\nexport default tekGridColumnsButton;\n","import { Button } from '@zeedhi/common';\nimport { TekGridFilterButton } from '@zeedhi/teknisa-components-common';\nimport type { IEventParam } from '@zeedhi/core';\nimport { type ComponentPublicInstance, defineComponent } from 'vue';\nimport { ZdButtonProps, useButtonInstance, useCreateInstance } from '@zeedhi/vuetify';\n\nexport const TekGridFilterButtonProps = {\n\t...ZdButtonProps,\n\tgridName: {\n\t\ttype: String,\n\t\tdefault: '',\n\t},\n\tgrid: {\n\t\ttype: [Object, String],\n\t\tdefault: () => {},\n\t},\n\tshowCheckboxAll: {\n\t\ttype: [Boolean, String],\n\t\tdefault: false,\n\t},\n};\n\nconst tekGridFilterButtonComponent = defineComponent({\n\tprops: TekGridFilterButtonProps,\n\tinheritAttrs: false,\n\tsetup(props, ctx) {\n\t\tconst { instance, root } = useCreateInstance<TekGridFilterButton, ComponentPublicInstance>(\n\t\t\tprops,\n\t\t\tctx,\n\t\t\tTekGridFilterButton,\n\t\t\tTekGridFilterButtonProps,\n\t\t);\n\t\tconst buttonScope = useButtonInstance({ instance, root });\n\n\t\tconst filterClick = ({ event }: IEventParam<Button>) => {\n\t\t\tinstance.click(event);\n\t\t};\n\n\t\treturn {\n\t\t\t...buttonScope,\n\t\t\tinstance,\n\t\t\troot,\n\t\t\tfilterClick,\n\t\t};\n\t},\n});\n\nexport default tekGridFilterButtonComponent;\n","import { Button, Input } from '@zeedhi/common';\nimport { type ITekGridLayout, TekGridLayoutOptions, TekRestDatasource } from '@zeedhi/teknisa-components-common';\nimport type { IEventParam } from '@zeedhi/core';\nimport { defineComponent, mergeProps, onMounted, ref } from 'vue';\nimport { ZdComponentRenderProps, useCreateInstance } from '@zeedhi/vuetify';\nimport { useTableLayout } from '../../../composables/useTableLayout';\n\nexport const TekGridLayoutOptionsProps = {\n\t...ZdComponentRenderProps,\n\t// Zeedhi 3.0\n};\n\nconst layoutOptionsComponent = defineComponent({\n\tprops: TekGridLayoutOptionsProps,\n\tinheritAttrs: false,\n\tsetup(props, ctx) {\n\t\tconst { instance, root } = useCreateInstance<TekGridLayoutOptions>(\n\t\t\tprops,\n\t\t\tctx,\n\t\t\tTekGridLayoutOptions,\n\t\t\tTekGridLayoutOptionsProps,\n\t\t);\n\n\t\tconst { applyLayout: applyTekGridLayout, getColumnElements, getTableWidth } = useTableLayout();\n\n\t\tonMounted(() => {\n\t\t\tinstance.viewApplyLayout = applyLayout;\n\t\t\tinstance.viewGetCurrentLayout = getCurrentLayout;\n\t\t});\n\n\t\tconst confirmLayoutClick = ({ component }: IEventParam<Input>) => {\n\t\t\tconst layoutName = component.value;\n\t\t\tif (layoutName) {\n\t\t\t\tconst newLayout: ITekGridLayout = getCurrentLayout(layoutName);\n\t\t\t\tinstance.newLayout(newLayout);\n\t\t\t}\n\n\t\t\tmenuActive.value = false;\n\t\t\tcomponent.value = '';\n\t\t};\n\n\t\tconst datasourceDynamicFilter = () => {\n\t\t\tconst datasource = instance.grid.datasource;\n\t\t\tif (datasource instanceof TekRestDatasource) return datasource.dynamicFilter;\n\t\t\treturn {};\n\t\t};\n\n\t\tconst changeLayout = (layout: ITekGridLayout) => {\n\t\t\tinstance.updateLayout(layout.name, getCurrentLayout(layout.name));\n\t\t};\n\n\t\tconst applyLayout = (layout?: ITekGridLayout) => {\n\t\t\tconst defaultLayout = {\n\t\t\t\toriginalDatasourceOrder: instance.originalDatasourceOrder,\n\t\t\t\toriginalDatasourceFilter: instance.originalDatasourceFilter,\n\t\t\t\toriginalColumnProps: instance.originalColumnProps,\n\t\t\t\toriginalDatasourceDynamicFilter: instance.originalDatasourceDynamicFilter,\n\t\t\t};\n\t\t\tapplyTekGridLayout({ layout, defaultLayout, changeLayoutCallback: changeLayout });\n\t\t\tmenuActive.value = false;\n\t\t};\n\n\t\tconst getCurrentLayout = (layoutName: string) => {\n\t\t\tconst { grid } = instance;\n\n\t\t\tconst gridWidth = getTableWidth();\n\t\t\tconst columnElementsDict = getColumnElements();\n\n\t\t\treturn {\n\t\t\t\tname: layoutName,\n\t\t\t\tgridWidth,\n\t\t\t\torder: grid.datasource.order,\n\t\t\t\tfilter: grid.datasource.filter,\n\t\t\t\tdynamicFilter: datasourceDynamicFilter(),\n\t\t\t\tcolumns: grid.columns.map((column: any, index) => {\n\t\t\t\t\tconst columnElement = columnElementsDict[index];\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname: column.name,\n\t\t\t\t\t\tlabel: column.label,\n\t\t\t\t\t\talign: column.align,\n\t\t\t\t\t\twidth: columnElement ? window.getComputedStyle(columnElement).width : 'unset',\n\t\t\t\t\t\tminWidth: column.minWidth,\n\t\t\t\t\t\tmaxWidth: column.maxWidth,\n\t\t\t\t\t\tisVisible: column.isVisible,\n\t\t\t\t\t\tfixed: column.fixed,\n\t\t\t\t\t\tgrouped: column.grouped,\n\t\t\t\t\t\tgroupOpened: column.groupOpened,\n\t\t\t\t\t\taggregation: column.aggregation,\n\t\t\t\t\t\tfilterHelperValue: instance.getHelperValue(column),\n\t\t\t\t\t};\n\t\t\t\t}),\n\t\t\t};\n\t\t};\n\n\t\tconst menuActive = ref(false);\n\n\t\tconst applyOrUpdateLayout = (event: Event, layoutName: string) => {\n\t\t\tif (instance.layoutEdited) {\n\t\t\t\tinstance.updateLayout(layoutName, getCurrentLayout(layoutName));\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\tmenuActive.value = false;\n\t\t\t} else {\n\t\t\t\tinstance.applyLayout(layoutName);\n\t\t\t}\n\t\t};\n\n\t\tconst deleteLayout = (event: Event, layoutName: string) => {\n\t\t\tinstance.deleteLayout(layoutName);\n\t\t\tevent.stopImmediatePropagation();\n\t\t};\n\n\t\tconst deleteButtonClick = (layoutName: string) => {\n\t\t\treturn ({ event }: IEventParam<Button>) => { \n\t\t\t\tdeleteLayout(event!, layoutName);\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tinstance,\n\t\t\troot,\n\t\t\tmenuActive,\n\t\t\tconfirmLayoutClick,\n\t\t\tapplyOrUpdateLayout,\n\t\t\tdeleteButtonClick,\n\t\t\tmergeProps,\n\t\t};\n\t},\n});\n\nexport default layoutOptionsComponent;\n","import { ZdUserInfoProps } from '@zeedhi/zd-user-info-vue';\nimport { defineComponent } from 'vue';\nimport { TekUserInfo as TekUserInfoClass } from '@zeedhi/teknisa-components-common';\nimport type { IComponentRender } from '@zeedhi/common';\nimport { useCreateInstance, useGetMethods } from '@zeedhi/vuetify';\n\nexport const TekUserInfoProps ={\n ...ZdUserInfoProps,\n aboutImage: {\n type: String,\n default: '',\n },\n defaultEmail: {\n type: String,\n default: '',\n },\n versionInfo: {\n type: [Object, String],\n default: null,\n },\n versionUrl: {\n type: String,\n default: '',\n },\n bottomSlot: {\n type: Array as () => IComponentRender[],\n default: undefined,\n\t\twatch: false,\n },\n};\n\nconst tekUserInfoComponent = defineComponent({\n props: TekUserInfoProps,\n inheritAttrs: false,\n setup(props, ctx) {\n const { instance, root } = useCreateInstance<TekUserInfoClass>(props, ctx, TekUserInfoClass, TekUserInfoProps);\n\n const { click, focus, blur, mouseenter, mouseleave } = useGetMethods(instance, root);\n\n return {\n instance,\n root,\n click,\n focus,\n blur,\n mouseenter,\n mouseleave,\n };\n }\n})\n\nexport default tekUserInfoComponent;\n","import { TekUserInfoList as TekUserInfoListClass } from '@zeedhi/teknisa-components-common';\nimport { defineComponent } from 'vue';\nimport { useCreateInstance, useGetMethods, ZdListProps } from '@zeedhi/vuetify';\n\n\nconst TekUserInfoListProps = {\n ...ZdListProps,\n parentName: {\n type: String,\n default: '',\n },\n dense: {\n type: [Boolean, String],\n default: true,\n },\n};\n\nconst tekUserInfoListComponent = defineComponent({\n props: TekUserInfoListProps,\n inheritAttrs: false,\n setup(props,ctx) {\n const { instance, root } = useCreateInstance<TekUserInfoListClass>(\n props,\n ctx,\n TekUserInfoListClass,\n TekUserInfoListProps,\n );\n\n const { click, focus, blur, mouseenter, mouseleave } = useGetMethods(instance, root);\n\n return {\n instance,\n root,\n click,\n focus,\n blur,\n mouseenter,\n mouseleave,\n }; \n }\n\n})\n\nexport default tekUserInfoListComponent;\n","/* eslint-disable max-len */\nimport type { App } from 'vue';\nimport I18NextVue from 'i18next-vue';\nimport { Icons } from '@zeedhi/common';\nimport { components } from './components';\nimport { I18n } from '@zeedhi/core';\n\nIcons.addIcons({\n add: 'mdi-plus-box',\n delete: 'mdi-trash-can-outline',\n refresh: 'mdi-refresh',\n more: 'mdi-dots-vertical',\n filter: 'mdi-filter',\n confirmLayout: 'mdi-check',\n updateLayout: 'mdi-square-edit-outline',\n layout: 'mdi-table-star',\n});\n\nconst TeknisaComponents = {\n install(app: App): void {\n if (!app._context.components.i18next) {\n app.use(I18NextVue, { i18next: I18n.instance });\n }\n Object.keys(components).forEach((id) => {\n app.component(id, components[id]);\n });\n },\n};\n\nexport default TeknisaComponents;\nexport * from './components/public';\n"],"names":["TekBreadcrumbHeaderProps","ZdComponentRenderProps","breadcrumbHeaderComponent","defineComponent","props","ctx","instance","root","useCreateInstance","BreadcrumbHeader","_hoisted_2","_createElementBlock","_ctx","_createVNode","_component_zd_breadcrumbs","_mergeProps","_component_v_col","_component_zd_text","_normalizeProps","_guardReactiveProps","_createElementVNode","_hoisted_3","_openBlock","_Fragment","_renderList","child","_createBlock","_resolveDynamicComponent","_renderSlot","useTableLayout","applyLayout","inject","getColumnElements","getTableWidth","NotProvidedError","provideTableLayout","rootEl","tableElement","_a","columnDictionary","computed","getColumnDictionary","datasourceDynamicFilter","datasource","TekRestDatasource","columns","column","addMissingColumns","layout","layoutColumnNames","columnName","setHelperValue","value","TekGridColumn","prop","index","getHelperValues","dynamicFilter","filter","cloneDeep","filterOptions","col","filterHelperValue","item","helperValue","key","columnObj","TekFilterHelper","applyDefaultLayout","defaultLayout","groupParamsChanged","defaultColumn","applyNewLayout","changeLayoutCallback","gridColumnNames","layoutChanged","isInGrid","nextTick","_key","columnElement","oldOrder","oldFilter","oldDynamicFilter","Utils","elementDict","el","provide","TekGridProps","buildProps","ZdGridEditableProps","Config","gridEditableComponent","TekGrid","renderedData","visibleData","row","gridEditableScope","useGridEditableInstance","element","getRootElement","visibleColumns","useGridColumns","debouncedDatasourceGet","debounce","event","TekMemoryDatasource","datasourceFilter","simpleFilter","setFilter","newFilter","normalFilter","columnHasFilter","isRowVisible","isCurrentRowGroup","uniqueKey","currentRow","isGroupSelectIndeterminate","hasSelected","hasNotSelected","idx","isGroupSelected","selectGroupRowClick","isSelected","rootElement","selectGroup","openGroup","isGroup","isFooter","groupColumnNames","sortBy","order","_component_v_data_table","$event","_normalizeClass","_normalizeStyle","_cache","_component_zd_grid_toolbar","_withCtx","tableColumns","isSorted","getSortIcon","toggleSort","_component_tek_grid_header_row","_component_zd_iterable_no_data","_component_zd_grid_footer","headers","internalItems","i","_component_tek_grid_group_row","_component_tek_grid_footer_row","_component_zd_grid_editable_row","_component_tek_grid_indentation","_vShow","isArrayOperation","operation","TekGridColumnFilterProps","tekGridColumnFilter","getValueInputName","focusValueInput","valueInputName","Metadata","createNewFilter","reactive","convertToDateFormat","revert","dateFormat","displayFormat","dayjs","checkDateValueFormat","idMap","idCounter","getId","modelWithIds","debounceUpdateModel","modelValue","component","isNewFilter","formattedValue","filterItem","_component_v_menu","_component_zd_grid_header_icon","_component_v_card","id","filterIndex","_component_zd_radio","params","_component_zd_select","_sfc_main$3","emit","calcWidth","sort","_component_zd_grid_header_row","isHovering","_component_zd_grid_column_header","_hoisted_1","_toDisplayString","_component_tek_grid_column_filter","_TekGridColumnsOptionsController_decorators","Singleton","TekGridColumnsOptionsController","modal","__publicField","name","aggregation","result","_data","columnNames","I18n","propName","select","propValue","selectNames","instances","mouseEvent","orderedColumns","fixedIdx","visibleIdx","groupedIdx","otherIdx","newIndex","Sortable","list","ignoredColumns","orderColumn","columnIdx","iterableColumn","_init","__decoratorStart","__decorateElement","__runInitializers","_TekGridColumnsOptionsModal","ModalService","Loader","controller","TekGridColumnsOptionsModal","TekGridColumnsButtonProps","ZdIterableColumnsButtonProps","tekGridColumnsButton","TekGridColumnsButton","buttonScope","useButtonInstance","menuIsOpened","ref","sortableInitialized","teste","a","watch","columnsTableBody","sortable","sortEnd","gridGroupColumnNames","grid","newOrder","newColumns","optionsModal","mergeProps","_hoisted_6","_hoisted_9","onMenu","_component_v_tooltip","onTooltip","_component_zd_activator_wrapper","_component_zd_checkbox","_hoisted_7","_hoisted_8","_component_zd_button","TekGridFilterButtonProps","ZdButtonProps","tekGridFilterButtonComponent","TekGridFilterButton","_sfc_main$2","n","TekGridLayoutOptionsProps","layoutOptionsComponent","TekGridLayoutOptions","applyTekGridLayout","onMounted","getCurrentLayout","confirmLayoutClick","layoutName","newLayout","menuActive","changeLayout","gridWidth","columnElementsDict","applyOrUpdateLayout","deleteLayout","_component_v_badge","_component_v_list","_component_v_list_item","_createTextVNode","_component_zd_text_input","_sfc_main$1","length","_component_table_row","___","_cached","_memo","_isMemoSame","_component_zd_grid_cell","_sfc_main","_component_zd_grid_checkbox","_withModifiers","_component_v_icon","TekLoadingProps","ZdLoadingProps","loadingComponent","Loading","_component_zd_loading","TekUserInfoProps","ZdUserInfoProps","tekUserInfoComponent","TekUserInfoClass","click","focus","blur","mouseenter","mouseleave","useGetMethods","_component_zd_user_info","TekUserInfoListProps","ZdListProps","tekUserInfoListComponent","TekUserInfoListClass","_component_zd_list","components","TekBreadcrumbHeader","TekGridColumnFilter","TekGridHeaderRow","TekGridIndentation","TekGridFooterRow","TekGridGroupRow","TekLoading","TekUserInfo","TekUserInfoList","Icons","TeknisaComponents","app","I18NextVue"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zeedhi/teknisa-components-vuetify",
3
- "version": "3.2.0",
3
+ "version": "3.3.0",
4
4
  "description": "Teknisa Components based on Vuetify",
5
5
  "author": "Zeedhi <zeedhi@teknisa.com>",
6
6
  "license": "ISC",
@@ -52,7 +52,7 @@
52
52
  "@vue/tsconfig": "^0.7.0",
53
53
  "@zeedhi/common": "^3.0.0",
54
54
  "@zeedhi/core": "^3.0.0",
55
- "@zeedhi/teknisa-components-common": "^3.2.0",
55
+ "@zeedhi/teknisa-components-common": "^3.3.0",
56
56
  "@zeedhi/vuetify": "^3.0.0",
57
57
  "sass": "^1.83.0",
58
58
  "typescript": "~5.6.2",
@@ -62,7 +62,7 @@
62
62
  "vue": "^3.5.13",
63
63
  "vue-tsc": "^2.1.10"
64
64
  },
65
- "gitHead": "43ffebef28c3efaf5e4f1a6947c37487c439f9a3",
65
+ "gitHead": "ee16bba18da34043f62f3aa45fe5f3d148e71dfd",
66
66
  "env": {
67
67
  "NODE_ENV": "production"
68
68
  }