@revolist/revogrid 3.2.0 → 3.2.4
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/revo-grid/_baseIteratee-af30b221.js +2070 -0
- package/dist/{collection/global/global.js → revo-grid/app-globals-7e6866ba.js} +11 -2
- package/dist/{collection/components/data/columnService.js → revo-grid/columnService-91e552ba.js} +11 -6
- package/dist/revo-grid/consts-ef824e6f.js +46 -0
- package/dist/revo-grid/css-shim-5387c708.js +7 -0
- package/dist/revo-grid/data.store-3263fff9.js +557 -0
- package/dist/revo-grid/debounce-aaa4b4da.js +217 -0
- package/dist/revo-grid/dimension.helpers-a7944fc4.js +340 -0
- package/dist/{collection/plugins/dispatcher.js → revo-grid/dispatcher-891af82e.js} +7 -2
- package/dist/{cjs/dom-c8b6d1a7.js → revo-grid/dom-21bd1807.js} +4 -3
- package/dist/revo-grid/each-0378e5a3.js +180 -0
- package/dist/{collection/plugins/filter/filter.button.js → revo-grid/filter.button-74c1cd9c.js} +16 -10
- package/dist/revo-grid/identity-c8c7d3d8.js +26 -0
- package/dist/revo-grid/index-8a604c17.js +3067 -0
- package/dist/revo-grid/index.esm.js +3 -0
- package/dist/revo-grid/isString-a51066b5.js +34 -0
- package/dist/revo-grid/isSymbol-e4b5dafe.js +247 -0
- package/dist/revo-grid/keyCodes.utils-bd06e3ba.js +299 -0
- package/dist/revo-grid/keys-70b7c240.js +561 -0
- package/dist/{collection/services/localScrollService.js → revo-grid/localScrollService-e9b73323.js} +8 -2
- package/dist/{esm/revo-grid_11.entry.js → revo-grid/lodash-a0ab4cdd.js} +13773 -24835
- package/dist/{cjs/resize-observer-8dc80084.js → revo-grid/resize-observer-00c48d78.js} +25 -14
- package/dist/revo-grid/revo-grid.entry.js +3484 -0
- package/dist/revo-grid/revo-grid.esm.js +133 -1
- package/dist/revo-grid/revogr-clipboard.entry.js +52 -1
- package/dist/revo-grid/revogr-data.entry.js +152 -0
- package/dist/revo-grid/revogr-edit.entry.js +105 -0
- package/dist/revo-grid/revogr-filter-panel.entry.js +277 -1
- package/dist/revo-grid/revogr-focus.entry.js +41 -0
- package/dist/revo-grid/revogr-header.entry.js +560 -0
- package/dist/revo-grid/revogr-order-editor.entry.js +175 -0
- package/dist/revo-grid/revogr-overlay-selection.entry.js +711 -0
- package/dist/revo-grid/revogr-row-headers.entry.js +73 -0
- package/dist/revo-grid/revogr-scroll-virtual.entry.js +114 -0
- package/dist/revo-grid/revogr-temp-range.entry.js +73 -0
- package/dist/revo-grid/revogr-viewport-scroll.entry.js +340 -0
- package/dist/revo-grid/selection.store.connector-2b613fd0.js +503 -0
- package/dist/{collection/components/overlay/selection.utils.js → revo-grid/selection.utils-a9932db6.js} +15 -9
- package/dist/revo-grid/shadow-css-602a09db.js +390 -0
- package/dist/{collection/themeManager/themeService.js → revo-grid/themeService-ddaaa364.js} +26 -6
- package/dist/revo-grid/toInteger-9e6cbfd2.js +107 -0
- package/dist/revo-grid/toNumber-913b0b72.js +105 -0
- package/dist/{collection/utils/utils.js → revo-grid/utils-2c3b3857.js} +13 -8
- package/dist/revo-grid/viewport.helpers-49d3f031.js +16 -0
- package/dist/{collection/store/viewPort/viewport.helpers.js → revo-grid/viewport.store-ffaaab6d.js} +135 -9
- package/dist/types/components.d.ts +100 -56
- package/dist/types/stencil-public-runtime.d.ts +189 -186
- package/package.json +22 -20
- package/custom-element/index.js +0 -29210
- package/custom-element/resize-observer.js +0 -489
- package/dist/cjs/css-shim-e33df79c.js +0 -6
- package/dist/cjs/debounce-e9b040d9.js +0 -575
- package/dist/cjs/index-d3f67f2e.js +0 -1729
- package/dist/cjs/index.cjs.js +0 -2
- package/dist/cjs/loader.cjs.js +0 -35
- package/dist/cjs/revo-grid.cjs.js +0 -73
- package/dist/cjs/revo-grid_11.cjs.entry.js +0 -28294
- package/dist/cjs/revogr-clipboard.cjs.entry.js +0 -53
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +0 -275
- package/dist/collection/collection-manifest.json +0 -25
- package/dist/collection/components/button/button.js +0 -4
- package/dist/collection/components/clipboard/revogr-clipboard.js +0 -121
- package/dist/collection/components/data/cellRenderer.js +0 -24
- package/dist/collection/components/data/revogr-data-style.css +0 -135
- package/dist/collection/components/data/revogr-data.js +0 -322
- package/dist/collection/components/data/rowRenderer.js +0 -6
- package/dist/collection/components/header/headerCellRenderer.js +0 -26
- package/dist/collection/components/header/headerRenderer.js +0 -45
- package/dist/collection/components/header/revogr-header-style.css +0 -198
- package/dist/collection/components/header/revogr-header.js +0 -297
- package/dist/collection/components/order/orderRenderer.js +0 -50
- package/dist/collection/components/order/revogr-order-editor.js +0 -358
- package/dist/collection/components/order/rowOrderService.js +0 -68
- package/dist/collection/components/overlay/autofill.service.js +0 -182
- package/dist/collection/components/overlay/clipboard.service.js +0 -39
- package/dist/collection/components/overlay/editors/edit.utils.js +0 -5
- package/dist/collection/components/overlay/editors/text.js +0 -35
- package/dist/collection/components/overlay/keyboard.service.js +0 -128
- package/dist/collection/components/overlay/revogr-edit-style.css +0 -86
- package/dist/collection/components/overlay/revogr-edit.js +0 -159
- package/dist/collection/components/overlay/revogr-overlay-selection.js +0 -726
- package/dist/collection/components/overlay/revogr-overlay-style.css +0 -98
- package/dist/collection/components/revo-grid/revo-grid-style.css +0 -544
- package/dist/collection/components/revo-grid/revo-grid.js +0 -2224
- package/dist/collection/components/revo-grid/viewport.helpers.js +0 -11
- package/dist/collection/components/revo-grid/viewport.interfaces.js +0 -1
- package/dist/collection/components/revo-grid/viewport.js +0 -18
- package/dist/collection/components/revo-grid/viewport.resize.service.js +0 -21
- package/dist/collection/components/revo-grid/viewport.scrolling.service.js +0 -60
- package/dist/collection/components/revo-grid/viewport.section.js +0 -28
- package/dist/collection/components/revo-grid/viewport.service.js +0 -209
- package/dist/collection/components/rowHeaders/revogr-row-headers.js +0 -210
- package/dist/collection/components/rowHeaders/row-header-render.js +0 -1
- package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +0 -137
- package/dist/collection/components/scroll/revogr-viewport-scroll.js +0 -399
- package/dist/collection/components/scrollable/revogr-scroll-style.css +0 -104
- package/dist/collection/components/scrollable/revogr-scroll-virtual.js +0 -253
- package/dist/collection/components/selection-focus/revogr-focus-style.css +0 -77
- package/dist/collection/components/selection-focus/revogr-focus.js +0 -103
- package/dist/collection/components/selection-temp-range/revogr-temp-range-style.css +0 -98
- package/dist/collection/components/selection-temp-range/revogr-temp-range.js +0 -138
- package/dist/collection/index.js +0 -1
- package/dist/collection/plugins/autoSizeColumn.js +0 -230
- package/dist/collection/plugins/basePlugin.js +0 -27
- package/dist/collection/plugins/export/csv.js +0 -68
- package/dist/collection/plugins/export/export.plugin.js +0 -165
- package/dist/collection/plugins/export/types.js +0 -1
- package/dist/collection/plugins/filter/conditions/equal.js +0 -17
- package/dist/collection/plugins/filter/conditions/number/greaterThan.js +0 -10
- package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js +0 -7
- package/dist/collection/plugins/filter/conditions/number/lessThan.js +0 -12
- package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js +0 -7
- package/dist/collection/plugins/filter/conditions/set.js +0 -3
- package/dist/collection/plugins/filter/conditions/string/beginswith.js +0 -17
- package/dist/collection/plugins/filter/conditions/string/contains.js +0 -18
- package/dist/collection/plugins/filter/filter.plugin.js +0 -256
- package/dist/collection/plugins/filter/filter.pop.js +0 -485
- package/dist/collection/plugins/filter/filter.service.js +0 -44
- package/dist/collection/plugins/filter/filter.style.css +0 -239
- package/dist/collection/plugins/filter/filter.types.js +0 -1
- package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +0 -30
- package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js +0 -36
- package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js +0 -21
- package/dist/collection/plugins/groupingRow/grouping.const.js +0 -10
- package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js +0 -76
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +0 -258
- package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +0 -29
- package/dist/collection/plugins/groupingRow/grouping.row.types.js +0 -1
- package/dist/collection/plugins/groupingRow/grouping.service.js +0 -155
- package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +0 -57
- package/dist/collection/plugins/moveColumn/columnDragPlugin.js +0 -145
- package/dist/collection/plugins/moveColumn/columnOrderHandler.js +0 -60
- package/dist/collection/plugins/sorting/sorting.plugin.js +0 -181
- package/dist/collection/plugins/sorting/sorting.sign.js +0 -6
- package/dist/collection/plugins/stretchPlugin.js +0 -68
- package/dist/collection/plugins/trimmed/trimmed.plugin.js +0 -32
- package/dist/collection/services/cell.helpers.js +0 -7
- package/dist/collection/services/column.data.provider.js +0 -188
- package/dist/collection/services/data.provider.js +0 -47
- package/dist/collection/services/dimension.provider.js +0 -78
- package/dist/collection/services/resizable.directive.js +0 -250
- package/dist/collection/services/selection.store.connector.js +0 -213
- package/dist/collection/services/viewport.provider.js +0 -14
- package/dist/collection/store/dataSource/data.proxy.js +0 -34
- package/dist/collection/store/dataSource/data.store.js +0 -127
- package/dist/collection/store/dimension/dimension.helpers.js +0 -107
- package/dist/collection/store/dimension/dimension.store.js +0 -59
- package/dist/collection/store/selection/selection.helpers.js +0 -53
- package/dist/collection/store/selection/selection.store.js +0 -68
- package/dist/collection/store/selection/selection.store.service.js +0 -35
- package/dist/collection/store/storeTypes.js +0 -5
- package/dist/collection/store/viewPort/viewport.store.js +0 -121
- package/dist/collection/themeManager/theme.compact.js +0 -5
- package/dist/collection/themeManager/theme.default.js +0 -5
- package/dist/collection/themeManager/theme.material.js +0 -5
- package/dist/collection/utils/closestPolifill.js +0 -18
- package/dist/collection/utils/consts.js +0 -19
- package/dist/collection/utils/generateAlphabetHeader.js +0 -20
- package/dist/collection/utils/keyCodes.js +0 -70
- package/dist/collection/utils/keyCodes.utils.js +0 -64
- package/dist/collection/utils/platform.js +0 -5
- package/dist/collection/utils/resizeObserver.js +0 -6
- package/dist/collection/utils/store.utils.js +0 -7
- package/dist/collection/utilsExternal/generate-data.js +0 -132
- package/dist/esm/css-shim-8d75038b.js +0 -4
- package/dist/esm/debounce-45985ae0.js +0 -558
- package/dist/esm/dom-1b195079.js +0 -73
- package/dist/esm/index-42c84e7c.js +0 -1694
- package/dist/esm/index.js +0 -1
- package/dist/esm/loader.js +0 -31
- package/dist/esm/polyfills/core-js.js +0 -11
- package/dist/esm/polyfills/css-shim.js +0 -1
- package/dist/esm/polyfills/dom.js +0 -79
- package/dist/esm/polyfills/es5-html-element.js +0 -1
- package/dist/esm/polyfills/index.js +0 -34
- package/dist/esm/polyfills/system.js +0 -6
- package/dist/esm/resize-observer-56b7b34f.js +0 -489
- package/dist/esm/revo-grid.js +0 -71
- package/dist/esm/revogr-clipboard.entry.js +0 -49
- package/dist/esm/revogr-filter-panel.entry.js +0 -271
- package/dist/esm-es5/css-shim-8d75038b.js +0 -1
- package/dist/esm-es5/debounce-45985ae0.js +0 -1
- package/dist/esm-es5/dom-1b195079.js +0 -21
- package/dist/esm-es5/index-42c84e7c.js +0 -1
- package/dist/esm-es5/index.js +0 -0
- package/dist/esm-es5/loader.js +0 -1
- package/dist/esm-es5/resize-observer-56b7b34f.js +0 -1
- package/dist/esm-es5/revo-grid.js +0 -1
- package/dist/esm-es5/revo-grid_11.entry.js +0 -1
- package/dist/esm-es5/revogr-clipboard.entry.js +0 -1
- package/dist/esm-es5/revogr-filter-panel.entry.js +0 -1
- package/dist/index.cjs.js +0 -1
- package/dist/index.js +0 -1
- package/dist/revo-grid/css-shim-88bfb262.system.js +0 -1
- package/dist/revo-grid/css-shim-8d75038b.js +0 -1
- package/dist/revo-grid/debounce-6c911037.js +0 -1
- package/dist/revo-grid/debounce-a345f98e.system.js +0 -1
- package/dist/revo-grid/dom-1b195079.js +0 -19
- package/dist/revo-grid/dom-ee2dd1b3.system.js +0 -21
- package/dist/revo-grid/index-a15e7527.system.js +0 -1
- package/dist/revo-grid/index-a7f99799.js +0 -1
- package/dist/revo-grid/index.system.js +0 -1
- package/dist/revo-grid/resize-observer-56b7b34f.js +0 -1
- package/dist/revo-grid/resize-observer-7a7b9757.system.js +0 -1
- package/dist/revo-grid/revo-grid.js +0 -132
- package/dist/revo-grid/revo-grid.system.js +0 -1
- package/dist/revo-grid/revo-grid_11.entry.js +0 -1
- package/dist/revo-grid/revo-grid_11.system.entry.js +0 -1
- package/dist/revo-grid/revogr-clipboard.system.entry.js +0 -1
- package/dist/revo-grid/revogr-filter-panel.system.entry.js +0 -1
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { getRange } from './selection.helpers';
|
|
2
|
-
export default class SelectionStoreService {
|
|
3
|
-
constructor(store, config) {
|
|
4
|
-
this.store = store;
|
|
5
|
-
this.config = config;
|
|
6
|
-
this.store = store;
|
|
7
|
-
}
|
|
8
|
-
get edited() {
|
|
9
|
-
return this.store.get('edit');
|
|
10
|
-
}
|
|
11
|
-
get focused() {
|
|
12
|
-
return this.store.get('focus');
|
|
13
|
-
}
|
|
14
|
-
get ranged() {
|
|
15
|
-
return this.store.get('range');
|
|
16
|
-
}
|
|
17
|
-
changeRange(range) {
|
|
18
|
-
return this.config.changeRange(range);
|
|
19
|
-
}
|
|
20
|
-
focus(cell, isMulti = false) {
|
|
21
|
-
if (!cell) {
|
|
22
|
-
return false;
|
|
23
|
-
}
|
|
24
|
-
let end = cell;
|
|
25
|
-
// range edit
|
|
26
|
-
if (isMulti) {
|
|
27
|
-
let start = this.store.get('focus');
|
|
28
|
-
if (start) {
|
|
29
|
-
return this.config.changeRange(getRange(start, end));
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
// single focus
|
|
33
|
-
return this.config.focus(cell, end);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Store is responsible for visible
|
|
3
|
-
* Viewport information for each dimension
|
|
4
|
-
* Redraw items during scrolling
|
|
5
|
-
*/
|
|
6
|
-
import { createStore } from '@stencil/store';
|
|
7
|
-
import { addMissingItems, getFirstItem, getLastItem, getUpdatedItemsByPosition, isActiveRange, updateMissingAndRange } from './viewport.helpers';
|
|
8
|
-
import { setStore } from '../../utils/store.utils';
|
|
9
|
-
function initialState() {
|
|
10
|
-
return {
|
|
11
|
-
// virtual item information per rendered item
|
|
12
|
-
items: [],
|
|
13
|
-
// virtual dom item order to render
|
|
14
|
-
start: 0,
|
|
15
|
-
end: 0,
|
|
16
|
-
// size of viewport in px
|
|
17
|
-
virtualSize: 0,
|
|
18
|
-
// total number of items
|
|
19
|
-
realCount: 0,
|
|
20
|
-
// last coordinate for store position restore
|
|
21
|
-
lastCoordinate: 0,
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
export default class ViewportStore {
|
|
25
|
-
constructor() {
|
|
26
|
-
this.store = createStore(initialState());
|
|
27
|
-
this.store.onChange('realCount', () => this.clear());
|
|
28
|
-
}
|
|
29
|
-
/** Render viewport based on coordinate, this is main method for draw */
|
|
30
|
-
setViewPortCoordinate(position, dimension) {
|
|
31
|
-
let virtualSize = this.store.get('virtualSize');
|
|
32
|
-
// no visible data to calculate
|
|
33
|
-
if (!virtualSize) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
const frameOffset = dimension.frameOffset;
|
|
37
|
-
const outsize = frameOffset * 2 * dimension.originItemSize;
|
|
38
|
-
virtualSize += outsize;
|
|
39
|
-
let maxCoordinate = virtualSize;
|
|
40
|
-
if (dimension.realSize > virtualSize) {
|
|
41
|
-
maxCoordinate = dimension.realSize - virtualSize;
|
|
42
|
-
}
|
|
43
|
-
let toUpdate = {
|
|
44
|
-
lastCoordinate: position,
|
|
45
|
-
};
|
|
46
|
-
let pos = position;
|
|
47
|
-
pos -= frameOffset * dimension.originItemSize;
|
|
48
|
-
pos = pos < 0 ? 0 : pos < maxCoordinate ? pos : maxCoordinate;
|
|
49
|
-
const firstItem = getFirstItem(this.getItems());
|
|
50
|
-
const lastItem = getLastItem(this.getItems());
|
|
51
|
-
// left position changed
|
|
52
|
-
if (!isActiveRange(pos, firstItem)) {
|
|
53
|
-
toUpdate = Object.assign(Object.assign({}, toUpdate), getUpdatedItemsByPosition(pos, this.getItems(), this.store.get('realCount'), virtualSize, dimension));
|
|
54
|
-
setStore(this.store, Object.assign({}, toUpdate));
|
|
55
|
-
// right position changed
|
|
56
|
-
}
|
|
57
|
-
else if (firstItem && this.store.get('virtualSize') + pos > (lastItem === null || lastItem === void 0 ? void 0 : lastItem.end)) {
|
|
58
|
-
// check is any item missing for full fill content
|
|
59
|
-
const missing = addMissingItems(firstItem, this.store.get('realCount'), virtualSize + pos - firstItem.start, this.getItems(), dimension);
|
|
60
|
-
if (missing.length) {
|
|
61
|
-
const items = [...this.store.get('items')];
|
|
62
|
-
const range = {
|
|
63
|
-
start: this.store.get('start'),
|
|
64
|
-
end: this.store.get('end'),
|
|
65
|
-
};
|
|
66
|
-
updateMissingAndRange(items, missing, range);
|
|
67
|
-
toUpdate = Object.assign(Object.assign(Object.assign({}, toUpdate), { items: [...items] }), range);
|
|
68
|
-
setStore(this.store, Object.assign({}, toUpdate));
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
/** Update viewport sizes */
|
|
73
|
-
setViewPortDimension(sizes) {
|
|
74
|
-
const items = this.store.get('items');
|
|
75
|
-
const count = items.length;
|
|
76
|
-
// viewport not inited
|
|
77
|
-
if (!count) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
let changedCoordinate = 0;
|
|
81
|
-
let i = 0;
|
|
82
|
-
let start = this.store.get('start');
|
|
83
|
-
// loop through array from initial item after recombination
|
|
84
|
-
while (i < count) {
|
|
85
|
-
const item = items[start];
|
|
86
|
-
// change pos if size change present before
|
|
87
|
-
if (changedCoordinate) {
|
|
88
|
-
item.start += changedCoordinate;
|
|
89
|
-
item.end += changedCoordinate;
|
|
90
|
-
}
|
|
91
|
-
// change size
|
|
92
|
-
const size = sizes[item.itemIndex];
|
|
93
|
-
if (size) {
|
|
94
|
-
const changedSize = size - item.size;
|
|
95
|
-
changedCoordinate += changedSize;
|
|
96
|
-
item.size = size;
|
|
97
|
-
item.end = item.start + size;
|
|
98
|
-
}
|
|
99
|
-
// loop by start index
|
|
100
|
-
start++;
|
|
101
|
-
i++;
|
|
102
|
-
if (start === count) {
|
|
103
|
-
start = 0;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
setStore(this.store, { items: [...items] });
|
|
107
|
-
}
|
|
108
|
-
getItems() {
|
|
109
|
-
return {
|
|
110
|
-
items: this.store.get('items'),
|
|
111
|
-
start: this.store.get('start'),
|
|
112
|
-
end: this.store.get('end'),
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
setViewport(data) {
|
|
116
|
-
setStore(this.store, data);
|
|
117
|
-
}
|
|
118
|
-
clear() {
|
|
119
|
-
this.store.set('items', []);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
(function closest() {
|
|
2
|
-
if (!Element.prototype.matches) {
|
|
3
|
-
Element.prototype.matches =
|
|
4
|
-
Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
|
|
5
|
-
}
|
|
6
|
-
if (!Element.prototype.closest) {
|
|
7
|
-
Element.prototype.closest = function (s) {
|
|
8
|
-
let el = this;
|
|
9
|
-
do {
|
|
10
|
-
if (Element.prototype.matches.call(el, s)) {
|
|
11
|
-
return el;
|
|
12
|
-
}
|
|
13
|
-
el = el.parentElement || el.parentNode;
|
|
14
|
-
} while (el !== null && el.nodeType === 1);
|
|
15
|
-
return null;
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
})();
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export const MIN_COL_SIZE = 30;
|
|
2
|
-
export const DATA_COL = 'data-rgCol';
|
|
3
|
-
export const DATA_ROW = 'data-rgRow';
|
|
4
|
-
export const UUID = 'grid-uuid';
|
|
5
|
-
export const DISABLED_CLASS = 'disabled';
|
|
6
|
-
export const CELL_CLASS = 'rgCell';
|
|
7
|
-
export const HEADER_CLASS = 'rgHeaderCell';
|
|
8
|
-
export const HEADER_SORTABLE_CLASS = 'sortable';
|
|
9
|
-
export const HEADER_ROW_CLASS = 'header-rgRow';
|
|
10
|
-
export const HEADER_ACTUAL_ROW_CLASS = 'actual-rgRow';
|
|
11
|
-
export const DRAG_ICON_CLASS = 'revo-drag-icon';
|
|
12
|
-
export const DRAGGABLE_CLASS = 'revo-draggable';
|
|
13
|
-
export const FOCUS_CLASS = 'focused-cell';
|
|
14
|
-
export const SELECTION_BORDER_CLASS = 'selection-border-range';
|
|
15
|
-
export const TMP_SELECTION_BG_CLASS = 'temp-bg-range';
|
|
16
|
-
export const CELL_HANDLER_CLASS = 'autofill-handle';
|
|
17
|
-
export const EDIT_INPUT_WR = 'edit-input-wrapper';
|
|
18
|
-
export const DRAGG_TEXT = 'Draggable item';
|
|
19
|
-
export const GRID_INTERNALS = '__rvgr';
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export function generateHeader(index) {
|
|
2
|
-
const asciiFirstLetter = 65;
|
|
3
|
-
const lettersCount = 26;
|
|
4
|
-
let div = index + 1;
|
|
5
|
-
let label = '';
|
|
6
|
-
let pos;
|
|
7
|
-
while (div > 0) {
|
|
8
|
-
pos = (div - 1) % lettersCount;
|
|
9
|
-
label = String.fromCharCode(asciiFirstLetter + pos) + label;
|
|
10
|
-
div = parseInt(((div - pos) / lettersCount).toString(), 10);
|
|
11
|
-
}
|
|
12
|
-
return label;
|
|
13
|
-
}
|
|
14
|
-
export function generateHeaderByCount(colsNumber) {
|
|
15
|
-
const rowData = [];
|
|
16
|
-
for (let j = 0; j < colsNumber; j++) {
|
|
17
|
-
rowData.push(generateHeader(j));
|
|
18
|
-
}
|
|
19
|
-
return rowData;
|
|
20
|
-
}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
var codes;
|
|
2
|
-
(function (codes) {
|
|
3
|
-
codes[codes["MOUSE_LEFT"] = 1] = "MOUSE_LEFT";
|
|
4
|
-
codes[codes["MOUSE_RIGHT"] = 3] = "MOUSE_RIGHT";
|
|
5
|
-
codes[codes["MOUSE_MIDDLE"] = 2] = "MOUSE_MIDDLE";
|
|
6
|
-
codes[codes["BACKSPACE"] = 8] = "BACKSPACE";
|
|
7
|
-
codes[codes["COMMA"] = 188] = "COMMA";
|
|
8
|
-
codes[codes["INSERT"] = 45] = "INSERT";
|
|
9
|
-
codes[codes["DELETE"] = 46] = "DELETE";
|
|
10
|
-
codes[codes["END"] = 35] = "END";
|
|
11
|
-
codes[codes["ENTER"] = 13] = "ENTER";
|
|
12
|
-
codes[codes["ESCAPE"] = 27] = "ESCAPE";
|
|
13
|
-
codes[codes["CONTROL"] = 17] = "CONTROL";
|
|
14
|
-
codes[codes["COMMAND_LEFT"] = 91] = "COMMAND_LEFT";
|
|
15
|
-
codes[codes["COMMAND_RIGHT"] = 93] = "COMMAND_RIGHT";
|
|
16
|
-
codes[codes["COMMAND_FIREFOX"] = 224] = "COMMAND_FIREFOX";
|
|
17
|
-
codes[codes["ALT"] = 18] = "ALT";
|
|
18
|
-
codes[codes["HOME"] = 36] = "HOME";
|
|
19
|
-
codes[codes["PAGE_DOWN"] = 34] = "PAGE_DOWN";
|
|
20
|
-
codes[codes["PAGE_UP"] = 33] = "PAGE_UP";
|
|
21
|
-
codes[codes["PERIOD"] = 190] = "PERIOD";
|
|
22
|
-
codes[codes["SPACE"] = 32] = "SPACE";
|
|
23
|
-
codes[codes["SHIFT"] = 16] = "SHIFT";
|
|
24
|
-
codes[codes["CAPS_LOCK"] = 20] = "CAPS_LOCK";
|
|
25
|
-
codes[codes["TAB"] = 9] = "TAB";
|
|
26
|
-
codes[codes["ARROW_RIGHT"] = 39] = "ARROW_RIGHT";
|
|
27
|
-
codes[codes["ARROW_LEFT"] = 37] = "ARROW_LEFT";
|
|
28
|
-
codes[codes["ARROW_UP"] = 38] = "ARROW_UP";
|
|
29
|
-
codes[codes["ARROW_DOWN"] = 40] = "ARROW_DOWN";
|
|
30
|
-
codes[codes["F1"] = 112] = "F1";
|
|
31
|
-
codes[codes["F2"] = 113] = "F2";
|
|
32
|
-
codes[codes["F3"] = 114] = "F3";
|
|
33
|
-
codes[codes["F4"] = 115] = "F4";
|
|
34
|
-
codes[codes["F5"] = 116] = "F5";
|
|
35
|
-
codes[codes["F6"] = 117] = "F6";
|
|
36
|
-
codes[codes["F7"] = 118] = "F7";
|
|
37
|
-
codes[codes["F8"] = 119] = "F8";
|
|
38
|
-
codes[codes["F9"] = 120] = "F9";
|
|
39
|
-
codes[codes["F10"] = 121] = "F10";
|
|
40
|
-
codes[codes["F11"] = 122] = "F11";
|
|
41
|
-
codes[codes["F12"] = 123] = "F12";
|
|
42
|
-
codes[codes["A"] = 65] = "A";
|
|
43
|
-
codes[codes["C"] = 67] = "C";
|
|
44
|
-
codes[codes["D"] = 68] = "D";
|
|
45
|
-
codes[codes["F"] = 70] = "F";
|
|
46
|
-
codes[codes["L"] = 76] = "L";
|
|
47
|
-
codes[codes["O"] = 79] = "O";
|
|
48
|
-
codes[codes["P"] = 80] = "P";
|
|
49
|
-
codes[codes["S"] = 83] = "S";
|
|
50
|
-
codes[codes["V"] = 86] = "V";
|
|
51
|
-
codes[codes["X"] = 88] = "X";
|
|
52
|
-
})(codes || (codes = {}));
|
|
53
|
-
var codesLetter;
|
|
54
|
-
(function (codesLetter) {
|
|
55
|
-
codesLetter["ENTER"] = "Enter";
|
|
56
|
-
codesLetter["ENTER_NUM"] = "NumpadEnter";
|
|
57
|
-
codesLetter["V"] = "KeyV";
|
|
58
|
-
codesLetter["C"] = "KeyC";
|
|
59
|
-
codesLetter["ESCAPE"] = "Escape";
|
|
60
|
-
codesLetter["TAB"] = "Tab";
|
|
61
|
-
codesLetter["BACKSPACE"] = "Backspace";
|
|
62
|
-
codesLetter["DELETE"] = "Delete";
|
|
63
|
-
codesLetter["ARROW_RIGHT"] = "ArrowRight";
|
|
64
|
-
codesLetter["ARROW_LEFT"] = "ArrowLeft";
|
|
65
|
-
codesLetter["ARROW_UP"] = "ArrowUp";
|
|
66
|
-
codesLetter["ARROW_DOWN"] = "ArrowDown";
|
|
67
|
-
codesLetter["SHIFT"] = "Shift";
|
|
68
|
-
})(codesLetter || (codesLetter = {}));
|
|
69
|
-
export default codes;
|
|
70
|
-
export { codesLetter };
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import KeyCodesEnum, { codesLetter } from './keyCodes';
|
|
2
|
-
import OsPlatform from './platform';
|
|
3
|
-
import includes from 'lodash/includes';
|
|
4
|
-
export function isLetterKey(code) {
|
|
5
|
-
return (code === 32 || // space
|
|
6
|
-
(code >= 48 && code <= 57) ||
|
|
7
|
-
(code >= 96 && code <= 111) ||
|
|
8
|
-
(code >= 186 && code <= 192) ||
|
|
9
|
-
(code >= 219 && code <= 222) ||
|
|
10
|
-
code >= 226 ||
|
|
11
|
-
(code >= 65 && code <= 90)); // a-z
|
|
12
|
-
}
|
|
13
|
-
export function isMetaKey(code) {
|
|
14
|
-
const keys = [
|
|
15
|
-
KeyCodesEnum.ARROW_DOWN,
|
|
16
|
-
KeyCodesEnum.ARROW_UP,
|
|
17
|
-
KeyCodesEnum.ARROW_LEFT,
|
|
18
|
-
KeyCodesEnum.ARROW_RIGHT,
|
|
19
|
-
KeyCodesEnum.HOME,
|
|
20
|
-
KeyCodesEnum.END,
|
|
21
|
-
KeyCodesEnum.DELETE,
|
|
22
|
-
KeyCodesEnum.BACKSPACE,
|
|
23
|
-
KeyCodesEnum.F1,
|
|
24
|
-
KeyCodesEnum.F2,
|
|
25
|
-
KeyCodesEnum.F3,
|
|
26
|
-
KeyCodesEnum.F4,
|
|
27
|
-
KeyCodesEnum.F5,
|
|
28
|
-
KeyCodesEnum.F6,
|
|
29
|
-
KeyCodesEnum.F7,
|
|
30
|
-
KeyCodesEnum.F8,
|
|
31
|
-
KeyCodesEnum.F9,
|
|
32
|
-
KeyCodesEnum.F10,
|
|
33
|
-
KeyCodesEnum.F11,
|
|
34
|
-
KeyCodesEnum.F12,
|
|
35
|
-
KeyCodesEnum.TAB,
|
|
36
|
-
KeyCodesEnum.PAGE_DOWN,
|
|
37
|
-
KeyCodesEnum.PAGE_UP,
|
|
38
|
-
KeyCodesEnum.ENTER,
|
|
39
|
-
KeyCodesEnum.ESCAPE,
|
|
40
|
-
KeyCodesEnum.SHIFT,
|
|
41
|
-
KeyCodesEnum.CAPS_LOCK,
|
|
42
|
-
KeyCodesEnum.ALT,
|
|
43
|
-
];
|
|
44
|
-
return keys.indexOf(code) !== -1;
|
|
45
|
-
}
|
|
46
|
-
// navigator.platform
|
|
47
|
-
export function isCtrlKey(code, platform) {
|
|
48
|
-
if (platform.includes(OsPlatform.mac)) {
|
|
49
|
-
return includes([KeyCodesEnum.COMMAND_LEFT, KeyCodesEnum.COMMAND_RIGHT, KeyCodesEnum.COMMAND_FIREFOX], code);
|
|
50
|
-
}
|
|
51
|
-
return KeyCodesEnum.CONTROL === code;
|
|
52
|
-
}
|
|
53
|
-
export function isCtrlMetaKey(code) {
|
|
54
|
-
return includes([KeyCodesEnum.CONTROL, KeyCodesEnum.COMMAND_LEFT, KeyCodesEnum.COMMAND_RIGHT, KeyCodesEnum.COMMAND_FIREFOX], code);
|
|
55
|
-
}
|
|
56
|
-
export function isClear(code) {
|
|
57
|
-
return codesLetter.BACKSPACE === code || codesLetter.DELETE === code;
|
|
58
|
-
}
|
|
59
|
-
export function isTab(code) {
|
|
60
|
-
return codesLetter.TAB === code;
|
|
61
|
-
}
|
|
62
|
-
export function isEnterKey(code) {
|
|
63
|
-
return code === codesLetter.ENTER || code === codesLetter.ENTER_NUM;
|
|
64
|
-
}
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
function generateHeader(index) {
|
|
2
|
-
const asciiFirstLetter = 65;
|
|
3
|
-
const lettersCount = 26;
|
|
4
|
-
let div = index + 1;
|
|
5
|
-
let label = '';
|
|
6
|
-
let pos;
|
|
7
|
-
while (div > 0) {
|
|
8
|
-
pos = (div - 1) % lettersCount;
|
|
9
|
-
label = String.fromCharCode(asciiFirstLetter + pos) + label;
|
|
10
|
-
div = parseInt(((div - pos) / lettersCount).toString(), 10);
|
|
11
|
-
}
|
|
12
|
-
return label.toLowerCase();
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
function naturalSort(prop,a,b) {
|
|
16
|
-
|
|
17
|
-
return a[prop].localeCompare(b[prop],"en",{numeric:true})
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const DEFAULT_CONFIG = {
|
|
21
|
-
topPinned: [],
|
|
22
|
-
groupedHeader: false,
|
|
23
|
-
bottomPinned: [],
|
|
24
|
-
colPinStart: [],
|
|
25
|
-
colPinEnd: [],
|
|
26
|
-
rowDrag: 0,
|
|
27
|
-
rows: 0,
|
|
28
|
-
cols: 0,
|
|
29
|
-
order: undefined,
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export function generateFakeDataObject(config = {}) {
|
|
33
|
-
const {
|
|
34
|
-
topPinned,
|
|
35
|
-
bottomPinned,
|
|
36
|
-
colPinStart,
|
|
37
|
-
colPinEnd,
|
|
38
|
-
groupedHeader,
|
|
39
|
-
|
|
40
|
-
rowDrag,
|
|
41
|
-
rows,
|
|
42
|
-
cols,
|
|
43
|
-
order,
|
|
44
|
-
} = {
|
|
45
|
-
...DEFAULT_CONFIG,
|
|
46
|
-
...config,
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
const result = [];
|
|
50
|
-
const columns = {};
|
|
51
|
-
const all = cols * rows;
|
|
52
|
-
for (let j = 0; j < all; j++) {
|
|
53
|
-
let rgCol = j % cols;
|
|
54
|
-
let rgRow = (j / cols) | 0;
|
|
55
|
-
if (!result[rgRow]) {
|
|
56
|
-
result[rgRow] = {};
|
|
57
|
-
|
|
58
|
-
if (rgRow % 2) {
|
|
59
|
-
result[rgRow].key = 'a';
|
|
60
|
-
} else {
|
|
61
|
-
result[rgRow].key = 'b';
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
if (!columns[rgCol]) {
|
|
65
|
-
columns[rgCol] = {
|
|
66
|
-
name: generateHeader(rgCol),
|
|
67
|
-
prop: rgCol,
|
|
68
|
-
sortable: true,
|
|
69
|
-
size: 200,
|
|
70
|
-
cellCompare: (rgCol % 2) == 0 ? naturalSort : undefined
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
// apply config
|
|
74
|
-
if (colPinStart.indexOf(j) > -1) {
|
|
75
|
-
columns[rgCol].pin = 'colPinStart';
|
|
76
|
-
}
|
|
77
|
-
// apply config
|
|
78
|
-
if (colPinEnd.indexOf(j) > -1) {
|
|
79
|
-
columns[rgCol].pin = 'colPinEnd';
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
result[rgRow][rgCol] = `${rgRow}:${rgCol}`; // rgRow % 5 ? rgCol : rgRow % 3 ? (rgCol % 3 ? 2 : 3) : rgRow; // rgRow + ':' + rgCol;
|
|
83
|
-
|
|
84
|
-
if (rgCol === 1) {
|
|
85
|
-
result[rgRow][rgCol] = 'A';
|
|
86
|
-
}
|
|
87
|
-
// apply config
|
|
88
|
-
if (rgCol === rowDrag) {
|
|
89
|
-
columns[rgCol].rowDrag = true;
|
|
90
|
-
}
|
|
91
|
-
// apply config
|
|
92
|
-
if (rgCol === order) {
|
|
93
|
-
columns[rgCol].order = 'desc';
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
// apply config
|
|
97
|
-
const pinnedTopRows = topPinned.map(i => ({ ...result[i] }));
|
|
98
|
-
// apply config
|
|
99
|
-
const pinnedBottomRows = bottomPinned.map(i => ({ ...result[i] }));
|
|
100
|
-
let headers = Object.keys(columns).map(k => columns[k]);
|
|
101
|
-
|
|
102
|
-
if (groupedHeader) {
|
|
103
|
-
const grouped = headers.splice(1, 4);
|
|
104
|
-
const grouped2 = grouped.splice(0, 2);
|
|
105
|
-
grouped.push({
|
|
106
|
-
name: 'Grouped2',
|
|
107
|
-
children: grouped2,
|
|
108
|
-
});
|
|
109
|
-
headers.splice(
|
|
110
|
-
6,
|
|
111
|
-
0,
|
|
112
|
-
...[
|
|
113
|
-
{
|
|
114
|
-
name: 'Grouped',
|
|
115
|
-
children: grouped,
|
|
116
|
-
},
|
|
117
|
-
],
|
|
118
|
-
);
|
|
119
|
-
const grouped4 = headers.splice(1, 3);
|
|
120
|
-
headers.splice(1, 0, ...[{
|
|
121
|
-
name: 'Grouped3',
|
|
122
|
-
children: grouped4
|
|
123
|
-
}]);
|
|
124
|
-
}
|
|
125
|
-
return {
|
|
126
|
-
rows: result,
|
|
127
|
-
pinnedTopRows,
|
|
128
|
-
pinnedBottomRows,
|
|
129
|
-
headers,
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
Stencil Client Patch Esm v2.6.0 | MIT Licensed | https://stenciljs.com
|
|
3
|
-
*/
|
|
4
|
-
var __assign=function(){return (__assign=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var s in t=arguments[r])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e}).apply(this,arguments)},StyleNode=function(){this.start=0,this.end=0,this.previous=null,this.parent=null,this.rules=null,this.parsedCssText="",this.cssText="",this.atRule=!1,this.type=0,this.keyframesName="",this.selector="",this.parsedSelector="";};function parse(e){return parseCss(lex(e=clean(e)),e)}function clean(e){return e.replace(RX.comments,"").replace(RX.port,"")}function lex(e){var t=new StyleNode;t.start=0,t.end=e.length;for(var r=t,n=0,s=e.length;n<s;n++)if(e[n]===OPEN_BRACE){r.rules||(r.rules=[]);var o=r,a=o.rules[o.rules.length-1]||null;(r=new StyleNode).start=n+1,r.parent=o,r.previous=a,o.rules.push(r);}else e[n]===CLOSE_BRACE&&(r.end=n+1,r=r.parent||t);return t}function parseCss(e,t){var r=t.substring(e.start,e.end-1);if(e.parsedCssText=e.cssText=r.trim(),e.parent){var n=e.previous?e.previous.end:e.parent.start;r=(r=(r=_expandUnicodeEscapes(r=t.substring(n,e.start-1))).replace(RX.multipleSpaces," ")).substring(r.lastIndexOf(";")+1);var s=e.parsedSelector=e.selector=r.trim();e.atRule=0===s.indexOf(AT_START),e.atRule?0===s.indexOf(MEDIA_START)?e.type=types.MEDIA_RULE:s.match(RX.keyframesRule)&&(e.type=types.KEYFRAMES_RULE,e.keyframesName=e.selector.split(RX.multipleSpaces).pop()):0===s.indexOf(VAR_START)?e.type=types.MIXIN_RULE:e.type=types.STYLE_RULE;}var o=e.rules;if(o)for(var a=0,i=o.length,l=void 0;a<i&&(l=o[a]);a++)parseCss(l,t);return e}function _expandUnicodeEscapes(e){return e.replace(/\\([0-9a-f]{1,6})\s/gi,(function(){for(var e=arguments[1],t=6-e.length;t--;)e="0"+e;return "\\"+e}))}var types={STYLE_RULE:1,KEYFRAMES_RULE:7,MEDIA_RULE:4,MIXIN_RULE:1e3},OPEN_BRACE="{",CLOSE_BRACE="}",RX={comments:/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,port:/@import[^;]*;/gim,customProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,mixinProp:/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,mixinApply:/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,varApply:/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,keyframesRule:/^@[^\s]*keyframes/,multipleSpaces:/\s+/g},VAR_START="--",MEDIA_START="@media",AT_START="@";function findRegex(e,t,r){e.lastIndex=0;var n=t.substring(r).match(e);if(n){var s=r+n.index;return {start:s,end:s+n[0].length}}return null}var VAR_USAGE_START=/\bvar\(/,VAR_ASSIGN_START=/\B--[\w-]+\s*:/,COMMENTS=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,TRAILING_LINES=/^[\t ]+\n/gm;function resolveVar(e,t,r){return e[t]?e[t]:r?executeTemplate(r,e):""}function findVarEndIndex(e,t){for(var r=0,n=t;n<e.length;n++){var s=e[n];if("("===s)r++;else if(")"===s&&--r<=0)return n+1}return n}function parseVar(e,t){var r=findRegex(VAR_USAGE_START,e,t);if(!r)return null;var n=findVarEndIndex(e,r.start),s=e.substring(r.end,n-1).split(","),o=s[0],a=s.slice(1);return {start:r.start,end:n,propName:o.trim(),fallback:a.length>0?a.join(",").trim():void 0}}function compileVar(e,t,r){var n=parseVar(e,r);if(!n)return t.push(e.substring(r,e.length)),e.length;var s=n.propName,o=null!=n.fallback?compileTemplate(n.fallback):void 0;return t.push(e.substring(r,n.start),(function(e){return resolveVar(e,s,o)})),n.end}function executeTemplate(e,t){for(var r="",n=0;n<e.length;n++){var s=e[n];r+="string"==typeof s?s:s(t);}return r}function findEndValue(e,t){for(var r=!1,n=!1,s=t;s<e.length;s++){var o=e[s];if(r)n&&'"'===o&&(r=!1),n||"'"!==o||(r=!1);else if('"'===o)r=!0,n=!0;else if("'"===o)r=!0,n=!1;else {if(";"===o)return s+1;if("}"===o)return s}}return s}function removeCustomAssigns(e){for(var t="",r=0;;){var n=findRegex(VAR_ASSIGN_START,e,r),s=n?n.start:e.length;if(t+=e.substring(r,s),!n)break;r=findEndValue(e,s);}return t}function compileTemplate(e){var t=0;e=removeCustomAssigns(e=e.replace(COMMENTS,"")).replace(TRAILING_LINES,"");for(var r=[];t<e.length;)t=compileVar(e,r,t);return r}function resolveValues(e){var t={};e.forEach((function(e){e.declarations.forEach((function(e){t[e.prop]=e.value;}));}));for(var r={},n=Object.entries(t),s=function(e){var t=!1;if(n.forEach((function(e){var n=e[0],s=executeTemplate(e[1],r);s!==r[n]&&(r[n]=s,t=!0);})),!t)return "break"},o=0;o<10;o++){if("break"===s())break}return r}function getSelectors(e,t){if(void 0===t&&(t=0),!e.rules)return [];var r=[];return e.rules.filter((function(e){return e.type===types.STYLE_RULE})).forEach((function(e){var n=getDeclarations(e.cssText);n.length>0&&e.parsedSelector.split(",").forEach((function(e){e=e.trim(),r.push({selector:e,declarations:n,specificity:computeSpecificity(),nu:t});})),t++;})),r}function computeSpecificity(e){return 1}var IMPORTANT="!important",FIND_DECLARATIONS=/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gm;function getDeclarations(e){for(var t,r=[];t=FIND_DECLARATIONS.exec(e.trim());){var n=normalizeValue(t[2]),s=n.value,o=n.important;r.push({prop:t[1].trim(),value:compileTemplate(s),important:o});}return r}function normalizeValue(e){var t=(e=e.replace(/\s+/gim," ").trim()).endsWith(IMPORTANT);return t&&(e=e.substr(0,e.length-IMPORTANT.length).trim()),{value:e,important:t}}function getActiveSelectors(e,t,r){var n=[],s=getScopesForElement(t,e);return r.forEach((function(e){return n.push(e)})),s.forEach((function(e){return n.push(e)})),sortSelectors(getSelectorsForScopes(n).filter((function(t){return matches(e,t.selector)})))}function getScopesForElement(e,t){for(var r=[];t;){var n=e.get(t);n&&r.push(n),t=t.parentElement;}return r}function getSelectorsForScopes(e){var t=[];return e.forEach((function(e){t.push.apply(t,e.selectors);})),t}function sortSelectors(e){return e.sort((function(e,t){return e.specificity===t.specificity?e.nu-t.nu:e.specificity-t.specificity})),e}function matches(e,t){return ":root"===t||"html"===t||e.matches(t)}function parseCSS(e){var t=parse(e),r=compileTemplate(e);return {original:e,template:r,selectors:getSelectors(t),usesCssVars:r.length>1}}function addGlobalStyle(e,t){if(e.some((function(e){return e.styleEl===t})))return !1;var r=parseCSS(t.textContent);return r.styleEl=t,e.push(r),!0}function updateGlobalScopes(e){var t=resolveValues(getSelectorsForScopes(e));e.forEach((function(e){e.usesCssVars&&(e.styleEl.textContent=executeTemplate(e.template,t));}));}function reScope(e,t){var r=e.template.map((function(r){return "string"==typeof r?replaceScope(r,e.scopeId,t):r})),n=e.selectors.map((function(r){return __assign(__assign({},r),{selector:replaceScope(r.selector,e.scopeId,t)})}));return __assign(__assign({},e),{template:r,selectors:n,scopeId:t})}function replaceScope(e,t,r){return e=replaceAll(e,"\\."+t,"."+r)}function replaceAll(e,t,r){return e.replace(new RegExp(t,"g"),r)}function loadDocument(e,t){return loadDocumentStyles(e,t),loadDocumentLinks(e,t).then((function(){updateGlobalScopes(t);}))}function startWatcher(e,t){"undefined"!=typeof MutationObserver&&new MutationObserver((function(){loadDocumentStyles(e,t)&&updateGlobalScopes(t);})).observe(document.head,{childList:!0});}function loadDocumentLinks(e,t){for(var r=[],n=e.querySelectorAll('link[rel="stylesheet"][href]:not([data-no-shim])'),s=0;s<n.length;s++)r.push(addGlobalLink(e,t,n[s]));return Promise.all(r)}function loadDocumentStyles(e,t){return Array.from(e.querySelectorAll("style:not([data-styles]):not([data-no-shim])")).map((function(e){return addGlobalStyle(t,e)})).some(Boolean)}function addGlobalLink(e,t,r){var n=r.href;return fetch(n).then((function(e){return e.text()})).then((function(s){if(hasCssVariables(s)&&r.parentNode){hasRelativeUrls(s)&&(s=fixRelativeUrls(s,n));var o=e.createElement("style");o.setAttribute("data-styles",""),o.textContent=s,addGlobalStyle(t,o),r.parentNode.insertBefore(o,r),r.remove();}})).catch((function(e){console.error(e);}))}var CSS_VARIABLE_REGEXP=/[\s;{]--[-a-zA-Z0-9]+\s*:/m;function hasCssVariables(e){return e.indexOf("var(")>-1||CSS_VARIABLE_REGEXP.test(e)}var CSS_URL_REGEXP=/url[\s]*\([\s]*['"]?(?!(?:https?|data)\:|\/)([^\'\"\)]*)[\s]*['"]?\)[\s]*/gim;function hasRelativeUrls(e){return CSS_URL_REGEXP.lastIndex=0,CSS_URL_REGEXP.test(e)}function fixRelativeUrls(e,t){var r=t.replace(/[^/]*$/,"");return e.replace(CSS_URL_REGEXP,(function(e,t){var n=r+t;return e.replace(t,n)}))}var CustomStyle=function(){function e(e,t){this.win=e,this.doc=t,this.count=0,this.hostStyleMap=new WeakMap,this.hostScopeMap=new WeakMap,this.globalScopes=[],this.scopesMap=new Map,this.didInit=!1;}return e.prototype.i=function(){var e=this;return this.didInit||!this.win.requestAnimationFrame?Promise.resolve():(this.didInit=!0,new Promise((function(t){e.win.requestAnimationFrame((function(){startWatcher(e.doc,e.globalScopes),loadDocument(e.doc,e.globalScopes).then((function(){return t()}));}));})))},e.prototype.addLink=function(e){var t=this;return addGlobalLink(this.doc,this.globalScopes,e).then((function(){t.updateGlobal();}))},e.prototype.addGlobalStyle=function(e){addGlobalStyle(this.globalScopes,e)&&this.updateGlobal();},e.prototype.createHostStyle=function(e,t,r,n){if(this.hostScopeMap.has(e))throw new Error("host style already created");var s=this.registerHostTemplate(r,t,n),o=this.doc.createElement("style");return o.setAttribute("data-no-shim",""),s.usesCssVars?n?(o["s-sc"]=t=s.scopeId+"-"+this.count,o.textContent="/*needs update*/",this.hostStyleMap.set(e,o),this.hostScopeMap.set(e,reScope(s,t)),this.count++):(s.styleEl=o,s.usesCssVars||(o.textContent=executeTemplate(s.template,{})),this.globalScopes.push(s),this.updateGlobal(),this.hostScopeMap.set(e,s)):o.textContent=r,o},e.prototype.removeHost=function(e){var t=this.hostStyleMap.get(e);t&&t.remove(),this.hostStyleMap.delete(e),this.hostScopeMap.delete(e);},e.prototype.updateHost=function(e){var t=this.hostScopeMap.get(e);if(t&&t.usesCssVars&&t.isScoped){var r=this.hostStyleMap.get(e);if(r){var n=resolveValues(getActiveSelectors(e,this.hostScopeMap,this.globalScopes));r.textContent=executeTemplate(t.template,n);}}},e.prototype.updateGlobal=function(){updateGlobalScopes(this.globalScopes);},e.prototype.registerHostTemplate=function(e,t,r){var n=this.scopesMap.get(t);return n||((n=parseCSS(e)).scopeId=t,n.isScoped=r,this.scopesMap.set(t,n)),n},e}();!function(e){!e||e.__cssshim||e.CSS&&e.CSS.supports&&e.CSS.supports("color","var(--c)")||(e.__cssshim=new CustomStyle(e,e.document));}("undefined"!=typeof window&&window);
|