{"version":3,"sources":["webpack:///./node_modules/quasar/src/components/linear-progress/QLinearProgress.js","webpack:///./node_modules/quasar/src/components/table/QTh.js","webpack:///./node_modules/quasar/src/components/markup-table/QMarkupTable.js","webpack:///./node_modules/quasar/src/components/table/get-table-middle.js","webpack:///./node_modules/quasar/src/components/virtual-scroll/QVirtualScroll.js","webpack:///./node_modules/quasar/src/composables/private/use-fullscreen.js","webpack:///./node_modules/quasar/src/utils/private/sort.js","webpack:///./node_modules/quasar/src/components/table/table-sort.js","webpack:///./node_modules/quasar/src/components/table/table-filter.js","webpack:///./node_modules/quasar/src/components/table/table-pagination.js","webpack:///./node_modules/quasar/src/components/table/table-row-selection.js","webpack:///./node_modules/quasar/src/components/table/table-row-expand.js","webpack:///./node_modules/quasar/src/components/table/table-column-selection.js","webpack:///./node_modules/quasar/src/components/table/QTable.js"],"names":["defaultSizes","xs","sm","md","lg","xl","width","val","reverse","$q","transform","lang","rtl","defineComponent","name","props","useDarkProps","useSizeProps","value","type","Number","default","buffer","color","String","trackColor","Boolean","stripe","indeterminate","query","rounded","instantFeedback","setup","slots","proxy","getCurrentInstance","isDark","useDark","sizeStyle","useSize","motion","computed","classes","trackStyle","trackClass","modelStyle","modelClass","stripeStyle","stripeClass","child","h","class","style","push","role","hMergeSlot","Object","autoWidth","emits","emit","vm","hSlot","col","vnode","key","colsMap","sortable","action","align","hUniqueSlot","QIcon","__iconClass","iconSet","table","arrowUp","data","__thClass","headerStyle","onClick","evt","sort","separatorValues","dense","flat","bordered","square","wrapCells","separator","validator","v","includes","content","comps","list","QList","QMarkupTable","typeOptions","useVirtualScrollProps","items","Array","itemsFn","Function","itemsSize","scrollTarget","attrs","localScrollTarget","rootRef","ref","virtualScrollLength","parseInt","isArray","length","virtualScrollSliceRange","localResetVirtualScroll","padVirtualScroll","onVirtualScrollEvt","useVirtualScroll","getVirtualScrollTarget","getVirtualScrollEl","virtualScrollScope","mapFn","item","i","index","from","slice","to","map","virtualScrollHorizontal","attributes","tabindex","$el","configureScrollTarget","getScrollTarget","addEventListener","listenOpts","passive","unconfigureScrollTarget","removeEventListener","__getVirtualChildren","before","concat","after","watch","onBeforeMount","onMounted","onBeforeUnmount","getTableMiddle","useFullscreenProps","fullscreen","noRouteFullscreenExit","useFullscreenEmits","historyEntry","fullscreenFillerNode","container","inFullscreen","toggleFullscreen","exitFullscreen","setFullscreen","parentNode","replaceChild","document","body","appendChild","classList","add","handler","History","remove","scrollIntoView","setTimeout","vmHasRouter","$route","createElement","assign","sortDate","a","b","Date","useTableSortProps","sortMethod","binaryStateSort","columnSortOrder","useTableSort","computedPagination","colList","setPagination","columnToSort","sortBy","find","def","computedSortMethod","descending","field","dir","A","B","isNumber","isDate","s","toLocaleString","toLowerCase","sortOrder","page","useTableFilterProps","filter","filterMethod","useTableFilter","computedFilterMethod","rows","terms","cols","cellValue","lowerTerms","row","some","haystack","indexOf","nextTick","deep","samePagination","oldPag","newPag","prop","fixPagination","p","rowsPerPage","useTablePaginationProps","pagination","rowsPerPageOptions","useTablePaginationState","getCellValue","innerPagination","pag","isServerSide","rowsNumber","sendServerRequest","requestServerInteraction","forceServerRequest","newPagination","useTablePagination","filteredSortedRowsNumber","computedRowsNumber","firstRowIndex","lastRowIndex","isFirstPage","pagesNumber","Math","max","ceil","isLastPage","computedRowsPerPageOptions","opts","count","label","allRows","firstPage","prevPage","nextPage","lastPage","oldLastPage","currentPage","useTableRowSelectionProps","selection","selected","useTableRowSelectionEmits","useTableRowSelection","computedRows","getRowKey","selectedKeys","keys","forEach","hasSelectionMode","singleSelection","multipleSelection","allRowsSelected","every","someRowsSelected","rowsSelectedNumber","isRowSelected","clearSelection","updateSelection","added","payload","getVal","useTableRowExpandProps","expanded","useTableRowExpandEmits","useTableRowExpand","innerExpanded","isRowExpanded","setExpanded","updateExpanded","target","splice","useTableColumnSelectionProps","visibleColumns","useTableColumnSelection","columns","toUpperCase","computedCols","required","alignClass","headerClasses","__tdStyle","__tdClass","computedColsMap","names","computedColspan","tableColspan","bottomClass","commonVirtPropsObj","commonVirtPropsList","rowKey","loading","iconFirstPage","iconPrevPage","iconNextPage","iconLastPage","title","hideHeader","grid","gridHeader","virtualScroll","noDataLabel","noResultsLabel","loadingLabel","selectedRowsLabel","rowsPerPageLabel","paginationLabel","titleClass","tableStyle","tableClass","tableHeaderStyle","tableHeaderClass","cardContainerClass","cardContainerStyle","cardStyle","cardClass","hideBottom","hideSelectedBanner","hideNoData","hidePagination","onRowClick","onRowDblclick","onRowContextmenu","useFullscreen","virtScrollRef","hasVirtScroll","cardDefaultClass","__containerClass","containerClass","reset","filteredSortedRows","nothingToDisplay","virtProps","acc","virtualScrollItemSize","resetVirtualScroll","getBody","getGridBody","header","getTHead","topRow","bottomRow","virtSlots","getTBodyTR","topContent","QVirtualScroll","onVirtualScroll","onVScroll","getTBody","unshift","scrollTo","toIndex","edge","rowEl","querySelector","offsetTop","direction","scrollTop","info","getProgress","QLinearProgress","dark","bodySlot","pageIndex","getBodyScope","__trClass","bodyCell","bodyCellCol","slot","getBodyCellScope","getBodySelectionScope","QCheckbox","modelValue","onUpdate:modelValue","adding","onDblclick","onContextmenu","injectBodyCommonScope","c","defineProperty","get","configurable","enumerable","rowIndex","set","format","marginalsScope","getTopDiv","top","topLeft","topRight","topSelection","hasSelection","vaue","topClass","headerSelectedValue","getTHeadTR","colspan","headerCell","getHeaderScope","headerCellCol","QTh","onMultipleSelectionSet","navIcon","ico","getBottomDiv","message","noResults","noData","children","icon","warning","bottom","selectedRecords","getPaginationDiv","onPagSelection","control","paginationSlot","hasOpts","recordsPerPage","QSelect","options","displayValue","borderless","optionsDense","optionsCover","min","btnProps","round","size","QBtn","disable","getGridHeader","scope","QSeparator"],"mappings":"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","file":"js/chunk-78db3088.dbc2f340.js","sourcesContent":["import { h, defineComponent, computed, getCurrentInstance } from 'vue'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport useSize, { useSizeProps } from '../../composables/private/use-size.js'\n\nimport { hMergeSlot } from '../../utils/private/render.js'\n\nconst defaultSizes = {\n xs: 2,\n sm: 4,\n md: 6,\n lg: 10,\n xl: 14\n}\n\nfunction width (val, reverse, $q) {\n return {\n transform: reverse === true\n ? `translateX(${ $q.lang.rtl === true ? '-' : '' }100%) scale3d(${ -val },1,1)`\n : `scale3d(${ val },1,1)`\n }\n}\n\nexport default defineComponent({\n name: 'QLinearProgress',\n\n props: {\n ...useDarkProps,\n ...useSizeProps,\n\n value: {\n type: Number,\n default: 0\n },\n buffer: Number,\n\n color: String,\n trackColor: String,\n\n reverse: Boolean,\n stripe: Boolean,\n indeterminate: Boolean,\n query: Boolean,\n rounded: Boolean,\n\n instantFeedback: Boolean\n },\n\n setup (props, { slots }) {\n const { proxy } = getCurrentInstance()\n const isDark = useDark(props, proxy.$q)\n const sizeStyle = useSize(props, defaultSizes)\n\n const motion = computed(() => props.indeterminate === true || props.query === true)\n\n const classes = computed(() =>\n 'q-linear-progress'\n + (props.color !== void 0 ? ` text-${ props.color }` : '')\n + (props.reverse === true || props.query === true ? ' q-linear-progress--reverse' : '')\n + (props.rounded === true ? ' rounded-borders' : '')\n )\n\n const trackStyle = computed(() => width(props.buffer !== void 0 ? props.buffer : 1, props.reverse, proxy.$q))\n const trackClass = computed(() =>\n 'q-linear-progress__track absolute-full'\n + ` q-linear-progress__track--with${ props.instantFeedback === true ? 'out' : '' }-transition`\n + ` q-linear-progress__track--${ isDark.value === true ? 'dark' : 'light' }`\n + (props.trackColor !== void 0 ? ` bg-${ props.trackColor }` : '')\n )\n\n const modelStyle = computed(() => width(motion.value === true ? 1 : props.value, props.reverse, proxy.$q))\n const modelClass = computed(() =>\n 'q-linear-progress__model absolute-full'\n + ` q-linear-progress__model--with${ props.instantFeedback === true ? 'out' : '' }-transition`\n + ` q-linear-progress__model--${ motion.value === true ? 'in' : '' }determinate`\n )\n\n const stripeStyle = computed(() => ({ width: `${ props.value * 100 }%` }))\n const stripeClass = computed(() =>\n `q-linear-progress__stripe absolute-${ props.reverse === true ? 'right' : 'left' }`\n )\n\n return () => {\n const child = [\n h('div', {\n class: trackClass.value,\n style: trackStyle.value\n }),\n\n h('div', {\n class: modelClass.value,\n style: modelStyle.value\n })\n ]\n\n props.stripe === true && motion.value === false && child.push(\n h('div', {\n class: stripeClass.value,\n style: stripeStyle.value\n })\n )\n\n return h('div', {\n class: classes.value,\n style: sizeStyle.value,\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 1,\n 'aria-valuenow': props.indeterminate === true\n ? void 0\n : props.value\n }, hMergeSlot(slots.default, child))\n }\n }\n})\n","import { h, defineComponent, getCurrentInstance } from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\n\nimport { hSlot, hUniqueSlot } from '../../utils/private/render.js'\n\nexport default defineComponent({\n name: 'QTh',\n\n props: {\n props: Object,\n autoWidth: Boolean\n },\n\n emits: [ 'click' ],\n\n setup (props, { slots, emit }) {\n const vm = getCurrentInstance()\n const { proxy: { $q } } = vm\n\n return () => {\n if (props.props === void 0) {\n return h('th', {\n class: props.autoWidth === true ? 'q-table--col-auto-width' : ''\n }, hSlot(slots.default))\n }\n\n let col, child\n const name = vm.vnode.key\n\n if (name) {\n col = props.props.colsMap[ name ]\n if (col === void 0) { return }\n }\n else {\n col = props.props.col\n }\n\n if (col.sortable === true) {\n const action = col.align === 'right'\n ? 'unshift'\n : 'push'\n\n child = hUniqueSlot(slots.default, [])\n child[ action ](\n h(QIcon, {\n class: col.__iconClass,\n name: $q.iconSet.table.arrowUp\n })\n )\n }\n else {\n child = hSlot(slots.default)\n }\n\n const data = {\n class: col.__thClass\n + (props.autoWidth === true ? ' q-table--col-auto-width' : ''),\n style: col.headerStyle\n }\n\n if (col.sortable === true) {\n data.onClick = evt => {\n props.props.sort(col) // eslint-disable-line\n emit('click', evt)\n }\n }\n\n return h('th', data, child)\n }\n }\n})\n","import { h, defineComponent, computed, getCurrentInstance } from 'vue'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\n\nimport { hSlot } from '../../utils/private/render.js'\n\nconst separatorValues = [ 'horizontal', 'vertical', 'cell', 'none' ]\n\nexport default defineComponent({\n name: 'QMarkupTable',\n\n props: {\n ...useDarkProps,\n\n dense: Boolean,\n flat: Boolean,\n bordered: Boolean,\n square: Boolean,\n wrapCells: Boolean,\n\n separator: {\n type: String,\n default: 'horizontal',\n validator: v => separatorValues.includes(v)\n }\n },\n\n setup (props, { slots }) {\n const vm = getCurrentInstance()\n const isDark = useDark(props, vm.proxy.$q)\n\n const classes = computed(() =>\n 'q-markup-table q-table__container q-table__card'\n + ` q-table--${ props.separator }-separator`\n + (isDark.value === true ? ' q-table--dark q-table__card--dark q-dark' : '')\n + (props.dense === true ? ' q-table--dense' : '')\n + (props.flat === true ? ' q-table--flat' : '')\n + (props.bordered === true ? ' q-table--bordered' : '')\n + (props.square === true ? ' q-table--square' : '')\n + (props.wrapCells === false ? ' q-table--no-wrap' : '')\n )\n\n return () => h('div', {\n class: classes.value\n }, [\n h('table', { class: 'q-table' }, hSlot(slots.default))\n ])\n }\n})\n","import { h } from 'vue'\n\nexport default function (props, content) {\n return h('div', props, [\n h('table', { class: 'q-table' }, content)\n ])\n}\n","import { h, defineComponent, ref, computed, watch, onBeforeMount, onMounted, onBeforeUnmount } from 'vue'\n\nimport QList from '../item/QList.js'\nimport QMarkupTable from '../markup-table/QMarkupTable.js'\nimport getTableMiddle from '../table/get-table-middle.js'\n\nimport { useVirtualScroll, useVirtualScrollProps } from './use-virtual-scroll.js'\n\nimport { getScrollTarget } from '../../utils/scroll.js'\nimport { listenOpts } from '../../utils/event.js'\nimport { hMergeSlot } from '../../utils/private/render.js'\n\nconst comps = {\n list: QList,\n table: QMarkupTable\n}\n\nconst typeOptions = [ 'list', 'table', '__qtable' ]\n\nexport default defineComponent({\n name: 'QVirtualScroll',\n\n props: {\n ...useVirtualScrollProps,\n\n type: {\n type: String,\n default: 'list',\n validator: v => typeOptions.includes(v)\n },\n\n items: {\n type: Array,\n default: () => []\n },\n\n itemsFn: Function,\n itemsSize: Number,\n\n scrollTarget: {\n default: void 0\n }\n },\n\n setup (props, { slots, attrs }) {\n let localScrollTarget\n const rootRef = ref(null)\n\n const virtualScrollLength = computed(() => (\n props.itemsSize >= 0 && props.itemsFn !== void 0\n ? parseInt(props.itemsSize, 10)\n : (Array.isArray(props.items) ? props.items.length : 0)\n ))\n\n const {\n virtualScrollSliceRange,\n localResetVirtualScroll,\n padVirtualScroll,\n onVirtualScrollEvt\n } = useVirtualScroll({\n virtualScrollLength, getVirtualScrollTarget, getVirtualScrollEl\n })\n\n const virtualScrollScope = computed(() => {\n if (virtualScrollLength.value === 0) {\n return []\n }\n\n const mapFn = (item, i) => ({\n index: virtualScrollSliceRange.value.from + i,\n item\n })\n\n return props.itemsFn === void 0\n ? props.items.slice(virtualScrollSliceRange.value.from, virtualScrollSliceRange.value.to).map(mapFn)\n : props.itemsFn(virtualScrollSliceRange.value.from, virtualScrollSliceRange.value.to - virtualScrollSliceRange.value.from).map(mapFn)\n })\n\n const classes = computed(() =>\n 'q-virtual-scroll q-virtual-scroll' + (props.virtualScrollHorizontal === true ? '--horizontal' : '--vertical')\n + (props.scrollTarget !== void 0 ? '' : ' scroll')\n )\n\n const attributes = computed(() => (\n props.scrollTarget !== void 0 ? {} : { tabindex: 0 }\n ))\n\n watch(virtualScrollLength, () => {\n localResetVirtualScroll()\n })\n\n watch(() => props.scrollTarget, () => {\n unconfigureScrollTarget()\n configureScrollTarget()\n })\n\n function getVirtualScrollEl () {\n return rootRef.value.$el || rootRef.value\n }\n\n function getVirtualScrollTarget () {\n return localScrollTarget\n }\n\n function configureScrollTarget () {\n localScrollTarget = getScrollTarget(getVirtualScrollEl(), props.scrollTarget)\n localScrollTarget.addEventListener('scroll', onVirtualScrollEvt, listenOpts.passive)\n }\n\n function unconfigureScrollTarget () {\n if (localScrollTarget !== void 0) {\n localScrollTarget.removeEventListener('scroll', onVirtualScrollEvt, listenOpts.passive)\n localScrollTarget = void 0\n }\n }\n\n function __getVirtualChildren () {\n let child = padVirtualScroll(\n props.type === 'list' ? 'div' : 'tbody',\n virtualScrollScope.value.map(slots.default)\n )\n\n if (slots.before !== void 0) {\n child = slots.before().concat(child)\n }\n\n return hMergeSlot(slots.after, child)\n }\n\n onBeforeMount(() => {\n localResetVirtualScroll()\n })\n\n onMounted(() => {\n configureScrollTarget()\n })\n\n onBeforeUnmount(() => {\n unconfigureScrollTarget()\n })\n\n return () => {\n if (slots.default === void 0) {\n console.error('QVirtualScroll: default scoped slot is required for rendering')\n return\n }\n\n return props.type === '__qtable'\n ? getTableMiddle(\n { ref: rootRef, class: 'q-table__middle ' + classes.value },\n __getVirtualChildren()\n )\n : h(comps[ props.type ], {\n ...attrs,\n ref: rootRef,\n class: [ attrs.class, classes.value ],\n ...attributes.value\n }, __getVirtualChildren)\n }\n }\n})\n","import { ref, watch, onBeforeMount, onMounted, onBeforeUnmount, getCurrentInstance } from 'vue'\n\nimport History from '../../history.js'\nimport { vmHasRouter } from '../../utils/private/vm.js'\n\nexport const useFullscreenProps = {\n fullscreen: Boolean,\n noRouteFullscreenExit: Boolean\n}\n\nexport const useFullscreenEmits = [ 'update:fullscreen', 'fullscreen' ]\n\nexport default function () {\n const vm = getCurrentInstance()\n const { props, emit, proxy } = vm\n\n let historyEntry, fullscreenFillerNode, container\n const inFullscreen = ref(false)\n\n vmHasRouter(vm) === true && watch(() => proxy.$route, () => {\n props.noRouteFullscreenExit !== true && exitFullscreen()\n })\n\n watch(() => props.fullscreen, v => {\n if (inFullscreen.value !== v) {\n toggleFullscreen()\n }\n })\n\n watch(inFullscreen, v => {\n emit('update:fullscreen', v)\n emit('fullscreen', v)\n })\n\n function toggleFullscreen () {\n if (inFullscreen.value === true) {\n exitFullscreen()\n }\n else {\n setFullscreen()\n }\n }\n\n function setFullscreen () {\n if (inFullscreen.value === true) {\n return\n }\n\n inFullscreen.value = true\n container = proxy.$el.parentNode\n container.replaceChild(fullscreenFillerNode, proxy.$el)\n document.body.appendChild(proxy.$el)\n document.body.classList.add('q-body--fullscreen-mixin')\n\n historyEntry = {\n handler: exitFullscreen\n }\n History.add(historyEntry)\n }\n\n function exitFullscreen () {\n if (inFullscreen.value !== true) {\n return\n }\n\n if (historyEntry !== void 0) {\n History.remove(historyEntry)\n historyEntry = void 0\n }\n\n container.replaceChild(proxy.$el, fullscreenFillerNode)\n document.body.classList.remove('q-body--fullscreen-mixin')\n inFullscreen.value = false\n\n if (proxy.$el.scrollIntoView !== void 0) {\n setTimeout(() => { proxy.$el.scrollIntoView() })\n }\n }\n\n onBeforeMount(() => {\n fullscreenFillerNode = document.createElement('span')\n })\n\n onMounted(() => {\n props.fullscreen === true && setFullscreen()\n })\n\n onBeforeUnmount(exitFullscreen)\n\n // expose public methods\n Object.assign(proxy, {\n toggleFullscreen,\n setFullscreen,\n exitFullscreen\n })\n\n return {\n inFullscreen,\n toggleFullscreen\n }\n}\n","export function sortString (a, b) {\n if (typeof a !== 'string') {\n throw new TypeError('The value for sorting must be a String')\n }\n return a.localeCompare(b)\n}\n\nexport function sortNumber (a, b) {\n return a - b\n}\n\nexport function sortDate (a, b) {\n return (new Date(a)) - (new Date(b))\n}\n\nexport function sortBoolean (a, b) {\n return a && !b\n ? -1\n : (!a && b ? 1 : 0)\n}\n","import { computed } from 'vue'\n\nimport { sortDate } from '../../utils/private/sort.js'\nimport { isNumber, isDate } from '../../utils/private/is.js'\n\nexport const useTableSortProps = {\n sortMethod: Function,\n binaryStateSort: Boolean,\n columnSortOrder: {\n type: String,\n validator: v => v === 'ad' || v === 'da',\n default: 'ad'\n }\n}\n\nexport function useTableSort (props, computedPagination, colList, setPagination) {\n const columnToSort = computed(() => {\n const { sortBy } = computedPagination.value\n\n return sortBy\n ? colList.value.find(def => def.name === sortBy) || null\n : null\n })\n\n const computedSortMethod = computed(() => (\n props.sortMethod !== void 0\n ? props.sortMethod\n : (data, sortBy, descending) => {\n const col = colList.value.find(def => def.name === sortBy)\n if (col === void 0 || col.field === void 0) {\n return data\n }\n\n const\n dir = descending === true ? -1 : 1,\n val = typeof col.field === 'function'\n ? v => col.field(v)\n : v => v[ col.field ]\n\n return data.sort((a, b) => {\n let\n A = val(a),\n B = val(b)\n\n if (A === null || A === void 0) {\n return -1 * dir\n }\n if (B === null || B === void 0) {\n return 1 * dir\n }\n if (col.sort !== void 0) {\n return col.sort(A, B, a, b) * dir\n }\n if (isNumber(A) === true && isNumber(B) === true) {\n return (A - B) * dir\n }\n if (isDate(A) === true && isDate(B) === true) {\n return sortDate(A, B) * dir\n }\n if (typeof A === 'boolean' && typeof B === 'boolean') {\n return (A - B) * dir\n }\n\n [ A, B ] = [ A, B ].map(s => (s + '').toLocaleString().toLowerCase())\n\n return A < B\n ? -1 * dir\n : (A === B ? 0 : dir)\n })\n }\n ))\n\n function sort (col /* String(col name) or Object(col definition) */) {\n let sortOrder = props.columnSortOrder\n\n if (col === Object(col)) {\n if (col.sortOrder) {\n sortOrder = col.sortOrder\n }\n\n col = col.name\n }\n else {\n const def = colList.value.find(def => def.name === col)\n if (def !== void 0 && def.sortOrder) {\n sortOrder = def.sortOrder\n }\n }\n\n let { sortBy, descending } = computedPagination.value\n\n if (sortBy !== col) {\n sortBy = col\n descending = sortOrder === 'da'\n }\n else if (props.binaryStateSort === true) {\n descending = !descending\n }\n else if (descending === true) {\n if (sortOrder === 'ad') {\n sortBy = null\n }\n else {\n descending = false\n }\n }\n else { // ascending\n if (sortOrder === 'ad') {\n descending = true\n }\n else {\n sortBy = null\n }\n }\n\n setPagination({ sortBy, descending, page: 1 })\n }\n\n return {\n columnToSort,\n computedSortMethod,\n sort\n }\n}\n","import { computed, watch, nextTick } from 'vue'\n\nexport const useTableFilterProps = {\n filter: [ String, Object ],\n filterMethod: Function\n}\n\nexport function useTableFilter (props, setPagination) {\n const computedFilterMethod = computed(() => (\n props.filterMethod !== void 0\n ? props.filterMethod\n : (rows, terms, cols, cellValue) => {\n const lowerTerms = terms ? terms.toLowerCase() : ''\n return rows.filter(\n row => cols.some(col => {\n const val = cellValue(col, row) + ''\n const haystack = (val === 'undefined' || val === 'null') ? '' : val.toLowerCase()\n return haystack.indexOf(lowerTerms) !== -1\n })\n )\n }\n ))\n\n watch(\n () => props.filter,\n () => {\n nextTick(() => {\n setPagination({ page: 1 }, true)\n })\n },\n { deep: true }\n )\n\n return { computedFilterMethod }\n}\n","import { ref, computed, watch, nextTick } from 'vue'\n\nfunction samePagination (oldPag, newPag) {\n for (const prop in newPag) {\n if (newPag[ prop ] !== oldPag[ prop ]) {\n return false\n }\n }\n return true\n}\n\nfunction fixPagination (p) {\n if (p.page < 1) {\n p.page = 1\n }\n if (p.rowsPerPage !== void 0 && p.rowsPerPage < 1) {\n p.rowsPerPage = 0\n }\n return p\n}\n\nexport const useTablePaginationProps = {\n pagination: Object,\n rowsPerPageOptions: {\n type: Array,\n default: () => [ 5, 7, 10, 15, 20, 25, 50, 0 ]\n },\n\n 'onUpdate:pagination': Function\n}\n\nexport function useTablePaginationState (vm, getCellValue) {\n const { props, emit } = vm\n\n const innerPagination = ref(\n Object.assign({\n sortBy: null,\n descending: false,\n page: 1,\n rowsPerPage: props.rowsPerPageOptions.length > 0\n ? props.rowsPerPageOptions[ 0 ]\n : 5\n }, props.pagination)\n )\n\n const computedPagination = computed(() => {\n const pag = props[ 'onUpdate:pagination' ] !== void 0\n ? { ...innerPagination.value, ...props.pagination }\n : innerPagination.value\n\n return fixPagination(pag)\n })\n\n const isServerSide = computed(() => computedPagination.value.rowsNumber !== void 0)\n\n function sendServerRequest (pagination) {\n requestServerInteraction({\n pagination,\n filter: props.filter\n })\n }\n\n function requestServerInteraction (prop = {}) {\n nextTick(() => {\n emit('request', {\n pagination: prop.pagination || computedPagination.value,\n filter: prop.filter || props.filter,\n getCellValue\n })\n })\n }\n\n function setPagination (val, forceServerRequest) {\n const newPagination = fixPagination({\n ...computedPagination.value,\n ...val\n })\n\n if (samePagination(computedPagination.value, newPagination)) {\n if (isServerSide.value === true && forceServerRequest === true) {\n sendServerRequest(newPagination)\n }\n return\n }\n\n if (isServerSide.value === true) {\n sendServerRequest(newPagination)\n return\n }\n\n if (\n props.pagination !== void 0\n && props[ 'onUpdate:pagination' ] !== void 0\n ) {\n emit('update:pagination', newPagination)\n }\n else {\n innerPagination.value = newPagination\n }\n }\n\n return {\n innerPagination,\n computedPagination,\n isServerSide,\n\n requestServerInteraction,\n setPagination\n }\n}\n\nexport function useTablePagination (vm, innerPagination, computedPagination, isServerSide, setPagination, filteredSortedRowsNumber) {\n const { props, emit, proxy: { $q } } = vm\n\n const computedRowsNumber = computed(() => (\n isServerSide.value === true\n ? computedPagination.value.rowsNumber || 0\n : filteredSortedRowsNumber.value\n ))\n\n const firstRowIndex = computed(() => {\n const { page, rowsPerPage } = computedPagination.value\n return (page - 1) * rowsPerPage\n })\n\n const lastRowIndex = computed(() => {\n const { page, rowsPerPage } = computedPagination.value\n return page * rowsPerPage\n })\n\n const isFirstPage = computed(() => computedPagination.value.page === 1)\n\n const pagesNumber = computed(() => (\n computedPagination.value.rowsPerPage === 0\n ? 1\n : Math.max(\n 1,\n Math.ceil(computedRowsNumber.value / computedPagination.value.rowsPerPage)\n )\n ))\n\n const isLastPage = computed(() => (\n lastRowIndex.value === 0\n ? true\n : computedPagination.value.page >= pagesNumber.value\n ))\n\n const computedRowsPerPageOptions = computed(() => {\n const opts = props.rowsPerPageOptions.includes(innerPagination.value.rowsPerPage)\n ? props.rowsPerPageOptions\n : [ innerPagination.value.rowsPerPage ].concat(props.rowsPerPageOptions)\n\n return opts.map(count => ({\n label: count === 0 ? $q.lang.table.allRows : '' + count,\n value: count\n }))\n })\n\n watch(pagesNumber, (lastPage, oldLastPage) => {\n if (lastPage === oldLastPage) {\n return\n }\n\n const currentPage = computedPagination.value.page\n if (lastPage && !currentPage) {\n setPagination({ page: 1 })\n }\n else if (lastPage < currentPage) {\n setPagination({ page: lastPage })\n }\n })\n\n function firstPage () {\n setPagination({ page: 1 })\n }\n\n function prevPage () {\n const { page } = computedPagination.value\n if (page > 1) {\n setPagination({ page: page - 1 })\n }\n }\n\n function nextPage () {\n const { page, rowsPerPage } = computedPagination.value\n if (lastRowIndex.value > 0 && page * rowsPerPage < computedRowsNumber.value) {\n setPagination({ page: page + 1 })\n }\n }\n\n function lastPage () {\n setPagination({ page: pagesNumber.value })\n }\n\n if (props[ 'onUpdate:pagination' ] !== void 0) {\n emit('update:pagination', { ...computedPagination.value })\n }\n\n return {\n firstRowIndex,\n lastRowIndex,\n isFirstPage,\n isLastPage,\n pagesNumber,\n computedRowsPerPageOptions,\n computedRowsNumber,\n\n firstPage,\n prevPage,\n nextPage,\n lastPage\n }\n}\n","import { computed } from 'vue'\n\nexport const useTableRowSelectionProps = {\n selection: {\n type: String,\n default: 'none',\n validator: v => [ 'single', 'multiple', 'none' ].includes(v)\n },\n selected: {\n type: Array,\n default: () => []\n }\n}\n\nexport const useTableRowSelectionEmits = [ 'update:selected', 'selection' ]\n\nexport function useTableRowSelection (props, emit, computedRows, getRowKey) {\n const selectedKeys = computed(() => {\n const keys = {}\n props.selected.map(getRowKey.value).forEach(key => {\n keys[ key ] = true\n })\n return keys\n })\n\n const hasSelectionMode = computed(() => {\n return props.selection !== 'none'\n })\n\n const singleSelection = computed(() => {\n return props.selection === 'single'\n })\n\n const multipleSelection = computed(() => {\n return props.selection === 'multiple'\n })\n\n const allRowsSelected = computed(() =>\n computedRows.value.length > 0 && computedRows.value.every(\n row => selectedKeys.value[ getRowKey.value(row) ] === true\n )\n )\n\n const someRowsSelected = computed(() =>\n allRowsSelected.value !== true\n && computedRows.value.some(row => selectedKeys.value[ getRowKey.value(row) ] === true)\n )\n\n const rowsSelectedNumber = computed(() => props.selected.length)\n\n function isRowSelected (key) {\n return selectedKeys.value[ key ] === true\n }\n\n function clearSelection () {\n emit('update:selected', [])\n }\n\n function updateSelection (keys, rows, added, evt) {\n emit('selection', { rows, added, keys, evt })\n\n const payload = singleSelection.value === true\n ? (added === true ? rows : [])\n : (\n added === true\n ? props.selected.concat(rows)\n : props.selected.filter(\n row => keys.includes(getRowKey.value(row)) === false\n )\n )\n\n emit('update:selected', payload)\n }\n\n return {\n hasSelectionMode,\n singleSelection,\n multipleSelection,\n allRowsSelected,\n someRowsSelected,\n rowsSelectedNumber,\n\n isRowSelected,\n clearSelection,\n updateSelection\n }\n}\n","import { ref, watch } from 'vue'\n\nfunction getVal (val) {\n return Array.isArray(val)\n ? val.slice()\n : []\n}\n\nexport const useTableRowExpandProps = {\n expanded: Array // v-model:expanded\n}\n\nexport const useTableRowExpandEmits = [ 'update:expanded' ]\n\nexport function useTableRowExpand (props, emit) {\n const innerExpanded = ref(getVal(props.expanded))\n\n watch(() => props.expanded, val => {\n innerExpanded.value = getVal(val)\n })\n\n function isRowExpanded (key) {\n return innerExpanded.value.includes(key)\n }\n\n function setExpanded (val) {\n if (props.expanded !== void 0) {\n emit('update:expanded', val)\n }\n else {\n innerExpanded.value = val\n }\n }\n\n function updateExpanded (key, add) {\n const target = innerExpanded.value.slice()\n const index = target.indexOf(key)\n\n if (add === true) {\n if (index === -1) {\n target.push(key)\n setExpanded(target)\n }\n }\n else if (index !== -1) {\n target.splice(index, 1)\n setExpanded(target)\n }\n }\n\n return {\n isRowExpanded,\n setExpanded,\n updateExpanded\n }\n}\n","import { computed } from 'vue'\n\nimport { isNumber } from '../../utils/private/is.js'\n\nexport const useTableColumnSelectionProps = {\n visibleColumns: Array\n}\n\nexport function useTableColumnSelection (props, computedPagination, hasSelectionMode) {\n const colList = computed(() => {\n if (props.columns !== void 0) {\n return props.columns\n }\n\n // we infer columns from first row\n const row = props.rows[ 0 ]\n\n return row !== void 0\n ? Object.keys(row).map(name => ({\n name,\n label: name.toUpperCase(),\n field: name,\n align: isNumber(row[ name ]) ? 'right' : 'left',\n sortable: true\n }))\n : []\n })\n\n const computedCols = computed(() => {\n const { sortBy, descending } = computedPagination.value\n\n const cols = props.visibleColumns !== void 0\n ? colList.value.filter(col => col.required === true || props.visibleColumns.includes(col.name) === true)\n : colList.value\n\n return cols.map(col => {\n const align = col.align || 'right'\n const alignClass = `text-${ align }`\n\n return {\n ...col,\n align,\n __iconClass: `q-table__sort-icon q-table__sort-icon--${ align }`,\n __thClass: alignClass\n + (col.headerClasses !== void 0 ? ' ' + col.headerClasses : '')\n + (col.sortable === true ? ' sortable' : '')\n + (col.name === sortBy ? ` sorted ${ descending === true ? 'sort-desc' : '' }` : ''),\n\n __tdStyle: col.style !== void 0\n ? (\n typeof col.style !== 'function'\n ? () => col.style\n : col.style\n )\n : () => null,\n\n __tdClass: col.classes !== void 0\n ? (\n typeof col.classes !== 'function'\n ? () => alignClass + ' ' + col.classes\n : row => alignClass + ' ' + col.classes(row)\n )\n : () => alignClass\n }\n })\n })\n\n const computedColsMap = computed(() => {\n const names = {}\n computedCols.value.forEach(col => {\n names[ col.name ] = col\n })\n return names\n })\n\n const computedColspan = computed(() => {\n return props.tableColspan !== void 0\n ? props.tableColspan\n : computedCols.value.length + (hasSelectionMode.value === true ? 1 : 0)\n })\n\n return {\n colList,\n computedCols,\n computedColsMap,\n computedColspan\n }\n}\n","import { h, defineComponent, ref, computed, watch, getCurrentInstance } from 'vue'\n\nimport QTh from './QTh.js'\n\nimport QSeparator from '../separator/QSeparator.js'\nimport QIcon from '../icon/QIcon.js'\nimport QVirtualScroll from '../virtual-scroll/QVirtualScroll.js'\nimport QSelect from '../select/QSelect.js'\nimport QLinearProgress from '../linear-progress/QLinearProgress.js'\nimport QCheckbox from '../checkbox/QCheckbox.js'\nimport QBtn from '../btn/QBtn.js'\n\nimport getTableMiddle from './get-table-middle.js'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport { commonVirtPropsList } from '../virtual-scroll/use-virtual-scroll.js'\nimport useFullscreen, { useFullscreenProps, useFullscreenEmits } from '../../composables/private/use-fullscreen.js'\n\nimport { useTableSort, useTableSortProps } from './table-sort.js'\nimport { useTableFilter, useTableFilterProps } from './table-filter.js'\nimport { useTablePaginationState, useTablePagination, useTablePaginationProps } from './table-pagination.js'\nimport { useTableRowSelection, useTableRowSelectionProps, useTableRowSelectionEmits } from './table-row-selection.js'\nimport { useTableRowExpand, useTableRowExpandProps, useTableRowExpandEmits } from './table-row-expand.js'\nimport { useTableColumnSelection, useTableColumnSelectionProps } from './table-column-selection.js'\n\nconst bottomClass = 'q-table__bottom row items-center'\n\nconst commonVirtPropsObj = {}\ncommonVirtPropsList.forEach(p => { commonVirtPropsObj[ p ] = {} })\n\nexport default defineComponent({\n name: 'QTable',\n\n props: {\n rows: {\n type: Array,\n default: () => []\n },\n rowKey: {\n type: [ String, Function ],\n default: 'id'\n },\n\n columns: Array,\n loading: Boolean,\n\n iconFirstPage: String,\n iconPrevPage: String,\n iconNextPage: String,\n iconLastPage: String,\n\n title: String,\n\n hideHeader: Boolean,\n\n grid: Boolean,\n gridHeader: Boolean,\n\n dense: Boolean,\n flat: Boolean,\n bordered: Boolean,\n square: Boolean,\n separator: {\n type: String,\n default: 'horizontal',\n validator: v => [ 'horizontal', 'vertical', 'cell', 'none' ].includes(v)\n },\n wrapCells: Boolean,\n\n virtualScroll: Boolean,\n ...commonVirtPropsObj,\n\n noDataLabel: String,\n noResultsLabel: String,\n loadingLabel: String,\n selectedRowsLabel: Function,\n rowsPerPageLabel: String,\n paginationLabel: Function,\n\n color: {\n type: String,\n default: 'grey-8'\n },\n\n titleClass: [ String, Array, Object ],\n tableStyle: [ String, Array, Object ],\n tableClass: [ String, Array, Object ],\n tableHeaderStyle: [ String, Array, Object ],\n tableHeaderClass: [ String, Array, Object ],\n cardContainerClass: [ String, Array, Object ],\n cardContainerStyle: [ String, Array, Object ],\n cardStyle: [ String, Array, Object ],\n cardClass: [ String, Array, Object ],\n\n hideBottom: Boolean,\n hideSelectedBanner: Boolean,\n hideNoData: Boolean,\n hidePagination: Boolean,\n\n onRowClick: Function,\n onRowDblclick: Function,\n onRowContextmenu: Function,\n\n ...useDarkProps,\n ...useFullscreenProps,\n\n ...useTableColumnSelectionProps,\n ...useTableFilterProps,\n ...useTablePaginationProps,\n ...useTableRowExpandProps,\n ...useTableRowSelectionProps,\n ...useTableSortProps\n },\n\n emits: [\n 'request', 'virtual-scroll',\n ...useFullscreenEmits,\n ...useTableRowExpandEmits,\n ...useTableRowSelectionEmits\n ],\n\n setup (props, { slots, emit }) {\n const vm = getCurrentInstance()\n const { proxy: { $q } } = vm\n\n const isDark = useDark(props, $q)\n const { inFullscreen, toggleFullscreen } = useFullscreen()\n\n const getRowKey = computed(() => (\n typeof props.rowKey === 'function'\n ? props.rowKey\n : row => row[ props.rowKey ]\n ))\n\n const rootRef = ref(null)\n const virtScrollRef = ref(null)\n const hasVirtScroll = computed(() => props.grid !== true && props.virtualScroll === true)\n\n const cardDefaultClass = computed(() =>\n ' q-table__card'\n + (isDark.value === true ? ' q-table__card--dark q-dark' : '')\n + (props.square === true ? ' q-table--square' : '')\n + (props.flat === true ? ' q-table--flat' : '')\n + (props.bordered === true ? ' q-table--bordered' : '')\n )\n\n const __containerClass = computed(() =>\n `q-table__container q-table--${ props.separator }-separator column no-wrap`\n + (props.loading === true ? ' q-table--loading' : '')\n + (props.grid === true ? ' q-table--grid' : cardDefaultClass.value)\n + (isDark.value === true ? ' q-table--dark' : '')\n + (props.dense === true ? ' q-table--dense' : '')\n + (props.wrapCells === false ? ' q-table--no-wrap' : '')\n + (inFullscreen.value === true ? ' fullscreen scroll' : '')\n )\n\n const containerClass = computed(() =>\n __containerClass.value + (props.loading === true ? ' q-table--loading' : '')\n )\n\n watch(\n () => props.tableStyle + props.tableClass + props.tableHeaderStyle + props.tableHeaderClass + __containerClass.value,\n () => { hasVirtScroll.value === true && virtScrollRef.value !== null && virtScrollRef.value.reset() }\n )\n\n const {\n innerPagination,\n computedPagination,\n isServerSide,\n\n requestServerInteraction,\n setPagination\n } = useTablePaginationState(vm, getCellValue)\n\n const { computedFilterMethod } = useTableFilter(props, setPagination)\n const { isRowExpanded, setExpanded, updateExpanded } = useTableRowExpand(props, emit)\n\n const filteredSortedRows = computed(() => {\n let rows = props.rows\n\n if (isServerSide.value === true || rows.length === 0) {\n return rows\n }\n\n const { sortBy, descending } = computedPagination.value\n\n if (props.filter) {\n rows = computedFilterMethod.value(rows, props.filter, computedCols.value, getCellValue)\n }\n\n if (columnToSort.value !== null) {\n rows = computedSortMethod.value(\n props.rows === rows ? rows.slice() : rows,\n sortBy,\n descending\n )\n }\n\n return rows\n })\n\n const filteredSortedRowsNumber = computed(() => filteredSortedRows.value.length)\n\n const computedRows = computed(() => {\n let rows = filteredSortedRows.value\n\n if (isServerSide.value === true) {\n return rows\n }\n\n const { rowsPerPage } = computedPagination.value\n\n if (rowsPerPage !== 0) {\n if (firstRowIndex.value === 0 && props.rows !== rows) {\n if (rows.length > lastRowIndex.value) {\n rows = rows.slice(0, lastRowIndex.value)\n }\n }\n else {\n rows = rows.slice(firstRowIndex.value, lastRowIndex.value)\n }\n }\n\n return rows\n })\n\n const {\n hasSelectionMode,\n singleSelection,\n multipleSelection,\n allRowsSelected,\n someRowsSelected,\n rowsSelectedNumber,\n\n isRowSelected,\n clearSelection,\n updateSelection\n } = useTableRowSelection(props, emit, computedRows, getRowKey)\n\n const { colList, computedCols, computedColsMap, computedColspan } = useTableColumnSelection(props, computedPagination, hasSelectionMode)\n\n const { columnToSort, computedSortMethod, sort } = useTableSort(props, computedPagination, colList, setPagination)\n\n const {\n firstRowIndex,\n lastRowIndex,\n isFirstPage,\n isLastPage,\n pagesNumber,\n computedRowsPerPageOptions,\n computedRowsNumber,\n\n firstPage,\n prevPage,\n nextPage,\n lastPage\n } = useTablePagination(vm, innerPagination, computedPagination, isServerSide, setPagination, filteredSortedRowsNumber)\n\n const nothingToDisplay = computed(() => computedRows.value.length === 0)\n\n const virtProps = computed(() => {\n const acc = {}\n\n commonVirtPropsList\n .forEach(p => { acc[ p ] = props[ p ] })\n\n if (acc.virtualScrollItemSize === void 0) {\n acc.virtualScrollItemSize = props.dense === true ? 28 : 48\n }\n\n return acc\n })\n\n function resetVirtualScroll () {\n hasVirtScroll.value === true && virtScrollRef.value.reset()\n }\n\n function getBody () {\n if (props.grid === true) {\n return getGridBody()\n }\n\n const header = props.hideHeader !== true ? getTHead : null\n\n if (hasVirtScroll.value === true) {\n const topRow = slots[ 'top-row' ]\n const bottomRow = slots[ 'bottom-row' ]\n\n const virtSlots = {\n default: props => getTBodyTR(props.item, slots.body, props.index)\n }\n\n if (topRow !== void 0) {\n const topContent = h('tbody', topRow({ cols: computedCols.value }))\n\n virtSlots.before = header === null\n ? () => topContent\n : () => [ header() ].concat(topContent)\n }\n else if (header !== null) {\n virtSlots.before = header\n }\n\n if (bottomRow !== void 0) {\n virtSlots.after = () => h('tbody', bottomRow({ cols: computedCols.value }))\n }\n\n return h(QVirtualScroll, {\n ref: virtScrollRef,\n class: props.tableClass,\n style: props.tableStyle,\n ...virtProps.value,\n items: computedRows.value,\n type: '__qtable',\n tableColspan: computedColspan.value,\n onVirtualScroll: onVScroll\n }, virtSlots)\n }\n\n const child = [\n getTBody()\n ]\n\n if (header !== null) {\n child.unshift(header())\n }\n\n return getTableMiddle({\n class: [ 'q-table__middle scroll', props.tableClass ],\n style: props.tableStyle\n }, child)\n }\n\n function scrollTo (toIndex, edge) {\n if (virtScrollRef.value !== null) {\n virtScrollRef.value.scrollTo(toIndex, edge)\n return\n }\n\n toIndex = parseInt(toIndex, 10)\n const rowEl = rootRef.value.querySelector(`tbody tr:nth-of-type(${ toIndex + 1 })`)\n\n if (rowEl !== null) {\n const scrollTarget = rootRef.value.querySelector('.q-table__middle.scroll')\n const { offsetTop } = rowEl\n const direction = offsetTop < scrollTarget.scrollTop ? 'decrease' : 'increase'\n\n scrollTarget.scrollTop = offsetTop\n\n emit('virtual-scroll', {\n index: toIndex,\n from: 0,\n to: innerPagination.value.rowsPerPage - 1,\n direction\n })\n }\n }\n\n function onVScroll (info) {\n emit('virtual-scroll', info)\n }\n\n function getProgress () {\n return [\n h(QLinearProgress, {\n class: 'q-table__linear-progress',\n color: props.color,\n dark: isDark.value,\n indeterminate: true,\n trackColor: 'transparent'\n })\n ]\n }\n\n function getTBodyTR (row, bodySlot, pageIndex) {\n const\n key = getRowKey.value(row),\n selected = isRowSelected(key)\n\n if (bodySlot !== void 0) {\n return bodySlot(\n getBodyScope({\n key,\n row,\n pageIndex,\n __trClass: selected ? 'selected' : ''\n })\n )\n }\n\n const\n bodyCell = slots[ 'body-cell' ],\n child = computedCols.value.map(col => {\n const\n bodyCellCol = slots[ `body-cell-${ col.name }` ],\n slot = bodyCellCol !== void 0 ? bodyCellCol : bodyCell\n\n return slot !== void 0\n ? slot(getBodyCellScope({ key, row, pageIndex, col }))\n : h('td', {\n class: col.__tdClass(row),\n style: col.__tdStyle(row)\n }, getCellValue(col, row))\n })\n\n if (hasSelectionMode.value === true) {\n const slot = slots[ 'body-selection' ]\n const content = slot !== void 0\n ? slot(getBodySelectionScope({ key, row, pageIndex }))\n : [\n h(QCheckbox, {\n modelValue: selected,\n color: props.color,\n dark: isDark.value,\n dense: props.dense,\n 'onUpdate:modelValue': (adding, evt) => {\n updateSelection([ key ], [ row ], adding, evt)\n }\n })\n ]\n\n child.unshift(\n h('td', { class: 'q-table--col-auto-width' }, content)\n )\n }\n\n const data = { key, class: { selected } }\n\n if (props.onRowClick !== void 0) {\n data.class[ 'cursor-pointer' ] = true\n data.onClick = evt => {\n emit('RowClick', evt, row, pageIndex)\n }\n }\n\n if (props.onRowDblclick !== void 0) {\n data.class[ 'cursor-pointer' ] = true\n data.onDblclick = evt => {\n emit('RowDblclick', evt, row, pageIndex)\n }\n }\n\n if (props.onRowContextmenu !== void 0) {\n data.class[ 'cursor-pointer' ] = true\n data.onContextmenu = evt => {\n emit('RowContextmenu', evt, row, pageIndex)\n }\n }\n\n return h('tr', data, child)\n }\n\n function getTBody () {\n const\n body = slots.body,\n topRow = slots[ 'top-row' ],\n bottomRow = slots[ 'bottom-row' ]\n\n let child = computedRows.value.map(\n (row, pageIndex) => getTBodyTR(row, body, pageIndex)\n )\n\n if (topRow !== void 0) {\n child = topRow({ cols: computedCols.value }).concat(child)\n }\n if (bottomRow !== void 0) {\n child = child.concat(bottomRow({ cols: computedCols.value }))\n }\n\n return h('tbody', child)\n }\n\n function getBodyScope (data) {\n injectBodyCommonScope(data)\n\n data.cols = data.cols.map(col => {\n const c = { ...col }\n Object.defineProperty(c, 'value', {\n get: () => getCellValue(col, data.row),\n configurable: true,\n enumerable: true\n })\n return c\n })\n\n return data\n }\n\n function getBodyCellScope (data) {\n injectBodyCommonScope(data)\n\n Object.defineProperty(data, 'value', {\n get: () => getCellValue(data.col, data.row),\n configurable: true,\n enumerable: true\n })\n\n return data\n }\n\n function getBodySelectionScope (data) {\n injectBodyCommonScope(data)\n return data\n }\n\n function injectBodyCommonScope (data) {\n Object.assign(data, {\n cols: computedCols.value,\n colsMap: computedColsMap.value,\n sort,\n rowIndex: firstRowIndex.value + data.pageIndex,\n color: props.color,\n dark: isDark.value,\n dense: props.dense\n })\n\n hasSelectionMode.value === true && Object.defineProperty(data, 'selected', {\n get: () => isRowSelected(data.key),\n set: (adding, evt) => {\n updateSelection([ data.key ], [ data.row ], adding, evt)\n },\n configurable: true,\n enumerable: true\n })\n\n Object.defineProperty(data, 'expand', {\n get: () => isRowExpanded(data.key),\n set: adding => {\n updateExpanded(data.key, adding)\n },\n configurable: true,\n enumerable: true\n })\n }\n\n function getCellValue (col, row) {\n const val = typeof col.field === 'function' ? col.field(row) : row[ col.field ]\n return col.format !== void 0 ? col.format(val, row) : val\n }\n\n const marginalsScope = computed(() => ({\n pagination: computedPagination.value,\n pagesNumber: pagesNumber.value,\n isFirstPage: isFirstPage.value,\n isLastPage: isLastPage.value,\n firstPage,\n prevPage,\n nextPage,\n lastPage,\n\n inFullscreen: inFullscreen.value,\n toggleFullscreen\n }))\n\n function getTopDiv () {\n const\n top = slots.top,\n topLeft = slots[ 'top-left' ],\n topRight = slots[ 'top-right' ],\n topSelection = slots[ 'top-selection' ],\n hasSelection = hasSelectionMode.value === true\n && topSelection !== void 0\n && rowsSelectedNumber.vaue > 0,\n topClass = 'q-table__top relative-position row items-center'\n\n if (top !== void 0) {\n return h('div', { class: topClass }, [ top(marginalsScope.value) ])\n }\n\n let child\n\n if (hasSelection === true) {\n child = topSelection(marginalsScope.value).slice()\n }\n else {\n child = []\n\n if (topLeft !== void 0) {\n child.push(\n h('div', { class: 'q-table-control' }, [\n topLeft(marginalsScope.value)\n ])\n )\n }\n else if (props.title) {\n child.push(\n h('div', { class: 'q-table__control' }, [\n h('div', {\n class: [ 'q-table__title', props.titleClass ]\n }, props.title)\n ])\n )\n }\n }\n\n if (topRight !== void 0) {\n child.push(\n h('div', { class: 'q-table__separator col' })\n )\n child.push(\n h('div', { class: 'q-table__control' }, [\n topRight(marginalsScope.value)\n ])\n )\n }\n\n if (child.length === 0) {\n return\n }\n\n return h('div', { class: topClass }, child)\n }\n\n const headerSelectedValue = computed(() => (\n someRowsSelected.value === true\n ? null\n : allRowsSelected.value\n ))\n\n function getTHead () {\n const child = getTHeadTR()\n\n if (props.loading === true && slots.loading === void 0) {\n child.push(\n h('tr', { class: 'q-table__progress' }, [\n h('th', {\n class: 'relative-position',\n colspan: computedColspan.value\n }, getProgress())\n ])\n )\n }\n\n return h('thead', child)\n }\n\n function getTHeadTR () {\n const\n header = slots.header,\n headerCell = slots[ 'header-cell' ]\n\n if (header !== void 0) {\n return header(\n getHeaderScope({ header: true })\n ).slice()\n }\n\n const child = computedCols.value.map(col => {\n const\n headerCellCol = slots[ `header-cell-${ col.name }` ],\n slot = headerCellCol !== void 0 ? headerCellCol : headerCell,\n props = getHeaderScope({ col })\n\n return slot !== void 0\n ? slot(props)\n : h(QTh, {\n key: col.name,\n props\n }, () => col.label)\n })\n\n if (singleSelection.value === true && props.grid !== true) {\n child.unshift(\n h('th', { class: 'q-table--col-auto-width' }, ' ')\n )\n }\n else if (multipleSelection.value === true) {\n const slot = slots[ 'header-selection' ]\n const content = slot !== void 0\n ? slot(getHeaderScope({}))\n : [\n h(QCheckbox, {\n color: props.color,\n modelValue: headerSelectedValue.value,\n dark: isDark.value,\n dense: props.dense,\n 'onUpdate:modelValue': onMultipleSelectionSet\n })\n ]\n\n child.unshift(\n h('th', { class: 'q-table--col-auto-width' }, content)\n )\n }\n\n return [\n h('tr', {\n class: props.tableHeaderClass,\n style: props.tableHeaderStyle\n }, child)\n ]\n }\n\n function getHeaderScope (data) {\n Object.assign(data, {\n cols: computedCols.value,\n sort,\n colsMap: computedColsMap.value,\n color: props.color,\n dark: isDark.value,\n dense: props.dense\n })\n\n if (multipleSelection.value === true) {\n Object.defineProperty(data, 'selected', {\n get: () => headerSelectedValue.value,\n set: onMultipleSelectionSet,\n configurable: true,\n enumerable: true\n })\n }\n\n return data\n }\n\n function onMultipleSelectionSet (val) {\n if (someRowsSelected.value === true) {\n val = false\n }\n\n updateSelection(\n computedRows.value.map(getRowKey.value),\n computedRows.value,\n val\n )\n }\n\n const navIcon = computed(() => {\n const ico = [\n props.iconFirstPage || $q.iconSet.table.firstPage,\n props.iconPrevPage || $q.iconSet.table.prevPage,\n props.iconNextPage || $q.iconSet.table.nextPage,\n props.iconLastPage || $q.iconSet.table.lastPage\n ]\n return $q.lang.rtl === true ? ico.reverse() : ico\n })\n\n function getBottomDiv () {\n if (props.hideBottom === true) {\n return\n }\n\n if (nothingToDisplay.value === true) {\n if (props.hideNoData === true) {\n return\n }\n\n const message = props.loading === true\n ? props.loadingLabel || $q.lang.table.loading\n : (props.filter ? props.noResultsLabel || $q.lang.table.noResults : props.noDataLabel || $q.lang.table.noData)\n\n const noData = slots[ 'no-data' ]\n const children = noData !== void 0\n ? [ noData({ message, icon: $q.iconSet.table.warning, filter: props.filter }) ]\n : [\n h(QIcon, {\n class: 'q-table__bottom-nodata-icon',\n name: $q.iconSet.table.warning\n }),\n message\n ]\n\n return h('div', { class: bottomClass + ' q-table__bottom--nodata' }, children)\n }\n\n const bottom = slots.bottom\n\n if (bottom !== void 0) {\n return h('div', { class: bottomClass }, [ bottom(marginalsScope.value) ])\n }\n\n const child = props.hideSelectedBanner !== true && hasSelectionMode.value === true && rowsSelectedNumber.value > 0\n ? [\n h('div', { class: 'q-table__control' }, [\n h('div', [\n (props.selectedRowsLabel || $q.lang.table.selectedRecords)(rowsSelectedNumber.value)\n ])\n ])\n ]\n : []\n\n if (props.hidePagination !== true) {\n return h('div', {\n class: bottomClass + ' justify-end'\n }, getPaginationDiv(child))\n }\n\n if (child.length > 0) {\n return h('div', { class: bottomClass }, child)\n }\n }\n\n function onPagSelection (pag) {\n setPagination({\n page: 1,\n rowsPerPage: pag.value\n })\n }\n\n function getPaginationDiv (child) {\n let control\n const\n { rowsPerPage } = computedPagination.value,\n paginationLabel = props.paginationLabel || $q.lang.table.pagination,\n paginationSlot = slots.pagination,\n hasOpts = props.rowsPerPageOptions.length > 1\n\n child.push(\n h('div', { class: 'q-table__separator col' })\n )\n\n if (hasOpts === true) {\n child.push(\n h('div', { class: 'q-table__control' }, [\n h('span', { class: 'q-table__bottom-item' }, [\n props.rowsPerPageLabel || $q.lang.table.recordsPerPage\n ]),\n h(QSelect, {\n class: 'q-table__select inline q-table__bottom-item',\n color: props.color,\n modelValue: rowsPerPage,\n options: computedRowsPerPageOptions.value,\n displayValue: rowsPerPage === 0\n ? $q.lang.table.allRows\n : rowsPerPage,\n dark: isDark.value,\n borderless: true,\n dense: true,\n optionsDense: true,\n optionsCover: true,\n 'onUpdate:modelValue': onPagSelection\n })\n ])\n )\n }\n\n if (paginationSlot !== void 0) {\n control = paginationSlot(marginalsScope.value)\n }\n else {\n control = [\n h('span', rowsPerPage !== 0 ? { class: 'q-table__bottom-item' } : {}, [\n rowsPerPage\n ? paginationLabel(firstRowIndex.value + 1, Math.min(lastRowIndex.value, computedRowsNumber.value), computedRowsNumber.value)\n : paginationLabel(1, filteredSortedRowsNumber.value, computedRowsNumber.value)\n ])\n ]\n\n if (rowsPerPage !== 0 && pagesNumber.value > 1) {\n const btnProps = {\n color: props.color,\n round: true,\n dense: true,\n flat: true\n }\n\n if (props.dense === true) {\n btnProps.size = 'sm'\n }\n\n pagesNumber.value > 2 && control.push(\n h(QBtn, {\n key: 'pgFirst',\n ...btnProps,\n icon: navIcon.value[ 0 ],\n disable: isFirstPage.value,\n onClick: firstPage\n })\n )\n\n control.push(\n h(QBtn, {\n key: 'pgPrev',\n ...btnProps,\n icon: navIcon.value[ 1 ],\n disable: isFirstPage.value,\n onClick: prevPage\n }),\n\n h(QBtn, {\n key: 'pgNext',\n ...btnProps,\n icon: navIcon.value[ 2 ],\n disable: isLastPage.value,\n onClick: nextPage\n })\n )\n\n pagesNumber.value > 2 && control.push(\n h(QBtn, {\n key: 'pgLast',\n ...btnProps,\n icon: navIcon.value[ 3 ],\n disable: isLastPage.value,\n onClick: lastPage\n })\n )\n }\n }\n\n child.push(\n h('div', { class: 'q-table__control' }, control)\n )\n\n return child\n }\n\n function getGridHeader () {\n const child = props.gridHeader === true\n ? [\n h('table', { class: 'q-table' }, [\n getTHead(h)\n ])\n ]\n : (\n props.loading === true && slots.loading === void 0\n ? getProgress(h)\n : void 0\n )\n\n return h('div', { class: 'q-table__middle' }, child)\n }\n\n function getGridBody () {\n const item = slots.item !== void 0\n ? slots.item\n : scope => {\n const child = scope.cols.map(\n col => h('div', { class: 'q-table__grid-item-row' }, [\n h('div', { class: 'q-table__grid-item-title' }, [ col.label ]),\n h('div', { class: 'q-table__grid-item-value' }, [ col.value ])\n ])\n )\n\n if (hasSelectionMode.value === true) {\n const slot = slots[ 'body-selection' ]\n const content = slot !== void 0\n ? slot(scope)\n : [\n h(QCheckbox, {\n modelValue: scope.selected,\n color: props.color,\n dark: isDark.value,\n dense: props.dense,\n 'onUpdate:modelValue': (adding, evt) => {\n updateSelection([ scope.key ], [ scope.row ], adding, evt)\n }\n })\n ]\n\n child.unshift(\n h('div', { class: 'q-table__grid-item-row' }, content),\n h(QSeparator, { dark: isDark.value })\n )\n }\n\n const data = {\n class: [\n 'q-table__grid-item-card' + cardDefaultClass.value,\n props.cardClass\n ],\n style: props.cardStyle\n }\n\n if (\n props.onRowClick !== void 0\n || props.onRowDblclick !== void 0\n ) {\n data.class[ 0 ] += ' cursor-pointer'\n\n if (props.onRowClick !== void 0) {\n data.onClick = evt => {\n emit('RowClick', evt, scope.row, scope.pageIndex)\n }\n }\n\n if (props.onRowDblclick !== void 0) {\n data.onDblclick = evt => {\n emit('RowDblclick', evt, scope.row, scope.pageIndex)\n }\n }\n }\n\n return h('div', {\n class: 'q-table__grid-item col-xs-12 col-sm-6 col-md-4 col-lg-3'\n + (scope.selected === true ? 'q-table__grid-item--selected' : '')\n }, [\n h('div', data, child)\n ])\n }\n\n return h('div', {\n class: [\n 'q-table__grid-content row',\n props.cardContainerClass\n ],\n style: props.cardContainerStyle\n }, computedRows.value.map((row, pageIndex) => {\n return item(getBodyScope({\n key: getRowKey.value(row),\n row,\n pageIndex\n }))\n }))\n }\n\n // expose public methods and needed computed props\n Object.assign(vm.proxy, {\n requestServerInteraction,\n setPagination,\n firstPage,\n prevPage,\n nextPage,\n lastPage,\n isRowSelected,\n clearSelection,\n isRowExpanded,\n setExpanded,\n sort,\n resetVirtualScroll,\n scrollTo,\n getCellValue\n })\n\n Object.defineProperty(vm.proxy, 'filteredSortedRows', {\n get: () => filteredSortedRows.value,\n enumerable: true\n })\n\n Object.defineProperty(vm.proxy, 'computedRows', {\n get: () => computedRows.value,\n enumerable: true\n })\n\n Object.defineProperty(vm.proxy, 'computedRowsNumber', {\n get: () => computedRowsNumber.value,\n enumerable: true\n })\n\n return () => {\n const child = [ getTopDiv() ]\n const data = { ref: rootRef, class: containerClass.value }\n\n if (props.grid === true) {\n child.push(getGridHeader())\n }\n else {\n Object.assign(data, {\n class: [ data.class, props.cardClass ],\n style: props.cardStyle\n })\n }\n\n child.push(\n getBody(),\n getBottomDiv()\n )\n\n if (props.loading === true && slots.loading !== void 0) {\n child.push(\n slots.loading()\n )\n }\n\n return h('div', data, child)\n }\n }\n})\n"],"sourceRoot":""}