UNPKG

@bizhermit/react-sdk

Version:
1 lines 3.89 kB
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,n,o){void 0===o&&(o=n);var r=Object.getOwnPropertyDescriptor(t,n);r&&!("get"in r?!t.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,r)}:function(e,t,n,o){void 0===o&&(o=n),e[o]=t[n]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&__createBinding(t,e,n);return __setModuleDefault(t,e),t},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});const string_utils_1=__importDefault(require("@bizhermit/basic-utils/dist/string-utils")),react_1=__importDefault(require("react")),jsx_style_1=__importDefault(require("../../../styles/jsx-style")),css_var_1=__importStar(require("../../../styles/css-var")),dom_1=require("../../../utils/dom"),cursor_1=require("../../../utils/cursor"),cn="bh-lv_c-rod",ListViewReorderColumn=e=>{const t=e?.range??"cell",n=!0===e?.disabled;let o,r,i,s=-1,l=0,c=0,d=0,a=e=>{},u=e=>{};const _=(0,dom_1.getDomEventManager)(),m=()=>u(d),p=e=>u(e.clientY-c+l),f=e=>{a(e.clientY-c+l),i.removeChild(r),_.removeEvent(i,"scroll",m),i=null,(0,cursor_1.releaseCursor)(),window.removeEventListener("mouseup",f),window.removeEventListener("mousemove",p)},v=e=>u(e.touches[0].clientY-c+l),w=e=>{a(e.changedTouches[0].clientY-c+l),i.removeChild(r),_.removeEvent(i,"scroll",m),i=null,window.removeEventListener("touchend",w),window.removeEventListener("touchmove",v)};return{name:e?.name??string_utils_1.default.generateUuidV4(),sort:!1,resize:!1,width:e?.width??("row"===t?0:-1),cellTextAlign:"center",fixed:e?.fixed,disabled:e?.disabled,tabStop:!1,initialize:()=>{const e=document.createElement("div");return e.classList.add(cn),{elem:e}},_lv:e=>{o=e},cellInitialize:(e,h)=>{if(!0!==n){const n=t=>{const n=e.row.element;l=n.offsetTop,r=(0,dom_1.cloneDomElement)(n),r.classList.add(`${cn}-pinching`),r.style.top=n.offsetTop+"px",r.style.left=n.offsetLeft+"px",null==i&&(i=o.getBodyElement(),_.addEvent(i,"scroll",m));const c=o.getBodyScrollTop();i.appendChild(r),s=e.row.index,a=e=>{o.dropMoveRow(s,e-c+o.getBodyScrollTop())},u=e=>{const t=(d=e)-c+o.getBodyScrollTop();o.dragMovingRow(s,t),r.style.top=t+"px"},t?(window.addEventListener("touchend",w),window.addEventListener("touchmove",v)):((0,cursor_1.setCursor)("move"),window.addEventListener("mouseup",f),window.addEventListener("mousemove",p))},h=e=>{e.stopPropagation(),c=e.clientY,n()},g="row"===t?e.row.element:e.element;g.classList.add(`${cn}-range`),_.addEvent(g,"mousedown",h);const b=e=>{e.preventDefault(),c=e.touches[0].clientY,n(!0)};_.addEvent(g,"touchstart",b)}e.element.appendChild((0,dom_1.cloneDomElement)(h.elem))},cellDispose:e=>{_.removeEventIterator((n=>n.element===("row"===t?e.row.element:e.element)))},dispose:()=>{_.dispose()},jsxStyle:Style}},Style=react_1.default.createElement(jsx_style_1.default,{id:cn},(()=>`\n.${cn}-range {\n cursor: move;\n}\n.${cn}::before,\n.${cn}::after {\n box-sizing: border-box;\n position: absolute;\n content: "";\n height: 4px;\n width: 50%;\n left: 25%;\n background: ${css_var_1.default.fc};\n opacity: 0.7;\n}\n.${cn}::before {\n top: calc(50% - 6px);\n}\n.${cn}::after {\n bottom: calc(50% - 6px);\n}\n.${cn}[data-disabled="true"] > .${cn}-icon {\n ${css_var_1.CssPV.inactOpacity}\n}\n.${cn}[data-disabled="false"] {\n touch-action: none;\n}\n.${cn}-pinching {\n position: absolute;\n z-index: 1000;\n filter: drop-shadow(0 2px 3px ${css_var_1.default.sdw.c});\n}\n`));exports.default=ListViewReorderColumn;