@revolist/revogrid 4.8.1 → 4.8.2
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/base.plugin-75fc9e81.js.map +1 -1
- package/dist/cjs/{column.service-b3b5a4ee.js → column.service-43f8c476.js} +2 -2
- package/dist/cjs/{column.service-b3b5a4ee.js.map → column.service-43f8c476.js.map} +1 -1
- package/dist/cjs/{filter.button-147884a8.js → filter.button-35f508a0.js} +3 -3
- package/dist/cjs/filter.button-35f508a0.js.map +1 -0
- package/dist/cjs/{header-cell-renderer-96a37624.js → header-cell-renderer-a3b43bca.js} +2 -2
- package/dist/cjs/{header-cell-renderer-96a37624.js.map → header-cell-renderer-a3b43bca.js.map} +1 -1
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/{key.utils-be4d0b46.js → key.utils-4a384064.js} +17 -12
- package/dist/cjs/key.utils-4a384064.js.map +1 -0
- package/dist/cjs/revo-grid.cjs.entry.js +14 -9
- package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-attribution_6.cjs.entry.js +41 -12
- package/dist/cjs/revogr-attribution_6.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js +5 -3
- package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-data_4.cjs.entry.js +10 -9
- package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
- package/dist/cjs/revogr-filter-panel.cjs.entry.js +13 -8
- package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -1
- package/dist/cjs/{selection.helpers-032d7192.js → selection.helpers-26d856ba.js} +67 -20
- package/dist/cjs/selection.helpers-26d856ba.js.map +1 -0
- package/dist/collection/components/clipboard/revogr-clipboard.js +1 -0
- package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -1
- package/dist/collection/components/data/revogr-data.js +1 -1
- package/dist/collection/components/data/revogr-data.js.map +1 -1
- package/dist/collection/components/editors/text-editor.js +4 -3
- package/dist/collection/components/editors/text-editor.js.map +1 -1
- package/dist/collection/components/header/header-renderer.js +2 -2
- package/dist/collection/components/header/header-renderer.js.map +1 -1
- package/dist/collection/components/overlay/keyboard.service.js +15 -5
- package/dist/collection/components/overlay/keyboard.service.js.map +1 -1
- package/dist/collection/components/overlay/revogr-overlay-selection.js +44 -5
- package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -1
- package/dist/collection/components/revoGrid/revo-grid.js +3 -3
- package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
- package/dist/collection/plugins/base.plugin.js.map +1 -1
- package/dist/collection/plugins/column.auto-size.plugin.js.map +1 -1
- package/dist/collection/plugins/column.stretch.plugin.js.map +1 -1
- package/dist/collection/plugins/filter/filter.button.js +2 -2
- package/dist/collection/plugins/filter/filter.button.js.map +1 -1
- package/dist/collection/plugins/filter/filter.plugin.js +7 -2
- package/dist/collection/plugins/filter/filter.plugin.js.map +1 -1
- package/dist/collection/plugins/filter/filter.pop.js +13 -8
- package/dist/collection/plugins/filter/filter.pop.js.map +1 -1
- package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +1 -1
- package/dist/collection/plugins/moveColumn/column.drag.plugin.js.map +1 -1
- package/dist/collection/plugins/sorting/sorting.plugin.js.map +1 -1
- package/dist/collection/plugins/sorting/sorting.sign.js +2 -1
- package/dist/collection/plugins/sorting/sorting.sign.js.map +1 -1
- package/dist/collection/services/selection.store.connector.js +62 -19
- package/dist/collection/services/selection.store.connector.js.map +1 -1
- package/dist/collection/store/selection/selection.store.js +4 -0
- package/dist/collection/store/selection/selection.store.js.map +1 -1
- package/dist/collection/types/interfaces.js.map +1 -1
- package/dist/collection/types/plugin.js.map +1 -1
- package/dist/collection/types/plugin.types.js.map +1 -1
- package/dist/collection/types/selection.js.map +1 -1
- package/dist/collection/utils/key.codes.js +6 -2
- package/dist/collection/utils/key.codes.js.map +1 -1
- package/dist/collection/utils/key.utils.js +25 -13
- package/dist/collection/utils/key.utils.js.map +1 -1
- package/dist/esm/base.plugin-e6e2bac2.js.map +1 -1
- package/dist/esm/{column.service-ffe99cfc.js → column.service-6aab6fac.js} +2 -2
- package/dist/esm/{column.service-ffe99cfc.js.map → column.service-6aab6fac.js.map} +1 -1
- package/dist/esm/{filter.button-f132c10a.js → filter.button-f9883a78.js} +3 -3
- package/dist/esm/filter.button-f9883a78.js.map +1 -0
- package/dist/esm/{header-cell-renderer-cac333a3.js → header-cell-renderer-b8663a21.js} +2 -2
- package/dist/esm/{header-cell-renderer-cac333a3.js.map → header-cell-renderer-b8663a21.js.map} +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/{key.utils-9120fde7.js → key.utils-c4a27968.js} +17 -12
- package/dist/esm/key.utils-c4a27968.js.map +1 -0
- package/dist/esm/revo-grid.entry.js +14 -9
- package/dist/esm/revo-grid.entry.js.map +1 -1
- package/dist/esm/revogr-attribution_6.entry.js +41 -12
- package/dist/esm/revogr-attribution_6.entry.js.map +1 -1
- package/dist/esm/revogr-clipboard_3.entry.js +5 -3
- package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
- package/dist/esm/revogr-data_4.entry.js +10 -9
- package/dist/esm/revogr-data_4.entry.js.map +1 -1
- package/dist/esm/revogr-filter-panel.entry.js +13 -8
- package/dist/esm/revogr-filter-panel.entry.js.map +1 -1
- package/dist/esm/{selection.helpers-0f3ed629.js → selection.helpers-dbf69cc1.js} +67 -20
- package/dist/esm/selection.helpers-dbf69cc1.js.map +1 -0
- package/dist/revo-grid/base.plugin-e6e2bac2.js.map +1 -1
- package/dist/revo-grid/{column.service-ffe99cfc.js → column.service-6aab6fac.js} +2 -2
- package/dist/revo-grid/{filter.button-f132c10a.js → filter.button-f9883a78.js} +2 -2
- package/dist/revo-grid/filter.button-f9883a78.js.map +1 -0
- package/dist/revo-grid/{header-cell-renderer-cac333a3.js → header-cell-renderer-b8663a21.js} +2 -2
- package/dist/revo-grid/index.esm.js +1 -1
- package/dist/revo-grid/{key.utils-9120fde7.js → key.utils-c4a27968.js} +2 -2
- package/dist/revo-grid/key.utils-c4a27968.js.map +1 -0
- package/dist/revo-grid/revo-grid.entry.js +1 -1
- package/dist/revo-grid/revo-grid.entry.js.map +1 -1
- package/dist/revo-grid/revogr-attribution_6.entry.js +1 -1
- package/dist/revo-grid/revogr-attribution_6.entry.js.map +1 -1
- package/dist/revo-grid/revogr-clipboard_3.entry.js +1 -1
- package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -1
- package/dist/revo-grid/revogr-data_4.entry.js +1 -1
- package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
- package/dist/revo-grid/revogr-filter-panel.entry.js +1 -1
- package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -1
- package/dist/revo-grid/selection.helpers-dbf69cc1.js +5 -0
- package/dist/revo-grid/selection.helpers-dbf69cc1.js.map +1 -0
- package/dist/types/components/overlay/keyboard.service.d.ts +1 -1
- package/dist/types/components/overlay/revogr-overlay-selection.d.ts +9 -1
- package/dist/types/components.d.ts +5 -0
- package/dist/types/plugins/base.plugin.d.ts +8 -8
- package/dist/types/plugins/column.auto-size.plugin.d.ts +26 -16
- package/dist/types/plugins/column.stretch.plugin.d.ts +1 -1
- package/dist/types/plugins/filter/filter.button.d.ts +1 -1
- package/dist/types/plugins/filter/filter.plugin.d.ts +24 -16
- package/dist/types/plugins/groupingRow/grouping.row.plugin.d.ts +2 -2
- package/dist/types/plugins/moveColumn/column.drag.plugin.d.ts +3 -3
- package/dist/types/plugins/sorting/sorting.plugin.d.ts +8 -8
- package/dist/types/services/selection.store.connector.d.ts +20 -0
- package/dist/types/store/selection/selection.store.d.ts +1 -0
- package/dist/types/types/interfaces.d.ts +2 -2
- package/dist/types/types/plugin.d.ts +23 -0
- package/dist/types/types/plugin.types.d.ts +20 -0
- package/dist/types/types/selection.d.ts +24 -0
- package/dist/types/utils/key.codes.d.ts +5 -2
- package/dist/types/utils/key.utils.d.ts +2 -1
- package/hydrate/index.js +153 -59
- package/hydrate/index.mjs +153 -59
- package/package.json +1 -1
- package/standalone/column.service.js +66 -19
- package/standalone/column.service.js.map +1 -1
- package/standalone/filter.button.js +2 -2
- package/standalone/filter.button.js.map +1 -1
- package/standalone/revo-grid.js +10 -5
- package/standalone/revo-grid.js.map +1 -1
- package/standalone/revogr-clipboard2.js +1 -0
- package/standalone/revogr-clipboard2.js.map +1 -1
- package/standalone/revogr-data2.js +1 -1
- package/standalone/revogr-data2.js.map +1 -1
- package/standalone/revogr-edit2.js +19 -13
- package/standalone/revogr-edit2.js.map +1 -1
- package/standalone/revogr-filter-panel.js +12 -7
- package/standalone/revogr-filter-panel.js.map +1 -1
- package/standalone/revogr-header2.js +5 -4
- package/standalone/revogr-header2.js.map +1 -1
- package/standalone/revogr-overlay-selection2.js +39 -10
- package/standalone/revogr-overlay-selection2.js.map +1 -1
- package/dist/cjs/filter.button-147884a8.js.map +0 -1
- package/dist/cjs/key.utils-be4d0b46.js.map +0 -1
- package/dist/cjs/selection.helpers-032d7192.js.map +0 -1
- package/dist/esm/filter.button-f132c10a.js.map +0 -1
- package/dist/esm/key.utils-9120fde7.js.map +0 -1
- package/dist/esm/selection.helpers-0f3ed629.js.map +0 -1
- package/dist/revo-grid/filter.button-f132c10a.js.map +0 -1
- package/dist/revo-grid/key.utils-9120fde7.js.map +0 -1
- package/dist/revo-grid/selection.helpers-0f3ed629.js +0 -5
- package/dist/revo-grid/selection.helpers-0f3ed629.js.map +0 -1
- /package/dist/revo-grid/{column.service-ffe99cfc.js.map → column.service-6aab6fac.js.map} +0 -0
- /package/dist/revo-grid/{header-cell-renderer-cac333a3.js.map → header-cell-renderer-b8663a21.js.map} +0 -0
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { C as _isIterateeCall, B as toInteger_1, a as getVisibleSourceItem, b as getSourceItem } from './dimension.helpers-c0c2888f.js';
|
|
5
5
|
import './toNumber-8de324a7.js';
|
|
6
6
|
import './index-e661aeb5.js';
|
|
7
|
-
import { g as getRange } from './selection.helpers-
|
|
7
|
+
import { g as getRange } from './selection.helpers-dbf69cc1.js';
|
|
8
8
|
import { G as GRID_INTERNALS, C as CELL_CLASS, D as DISABLED_CLASS } from './index-5a722722.js';
|
|
9
9
|
|
|
10
10
|
const GROUP_DEPTH = `${GRID_INTERNALS}-depth`;
|
|
@@ -539,4 +539,4 @@ function doPropMerge(existing, extra) {
|
|
|
539
539
|
|
|
540
540
|
export { CONTENT_SLOT as C, DATA_SLOT as D, FOOTER_SLOT as F, GROUP_EXPANDED as G, HEADER_SLOT as H, PSEUDO_GROUP_ITEM_VALUE as P, getParsedGroup as a, isSameGroup as b, GROUP_DEPTH as c, PSEUDO_GROUP_ITEM_ID as d, GROUPING_ROW_TYPE as e, PSEUDO_GROUP_COLUMN as f, getGroupingName as g, GROUP_EXPAND_EVENT as h, isGrouping as i, gatherGrouping as j, isGroupingColumn as k, getLastCell as l, doPropMerge as m, ColumnService as n, GROUP_EXPAND_BTN as o, PSEUDO_GROUP_ITEM as p, isRowDragService as q, getCellData as r };
|
|
541
541
|
|
|
542
|
-
//# sourceMappingURL=column.service-
|
|
542
|
+
//# sourceMappingURL=column.service-6aab6fac.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"column.service-ffe99cfc.js","mappings":"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","names":["baseSlice","require$$0","require$$1","require$$2","slice"],"sources":["src/plugins/groupingRow/grouping.const.ts","src/plugins/groupingRow/grouping.service.ts","src/components/revoGrid/viewport.helpers.ts","node_modules/lodash/_baseSlice.js","node_modules/lodash/slice.js","src/components/data/column.service.ts"],"sourcesContent":["import { GRID_INTERNALS } from '../../utils/consts';\n\nexport const GROUP_DEPTH = `${GRID_INTERNALS}-depth`;\nexport const PSEUDO_GROUP_ITEM = `${GRID_INTERNALS}-name`;\nexport const PSEUDO_GROUP_ITEM_ID = `${GRID_INTERNALS}-id`;\nexport const PSEUDO_GROUP_ITEM_VALUE = `${GRID_INTERNALS}-value`;\nexport const PSEUDO_GROUP_COLUMN = `${GRID_INTERNALS}-column`;\nexport const GROUP_EXPANDED = `${GRID_INTERNALS}-expanded`;\nexport const GROUP_ORIGINAL_INDEX = `${GRID_INTERNALS}-original-index`;\nexport const GROUP_EXPAND_BTN = `group-expand`;\nexport const GROUP_EXPAND_EVENT = `groupexpandclick`;\nexport const GROUPING_ROW_TYPE = 'rgRow';\n","import { DataType, ColumnProp, ColumnRegular } from '@type';\nimport {\n GROUP_DEPTH,\n GROUP_EXPANDED,\n PSEUDO_GROUP_COLUMN,\n PSEUDO_GROUP_ITEM,\n PSEUDO_GROUP_ITEM_ID,\n PSEUDO_GROUP_ITEM_VALUE,\n GROUP_ORIGINAL_INDEX,\n} from './grouping.const';\nimport { GroupLabelTemplateFunc } from './grouping.row.types';\n\nexport type ExpandedOptions = {\n prevExpanded?: Record<string, boolean>;\n expandedAll?: boolean; // skip trim\n\n getGroupValue?(item: DataType, prop: string | number): any;\n groupLabelTemplate?: GroupLabelTemplateFunc;\n};\n\ntype GroupedData = Map<string, GroupedData | DataType[]>;\n\nfunction getGroupValueDefault(item: DataType, prop: string | number) {\n return item[prop] || null;\n}\n\n\n/**\n * Gather data for grouping\n * @param array - flat data array\n * @param groupIds - ids of groups\n * @param expanded - potentially expanded items if present\n */\nexport function gatherGrouping(\n array: DataType[],\n groupIds: ColumnProp[],\n { prevExpanded, expandedAll, getGroupValue = getGroupValueDefault }: ExpandedOptions,\n) {\n const groupedItems: GroupedData = new Map();\n array.forEach((item, originalIndex) => {\n const groupLevelValues = groupIds.map(groupId => getGroupValue(item, groupId));\n const lastLevelValue = groupLevelValues.pop();\n let currentGroupLevel = groupedItems;\n groupLevelValues.forEach(value => {\n if (!currentGroupLevel.has(value)) {\n currentGroupLevel.set(value, new Map());\n }\n currentGroupLevel = currentGroupLevel.get(value) as GroupedData;\n });\n if (!currentGroupLevel.has(lastLevelValue)) {\n currentGroupLevel.set(lastLevelValue, []);\n }\n const lastLevelItems = currentGroupLevel.get(\n lastLevelValue,\n ) as DataType[];\n lastLevelItems.push({\n ...item,\n [GROUP_ORIGINAL_INDEX]: originalIndex,\n });\n });\n\n let itemIndex = -1;\n const groupingDepth = groupIds.length;\n // collapse all groups in the beginning\n const trimmed: Record<number, boolean> = {};\n // index mapping\n const oldNewIndexMap: Record<number, number> = {};\n // check if group header exists\n const pseudoGroupTest: Record<string, number[]> = {};\n const sourceWithGroups: DataType[] = [];\n function flattenGroupMaps(\n groupedValues: GroupedData,\n parentIds: string[],\n isExpanded: boolean,\n ) {\n const depth = parentIds.length;\n groupedValues.forEach((innerGroupedValues, groupId) => {\n const levelIds = [...parentIds, groupId];\n const mergedIds = levelIds.join(',');\n const isGroupExpanded =\n isExpanded && (!!expandedAll || !!prevExpanded?.[mergedIds]);\n sourceWithGroups.push({\n [PSEUDO_GROUP_ITEM]: groupId,\n [GROUP_DEPTH]: depth,\n [PSEUDO_GROUP_ITEM_ID]: JSON.stringify(levelIds),\n [PSEUDO_GROUP_ITEM_VALUE]: mergedIds,\n [GROUP_EXPANDED]: isGroupExpanded,\n });\n itemIndex += 1;\n if (!isGroupExpanded && depth) {\n trimmed[itemIndex] = true;\n }\n if (Array.isArray(innerGroupedValues)) {\n innerGroupedValues.forEach(value => {\n itemIndex += 1;\n if (!isGroupExpanded) {\n trimmed[itemIndex] = true;\n }\n oldNewIndexMap[value[GROUP_ORIGINAL_INDEX]] = itemIndex;\n const pseudoGroupTestIds = levelIds.map((_value, index) =>\n levelIds.slice(0, index + 1).join(','),\n );\n pseudoGroupTestIds.forEach(pseudoGroupTestId => {\n if (!pseudoGroupTest[pseudoGroupTestId]) {\n pseudoGroupTest[pseudoGroupTestId] = [];\n }\n pseudoGroupTest[pseudoGroupTestId].push(itemIndex);\n });\n });\n sourceWithGroups.push(...innerGroupedValues);\n } else {\n flattenGroupMaps(innerGroupedValues, levelIds, isGroupExpanded);\n }\n });\n }\n flattenGroupMaps(groupedItems, [], true);\n\n return {\n sourceWithGroups, // updates source mirror\n depth: groupingDepth, // largest depth for grouping\n trimmed, // used for expand/collapse grouping values\n oldNewIndexMap, // used for mapping old values to new\n childrenByGroup: pseudoGroupTest, // used to get child items in group\n };\n}\n\nexport function getGroupingName(rgRow?: DataType) {\n return rgRow && rgRow[PSEUDO_GROUP_ITEM];\n}\n\nexport function isGrouping(rgRow?: DataType) {\n return rgRow && typeof rgRow[PSEUDO_GROUP_ITEM] !== 'undefined';\n}\n\nexport function isGroupingColumn(column?: ColumnRegular) {\n return column && typeof column[PSEUDO_GROUP_COLUMN] !== 'undefined';\n}\n\nexport function measureEqualDepth<T>(groupA: T[], groupB: T[]) {\n const ln = groupA.length;\n let i = 0;\n for (; i < ln; i++) {\n if (groupA[i] !== groupB[i]) {\n return i;\n }\n }\n return i;\n}\n\nexport function getParsedGroup(id: string): any[] {\n const parseGroup = JSON.parse(id);\n // extra precaution and type safe guard\n if (!Array.isArray(parseGroup)) {\n return null;\n }\n return parseGroup;\n}\n\n// check if items is child of current clicked group\nexport function isSameGroup(\n currentGroup: any[],\n currentModel: DataType,\n nextModel: DataType,\n) {\n const nextGroup = getParsedGroup(nextModel[PSEUDO_GROUP_ITEM_ID]);\n if (!nextGroup) {\n return false;\n }\n\n const depth = measureEqualDepth(currentGroup, nextGroup);\n return currentModel[GROUP_DEPTH] < depth;\n}\n","/**\n * Collects data for pinned columns in the required @ViewportProps format.\n */\n\nimport { MultiDimensionType } from '@type';\nimport { Cell } from '@type';\nimport { ViewportColumn } from '@type';\n\n/**\n * Represents the slot names for the viewport slots.\n */\nexport const HEADER_SLOT = 'header'; // Slot name for the header slot\nexport const FOOTER_SLOT = 'footer'; // Slot name for the footer slot\nexport const CONTENT_SLOT = 'content'; // Slot name for the content slot\nexport const DATA_SLOT = 'data'; // Slot name for the data slot\n\n/**\n * Returns the last visible cell in the viewport for a given row type.\n * Coordinates are not zero-based and are relative to the viewport.\n * If needed to be zero-based they can be adjusted by subtracting 1.\n */\nexport function getLastCell(\n data: ViewportColumn,\n rowType: MultiDimensionType,\n): Cell {\n // Get the last visible column count from the viewport column data.\n const lastVisibleColumnCount = data.viewports[data.colType].store.get('realCount');\n\n // Get the last visible row count for the given row type from the viewport column data.\n const lastVisibleRowCount = data.viewports[rowType].store.get('realCount');\n\n // Return the last visible cell with the last visible column count and row count.\n return {\n x: lastVisibleColumnCount,\n y: lastVisibleRowCount,\n };\n}\n\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var baseSlice = require('./_baseSlice'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger');\n\n/**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n}\n\nmodule.exports = slice;\n","import { DSourceState, getSourceItem, getVisibleSourceItem } from '@store';\nimport { CELL_CLASS, DISABLED_CLASS } from '../../utils/consts';\nimport { getRange } from '@store';\n\nimport { isGroupingColumn } from '../../plugins/groupingRow/grouping.service';\nimport slice from 'lodash/slice';\nimport {\n DimensionCols,\n DimensionRows,\n RowDrag,\n ColumnRegular,\n DataType,\n ReadOnlyFormat,\n CellProps,\n ColumnDataSchemaModel,\n ColumnProp,\n DataLookup,\n DataFormat,\n ChangedRange,\n OldNewRangeMapping,\n Cell,\n RangeArea,\n BeforeSaveDataDetails,\n EditorCtr,\n Editors,\n} from '@type';\nimport { Observable } from '../../utils/store.utils';\n\nexport type ColumnStores = {\n [T in DimensionCols]: Observable<DSourceState<ColumnRegular, DimensionCols>>;\n};\nexport type RowStores = {\n [T in DimensionRows]: Observable<DSourceState<DataType, DimensionRows>>;\n};\n\nexport default class ColumnService {\n private unsubscribe: { (): void }[] = [];\n get columns(): ColumnRegular[] {\n return getVisibleSourceItem(this.source);\n }\n\n hasGrouping = false;\n type: DimensionCols;\n\n constructor(\n private dataStore: Observable<DSourceState<DataType, DimensionRows>>,\n private source: Observable<DSourceState<ColumnRegular, DimensionCols>>,\n ) {\n this.unsubscribe.push(\n source.onChange('source', s => this.checkGrouping(s)),\n );\n this.checkGrouping(source.get('source'));\n this.type = source.get('type');\n }\n\n private checkGrouping(cols: ColumnRegular[]) {\n for (let rgCol of cols) {\n if (isGroupingColumn(rgCol)) {\n this.hasGrouping = true;\n return;\n }\n this.hasGrouping = false;\n }\n }\n\n isReadOnly(r: number, c: number): boolean {\n const readOnly: ReadOnlyFormat = this.columns[c]?.readonly;\n if (typeof readOnly === 'function') {\n const data = this.rowDataModel(r, c);\n return readOnly(data);\n }\n return readOnly;\n }\n\n mergeProperties(\n r: number,\n c: number,\n defaultProps: CellProps,\n model: ColumnDataSchemaModel,\n extraPropsFunc: ColumnRegular['cellProperties'],\n ): CellProps {\n const cellClass: { [key: string]: boolean } = {\n [CELL_CLASS]: true,\n [DISABLED_CLASS]: this.isReadOnly(r, c),\n };\n let props: CellProps = {\n ...defaultProps,\n class: cellClass,\n };\n const extra = extraPropsFunc?.(model);\n if (!extra) {\n return props;\n }\n return doPropMerge(props, extra);\n }\n\n getRowClass(r: number, prop: string): string {\n const model = getSourceItem(this.dataStore, r) || {};\n return model[prop] || '';\n }\n\n getCellData(r: number, c: number): string {\n const data = this.rowDataModel(r, c);\n return getCellData(data.model[data.prop as number]);\n }\n\n getSaveData(\n rowIndex: number,\n colIndex: number,\n val?: string,\n ): BeforeSaveDataDetails {\n if (typeof val === 'undefined') {\n val = this.getCellData(rowIndex, colIndex);\n }\n const data = this.rowDataModel(rowIndex, colIndex);\n return {\n prop: data.prop,\n rowIndex,\n colIndex,\n val,\n model: data.model,\n colType: this.type,\n type: this.dataStore.get('type'),\n };\n }\n\n getCellEditor(\n _r: number,\n c: number,\n editors: Editors,\n ): EditorCtr | undefined {\n const editor = this.columns[c]?.editor;\n if (!editor) {\n return undefined;\n }\n // reference\n if (typeof editor === 'string') {\n return editors[editor];\n }\n return editor;\n }\n\n /**\n * Get cell data model for given rowIndex and colIndex\n * Used to pass data to editor/renderer\n */\n rowDataModel(rowIndex: number, colIndex: number): ColumnDataSchemaModel {\n const column = this.columns[colIndex];\n const prop: ColumnProp | undefined = column?.prop;\n const model = getSourceItem(this.dataStore, rowIndex) || {};\n const value = model[prop];\n const type = this.dataStore.get('type');\n return {\n prop,\n model,\n data: this.dataStore.get('source'),\n column,\n rowIndex,\n colIndex,\n colType: this.type,\n type,\n value,\n };\n }\n\n getRangeData(\n d: ChangedRange,\n columns: ColumnRegular[],\n ): {\n changed: DataLookup;\n mapping: OldNewRangeMapping;\n } {\n const changed: DataLookup = {};\n\n // get original length sizes\n const copyColLength = d.oldRange.x1 - d.oldRange.x + 1;\n const copyRowLength = d.oldRange.y1 - d.oldRange.y + 1;\n const mapping: OldNewRangeMapping = {};\n\n // rows\n for (\n let rowIndex = d.newRange.y, i = 0;\n rowIndex < d.newRange.y1 + 1;\n rowIndex++, i++\n ) {\n // copy original data link\n const oldRowIndex = d.oldRange.y + (i % copyRowLength);\n const copyRow = getSourceItem(this.dataStore, oldRowIndex) || {};\n\n // columns\n for (\n let colIndex = d.newRange.x, j = 0;\n colIndex < d.newRange.x1 + 1;\n colIndex++, j++\n ) {\n // check if old range area\n if (\n rowIndex >= d.oldRange.y &&\n rowIndex <= d.oldRange.y1 &&\n colIndex >= d.oldRange.x &&\n colIndex <= d.oldRange.x1\n ) {\n continue;\n }\n\n // requested column beyond range\n if (!this.columns[colIndex]) {\n continue;\n }\n const prop = this.columns[colIndex]?.prop;\n const copyColIndex = d.oldRange.x + (j % copyColLength);\n const copyColumnProp = columns[copyColIndex].prop;\n\n /** if can write */\n if (!this.isReadOnly(rowIndex, colIndex)) {\n /** to show before save */\n if (!changed[rowIndex]) {\n changed[rowIndex] = {};\n }\n changed[rowIndex][prop] = copyRow[copyColumnProp];\n /** Generate mapping object */\n if (!mapping[rowIndex]) {\n mapping[rowIndex] = {};\n }\n mapping[rowIndex][prop] = {\n colIndex: copyColIndex,\n colProp: copyColumnProp,\n rowIndex: oldRowIndex,\n };\n }\n }\n }\n return {\n changed,\n mapping,\n };\n }\n\n getTransformedDataToApply(\n start: Cell,\n data: DataFormat[][],\n ): {\n changed: DataLookup;\n range: RangeArea;\n } {\n const changed: DataLookup = {};\n const copyRowLength = data.length;\n const colLength = this.columns.length;\n const rowLength = this.dataStore.get('items').length;\n // rows\n let rowIndex = start.y;\n let maxCol = 0;\n for (\n let i = 0;\n rowIndex < rowLength && i < copyRowLength;\n rowIndex++, i++\n ) {\n // copy original data link\n const copyRow = data[i % copyRowLength];\n const copyColLength = copyRow?.length || 0;\n // columns\n let colIndex = start.x;\n for (\n let j = 0;\n colIndex < colLength && j < copyColLength;\n colIndex++, j++\n ) {\n const p = this.columns[colIndex].prop;\n const currentCol = j % colLength;\n\n /** if can write */\n if (!this.isReadOnly(rowIndex, colIndex)) {\n /** to show before save */\n if (!changed[rowIndex]) {\n changed[rowIndex] = {};\n }\n changed[rowIndex][p] = copyRow[currentCol];\n }\n }\n maxCol = Math.max(maxCol, colIndex - 1);\n }\n const range = getRange(start, {\n y: rowIndex - 1,\n x: maxCol,\n });\n return {\n changed,\n range,\n };\n }\n\n getRangeStaticData(d: RangeArea, value: DataFormat): DataLookup {\n const changed: DataLookup = {};\n\n // rows\n for (let rowIndex = d.y, i = 0; rowIndex < d.y1 + 1; rowIndex++, i++) {\n // columns\n for (let colIndex = d.x, j = 0; colIndex < d.x1 + 1; colIndex++, j++) {\n // requested column beyond range\n if (!this.columns[colIndex]) {\n continue;\n }\n const p = this.columns[colIndex].prop;\n\n /** if can write */\n if (!this.isReadOnly(rowIndex, colIndex)) {\n /** to show before save */\n if (!changed[rowIndex]) {\n changed[rowIndex] = {};\n }\n changed[rowIndex][p] = value;\n }\n }\n }\n return changed;\n }\n\n getRangeTransformedToProps(\n d: RangeArea,\n store: Observable<DSourceState<DataType, DimensionRows>>,\n ) {\n const area: {\n prop: ColumnProp;\n rowIndex: number;\n colIndex: number;\n model: DataType;\n colType: DimensionCols;\n type: DimensionRows;\n }[] = [];\n\n const type = this.dataStore.get('type');\n // rows\n for (let rowIndex = d.y, i = 0; rowIndex < d.y1 + 1; rowIndex++, i++) {\n // columns\n for (let colIndex = d.x, j = 0; colIndex < d.x1 + 1; colIndex++, j++) {\n const prop = this.columns[colIndex]?.prop;\n area.push({\n prop,\n rowIndex,\n colIndex,\n model: getSourceItem(store, rowIndex),\n type,\n colType: this.type,\n });\n }\n }\n return area;\n }\n\n copyRangeArray(\n range: RangeArea,\n store: Observable<DSourceState<DataType, DimensionRows>>,\n ) {\n const cols = [...this.columns];\n const props = slice(cols, range.x, range.x1 + 1).map(v => v.prop);\n const toCopy: DataFormat[][] = [];\n const mapping: { [rowIndex: number]: { [colProp: ColumnProp]: any } } = {};\n\n // rows indexes\n for (let i = range.y; i <= range.y1; i++) {\n const rgRow: DataFormat[] = [];\n mapping[i] = {};\n\n // columns indexes\n for (let prop of props) {\n const item = getSourceItem(store, i);\n\n // if no item - skip\n if (!item) {\n continue;\n }\n const val = item[prop];\n rgRow.push(val);\n mapping[i][prop] = val;\n }\n\n toCopy.push(rgRow);\n }\n return {\n data: toCopy,\n mapping,\n };\n }\n\n destroy() {\n this.unsubscribe.forEach(f => f());\n }\n}\n\nexport function getCellData(val?: any) {\n if (typeof val === 'undefined' || val === null) {\n return '';\n }\n return val;\n}\n\n/**\n * Checks if the given rowDrag is a service for dragging rows.\n */\nexport function isRowDragService(\n rowDrag: RowDrag,\n model: ColumnDataSchemaModel,\n): boolean {\n if (typeof rowDrag === 'function') {\n return rowDrag(model);\n }\n return !!rowDrag;\n}\nexport function doPropMerge(existing: CellProps, extra: CellProps) {\n let props: CellProps = { ...extra, ...existing };\n // extend existing props\n if (extra.class) {\n if (typeof extra.class === 'object' && typeof props.class === 'object') {\n props.class = { ...extra.class, ...props.class };\n } else if (\n typeof extra.class === 'string' &&\n typeof props.class === 'object'\n ) {\n props.class[extra.class] = true;\n } else if (typeof props.class === 'string') {\n props.class += ' ' + extra.class;\n }\n }\n if (extra.style) {\n props.style = { ...extra.style, ...props.style };\n }\n return props;\n}\n"],"version":3}
|
|
1
|
+
{"file":"column.service-6aab6fac.js","mappings":"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","names":["baseSlice","require$$0","require$$1","require$$2","slice"],"sources":["src/plugins/groupingRow/grouping.const.ts","src/plugins/groupingRow/grouping.service.ts","src/components/revoGrid/viewport.helpers.ts","node_modules/lodash/_baseSlice.js","node_modules/lodash/slice.js","src/components/data/column.service.ts"],"sourcesContent":["import { GRID_INTERNALS } from '../../utils/consts';\n\nexport const GROUP_DEPTH = `${GRID_INTERNALS}-depth`;\nexport const PSEUDO_GROUP_ITEM = `${GRID_INTERNALS}-name`;\nexport const PSEUDO_GROUP_ITEM_ID = `${GRID_INTERNALS}-id`;\nexport const PSEUDO_GROUP_ITEM_VALUE = `${GRID_INTERNALS}-value`;\nexport const PSEUDO_GROUP_COLUMN = `${GRID_INTERNALS}-column`;\nexport const GROUP_EXPANDED = `${GRID_INTERNALS}-expanded`;\nexport const GROUP_ORIGINAL_INDEX = `${GRID_INTERNALS}-original-index`;\nexport const GROUP_EXPAND_BTN = `group-expand`;\nexport const GROUP_EXPAND_EVENT = `groupexpandclick`;\nexport const GROUPING_ROW_TYPE = 'rgRow';\n","import { DataType, ColumnProp, ColumnRegular } from '@type';\nimport {\n GROUP_DEPTH,\n GROUP_EXPANDED,\n PSEUDO_GROUP_COLUMN,\n PSEUDO_GROUP_ITEM,\n PSEUDO_GROUP_ITEM_ID,\n PSEUDO_GROUP_ITEM_VALUE,\n GROUP_ORIGINAL_INDEX,\n} from './grouping.const';\nimport { GroupLabelTemplateFunc } from './grouping.row.types';\n\nexport type ExpandedOptions = {\n prevExpanded?: Record<string, boolean>;\n expandedAll?: boolean; // skip trim\n\n getGroupValue?(item: DataType, prop: string | number): any;\n groupLabelTemplate?: GroupLabelTemplateFunc;\n};\n\ntype GroupedData = Map<string, GroupedData | DataType[]>;\n\nfunction getGroupValueDefault(item: DataType, prop: string | number) {\n return item[prop] || null;\n}\n\n\n/**\n * Gather data for grouping\n * @param array - flat data array\n * @param groupIds - ids of groups\n * @param expanded - potentially expanded items if present\n */\nexport function gatherGrouping(\n array: DataType[],\n groupIds: ColumnProp[],\n { prevExpanded, expandedAll, getGroupValue = getGroupValueDefault }: ExpandedOptions,\n) {\n const groupedItems: GroupedData = new Map();\n array.forEach((item, originalIndex) => {\n const groupLevelValues = groupIds.map(groupId => getGroupValue(item, groupId));\n const lastLevelValue = groupLevelValues.pop();\n let currentGroupLevel = groupedItems;\n groupLevelValues.forEach(value => {\n if (!currentGroupLevel.has(value)) {\n currentGroupLevel.set(value, new Map());\n }\n currentGroupLevel = currentGroupLevel.get(value) as GroupedData;\n });\n if (!currentGroupLevel.has(lastLevelValue)) {\n currentGroupLevel.set(lastLevelValue, []);\n }\n const lastLevelItems = currentGroupLevel.get(\n lastLevelValue,\n ) as DataType[];\n lastLevelItems.push({\n ...item,\n [GROUP_ORIGINAL_INDEX]: originalIndex,\n });\n });\n\n let itemIndex = -1;\n const groupingDepth = groupIds.length;\n // collapse all groups in the beginning\n const trimmed: Record<number, boolean> = {};\n // index mapping\n const oldNewIndexMap: Record<number, number> = {};\n // check if group header exists\n const pseudoGroupTest: Record<string, number[]> = {};\n const sourceWithGroups: DataType[] = [];\n function flattenGroupMaps(\n groupedValues: GroupedData,\n parentIds: string[],\n isExpanded: boolean,\n ) {\n const depth = parentIds.length;\n groupedValues.forEach((innerGroupedValues, groupId) => {\n const levelIds = [...parentIds, groupId];\n const mergedIds = levelIds.join(',');\n const isGroupExpanded =\n isExpanded && (!!expandedAll || !!prevExpanded?.[mergedIds]);\n sourceWithGroups.push({\n [PSEUDO_GROUP_ITEM]: groupId,\n [GROUP_DEPTH]: depth,\n [PSEUDO_GROUP_ITEM_ID]: JSON.stringify(levelIds),\n [PSEUDO_GROUP_ITEM_VALUE]: mergedIds,\n [GROUP_EXPANDED]: isGroupExpanded,\n });\n itemIndex += 1;\n if (!isGroupExpanded && depth) {\n trimmed[itemIndex] = true;\n }\n if (Array.isArray(innerGroupedValues)) {\n innerGroupedValues.forEach(value => {\n itemIndex += 1;\n if (!isGroupExpanded) {\n trimmed[itemIndex] = true;\n }\n oldNewIndexMap[value[GROUP_ORIGINAL_INDEX]] = itemIndex;\n const pseudoGroupTestIds = levelIds.map((_value, index) =>\n levelIds.slice(0, index + 1).join(','),\n );\n pseudoGroupTestIds.forEach(pseudoGroupTestId => {\n if (!pseudoGroupTest[pseudoGroupTestId]) {\n pseudoGroupTest[pseudoGroupTestId] = [];\n }\n pseudoGroupTest[pseudoGroupTestId].push(itemIndex);\n });\n });\n sourceWithGroups.push(...innerGroupedValues);\n } else {\n flattenGroupMaps(innerGroupedValues, levelIds, isGroupExpanded);\n }\n });\n }\n flattenGroupMaps(groupedItems, [], true);\n\n return {\n sourceWithGroups, // updates source mirror\n depth: groupingDepth, // largest depth for grouping\n trimmed, // used for expand/collapse grouping values\n oldNewIndexMap, // used for mapping old values to new\n childrenByGroup: pseudoGroupTest, // used to get child items in group\n };\n}\n\nexport function getGroupingName(rgRow?: DataType) {\n return rgRow && rgRow[PSEUDO_GROUP_ITEM];\n}\n\nexport function isGrouping(rgRow?: DataType) {\n return rgRow && typeof rgRow[PSEUDO_GROUP_ITEM] !== 'undefined';\n}\n\nexport function isGroupingColumn(column?: ColumnRegular) {\n return column && typeof column[PSEUDO_GROUP_COLUMN] !== 'undefined';\n}\n\nexport function measureEqualDepth<T>(groupA: T[], groupB: T[]) {\n const ln = groupA.length;\n let i = 0;\n for (; i < ln; i++) {\n if (groupA[i] !== groupB[i]) {\n return i;\n }\n }\n return i;\n}\n\nexport function getParsedGroup(id: string): any[] {\n const parseGroup = JSON.parse(id);\n // extra precaution and type safe guard\n if (!Array.isArray(parseGroup)) {\n return null;\n }\n return parseGroup;\n}\n\n// check if items is child of current clicked group\nexport function isSameGroup(\n currentGroup: any[],\n currentModel: DataType,\n nextModel: DataType,\n) {\n const nextGroup = getParsedGroup(nextModel[PSEUDO_GROUP_ITEM_ID]);\n if (!nextGroup) {\n return false;\n }\n\n const depth = measureEqualDepth(currentGroup, nextGroup);\n return currentModel[GROUP_DEPTH] < depth;\n}\n","/**\n * Collects data for pinned columns in the required @ViewportProps format.\n */\n\nimport { MultiDimensionType } from '@type';\nimport { Cell } from '@type';\nimport { ViewportColumn } from '@type';\n\n/**\n * Represents the slot names for the viewport slots.\n */\nexport const HEADER_SLOT = 'header'; // Slot name for the header slot\nexport const FOOTER_SLOT = 'footer'; // Slot name for the footer slot\nexport const CONTENT_SLOT = 'content'; // Slot name for the content slot\nexport const DATA_SLOT = 'data'; // Slot name for the data slot\n\n/**\n * Returns the last visible cell in the viewport for a given row type.\n * Coordinates are not zero-based and are relative to the viewport.\n * If needed to be zero-based they can be adjusted by subtracting 1.\n */\nexport function getLastCell(\n data: ViewportColumn,\n rowType: MultiDimensionType,\n): Cell {\n // Get the last visible column count from the viewport column data.\n const lastVisibleColumnCount = data.viewports[data.colType].store.get('realCount');\n\n // Get the last visible row count for the given row type from the viewport column data.\n const lastVisibleRowCount = data.viewports[rowType].store.get('realCount');\n\n // Return the last visible cell with the last visible column count and row count.\n return {\n x: lastVisibleColumnCount,\n y: lastVisibleRowCount,\n };\n}\n\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var baseSlice = require('./_baseSlice'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger');\n\n/**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n}\n\nmodule.exports = slice;\n","import { DSourceState, getSourceItem, getVisibleSourceItem } from '@store';\nimport { CELL_CLASS, DISABLED_CLASS } from '../../utils/consts';\nimport { getRange } from '@store';\n\nimport { isGroupingColumn } from '../../plugins/groupingRow/grouping.service';\nimport slice from 'lodash/slice';\nimport {\n DimensionCols,\n DimensionRows,\n RowDrag,\n ColumnRegular,\n DataType,\n ReadOnlyFormat,\n CellProps,\n ColumnDataSchemaModel,\n ColumnProp,\n DataLookup,\n DataFormat,\n ChangedRange,\n OldNewRangeMapping,\n Cell,\n RangeArea,\n BeforeSaveDataDetails,\n EditorCtr,\n Editors,\n} from '@type';\nimport { Observable } from '../../utils/store.utils';\n\nexport type ColumnStores = {\n [T in DimensionCols]: Observable<DSourceState<ColumnRegular, DimensionCols>>;\n};\nexport type RowStores = {\n [T in DimensionRows]: Observable<DSourceState<DataType, DimensionRows>>;\n};\n\nexport default class ColumnService {\n private unsubscribe: { (): void }[] = [];\n get columns(): ColumnRegular[] {\n return getVisibleSourceItem(this.source);\n }\n\n hasGrouping = false;\n type: DimensionCols;\n\n constructor(\n private dataStore: Observable<DSourceState<DataType, DimensionRows>>,\n private source: Observable<DSourceState<ColumnRegular, DimensionCols>>,\n ) {\n this.unsubscribe.push(\n source.onChange('source', s => this.checkGrouping(s)),\n );\n this.checkGrouping(source.get('source'));\n this.type = source.get('type');\n }\n\n private checkGrouping(cols: ColumnRegular[]) {\n for (let rgCol of cols) {\n if (isGroupingColumn(rgCol)) {\n this.hasGrouping = true;\n return;\n }\n this.hasGrouping = false;\n }\n }\n\n isReadOnly(r: number, c: number): boolean {\n const readOnly: ReadOnlyFormat = this.columns[c]?.readonly;\n if (typeof readOnly === 'function') {\n const data = this.rowDataModel(r, c);\n return readOnly(data);\n }\n return readOnly;\n }\n\n mergeProperties(\n r: number,\n c: number,\n defaultProps: CellProps,\n model: ColumnDataSchemaModel,\n extraPropsFunc: ColumnRegular['cellProperties'],\n ): CellProps {\n const cellClass: { [key: string]: boolean } = {\n [CELL_CLASS]: true,\n [DISABLED_CLASS]: this.isReadOnly(r, c),\n };\n let props: CellProps = {\n ...defaultProps,\n class: cellClass,\n };\n const extra = extraPropsFunc?.(model);\n if (!extra) {\n return props;\n }\n return doPropMerge(props, extra);\n }\n\n getRowClass(r: number, prop: string): string {\n const model = getSourceItem(this.dataStore, r) || {};\n return model[prop] || '';\n }\n\n getCellData(r: number, c: number): string {\n const data = this.rowDataModel(r, c);\n return getCellData(data.model[data.prop as number]);\n }\n\n getSaveData(\n rowIndex: number,\n colIndex: number,\n val?: string,\n ): BeforeSaveDataDetails {\n if (typeof val === 'undefined') {\n val = this.getCellData(rowIndex, colIndex);\n }\n const data = this.rowDataModel(rowIndex, colIndex);\n return {\n prop: data.prop,\n rowIndex,\n colIndex,\n val,\n model: data.model,\n colType: this.type,\n type: this.dataStore.get('type'),\n };\n }\n\n getCellEditor(\n _r: number,\n c: number,\n editors: Editors,\n ): EditorCtr | undefined {\n const editor = this.columns[c]?.editor;\n if (!editor) {\n return undefined;\n }\n // reference\n if (typeof editor === 'string') {\n return editors[editor];\n }\n return editor;\n }\n\n /**\n * Get cell data model for given rowIndex and colIndex\n * Used to pass data to editor/renderer\n */\n rowDataModel(rowIndex: number, colIndex: number): ColumnDataSchemaModel {\n const column = this.columns[colIndex];\n const prop: ColumnProp | undefined = column?.prop;\n const model = getSourceItem(this.dataStore, rowIndex) || {};\n const value = model[prop];\n const type = this.dataStore.get('type');\n return {\n prop,\n model,\n data: this.dataStore.get('source'),\n column,\n rowIndex,\n colIndex,\n colType: this.type,\n type,\n value,\n };\n }\n\n getRangeData(\n d: ChangedRange,\n columns: ColumnRegular[],\n ): {\n changed: DataLookup;\n mapping: OldNewRangeMapping;\n } {\n const changed: DataLookup = {};\n\n // get original length sizes\n const copyColLength = d.oldRange.x1 - d.oldRange.x + 1;\n const copyRowLength = d.oldRange.y1 - d.oldRange.y + 1;\n const mapping: OldNewRangeMapping = {};\n\n // rows\n for (\n let rowIndex = d.newRange.y, i = 0;\n rowIndex < d.newRange.y1 + 1;\n rowIndex++, i++\n ) {\n // copy original data link\n const oldRowIndex = d.oldRange.y + (i % copyRowLength);\n const copyRow = getSourceItem(this.dataStore, oldRowIndex) || {};\n\n // columns\n for (\n let colIndex = d.newRange.x, j = 0;\n colIndex < d.newRange.x1 + 1;\n colIndex++, j++\n ) {\n // check if old range area\n if (\n rowIndex >= d.oldRange.y &&\n rowIndex <= d.oldRange.y1 &&\n colIndex >= d.oldRange.x &&\n colIndex <= d.oldRange.x1\n ) {\n continue;\n }\n\n // requested column beyond range\n if (!this.columns[colIndex]) {\n continue;\n }\n const prop = this.columns[colIndex]?.prop;\n const copyColIndex = d.oldRange.x + (j % copyColLength);\n const copyColumnProp = columns[copyColIndex].prop;\n\n /** if can write */\n if (!this.isReadOnly(rowIndex, colIndex)) {\n /** to show before save */\n if (!changed[rowIndex]) {\n changed[rowIndex] = {};\n }\n changed[rowIndex][prop] = copyRow[copyColumnProp];\n /** Generate mapping object */\n if (!mapping[rowIndex]) {\n mapping[rowIndex] = {};\n }\n mapping[rowIndex][prop] = {\n colIndex: copyColIndex,\n colProp: copyColumnProp,\n rowIndex: oldRowIndex,\n };\n }\n }\n }\n return {\n changed,\n mapping,\n };\n }\n\n getTransformedDataToApply(\n start: Cell,\n data: DataFormat[][],\n ): {\n changed: DataLookup;\n range: RangeArea;\n } {\n const changed: DataLookup = {};\n const copyRowLength = data.length;\n const colLength = this.columns.length;\n const rowLength = this.dataStore.get('items').length;\n // rows\n let rowIndex = start.y;\n let maxCol = 0;\n for (\n let i = 0;\n rowIndex < rowLength && i < copyRowLength;\n rowIndex++, i++\n ) {\n // copy original data link\n const copyRow = data[i % copyRowLength];\n const copyColLength = copyRow?.length || 0;\n // columns\n let colIndex = start.x;\n for (\n let j = 0;\n colIndex < colLength && j < copyColLength;\n colIndex++, j++\n ) {\n const p = this.columns[colIndex].prop;\n const currentCol = j % colLength;\n\n /** if can write */\n if (!this.isReadOnly(rowIndex, colIndex)) {\n /** to show before save */\n if (!changed[rowIndex]) {\n changed[rowIndex] = {};\n }\n changed[rowIndex][p] = copyRow[currentCol];\n }\n }\n maxCol = Math.max(maxCol, colIndex - 1);\n }\n const range = getRange(start, {\n y: rowIndex - 1,\n x: maxCol,\n });\n return {\n changed,\n range,\n };\n }\n\n getRangeStaticData(d: RangeArea, value: DataFormat): DataLookup {\n const changed: DataLookup = {};\n\n // rows\n for (let rowIndex = d.y, i = 0; rowIndex < d.y1 + 1; rowIndex++, i++) {\n // columns\n for (let colIndex = d.x, j = 0; colIndex < d.x1 + 1; colIndex++, j++) {\n // requested column beyond range\n if (!this.columns[colIndex]) {\n continue;\n }\n const p = this.columns[colIndex].prop;\n\n /** if can write */\n if (!this.isReadOnly(rowIndex, colIndex)) {\n /** to show before save */\n if (!changed[rowIndex]) {\n changed[rowIndex] = {};\n }\n changed[rowIndex][p] = value;\n }\n }\n }\n return changed;\n }\n\n getRangeTransformedToProps(\n d: RangeArea,\n store: Observable<DSourceState<DataType, DimensionRows>>,\n ) {\n const area: {\n prop: ColumnProp;\n rowIndex: number;\n colIndex: number;\n model: DataType;\n colType: DimensionCols;\n type: DimensionRows;\n }[] = [];\n\n const type = this.dataStore.get('type');\n // rows\n for (let rowIndex = d.y, i = 0; rowIndex < d.y1 + 1; rowIndex++, i++) {\n // columns\n for (let colIndex = d.x, j = 0; colIndex < d.x1 + 1; colIndex++, j++) {\n const prop = this.columns[colIndex]?.prop;\n area.push({\n prop,\n rowIndex,\n colIndex,\n model: getSourceItem(store, rowIndex),\n type,\n colType: this.type,\n });\n }\n }\n return area;\n }\n\n copyRangeArray(\n range: RangeArea,\n store: Observable<DSourceState<DataType, DimensionRows>>,\n ) {\n const cols = [...this.columns];\n const props = slice(cols, range.x, range.x1 + 1).map(v => v.prop);\n const toCopy: DataFormat[][] = [];\n const mapping: { [rowIndex: number]: { [colProp: ColumnProp]: any } } = {};\n\n // rows indexes\n for (let i = range.y; i <= range.y1; i++) {\n const rgRow: DataFormat[] = [];\n mapping[i] = {};\n\n // columns indexes\n for (let prop of props) {\n const item = getSourceItem(store, i);\n\n // if no item - skip\n if (!item) {\n continue;\n }\n const val = item[prop];\n rgRow.push(val);\n mapping[i][prop] = val;\n }\n\n toCopy.push(rgRow);\n }\n return {\n data: toCopy,\n mapping,\n };\n }\n\n destroy() {\n this.unsubscribe.forEach(f => f());\n }\n}\n\nexport function getCellData(val?: any) {\n if (typeof val === 'undefined' || val === null) {\n return '';\n }\n return val;\n}\n\n/**\n * Checks if the given rowDrag is a service for dragging rows.\n */\nexport function isRowDragService(\n rowDrag: RowDrag,\n model: ColumnDataSchemaModel,\n): boolean {\n if (typeof rowDrag === 'function') {\n return rowDrag(model);\n }\n return !!rowDrag;\n}\nexport function doPropMerge(existing: CellProps, extra: CellProps) {\n let props: CellProps = { ...extra, ...existing };\n // extend existing props\n if (extra.class) {\n if (typeof extra.class === 'object' && typeof props.class === 'object') {\n props.class = { ...extra.class, ...props.class };\n } else if (\n typeof extra.class === 'string' &&\n typeof props.class === 'object'\n ) {\n props.class[extra.class] = true;\n } else if (typeof props.class === 'string') {\n props.class += ' ' + extra.class;\n }\n }\n if (extra.style) {\n props.style = { ...extra.style, ...props.style };\n }\n return props;\n}\n"],"version":3}
|
|
@@ -23,8 +23,8 @@ const TrashButton = () => {
|
|
|
23
23
|
h("svg", { class: "trash-img", viewBox: "0 0 24 24" },
|
|
24
24
|
h("path", { fill: "currentColor", d: "M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z" }))));
|
|
25
25
|
};
|
|
26
|
-
const AndOrButton = ({
|
|
27
|
-
return h("button", { class: { [AND_OR_BUTTON]: true, 'light revo-button': true } },
|
|
26
|
+
const AndOrButton = ({ text }) => {
|
|
27
|
+
return h("button", { class: { [AND_OR_BUTTON]: true, 'light revo-button': true } }, text);
|
|
28
28
|
};
|
|
29
29
|
function isFilterBtn(e) {
|
|
30
30
|
if (e.classList.contains(FILTER_BUTTON_CLASS)) {
|
|
@@ -35,4 +35,4 @@ function isFilterBtn(e) {
|
|
|
35
35
|
|
|
36
36
|
export { AndOrButton as A, FILTER_PROP as F, TrashButton as T, FilterButton as a, isFilterBtn as i };
|
|
37
37
|
|
|
38
|
-
//# sourceMappingURL=filter.button-
|
|
38
|
+
//# sourceMappingURL=filter.button-f9883a78.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"filter.button-f9883a78.js","mappings":";;;;;AAGO,MAAM,mBAAmB,GAAG,WAAW,CAAC;AACxC,MAAM,oBAAoB,GAAG,QAAQ,CAAC;MAChC,WAAW,GAAG,YAAY;AAChC,MAAM,aAAa,GAAG,eAAe,CAAC;AACtC,MAAM,YAAY,GAAG,cAAc,CAAC;MAK9B,YAAY,GAAG,CAAC,EAAE,MAAM,EAAS;IAC5C,QACE;QACE,cACE,KAAK,EAAE;gBACL,CAAC,mBAAmB,GAAG,IAAI;gBAC3B,CAAC,oBAAoB,GAAG,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;aACxD;YAED,WAAK,KAAK,EAAC,YAAY,EAAC,OAAO,EAAC,WAAW;gBACzC,SAAG,MAAM,EAAC,MAAM,kBAAc,GAAG,EAAC,IAAI,EAAC,MAAM,eAAW,SAAS;oBAC/D,YAAM,CAAC,EAAC,2GAA2G,EAAC,IAAI,EAAC,cAAc,GAAQ,CAC7I,CACA,CACC,CACJ,EACP;AACJ,EAAE;MAEW,WAAW,GAAG;IACzB,QACE,WAAK,KAAK,EAAE,EAAE,CAAC,YAAY,GAAG,IAAI,EAAE;QAClC,WAAK,KAAK,EAAC,WAAW,EAAC,OAAO,EAAC,WAAW;YACxC,YAAM,IAAI,EAAC,cAAc,EAAC,CAAC,EAAC,8GAA8G,GAAG,CACzI,CACF,EACN;AACJ,EAAE;MACW,WAAW,GAAG,CAAC,EAAE,IAAI,EAAO;IACvC,OAAO,cAAQ,KAAK,EAAE,EAAE,CAAC,aAAa,GAAG,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAG,IAAI,CAAU,CAAC;AAC9F,EAAE;SAEc,WAAW,CAAC,CAAc;IACxC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;QAC7C,OAAO,IAAI,CAAC;KACb;IACD,OAAO,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;AAC/C;;;;","names":[],"sources":["src/plugins/filter/filter.button.tsx"],"sourcesContent":["import { h } from '@stencil/core';\nimport { ColumnRegular } from '@type';\n\nexport const FILTER_BUTTON_CLASS = 'rv-filter';\nexport const FILTER_BUTTON_ACTIVE = 'active';\nexport const FILTER_PROP = 'hasFilter';\nexport const AND_OR_BUTTON = 'and-or-button';\nexport const TRASH_BUTTON = 'trash-button';\n\ntype Props = {\n column: ColumnRegular;\n};\nexport const FilterButton = ({ column }: Props) => {\n return (\n <span>\n <button\n class={{\n [FILTER_BUTTON_CLASS]: true,\n [FILTER_BUTTON_ACTIVE]: column && !!column[FILTER_PROP],\n }}\n >\n <svg class=\"filter-img\" viewBox=\"0 0 64 64\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path d=\"M43,48 L43,56 L21,56 L21,48 L43,48 Z M53,28 L53,36 L12,36 L12,28 L53,28 Z M64,8 L64,16 L0,16 L0,8 L64,8 Z\" fill=\"currentColor\"></path>\n </g>\n </svg>\n </button>\n </span>\n );\n};\n\nexport const TrashButton = () => {\n return (\n <div class={{ [TRASH_BUTTON]: true }}>\n <svg class=\"trash-img\" viewBox=\"0 0 24 24\">\n <path fill=\"currentColor\" d=\"M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z\" />\n </svg>\n </div>\n );\n};\nexport const AndOrButton = ({ text }: any) => {\n return <button class={{ [AND_OR_BUTTON]: true, 'light revo-button': true }}>{text}</button>;\n};\n\nexport function isFilterBtn(e: HTMLElement) {\n if (e.classList.contains(FILTER_BUTTON_CLASS)) {\n return true;\n }\n return e?.closest(`.${FILTER_BUTTON_CLASS}`);\n}\n"],"version":3}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { h } from './index-e661aeb5.js';
|
|
5
5
|
import { d as dispatch } from './dispatcher-8ea9187d.js';
|
|
6
|
-
import { m as doPropMerge } from './column.service-
|
|
6
|
+
import { m as doPropMerge } from './column.service-6aab6fac.js';
|
|
7
7
|
|
|
8
8
|
var ResizeEvents;
|
|
9
9
|
(function (ResizeEvents) {
|
|
@@ -298,4 +298,4 @@ const HeaderCellRenderer = ({ data, props, additionalData }, children) => {
|
|
|
298
298
|
|
|
299
299
|
export { HeaderCellRenderer as H, ON_COLUMN_CLICK as O };
|
|
300
300
|
|
|
301
|
-
//# sourceMappingURL=header-cell-renderer-
|
|
301
|
+
//# sourceMappingURL=header-cell-renderer-b8663a21.js.map
|
package/dist/esm/{header-cell-renderer-cac333a3.js.map → header-cell-renderer-b8663a21.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"header-cell-renderer-cac333a3.js","mappings":"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","names":[],"sources":["src/services/resizable.directive.tsx","src/services/resizable.element.tsx","src/components/header/header-cell-renderer.tsx"],"sourcesContent":["export type ResizeProps = {\n active: ('r' | 'rb' | 'b' | 'lb' | 'l' | 'lt' | 't' | 'rt')[]; // all\n fitParent: boolean; // false\n minWidth: number; // 0\n minHeight: number; // 0\n\n disableAttributes: ('l' | 't' | 'w' | 'h')[]; // []\n maxWidth?: number;\n maxHeight?: number;\n\n onResize?(e: ResizeEvent): void;\n onDoubleClick?(originalEvent: MouseEvent): void;\n};\n\nexport type ResizeEvent = {\n eventName: string;\n changedX?: number;\n changedY?: number;\n width?: number;\n height?: number;\n};\n\nexport enum ResizeEvents {\n start = 'resize:start',\n move = 'resize:move',\n end = 'resize:end',\n}\n\nconst RESIZE_MASK: { [key: string]: any } = {\n 'resizable-r': { bit: 0b0001, cursor: 'ew-resize' },\n 'resizable-rb': { bit: 0b0011, cursor: 'se-resize' },\n 'resizable-b': { bit: 0b0010, cursor: 's-resize' },\n 'resizable-lb': { bit: 0b0110, cursor: 'sw-resize' },\n 'resizable-l': { bit: 0b0100, cursor: 'w-resize' },\n 'resizable-lt': { bit: 0b1100, cursor: 'nw-resize' },\n 'resizable-t': { bit: 0b1000, cursor: 'n-resize' },\n 'resizable-rt': { bit: 0b1001, cursor: 'ne-resize' },\n};\n\nconst DISABLE_MASK = {\n l: 0b0001,\n t: 0b0010,\n w: 0b0100,\n h: 0b1000,\n};\n\nconst defaultProps = (props: Partial<ResizeProps>): ResizeProps => {\n return {\n ...props,\n fitParent: props.fitParent || false,\n active: props.active || [],\n disableAttributes: props.disableAttributes || [],\n minWidth: props.minWidth || 0,\n minHeight: props.minHeight || 0,\n };\n};\n\nexport class ResizeDirective {\n private $el: HTMLElement;\n private props: ResizeProps;\n private minW: number;\n private minH: number;\n private maxW: number;\n private maxH: number;\n\n private mouseX = 0;\n private mouseY = 0;\n\n private width = 0;\n private height = 0;\n\n private changeX = 0;\n private changeY = 0;\n\n private parent: { width: number; height: number };\n private resizeState: number;\n private activeResizer: HTMLElement | null;\n private disableCalcMap = 0b1111;\n\n private mouseMoveFunc: () => void;\n private mouseUpFunc: () => void;\n\n constructor(\n private initialProps: Partial<ResizeProps>,\n private $event?: (e: ResizeEvent) => void,\n ) {\n this.props = defaultProps(initialProps);\n this.mouseMoveFunc = this.handleMove.bind(this);\n this.mouseUpFunc = this.handleUp.bind(this);\n\n this.minW = this.props.minWidth;\n this.minH = this.props.minHeight;\n this.maxW = this.props.maxWidth;\n this.maxH = this.props.maxHeight;\n this.parent = { width: 0, height: 0 };\n this.resizeState = 0;\n }\n\n set($el: HTMLElement) {\n this.$el = $el;\n this.props.disableAttributes.forEach(attr => {\n switch (attr) {\n case 'l':\n this.disableCalcMap &= ~DISABLE_MASK.l;\n break;\n case 't':\n this.disableCalcMap &= ~DISABLE_MASK.t;\n break;\n case 'w':\n this.disableCalcMap &= ~DISABLE_MASK.w;\n break;\n case 'h':\n this.disableCalcMap &= ~DISABLE_MASK.h;\n }\n });\n }\n emitEvent(eventName: string, additionalOptions?: any) {\n if (!this.$event) {\n return;\n }\n const isLeft = this.activeResizer?.classList.contains('resizable-l');\n this.$event({\n eventName,\n width: this.width + this.changeX * (isLeft ? -1 : 1),\n height: this.height + this.changeY,\n changedX: this.changeX,\n changedY: this.changeY,\n ...additionalOptions,\n });\n }\n\n private static isTouchEvent(e: MouseEvent | TouchEvent): e is TouchEvent {\n const event = e as TouchEvent;\n return event.touches?.length >= 0;\n }\n\n handleMove(event: MouseEvent | TouchEvent) {\n if (!this.resizeState) {\n return;\n }\n let eventY, eventX;\n if (ResizeDirective.isTouchEvent(event)) {\n eventY = event.touches[0].clientY;\n eventX = event.touches[0].clientX;\n } else {\n eventY = event.clientY;\n eventX = event.clientX;\n }\n let isX =\n this.resizeState & RESIZE_MASK['resizable-r'].bit ||\n this.resizeState & RESIZE_MASK['resizable-l'].bit;\n\n let isY =\n this.resizeState & RESIZE_MASK['resizable-t'].bit ||\n this.resizeState & RESIZE_MASK['resizable-b'].bit;\n\n if (isY && this.disableCalcMap & DISABLE_MASK.h) {\n let diffY = eventY - this.mouseY;\n let changedY = this.changeY + diffY;\n const newHeight = this.height + changedY;\n // if overcrossed min height\n if (newHeight < this.minH) {\n changedY = -(this.height - this.minH);\n }\n // if overcrossed max heiht\n if (this.maxH && newHeight > this.maxH) {\n changedY = this.maxH - this.height;\n }\n\n this.changeY = changedY;\n this.mouseY = eventY;\n\n if (this.activeResizer) {\n this.activeResizer.style.bottom = `${-this.changeY}px`;\n }\n }\n if (isX && this.disableCalcMap & DISABLE_MASK.w) {\n const isLeft = this.activeResizer?.classList.contains('resizable-l');\n let diffX = eventX - this.mouseX;\n let changedX = this.changeX + diffX;\n const newWidth = this.width + changedX * (isLeft ? -1 : 1);\n\n // if overcrossed min width\n if (newWidth < this.minW) {\n changedX = -(this.width - this.minW);\n }\n // if overcrossed max width\n if (this.maxW && newWidth > this.maxW) {\n changedX = this.maxW - this.width;\n }\n\n this.changeX = changedX;\n this.mouseX = eventX;\n\n if (this.activeResizer) {\n if (!isLeft) {\n this.activeResizer.style.right = `${-this.changeX}px`;\n } else {\n this.activeResizer.style.left = `${this.changeX}px`;\n }\n }\n }\n this.emitEvent(ResizeEvents.move);\n }\n\n handleDown(event: MouseEvent | TouchEvent) {\n if (event.defaultPrevented) {\n return;\n }\n // stop other events if resize in progress\n event.preventDefault();\n\n this.dropInitial();\n for (let elClass in RESIZE_MASK) {\n const target = event.target as HTMLElement | null;\n if (this.$el.contains(target) && target?.classList.contains(elClass)) {\n document.body.style.cursor = RESIZE_MASK[elClass].cursor;\n if (ResizeDirective.isTouchEvent(event)) {\n this.setInitials(event.touches[0], target);\n } else {\n event.preventDefault && event.preventDefault();\n this.setInitials(event, target);\n }\n this.resizeState = RESIZE_MASK[elClass].bit;\n const eventName = ResizeEvents.start;\n this.emitEvent(eventName);\n break;\n }\n }\n this.bindMove();\n }\n\n handleUp(e: MouseEvent) {\n e.preventDefault();\n if (this.resizeState !== 0) {\n this.resizeState = 0;\n document.body.style.cursor = '';\n const eventName = ResizeEvents.end;\n this.emitEvent(eventName);\n }\n this.dropInitial();\n this.unbindMove();\n }\n\n private setInitials(\n { clientX, clientY }: { clientX: number; clientY: number },\n target?: HTMLElement,\n ) {\n const computedStyle = getComputedStyle(this.$el);\n this.$el.classList.add('active');\n this.activeResizer = target;\n\n if (this.disableCalcMap & DISABLE_MASK.w) {\n this.mouseX = clientX;\n this.width = this.$el.clientWidth;\n this.parent.width = this.$el.parentElement.clientWidth;\n\n // min width\n const minPaddingX =\n parseFloat(computedStyle.paddingLeft) +\n parseFloat(computedStyle.paddingRight);\n this.minW = Math.max(minPaddingX, this.initialProps.minWidth || 0);\n\n // max width\n if (this.initialProps.maxWidth) {\n this.maxW = Math.max(this.width, this.initialProps.maxWidth);\n }\n }\n\n if (this.disableCalcMap & DISABLE_MASK.h) {\n this.mouseY = clientY;\n this.height = this.$el.clientHeight;\n this.parent.height = this.$el.parentElement.clientHeight;\n\n // min height\n const minPaddingY =\n parseFloat(computedStyle.paddingTop) +\n parseFloat(computedStyle.paddingBottom);\n this.minH = Math.max(minPaddingY, this.initialProps.minHeight || 0);\n // max height\n if (this.initialProps.maxHeight) {\n this.maxH = Math.max(this.height, this.initialProps.maxHeight);\n }\n }\n }\n\n private dropInitial() {\n this.changeX = this.changeY = this.minW = this.minH;\n this.width = this.height = 0;\n if (this.activeResizer) {\n this.activeResizer.removeAttribute('style');\n }\n this.$el.classList.remove('active');\n this.activeResizer = null;\n }\n\n private bindMove() {\n document.documentElement.addEventListener(\n 'mouseup',\n this.mouseUpFunc,\n true,\n );\n document.documentElement.addEventListener(\n 'touchend',\n this.mouseUpFunc,\n true,\n );\n document.documentElement.addEventListener(\n 'mousemove',\n this.mouseMoveFunc,\n true,\n );\n document.documentElement.addEventListener(\n 'touchmove',\n this.mouseMoveFunc,\n true,\n );\n document.documentElement.addEventListener('mouseleave', this.mouseUpFunc);\n }\n\n private unbindMove() {\n document.documentElement.removeEventListener(\n 'mouseup',\n this.mouseUpFunc,\n true,\n );\n document.documentElement.removeEventListener(\n 'touchend',\n this.mouseUpFunc,\n true,\n );\n document.documentElement.removeEventListener(\n 'mousemove',\n this.mouseMoveFunc,\n true,\n );\n document.documentElement.removeEventListener(\n 'touchmove',\n this.mouseMoveFunc,\n true,\n );\n document.documentElement.removeEventListener(\n 'mouseleave',\n this.mouseUpFunc,\n );\n }\n}\n","import { h, VNode } from '@stencil/core';\nimport { ResizeProps, ResizeDirective, ResizeEvents } from './resizable.directive';\nimport { CellProps } from '../types/interfaces';\n\nexport const ResizableElement = (props: Partial<ResizeProps> & CellProps, children: VNode[]) => {\n const resizeEls: VNode[] = [];\n const directive =\n (props.canResize &&\n new ResizeDirective(props, e => {\n if (e.eventName === ResizeEvents.end) {\n props.onResize && props.onResize(e);\n }\n })) ||\n null;\n if (props.canResize) {\n if (props.active) {\n for (let p in props.active) {\n resizeEls.push(\n <div\n onClick={e => e.preventDefault()}\n onDblClick={e => {\n e.preventDefault();\n props.onDoubleClick?.(e);\n }}\n onMouseDown={(e: MouseEvent) => directive?.handleDown(e)}\n onTouchStart={(e: TouchEvent) => directive?.handleDown(e)}\n class={`resizable resizable-${props.active[p]}`}\n />,\n );\n }\n }\n } else {\n if (props.active) {\n for (let p in props.active) {\n resizeEls.push(\n <div\n onClick={e => e.preventDefault()}\n onTouchStart={(e: TouchEvent) => e.preventDefault()}\n onDblClick={e => {\n e.preventDefault();\n props.onDoubleClick?.(e);\n }}\n class={`no-resize resizable resizable-${props.active[p]}`}\n />,\n );\n }\n }\n }\n return (\n <div {...props} ref={(e: HTMLElement) => directive?.set(e)}>\n {children}\n {resizeEls}\n </div>\n );\n};\n","import { h, VNode } from '@stencil/core';\nimport { dispatch } from '../../plugins/dispatcher';\nimport { doPropMerge } from '../data/column.service';\nimport { ResizableElement } from '../../services/resizable.element';\nimport { ResizeProps } from '../../services/resizable.directive';\nimport { CellProps, ColumnTemplateProp } from '@type';\n\ntype Props = {\n props: CellProps & Partial<ResizeProps>;\n additionalData: any;\n data?: ColumnTemplateProp;\n};\n\nexport const ON_COLUMN_CLICK = 'columnclick';\n\nexport const HeaderCellRenderer = ({ data, props, additionalData }: Props, children: VNode[]): VNode => {\n let colTemplate: VNode | VNode[] | string = data?.name || '';\n let cellProps = props;\n if (data?.columnTemplate) {\n colTemplate = data.columnTemplate(h, data, additionalData);\n }\n if (data?.columnProperties) {\n const extra = data.columnProperties(data);\n if (extra && typeof extra === 'object') {\n cellProps = doPropMerge(props, extra);\n }\n }\n return (\n <ResizableElement {...cellProps} onMouseDown={(e: MouseEvent) => {\n dispatch(e.currentTarget as HTMLElement, ON_COLUMN_CLICK, {\n data,\n event: e,\n });\n }}>\n <div class=\"header-content\">{colTemplate}</div>\n {children}\n </ResizableElement>\n );\n};\n"],"version":3}
|
|
1
|
+
{"file":"header-cell-renderer-b8663a21.js","mappings":"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","names":[],"sources":["src/services/resizable.directive.tsx","src/services/resizable.element.tsx","src/components/header/header-cell-renderer.tsx"],"sourcesContent":["export type ResizeProps = {\n active: ('r' | 'rb' | 'b' | 'lb' | 'l' | 'lt' | 't' | 'rt')[]; // all\n fitParent: boolean; // false\n minWidth: number; // 0\n minHeight: number; // 0\n\n disableAttributes: ('l' | 't' | 'w' | 'h')[]; // []\n maxWidth?: number;\n maxHeight?: number;\n\n onResize?(e: ResizeEvent): void;\n onDoubleClick?(originalEvent: MouseEvent): void;\n};\n\nexport type ResizeEvent = {\n eventName: string;\n changedX?: number;\n changedY?: number;\n width?: number;\n height?: number;\n};\n\nexport enum ResizeEvents {\n start = 'resize:start',\n move = 'resize:move',\n end = 'resize:end',\n}\n\nconst RESIZE_MASK: { [key: string]: any } = {\n 'resizable-r': { bit: 0b0001, cursor: 'ew-resize' },\n 'resizable-rb': { bit: 0b0011, cursor: 'se-resize' },\n 'resizable-b': { bit: 0b0010, cursor: 's-resize' },\n 'resizable-lb': { bit: 0b0110, cursor: 'sw-resize' },\n 'resizable-l': { bit: 0b0100, cursor: 'w-resize' },\n 'resizable-lt': { bit: 0b1100, cursor: 'nw-resize' },\n 'resizable-t': { bit: 0b1000, cursor: 'n-resize' },\n 'resizable-rt': { bit: 0b1001, cursor: 'ne-resize' },\n};\n\nconst DISABLE_MASK = {\n l: 0b0001,\n t: 0b0010,\n w: 0b0100,\n h: 0b1000,\n};\n\nconst defaultProps = (props: Partial<ResizeProps>): ResizeProps => {\n return {\n ...props,\n fitParent: props.fitParent || false,\n active: props.active || [],\n disableAttributes: props.disableAttributes || [],\n minWidth: props.minWidth || 0,\n minHeight: props.minHeight || 0,\n };\n};\n\nexport class ResizeDirective {\n private $el: HTMLElement;\n private props: ResizeProps;\n private minW: number;\n private minH: number;\n private maxW: number;\n private maxH: number;\n\n private mouseX = 0;\n private mouseY = 0;\n\n private width = 0;\n private height = 0;\n\n private changeX = 0;\n private changeY = 0;\n\n private parent: { width: number; height: number };\n private resizeState: number;\n private activeResizer: HTMLElement | null;\n private disableCalcMap = 0b1111;\n\n private mouseMoveFunc: () => void;\n private mouseUpFunc: () => void;\n\n constructor(\n private initialProps: Partial<ResizeProps>,\n private $event?: (e: ResizeEvent) => void,\n ) {\n this.props = defaultProps(initialProps);\n this.mouseMoveFunc = this.handleMove.bind(this);\n this.mouseUpFunc = this.handleUp.bind(this);\n\n this.minW = this.props.minWidth;\n this.minH = this.props.minHeight;\n this.maxW = this.props.maxWidth;\n this.maxH = this.props.maxHeight;\n this.parent = { width: 0, height: 0 };\n this.resizeState = 0;\n }\n\n set($el: HTMLElement) {\n this.$el = $el;\n this.props.disableAttributes.forEach(attr => {\n switch (attr) {\n case 'l':\n this.disableCalcMap &= ~DISABLE_MASK.l;\n break;\n case 't':\n this.disableCalcMap &= ~DISABLE_MASK.t;\n break;\n case 'w':\n this.disableCalcMap &= ~DISABLE_MASK.w;\n break;\n case 'h':\n this.disableCalcMap &= ~DISABLE_MASK.h;\n }\n });\n }\n emitEvent(eventName: string, additionalOptions?: any) {\n if (!this.$event) {\n return;\n }\n const isLeft = this.activeResizer?.classList.contains('resizable-l');\n this.$event({\n eventName,\n width: this.width + this.changeX * (isLeft ? -1 : 1),\n height: this.height + this.changeY,\n changedX: this.changeX,\n changedY: this.changeY,\n ...additionalOptions,\n });\n }\n\n private static isTouchEvent(e: MouseEvent | TouchEvent): e is TouchEvent {\n const event = e as TouchEvent;\n return event.touches?.length >= 0;\n }\n\n handleMove(event: MouseEvent | TouchEvent) {\n if (!this.resizeState) {\n return;\n }\n let eventY, eventX;\n if (ResizeDirective.isTouchEvent(event)) {\n eventY = event.touches[0].clientY;\n eventX = event.touches[0].clientX;\n } else {\n eventY = event.clientY;\n eventX = event.clientX;\n }\n let isX =\n this.resizeState & RESIZE_MASK['resizable-r'].bit ||\n this.resizeState & RESIZE_MASK['resizable-l'].bit;\n\n let isY =\n this.resizeState & RESIZE_MASK['resizable-t'].bit ||\n this.resizeState & RESIZE_MASK['resizable-b'].bit;\n\n if (isY && this.disableCalcMap & DISABLE_MASK.h) {\n let diffY = eventY - this.mouseY;\n let changedY = this.changeY + diffY;\n const newHeight = this.height + changedY;\n // if overcrossed min height\n if (newHeight < this.minH) {\n changedY = -(this.height - this.minH);\n }\n // if overcrossed max heiht\n if (this.maxH && newHeight > this.maxH) {\n changedY = this.maxH - this.height;\n }\n\n this.changeY = changedY;\n this.mouseY = eventY;\n\n if (this.activeResizer) {\n this.activeResizer.style.bottom = `${-this.changeY}px`;\n }\n }\n if (isX && this.disableCalcMap & DISABLE_MASK.w) {\n const isLeft = this.activeResizer?.classList.contains('resizable-l');\n let diffX = eventX - this.mouseX;\n let changedX = this.changeX + diffX;\n const newWidth = this.width + changedX * (isLeft ? -1 : 1);\n\n // if overcrossed min width\n if (newWidth < this.minW) {\n changedX = -(this.width - this.minW);\n }\n // if overcrossed max width\n if (this.maxW && newWidth > this.maxW) {\n changedX = this.maxW - this.width;\n }\n\n this.changeX = changedX;\n this.mouseX = eventX;\n\n if (this.activeResizer) {\n if (!isLeft) {\n this.activeResizer.style.right = `${-this.changeX}px`;\n } else {\n this.activeResizer.style.left = `${this.changeX}px`;\n }\n }\n }\n this.emitEvent(ResizeEvents.move);\n }\n\n handleDown(event: MouseEvent | TouchEvent) {\n if (event.defaultPrevented) {\n return;\n }\n // stop other events if resize in progress\n event.preventDefault();\n\n this.dropInitial();\n for (let elClass in RESIZE_MASK) {\n const target = event.target as HTMLElement | null;\n if (this.$el.contains(target) && target?.classList.contains(elClass)) {\n document.body.style.cursor = RESIZE_MASK[elClass].cursor;\n if (ResizeDirective.isTouchEvent(event)) {\n this.setInitials(event.touches[0], target);\n } else {\n event.preventDefault && event.preventDefault();\n this.setInitials(event, target);\n }\n this.resizeState = RESIZE_MASK[elClass].bit;\n const eventName = ResizeEvents.start;\n this.emitEvent(eventName);\n break;\n }\n }\n this.bindMove();\n }\n\n handleUp(e: MouseEvent) {\n e.preventDefault();\n if (this.resizeState !== 0) {\n this.resizeState = 0;\n document.body.style.cursor = '';\n const eventName = ResizeEvents.end;\n this.emitEvent(eventName);\n }\n this.dropInitial();\n this.unbindMove();\n }\n\n private setInitials(\n { clientX, clientY }: { clientX: number; clientY: number },\n target?: HTMLElement,\n ) {\n const computedStyle = getComputedStyle(this.$el);\n this.$el.classList.add('active');\n this.activeResizer = target;\n\n if (this.disableCalcMap & DISABLE_MASK.w) {\n this.mouseX = clientX;\n this.width = this.$el.clientWidth;\n this.parent.width = this.$el.parentElement.clientWidth;\n\n // min width\n const minPaddingX =\n parseFloat(computedStyle.paddingLeft) +\n parseFloat(computedStyle.paddingRight);\n this.minW = Math.max(minPaddingX, this.initialProps.minWidth || 0);\n\n // max width\n if (this.initialProps.maxWidth) {\n this.maxW = Math.max(this.width, this.initialProps.maxWidth);\n }\n }\n\n if (this.disableCalcMap & DISABLE_MASK.h) {\n this.mouseY = clientY;\n this.height = this.$el.clientHeight;\n this.parent.height = this.$el.parentElement.clientHeight;\n\n // min height\n const minPaddingY =\n parseFloat(computedStyle.paddingTop) +\n parseFloat(computedStyle.paddingBottom);\n this.minH = Math.max(minPaddingY, this.initialProps.minHeight || 0);\n // max height\n if (this.initialProps.maxHeight) {\n this.maxH = Math.max(this.height, this.initialProps.maxHeight);\n }\n }\n }\n\n private dropInitial() {\n this.changeX = this.changeY = this.minW = this.minH;\n this.width = this.height = 0;\n if (this.activeResizer) {\n this.activeResizer.removeAttribute('style');\n }\n this.$el.classList.remove('active');\n this.activeResizer = null;\n }\n\n private bindMove() {\n document.documentElement.addEventListener(\n 'mouseup',\n this.mouseUpFunc,\n true,\n );\n document.documentElement.addEventListener(\n 'touchend',\n this.mouseUpFunc,\n true,\n );\n document.documentElement.addEventListener(\n 'mousemove',\n this.mouseMoveFunc,\n true,\n );\n document.documentElement.addEventListener(\n 'touchmove',\n this.mouseMoveFunc,\n true,\n );\n document.documentElement.addEventListener('mouseleave', this.mouseUpFunc);\n }\n\n private unbindMove() {\n document.documentElement.removeEventListener(\n 'mouseup',\n this.mouseUpFunc,\n true,\n );\n document.documentElement.removeEventListener(\n 'touchend',\n this.mouseUpFunc,\n true,\n );\n document.documentElement.removeEventListener(\n 'mousemove',\n this.mouseMoveFunc,\n true,\n );\n document.documentElement.removeEventListener(\n 'touchmove',\n this.mouseMoveFunc,\n true,\n );\n document.documentElement.removeEventListener(\n 'mouseleave',\n this.mouseUpFunc,\n );\n }\n}\n","import { h, VNode } from '@stencil/core';\nimport { ResizeProps, ResizeDirective, ResizeEvents } from './resizable.directive';\nimport { CellProps } from '../types/interfaces';\n\nexport const ResizableElement = (props: Partial<ResizeProps> & CellProps, children: VNode[]) => {\n const resizeEls: VNode[] = [];\n const directive =\n (props.canResize &&\n new ResizeDirective(props, e => {\n if (e.eventName === ResizeEvents.end) {\n props.onResize && props.onResize(e);\n }\n })) ||\n null;\n if (props.canResize) {\n if (props.active) {\n for (let p in props.active) {\n resizeEls.push(\n <div\n onClick={e => e.preventDefault()}\n onDblClick={e => {\n e.preventDefault();\n props.onDoubleClick?.(e);\n }}\n onMouseDown={(e: MouseEvent) => directive?.handleDown(e)}\n onTouchStart={(e: TouchEvent) => directive?.handleDown(e)}\n class={`resizable resizable-${props.active[p]}`}\n />,\n );\n }\n }\n } else {\n if (props.active) {\n for (let p in props.active) {\n resizeEls.push(\n <div\n onClick={e => e.preventDefault()}\n onTouchStart={(e: TouchEvent) => e.preventDefault()}\n onDblClick={e => {\n e.preventDefault();\n props.onDoubleClick?.(e);\n }}\n class={`no-resize resizable resizable-${props.active[p]}`}\n />,\n );\n }\n }\n }\n return (\n <div {...props} ref={(e: HTMLElement) => directive?.set(e)}>\n {children}\n {resizeEls}\n </div>\n );\n};\n","import { h, VNode } from '@stencil/core';\nimport { dispatch } from '../../plugins/dispatcher';\nimport { doPropMerge } from '../data/column.service';\nimport { ResizableElement } from '../../services/resizable.element';\nimport { ResizeProps } from '../../services/resizable.directive';\nimport { CellProps, ColumnTemplateProp } from '@type';\n\ntype Props = {\n props: CellProps & Partial<ResizeProps>;\n additionalData: any;\n data?: ColumnTemplateProp;\n};\n\nexport const ON_COLUMN_CLICK = 'columnclick';\n\nexport const HeaderCellRenderer = ({ data, props, additionalData }: Props, children: VNode[]): VNode => {\n let colTemplate: VNode | VNode[] | string = data?.name || '';\n let cellProps = props;\n if (data?.columnTemplate) {\n colTemplate = data.columnTemplate(h, data, additionalData);\n }\n if (data?.columnProperties) {\n const extra = data.columnProperties(data);\n if (extra && typeof extra === 'object') {\n cellProps = doPropMerge(props, extra);\n }\n }\n return (\n <ResizableElement {...cellProps} onMouseDown={(e: MouseEvent) => {\n dispatch(e.currentTarget as HTMLElement, ON_COLUMN_CLICK, {\n data,\n event: e,\n });\n }}>\n <div class=\"header-content\">{colTemplate}</div>\n {children}\n </ResizableElement>\n );\n};\n"],"version":3}
|
package/dist/esm/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
export { B as BasePlugin, D as DimensionStore, c as columnTypes, i as isRowType, r as rowTypes } from './base.plugin-e6e2bac2.js';
|
|
5
5
|
export { d as dispatch, a as dispatchByEvent, b as dispatchOnEvent } from './dispatcher-8ea9187d.js';
|
|
6
6
|
export { D as DataStore, h as calculateDimensionData, f as gatherTrimmedItems, j as getItemByIndex, i as getItemByPosition, g as getPhysical, b as getSourceItem, e as getSourceItemVirtualIndexByProp, a as getVisibleSourceItem, p as proxyPlugin, d as setItems, c as setSourceByPhysicalIndex, s as setSourceByVirtualIndex, t as trimmedPlugin } from './dimension.helpers-c0c2888f.js';
|
|
7
|
-
export { S as SelectionStore, c as cropCellToMax, g as getRange, i as isHiddenStore, a as isRangeSingleCell, n as nextCell } from './selection.helpers-
|
|
7
|
+
export { S as SelectionStore, c as cropCellToMax, g as getRange, i as isHiddenStore, a as isRangeSingleCell, n as nextCell } from './selection.helpers-dbf69cc1.js';
|
|
8
8
|
export { V as ViewportStore, a as addMissingItems, d as getFirstItem, b as getItems, e as getLastItem, g as getUpdatedItemsByPosition, i as isActiveRange, c as isActiveRangeOutsideLastItem, r as recombineByOffset, s as setItemSizes, u as updateMissingAndRange } from './viewport.store-2dc172be.js';
|
|
9
9
|
import './toNumber-8de324a7.js';
|
|
10
10
|
import './index-e661aeb5.js';
|
|
@@ -75,6 +75,11 @@ var codesLetter;
|
|
|
75
75
|
codesLetter["ARROW_DOWN"] = "ArrowDown";
|
|
76
76
|
codesLetter["SHIFT"] = "Shift";
|
|
77
77
|
})(codesLetter || (codesLetter = {}));
|
|
78
|
+
var keyValues;
|
|
79
|
+
(function (keyValues) {
|
|
80
|
+
keyValues["ENTER"] = "Enter";
|
|
81
|
+
keyValues["TAB"] = "Tab";
|
|
82
|
+
})(keyValues || (keyValues = {}));
|
|
78
83
|
|
|
79
84
|
// is edit input
|
|
80
85
|
function isEditInput(el) {
|
|
@@ -105,26 +110,26 @@ function isClear(code) {
|
|
|
105
110
|
function isTab(code) {
|
|
106
111
|
return codesLetter.TAB === code;
|
|
107
112
|
}
|
|
108
|
-
function
|
|
109
|
-
return
|
|
113
|
+
function isEnterKeyValue(key) {
|
|
114
|
+
return keyValues.ENTER === key;
|
|
110
115
|
}
|
|
111
116
|
function isCut(event) {
|
|
112
|
-
return (event.ctrlKey && event.code === 'KeyX') || // Ctrl + X on Windows
|
|
113
|
-
(event.metaKey && event.code === 'KeyX'); // Cmd + X on Mac
|
|
117
|
+
return ((event.ctrlKey && event.code === 'KeyX') || // Ctrl + X on Windows
|
|
118
|
+
(event.metaKey && event.code === 'KeyX')); // Cmd + X on Mac
|
|
114
119
|
}
|
|
115
120
|
function isCopy(event) {
|
|
116
|
-
return (event.ctrlKey && event.code === 'KeyC') || // Ctrl + C on Windows
|
|
117
|
-
(event.metaKey && event.code === 'KeyC'); // Cmd + C on Mac
|
|
121
|
+
return ((event.ctrlKey && event.code === 'KeyC') || // Ctrl + C on Windows
|
|
122
|
+
(event.metaKey && event.code === 'KeyC')); // Cmd + C on Mac
|
|
118
123
|
}
|
|
119
124
|
function isPaste(event) {
|
|
120
|
-
return (event.ctrlKey && event.code === 'KeyV') || // Ctrl + V on Windows
|
|
121
|
-
(event.metaKey && event.code === 'KeyV'); // Cmd + V on Mac
|
|
125
|
+
return ((event.ctrlKey && event.code === 'KeyV') || // Ctrl + V on Windows
|
|
126
|
+
(event.metaKey && event.code === 'KeyV')); // Cmd + V on Mac
|
|
122
127
|
}
|
|
123
128
|
function isAll(event) {
|
|
124
|
-
return (event.ctrlKey && event.code === 'KeyA') || // Ctrl + A on Windows
|
|
125
|
-
(event.metaKey && event.code === 'KeyA'); // Cmd + A on Mac
|
|
129
|
+
return ((event.ctrlKey && event.code === 'KeyA') || // Ctrl + A on Windows
|
|
130
|
+
(event.metaKey && event.code === 'KeyA')); // Cmd + A on Mac
|
|
126
131
|
}
|
|
127
132
|
|
|
128
|
-
export {
|
|
133
|
+
export { isEnterKeyValue as a, isCopy as b, codesLetter as c, isCut as d, isPaste as e, isAll as f, isLetterKey as g, isEditInput as h, isClear as i, isTab as j, isEditorCtrConstructible as k };
|
|
129
134
|
|
|
130
|
-
//# sourceMappingURL=key.utils-
|
|
135
|
+
//# sourceMappingURL=key.utils-c4a27968.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"key.utils-c4a27968.js","mappings":";;;;;;;AAAA,IAAK,KAkDJ;AAlDD,WAAK,KAAK;IACR,6CAAc,CAAA;IACd,+CAAe,CAAA;IACf,iDAAgB,CAAA;IAChB,2CAAa,CAAA;IACb,qCAAW,CAAA;IACX,sCAAW,CAAA;IACX,sCAAW,CAAA;IACX,gCAAQ,CAAA;IACR,oCAAU,CAAA;IACV,sCAAW,CAAA;IACX,wCAAY,CAAA;IACZ,kDAAiB,CAAA;IACjB,oDAAkB,CAAA;IAClB,yDAAqB,CAAA;IACrB,gCAAQ,CAAA;IACR,kCAAS,CAAA;IACT,4CAAc,CAAA;IACd,wCAAY,CAAA;IACZ,uCAAY,CAAA;IACZ,oCAAU,CAAA;IACV,oCAAU,CAAA;IACV,4CAAc,CAAA;IACd,+BAAO,CAAA;IACP,gDAAgB,CAAA;IAChB,8CAAe,CAAA;IACf,0CAAa,CAAA;IACb,8CAAe,CAAA;IACf,+BAAQ,CAAA;IACR,+BAAQ,CAAA;IACR,+BAAQ,CAAA;IACR,+BAAQ,CAAA;IACR,+BAAQ,CAAA;IACR,+BAAQ,CAAA;IACR,+BAAQ,CAAA;IACR,+BAAQ,CAAA;IACR,+BAAQ,CAAA;IACR,iCAAS,CAAA;IACT,iCAAS,CAAA;IACT,iCAAS,CAAA;IACT,4BAAM,CAAA;IACN,4BAAM,CAAA;IACN,4BAAM,CAAA;IACN,4BAAM,CAAA;IACN,4BAAM,CAAA;IACN,4BAAM,CAAA;IACN,4BAAM,CAAA;IACN,4BAAM,CAAA;IACN,4BAAM,CAAA;IACN,4BAAM,CAAA;AACR,CAAC,EAlDI,KAAK,KAAL,KAAK,QAkDT;IAEW;AAAZ,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,wCAAyB,CAAA;IACzB,yBAAU,CAAA;IACV,yBAAU,CAAA;IACV,yBAAU,CAAA;IACV,yBAAU,CAAA;IACV,gCAAiB,CAAA;IACjB,0BAAW,CAAA;IACX,sCAAuB,CAAA;IACvB,gCAAiB,CAAA;IACjB,yCAA0B,CAAA;IAC1B,uCAAwB,CAAA;IACxB,mCAAoB,CAAA;IACpB,uCAAwB,CAAA;IACxB,8BAAe,CAAA;AACjB,CAAC,EAhBW,WAAW,KAAX,WAAW,QAgBtB;AAED,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,4BAAe,CAAA;IACf,wBAAW,CAAA;AACb,CAAC,EAHW,SAAS,KAAT,SAAS;;AClErB;SACgB,WAAW,CAAC,EAAgB;IAC1C,OAAO,CAAC,EAAC,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,OAAO,CAAC,IAAI,aAAa,EAAE,CAAC,CAAA,CAAC;AAC5C,CAAC;AAGD;SACgB,wBAAwB,CACtC,MAAW;IAEX,OAAO,OAAO,MAAM,KAAK,UAAU,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC;AAC9E;;ACfA,IAAK,UAEJ;AAFD,WAAK,UAAU;IACb,yBAAW,CAAA;AACb,CAAC,EAFI,UAAU,KAAV,UAAU;;SCIC,WAAW,CAAC,IAAY;IACtC,QACE,IAAI,KAAK,EAAE;SACV,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC;SACzB,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,GAAG,CAAC;SAC1B,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC;SAC3B,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,CAAC;QAC5B,IAAI,IAAI,GAAG;SACV,IAAI,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,CAAC,EAC1B;AACJ,CAAC;SAiEe,OAAO,CAAC,IAAY;IAClC,OAAO,WAAW,CAAC,SAAS,KAAK,IAAI,IAAI,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC;AACvE,CAAC;SAEe,KAAK,CAAC,IAAY;IAChC,OAAO,WAAW,CAAC,GAAG,KAAK,IAAI,CAAC;AAClC,CAAC;SAKe,eAAe,CAAC,GAAW;IACzC,OAAO,SAAS,CAAC,KAAK,KAAK,GAAG,CAAC;AACjC,CAAC;SAEe,KAAK,CAAC,KAAoB;IACxC,QACE,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;SACtC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,EACxC;AACJ,CAAC;SACe,MAAM,CAAC,KAAoB;IACzC,QACE,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;SACtC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,EACxC;AACJ,CAAC;SACe,OAAO,CAAC,KAAoB;IAC1C,QACE,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;SACtC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,EACxC;AACJ,CAAC;SACe,KAAK,CAAC,KAAoB;IACxC,QACE,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;SACtC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,EACxC;AACJ;;;;","names":[],"sources":["src/utils/key.codes.ts","src/components/editors/edit.utils.ts","src/utils/platform.ts","src/utils/key.utils.ts"],"sourcesContent":["enum codes {\n MOUSE_LEFT = 1,\n MOUSE_RIGHT = 3,\n MOUSE_MIDDLE = 2,\n BACKSPACE = 8,\n COMMA = 188,\n INSERT = 45,\n DELETE = 46,\n END = 35,\n ENTER = 13,\n ESCAPE = 27,\n CONTROL = 17,\n COMMAND_LEFT = 91,\n COMMAND_RIGHT = 93,\n COMMAND_FIREFOX = 224,\n ALT = 18,\n HOME = 36,\n PAGE_DOWN = 34,\n PAGE_UP = 33,\n PERIOD = 190,\n SPACE = 32,\n SHIFT = 16,\n CAPS_LOCK = 20,\n TAB = 9,\n ARROW_RIGHT = 39,\n ARROW_LEFT = 37,\n ARROW_UP = 38,\n ARROW_DOWN = 40,\n F1 = 112,\n F2 = 113,\n F3 = 114,\n F4 = 115,\n F5 = 116,\n F6 = 117,\n F7 = 118,\n F8 = 119,\n F9 = 120,\n F10 = 121,\n F11 = 122,\n F12 = 123,\n A = 65,\n C = 67,\n D = 68,\n F = 70,\n L = 76,\n O = 79,\n P = 80,\n S = 83,\n V = 86,\n X = 88,\n}\n\nexport enum codesLetter {\n ENTER = 'Enter',\n ENTER_NUM = 'NumpadEnter',\n A = 'KeyA',\n C = 'KeyC',\n X = 'KeyX',\n V = 'KeyV',\n ESCAPE = 'Escape',\n TAB = 'Tab',\n BACKSPACE = 'Backspace',\n DELETE = 'Delete',\n ARROW_RIGHT = 'ArrowRight',\n ARROW_LEFT = 'ArrowLeft',\n ARROW_UP = 'ArrowUp',\n ARROW_DOWN = 'ArrowDown',\n SHIFT = 'Shift',\n}\n\nexport enum keyValues {\n ENTER = 'Enter', // Enter + NumpadEnter\n TAB = 'Tab',\n}\n\nexport default codes;\n","import { EDIT_INPUT_WR } from '../../utils/consts';\nimport {\n EditorCtrConstructible,\n} from '@type';\n// is edit input\nexport function isEditInput(el?: HTMLElement) {\n return !!el?.closest(`.${EDIT_INPUT_WR}`);\n}\n\n\n// Type guard for EditorCtrConstructible\nexport function isEditorCtrConstructible(\n editor: any,\n): editor is EditorCtrConstructible {\n return typeof editor === 'function' && typeof editor.prototype === 'object';\n}\n","enum osPlatform {\n mac = 'Mac',\n}\nexport default osPlatform;\n","import KeyCodesEnum, { codesLetter, keyValues } from './key.codes';\nimport OsPlatform from './platform';\nimport includes from 'lodash/includes';\n\nexport function isLetterKey(code: number): boolean {\n return (\n code === 32 || // space\n (code >= 48 && code <= 57) ||\n (code >= 96 && code <= 111) ||\n (code >= 186 && code <= 192) ||\n (code >= 219 && code <= 222) ||\n code >= 226 ||\n (code >= 65 && code <= 90)\n ); // a-z\n}\n\nexport function isMetaKey(code: number): boolean {\n const keys: KeyCodesEnum[] = [\n KeyCodesEnum.ARROW_DOWN,\n KeyCodesEnum.ARROW_UP,\n KeyCodesEnum.ARROW_LEFT,\n KeyCodesEnum.ARROW_RIGHT,\n KeyCodesEnum.HOME,\n KeyCodesEnum.END,\n KeyCodesEnum.DELETE,\n KeyCodesEnum.BACKSPACE,\n KeyCodesEnum.F1,\n KeyCodesEnum.F2,\n KeyCodesEnum.F3,\n KeyCodesEnum.F4,\n KeyCodesEnum.F5,\n KeyCodesEnum.F6,\n KeyCodesEnum.F7,\n KeyCodesEnum.F8,\n KeyCodesEnum.F9,\n KeyCodesEnum.F10,\n KeyCodesEnum.F11,\n KeyCodesEnum.F12,\n KeyCodesEnum.TAB,\n KeyCodesEnum.PAGE_DOWN,\n KeyCodesEnum.PAGE_UP,\n KeyCodesEnum.ENTER,\n KeyCodesEnum.ESCAPE,\n KeyCodesEnum.SHIFT,\n KeyCodesEnum.CAPS_LOCK,\n KeyCodesEnum.ALT,\n ];\n\n return keys.indexOf(code) !== -1;\n}\n\n// navigator.platform\nexport function isCtrlKey(code: number, platform: string): boolean {\n if (platform.includes(OsPlatform.mac)) {\n return includes(\n [\n KeyCodesEnum.COMMAND_LEFT,\n KeyCodesEnum.COMMAND_RIGHT,\n KeyCodesEnum.COMMAND_FIREFOX,\n ],\n code,\n );\n }\n\n return KeyCodesEnum.CONTROL === code;\n}\n\nexport function isCtrlMetaKey(code: KeyCodesEnum): boolean {\n return includes(\n [\n KeyCodesEnum.CONTROL,\n KeyCodesEnum.COMMAND_LEFT,\n KeyCodesEnum.COMMAND_RIGHT,\n KeyCodesEnum.COMMAND_FIREFOX,\n ],\n code,\n );\n}\n\nexport function isClear(code: string): boolean {\n return codesLetter.BACKSPACE === code || codesLetter.DELETE === code;\n}\n\nexport function isTab(code: string): boolean {\n return codesLetter.TAB === code;\n}\nexport function isTabKeyValue(key: string): boolean {\n return keyValues.TAB === key;\n}\n\nexport function isEnterKeyValue(key: string): boolean {\n return keyValues.ENTER === key;\n}\n\nexport function isCut(event: KeyboardEvent): boolean {\n return (\n (event.ctrlKey && event.code === 'KeyX') || // Ctrl + X on Windows\n (event.metaKey && event.code === 'KeyX')\n ); // Cmd + X on Mac\n}\nexport function isCopy(event: KeyboardEvent): boolean {\n return (\n (event.ctrlKey && event.code === 'KeyC') || // Ctrl + C on Windows\n (event.metaKey && event.code === 'KeyC')\n ); // Cmd + C on Mac\n}\nexport function isPaste(event: KeyboardEvent): boolean {\n return (\n (event.ctrlKey && event.code === 'KeyV') || // Ctrl + V on Windows\n (event.metaKey && event.code === 'KeyV')\n ); // Cmd + V on Mac\n}\nexport function isAll(event: KeyboardEvent): boolean {\n return (\n (event.ctrlKey && event.code === 'KeyA') || // Ctrl + A on Windows\n (event.metaKey && event.code === 'KeyA')\n ); // Cmd + A on Mac\n}\n"],"version":3}
|
|
@@ -5,15 +5,15 @@ import { h, r as registerInstance, c as createEvent, H as Host, a as getElement
|
|
|
5
5
|
import { _ as _baseIteratee, n as isArrayLike_1, o as keys_1, q as findIndex_1, u as _baseEach, v as _arrayMap, w as isArray_1, r as reduce_1, D as DataStore, b as getSourceItem, e as getSourceItemVirtualIndexByProp, m as each, s as setSourceByVirtualIndex, a as getVisibleSourceItem, f as gatherTrimmedItems, j as getItemByIndex, x as _baseProperty, y as _baseKeys, z as _getTag, A as range_1, l as setStore, B as toInteger_1, C as _isIterateeCall, g as getPhysical, d as setItems, i as getItemByPosition } from './dimension.helpers-c0c2888f.js';
|
|
6
6
|
import { B as BasePlugin, c as columnTypes, r as rowTypes, i as isRowType, D as DimensionStore } from './base.plugin-e6e2bac2.js';
|
|
7
7
|
import { _ as _baseGetTag, c as isObjectLike_1 } from './toNumber-8de324a7.js';
|
|
8
|
-
import { E as EMPTY_INDEX, b as SelectionStoreConnector } from './selection.helpers-
|
|
8
|
+
import { E as EMPTY_INDEX, b as SelectionStoreConnector } from './selection.helpers-dbf69cc1.js';
|
|
9
9
|
import { d as debounce_1 } from './debounce-7781346d.js';
|
|
10
10
|
import { R as RESIZE_INTERVAL, t as timeout, g as getScrollbarSize, U as UUID } from './index-5a722722.js';
|
|
11
11
|
import { V as ViewportStore } from './viewport.store-2dc172be.js';
|
|
12
|
-
import { F as FILTER_PROP, i as isFilterBtn } from './filter.button-
|
|
13
|
-
import { i as isGrouping, g as getGroupingName, G as GROUP_EXPANDED, a as getParsedGroup, b as isSameGroup, c as GROUP_DEPTH, P as PSEUDO_GROUP_ITEM_VALUE, d as PSEUDO_GROUP_ITEM_ID, e as GROUPING_ROW_TYPE, f as PSEUDO_GROUP_COLUMN, h as GROUP_EXPAND_EVENT, j as gatherGrouping, k as isGroupingColumn, l as getLastCell, H as HEADER_SLOT, C as CONTENT_SLOT, F as FOOTER_SLOT, D as DATA_SLOT } from './column.service-
|
|
12
|
+
import { F as FILTER_PROP, i as isFilterBtn } from './filter.button-f9883a78.js';
|
|
13
|
+
import { i as isGrouping, g as getGroupingName, G as GROUP_EXPANDED, a as getParsedGroup, b as isSameGroup, c as GROUP_DEPTH, P as PSEUDO_GROUP_ITEM_VALUE, d as PSEUDO_GROUP_ITEM_ID, e as GROUPING_ROW_TYPE, f as PSEUDO_GROUP_COLUMN, h as GROUP_EXPAND_EVENT, j as gatherGrouping, k as isGroupingColumn, l as getLastCell, H as HEADER_SLOT, C as CONTENT_SLOT, F as FOOTER_SLOT, D as DATA_SLOT } from './column.service-6aab6fac.js';
|
|
14
14
|
import { c as calculateRowHeaderSize, g as getPropertyFromEvent } from './events-77b43b40.js';
|
|
15
15
|
import { d as dispatch } from './dispatcher-8ea9187d.js';
|
|
16
|
-
import { O as ON_COLUMN_CLICK } from './header-cell-renderer-
|
|
16
|
+
import { O as ON_COLUMN_CLICK } from './header-cell-renderer-b8663a21.js';
|
|
17
17
|
|
|
18
18
|
class ThemeCompact {
|
|
19
19
|
constructor() {
|
|
@@ -1159,7 +1159,12 @@ class FilterPlugin extends BasePlugin {
|
|
|
1159
1159
|
const buttonPos = el.getBoundingClientRect();
|
|
1160
1160
|
const prop = e.detail.prop;
|
|
1161
1161
|
this.pop.filterTypes = this.getColumnFilter(e.detail.filter);
|
|
1162
|
-
this.pop.show(Object.assign(Object.assign({}, this.filterCollection[prop]), { x:
|
|
1162
|
+
this.pop.show(Object.assign(Object.assign({}, this.filterCollection[prop]), { x: -9999, y: buttonPos.y - gridPos.y + buttonPos.height, prop }));
|
|
1163
|
+
// fix filter dialog is out of view
|
|
1164
|
+
setTimeout(async () => {
|
|
1165
|
+
const { width } = this.pop.getBoundingClientRect();
|
|
1166
|
+
this.pop.style.left = Math.min(buttonPos.x - gridPos.x, gridPos.width - width - 20) + 'px';
|
|
1167
|
+
});
|
|
1163
1168
|
}
|
|
1164
1169
|
getColumnFilter(type) {
|
|
1165
1170
|
let filterType = 'string';
|
|
@@ -1224,7 +1229,7 @@ class FilterPlugin extends BasePlugin {
|
|
|
1224
1229
|
}
|
|
1225
1230
|
// applies the hasFilter to the columns to show filter icon
|
|
1226
1231
|
await this.revogrid.updateColumns(columnsToUpdate);
|
|
1227
|
-
this.emit('
|
|
1232
|
+
this.emit('afterfilterapply');
|
|
1228
1233
|
}
|
|
1229
1234
|
async clearFiltering() {
|
|
1230
1235
|
this.multiFilterItems = {};
|
|
@@ -3865,7 +3870,7 @@ const RevoGridComponent = class {
|
|
|
3865
3870
|
// Render viewport data (vertical sections)
|
|
3866
3871
|
view.dataPorts.forEach(data => {
|
|
3867
3872
|
const key = `${data.type}_${view.type}`;
|
|
3868
|
-
const dataView = (h("revogr-overlay-selection", Object.assign({}, data, { isMobileDevice: isMobile, selectionStore: data.segmentSelectionStore, onSelectall: () => this.selectionStoreConnector.selectAll(), editors: this.editors, readonly: this.readonly, range: this.range, useClipboard: this.useClipboard, applyChangesOnClose: this.applyOnClose, additionalData: this.additionalData, slot: data.slot, onCanceledit: () => this.selectionStoreConnector.setEdit(false), onSetedit: ({ detail }) => {
|
|
3873
|
+
const dataView = (h("revogr-overlay-selection", Object.assign({}, data, { isMobileDevice: isMobile, selectionStore: data.segmentSelectionStore, onSelectall: () => this.selectionStoreConnector.selectAll(), editors: this.editors, readonly: this.readonly, range: this.range, useClipboard: this.useClipboard, applyChangesOnClose: this.applyOnClose, additionalData: this.additionalData, slot: data.slot, onBeforenextvpfocus: (e) => this.selectionStoreConnector.beforeNextFocusCell(e.detail), onCanceledit: () => this.selectionStoreConnector.setEdit(false), onSetedit: ({ detail }) => {
|
|
3869
3874
|
const event = this.beforeeditstart.emit(detail);
|
|
3870
3875
|
if (!event.defaultPrevented) {
|
|
3871
3876
|
this.selectionStoreConnector.setEdit(detail.val);
|
|
@@ -3882,11 +3887,11 @@ const RevoGridComponent = class {
|
|
|
3882
3887
|
const typeCol = 'rgCol';
|
|
3883
3888
|
const viewports = this.viewportProvider.stores;
|
|
3884
3889
|
const dimensions = this.dimensionProvider.stores;
|
|
3885
|
-
return (h(Host, { key: '
|
|
3890
|
+
return (h(Host, { key: '9c290a3e6cff0f2e2375f98e020292646dc51ac6', [`${UUID}`]: this.uuid }, this.hideAttribution ? null : (h("revogr-attribution", { class: "attribution" })), h("div", { key: '48417bd11ec1eae854bcc0be942a7e4d27b630ac', class: "main-viewport", onClick: (e) => {
|
|
3886
3891
|
if (e.currentTarget === e.target) {
|
|
3887
3892
|
this.viewport.clearEdit();
|
|
3888
3893
|
}
|
|
3889
|
-
} }, h("div", { key: '
|
|
3894
|
+
} }, h("div", { key: '870bb866b39ecdd7af06a0a265891adf76c0a736', class: "viewports" }, h("slot", { key: '6a8b432762f85064e190ead625168913cd610d09', name: "viewport" }), viewportSections, h("revogr-scroll-virtual", { key: '39d6c67a2910f411131bc433441219eb5ddaafa2', class: "vertical", dimension: typeRow, viewportStore: viewports[typeRow].store, dimensionStore: dimensions[typeRow].store, ref: el => this.scrollingService.registerElement(el, 'rowScroll'), onScrollvirtual: e => this.scrollingService.proxyScroll(e.detail) }), h(OrderRenderer, { key: '5b0c5d2864da2b7fab55ca0709e5b1250e22db5f', ref: e => (this.orderService = e) }))), h("revogr-scroll-virtual", { key: 'fde782c69924d2a4d1ba5e538da28ca64e8ac292', class: "horizontal", dimension: typeCol, viewportStore: viewports[typeCol].store, dimensionStore: dimensions[typeCol].store, ref: el => this.scrollingService.registerElement(el, 'colScroll'), onScrollvirtual: e => this.scrollingService.proxyScroll(e.detail) }), this.extraElements));
|
|
3890
3895
|
}
|
|
3891
3896
|
disconnectedCallback() {
|
|
3892
3897
|
// Remove all plugins, to avoid memory leaks and unexpected behaviour when the component is removed
|