@revolist/revogrid 4.12.12 → 4.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{column.drag.plugin-0ce0b39a.js → column.drag.plugin-0f367fe1.js} +2 -1
- package/dist/cjs/column.drag.plugin-0f367fe1.js.map +1 -0
- package/dist/cjs/column.service-b59380a3.js.map +1 -1
- package/dist/cjs/{sorting.sign-a1e9d97a.js → grouping.row.renderer-d6119ced.js} +6 -6
- package/dist/cjs/grouping.row.renderer-d6119ced.js.map +1 -0
- package/dist/cjs/index.cjs.js +7 -6
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/revo-grid.cjs.entry.js +2 -2
- package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-data_4.cjs.entry.js +5 -5
- package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +1 -1
- package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -1
- package/dist/collection/components/revoGrid/revo-grid-style.css +109 -197
- package/dist/collection/plugins/filter/filter.style.css +12 -25
- package/dist/collection/plugins/sorting/sorting.plugin.js +2 -0
- package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
- package/dist/collection/store/selection/selection.store.js.map +1 -1
- package/dist/esm/{column.drag.plugin-017c4fb3.js → column.drag.plugin-d201beb7.js} +2 -2
- package/dist/esm/{column.drag.plugin-017c4fb3.js.map → column.drag.plugin-d201beb7.js.map} +1 -1
- package/dist/esm/column.service-f39c0a1d.js.map +1 -1
- package/dist/esm/{sorting.sign-c02e3b12.js → grouping.row.renderer-95f32c6b.js} +6 -6
- package/dist/esm/grouping.row.renderer-95f32c6b.js.map +1 -0
- package/dist/esm/index.js +3 -3
- package/dist/esm/revo-grid.entry.js +2 -2
- package/dist/esm/revo-grid.entry.js.map +1 -1
- package/dist/esm/revogr-data_4.entry.js +1 -1
- package/dist/esm/revogr-filter-panel.entry.js +1 -1
- package/dist/esm/revogr-filter-panel.entry.js.map +1 -1
- package/dist/revo-grid/app-globals-6b929fd8.js +8 -1
- package/dist/revo-grid/app-globals-6b929fd8.js.map +1 -1
- package/dist/revo-grid/column.drag.plugin-d201beb7.js +2522 -0
- package/dist/revo-grid/column.drag.plugin-d201beb7.js.map +1 -0
- package/dist/revo-grid/column.service-f39c0a1d.js +1293 -1
- package/dist/revo-grid/column.service-f39c0a1d.js.map +1 -1
- package/dist/revo-grid/debounce-b3166f78.js +491 -1
- package/dist/revo-grid/debounce-b3166f78.js.map +1 -1
- package/dist/revo-grid/dimension.helpers-5567e424.js +3608 -1
- package/dist/revo-grid/dimension.helpers-5567e424.js.map +1 -1
- package/dist/revo-grid/edit.utils-b59306be.js +13 -1
- package/dist/revo-grid/edit.utils-b59306be.js.map +1 -1
- package/dist/revo-grid/events-cf0893a3.js +38 -1
- package/dist/revo-grid/events-cf0893a3.js.map +1 -1
- package/dist/revo-grid/filter.button-84396156.js +34 -1
- package/dist/revo-grid/filter.button-84396156.js.map +1 -1
- package/dist/revo-grid/grouping.row.renderer-95f32c6b.js +65 -0
- package/dist/revo-grid/grouping.row.renderer-95f32c6b.js.map +1 -0
- package/dist/revo-grid/header-cell-renderer-31f53644.js +335 -1
- package/dist/revo-grid/header-cell-renderer-31f53644.js.map +1 -1
- package/dist/revo-grid/index-f6fae858.js +2090 -2
- package/dist/revo-grid/index-f6fae858.js.map +1 -1
- package/dist/revo-grid/index.esm.js +160 -1
- package/dist/revo-grid/index.esm.js.map +1 -1
- package/dist/revo-grid/key.utils-3632161b.js +85 -1
- package/dist/revo-grid/key.utils-3632161b.js.map +1 -1
- package/dist/revo-grid/resize-observer-83c9e167.js +501 -1
- package/dist/revo-grid/resize-observer-83c9e167.js.map +1 -1
- package/dist/revo-grid/revo-grid.entry.js +1943 -1
- package/dist/revo-grid/revo-grid.entry.js.map +1 -1
- package/dist/revo-grid/revo-grid.esm.js +21 -1
- package/dist/revo-grid/revo-grid.esm.js.map +1 -1
- package/dist/revo-grid/revogr-attribution_7.entry.js +1446 -1
- package/dist/revo-grid/revogr-attribution_7.entry.js.map +1 -1
- package/dist/revo-grid/revogr-clipboard_3.entry.js +455 -1
- package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -1
- package/dist/revo-grid/revogr-data_4.entry.js +960 -1
- package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
- package/dist/revo-grid/revogr-filter-panel.entry.js +340 -1
- package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -1
- package/dist/revo-grid/text-editor-e47e56c3.js +74 -1
- package/dist/revo-grid/text-editor-e47e56c3.js.map +1 -1
- package/dist/revo-grid/throttle-dec28f5b.js +229 -1
- package/dist/revo-grid/throttle-dec28f5b.js.map +1 -1
- package/dist/revo-grid/viewport.helpers-7e7f9dad.js +48 -1
- package/dist/revo-grid/viewport.helpers-7e7f9dad.js.map +1 -1
- package/dist/revo-grid/viewport.store-c18a25a6.js +402 -1
- package/dist/revo-grid/viewport.store-c18a25a6.js.map +1 -1
- package/dist/types/plugins/sorting/sorting.plugin.d.ts +2 -0
- package/dist/types/store/selection/selection.store.d.ts +1 -1
- package/hydrate/index.js +7 -7
- package/hydrate/index.mjs +7 -7
- package/package.json +1 -1
- package/standalone/column.service.js.map +1 -1
- package/standalone/index.js +1 -1
- package/standalone/revo-grid.js +2 -2
- package/standalone/revo-grid.js.map +1 -1
- package/standalone/revogr-filter-panel.js +1 -1
- package/standalone/revogr-filter-panel.js.map +1 -1
- package/dist/cjs/column.drag.plugin-0ce0b39a.js.map +0 -1
- package/dist/cjs/sorting.sign-a1e9d97a.js.map +0 -1
- package/dist/esm/sorting.sign-c02e3b12.js.map +0 -1
- package/dist/revo-grid/column.drag.plugin-017c4fb3.js +0 -5
- package/dist/revo-grid/column.drag.plugin-017c4fb3.js.map +0 -1
- package/dist/revo-grid/sorting.sign-c02e3b12.js +0 -5
- package/dist/revo-grid/sorting.sign-c02e3b12.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"revogr-filter-panel.entry.cjs.js","mappings":"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","names":["debounce","isFilterBtn","h","index","AndOrButton","TrashButton","Host"],"sources":["src/utils/closest.polifill.ts","src/plugins/filter/filter.style.scss?tag=revogr-filter-panel","src/plugins/filter/filter.panel.tsx"],"sourcesContent":["(function closest() {\n if (!Element.prototype.matches) {\n Element.prototype.matches =\n ((Element.prototype as unknown) as { msMatchesSelector: (selectors: string) => boolean }).msMatchesSelector || Element.prototype.webkitMatchesSelector;\n }\n\n if (!Element.prototype.closest) {\n Element.prototype.closest = function (s: string) {\n let el: HTMLElement | Element | (Node & ParentNode) | null = this;\n\n do {\n if (Element.prototype.matches.call(el, s)) {\n return el;\n }\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n return null;\n };\n }\n})();\n","revogr-filter-panel {\n position: absolute;\n display: block;\n top: 0;\n left: 0;\n z-index: 100;\n max-height: calc(100% - 80px);\n min-width: 250px;\n overflow: auto;\n\n opacity: 1;\n transform: none;\n background-color: #fff;\n transform-origin: 62px 0px;\n box-shadow: 0 5px 18px -2px rgba(black, 20%);\n padding: 10px;\n border-radius: 4px;\n\n min-width: 220px;\n text-align: left;\n\n .filter-holder > div {\n display: flex;\n flex-direction: column;\n }\n\n label {\n font-size: 13px;\n display: block;\n padding: 8px 0;\n }\n\n select {\n width: 100%;\n }\n\n input[type='text'] {\n border: 0;\n min-height: 34px;\n margin: 5px 0;\n background: #f3f3f3;\n border-radius: 5px;\n padding: 0 10px;\n box-sizing: border-box;\n width: 100%;\n }\n\n button {\n margin-top: 10px;\n margin-right: 5px;\n }\n\n .filter-actions {\n text-align: right;\n margin-right: -5px;\n }\n}\n\n.rgHeaderCell {\n &:hover .rv-filter {\n transition:\n opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,\n transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n }\n &:hover .rv-filter,\n .rv-filter.active {\n opacity: 1;\n }\n\n .rv-filter {\n $btn-size: 24px;\n height: $btn-size;\n width: $btn-size;\n background: none;\n border: 0;\n opacity: 0;\n visibility: visible;\n cursor: pointer;\n border-radius: 4px;\n\n &.active {\n color: #10224a;\n }\n\n .filter-img {\n $img-size: 11px;\n color: gray;\n width: $img-size;\n }\n }\n}\n\n.select-css {\n $gradient: 'data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E';\n $linearGradient: linear-gradient(to bottom, #ffffff 0%, #ffffff 100%);\n $borderColor: #f1f1f1;\n\n display: block;\n font-family: sans-serif;\n font-weight: 600;\n color: #444;\n line-height: 1.3;\n padding: 0.6em 1.4em 0.5em 0.8em;\n width: 100%;\n max-width: 100%; /* useful when width is set to anything other than 100% */\n box-sizing: border-box;\n margin: 0;\n border: 1px solid $borderColor;\n box-shadow: transparent;\n border-radius: 0.5em;\n appearance: none;\n background-color: #fff;\n background-image: url($gradient), $linearGradient;\n background-repeat: no-repeat, repeat;\n /* arrow icon position (1em from the right, 50% vertical) , then gradient position*/\n background-position:\n right 0.7em top 50%,\n 0 0;\n /* icon size, then gradient */\n background-size:\n 0.65em auto,\n 100%;\n\n /* Hide arrow icon in IE browsers */\n &::-ms-expand {\n display: none;\n }\n /* Hover style */\n &:hover {\n border-color: rgb(197, 197, 197);\n }\n /* Focus style */\n &:focus {\n border-color: $borderColor;\n box-shadow: 0 0 1px 3px rgba(59, 153, 252, 0.7);\n box-shadow: 0 0 0 3px -moz-mac-focusring;\n color: #222;\n outline: none;\n }\n\n /* Set options to normal weight */\n option {\n font-weight: normal;\n }\n\n /* Disabled styles */\n &:disabled,\n &[aria-disabled='true'] {\n color: gray;\n background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E'),\n linear-gradient(to bottom, #ffffff 0%, #ffffff 100%);\n }\n\n &:disabled:hover,\n &[aria-disabled='true'] {\n border-color: $borderColor;\n }\n}\n\n.multi-filter-list {\n margin-top: 5px;\n margin-bottom: 5px;\n\n div {\n white-space: nowrap;\n }\n\n .multi-filter-list-action {\n display: flex;\n\n justify-content: space-between;\n align-items: center;\n }\n\n .and-or-button {\n margin: 0 0 0 10px;\n min-width: 58px;\n cursor: pointer;\n }\n .trash-button {\n $btn-remove-size: 22px;\n margin: 0 0 -2px 6px;\n cursor: pointer;\n\n width: $btn-remove-size;\n height: 100%;\n font-size: 16px;\n\n .trash-img {\n width: 1em;\n }\n }\n}\n\n.add-filter-divider {\n display: block;\n margin: 0 -10px 10px -10px;\n\n border-bottom: 1px solid #d9d9d9;\n height: 10px;\n}\n\n.select-input {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\nrevo-grid[theme^='dark'] {\n revogr-filter-panel {\n background-color: $el-color-dark;\n\n .add-filter-divider {\n border-bottom-color: $el-color-dark;\n }\n\n input[type=text] {\n background-color: $font-color-dark;\n color: black;\n }\n }\n}","// filter.panel.tsx\n\nimport {\n h,\n Component,\n Event,\n EventEmitter,\n Host,\n Listen,\n Method,\n Prop,\n State,\n type VNode,\n Element,\n} from '@stencil/core';\nimport debounce from 'lodash/debounce';\n\nimport { AndOrButton, isFilterBtn, TrashButton } from './filter.button';\nimport '../../utils/closest.polifill';\nimport {\n FilterCaptions,\n LogicFunction,\n MultiFilterItem,\n ShowData,\n} from './filter.types';\nimport type { ColumnProp } from '@type';\nimport { FilterType } from './filter.indexed';\n\nconst defaultType: FilterType = 'none';\n\nconst FILTER_LIST_CLASS = 'multi-filter-list';\nconst FILTER_LIST_CLASS_ACTION = 'multi-filter-list-action';\nconst FILTER_ID = 'add-filter';\n\n/**\n * Filter panel for editing filters\n */\n/**\n * @internal\n */\n@Component({\n tag: 'revogr-filter-panel',\n styleUrl: 'filter.style.scss',\n})\nexport class FilterPanel {\n private filterCaptionsInternal: FilterCaptions = {\n title: 'Filter by',\n ok: 'Ok',\n save: 'Save',\n // drops the filter\n reset: 'Reset',\n cancel: 'Cancel',\n add: 'Add condition',\n placeholder: 'Enter value...',\n and: 'and',\n or: 'or',\n };\n\n @Element() element!: HTMLElement;\n @State() isFilterIdSet = false;\n @State() filterId = 0;\n @State() currentFilterId = -1;\n @State() currentFilterType: FilterType = defaultType;\n @State() changes: ShowData | undefined;\n @State() filterItems: MultiFilterItem = {};\n @Prop() filterNames: Record<string, string> = {};\n @Prop() filterEntities: Record<string, LogicFunction> = {};\n @Prop() filterCaptions: Partial<FilterCaptions> | undefined;\n /**\n * Disables dynamic filtering. A way to apply filters on Save only\n */\n @Prop() disableDynamicFiltering = false;\n @Event() filterChange: EventEmitter<MultiFilterItem>;\n @Event() resetChange: EventEmitter<ColumnProp>;\n\n @Listen('mousedown', { target: 'document' }) onMouseDown(e: MouseEvent) {\n // click on anything then select drops values to default\n if (!this.changes || e.defaultPrevented) {\n return;\n }\n const path = e.composedPath();\n const select = document.getElementById(FILTER_ID);\n if (select instanceof HTMLSelectElement) {\n // click on select should be skipped\n if (path.includes(select)) {\n return;\n }\n select.value = defaultType;\n }\n this.currentFilterType = defaultType;\n if (this.changes) {\n this.changes.type = defaultType;\n }\n this.currentFilterId = -1;\n\n const isOutside = !path.includes(this.element);\n\n if (\n e.target instanceof HTMLElement &&\n isOutside &&\n !isFilterBtn(e.target)\n ) {\n this.changes = undefined;\n }\n }\n\n @Method() async show(newEntity?: ShowData) {\n this.changes = newEntity;\n this.filterItems = newEntity?.filterItems || {};\n if (this.changes) {\n this.changes.type = this.changes.type || defaultType;\n }\n }\n\n @Method() async getChanges() {\n return this.changes;\n }\n\n componentWillRender() {\n if (!this.isFilterIdSet) {\n this.isFilterIdSet = true;\n const filterItems = Object.keys(this.filterItems);\n for (const prop of filterItems) {\n // we set the proper filterId so there won't be any conflict when removing filters\n this.filterId += this.filterItems[prop].length;\n }\n }\n }\n\n getFilterItemsList() {\n const prop = this.changes?.prop;\n if (typeof prop === 'undefined') return '';\n\n const propFilters = this.filterItems[prop] ?? [];\n const capts = Object.assign(\n this.filterCaptionsInternal,\n this.filterCaptions,\n );\n return (\n <div key={this.filterId}>\n {propFilters.map((filter, index) => {\n let andOrButton;\n if (filter.hidden) {\n return;\n }\n\n // hide toggle button if there is only one filter and the last one\n if (index !== this.filterItems[prop].length - 1) {\n andOrButton = (\n <div onClick={() => this.toggleFilterAndOr(filter.id)}>\n <AndOrButton\n text={filter.relation === 'and' ? capts.and : capts.or}\n />\n </div>\n );\n }\n\n return (\n <div key={filter.id} class={FILTER_LIST_CLASS}>\n <div class={{ 'select-input': true }}>\n <select\n class=\"select-css select-filter\"\n onChange={e => this.onFilterTypeChange(e, prop, index)}\n >\n {this.renderSelectOptions(\n this.filterItems[prop][index].type,\n true,\n )}\n </select>\n <div class={FILTER_LIST_CLASS_ACTION}>{andOrButton}</div>\n <div onClick={() => this.onRemoveFilter(filter.id)}>\n <TrashButton />\n </div>\n </div>\n <div>{this.renderExtra(prop, index)}</div>\n </div>\n );\n })}\n\n {propFilters.filter(f => !f.hidden).length > 0 ? <div class=\"add-filter-divider\" /> : ''}\n </div>\n );\n }\n\n private autoCorrect(el?: HTMLElement | null) {\n if (!el) {\n return;\n }\n const pos = el.getBoundingClientRect();\n const maxLeft = window.innerWidth - pos.width;\n\n if (pos.left > maxLeft && el.offsetLeft) {\n el.style.left = `${maxLeft - (el.parentElement?.getBoundingClientRect().left ?? 0)}px`;\n }\n }\n\n private onFilterTypeChange(e: Event, prop: ColumnProp, index: number) {\n if (!(e.target instanceof HTMLSelectElement)) {\n return;\n }\n this.filterItems[prop][index].type = e.target.value as FilterType;\n\n // this re-renders the input to know if we need extra input\n this.filterId++;\n\n // adding setTimeout will wait for the next tick DOM update then focus on input\n setTimeout(() => {\n const input = document.getElementById(\n 'filter-input-' + this.filterItems[prop][index].id,\n );\n if (input instanceof HTMLInputElement) {\n input.focus();\n }\n }, 0);\n\n if (!this.disableDynamicFiltering) {\n this.debouncedApplyFilter();\n }\n }\n\n private debouncedApplyFilter = debounce(() => {\n this.filterChange.emit(this.filterItems);\n }, 400);\n\n private onAddNewFilter(e: Event) {\n const el = e.target as HTMLSelectElement;\n this.currentFilterType = el.value as FilterType;\n this.addNewFilterToProp();\n\n // reset value after adding new filter\n const select = document.getElementById('add-filter') as HTMLSelectElement;\n if (select) {\n select.value = defaultType;\n this.currentFilterType = defaultType;\n }\n\n if (!this.disableDynamicFiltering) {\n this.debouncedApplyFilter();\n }\n }\n\n private addNewFilterToProp() {\n const prop = this.changes?.prop;\n if (!(prop || prop === 0)) return;\n\n if (!this.filterItems[prop]) {\n this.filterItems[prop] = [];\n }\n\n if (this.currentFilterType === 'none') return;\n\n this.filterId++;\n this.currentFilterId = this.filterId;\n\n this.filterItems[prop].push({\n id: this.currentFilterId,\n type: this.currentFilterType,\n value: '',\n relation: 'and',\n });\n\n // adding setTimeout will wait for the next tick DOM update then focus on input\n setTimeout(() => {\n const input = document.getElementById(\n 'filter-input-' + this.currentFilterId,\n ) as HTMLInputElement;\n if (input) input.focus();\n }, 0);\n }\n\n private onUserInput(index: number, prop: ColumnProp, event: Event) {\n // update the value of the filter item\n this.filterItems[prop][index].value = (\n event.target as HTMLInputElement\n ).value;\n\n if (!this.disableDynamicFiltering) {\n this.debouncedApplyFilter();\n }\n }\n\n private onKeyDown(e: KeyboardEvent) {\n if (e.key.toLowerCase() === 'enter') {\n const select = document.getElementById('add-filter') as HTMLSelectElement;\n if (select) {\n select.value = defaultType;\n this.currentFilterType = defaultType;\n this.addNewFilterToProp();\n select.focus();\n }\n return;\n }\n // keep event local, don't escalate farther to dom\n e.stopPropagation();\n }\n\n private onSave() {\n this.filterChange.emit(this.filterItems);\n }\n\n private onCancel() {\n this.changes = undefined;\n }\n\n private onReset() {\n this.assertChanges();\n\n this.resetChange.emit(this.changes?.prop);\n\n // this updates the DOM which is used by getFilterItemsList() key\n this.filterId++;\n }\n\n private onRemoveFilter(id: number) {\n this.assertChanges();\n\n // this is for reactivity issues for getFilterItemsList()\n this.filterId++;\n\n const prop = this.changes?.prop;\n\n const items = this.filterItems[prop ?? ''];\n if (!items) return;\n\n const index = items.findIndex(d => d.id === id);\n if (index === -1) return;\n items.splice(index, 1);\n\n // let's remove the prop if no more filters so the filter icon will be removed\n if (items.length === 0) delete this.filterItems[prop ?? ''];\n\n if (!this.disableDynamicFiltering) {\n this.debouncedApplyFilter();\n }\n }\n\n private toggleFilterAndOr(id: number) {\n this.assertChanges();\n\n // this is for reactivity issues for getFilterItemsList()\n this.filterId++;\n\n const prop = this.changes?.prop;\n\n const items = this.filterItems[prop ?? ''];\n if (!items) return;\n\n const index = items.findIndex(d => d.id === id);\n if (index === -1) return;\n\n items[index].relation = items[index].relation === 'and' ? 'or' : 'and';\n if (!this.disableDynamicFiltering) {\n this.debouncedApplyFilter();\n }\n }\n\n private assertChanges() {\n if (!this.changes) {\n throw new Error('Changes required per edit');\n }\n }\n\n renderSelectOptions(type: FilterType, isDefaultTypeRemoved = false) {\n if (!this.changes) {\n return;\n }\n const options: VNode[] = [];\n const prop = this.changes.prop;\n\n const hidden = new Set<string>();\n Object.entries(this.filterItems).forEach(([_, values]) => {\n values.forEach((filter) => {\n if (filter.hidden) {\n hidden.add(filter.type);\n }\n })\n });\n\n if (!isDefaultTypeRemoved) {\n const capts = Object.assign(\n this.filterCaptionsInternal,\n this.filterCaptions,\n );\n\n options.push(\n <option\n selected={this.currentFilterType === defaultType}\n value={defaultType}\n >\n {prop && this.filterItems[prop] && this.filterItems[prop].length > 0\n ? capts.add\n : this.filterNames[defaultType]}\n </option>,\n );\n }\n\n for (let gIndex in this.changes.filterTypes) {\n const group = this.changes.filterTypes[gIndex].filter(k => !hidden.has(k));\n if (group.length) {\n options.push(\n ...group.map(k => (\n <option value={k} selected={type === k}>\n {this.filterNames[k]}\n </option>\n )),\n );\n options.push(<option disabled></option>);\n }\n }\n return options;\n }\n\n renderExtra(prop: ColumnProp, index: number) {\n const currentFilter = this.filterItems[prop];\n\n if (!currentFilter) return '';\n\n if (this.filterEntities[currentFilter[index].type].extra !== 'input')\n return '';\n\n const capts = Object.assign(\n this.filterCaptionsInternal,\n this.filterCaptions,\n );\n\n return (\n <input\n id={`filter-input-${currentFilter[index].id}`}\n placeholder={capts.placeholder}\n type=\"text\"\n value={currentFilter[index].value}\n onInput={this.onUserInput.bind(this, index, prop)}\n onKeyDown={e => this.onKeyDown(e)}\n />\n );\n }\n\n render() {\n if (!this.changes) {\n return <Host style={{ display: 'none' }}></Host>;\n }\n const style = {\n display: 'block',\n left: `${this.changes.x}px`,\n top: `${this.changes.y}px`,\n };\n\n const capts = Object.assign(\n this.filterCaptionsInternal,\n this.filterCaptions,\n );\n\n return (\n <Host\n style={style}\n ref={el => {\n this.changes?.autoCorrect && this.autoCorrect(el);\n }}\n >\n <slot slot=\"header\" />\n { this.changes.extraContent?.(this.changes) || '' }\n\n { this.changes?.hideDefaultFilters !== true && (\n [\n <label>{capts.title}</label>,\n <div class=\"filter-holder\">{this.getFilterItemsList()}</div>,\n <div class=\"add-filter\">\n <select\n id={FILTER_ID}\n class=\"select-css\"\n onChange={e => this.onAddNewFilter(e)}\n >\n {this.renderSelectOptions(this.currentFilterType)}\n </select>\n </div>\n ]\n )}\n\n <slot />\n <div class=\"filter-actions\">\n {this.disableDynamicFiltering && [\n <button\n id=\"revo-button-save\"\n aria-label=\"save\"\n class=\"revo-button green\"\n onClick={() => this.onSave()}\n >\n {capts.save}\n </button>,\n <button\n id=\"revo-button-ok\"\n aria-label=\"ok\"\n class=\"revo-button green\"\n onClick={() => this.onCancel()}\n >\n {capts.cancel}\n </button>,\n ]}\n {!this.disableDynamicFiltering && [\n <button\n id=\"revo-button-ok\"\n aria-label=\"ok\"\n class=\"revo-button green\"\n onClick={() => this.onCancel()}\n >\n {capts.ok}\n </button>,\n\n <button\n id=\"revo-button-reset\"\n aria-label=\"reset\"\n class=\"revo-button outline\"\n onClick={() => this.onReset()}\n >\n {capts.reset}\n </button>,\n ]}\n </div>\n <slot slot=\"footer\" />\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"revogr-filter-panel.entry.cjs.js","mappings":"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","names":["debounce","isFilterBtn","h","index","AndOrButton","TrashButton","Host"],"sources":["src/utils/closest.polifill.ts","src/plugins/filter/filter.style.scss?tag=revogr-filter-panel","src/plugins/filter/filter.panel.tsx"],"sourcesContent":["(function closest() {\n if (!Element.prototype.matches) {\n Element.prototype.matches =\n ((Element.prototype as unknown) as { msMatchesSelector: (selectors: string) => boolean }).msMatchesSelector || Element.prototype.webkitMatchesSelector;\n }\n\n if (!Element.prototype.closest) {\n Element.prototype.closest = function (s: string) {\n let el: HTMLElement | Element | (Node & ParentNode) | null = this;\n\n do {\n if (Element.prototype.matches.call(el, s)) {\n return el;\n }\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n return null;\n };\n }\n})();\n","revogr-filter-panel {\n position: absolute;\n display: block;\n top: 0;\n left: 0;\n z-index: 100;\n max-height: calc(100% - 80px);\n min-width: 250px;\n overflow: auto;\n\n opacity: 1;\n transform: none;\n background-color: var(--revo-grid-filter-panel-bg, #fff);\n border: 1px solid var(--revo-grid-filter-panel-border, #cecece);\n transform-origin: 62px 0px;\n box-shadow: 0 5px 18px -2px var(--revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15));\n padding: 10px;\n border-radius: 8px;\n\n min-width: 220px;\n text-align: left;\n\n .filter-holder > div {\n display: flex;\n flex-direction: column;\n }\n\n label {\n font-size: 13px;\n display: block;\n padding: 8px 0;\n }\n\n select {\n width: 100%;\n }\n\n input[type='text'] {\n border: 0;\n min-height: 34px;\n margin: 5px 0;\n background: var(--revo-grid-filter-panel-input-bg, #f3f3f3);\n border-radius: 5px;\n padding: 0 10px;\n box-sizing: border-box;\n width: 100%;\n }\n\n button {\n margin-top: 10px;\n margin-right: 5px;\n }\n\n .filter-actions {\n text-align: right;\n margin-right: -5px;\n }\n}\n\n.rgHeaderCell {\n &:hover .rv-filter {\n transition:\n opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,\n transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n }\n &:hover .rv-filter,\n .rv-filter.active {\n opacity: 1;\n }\n\n .rv-filter {\n $btn-size: 24px;\n height: $btn-size;\n width: $btn-size;\n background: none;\n border: 0;\n opacity: 0;\n visibility: visible;\n cursor: pointer;\n border-radius: 4px;\n\n &.active {\n color: #10224a;\n }\n\n .filter-img {\n $img-size: 11px;\n color: gray;\n width: $img-size;\n }\n }\n}\n\n.select-css {\n $gradient: 'data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E';\n\n display: block;\n font-family: sans-serif;\n line-height: 1.3;\n padding: 0.6em 1.4em 0.5em 0.8em;\n width: 100%;\n max-width: 100%; /* useful when width is set to anything other than 100% */\n box-sizing: border-box;\n margin: 0;\n border: 1px solid var(--revo-grid-filter-panel-select-border, #d9d9d9);\n box-shadow: transparent;\n border-radius: 0.5em;\n appearance: none;\n background-color: var(--revo-grid-filter-panel-input-bg, #f3f3f3);\n background-image: url($gradient);\n background-repeat: no-repeat, repeat;\n /* arrow icon position (1em from the right, 50% vertical) , then gradient position*/\n background-position:\n right 0.7em top 50%,\n 0 0;\n /* icon size, then gradient */\n background-size:\n 0.65em auto,\n 100%;\n\n /* Hide arrow icon in IE browsers */\n &::-ms-expand {\n display: none;\n }\n /* Hover style */\n &:hover {\n border-color: var(--revo-grid-filter-panel-select-border, #d9d9d9);\n }\n /* Focus style */\n &:focus {\n border-color: var(--revo-grid-filter-panel-select-border-hover, #d9d9d9);\n box-shadow: 0 0 1px 3px rgba(59, 153, 252, 0.7);\n box-shadow: 0 0 0 3px -moz-mac-focusring;\n outline: none;\n }\n\n /* Set options to normal weight */\n option {\n font-weight: normal;\n }\n\n /* Disabled styles */\n &:disabled,\n &[aria-disabled='true'] {\n color: gray;\n background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E'),\n linear-gradient(to bottom, #ffffff 0%, #ffffff 100%);\n }\n\n &:disabled:hover,\n &[aria-disabled='true'] {\n border-color: var(--revo-grid-filter-panel-select-border, #d9d9d9);\n }\n}\n\n.multi-filter-list {\n margin-top: 5px;\n margin-bottom: 5px;\n\n div {\n white-space: nowrap;\n }\n\n .multi-filter-list-action {\n display: flex;\n\n justify-content: space-between;\n align-items: center;\n }\n\n .and-or-button {\n margin: 0 0 0 10px;\n min-width: 58px;\n cursor: pointer;\n }\n .trash-button {\n $btn-remove-size: 22px;\n margin: 0 0 -2px 6px;\n cursor: pointer;\n\n width: $btn-remove-size;\n height: 100%;\n font-size: 16px;\n\n .trash-img {\n width: 1em;\n }\n }\n}\n\n.add-filter-divider {\n display: block;\n margin: 0 -10px 10px -10px;\n\n border-bottom: 1px solid var(--revo-grid-filter-panel-divider, #d9d9d9);\n height: 10px;\n}\n\n.select-input {\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n","// filter.panel.tsx\n\nimport {\n h,\n Component,\n Event,\n EventEmitter,\n Host,\n Listen,\n Method,\n Prop,\n State,\n type VNode,\n Element,\n} from '@stencil/core';\nimport debounce from 'lodash/debounce';\n\nimport { AndOrButton, isFilterBtn, TrashButton } from './filter.button';\nimport '../../utils/closest.polifill';\nimport {\n FilterCaptions,\n LogicFunction,\n MultiFilterItem,\n ShowData,\n} from './filter.types';\nimport type { ColumnProp } from '@type';\nimport { FilterType } from './filter.indexed';\n\nconst defaultType: FilterType = 'none';\n\nconst FILTER_LIST_CLASS = 'multi-filter-list';\nconst FILTER_LIST_CLASS_ACTION = 'multi-filter-list-action';\nconst FILTER_ID = 'add-filter';\n\n/**\n * Filter panel for editing filters\n */\n/**\n * @internal\n */\n@Component({\n tag: 'revogr-filter-panel',\n styleUrl: 'filter.style.scss',\n})\nexport class FilterPanel {\n private filterCaptionsInternal: FilterCaptions = {\n title: 'Filter by',\n ok: 'Ok',\n save: 'Save',\n // drops the filter\n reset: 'Reset',\n cancel: 'Cancel',\n add: 'Add condition',\n placeholder: 'Enter value...',\n and: 'and',\n or: 'or',\n };\n\n @Element() element!: HTMLElement;\n @State() isFilterIdSet = false;\n @State() filterId = 0;\n @State() currentFilterId = -1;\n @State() currentFilterType: FilterType = defaultType;\n @State() changes: ShowData | undefined;\n @State() filterItems: MultiFilterItem = {};\n @Prop() filterNames: Record<string, string> = {};\n @Prop() filterEntities: Record<string, LogicFunction> = {};\n @Prop() filterCaptions: Partial<FilterCaptions> | undefined;\n /**\n * Disables dynamic filtering. A way to apply filters on Save only\n */\n @Prop() disableDynamicFiltering = false;\n @Event() filterChange: EventEmitter<MultiFilterItem>;\n @Event() resetChange: EventEmitter<ColumnProp>;\n\n @Listen('mousedown', { target: 'document' }) onMouseDown(e: MouseEvent) {\n // click on anything then select drops values to default\n if (!this.changes || e.defaultPrevented) {\n return;\n }\n const path = e.composedPath();\n const select = document.getElementById(FILTER_ID);\n if (select instanceof HTMLSelectElement) {\n // click on select should be skipped\n if (path.includes(select)) {\n return;\n }\n select.value = defaultType;\n }\n this.currentFilterType = defaultType;\n if (this.changes) {\n this.changes.type = defaultType;\n }\n this.currentFilterId = -1;\n\n const isOutside = !path.includes(this.element);\n\n if (\n e.target instanceof HTMLElement &&\n isOutside &&\n !isFilterBtn(e.target)\n ) {\n this.changes = undefined;\n }\n }\n\n @Method() async show(newEntity?: ShowData) {\n this.changes = newEntity;\n this.filterItems = newEntity?.filterItems || {};\n if (this.changes) {\n this.changes.type = this.changes.type || defaultType;\n }\n }\n\n @Method() async getChanges() {\n return this.changes;\n }\n\n componentWillRender() {\n if (!this.isFilterIdSet) {\n this.isFilterIdSet = true;\n const filterItems = Object.keys(this.filterItems);\n for (const prop of filterItems) {\n // we set the proper filterId so there won't be any conflict when removing filters\n this.filterId += this.filterItems[prop].length;\n }\n }\n }\n\n getFilterItemsList() {\n const prop = this.changes?.prop;\n if (typeof prop === 'undefined') return '';\n\n const propFilters = this.filterItems[prop] ?? [];\n const capts = Object.assign(\n this.filterCaptionsInternal,\n this.filterCaptions,\n );\n return (\n <div key={this.filterId}>\n {propFilters.map((filter, index) => {\n let andOrButton;\n if (filter.hidden) {\n return;\n }\n\n // hide toggle button if there is only one filter and the last one\n if (index !== this.filterItems[prop].length - 1) {\n andOrButton = (\n <div onClick={() => this.toggleFilterAndOr(filter.id)}>\n <AndOrButton\n text={filter.relation === 'and' ? capts.and : capts.or}\n />\n </div>\n );\n }\n\n return (\n <div key={filter.id} class={FILTER_LIST_CLASS}>\n <div class={{ 'select-input': true }}>\n <select\n class=\"select-css select-filter\"\n onChange={e => this.onFilterTypeChange(e, prop, index)}\n >\n {this.renderSelectOptions(\n this.filterItems[prop][index].type,\n true,\n )}\n </select>\n <div class={FILTER_LIST_CLASS_ACTION}>{andOrButton}</div>\n <div onClick={() => this.onRemoveFilter(filter.id)}>\n <TrashButton />\n </div>\n </div>\n <div>{this.renderExtra(prop, index)}</div>\n </div>\n );\n })}\n\n {propFilters.filter(f => !f.hidden).length > 0 ? <div class=\"add-filter-divider\" /> : ''}\n </div>\n );\n }\n\n private autoCorrect(el?: HTMLElement | null) {\n if (!el) {\n return;\n }\n const pos = el.getBoundingClientRect();\n const maxLeft = window.innerWidth - pos.width;\n\n if (pos.left > maxLeft && el.offsetLeft) {\n el.style.left = `${maxLeft - (el.parentElement?.getBoundingClientRect().left ?? 0)}px`;\n }\n }\n\n private onFilterTypeChange(e: Event, prop: ColumnProp, index: number) {\n if (!(e.target instanceof HTMLSelectElement)) {\n return;\n }\n this.filterItems[prop][index].type = e.target.value as FilterType;\n\n // this re-renders the input to know if we need extra input\n this.filterId++;\n\n // adding setTimeout will wait for the next tick DOM update then focus on input\n setTimeout(() => {\n const input = document.getElementById(\n 'filter-input-' + this.filterItems[prop][index].id,\n );\n if (input instanceof HTMLInputElement) {\n input.focus();\n }\n }, 0);\n\n if (!this.disableDynamicFiltering) {\n this.debouncedApplyFilter();\n }\n }\n\n private debouncedApplyFilter = debounce(() => {\n this.filterChange.emit(this.filterItems);\n }, 400);\n\n private onAddNewFilter(e: Event) {\n const el = e.target as HTMLSelectElement;\n this.currentFilterType = el.value as FilterType;\n this.addNewFilterToProp();\n\n // reset value after adding new filter\n const select = document.getElementById('add-filter') as HTMLSelectElement;\n if (select) {\n select.value = defaultType;\n this.currentFilterType = defaultType;\n }\n\n if (!this.disableDynamicFiltering) {\n this.debouncedApplyFilter();\n }\n }\n\n private addNewFilterToProp() {\n const prop = this.changes?.prop;\n if (!(prop || prop === 0)) return;\n\n if (!this.filterItems[prop]) {\n this.filterItems[prop] = [];\n }\n\n if (this.currentFilterType === 'none') return;\n\n this.filterId++;\n this.currentFilterId = this.filterId;\n\n this.filterItems[prop].push({\n id: this.currentFilterId,\n type: this.currentFilterType,\n value: '',\n relation: 'and',\n });\n\n // adding setTimeout will wait for the next tick DOM update then focus on input\n setTimeout(() => {\n const input = document.getElementById(\n 'filter-input-' + this.currentFilterId,\n ) as HTMLInputElement;\n if (input) input.focus();\n }, 0);\n }\n\n private onUserInput(index: number, prop: ColumnProp, event: Event) {\n // update the value of the filter item\n this.filterItems[prop][index].value = (\n event.target as HTMLInputElement\n ).value;\n\n if (!this.disableDynamicFiltering) {\n this.debouncedApplyFilter();\n }\n }\n\n private onKeyDown(e: KeyboardEvent) {\n if (e.key.toLowerCase() === 'enter') {\n const select = document.getElementById('add-filter') as HTMLSelectElement;\n if (select) {\n select.value = defaultType;\n this.currentFilterType = defaultType;\n this.addNewFilterToProp();\n select.focus();\n }\n return;\n }\n // keep event local, don't escalate farther to dom\n e.stopPropagation();\n }\n\n private onSave() {\n this.filterChange.emit(this.filterItems);\n }\n\n private onCancel() {\n this.changes = undefined;\n }\n\n private onReset() {\n this.assertChanges();\n\n this.resetChange.emit(this.changes?.prop);\n\n // this updates the DOM which is used by getFilterItemsList() key\n this.filterId++;\n }\n\n private onRemoveFilter(id: number) {\n this.assertChanges();\n\n // this is for reactivity issues for getFilterItemsList()\n this.filterId++;\n\n const prop = this.changes?.prop;\n\n const items = this.filterItems[prop ?? ''];\n if (!items) return;\n\n const index = items.findIndex(d => d.id === id);\n if (index === -1) return;\n items.splice(index, 1);\n\n // let's remove the prop if no more filters so the filter icon will be removed\n if (items.length === 0) delete this.filterItems[prop ?? ''];\n\n if (!this.disableDynamicFiltering) {\n this.debouncedApplyFilter();\n }\n }\n\n private toggleFilterAndOr(id: number) {\n this.assertChanges();\n\n // this is for reactivity issues for getFilterItemsList()\n this.filterId++;\n\n const prop = this.changes?.prop;\n\n const items = this.filterItems[prop ?? ''];\n if (!items) return;\n\n const index = items.findIndex(d => d.id === id);\n if (index === -1) return;\n\n items[index].relation = items[index].relation === 'and' ? 'or' : 'and';\n if (!this.disableDynamicFiltering) {\n this.debouncedApplyFilter();\n }\n }\n\n private assertChanges() {\n if (!this.changes) {\n throw new Error('Changes required per edit');\n }\n }\n\n renderSelectOptions(type: FilterType, isDefaultTypeRemoved = false) {\n if (!this.changes) {\n return;\n }\n const options: VNode[] = [];\n const prop = this.changes.prop;\n\n const hidden = new Set<string>();\n Object.entries(this.filterItems).forEach(([_, values]) => {\n values.forEach((filter) => {\n if (filter.hidden) {\n hidden.add(filter.type);\n }\n })\n });\n\n if (!isDefaultTypeRemoved) {\n const capts = Object.assign(\n this.filterCaptionsInternal,\n this.filterCaptions,\n );\n\n options.push(\n <option\n selected={this.currentFilterType === defaultType}\n value={defaultType}\n >\n {prop && this.filterItems[prop] && this.filterItems[prop].length > 0\n ? capts.add\n : this.filterNames[defaultType]}\n </option>,\n );\n }\n\n for (let gIndex in this.changes.filterTypes) {\n const group = this.changes.filterTypes[gIndex].filter(k => !hidden.has(k));\n if (group.length) {\n options.push(\n ...group.map(k => (\n <option value={k} selected={type === k}>\n {this.filterNames[k]}\n </option>\n )),\n );\n options.push(<option disabled></option>);\n }\n }\n return options;\n }\n\n renderExtra(prop: ColumnProp, index: number) {\n const currentFilter = this.filterItems[prop];\n\n if (!currentFilter) return '';\n\n if (this.filterEntities[currentFilter[index].type].extra !== 'input')\n return '';\n\n const capts = Object.assign(\n this.filterCaptionsInternal,\n this.filterCaptions,\n );\n\n return (\n <input\n id={`filter-input-${currentFilter[index].id}`}\n placeholder={capts.placeholder}\n type=\"text\"\n value={currentFilter[index].value}\n onInput={this.onUserInput.bind(this, index, prop)}\n onKeyDown={e => this.onKeyDown(e)}\n />\n );\n }\n\n render() {\n if (!this.changes) {\n return <Host style={{ display: 'none' }}></Host>;\n }\n const style = {\n display: 'block',\n left: `${this.changes.x}px`,\n top: `${this.changes.y}px`,\n };\n\n const capts = Object.assign(\n this.filterCaptionsInternal,\n this.filterCaptions,\n );\n\n return (\n <Host\n style={style}\n ref={el => {\n this.changes?.autoCorrect && this.autoCorrect(el);\n }}\n >\n <slot slot=\"header\" />\n { this.changes.extraContent?.(this.changes) || '' }\n\n { this.changes?.hideDefaultFilters !== true && (\n [\n <label>{capts.title}</label>,\n <div class=\"filter-holder\">{this.getFilterItemsList()}</div>,\n <div class=\"add-filter\">\n <select\n id={FILTER_ID}\n class=\"select-css\"\n onChange={e => this.onAddNewFilter(e)}\n >\n {this.renderSelectOptions(this.currentFilterType)}\n </select>\n </div>\n ]\n )}\n\n <slot />\n <div class=\"filter-actions\">\n {this.disableDynamicFiltering && [\n <button\n id=\"revo-button-save\"\n aria-label=\"save\"\n class=\"revo-button green\"\n onClick={() => this.onSave()}\n >\n {capts.save}\n </button>,\n <button\n id=\"revo-button-ok\"\n aria-label=\"ok\"\n class=\"revo-button green\"\n onClick={() => this.onCancel()}\n >\n {capts.cancel}\n </button>,\n ]}\n {!this.disableDynamicFiltering && [\n <button\n id=\"revo-button-ok\"\n aria-label=\"ok\"\n class=\"revo-button green\"\n onClick={() => this.onCancel()}\n >\n {capts.ok}\n </button>,\n\n <button\n id=\"revo-button-reset\"\n aria-label=\"reset\"\n class=\"revo-button outline\"\n onClick={() => this.onReset()}\n >\n {capts.reset}\n </button>,\n ]}\n </div>\n <slot slot=\"footer\" />\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -72,18 +72,18 @@ revo-grid[theme^=dark] .revo-button.outline {
|
|
|
72
72
|
|
|
73
73
|
revo-grid[theme=default],
|
|
74
74
|
revo-grid:not([theme]) {
|
|
75
|
-
border: 1px solid
|
|
75
|
+
border: 1px solid var(--revo-grid-header-border);
|
|
76
76
|
font-size: 12px;
|
|
77
77
|
}
|
|
78
78
|
revo-grid[theme=default] .rowHeaders revogr-header,
|
|
79
79
|
revo-grid:not([theme]) .rowHeaders revogr-header {
|
|
80
|
-
box-shadow: -1px 0 0 0
|
|
80
|
+
box-shadow: -1px 0 0 0 var(--revo-grid-header-border) inset;
|
|
81
81
|
}
|
|
82
82
|
revo-grid[theme=default] revogr-header,
|
|
83
83
|
revo-grid:not([theme]) revogr-header {
|
|
84
84
|
text-align: center;
|
|
85
85
|
line-height: 30px;
|
|
86
|
-
background-color:
|
|
86
|
+
background-color: var(--revo-grid-header-bg);
|
|
87
87
|
}
|
|
88
88
|
revo-grid[theme=default] revogr-header .group-rgRow,
|
|
89
89
|
revo-grid:not([theme]) revogr-header .group-rgRow {
|
|
@@ -95,62 +95,58 @@ revo-grid:not([theme]) revogr-header .header-rgRow,
|
|
|
95
95
|
revo-grid:not([theme]) revogr-header .group-rgRow {
|
|
96
96
|
text-transform: uppercase;
|
|
97
97
|
font-size: 12px;
|
|
98
|
-
color:
|
|
98
|
+
color: var(--revo-grid-header-color);
|
|
99
99
|
}
|
|
100
100
|
revo-grid[theme=default] revogr-header .header-rgRow,
|
|
101
101
|
revo-grid:not([theme]) revogr-header .header-rgRow {
|
|
102
102
|
height: 30px;
|
|
103
|
-
box-shadow: 0 -1px 0 0
|
|
103
|
+
box-shadow: 0 -1px 0 0 var(--revo-grid-header-border) inset;
|
|
104
104
|
}
|
|
105
105
|
revo-grid[theme=default] revogr-header .rgHeaderCell,
|
|
106
106
|
revo-grid:not([theme]) revogr-header .rgHeaderCell {
|
|
107
|
-
box-shadow: -1px 0 0 0
|
|
108
|
-
}
|
|
109
|
-
revo-grid[theme=default] revogr-header .rgHeaderCell.focused-cell,
|
|
110
|
-
revo-grid:not([theme]) revogr-header .rgHeaderCell.focused-cell {
|
|
111
|
-
background: rgba(233, 234, 237, 0.5);
|
|
107
|
+
box-shadow: -1px 0 0 0 var(--revo-grid-header-border) inset, 0 -1px 0 0 var(--revo-grid-header-border), 0 -1px 0 0 var(--revo-grid-header-border) inset;
|
|
112
108
|
}
|
|
113
109
|
revo-grid[theme=default] .rowHeaders,
|
|
114
110
|
revo-grid:not([theme]) .rowHeaders {
|
|
115
|
-
background-color:
|
|
111
|
+
background-color: var(--revo-grid-header-bg);
|
|
116
112
|
}
|
|
117
113
|
revo-grid[theme=default] .rowHeaders revogr-data .rgCell,
|
|
118
114
|
revo-grid:not([theme]) .rowHeaders revogr-data .rgCell {
|
|
119
|
-
color:
|
|
115
|
+
color: var(--revo-grid-header-color);
|
|
120
116
|
}
|
|
121
117
|
revo-grid[theme=default] .rowHeaders revogr-data .rgCell:first-child,
|
|
122
118
|
revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:first-child {
|
|
123
|
-
box-shadow: 0 -1px 0 0
|
|
119
|
+
box-shadow: 0 -1px 0 0 var(--revo-grid-header-border) inset;
|
|
124
120
|
}
|
|
125
121
|
revo-grid[theme=default] .rowHeaders revogr-data .rgCell:not(:first-child),
|
|
126
122
|
revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child) {
|
|
127
|
-
box-shadow: 0 -1px 0 0
|
|
123
|
+
box-shadow: 0 -1px 0 0 var(--revo-grid-header-border) inset, 1px 0 0 0 var(--revo-grid-header-border) inset;
|
|
128
124
|
}
|
|
129
125
|
revo-grid[theme=default] .rowHeaders revogr-data .rgCell:last-child,
|
|
130
126
|
revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:last-child {
|
|
131
|
-
border-right: 1px solid
|
|
127
|
+
border-right: 1px solid var(--revo-grid-header-border);
|
|
132
128
|
}
|
|
133
129
|
revo-grid[theme=default] .rowHeaders revogr-data revogr-header,
|
|
134
130
|
revo-grid:not([theme]) .rowHeaders revogr-data revogr-header {
|
|
135
|
-
box-shadow: 0 -1px 0 0
|
|
131
|
+
box-shadow: 0 -1px 0 0 var(--revo-grid-header-border) inset;
|
|
136
132
|
}
|
|
137
133
|
revo-grid[theme=default] revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child,
|
|
138
134
|
revo-grid:not([theme]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child {
|
|
139
|
-
box-shadow: 0 -1px 0 0
|
|
135
|
+
box-shadow: 0 -1px 0 0 var(--revo-grid-cell-border) inset, -1px 0 0 0 var(--revo-grid-header-border) inset;
|
|
140
136
|
}
|
|
141
137
|
revo-grid[theme=default] revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell,
|
|
142
138
|
revo-grid:not([theme]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell {
|
|
143
|
-
box-shadow: 0 1px 0 0
|
|
139
|
+
box-shadow: 0 1px 0 0 var(--revo-grid-header-border) inset, -1px 0 0 0 var(--revo-grid-header-border) inset;
|
|
144
140
|
}
|
|
145
141
|
revo-grid[theme=default] revogr-viewport-scroll.colPinEnd,
|
|
146
142
|
revo-grid[theme=default] revogr-viewport-scroll.colPinEnd revogr-header,
|
|
147
143
|
revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd,
|
|
148
144
|
revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd revogr-header {
|
|
149
|
-
box-shadow: 1px 0 0
|
|
145
|
+
box-shadow: 1px 0 0 var(--revo-grid-header-border) inset;
|
|
150
146
|
}
|
|
151
147
|
revo-grid[theme=default] .footer-wrapper revogr-data .rgRow:first-child .rgCell,
|
|
152
148
|
revo-grid:not([theme]) .footer-wrapper revogr-data .rgRow:first-child .rgCell {
|
|
153
|
-
box-shadow: 0 1px 0 0
|
|
149
|
+
box-shadow: 0 1px 0 0 var(--revo-grid-cell-border) inset, -1px 0 0 0 var(--revo-grid-cell-border) inset, 0 -1px 0 0 var(--revo-grid-cell-border) inset;
|
|
154
150
|
}
|
|
155
151
|
revo-grid[theme=default] revogr-data,
|
|
156
152
|
revo-grid:not([theme]) revogr-data {
|
|
@@ -164,17 +160,9 @@ revo-grid[theme=default] revogr-data .rgRow,
|
|
|
164
160
|
revo-grid:not([theme]) revogr-data .rgRow {
|
|
165
161
|
line-height: 27px;
|
|
166
162
|
}
|
|
167
|
-
revo-grid[theme=default] revogr-data .rgRow.focused-rgRow,
|
|
168
|
-
revo-grid:not([theme]) revogr-data .rgRow.focused-rgRow {
|
|
169
|
-
background-color: rgba(233, 234, 237, 0.5);
|
|
170
|
-
}
|
|
171
163
|
revo-grid[theme=default] revogr-data .rgCell,
|
|
172
164
|
revo-grid:not([theme]) revogr-data .rgCell {
|
|
173
|
-
box-shadow: 0 -1px 0 0
|
|
174
|
-
}
|
|
175
|
-
revo-grid[theme=default] revogr-data .rgCell.disabled,
|
|
176
|
-
revo-grid:not([theme]) revogr-data .rgCell.disabled {
|
|
177
|
-
background-color: 0 -1px 0 0 #e2e3e3 inset, -1px 0 0 0 #e2e3e3 inset;
|
|
165
|
+
box-shadow: 0 -1px 0 0 var(--revo-grid-cell-border) inset, -1px 0 0 0 var(--revo-grid-cell-border) inset;
|
|
178
166
|
}
|
|
179
167
|
|
|
180
168
|
revo-grid[theme=material] {
|
|
@@ -201,49 +189,9 @@ revo-grid[theme=material] revogr-data .rgRow {
|
|
|
201
189
|
revo-grid[theme=material] revogr-data .rgCell {
|
|
202
190
|
padding: 0 15px;
|
|
203
191
|
}
|
|
204
|
-
revo-grid[theme=material] .rowHeaders {
|
|
205
|
-
background-color: #f7faff;
|
|
206
|
-
}
|
|
207
|
-
revo-grid[theme=material] .rowHeaders revogr-data .rgCell {
|
|
208
|
-
color: #757a82;
|
|
209
|
-
}
|
|
210
|
-
revo-grid[theme=material] revogr-header .header-rgRow.group {
|
|
211
|
-
box-shadow: 0 -1px 0 0 #f1f1f1 inset;
|
|
212
|
-
}
|
|
213
|
-
revo-grid[theme=material] revogr-header .header-rgRow:not(.group) {
|
|
214
|
-
box-shadow: 0 -1px 0 0 #f1f1f1, 0 -1px 0 0 #f1f1f1 inset;
|
|
215
|
-
}
|
|
216
|
-
revo-grid[theme=material] revogr-header .rgHeaderCell.sortable:hover {
|
|
217
|
-
background-color: #f1f1f1;
|
|
218
|
-
}
|
|
219
|
-
revo-grid[theme=material] revogr-header .rgHeaderCell.focused-cell {
|
|
220
|
-
background: rgba(233, 234, 237, 0.5);
|
|
221
|
-
}
|
|
222
|
-
revo-grid[theme=material] .footer-wrapper revogr-data {
|
|
223
|
-
box-shadow: 0 -1px 0 #f1f1f1;
|
|
224
|
-
}
|
|
225
|
-
revo-grid[theme=material] revogr-viewport-scroll.colPinStart {
|
|
226
|
-
box-shadow: -1px 0 0 #f1f1f1 inset;
|
|
227
|
-
}
|
|
228
|
-
revo-grid[theme=material] revogr-viewport-scroll.colPinEnd {
|
|
229
|
-
box-shadow: -1px 0 0 #f1f1f1;
|
|
230
|
-
}
|
|
231
|
-
revo-grid[theme=material] revogr-data .rgRow {
|
|
232
|
-
box-shadow: 0 -1px 0 0 #f1f1f1 inset;
|
|
233
|
-
}
|
|
234
|
-
revo-grid[theme=material] revogr-data .rgRow.focused-rgRow {
|
|
235
|
-
background-color: rgba(233, 234, 237, 0.5);
|
|
236
|
-
}
|
|
237
|
-
revo-grid[theme=material] revogr-data .rgCell {
|
|
238
|
-
color: rgba(0, 0, 0, 0.87);
|
|
239
|
-
}
|
|
240
|
-
revo-grid[theme=material] revogr-data .rgCell.disabled {
|
|
241
|
-
background-color: #f7f7f7;
|
|
242
|
-
}
|
|
243
192
|
|
|
244
193
|
revo-grid[theme=darkMaterial] {
|
|
245
194
|
font-family: Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
|
246
|
-
color: #d8d8d8;
|
|
247
195
|
}
|
|
248
196
|
revo-grid[theme=darkMaterial] revogr-header {
|
|
249
197
|
line-height: 50px;
|
|
@@ -266,49 +214,9 @@ revo-grid[theme=darkMaterial] revogr-data .rgRow {
|
|
|
266
214
|
revo-grid[theme=darkMaterial] revogr-data .rgCell {
|
|
267
215
|
padding: 0 15px;
|
|
268
216
|
}
|
|
269
|
-
revo-grid[theme=darkMaterial] .rowHeaders {
|
|
270
|
-
background-color: rgba(40, 39, 43, 0.8);
|
|
271
|
-
}
|
|
272
|
-
revo-grid[theme=darkMaterial] .rowHeaders revogr-data .rgCell {
|
|
273
|
-
color: rgba(216, 216, 216, 0.8);
|
|
274
|
-
}
|
|
275
|
-
revo-grid[theme=darkMaterial] revogr-edit {
|
|
276
|
-
background-color: #28272b;
|
|
277
|
-
}
|
|
278
|
-
revo-grid[theme=darkMaterial] revogr-header .header-rgRow.group {
|
|
279
|
-
box-shadow: 0 -1px 0 0 #404040 inset;
|
|
280
|
-
}
|
|
281
|
-
revo-grid[theme=darkMaterial] revogr-header .header-rgRow:not(.group) {
|
|
282
|
-
box-shadow: 0 -1px 0 0 #404040, 0 -1px 0 0 #404040 inset;
|
|
283
|
-
}
|
|
284
|
-
revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell.sortable:hover {
|
|
285
|
-
background-color: rgba(64, 64, 64, 0.5);
|
|
286
|
-
}
|
|
287
|
-
revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell.focused-cell {
|
|
288
|
-
background: rgba(115, 148, 160, 0.15);
|
|
289
|
-
}
|
|
290
|
-
revo-grid[theme=darkMaterial] .footer-wrapper revogr-data {
|
|
291
|
-
box-shadow: 0 -1px 0 #404040;
|
|
292
|
-
}
|
|
293
|
-
revo-grid[theme=darkMaterial] revogr-data .rgCell {
|
|
294
|
-
color: rgba(216, 216, 216, 0.9);
|
|
295
|
-
}
|
|
296
|
-
revo-grid[theme=darkMaterial] revogr-data .rgRow {
|
|
297
|
-
box-shadow: 0 -1px 0 0 #404040 inset;
|
|
298
|
-
}
|
|
299
|
-
revo-grid[theme=darkMaterial] revogr-data .rgRow.focused-rgRow {
|
|
300
|
-
background-color: rgba(115, 148, 160, 0.15);
|
|
301
|
-
}
|
|
302
|
-
revo-grid[theme=darkMaterial] revogr-viewport-scroll.colPinStart {
|
|
303
|
-
box-shadow: -1px 0 0 #404040 inset;
|
|
304
|
-
}
|
|
305
|
-
revo-grid[theme=darkMaterial] revogr-viewport-scroll.colPinEnd {
|
|
306
|
-
box-shadow: -1px 0 0 #404040;
|
|
307
|
-
}
|
|
308
217
|
|
|
309
218
|
revo-grid[theme=darkCompact] {
|
|
310
219
|
font-family: Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
|
311
|
-
color: #d8d8d8;
|
|
312
220
|
}
|
|
313
221
|
revo-grid[theme=darkCompact] revogr-header {
|
|
314
222
|
line-height: 45px;
|
|
@@ -331,45 +239,6 @@ revo-grid[theme=darkCompact] revogr-data .rgRow {
|
|
|
331
239
|
revo-grid[theme=darkCompact] revogr-data .rgCell {
|
|
332
240
|
padding: 0 15px;
|
|
333
241
|
}
|
|
334
|
-
revo-grid[theme=darkCompact] .rowHeaders {
|
|
335
|
-
background-color: rgba(40, 39, 43, 0.8);
|
|
336
|
-
}
|
|
337
|
-
revo-grid[theme=darkCompact] .rowHeaders revogr-data .rgCell {
|
|
338
|
-
color: rgba(216, 216, 216, 0.8);
|
|
339
|
-
}
|
|
340
|
-
revo-grid[theme=darkCompact] revogr-edit {
|
|
341
|
-
background-color: #28272b;
|
|
342
|
-
}
|
|
343
|
-
revo-grid[theme=darkCompact] revogr-header .header-rgRow.group {
|
|
344
|
-
box-shadow: 0 -1px 0 0 #404040 inset;
|
|
345
|
-
}
|
|
346
|
-
revo-grid[theme=darkCompact] revogr-header .header-rgRow:not(.group) {
|
|
347
|
-
box-shadow: 0 -1px 0 0 #404040, 0 -1px 0 0 #404040 inset;
|
|
348
|
-
}
|
|
349
|
-
revo-grid[theme=darkCompact] revogr-header .rgHeaderCell.sortable:hover {
|
|
350
|
-
background-color: rgba(64, 64, 64, 0.5);
|
|
351
|
-
}
|
|
352
|
-
revo-grid[theme=darkCompact] revogr-header .rgHeaderCell.focused-cell {
|
|
353
|
-
background: rgba(115, 148, 160, 0.15);
|
|
354
|
-
}
|
|
355
|
-
revo-grid[theme=darkCompact] .footer-wrapper revogr-data {
|
|
356
|
-
box-shadow: 0 -1px 0 #404040;
|
|
357
|
-
}
|
|
358
|
-
revo-grid[theme=darkCompact] revogr-data .rgCell {
|
|
359
|
-
color: rgba(216, 216, 216, 0.9);
|
|
360
|
-
}
|
|
361
|
-
revo-grid[theme=darkCompact] revogr-data .rgRow {
|
|
362
|
-
box-shadow: 0 -1px 0 0 #404040 inset;
|
|
363
|
-
}
|
|
364
|
-
revo-grid[theme=darkCompact] revogr-data .rgRow.focused-rgRow {
|
|
365
|
-
background-color: rgba(115, 148, 160, 0.15);
|
|
366
|
-
}
|
|
367
|
-
revo-grid[theme=darkCompact] revogr-viewport-scroll.colPinStart {
|
|
368
|
-
box-shadow: -1px 0 0 #404040 inset;
|
|
369
|
-
}
|
|
370
|
-
revo-grid[theme=darkCompact] revogr-viewport-scroll.colPinEnd {
|
|
371
|
-
box-shadow: -1px 0 0 #404040;
|
|
372
|
-
}
|
|
373
242
|
|
|
374
243
|
revo-grid[theme=compact] {
|
|
375
244
|
font-family: Nunito, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
|
@@ -395,50 +264,39 @@ revo-grid[theme=compact] revogr-data .rgRow {
|
|
|
395
264
|
revo-grid[theme=compact] revogr-data .rgCell {
|
|
396
265
|
padding: 0 15px;
|
|
397
266
|
}
|
|
398
|
-
revo-grid[theme=compact] .rowHeaders {
|
|
399
|
-
background-color: #f7faff;
|
|
400
|
-
}
|
|
401
|
-
revo-grid[theme=compact] .rowHeaders revogr-data .rgCell {
|
|
402
|
-
color: #757a82;
|
|
403
|
-
}
|
|
404
|
-
revo-grid[theme=compact] revogr-header .header-rgRow.group {
|
|
405
|
-
box-shadow: 0 -1px 0 0 #f1f1f1 inset;
|
|
406
|
-
}
|
|
407
|
-
revo-grid[theme=compact] revogr-header .header-rgRow:not(.group) {
|
|
408
|
-
box-shadow: 0 -1px 0 0 #f1f1f1, 0 -1px 0 0 #f1f1f1 inset;
|
|
409
|
-
}
|
|
410
|
-
revo-grid[theme=compact] revogr-header .rgHeaderCell.sortable:hover {
|
|
411
|
-
background-color: #f1f1f1;
|
|
412
|
-
}
|
|
413
|
-
revo-grid[theme=compact] revogr-header .rgHeaderCell.focused-cell {
|
|
414
|
-
background: rgba(233, 234, 237, 0.5);
|
|
415
|
-
}
|
|
416
|
-
revo-grid[theme=compact] .footer-wrapper revogr-data {
|
|
417
|
-
box-shadow: 0 -1px 0 #f1f1f1;
|
|
418
|
-
}
|
|
419
|
-
revo-grid[theme=compact] revogr-viewport-scroll.colPinStart {
|
|
420
|
-
box-shadow: -1px 0 0 #f1f1f1 inset;
|
|
421
|
-
}
|
|
422
|
-
revo-grid[theme=compact] revogr-viewport-scroll.colPinEnd {
|
|
423
|
-
box-shadow: -1px 0 0 #f1f1f1;
|
|
424
|
-
}
|
|
425
|
-
revo-grid[theme=compact] revogr-data .rgRow {
|
|
426
|
-
box-shadow: 0 -1px 0 0 #f1f1f1 inset;
|
|
427
|
-
}
|
|
428
|
-
revo-grid[theme=compact] revogr-data .rgRow.focused-rgRow {
|
|
429
|
-
background-color: rgba(233, 234, 237, 0.5);
|
|
430
|
-
}
|
|
431
|
-
revo-grid[theme=compact] revogr-data .rgCell {
|
|
432
|
-
color: rgba(0, 0, 0, 0.87);
|
|
433
|
-
}
|
|
434
|
-
revo-grid[theme=compact] revogr-data .rgCell.disabled {
|
|
435
|
-
background-color: #f7f7f7;
|
|
436
|
-
}
|
|
437
267
|
revo-grid[theme=compact] revo-dropdown .rv-dr-root {
|
|
438
268
|
padding: 0px 9px;
|
|
439
269
|
}
|
|
440
270
|
|
|
441
271
|
revo-grid {
|
|
272
|
+
/* Base theme variables */
|
|
273
|
+
--revo-grid-primary: #266ae8;
|
|
274
|
+
--revo-grid-primary-transparent: rgba(38, 106, 232, 0.9);
|
|
275
|
+
--revo-grid-background: #fff;
|
|
276
|
+
--revo-grid-foreground: black;
|
|
277
|
+
--revo-grid-divider: gray;
|
|
278
|
+
--revo-grid-shadow: rgba(0, 0, 0, 0.15);
|
|
279
|
+
--revo-grid-text: black;
|
|
280
|
+
--revo-grid-border: rgba(0, 0, 0, 0.2);
|
|
281
|
+
/* Filter panel variables */
|
|
282
|
+
--revo-grid-filter-panel-bg: #fff;
|
|
283
|
+
--revo-grid-filter-panel-border: #d9d9d9;
|
|
284
|
+
--revo-grid-filter-panel-shadow: rgba(0, 0, 0, 0.15);
|
|
285
|
+
--revo-grid-filter-panel-input-bg: #eaeaeb;
|
|
286
|
+
--revo-grid-filter-panel-divider: #d9d9d9;
|
|
287
|
+
--revo-grid-filter-panel-select-border: transparent;
|
|
288
|
+
--revo-grid-filter-panel-select-border-hover: transparent;
|
|
289
|
+
/* Grid specific variables */
|
|
290
|
+
--revo-grid-header-bg: #f8f9fa;
|
|
291
|
+
--revo-grid-header-color: #000;
|
|
292
|
+
--revo-grid-header-border: #cecece;
|
|
293
|
+
--revo-grid-cell-border: #e2e3e3;
|
|
294
|
+
--revo-grid-focused-bg: rgba(233, 234, 237, 0.5);
|
|
295
|
+
--revo-grid-row-hover: #f1f1f1;
|
|
296
|
+
--revo-grid-row-headers-bg: #f7faff;
|
|
297
|
+
--revo-grid-row-headers-color: #757a82;
|
|
298
|
+
--revo-grid-cell-disabled-bg: rgba(0, 0, 0, 0.07);
|
|
299
|
+
/* Dark theme overrides - applied when theme contains 'dark' */
|
|
442
300
|
/*
|
|
443
301
|
* Grid required to have a flex property to be able to stretch
|
|
444
302
|
*/
|
|
@@ -464,6 +322,60 @@ revo-grid {
|
|
|
464
322
|
width: 100%;
|
|
465
323
|
height: 100%;
|
|
466
324
|
}
|
|
325
|
+
revo-grid[theme*=dark] {
|
|
326
|
+
--revo-grid-background: #212529;
|
|
327
|
+
--revo-grid-foreground: #fff;
|
|
328
|
+
--revo-grid-text: rgba(255, 255, 255, 0.9);
|
|
329
|
+
--revo-grid-divider: #505050;
|
|
330
|
+
--revo-grid-border: rgba(255, 255, 255, 0.2);
|
|
331
|
+
/* Filter panel variables */
|
|
332
|
+
--revo-grid-filter-panel-bg: #212529;
|
|
333
|
+
--revo-grid-filter-panel-border: #505050;
|
|
334
|
+
--revo-grid-filter-panel-input-bg: #343a40;
|
|
335
|
+
--revo-grid-filter-panel-divider: #505050;
|
|
336
|
+
--revo-grid-header-bg: #343a40;
|
|
337
|
+
--revo-grid-header-color: #fff;
|
|
338
|
+
--revo-grid-header-border: #505050;
|
|
339
|
+
--revo-grid-cell-border: #424242;
|
|
340
|
+
--revo-grid-focused-bg: rgba(52, 58, 64, 0.5);
|
|
341
|
+
--revo-grid-row-hover: rgba(80, 80, 80, 0.5);
|
|
342
|
+
--revo-grid-row-headers-bg: rgba(52, 58, 64, 0.8);
|
|
343
|
+
--revo-grid-row-headers-color: rgba(255, 255, 255, 0.8);
|
|
344
|
+
--revo-grid-cell-disabled-bg: rgba(255, 255, 255, 0.07);
|
|
345
|
+
}
|
|
346
|
+
revo-grid revogr-header .header-rgRow.group {
|
|
347
|
+
box-shadow: 0 -1px 0 0 var(--revo-grid-header-border) inset;
|
|
348
|
+
}
|
|
349
|
+
revo-grid revogr-header .header-rgRow:not(.group) {
|
|
350
|
+
box-shadow: 0 -1px 0 0 var(--revo-grid-header-border), 0 -1px 0 0 var(--revo-grid-header-border) inset;
|
|
351
|
+
}
|
|
352
|
+
revo-grid revogr-header .rgHeaderCell.sortable:hover {
|
|
353
|
+
background-color: var(--revo-grid-row-hover);
|
|
354
|
+
}
|
|
355
|
+
revo-grid revogr-header .rgHeaderCell.focused-cell {
|
|
356
|
+
background: var(--revo-grid-focused-bg);
|
|
357
|
+
}
|
|
358
|
+
revo-grid .footer-wrapper revogr-data {
|
|
359
|
+
box-shadow: 0 -1px 0 var(--revo-grid-cell-border);
|
|
360
|
+
}
|
|
361
|
+
revo-grid revogr-viewport-scroll.colPinStart {
|
|
362
|
+
box-shadow: -1px 0 0 var(--revo-grid-cell-border) inset;
|
|
363
|
+
}
|
|
364
|
+
revo-grid revogr-viewport-scroll.colPinEnd {
|
|
365
|
+
box-shadow: -1px 0 0 var(--revo-grid-cell-border);
|
|
366
|
+
}
|
|
367
|
+
revo-grid revogr-data .rgRow {
|
|
368
|
+
box-shadow: 0 -1px 0 0 var(--revo-grid-cell-border) inset;
|
|
369
|
+
}
|
|
370
|
+
revo-grid revogr-data .rgRow.focused-rgRow {
|
|
371
|
+
background-color: var(--revo-grid-focused-bg);
|
|
372
|
+
}
|
|
373
|
+
revo-grid revogr-data .rgCell {
|
|
374
|
+
color: var(--revo-grid-text);
|
|
375
|
+
}
|
|
376
|
+
revo-grid revogr-data .rgCell.disabled {
|
|
377
|
+
background-color: var(--revo-grid-cell-disabled-bg);
|
|
378
|
+
}
|
|
467
379
|
revo-grid .attribution {
|
|
468
380
|
position: absolute;
|
|
469
381
|
bottom: 0;
|
|
@@ -472,8 +384,8 @@ revo-grid .attribution {
|
|
|
472
384
|
z-index: 1000;
|
|
473
385
|
width: 0;
|
|
474
386
|
height: 0;
|
|
475
|
-
border-left: 4px solid
|
|
476
|
-
border-bottom: 4px solid
|
|
387
|
+
border-left: 4px solid var(--revo-grid-primary-transparent);
|
|
388
|
+
border-bottom: 4px solid var(--revo-grid-primary-transparent);
|
|
477
389
|
border-top: 4px solid transparent;
|
|
478
390
|
border-right: 4px solid transparent;
|
|
479
391
|
cursor: pointer;
|
|
@@ -482,13 +394,13 @@ revo-grid .attribution .value {
|
|
|
482
394
|
position: absolute;
|
|
483
395
|
bottom: 0;
|
|
484
396
|
left: 0;
|
|
485
|
-
background-color:
|
|
397
|
+
background-color: var(--revo-grid-background);
|
|
486
398
|
padding: 4px;
|
|
487
399
|
border-radius: 4px;
|
|
488
|
-
box-shadow: 0 1px 10px
|
|
400
|
+
box-shadow: 0 1px 10px var(--revo-grid-border);
|
|
489
401
|
white-space: nowrap;
|
|
490
402
|
text-decoration: none;
|
|
491
|
-
color:
|
|
403
|
+
color: var(--revo-grid-text);
|
|
492
404
|
letter-spacing: 0.3px;
|
|
493
405
|
font-size: 11px;
|
|
494
406
|
opacity: 0;
|
|
@@ -538,13 +450,13 @@ revo-grid .draggable {
|
|
|
538
450
|
position: fixed;
|
|
539
451
|
height: 30px;
|
|
540
452
|
line-height: 30px;
|
|
541
|
-
background:
|
|
453
|
+
background: var(--revo-grid-background);
|
|
542
454
|
border-radius: 3px;
|
|
543
455
|
display: block;
|
|
544
456
|
z-index: 100;
|
|
545
457
|
margin-top: 5px;
|
|
546
458
|
margin-right: -20px;
|
|
547
|
-
box-shadow: 0 4px 20px 0
|
|
459
|
+
box-shadow: 0 4px 20px 0 var(--revo-grid-shadow);
|
|
548
460
|
padding-left: 20px;
|
|
549
461
|
padding-right: 5px;
|
|
550
462
|
}
|
|
@@ -552,7 +464,7 @@ revo-grid .draggable.hidden {
|
|
|
552
464
|
display: none;
|
|
553
465
|
}
|
|
554
466
|
revo-grid .draggable .revo-alt-icon {
|
|
555
|
-
background-color:
|
|
467
|
+
background-color: var(--revo-grid-foreground);
|
|
556
468
|
position: absolute;
|
|
557
469
|
left: 5px;
|
|
558
470
|
top: 10px;
|
|
@@ -566,7 +478,7 @@ revo-grid .drag-position {
|
|
|
566
478
|
right: 0;
|
|
567
479
|
height: 1px;
|
|
568
480
|
z-index: 2;
|
|
569
|
-
background:
|
|
481
|
+
background: var(--revo-grid-divider);
|
|
570
482
|
pointer-events: none;
|
|
571
483
|
}
|
|
572
484
|
revo-grid .drag-position-y {
|
|
@@ -576,7 +488,7 @@ revo-grid .drag-position-y {
|
|
|
576
488
|
bottom: 0;
|
|
577
489
|
width: 1px;
|
|
578
490
|
z-index: 2;
|
|
579
|
-
background:
|
|
491
|
+
background: var(--revo-grid-divider);
|
|
580
492
|
pointer-events: none;
|
|
581
493
|
}
|
|
582
494
|
revo-grid .drag-auto-scroll-y {
|