lsp-grid 1.0.9 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{cell-renderer-BUkypM-F.js → cell-renderer-Cv_AzifM.js} +3 -3
- package/dist/cjs/{cell-renderer-BUkypM-F.js.map → cell-renderer-Cv_AzifM.js.map} +1 -1
- package/dist/cjs/{column.drag.plugin-CvXTFWBY.js → column.drag.plugin-CdGANTvU.js} +4 -4
- package/dist/cjs/{column.drag.plugin-CvXTFWBY.js.map → column.drag.plugin-CdGANTvU.js.map} +1 -1
- package/dist/cjs/{column.service-Bbt9RpCX.js → column.service-E0fGIliz.js} +10 -6
- package/dist/{esm/column.service-B-lRgClm.js.map → cjs/column.service-E0fGIliz.js.map} +1 -1
- package/dist/cjs/{header-cell-renderer-CoDQ1rGh.js → header-cell-renderer-gEsagPcI.js} +3 -3
- package/dist/cjs/{header-cell-renderer-CoDQ1rGh.js.map → header-cell-renderer-gEsagPcI.js.map} +1 -1
- package/dist/cjs/index.cjs.js +4 -4
- package/dist/cjs/revo-grid.cjs.entry.js +3 -3
- package/dist/cjs/revogr-attribution_7.cjs.entry.js +1 -1
- package/dist/cjs/revogr-data_4.cjs.entry.js +3 -3
- package/dist/collection/components/data/column.service.js +8 -4
- package/dist/collection/components/data/column.service.js.map +1 -1
- package/dist/esm/{cell-renderer-BOXOw_6m.js → cell-renderer--rDTZ-2a.js} +3 -3
- package/dist/{revo-grid/cell-renderer-BOXOw_6m.js.map → esm/cell-renderer--rDTZ-2a.js.map} +1 -1
- package/dist/esm/{column.drag.plugin-CAOu-MOR.js → column.drag.plugin-D4AyYEei.js} +4 -4
- package/dist/{revo-grid/column.drag.plugin-CAOu-MOR.js.map → esm/column.drag.plugin-D4AyYEei.js.map} +1 -1
- package/dist/{revo-grid/column.service-B-lRgClm.js → esm/column.service-q_AHBchb.js} +10 -6
- package/dist/{cjs/column.service-Bbt9RpCX.js.map → esm/column.service-q_AHBchb.js.map} +1 -1
- package/dist/{revo-grid/header-cell-renderer-QKl43mIW.js → esm/header-cell-renderer-CQR7VTJZ.js} +3 -3
- package/dist/esm/{header-cell-renderer-QKl43mIW.js.map → header-cell-renderer-CQR7VTJZ.js.map} +1 -1
- package/dist/esm/index.js +5 -5
- package/dist/esm/revo-grid.entry.js +3 -3
- package/dist/esm/revogr-attribution_7.entry.js +1 -1
- package/dist/esm/revogr-data_4.entry.js +3 -3
- package/dist/revo-grid/{cell-renderer-BOXOw_6m.js → cell-renderer--rDTZ-2a.js} +3 -3
- package/dist/{esm/cell-renderer-BOXOw_6m.js.map → revo-grid/cell-renderer--rDTZ-2a.js.map} +1 -1
- package/dist/revo-grid/{column.drag.plugin-CAOu-MOR.js → column.drag.plugin-D4AyYEei.js} +4 -4
- package/dist/{esm/column.drag.plugin-CAOu-MOR.js.map → revo-grid/column.drag.plugin-D4AyYEei.js.map} +1 -1
- package/dist/{esm/column.service-B-lRgClm.js → revo-grid/column.service-q_AHBchb.js} +10 -6
- package/dist/revo-grid/{column.service-B-lRgClm.js.map → column.service-q_AHBchb.js.map} +1 -1
- package/dist/{esm/header-cell-renderer-QKl43mIW.js → revo-grid/header-cell-renderer-CQR7VTJZ.js} +3 -3
- package/dist/revo-grid/{header-cell-renderer-QKl43mIW.js.map → header-cell-renderer-CQR7VTJZ.js.map} +1 -1
- package/dist/revo-grid/index.esm.js +5 -5
- package/dist/revo-grid/revo-grid.entry.js +3 -3
- package/dist/revo-grid/revogr-attribution_7.entry.js +1 -1
- package/dist/revo-grid/revogr-data_4.entry.js +3 -3
- package/hydrate/index.js +8 -4
- package/hydrate/index.mjs +8 -4
- package/package.json +1 -1
- package/standalone/column.service.js +8 -4
- package/standalone/column.service.js.map +1 -1
package/dist/cjs/{header-cell-renderer-CoDQ1rGh.js.map → header-cell-renderer-gEsagPcI.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header-cell-renderer-CoDQ1rGh.js","sources":["src/plugins/dispatcher.ts","src/components/header/resizable.directive.tsx","src/components/header/resizable.element.tsx","src/components/header/header-cell-renderer.tsx"],"sourcesContent":["/**\r\n * Dispatches a custom event to a specified target element.\r\n *\r\n * @param target - The target element to dispatch the event to.\r\n * @param eventName - The name of the custom event.\r\n * @param detail - Optional. The detail of the custom event.\r\n * @returns The custom event that was dispatched.\r\n */\r\nexport function dispatch<DispatchDetail = any>(\r\n target: MouseEvent['target'],\r\n eventName: string,\r\n detail?: DispatchDetail,\r\n) {\r\n // Create a new CustomEvent with the specified event name and detail.\r\n const event = new CustomEvent<DispatchDetail>(eventName, {\r\n detail,\r\n cancelable: true, // Indicates whether the event can be canceled.\r\n bubbles: true, // Indicates whether the event bubbles up through the DOM.\r\n });\r\n\r\n // Dispatch the event on the target element.\r\n target?.dispatchEvent(event);\r\n\r\n // Return the custom event that was dispatched.\r\n return event;\r\n}\r\n\r\n/**\r\n * Dispatches a custom event based on an existing event object and prevents the default behavior of the original event.\r\n *\r\n * @param e - The original event object containing the target and preventDefault method.\r\n * @param eventName - The name of the custom event.\r\n * @param detail - Optional. The detail of the custom event.\r\n * @returns The custom event that was dispatched.\r\n */\r\nexport function dispatchByEvent<DispatchDetail = any>(\r\n e: Pick<MouseEvent, 'target' | 'preventDefault'>, // The original event object containing the target and preventDefault method.\r\n eventName: string, // The name of the custom event.\r\n detail?: DispatchDetail, // Optional. The detail of the custom event.\r\n): CustomEvent {\r\n // Prevent the default behavior of the original event.\r\n e.preventDefault();\r\n\r\n // Dispatch the custom event to the target element specified in the original event object.\r\n return dispatch<DispatchDetail>(e.target, eventName, detail);\r\n}\r\n","export type ResizeProps = {\r\n active: ('r' | 'rb' | 'b' | 'lb' | 'l' | 'lt' | 't' | 'rt')[]; // all\r\n fitParent: boolean; // false\r\n minWidth: number; // 0\r\n minHeight: number; // 0\r\n\r\n disableAttributes: ('l' | 't' | 'w' | 'h')[]; // []\r\n maxWidth?: number;\r\n maxHeight?: number;\r\n\r\n onResize?(e: ResizeEvent): void;\r\n};\r\n\r\nexport type ResizeEvent = {\r\n eventName: string;\r\n changedX?: number;\r\n changedY?: number;\r\n width?: number;\r\n height?: number;\r\n};\r\n\r\nexport enum ResizeEvents {\r\n start = 'resize:start',\r\n move = 'resize:move',\r\n end = 'resize:end',\r\n}\r\n\r\nconst RESIZE_MASK: { [key: string]: any } = {\r\n 'resizable-r': { bit: 0b0001, cursor: 'ew-resize' },\r\n 'resizable-rb': { bit: 0b0011, cursor: 'se-resize' },\r\n 'resizable-b': { bit: 0b0010, cursor: 's-resize' },\r\n 'resizable-lb': { bit: 0b0110, cursor: 'sw-resize' },\r\n 'resizable-l': { bit: 0b0100, cursor: 'w-resize' },\r\n 'resizable-lt': { bit: 0b1100, cursor: 'nw-resize' },\r\n 'resizable-t': { bit: 0b1000, cursor: 'n-resize' },\r\n 'resizable-rt': { bit: 0b1001, cursor: 'ne-resize' },\r\n};\r\n\r\nconst DISABLE_MASK = {\r\n l: 0b0001,\r\n t: 0b0010,\r\n w: 0b0100,\r\n h: 0b1000,\r\n};\r\n\r\nconst defaultProps = (props: Partial<ResizeProps>): ResizeProps => {\r\n return {\r\n ...props,\r\n fitParent: props.fitParent || false,\r\n active: props.active || [],\r\n disableAttributes: props.disableAttributes || [],\r\n minWidth: props.minWidth || 0,\r\n minHeight: props.minHeight || 0,\r\n };\r\n};\r\n\r\nexport class ResizeDirective {\r\n private $el: HTMLElement;\r\n private props: ResizeProps;\r\n private minW: number;\r\n private minH: number;\r\n private maxW: number;\r\n private maxH: number;\r\n\r\n private mouseX = 0;\r\n private mouseY = 0;\r\n\r\n private width = 0;\r\n private height = 0;\r\n\r\n private changeX = 0;\r\n private changeY = 0;\r\n\r\n private parent: { width: number; height: number };\r\n private resizeState: number;\r\n private activeResizer?: HTMLElement;\r\n private disableCalcMap = 0b1111;\r\n\r\n private mouseMoveFunc: () => void;\r\n private mouseUpFunc: () => void;\r\n\r\n constructor(\r\n private initialProps: Partial<ResizeProps>,\r\n private $event?: (e: ResizeEvent) => void,\r\n ) {\r\n this.props = defaultProps(initialProps);\r\n this.mouseMoveFunc = this.handleMove.bind(this);\r\n this.mouseUpFunc = this.handleUp.bind(this);\r\n\r\n this.minW = this.props.minWidth;\r\n this.minH = this.props.minHeight;\r\n this.maxW = this.props.maxWidth ?? 0;\r\n this.maxH = this.props.maxHeight ?? 0;\r\n this.parent = { width: 0, height: 0 };\r\n this.resizeState = 0;\r\n }\r\n\r\n set($el: HTMLElement) {\r\n this.$el = $el;\r\n this.props.disableAttributes.forEach(attr => {\r\n switch (attr) {\r\n case 'l':\r\n this.disableCalcMap &= ~DISABLE_MASK.l;\r\n break;\r\n case 't':\r\n this.disableCalcMap &= ~DISABLE_MASK.t;\r\n break;\r\n case 'w':\r\n this.disableCalcMap &= ~DISABLE_MASK.w;\r\n break;\r\n case 'h':\r\n this.disableCalcMap &= ~DISABLE_MASK.h;\r\n }\r\n });\r\n }\r\n emitEvent(eventName: string, additionalOptions?: any) {\r\n if (!this.$event) {\r\n return;\r\n }\r\n const isLeft = this.activeResizer?.classList.contains('resizable-l');\r\n this.$event({\r\n eventName,\r\n width: this.width + this.changeX * (isLeft ? -1 : 1),\r\n height: this.height + this.changeY,\r\n changedX: this.changeX,\r\n changedY: this.changeY,\r\n ...additionalOptions,\r\n });\r\n }\r\n\r\n private static isTouchEvent(e: MouseEvent | TouchEvent): e is TouchEvent {\r\n const event = e as TouchEvent;\r\n return event.touches?.length >= 0;\r\n }\r\n\r\n handleMove(event: MouseEvent | TouchEvent) {\r\n if (!this.resizeState) {\r\n return;\r\n }\r\n let eventY, eventX;\r\n if (ResizeDirective.isTouchEvent(event)) {\r\n eventY = event.touches[0].clientY;\r\n eventX = event.touches[0].clientX;\r\n } else {\r\n eventY = event.clientY;\r\n eventX = event.clientX;\r\n }\r\n let isX =\r\n this.resizeState & RESIZE_MASK['resizable-r'].bit ||\r\n this.resizeState & RESIZE_MASK['resizable-l'].bit;\r\n\r\n let isY =\r\n this.resizeState & RESIZE_MASK['resizable-t'].bit ||\r\n this.resizeState & RESIZE_MASK['resizable-b'].bit;\r\n\r\n if (isY && this.disableCalcMap & DISABLE_MASK.h) {\r\n let diffY = eventY - this.mouseY;\r\n let changedY = this.changeY + diffY;\r\n const newHeight = this.height + changedY;\r\n // if overcrossed min height\r\n if (newHeight < this.minH) {\r\n changedY = -(this.height - this.minH);\r\n }\r\n // if overcrossed max heiht\r\n if (this.maxH && newHeight > this.maxH) {\r\n changedY = this.maxH - this.height;\r\n }\r\n\r\n this.changeY = changedY;\r\n this.mouseY = eventY;\r\n\r\n if (this.activeResizer) {\r\n this.activeResizer.style.bottom = `${-this.changeY}px`;\r\n }\r\n }\r\n if (isX && this.disableCalcMap & DISABLE_MASK.w) {\r\n const isLeft = this.activeResizer?.classList.contains('resizable-l');\r\n let diffX = eventX - this.mouseX;\r\n let changedX = this.changeX + diffX;\r\n const newWidth = this.width + changedX * (isLeft ? -1 : 1);\r\n\r\n // if overcrossed min width\r\n if (newWidth < this.minW) {\r\n changedX = -(this.width - this.minW);\r\n }\r\n // if overcrossed max width\r\n if (this.maxW && newWidth > this.maxW) {\r\n changedX = this.maxW - this.width;\r\n }\r\n\r\n this.changeX = changedX;\r\n this.mouseX = eventX;\r\n\r\n if (this.activeResizer) {\r\n if (!isLeft) {\r\n this.activeResizer.style.right = `${-this.changeX}px`;\r\n } else {\r\n this.activeResizer.style.left = `${this.changeX}px`;\r\n }\r\n }\r\n }\r\n this.emitEvent(ResizeEvents.move);\r\n }\r\n\r\n handleDown(event: MouseEvent | TouchEvent) {\r\n if (event.defaultPrevented) {\r\n return;\r\n }\r\n // stop other events if resize in progress\r\n event.preventDefault();\r\n\r\n this.dropInitial();\r\n for (let elClass in RESIZE_MASK) {\r\n const target = event.target as HTMLElement | null;\r\n if (this.$el.contains(target) && target?.classList.contains(elClass)) {\r\n document.body.style.cursor = RESIZE_MASK[elClass].cursor;\r\n if (ResizeDirective.isTouchEvent(event)) {\r\n this.setInitials(event.touches[0], target);\r\n } else {\r\n event.preventDefault && event.preventDefault();\r\n this.setInitials(event, target);\r\n }\r\n this.resizeState = RESIZE_MASK[elClass].bit;\r\n const eventName = ResizeEvents.start;\r\n this.emitEvent(eventName);\r\n break;\r\n }\r\n }\r\n this.bindMove();\r\n }\r\n\r\n handleUp(e: MouseEvent) {\r\n e.preventDefault();\r\n if (this.resizeState !== 0) {\r\n this.resizeState = 0;\r\n document.body.style.cursor = '';\r\n const eventName = ResizeEvents.end;\r\n this.emitEvent(eventName);\r\n }\r\n this.dropInitial();\r\n this.unbindMove();\r\n }\r\n\r\n private setInitials(\r\n { clientX, clientY }: { clientX: number; clientY: number },\r\n target?: HTMLElement,\r\n ) {\r\n const computedStyle = getComputedStyle(this.$el);\r\n this.$el.classList.add('active');\r\n this.activeResizer = target;\r\n\r\n if (this.disableCalcMap & DISABLE_MASK.w) {\r\n this.mouseX = clientX;\r\n this.width = this.$el.clientWidth;\r\n this.parent.width = this.$el.parentElement?.clientWidth ?? 0;\r\n\r\n // min width\r\n const minPaddingX =\r\n parseFloat(computedStyle.paddingLeft) +\r\n parseFloat(computedStyle.paddingRight);\r\n this.minW = Math.max(minPaddingX, this.initialProps.minWidth || 0);\r\n\r\n // max width\r\n if (this.initialProps.maxWidth) {\r\n this.maxW = Math.max(this.width, this.initialProps.maxWidth);\r\n }\r\n }\r\n\r\n if (this.disableCalcMap & DISABLE_MASK.h) {\r\n this.mouseY = clientY;\r\n this.height = this.$el.clientHeight;\r\n this.parent.height = this.$el.parentElement?.clientHeight ?? 0;\r\n\r\n // min height\r\n const minPaddingY =\r\n parseFloat(computedStyle.paddingTop) +\r\n parseFloat(computedStyle.paddingBottom);\r\n this.minH = Math.max(minPaddingY, this.initialProps.minHeight || 0);\r\n // max height\r\n if (this.initialProps.maxHeight) {\r\n this.maxH = Math.max(this.height, this.initialProps.maxHeight);\r\n }\r\n }\r\n }\r\n\r\n private dropInitial() {\r\n this.changeX = this.changeY = this.minW = this.minH;\r\n this.width = this.height = 0;\r\n if (this.activeResizer) {\r\n this.activeResizer.removeAttribute('style');\r\n }\r\n this.$el.classList.remove('active');\r\n this.activeResizer = undefined;\r\n }\r\n\r\n private bindMove() {\r\n document.documentElement.addEventListener(\r\n 'mouseup',\r\n this.mouseUpFunc,\r\n true,\r\n );\r\n document.documentElement.addEventListener(\r\n 'touchend',\r\n this.mouseUpFunc,\r\n true,\r\n );\r\n document.documentElement.addEventListener(\r\n 'mousemove',\r\n this.mouseMoveFunc,\r\n true,\r\n );\r\n document.documentElement.addEventListener(\r\n 'touchmove',\r\n this.mouseMoveFunc,\r\n true,\r\n );\r\n document.documentElement.addEventListener('mouseleave', this.mouseUpFunc);\r\n }\r\n\r\n private unbindMove() {\r\n document.documentElement.removeEventListener(\r\n 'mouseup',\r\n this.mouseUpFunc,\r\n true,\r\n );\r\n document.documentElement.removeEventListener(\r\n 'touchend',\r\n this.mouseUpFunc,\r\n true,\r\n );\r\n document.documentElement.removeEventListener(\r\n 'mousemove',\r\n this.mouseMoveFunc,\r\n true,\r\n );\r\n document.documentElement.removeEventListener(\r\n 'touchmove',\r\n this.mouseMoveFunc,\r\n true,\r\n );\r\n document.documentElement.removeEventListener(\r\n 'mouseleave',\r\n this.mouseUpFunc,\r\n );\r\n }\r\n}\r\n","import { type FunctionalComponent, h, type VNode } from '@stencil/core';\r\nimport {\r\n ResizeProps,\r\n ResizeDirective,\r\n ResizeEvents,\r\n} from './resizable.directive';\r\nimport type { CellProps } from '@type';\r\n\r\nexport type ResizableElementHTMLAttributes = Partial<ResizeProps> & CellProps;\r\n\r\nexport const ResizableElement: FunctionalComponent = (\r\n props: ResizableElementHTMLAttributes,\r\n children: VNode[],\r\n) => {\r\n const resizeEls: VNode[] = [];\r\n const directive =\r\n (props.canResize &&\r\n new ResizeDirective(props, e => {\r\n if (e.eventName === ResizeEvents.end) {\r\n props.onResize?.(e);\r\n }\r\n })) ||\r\n null;\r\n\r\n if (props.active) {\r\n if (props.canResize) {\r\n for (let p in props.active) {\r\n resizeEls.push(\r\n <div\r\n onClick={e => e.preventDefault()}\r\n onDblClick={e => {\r\n e.preventDefault();\r\n props.onDblClick?.(e);\r\n }}\r\n onMouseDown={(e: MouseEvent) => directive?.handleDown(e)}\r\n onTouchStart={(e: TouchEvent) => directive?.handleDown(e)}\r\n class={`resizable resizable-${props.active[p]}`}\r\n />,\r\n );\r\n }\r\n } else {\r\n for (let _p in props.active) {\r\n resizeEls.push(\r\n <div\r\n onClick={e => e.preventDefault()}\r\n onTouchStart={(e: TouchEvent) => e.preventDefault()}\r\n onDblClick={e => {\r\n e.preventDefault();\r\n props.onDblClick?.(e);\r\n }}\r\n class={`no-resize`}\r\n />,\r\n );\r\n }\r\n }\r\n }\r\n return (\r\n <div {...props} ref={e => e && directive?.set(e)}>\r\n {children}\r\n {resizeEls}\r\n </div>\r\n );\r\n};\r\n","import { type FunctionalComponent, h } from '@stencil/core';\r\nimport { dispatch } from '../../plugins/dispatcher';\r\nimport { doPropMerge } from '../data/column.service';\r\nimport {\r\n ResizableElement,\r\n ResizableElementHTMLAttributes,\r\n} from './resizable.element';\r\nimport { ColumnTemplateProp } from '@type';\r\n\r\nexport const ON_COLUMN_CLICK = 'columnclick';\r\n\r\nexport const HeaderCellRenderer: FunctionalComponent<{\r\n props: ResizableElementHTMLAttributes;\r\n additionalData: any;\r\n data?: ColumnTemplateProp;\r\n}> = ({ data, props, additionalData }, children) => {\r\n let colTemplate: ReturnType<typeof h> = data?.name || '';\r\n let cellProps = props;\r\n if (data?.columnTemplate) {\r\n colTemplate = data.columnTemplate(h, data, additionalData);\r\n }\r\n if (data?.columnProperties) {\r\n const extra = data.columnProperties(data);\r\n if (extra) {\r\n cellProps = doPropMerge(props, extra);\r\n }\r\n }\r\n\r\n return (\r\n <ResizableElement {...cellProps}>\r\n {data?.draggable !== false && (\r\n <div\r\n onMouseDown={(e: MouseEvent) => {\r\n dispatch(e.currentTarget, ON_COLUMN_CLICK, {\r\n data,\r\n event: e,\r\n });\r\n }}\r\n class=\"header-cell-drag\"\r\n >\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\"\r\n height=\"18\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"1.3\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n >\r\n <circle cx=\"9\" cy=\"12\" r=\"1\" />\r\n <circle cx=\"9\" cy=\"5\" r=\"1\" />\r\n <circle cx=\"9\" cy=\"19\" r=\"1\" />\r\n <circle cx=\"15\" cy=\"12\" r=\"1\" />\r\n <circle cx=\"15\" cy=\"5\" r=\"1\" />\r\n <circle cx=\"15\" cy=\"19\" r=\"1\" />\r\n </svg>\r\n </div>\r\n )}\r\n <div class=\"header-content\">{colTemplate}</div>\r\n {children}\r\n </ResizableElement>\r\n );\r\n};\r\n"],"names":["h","doPropMerge"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"header-cell-renderer-gEsagPcI.js","sources":["src/plugins/dispatcher.ts","src/components/header/resizable.directive.tsx","src/components/header/resizable.element.tsx","src/components/header/header-cell-renderer.tsx"],"sourcesContent":["/**\r\n * Dispatches a custom event to a specified target element.\r\n *\r\n * @param target - The target element to dispatch the event to.\r\n * @param eventName - The name of the custom event.\r\n * @param detail - Optional. The detail of the custom event.\r\n * @returns The custom event that was dispatched.\r\n */\r\nexport function dispatch<DispatchDetail = any>(\r\n target: MouseEvent['target'],\r\n eventName: string,\r\n detail?: DispatchDetail,\r\n) {\r\n // Create a new CustomEvent with the specified event name and detail.\r\n const event = new CustomEvent<DispatchDetail>(eventName, {\r\n detail,\r\n cancelable: true, // Indicates whether the event can be canceled.\r\n bubbles: true, // Indicates whether the event bubbles up through the DOM.\r\n });\r\n\r\n // Dispatch the event on the target element.\r\n target?.dispatchEvent(event);\r\n\r\n // Return the custom event that was dispatched.\r\n return event;\r\n}\r\n\r\n/**\r\n * Dispatches a custom event based on an existing event object and prevents the default behavior of the original event.\r\n *\r\n * @param e - The original event object containing the target and preventDefault method.\r\n * @param eventName - The name of the custom event.\r\n * @param detail - Optional. The detail of the custom event.\r\n * @returns The custom event that was dispatched.\r\n */\r\nexport function dispatchByEvent<DispatchDetail = any>(\r\n e: Pick<MouseEvent, 'target' | 'preventDefault'>, // The original event object containing the target and preventDefault method.\r\n eventName: string, // The name of the custom event.\r\n detail?: DispatchDetail, // Optional. The detail of the custom event.\r\n): CustomEvent {\r\n // Prevent the default behavior of the original event.\r\n e.preventDefault();\r\n\r\n // Dispatch the custom event to the target element specified in the original event object.\r\n return dispatch<DispatchDetail>(e.target, eventName, detail);\r\n}\r\n","export type ResizeProps = {\r\n active: ('r' | 'rb' | 'b' | 'lb' | 'l' | 'lt' | 't' | 'rt')[]; // all\r\n fitParent: boolean; // false\r\n minWidth: number; // 0\r\n minHeight: number; // 0\r\n\r\n disableAttributes: ('l' | 't' | 'w' | 'h')[]; // []\r\n maxWidth?: number;\r\n maxHeight?: number;\r\n\r\n onResize?(e: ResizeEvent): void;\r\n};\r\n\r\nexport type ResizeEvent = {\r\n eventName: string;\r\n changedX?: number;\r\n changedY?: number;\r\n width?: number;\r\n height?: number;\r\n};\r\n\r\nexport enum ResizeEvents {\r\n start = 'resize:start',\r\n move = 'resize:move',\r\n end = 'resize:end',\r\n}\r\n\r\nconst RESIZE_MASK: { [key: string]: any } = {\r\n 'resizable-r': { bit: 0b0001, cursor: 'ew-resize' },\r\n 'resizable-rb': { bit: 0b0011, cursor: 'se-resize' },\r\n 'resizable-b': { bit: 0b0010, cursor: 's-resize' },\r\n 'resizable-lb': { bit: 0b0110, cursor: 'sw-resize' },\r\n 'resizable-l': { bit: 0b0100, cursor: 'w-resize' },\r\n 'resizable-lt': { bit: 0b1100, cursor: 'nw-resize' },\r\n 'resizable-t': { bit: 0b1000, cursor: 'n-resize' },\r\n 'resizable-rt': { bit: 0b1001, cursor: 'ne-resize' },\r\n};\r\n\r\nconst DISABLE_MASK = {\r\n l: 0b0001,\r\n t: 0b0010,\r\n w: 0b0100,\r\n h: 0b1000,\r\n};\r\n\r\nconst defaultProps = (props: Partial<ResizeProps>): ResizeProps => {\r\n return {\r\n ...props,\r\n fitParent: props.fitParent || false,\r\n active: props.active || [],\r\n disableAttributes: props.disableAttributes || [],\r\n minWidth: props.minWidth || 0,\r\n minHeight: props.minHeight || 0,\r\n };\r\n};\r\n\r\nexport class ResizeDirective {\r\n private $el: HTMLElement;\r\n private props: ResizeProps;\r\n private minW: number;\r\n private minH: number;\r\n private maxW: number;\r\n private maxH: number;\r\n\r\n private mouseX = 0;\r\n private mouseY = 0;\r\n\r\n private width = 0;\r\n private height = 0;\r\n\r\n private changeX = 0;\r\n private changeY = 0;\r\n\r\n private parent: { width: number; height: number };\r\n private resizeState: number;\r\n private activeResizer?: HTMLElement;\r\n private disableCalcMap = 0b1111;\r\n\r\n private mouseMoveFunc: () => void;\r\n private mouseUpFunc: () => void;\r\n\r\n constructor(\r\n private initialProps: Partial<ResizeProps>,\r\n private $event?: (e: ResizeEvent) => void,\r\n ) {\r\n this.props = defaultProps(initialProps);\r\n this.mouseMoveFunc = this.handleMove.bind(this);\r\n this.mouseUpFunc = this.handleUp.bind(this);\r\n\r\n this.minW = this.props.minWidth;\r\n this.minH = this.props.minHeight;\r\n this.maxW = this.props.maxWidth ?? 0;\r\n this.maxH = this.props.maxHeight ?? 0;\r\n this.parent = { width: 0, height: 0 };\r\n this.resizeState = 0;\r\n }\r\n\r\n set($el: HTMLElement) {\r\n this.$el = $el;\r\n this.props.disableAttributes.forEach(attr => {\r\n switch (attr) {\r\n case 'l':\r\n this.disableCalcMap &= ~DISABLE_MASK.l;\r\n break;\r\n case 't':\r\n this.disableCalcMap &= ~DISABLE_MASK.t;\r\n break;\r\n case 'w':\r\n this.disableCalcMap &= ~DISABLE_MASK.w;\r\n break;\r\n case 'h':\r\n this.disableCalcMap &= ~DISABLE_MASK.h;\r\n }\r\n });\r\n }\r\n emitEvent(eventName: string, additionalOptions?: any) {\r\n if (!this.$event) {\r\n return;\r\n }\r\n const isLeft = this.activeResizer?.classList.contains('resizable-l');\r\n this.$event({\r\n eventName,\r\n width: this.width + this.changeX * (isLeft ? -1 : 1),\r\n height: this.height + this.changeY,\r\n changedX: this.changeX,\r\n changedY: this.changeY,\r\n ...additionalOptions,\r\n });\r\n }\r\n\r\n private static isTouchEvent(e: MouseEvent | TouchEvent): e is TouchEvent {\r\n const event = e as TouchEvent;\r\n return event.touches?.length >= 0;\r\n }\r\n\r\n handleMove(event: MouseEvent | TouchEvent) {\r\n if (!this.resizeState) {\r\n return;\r\n }\r\n let eventY, eventX;\r\n if (ResizeDirective.isTouchEvent(event)) {\r\n eventY = event.touches[0].clientY;\r\n eventX = event.touches[0].clientX;\r\n } else {\r\n eventY = event.clientY;\r\n eventX = event.clientX;\r\n }\r\n let isX =\r\n this.resizeState & RESIZE_MASK['resizable-r'].bit ||\r\n this.resizeState & RESIZE_MASK['resizable-l'].bit;\r\n\r\n let isY =\r\n this.resizeState & RESIZE_MASK['resizable-t'].bit ||\r\n this.resizeState & RESIZE_MASK['resizable-b'].bit;\r\n\r\n if (isY && this.disableCalcMap & DISABLE_MASK.h) {\r\n let diffY = eventY - this.mouseY;\r\n let changedY = this.changeY + diffY;\r\n const newHeight = this.height + changedY;\r\n // if overcrossed min height\r\n if (newHeight < this.minH) {\r\n changedY = -(this.height - this.minH);\r\n }\r\n // if overcrossed max heiht\r\n if (this.maxH && newHeight > this.maxH) {\r\n changedY = this.maxH - this.height;\r\n }\r\n\r\n this.changeY = changedY;\r\n this.mouseY = eventY;\r\n\r\n if (this.activeResizer) {\r\n this.activeResizer.style.bottom = `${-this.changeY}px`;\r\n }\r\n }\r\n if (isX && this.disableCalcMap & DISABLE_MASK.w) {\r\n const isLeft = this.activeResizer?.classList.contains('resizable-l');\r\n let diffX = eventX - this.mouseX;\r\n let changedX = this.changeX + diffX;\r\n const newWidth = this.width + changedX * (isLeft ? -1 : 1);\r\n\r\n // if overcrossed min width\r\n if (newWidth < this.minW) {\r\n changedX = -(this.width - this.minW);\r\n }\r\n // if overcrossed max width\r\n if (this.maxW && newWidth > this.maxW) {\r\n changedX = this.maxW - this.width;\r\n }\r\n\r\n this.changeX = changedX;\r\n this.mouseX = eventX;\r\n\r\n if (this.activeResizer) {\r\n if (!isLeft) {\r\n this.activeResizer.style.right = `${-this.changeX}px`;\r\n } else {\r\n this.activeResizer.style.left = `${this.changeX}px`;\r\n }\r\n }\r\n }\r\n this.emitEvent(ResizeEvents.move);\r\n }\r\n\r\n handleDown(event: MouseEvent | TouchEvent) {\r\n if (event.defaultPrevented) {\r\n return;\r\n }\r\n // stop other events if resize in progress\r\n event.preventDefault();\r\n\r\n this.dropInitial();\r\n for (let elClass in RESIZE_MASK) {\r\n const target = event.target as HTMLElement | null;\r\n if (this.$el.contains(target) && target?.classList.contains(elClass)) {\r\n document.body.style.cursor = RESIZE_MASK[elClass].cursor;\r\n if (ResizeDirective.isTouchEvent(event)) {\r\n this.setInitials(event.touches[0], target);\r\n } else {\r\n event.preventDefault && event.preventDefault();\r\n this.setInitials(event, target);\r\n }\r\n this.resizeState = RESIZE_MASK[elClass].bit;\r\n const eventName = ResizeEvents.start;\r\n this.emitEvent(eventName);\r\n break;\r\n }\r\n }\r\n this.bindMove();\r\n }\r\n\r\n handleUp(e: MouseEvent) {\r\n e.preventDefault();\r\n if (this.resizeState !== 0) {\r\n this.resizeState = 0;\r\n document.body.style.cursor = '';\r\n const eventName = ResizeEvents.end;\r\n this.emitEvent(eventName);\r\n }\r\n this.dropInitial();\r\n this.unbindMove();\r\n }\r\n\r\n private setInitials(\r\n { clientX, clientY }: { clientX: number; clientY: number },\r\n target?: HTMLElement,\r\n ) {\r\n const computedStyle = getComputedStyle(this.$el);\r\n this.$el.classList.add('active');\r\n this.activeResizer = target;\r\n\r\n if (this.disableCalcMap & DISABLE_MASK.w) {\r\n this.mouseX = clientX;\r\n this.width = this.$el.clientWidth;\r\n this.parent.width = this.$el.parentElement?.clientWidth ?? 0;\r\n\r\n // min width\r\n const minPaddingX =\r\n parseFloat(computedStyle.paddingLeft) +\r\n parseFloat(computedStyle.paddingRight);\r\n this.minW = Math.max(minPaddingX, this.initialProps.minWidth || 0);\r\n\r\n // max width\r\n if (this.initialProps.maxWidth) {\r\n this.maxW = Math.max(this.width, this.initialProps.maxWidth);\r\n }\r\n }\r\n\r\n if (this.disableCalcMap & DISABLE_MASK.h) {\r\n this.mouseY = clientY;\r\n this.height = this.$el.clientHeight;\r\n this.parent.height = this.$el.parentElement?.clientHeight ?? 0;\r\n\r\n // min height\r\n const minPaddingY =\r\n parseFloat(computedStyle.paddingTop) +\r\n parseFloat(computedStyle.paddingBottom);\r\n this.minH = Math.max(minPaddingY, this.initialProps.minHeight || 0);\r\n // max height\r\n if (this.initialProps.maxHeight) {\r\n this.maxH = Math.max(this.height, this.initialProps.maxHeight);\r\n }\r\n }\r\n }\r\n\r\n private dropInitial() {\r\n this.changeX = this.changeY = this.minW = this.minH;\r\n this.width = this.height = 0;\r\n if (this.activeResizer) {\r\n this.activeResizer.removeAttribute('style');\r\n }\r\n this.$el.classList.remove('active');\r\n this.activeResizer = undefined;\r\n }\r\n\r\n private bindMove() {\r\n document.documentElement.addEventListener(\r\n 'mouseup',\r\n this.mouseUpFunc,\r\n true,\r\n );\r\n document.documentElement.addEventListener(\r\n 'touchend',\r\n this.mouseUpFunc,\r\n true,\r\n );\r\n document.documentElement.addEventListener(\r\n 'mousemove',\r\n this.mouseMoveFunc,\r\n true,\r\n );\r\n document.documentElement.addEventListener(\r\n 'touchmove',\r\n this.mouseMoveFunc,\r\n true,\r\n );\r\n document.documentElement.addEventListener('mouseleave', this.mouseUpFunc);\r\n }\r\n\r\n private unbindMove() {\r\n document.documentElement.removeEventListener(\r\n 'mouseup',\r\n this.mouseUpFunc,\r\n true,\r\n );\r\n document.documentElement.removeEventListener(\r\n 'touchend',\r\n this.mouseUpFunc,\r\n true,\r\n );\r\n document.documentElement.removeEventListener(\r\n 'mousemove',\r\n this.mouseMoveFunc,\r\n true,\r\n );\r\n document.documentElement.removeEventListener(\r\n 'touchmove',\r\n this.mouseMoveFunc,\r\n true,\r\n );\r\n document.documentElement.removeEventListener(\r\n 'mouseleave',\r\n this.mouseUpFunc,\r\n );\r\n }\r\n}\r\n","import { type FunctionalComponent, h, type VNode } from '@stencil/core';\r\nimport {\r\n ResizeProps,\r\n ResizeDirective,\r\n ResizeEvents,\r\n} from './resizable.directive';\r\nimport type { CellProps } from '@type';\r\n\r\nexport type ResizableElementHTMLAttributes = Partial<ResizeProps> & CellProps;\r\n\r\nexport const ResizableElement: FunctionalComponent = (\r\n props: ResizableElementHTMLAttributes,\r\n children: VNode[],\r\n) => {\r\n const resizeEls: VNode[] = [];\r\n const directive =\r\n (props.canResize &&\r\n new ResizeDirective(props, e => {\r\n if (e.eventName === ResizeEvents.end) {\r\n props.onResize?.(e);\r\n }\r\n })) ||\r\n null;\r\n\r\n if (props.active) {\r\n if (props.canResize) {\r\n for (let p in props.active) {\r\n resizeEls.push(\r\n <div\r\n onClick={e => e.preventDefault()}\r\n onDblClick={e => {\r\n e.preventDefault();\r\n props.onDblClick?.(e);\r\n }}\r\n onMouseDown={(e: MouseEvent) => directive?.handleDown(e)}\r\n onTouchStart={(e: TouchEvent) => directive?.handleDown(e)}\r\n class={`resizable resizable-${props.active[p]}`}\r\n />,\r\n );\r\n }\r\n } else {\r\n for (let _p in props.active) {\r\n resizeEls.push(\r\n <div\r\n onClick={e => e.preventDefault()}\r\n onTouchStart={(e: TouchEvent) => e.preventDefault()}\r\n onDblClick={e => {\r\n e.preventDefault();\r\n props.onDblClick?.(e);\r\n }}\r\n class={`no-resize`}\r\n />,\r\n );\r\n }\r\n }\r\n }\r\n return (\r\n <div {...props} ref={e => e && directive?.set(e)}>\r\n {children}\r\n {resizeEls}\r\n </div>\r\n );\r\n};\r\n","import { type FunctionalComponent, h } from '@stencil/core';\r\nimport { dispatch } from '../../plugins/dispatcher';\r\nimport { doPropMerge } from '../data/column.service';\r\nimport {\r\n ResizableElement,\r\n ResizableElementHTMLAttributes,\r\n} from './resizable.element';\r\nimport { ColumnTemplateProp } from '@type';\r\n\r\nexport const ON_COLUMN_CLICK = 'columnclick';\r\n\r\nexport const HeaderCellRenderer: FunctionalComponent<{\r\n props: ResizableElementHTMLAttributes;\r\n additionalData: any;\r\n data?: ColumnTemplateProp;\r\n}> = ({ data, props, additionalData }, children) => {\r\n let colTemplate: ReturnType<typeof h> = data?.name || '';\r\n let cellProps = props;\r\n if (data?.columnTemplate) {\r\n colTemplate = data.columnTemplate(h, data, additionalData);\r\n }\r\n if (data?.columnProperties) {\r\n const extra = data.columnProperties(data);\r\n if (extra) {\r\n cellProps = doPropMerge(props, extra);\r\n }\r\n }\r\n\r\n return (\r\n <ResizableElement {...cellProps}>\r\n {data?.draggable !== false && (\r\n <div\r\n onMouseDown={(e: MouseEvent) => {\r\n dispatch(e.currentTarget, ON_COLUMN_CLICK, {\r\n data,\r\n event: e,\r\n });\r\n }}\r\n class=\"header-cell-drag\"\r\n >\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\"\r\n height=\"18\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-width=\"1.3\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n >\r\n <circle cx=\"9\" cy=\"12\" r=\"1\" />\r\n <circle cx=\"9\" cy=\"5\" r=\"1\" />\r\n <circle cx=\"9\" cy=\"19\" r=\"1\" />\r\n <circle cx=\"15\" cy=\"12\" r=\"1\" />\r\n <circle cx=\"15\" cy=\"5\" r=\"1\" />\r\n <circle cx=\"15\" cy=\"19\" r=\"1\" />\r\n </svg>\r\n </div>\r\n )}\r\n <div class=\"header-content\">{colTemplate}</div>\r\n {children}\r\n </ResizableElement>\r\n );\r\n};\r\n"],"names":["h","doPropMerge"],"mappings":"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"}
|
package/dist/cjs/index.cjs.js
CHANGED
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
|
|
6
6
|
var index = require('./index-VM40U6Gh.js');
|
|
7
7
|
var data_store = require('./data.store-CPoU08-Z.js');
|
|
8
|
-
var column_drag_plugin = require('./column.drag.plugin-
|
|
9
|
-
var headerCellRenderer = require('./header-cell-renderer-
|
|
10
|
-
var cellRenderer = require('./cell-renderer-
|
|
8
|
+
var column_drag_plugin = require('./column.drag.plugin-CdGANTvU.js');
|
|
9
|
+
var headerCellRenderer = require('./header-cell-renderer-gEsagPcI.js');
|
|
10
|
+
var cellRenderer = require('./cell-renderer-Cv_AzifM.js');
|
|
11
11
|
var textEditor = require('./text-editor-QwaXUxM7.js');
|
|
12
12
|
var edit_utils = require('./edit.utils-CH8OY_YW.js');
|
|
13
|
-
var column_service = require('./column.service-
|
|
13
|
+
var column_service = require('./column.service-E0fGIliz.js');
|
|
14
14
|
var rowHeaderUtils = require('./row-header-utils-CU4Syg6R.js');
|
|
15
15
|
var filter_button = require('./filter.button-CaAAXq-6.js');
|
|
16
16
|
require('./debounce-DgeyTQM0.js');
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
6
|
var index = require('./index-VM40U6Gh.js');
|
|
7
|
-
var column_service = require('./column.service-
|
|
7
|
+
var column_service = require('./column.service-E0fGIliz.js');
|
|
8
8
|
var data_store = require('./data.store-CPoU08-Z.js');
|
|
9
9
|
var debounce = require('./debounce-DgeyTQM0.js');
|
|
10
|
-
var column_drag_plugin = require('./column.drag.plugin-
|
|
10
|
+
var column_drag_plugin = require('./column.drag.plugin-CdGANTvU.js');
|
|
11
11
|
var rowHeaderUtils = require('./row-header-utils-CU4Syg6R.js');
|
|
12
12
|
var viewport_helpers = require('./viewport.helpers-CI6uB8tu.js');
|
|
13
13
|
var events = require('./events-D0Syn6ut.js');
|
|
14
14
|
require('./filter.button-CaAAXq-6.js');
|
|
15
|
-
require('./header-cell-renderer-
|
|
15
|
+
require('./header-cell-renderer-gEsagPcI.js');
|
|
16
16
|
|
|
17
17
|
class ThemeCompact {
|
|
18
18
|
constructor() {
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
var index = require('./index-VM40U6Gh.js');
|
|
7
7
|
var data_store = require('./data.store-CPoU08-Z.js');
|
|
8
8
|
var events = require('./events-D0Syn6ut.js');
|
|
9
|
-
var column_service = require('./column.service-
|
|
9
|
+
var column_service = require('./column.service-E0fGIliz.js');
|
|
10
10
|
var edit_utils = require('./edit.utils-CH8OY_YW.js');
|
|
11
11
|
var debounce = require('./debounce-DgeyTQM0.js');
|
|
12
12
|
var rowHeaderUtils = require('./row-header-utils-CU4Syg6R.js');
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
6
|
var index = require('./index-VM40U6Gh.js');
|
|
7
|
-
var column_service = require('./column.service-
|
|
7
|
+
var column_service = require('./column.service-E0fGIliz.js');
|
|
8
8
|
var data_store = require('./data.store-CPoU08-Z.js');
|
|
9
|
-
var cellRenderer = require('./cell-renderer-
|
|
9
|
+
var cellRenderer = require('./cell-renderer-Cv_AzifM.js');
|
|
10
10
|
var filter_button = require('./filter.button-CaAAXq-6.js');
|
|
11
|
-
var headerCellRenderer = require('./header-cell-renderer-
|
|
11
|
+
var headerCellRenderer = require('./header-cell-renderer-gEsagPcI.js');
|
|
12
12
|
var throttle = require('./throttle-DGAzdpne.js');
|
|
13
13
|
var viewport_helpers = require('./viewport.helpers-CI6uB8tu.js');
|
|
14
14
|
require('./debounce-DgeyTQM0.js');
|
|
@@ -97,10 +97,10 @@ export default class ColumnService {
|
|
|
97
97
|
const changed = {};
|
|
98
98
|
const fillUp = d.newRange.y < d.oldRange.y;
|
|
99
99
|
const fillLeft = d.newRange.x < d.oldRange.x;
|
|
100
|
-
const rowStart = fillUp ? d.newRange.y1
|
|
100
|
+
const rowStart = fillUp ? d.newRange.y1 : d.newRange.y;
|
|
101
101
|
const rowEnd = fillUp ? d.newRange.y : d.newRange.y1;
|
|
102
102
|
const rowStep = fillUp ? -1 : 1;
|
|
103
|
-
const colStart = fillLeft ? d.newRange.x1
|
|
103
|
+
const colStart = fillLeft ? d.newRange.x1 : d.newRange.x;
|
|
104
104
|
const colEnd = fillLeft ? d.newRange.x : d.newRange.x1;
|
|
105
105
|
const colStep = fillLeft ? -1 : 1;
|
|
106
106
|
// get original length sizes
|
|
@@ -110,7 +110,9 @@ export default class ColumnService {
|
|
|
110
110
|
// rows
|
|
111
111
|
for (let rowIndex = rowStart, i = 0; fillUp ? rowIndex >= rowEnd : rowIndex <= rowEnd; rowIndex += rowStep, i++) {
|
|
112
112
|
// copy original data link
|
|
113
|
-
const oldRowIndex =
|
|
113
|
+
const oldRowIndex = fillUp
|
|
114
|
+
? d.oldRange.y1 - (i % copyRowLength)
|
|
115
|
+
: d.oldRange.y + (i % copyRowLength);
|
|
114
116
|
const copyRow = getSourceItem(this.dataStore, oldRowIndex) || {};
|
|
115
117
|
// columns
|
|
116
118
|
for (let colIndex = colStart, j = 0; fillLeft ? colIndex >= colEnd : colIndex <= colEnd; colIndex += colStep, j++) {
|
|
@@ -126,7 +128,9 @@ export default class ColumnService {
|
|
|
126
128
|
continue;
|
|
127
129
|
}
|
|
128
130
|
const prop = (_a = this.columns[colIndex]) === null || _a === void 0 ? void 0 : _a.prop;
|
|
129
|
-
const copyColIndex =
|
|
131
|
+
const copyColIndex = fillLeft
|
|
132
|
+
? d.oldRange.x1 - (j % copyColLength)
|
|
133
|
+
: d.oldRange.x + (j % copyColLength);
|
|
130
134
|
const copyColumnProp = columns[copyColIndex].prop;
|
|
131
135
|
/** if can write */
|
|
132
136
|
if (!this.isReadOnly(rowIndex, colIndex)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.service.js","sourceRoot":"","sources":["../../../src/components/data/column.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { DSourceState, getSourceItem, getVisibleSourceItem } from '@store';\r\nimport {\r\n Observable,\r\n CELL_CLASS,\r\n DISABLED_CLASS,\r\n getCellRaw,\r\n getCellData,\r\n} from '../../utils';\r\nimport { getRange } from '@store';\r\n\r\nimport { isGroupingColumn } from '../../plugins/groupingRow/grouping.service';\r\nimport slice from 'lodash/slice';\r\nimport {\r\n DimensionCols,\r\n DimensionRows,\r\n RowDrag,\r\n ColumnRegular,\r\n DataType,\r\n CellProps,\r\n ColumnDataSchemaModel,\r\n ColumnProp,\r\n DataLookup,\r\n DataFormat,\r\n ChangedRange,\r\n OldNewRangeMapping,\r\n Cell,\r\n RangeArea,\r\n BeforeSaveDataDetails,\r\n EditorCtr,\r\n Editors,\r\n CellTemplateProp,\r\n} from '@type';\r\nimport { JSXBase } from '@stencil/core/internal';\r\n\r\nexport type ColumnStores = {\r\n [T in DimensionCols]: Observable<DSourceState<ColumnRegular, DimensionCols>>;\r\n};\r\nexport type RowStores = {\r\n [T in DimensionRows]: Observable<DSourceState<DataType, DimensionRows>>;\r\n};\r\n\r\nexport function getCellEditor(\r\n column: Pick<ColumnRegular, 'editor'> | undefined,\r\n editors: Editors = {},\r\n): EditorCtr | undefined {\r\n const editor = column?.editor;\r\n if (!editor) {\r\n return undefined;\r\n }\r\n // reference\r\n if (typeof editor === 'string') {\r\n return editors[editor];\r\n }\r\n return editor;\r\n}\r\n\r\nexport default class ColumnService {\r\n private unsubscribe: { (): void }[] = [];\r\n get columns(): ColumnRegular[] {\r\n return getVisibleSourceItem(this.source);\r\n }\r\n\r\n hasGrouping = false;\r\n type: DimensionCols;\r\n\r\n constructor(\r\n private dataStore: Observable<DSourceState<DataType, DimensionRows>>,\r\n private source: Observable<DSourceState<ColumnRegular, DimensionCols>>,\r\n ) {\r\n this.unsubscribe.push(\r\n source.onChange('source', s => this.checkGrouping(s)),\r\n );\r\n this.checkGrouping(source.get('source'));\r\n this.type = source.get('type');\r\n }\r\n\r\n private checkGrouping(cols: ColumnRegular[]) {\r\n for (let rgCol of cols) {\r\n if (isGroupingColumn(rgCol)) {\r\n this.hasGrouping = true;\r\n return;\r\n }\r\n this.hasGrouping = false;\r\n }\r\n }\r\n\r\n isReadOnly(r: number, c: number) {\r\n const readOnly = this.columns[c]?.readonly;\r\n if (typeof readOnly === 'function') {\r\n const data = this.rowDataModel(r, c);\r\n return readOnly(data);\r\n }\r\n return !!readOnly;\r\n }\r\n\r\n mergeProperties(\r\n r: number,\r\n c: number,\r\n defaultProps: CellProps,\r\n schemaModel: CellTemplateProp,\r\n ): CellProps {\r\n const props: CellProps = {\r\n ...defaultProps,\r\n };\r\n props.class = {\r\n ...(typeof props.class === 'string'\r\n ? { [props.class]: true }\r\n : props.class),\r\n [CELL_CLASS]: true,\r\n [DISABLED_CLASS]: this.isReadOnly(r, c),\r\n };\r\n\r\n const extra = schemaModel.column?.cellProperties?.(schemaModel);\r\n if (!extra) {\r\n return props;\r\n }\r\n return doPropMerge(props, extra);\r\n }\r\n\r\n getRowClass(r: number, prop: string): string {\r\n const model = getSourceItem(this.dataStore, r) || {};\r\n return model[prop] || '';\r\n }\r\n\r\n getSaveData(\r\n rowIndex: number,\r\n colIndex: number,\r\n val?: string,\r\n ): BeforeSaveDataDetails {\r\n const data = this.rowDataModel(rowIndex, colIndex);\r\n if (typeof val === 'undefined') {\r\n val = getCellData(data.value);\r\n }\r\n return {\r\n ...data,\r\n val,\r\n };\r\n }\r\n\r\n /**\r\n * Get cell data model for given rowIndex and colIndex\r\n * Used to pass data to editor/renderer\r\n */\r\n rowDataModel(rowIndex: number, colIndex: number): ColumnDataSchemaModel {\r\n const column = this.columns[colIndex];\r\n const prop = column?.prop;\r\n const model = getSourceItem(this.dataStore, rowIndex) || {};\r\n const type = this.dataStore.get('type');\r\n return {\r\n prop,\r\n model,\r\n data: this.dataStore.get('source'),\r\n column,\r\n rowIndex,\r\n colIndex,\r\n colType: this.type,\r\n type,\r\n value: getCellRaw(model, column),\r\n };\r\n }\r\n\r\n getRangeData(\r\n d: ChangedRange,\r\n columns: ColumnRegular[],\r\n ): {\r\n changed: DataLookup;\r\n mapping: OldNewRangeMapping;\r\n } {\r\n const changed: DataLookup = {};\r\n\r\n const fillUp = d.newRange.y < d.oldRange.y;\r\n const fillLeft = d.newRange.x < d.oldRange.x;\r\n\r\n const rowStart = fillUp ? d.newRange.y1 - 1 : d.newRange.y;\r\n const rowEnd = fillUp ? d.newRange.y : d.newRange.y1;\r\n const rowStep = fillUp ? -1 : 1;\r\n\r\n const colStart = fillLeft ? d.newRange.x1 - 1 : d.newRange.x;\r\n const colEnd = fillLeft ? d.newRange.x : d.newRange.x1;\r\n const colStep = fillLeft ? -1 : 1;\r\n\r\n // get original length sizes\r\n const copyColLength = d.oldRange.x1 - d.oldRange.x + 1;\r\n const copyRowLength = d.oldRange.y1 - d.oldRange.y + 1;\r\n const mapping: OldNewRangeMapping = {};\r\n\r\n // rows\r\n for (\r\n let rowIndex = rowStart, i = 0;\r\n fillUp ? rowIndex >= rowEnd : rowIndex <= rowEnd;\r\n rowIndex += rowStep, i++\r\n ) {\r\n // copy original data link\r\n const oldRowIndex = d.oldRange.y + (i % copyRowLength);\r\n const copyRow = getSourceItem(this.dataStore, oldRowIndex) || {};\r\n\r\n // columns\r\n for (\r\n let colIndex = colStart, j = 0;\r\n fillLeft ? colIndex >= colEnd : colIndex <= colEnd;\r\n colIndex += colStep, j++\r\n ) {\r\n // check if old range area\r\n if (\r\n rowIndex >= d.oldRange.y &&\r\n rowIndex <= d.oldRange.y1 &&\r\n colIndex >= d.oldRange.x &&\r\n colIndex <= d.oldRange.x1\r\n ) {\r\n continue;\r\n }\r\n\r\n // requested column beyond range\r\n if (!this.columns[colIndex]) {\r\n continue;\r\n }\r\n const prop = this.columns[colIndex]?.prop;\r\n const copyColIndex = d.oldRange.x + (j % copyColLength);\r\n const copyColumnProp = columns[copyColIndex].prop;\r\n\r\n /** if can write */\r\n if (!this.isReadOnly(rowIndex, colIndex)) {\r\n /** to show before save */\r\n if (!changed[rowIndex]) {\r\n changed[rowIndex] = {};\r\n }\r\n changed[rowIndex][prop] = copyRow[copyColumnProp];\r\n /** Generate mapping object */\r\n if (!mapping[rowIndex]) {\r\n mapping[rowIndex] = {};\r\n }\r\n mapping[rowIndex][prop] = {\r\n colIndex: copyColIndex,\r\n colProp: copyColumnProp,\r\n rowIndex: oldRowIndex,\r\n };\r\n }\r\n }\r\n }\r\n return {\r\n changed,\r\n mapping,\r\n };\r\n }\r\n\r\n getTransformedDataToApply(\r\n start: Cell,\r\n data: DataFormat[][],\r\n ): {\r\n changed: DataLookup;\r\n range: RangeArea | null;\r\n } {\r\n const changed: DataLookup = {};\r\n const copyRowLength = data.length;\r\n const colLength = this.columns.length;\r\n const rowLength = this.dataStore.get('items').length;\r\n // rows\r\n let rowIndex = start.y;\r\n let maxCol = 0;\r\n for (\r\n let i = 0;\r\n rowIndex < rowLength && i < copyRowLength;\r\n rowIndex++, i++\r\n ) {\r\n // copy original data link\r\n const copyRow = data[i % copyRowLength];\r\n const copyColLength = copyRow?.length || 0;\r\n // columns\r\n let colIndex = start.x;\r\n for (\r\n let j = 0;\r\n colIndex < colLength && j < copyColLength;\r\n colIndex++, j++\r\n ) {\r\n const p = this.columns[colIndex].prop;\r\n const currentCol = j % colLength;\r\n\r\n /** if can write */\r\n if (!this.isReadOnly(rowIndex, colIndex)) {\r\n /** to show before save */\r\n if (!changed[rowIndex]) {\r\n changed[rowIndex] = {};\r\n }\r\n changed[rowIndex][p] = copyRow[currentCol];\r\n }\r\n }\r\n maxCol = Math.max(maxCol, colIndex - 1);\r\n }\r\n const range = getRange(start, {\r\n y: rowIndex - 1,\r\n x: maxCol,\r\n });\r\n return {\r\n changed,\r\n range,\r\n };\r\n }\r\n\r\n getRangeStaticData(d: RangeArea, value: DataFormat): DataLookup {\r\n const changed: DataLookup = {};\r\n\r\n // rows\r\n for (let rowIndex = d.y, i = 0; rowIndex < d.y1 + 1; rowIndex++, i++) {\r\n // columns\r\n for (let colIndex = d.x, j = 0; colIndex < d.x1 + 1; colIndex++, j++) {\r\n // requested column beyond range\r\n if (!this.columns[colIndex]) {\r\n continue;\r\n }\r\n const p = this.columns[colIndex].prop;\r\n\r\n /** if can write */\r\n if (!this.isReadOnly(rowIndex, colIndex)) {\r\n /** to show before save */\r\n if (!changed[rowIndex]) {\r\n changed[rowIndex] = {};\r\n }\r\n changed[rowIndex][p] = value;\r\n }\r\n }\r\n }\r\n return changed;\r\n }\r\n\r\n getRangeTransformedToProps(\r\n d: RangeArea,\r\n store: Observable<DSourceState<DataType, DimensionRows>>,\r\n ) {\r\n const area: {\r\n prop: ColumnProp;\r\n rowIndex: number;\r\n colIndex: number;\r\n model?: DataType;\r\n colType: DimensionCols;\r\n type: DimensionRows;\r\n }[] = [];\r\n\r\n const type = this.dataStore.get('type');\r\n // rows\r\n for (let rowIndex = d.y, i = 0; rowIndex < d.y1 + 1; rowIndex++, i++) {\r\n // columns\r\n for (let colIndex = d.x, j = 0; colIndex < d.x1 + 1; colIndex++, j++) {\r\n const prop = this.columns[colIndex]?.prop;\r\n area.push({\r\n prop,\r\n rowIndex,\r\n colIndex,\r\n model: getSourceItem(store, rowIndex),\r\n type,\r\n colType: this.type,\r\n });\r\n }\r\n }\r\n return area;\r\n }\r\n\r\n copyRangeArray(\r\n range: RangeArea,\r\n store: Observable<DSourceState<DataType, DimensionRows>>,\r\n ) {\r\n const cols = [...this.columns];\r\n const props = slice(cols, range.x, range.x1 + 1).map(v => v.prop);\r\n const toCopy: DataFormat[][] = [];\r\n const mapping: { [rowIndex: number]: { [colProp: ColumnProp]: any } } = {};\r\n\r\n // rows indexes\r\n for (let i = range.y; i <= range.y1; i++) {\r\n const rgRow: DataFormat[] = [];\r\n mapping[i] = {};\r\n\r\n // columns indexes\r\n for (let prop of props) {\r\n const item = getSourceItem(store, i);\r\n\r\n // if no item - skip\r\n if (!item) {\r\n continue;\r\n }\r\n const val = item[prop];\r\n rgRow.push(val);\r\n mapping[i][prop] = val;\r\n }\r\n\r\n toCopy.push(rgRow);\r\n }\r\n return {\r\n data: toCopy,\r\n mapping,\r\n };\r\n }\r\n\r\n destroy() {\r\n this.unsubscribe.forEach(f => f());\r\n }\r\n}\r\n\r\n/**\r\n * Checks if the given rowDrag is a service for dragging rows.\r\n */\r\nexport function isRowDragService(\r\n rowDrag: RowDrag,\r\n model: ColumnDataSchemaModel,\r\n): boolean {\r\n if (typeof rowDrag === 'function') {\r\n return rowDrag(model);\r\n }\r\n return !!rowDrag;\r\n}\r\n\r\nfunction mergeClasses(\r\n class1: JSXBase.HTMLAttributes<HTMLElement>['class'] = {},\r\n class2: JSXBase.HTMLAttributes<HTMLElement>['class'] = {},\r\n) {\r\n if (typeof class1 === 'string') {\r\n class1 = { [class1]: true };\r\n }\r\n if (typeof class2 === 'string') {\r\n class2 = { [class2]: true };\r\n }\r\n return { ...class1, ...class2 };\r\n}\r\n\r\nexport function doPropMerge(existing: CellProps, extra: CellProps) {\r\n // if className is provided - remove it from props it messing with stencil\r\n if (extra.className) {\r\n extra.class = mergeClasses(extra.class, extra.className);\r\n delete extra.className;\r\n }\r\n let props: CellProps = { ...extra, ...existing };\r\n // extend existing props\r\n if (extra.class) {\r\n props.class = mergeClasses(props.class, extra.class);\r\n }\r\n if (extra.style) {\r\n props.style = { ...extra.style, ...props.style };\r\n }\r\n return props;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"column.service.js","sourceRoot":"","sources":["../../../src/components/data/column.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { DSourceState, getSourceItem, getVisibleSourceItem } from '@store';\r\nimport {\r\n Observable,\r\n CELL_CLASS,\r\n DISABLED_CLASS,\r\n getCellRaw,\r\n getCellData,\r\n} from '../../utils';\r\nimport { getRange } from '@store';\r\n\r\nimport { isGroupingColumn } from '../../plugins/groupingRow/grouping.service';\r\nimport slice from 'lodash/slice';\r\nimport {\r\n DimensionCols,\r\n DimensionRows,\r\n RowDrag,\r\n ColumnRegular,\r\n DataType,\r\n CellProps,\r\n ColumnDataSchemaModel,\r\n ColumnProp,\r\n DataLookup,\r\n DataFormat,\r\n ChangedRange,\r\n OldNewRangeMapping,\r\n Cell,\r\n RangeArea,\r\n BeforeSaveDataDetails,\r\n EditorCtr,\r\n Editors,\r\n CellTemplateProp,\r\n} from '@type';\r\nimport { JSXBase } from '@stencil/core/internal';\r\n\r\nexport type ColumnStores = {\r\n [T in DimensionCols]: Observable<DSourceState<ColumnRegular, DimensionCols>>;\r\n};\r\nexport type RowStores = {\r\n [T in DimensionRows]: Observable<DSourceState<DataType, DimensionRows>>;\r\n};\r\n\r\nexport function getCellEditor(\r\n column: Pick<ColumnRegular, 'editor'> | undefined,\r\n editors: Editors = {},\r\n): EditorCtr | undefined {\r\n const editor = column?.editor;\r\n if (!editor) {\r\n return undefined;\r\n }\r\n // reference\r\n if (typeof editor === 'string') {\r\n return editors[editor];\r\n }\r\n return editor;\r\n}\r\n\r\nexport default class ColumnService {\r\n private unsubscribe: { (): void }[] = [];\r\n get columns(): ColumnRegular[] {\r\n return getVisibleSourceItem(this.source);\r\n }\r\n\r\n hasGrouping = false;\r\n type: DimensionCols;\r\n\r\n constructor(\r\n private dataStore: Observable<DSourceState<DataType, DimensionRows>>,\r\n private source: Observable<DSourceState<ColumnRegular, DimensionCols>>,\r\n ) {\r\n this.unsubscribe.push(\r\n source.onChange('source', s => this.checkGrouping(s)),\r\n );\r\n this.checkGrouping(source.get('source'));\r\n this.type = source.get('type');\r\n }\r\n\r\n private checkGrouping(cols: ColumnRegular[]) {\r\n for (let rgCol of cols) {\r\n if (isGroupingColumn(rgCol)) {\r\n this.hasGrouping = true;\r\n return;\r\n }\r\n this.hasGrouping = false;\r\n }\r\n }\r\n\r\n isReadOnly(r: number, c: number) {\r\n const readOnly = this.columns[c]?.readonly;\r\n if (typeof readOnly === 'function') {\r\n const data = this.rowDataModel(r, c);\r\n return readOnly(data);\r\n }\r\n return !!readOnly;\r\n }\r\n\r\n mergeProperties(\r\n r: number,\r\n c: number,\r\n defaultProps: CellProps,\r\n schemaModel: CellTemplateProp,\r\n ): CellProps {\r\n const props: CellProps = {\r\n ...defaultProps,\r\n };\r\n props.class = {\r\n ...(typeof props.class === 'string'\r\n ? { [props.class]: true }\r\n : props.class),\r\n [CELL_CLASS]: true,\r\n [DISABLED_CLASS]: this.isReadOnly(r, c),\r\n };\r\n\r\n const extra = schemaModel.column?.cellProperties?.(schemaModel);\r\n if (!extra) {\r\n return props;\r\n }\r\n return doPropMerge(props, extra);\r\n }\r\n\r\n getRowClass(r: number, prop: string): string {\r\n const model = getSourceItem(this.dataStore, r) || {};\r\n return model[prop] || '';\r\n }\r\n\r\n getSaveData(\r\n rowIndex: number,\r\n colIndex: number,\r\n val?: string,\r\n ): BeforeSaveDataDetails {\r\n const data = this.rowDataModel(rowIndex, colIndex);\r\n if (typeof val === 'undefined') {\r\n val = getCellData(data.value);\r\n }\r\n return {\r\n ...data,\r\n val,\r\n };\r\n }\r\n\r\n /**\r\n * Get cell data model for given rowIndex and colIndex\r\n * Used to pass data to editor/renderer\r\n */\r\n rowDataModel(rowIndex: number, colIndex: number): ColumnDataSchemaModel {\r\n const column = this.columns[colIndex];\r\n const prop = column?.prop;\r\n const model = getSourceItem(this.dataStore, rowIndex) || {};\r\n const type = this.dataStore.get('type');\r\n return {\r\n prop,\r\n model,\r\n data: this.dataStore.get('source'),\r\n column,\r\n rowIndex,\r\n colIndex,\r\n colType: this.type,\r\n type,\r\n value: getCellRaw(model, column),\r\n };\r\n }\r\n\r\n getRangeData(\r\n d: ChangedRange,\r\n columns: ColumnRegular[],\r\n ): {\r\n changed: DataLookup;\r\n mapping: OldNewRangeMapping;\r\n } {\r\n const changed: DataLookup = {};\r\n\r\n const fillUp = d.newRange.y < d.oldRange.y;\r\n const fillLeft = d.newRange.x < d.oldRange.x;\r\n\r\n const rowStart = fillUp ? d.newRange.y1 : d.newRange.y;\r\n const rowEnd = fillUp ? d.newRange.y : d.newRange.y1;\r\n const rowStep = fillUp ? -1 : 1;\r\n\r\n const colStart = fillLeft ? d.newRange.x1 : d.newRange.x;\r\n const colEnd = fillLeft ? d.newRange.x : d.newRange.x1;\r\n const colStep = fillLeft ? -1 : 1;\r\n\r\n // get original length sizes\r\n const copyColLength = d.oldRange.x1 - d.oldRange.x + 1;\r\n const copyRowLength = d.oldRange.y1 - d.oldRange.y + 1;\r\n const mapping: OldNewRangeMapping = {};\r\n\r\n // rows\r\n for (\r\n let rowIndex = rowStart, i = 0;\r\n fillUp ? rowIndex >= rowEnd : rowIndex <= rowEnd;\r\n rowIndex += rowStep, i++\r\n ) {\r\n // copy original data link\r\n const oldRowIndex = fillUp\r\n ? d.oldRange.y1 - (i % copyRowLength)\r\n : d.oldRange.y + (i % copyRowLength);\r\n const copyRow = getSourceItem(this.dataStore, oldRowIndex) || {};\r\n\r\n // columns\r\n for (\r\n let colIndex = colStart, j = 0;\r\n fillLeft ? colIndex >= colEnd : colIndex <= colEnd;\r\n colIndex += colStep, j++\r\n ) {\r\n // check if old range area\r\n if (\r\n rowIndex >= d.oldRange.y &&\r\n rowIndex <= d.oldRange.y1 &&\r\n colIndex >= d.oldRange.x &&\r\n colIndex <= d.oldRange.x1\r\n ) {\r\n continue;\r\n }\r\n\r\n // requested column beyond range\r\n if (!this.columns[colIndex]) {\r\n continue;\r\n }\r\n const prop = this.columns[colIndex]?.prop;\r\n const copyColIndex = fillLeft\r\n ? d.oldRange.x1 - (j % copyColLength)\r\n : d.oldRange.x + (j % copyColLength);\r\n const copyColumnProp = columns[copyColIndex].prop;\r\n\r\n /** if can write */\r\n if (!this.isReadOnly(rowIndex, colIndex)) {\r\n /** to show before save */\r\n if (!changed[rowIndex]) {\r\n changed[rowIndex] = {};\r\n }\r\n changed[rowIndex][prop] = copyRow[copyColumnProp];\r\n /** Generate mapping object */\r\n if (!mapping[rowIndex]) {\r\n mapping[rowIndex] = {};\r\n }\r\n mapping[rowIndex][prop] = {\r\n colIndex: copyColIndex,\r\n colProp: copyColumnProp,\r\n rowIndex: oldRowIndex,\r\n };\r\n }\r\n }\r\n }\r\n return {\r\n changed,\r\n mapping,\r\n };\r\n }\r\n\r\n getTransformedDataToApply(\r\n start: Cell,\r\n data: DataFormat[][],\r\n ): {\r\n changed: DataLookup;\r\n range: RangeArea | null;\r\n } {\r\n const changed: DataLookup = {};\r\n const copyRowLength = data.length;\r\n const colLength = this.columns.length;\r\n const rowLength = this.dataStore.get('items').length;\r\n // rows\r\n let rowIndex = start.y;\r\n let maxCol = 0;\r\n for (\r\n let i = 0;\r\n rowIndex < rowLength && i < copyRowLength;\r\n rowIndex++, i++\r\n ) {\r\n // copy original data link\r\n const copyRow = data[i % copyRowLength];\r\n const copyColLength = copyRow?.length || 0;\r\n // columns\r\n let colIndex = start.x;\r\n for (\r\n let j = 0;\r\n colIndex < colLength && j < copyColLength;\r\n colIndex++, j++\r\n ) {\r\n const p = this.columns[colIndex].prop;\r\n const currentCol = j % colLength;\r\n\r\n /** if can write */\r\n if (!this.isReadOnly(rowIndex, colIndex)) {\r\n /** to show before save */\r\n if (!changed[rowIndex]) {\r\n changed[rowIndex] = {};\r\n }\r\n changed[rowIndex][p] = copyRow[currentCol];\r\n }\r\n }\r\n maxCol = Math.max(maxCol, colIndex - 1);\r\n }\r\n const range = getRange(start, {\r\n y: rowIndex - 1,\r\n x: maxCol,\r\n });\r\n return {\r\n changed,\r\n range,\r\n };\r\n }\r\n\r\n getRangeStaticData(d: RangeArea, value: DataFormat): DataLookup {\r\n const changed: DataLookup = {};\r\n\r\n // rows\r\n for (let rowIndex = d.y, i = 0; rowIndex < d.y1 + 1; rowIndex++, i++) {\r\n // columns\r\n for (let colIndex = d.x, j = 0; colIndex < d.x1 + 1; colIndex++, j++) {\r\n // requested column beyond range\r\n if (!this.columns[colIndex]) {\r\n continue;\r\n }\r\n const p = this.columns[colIndex].prop;\r\n\r\n /** if can write */\r\n if (!this.isReadOnly(rowIndex, colIndex)) {\r\n /** to show before save */\r\n if (!changed[rowIndex]) {\r\n changed[rowIndex] = {};\r\n }\r\n changed[rowIndex][p] = value;\r\n }\r\n }\r\n }\r\n return changed;\r\n }\r\n\r\n getRangeTransformedToProps(\r\n d: RangeArea,\r\n store: Observable<DSourceState<DataType, DimensionRows>>,\r\n ) {\r\n const area: {\r\n prop: ColumnProp;\r\n rowIndex: number;\r\n colIndex: number;\r\n model?: DataType;\r\n colType: DimensionCols;\r\n type: DimensionRows;\r\n }[] = [];\r\n\r\n const type = this.dataStore.get('type');\r\n // rows\r\n for (let rowIndex = d.y, i = 0; rowIndex < d.y1 + 1; rowIndex++, i++) {\r\n // columns\r\n for (let colIndex = d.x, j = 0; colIndex < d.x1 + 1; colIndex++, j++) {\r\n const prop = this.columns[colIndex]?.prop;\r\n area.push({\r\n prop,\r\n rowIndex,\r\n colIndex,\r\n model: getSourceItem(store, rowIndex),\r\n type,\r\n colType: this.type,\r\n });\r\n }\r\n }\r\n return area;\r\n }\r\n\r\n copyRangeArray(\r\n range: RangeArea,\r\n store: Observable<DSourceState<DataType, DimensionRows>>,\r\n ) {\r\n const cols = [...this.columns];\r\n const props = slice(cols, range.x, range.x1 + 1).map(v => v.prop);\r\n const toCopy: DataFormat[][] = [];\r\n const mapping: { [rowIndex: number]: { [colProp: ColumnProp]: any } } = {};\r\n\r\n // rows indexes\r\n for (let i = range.y; i <= range.y1; i++) {\r\n const rgRow: DataFormat[] = [];\r\n mapping[i] = {};\r\n\r\n // columns indexes\r\n for (let prop of props) {\r\n const item = getSourceItem(store, i);\r\n\r\n // if no item - skip\r\n if (!item) {\r\n continue;\r\n }\r\n const val = item[prop];\r\n rgRow.push(val);\r\n mapping[i][prop] = val;\r\n }\r\n\r\n toCopy.push(rgRow);\r\n }\r\n return {\r\n data: toCopy,\r\n mapping,\r\n };\r\n }\r\n\r\n destroy() {\r\n this.unsubscribe.forEach(f => f());\r\n }\r\n}\r\n\r\n/**\r\n * Checks if the given rowDrag is a service for dragging rows.\r\n */\r\nexport function isRowDragService(\r\n rowDrag: RowDrag,\r\n model: ColumnDataSchemaModel,\r\n): boolean {\r\n if (typeof rowDrag === 'function') {\r\n return rowDrag(model);\r\n }\r\n return !!rowDrag;\r\n}\r\n\r\nfunction mergeClasses(\r\n class1: JSXBase.HTMLAttributes<HTMLElement>['class'] = {},\r\n class2: JSXBase.HTMLAttributes<HTMLElement>['class'] = {},\r\n) {\r\n if (typeof class1 === 'string') {\r\n class1 = { [class1]: true };\r\n }\r\n if (typeof class2 === 'string') {\r\n class2 = { [class2]: true };\r\n }\r\n return { ...class1, ...class2 };\r\n}\r\n\r\nexport function doPropMerge(existing: CellProps, extra: CellProps) {\r\n // if className is provided - remove it from props it messing with stencil\r\n if (extra.className) {\r\n extra.class = mergeClasses(extra.class, extra.className);\r\n delete extra.className;\r\n }\r\n let props: CellProps = { ...extra, ...existing };\r\n // extend existing props\r\n if (extra.class) {\r\n props.class = mergeClasses(props.class, extra.class);\r\n }\r\n if (extra.style) {\r\n props.style = { ...extra.style, ...props.style };\r\n }\r\n return props;\r\n}\r\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { h, B as Build } from './index-BAoInZ4V.js';
|
|
5
5
|
import { B as DATA_ROW, K as DRAG_ICON_CLASS, L as DRAGGABLE_CLASS } from './data.store-DFBLhhW0.js';
|
|
6
|
-
import { k as GROUP_EXPAND_BTN, l as GROUP_EXPAND_EVENT, G as GROUP_DEPTH, f as GROUP_EXPANDED, P as PSEUDO_GROUP_ITEM, T as isRowDragService, z as getCellDataParsed } from './column.service-
|
|
6
|
+
import { k as GROUP_EXPAND_BTN, l as GROUP_EXPAND_EVENT, G as GROUP_DEPTH, f as GROUP_EXPANDED, P as PSEUDO_GROUP_ITEM, T as isRowDragService, z as getCellDataParsed } from './column.service-q_AHBchb.js';
|
|
7
7
|
|
|
8
8
|
const SortingSign = ({ column }) => {
|
|
9
9
|
var _a;
|
|
@@ -93,6 +93,6 @@ const CellRenderer = ({ renderProps, cellProps, }) => {
|
|
|
93
93
|
};
|
|
94
94
|
|
|
95
95
|
export { CellRenderer as C, GroupingRowRenderer as G, PADDING_DEPTH as P, RowRenderer as R, SortingSign as S, expandSvgIconVNode as a, expandEvent as e };
|
|
96
|
-
//# sourceMappingURL=cell-renderer-
|
|
96
|
+
//# sourceMappingURL=cell-renderer--rDTZ-2a.js.map
|
|
97
97
|
|
|
98
|
-
//# sourceMappingURL=cell-renderer-
|
|
98
|
+
//# sourceMappingURL=cell-renderer--rDTZ-2a.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell-renderer-
|
|
1
|
+
{"version":3,"file":"cell-renderer--rDTZ-2a.js","sources":["src/plugins/sorting/sorting.sign.tsx","src/components/data/row-renderer.tsx","src/plugins/groupingRow/grouping.row.renderer.tsx","src/components/data/cell-renderer.tsx"],"sourcesContent":["import { h } from '@stencil/core';\r\nimport { ColumnRegular } from '@type';\r\n\r\ntype Props = {\r\n column: ColumnRegular;\r\n};\r\nexport const SortingSign = ({ column }: Props) => {\r\n return <i class={column?.order ?? 'sort-off'} />;\r\n};\r\n","import { h, type VNode } from '@stencil/core';\r\nimport { JSXBase } from '@stencil/core/internal';\r\nimport { DATA_ROW } from '../../utils/consts';\r\n\r\nexport interface RowProps extends JSXBase.HTMLAttributes {\r\n size: number;\r\n start: number;\r\n index: number;\r\n rowClass?: string;\r\n depth?: number;\r\n}\r\n\r\nexport const PADDING_DEPTH = 10;\r\n\r\nconst RowRenderer = ({ rowClass, index, size, start, depth }: RowProps, cells: VNode[]) => {\r\n const props = {\r\n ...{ [DATA_ROW]: index },\r\n };\r\n return (\r\n <div\r\n {...props}\r\n class={`rgRow ${rowClass || ''}`}\r\n style={{\r\n height: `${size}px`,\r\n transform: `translateY(${start}px)`,\r\n paddingLeft: depth ? `${PADDING_DEPTH * depth}px` : undefined,\r\n }}\r\n >\r\n {cells}\r\n </div>\r\n );\r\n};\r\n\r\nexport default RowRenderer;\r\n","import { h } from '@stencil/core';\r\nimport RowRenderer from '../../components/data/row-renderer';\r\nimport {\r\n GROUP_DEPTH,\r\n GROUP_EXPANDED,\r\n GROUP_EXPAND_BTN,\r\n PSEUDO_GROUP_ITEM,\r\n GROUP_EXPAND_EVENT,\r\n} from './grouping.const';\r\nimport type { RowGroupingProps } from './grouping.row.types';\r\nimport type { DataType } from '@type';\r\n\r\nexport function expandEvent(\r\n e: MouseEvent,\r\n model: DataType,\r\n virtualIndex: number,\r\n) {\r\n const event = new CustomEvent(GROUP_EXPAND_EVENT, {\r\n detail: {\r\n model,\r\n virtualIndex,\r\n },\r\n cancelable: true,\r\n bubbles: true,\r\n }) as CustomEvent<HTMLRevoGridElementEventMap['groupexpandclick']>;\r\n e.target?.dispatchEvent(event);\r\n}\r\n\r\nexport const GroupingRowRenderer = (props: RowGroupingProps) => {\r\n const { model, itemIndex, hasExpand, groupingCustomRenderer } = props;\r\n const name = model[PSEUDO_GROUP_ITEM];\r\n const expanded = model[GROUP_EXPANDED];\r\n const depth = parseInt(model[GROUP_DEPTH], 10) || 0;\r\n\r\n if (groupingCustomRenderer) {\r\n return (\r\n <RowRenderer {...props} rowClass=\"groupingRow\" depth={depth}>\r\n <div onClick={e => expandEvent(e, model, itemIndex)}>\r\n {groupingCustomRenderer(h, {\r\n ...props,\r\n colType: props.providers.colType,\r\n name,\r\n expanded,\r\n depth,\r\n })}\r\n </div>\r\n </RowRenderer>\r\n );\r\n }\r\n\r\n return (\r\n <RowRenderer {...props} rowClass=\"groupingRow\" depth={depth}>\r\n {hasExpand && [\r\n <button\r\n class={{ [GROUP_EXPAND_BTN]: true }}\r\n onClick={e => expandEvent(e, model, itemIndex)}\r\n >\r\n {expandSvgIconVNode(expanded)}\r\n </button>,\r\n name,\r\n ]}\r\n </RowRenderer>\r\n );\r\n};\r\n\r\nexport const expandSvgIconVNode = (expanded = false) => {\r\n return (\r\n <svg\r\n aria-hidden=\"true\"\r\n style={{ transform: `rotate(${!expanded ? -90 : 0}deg)` }}\r\n focusable=\"false\"\r\n viewBox=\"0 0 448 512\"\r\n >\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"\r\n ></path>\r\n </svg>\r\n );\r\n};\r\n\r\nexport default GroupingRowRenderer;\r\n","import { h, type VNode, Build, EventEmitter } from '@stencil/core';\r\nimport {\r\n DragStartEvent,\r\n CellTemplateProp,\r\n} from '@type';\r\n\r\nimport {\r\n DRAGGABLE_CLASS,\r\n DRAG_ICON_CLASS,\r\n getCellDataParsed,\r\n} from '../../utils';\r\n\r\nimport { isRowDragService } from './column.service';\r\n\r\ninterface RenderProps {\r\n schemaModel: CellTemplateProp;\r\n additionalData?: any;\r\n dragStartCell?: EventEmitter<DragStartEvent>;\r\n}\r\n\r\n\r\nfunction renderCell(v: RenderProps) {\r\n const els: (VNode | string)[] = [];\r\n\r\n // #region Custom cell\r\n const template = v.schemaModel.column?.cellTemplate;\r\n if (template) {\r\n els.push(template(h, v.schemaModel, v.additionalData));\r\n }\r\n // #endregion\r\n\r\n // #region Regular cell\r\n else {\r\n if (!v.schemaModel.column) {\r\n // something is wrong with data\r\n if (Build?.isDev) {\r\n console.error('Investigate column problem.', v.schemaModel);\r\n }\r\n return '';\r\n }\r\n\r\n // Row drag\r\n if (\r\n v.schemaModel.column.rowDrag &&\r\n isRowDragService(v.schemaModel.column.rowDrag, v.schemaModel)\r\n ) {\r\n els.push(\r\n <span\r\n class={DRAGGABLE_CLASS}\r\n onMouseDown={originalEvent =>\r\n v.dragStartCell?.emit({\r\n originalEvent,\r\n model: v.schemaModel,\r\n })\r\n }\r\n >\r\n <span class={DRAG_ICON_CLASS} />\r\n </span>,\r\n );\r\n }\r\n \r\n els.push(`${\r\n getCellDataParsed(v.schemaModel.model, v.schemaModel.column)\r\n }`);\r\n }\r\n return els;\r\n}\r\n\r\nexport const CellRenderer = ({\r\n renderProps,\r\n cellProps,\r\n}: {\r\n renderProps: RenderProps;\r\n cellProps: any;\r\n}): VNode => {\r\n const render = renderCell.bind(null, renderProps);\r\n return (\r\n <div {...cellProps} redraw={render}>\r\n {render()}\r\n </div>\r\n );\r\n};\r\n"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Built by LevelSkill.Pro
|
|
3
3
|
*/
|
|
4
|
-
import { I as reduce, N as baseEach, A as getColumnType, H as columnTypes, O as toInteger, s as isGrouping, r as getGroupingName, J as rowTypes, z as getCellDataParsed, y as getCellRaw, F as getColumnByProp, f as GROUP_EXPANDED, v as getParsedGroup, w as isSameGroup, G as GROUP_DEPTH, d as PSEUDO_GROUP_ITEM_VALUE, b as PSEUDO_GROUP_ITEM_ID, m as GROUPING_ROW_TYPE, o as getSource, e as PSEUDO_GROUP_COLUMN, q as gatherGrouping, l as GROUP_EXPAND_EVENT, t as isGroupingColumn, p as getExpanded, C as isColGrouping } from './column.service-
|
|
4
|
+
import { I as reduce, N as baseEach, A as getColumnType, H as columnTypes, O as toInteger, s as isGrouping, r as getGroupingName, J as rowTypes, z as getCellDataParsed, y as getCellRaw, F as getColumnByProp, f as GROUP_EXPANDED, v as getParsedGroup, w as isSameGroup, G as GROUP_DEPTH, d as PSEUDO_GROUP_ITEM_VALUE, b as PSEUDO_GROUP_ITEM_ID, m as GROUPING_ROW_TYPE, o as getSource, e as PSEUDO_GROUP_COLUMN, q as gatherGrouping, l as GROUP_EXPAND_EVENT, t as isGroupingColumn, p as getExpanded, C as isColGrouping } from './column.service-q_AHBchb.js';
|
|
5
5
|
import { Z as createStore, y as setStore, i as calculateDimensionData, _ as identity, $ as isArray, b as getSourceItem, u as getScrollbarSize, w as timeout, a0 as baseProperty, a1 as isArrayLike, a2 as getTag, a3 as baseKeys, g as getPhysical, e as setItems, j as getItemByPosition } from './data.store-DFBLhhW0.js';
|
|
6
6
|
import { f as calculateRowHeaderSize } from './row-header-utils-BmwGo9va.js';
|
|
7
7
|
import { h } from './index-BAoInZ4V.js';
|
|
8
8
|
import { b as FILTER_PROP, i as isFilterBtn } from './filter.button-CjABZQgg.js';
|
|
9
9
|
import { i as isObjectLike, b as baseGetTag, d as debounce } from './debounce-DTUQ1fY7.js';
|
|
10
|
-
import { O as ON_COLUMN_CLICK, d as dispatch } from './header-cell-renderer-
|
|
10
|
+
import { O as ON_COLUMN_CLICK, d as dispatch } from './header-cell-renderer-CQR7VTJZ.js';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Plugin which recalculates realSize on changes of sizes, originItemSize and count
|
|
@@ -2523,6 +2523,6 @@ function getLeftRelative(absoluteX, gridPos, offset) {
|
|
|
2523
2523
|
}
|
|
2524
2524
|
|
|
2525
2525
|
export { AutoSizeColumnPlugin as A, BasePlugin as B, ColumnMovePlugin as C, DimensionStore as D, ExportFilePlugin as E, FILTER_TRIMMED_TYPE as F, GroupingRowPlugin as G, StretchColumn as S, ExportCsv as a, FILTER_CONFIG_CHANGED_EVENT as b, FILTE_PANEL as c, FilterPlugin as d, filterTypes as e, filterCoreFunctionsIndexedByType as f, filterNames as g, doCollapse as h, isStretchPlugin as i, doExpand as j, getLeftRelative as k, SortingPlugin as l, defaultCellCompare as m, descCellCompare as n, getNextOrder as o, getComparer as p, sortIndexByItems as s };
|
|
2526
|
-
//# sourceMappingURL=column.drag.plugin-
|
|
2526
|
+
//# sourceMappingURL=column.drag.plugin-D4AyYEei.js.map
|
|
2527
2527
|
|
|
2528
|
-
//# sourceMappingURL=column.drag.plugin-
|
|
2528
|
+
//# sourceMappingURL=column.drag.plugin-D4AyYEei.js.map
|