@revolist/revogrid 3.2.4 → 3.2.7
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/custom-element/index.js +29217 -0
- package/custom-element/resize-observer.js +503 -0
- package/dist/cjs/css-shim-9f5bc84d.js +9 -0
- package/dist/cjs/debounce-6cea2774.js +578 -0
- package/dist/cjs/dom-fcb646f0.js +78 -0
- package/dist/{revo-grid/index-8a604c17.js → cjs/index-cb904e00.js} +230 -1445
- package/dist/cjs/index.cjs.js +5 -0
- package/dist/cjs/loader.cjs.js +38 -0
- package/dist/cjs/resize-observer-bf327d6a.js +507 -0
- package/dist/cjs/revo-grid.cjs.js +79 -0
- package/dist/cjs/revo-grid_11.cjs.entry.js +28301 -0
- package/dist/cjs/revogr-clipboard.cjs.entry.js +56 -0
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +278 -0
- package/dist/collection/collection-manifest.json +25 -0
- package/dist/collection/components/button/button.js +7 -0
- package/dist/collection/components/clipboard/revogr-clipboard.js +124 -0
- package/dist/collection/components/data/cellRenderer.js +27 -0
- package/dist/{revo-grid/columnService-91e552ba.js → collection/components/data/columnService.js} +6 -8
- package/dist/collection/components/data/revogr-data-style.css +135 -0
- package/dist/collection/components/data/revogr-data.js +325 -0
- package/dist/collection/components/data/rowRenderer.js +9 -0
- package/dist/collection/components/header/headerCellRenderer.js +29 -0
- package/dist/collection/components/header/headerRenderer.js +48 -0
- package/dist/collection/components/header/revogr-header-style.css +198 -0
- package/dist/collection/components/header/revogr-header.js +300 -0
- package/dist/collection/components/order/orderRenderer.js +53 -0
- package/dist/collection/components/order/revogr-order-editor.js +361 -0
- package/dist/collection/components/order/rowOrderService.js +71 -0
- package/dist/collection/components/overlay/autofill.service.js +185 -0
- package/dist/collection/components/overlay/clipboard.service.js +42 -0
- package/dist/collection/components/overlay/editors/edit.utils.js +8 -0
- package/dist/collection/components/overlay/editors/text.js +38 -0
- package/dist/collection/components/overlay/keyboard.service.js +131 -0
- package/dist/collection/components/overlay/revogr-edit-style.css +86 -0
- package/dist/collection/components/overlay/revogr-edit.js +162 -0
- package/dist/collection/components/overlay/revogr-overlay-selection.js +729 -0
- package/dist/collection/components/overlay/revogr-overlay-style.css +98 -0
- package/dist/{revo-grid/selection.utils-a9932db6.js → collection/components/overlay/selection.utils.js} +9 -12
- package/dist/collection/components/revo-grid/revo-grid-style.css +544 -0
- package/dist/collection/components/revo-grid/revo-grid.js +2226 -0
- package/dist/collection/components/revo-grid/viewport.helpers.js +14 -0
- package/dist/collection/components/revo-grid/viewport.interfaces.js +4 -0
- package/dist/collection/components/revo-grid/viewport.js +21 -0
- package/dist/collection/components/revo-grid/viewport.resize.service.js +24 -0
- package/dist/collection/components/revo-grid/viewport.scrolling.service.js +63 -0
- package/dist/collection/components/revo-grid/viewport.section.js +31 -0
- package/dist/collection/components/revo-grid/viewport.service.js +212 -0
- package/dist/collection/components/rowHeaders/revogr-row-headers.js +213 -0
- package/dist/collection/components/rowHeaders/row-header-render.js +4 -0
- package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +137 -0
- package/dist/collection/components/scroll/revogr-viewport-scroll.js +402 -0
- package/dist/collection/components/scrollable/revogr-scroll-style.css +104 -0
- package/dist/collection/components/scrollable/revogr-scroll-virtual.js +256 -0
- package/dist/collection/components/selection-focus/revogr-focus-style.css +77 -0
- package/dist/collection/components/selection-focus/revogr-focus.js +106 -0
- package/dist/collection/components/selection-temp-range/revogr-temp-range-style.css +98 -0
- package/dist/collection/components/selection-temp-range/revogr-temp-range.js +141 -0
- package/dist/{revo-grid/app-globals-7e6866ba.js → collection/global/global.js} +2 -8
- package/dist/collection/index.js +4 -0
- package/dist/collection/plugins/autoSizeColumn.js +233 -0
- package/dist/collection/plugins/basePlugin.js +30 -0
- package/dist/{revo-grid/dispatcher-891af82e.js → collection/plugins/dispatcher.js} +2 -4
- package/dist/collection/plugins/export/csv.js +71 -0
- package/dist/collection/plugins/export/export.plugin.js +168 -0
- package/dist/collection/plugins/export/types.js +4 -0
- package/dist/collection/plugins/filter/conditions/equal.js +20 -0
- package/dist/collection/plugins/filter/conditions/number/greaterThan.js +13 -0
- package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js +10 -0
- package/dist/collection/plugins/filter/conditions/number/lessThan.js +15 -0
- package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js +10 -0
- package/dist/collection/plugins/filter/conditions/set.js +6 -0
- package/dist/collection/plugins/filter/conditions/string/beginswith.js +20 -0
- package/dist/collection/plugins/filter/conditions/string/contains.js +21 -0
- package/dist/{revo-grid/filter.button-74c1cd9c.js → collection/plugins/filter/filter.button.js} +10 -13
- package/dist/collection/plugins/filter/filter.plugin.js +259 -0
- package/dist/collection/plugins/filter/filter.pop.js +488 -0
- package/dist/collection/plugins/filter/filter.service.js +47 -0
- package/dist/collection/plugins/filter/filter.style.css +239 -0
- package/dist/collection/plugins/filter/filter.types.js +4 -0
- package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +33 -0
- package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js +39 -0
- package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js +24 -0
- package/dist/collection/plugins/groupingRow/grouping.const.js +13 -0
- package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js +79 -0
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +261 -0
- package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +32 -0
- package/dist/collection/plugins/groupingRow/grouping.row.types.js +4 -0
- package/dist/collection/plugins/groupingRow/grouping.service.js +158 -0
- package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +60 -0
- package/dist/collection/plugins/moveColumn/columnDragPlugin.js +151 -0
- package/dist/collection/plugins/moveColumn/columnOrderHandler.js +63 -0
- package/dist/collection/plugins/sorting/sorting.plugin.js +184 -0
- package/dist/collection/plugins/sorting/sorting.sign.js +9 -0
- package/dist/collection/plugins/stretchPlugin.js +71 -0
- package/dist/collection/plugins/trimmed/trimmed.plugin.js +35 -0
- package/dist/collection/services/cell.helpers.js +10 -0
- package/dist/collection/services/column.data.provider.js +191 -0
- package/dist/collection/services/data.provider.js +50 -0
- package/dist/collection/services/dimension.provider.js +81 -0
- package/dist/{revo-grid/localScrollService-e9b73323.js → collection/services/localScrollService.js} +2 -5
- package/dist/collection/services/resizable.directive.js +255 -0
- package/dist/collection/services/selection.store.connector.js +216 -0
- package/dist/collection/services/viewport.provider.js +17 -0
- package/dist/collection/store/dataSource/data.proxy.js +37 -0
- package/dist/collection/store/dataSource/data.store.js +130 -0
- package/dist/collection/store/dimension/dimension.helpers.js +110 -0
- package/dist/collection/store/dimension/dimension.store.js +62 -0
- package/dist/collection/store/selection/selection.helpers.js +56 -0
- package/dist/collection/store/selection/selection.store.js +71 -0
- package/dist/collection/store/selection/selection.store.service.js +38 -0
- package/dist/collection/store/storeTypes.js +8 -0
- package/dist/{revo-grid/viewport.store-ffaaab6d.js → collection/store/viewPort/viewport.helpers.js} +9 -132
- package/dist/collection/store/viewPort/viewport.store.js +124 -0
- package/dist/collection/themeManager/theme.compact.js +8 -0
- package/dist/collection/themeManager/theme.default.js +8 -0
- package/dist/collection/themeManager/theme.material.js +8 -0
- package/dist/{revo-grid/themeService-ddaaa364.js → collection/themeManager/themeService.js} +6 -23
- package/dist/collection/utils/closestPolifill.js +21 -0
- package/dist/collection/utils/consts.js +22 -0
- package/dist/collection/utils/generateAlphabetHeader.js +23 -0
- package/dist/collection/utils/keyCodes.js +73 -0
- package/dist/collection/utils/keyCodes.utils.js +67 -0
- package/dist/collection/utils/platform.js +8 -0
- package/dist/collection/utils/resizeObserver.js +9 -0
- package/dist/collection/utils/store.utils.js +10 -0
- package/dist/{revo-grid/utils-2c3b3857.js → collection/utils/utils.js} +8 -10
- package/dist/collection/utilsExternal/generate-data.js +132 -0
- package/dist/esm/css-shim-e1e1ea5e.js +7 -0
- package/dist/esm/debounce-e4e6dd45.js +561 -0
- package/dist/esm/dom-21bd1807.js +76 -0
- package/dist/esm/index-6f753b3c.js +1817 -0
- package/dist/esm/index.js +3 -0
- package/dist/esm/loader.js +34 -0
- package/dist/esm/polyfills/core-js.js +11 -0
- package/dist/esm/polyfills/css-shim.js +1 -0
- package/dist/esm/polyfills/dom.js +79 -0
- package/dist/esm/polyfills/es5-html-element.js +1 -0
- package/dist/esm/polyfills/index.js +34 -0
- package/dist/esm/polyfills/system.js +6 -0
- package/dist/esm/resize-observer-00c48d78.js +503 -0
- package/dist/esm/revo-grid.js +77 -0
- package/dist/{revo-grid/lodash-a0ab4cdd.js → esm/revo-grid_11.entry.js} +25351 -14282
- package/dist/esm/revogr-clipboard.entry.js +52 -0
- package/dist/esm/revogr-filter-panel.entry.js +274 -0
- package/dist/esm-es5/css-shim-e1e1ea5e.js +4 -0
- package/dist/esm-es5/debounce-e4e6dd45.js +4 -0
- package/dist/esm-es5/dom-21bd1807.js +24 -0
- package/dist/esm-es5/index-6f753b3c.js +4 -0
- package/dist/esm-es5/index.js +3 -0
- package/dist/esm-es5/loader.js +4 -0
- package/dist/esm-es5/resize-observer-00c48d78.js +4 -0
- package/dist/esm-es5/revo-grid.js +4 -0
- package/dist/esm-es5/revo-grid_11.entry.js +4 -0
- package/dist/esm-es5/revogr-clipboard.entry.js +4 -0
- package/dist/esm-es5/revogr-filter-panel.entry.js +4 -0
- package/dist/index.cjs.js +1 -0
- package/dist/index.js +1 -0
- package/dist/revo-grid/css-shim-bcf89cc0.system.js +4 -0
- package/dist/revo-grid/css-shim-e1e1ea5e.js +4 -0
- package/dist/revo-grid/debounce-5a33c710.system.js +4 -0
- package/dist/revo-grid/debounce-726bdadb.js +4 -0
- package/dist/revo-grid/dom-21bd1807.js +5 -59
- package/dist/revo-grid/dom-726246e2.system.js +24 -0
- package/dist/revo-grid/index-f14b41a0.system.js +5 -0
- package/dist/revo-grid/index-f30d1de1.js +5 -0
- package/dist/revo-grid/index.system.js +4 -0
- package/dist/revo-grid/resize-observer-00c48d78.js +1 -500
- package/dist/revo-grid/resize-observer-8af0bc0e.system.js +4 -0
- package/dist/revo-grid/revo-grid.esm.js +1 -130
- package/dist/revo-grid/revo-grid.js +133 -0
- package/dist/revo-grid/revo-grid.system.js +4 -0
- package/dist/revo-grid/revo-grid_11.entry.js +4 -0
- package/dist/revo-grid/revo-grid_11.system.entry.js +4 -0
- package/dist/revo-grid/revogr-clipboard.entry.js +1 -49
- package/dist/revo-grid/revogr-clipboard.system.entry.js +4 -0
- package/dist/revo-grid/revogr-filter-panel.entry.js +1 -274
- package/dist/revo-grid/revogr-filter-panel.system.entry.js +4 -0
- package/dist/types/components/revo-grid/revo-grid.d.ts +0 -1
- package/dist/types/components.d.ts +2 -2
- package/loader/cdn.js +3 -1
- package/loader/index.cjs.js +3 -1
- package/loader/index.d.ts +0 -1
- package/loader/index.es2017.js +3 -1
- package/loader/index.js +3 -1
- package/package.json +1 -1
- package/dist/revo-grid/_baseIteratee-af30b221.js +0 -2070
- package/dist/revo-grid/consts-ef824e6f.js +0 -46
- package/dist/revo-grid/css-shim-5387c708.js +0 -7
- package/dist/revo-grid/data.store-3263fff9.js +0 -557
- package/dist/revo-grid/debounce-aaa4b4da.js +0 -217
- package/dist/revo-grid/dimension.helpers-a7944fc4.js +0 -340
- package/dist/revo-grid/each-0378e5a3.js +0 -180
- package/dist/revo-grid/identity-c8c7d3d8.js +0 -26
- package/dist/revo-grid/isString-a51066b5.js +0 -34
- package/dist/revo-grid/isSymbol-e4b5dafe.js +0 -247
- package/dist/revo-grid/keyCodes.utils-bd06e3ba.js +0 -299
- package/dist/revo-grid/keys-70b7c240.js +0 -561
- package/dist/revo-grid/revo-grid.entry.js +0 -3484
- package/dist/revo-grid/revogr-data.entry.js +0 -152
- package/dist/revo-grid/revogr-edit.entry.js +0 -105
- package/dist/revo-grid/revogr-focus.entry.js +0 -41
- package/dist/revo-grid/revogr-header.entry.js +0 -560
- package/dist/revo-grid/revogr-order-editor.entry.js +0 -175
- package/dist/revo-grid/revogr-overlay-selection.entry.js +0 -711
- package/dist/revo-grid/revogr-row-headers.entry.js +0 -73
- package/dist/revo-grid/revogr-scroll-virtual.entry.js +0 -114
- package/dist/revo-grid/revogr-temp-range.entry.js +0 -73
- package/dist/revo-grid/revogr-viewport-scroll.entry.js +0 -340
- package/dist/revo-grid/selection.store.connector-2b613fd0.js +0 -503
- package/dist/revo-grid/shadow-css-602a09db.js +0 -390
- package/dist/revo-grid/toInteger-9e6cbfd2.js +0 -107
- package/dist/revo-grid/toNumber-913b0b72.js +0 -105
- package/dist/revo-grid/viewport.helpers-49d3f031.js +0 -16
|
@@ -1,27 +1,12 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist
|
|
3
3
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class ThemeDefault {
|
|
11
|
-
constructor() {
|
|
12
|
-
this.defaultRowSize = 27;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
class ThemeMaterial {
|
|
17
|
-
constructor() {
|
|
18
|
-
this.defaultRowSize = 42;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const DEFAULT_THEME = 'default';
|
|
23
|
-
const allowedThemes = [DEFAULT_THEME, 'material', 'compact', 'darkMaterial', 'darkCompact'];
|
|
24
|
-
class ThemeService {
|
|
4
|
+
import ThemeCompact from './theme.compact';
|
|
5
|
+
import ThemeDefault from './theme.default';
|
|
6
|
+
import ThemeMaterial from './theme.material';
|
|
7
|
+
export const DEFAULT_THEME = 'default';
|
|
8
|
+
export const allowedThemes = [DEFAULT_THEME, 'material', 'compact', 'darkMaterial', 'darkCompact'];
|
|
9
|
+
export default class ThemeService {
|
|
25
10
|
constructor(cfg) {
|
|
26
11
|
this.customRowSize = 0;
|
|
27
12
|
this.customRowSize = cfg.rowSize;
|
|
@@ -59,5 +44,3 @@ class ThemeService {
|
|
|
59
44
|
return DEFAULT_THEME;
|
|
60
45
|
}
|
|
61
46
|
}
|
|
62
|
-
|
|
63
|
-
export { ThemeService as T };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by Revolist
|
|
3
|
+
*/
|
|
4
|
+
(function closest() {
|
|
5
|
+
if (!Element.prototype.matches) {
|
|
6
|
+
Element.prototype.matches =
|
|
7
|
+
Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
|
|
8
|
+
}
|
|
9
|
+
if (!Element.prototype.closest) {
|
|
10
|
+
Element.prototype.closest = function (s) {
|
|
11
|
+
let el = this;
|
|
12
|
+
do {
|
|
13
|
+
if (Element.prototype.matches.call(el, s)) {
|
|
14
|
+
return el;
|
|
15
|
+
}
|
|
16
|
+
el = el.parentElement || el.parentNode;
|
|
17
|
+
} while (el !== null && el.nodeType === 1);
|
|
18
|
+
return null;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
})();
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by Revolist
|
|
3
|
+
*/
|
|
4
|
+
export const MIN_COL_SIZE = 30;
|
|
5
|
+
export const DATA_COL = 'data-rgCol';
|
|
6
|
+
export const DATA_ROW = 'data-rgRow';
|
|
7
|
+
export const UUID = 'grid-uuid';
|
|
8
|
+
export const DISABLED_CLASS = 'disabled';
|
|
9
|
+
export const CELL_CLASS = 'rgCell';
|
|
10
|
+
export const HEADER_CLASS = 'rgHeaderCell';
|
|
11
|
+
export const HEADER_SORTABLE_CLASS = 'sortable';
|
|
12
|
+
export const HEADER_ROW_CLASS = 'header-rgRow';
|
|
13
|
+
export const HEADER_ACTUAL_ROW_CLASS = 'actual-rgRow';
|
|
14
|
+
export const DRAG_ICON_CLASS = 'revo-drag-icon';
|
|
15
|
+
export const DRAGGABLE_CLASS = 'revo-draggable';
|
|
16
|
+
export const FOCUS_CLASS = 'focused-cell';
|
|
17
|
+
export const SELECTION_BORDER_CLASS = 'selection-border-range';
|
|
18
|
+
export const TMP_SELECTION_BG_CLASS = 'temp-bg-range';
|
|
19
|
+
export const CELL_HANDLER_CLASS = 'autofill-handle';
|
|
20
|
+
export const EDIT_INPUT_WR = 'edit-input-wrapper';
|
|
21
|
+
export const DRAGG_TEXT = 'Draggable item';
|
|
22
|
+
export const GRID_INTERNALS = '__rvgr';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by Revolist
|
|
3
|
+
*/
|
|
4
|
+
export function generateHeader(index) {
|
|
5
|
+
const asciiFirstLetter = 65;
|
|
6
|
+
const lettersCount = 26;
|
|
7
|
+
let div = index + 1;
|
|
8
|
+
let label = '';
|
|
9
|
+
let pos;
|
|
10
|
+
while (div > 0) {
|
|
11
|
+
pos = (div - 1) % lettersCount;
|
|
12
|
+
label = String.fromCharCode(asciiFirstLetter + pos) + label;
|
|
13
|
+
div = parseInt(((div - pos) / lettersCount).toString(), 10);
|
|
14
|
+
}
|
|
15
|
+
return label;
|
|
16
|
+
}
|
|
17
|
+
export function generateHeaderByCount(colsNumber) {
|
|
18
|
+
const rowData = [];
|
|
19
|
+
for (let j = 0; j < colsNumber; j++) {
|
|
20
|
+
rowData.push(generateHeader(j));
|
|
21
|
+
}
|
|
22
|
+
return rowData;
|
|
23
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by Revolist
|
|
3
|
+
*/
|
|
4
|
+
var codes;
|
|
5
|
+
(function (codes) {
|
|
6
|
+
codes[codes["MOUSE_LEFT"] = 1] = "MOUSE_LEFT";
|
|
7
|
+
codes[codes["MOUSE_RIGHT"] = 3] = "MOUSE_RIGHT";
|
|
8
|
+
codes[codes["MOUSE_MIDDLE"] = 2] = "MOUSE_MIDDLE";
|
|
9
|
+
codes[codes["BACKSPACE"] = 8] = "BACKSPACE";
|
|
10
|
+
codes[codes["COMMA"] = 188] = "COMMA";
|
|
11
|
+
codes[codes["INSERT"] = 45] = "INSERT";
|
|
12
|
+
codes[codes["DELETE"] = 46] = "DELETE";
|
|
13
|
+
codes[codes["END"] = 35] = "END";
|
|
14
|
+
codes[codes["ENTER"] = 13] = "ENTER";
|
|
15
|
+
codes[codes["ESCAPE"] = 27] = "ESCAPE";
|
|
16
|
+
codes[codes["CONTROL"] = 17] = "CONTROL";
|
|
17
|
+
codes[codes["COMMAND_LEFT"] = 91] = "COMMAND_LEFT";
|
|
18
|
+
codes[codes["COMMAND_RIGHT"] = 93] = "COMMAND_RIGHT";
|
|
19
|
+
codes[codes["COMMAND_FIREFOX"] = 224] = "COMMAND_FIREFOX";
|
|
20
|
+
codes[codes["ALT"] = 18] = "ALT";
|
|
21
|
+
codes[codes["HOME"] = 36] = "HOME";
|
|
22
|
+
codes[codes["PAGE_DOWN"] = 34] = "PAGE_DOWN";
|
|
23
|
+
codes[codes["PAGE_UP"] = 33] = "PAGE_UP";
|
|
24
|
+
codes[codes["PERIOD"] = 190] = "PERIOD";
|
|
25
|
+
codes[codes["SPACE"] = 32] = "SPACE";
|
|
26
|
+
codes[codes["SHIFT"] = 16] = "SHIFT";
|
|
27
|
+
codes[codes["CAPS_LOCK"] = 20] = "CAPS_LOCK";
|
|
28
|
+
codes[codes["TAB"] = 9] = "TAB";
|
|
29
|
+
codes[codes["ARROW_RIGHT"] = 39] = "ARROW_RIGHT";
|
|
30
|
+
codes[codes["ARROW_LEFT"] = 37] = "ARROW_LEFT";
|
|
31
|
+
codes[codes["ARROW_UP"] = 38] = "ARROW_UP";
|
|
32
|
+
codes[codes["ARROW_DOWN"] = 40] = "ARROW_DOWN";
|
|
33
|
+
codes[codes["F1"] = 112] = "F1";
|
|
34
|
+
codes[codes["F2"] = 113] = "F2";
|
|
35
|
+
codes[codes["F3"] = 114] = "F3";
|
|
36
|
+
codes[codes["F4"] = 115] = "F4";
|
|
37
|
+
codes[codes["F5"] = 116] = "F5";
|
|
38
|
+
codes[codes["F6"] = 117] = "F6";
|
|
39
|
+
codes[codes["F7"] = 118] = "F7";
|
|
40
|
+
codes[codes["F8"] = 119] = "F8";
|
|
41
|
+
codes[codes["F9"] = 120] = "F9";
|
|
42
|
+
codes[codes["F10"] = 121] = "F10";
|
|
43
|
+
codes[codes["F11"] = 122] = "F11";
|
|
44
|
+
codes[codes["F12"] = 123] = "F12";
|
|
45
|
+
codes[codes["A"] = 65] = "A";
|
|
46
|
+
codes[codes["C"] = 67] = "C";
|
|
47
|
+
codes[codes["D"] = 68] = "D";
|
|
48
|
+
codes[codes["F"] = 70] = "F";
|
|
49
|
+
codes[codes["L"] = 76] = "L";
|
|
50
|
+
codes[codes["O"] = 79] = "O";
|
|
51
|
+
codes[codes["P"] = 80] = "P";
|
|
52
|
+
codes[codes["S"] = 83] = "S";
|
|
53
|
+
codes[codes["V"] = 86] = "V";
|
|
54
|
+
codes[codes["X"] = 88] = "X";
|
|
55
|
+
})(codes || (codes = {}));
|
|
56
|
+
var codesLetter;
|
|
57
|
+
(function (codesLetter) {
|
|
58
|
+
codesLetter["ENTER"] = "Enter";
|
|
59
|
+
codesLetter["ENTER_NUM"] = "NumpadEnter";
|
|
60
|
+
codesLetter["V"] = "KeyV";
|
|
61
|
+
codesLetter["C"] = "KeyC";
|
|
62
|
+
codesLetter["ESCAPE"] = "Escape";
|
|
63
|
+
codesLetter["TAB"] = "Tab";
|
|
64
|
+
codesLetter["BACKSPACE"] = "Backspace";
|
|
65
|
+
codesLetter["DELETE"] = "Delete";
|
|
66
|
+
codesLetter["ARROW_RIGHT"] = "ArrowRight";
|
|
67
|
+
codesLetter["ARROW_LEFT"] = "ArrowLeft";
|
|
68
|
+
codesLetter["ARROW_UP"] = "ArrowUp";
|
|
69
|
+
codesLetter["ARROW_DOWN"] = "ArrowDown";
|
|
70
|
+
codesLetter["SHIFT"] = "Shift";
|
|
71
|
+
})(codesLetter || (codesLetter = {}));
|
|
72
|
+
export default codes;
|
|
73
|
+
export { codesLetter };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by Revolist
|
|
3
|
+
*/
|
|
4
|
+
import KeyCodesEnum, { codesLetter } from './keyCodes';
|
|
5
|
+
import OsPlatform from './platform';
|
|
6
|
+
import includes from 'lodash/includes';
|
|
7
|
+
export function isLetterKey(code) {
|
|
8
|
+
return (code === 32 || // space
|
|
9
|
+
(code >= 48 && code <= 57) ||
|
|
10
|
+
(code >= 96 && code <= 111) ||
|
|
11
|
+
(code >= 186 && code <= 192) ||
|
|
12
|
+
(code >= 219 && code <= 222) ||
|
|
13
|
+
code >= 226 ||
|
|
14
|
+
(code >= 65 && code <= 90)); // a-z
|
|
15
|
+
}
|
|
16
|
+
export function isMetaKey(code) {
|
|
17
|
+
const keys = [
|
|
18
|
+
KeyCodesEnum.ARROW_DOWN,
|
|
19
|
+
KeyCodesEnum.ARROW_UP,
|
|
20
|
+
KeyCodesEnum.ARROW_LEFT,
|
|
21
|
+
KeyCodesEnum.ARROW_RIGHT,
|
|
22
|
+
KeyCodesEnum.HOME,
|
|
23
|
+
KeyCodesEnum.END,
|
|
24
|
+
KeyCodesEnum.DELETE,
|
|
25
|
+
KeyCodesEnum.BACKSPACE,
|
|
26
|
+
KeyCodesEnum.F1,
|
|
27
|
+
KeyCodesEnum.F2,
|
|
28
|
+
KeyCodesEnum.F3,
|
|
29
|
+
KeyCodesEnum.F4,
|
|
30
|
+
KeyCodesEnum.F5,
|
|
31
|
+
KeyCodesEnum.F6,
|
|
32
|
+
KeyCodesEnum.F7,
|
|
33
|
+
KeyCodesEnum.F8,
|
|
34
|
+
KeyCodesEnum.F9,
|
|
35
|
+
KeyCodesEnum.F10,
|
|
36
|
+
KeyCodesEnum.F11,
|
|
37
|
+
KeyCodesEnum.F12,
|
|
38
|
+
KeyCodesEnum.TAB,
|
|
39
|
+
KeyCodesEnum.PAGE_DOWN,
|
|
40
|
+
KeyCodesEnum.PAGE_UP,
|
|
41
|
+
KeyCodesEnum.ENTER,
|
|
42
|
+
KeyCodesEnum.ESCAPE,
|
|
43
|
+
KeyCodesEnum.SHIFT,
|
|
44
|
+
KeyCodesEnum.CAPS_LOCK,
|
|
45
|
+
KeyCodesEnum.ALT,
|
|
46
|
+
];
|
|
47
|
+
return keys.indexOf(code) !== -1;
|
|
48
|
+
}
|
|
49
|
+
// navigator.platform
|
|
50
|
+
export function isCtrlKey(code, platform) {
|
|
51
|
+
if (platform.includes(OsPlatform.mac)) {
|
|
52
|
+
return includes([KeyCodesEnum.COMMAND_LEFT, KeyCodesEnum.COMMAND_RIGHT, KeyCodesEnum.COMMAND_FIREFOX], code);
|
|
53
|
+
}
|
|
54
|
+
return KeyCodesEnum.CONTROL === code;
|
|
55
|
+
}
|
|
56
|
+
export function isCtrlMetaKey(code) {
|
|
57
|
+
return includes([KeyCodesEnum.CONTROL, KeyCodesEnum.COMMAND_LEFT, KeyCodesEnum.COMMAND_RIGHT, KeyCodesEnum.COMMAND_FIREFOX], code);
|
|
58
|
+
}
|
|
59
|
+
export function isClear(code) {
|
|
60
|
+
return codesLetter.BACKSPACE === code || codesLetter.DELETE === code;
|
|
61
|
+
}
|
|
62
|
+
export function isTab(code) {
|
|
63
|
+
return codesLetter.TAB === code;
|
|
64
|
+
}
|
|
65
|
+
export function isEnterKey(code) {
|
|
66
|
+
return code === codesLetter.ENTER || code === codesLetter.ENTER_NUM;
|
|
67
|
+
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
/* Generate range on size
|
|
5
5
|
*/
|
|
6
|
-
function range(size, startAt = 0) {
|
|
6
|
+
export function range(size, startAt = 0) {
|
|
7
7
|
const res = [];
|
|
8
8
|
const end = startAt + size;
|
|
9
9
|
for (let i = startAt; i < end; i++) {
|
|
@@ -12,7 +12,7 @@ function range(size, startAt = 0) {
|
|
|
12
12
|
return res;
|
|
13
13
|
}
|
|
14
14
|
/* Find index position in array */
|
|
15
|
-
function findPositionInArray(el, compareFn) {
|
|
15
|
+
export function findPositionInArray(el, compareFn) {
|
|
16
16
|
return (function (arr) {
|
|
17
17
|
let m = 0;
|
|
18
18
|
let n = arr.length - 1;
|
|
@@ -32,7 +32,7 @@ function findPositionInArray(el, compareFn) {
|
|
|
32
32
|
return -m - 1;
|
|
33
33
|
})(this);
|
|
34
34
|
}
|
|
35
|
-
function pushSorted(arr, el, fn) {
|
|
35
|
+
export function pushSorted(arr, el, fn) {
|
|
36
36
|
arr.splice(findPositionInArray.bind(arr)(el, fn), 0, el);
|
|
37
37
|
return arr;
|
|
38
38
|
}
|
|
@@ -40,7 +40,7 @@ function pushSorted(arr, el, fn) {
|
|
|
40
40
|
function simpleCompare(el1, el2) {
|
|
41
41
|
return el1 < el2;
|
|
42
42
|
}
|
|
43
|
-
function mergeSortedArray(arr1, arr2, compareFn = simpleCompare) {
|
|
43
|
+
export function mergeSortedArray(arr1, arr2, compareFn = simpleCompare) {
|
|
44
44
|
const merged = [];
|
|
45
45
|
let index1 = 0;
|
|
46
46
|
let index2 = 0;
|
|
@@ -61,7 +61,7 @@ function mergeSortedArray(arr1, arr2, compareFn = simpleCompare) {
|
|
|
61
61
|
return merged;
|
|
62
62
|
}
|
|
63
63
|
/* Calculate system scrollbar width */
|
|
64
|
-
function getScrollbarWidth(doc) {
|
|
64
|
+
export function getScrollbarWidth(doc) {
|
|
65
65
|
// Creating invisible container
|
|
66
66
|
const outer = doc.createElement('div');
|
|
67
67
|
const styles = outer.style;
|
|
@@ -90,20 +90,18 @@ function getScrollbarWidth(doc) {
|
|
|
90
90
|
*
|
|
91
91
|
* ~~ return value does the equivalent of Math.floor but faster.
|
|
92
92
|
*/
|
|
93
|
-
function scaleValue(value, from, to) {
|
|
93
|
+
export function scaleValue(value, from, to) {
|
|
94
94
|
return ((to[1] - to[0]) * (value - from[0])) / (from[1] - from[0]) + to[0];
|
|
95
95
|
}
|
|
96
|
-
async function timeout(delay = 0) {
|
|
96
|
+
export async function timeout(delay = 0) {
|
|
97
97
|
await new Promise((r) => {
|
|
98
98
|
setTimeout(() => r(), delay);
|
|
99
99
|
});
|
|
100
100
|
}
|
|
101
|
-
function applyMixins(derivedCtor, constructors) {
|
|
101
|
+
export function applyMixins(derivedCtor, constructors) {
|
|
102
102
|
constructors.forEach(baseCtor => {
|
|
103
103
|
Object.getOwnPropertyNames(baseCtor.prototype).forEach(name => {
|
|
104
104
|
Object.defineProperty(derivedCtor.prototype, name, Object.getOwnPropertyDescriptor(baseCtor.prototype, name) || Object.create(null));
|
|
105
105
|
});
|
|
106
106
|
});
|
|
107
107
|
}
|
|
108
|
-
|
|
109
|
-
export { getScrollbarWidth as g, mergeSortedArray as m, scaleValue as s, timeout as t };
|
|
@@ -0,0 +1,132 @@
|
|
|
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
|
+
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Built by Revolist
|
|
3
|
+
*/
|
|
4
|
+
/*
|
|
5
|
+
Stencil Client Patch Esm v2.17.3 | MIT Licensed | https://stenciljs.com
|
|
6
|
+
*/
|
|
7
|
+
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.slice(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,"\\.".concat(t),".".concat(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="".concat(s.scopeId,"-").concat(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);
|