@revolist/revogrid 4.22.0 → 4.22.1
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-uZmDBXz7.js → cell-renderer-BQdEGQXP.js} +2 -2
- package/dist/cjs/{column.drag.plugin-CM_5mKV3.js → column.drag.plugin-RDjQhKCH.js} +22 -15
- package/dist/cjs/{column.service-DvQDqxxx.js → column.service-DXYMehqK.js} +1 -1
- package/dist/cjs/{dimension.helpers-CaIsYC99.js → dimension.helpers-CiiNnlLa.js} +0 -1
- package/dist/cjs/{edit.utils-CwMzSIVF.js → edit.utils-CecCfA4E.js} +22 -1
- package/dist/cjs/{header-cell-renderer-B1dJwgTO.js → header-cell-renderer-DGyBrK8I.js} +1 -1
- package/dist/cjs/index.cjs.js +17 -8
- package/dist/cjs/revo-grid.cjs.entry.js +5 -5
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +6 -6
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +4 -4
- package/dist/cjs/revogr-data_4.cjs.entry.js +111 -166
- package/dist/cjs/{text-editor-BTnGaIl3.js → text-editor-DnLZW1a-.js} +2 -2
- package/dist/cjs/{throttle-CI4MsAqs.js → throttle-CfgQFkfR.js} +1 -1
- package/dist/cjs/{viewport.store-Dcjud-a-.js → viewport.store-q6YdR9mg.js} +1 -1
- package/dist/collection/components/clipboard/revogr-clipboard.js +1 -1
- package/dist/collection/components/header/header-group-renderer.js +1 -0
- package/dist/collection/components/header/header-renderer.js +5 -4
- package/dist/collection/components/header/revogr-header.js +100 -40
- package/dist/collection/components/overlay/keyboard.service.js +2 -2
- package/dist/collection/plugins/moveColumn/column.drag.plugin.js +14 -11
- package/dist/collection/types/events.js +4 -0
- package/dist/collection/utils/key.utils.js +20 -0
- package/dist/{revo-grid/cell-renderer-K_BKH7Kx.js → esm/cell-renderer-CALsEsnh.js} +2 -2
- package/dist/esm/{column.drag.plugin-DEqZ2qXJ.js → column.drag.plugin-Dy5ztusn.js} +19 -16
- package/dist/esm/{column.service-Cdz3dYqZ.js → column.service-CCvAi5l4.js} +1 -1
- package/dist/{revo-grid/dimension.helpers-DzxqJQqN.js → esm/dimension.helpers-DmIvjIa7.js} +1 -1
- package/dist/esm/{edit.utils-CzfeG98N.js → edit.utils-DYN6XZh8.js} +22 -2
- package/dist/{revo-grid/header-cell-renderer-DXhxZMly.js → esm/header-cell-renderer-DU8wKAbg.js} +1 -1
- package/dist/esm/index.js +13 -9
- package/dist/esm/revo-grid.entry.js +5 -5
- package/dist/esm/revogr-attribution_7.entry.js +6 -6
- package/dist/esm/revogr-clipboard_3.entry.js +4 -4
- package/dist/esm/revogr-data_4.entry.js +111 -166
- package/dist/{revo-grid/text-editor-C1ks5eQ4.js → esm/text-editor-DpCnd6Fq.js} +2 -2
- package/dist/esm/{throttle-BEjFQa2l.js → throttle-ERvyruXb.js} +1 -1
- package/dist/{revo-grid/viewport.store-saAZJHRo.js → esm/viewport.store-CFjDW-3l.js} +1 -1
- package/dist/{esm/cell-renderer-K_BKH7Kx.js → revo-grid/cell-renderer-CALsEsnh.js} +2 -2
- package/dist/revo-grid/{column.drag.plugin-DEqZ2qXJ.js → column.drag.plugin-Dy5ztusn.js} +19 -16
- package/dist/revo-grid/{column.service-Cdz3dYqZ.js → column.service-CCvAi5l4.js} +1 -1
- package/dist/{esm/dimension.helpers-DzxqJQqN.js → revo-grid/dimension.helpers-DmIvjIa7.js} +1 -1
- package/dist/revo-grid/{edit.utils-CzfeG98N.js → edit.utils-DYN6XZh8.js} +22 -2
- package/dist/{esm/header-cell-renderer-DXhxZMly.js → revo-grid/header-cell-renderer-DU8wKAbg.js} +1 -1
- package/dist/revo-grid/index.esm.js +13 -9
- package/dist/revo-grid/revo-grid.entry.js +5 -5
- package/dist/revo-grid/revogr-attribution_7.entry.js +6 -6
- package/dist/revo-grid/revogr-clipboard_3.entry.js +4 -4
- package/dist/revo-grid/revogr-data_4.entry.js +111 -166
- package/dist/{esm/text-editor-C1ks5eQ4.js → revo-grid/text-editor-DpCnd6Fq.js} +2 -2
- package/dist/revo-grid/{throttle-BEjFQa2l.js → throttle-ERvyruXb.js} +1 -1
- package/dist/{esm/viewport.store-saAZJHRo.js → revo-grid/viewport.store-CFjDW-3l.js} +1 -1
- package/dist/types/components/header/revogr-header.d.ts +6 -0
- package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +29 -3
- package/dist/types/types/events.d.ts +1 -1
- package/dist/types/utils/key.utils.d.ts +8 -0
- package/hydrate/index.js +142 -174
- package/hydrate/index.mjs +142 -174
- package/package.json +1 -1
- package/standalone/column.service.js +1 -1
- package/standalone/data.store.js +1 -1
- package/standalone/index.js +1 -1
- package/standalone/revo-grid.js +1 -1
- package/standalone/revogr-clipboard2.js +1 -1
- package/standalone/revogr-edit.js +1 -1
- package/standalone/revogr-edit2.js +1 -1
- package/standalone/revogr-header2.js +1 -1
- package/standalone/revogr-overlay-selection2.js +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by Revolist OU ❤️
|
|
3
3
|
*/
|
|
4
|
-
import{proxyCustomElement as t,HTMLElement as i,createEvent as s,h as n,Host as e,transformTag as o}from"@stencil/core/internal/client";import{E as r}from"./consts.js";import{K as h,O as l,c as a,k as u}from"./platform.js";import{t as c}from"./index2.js";function d(t){return-1!==[h.ARROW_DOWN,h.ARROW_UP,h.ARROW_LEFT,h.ARROW_RIGHT,h.HOME,h.END,h.DELETE,h.BACKSPACE,h.F1,h.F2,h.F3,h.F4,h.F5,h.F6,h.F7,h.F8,h.F9,h.F10,h.F11,h.F12,h.TAB,h.PAGE_DOWN,h.PAGE_UP,h.ENTER,h.ESCAPE,h.SHIFT,h.CAPS_LOCK,h.ALT].indexOf(t)}function v(t,i){return i.includes(l.mac)?[h.COMMAND_LEFT,h.COMMAND_RIGHT,h.COMMAND_FIREFOX].includes(t):t===h.CONTROL}function f(t){return[h.CONTROL,h.COMMAND_LEFT,h.COMMAND_RIGHT,h.COMMAND_FIREFOX].includes(t)}function p(t){return a.BACKSPACE===t||a.DELETE===t}function y(t){return a.TAB===t}function m(t){return u.TAB===t}function g(t){return u.ENTER===t}function b(t){return t.ctrlKey&&"KeyX"===t.code||t.metaKey&&"KeyX"===t.code}function K(t){return t.ctrlKey&&"KeyC"===t.code||t.metaKey&&"KeyC"===t.code}function w(t){return t.ctrlKey&&"KeyV"===t.code||t.metaKey&&"KeyV"===t.code}function C(t){return t.ctrlKey&&"KeyA"===t.code||t.metaKey&&"KeyA"===t.code}
|
|
4
|
+
import{proxyCustomElement as t,HTMLElement as i,createEvent as s,h as n,Host as e,transformTag as o}from"@stencil/core/internal/client";import{E as r}from"./consts.js";import{K as h,O as l,c as a,k as u}from"./platform.js";import{t as c}from"./index2.js";function d(t){return-1!==[h.ARROW_DOWN,h.ARROW_UP,h.ARROW_LEFT,h.ARROW_RIGHT,h.HOME,h.END,h.DELETE,h.BACKSPACE,h.F1,h.F2,h.F3,h.F4,h.F5,h.F6,h.F7,h.F8,h.F9,h.F10,h.F11,h.F12,h.TAB,h.PAGE_DOWN,h.PAGE_UP,h.ENTER,h.ESCAPE,h.SHIFT,h.CAPS_LOCK,h.ALT].indexOf(t)}function v(t,i){return i.includes(l.mac)?[h.COMMAND_LEFT,h.COMMAND_RIGHT,h.COMMAND_FIREFOX].includes(t):t===h.CONTROL}function f(t){return[h.CONTROL,h.COMMAND_LEFT,h.COMMAND_RIGHT,h.COMMAND_FIREFOX].includes(t)}function p(t){return a.BACKSPACE===t||a.DELETE===t}function y(t){return a.TAB===t}function m(t){return u.TAB===t}function g(t){return u.ENTER===t}function b(t){return t.ctrlKey&&"KeyX"===t.code||t.metaKey&&"KeyX"===t.code}function K(t){return t.ctrlKey&&"KeyC"===t.code||t.metaKey&&"KeyC"===t.code}function w(t){return t.ctrlKey&&"KeyV"===t.code||t.metaKey&&"KeyV"===t.code}function C(t){return t.ctrlKey&&"KeyA"===t.code||t.metaKey&&"KeyA"===t.code}function D(t){var i;return!(null===(i=t.getModifierState)||void 0===i?void 0:i.call(t,"AltGraph"))&&!(t.ctrlKey&&t.altKey&&!t.metaKey&&1===t.key.length)&&(t.ctrlKey||t.metaKey)}class k{constructor(t,i){this.data=t,this.saveCallback=i,this.editInput=null,this.element=null,this.editCell=void 0}async componentDidRender(){var t;this.editInput&&(await c(),null===(t=this.editInput)||void 0===t||t.focus())}onKeyDown(t){const i=g(t.key),s=y(t.key);(s||i)&&t.target&&this.saveCallback&&!t.isComposing&&(this.beforeDisconnect(),this.saveCallback(this.getValue(),s))}beforeDisconnect(){var t;null===(t=this.editInput)||void 0===t||t.blur()}getValue(){var t;return null===(t=this.editInput)||void 0===t?void 0:t.value}render(t,i){var s,n;return t("input",{type:"text",enterKeyHint:"enter",value:null!==(n=null===(s=this.editCell)||void 0===s?void 0:s.val)&&void 0!==n?n:"",ref:t=>{this.editInput=t},onKeyDown:t=>this.onKeyDown(t)})}}function x(t){return!!(null==t?void 0:t.closest(`.${r}`))}function j(t){return"function"==typeof t&&"object"==typeof t.prototype}const R=t(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.cellEdit=s(this,"celleditinit",7),this.closeEdit=s(this,"closeedit",7),this.saveOnClose=!1,this.currentEditor=null,this.preventSaveOnClose=!1}async cancelChanges(){this.preventSaveOnClose=!0}async beforeDisconnect(){var t,i;null===(i=null===(t=this.currentEditor)||void 0===t?void 0:t.beforeDisconnect)||void 0===i||i.call(t)}onAutoSave(){var t,i,s;this.preventSaveOnClose=!0;const n=null===(i=null===(t=this.currentEditor)||void 0===t?void 0:t.getValue)||void 0===i?void 0:i.call(t);(null===(s=this.currentEditor)||void 0===s?void 0:s.beforeAutoSave)&&!1===this.currentEditor.beforeAutoSave(n)||this.onSave(n,!0)}onSave(t,i){this.preventSaveOnClose=!0,this.editCell&&this.cellEdit.emit({rgCol:this.editCell.x,rgRow:this.editCell.y,type:this.editCell.type,prop:this.editCell.prop,val:t,preventFocus:i})}componentWillRender(){!this.currentEditor&&this.column&&(this.preventSaveOnClose=!1,this.currentEditor=this.editor?j(this.editor)?new this.editor(this.column,((t,i)=>{this.onSave(t,i)}),(t=>{this.preventSaveOnClose=!0,this.closeEdit.emit(t)})):this.editor(this.column,((t,i)=>{this.onSave(t,i)}),(t=>{this.preventSaveOnClose=!0,this.closeEdit.emit(t)})):new k(this.column,((t,i)=>this.onSave(t,i))))}componentDidRender(){var t,i;this.currentEditor&&(this.currentEditor.element=this.element.firstElementChild,null===(i=(t=this.currentEditor).componentDidRender)||void 0===i||i.call(t))}disconnectedCallback(){var t,i;this.saveOnClose&&(this.preventSaveOnClose||this.onAutoSave()),this.preventSaveOnClose=!1,this.currentEditor&&(null===(i=(t=this.currentEditor).disconnectedCallback)||void 0===i||i.call(t),this.currentEditor.element=null,this.currentEditor=null)}render(){return this.currentEditor?(this.currentEditor.editCell=this.editCell,n(e,{class:r},this.currentEditor.render(n,this.additionalData))):""}get element(){return this}static get style(){return"revogr-edit{display:block;position:absolute;background-color:#fff}revogr-edit input{height:100%;width:100%;box-sizing:border-box}revogr-edit revo-dropdown{height:100%}revogr-edit revo-dropdown.shrink fieldset legend>span{display:none}"}},[0,"revogr-edit",{editCell:[16],column:[16],editor:[16],saveOnClose:[4,"save-on-close"],additionalData:[8,"additional-data"],cancelChanges:[64],beforeDisconnect:[64]}]);function A(){"undefined"!=typeof customElements&&["revogr-edit"].forEach((t=>{"revogr-edit"===t&&(customElements.get(o(t))||customElements.define(o(t),R))}))}export{R,k as T,v as a,f as b,p as c,y as d,m as e,g as f,b as g,K as h,d as i,w as j,C as k,D as l,x as m,j as n,A as o}
|
|
@@ -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 s,transformTag as r}from"@stencil/core/internal/client";import{r as o,u as h,l}from"./data.store.js";import{Q as a,K as n}from"./column.service.js";import{M as d,D as c,d as u,H as v,F as g,e as b,f as p}from"./consts.js";import"./platform.js";import{a as f}from"./dimension.helpers.js";import{c as m}from"./filter.button.js";function z(e,t,i){const s=new CustomEvent(t,{detail:i,cancelable:!0,bubbles:!0});return null==e||e.dispatchEvent(s),s}function x(e,t,i){return e.preventDefault(),z(e.target,t,i)}const w=({column:t})=>{var i;return e("i",{class:null!==(i=null==t?void 0:t.order)&&void 0!==i?i:"sort-off"})};var C;!function(e){e.start="resize:start",e.move="resize:move",e.end="resize:end"}(C||(C={}));const H={"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 k{constructor(e,t){var i,s,r;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=(r=e,Object.assign(Object.assign({},r),{fitParent:r.fitParent||!1,active:r.active||[],disableAttributes:r.disableAttributes||[],minWidth:r.minWidth||0,minHeight:r.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!==(s=this.props.maxHeight)&&void 0!==s?s: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 s=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*(s?-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,s;k.isTouchEvent(e)?(i=e.touches[0].clientY,s=e.touches[0].clientX):(i=e.clientY,s=e.clientX);let r=this.resizeState&H["resizable-r"].bit||this.resizeState&H["resizable-l"].bit;if((this.resizeState&H["resizable-t"].bit||this.resizeState&H["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(r&&4&this.disableCalcMap){const e=null===(t=this.activeResizer)||void 0===t?void 0:t.classList.contains("resizable-l");let i=this.changeX+(s-this.mouseX);const r=this.width+i*(e?-1:1);r<this.minW&&(i=-(this.width-this.minW)),this.maxW&&r>this.maxW&&(i=this.maxW-this.width),this.changeX=i,this.mouseX=s,this.activeResizer&&(e?this.activeResizer.style.left=`${this.changeX}px`:this.activeResizer.style.right=-this.changeX+"px")}this.emitEvent(C.move)}handleDown(e){if(!e.defaultPrevented){e.preventDefault(),this.dropInitial();for(let t in H){const i=e.target;if(this.$el.contains(i)&&(null==i?void 0:i.classList.contains(t))){document.body.style.cursor=H[t].cursor,k.isTouchEvent(e)?this.setInitials(e.touches[0],i):(e.preventDefault&&e.preventDefault(),this.setInitials(e,i)),this.resizeState=H[t].bit,this.emitEvent(C.start);break}}this.bindMove()}}handleUp(e){e.preventDefault(),0!==this.resizeState&&(this.resizeState=0,document.body.style.cursor="",this.emitEvent(C.end)),this.dropInitial(),this.unbindMove()}setInitials({clientX:e,clientY:t},i){var s,r,o,h;const l=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!==(r=null===(s=this.$el.parentElement)||void 0===s?void 0:s.clientWidth)&&void 0!==r?r:0;const t=parseFloat(l.paddingLeft)+parseFloat(l.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(l.paddingTop)+parseFloat(l.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 j=(t,i)=>{const s=[],r=t.canResize&&new k(t,(e=>{var i;e.eventName===C.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)s.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==r?void 0:r.handleDown(e),onTouchStart:e=>null==r?void 0:r.handleDown(e),class:`resizable resizable-${t.active[i]}`}));else for(let i in t.active)s.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==r?void 0:r.set(e))}),i,s)},y="columnclick",D=({data:t,props:i,additionalData:s},r)=>{let o=(null==t?void 0:t.name)||"",h=i;if((null==t?void 0:t.columnTemplate)&&(o=t.columnTemplate(e,t,s)),null==t?void 0:t.columnProperties){const e=t.columnProperties(t);e&&(h=a(i,e))}const l=Object.assign(Object.assign({},h),{onMouseDown(e){z(e.currentTarget,y,{data:t,event:e})}});return e(j,Object.assign({},l),e("div",{class:"header-content"},o),r)};var O=function(){try{var e=o(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();function R(e,t,i,s){for(var r=-1,o=null==e?0:e.length;++r<o;){var h=e[r];t(s,h,i(h),e)}return s}function M(e,t,i,s){return n(e,(function(e,r,o){t(s,e,i(e),o)})),s}var E,F=(E=function(e,t,i){!function(e,t,i){"__proto__"==t&&O?O(e,t,{configurable:!0,enumerable:!0,value:i,writable:!0}):e[t]=i}(e,i,t)},function(e,t){return(l(e)?R:M)(e,E,h(t),{})});const $=t=>{var i,s,r,o,h;const l={[v]:!0,[u]:!!(null===(i=t.data)||void 0===i?void 0:i.sortable)};(null===(s=t.data)||void 0===s?void 0:s.order)&&(l[t.data.order]=!0);const a={[c]:t.column.itemIndex,canResize:t.canResize,minWidth:(null===(r=t.data)||void 0===r?void 0:r.minSize)||d,maxWidth:null===(o=t.data)||void 0===o?void 0:o.maxSize,active:t.active||["r"],class:l,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 a.class&&(a.class[g]=!0),e(D,{data:t.data,props:a,additionalData:t.additionalData},e(w,{column:t.data}),t.canFilter&&!1!==(null===(h=t.data)||void 0===h?void 0:h.filter)?e(m,{column:t.data}):"")},S=t=>{const i={canResize:t.canResize,minWidth:t.group.indexes.length*d,maxWidth:0,active:t.active||["r"],class:{[v]:!0},style:{transform:`translateX(${t.start}px)`,width:t.end-t.start+"px"},onResize:t.onResize};return e(D,{data:Object.assign(Object.assign({},t.group),{prop:"",providers:t.providers,index:t.start}),props:i,additionalData:t.additionalData})},W=t(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.initialHeaderClick=s(this,"beforeheaderclick",7),this.headerresize=s(this,"headerresize",7),this.beforeResize=s(this,"beforeheaderresize",7),this.headerdblClick=s(this,"headerdblclick",7),this.beforeHeaderRender=s(this,"beforeheaderrender",7),this.beforeGroupHeaderRender=s(this,"beforegroupheaderrender",7),this.afterHeaderRender=s(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 s={},r=F(this.viewportCol.get("items"),"itemIndex"),o=e/(i-t+1);for(let e=t;e<=i;e++){const t=r[e];t&&(s[e]=t.size+o)}this.headerresize.emit(s)}componentDidRender(){this.afterHeaderRender.emit(this.providers)}render(){var t;const i=this.viewportCol.get("items"),s=null===(t=this.selectionStore)||void 0===t?void 0:t.get("range"),{cells:r}=this.renderHeaderColumns(i,s),o=this.renderGroupingColumns();return[e("div",{key:"a8d57270f4758b454fb4900808453e0c4663c91c",class:"group-rgRow"},o),e("div",{key:"41a270ff6bde9943a81d9c46482f2a40312afb50",class:`${b} ${p}`},r)]}renderHeaderColumns(t,i){const s=[];for(let r of t){const t={range:i,column:r,data:Object.assign(Object.assign({},this.colData[r.itemIndex]),{index:r.itemIndex,providers:this.providers}),canFilter:!!this.columnFilter,canResize:this.canResize,active:this.resizeHandler,additionalData:this.additionalData,onResize:e=>this.onResize(e,r.itemIndex),onDblClick:e=>this.headerdblClick.emit(e),onClick:e=>this.initialHeaderClick.emit(e)},o=this.beforeHeaderRender.emit(t);o.defaultPrevented||s.push(e($,Object.assign({},o.detail)))}return{cells:s}}renderGroupingColumns(){var t;const i=[];for(let s=0;s<this.groupingDepth;s++){if(this.groups[s])for(let r of this.groups[s]){const s=null!==(t=r.indexes[0])&&void 0!==t?t:-1;if(s>-1){const t=s+r.indexes.length-1,o=f(this.dimensionCol.state,s).start,h=f(this.dimensionCol.state,t).end,l={providers:this.providers,start:o,end:h,group:r,active:this.resizeHandler,canResize:this.canResize,additionalData:this.additionalData,onResize:e=>{var i;return this.onResizeGroup(null!==(i=e.changedX)&&void 0!==i?i:0,s,t)}},a=this.beforeGroupHeaderRender.emit(l);a.defaultPrevented||i.push(e(S,Object.assign({},a.detail)))}}i.push(e("div",{class:`${b} group`}))}return i}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 T(){"undefined"!=typeof customElements&&["revogr-header"].forEach((e=>{"revogr-header"===e&&(customElements.get(r(e))||customElements.define(r(e),W))}))}export{y as O,W as R,w as S,x as a,T as b,z 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 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}
|
|
@@ -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,n as P}from"./revogr-edit2.js";import{t as T}from"./index2.js";import{d as K}from"./debounce.js";import{d as U}from"./revogr-clipboard2.js";import{d as X}from"./revogr-order-editor2.js";const N=[d.TAB,d.ARROW_UP,d.ARROW_DOWN,d.ARROW_LEFT,d.ARROW_RIGHT];class W{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):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 T(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(N.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 ${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=K(((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 H=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 W({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 $({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(z(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 Y(){"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),H);break;case"revogr-clipboard":customElements.get(n(t))||U();break;case"revogr-edit":customElements.get(n(t))||P();break;case"revogr-order-editor":customElements.get(n(t))||X()}}))}export{H as O,Y as d}
|
|
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}
|