@revolist/revogrid 4.10.8 → 4.10.10
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/revo-grid.cjs.entry.js +116 -58
- package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
- package/dist/collection/components/revoGrid/plugin.service.js +81 -0
- package/dist/collection/components/revoGrid/plugin.service.js.map +1 -0
- package/dist/collection/components/revoGrid/revo-grid.js +40 -59
- package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
- package/dist/esm/revo-grid.entry.js +117 -59
- package/dist/esm/revo-grid.entry.js.map +1 -1
- package/dist/revo-grid/revo-grid.entry.js +1 -1
- package/dist/revo-grid/revo-grid.entry.js.map +1 -1
- package/dist/types/components/revoGrid/plugin.service.d.ts +37 -0
- package/dist/types/components/revoGrid/revo-grid.d.ts +12 -10
- package/dist/types/components.d.ts +2 -2
- package/hydrate/index.js +116 -58
- package/hydrate/index.mjs +116 -58
- package/package.json +1 -1
- package/standalone/revo-grid.js +116 -58
- package/standalone/revo-grid.js.map +1 -1
|
@@ -1691,6 +1691,84 @@ class WCAGPlugin extends column_drag_plugin.BasePlugin {
|
|
|
1691
1691
|
}
|
|
1692
1692
|
}
|
|
1693
1693
|
|
|
1694
|
+
/**
|
|
1695
|
+
* Plugin service
|
|
1696
|
+
* Manages plugins
|
|
1697
|
+
*/
|
|
1698
|
+
class PluginService {
|
|
1699
|
+
constructor() {
|
|
1700
|
+
/**
|
|
1701
|
+
* Plugins
|
|
1702
|
+
* Define plugins collection
|
|
1703
|
+
*/
|
|
1704
|
+
this.internalPlugins = [];
|
|
1705
|
+
}
|
|
1706
|
+
/**
|
|
1707
|
+
* Get all plugins
|
|
1708
|
+
*/
|
|
1709
|
+
get() {
|
|
1710
|
+
return [...this.internalPlugins];
|
|
1711
|
+
}
|
|
1712
|
+
/**
|
|
1713
|
+
* Add plugin to collection
|
|
1714
|
+
*/
|
|
1715
|
+
add(plugin) {
|
|
1716
|
+
this.internalPlugins.push(plugin);
|
|
1717
|
+
}
|
|
1718
|
+
/**
|
|
1719
|
+
* Add user plugins and create
|
|
1720
|
+
*/
|
|
1721
|
+
addUserPluginsAndCreate(element, plugins = [], prevPlugins, pluginData) {
|
|
1722
|
+
if (!pluginData) {
|
|
1723
|
+
return;
|
|
1724
|
+
}
|
|
1725
|
+
// Step 1: Identify plugins to remove, compare new and old plugins
|
|
1726
|
+
const pluginsToRemove = (prevPlugins === null || prevPlugins === void 0 ? void 0 : prevPlugins.filter(prevPlugin => !plugins.some(userPlugin => userPlugin === prevPlugin))) || [];
|
|
1727
|
+
// Step 2: Remove old plugins
|
|
1728
|
+
pluginsToRemove.forEach(plugin => {
|
|
1729
|
+
var _a, _b;
|
|
1730
|
+
const index = this.internalPlugins.findIndex(createdPlugin => createdPlugin instanceof plugin);
|
|
1731
|
+
if (index !== -1) {
|
|
1732
|
+
(_b = (_a = this.internalPlugins[index]).destroy) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
1733
|
+
this.internalPlugins.splice(index, 1); // Remove the plugin
|
|
1734
|
+
}
|
|
1735
|
+
});
|
|
1736
|
+
// Step 3: Register user plugins
|
|
1737
|
+
plugins === null || plugins === void 0 ? void 0 : plugins.forEach(userPlugin => {
|
|
1738
|
+
// check if plugin already exists, if so, skip
|
|
1739
|
+
const existingPlugin = this.internalPlugins.find(createdPlugin => createdPlugin instanceof userPlugin);
|
|
1740
|
+
if (existingPlugin) {
|
|
1741
|
+
return;
|
|
1742
|
+
}
|
|
1743
|
+
this.add(new userPlugin(element, pluginData));
|
|
1744
|
+
});
|
|
1745
|
+
}
|
|
1746
|
+
/**
|
|
1747
|
+
* Get plugin by class
|
|
1748
|
+
*/
|
|
1749
|
+
getByClass(pluginClass) {
|
|
1750
|
+
return this.internalPlugins.find(p => p instanceof pluginClass);
|
|
1751
|
+
}
|
|
1752
|
+
/**
|
|
1753
|
+
* Remove plugin
|
|
1754
|
+
*/
|
|
1755
|
+
remove(plugin) {
|
|
1756
|
+
var _a, _b;
|
|
1757
|
+
const index = this.internalPlugins.indexOf(plugin);
|
|
1758
|
+
if (index > -1) {
|
|
1759
|
+
(_b = (_a = this.internalPlugins[index]).destroy) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
1760
|
+
this.internalPlugins.splice(index, 1);
|
|
1761
|
+
}
|
|
1762
|
+
}
|
|
1763
|
+
/**
|
|
1764
|
+
* Remove all plugins
|
|
1765
|
+
*/
|
|
1766
|
+
destroy() {
|
|
1767
|
+
this.internalPlugins.forEach(p => { var _a; return (_a = p.destroy) === null || _a === void 0 ? void 0 : _a.call(p); });
|
|
1768
|
+
this.internalPlugins = [];
|
|
1769
|
+
}
|
|
1770
|
+
}
|
|
1771
|
+
|
|
1694
1772
|
const revoGridStyleCss = ".revo-drag-icon{width:11px;opacity:0.8}.revo-drag-icon::before{content:\"::\"}.revo-alt-icon{-webkit-mask-image:url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E\");mask-image:url(\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg viewBox='0 0 384 383' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E%3Cg%3E%3Cpath d='M192.4375,383 C197.424479,383 201.663411,381.254557 205.154297,377.763672 L205.154297,377.763672 L264.25,318.667969 C270.234375,312.683594 271.605794,306.075846 268.364258,298.844727 C265.122721,291.613607 259.51237,287.998047 251.533203,287.998047 L251.533203,287.998047 L213.382812,287.998047 L213.382812,212.445312 L288.935547,212.445312 L288.935547,250.595703 C288.935547,258.57487 292.551107,264.185221 299.782227,267.426758 C307.013346,270.668294 313.621094,269.296875 319.605469,263.3125 L319.605469,263.3125 L378.701172,204.216797 C382.192057,200.725911 383.9375,196.486979 383.9375,191.5 C383.9375,186.513021 382.192057,182.274089 378.701172,178.783203 L378.701172,178.783203 L319.605469,119.6875 C313.621094,114.201823 307.013346,112.955078 299.782227,115.947266 C292.551107,118.939453 288.935547,124.42513 288.935547,132.404297 L288.935547,132.404297 L288.935547,170.554688 L213.382812,170.554688 L213.382812,95.0019531 L251.533203,95.0019531 C259.51237,95.0019531 264.998047,91.3863932 267.990234,84.1552734 C270.982422,76.9241536 269.735677,70.3164062 264.25,64.3320312 L264.25,64.3320312 L205.154297,5.23632812 C201.663411,1.74544271 197.424479,0 192.4375,0 C187.450521,0 183.211589,1.74544271 179.720703,5.23632812 L179.720703,5.23632812 L120.625,64.3320312 C114.640625,70.3164062 113.269206,76.9241536 116.510742,84.1552734 C119.752279,91.3863932 125.36263,95.0019531 133.341797,95.0019531 L133.341797,95.0019531 L171.492188,95.0019531 L171.492188,170.554688 L95.9394531,170.554688 L95.9394531,132.404297 C95.9394531,124.42513 92.3238932,118.814779 85.0927734,115.573242 C77.8616536,112.331706 71.2539062,113.703125 65.2695312,119.6875 L65.2695312,119.6875 L6.17382812,178.783203 C2.68294271,182.274089 0.9375,186.513021 0.9375,191.5 C0.9375,196.486979 2.68294271,200.725911 6.17382812,204.216797 L6.17382812,204.216797 L65.2695312,263.3125 C71.2539062,268.798177 77.8616536,270.044922 85.0927734,267.052734 C92.3238932,264.060547 95.9394531,258.57487 95.9394531,250.595703 L95.9394531,250.595703 L95.9394531,212.445312 L171.492188,212.445312 L171.492188,287.998047 L133.341797,287.998047 C125.36263,287.998047 119.876953,291.613607 116.884766,298.844727 C113.892578,306.075846 115.139323,312.683594 120.625,318.667969 L120.625,318.667969 L179.720703,377.763672 C183.211589,381.254557 187.450521,383 192.4375,383 Z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E\");width:11px;height:11px;background-size:cover;background-repeat:no-repeat}.arrow-down{position:absolute;right:5px;top:0}.arrow-down svg{width:8px;margin-top:5px;margin-left:5px;opacity:0.4}.cell-value-wrapper{margin-right:10px;overflow:hidden;text-overflow:ellipsis}.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#6200ee;height:32px;line-height:32px;padding:0 15px;outline:0;border:0;border-radius:7px;box-sizing:border-box;cursor:pointer}.revo-button.green{background-color:#009037;border:1px solid #00772d}.revo-button.red{background-color:#E0662E;border:1px solid #d55920}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.light{border:1px solid #cedefa;line-height:30px;background:none;color:#000;box-shadow:none}revo-grid[theme=default],revo-grid:not([theme]){border:1px solid #cecece;font-size:12px}revo-grid[theme=default] revogr-header,revo-grid:not([theme]) revogr-header{text-align:center;line-height:30px;background-color:#f8f9fa}revo-grid[theme=default] revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{box-shadow:none}revo-grid[theme=default] revogr-header .header-rgRow,revo-grid[theme=default] revogr-header .group-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .group-rgRow{text-transform:uppercase;font-size:12px;color:#000}revo-grid[theme=default] revogr-header .header-rgRow,revo-grid:not([theme]) revogr-header .header-rgRow{height:30px;box-shadow:0 -1px 0 0 #cecece inset}revo-grid[theme=default] revogr-header .rgHeaderCell,revo-grid:not([theme]) revogr-header .rgHeaderCell{box-shadow:-1px 0 0 0 #cecece inset, 0 -1px 0 0 #cecece, 0 -1px 0 0 #cecece inset}revo-grid[theme=default] revogr-header .rgHeaderCell.focused-cell,revo-grid:not([theme]) revogr-header .rgHeaderCell.focused-cell{background:rgba(233, 234, 237, 0.5)}revo-grid[theme=default] .rowHeaders,revo-grid:not([theme]) .rowHeaders{background-color:#f8f9fa}revo-grid[theme=default] .rowHeaders revogr-data .rgCell,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell{color:#000}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:first-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:first-child{box-shadow:0 -1px 0 0 #cecece inset}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:not(:first-child),revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:not(:first-child){box-shadow:0 -1px 0 0 #cecece inset, 1px 0 0 0 #cecece inset}revo-grid[theme=default] .rowHeaders revogr-data .rgCell:last-child,revo-grid:not([theme]) .rowHeaders revogr-data .rgCell:last-child{border-right:1px solid #cecece}revo-grid[theme=default] .rowHeaders revogr-data revogr-header,revo-grid:not([theme]) .rowHeaders revogr-data revogr-header{box-shadow:0 -1px 0 0 #cecece inset}revo-grid[theme=default] revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart revogr-data .rgRow .rgCell:last-child{box-shadow:0 -1px 0 0 #e2e3e3 inset, -1px 0 0 0 #cecece inset}revo-grid[theme=default] revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) revogr-viewport-scroll.colPinStart .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 #cecece inset, -1px 0 0 0 #cecece inset}revo-grid[theme=default] revogr-viewport-scroll.colPinEnd,revo-grid[theme=default] revogr-viewport-scroll.colPinEnd revogr-header,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd,revo-grid:not([theme]) revogr-viewport-scroll.colPinEnd revogr-header{box-shadow:1px 0 0 #cecece inset}revo-grid[theme=default] .footer-wrapper revogr-data .rgRow:first-child .rgCell,revo-grid:not([theme]) .footer-wrapper revogr-data .rgRow:first-child .rgCell{box-shadow:0 1px 0 0 #e2e3e3 inset, -1px 0 0 0 #e2e3e3 inset, 0 -1px 0 0 #e2e3e3 inset}revo-grid[theme=default] revogr-data,revo-grid:not([theme]) revogr-data{text-align:center}revo-grid[theme=default] revogr-data .revo-draggable,revo-grid:not([theme]) revogr-data .revo-draggable{float:left}revo-grid[theme=default] revogr-data .rgRow,revo-grid:not([theme]) revogr-data .rgRow{line-height:27px}revo-grid[theme=default] revogr-data .rgRow.focused-rgRow,revo-grid:not([theme]) revogr-data .rgRow.focused-rgRow{background-color:rgba(233, 234, 237, 0.5)}revo-grid[theme=default] revogr-data .rgCell,revo-grid:not([theme]) revogr-data .rgCell{box-shadow:0 -1px 0 0 #e2e3e3 inset, -1px 0 0 0 #e2e3e3 inset}revo-grid[theme=default] revogr-data .rgCell.disabled,revo-grid:not([theme]) revogr-data .rgCell.disabled{background-color:0 -1px 0 0 #e2e3e3 inset, -1px 0 0 0 #e2e3e3 inset}revo-grid[theme=material]{font-family:Nunito, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}revo-grid[theme=material] revogr-header{line-height:50px;font-weight:600;text-align:left}revo-grid[theme=material] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=material] revogr-header .header-rgRow{height:50px}revo-grid[theme=material] revogr-data{text-align:left}revo-grid[theme=material] revogr-data .rgRow{line-height:42px}revo-grid[theme=material] revogr-data .rgCell{padding:0 15px}revo-grid[theme=material] .rowHeaders{background-color:#f7faff}revo-grid[theme=material] .rowHeaders revogr-data .rgCell{color:#757a82}revo-grid[theme=material] revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=material] revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 #f1f1f1, 0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=material] revogr-header .rgHeaderCell.sortable:hover{background-color:#f1f1f1}revo-grid[theme=material] revogr-header .rgHeaderCell.focused-cell{background:rgba(233, 234, 237, 0.5)}revo-grid[theme=material] .footer-wrapper revogr-data{box-shadow:0 -1px 0 #f1f1f1}revo-grid[theme=material] revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 #f1f1f1 inset}revo-grid[theme=material] revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 #f1f1f1}revo-grid[theme=material] revogr-data .rgRow{box-shadow:0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=material] revogr-data .rgRow.focused-rgRow{background-color:rgba(233, 234, 237, 0.5)}revo-grid[theme=material] revogr-data .rgCell{color:rgba(0, 0, 0, 0.87)}revo-grid[theme=material] revogr-data .rgCell.disabled{background-color:#f7f7f7}revo-grid[theme=darkMaterial]{font-family:Nunito, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#d8d8d8}revo-grid[theme=darkMaterial] revogr-header{line-height:50px;font-weight:600;text-align:left}revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=darkMaterial] revogr-header .header-rgRow{height:50px}revo-grid[theme=darkMaterial] revogr-data{text-align:left}revo-grid[theme=darkMaterial] revogr-data .rgRow{line-height:42px}revo-grid[theme=darkMaterial] revogr-data .rgCell{padding:0 15px}revo-grid[theme=darkMaterial] .rowHeaders{background-color:rgba(40, 39, 43, 0.8)}revo-grid[theme=darkMaterial] .rowHeaders revogr-data .rgCell{color:rgba(216, 216, 216, 0.8)}revo-grid[theme=darkMaterial] revogr-edit{background-color:#28272b}revo-grid[theme=darkMaterial] revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 #404040 inset}revo-grid[theme=darkMaterial] revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 #404040, 0 -1px 0 0 #404040 inset}revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell.sortable:hover{background-color:rgba(64, 64, 64, 0.5)}revo-grid[theme=darkMaterial] revogr-header .rgHeaderCell.focused-cell{background:rgba(115, 148, 160, 0.15)}revo-grid[theme=darkMaterial] .footer-wrapper revogr-data{box-shadow:0 -1px 0 #404040}revo-grid[theme=darkMaterial] revogr-data .rgCell{color:rgba(216, 216, 216, 0.9)}revo-grid[theme=darkMaterial] revogr-data .rgRow{box-shadow:0 -1px 0 0 #404040 inset}revo-grid[theme=darkMaterial] revogr-data .rgRow.focused-rgRow{background-color:rgba(115, 148, 160, 0.15)}revo-grid[theme=darkMaterial] revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 #404040 inset}revo-grid[theme=darkMaterial] revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 #404040}revo-grid[theme=darkCompact]{font-family:Nunito, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";color:#d8d8d8}revo-grid[theme=darkCompact] revogr-header{line-height:45px;font-weight:600;text-align:left}revo-grid[theme=darkCompact] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=darkCompact] revogr-header .header-rgRow{height:45px}revo-grid[theme=darkCompact] revogr-data{text-align:left}revo-grid[theme=darkCompact] revogr-data .rgRow{line-height:32px}revo-grid[theme=darkCompact] revogr-data .rgCell{padding:0 15px}revo-grid[theme=darkCompact] .rowHeaders{background-color:rgba(40, 39, 43, 0.8)}revo-grid[theme=darkCompact] .rowHeaders revogr-data .rgCell{color:rgba(216, 216, 216, 0.8)}revo-grid[theme=darkCompact] revogr-edit{background-color:#28272b}revo-grid[theme=darkCompact] revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 #404040 inset}revo-grid[theme=darkCompact] revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 #404040, 0 -1px 0 0 #404040 inset}revo-grid[theme=darkCompact] revogr-header .rgHeaderCell.sortable:hover{background-color:rgba(64, 64, 64, 0.5)}revo-grid[theme=darkCompact] revogr-header .rgHeaderCell.focused-cell{background:rgba(115, 148, 160, 0.15)}revo-grid[theme=darkCompact] .footer-wrapper revogr-data{box-shadow:0 -1px 0 #404040}revo-grid[theme=darkCompact] revogr-data .rgCell{color:rgba(216, 216, 216, 0.9)}revo-grid[theme=darkCompact] revogr-data .rgRow{box-shadow:0 -1px 0 0 #404040 inset}revo-grid[theme=darkCompact] revogr-data .rgRow.focused-rgRow{background-color:rgba(115, 148, 160, 0.15)}revo-grid[theme=darkCompact] revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 #404040 inset}revo-grid[theme=darkCompact] revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 #404040}revo-grid[theme=compact]{font-family:Nunito, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"}revo-grid[theme=compact] revogr-header{line-height:45px;font-weight:600;text-align:left}revo-grid[theme=compact] revogr-header .rgHeaderCell{padding:0 15px;text-overflow:ellipsis}revo-grid[theme=compact] revogr-header .header-rgRow{height:45px}revo-grid[theme=compact] revogr-data{text-align:left}revo-grid[theme=compact] revogr-data .rgRow{line-height:32px}revo-grid[theme=compact] revogr-data .rgCell{padding:0 15px}revo-grid[theme=compact] .rowHeaders{background-color:#f7faff}revo-grid[theme=compact] .rowHeaders revogr-data .rgCell{color:#757a82}revo-grid[theme=compact] revogr-header .header-rgRow.group{box-shadow:0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=compact] revogr-header .header-rgRow:not(.group){box-shadow:0 -1px 0 0 #f1f1f1, 0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=compact] revogr-header .rgHeaderCell.sortable:hover{background-color:#f1f1f1}revo-grid[theme=compact] revogr-header .rgHeaderCell.focused-cell{background:rgba(233, 234, 237, 0.5)}revo-grid[theme=compact] .footer-wrapper revogr-data{box-shadow:0 -1px 0 #f1f1f1}revo-grid[theme=compact] revogr-viewport-scroll.colPinStart{box-shadow:-1px 0 0 #f1f1f1 inset}revo-grid[theme=compact] revogr-viewport-scroll.colPinEnd{box-shadow:-1px 0 0 #f1f1f1}revo-grid[theme=compact] revogr-data .rgRow{box-shadow:0 -1px 0 0 #f1f1f1 inset}revo-grid[theme=compact] revogr-data .rgRow.focused-rgRow{background-color:rgba(233, 234, 237, 0.5)}revo-grid[theme=compact] revogr-data .rgCell{color:rgba(0, 0, 0, 0.87)}revo-grid[theme=compact] revogr-data .rgCell.disabled{background-color:#f7f7f7}revo-grid[theme=compact] revo-dropdown .rv-dr-root{padding:0px 9px}revo-grid{display:block;height:100%;min-height:300px;font-family:Helvetica, Arial, Sans-Serif, serif;font-size:14px;position:relative;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:flex;flex-direction:column;width:100%;height:100%}revo-grid .attribution{position:absolute;bottom:0;left:0;right:0;z-index:1000;width:0;height:0;border-left:4px solid rgba(38, 106, 232, 0.9);border-bottom:4px solid rgba(38, 106, 232, 0.9);border-top:4px solid transparent;border-right:4px solid transparent;cursor:pointer}revo-grid .attribution .value{position:absolute;bottom:0;left:0;background-color:rgba(255, 255, 255, 0.9);padding:4px;border-radius:4px;box-shadow:0 1px 10px rgba(0, 0, 0, 0.2);white-space:nowrap;text-decoration:none;color:black;letter-spacing:0.3px;font-size:11px;opacity:0;width:4px;overflow:hidden;transition:opacity 0.5s ease-in-out, width 0.3s ease-in-out}revo-grid .attribution:hover .value{width:63px;opacity:1}revo-grid.column-draggable.column-drag-start:hover,revo-grid.column-draggable.column-drag-start *:hover{cursor:grabbing}revo-grid .footer-wrapper,revo-grid .header-wrapper{width:100%}revo-grid .footer-wrapper revogr-data,revo-grid .header-wrapper revogr-data{z-index:3}revo-grid revo-dropdown{width:100%}revo-grid revo-dropdown .rv-dr-root{max-height:100%}revo-grid revo-dropdown.shrink label{opacity:0}revo-grid .viewports{max-width:100%;display:flex;flex-direction:row;align-items:flex-start;flex-grow:1}revo-grid .main-viewport{flex-grow:1;height:0;display:flex;justify-content:space-between;flex-direction:row}revo-grid .draggable{position:fixed;height:30px;line-height:30px;background:#fff;border-radius:3px;display:block;z-index:100;margin-top:5px;margin-right:-20px;box-shadow:0 4px 20px 0 rgba(0, 0, 0, 0.15);padding-left:20px;padding-right:5px}revo-grid .draggable.hidden{display:none}revo-grid .draggable .revo-alt-icon{background-color:black;position:absolute;left:5px;top:10px}revo-grid .draggable-wrapper.hidden{display:none}revo-grid .drag-position{position:absolute;left:0;right:0;height:1px;z-index:2;background:gray;pointer-events:none}revo-grid .drag-position-y{position:absolute;top:0;left:0;bottom:0;width:1px;z-index:2;background:gray;pointer-events:none}revo-grid .drag-auto-scroll-y{pointer-events:none;position:absolute;left:0;top:0;height:50px;width:1px}revo-grid .clipboard{position:absolute;left:0;top:0}revo-grid revogr-scroll-virtual{position:relative}revo-grid revogr-scroll-virtual.vertical,revo-grid revogr-scroll-virtual.horizontal{z-index:3}";
|
|
1695
1773
|
const RevoGridStyle0 = revoGridStyleCss;
|
|
1696
1774
|
|
|
@@ -1735,13 +1813,9 @@ const RevoGridComponent = class {
|
|
|
1735
1813
|
this.additionaldatachanged = index$1.createEvent(this, "additionaldatachanged", 7);
|
|
1736
1814
|
this.afterthemechanged = index$1.createEvent(this, "afterthemechanged", 7);
|
|
1737
1815
|
this.extraElements = [];
|
|
1816
|
+
this.pluginService = new PluginService();
|
|
1738
1817
|
this.viewport = null;
|
|
1739
1818
|
this.isInited = false;
|
|
1740
|
-
/**
|
|
1741
|
-
* Plugins
|
|
1742
|
-
* Define plugins collection
|
|
1743
|
-
*/
|
|
1744
|
-
this.internalPlugins = [];
|
|
1745
1819
|
this.rowHeaders = undefined;
|
|
1746
1820
|
this.frameSize = 1;
|
|
1747
1821
|
this.rowSize = 0;
|
|
@@ -1967,19 +2041,19 @@ const RevoGridComponent = class {
|
|
|
1967
2041
|
* Clear current grid focus. Grid has no longer focus on it.
|
|
1968
2042
|
*/
|
|
1969
2043
|
async clearFocus() {
|
|
1970
|
-
var _a;
|
|
2044
|
+
var _a, _b;
|
|
1971
2045
|
const focused = (_a = this.viewport) === null || _a === void 0 ? void 0 : _a.getFocused();
|
|
1972
2046
|
const event = this.beforefocuslost.emit(focused);
|
|
1973
2047
|
if (event.defaultPrevented) {
|
|
1974
2048
|
return;
|
|
1975
2049
|
}
|
|
1976
|
-
this.selectionStoreConnector.clearAll();
|
|
2050
|
+
(_b = this.selectionStoreConnector) === null || _b === void 0 ? void 0 : _b.clearAll();
|
|
1977
2051
|
}
|
|
1978
2052
|
/**
|
|
1979
2053
|
* Get all active plugins instances
|
|
1980
2054
|
*/
|
|
1981
2055
|
async getPlugins() {
|
|
1982
|
-
return
|
|
2056
|
+
return this.pluginService.get();
|
|
1983
2057
|
}
|
|
1984
2058
|
/**
|
|
1985
2059
|
* Get the currently focused cell.
|
|
@@ -2281,14 +2355,7 @@ const RevoGridComponent = class {
|
|
|
2281
2355
|
* Grouping
|
|
2282
2356
|
*/
|
|
2283
2357
|
groupingChanged(newVal = {}) {
|
|
2284
|
-
|
|
2285
|
-
for (let p of this.internalPlugins) {
|
|
2286
|
-
const isGrouping = p;
|
|
2287
|
-
if (!!isGrouping.setGrouping) {
|
|
2288
|
-
grPlugin = isGrouping;
|
|
2289
|
-
break;
|
|
2290
|
-
}
|
|
2291
|
-
}
|
|
2358
|
+
const grPlugin = this.pluginService.getByClass(GroupingRowPlugin);
|
|
2292
2359
|
grPlugin === null || grPlugin === void 0 ? void 0 : grPlugin.setGrouping(newVal || {});
|
|
2293
2360
|
}
|
|
2294
2361
|
/**
|
|
@@ -2301,25 +2368,21 @@ const RevoGridComponent = class {
|
|
|
2301
2368
|
if (isStretch === 'false') {
|
|
2302
2369
|
isStretch = false;
|
|
2303
2370
|
}
|
|
2304
|
-
|
|
2371
|
+
const pluginData = this.getPluginData();
|
|
2372
|
+
if (!pluginData) {
|
|
2373
|
+
return;
|
|
2374
|
+
}
|
|
2375
|
+
const stretch = this.pluginService.getByClass(column_drag_plugin.StretchColumn);
|
|
2305
2376
|
if ((typeof isStretch === 'boolean' && isStretch) || isStretch === 'true') {
|
|
2306
2377
|
if (!stretch) {
|
|
2307
|
-
|
|
2308
|
-
data: this.dataProvider,
|
|
2309
|
-
column: this.columnProvider,
|
|
2310
|
-
dimension: this.dimensionProvider,
|
|
2311
|
-
viewport: this.viewportProvider,
|
|
2312
|
-
selection: this.selectionStoreConnector,
|
|
2313
|
-
};
|
|
2314
|
-
this.internalPlugins.push(new column_drag_plugin.StretchColumn(this.element, pluginData));
|
|
2378
|
+
this.pluginService.add(new column_drag_plugin.StretchColumn(this.element, pluginData));
|
|
2315
2379
|
}
|
|
2316
2380
|
else if (column_drag_plugin.isStretchPlugin(stretch)) {
|
|
2317
2381
|
stretch.applyStretch(this.columnProvider.getRawColumns());
|
|
2318
2382
|
}
|
|
2319
2383
|
}
|
|
2320
2384
|
else if (stretch) {
|
|
2321
|
-
|
|
2322
|
-
this.internalPlugins.splice(index, 1);
|
|
2385
|
+
this.pluginService.remove(stretch);
|
|
2323
2386
|
}
|
|
2324
2387
|
}
|
|
2325
2388
|
applyFilter(cfg) {
|
|
@@ -2337,21 +2400,11 @@ const RevoGridComponent = class {
|
|
|
2337
2400
|
additionalDataChanged(data) {
|
|
2338
2401
|
this.additionaldatachanged.emit(data);
|
|
2339
2402
|
}
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
}
|
|
2346
|
-
// todo: remove old plugins if any was removed based on _prevPlugins
|
|
2347
|
-
// register user plugins
|
|
2348
|
-
plugins === null || plugins === void 0 ? void 0 : plugins.forEach(userPlugin => {
|
|
2349
|
-
const existingPlugin = this.internalPlugins.find(createdPlugin => createdPlugin instanceof userPlugin);
|
|
2350
|
-
if (existingPlugin) {
|
|
2351
|
-
return;
|
|
2352
|
-
}
|
|
2353
|
-
this.internalPlugins.push(new userPlugin(this.element, pluginData));
|
|
2354
|
-
});
|
|
2403
|
+
/**
|
|
2404
|
+
* User can add plugins via plugins property
|
|
2405
|
+
*/
|
|
2406
|
+
pluginsChanged(plugins = [], prevPlugins) {
|
|
2407
|
+
this.pluginService.addUserPluginsAndCreate(this.element, plugins, prevPlugins, this.getPluginData());
|
|
2355
2408
|
}
|
|
2356
2409
|
// #endregion
|
|
2357
2410
|
// #region Plugins
|
|
@@ -2363,35 +2416,39 @@ const RevoGridComponent = class {
|
|
|
2363
2416
|
if (!pluginData) {
|
|
2364
2417
|
return;
|
|
2365
2418
|
}
|
|
2419
|
+
// register system plugins
|
|
2420
|
+
this.setCorePlugins(pluginData);
|
|
2421
|
+
// register user plugins
|
|
2422
|
+
this.pluginsChanged(this.plugins);
|
|
2423
|
+
}
|
|
2424
|
+
setCorePlugins(pluginData) {
|
|
2366
2425
|
if (this.accessible) {
|
|
2367
|
-
this.
|
|
2426
|
+
this.pluginService.add(new WCAGPlugin(this.element, pluginData));
|
|
2368
2427
|
}
|
|
2369
2428
|
// register auto size plugin
|
|
2370
2429
|
if (this.autoSizeColumn) {
|
|
2371
|
-
this.
|
|
2430
|
+
this.pluginService.add(new column_drag_plugin.AutoSizeColumnPlugin(this.element, pluginData, typeof this.autoSizeColumn === 'object'
|
|
2372
2431
|
? this.autoSizeColumn
|
|
2373
2432
|
: undefined));
|
|
2374
2433
|
}
|
|
2375
2434
|
// register filter plugin
|
|
2376
2435
|
if (this.filter) {
|
|
2377
|
-
this.
|
|
2436
|
+
this.pluginService.add(new column_drag_plugin.FilterPlugin(this.element, pluginData, typeof this.filter === 'object' ? this.filter : undefined));
|
|
2378
2437
|
}
|
|
2379
2438
|
// register export plugin
|
|
2380
2439
|
if (this.exporting) {
|
|
2381
|
-
this.
|
|
2440
|
+
this.pluginService.add(new column_drag_plugin.ExportFilePlugin(this.element, pluginData));
|
|
2382
2441
|
}
|
|
2383
2442
|
// register sorting plugin
|
|
2384
|
-
this.
|
|
2443
|
+
this.pluginService.add(new SortingPlugin(this.element, pluginData));
|
|
2385
2444
|
// register grouping plugin
|
|
2386
|
-
this.
|
|
2445
|
+
this.pluginService.add(new GroupingRowPlugin(this.element, pluginData));
|
|
2387
2446
|
if (this.canMoveColumns) {
|
|
2388
|
-
this.
|
|
2447
|
+
this.pluginService.add(new column_drag_plugin.ColumnPlugin(this.element, pluginData));
|
|
2389
2448
|
}
|
|
2390
|
-
// register user plugins
|
|
2391
|
-
this.pluginsChanged(this.plugins);
|
|
2392
2449
|
}
|
|
2393
2450
|
getPluginData() {
|
|
2394
|
-
if (!this.dimensionProvider || !this.dataProvider || !this.columnProvider || !this.viewportProvider) {
|
|
2451
|
+
if (!this.dimensionProvider || !this.dataProvider || !this.columnProvider || !this.viewportProvider || !this.selectionStoreConnector) {
|
|
2395
2452
|
return;
|
|
2396
2453
|
}
|
|
2397
2454
|
// pass data provider to plugins
|
|
@@ -2405,8 +2462,7 @@ const RevoGridComponent = class {
|
|
|
2405
2462
|
return pluginData;
|
|
2406
2463
|
}
|
|
2407
2464
|
removePlugins() {
|
|
2408
|
-
this.
|
|
2409
|
-
this.internalPlugins = [];
|
|
2465
|
+
this.pluginService.destroy();
|
|
2410
2466
|
}
|
|
2411
2467
|
// #endregion
|
|
2412
2468
|
// if reconnect to dom we need to set up plugins
|
|
@@ -2477,7 +2533,7 @@ const RevoGridComponent = class {
|
|
|
2477
2533
|
this.aftergridrender.emit();
|
|
2478
2534
|
}
|
|
2479
2535
|
render() {
|
|
2480
|
-
if (!this.dimensionProvider || !this.dataProvider || !this.columnProvider || !this.viewportProvider) {
|
|
2536
|
+
if (!this.dimensionProvider || !this.dataProvider || !this.columnProvider || !this.viewportProvider || !this.selectionStoreConnector) {
|
|
2481
2537
|
return;
|
|
2482
2538
|
}
|
|
2483
2539
|
const contentHeight = this.dimensionProvider.stores['rgRow'].store.get('realSize');
|
|
@@ -2520,10 +2576,11 @@ const RevoGridComponent = class {
|
|
|
2520
2576
|
// Render viewport data (vertical sections)
|
|
2521
2577
|
view.dataPorts.forEach(data => {
|
|
2522
2578
|
const key = `${data.type}_${view.type}`;
|
|
2523
|
-
const dataView = (index$1.h("revogr-overlay-selection", Object.assign({}, data, { isMobileDevice: isMobile, selectionStore: data.segmentSelectionStore, onSelectall: () => this.selectionStoreConnector.selectAll(), editors: this.editors, readonly: this.readonly, range: this.range, useClipboard: this.useClipboard, applyChangesOnClose: this.applyOnClose, additionalData: this.additionalData, slot: data.slot, onBeforenextvpfocus: (e) => this.selectionStoreConnector.beforeNextFocusCell(e.detail), onCanceledit: () => this.selectionStoreConnector.setEdit(false), onSetedit: ({ detail }) => {
|
|
2579
|
+
const dataView = (index$1.h("revogr-overlay-selection", Object.assign({}, data, { isMobileDevice: isMobile, selectionStore: data.segmentSelectionStore, onSelectall: () => { var _a; return (_a = this.selectionStoreConnector) === null || _a === void 0 ? void 0 : _a.selectAll(); }, editors: this.editors, readonly: this.readonly, range: this.range, useClipboard: this.useClipboard, applyChangesOnClose: this.applyOnClose, additionalData: this.additionalData, slot: data.slot, onBeforenextvpfocus: (e) => { var _a; return (_a = this.selectionStoreConnector) === null || _a === void 0 ? void 0 : _a.beforeNextFocusCell(e.detail); }, onCanceledit: () => { var _a; return (_a = this.selectionStoreConnector) === null || _a === void 0 ? void 0 : _a.setEdit(false); }, onSetedit: ({ detail }) => {
|
|
2580
|
+
var _a;
|
|
2524
2581
|
const event = this.beforeeditstart.emit(detail);
|
|
2525
2582
|
if (!event.defaultPrevented) {
|
|
2526
|
-
this.selectionStoreConnector.setEdit(detail.val);
|
|
2583
|
+
(_a = this.selectionStoreConnector) === null || _a === void 0 ? void 0 : _a.setEdit(detail.val);
|
|
2527
2584
|
}
|
|
2528
2585
|
} }), index$1.h("revogr-data", Object.assign({}, data, { colType: view.type, key: key, readonly: this.readonly, range: this.range, rowClass: this.rowClass, rowSelectionStore: data.rowSelectionStore, additionalData: this.additionalData, jobsBeforeRender: this.jobsBeforeRender, slot: viewport_helpers.DATA_SLOT }), index$1.h("slot", { name: `data-${view.type}-${data.type}` })), index$1.h("revogr-temp-range", { selectionStore: data.segmentSelectionStore, dimensionRow: data.dimensionRow, dimensionCol: data.dimensionCol }), index$1.h("revogr-focus", { colData: data.colData, dataStore: data.dataStore, focusTemplate: this.focusTemplate, rowType: data.type, colType: view.type, selectionStore: data.segmentSelectionStore, dimensionRow: data.dimensionRow, dimensionCol: data.dimensionCol }, index$1.h("slot", { name: `focus-${view.type}-${data.type}` }))));
|
|
2529
2586
|
dataViews.push(dataView);
|
|
@@ -2545,7 +2602,8 @@ const RevoGridComponent = class {
|
|
|
2545
2602
|
} }, index$1.h("div", { class: "viewports" }, index$1.h("slot", { name: "viewport" }), viewportSections, index$1.h("revogr-scroll-virtual", { class: "vertical", dimension: typeRow, viewportStore: viewports[typeRow].store, dimensionStore: dimensions[typeRow].store, ref: el => this.scrollingService.registerElement(el, 'rowScroll'), onScrollvirtual: e => this.scrollingService.proxyScroll(e.detail) }), index$1.h(OrderRenderer, { ref: e => (this.orderService = e) }))), index$1.h("revogr-scroll-virtual", { class: "horizontal", dimension: typeCol, viewportStore: viewports[typeCol].store, dimensionStore: dimensions[typeCol].store, ref: el => this.scrollingService.registerElement(el, 'colScroll'), onScrollvirtual: e => this.scrollingService.proxyScroll(e.detail) }), index$1.h("revogr-extra", { ref: el => (this.extraService = el), nodes: this.extraElements })));
|
|
2546
2603
|
}
|
|
2547
2604
|
disconnectedCallback() {
|
|
2548
|
-
// Remove all plugins, to avoid memory leaks
|
|
2605
|
+
// Remove all plugins, to avoid memory leaks
|
|
2606
|
+
// and unexpected behaviour when the component is removed
|
|
2549
2607
|
this.removePlugins();
|
|
2550
2608
|
}
|
|
2551
2609
|
get element() { return index$1.getElement(this); }
|