@revolist/revogrid 4.22.1 → 4.23.0
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/{cell-renderer-BQdEGQXP.js → cell-renderer-DWJ9Px9f.js} +9 -3
- package/dist/cjs/{column.drag.plugin-RDjQhKCH.js → column.drag.plugin-CaEBDG-Q.js} +391 -256
- package/dist/cjs/{column.service-DXYMehqK.js → column.service-f612L4ql.js} +1 -1
- package/dist/cjs/{dimension.helpers-CiiNnlLa.js → dimension.helpers-B9HgANnM.js} +14 -145
- package/dist/cjs/{edit.utils-CecCfA4E.js → edit.utils-pKeiYFLJ.js} +1 -1
- package/dist/cjs/{header-cell-renderer-DGyBrK8I.js → header-cell-renderer-4yq9_WbM.js} +1 -1
- package/dist/cjs/index-DxaSE5uZ.js +136 -0
- package/dist/cjs/index.cjs.js +37 -32
- package/dist/cjs/revo-grid.cjs.entry.js +35 -15
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +43 -25
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +10 -8
- package/dist/cjs/revogr-data_4.cjs.entry.js +26 -17
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +2 -1
- package/dist/cjs/{text-editor-DnLZW1a-.js → text-editor-B4W-m-r-.js} +3 -3
- package/dist/cjs/{throttle-CfgQFkfR.js → throttle-BCwEuJJq.js} +59 -24
- package/dist/cjs/viewport.helpers-BND76K2j.js +140 -0
- package/dist/cjs/{viewport.store-q6YdR9mg.js → viewport.store-BlKQ4x9H.js} +16 -16
- package/dist/collection/components/data/revogr-data.js +5 -3
- package/dist/collection/components/header/header-group-renderer.js +1 -1
- package/dist/collection/components/header/header-renderer.js +1 -1
- package/dist/collection/components/header/revogr-header-style.css +13 -3
- package/dist/collection/components/header/revogr-header.js +5 -2
- package/dist/collection/components/order/order-row.service.js +6 -5
- package/dist/collection/components/overlay/keyboard.service.js +23 -1
- package/dist/collection/components/overlay/selection.utils.js +8 -6
- package/dist/collection/components/revoGrid/revo-grid.js +6 -5
- package/dist/collection/components/revoGrid/viewport.service.js +2 -1
- package/dist/collection/components/scroll/revogr-viewport-scroll.js +10 -6
- package/dist/collection/components/scrollable/revogr-scroll-virtual.js +4 -10
- package/dist/collection/plugins/filter/filter.panel.js +2 -1
- package/dist/collection/plugins/filter/filter.plugin.js +11 -4
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +25 -1
- package/dist/collection/plugins/moveColumn/column.drag.plugin.js +4 -4
- package/dist/collection/plugins/sorting/sorting.func.js +173 -15
- package/dist/collection/plugins/sorting/sorting.plugin.js +167 -84
- package/dist/collection/plugins/sorting/sorting.sign.js +7 -1
- package/dist/collection/serve/controller.js +98 -37
- package/dist/collection/serve/data.js +273 -144
- package/dist/collection/services/dimension.provider.js +16 -1
- package/dist/collection/services/local.scroll.service.js +59 -24
- package/dist/collection/services/scroll.dimension.helpers.js +83 -0
- package/dist/collection/services/selection.store.connector.js +4 -1
- package/dist/collection/store/dimension/dimension.recalculate.plugin.js +22 -9
- package/dist/collection/store/dimension/dimension.store.js +4 -2
- package/dist/collection/store/vp/viewport.helpers.js +9 -0
- package/dist/collection/store/vp/viewport.store.js +5 -16
- package/dist/collection/utils/store.utils.js +3 -3
- package/dist/{revo-grid/cell-renderer-CALsEsnh.js → esm/cell-renderer-8UiGd-s7.js} +9 -3
- package/dist/esm/{column.drag.plugin-Dy5ztusn.js → column.drag.plugin-BsfhsfmB.js} +388 -255
- package/dist/esm/{column.service-CCvAi5l4.js → column.service-DbpulTog.js} +1 -1
- package/dist/{revo-grid/debounce-BfO9dz9v.js → esm/debounce-PCRWZliA.js} +1 -1
- package/dist/{revo-grid/dimension.helpers-DmIvjIa7.js → esm/dimension.helpers-CGKwSvw6.js} +7 -128
- package/dist/esm/{edit.utils-DYN6XZh8.js → edit.utils-Dnnbd0xG.js} +1 -1
- package/dist/{revo-grid/header-cell-renderer-DU8wKAbg.js → esm/header-cell-renderer-DGI2FAD8.js} +1 -1
- package/dist/esm/index-Db3qZoW5.js +127 -0
- package/dist/esm/index.js +11 -10
- package/dist/esm/revo-grid.entry.js +34 -14
- package/dist/esm/revogr-attribution_7.entry.js +42 -24
- package/dist/esm/revogr-clipboard_3.entry.js +11 -9
- package/dist/esm/revogr-data_4.entry.js +27 -18
- package/dist/esm/revogr-filter-panel.entry.js +3 -2
- package/dist/esm/{text-editor-DpCnd6Fq.js → text-editor-C3RUSwH5.js} +2 -2
- package/dist/esm/{throttle-ERvyruXb.js → throttle-CaUDyxyU.js} +60 -25
- package/dist/esm/viewport.helpers-CoCAvmZs.js +133 -0
- package/dist/{revo-grid/viewport.store-CFjDW-3l.js → esm/viewport.store-COAfzAyu.js} +15 -17
- package/dist/{esm/cell-renderer-CALsEsnh.js → revo-grid/cell-renderer-8UiGd-s7.js} +9 -3
- package/dist/revo-grid/{column.drag.plugin-Dy5ztusn.js → column.drag.plugin-BsfhsfmB.js} +388 -255
- package/dist/revo-grid/{column.service-CCvAi5l4.js → column.service-DbpulTog.js} +1 -1
- package/dist/{esm/debounce-BfO9dz9v.js → revo-grid/debounce-PCRWZliA.js} +1 -1
- package/dist/{esm/dimension.helpers-DmIvjIa7.js → revo-grid/dimension.helpers-CGKwSvw6.js} +7 -128
- package/dist/revo-grid/{edit.utils-DYN6XZh8.js → edit.utils-Dnnbd0xG.js} +1 -1
- package/dist/{esm/header-cell-renderer-DU8wKAbg.js → revo-grid/header-cell-renderer-DGI2FAD8.js} +1 -1
- package/dist/revo-grid/index-Db3qZoW5.js +127 -0
- package/dist/revo-grid/index.esm.js +11 -10
- package/dist/revo-grid/revo-grid.entry.js +34 -14
- package/dist/revo-grid/revogr-attribution_7.entry.js +42 -24
- package/dist/revo-grid/revogr-clipboard_3.entry.js +11 -9
- package/dist/revo-grid/revogr-data_4.entry.js +27 -18
- package/dist/revo-grid/revogr-filter-panel.entry.js +3 -2
- package/dist/revo-grid/{text-editor-DpCnd6Fq.js → text-editor-C3RUSwH5.js} +2 -2
- package/dist/revo-grid/{throttle-ERvyruXb.js → throttle-CaUDyxyU.js} +60 -25
- package/dist/revo-grid/viewport.helpers-CoCAvmZs.js +133 -0
- package/dist/{esm/viewport.store-CFjDW-3l.js → revo-grid/viewport.store-COAfzAyu.js} +15 -17
- package/dist/types/components/header/header-group-renderer.d.ts +1 -0
- package/dist/types/components/header/header-renderer.d.ts +1 -0
- package/dist/types/components/overlay/keyboard.service.d.ts +5 -0
- package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +8 -0
- package/dist/types/plugins/sorting/sorting.func.d.ts +25 -2
- package/dist/types/plugins/sorting/sorting.plugin.d.ts +84 -9
- package/dist/types/plugins/sorting/sorting.sign.d.ts +5 -1
- package/dist/types/plugins/sorting/sorting.types.d.ts +46 -1
- package/dist/types/services/local.scroll.service.d.ts +10 -2
- package/dist/types/services/scroll.dimension.helpers.d.ts +20 -0
- package/dist/types/store/vp/viewport.helpers.d.ts +2 -0
- package/dist/types/types/interfaces.d.ts +11 -0
- package/hydrate/index.js +649 -365
- package/hydrate/index.mjs +649 -365
- package/package.json +1 -1
- package/standalone/column.service.js +1 -1
- package/standalone/data.store.js +1 -1
- package/standalone/debounce.js +1 -1
- package/standalone/dimension.helpers.js +1 -1
- package/standalone/index.js +1 -1
- package/standalone/local.scroll.timer.js +1 -1
- package/standalone/revo-grid.js +1 -1
- package/standalone/revogr-data2.js +1 -1
- package/standalone/revogr-filter-panel.js +1 -1
- package/standalone/revogr-header2.js +1 -1
- package/standalone/revogr-order-editor2.js +1 -1
- package/standalone/revogr-overlay-selection2.js +1 -1
- package/standalone/revogr-row-headers.js +1 -1
- package/standalone/revogr-row-headers2.js +1 -1
- package/standalone/revogr-scroll-virtual2.js +1 -1
- package/standalone/revogr-viewport-scroll2.js +1 -1
- package/standalone/selection.utils.js +1 -1
- package/standalone/throttle.js +1 -1
- package/standalone/toNumber.js +1 -1
- package/dist/cjs/viewport.helpers-BAovztDd.js +0 -58
- package/dist/esm/viewport.helpers-VXhsJZtn.js +0 -52
- package/dist/revo-grid/viewport.helpers-VXhsJZtn.js +0 -52
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{proxyCustomElement as t,HTMLElement as e,createEvent as i,h as r,Host as o,transformTag as s}from"@stencil/core/internal/client";import{d as n}from"./debounce.js";import{i as l,e as a,d}from"./filter.button.js";Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(t){let e=this;do{if(Element.prototype.matches.call(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null});const c="none",h="add-filter",p=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.filterChange=i(this,"filterChange",7),this.resetChange=i(this,"resetChange",7),this.filterCaptionsInternal={title:"Filter by",ok:"Close",save:"Save",reset:"Reset",cancel:"Cancel",add:"Add condition",placeholder:"Enter value...",and:"and",or:"or"},this.isFilterIdSet=!1,this.filterId=0,this.currentFilterId=-1,this.currentFilterType=c,this.filterItems={},this.filterNames={},this.filterEntities={},this.disableDynamicFiltering=!1,this.closeOnOutsideClick=!0,this.debouncedApplyFilter=n((()=>{this.filterChange.emit(this.filterItems)}),400)}onMouseDown(t){if(!this.changes)return;const i=t.composedPath(),r=document.getElementById(h);if(r instanceof HTMLSelectElement){if(i.includes(r))return;r.value=c}this.currentFilterType=c,this.changes&&(this.changes.type=c),this.currentFilterId=-1;const o=!i.includes(this.element);t.target instanceof e&&o&&!l(t.target)&&this.closeOnOutsideClick&&(this.changes=void 0)}async show(t){this.changes=t,this.filterItems=(null==t?void 0:t.filterItems)||{},this.changes&&(this.changes.type=this.changes.type||c)}async getChanges(){return this.changes}componentWillRender(){if(!this.isFilterIdSet){this.isFilterIdSet=!0;const t=Object.keys(this.filterItems);for(const e of t)this.filterId+=this.filterItems[e].length}}getFilterItemsList(){var t,e;const i=null===(t=this.changes)||void 0===t?void 0:t.prop;if(void 0===i)return"";const o=null!==(e=this.filterItems[i])&&void 0!==e?e:[],s=Object.assign(this.filterCaptionsInternal,this.filterCaptions);return r("div",{key:this.filterId},o.map(((t,e)=>{let o;if(!t.hidden)return e!==this.filterItems[i].length-1&&(o=r("div",{onClick:()=>this.toggleFilterAndOr(t.id)},r(a,{text:"and"===t.relation?s.and:s.or}))),r("div",{key:t.id,class:"multi-filter-list"},r("div",{class:{"select-input":!0}},r("select",{class:"select-css select-filter",onChange:t=>this.onFilterTypeChange(t,i,e)},this.renderSelectOptions(this.filterItems[i][e].type,!0)),r("div",{class:"multi-filter-list-action"},o),r("div",{onClick:()=>this.onRemoveFilter(t.id)},r(d,null))),r("div",null,this.renderExtra(i,e)))})),o.filter((t=>!t.hidden)).length>0?r("div",{class:"add-filter-divider"}):"")}autoCorrect(t){var e,i;if(!t)return;const r=t.closest("revo-grid");if(!r)return;const o=t.getBoundingClientRect(),s=r.getBoundingClientRect().right-o.width;o.left>s&&t.offsetLeft&&(t.style.left=s-(null!==(i=null===(e=t.parentElement)||void 0===e?void 0:e.getBoundingClientRect().left)&&void 0!==i?i:0)+"px")}onFilterTypeChange(t,e,i){t.target instanceof HTMLSelectElement&&(this.filterItems[e][i].type=t.target.value,this.filterId++,setTimeout((()=>{const t=document.getElementById("filter-input-"+this.filterItems[e][i].id);t instanceof HTMLInputElement&&t.focus()}),0),this.disableDynamicFiltering||this.debouncedApplyFilter())}onAddNewFilter(t){this.currentFilterType=t.target.value,this.addNewFilterToProp();const e=document.getElementById("add-filter");e&&(e.value=c,this.currentFilterType=c),this.disableDynamicFiltering||this.debouncedApplyFilter()}addNewFilterToProp(){var t;const e=null===(t=this.changes)||void 0===t?void 0:t.prop;(e||0===e)&&(this.filterItems[e]||(this.filterItems[e]=[]),"none"!==this.currentFilterType&&(this.filterId++,this.currentFilterId=this.filterId,this.filterItems[e].push({id:this.currentFilterId,type:this.currentFilterType,value:"",relation:"and"}),setTimeout((()=>{const t=document.getElementById("filter-input-"+this.currentFilterId);t&&t.focus()}),0)))}onSave(){this.filterChange.emit(this.filterItems)}onCancel(){this.changes=void 0}onReset(){var t;this.assertChanges(),this.resetChange.emit(null===(t=this.changes)||void 0===t?void 0:t.prop),this.filterId++}onRemoveFilter(t){var e;this.assertChanges(),this.filterId++;const i=null===(e=this.changes)||void 0===e?void 0:e.prop,r=this.filterItems[null!=i?i:""];if(!r)return;const o=r.findIndex((e=>e.id===t));-1!==o&&(r.splice(o,1),0===r.length&&delete this.filterItems[null!=i?i:""],this.disableDynamicFiltering||this.debouncedApplyFilter())}toggleFilterAndOr(t){var e;this.assertChanges(),this.filterId++;const i=null===(e=this.changes)||void 0===e?void 0:e.prop,r=this.filterItems[null!=i?i:""];if(!r)return;const o=r.findIndex((e=>e.id===t));-1!==o&&(r[o].relation="and"===r[o].relation?"or":"and",this.disableDynamicFiltering||this.debouncedApplyFilter())}assertChanges(){if(!this.changes)throw Error("Changes required per edit")}renderSelectOptions(t,e=!1){if(!this.changes)return;const i=[],o=this.changes.prop,s=new Set;if(Object.entries(this.filterItems).forEach((([t,e])=>{e.forEach((t=>{t.hidden&&s.add(t.type)}))})),!e){const t=Object.assign(this.filterCaptionsInternal,this.filterCaptions);i.push(r("option",{selected:this.currentFilterType===c,value:c},o&&this.filterItems[o]&&this.filterItems[o].length>0?t.add:this.filterNames[c]))}for(let e in this.changes.filterTypes){const o=this.changes.filterTypes[e].filter((t=>!s.has(t)));o.length&&(i.push(...o.map((e=>r("option",{value:e,selected:t===e},this.filterNames[e])))),i.push(r("option",{disabled:!0})))}return i}renderExtra(t,e){const i=this.filterItems[t];if(!i)return"";const o=i=>{this.filterItems[t][e].value=i,this.disableDynamicFiltering||this.debouncedApplyFilter()},s=()=>{const t=document.getElementById("add-filter");t&&(t.value=c,this.currentFilterType=c,this.addNewFilterToProp(),t.focus())},n=Object.assign(this.filterCaptionsInternal,this.filterCaptions),l=this.filterEntities[i[e].type].extra;return"function"==typeof l?l(r,{value:i[e].value,filter:i[e],prop:t,index:e,placeholder:n.placeholder,onInput:t=>{o(t)},onFocus:()=>{s()}}):"input"!==l&&"datepicker"!==l?"":r("input",{id:"filter-input-"+i[e].id,placeholder:n.placeholder,type:"datepicker"===l?"date":"text",value:i[e].value,onInput:t=>{t.target instanceof HTMLInputElement&&o(t.target.value)},onKeyDown:t=>{"enter"!==t.key.toLowerCase()?t.stopPropagation():document.getElementById("add-filter")&&s()}})}render(){var t,e,i;if(!this.changes)return r(o,{style:{display:"none"}});const s={display:"block",left:this.changes.x+"px",top:this.changes.y+"px"},n=Object.assign(this.filterCaptionsInternal,this.filterCaptions);return r(o,{style:s,ref:t=>{var e;!1!==(null===(e=this.changes)||void 0===e?void 0:e.autoCorrect)&&this.autoCorrect(t)}},r("slot",{slot:"header"}),(null===(e=(t=this.changes).extraContent)||void 0===e?void 0:e.call(t,this.changes))||"",!0!==(null===(i=this.changes)||void 0===i?void 0:i.hideDefaultFilters)&&[r("label",null,n.title),r("div",{class:"filter-holder"},this.getFilterItemsList()),r("div",{class:"add-filter"},r("select",{id:h,class:"select-css",onChange:t=>this.onAddNewFilter(t)},this.renderSelectOptions(this.currentFilterType)))],r("slot",null),r("div",{class:"filter-actions"},this.disableDynamicFiltering&&[r("button",{id:"revo-button-save","aria-label":"save",class:"revo-button green",onClick:()=>this.onSave()},n.save),r("button",{id:"revo-button-ok","aria-label":"ok",class:"revo-button green",onClick:()=>this.onCancel()},n.cancel)],!this.disableDynamicFiltering&&[r("button",{id:"revo-button-ok","aria-label":"ok",class:"revo-button green",onClick:()=>this.onCancel()},n.ok),r("button",{id:"revo-button-reset","aria-label":"reset",class:"revo-button outline",onClick:()=>this.onReset()},n.reset)]),r("slot",{slot:"footer"}))}get element(){return this}static get style(){return'.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#4545ff;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}.revo-button.red{background-color:#E0662E}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.outline{border:1px solid #dbdbdb;line-height:30px;background:none;color:#000;box-shadow:none}revo-grid[theme^=dark] .revo-button.outline{border:1px solid #404040;color:#d8d8d8}revogr-filter-panel{position:absolute;display:block;top:0;left:0;z-index:100;max-height:calc(100% - 80px);overflow:auto;opacity:1;transform:none;background-color:var(--revo-grid-filter-panel-bg, #fff);border:1px solid var(--revo-grid-filter-panel-border, #cecece);transform-origin:62px 0px;box-shadow:0 5px 18px -2px var(--revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15));padding:10px;border-radius:8px;min-width:220px;text-align:left;animation:revogr-filter-panel-open 140ms cubic-bezier(0.2, 0, 0, 1)}revogr-filter-panel .filter-holder>div{display:flex;flex-direction:column}revogr-filter-panel label{font-size:13px;display:block;padding:8px 0}revogr-filter-panel select{width:100%}revogr-filter-panel input[type=text]{border:0;min-height:34px;margin:5px 0;background:var(--revo-grid-filter-panel-input-bg, #f3f3f3);border-radius:5px;padding:0 10px;box-sizing:border-box;width:100%}revogr-filter-panel .filter-actions{text-align:right;margin-right:-5px}revogr-filter-panel .filter-actions button{margin-top:10px;margin-right:5px}@keyframes revogr-filter-panel-open{from{opacity:0;transform:translateY(-4px) scale(0.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){revogr-filter-panel{animation:none}}.rgHeaderCell:hover .rv-filter{transition:opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.rgHeaderCell:hover .rv-filter,.rgHeaderCell .rv-filter.active{opacity:1}.rgHeaderCell .rv-filter{height:24px;width:24px;background:none;border:0;opacity:0;visibility:visible;cursor:pointer;border-radius:4px}.rgHeaderCell .rv-filter.active{color:#10224a}.rgHeaderCell .rv-filter .filter-img{color:gray;width:11px}.select-css{display:block;font-family:sans-serif;line-height:1.3;padding:0.6em 1.4em 0.5em 0.8em;width:100%;max-width:100%;box-sizing:border-box;margin:0;border:1px solid var(--revo-grid-filter-panel-select-border, #d9d9d9);box-shadow:transparent;border-radius:0.5em;appearance:none;background-color:var(--revo-grid-filter-panel-input-bg, #f3f3f3);background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat, repeat;background-position:right 0.7em top 50%, 0 0;background-size:0.65em auto, 100%;}.select-css::-ms-expand{display:none}.select-css:hover{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.select-css:focus{border-color:var(--revo-grid-filter-panel-select-border-hover, #d9d9d9);box-shadow:0 0 1px 3px rgba(59, 153, 252, 0.7);box-shadow:0 0 0 3px -moz-mac-focusring;outline:none}.select-css option{font-weight:normal}.select-css:disabled,.select-css[aria-disabled=true]{color:gray;background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"), linear-gradient(to bottom, #ffffff 0%, #ffffff 100%)}.select-css:disabled:hover,.select-css[aria-disabled=true]{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.multi-filter-list{margin-top:5px;margin-bottom:5px}.multi-filter-list div{white-space:nowrap}.multi-filter-list .multi-filter-list-action{display:flex;justify-content:space-between;align-items:center}.multi-filter-list .and-or-button{margin:0 0 0 10px;min-width:58px;cursor:pointer}.multi-filter-list .trash-button{margin:0 0 -2px 6px;cursor:pointer;width:22px;height:100%;font-size:16px}.multi-filter-list .trash-button .trash-img{width:1em}.add-filter-divider{display:block;margin:0 -10px 10px -10px;border-bottom:1px solid var(--revo-grid-filter-panel-divider, #d9d9d9);height:10px}.select-input{display:flex;justify-content:space-between;align-items:center}'}},[260,"revogr-filter-panel",{filterNames:[16],filterEntities:[16],filterCaptions:[16],disableDynamicFiltering:[4,"disable-dynamic-filtering"],closeOnOutsideClick:[4,"close-on-outside-click"],isFilterIdSet:[32],filterId:[32],currentFilterId:[32],currentFilterType:[32],changes:[32],filterItems:[32],show:[64],getChanges:[64]},[[5,"mousedown","onMouseDown"]]]),u=p,f=function(){"undefined"!=typeof customElements&&["revogr-filter-panel"].forEach((t=>{"revogr-filter-panel"===t&&(customElements.get(s(t))||customElements.define(s(t),p))}))};export{u as RevogrFilterPanel,f as defineCustomElement}
|
|
4
|
+
import{proxyCustomElement as t,HTMLElement as e,createEvent as i,h as r,Host as o,transformTag as s}from"@stencil/core/internal/client";import{d as n}from"./debounce.js";import{i as l,e as a,d}from"./filter.button.js";Element.prototype.matches||(Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),Element.prototype.closest||(Element.prototype.closest=function(t){let e=this;do{if(Element.prototype.matches.call(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null});const c="none",h="add-filter",p=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.filterChange=i(this,"filterChange",7),this.resetChange=i(this,"resetChange",7),this.filterCaptionsInternal={title:"Filter by",ok:"Close",save:"Save",reset:"Reset",cancel:"Cancel",add:"Add condition",placeholder:"Enter value...",and:"and",or:"or"},this.isFilterIdSet=!1,this.filterId=0,this.currentFilterId=-1,this.currentFilterType=c,this.filterItems={},this.filterNames={},this.filterEntities={},this.disableDynamicFiltering=!1,this.closeOnOutsideClick=!0,this.debouncedApplyFilter=n((()=>{this.filterChange.emit(this.filterItems)}),400)}onMouseDown(t){if(!this.changes)return;const i=t.composedPath(),r=document.getElementById(h);if(r instanceof HTMLSelectElement){if(i.includes(r))return;r.value=c}this.currentFilterType=c,this.changes&&(this.changes.type=c),this.currentFilterId=-1;const o=!i.includes(this.element);t.target instanceof e&&o&&!l(t.target)&&this.closeOnOutsideClick&&(this.changes=void 0)}async show(t){this.changes=t,this.filterItems=(null==t?void 0:t.filterItems)||{},this.changes&&(this.changes.type=this.changes.type||c)}async getChanges(){return this.changes}componentWillRender(){if(!this.isFilterIdSet){this.isFilterIdSet=!0;const t=Object.keys(this.filterItems);for(const e of t)this.filterId+=this.filterItems[e].length}}getFilterItemsList(){var t,e;const i=null===(t=this.changes)||void 0===t?void 0:t.prop;if(void 0===i)return"";const o=null!==(e=this.filterItems[i])&&void 0!==e?e:[],s=Object.assign(this.filterCaptionsInternal,this.filterCaptions);return r("div",{key:this.filterId},o.map(((t,e)=>{let o;if(!t.hidden)return e!==this.filterItems[i].length-1&&(o=r("div",{onClick:()=>this.toggleFilterAndOr(t.id)},r(a,{text:"and"===t.relation?s.and:s.or}))),r("div",{key:t.id,class:"multi-filter-list"},r("div",{class:{"select-input":!0}},r("select",{class:"select-css select-filter",onChange:t=>this.onFilterTypeChange(t,i,e)},this.renderSelectOptions(this.filterItems[i][e].type,!0)),r("div",{class:"multi-filter-list-action"},o),r("div",{onClick:()=>this.onRemoveFilter(t.id)},r(d,null))),r("div",null,this.renderExtra(i,e)))})),o.filter((t=>!t.hidden)).length>0?r("div",{class:"add-filter-divider"}):"")}autoCorrect(t){var e,i;if(!t)return;const r=t.closest("revo-grid");if(!r)return;const o=t.getBoundingClientRect(),s=r.getBoundingClientRect().right-o.width;o.left>s&&t.offsetLeft&&(t.style.left=s-(null!==(i=null===(e=t.parentElement)||void 0===e?void 0:e.getBoundingClientRect().left)&&void 0!==i?i:0)+"px")}onFilterTypeChange(t,e,i){t.target instanceof HTMLSelectElement&&(this.filterItems[e][i].type=t.target.value,this.filterId++,setTimeout((()=>{const t=document.getElementById("filter-input-"+this.filterItems[e][i].id);t instanceof HTMLInputElement&&t.focus()}),0),this.disableDynamicFiltering||this.debouncedApplyFilter())}onAddNewFilter(t){this.currentFilterType=t.target.value,this.addNewFilterToProp();const e=document.getElementById("add-filter");e&&(e.value=c,this.currentFilterType=c),this.disableDynamicFiltering||this.debouncedApplyFilter()}addNewFilterToProp(){var t;const e=null===(t=this.changes)||void 0===t?void 0:t.prop;(e||0===e)&&(this.filterItems[e]||(this.filterItems[e]=[]),"none"!==this.currentFilterType&&(this.filterId++,this.currentFilterId=this.filterId,this.filterItems[e].push({id:this.currentFilterId,type:this.currentFilterType,value:"",relation:"and"}),setTimeout((()=>{const t=document.getElementById("filter-input-"+this.currentFilterId);t&&t.focus()}),0)))}onSave(){this.filterChange.emit(this.filterItems)}onCancel(){this.changes=void 0}onReset(){var t;this.assertChanges(),this.resetChange.emit(null===(t=this.changes)||void 0===t?void 0:t.prop),this.filterId++}onRemoveFilter(t){var e;this.assertChanges(),this.filterId++;const i=null===(e=this.changes)||void 0===e?void 0:e.prop,r=this.filterItems[null!=i?i:""];if(!r)return;const o=r.findIndex((e=>e.id===t));-1!==o&&(r.splice(o,1),0===r.length&&delete this.filterItems[null!=i?i:""],this.disableDynamicFiltering||this.debouncedApplyFilter())}toggleFilterAndOr(t){var e;this.assertChanges(),this.filterId++;const i=null===(e=this.changes)||void 0===e?void 0:e.prop,r=this.filterItems[null!=i?i:""];if(!r)return;const o=r.findIndex((e=>e.id===t));-1!==o&&(r[o].relation="and"===r[o].relation?"or":"and",this.disableDynamicFiltering||this.debouncedApplyFilter())}assertChanges(){if(!this.changes)throw Error("Changes required per edit")}renderSelectOptions(t,e=!1){if(!this.changes)return;const i=[],o=this.changes.prop,s=new Set;if(Object.keys(this.filterItems).forEach((t=>{this.filterItems[t].forEach((t=>{t.hidden&&s.add(t.type)}))})),!e){const t=Object.assign(this.filterCaptionsInternal,this.filterCaptions);i.push(r("option",{selected:this.currentFilterType===c,value:c},o&&this.filterItems[o]&&this.filterItems[o].length>0?t.add:this.filterNames[c]))}for(let e in this.changes.filterTypes){const o=this.changes.filterTypes[e].filter((t=>!s.has(t)));o.length&&(i.push(...o.map((e=>r("option",{value:e,selected:t===e},this.filterNames[e])))),i.push(r("option",{disabled:!0})))}return i}renderExtra(t,e){const i=this.filterItems[t];if(!i)return"";const o=i=>{this.filterItems[t][e].value=i,this.disableDynamicFiltering||this.debouncedApplyFilter()},s=()=>{const t=document.getElementById("add-filter");t&&(t.value=c,this.currentFilterType=c,this.addNewFilterToProp(),t.focus())},n=Object.assign(this.filterCaptionsInternal,this.filterCaptions),l=this.filterEntities[i[e].type].extra;return"function"==typeof l?l(r,{value:i[e].value,filter:i[e],prop:t,index:e,placeholder:n.placeholder,onInput:t=>{o(t)},onFocus:()=>{s()}}):"input"!==l&&"datepicker"!==l?"":r("input",{id:"filter-input-"+i[e].id,placeholder:n.placeholder,type:"datepicker"===l?"date":"text",value:i[e].value,onInput:t=>{t.target instanceof HTMLInputElement&&o(t.target.value)},onKeyDown:t=>{"enter"!==t.key.toLowerCase()?t.stopPropagation():document.getElementById("add-filter")&&s()}})}render(){var t,e,i;if(!this.changes)return r(o,{style:{display:"none"}});const s={display:"block",left:this.changes.x+"px",top:this.changes.y+"px"},n=Object.assign(this.filterCaptionsInternal,this.filterCaptions);return r(o,{style:s,ref:t=>{var e;!1!==(null===(e=this.changes)||void 0===e?void 0:e.autoCorrect)&&this.autoCorrect(t)}},r("slot",{slot:"header"}),(null===(e=(t=this.changes).extraContent)||void 0===e?void 0:e.call(t,this.changes))||"",!0!==(null===(i=this.changes)||void 0===i?void 0:i.hideDefaultFilters)&&[r("label",null,n.title),r("div",{class:"filter-holder"},this.getFilterItemsList()),r("div",{class:"add-filter"},r("select",{id:h,class:"select-css",onChange:t=>this.onAddNewFilter(t)},this.renderSelectOptions(this.currentFilterType)))],r("slot",null),r("div",{class:"filter-actions"},this.disableDynamicFiltering&&[r("button",{id:"revo-button-save","aria-label":"save",class:"revo-button green",onClick:()=>this.onSave()},n.save),r("button",{id:"revo-button-ok","aria-label":"ok",class:"revo-button green",onClick:()=>this.onCancel()},n.cancel)],!this.disableDynamicFiltering&&[r("button",{id:"revo-button-ok","aria-label":"ok",class:"revo-button green",onClick:()=>this.onCancel()},n.ok),r("button",{id:"revo-button-reset","aria-label":"reset",class:"revo-button outline",onClick:()=>this.onReset()},n.reset)]),r("slot",{slot:"footer"}))}get element(){return this}static get style(){return'.revo-button{position:relative;overflow:hidden;color:#fff;background-color:#4545ff;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}.revo-button.red{background-color:#E0662E}.revo-button:disabled,.revo-button[disabled]{cursor:not-allowed !important;filter:opacity(0.35) !important}.revo-button.outline{border:1px solid #dbdbdb;line-height:30px;background:none;color:#000;box-shadow:none}revo-grid[theme^=dark] .revo-button.outline{border:1px solid #404040;color:#d8d8d8}revogr-filter-panel{position:absolute;display:block;top:0;left:0;z-index:100;max-height:calc(100% - 80px);overflow:auto;opacity:1;transform:none;background-color:var(--revo-grid-filter-panel-bg, #fff);border:1px solid var(--revo-grid-filter-panel-border, #cecece);transform-origin:62px 0px;box-shadow:0 5px 18px -2px var(--revo-grid-filter-panel-shadow, rgba(0, 0, 0, 0.15));padding:10px;border-radius:8px;min-width:220px;text-align:left;animation:revogr-filter-panel-open 140ms cubic-bezier(0.2, 0, 0, 1)}revogr-filter-panel .filter-holder>div{display:flex;flex-direction:column}revogr-filter-panel label{font-size:13px;display:block;padding:8px 0}revogr-filter-panel select{width:100%}revogr-filter-panel input[type=text]{border:0;min-height:34px;margin:5px 0;background:var(--revo-grid-filter-panel-input-bg, #f3f3f3);border-radius:5px;padding:0 10px;box-sizing:border-box;width:100%}revogr-filter-panel .filter-actions{text-align:right;margin-right:-5px}revogr-filter-panel .filter-actions button{margin-top:10px;margin-right:5px}@keyframes revogr-filter-panel-open{from{opacity:0;transform:translateY(-4px) scale(0.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){revogr-filter-panel{animation:none}}.rgHeaderCell:hover .rv-filter{transition:opacity 267ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, transform 178ms cubic-bezier(0.4, 0, 0.2, 1) 0ms}.rgHeaderCell:hover .rv-filter,.rgHeaderCell .rv-filter.active{opacity:1}.rgHeaderCell .rv-filter{height:24px;width:24px;background:none;border:0;opacity:0;visibility:visible;cursor:pointer;border-radius:4px}.rgHeaderCell .rv-filter.active{color:#10224a}.rgHeaderCell .rv-filter .filter-img{color:gray;width:11px}.select-css{display:block;font-family:sans-serif;line-height:1.3;padding:0.6em 1.4em 0.5em 0.8em;width:100%;max-width:100%;box-sizing:border-box;margin:0;border:1px solid var(--revo-grid-filter-panel-select-border, #d9d9d9);box-shadow:transparent;border-radius:0.5em;appearance:none;background-color:var(--revo-grid-filter-panel-input-bg, #f3f3f3);background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");background-repeat:no-repeat, repeat;background-position:right 0.7em top 50%, 0 0;background-size:0.65em auto, 100%;}.select-css::-ms-expand{display:none}.select-css:hover{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.select-css:focus{border-color:var(--revo-grid-filter-panel-select-border-hover, #d9d9d9);box-shadow:0 0 1px 3px rgba(59, 153, 252, 0.7);box-shadow:0 0 0 3px -moz-mac-focusring;outline:none}.select-css option{font-weight:normal}.select-css:disabled,.select-css[aria-disabled=true]{color:gray;background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"), linear-gradient(to bottom, #ffffff 0%, #ffffff 100%)}.select-css:disabled:hover,.select-css[aria-disabled=true]{border-color:var(--revo-grid-filter-panel-select-border, #d9d9d9)}.multi-filter-list{margin-top:5px;margin-bottom:5px}.multi-filter-list div{white-space:nowrap}.multi-filter-list .multi-filter-list-action{display:flex;justify-content:space-between;align-items:center}.multi-filter-list .and-or-button{margin:0 0 0 10px;min-width:58px;cursor:pointer}.multi-filter-list .trash-button{margin:0 0 -2px 6px;cursor:pointer;width:22px;height:100%;font-size:16px}.multi-filter-list .trash-button .trash-img{width:1em}.add-filter-divider{display:block;margin:0 -10px 10px -10px;border-bottom:1px solid var(--revo-grid-filter-panel-divider, #d9d9d9);height:10px}.select-input{display:flex;justify-content:space-between;align-items:center}'}},[260,"revogr-filter-panel",{filterNames:[16],filterEntities:[16],filterCaptions:[16],disableDynamicFiltering:[4,"disable-dynamic-filtering"],closeOnOutsideClick:[4,"close-on-outside-click"],isFilterIdSet:[32],filterId:[32],currentFilterId:[32],currentFilterType:[32],changes:[32],filterItems:[32],show:[64],getChanges:[64]},[[5,"mousedown","onMouseDown"]]]),u=p,f=function(){"undefined"!=typeof customElements&&["revogr-filter-panel"].forEach((t=>{"revogr-filter-panel"===t&&(customElements.get(s(t))||customElements.define(s(t),p))}))};export{u as RevogrFilterPanel,f as defineCustomElement}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{h as e,proxyCustomElement as t,HTMLElement as i,createEvent as r,transformTag as s}from"@stencil/core/internal/client";import{M as o,D as h,d as n,H as l,F as a,e as d,f as c}from"./consts.js";import"./platform.js";import{a as u}from"./dimension.helpers.js";import{c as v}from"./filter.button.js";import{Q as g}from"./column.service.js";function p(e,t,i){const r=new CustomEvent(t,{detail:i,cancelable:!0,bubbles:!0});return null==e||e.dispatchEvent(r),r}function b(e,t,i){return e.preventDefault(),p(e.target,t,i)}const m=({column:t})=>{var i;return e("i",{class:null!==(i=null==t?void 0:t.order)&&void 0!==i?i:"sort-off"})};var f;!function(e){e.start="resize:start",e.move="resize:move",e.end="resize:end"}(f||(f={}));const z={"resizable-r":{bit:1,cursor:"ew-resize"},"resizable-rb":{bit:3,cursor:"se-resize"},"resizable-b":{bit:2,cursor:"s-resize"},"resizable-lb":{bit:6,cursor:"sw-resize"},"resizable-l":{bit:4,cursor:"w-resize"},"resizable-lt":{bit:12,cursor:"nw-resize"},"resizable-t":{bit:8,cursor:"n-resize"},"resizable-rt":{bit:9,cursor:"ne-resize"}};class w{constructor(e,t){var i,r,s;this.initialProps=e,this.$event=t,this.mouseX=0,this.mouseY=0,this.width=0,this.height=0,this.changeX=0,this.changeY=0,this.disableCalcMap=15,this.props=(s=e,Object.assign(Object.assign({},s),{fitParent:s.fitParent||!1,active:s.active||[],disableAttributes:s.disableAttributes||[],minWidth:s.minWidth||0,minHeight:s.minHeight||0})),this.mouseMoveFunc=this.handleMove.bind(this),this.mouseUpFunc=this.handleUp.bind(this),this.minW=this.props.minWidth,this.minH=this.props.minHeight,this.maxW=null!==(i=this.props.maxWidth)&&void 0!==i?i:0,this.maxH=null!==(r=this.props.maxHeight)&&void 0!==r?r:0,this.parent={width:0,height:0},this.resizeState=0}set(e){this.$el=e,this.props.disableAttributes.forEach((e=>{switch(e){case"l":this.disableCalcMap&=-2;break;case"t":this.disableCalcMap&=-3;break;case"w":this.disableCalcMap&=-5;break;case"h":this.disableCalcMap&=-9}}))}emitEvent(e,t){var i;if(!this.$event)return;const r=null===(i=this.activeResizer)||void 0===i?void 0:i.classList.contains("resizable-l");this.$event(Object.assign({eventName:e,width:this.width+this.changeX*(r?-1:1),height:this.height+this.changeY,changedX:this.changeX,changedY:this.changeY},t))}static isTouchEvent(e){var t;return(null===(t=e.touches)||void 0===t?void 0:t.length)>=0}handleMove(e){var t;if(!this.resizeState)return;let i,r;w.isTouchEvent(e)?(i=e.touches[0].clientY,r=e.touches[0].clientX):(i=e.clientY,r=e.clientX);let s=this.resizeState&z["resizable-r"].bit||this.resizeState&z["resizable-l"].bit;if((this.resizeState&z["resizable-t"].bit||this.resizeState&z["resizable-b"].bit)&&8&this.disableCalcMap){let e=this.changeY+(i-this.mouseY);const t=this.height+e;t<this.minH&&(e=-(this.height-this.minH)),this.maxH&&t>this.maxH&&(e=this.maxH-this.height),this.changeY=e,this.mouseY=i,this.activeResizer&&(this.activeResizer.style.bottom=-this.changeY+"px")}if(s&&4&this.disableCalcMap){const e=null===(t=this.activeResizer)||void 0===t?void 0:t.classList.contains("resizable-l");let i=this.changeX+(r-this.mouseX);const s=this.width+i*(e?-1:1);s<this.minW&&(i=-(this.width-this.minW)),this.maxW&&s>this.maxW&&(i=this.maxW-this.width),this.changeX=i,this.mouseX=r,this.activeResizer&&(e?this.activeResizer.style.left=`${this.changeX}px`:this.activeResizer.style.right=-this.changeX+"px")}this.emitEvent(f.move)}handleDown(e){if(!e.defaultPrevented){e.preventDefault(),this.dropInitial();for(let t in z){const i=e.target;if(this.$el.contains(i)&&(null==i?void 0:i.classList.contains(t))){document.body.style.cursor=z[t].cursor,w.isTouchEvent(e)?this.setInitials(e.touches[0],i):(e.preventDefault&&e.preventDefault(),this.setInitials(e,i)),this.resizeState=z[t].bit,this.emitEvent(f.start);break}}this.bindMove()}}handleUp(e){e.preventDefault(),0!==this.resizeState&&(this.resizeState=0,document.body.style.cursor="",this.emitEvent(f.end)),this.dropInitial(),this.unbindMove()}setInitials({clientX:e,clientY:t},i){var r,s,o,h;const n=getComputedStyle(this.$el);if(this.$el.classList.add("active"),this.activeResizer=i,4&this.disableCalcMap){this.mouseX=e,this.width=this.$el.clientWidth,this.parent.width=null!==(s=null===(r=this.$el.parentElement)||void 0===r?void 0:r.clientWidth)&&void 0!==s?s:0;const t=parseFloat(n.paddingLeft)+parseFloat(n.paddingRight);this.minW=Math.max(t,this.initialProps.minWidth||0),this.initialProps.maxWidth&&(this.maxW=Math.max(this.width,this.initialProps.maxWidth))}if(8&this.disableCalcMap){this.mouseY=t,this.height=this.$el.clientHeight,this.parent.height=null!==(h=null===(o=this.$el.parentElement)||void 0===o?void 0:o.clientHeight)&&void 0!==h?h:0;const e=parseFloat(n.paddingTop)+parseFloat(n.paddingBottom);this.minH=Math.max(e,this.initialProps.minHeight||0),this.initialProps.maxHeight&&(this.maxH=Math.max(this.height,this.initialProps.maxHeight))}}dropInitial(){this.changeX=this.changeY=this.minW=this.minH,this.width=this.height=0,this.activeResizer&&this.activeResizer.removeAttribute("style"),this.$el.classList.remove("active"),this.activeResizer=void 0}bindMove(){document.documentElement.addEventListener("mouseup",this.mouseUpFunc,!0),document.documentElement.addEventListener("touchend",this.mouseUpFunc,!0),document.documentElement.addEventListener("mousemove",this.mouseMoveFunc,!0),document.documentElement.addEventListener("touchmove",this.mouseMoveFunc,!0),document.documentElement.addEventListener("mouseleave",this.mouseUpFunc)}unbindMove(){document.documentElement.removeEventListener("mouseup",this.mouseUpFunc,!0),document.documentElement.removeEventListener("touchend",this.mouseUpFunc,!0),document.documentElement.removeEventListener("mousemove",this.mouseMoveFunc,!0),document.documentElement.removeEventListener("touchmove",this.mouseMoveFunc,!0),document.documentElement.removeEventListener("mouseleave",this.mouseUpFunc)}}const x=(t,i)=>{const r=[],s=t.canResize&&new w(t,(e=>{var i;e.eventName===f.end&&(null===(i=t.onResize)||void 0===i||i.call(t,e))}))||null;if(t.active)if(t.canResize)for(let i in t.active)r.push(e("div",{onClick:e=>e.preventDefault(),onDblClick:e=>{var i;e.preventDefault(),null===(i=t.onDblClick)||void 0===i||i.call(t,e)},onMouseDown:e=>null==s?void 0:s.handleDown(e),onTouchStart:e=>null==s?void 0:s.handleDown(e),class:`resizable resizable-${t.active[i]}`}));else for(let i in t.active)r.push(e("div",{onClick:e=>e.preventDefault(),onTouchStart:e=>e.preventDefault(),onDblClick:e=>{var i;e.preventDefault(),null===(i=t.onDblClick)||void 0===i||i.call(t,e)},class:"no-resize"}));return e("div",Object.assign({},t,{ref:e=>e&&(null==s?void 0:s.set(e))}),i,r)},C="columnclick",k=({data:t,props:i,additionalData:r},s)=>{let o=(null==t?void 0:t.name)||"",h=i;if((null==t?void 0:t.columnTemplate)&&(o=t.columnTemplate(e,t,r)),null==t?void 0:t.columnProperties){const e=t.columnProperties(t);e&&(h=g(i,e))}const n=Object.assign(Object.assign({},h),{onMouseDown(e){p(e.currentTarget,C,{data:t,event:e})}});return e(x,Object.assign({},n),e("div",{class:"header-content"},o),s)},H=t=>{var i,r,s,d,c,u,g;const p={[l]:!0,[n]:!!(null===(i=t.data)||void 0===i?void 0:i.sortable)};(null===(r=t.data)||void 0===r?void 0:r.order)&&(p[t.data.order]=!0);const b={key:String(null!==(d=null===(s=t.data)||void 0===s?void 0:s.prop)&&void 0!==d?d:t.column.itemIndex),[h]:t.column.itemIndex,canResize:t.canResize,minWidth:(null===(c=t.data)||void 0===c?void 0:c.minSize)||o,maxWidth:null===(u=t.data)||void 0===u?void 0:u.maxSize,active:t.active||["r"],class:p,style:{width:`${t.column.size}px`,transform:`translateX(${t.column.start}px)`},onResize:t.onResize,onDblClick(e){var i;null===(i=t.onDblClick)||void 0===i||i.call(t,{column:t.data,index:t.column.itemIndex,originalEvent:e,providers:t.data.providers})},onClick(e){!e.defaultPrevented&&t.onClick&&t.onClick({column:t.data,index:t.column.itemIndex,originalEvent:e,providers:t.data.providers})}};return t.range&&t.column.itemIndex>=t.range.x&&t.column.itemIndex<=t.range.x1&&"object"==typeof b.class&&(b.class[a]=!0),e(k,{data:t.data,props:b,additionalData:t.additionalData},e(m,{column:t.data}),t.canFilter&&!1!==(null===(g=t.data)||void 0===g?void 0:g.filter)?e(v,{column:t.data}):"")},y=t=>{const i={key:`${t.group.name}-${t.group.indexes.join("-")}`,canResize:t.canResize,minWidth:t.group.indexes.length*o,maxWidth:0,active:t.active||["r"],class:{[l]:!0},style:{transform:`translateX(${t.start}px)`,width:t.end-t.start+"px"},onResize:t.onResize};return e(k,{data:Object.assign(Object.assign({},t.group),{prop:"",providers:t.providers,index:t.start}),props:i,additionalData:t.additionalData})},j=t(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.initialHeaderClick=r(this,"beforeheaderclick",7),this.headerresize=r(this,"headerresize",7),this.beforeResize=r(this,"beforeheaderresize",7),this.headerdblClick=r(this,"headerdblclick",7),this.beforeHeaderRender=r(this,"beforeheaderrender",7),this.beforeGroupHeaderRender=r(this,"beforegroupheaderrender",7),this.afterHeaderRender=r(this,"afterheaderrender",7),this.groupingDepth=0,this.additionalData={}}onResize({width:e},t){this.beforeResize.emit([Object.assign(Object.assign({},this.colData[t]),{size:e||void 0})]).defaultPrevented||this.headerresize.emit({[t]:e||0})}onResizeGroup(e,t,i){const r={},s=e/(i-t+1);for(let e=t;e<=i;e++){const t=u(this.dimensionCol.state,e);r[e]=t.end-t.start+s}this.headerresize.emit(r)}componentDidRender(){this.afterHeaderRender.emit(this.providers)}render(){var t;const i=this.viewportCol.get("items"),r=null===(t=this.selectionStore)||void 0===t?void 0:t.get("range"),{cells:s}=this.renderHeaderColumns(i,r),o=this.renderGroupingColumns();return[e("div",{key:"3cc466db6bc4df0cd61c47a22c3a0473318e5dd8",class:"group-rgRow"},o),e("div",{key:"9742a3fa4d4b75073aef5544806f42386ebffdea",class:`${d} ${c}`},s)]}renderHeaderColumns(t,i){const r=[];for(let e of t){const t={range:i,column:e,data:Object.assign(Object.assign({},this.colData[e.itemIndex]),{index:e.itemIndex,providers:this.providers}),canFilter:!!this.columnFilter,canResize:this.canResize,active:this.resizeHandler,additionalData:this.additionalData,onResize:t=>this.onResize(t,e.itemIndex),onDblClick:e=>this.headerdblClick.emit(e),onClick:e=>this.initialHeaderClick.emit(e)},s=this.beforeHeaderRender.emit(t);s.defaultPrevented||r.push(s.detail)}const s=this.getDuplicateHeaderProps(r);return{cells:r.map((t=>e(H,Object.assign({key:this.getHeaderCellKey(t.data,this.type,s)},t))))}}renderGroupingColumns(){const e=this.getVisibleGroupRange();return Array.from({length:this.groupingDepth},((t,i)=>this.renderGroupRow(i,e))).flat()}renderGroupRow(t,i){return[...(this.groups[t]||[]).map((e=>this.renderGroupColumn(e,t,i))).filter((e=>!!e)),e("div",{key:`group-row-${t}`,class:{[d]:!0,group:!0}})]}renderGroupColumn(t,i,r){var s;const o=null!==(s=t.indexes[0])&&void 0!==s?s:-1;if(o<0)return;const h=o+t.indexes.length-1;if(!r||!function(e,t,i){return e<=i.end&&t>=i.start}(o,h,r))return;const n=u(this.dimensionCol.state,o).start,l=u(this.dimensionCol.state,h).end,a={providers:this.providers,start:n,end:l,group:t,active:this.resizeHandler,canResize:this.canResize,additionalData:this.additionalData,onResize:e=>{var t;return this.onResizeGroup(null!==(t=e.changedX)&&void 0!==t?t:0,o,h)}},d=this.beforeGroupHeaderRender.emit(a);return d.defaultPrevented?void 0:e(y,Object.assign({key:this.getGroupHeaderCellKey(d.detail.group,i)},d.detail))}getVisibleGroupRange(){const e=this.viewportCol.get("items");if(e.length)return e.reduce(((e,t)=>({start:Math.min(e.start,t.itemIndex),end:Math.max(e.end,t.itemIndex)})),{start:e[0].itemIndex,end:e[0].itemIndex})}getHeaderCellKey(e,t,i){if(void 0===(null==e?void 0:e.prop))return`${t}-${String(null==e?void 0:e.index)}`;const r=String(e.prop);return i.has(r)?`${t}-${r}-${String(e.index)}`:`${t}-${r}`}getDuplicateHeaderProps(e){const t=new Set,i=new Set;return e.forEach((({data:e})=>{if(void 0!==(null==e?void 0:e.prop)){const r=String(e.prop);t.has(r)?i.add(r):t.add(r)}})),i}getGroupHeaderCellKey(e,t){return`group-${t}-${e.name}-${e.indexes.join("-")}`}get providers(){return{type:this.type,readonly:this.readonly,data:this.colData,viewport:this.viewportCol,dimension:this.dimensionCol,selection:this.selectionStore}}get element(){return this}static get style(){return'@charset "UTF-8";revogr-header{position:relative;z-index:5;display:block}revogr-header .header-rgRow{display:block;position:relative}revogr-header .header-rgRow.group{z-index:0}revogr-header .group-rgRow{position:relative;overflow:hidden}revogr-header .rgHeaderCell{position:absolute;box-sizing:border-box;height:100%;z-index:1;display:flex}revogr-header .rgHeaderCell.align-center{text-align:center}revogr-header .rgHeaderCell.align-left{text-align:left}revogr-header .rgHeaderCell.align-right{text-align:right}revogr-header .rgHeaderCell.sortable{cursor:pointer}revogr-header .rgHeaderCell i.asc:after,revogr-header .rgHeaderCell i.desc:after{font-size:13px}revogr-header .rgHeaderCell i.asc:after{content:"↑"}revogr-header .rgHeaderCell i.desc:after{content:"↓"}revogr-header .rgHeaderCell.active{z-index:10}revogr-header .rgHeaderCell.active .resizable{background-color:deepskyblue}revogr-header .rgHeaderCell .header-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1}revogr-header .rgHeaderCell .resizable{display:block;position:absolute;z-index:90;touch-action:none;user-select:none}revogr-header .rgHeaderCell .resizable:hover{background-color:deepskyblue}revogr-header .rgHeaderCell>.resizable-r{cursor:ew-resize;width:6px;right:0;top:0;height:100%}revogr-header .rgHeaderCell>.resizable-rb{cursor:se-resize;width:6px;height:6px;right:0;bottom:0}revogr-header .rgHeaderCell>.resizable-b{cursor:s-resize;height:6px;bottom:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-lb{cursor:sw-resize;width:6px;height:6px;left:0;bottom:0}revogr-header .rgHeaderCell>.resizable-l{cursor:w-resize;width:6px;left:0;height:100%;top:0}revogr-header .rgHeaderCell>.resizable-lt{cursor:nw-resize;width:6px;height:6px;left:0;top:0}revogr-header .rgHeaderCell>.resizable-t{cursor:n-resize;height:6px;top:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-rt{cursor:ne-resize;width:6px;height:6px;right:0;top:0}revogr-header .rv-filter{visibility:hidden}'}},[0,"revogr-header",{viewportCol:[16],dimensionCol:[16],selectionStore:[16],groups:[16],groupingDepth:[2,"grouping-depth"],readonly:[4],canResize:[4,"can-resize"],resizeHandler:[16],colData:[16],columnFilter:[4,"column-filter"],type:[1],additionalData:[8,"additional-data"]}]);function $(){"undefined"!=typeof customElements&&["revogr-header"].forEach((e=>{"revogr-header"===e&&(customElements.get(s(e))||customElements.define(s(e),j))}))}export{C as O,j as R,m as S,b as a,$ as b,p as d}
|
|
4
|
+
import{h as e,proxyCustomElement as t,HTMLElement as i,createEvent as r,transformTag as s}from"@stencil/core/internal/client";import{M as o,D as n,d as h,H as l,F as a,e as d,f as c}from"./consts.js";import"./platform.js";import{a as u}from"./dimension.helpers.js";import{c as v}from"./filter.button.js";import{Q as g}from"./column.service.js";function p(e,t,i){const r=new CustomEvent(t,{detail:i,cancelable:!0,bubbles:!0});return null==e||e.dispatchEvent(r),r}function b(e,t,i){return e.preventDefault(),p(e.target,t,i)}const f=({column:t})=>{var i;const r={class:null!==(i=null==t?void 0:t.order)&&void 0!==i?i:"sort-off"};return e("span",Object.assign({},{class:"sort-indicator"}),e("i",Object.assign({},r)),(null==t?void 0:t.sortIndex)?e("sup",Object.assign({},{class:"sort-order-index"}),t.sortIndex):null)};var m;!function(e){e.start="resize:start",e.move="resize:move",e.end="resize:end"}(m||(m={}));const z={"resizable-r":{bit:1,cursor:"ew-resize"},"resizable-rb":{bit:3,cursor:"se-resize"},"resizable-b":{bit:2,cursor:"s-resize"},"resizable-lb":{bit:6,cursor:"sw-resize"},"resizable-l":{bit:4,cursor:"w-resize"},"resizable-lt":{bit:12,cursor:"nw-resize"},"resizable-t":{bit:8,cursor:"n-resize"},"resizable-rt":{bit:9,cursor:"ne-resize"}};class x{constructor(e,t){var i,r,s;this.initialProps=e,this.$event=t,this.mouseX=0,this.mouseY=0,this.width=0,this.height=0,this.changeX=0,this.changeY=0,this.disableCalcMap=15,this.props=(s=e,Object.assign(Object.assign({},s),{fitParent:s.fitParent||!1,active:s.active||[],disableAttributes:s.disableAttributes||[],minWidth:s.minWidth||0,minHeight:s.minHeight||0})),this.mouseMoveFunc=this.handleMove.bind(this),this.mouseUpFunc=this.handleUp.bind(this),this.minW=this.props.minWidth,this.minH=this.props.minHeight,this.maxW=null!==(i=this.props.maxWidth)&&void 0!==i?i:0,this.maxH=null!==(r=this.props.maxHeight)&&void 0!==r?r:0,this.parent={width:0,height:0},this.resizeState=0}set(e){this.$el=e,this.props.disableAttributes.forEach((e=>{switch(e){case"l":this.disableCalcMap&=-2;break;case"t":this.disableCalcMap&=-3;break;case"w":this.disableCalcMap&=-5;break;case"h":this.disableCalcMap&=-9}}))}emitEvent(e,t){var i;if(!this.$event)return;const r=null===(i=this.activeResizer)||void 0===i?void 0:i.classList.contains("resizable-l");this.$event(Object.assign({eventName:e,width:this.width+this.changeX*(r?-1:1),height:this.height+this.changeY,changedX:this.changeX,changedY:this.changeY},t))}static isTouchEvent(e){var t;return(null===(t=e.touches)||void 0===t?void 0:t.length)>=0}handleMove(e){var t;if(!this.resizeState)return;let i,r;x.isTouchEvent(e)?(i=e.touches[0].clientY,r=e.touches[0].clientX):(i=e.clientY,r=e.clientX);let s=this.resizeState&z["resizable-r"].bit||this.resizeState&z["resizable-l"].bit;if((this.resizeState&z["resizable-t"].bit||this.resizeState&z["resizable-b"].bit)&&8&this.disableCalcMap){let e=this.changeY+(i-this.mouseY);const t=this.height+e;t<this.minH&&(e=-(this.height-this.minH)),this.maxH&&t>this.maxH&&(e=this.maxH-this.height),this.changeY=e,this.mouseY=i,this.activeResizer&&(this.activeResizer.style.bottom=-this.changeY+"px")}if(s&&4&this.disableCalcMap){const e=null===(t=this.activeResizer)||void 0===t?void 0:t.classList.contains("resizable-l");let i=this.changeX+(r-this.mouseX);const s=this.width+i*(e?-1:1);s<this.minW&&(i=-(this.width-this.minW)),this.maxW&&s>this.maxW&&(i=this.maxW-this.width),this.changeX=i,this.mouseX=r,this.activeResizer&&(e?this.activeResizer.style.left=`${this.changeX}px`:this.activeResizer.style.right=-this.changeX+"px")}this.emitEvent(m.move)}handleDown(e){if(!e.defaultPrevented){e.preventDefault(),this.dropInitial();for(let t in z){const i=e.target;if(this.$el.contains(i)&&(null==i?void 0:i.classList.contains(t))){document.body.style.cursor=z[t].cursor,x.isTouchEvent(e)?this.setInitials(e.touches[0],i):(e.preventDefault&&e.preventDefault(),this.setInitials(e,i)),this.resizeState=z[t].bit,this.emitEvent(m.start);break}}this.bindMove()}}handleUp(e){e.preventDefault(),0!==this.resizeState&&(this.resizeState=0,document.body.style.cursor="",this.emitEvent(m.end)),this.dropInitial(),this.unbindMove()}setInitials({clientX:e,clientY:t},i){var r,s,o,n;const h=getComputedStyle(this.$el);if(this.$el.classList.add("active"),this.activeResizer=i,4&this.disableCalcMap){this.mouseX=e,this.width=this.$el.clientWidth,this.parent.width=null!==(s=null===(r=this.$el.parentElement)||void 0===r?void 0:r.clientWidth)&&void 0!==s?s:0;const t=parseFloat(h.paddingLeft)+parseFloat(h.paddingRight);this.minW=Math.max(t,this.initialProps.minWidth||0),this.initialProps.maxWidth&&(this.maxW=Math.max(this.width,this.initialProps.maxWidth))}if(8&this.disableCalcMap){this.mouseY=t,this.height=this.$el.clientHeight,this.parent.height=null!==(n=null===(o=this.$el.parentElement)||void 0===o?void 0:o.clientHeight)&&void 0!==n?n:0;const e=parseFloat(h.paddingTop)+parseFloat(h.paddingBottom);this.minH=Math.max(e,this.initialProps.minHeight||0),this.initialProps.maxHeight&&(this.maxH=Math.max(this.height,this.initialProps.maxHeight))}}dropInitial(){this.changeX=this.changeY=this.minW=this.minH,this.width=this.height=0,this.activeResizer&&this.activeResizer.removeAttribute("style"),this.$el.classList.remove("active"),this.activeResizer=void 0}bindMove(){document.documentElement.addEventListener("mouseup",this.mouseUpFunc,!0),document.documentElement.addEventListener("touchend",this.mouseUpFunc,!0),document.documentElement.addEventListener("mousemove",this.mouseMoveFunc,!0),document.documentElement.addEventListener("touchmove",this.mouseMoveFunc,!0),document.documentElement.addEventListener("mouseleave",this.mouseUpFunc)}unbindMove(){document.documentElement.removeEventListener("mouseup",this.mouseUpFunc,!0),document.documentElement.removeEventListener("touchend",this.mouseUpFunc,!0),document.documentElement.removeEventListener("mousemove",this.mouseMoveFunc,!0),document.documentElement.removeEventListener("touchmove",this.mouseMoveFunc,!0),document.documentElement.removeEventListener("mouseleave",this.mouseUpFunc)}}const w=(t,i)=>{const r=[],s=t.canResize&&new x(t,(e=>{var i;e.eventName===m.end&&(null===(i=t.onResize)||void 0===i||i.call(t,e))}))||null;if(t.active)if(t.canResize)for(let i in t.active)r.push(e("div",{onClick:e=>e.preventDefault(),onDblClick:e=>{var i;e.preventDefault(),null===(i=t.onDblClick)||void 0===i||i.call(t,e)},onMouseDown:e=>null==s?void 0:s.handleDown(e),onTouchStart:e=>null==s?void 0:s.handleDown(e),class:`resizable resizable-${t.active[i]}`}));else for(let i in t.active)r.push(e("div",{onClick:e=>e.preventDefault(),onTouchStart:e=>e.preventDefault(),onDblClick:e=>{var i;e.preventDefault(),null===(i=t.onDblClick)||void 0===i||i.call(t,e)},class:"no-resize"}));return e("div",Object.assign({},t,{ref:e=>e&&(null==s?void 0:s.set(e))}),i,r)},C="columnclick",H=({data:t,props:i,additionalData:r},s)=>{let o=(null==t?void 0:t.name)||"",n=i;if((null==t?void 0:t.columnTemplate)&&(o=t.columnTemplate(e,t,r)),null==t?void 0:t.columnProperties){const e=t.columnProperties(t);e&&(n=g(i,e))}const h=Object.assign(Object.assign({},n),{onMouseDown(e){p(e.currentTarget,C,{data:t,event:e})}});return e(w,Object.assign({},h),e("div",{class:"header-content"},o),s)},k=t=>{var i,r,s,d,c,u,g;const p={[l]:!0,[h]:!!(null===(i=t.data)||void 0===i?void 0:i.sortable)};(null===(r=t.data)||void 0===r?void 0:r.order)&&(p[t.data.order]=!0);const b={key:String(null!==(d=null===(s=t.data)||void 0===s?void 0:s.prop)&&void 0!==d?d:t.column.itemIndex),[n]:t.column.itemIndex,canResize:t.canResize,minWidth:(null===(c=t.data)||void 0===c?void 0:c.minSize)||o,maxWidth:null===(u=t.data)||void 0===u?void 0:u.maxSize,active:t.active||["r"],class:p,style:{width:`${t.column.size}px`,transform:`translateX(${t.column.start-(t.renderOffset||0)}px)`},onResize:t.onResize,onDblClick(e){var i;null===(i=t.onDblClick)||void 0===i||i.call(t,{column:t.data,index:t.column.itemIndex,originalEvent:e,providers:t.data.providers})},onClick(e){!e.defaultPrevented&&t.onClick&&t.onClick({column:t.data,index:t.column.itemIndex,originalEvent:e,providers:t.data.providers})}};return t.range&&t.column.itemIndex>=t.range.x&&t.column.itemIndex<=t.range.x1&&"object"==typeof b.class&&(b.class[a]=!0),e(H,{data:t.data,props:b,additionalData:t.additionalData},e(f,{column:t.data}),t.canFilter&&!1!==(null===(g=t.data)||void 0===g?void 0:g.filter)?e(v,{column:t.data}):"")},y=t=>{const i={key:`${t.group.name}-${t.group.indexes.join("-")}`,canResize:t.canResize,minWidth:t.group.indexes.length*o,maxWidth:0,active:t.active||["r"],class:{[l]:!0},style:{transform:`translateX(${t.start-(t.renderOffset||0)}px)`,width:t.end-t.start+"px"},onResize:t.onResize};return e(H,{data:Object.assign(Object.assign({},t.group),{prop:"",providers:t.providers,index:t.start}),props:i,additionalData:t.additionalData})},j=t(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.initialHeaderClick=r(this,"beforeheaderclick",7),this.headerresize=r(this,"headerresize",7),this.beforeResize=r(this,"beforeheaderresize",7),this.headerdblClick=r(this,"headerdblclick",7),this.beforeHeaderRender=r(this,"beforeheaderrender",7),this.beforeGroupHeaderRender=r(this,"beforegroupheaderrender",7),this.afterHeaderRender=r(this,"afterheaderrender",7),this.groupingDepth=0,this.additionalData={}}onResize({width:e},t){this.beforeResize.emit([Object.assign(Object.assign({},this.colData[t]),{size:e||void 0})]).defaultPrevented||this.headerresize.emit({[t]:e||0})}onResizeGroup(e,t,i){const r={},s=e/(i-t+1);for(let e=t;e<=i;e++){const t=u(this.dimensionCol.state,e);r[e]=t.end-t.start+s}this.headerresize.emit(r)}componentDidRender(){this.afterHeaderRender.emit(this.providers)}render(){var t;const i=this.viewportCol.get("items"),r=null===(t=this.selectionStore)||void 0===t?void 0:t.get("range"),{cells:s}=this.renderHeaderColumns(i,r),o=this.renderGroupingColumns();return[e("div",{key:"3cc466db6bc4df0cd61c47a22c3a0473318e5dd8",class:"group-rgRow"},o),e("div",{key:"9742a3fa4d4b75073aef5544806f42386ebffdea",class:`${d} ${c}`},s)]}renderHeaderColumns(t,i){const r=[],s=this.viewportCol.get("renderOffset")||0;for(let e of t){const t={range:i,column:e,data:Object.assign(Object.assign({},this.colData[e.itemIndex]),{index:e.itemIndex,providers:this.providers}),canFilter:!!this.columnFilter,canResize:this.canResize,renderOffset:s,active:this.resizeHandler,additionalData:this.additionalData,onResize:t=>this.onResize(t,e.itemIndex),onDblClick:e=>this.headerdblClick.emit(e),onClick:e=>this.initialHeaderClick.emit(e)},o=this.beforeHeaderRender.emit(t);o.defaultPrevented||r.push(o.detail)}const o=this.getDuplicateHeaderProps(r);return{cells:r.map((t=>e(k,Object.assign({key:this.getHeaderCellKey(t.data,this.type,o)},t))))}}renderGroupingColumns(){const e=this.getVisibleGroupRange();return Array.from({length:this.groupingDepth},((t,i)=>this.renderGroupRow(i,e))).flat()}renderGroupRow(t,i){return[...(this.groups[t]||[]).map((e=>this.renderGroupColumn(e,t,i))).filter((e=>!!e)),e("div",{key:`group-row-${t}`,class:{[d]:!0,group:!0}})]}renderGroupColumn(t,i,r){var s;const o=null!==(s=t.indexes[0])&&void 0!==s?s:-1;if(o<0)return;const n=o+t.indexes.length-1;if(!r||!function(e,t,i){return e<=i.end&&t>=i.start}(o,n,r))return;const h=u(this.dimensionCol.state,o).start,l=u(this.dimensionCol.state,n).end,a={providers:this.providers,start:h,end:l,group:t,renderOffset:this.viewportCol.get("renderOffset")||0,active:this.resizeHandler,canResize:this.canResize,additionalData:this.additionalData,onResize:e=>{var t;return this.onResizeGroup(null!==(t=e.changedX)&&void 0!==t?t:0,o,n)}},d=this.beforeGroupHeaderRender.emit(a);return d.defaultPrevented?void 0:e(y,Object.assign({key:this.getGroupHeaderCellKey(d.detail.group,i)},d.detail))}getVisibleGroupRange(){const e=this.viewportCol.get("items");if(e.length)return e.reduce(((e,t)=>({start:Math.min(e.start,t.itemIndex),end:Math.max(e.end,t.itemIndex)})),{start:e[0].itemIndex,end:e[0].itemIndex})}getHeaderCellKey(e,t,i){if(void 0===(null==e?void 0:e.prop))return`${t}-${String(null==e?void 0:e.index)}`;const r=String(e.prop);return i.has(r)?`${t}-${r}-${String(e.index)}`:`${t}-${r}`}getDuplicateHeaderProps(e){const t=new Set,i=new Set;return e.forEach((({data:e})=>{if(void 0!==(null==e?void 0:e.prop)){const r=String(e.prop);t.has(r)?i.add(r):t.add(r)}})),i}getGroupHeaderCellKey(e,t){return`group-${t}-${e.name}-${e.indexes.join("-")}`}get providers(){return{type:this.type,readonly:this.readonly,data:this.colData,viewport:this.viewportCol,dimension:this.dimensionCol,selection:this.selectionStore}}get element(){return this}static get style(){return'@charset "UTF-8";revogr-header{position:relative;z-index:5;display:block}revogr-header .header-rgRow{display:block;position:relative}revogr-header .header-rgRow.group{z-index:0}revogr-header .group-rgRow{position:relative;overflow:hidden}revogr-header .rgHeaderCell{position:absolute;box-sizing:border-box;height:100%;z-index:1;display:flex}revogr-header .rgHeaderCell.align-center{text-align:center}revogr-header .rgHeaderCell.align-left{text-align:left}revogr-header .rgHeaderCell.align-right{text-align:right}revogr-header .rgHeaderCell.sortable{cursor:pointer}revogr-header .rgHeaderCell .sort-indicator{display:inline-flex;align-items:flex-start;gap:1px}revogr-header .rgHeaderCell .sort-indicator i.asc:after,revogr-header .rgHeaderCell .sort-indicator i.desc:after{font-size:13px}revogr-header .rgHeaderCell .sort-indicator i.asc:after{content:"↑"}revogr-header .rgHeaderCell .sort-indicator i.desc:after{content:"↓"}revogr-header .rgHeaderCell .sort-indicator .sort-order-index{font-size:10px;line-height:1;top:0}revogr-header .rgHeaderCell.active{z-index:10}revogr-header .rgHeaderCell.active .resizable{background-color:deepskyblue}revogr-header .rgHeaderCell .header-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1}revogr-header .rgHeaderCell .resizable{display:block;position:absolute;z-index:90;touch-action:none;user-select:none}revogr-header .rgHeaderCell .resizable:hover{background-color:deepskyblue}revogr-header .rgHeaderCell>.resizable-r{cursor:ew-resize;width:6px;right:0;top:0;height:100%}revogr-header .rgHeaderCell>.resizable-rb{cursor:se-resize;width:6px;height:6px;right:0;bottom:0}revogr-header .rgHeaderCell>.resizable-b{cursor:s-resize;height:6px;bottom:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-lb{cursor:sw-resize;width:6px;height:6px;left:0;bottom:0}revogr-header .rgHeaderCell>.resizable-l{cursor:w-resize;width:6px;left:0;height:100%;top:0}revogr-header .rgHeaderCell>.resizable-lt{cursor:nw-resize;width:6px;height:6px;left:0;top:0}revogr-header .rgHeaderCell>.resizable-t{cursor:n-resize;height:6px;top:0;width:100%;left:0}revogr-header .rgHeaderCell>.resizable-rt{cursor:ne-resize;width:6px;height:6px;right:0;top:0}revogr-header .rv-filter{visibility:hidden}'}},[0,"revogr-header",{viewportCol:[16],dimensionCol:[16],selectionStore:[16],groups:[16],groupingDepth:[2,"grouping-depth"],readonly:[4],canResize:[4,"can-resize"],resizeHandler:[16],colData:[16],columnFilter:[4,"column-filter"],type:[1],additionalData:[8,"additional-data"]}]);function O(){"undefined"!=typeof customElements&&["revogr-header"].forEach((e=>{"revogr-header"===e&&(customElements.get(s(e))||customElements.define(s(e),j))}))}export{C as O,j as R,f as S,b as a,O as b,p as d}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{proxyCustomElement as t,HTMLElement as s,createEvent as e,transformTag as i}from"@stencil/core/internal/client";import{d as r}from"./debounce.js";import{b as o}from"./data.store.js";import{k as n}from"./consts.js";import"./platform.js";import{g as h}from"./dimension.helpers.js";class l{constructor(t){this.config=t,this.currentCell=null,this.previousRow=null}endOrder(t,s){if(null===this.currentCell)return;const e=this.getCell(t,s);e.y!==this.currentCell.y&&(e.y<0?e.y=0:e.y<this.currentCell.y&&e.y++,this.config.positionChanged(this.currentCell.y,e.y)),this.clear()}startOrder(t,s){return this.currentCell=this.getCell(t,s),this.currentCell}move(t,s){const e=this.getRow(t,s);return this.previousRow===e.itemIndex||e.itemIndex<-1?null:(this.previousRow=e.itemIndex,e)}clear(){this.currentCell=null,this.previousRow=null}getRow(t,{el:s,rows:e}){const{top:i}=s.getBoundingClientRect(),r=h(e,t-i);return{itemIndex:
|
|
4
|
+
import{proxyCustomElement as t,HTMLElement as s,createEvent as e,transformTag as i}from"@stencil/core/internal/client";import{d as r}from"./debounce.js";import{b as o}from"./data.store.js";import{k as n}from"./consts.js";import"./platform.js";import{g as h}from"./dimension.helpers.js";class l{constructor(t){this.config=t,this.currentCell=null,this.previousRow=null}endOrder(t,s){if(null===this.currentCell)return;const e=this.getCell(t,s);e.y!==this.currentCell.y&&(e.y<0?e.y=0:e.y<this.currentCell.y&&e.y++,this.config.positionChanged(this.currentCell.y,e.y)),this.clear()}startOrder(t,s){return this.currentCell=this.getCell(t,s),this.currentCell}move(t,s){const e=this.getRow(t,s);return this.previousRow===e.itemIndex||e.itemIndex<-1?null:(this.previousRow=e.itemIndex,e)}clear(){this.currentCell=null,this.previousRow=null}getRow(t,{el:s,rows:e}){const{top:i}=s.getBoundingClientRect(),r=e.renderOffset||0,o=h(e,t-i+r);return{itemIndex:o.itemIndex,start:o.start-r+i,end:o.end-r+i}}getCell({x:t,y:s},{el:e,rows:i,cols:r}){const{top:o,left:n}=e.getBoundingClientRect(),l=t-n,d=h(i,s-o+(i.renderOffset||0));return{x:h(r,l+(r.renderOffset||0)).itemIndex,y:d.itemIndex}}}const d=t(class extends s{constructor(t){super(),!1!==t&&this.__registerHost(),this.rowDragStart=e(this,"rowdragstartinit",7),this.rowDragEnd=e(this,"rowdragendinit",7),this.rowDrag=e(this,"rowdragmoveinit",7),this.rowMouseMove=e(this,"rowdragmousemove",7),this.rowDropped=e(this,"rowdropinit",7),this.rowOrderChange=e(this,"roworderchange",7),this.events=[],this.rowMoveFunc=r((t=>{const s=this.rowOrderService.move(t,this.getData());null!==s&&this.rowDrag.emit(Object.assign(Object.assign({},s),{rowType:this.rowType}))}),5)}async dragStart(t){t.originalEvent.preventDefault(),this.events.length&&this.clearOrder();const s=this.getData(),e=this.rowOrderService.startOrder(t.originalEvent,s),i=this.rowOrderService.getRow(t.originalEvent.y,s);if(this.rowDragStart.emit({cell:e,text:n,pos:i,event:t.originalEvent,rowType:this.rowType,model:o(this.dataStore,i.itemIndex)}).defaultPrevented)return;const r=t=>this.move(t),h=t=>this.endOrder(t),l=()=>this.clearOrder();this.events.push({name:"mousemove",listener:r},{name:"mouseup",listener:h},{name:"mouseleave",listener:l}),document.addEventListener("mousemove",r),document.addEventListener("mouseup",h),document.addEventListener("mouseleave",l)}async endOrder(t){this.rowOrderService.endOrder(t,this.getData()),this.clearOrder()}async clearOrder(){this.rowOrderService.clear(),this.events.forEach((t=>document.removeEventListener(t.name,t.listener))),this.events.length=0,this.rowDragEnd.emit({rowType:this.rowType})}move({x:t,y:s}){this.rowMouseMove.emit({x:t,y:s,rowType:this.rowType}),this.rowMoveFunc(s)}connectedCallback(){this.rowOrderService=new l({positionChanged:(t,s)=>{const e=this.rowDropped.emit({from:t,to:s,rowType:this.rowType});e.defaultPrevented||this.rowOrderChange.emit(e.detail)}})}getData(){return{el:this.parent,rows:this.dimensionRow.state,cols:this.dimensionCol.state}}},[0,"revogr-order-editor",{parent:[16],dimensionRow:[16],dimensionCol:[16],dataStore:[16],rowType:[1,"row-type"],dragStart:[64],endOrder:[64],clearOrder:[64]}]);function m(){"undefined"!=typeof customElements&&["revogr-order-editor"].forEach((t=>{"revogr-order-editor"===t&&(customElements.get(i(t))||customElements.define(i(t),d))}))}export{d as O,m as d}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{h as t,proxyCustomElement as e,HTMLElement as s,createEvent as i,Host as o,transformTag as n}from"@stencil/core/internal/client";import{g as r,M as a,z as h,N as l,b as c}from"./column.service.js";import{c as d}from"./platform.js";import{R as u,i as g,j as p,S as v}from"./consts.js";import{b as f,i as b,c as m,a as y,g as x,d as w,e as j,s as O,f as S,v as D}from"./selection.utils.js";import{c as C,d as k,f as M,h as R,g as A,j as E,k as F,l as z,m as P,o as T}from"./revogr-edit2.js";import{t as K}from"./index2.js";import{d as U}from"./debounce.js";import{d as X}from"./revogr-clipboard2.js";import{d as N}from"./revogr-order-editor2.js";const W=[d.TAB,d.ARROW_UP,d.ARROW_DOWN,d.ARROW_LEFT,d.ARROW_RIGHT];class ${constructor(t){this.sv=t}async keyDown(t,e,s,{range:i,focus:o}){if(s)switch(t.code){case d.ESCAPE:this.sv.cancel();break;case d.TAB:this.keyChangeSelection(t,e)}else i&&C(t.code)?this.sv.clearCell():o&&(k(t.code)?this.keyChangeSelection(t,e):M(t.key)?this.sv.change():R(t)||A(t)||(E(t)?this.sv.internalPaste():F(t)?e&&this.selectAll(t):z(t)||1!==t.key.length?await this.keyChangeSelection(t,e):this.sv.change(t.key)))}selectAll(t){const e=this.sv.selectionStore.get("range"),s=this.sv.selectionStore.get("focus");e&&s&&(t.preventDefault(),this.sv.selectAll())}async keyChangeSelection(t,e){const s=this.changeDirectionKey(t,e);if(!s)return!1;await K(u+30);const i=this.sv.selectionStore.get("range"),o=this.sv.selectionStore.get("focus");return this.keyPositionChange(s.changes,i,o,s.isMulti)}keyPositionChange(t,e,s,i=!1){if(!e||!s)return!1;const o=f(e,s,t,i);if(!o)return!1;const n=this.sv.getData();if(i){if(b(o.end,n.lastCell)||m(o.start))return!1;const t=r(o.start,o.end);return this.sv.range(t)}return this.sv.focus(o.start,t,b(o.start,n.lastCell)?1:m(o.start)?-1:0)}changeDirectionKey(t,e){const s=e&&t.shiftKey;if(W.includes(t.code)&&t.preventDefault(),t.shiftKey&&t.code===d.TAB)return{changes:{x:-1},isMulti:!1};switch(t.code){case d.ARROW_UP:return{changes:{y:-1},isMulti:s};case d.ARROW_DOWN:return{changes:{y:1},isMulti:s};case d.ARROW_LEFT:return{changes:{x:-1},isMulti:s};case d.TAB:case d.ARROW_RIGHT:return{changes:{x:1},isMulti:s}}}}class H{constructor(t){this.sv=t,this.autoFillType=null,this.autoFillInitial=null,this.autoFillStart=null,this.autoFillLast=null}renderAutofill(e,s,i=!1){let o;return o=y(e||Object.assign(Object.assign({},s),{x1:s.x,y1:s.y}),this.sv.dimensionRow.state,this.sv.dimensionCol.state),t("div",{class:{[p]:!0,[g]:i},style:{left:`${o.right}px`,top:`${o.bottom}px`},onMouseDown:t=>this.autoFillHandler(t),onTouchStart:t=>this.autoFillHandler(t)})}autoFillHandler(t,e="AutoFill"){let s=null;t.target instanceof Element&&(s=t.target),s&&(this.selectionStart(s,this.sv.getData(),e),t.preventDefault())}get isAutoFill(){return!!this.autoFillType}selectionMouseMove(t){this.onMouseMoveAutofill||(this.onMouseMoveAutofill=U(((t,e)=>this.doAutofillMouseMove(t,e)),5)),this.isAutoFill&&this.onMouseMoveAutofill(t,this.sv.getData())}getFocus(t,e){return!t&&e&&(t={x:e.x,y:e.y}),t||null}doAutofillMouseMove(t,e){if(!this.autoFillInitial)return;const s=x(t,"clientX",g),i=x(t,"clientY",g);if(null===s||null===i)return;const o=w({x:s,y:i},e);if(this.autoFillLast||this.autoFillLast||(this.autoFillLast=this.autoFillStart),!b(o,e.lastCell))if(this.autoFillLast=o,o.x===this.autoFillInitial.x&&o.y===this.autoFillInitial.y)this.sv.setTempRange(null);else{const t=r(this.autoFillInitial,this.autoFillLast);this.sv.setTempRange({area:t,type:this.autoFillType})}}selectionStart(t,e,s="Selection"){const{top:i,left:o}=t.getBoundingClientRect();this.autoFillInitial=this.getFocus(e.focus,e.range),this.autoFillType=s,this.autoFillStart=w({x:o,y:i},e)}clearAutoFillSelection(t,e){if(this.autoFillInitial)if(this.autoFillInitial=this.getFocus(t,e),"AutoFill"===this.autoFillType){const t=r(this.autoFillInitial,this.autoFillLast);if(t){const{defaultPrevented:s,detail:{range:i}}=this.sv.clearRangeDataApply({range:t});!s&&e?this.applyRangeWithData(i,e):this.sv.setTempRange(null)}}else this.applyRangeOnly(this.autoFillInitial,this.autoFillLast);this.resetAutoFillState()}resetAutoFillState(){this.autoFillType=null,this.autoFillInitial=null,this.autoFillLast=null,this.autoFillStart=null}onRangeApply(t,e,s){this.sv.rangeDataApply({data:t,models:j(t,this.sv.dataStore),type:this.sv.dataStore.get("type"),oldRange:s,newRange:e}),this.sv.setRange(e)}applyRangeWithData(t,e){const s={type:this.sv.dataStore.get("type"),colType:this.sv.columnService.type,newData:{},mapping:{},newRange:t,oldRange:e},{mapping:i,changed:o}=this.sv.columnService.getRangeData(s,this.sv.columnService.columns);s.newData=o,s.mapping=i;let n=this.sv.selectionChanged(s);n.defaultPrevented?this.sv.setTempRange(null):(n=this.sv.rangeCopy(s),n.defaultPrevented?this.sv.setRange(t):this.onRangeApply(s.newData,t,e))}applyRangeOnly(t,e){if(!t||!e)return;const s=r(t,e);this.sv.setRange(s)}}const Y=e(class extends s{constructor(t){super(),!1!==t&&this.__registerHost(),this.beforeCopyRegion=i(this,"beforecopyregion",7),this.beforeRegionPaste=i(this,"beforepasteregion",7),this.cellEditApply=i(this,"celleditapply",7),this.beforeFocusCell=i(this,"beforecellfocusinit",7),this.beforeNextViewportFocus=i(this,"beforenextvpfocus",7),this.setEdit=i(this,"setedit",7),this.beforeApplyRange=i(this,"beforeapplyrange",7),this.beforeSetRange=i(this,"beforesetrange",7),this.setRange=i(this,"setrange",7),this.beforeEditRender=i(this,"beforeeditrender",7),this.selectAll=i(this,"selectall",7),this.cancelEdit=i(this,"canceledit",7),this.setTempRange=i(this,"settemprange",7),this.beforeSetTempRange=i(this,"beforesettemprange",7),this.applyFocus=i(this,"applyfocus",7),this.focusCell=i(this,"focuscell",7),this.beforeRangeDataApply=i(this,"beforerangedataapply",7),this.selectionChange=i(this,"selectionchangeinit",7),this.beforeRangeCopyApply=i(this,"beforerangecopyapply",7),this.rangeEditApply=i(this,"rangeeditapply",7),this.rangeClipboardCopy=i(this,"clipboardrangecopy",7),this.rangeClipboardPaste=i(this,"clipboardrangepaste",7),this.beforeKeyDown=i(this,"beforekeydown",7),this.beforeKeyUp=i(this,"beforekeyup",7),this.beforeCellSave=i(this,"beforecellsave",7),this.cellEditDone=i(this,"celledit",7),this.applyChangesOnClose=!1,this.keyboardService=null,this.autoFillService=null,this.unsubscribeSelectionStore=[]}onMouseMove(t){var e;this.selectionStore.get("focus")&&(null===(e=this.autoFillService)||void 0===e||e.selectionMouseMove(t))}onMouseUp(){var t;null===(t=this.autoFillService)||void 0===t||t.clearAutoFillSelection(this.selectionStore.get("focus"),this.selectionStore.get("range"))}onCellDrag(t){var e;null===(e=this.orderEditor)||void 0===e||e.dragStart(t.detail)}onKeyUp(t){this.beforeKeyUp.emit(Object.assign({original:t},this.getData()))}onKeyDown(t){var e;const s=this.beforeKeyDown.emit(Object.assign({original:t},this.getData()));t.defaultPrevented||s.defaultPrevented||null===(e=this.keyboardService)||void 0===e||e.keyDown(t,this.range,!!this.selectionStore.get("edit"),{focus:this.selectionStore.get("focus"),range:this.selectionStore.get("range")})}selectionServiceSet(t){this.unsubscribeSelectionStore.forEach((t=>t())),this.unsubscribeSelectionStore.length=0,this.unsubscribeSelectionStore.push(t.onChange("nextFocus",(t=>t&&this.doFocus(t,t)))),this.keyboardService=new $({selectionStore:t,range:t=>!!t&&this.triggerRangeEvent(t),focus:(t,e,s)=>s?(this.beforeNextViewportFocus.emit(t),!1):this.doFocus(t,t,e),change:t=>{this.readonly||this.doEdit(t)},cancel:async()=>{var t;await(null===(t=this.revogrEdit)||void 0===t?void 0:t.cancelChanges()),this.closeEdit()},clearCell:()=>!this.readonly&&this.clearCell(),internalPaste:()=>!this.readonly&&this.beforeRegionPaste.emit(),getData:()=>this.getData(),selectAll:()=>this.selectAll.emit()}),this.createAutoFillService()}createAutoFillService(){this.autoFillService=new H({dimensionRow:this.dimensionRow,dimensionCol:this.dimensionCol,columnService:this.columnService,dataStore:this.dataStore,clearRangeDataApply:t=>this.beforeRangeDataApply.emit(Object.assign(Object.assign(Object.assign({},t),this.types),{rowDimension:Object.assign({},this.dimensionRow.state),colDimension:Object.assign({},this.dimensionCol.state)})),setTempRange:t=>{const e=this.beforeSetTempRange.emit(Object.assign(Object.assign({tempRange:t},this.getData()),this.types));return e.defaultPrevented?null:this.setTempRange.emit(e.detail.tempRange)},selectionChanged:t=>this.selectionChange.emit(t),rangeCopy:t=>this.beforeRangeCopyApply.emit(t),rangeDataApply:t=>this.rangeEditApply.emit(t),setRange:t=>!!t&&this.triggerRangeEvent(t),getData:()=>this.getData()})}columnServiceSet(){var t;null===(t=this.columnService)||void 0===t||t.destroy(),this.columnService=new a(this.dataStore,this.colData),this.createAutoFillService()}connectedCallback(){this.columnServiceSet(),this.selectionServiceSet(this.selectionStore)}disconnectedCallback(){var t;this.unsubscribeSelectionStore.forEach((t=>t())),this.unsubscribeSelectionStore.length=0,null===(t=this.columnService)||void 0===t||t.destroy()}async componentWillRender(){var t,e;this.selectionStore.get("edit")||await(null===(e=null===(t=this.revogrEdit)||void 0===t?void 0:t.beforeDisconnect)||void 0===e?void 0:e.call(t))}renderRange(e){const s=y(e,this.dimensionRow.state,this.dimensionCol.state),i=O(s);return[t("div",{class:v,style:i},this.isMobileDevice&&t("div",{class:"range-handlers"},t("span",{class:g}),t("span",{class:g})))]}renderEditor(){const e=this.selectionStore.get("edit");if(this.readonly||!e)return null;const s=e.val||h(this.columnService.rowDataModel(e.y,e.x).value),i=Object.assign(Object.assign({},e),this.columnService.getSaveData(e.y,e.x,s)),o=this.beforeEditRender.emit(Object.assign(Object.assign({range:Object.assign(Object.assign({},e),{x1:e.x,y1:e.y})},this.types),{rowDimension:Object.assign({},this.dimensionRow.state),colDimension:Object.assign({},this.dimensionCol.state)}));if(o.defaultPrevented)return null;const n=y(o.detail.range,o.detail.rowDimension,o.detail.colDimension),r=O(n);return t("revogr-edit",{style:r,ref:t=>this.revogrEdit=t,additionalData:this.additionalData,editCell:i,saveOnClose:this.applyChangesOnClose,onCelleditinit:t=>{this.cellEditDone.emit(t.detail)},column:this.columnService.rowDataModel(e.y,e.x),editor:l(this.columnService.columns[e.x],this.editors)})}onEditCell(t){if(t.defaultPrevented)return;const e=this.beforeCellSave.emit(t.detail);e.defaultPrevented||this.cellEdit(e.detail),e.detail.preventFocus||this.focusNext()}render(){var e;const s=[],i=this.renderEditor();if(i)s.push(i);else{const i=this.selectionStore.get("range"),o=this.selectionStore.get("focus");(i||o)&&this.useClipboard&&s.push(t("revogr-clipboard",{readonly:this.readonly,onCopyregion:t=>this.onCopy(t.detail),onClearregion:()=>!this.readonly&&this.clearCell(),ref:t=>this.clipboard=t,onPasteregion:t=>this.onPaste(t.detail)})),i&&s.push(...this.renderRange(i)),o&&!this.readonly&&this.range&&s.push(null===(e=this.autoFillService)||void 0===e?void 0:e.renderAutofill(i,o,this.isMobileDevice)),this.canDrag&&s.push(t("revogr-order-editor",{ref:t=>this.orderEditor=t,dataStore:this.dataStore,dimensionRow:this.dimensionRow,dimensionCol:this.dimensionCol,parent:this.element,rowType:this.types.rowType,onRowdragstartinit:t=>this.rowDragStart(t)}))}return t(o,{key:"d936e8452e84c7a25ecd6502e929f1a5af69467f",class:{mobile:this.isMobileDevice},onDblClick:t=>this.onElementDblClick(t),onMouseDown:t=>this.onElementMouseDown(t),onTouchStart:t=>this.onElementMouseDown(t,!0),onCloseedit:t=>this.closeEdit(t),onCelledit:t=>this.onEditCell(t)},s,t("slot",{key:"cd3525d404aa44fd8d06e7fc459777acb8a9d585",name:"data"}))}doFocus(t,e,s){const{defaultPrevented:i}=this.beforeFocusCell.emit(this.columnService.getSaveData(t.y,t.x));if(i)return!1;const o=Object.assign(Object.assign({range:Object.assign(Object.assign({},t),{x1:e.x,y1:e.y}),next:s},this.types),{rowDimension:Object.assign({},this.dimensionRow.state),colDimension:Object.assign({},this.dimensionCol.state)}),n=this.applyFocus.emit(o);if(n.defaultPrevented)return!1;const{range:r}=n.detail;return!this.focusCell.emit(Object.assign({focus:{x:r.x,y:r.y},end:{x:r.x1,y:r.y1}},n.detail)).defaultPrevented}triggerRangeEvent(t){const e=this.types.rowType,s=this.beforeApplyRange.emit(Object.assign(Object.assign({range:Object.assign({},t)},this.types),{rowDimension:Object.assign({},this.dimensionRow.state),colDimension:Object.assign({},this.dimensionCol.state)}));if(s.defaultPrevented)return!1;const i=this.columnService.getRangeTransformedToProps(s.detail.range,this.dataStore);let o=this.beforeSetRange.emit(i);return!o.defaultPrevented&&(o=this.setRange.emit(Object.assign(Object.assign({},s.detail.range),{type:e})),!o.defaultPrevented&&!o.defaultPrevented)}onElementDblClick(t){if(t.defaultPrevented)return;const e=this.getData();S(t,e)&&this.doEdit()}onElementMouseDown(t,e=!1){var s;const i=t.target;if(P(i)||t.defaultPrevented)return;const o=this.getData(),n=S(t,o);n&&(this.focus(n,this.range&&t.shiftKey),this.range&&(i&&(null===(s=this.autoFillService)||void 0===s||s.selectionStart(i,this.getData())),e?D(t.touches[0],g)&&t.preventDefault():t.preventDefault()))}doEdit(t=""){var e;if(this.canEdit()){const s=this.selectionStore.get("focus");if(!s)return;const i=this.columnService.getSaveData(s.y,s.x);null===(e=this.setEdit)||void 0===e||e.emit(Object.assign(Object.assign({},i),{val:t}))}}async closeEdit(t){this.cancelEdit.emit(),(null==t?void 0:t.detail)&&await this.focusNext()}cellEdit(t){const e=this.columnService.getSaveData(t.rgRow,t.rgCol,t.val);this.cellEditApply.emit(e)}getRegion(){const t=this.selectionStore.get("focus");let e=this.selectionStore.get("range");return e||(e=r(t,t)),e}onCopy(t){var e;const s=this.getRegion();if(this.beforeCopyRegion.emit(s).defaultPrevented)return!1;let i;if(s){const{data:t,mapping:e}=this.columnService.copyRangeArray(s,this.dataStore),o=this.rangeClipboardCopy.emit(Object.assign({range:s,data:t,mapping:e},this.types));o.defaultPrevented||(i=o.detail.data)}return null===(e=this.clipboard)||void 0===e||e.doCopy(t,i),!0}onPaste(t){var e;const s=this.selectionStore.get("focus"),i=null!==this.selectionStore.get("edit");if(!s||i)return;let{changed:o,range:n}=this.columnService.getTransformedDataToApply(s,t);const{defaultPrevented:r}=this.rangeClipboardPaste.emit(Object.assign({data:o,models:j(o,this.dataStore),range:n},this.types));r||null===(e=this.autoFillService)||void 0===e||e.onRangeApply(o,n,n)}async focusNext(){var t;await(null===(t=this.keyboardService)||void 0===t?void 0:t.keyChangeSelection(new KeyboardEvent("keydown",{code:d.ARROW_DOWN}),this.range))||this.closeEdit()}clearCell(){var t;const e=this.selectionStore.get("range");if(e&&!c(e)){const s=this.columnService.getRangeStaticData(e,"");null===(t=this.autoFillService)||void 0===t||t.onRangeApply(s,e,e)}else if(this.canEdit()){const t=this.selectionStore.get("focus");if(!t)return;const e=this.columnService.getSaveData(t.y,t.x);this.cellEdit({rgRow:t.y,rgCol:t.x,val:"",type:e.type,prop:e.prop})}}rowDragStart({detail:t}){t.text=h(this.columnService.rowDataModel(t.cell.y,t.cell.x).value)}canEdit(){var t;if(this.readonly)return!1;const e=this.selectionStore.get("focus");return e&&!(null===(t=this.columnService)||void 0===t?void 0:t.isReadOnly(e.y,e.x))}get edited(){return this.selectionStore.get("edit")}focus(t,e=!1){if(!t)return!1;const s=t,i=this.selectionStore.get("focus");if(e&&i){const t=r(i,s);if(t)return this.triggerRangeEvent(t)}return this.doFocus(t,s)}get types(){return{rowType:this.dataStore.get("type"),colType:this.columnService.type}}getData(){return{el:this.element,rows:this.dimensionRow.state,cols:this.dimensionCol.state,lastCell:this.lastCell,focus:this.selectionStore.get("focus"),range:this.selectionStore.get("range"),edit:this.selectionStore.get("edit")}}get element(){return this}static get watchers(){return{selectionStore:[{selectionServiceSet:0}],dimensionRow:[{createAutoFillService:0}],dimensionCol:[{createAutoFillService:0}],dataStore:[{columnServiceSet:0}],colData:[{columnServiceSet:0}]}}static get style(){return'revogr-overlay-selection{display:block;position:relative;width:100%}revogr-overlay-selection .autofill-handle{position:absolute;width:14px;height:14px;margin-left:-13px;margin-top:-13px;z-index:10;cursor:crosshair}revogr-overlay-selection .autofill-handle::before{content:"";position:absolute;right:0;bottom:0;width:10px;height:10px;background:#0d63e8;border:1px solid white;box-sizing:border-box}revogr-overlay-selection.mobile .autofill-handle{position:absolute;width:30px;height:30px;margin-left:-29px;margin-top:-29px;z-index:10;cursor:crosshair}revogr-overlay-selection.mobile .autofill-handle::before{content:"";position:absolute;right:0;bottom:0;width:12px;height:12px;background:#0d63e8;border:1px solid white;box-sizing:border-box}revogr-overlay-selection .selection-border-range{position:absolute;pointer-events:none;z-index:9;box-shadow:-1px 0 0 #0d63e8 inset, 1px 0 0 #0d63e8 inset, 0 -1px 0 #0d63e8 inset, 0 1px 0 #0d63e8 inset}revogr-overlay-selection .selection-border-range .range-handlers{height:100%;background-color:transparent;width:75%;max-width:50px;min-width:20px;left:50%;transform:translateX(-50%);position:absolute}revogr-overlay-selection .selection-border-range .range-handlers>span{pointer-events:auto;height:20px;width:20px;position:absolute;left:50%;transform:translateX(-50%)}revogr-overlay-selection .selection-border-range .range-handlers>span:before,revogr-overlay-selection .selection-border-range .range-handlers>span:after{position:absolute;border-radius:5px;width:15px;height:5px;left:50%;transform:translateX(-50%);background-color:rgba(0, 0, 0, 0.2)}revogr-overlay-selection .selection-border-range .range-handlers>span:first-child{top:-7px}revogr-overlay-selection .selection-border-range .range-handlers>span:first-child:before{content:"";top:0}revogr-overlay-selection .selection-border-range .range-handlers>span:last-child{bottom:-7px}revogr-overlay-selection .selection-border-range .range-handlers>span:last-child:after{content:"";bottom:0}revogr-overlay-selection revogr-edit{z-index:10}'}},[260,"revogr-overlay-selection",{readonly:[4],range:[4],canDrag:[4,"can-drag"],useClipboard:[4,"use-clipboard"],selectionStore:[16],dimensionRow:[16],dimensionCol:[16],dataStore:[16],colData:[16],lastCell:[16],editors:[16],applyChangesOnClose:[4,"apply-changes-on-close"],additionalData:[8,"additional-data"],isMobileDevice:[4,"is-mobile-device"]},[[5,"touchmove","onMouseMove"],[5,"mousemove","onMouseMove"],[5,"touchend","onMouseUp"],[5,"mouseup","onMouseUp"],[5,"mouseleave","onMouseUp"],[0,"dragstartcell","onCellDrag"],[4,"keyup","onKeyUp"],[4,"keydown","onKeyDown"]],{selectionStore:[{selectionServiceSet:0}],dimensionRow:[{createAutoFillService:0}],dimensionCol:[{createAutoFillService:0}],dataStore:[{columnServiceSet:0}],colData:[{columnServiceSet:0}]}]);function q(){"undefined"!=typeof customElements&&["revogr-overlay-selection","revogr-clipboard","revogr-edit","revogr-order-editor"].forEach((t=>{switch(t){case"revogr-overlay-selection":customElements.get(n(t))||customElements.define(n(t),Y);break;case"revogr-clipboard":customElements.get(n(t))||X();break;case"revogr-edit":customElements.get(n(t))||T();break;case"revogr-order-editor":customElements.get(n(t))||N()}}))}export{Y as O,q as d}
|
|
4
|
+
import{h as t,proxyCustomElement as e,HTMLElement as i,createEvent as s,Host as o,transformTag as n}from"@stencil/core/internal/client";import{g as r,M as a,z as l,N as h,b as c}from"./column.service.js";import{c as d}from"./platform.js";import{R as u,i as g,j as p,S as v}from"./consts.js";import{b as f,i as b,c as m,a as y,g as x,d as w,e as j,s as O,f as S,v as D}from"./selection.utils.js";import{l as C,m as M,c as k,d as R,f as E,h as A,g as F,j as T,k as P,o as z}from"./revogr-edit2.js";import{t as K}from"./index2.js";import{d as U}from"./debounce.js";import{d as X}from"./revogr-clipboard2.js";import{d as $}from"./revogr-order-editor2.js";const H=[d.TAB,d.ARROW_UP,d.ARROW_DOWN,d.ARROW_LEFT,d.ARROW_RIGHT];class L{constructor(t){this.sv=t}appendPendingEditValue(t){if(C(t)||1!==t.key.length||t.target instanceof HTMLElement&&M(t.target))return!1;const e=this.sv.selectionStore.get("edit");return"string"==typeof(null==e?void 0:e.val)&&(this.sv.selectionStore.set("edit",Object.assign(Object.assign({},e),{val:`${e.val}${t.key}`})),!0)}async keyDown(t,e,i,{range:s,focus:o}){if(i){if(this.appendPendingEditValue(t))return;switch(t.code){case d.ESCAPE:this.sv.cancel();break;case d.TAB:this.keyChangeSelection(t,e)}}else s&&k(t.code)?this.sv.clearCell():o&&(R(t.code)?this.keyChangeSelection(t,e):E(t.key)?this.sv.change():A(t)||F(t)||(T(t)?this.sv.internalPaste():P(t)?e&&this.selectAll(t):C(t)||1!==t.key.length?await this.keyChangeSelection(t,e):this.sv.change(t.key)))}selectAll(t){const e=this.sv.selectionStore.get("range"),i=this.sv.selectionStore.get("focus");e&&i&&(t.preventDefault(),this.sv.selectAll())}async keyChangeSelection(t,e){const i=this.changeDirectionKey(t,e);if(!i)return!1;await K(u+30);const s=this.sv.selectionStore.get("range"),o=this.sv.selectionStore.get("focus");return this.keyPositionChange(i.changes,s,o,i.isMulti)}keyPositionChange(t,e,i,s=!1){if(!e||!i)return!1;const o=f(e,i,t,s);if(!o)return!1;const n=this.sv.getData();if(s){if([o.start,o.end].some((t=>b(t,n.lastCell)||m(t))))return!1;const t=r(o.start,o.end);return this.sv.range(t)}return this.sv.focus(o.start,t,b(o.start,n.lastCell)?1:m(o.start)?-1:0)}changeDirectionKey(t,e){const i=e&&t.shiftKey;if(H.includes(t.code)&&t.preventDefault(),t.shiftKey&&t.code===d.TAB)return{changes:{x:-1},isMulti:!1};switch(t.code){case d.ARROW_UP:return{changes:{y:-1},isMulti:i};case d.ARROW_DOWN:return{changes:{y:1},isMulti:i};case d.ARROW_LEFT:return{changes:{x:-1},isMulti:i};case d.TAB:case d.ARROW_RIGHT:return{changes:{x:1},isMulti:i}}}}class N{constructor(t){this.sv=t,this.autoFillType=null,this.autoFillInitial=null,this.autoFillStart=null,this.autoFillLast=null}renderAutofill(e,i,s=!1){let o;return o=y(e||Object.assign(Object.assign({},i),{x1:i.x,y1:i.y}),this.sv.dimensionRow.state,this.sv.dimensionCol.state),t("div",{class:{[p]:!0,[g]:s},style:{left:`${o.right}px`,top:`${o.bottom}px`},onMouseDown:t=>this.autoFillHandler(t),onTouchStart:t=>this.autoFillHandler(t)})}autoFillHandler(t,e="AutoFill"){let i=null;t.target instanceof Element&&(i=t.target),i&&(this.selectionStart(i,this.sv.getData(),e),t.preventDefault())}get isAutoFill(){return!!this.autoFillType}selectionMouseMove(t){this.onMouseMoveAutofill||(this.onMouseMoveAutofill=U(((t,e)=>this.doAutofillMouseMove(t,e)),5)),this.isAutoFill&&this.onMouseMoveAutofill(t,this.sv.getData())}getFocus(t,e){return!t&&e&&(t={x:e.x,y:e.y}),t||null}doAutofillMouseMove(t,e){if(!this.autoFillInitial)return;const i=x(t,"clientX",g),s=x(t,"clientY",g);if(null===i||null===s)return;const o=w({x:i,y:s},e);if(this.autoFillLast||this.autoFillLast||(this.autoFillLast=this.autoFillStart),!b(o,e.lastCell))if(this.autoFillLast=o,o.x===this.autoFillInitial.x&&o.y===this.autoFillInitial.y)this.sv.setTempRange(null);else{const t=r(this.autoFillInitial,this.autoFillLast);this.sv.setTempRange({area:t,type:this.autoFillType})}}selectionStart(t,e,i="Selection"){const{top:s,left:o}=t.getBoundingClientRect();this.autoFillInitial=this.getFocus(e.focus,e.range),this.autoFillType=i,this.autoFillStart=w({x:o,y:s},e)}clearAutoFillSelection(t,e){if(this.autoFillInitial)if(this.autoFillInitial=this.getFocus(t,e),"AutoFill"===this.autoFillType){const t=r(this.autoFillInitial,this.autoFillLast);if(t){const{defaultPrevented:i,detail:{range:s}}=this.sv.clearRangeDataApply({range:t});!i&&e?this.applyRangeWithData(s,e):this.sv.setTempRange(null)}}else this.applyRangeOnly(this.autoFillInitial,this.autoFillLast);this.resetAutoFillState()}resetAutoFillState(){this.autoFillType=null,this.autoFillInitial=null,this.autoFillLast=null,this.autoFillStart=null}onRangeApply(t,e,i){this.sv.rangeDataApply({data:t,models:j(t,this.sv.dataStore),type:this.sv.dataStore.get("type"),oldRange:i,newRange:e}),this.sv.setRange(e)}applyRangeWithData(t,e){const i={type:this.sv.dataStore.get("type"),colType:this.sv.columnService.type,newData:{},mapping:{},newRange:t,oldRange:e},{mapping:s,changed:o}=this.sv.columnService.getRangeData(i,this.sv.columnService.columns);i.newData=o,i.mapping=s;let n=this.sv.selectionChanged(i);n.defaultPrevented?this.sv.setTempRange(null):(n=this.sv.rangeCopy(i),n.defaultPrevented?this.sv.setRange(t):this.onRangeApply(i.newData,t,e))}applyRangeOnly(t,e){if(!t||!e)return;const i=r(t,e);this.sv.setRange(i)}}const W=e(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.beforeCopyRegion=s(this,"beforecopyregion",7),this.beforeRegionPaste=s(this,"beforepasteregion",7),this.cellEditApply=s(this,"celleditapply",7),this.beforeFocusCell=s(this,"beforecellfocusinit",7),this.beforeNextViewportFocus=s(this,"beforenextvpfocus",7),this.setEdit=s(this,"setedit",7),this.beforeApplyRange=s(this,"beforeapplyrange",7),this.beforeSetRange=s(this,"beforesetrange",7),this.setRange=s(this,"setrange",7),this.beforeEditRender=s(this,"beforeeditrender",7),this.selectAll=s(this,"selectall",7),this.cancelEdit=s(this,"canceledit",7),this.setTempRange=s(this,"settemprange",7),this.beforeSetTempRange=s(this,"beforesettemprange",7),this.applyFocus=s(this,"applyfocus",7),this.focusCell=s(this,"focuscell",7),this.beforeRangeDataApply=s(this,"beforerangedataapply",7),this.selectionChange=s(this,"selectionchangeinit",7),this.beforeRangeCopyApply=s(this,"beforerangecopyapply",7),this.rangeEditApply=s(this,"rangeeditapply",7),this.rangeClipboardCopy=s(this,"clipboardrangecopy",7),this.rangeClipboardPaste=s(this,"clipboardrangepaste",7),this.beforeKeyDown=s(this,"beforekeydown",7),this.beforeKeyUp=s(this,"beforekeyup",7),this.beforeCellSave=s(this,"beforecellsave",7),this.cellEditDone=s(this,"celledit",7),this.applyChangesOnClose=!1,this.keyboardService=null,this.autoFillService=null,this.unsubscribeSelectionStore=[]}onMouseMove(t){var e;this.selectionStore.get("focus")&&(null===(e=this.autoFillService)||void 0===e||e.selectionMouseMove(t))}onMouseUp(){var t;null===(t=this.autoFillService)||void 0===t||t.clearAutoFillSelection(this.selectionStore.get("focus"),this.selectionStore.get("range"))}onCellDrag(t){var e;null===(e=this.orderEditor)||void 0===e||e.dragStart(t.detail)}onKeyUp(t){this.beforeKeyUp.emit(Object.assign({original:t},this.getData()))}onKeyDown(t){var e;const i=this.beforeKeyDown.emit(Object.assign({original:t},this.getData()));t.defaultPrevented||i.defaultPrevented||null===(e=this.keyboardService)||void 0===e||e.keyDown(t,this.range,!!this.selectionStore.get("edit"),{focus:this.selectionStore.get("focus"),range:this.selectionStore.get("range")})}selectionServiceSet(t){this.unsubscribeSelectionStore.forEach((t=>t())),this.unsubscribeSelectionStore.length=0,this.unsubscribeSelectionStore.push(t.onChange("nextFocus",(t=>t&&this.doFocus(t,t)))),this.keyboardService=new L({selectionStore:t,range:t=>!!t&&this.triggerRangeEvent(t),focus:(t,e,i)=>i?(this.beforeNextViewportFocus.emit(t),!1):this.doFocus(t,t,e),change:t=>{this.readonly||this.doEdit(t)},cancel:async()=>{var t;await(null===(t=this.revogrEdit)||void 0===t?void 0:t.cancelChanges()),this.closeEdit()},clearCell:()=>!this.readonly&&this.clearCell(),internalPaste:()=>!this.readonly&&this.beforeRegionPaste.emit(),getData:()=>this.getData(),selectAll:()=>this.selectAll.emit()}),this.createAutoFillService()}createAutoFillService(){this.autoFillService=new N({dimensionRow:this.dimensionRow,dimensionCol:this.dimensionCol,columnService:this.columnService,dataStore:this.dataStore,clearRangeDataApply:t=>this.beforeRangeDataApply.emit(Object.assign(Object.assign(Object.assign({},t),this.types),{rowDimension:Object.assign({},this.dimensionRow.state),colDimension:Object.assign({},this.dimensionCol.state)})),setTempRange:t=>{const e=this.beforeSetTempRange.emit(Object.assign(Object.assign({tempRange:t},this.getData()),this.types));return e.defaultPrevented?null:this.setTempRange.emit(e.detail.tempRange)},selectionChanged:t=>this.selectionChange.emit(t),rangeCopy:t=>this.beforeRangeCopyApply.emit(t),rangeDataApply:t=>this.rangeEditApply.emit(t),setRange:t=>!!t&&this.triggerRangeEvent(t),getData:()=>this.getData()})}columnServiceSet(){var t;null===(t=this.columnService)||void 0===t||t.destroy(),this.columnService=new a(this.dataStore,this.colData),this.createAutoFillService()}connectedCallback(){this.columnServiceSet(),this.selectionServiceSet(this.selectionStore)}disconnectedCallback(){var t;this.unsubscribeSelectionStore.forEach((t=>t())),this.unsubscribeSelectionStore.length=0,null===(t=this.columnService)||void 0===t||t.destroy()}async componentWillRender(){var t,e;this.selectionStore.get("edit")||await(null===(e=null===(t=this.revogrEdit)||void 0===t?void 0:t.beforeDisconnect)||void 0===e?void 0:e.call(t))}renderRange(e){const i=y(e,this.dimensionRow.state,this.dimensionCol.state),s=O(i);return[t("div",{class:v,style:s},this.isMobileDevice&&t("div",{class:"range-handlers"},t("span",{class:g}),t("span",{class:g})))]}renderEditor(){const e=this.selectionStore.get("edit");if(this.readonly||!e)return null;const i=e.val||l(this.columnService.rowDataModel(e.y,e.x).value),s=Object.assign(Object.assign({},e),this.columnService.getSaveData(e.y,e.x,i)),o=this.beforeEditRender.emit(Object.assign(Object.assign({range:Object.assign(Object.assign({},e),{x1:e.x,y1:e.y})},this.types),{rowDimension:Object.assign({},this.dimensionRow.state),colDimension:Object.assign({},this.dimensionCol.state)}));if(o.defaultPrevented)return null;const n=y(o.detail.range,o.detail.rowDimension,o.detail.colDimension),r=O(n);return t("revogr-edit",{style:r,ref:t=>this.revogrEdit=t,additionalData:this.additionalData,editCell:s,saveOnClose:this.applyChangesOnClose,onCelleditinit:t=>{this.cellEditDone.emit(t.detail)},column:this.columnService.rowDataModel(e.y,e.x),editor:h(this.columnService.columns[e.x],this.editors)})}onEditCell(t){if(t.defaultPrevented)return;const e=this.beforeCellSave.emit(t.detail);e.defaultPrevented||this.cellEdit(e.detail),e.detail.preventFocus||this.focusNext()}render(){var e;const i=[],s=this.renderEditor();if(s)i.push(s);else{const s=this.selectionStore.get("range"),o=this.selectionStore.get("focus");(s||o)&&this.useClipboard&&i.push(t("revogr-clipboard",{readonly:this.readonly,onCopyregion:t=>this.onCopy(t.detail),onClearregion:()=>!this.readonly&&this.clearCell(),ref:t=>this.clipboard=t,onPasteregion:t=>this.onPaste(t.detail)})),s&&i.push(...this.renderRange(s)),o&&!this.readonly&&this.range&&i.push(null===(e=this.autoFillService)||void 0===e?void 0:e.renderAutofill(s,o,this.isMobileDevice)),this.canDrag&&i.push(t("revogr-order-editor",{ref:t=>this.orderEditor=t,dataStore:this.dataStore,dimensionRow:this.dimensionRow,dimensionCol:this.dimensionCol,parent:this.element,rowType:this.types.rowType,onRowdragstartinit:t=>this.rowDragStart(t)}))}return t(o,{key:"d936e8452e84c7a25ecd6502e929f1a5af69467f",class:{mobile:this.isMobileDevice},onDblClick:t=>this.onElementDblClick(t),onMouseDown:t=>this.onElementMouseDown(t),onTouchStart:t=>this.onElementMouseDown(t,!0),onCloseedit:t=>this.closeEdit(t),onCelledit:t=>this.onEditCell(t)},i,t("slot",{key:"cd3525d404aa44fd8d06e7fc459777acb8a9d585",name:"data"}))}doFocus(t,e,i){const{defaultPrevented:s}=this.beforeFocusCell.emit(this.columnService.getSaveData(t.y,t.x));if(s)return!1;const o=Object.assign(Object.assign({range:Object.assign(Object.assign({},t),{x1:e.x,y1:e.y}),next:i},this.types),{rowDimension:Object.assign({},this.dimensionRow.state),colDimension:Object.assign({},this.dimensionCol.state)}),n=this.applyFocus.emit(o);if(n.defaultPrevented)return!1;const{range:r}=n.detail;return!this.focusCell.emit(Object.assign({focus:{x:r.x,y:r.y},end:{x:r.x1,y:r.y1}},n.detail)).defaultPrevented}triggerRangeEvent(t){const e=this.types.rowType,i=this.beforeApplyRange.emit(Object.assign(Object.assign({range:Object.assign({},t)},this.types),{rowDimension:Object.assign({},this.dimensionRow.state),colDimension:Object.assign({},this.dimensionCol.state)}));if(i.defaultPrevented)return!1;const s=this.columnService.getRangeTransformedToProps(i.detail.range,this.dataStore);let o=this.beforeSetRange.emit(s);return!o.defaultPrevented&&(o=this.setRange.emit(Object.assign(Object.assign({},i.detail.range),{type:e})),!o.defaultPrevented&&!o.defaultPrevented)}onElementDblClick(t){if(t.defaultPrevented)return;const e=this.getData();S(t,e)&&this.doEdit()}onElementMouseDown(t,e=!1){var i;const s=t.target;if(M(s)||t.defaultPrevented)return;const o=this.getData(),n=S(t,o);n&&(this.focus(n,this.range&&t.shiftKey),this.range&&(s&&(null===(i=this.autoFillService)||void 0===i||i.selectionStart(s,this.getData())),e?D(t.touches[0],g)&&t.preventDefault():t.preventDefault()))}doEdit(t=""){var e;if(this.canEdit()){const i=this.selectionStore.get("focus");if(!i)return;const s=this.columnService.getSaveData(i.y,i.x);null===(e=this.setEdit)||void 0===e||e.emit(Object.assign(Object.assign({},s),{val:t}))}}async closeEdit(t){this.cancelEdit.emit(),(null==t?void 0:t.detail)&&await this.focusNext()}cellEdit(t){const e=this.columnService.getSaveData(t.rgRow,t.rgCol,t.val);this.cellEditApply.emit(e)}getRegion(){const t=this.selectionStore.get("focus");let e=this.selectionStore.get("range");return e||(e=r(t,t)),e}onCopy(t){var e;const i=this.getRegion();if(this.beforeCopyRegion.emit(i).defaultPrevented)return!1;let s;if(i){const{data:t,mapping:e}=this.columnService.copyRangeArray(i,this.dataStore),o=this.rangeClipboardCopy.emit(Object.assign({range:i,data:t,mapping:e},this.types));o.defaultPrevented||(s=o.detail.data)}return null===(e=this.clipboard)||void 0===e||e.doCopy(t,s),!0}onPaste(t){var e;const i=this.selectionStore.get("focus"),s=null!==this.selectionStore.get("edit");if(!i||s)return;let{changed:o,range:n}=this.columnService.getTransformedDataToApply(i,t);const{defaultPrevented:r}=this.rangeClipboardPaste.emit(Object.assign({data:o,models:j(o,this.dataStore),range:n},this.types));r||null===(e=this.autoFillService)||void 0===e||e.onRangeApply(o,n,n)}async focusNext(){var t;await(null===(t=this.keyboardService)||void 0===t?void 0:t.keyChangeSelection(new KeyboardEvent("keydown",{code:d.ARROW_DOWN}),this.range))||this.closeEdit()}clearCell(){var t;const e=this.selectionStore.get("range");if(e&&!c(e)){const i=this.columnService.getRangeStaticData(e,"");null===(t=this.autoFillService)||void 0===t||t.onRangeApply(i,e,e)}else if(this.canEdit()){const t=this.selectionStore.get("focus");if(!t)return;const e=this.columnService.getSaveData(t.y,t.x);this.cellEdit({rgRow:t.y,rgCol:t.x,val:"",type:e.type,prop:e.prop})}}rowDragStart({detail:t}){t.text=l(this.columnService.rowDataModel(t.cell.y,t.cell.x).value)}canEdit(){var t;if(this.readonly)return!1;const e=this.selectionStore.get("focus");return e&&!(null===(t=this.columnService)||void 0===t?void 0:t.isReadOnly(e.y,e.x))}get edited(){return this.selectionStore.get("edit")}focus(t,e=!1){if(!t)return!1;const i=t,s=this.selectionStore.get("focus");if(e&&s){const t=r(s,i);if(t)return this.triggerRangeEvent(t)}return this.doFocus(t,i)}get types(){return{rowType:this.dataStore.get("type"),colType:this.columnService.type}}getData(){return{el:this.element,rows:this.dimensionRow.state,cols:this.dimensionCol.state,lastCell:this.lastCell,focus:this.selectionStore.get("focus"),range:this.selectionStore.get("range"),edit:this.selectionStore.get("edit")}}get element(){return this}static get watchers(){return{selectionStore:[{selectionServiceSet:0}],dimensionRow:[{createAutoFillService:0}],dimensionCol:[{createAutoFillService:0}],dataStore:[{columnServiceSet:0}],colData:[{columnServiceSet:0}]}}static get style(){return'revogr-overlay-selection{display:block;position:relative;width:100%}revogr-overlay-selection .autofill-handle{position:absolute;width:14px;height:14px;margin-left:-13px;margin-top:-13px;z-index:10;cursor:crosshair}revogr-overlay-selection .autofill-handle::before{content:"";position:absolute;right:0;bottom:0;width:10px;height:10px;background:#0d63e8;border:1px solid white;box-sizing:border-box}revogr-overlay-selection.mobile .autofill-handle{position:absolute;width:30px;height:30px;margin-left:-29px;margin-top:-29px;z-index:10;cursor:crosshair}revogr-overlay-selection.mobile .autofill-handle::before{content:"";position:absolute;right:0;bottom:0;width:12px;height:12px;background:#0d63e8;border:1px solid white;box-sizing:border-box}revogr-overlay-selection .selection-border-range{position:absolute;pointer-events:none;z-index:9;box-shadow:-1px 0 0 #0d63e8 inset, 1px 0 0 #0d63e8 inset, 0 -1px 0 #0d63e8 inset, 0 1px 0 #0d63e8 inset}revogr-overlay-selection .selection-border-range .range-handlers{height:100%;background-color:transparent;width:75%;max-width:50px;min-width:20px;left:50%;transform:translateX(-50%);position:absolute}revogr-overlay-selection .selection-border-range .range-handlers>span{pointer-events:auto;height:20px;width:20px;position:absolute;left:50%;transform:translateX(-50%)}revogr-overlay-selection .selection-border-range .range-handlers>span:before,revogr-overlay-selection .selection-border-range .range-handlers>span:after{position:absolute;border-radius:5px;width:15px;height:5px;left:50%;transform:translateX(-50%);background-color:rgba(0, 0, 0, 0.2)}revogr-overlay-selection .selection-border-range .range-handlers>span:first-child{top:-7px}revogr-overlay-selection .selection-border-range .range-handlers>span:first-child:before{content:"";top:0}revogr-overlay-selection .selection-border-range .range-handlers>span:last-child{bottom:-7px}revogr-overlay-selection .selection-border-range .range-handlers>span:last-child:after{content:"";bottom:0}revogr-overlay-selection revogr-edit{z-index:10}'}},[260,"revogr-overlay-selection",{readonly:[4],range:[4],canDrag:[4,"can-drag"],useClipboard:[4,"use-clipboard"],selectionStore:[16],dimensionRow:[16],dimensionCol:[16],dataStore:[16],colData:[16],lastCell:[16],editors:[16],applyChangesOnClose:[4,"apply-changes-on-close"],additionalData:[8,"additional-data"],isMobileDevice:[4,"is-mobile-device"]},[[5,"touchmove","onMouseMove"],[5,"mousemove","onMouseMove"],[5,"touchend","onMouseUp"],[5,"mouseup","onMouseUp"],[5,"mouseleave","onMouseUp"],[0,"dragstartcell","onCellDrag"],[4,"keyup","onKeyUp"],[4,"keydown","onKeyDown"]],{selectionStore:[{selectionServiceSet:0}],dimensionRow:[{createAutoFillService:0}],dimensionCol:[{createAutoFillService:0}],dataStore:[{columnServiceSet:0}],colData:[{columnServiceSet:0}]}]);function V(){"undefined"!=typeof customElements&&["revogr-overlay-selection","revogr-clipboard","revogr-edit","revogr-order-editor"].forEach((t=>{switch(t){case"revogr-overlay-selection":customElements.get(n(t))||customElements.define(n(t),W);break;case"revogr-clipboard":customElements.get(n(t))||X();break;case"revogr-edit":customElements.get(n(t))||z();break;case"revogr-order-editor":customElements.get(n(t))||$()}}))}export{W as O,V as d}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{R as r,
|
|
4
|
+
import{R as r,k as o}from"./revogr-row-headers2.js";const s=r,e=o;export{s as RevogrRowHeaders,e as defineCustomElement}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{proxyCustomElement as t,HTMLElement as e,createEvent as s,h as r,Host as o,transformTag as i}from"@stencil/core/internal/client";import{j as n,i as a,D as c}from"./data.store.js";import{c as l}from"./consts.js";import"./platform.js";import{g as d}from"./dimension.helpers.js";import{H as
|
|
4
|
+
import{proxyCustomElement as t,HTMLElement as e,createEvent as s,h as r,Host as o,transformTag as i}from"@stencil/core/internal/client";import{j as n,i as a,D as c}from"./data.store.js";import{c as l}from"./consts.js";import"./platform.js";import{g as d}from"./dimension.helpers.js";import{H as f,d as m}from"./revogr-viewport-scroll2.js";import{d as u}from"./revogr-data2.js";import{b as h}from"./revogr-header2.js";import{d as v}from"./vnode-converter.js";const b=(t,e,s=50)=>(null==e?void 0:e.size)||Math.max(10*(t.toString().length+1),s);function p(t,e,s=1){return!e||t.realSize<=e?0:Math.max(0,t.realSize-e-t.originItemSize*s)}function j(t,e,s,r=1){return Math.min(Math.max(0,t),p(e,s,r))}function g(t,e,s,r,o){const i=d(o,t),n=I(e);let a;if(n){let t=i.itemIndex-(n.itemIndex||0);t&&(a=x(Math.abs(t),Object.assign(Object.assign({positiveDirection:t>-1},o),e)))}const c=function(t,e,s){return Math.min(t+(s.end-s.start),e)}(r,o.realSize,i);if(a){const t=O(i,s,c,a,o);t.length&&w(a.items,t,a)}if(!a){const t=z({firstItemStart:i.start,firstItemIndex:i.itemIndex,origSize:o.originItemSize,maxSize:c,maxCount:s,sizes:o.sizes});a={items:t,start:0,end:t.length-1}}return a}function w(t,e,s){t.splice(s.end+1,0,...e),s.start>=s.end&&(s.start!==s.end||0!==s.start)&&(s.start+=e.length),s.end+=e.length}function O(t,e,s,r,o){const i=k(r);return z({sizes:o.sizes,firstItemStart:i.end,firstItemIndex:i.itemIndex+1,origSize:o.originItemSize,maxSize:s-(i.end-t.start),maxCount:e})}function z(t,e=0){const s=[];let r=t.firstItemIndex,o=e;for(;o<=t.maxSize&&r<t.maxCount;){const e=S(r,t.sizes,t.origSize);s.push({start:t.firstItemStart+o,end:t.firstItemStart+o+e,itemIndex:r,size:e}),o+=e,r++}return s}function x(t,e){var s,r;const o=[...e.items],i=o.length;let n={start:e.start,end:e.end};if(!(t>i)){if(e.positiveDirection){let s=k(e),r=n.start;const a=r+t;for(;r<a;r++){const t=s.itemIndex+1,a=S(t,e.sizes,e.originItemSize);if(s.end+a>e.realSize)break;let c=r%i;if(!o[c])throw new Error("incorrect index");o[c]=s={start:s.end,end:s.end+a,itemIndex:t,size:a},n.start++,n.end=c}}else{let a=I(e);const c=n.end;for(let l=0;l<t;l++){const t=(null!==(s=null==a?void 0:a.itemIndex)&&void 0!==s?s:0)-1,d=S(t,e.sizes,e.originItemSize);let f=c-l;if(f=(f<0?i+f:f)%i,!o[f]){console.error("incorrect index");break}const m=null!==(r=null==a?void 0:a.start)&&void 0!==r?r:0;o[f]=a={start:m-d,end:m,itemIndex:t,size:d},n.start=f,n.end--}}return Object.assign({items:o},{start:(n.start<0?i+n.start:n.start)%i,end:(n.end<0?i+n.end:n.end)%i})}}function S(t,e,s=0){return"number"==typeof(null==e?void 0:e[t])?e[t]:s}function C(t,e,s,r){return!(!s||!r)&&(t>=s.start&&t<=s.end||t>s.end&&r.end===e)}function y(t,e,s,r){var o;return!!s&&e+t>(null!==(o=null==r?void 0:r.end)&&void 0!==o?o:0)}function I(t){return t.items[t.start]}function k(t){return t.items[t.end]}function E(t,e,s,r){const o=[...t],i=o.length;let n=r,a=0,c=e;if(!i)return[];for(;a<i;){const t=o[c];t.start=n,t.size=s,t.end=t.start+s,n=t.end,c++,a++,c===i&&(c=0)}return o}class M{get lastCoordinate(){return this.lastKnownScroll}set lastCoordinate(t){this.lastKnownScroll=t}constructor(t){this.type=t,this.lastKnownScroll=0,this.store=n({items:[],start:0,end:0,virtualSize:0,realCount:0,clientSize:0,renderOffset:0})}setViewPortCoordinate(t,e,s=!1){const r=this.store.get("virtualSize");if(!r)return;const o=1*e.originItemSize,i=r+2*o,n=p(e,r,1);let a,c=j(t,e,r,1);this.lastCoordinate=c,c-=o,c=c<0?0:c<n?c:n,a=s?{items:[],start:0,end:0}:this.getItems();const l=I(a),d=k(a);let f={};if(C(c,e.realSize,l,d)){if(y(c,i,l,d)){const t=[...a.items],s=O(l,this.store.get("realCount"),i+c-l.start,a,{sizes:e.sizes,originItemSize:e.originItemSize});if(s.length){const e={start:this.store.get("start"),end:this.store.get("end")};w(t,s,e),f=Object.assign(Object.assign(Object.assign({},f),{items:[...t]}),e),this.setViewport(Object.assign({},f))}}}else f=Object.assign(Object.assign({},f),g(c,a,this.store.get("realCount"),i,e)),this.setViewport(Object.assign({},f))}setOriginalSizes(t){const e=this.store.get("items");e.length&&a(this.store,{items:E(e,this.store.get("start"),t,this.lastCoordinate)})}getItems(){return{items:this.store.get("items"),start:this.store.get("start"),end:this.store.get("end")}}setViewport(t){"number"!=typeof t.realCount&&"number"!=typeof t.virtualSize||(t=Object.assign(Object.assign({},t),{items:t.items||[]})),a(this.store,t)}}const D=t=>(e,{rowIndex:s})=>t+s,H=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.scrollViewport=s(this,"scrollview",3),this.elementToScroll=s(this,"ref",3),this.jobsBeforeRender=[]}render(){const t=[],e=new M("colPinStart");let s=1;for(let o of this.dataPorts){const i=o.dataStore.get("items").length,n=new c(o.type,Object.assign({},o.dataStore.state)),a=new c("colPinStart"),l=Object.assign({cellTemplate:D(s)},this.rowHeaderColumn);a.updateData([l]),t.push(r("revogr-data",Object.assign({},o,{colType:"rowHeaders",jobsBeforeRender:this.jobsBeforeRender,rowClass:this.rowClass,dataStore:n.store,colData:a.store,viewportCol:e.store,readonly:!0,range:!1}))),s+=i}const i=b(s,this.rowHeaderColumn);e.setViewport({realCount:1,virtualSize:0,items:[{size:i,start:0,end:i,itemIndex:0}]});const n={contentHeight:this.height,contentWidth:0,style:{minWidth:`${i}px`},colType:"rowHeaders",ref:t=>this.elementToScroll.emit(t),onScrollviewport:t=>this.scrollViewport.emit(t.detail)},a=Object.assign(Object.assign({},this.headerProp),{groups:[],colData:"object"==typeof this.rowHeaderColumn?[this.rowHeaderColumn]:[],viewportCol:e.store,canResize:!1,type:l,slot:f});return r(o,{class:{[l]:!0},key:l},r("revogr-viewport-scroll",Object.assign({key:"c401e82e02e4bdb7afb25f2f49c6776f2e115c81"},n,{"row-header":!0}),r("revogr-header",Object.assign({key:"3c73d27bd96e23a34fc0cf47eda4d2e65751df98"},a)),t))}},[0,"revogr-row-headers",{height:[2],dataPorts:[16],headerProp:[16],rowClass:[1,"row-class"],resize:[4],rowHeaderColumn:[16],additionalData:[8,"additional-data"],jobsBeforeRender:[16]}]);function P(){"undefined"!=typeof customElements&&["revogr-row-headers","revogr-data","revogr-header","revogr-viewport-scroll","vnode-html"].forEach((t=>{switch(t){case"revogr-row-headers":customElements.get(i(t))||customElements.define(i(t),H);break;case"revogr-data":customElements.get(i(t))||u();break;case"revogr-header":customElements.get(i(t))||h();break;case"revogr-viewport-scroll":customElements.get(i(t))||m();break;case"vnode-html":customElements.get(i(t))||v()}}))}export{H as R,M as V,g as a,O as b,j as c,z as d,y as e,I as f,p as g,k as h,C as i,b as j,P as k,x as r,E as s,w as u}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{proxyCustomElement as t,HTMLElement as i,createEvent as e,h as r,Host as s,transformTag as l}from"@stencil/core/internal/client";import{L as o,a as h,
|
|
4
|
+
import{proxyCustomElement as t,HTMLElement as i,createEvent as e,h as r,Host as s,transformTag as l}from"@stencil/core/internal/client";import{L as o,a as h,b as c}from"./local.scroll.timer.js";import{g as n}from"./index2.js";class a{constructor(t){this.element=t,this.autohideScrollTimeout=0}setScrollSize(t){t?this.element.removeAttribute("autohide"):this.element.setAttribute("autohide","true")}checkScroll({scrollSize:t,contentSize:i,virtualSize:e}){!t&&i>e&&(this.element.setAttribute("visible","true"),this.autohideScrollTimeout=this.show(this.element,this.autohideScrollTimeout))}show(t,i){return clearTimeout(i),Number(setTimeout((()=>{null==t||t.removeAttribute("visible")}),1e3))}clear(){clearTimeout(this.autohideScrollTimeout)}}const u=t(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.scrollVirtual=e(this,"scrollvirtual",7),this.dimension="rgRow",this.scrollSize=0}async setScroll(t){var i;this.dimension===t.dimension&&(this.localScrollTimer.latestScrollUpdate(t.dimension),null===(i=this.localScrollService)||void 0===i||i.setScroll(t),t.coordinate&&this.autohideScrollPlugin.checkScroll({scrollSize:this.scrollSize,contentSize:this.realSize,virtualSize:this.virtualSize}))}async changeScroll(t){return t.delta?this.localScrollService.setScrollByDelta(t,this.element["rgRow"===t.dimension?"scrollTop":"scrollLeft"]):t}connectedCallback(){this.autohideScrollPlugin=new a(this.element),this.localScrollTimer=new o("ontouchstart"in document.documentElement?0:10),this.localScrollService=new h({runScroll:t=>this.scrollVirtual.emit(t),applyScroll:t=>{this.localScrollTimer.setCoordinate(t),this.element["rgRow"===t.dimension?"scrollTop":"scrollLeft"]=t.coordinate}})}disconnectedCallback(){this.autohideScrollPlugin.clear()}componentWillLoad(){this.scrollSize=n(document)}componentDidRender(){let t=0;"rgRow"===this.dimension?(t=this.element.scrollHeight>this.element.clientHeight?this.scrollSize:0,this.element.style.minWidth=`${t}px`):(t=this.element.scrollWidth>this.element.clientWidth?this.scrollSize:0,this.element.style.minHeight=`${t}px`),this.autohideScrollPlugin.setScrollSize(t),this.localScrollService.setParams({contentSize:this.realSize,clientSize:"rgRow"===this.dimension?this.element.clientHeight:this.element.clientWidth,virtualSize:this.clientSize},this.dimension)}onScroll(t){if(!(t.target instanceof Element))return;const i=t.target;let e="scrollLeft";"rgRow"===this.dimension&&(e="scrollTop");const r=()=>{var t;null===(t=this.localScrollService)||void 0===t||t.scroll(i[e]||0,this.dimension)};this.localScrollTimer.isReady(this.dimension,i[e])?r():this.localScrollTimer.throttleLastScrollUpdate(this.dimension,i[e]||0,(()=>r()))}render(){const t=c(this.realSize,"rgRow"===this.dimension?this.element.clientHeight:this.element.clientWidth,this.clientSize);return r(s,{key:"7213817ef941eee4050b714266598ec0c2961ee9",onScroll:t=>this.onScroll(t)},r("div",{key:"501da49c63253ab943172494b9dbf5399be56cee",style:{["rgRow"===this.dimension?"height":"width"]:`${t}px`}}))}get element(){return this}static get style(){return"revogr-scroll-virtual[autohide]{position:absolute;z-index:100 !important}revogr-scroll-virtual[autohide].vertical{top:0;right:0}revogr-scroll-virtual[autohide].vertical[visible]{min-width:20px !important}revogr-scroll-virtual[autohide].horizontal{bottom:0;left:0}revogr-scroll-virtual[autohide].horizontal[visible]{min-height:20px !important}revogr-scroll-virtual.vertical{overflow-y:auto;overflow-x:hidden;height:100%}revogr-scroll-virtual.vertical>div{width:1px}revogr-scroll-virtual.horizontal{overflow-x:auto;overflow-y:hidden;width:100%}revogr-scroll-virtual.horizontal>div{height:1px}"}},[0,"revogr-scroll-virtual",{dimension:[1],realSize:[2,"real-size"],virtualSize:[2,"virtual-size"],clientSize:[2,"client-size"],setScroll:[64],changeScroll:[64]}]);function v(){"undefined"!=typeof customElements&&["revogr-scroll-virtual"].forEach((t=>{"revogr-scroll-virtual"===t&&(customElements.get(l(t))||customElements.define(l(t),u))}))}export{u as R,v as d}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{proxyCustomElement as e,HTMLElement as
|
|
4
|
+
import{proxyCustomElement as e,HTMLElement as i,createEvent as t,h as o,Host as l,transformTag as r}from"@stencil/core/internal/client";import{t as s}from"./throttle.js";import{L as n,a as c,b as a}from"./local.scroll.timer.js";const h="header",d="footer",v="content",u="data";function w(e,i){return{x:e.viewports[e.colType].store.get("realCount"),y:e.viewports[i].store.get("realCount")}}function p(e,i,t,o){return{colData:e.colStore,viewportCol:e.viewports[e.colType].store,viewportRow:e.viewports[i].store,lastCell:w(e,i),slot:t,type:i,canDrag:!o,position:e.position,dataStore:e.rowStores[i].store,dimensionCol:e.dimensions[e.colType].store,dimensionRow:e.dimensions[i].store,style:o?{height:`${e.dimensions[i].store.get("realSize")}px`}:void 0}}class g{constructor(e,i,t){this.resize=i,this.resizeObserver=null,this.previousSize={width:0,height:0},this.apply=s((e=>{var i;const t={width:e.width,height:e.height};null===(i=this.resize)||void 0===i||i.call(this,t,this.previousSize),this.previousSize=t}),40,{leading:!1,trailing:!0});const o=[];t.forEach((e=>{e&&o.push(e)})),this.init(e,o)}init(e,i=[]){const t=this.resizeObserver=new ResizeObserver((i=>{i.length&&this.apply(i[0].target===e?i[0].contentRect:e.getBoundingClientRect())}));t.observe(e),i.forEach((e=>{t.observe(e)}))}destroy(){var e;null===(e=this.resizeObserver)||void 0===e||e.disconnect(),this.resizeObserver=null}}const f=e(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.scrollViewport=t(this,"scrollviewport",7),this.resizeViewport=t(this,"resizeviewport",7),this.scrollchange=t(this,"scrollchange",7),this.silentScroll=t(this,"scrollviewportsilent",7),this.contentWidth=0,this.contentHeight=0,this.noHorizontalScrollTransfer=!1}async setScroll(e){var i;this.localScrollTimer.latestScrollUpdate(e.dimension),null===(i=this.localScrollService)||void 0===i||i.setScroll(e)}async changeScroll(e,i=!1){var t,o,l,r;if(!i){if(e.delta){let i=0;switch(e.dimension){case"rgCol":i=this.horizontalScroll.scrollLeft;break;case"rgRow":i=null!==(o=null===(t=this.verticalScroll)||void 0===t?void 0:t.scrollTop)&&void 0!==o?o:0}return null!==(r=null===(l=this.localScrollService)||void 0===l?void 0:l.setScrollByDelta(e,i))&&void 0!==r?r:e}return e}e.coordinate&&this.verticalScroll&&"rgRow"===e.dimension&&(this.verticalScroll.style.transform=`translateY(${-1*e.coordinate}px)`)}mousewheelVertical({detail:e}){this.verticalMouseWheel(e)}mousewheelHorizontal({detail:e}){this.horizontalMouseWheel(e)}scrollApply({detail:{type:e,coordinate:i}}){this.applyOnScroll(e,i,!0)}connectedCallback(){this.verticalMouseWheel=this.onVerticalMouseWheel.bind(this,"rgRow","deltaY"),this.horizontalMouseWheel=this.onHorizontalMouseWheel.bind(this,"rgCol","deltaX"),this.localScrollTimer=new n("ontouchstart"in document.documentElement?0:10),this.localScrollService=new c({runScroll:e=>this.scrollViewport.emit(e),applyScroll:e=>{switch(this.localScrollTimer.setCoordinate(e),e.dimension){case"rgCol":this.horizontalScroll.scrollLeft=e.coordinate;break;case"rgRow":this.verticalScroll&&(this.verticalScroll.scrollTop=e.coordinate,this.verticalScroll.style.transform&&(this.verticalScroll.style.transform=""))}}})}componentDidLoad(){this.resizeService=new g(this.horizontalScroll,(e=>{var i,t,o,l,r,s,n,c;const a={};let h=e.height||0;h&&(h-=(null!==(t=null===(i=this.header)||void 0===i?void 0:i.clientHeight)&&void 0!==t?t:0)+(null!==(l=null===(o=this.footer)||void 0===o?void 0:o.clientHeight)&&void 0!==l?l:0)),a.rgRow={size:h,contentSize:this.contentHeight,scroll:null!==(s=null===(r=this.verticalScroll)||void 0===r?void 0:r.scrollTop)&&void 0!==s?s:0,noScroll:!1},a.rgCol={size:e.width||0,contentSize:this.contentWidth,scroll:this.horizontalScroll.scrollLeft,noScroll:"rgCol"!==this.colType};const d=["rgCol","rgRow"];for(const e of d){const i=a[e];i&&(this.resizeViewport.emit({dimension:e,size:i.size,rowHeader:this.rowHeader}),i.noScroll||(null===(n=this.localScrollService)||void 0===n||n.scroll(null!==(c=i.scroll)&&void 0!==c?c:0,e,!0),this.setScrollVisibility(e,i.size,i.contentSize)))}}),[this.footer,this.header])}setScrollVisibility(e,i,t){const o=i<t;let l;switch(e){case"rgCol":l=this.horizontalScroll;break;case"rgRow":l=this.verticalScroll}o?null==l||l.classList.add(`scroll-${e}`):null==l||l.classList.remove(`scroll-${e}`),this.scrollchange.emit({type:e,hasScroll:o})}disconnectedCallback(){var e;null===(e=this.resizeService)||void 0===e||e.destroy()}async componentDidRender(){var e,i,t,o;this.localScrollService.setParams({contentSize:this.contentHeight,clientSize:null!==(i=null===(e=this.verticalScroll)||void 0===e?void 0:e.clientHeight)&&void 0!==i?i:0,virtualSize:0},"rgRow"),this.localScrollService.setParams({contentSize:this.contentWidth,clientSize:this.horizontalScroll.clientWidth,virtualSize:0},"rgCol"),this.setScrollVisibility("rgRow",null!==(o=null===(t=this.verticalScroll)||void 0===t?void 0:t.clientHeight)&&void 0!==o?o:0,this.contentHeight),this.setScrollVisibility("rgCol",this.horizontalScroll.clientWidth,this.contentWidth)}render(){var e,i,t,r;const s=a(this.contentHeight,null!==(i=null===(e=this.verticalScroll)||void 0===e?void 0:e.clientHeight)&&void 0!==i?i:0),n=a(this.contentWidth,null!==(r=null===(t=this.horizontalScroll)||void 0===t?void 0:t.clientWidth)&&void 0!==r?r:0);return o(l,{key:"a0c47dede9d131dea8c8ca449e8a323f24d9b113",onWheel:this.horizontalMouseWheel,onScroll:e=>this.applyScroll("rgCol",e)},o("div",{key:"6c960e753ffe522ba4afb1c379264873b6c617f3",class:"inner-content-table",style:{width:`${n}px`}},o("div",{key:"1a6cbcbd3634e84756b54c8150aebd25c824e14a",class:"header-wrapper",ref:e=>this.header=e},o("slot",{key:"e4202c687bc39b4f78f3ed9840e979b032f06af8",name:h})),o("div",{key:"651415b5b32e72735065b183317386a34042bb85",class:"vertical-inner",ref:e=>this.verticalScroll=e,onWheel:this.verticalMouseWheel,onScroll:e=>this.applyScroll("rgRow",e)},o("div",{key:"e65623b78d80957d8676adb019618953ef267ec3",class:"content-wrapper",style:{height:`${s}px`}},o("slot",{key:"5af47b12ef1226587cf774233447b5252d65e836",name:v}))),o("div",{key:"cbc0fd64fbfb53d3b18e547bbe34e32b7bb9c043",class:"footer-wrapper",ref:e=>this.footer=e},o("slot",{key:"a8e4bfaef400973121090bac3069eb85469a95f3",name:d}))))}async applyScroll(e,t){if(!(t.target instanceof i))return;let o=0;switch(e){case"rgCol":o=t.target.scrollLeft;break;case"rgRow":o=t.target.scrollTop}o<0?this.silentScroll.emit({dimension:e,coordinate:o}):this.applyOnScroll(e,o)}applyOnScroll(e,i,t=!1){const o=()=>{var o;null===(o=this.localScrollService)||void 0===o||o.scroll(i,e,void 0,void 0,t)};this.localScrollTimer.isReady(e,i)?o():this.localScrollTimer.throttleLastScrollUpdate(e,i,(()=>o()))}onVerticalMouseWheel(e,i,t){var o,l,r,s,n,c,a,h;const d=null!==(l=null===(o=this.verticalScroll)||void 0===o?void 0:o.scrollTop)&&void 0!==l?l:0;d+(null!==(s=null===(r=this.verticalScroll)||void 0===r?void 0:r.clientHeight)&&void 0!==s?s:0)>=(null!==(c=null===(n=this.verticalScroll)||void 0===n?void 0:n.scrollHeight)&&void 0!==c?c:0)&&t.deltaY>0||0===d&&t.deltaY<0||null===(a=t.preventDefault)||void 0===a||a.call(t),null===(h=this.localScrollService)||void 0===h||h.scroll(d+t[i],e,void 0,t[i]),this.localScrollTimer.latestScrollUpdate(e)}onHorizontalMouseWheel(e,i,t){var o,l,r,s;if(!t.deltaX)return;const{scrollLeft:n,scrollWidth:c,clientWidth:a}=this.horizontalScroll,h=n+a>=c&&t.deltaX>0,d=0===n&&t.deltaX<0;if(this.noHorizontalScrollTransfer){if(!h&&!d){const r=n+t[i];null===(o=t.preventDefault)||void 0===o||o.call(t),this.horizontalScroll.scrollLeft=r,null===(l=this.localScrollService)||void 0===l||l.scroll(this.horizontalScroll.scrollLeft,e,void 0,t[i]),this.localScrollTimer.latestScrollUpdate(e)}}else h||d||null===(r=t.preventDefault)||void 0===r||r.call(t),null===(s=this.localScrollService)||void 0===s||s.scroll(n+t[i],e,void 0,t[i]),this.localScrollTimer.latestScrollUpdate(e)}get horizontalScroll(){return this}static get style(){return".rowHeaders{z-index:2;font-size:10px;display:flex;height:100%}.rowHeaders revogr-data .rgCell{text-align:center}.rowHeaders .rgCell{padding:0 1em !important;min-width:100%}revogr-viewport-scroll{-ms-overflow-style:none;scrollbar-width:none;overflow-x:auto;overflow-y:hidden;position:relative;z-index:1;height:100%}revogr-viewport-scroll::-webkit-scrollbar{display:none;-webkit-appearance:none}revogr-viewport-scroll.colPinStart,revogr-viewport-scroll.colPinEnd{z-index:2}revogr-viewport-scroll.colPinEnd:has(.active){overflow:visible}revogr-viewport-scroll.rgCol{flex-grow:1}revogr-viewport-scroll .content-wrapper{overflow:hidden}revogr-viewport-scroll .inner-content-table{display:flex;flex-direction:column;max-height:100%;width:100%;min-width:100%;position:relative;z-index:0}revogr-viewport-scroll .vertical-inner{overflow-y:auto;position:relative;width:100%;flex-grow:1;outline:none;-ms-overflow-style:none;scrollbar-width:none;}revogr-viewport-scroll .vertical-inner::-webkit-scrollbar{display:none;-webkit-appearance:none}revogr-viewport-scroll .vertical-inner revogr-data,revogr-viewport-scroll .vertical-inner revogr-overlay-selection{height:100%}"}},[260,"revogr-viewport-scroll",{rowHeader:[4,"row-header"],contentWidth:[2,"content-width"],contentHeight:[2,"content-height"],colType:[1,"col-type"],noHorizontalScrollTransfer:[4,"no-horizontal-scroll-transfer"],setScroll:[64],changeScroll:[64],applyScroll:[64]},[[0,"mousewheel-vertical","mousewheelVertical"],[0,"mousewheel-horizontal","mousewheelHorizontal"],[0,"scroll-coordinate","scrollApply"]]]);function b(){"undefined"!=typeof customElements&&["revogr-viewport-scroll"].forEach((e=>{"revogr-viewport-scroll"===e&&(customElements.get(r(e))||customElements.define(r(e),f))}))}export{v as C,u as D,d as F,h as H,f as R,b as d,p as v}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{b as t}from"./data.store.js";import"@stencil/core/internal/client";import"./platform.js";import{a as n,g as r}from"./dimension.helpers.js";function e(t,n){return!(n&&t&&!(t.target instanceof Element&&t.target.classList.contains(n)))}function o(t,n,r){if(function(t){return!!t.touches}(t)){if(t.touches.length>0){const o=t.touches[0];return e(o,r)?o[n]||0:null}return null}return t[n]||0}function i(n,r){const e={};for(let o in n){const n=parseInt(o,10);e[n]=t(r,n)}return e}function s(t,n){if(t.defaultPrevented)return null;const r=o(t,"clientX"),e=o(t,"clientY");if(null===r||null===e)return null;const i=u({x:r,y:e},n);return c(i,n.lastCell)?null:i}function u({x:t,y:n},{el:e,rows:o,cols:i}){const{top:s,left:u,height:l,width:c}=e.getBoundingClientRect();let f=n-s,a=t-u;f>=l&&(f=l-1),a>=c&&(a=c-1);const p=r(o,f),x=r(i,a);return x.itemIndex<0&&(x.itemIndex=0),p.itemIndex<0&&(p.itemIndex=0),{x:x.itemIndex,y:p.itemIndex}}function l(t,n,r,e=!1){const o=(r,o=0)=>{const i={x:t.x,y:t.y},s=e?{x:t.x1,y:t.y1}:i;return(s[r]>n[r]?s:i)[r]+=o,{start:i,end:s}};return r.x?o("x",r.x):r.y?o("y",r.y):null}function c({x:t,y:n},r){return t>=r.x||n>=r.y}function f({x:t,y:n}){return t<0||n<0}function a(t){return{left:`${t.left}px`,top:`${t.top}px`,width:`${t.width}px`,height:`${t.height}px`}}function p({x:t,y:r,x1:e,y1:o},i,s){const u=n(i,r).start,
|
|
4
|
+
import{b as t}from"./data.store.js";import"@stencil/core/internal/client";import"./platform.js";import{a as n,g as r}from"./dimension.helpers.js";function e(t,n){return!(n&&t&&!(t.target instanceof Element&&t.target.classList.contains(n)))}function o(t,n,r){if(function(t){return!!t.touches}(t)){if(t.touches.length>0){const o=t.touches[0];return e(o,r)?o[n]||0:null}return null}return t[n]||0}function i(n,r){const e={};for(let o in n){const n=parseInt(o,10);e[n]=t(r,n)}return e}function s(t,n){if(t.defaultPrevented)return null;const r=o(t,"clientX"),e=o(t,"clientY");if(null===r||null===e)return null;const i=u({x:r,y:e},n);return c(i,n.lastCell)?null:i}function u({x:t,y:n},{el:e,rows:o,cols:i}){const{top:s,left:u,height:l,width:c}=e.getBoundingClientRect();let f=n-s,a=t-u;f>=l&&(f=l-1),a>=c&&(a=c-1);const p=r(o,f+(o.renderOffset||0)),x=r(i,a+(i.renderOffset||0));return x.itemIndex<0&&(x.itemIndex=0),p.itemIndex<0&&(p.itemIndex=0),{x:x.itemIndex,y:p.itemIndex}}function l(t,n,r,e=!1){const o=(r,o=0)=>{const i={x:t.x,y:t.y},s=e?{x:t.x1,y:t.y1}:i;return(s[r]>n[r]?s:i)[r]+=o,{start:i,end:s}};return r.x?o("x",r.x):r.y?o("y",r.y):null}function c({x:t,y:n},r){return t>=r.x||n>=r.y}function f({x:t,y:n}){return t<0||n<0}function a(t){return{left:`${t.left}px`,top:`${t.top}px`,width:`${t.width}px`,height:`${t.height}px`}}function p({x:t,y:r,x1:e,y1:o},i,s){const u=i.renderOffset||0,l=s.renderOffset||0,c=n(i,r).start-u,f=n(s,t).start-l,a=n(i,o).end-u,p=n(s,e).end-l;return{left:f,right:p,top:c,bottom:a,width:p-f,height:a-c}}export{p as a,l as b,f as c,u as d,i as e,s as f,o as g,c as i,a as s,e as v}
|
package/standalone/throttle.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{d as i}from"./debounce.js";import{
|
|
4
|
+
import{d as i}from"./debounce.js";import{a as n}from"./toNumber.js";function r(r,t,o){var a=!0,e=!0;if("function"!=typeof r)throw new TypeError("Expected a function");return n(o)&&(a="leading"in o?!!o.leading:a,e="trailing"in o?!!o.trailing:e),i(r,t,{leading:a,maxWait:t,trailing:e})}export{r as t}
|
package/standalone/toNumber.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
var t="object"==typeof global&&global&&global.Object===Object&&global,e="object"==typeof self&&self&&self.Object===Object&&self,n=t||e||Function("return this")(),r=n.Symbol,o=Object.prototype,f=o.hasOwnProperty,a=o.toString,u=r?r.toStringTag:void 0,i=Object.prototype.toString,c=r?r.toStringTag:void 0;function l(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":c&&c in Object(t)?function(t){var e=f.call(t,u),n=t[u];try{t[u]=void 0;var r=!0}catch(t){}var o=a.call(t);return r&&(e?t[u]=n:delete t[u]),o}(t):function(t){return i.call(t)}(t)}function b(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function s(t){return null!=t&&"object"==typeof t}function v(t){return"symbol"==typeof t||s(t)&&"[object Symbol]"==l(t)}var j=/\s/,y=/^\s+/;var p=/^[-+]0x[0-9a-f]+$/i,d=/^0b[01]+$/i,g=/^0o[0-7]+$/i,N=parseInt;function O(t){if("number"==typeof t)return t;if(v(t))return NaN;if(b(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=b(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;var n;t=(n=t)?n.slice(0,function(t){for(var e=t.length;e--&&j.test(t.charAt(e)););return e}(n)+1).replace(y,""):n;var r=d.test(t);return r||g.test(t)?N(t.slice(2),r?2:8):p.test(t)?NaN:+t}export{r as S,
|
|
4
|
+
var t="object"==typeof global&&global&&global.Object===Object&&global,e="object"==typeof self&&self&&self.Object===Object&&self,n=t||e||Function("return this")(),r=n.Symbol,o=Object.prototype,f=o.hasOwnProperty,a=o.toString,u=r?r.toStringTag:void 0,i=Object.prototype.toString,c=r?r.toStringTag:void 0;function l(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":c&&c in Object(t)?function(t){var e=f.call(t,u),n=t[u];try{t[u]=void 0;var r=!0}catch(t){}var o=a.call(t);return r&&(e?t[u]=n:delete t[u]),o}(t):function(t){return i.call(t)}(t)}function b(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function s(t){return null!=t&&"object"==typeof t}function v(t){return"symbol"==typeof t||s(t)&&"[object Symbol]"==l(t)}var j=/\s/,y=/^\s+/;var p=/^[-+]0x[0-9a-f]+$/i,d=/^0b[01]+$/i,g=/^0o[0-7]+$/i,N=parseInt;function O(t){if("number"==typeof t)return t;if(v(t))return NaN;if(b(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=b(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;var n;t=(n=t)?n.slice(0,function(t){for(var e=t.length;e--&&j.test(t.charAt(e)););return e}(n)+1).replace(y,""):n;var r=d.test(t);return r||g.test(t)?N(t.slice(2),r?2:8):p.test(t)?NaN:+t}export{r as S,b as a,l as b,s as c,t as f,v as i,n as r,O as t}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built by Revolist OU ❤️
|
|
3
|
-
*/
|
|
4
|
-
'use strict';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Collects data for pinned columns in the required @ViewportProps format.
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Represents the slot names for the viewport slots.
|
|
11
|
-
*/
|
|
12
|
-
const HEADER_SLOT = 'header'; // Slot name for the header slot
|
|
13
|
-
const FOOTER_SLOT = 'footer'; // Slot name for the footer slot
|
|
14
|
-
const CONTENT_SLOT = 'content'; // Slot name for the content slot
|
|
15
|
-
const DATA_SLOT = 'data'; // Slot name for the data slot
|
|
16
|
-
/**
|
|
17
|
-
* Returns the last visible cell in the viewport for a given row type.
|
|
18
|
-
* Coordinates are not zero-based and are relative to the viewport.
|
|
19
|
-
* If needed to be zero-based they can be adjusted by subtracting 1.
|
|
20
|
-
*/
|
|
21
|
-
function getLastCell(data, rowType) {
|
|
22
|
-
// Get the last visible column count from the viewport column data.
|
|
23
|
-
const lastVisibleColumnCount = data.viewports[data.colType].store.get('realCount');
|
|
24
|
-
// Get the last visible row count for the given row type from the viewport column data.
|
|
25
|
-
const lastVisibleRowCount = data.viewports[rowType].store.get('realCount');
|
|
26
|
-
// Return the last visible cell with the last visible column count and row count.
|
|
27
|
-
return {
|
|
28
|
-
x: lastVisibleColumnCount,
|
|
29
|
-
y: lastVisibleRowCount,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
function viewportDataPartition(data, type, slot, fixed) {
|
|
33
|
-
return {
|
|
34
|
-
colData: data.colStore,
|
|
35
|
-
viewportCol: data.viewports[data.colType].store,
|
|
36
|
-
viewportRow: data.viewports[type].store,
|
|
37
|
-
/**
|
|
38
|
-
* lastCell is the last real coordinate + 1, saved to selection store
|
|
39
|
-
*/
|
|
40
|
-
lastCell: getLastCell(data, type),
|
|
41
|
-
slot,
|
|
42
|
-
type,
|
|
43
|
-
canDrag: !fixed,
|
|
44
|
-
position: data.position,
|
|
45
|
-
dataStore: data.rowStores[type].store,
|
|
46
|
-
dimensionCol: data.dimensions[data.colType].store,
|
|
47
|
-
dimensionRow: data.dimensions[type].store,
|
|
48
|
-
style: fixed
|
|
49
|
-
? { height: `${data.dimensions[type].store.get('realSize')}px` }
|
|
50
|
-
: undefined,
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
exports.CONTENT_SLOT = CONTENT_SLOT;
|
|
55
|
-
exports.DATA_SLOT = DATA_SLOT;
|
|
56
|
-
exports.FOOTER_SLOT = FOOTER_SLOT;
|
|
57
|
-
exports.HEADER_SLOT = HEADER_SLOT;
|
|
58
|
-
exports.viewportDataPartition = viewportDataPartition;
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Built by Revolist OU ❤️
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Collects data for pinned columns in the required @ViewportProps format.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Represents the slot names for the viewport slots.
|
|
9
|
-
*/
|
|
10
|
-
const HEADER_SLOT = 'header'; // Slot name for the header slot
|
|
11
|
-
const FOOTER_SLOT = 'footer'; // Slot name for the footer slot
|
|
12
|
-
const CONTENT_SLOT = 'content'; // Slot name for the content slot
|
|
13
|
-
const DATA_SLOT = 'data'; // Slot name for the data slot
|
|
14
|
-
/**
|
|
15
|
-
* Returns the last visible cell in the viewport for a given row type.
|
|
16
|
-
* Coordinates are not zero-based and are relative to the viewport.
|
|
17
|
-
* If needed to be zero-based they can be adjusted by subtracting 1.
|
|
18
|
-
*/
|
|
19
|
-
function getLastCell(data, rowType) {
|
|
20
|
-
// Get the last visible column count from the viewport column data.
|
|
21
|
-
const lastVisibleColumnCount = data.viewports[data.colType].store.get('realCount');
|
|
22
|
-
// Get the last visible row count for the given row type from the viewport column data.
|
|
23
|
-
const lastVisibleRowCount = data.viewports[rowType].store.get('realCount');
|
|
24
|
-
// Return the last visible cell with the last visible column count and row count.
|
|
25
|
-
return {
|
|
26
|
-
x: lastVisibleColumnCount,
|
|
27
|
-
y: lastVisibleRowCount,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
function viewportDataPartition(data, type, slot, fixed) {
|
|
31
|
-
return {
|
|
32
|
-
colData: data.colStore,
|
|
33
|
-
viewportCol: data.viewports[data.colType].store,
|
|
34
|
-
viewportRow: data.viewports[type].store,
|
|
35
|
-
/**
|
|
36
|
-
* lastCell is the last real coordinate + 1, saved to selection store
|
|
37
|
-
*/
|
|
38
|
-
lastCell: getLastCell(data, type),
|
|
39
|
-
slot,
|
|
40
|
-
type,
|
|
41
|
-
canDrag: !fixed,
|
|
42
|
-
position: data.position,
|
|
43
|
-
dataStore: data.rowStores[type].store,
|
|
44
|
-
dimensionCol: data.dimensions[data.colType].store,
|
|
45
|
-
dimensionRow: data.dimensions[type].store,
|
|
46
|
-
style: fixed
|
|
47
|
-
? { height: `${data.dimensions[type].store.get('realSize')}px` }
|
|
48
|
-
: undefined,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export { CONTENT_SLOT as C, DATA_SLOT as D, FOOTER_SLOT as F, HEADER_SLOT as H, viewportDataPartition as v };
|