@deephaven/iris-grid 1.2.1-plotly-rc.2 → 1.2.1-plotly-rc3.3
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/AdvancedFilterCreator.js.map +1 -1
- package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
- package/dist/ColumnHeaderGroup.js.map +1 -1
- package/dist/ColumnStatistics.js.map +1 -1
- package/dist/CommonTypes.js.map +1 -1
- package/dist/CrossColumnSearch.js.map +1 -1
- package/dist/EmptyIrisGridModel.js.map +1 -1
- package/dist/FilterInputField.js.map +1 -1
- package/dist/GotoRow.js.map +1 -1
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridBottomBar.js.map +1 -1
- package/dist/IrisGridCacheUtils.js.map +1 -1
- package/dist/IrisGridCellOverflowModal.js.map +1 -1
- package/dist/IrisGridCellRendererUtils.js.map +1 -1
- package/dist/IrisGridCopyHandler.js.map +1 -1
- package/dist/IrisGridDataBarCellRenderer.js.map +1 -1
- package/dist/IrisGridIcons.js.map +1 -1
- package/dist/IrisGridMetricCalculator.js.map +1 -1
- package/dist/IrisGridModel.js.map +1 -1
- package/dist/IrisGridModelFactory.js.map +1 -1
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridPartitionSelector.js.map +1 -1
- package/dist/IrisGridPartitionedTableModel.js.map +1 -1
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/dist/IrisGridRenderer.js.map +1 -1
- package/dist/IrisGridShortcuts.js.map +1 -1
- package/dist/IrisGridTableModel.js.map +1 -1
- package/dist/IrisGridTableModelTemplate.js.map +1 -1
- package/dist/IrisGridTestUtils.js.map +1 -1
- package/dist/IrisGridTextCellRenderer.js.map +1 -1
- package/dist/IrisGridTheme.js.map +1 -1
- package/dist/IrisGridThemeProvider.js.map +1 -1
- package/dist/IrisGridTreeTableModel.js.map +1 -1
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/LazyIrisGrid.js.map +1 -1
- package/dist/MissingKeyError.js.map +1 -1
- package/dist/MissingPartitionError.js.map +1 -1
- package/dist/NoPastePermissionModal.js.map +1 -1
- package/dist/PartitionedGridModel.js.map +1 -1
- package/dist/PendingDataBottomBar.js.map +1 -1
- package/dist/ToastBottomBar.js.map +1 -1
- package/dist/declaration.d.js.map +1 -1
- package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
- package/dist/format-context-menus/DateTimeFormatContextMenu.js.map +1 -1
- package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
- package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
- package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
- package/dist/format-context-menus/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/key-handlers/ClearFilterKeyHandler.js.map +1 -1
- package/dist/key-handlers/CopyCellKeyHandler.js.map +1 -1
- package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
- package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
- package/dist/key-handlers/index.js.map +1 -1
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridCopyCellMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
- package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
- package/dist/mousehandlers/index.js.map +1 -1
- package/dist/sidebar/AdvancedSettings.js.map +1 -1
- package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
- package/dist/sidebar/AdvancedSettingsType.js.map +1 -1
- package/dist/sidebar/ChartBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnInput.js.map +1 -1
- package/dist/sidebar/DownloadServiceWorkerUtils.js.map +1 -1
- package/dist/sidebar/InputEditor.js.map +1 -1
- package/dist/sidebar/OptionType.js.map +1 -1
- package/dist/sidebar/RollupRows.js.map +1 -1
- package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
- package/dist/sidebar/TableCsvExporter.js.map +1 -1
- package/dist/sidebar/TableSaver.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationOperation.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
- package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
- package/dist/sidebar/aggregations/index.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
- package/dist/sidebar/icons/BarIcon.js.map +1 -1
- package/dist/sidebar/icons/FormatColumnWhereIcon.js.map +1 -1
- package/dist/sidebar/icons/FormatRowWhereIcon.js.map +1 -1
- package/dist/sidebar/icons/HistogramIcon.js.map +1 -1
- package/dist/sidebar/icons/LineIcon.js.map +1 -1
- package/dist/sidebar/icons/PieIcon.js.map +1 -1
- package/dist/sidebar/icons/ScatterIcon.js.map +1 -1
- package/dist/sidebar/icons/index.js.map +1 -1
- package/dist/sidebar/index.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/types.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
- package/package.json +16 -16
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VisibilityOrderingItem.js","names":["React","forwardRef","useCallback","useRef","classNames","FontAwesomeIcon","dhEye","dhEyeSlash","vsGripper","Button","Tooltip","VisibilityOrderingGroup","jsx","_jsx","jsxs","_jsxs","emptyOnClick","VisibilityOrderingItem","props","ref","value","clone","childCount","item","onVisibilityChange","onClick","onGroupDelete","onGroupColorChange","onGroupNameChange","validateGroupName","handleProps","group","modelIndex","isVisible","data","buttonRef","handleVisibilityChange","e","buttons","_buttonRef$current","flat","current","focus","handleClick","event","_objectSpread","className","isSelected","selected","children","kind","onMouseDown","onMouseEnter","icon","tooltip","onDelete","onColorChange","onNameChange","validateName"],"sources":["../../../src/sidebar/visibility-ordering-builder/VisibilityOrderingItem.tsx"],"sourcesContent":["/* eslint-disable react/prop-types */\nimport React, { forwardRef, useCallback, useRef } from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { dhEye, dhEyeSlash, vsGripper } from '@deephaven/icons';\nimport { Button, Tooltip } from '@deephaven/components';\nimport VisibilityOrderingGroup from './VisibilityOrderingGroup';\nimport { type FlattenedIrisGridTreeItem } from './sortable-tree/utilities';\nimport type ColumnHeaderGroup from '../../ColumnHeaderGroup';\n\ntype VisibilityOrderingItemProps = {\n value: string;\n clone: boolean;\n childCount: number;\n item: FlattenedIrisGridTreeItem;\n onVisibilityChange: (modelIndexes: number[], isVisible: boolean) => void;\n onClick: (name: string, event: React.MouseEvent<HTMLElement>) => void;\n onGroupDelete: (group: ColumnHeaderGroup) => void;\n onGroupColorChange: (\n group: ColumnHeaderGroup,\n color: string | undefined\n ) => void;\n onGroupNameChange: (group: ColumnHeaderGroup, name: string) => void;\n validateGroupName: (name: string) => string;\n handleProps?: Record<string, unknown>;\n};\n\nfunction emptyOnClick(): void {\n // no-op\n}\n\nconst VisibilityOrderingItem = forwardRef<\n HTMLDivElement,\n VisibilityOrderingItemProps\n>(function VisibilityOrderingItem(props, ref) {\n const {\n value,\n clone,\n childCount,\n item,\n onVisibilityChange,\n onClick,\n onGroupDelete,\n onGroupColorChange,\n onGroupNameChange,\n validateGroupName,\n handleProps,\n } = props;\n const { group, modelIndex, isVisible } = item.data;\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const handleVisibilityChange = useCallback(\n (e: React.MouseEvent) => {\n if (e.buttons === 1) {\n onVisibilityChange([modelIndex].flat(), !isVisible);\n buttonRef.current?.focus();\n }\n },\n [onVisibilityChange, modelIndex, isVisible]\n );\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n onClick(value, event);\n },\n [onClick, value]\n );\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n ref={ref}\n className={classNames('tree-item', {\n isSelected: item.selected,\n 'two-dragged': childCount === 2,\n 'multiple-dragged': childCount > 2,\n })}\n onClick={handleClick}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...handleProps}\n >\n <Button\n ref={buttonRef}\n kind=\"ghost\"\n className=\"px-1\"\n // We PropType validate onClick for Button\n onClick={emptyOnClick}\n onMouseDown={handleVisibilityChange}\n onMouseEnter={handleVisibilityChange}\n icon={isVisible ? dhEye : dhEyeSlash}\n tooltip=\"Toggle visibility\"\n />\n <span className={classNames('column-name', group && 'column-group')}>\n {/* Display a normal item if this is the drag overlay clone, even if it's a group */}\n {group && !clone ? (\n <VisibilityOrderingGroup\n group={group}\n onDelete={onGroupDelete}\n onColorChange={onGroupColorChange}\n onNameChange={onGroupNameChange}\n validateName={validateGroupName}\n />\n ) : (\n value\n )}\n </span>\n <div>\n {clone && childCount > 1 && (\n <span className=\"item-count\">{childCount}</span>\n )}\n <Tooltip>Drag to re-order</Tooltip>\n <FontAwesomeIcon icon={vsGripper} />\n </div>\n </div>\n );\n});\n\nexport default VisibilityOrderingItem;\n"],"mappings":"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"
|
|
1
|
+
{"version":3,"file":"VisibilityOrderingItem.js","names":["React","forwardRef","useCallback","useRef","classNames","FontAwesomeIcon","dhEye","dhEyeSlash","vsGripper","Button","Tooltip","VisibilityOrderingGroup","jsx","_jsx","jsxs","_jsxs","emptyOnClick","VisibilityOrderingItem","props","ref","value","clone","childCount","item","onVisibilityChange","onClick","onGroupDelete","onGroupColorChange","onGroupNameChange","validateGroupName","handleProps","group","modelIndex","isVisible","data","buttonRef","handleVisibilityChange","e","buttons","_buttonRef$current","flat","current","focus","handleClick","event","_objectSpread","className","isSelected","selected","children","kind","onMouseDown","onMouseEnter","icon","tooltip","onDelete","onColorChange","onNameChange","validateName"],"sources":["../../../src/sidebar/visibility-ordering-builder/VisibilityOrderingItem.tsx"],"sourcesContent":["/* eslint-disable react/prop-types */\nimport React, { forwardRef, useCallback, useRef } from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { dhEye, dhEyeSlash, vsGripper } from '@deephaven/icons';\nimport { Button, Tooltip } from '@deephaven/components';\nimport VisibilityOrderingGroup from './VisibilityOrderingGroup';\nimport { type FlattenedIrisGridTreeItem } from './sortable-tree/utilities';\nimport type ColumnHeaderGroup from '../../ColumnHeaderGroup';\n\ntype VisibilityOrderingItemProps = {\n value: string;\n clone: boolean;\n childCount: number;\n item: FlattenedIrisGridTreeItem;\n onVisibilityChange: (modelIndexes: number[], isVisible: boolean) => void;\n onClick: (name: string, event: React.MouseEvent<HTMLElement>) => void;\n onGroupDelete: (group: ColumnHeaderGroup) => void;\n onGroupColorChange: (\n group: ColumnHeaderGroup,\n color: string | undefined\n ) => void;\n onGroupNameChange: (group: ColumnHeaderGroup, name: string) => void;\n validateGroupName: (name: string) => string;\n handleProps?: Record<string, unknown>;\n};\n\nfunction emptyOnClick(): void {\n // no-op\n}\n\nconst VisibilityOrderingItem = forwardRef<\n HTMLDivElement,\n VisibilityOrderingItemProps\n>(function VisibilityOrderingItem(props, ref) {\n const {\n value,\n clone,\n childCount,\n item,\n onVisibilityChange,\n onClick,\n onGroupDelete,\n onGroupColorChange,\n onGroupNameChange,\n validateGroupName,\n handleProps,\n } = props;\n const { group, modelIndex, isVisible } = item.data;\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n const handleVisibilityChange = useCallback(\n (e: React.MouseEvent) => {\n if (e.buttons === 1) {\n onVisibilityChange([modelIndex].flat(), !isVisible);\n buttonRef.current?.focus();\n }\n },\n [onVisibilityChange, modelIndex, isVisible]\n );\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n onClick(value, event);\n },\n [onClick, value]\n );\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div\n ref={ref}\n className={classNames('tree-item', {\n isSelected: item.selected,\n 'two-dragged': childCount === 2,\n 'multiple-dragged': childCount > 2,\n })}\n onClick={handleClick}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...handleProps}\n >\n <Button\n ref={buttonRef}\n kind=\"ghost\"\n className=\"px-1\"\n // We PropType validate onClick for Button\n onClick={emptyOnClick}\n onMouseDown={handleVisibilityChange}\n onMouseEnter={handleVisibilityChange}\n icon={isVisible ? dhEye : dhEyeSlash}\n tooltip=\"Toggle visibility\"\n />\n <span className={classNames('column-name', group && 'column-group')}>\n {/* Display a normal item if this is the drag overlay clone, even if it's a group */}\n {group && !clone ? (\n <VisibilityOrderingGroup\n group={group}\n onDelete={onGroupDelete}\n onColorChange={onGroupColorChange}\n onNameChange={onGroupNameChange}\n validateName={validateGroupName}\n />\n ) : (\n value\n )}\n </span>\n <div>\n {clone && childCount > 1 && (\n <span className=\"item-count\">{childCount}</span>\n )}\n <Tooltip>Drag to re-order</Tooltip>\n <FontAwesomeIcon icon={vsGripper} />\n </div>\n </div>\n );\n});\n\nexport default VisibilityOrderingItem;\n"],"mappings":"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"}
|
package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointerSensorWithInteraction.js","names":["PointerSensor","PointerSensorWithInteraction","_defineProperty","eventName","handler","_ref","nativeEvent","event","isPrimary","button","isInteractiveElement","target","INTERACTIVE_ELEMENTS","element","tagName","includes","toLowerCase"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.ts"],"sourcesContent":["import type { PointerEvent } from 'react';\nimport { PointerSensor } from '@dnd-kit/core';\n\n/**\n * An extended \"PointerSensor\" that prevent some\n * interactive html element(button, input, textarea, select, option...) from dragging\n */\nexport default class PointerSensorWithInteraction extends PointerSensor {\n static activators = [\n {\n eventName: 'onPointerDown' as const,\n handler: ({ nativeEvent: event }: PointerEvent): boolean => {\n if (\n !event.isPrimary ||\n event.button !== 0 ||\n isInteractiveElement(event.target as Element)\n ) {\n return false;\n }\n\n return true;\n },\n },\n ];\n}\n\nconst INTERACTIVE_ELEMENTS = [\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'option',\n];\n\nfunction isInteractiveElement(element: Element | null): boolean {\n if (\n element?.tagName != null &&\n INTERACTIVE_ELEMENTS.includes(element.tagName.toLowerCase())\n ) {\n return true;\n }\n\n return false;\n}\n"],"mappings":";;;AACA,SAASA,aAAa,QAAQ,eAAe;;AAE7C;AACA;AACA;AACA;AACA,eAAe,MAAMC,4BAA4B,SAASD,aAAa,CAAC;AAiBvEE,eAAA,CAjBoBD,4BAA4B,gBAC3B,CAClB;EACEE,SAAS,EAAE,eAAwB;EACnCC,OAAO,EAAEC,IAAA,IAAmD;IAAA,IAAlD;MAAEC,WAAW,EAAEC;IAAoB,CAAC,GAAAF,IAAA;IAC5C,IACE,CAACE,KAAK,CAACC,SAAS,IAChBD,KAAK,CAACE,MAAM,KAAK,CAAC,IAClBC,oBAAoB,CAACH,KAAK,CAACI,MAAiB,CAAC,EAC7C;MACA,OAAO,KAAK;IACd;IAEA,OAAO,IAAI;EACb;AACF,CAAC,CACF;AAGH,IAAMC,oBAAoB,GAAG,CAC3B,QAAQ,EACR,OAAO,EACP,UAAU,EACV,QAAQ,EACR,QAAQ,CACT;AAED,SAASF,oBAAoBA,CAACG,OAAuB,EAAW;EAC9D,IACE,CAAAA,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,OAAO,KAAI,IAAI,IACxBF,oBAAoB,CAACG,QAAQ,CAACF,OAAO,CAACC,OAAO,CAACE,WAAW,CAAC,CAAC,CAAC,EAC5D;IACA,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd"
|
|
1
|
+
{"version":3,"file":"PointerSensorWithInteraction.js","names":["PointerSensor","PointerSensorWithInteraction","_defineProperty","eventName","handler","_ref","nativeEvent","event","isPrimary","button","isInteractiveElement","target","INTERACTIVE_ELEMENTS","element","tagName","includes","toLowerCase"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.ts"],"sourcesContent":["import type { PointerEvent } from 'react';\nimport { PointerSensor } from '@dnd-kit/core';\n\n/**\n * An extended \"PointerSensor\" that prevent some\n * interactive html element(button, input, textarea, select, option...) from dragging\n */\nexport default class PointerSensorWithInteraction extends PointerSensor {\n static activators = [\n {\n eventName: 'onPointerDown' as const,\n handler: ({ nativeEvent: event }: PointerEvent): boolean => {\n if (\n !event.isPrimary ||\n event.button !== 0 ||\n isInteractiveElement(event.target as Element)\n ) {\n return false;\n }\n\n return true;\n },\n },\n ];\n}\n\nconst INTERACTIVE_ELEMENTS = [\n 'button',\n 'input',\n 'textarea',\n 'select',\n 'option',\n];\n\nfunction isInteractiveElement(element: Element | null): boolean {\n if (\n element?.tagName != null &&\n INTERACTIVE_ELEMENTS.includes(element.tagName.toLowerCase())\n ) {\n return true;\n }\n\n return false;\n}\n"],"mappings":";;;AACA,SAASA,aAAa,QAAQ,eAAe;;AAE7C;AACA;AACA;AACA;AACA,eAAe,MAAMC,4BAA4B,SAASD,aAAa,CAAC;AAiBvEE,eAAA,CAjBoBD,4BAA4B,gBAC3B,CAClB;EACEE,SAAS,EAAE,eAAwB;EACnCC,OAAO,EAAEC,IAAA,IAAmD;IAAA,IAAlD;MAAEC,WAAW,EAAEC;IAAoB,CAAC,GAAAF,IAAA;IAC5C,IACE,CAACE,KAAK,CAACC,SAAS,IAChBD,KAAK,CAACE,MAAM,KAAK,CAAC,IAClBC,oBAAoB,CAACH,KAAK,CAACI,MAAiB,CAAC,EAC7C;MACA,OAAO,KAAK;IACd;IAEA,OAAO,IAAI;EACb;AACF,CAAC,CACF;AAGH,IAAMC,oBAAoB,GAAG,CAC3B,QAAQ,EACR,OAAO,EACP,UAAU,EACV,QAAQ,EACR,QAAQ,CACT;AAED,SAASF,oBAAoBA,CAACG,OAAuB,EAAW;EAC9D,IACE,CAAAA,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,OAAO,KAAI,IAAI,IACxBF,oBAAoB,CAACG,QAAQ,CAACF,OAAO,CAACC,OAAO,CAACE,WAAW,CAAC,CAAC,CAAC,EAC5D;IACA,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SortableTree.js","names":["React","useCallback","useEffect","useMemo","useRef","useState","DndContext","closestCenter","KeyboardSensor","useSensor","useSensors","MeasuringStrategy","SortableContext","verticalListSortingStrategy","flattenTree","getProjection","sortableTreeKeyboardCoordinates","PointerSensorWithInteraction","SortableTreeInner","jsx","_jsx","MEASURING","droppable","strategy","Always","CONSTRAINT","activationConstraint","distance","SortableTree","_ref","items","indicator","indentationWidth","onDragStart","onDragEnd","renderItem","activeId","setActiveId","overId","setOverId","offsetLeft","setOffsetLeft","flattenedItems","flattenedTree","filter","_ref2","id","selected","projected","sensorContext","offset","keyboardOptions","coordinateGetter","sensors","sortedIds","map","_ref3","current","handleDragStart","_ref4","active","newActiveId","document","body","style","setProperty","handleDragMove","_ref5","delta","x","handleDragOver","_ref6","_ref7","over","resetState","handleDragEnd","_ref8","depth","parentId","clonedItems","JSON","parse","stringify","overIndex","findIndex","_ref9","activeIndex","_ref10","activeTreeItem","_objectSpread","handleDragCancel","collisionDetection","measuring","onDragMove","onDragOver","onDragCancel","children"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n useSensor,\n useSensors,\n type DragStartEvent,\n type DragMoveEvent,\n type DragEndEvent,\n type DragOverEvent,\n MeasuringStrategy,\n} from '@dnd-kit/core';\nimport {\n SortableContext,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable';\nimport { flattenTree, getProjection } from './utilities';\nimport type { FlattenedItem, SensorContext, TreeItem } from './types';\nimport { sortableTreeKeyboardCoordinates } from './keyboardCoordinates';\nimport PointerSensorWithInteraction from './PointerSensorWithInteraction';\nimport SortableTreeInner from './SortableTreeInner';\n\nconst MEASURING = {\n droppable: {\n strategy: MeasuringStrategy.Always,\n },\n};\n\nconst CONSTRAINT = {\n activationConstraint: {\n distance: 5,\n },\n};\n\ninterface Props<T> {\n items: TreeItem<T>[];\n indentationWidth?: number;\n indicator?: boolean;\n onDragStart?: (id: string) => void;\n onDragEnd?: (from: FlattenedItem<T>, to: FlattenedItem<T>) => void;\n renderItem: (props: {\n clone: boolean;\n childCount?: number;\n value: string;\n item: FlattenedItem<T>;\n ref: React.Ref<HTMLDivElement>;\n handleProps?: Record<string, unknown>;\n }) => JSX.Element;\n}\n\nexport default function SortableTree<T>({\n items,\n indicator = false,\n indentationWidth = 30,\n onDragStart,\n onDragEnd,\n renderItem,\n}: Props<T>): JSX.Element {\n const [activeId, setActiveId] = useState<string | null>(null);\n const [overId, setOverId] = useState<string | null>(null);\n const [offsetLeft, setOffsetLeft] = useState(0);\n\n const flattenedItems = useMemo(() => {\n const flattenedTree = flattenTree(items);\n\n if (activeId != null) {\n return flattenedTree.filter(\n ({ id, selected }) => id === activeId || !selected\n );\n }\n\n return flattenedTree;\n }, [activeId, items]);\n\n const projected =\n activeId != null && overId != null\n ? getProjection(\n flattenedItems,\n activeId,\n overId,\n offsetLeft,\n indentationWidth\n )\n : null;\n const sensorContext: SensorContext = useRef({\n items: flattenedItems,\n offset: offsetLeft,\n });\n const keyboardOptions = useMemo(\n () => ({\n coordinateGetter: sortableTreeKeyboardCoordinates(\n sensorContext,\n indicator,\n indentationWidth\n ),\n }),\n [indentationWidth, indicator]\n );\n\n const sensors = useSensors(\n useSensor(PointerSensorWithInteraction, CONSTRAINT),\n useSensor(KeyboardSensor, keyboardOptions)\n );\n\n const sortedIds = useMemo(\n () => flattenedItems.map(({ id }) => id),\n [flattenedItems]\n );\n\n useEffect(() => {\n sensorContext.current = {\n items: flattenedItems,\n offset: offsetLeft,\n };\n }, [flattenedItems, offsetLeft]);\n\n const handleDragStart = useCallback(\n ({ active: { id: newActiveId } }: DragStartEvent) => {\n setActiveId(newActiveId as string);\n setOverId(newActiveId as string);\n onDragStart?.(newActiveId as string);\n\n document.body.style.setProperty('cursor', 'grabbing');\n },\n [onDragStart]\n );\n\n const handleDragMove = useCallback(({ delta }: DragMoveEvent) => {\n setOffsetLeft(delta.x);\n }, []);\n\n const handleDragOver = useCallback(({ over }: DragOverEvent) => {\n setOverId((over?.id as string) ?? null);\n }, []);\n\n const resetState = useCallback(() => {\n setOverId(null);\n setActiveId(null);\n setOffsetLeft(0);\n\n document.body.style.setProperty('cursor', '');\n }, []);\n\n const handleDragEnd = useCallback(\n ({ active, over }: DragEndEvent) => {\n resetState();\n\n if (projected && over) {\n const { depth, parentId } = projected;\n\n const clonedItems: FlattenedItem<T>[] = JSON.parse(\n JSON.stringify(flattenTree(items))\n );\n const overIndex = clonedItems.findIndex(({ id }) => id === over.id);\n const activeIndex = clonedItems.findIndex(({ id }) => id === active.id);\n const activeTreeItem = clonedItems[activeIndex];\n\n clonedItems[activeIndex] = { ...activeTreeItem, depth, parentId };\n\n onDragEnd?.(activeTreeItem, {\n ...clonedItems[overIndex],\n parentId: projected.parentId,\n });\n }\n },\n [items, onDragEnd, projected, resetState]\n );\n\n const handleDragCancel = useCallback(() => {\n resetState();\n }, [resetState]);\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n measuring={MEASURING}\n onDragStart={handleDragStart}\n onDragMove={handleDragMove}\n onDragOver={handleDragOver}\n onDragEnd={handleDragEnd}\n onDragCancel={handleDragCancel}\n >\n <SortableContext items={sortedIds} strategy={verticalListSortingStrategy}>\n <SortableTreeInner\n items={flattenedItems}\n renderItem={renderItem}\n indicator={indicator}\n indentationWidth={indentationWidth}\n activeId={activeId}\n overId={overId}\n offsetLeft={offsetLeft}\n />\n </SortableContext>\n </DndContext>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"SortableTree.js","names":["React","useCallback","useEffect","useMemo","useRef","useState","DndContext","closestCenter","KeyboardSensor","useSensor","useSensors","MeasuringStrategy","SortableContext","verticalListSortingStrategy","flattenTree","getProjection","sortableTreeKeyboardCoordinates","PointerSensorWithInteraction","SortableTreeInner","jsx","_jsx","MEASURING","droppable","strategy","Always","CONSTRAINT","activationConstraint","distance","SortableTree","_ref","items","indicator","indentationWidth","onDragStart","onDragEnd","renderItem","activeId","setActiveId","overId","setOverId","offsetLeft","setOffsetLeft","flattenedItems","flattenedTree","filter","_ref2","id","selected","projected","sensorContext","offset","keyboardOptions","coordinateGetter","sensors","sortedIds","map","_ref3","current","handleDragStart","_ref4","active","newActiveId","document","body","style","setProperty","handleDragMove","_ref5","delta","x","handleDragOver","_ref6","_ref7","over","resetState","handleDragEnd","_ref8","depth","parentId","clonedItems","JSON","parse","stringify","overIndex","findIndex","_ref9","activeIndex","_ref10","activeTreeItem","_objectSpread","handleDragCancel","collisionDetection","measuring","onDragMove","onDragOver","onDragCancel","children"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.tsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n DndContext,\n closestCenter,\n KeyboardSensor,\n useSensor,\n useSensors,\n type DragStartEvent,\n type DragMoveEvent,\n type DragEndEvent,\n type DragOverEvent,\n MeasuringStrategy,\n} from '@dnd-kit/core';\nimport {\n SortableContext,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable';\nimport { flattenTree, getProjection } from './utilities';\nimport type { FlattenedItem, SensorContext, TreeItem } from './types';\nimport { sortableTreeKeyboardCoordinates } from './keyboardCoordinates';\nimport PointerSensorWithInteraction from './PointerSensorWithInteraction';\nimport SortableTreeInner from './SortableTreeInner';\n\nconst MEASURING = {\n droppable: {\n strategy: MeasuringStrategy.Always,\n },\n};\n\nconst CONSTRAINT = {\n activationConstraint: {\n distance: 5,\n },\n};\n\ninterface Props<T> {\n items: TreeItem<T>[];\n indentationWidth?: number;\n indicator?: boolean;\n onDragStart?: (id: string) => void;\n onDragEnd?: (from: FlattenedItem<T>, to: FlattenedItem<T>) => void;\n renderItem: (props: {\n clone: boolean;\n childCount?: number;\n value: string;\n item: FlattenedItem<T>;\n ref: React.Ref<HTMLDivElement>;\n handleProps?: Record<string, unknown>;\n }) => JSX.Element;\n}\n\nexport default function SortableTree<T>({\n items,\n indicator = false,\n indentationWidth = 30,\n onDragStart,\n onDragEnd,\n renderItem,\n}: Props<T>): JSX.Element {\n const [activeId, setActiveId] = useState<string | null>(null);\n const [overId, setOverId] = useState<string | null>(null);\n const [offsetLeft, setOffsetLeft] = useState(0);\n\n const flattenedItems = useMemo(() => {\n const flattenedTree = flattenTree(items);\n\n if (activeId != null) {\n return flattenedTree.filter(\n ({ id, selected }) => id === activeId || !selected\n );\n }\n\n return flattenedTree;\n }, [activeId, items]);\n\n const projected =\n activeId != null && overId != null\n ? getProjection(\n flattenedItems,\n activeId,\n overId,\n offsetLeft,\n indentationWidth\n )\n : null;\n const sensorContext: SensorContext = useRef({\n items: flattenedItems,\n offset: offsetLeft,\n });\n const keyboardOptions = useMemo(\n () => ({\n coordinateGetter: sortableTreeKeyboardCoordinates(\n sensorContext,\n indicator,\n indentationWidth\n ),\n }),\n [indentationWidth, indicator]\n );\n\n const sensors = useSensors(\n useSensor(PointerSensorWithInteraction, CONSTRAINT),\n useSensor(KeyboardSensor, keyboardOptions)\n );\n\n const sortedIds = useMemo(\n () => flattenedItems.map(({ id }) => id),\n [flattenedItems]\n );\n\n useEffect(() => {\n sensorContext.current = {\n items: flattenedItems,\n offset: offsetLeft,\n };\n }, [flattenedItems, offsetLeft]);\n\n const handleDragStart = useCallback(\n ({ active: { id: newActiveId } }: DragStartEvent) => {\n setActiveId(newActiveId as string);\n setOverId(newActiveId as string);\n onDragStart?.(newActiveId as string);\n\n document.body.style.setProperty('cursor', 'grabbing');\n },\n [onDragStart]\n );\n\n const handleDragMove = useCallback(({ delta }: DragMoveEvent) => {\n setOffsetLeft(delta.x);\n }, []);\n\n const handleDragOver = useCallback(({ over }: DragOverEvent) => {\n setOverId((over?.id as string) ?? null);\n }, []);\n\n const resetState = useCallback(() => {\n setOverId(null);\n setActiveId(null);\n setOffsetLeft(0);\n\n document.body.style.setProperty('cursor', '');\n }, []);\n\n const handleDragEnd = useCallback(\n ({ active, over }: DragEndEvent) => {\n resetState();\n\n if (projected && over) {\n const { depth, parentId } = projected;\n\n const clonedItems: FlattenedItem<T>[] = JSON.parse(\n JSON.stringify(flattenTree(items))\n );\n const overIndex = clonedItems.findIndex(({ id }) => id === over.id);\n const activeIndex = clonedItems.findIndex(({ id }) => id === active.id);\n const activeTreeItem = clonedItems[activeIndex];\n\n clonedItems[activeIndex] = { ...activeTreeItem, depth, parentId };\n\n onDragEnd?.(activeTreeItem, {\n ...clonedItems[overIndex],\n parentId: projected.parentId,\n });\n }\n },\n [items, onDragEnd, projected, resetState]\n );\n\n const handleDragCancel = useCallback(() => {\n resetState();\n }, [resetState]);\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n measuring={MEASURING}\n onDragStart={handleDragStart}\n onDragMove={handleDragMove}\n onDragOver={handleDragOver}\n onDragEnd={handleDragEnd}\n onDragCancel={handleDragCancel}\n >\n <SortableContext items={sortedIds} strategy={verticalListSortingStrategy}>\n <SortableTreeInner\n items={flattenedItems}\n renderItem={renderItem}\n indicator={indicator}\n indentationWidth={indentationWidth}\n activeId={activeId}\n overId={overId}\n offsetLeft={offsetLeft}\n />\n </SortableContext>\n </DndContext>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SortableTreeInner.js","names":["React","useEffect","useRef","createPortal","classNames","DragOverlay","defaultDropAnimation","useDndContext","CSS","getProjection","getChildCount","SortableTreeItem","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","dropAnimationConfig","keyframes","_ref","transform","opacity","Transform","toString","initial","_objectSpread","final","x","y","easing","sideEffects","_ref2","active","node","animate","duration","offsetY","adjustToCursor","args","_offsetY","activeNodeRect","activatorEvent","PointerEvent","Math","floor","clientY","top","height","SortableTreeInner","_ref3","items","renderItem","indentationWidth","indicator","activeId","overId","offsetLeft","context","contextRef","updateContextRef","current","remeasureContainers","measureDroppableContainers","map","_ref4","id","projected","sensorContext","offset","activeItem","find","_ref5","children","className","item","depth","value","dropAnimation","modifiers","clone","childCount","document","body"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames';\nimport {\n DragOverlay,\n type DropAnimation,\n type Modifier,\n defaultDropAnimation,\n useDndContext,\n} from '@dnd-kit/core';\nimport { CSS } from '@dnd-kit/utilities';\nimport { getProjection, getChildCount } from './utilities';\nimport type { FlattenedItem, SensorContext } from './types';\nimport { SortableTreeItem } from './SortableTreeItem';\n\nconst dropAnimationConfig: DropAnimation = {\n keyframes({ transform }) {\n return [\n { opacity: 1, transform: CSS.Transform.toString(transform.initial) },\n {\n opacity: 0,\n transform: CSS.Transform.toString({\n ...transform.final,\n x: transform.final.x + 5,\n y: transform.final.y + 5,\n }),\n },\n ];\n },\n easing: 'ease-out',\n sideEffects({ active }) {\n active.node.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: defaultDropAnimation.duration,\n easing: defaultDropAnimation.easing,\n });\n },\n};\n\n// Used to track the offset for adjustToCursor\n// Once drag starts, set this. Once it ends, null this\nlet offsetY: number | null = null;\n\n/**\n * This adjusts the transform to move to the cursor if it gets shifted due to multi-select.\n * With multi-select, the selected items (except dragged) are removed on drag.\n * This can cause the overlay item to disconnect from the cursor in some cases.\n * E.g. select first 3 items, start dragging from 3rd item.\n * Without this modifier, the drag overlay will be shifted 60px up from the cursor after the items are removed.\n *\n * This assumes all items are the same height as the dragged item\n * @param args Modifier args from dnd-kit\n * @returns Transform so that the dragged item stays on the cursor\n */\nfunction adjustToCursor(args: Parameters<Modifier>[0]): {\n y: number;\n x: number;\n scaleX: number;\n scaleY: number;\n} {\n if (\n offsetY == null &&\n args.activeNodeRect &&\n args.activatorEvent instanceof PointerEvent\n ) {\n offsetY =\n Math.floor(\n (args.activatorEvent.clientY - args.activeNodeRect.top) /\n args.activeNodeRect.height\n ) * args.activeNodeRect.height;\n }\n\n if (!args.activeNodeRect) {\n offsetY = null;\n }\n\n return { ...args.transform, y: args.transform.y + (offsetY ?? 0) };\n}\n\ninterface Props<T> {\n items: FlattenedItem<T>[];\n indentationWidth?: number;\n indicator?: boolean;\n renderItem: (props: {\n clone: boolean;\n childCount?: number;\n value: string;\n item: FlattenedItem<T>;\n ref: React.Ref<HTMLDivElement>;\n handleProps?: Record<string, unknown>;\n }) => JSX.Element;\n activeId: string | null;\n overId: string | null;\n offsetLeft: number;\n}\n\nexport default function SortableTreeInner<T>({\n items,\n renderItem,\n indentationWidth = 30,\n indicator = false,\n activeId,\n overId,\n offsetLeft,\n}: Props<T>): JSX.Element {\n const context = useDndContext();\n const contextRef = useRef(context);\n\n useEffect(\n function updateContextRef() {\n contextRef.current = context;\n },\n [context]\n );\n\n // Without this, animations are funky when using the move/sort buttons\n // dnd-kit only remeasures on drag/drop by default\n // The context object changes while dragging (items don't)\n // Using the context ref allows this to trigger properly on only items changes\n useEffect(\n function remeasureContainers() {\n contextRef.current.measureDroppableContainers(items.map(({ id }) => id));\n },\n [items]\n );\n\n const projected =\n activeId != null && overId != null\n ? getProjection(items, activeId, overId, offsetLeft, indentationWidth)\n : null;\n const sensorContext: SensorContext = useRef({\n items,\n offset: offsetLeft,\n });\n\n const activeItem =\n activeId != null ? items.find(({ id }) => id === activeId) : null;\n\n useEffect(() => {\n sensorContext.current = {\n items,\n offset: offsetLeft,\n };\n }, [items, offsetLeft]);\n\n return (\n <>\n <div\n className={classNames(\n 'tree-container',\n activeId != null && 'marching-ants'\n )}\n >\n {items.map(item => {\n const { id, depth } = item;\n return (\n <SortableTreeItem\n key={id}\n id={id}\n value={id}\n depth={id === activeId && projected ? projected.depth : depth}\n item={item}\n renderItem={renderItem}\n />\n );\n })}\n </div>\n {createPortal(\n <DragOverlay\n dropAnimation={dropAnimationConfig}\n modifiers={[adjustToCursor]}\n className=\"visibility-ordering-list\"\n >\n {activeId != null && activeItem ? (\n <SortableTreeItem\n id={activeId}\n depth={activeItem.depth}\n clone\n childCount={getChildCount(items, activeId) + 1}\n value={activeId.toString()}\n renderItem={renderItem}\n item={activeItem}\n />\n ) : null}\n </DragOverlay>,\n document.body\n )}\n </>\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"SortableTreeInner.js","names":["React","useEffect","useRef","createPortal","classNames","DragOverlay","defaultDropAnimation","useDndContext","CSS","getProjection","getChildCount","SortableTreeItem","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","dropAnimationConfig","keyframes","_ref","transform","opacity","Transform","toString","initial","_objectSpread","final","x","y","easing","sideEffects","_ref2","active","node","animate","duration","offsetY","adjustToCursor","args","_offsetY","activeNodeRect","activatorEvent","PointerEvent","Math","floor","clientY","top","height","SortableTreeInner","_ref3","items","renderItem","indentationWidth","indicator","activeId","overId","offsetLeft","context","contextRef","updateContextRef","current","remeasureContainers","measureDroppableContainers","map","_ref4","id","projected","sensorContext","offset","activeItem","find","_ref5","children","className","item","depth","value","dropAnimation","modifiers","clone","childCount","document","body"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeInner.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames';\nimport {\n DragOverlay,\n type DropAnimation,\n type Modifier,\n defaultDropAnimation,\n useDndContext,\n} from '@dnd-kit/core';\nimport { CSS } from '@dnd-kit/utilities';\nimport { getProjection, getChildCount } from './utilities';\nimport type { FlattenedItem, SensorContext } from './types';\nimport { SortableTreeItem } from './SortableTreeItem';\n\nconst dropAnimationConfig: DropAnimation = {\n keyframes({ transform }) {\n return [\n { opacity: 1, transform: CSS.Transform.toString(transform.initial) },\n {\n opacity: 0,\n transform: CSS.Transform.toString({\n ...transform.final,\n x: transform.final.x + 5,\n y: transform.final.y + 5,\n }),\n },\n ];\n },\n easing: 'ease-out',\n sideEffects({ active }) {\n active.node.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: defaultDropAnimation.duration,\n easing: defaultDropAnimation.easing,\n });\n },\n};\n\n// Used to track the offset for adjustToCursor\n// Once drag starts, set this. Once it ends, null this\nlet offsetY: number | null = null;\n\n/**\n * This adjusts the transform to move to the cursor if it gets shifted due to multi-select.\n * With multi-select, the selected items (except dragged) are removed on drag.\n * This can cause the overlay item to disconnect from the cursor in some cases.\n * E.g. select first 3 items, start dragging from 3rd item.\n * Without this modifier, the drag overlay will be shifted 60px up from the cursor after the items are removed.\n *\n * This assumes all items are the same height as the dragged item\n * @param args Modifier args from dnd-kit\n * @returns Transform so that the dragged item stays on the cursor\n */\nfunction adjustToCursor(args: Parameters<Modifier>[0]): {\n y: number;\n x: number;\n scaleX: number;\n scaleY: number;\n} {\n if (\n offsetY == null &&\n args.activeNodeRect &&\n args.activatorEvent instanceof PointerEvent\n ) {\n offsetY =\n Math.floor(\n (args.activatorEvent.clientY - args.activeNodeRect.top) /\n args.activeNodeRect.height\n ) * args.activeNodeRect.height;\n }\n\n if (!args.activeNodeRect) {\n offsetY = null;\n }\n\n return { ...args.transform, y: args.transform.y + (offsetY ?? 0) };\n}\n\ninterface Props<T> {\n items: FlattenedItem<T>[];\n indentationWidth?: number;\n indicator?: boolean;\n renderItem: (props: {\n clone: boolean;\n childCount?: number;\n value: string;\n item: FlattenedItem<T>;\n ref: React.Ref<HTMLDivElement>;\n handleProps?: Record<string, unknown>;\n }) => JSX.Element;\n activeId: string | null;\n overId: string | null;\n offsetLeft: number;\n}\n\nexport default function SortableTreeInner<T>({\n items,\n renderItem,\n indentationWidth = 30,\n indicator = false,\n activeId,\n overId,\n offsetLeft,\n}: Props<T>): JSX.Element {\n const context = useDndContext();\n const contextRef = useRef(context);\n\n useEffect(\n function updateContextRef() {\n contextRef.current = context;\n },\n [context]\n );\n\n // Without this, animations are funky when using the move/sort buttons\n // dnd-kit only remeasures on drag/drop by default\n // The context object changes while dragging (items don't)\n // Using the context ref allows this to trigger properly on only items changes\n useEffect(\n function remeasureContainers() {\n contextRef.current.measureDroppableContainers(items.map(({ id }) => id));\n },\n [items]\n );\n\n const projected =\n activeId != null && overId != null\n ? getProjection(items, activeId, overId, offsetLeft, indentationWidth)\n : null;\n const sensorContext: SensorContext = useRef({\n items,\n offset: offsetLeft,\n });\n\n const activeItem =\n activeId != null ? items.find(({ id }) => id === activeId) : null;\n\n useEffect(() => {\n sensorContext.current = {\n items,\n offset: offsetLeft,\n };\n }, [items, offsetLeft]);\n\n return (\n <>\n <div\n className={classNames(\n 'tree-container',\n activeId != null && 'marching-ants'\n )}\n >\n {items.map(item => {\n const { id, depth } = item;\n return (\n <SortableTreeItem\n key={id}\n id={id}\n value={id}\n depth={id === activeId && projected ? projected.depth : depth}\n item={item}\n renderItem={renderItem}\n />\n );\n })}\n </div>\n {createPortal(\n <DragOverlay\n dropAnimation={dropAnimationConfig}\n modifiers={[adjustToCursor]}\n className=\"visibility-ordering-list\"\n >\n {activeId != null && activeItem ? (\n <SortableTreeItem\n id={activeId}\n depth={activeItem.depth}\n clone\n childCount={getChildCount(items, activeId) + 1}\n value={activeId.toString()}\n renderItem={renderItem}\n item={activeItem}\n />\n ) : null}\n </DragOverlay>,\n document.body\n )}\n </>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SortableTreeItem.js","names":["React","useMemo","useSortable","CSS","TreeItem","jsx","_jsx","animateLayoutChanges","_ref","isSorting","wasDragging","SortableTreeItem","_ref2","id","depth","props","_objectWithoutProperties","_excluded","attributes","isDragging","listeners","setDraggableNodeRef","setDroppableNodeRef","transform","transition","transformString","Translate","toString","style","handleProps","_objectSpread","dragRef","wrapperRef","ghost","disableInteraction"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.tsx"],"sourcesContent":["/* eslint-disable import/prefer-default-export */\nimport React, { type CSSProperties, useMemo } from 'react';\nimport { type AnimateLayoutChanges, useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { TreeItem, type Props as TreeItemProps } from './TreeItem';\n\nexport interface Props<T> extends Omit<TreeItemProps<T>, 'style'> {\n id: string;\n}\n\nconst animateLayoutChanges: AnimateLayoutChanges = ({\n isSorting,\n wasDragging,\n}) => !(isSorting || wasDragging);\n\nexport function SortableTreeItem<T>({\n id,\n depth,\n ...props\n}: Props<T>): JSX.Element {\n const {\n attributes,\n isDragging,\n isSorting,\n listeners,\n setDraggableNodeRef,\n setDroppableNodeRef,\n transform,\n transition,\n } = useSortable({\n id,\n animateLayoutChanges,\n });\n\n const transformString = CSS.Translate.toString(transform);\n\n const style: CSSProperties = useMemo(\n () => ({\n transform: transformString,\n transition,\n }),\n [transformString, transition]\n );\n\n const handleProps = useMemo(\n () => ({\n ...attributes,\n ...listeners,\n style,\n }),\n [attributes, listeners, style]\n );\n\n return (\n <TreeItem\n dragRef={setDraggableNodeRef}\n wrapperRef={setDroppableNodeRef}\n depth={depth}\n ghost={isDragging}\n disableInteraction={isSorting}\n handleProps={handleProps}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n />\n );\n}\n"],"mappings":";;;;;;;;AAAA;AACA,OAAOA,KAAK,IAAwBC,OAAO,QAAQ,OAAO;AAC1D,SAAoCC,WAAW,QAAQ,mBAAmB;AAC1E,SAASC,GAAG,QAAQ,oBAAoB;AAAC,SAChCC,QAAQ;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAMjB,IAAMC,oBAA0C,GAAGC,IAAA;EAAA,IAAC;IAClDC,SAAS;IACTC;EACF,CAAC,GAAAF,IAAA;EAAA,OAAK,EAAEC,SAAS,IAAIC,WAAW,CAAC;AAAA;AAEjC,OAAO,SAASC,gBAAgBA,CAAAC,KAAA,EAIN;EAAA,IAJU;MAClCC,EAAE;MACFC;IAEQ,CAAC,GAAAF,KAAA;IADNG,KAAK,GAAAC,wBAAA,CAAAJ,KAAA,EAAAK,SAAA;EAER,IAAM;IACJC,UAAU;IACVC,UAAU;IACVV,SAAS;IACTW,SAAS;IACTC,mBAAmB;IACnBC,mBAAmB;IACnBC,SAAS;IACTC;EACF,CAAC,GAAGtB,WAAW,CAAC;IACdW,EAAE;IACFN;EACF,CAAC,CAAC;EAEF,IAAMkB,eAAe,GAAGtB,GAAG,CAACuB,SAAS,CAACC,QAAQ,CAACJ,SAAS,CAAC;EAEzD,IAAMK,KAAoB,GAAG3B,OAAO,CAClC,OAAO;IACLsB,SAAS,EAAEE,eAAe;IAC1BD;EACF,CAAC,CAAC,EACF,CAACC,eAAe,EAAED,UAAU,CAC9B,CAAC;EAED,IAAMK,WAAW,GAAG5B,OAAO,CACzB,MAAA6B,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACKZ,UAAU,GACVE,SAAS;IACZQ;EAAK,EACL,EACF,CAACV,UAAU,EAAEE,SAAS,EAAEQ,KAAK,CAC/B,CAAC;EAED,oBACEtB,IAAA,CAACF,QAAQ,EAAA0B,aAAA;IACPC,OAAO,EAAEV,mBAAoB;IAC7BW,UAAU,EAAEV,mBAAoB;IAChCR,KAAK,EAAEA,KAAM;IACbmB,KAAK,EAAEd,UAAW;IAClBe,kBAAkB,EAAEzB,SAAU;IAC9BoB,WAAW,EAAEA;IACb;EAAA,GACId,KAAK,CACV,CAAC;AAEN"
|
|
1
|
+
{"version":3,"file":"SortableTreeItem.js","names":["React","useMemo","useSortable","CSS","TreeItem","jsx","_jsx","animateLayoutChanges","_ref","isSorting","wasDragging","SortableTreeItem","_ref2","id","depth","props","_objectWithoutProperties","_excluded","attributes","isDragging","listeners","setDraggableNodeRef","setDroppableNodeRef","transform","transition","transformString","Translate","toString","style","handleProps","_objectSpread","dragRef","wrapperRef","ghost","disableInteraction"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.tsx"],"sourcesContent":["/* eslint-disable import/prefer-default-export */\nimport React, { type CSSProperties, useMemo } from 'react';\nimport { type AnimateLayoutChanges, useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { TreeItem, type Props as TreeItemProps } from './TreeItem';\n\nexport interface Props<T> extends Omit<TreeItemProps<T>, 'style'> {\n id: string;\n}\n\nconst animateLayoutChanges: AnimateLayoutChanges = ({\n isSorting,\n wasDragging,\n}) => !(isSorting || wasDragging);\n\nexport function SortableTreeItem<T>({\n id,\n depth,\n ...props\n}: Props<T>): JSX.Element {\n const {\n attributes,\n isDragging,\n isSorting,\n listeners,\n setDraggableNodeRef,\n setDroppableNodeRef,\n transform,\n transition,\n } = useSortable({\n id,\n animateLayoutChanges,\n });\n\n const transformString = CSS.Translate.toString(transform);\n\n const style: CSSProperties = useMemo(\n () => ({\n transform: transformString,\n transition,\n }),\n [transformString, transition]\n );\n\n const handleProps = useMemo(\n () => ({\n ...attributes,\n ...listeners,\n style,\n }),\n [attributes, listeners, style]\n );\n\n return (\n <TreeItem\n dragRef={setDraggableNodeRef}\n wrapperRef={setDroppableNodeRef}\n depth={depth}\n ghost={isDragging}\n disableInteraction={isSorting}\n handleProps={handleProps}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n />\n );\n}\n"],"mappings":";;;;;;;;AAAA;AACA,OAAOA,KAAK,IAAwBC,OAAO,QAAQ,OAAO;AAC1D,SAAoCC,WAAW,QAAQ,mBAAmB;AAC1E,SAASC,GAAG,QAAQ,oBAAoB;AAAC,SAChCC,QAAQ;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAMjB,IAAMC,oBAA0C,GAAGC,IAAA;EAAA,IAAC;IAClDC,SAAS;IACTC;EACF,CAAC,GAAAF,IAAA;EAAA,OAAK,EAAEC,SAAS,IAAIC,WAAW,CAAC;AAAA;AAEjC,OAAO,SAASC,gBAAgBA,CAAAC,KAAA,EAIN;EAAA,IAJU;MAClCC,EAAE;MACFC;IAEQ,CAAC,GAAAF,KAAA;IADNG,KAAK,GAAAC,wBAAA,CAAAJ,KAAA,EAAAK,SAAA;EAER,IAAM;IACJC,UAAU;IACVC,UAAU;IACVV,SAAS;IACTW,SAAS;IACTC,mBAAmB;IACnBC,mBAAmB;IACnBC,SAAS;IACTC;EACF,CAAC,GAAGtB,WAAW,CAAC;IACdW,EAAE;IACFN;EACF,CAAC,CAAC;EAEF,IAAMkB,eAAe,GAAGtB,GAAG,CAACuB,SAAS,CAACC,QAAQ,CAACJ,SAAS,CAAC;EAEzD,IAAMK,KAAoB,GAAG3B,OAAO,CAClC,OAAO;IACLsB,SAAS,EAAEE,eAAe;IAC1BD;EACF,CAAC,CAAC,EACF,CAACC,eAAe,EAAED,UAAU,CAC9B,CAAC;EAED,IAAMK,WAAW,GAAG5B,OAAO,CACzB,MAAA6B,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACKZ,UAAU,GACVE,SAAS;IACZQ;EAAK,EACL,EACF,CAACV,UAAU,EAAEE,SAAS,EAAEQ,KAAK,CAC/B,CAAC;EAED,oBACEtB,IAAA,CAACF,QAAQ,EAAA0B,aAAA;IACPC,OAAO,EAAEV,mBAAoB;IAC7BW,UAAU,EAAEV,mBAAoB;IAChCR,KAAK,EAAEA,KAAM;IACbmB,KAAK,EAAEd,UAAW;IAClBe,kBAAkB,EAAEzB,SAAU;IAC9BoB,WAAW,EAAEA;IACb;EAAA,GACId,KAAK,CACV,CAAC;AAEN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeItem.js","names":["React","useMemo","classNames","jsx","_jsx","jsxs","_jsxs","TreeItem","props","clone","depth","disableInteraction","ghost","handleProps","value","dragRef","wrapperRef","renderItem","item","childCount","depthMarkers","Array","fill","map","_","i","className","concat","renderItemProps","ref","children","displayName"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React, { useMemo } from 'react';\nimport classNames from 'classnames';\nimport type { FlattenedItem, TreeItem as TreeItemType } from './types';\nimport './TreeItem.scss';\n\nexport interface Props<T> {\n childCount?: number;\n clone?: boolean;\n depth: number;\n disableInteraction?: boolean;\n ghost?: boolean;\n handleProps?: Record<string, unknown>;\n value: string;\n item: FlattenedItem<T>;\n dragRef?: React.Ref<HTMLDivElement> | null;\n wrapperRef?: React.Ref<HTMLLIElement> | null;\n renderItem: (props: {\n ref: React.Ref<HTMLDivElement> | null;\n clone: boolean;\n childCount?: number;\n value: string;\n item: FlattenedItem<T>;\n handleProps?: Record<string, unknown>;\n }) => JSX.Element;\n}\n\nexport type TreeItemRenderFn<T> = (props: {\n ref: React.Ref<HTMLDivElement> | null;\n clone: boolean;\n childCount?: number;\n value: string;\n item: T extends TreeItemType<infer D> ? FlattenedItem<D> : FlattenedItem<T>;\n handleProps?: Record<string, unknown>;\n}) => JSX.Element;\n\nexport function TreeItem<T>(props: Props<T>): JSX.Element {\n const {\n clone = false,\n depth,\n disableInteraction = false,\n ghost = false,\n handleProps,\n value,\n dragRef = null,\n wrapperRef = null,\n renderItem,\n item,\n childCount,\n } = props;\n\n const depthMarkers = useMemo(\n () =>\n Array(depth)\n .fill(0)\n // eslint-disable-next-line react/no-array-index-key\n .map((_, i) => <span key={`depth-line-${i}`} className=\"depth-line\" />),\n [depth]\n );\n\n const renderItemProps = useMemo(\n () => ({\n ref: dragRef,\n clone,\n value,\n item,\n childCount,\n handleProps,\n }),\n [dragRef, clone, value, item, childCount, handleProps]\n );\n\n return (\n <li\n key={value}\n className={classNames('item-wrapper', {\n clone,\n ghost,\n disableInteraction,\n })}\n ref={wrapperRef}\n >\n {!clone && depthMarkers}\n {renderItem(renderItemProps)}\n </li>\n );\n}\n\nTreeItem.displayName = 'TreeItem';\n"],"mappings":"AAAA;AACA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,OAAOC,UAAU,MAAM,YAAY;AAAC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAkCpC,OAAO,SAASC,QAAQA,CAAIC,KAAe,EAAe;EACxD,IAAM;IACJC,KAAK,GAAG,KAAK;IACbC,KAAK;IACLC,kBAAkB,GAAG,KAAK;IAC1BC,KAAK,GAAG,KAAK;IACbC,WAAW;IACXC,KAAK;IACLC,OAAO,GAAG,IAAI;IACdC,UAAU,GAAG,IAAI;IACjBC,UAAU;IACVC,IAAI;IACJC;EACF,CAAC,GAAGX,KAAK;EAET,IAAMY,YAAY,GAAGnB,OAAO,CAC1B,MACEoB,KAAK,CAACX,KAAK,CAAC,CACTY,IAAI,CAAC,CAAC;EACP;EAAA,CACCC,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,kBAAKrB,IAAA;IAA8BsB,SAAS,EAAC;EAAY,iBAAAC,MAAA,CAA3BF,CAAC,CAA4B,CAAC,CAAC,EAC3E,CAACf,KAAK,CACR,CAAC;EAED,IAAMkB,eAAe,GAAG3B,OAAO,CAC7B,OAAO;IACL4B,GAAG,EAAEd,OAAO;IACZN,KAAK;IACLK,KAAK;IACLI,IAAI;IACJC,UAAU;IACVN;EACF,CAAC,CAAC,EACF,CAACE,OAAO,EAAEN,KAAK,EAAEK,KAAK,EAAEI,IAAI,EAAEC,UAAU,EAAEN,WAAW,CACvD,CAAC;EAED,oBACEP,KAAA;IAEEoB,SAAS,EAAExB,UAAU,CAAC,cAAc,EAAE;MACpCO,KAAK;MACLG,KAAK;MACLD;IACF,CAAC,CAAE;IACHkB,GAAG,EAAEb,UAAW;IAAAc,QAAA,GAEf,CAACrB,KAAK,IAAIW,YAAY,EACtBH,UAAU,CAACW,eAAe,CAAC;EAAA,GATvBd,KAUH,CAAC;AAET;AAEAP,QAAQ,CAACwB,WAAW,GAAG,UAAU"
|
|
1
|
+
{"version":3,"file":"TreeItem.js","names":["React","useMemo","classNames","jsx","_jsx","jsxs","_jsxs","TreeItem","props","clone","depth","disableInteraction","ghost","handleProps","value","dragRef","wrapperRef","renderItem","item","childCount","depthMarkers","Array","fill","map","_","i","className","concat","renderItemProps","ref","children","displayName"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport React, { useMemo } from 'react';\nimport classNames from 'classnames';\nimport type { FlattenedItem, TreeItem as TreeItemType } from './types';\nimport './TreeItem.scss';\n\nexport interface Props<T> {\n childCount?: number;\n clone?: boolean;\n depth: number;\n disableInteraction?: boolean;\n ghost?: boolean;\n handleProps?: Record<string, unknown>;\n value: string;\n item: FlattenedItem<T>;\n dragRef?: React.Ref<HTMLDivElement> | null;\n wrapperRef?: React.Ref<HTMLLIElement> | null;\n renderItem: (props: {\n ref: React.Ref<HTMLDivElement> | null;\n clone: boolean;\n childCount?: number;\n value: string;\n item: FlattenedItem<T>;\n handleProps?: Record<string, unknown>;\n }) => JSX.Element;\n}\n\nexport type TreeItemRenderFn<T> = (props: {\n ref: React.Ref<HTMLDivElement> | null;\n clone: boolean;\n childCount?: number;\n value: string;\n item: T extends TreeItemType<infer D> ? FlattenedItem<D> : FlattenedItem<T>;\n handleProps?: Record<string, unknown>;\n}) => JSX.Element;\n\nexport function TreeItem<T>(props: Props<T>): JSX.Element {\n const {\n clone = false,\n depth,\n disableInteraction = false,\n ghost = false,\n handleProps,\n value,\n dragRef = null,\n wrapperRef = null,\n renderItem,\n item,\n childCount,\n } = props;\n\n const depthMarkers = useMemo(\n () =>\n Array(depth)\n .fill(0)\n // eslint-disable-next-line react/no-array-index-key\n .map((_, i) => <span key={`depth-line-${i}`} className=\"depth-line\" />),\n [depth]\n );\n\n const renderItemProps = useMemo(\n () => ({\n ref: dragRef,\n clone,\n value,\n item,\n childCount,\n handleProps,\n }),\n [dragRef, clone, value, item, childCount, handleProps]\n );\n\n return (\n <li\n key={value}\n className={classNames('item-wrapper', {\n clone,\n ghost,\n disableInteraction,\n })}\n ref={wrapperRef}\n >\n {!clone && depthMarkers}\n {renderItem(renderItemProps)}\n </li>\n );\n}\n\nTreeItem.displayName = 'TreeItem';\n"],"mappings":"AAAA;AACA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,OAAOC,UAAU,MAAM,YAAY;AAAC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAkCpC,OAAO,SAASC,QAAQA,CAAIC,KAAe,EAAe;EACxD,IAAM;IACJC,KAAK,GAAG,KAAK;IACbC,KAAK;IACLC,kBAAkB,GAAG,KAAK;IAC1BC,KAAK,GAAG,KAAK;IACbC,WAAW;IACXC,KAAK;IACLC,OAAO,GAAG,IAAI;IACdC,UAAU,GAAG,IAAI;IACjBC,UAAU;IACVC,IAAI;IACJC;EACF,CAAC,GAAGX,KAAK;EAET,IAAMY,YAAY,GAAGnB,OAAO,CAC1B,MACEoB,KAAK,CAACX,KAAK,CAAC,CACTY,IAAI,CAAC,CAAC;EACP;EAAA,CACCC,GAAG,CAAC,CAACC,CAAC,EAAEC,CAAC,kBAAKrB,IAAA;IAA8BsB,SAAS,EAAC;EAAY,iBAAAC,MAAA,CAA3BF,CAAC,CAA4B,CAAC,CAAC,EAC3E,CAACf,KAAK,CACR,CAAC;EAED,IAAMkB,eAAe,GAAG3B,OAAO,CAC7B,OAAO;IACL4B,GAAG,EAAEd,OAAO;IACZN,KAAK;IACLK,KAAK;IACLI,IAAI;IACJC,UAAU;IACVN;EACF,CAAC,CAAC,EACF,CAACE,OAAO,EAAEN,KAAK,EAAEK,KAAK,EAAEI,IAAI,EAAEC,UAAU,EAAEN,WAAW,CACvD,CAAC;EAED,oBACEP,KAAA;IAEEoB,SAAS,EAAExB,UAAU,CAAC,cAAc,EAAE;MACpCO,KAAK;MACLG,KAAK;MACLD;IACF,CAAC,CAAE;IACHkB,GAAG,EAAEb,UAAW;IAAAc,QAAA,GAEf,CAACrB,KAAK,IAAIW,YAAY,EACtBH,UAAU,CAACW,eAAe,CAAC;EAAA,GATvBd,KAUH,CAAC;AAET;AAEAP,QAAQ,CAACwB,WAAW,GAAG,UAAU"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyboardCoordinates.js","names":["closestCorners","getFirstCollision","KeyboardCode","getProjection","DIRECTIONS","Down","Right","Up","Left","HORIZONTAL","sortableTreeKeyboardCoordinates","context","indicator","indentationWidth","event","_ref","currentCoordinates","active","over","collisionRect","droppableRects","droppableContainers","includes","code","preventDefault","current","items","offset","id","depth","maxDepth","minDepth","_objectSpread","x","undefined","containers","forEach","container","disabled","rect","get","top","push","collisions","pointerCoordinates","closestId","length","activeRect","newRect","newDroppable","newIndex","findIndex","_ref2","newItem","activeIndex","_ref3","activeItem","isBelow","modifier","nextOffset","height","newCoordinates","left","y"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.ts"],"sourcesContent":["/* eslint-disable import/prefer-default-export */\nimport {\n closestCorners,\n getFirstCollision,\n KeyboardCode,\n type KeyboardCoordinateGetter,\n type DroppableContainer,\n} from '@dnd-kit/core';\nimport type { SensorContext } from './types';\nimport { getProjection } from './utilities';\n\nconst DIRECTIONS: string[] = [\n KeyboardCode.Down,\n KeyboardCode.Right,\n KeyboardCode.Up,\n KeyboardCode.Left,\n];\n\nconst HORIZONTAL: string[] = [KeyboardCode.Left, KeyboardCode.Right];\n\nexport function sortableTreeKeyboardCoordinates(\n context: SensorContext,\n indicator: boolean,\n indentationWidth: number\n): KeyboardCoordinateGetter {\n return (\n event,\n {\n currentCoordinates,\n context: {\n active,\n over,\n collisionRect,\n droppableRects,\n droppableContainers,\n },\n }\n ) => {\n if (DIRECTIONS.includes(event.code)) {\n if (!active || !collisionRect) {\n return;\n }\n\n event.preventDefault();\n\n const {\n current: { items, offset },\n } = context;\n\n if (HORIZONTAL.includes(event.code) && over?.id != null) {\n const { depth, maxDepth, minDepth } = getProjection(\n items,\n active.id as string,\n over.id as string,\n offset,\n indentationWidth\n );\n\n switch (event.code) {\n case KeyboardCode.Left:\n if (depth > minDepth) {\n return {\n ...currentCoordinates,\n x: currentCoordinates.x - indentationWidth,\n };\n }\n break;\n case KeyboardCode.Right:\n if (depth < maxDepth) {\n return {\n ...currentCoordinates,\n x: currentCoordinates.x + indentationWidth,\n };\n }\n break;\n }\n\n return undefined;\n }\n\n const containers: DroppableContainer[] = [];\n\n droppableContainers.forEach(container => {\n if (container?.disabled || container.id === over?.id) {\n return;\n }\n\n const rect = droppableRects.get(container.id);\n\n if (!rect) {\n return;\n }\n\n switch (event.code) {\n case KeyboardCode.Down:\n if (collisionRect.top < rect.top) {\n containers.push(container);\n }\n break;\n case KeyboardCode.Up:\n if (collisionRect.top > rect.top) {\n containers.push(container);\n }\n break;\n }\n });\n\n const collisions = closestCorners({\n active,\n collisionRect,\n pointerCoordinates: null,\n droppableRects,\n droppableContainers: containers,\n });\n let closestId = getFirstCollision(collisions, 'id');\n\n if (closestId === over?.id && collisions.length > 1) {\n closestId = collisions[1].id;\n }\n\n if (closestId != null && over?.id != null) {\n const activeRect = droppableRects.get(active.id);\n const newRect = droppableRects.get(closestId);\n const newDroppable = droppableContainers.get(closestId);\n\n if (activeRect && newRect && newDroppable) {\n const newIndex = items.findIndex(({ id }) => id === closestId);\n const newItem = items[newIndex];\n const activeIndex = items.findIndex(({ id }) => id === active.id);\n const activeItem = items[activeIndex];\n\n if (newItem != null && activeItem != null) {\n const { depth } = getProjection(\n items,\n active.id as string,\n closestId as string,\n (newItem.depth - activeItem.depth) * indentationWidth,\n indentationWidth\n );\n const isBelow = newIndex > activeIndex;\n const modifier = isBelow ? 1 : -1;\n const nextOffset = indicator\n ? (collisionRect.height - activeRect.height) / 2\n : 0;\n\n const newCoordinates = {\n x: newRect.left + depth * indentationWidth,\n y: newRect.top + modifier * nextOffset,\n };\n\n return newCoordinates;\n }\n }\n }\n }\n\n return undefined;\n };\n}\n"],"mappings":"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"
|
|
1
|
+
{"version":3,"file":"keyboardCoordinates.js","names":["closestCorners","getFirstCollision","KeyboardCode","getProjection","DIRECTIONS","Down","Right","Up","Left","HORIZONTAL","sortableTreeKeyboardCoordinates","context","indicator","indentationWidth","event","_ref","currentCoordinates","active","over","collisionRect","droppableRects","droppableContainers","includes","code","preventDefault","current","items","offset","id","depth","maxDepth","minDepth","_objectSpread","x","undefined","containers","forEach","container","disabled","rect","get","top","push","collisions","pointerCoordinates","closestId","length","activeRect","newRect","newDroppable","newIndex","findIndex","_ref2","newItem","activeIndex","_ref3","activeItem","isBelow","modifier","nextOffset","height","newCoordinates","left","y"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.ts"],"sourcesContent":["/* eslint-disable import/prefer-default-export */\nimport {\n closestCorners,\n getFirstCollision,\n KeyboardCode,\n type KeyboardCoordinateGetter,\n type DroppableContainer,\n} from '@dnd-kit/core';\nimport type { SensorContext } from './types';\nimport { getProjection } from './utilities';\n\nconst DIRECTIONS: string[] = [\n KeyboardCode.Down,\n KeyboardCode.Right,\n KeyboardCode.Up,\n KeyboardCode.Left,\n];\n\nconst HORIZONTAL: string[] = [KeyboardCode.Left, KeyboardCode.Right];\n\nexport function sortableTreeKeyboardCoordinates(\n context: SensorContext,\n indicator: boolean,\n indentationWidth: number\n): KeyboardCoordinateGetter {\n return (\n event,\n {\n currentCoordinates,\n context: {\n active,\n over,\n collisionRect,\n droppableRects,\n droppableContainers,\n },\n }\n ) => {\n if (DIRECTIONS.includes(event.code)) {\n if (!active || !collisionRect) {\n return;\n }\n\n event.preventDefault();\n\n const {\n current: { items, offset },\n } = context;\n\n if (HORIZONTAL.includes(event.code) && over?.id != null) {\n const { depth, maxDepth, minDepth } = getProjection(\n items,\n active.id as string,\n over.id as string,\n offset,\n indentationWidth\n );\n\n switch (event.code) {\n case KeyboardCode.Left:\n if (depth > minDepth) {\n return {\n ...currentCoordinates,\n x: currentCoordinates.x - indentationWidth,\n };\n }\n break;\n case KeyboardCode.Right:\n if (depth < maxDepth) {\n return {\n ...currentCoordinates,\n x: currentCoordinates.x + indentationWidth,\n };\n }\n break;\n }\n\n return undefined;\n }\n\n const containers: DroppableContainer[] = [];\n\n droppableContainers.forEach(container => {\n if (container?.disabled || container.id === over?.id) {\n return;\n }\n\n const rect = droppableRects.get(container.id);\n\n if (!rect) {\n return;\n }\n\n switch (event.code) {\n case KeyboardCode.Down:\n if (collisionRect.top < rect.top) {\n containers.push(container);\n }\n break;\n case KeyboardCode.Up:\n if (collisionRect.top > rect.top) {\n containers.push(container);\n }\n break;\n }\n });\n\n const collisions = closestCorners({\n active,\n collisionRect,\n pointerCoordinates: null,\n droppableRects,\n droppableContainers: containers,\n });\n let closestId = getFirstCollision(collisions, 'id');\n\n if (closestId === over?.id && collisions.length > 1) {\n closestId = collisions[1].id;\n }\n\n if (closestId != null && over?.id != null) {\n const activeRect = droppableRects.get(active.id);\n const newRect = droppableRects.get(closestId);\n const newDroppable = droppableContainers.get(closestId);\n\n if (activeRect && newRect && newDroppable) {\n const newIndex = items.findIndex(({ id }) => id === closestId);\n const newItem = items[newIndex];\n const activeIndex = items.findIndex(({ id }) => id === active.id);\n const activeItem = items[activeIndex];\n\n if (newItem != null && activeItem != null) {\n const { depth } = getProjection(\n items,\n active.id as string,\n closestId as string,\n (newItem.depth - activeItem.depth) * indentationWidth,\n indentationWidth\n );\n const isBelow = newIndex > activeIndex;\n const modifier = isBelow ? 1 : -1;\n const nextOffset = indicator\n ? (collisionRect.height - activeRect.height) / 2\n : 0;\n\n const newCoordinates = {\n x: newRect.left + depth * indentationWidth,\n y: newRect.top + modifier * nextOffset,\n };\n\n return newCoordinates;\n }\n }\n }\n }\n\n return undefined;\n };\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["isFlattenedTreeItem","item","parentId","undefined"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/types.ts"],"sourcesContent":["import type { MutableRefObject } from 'react';\n\nexport type TreeItem<T = undefined> = {\n id: string;\n children: TreeItem<T>[];\n selected: boolean;\n} & (T extends undefined\n ? // eslint-disable-next-line @typescript-eslint/ban-types\n {}\n : {\n data: T;\n });\n\nexport type TreeItems<T = undefined> = TreeItem<T>[];\nexport type ReadonlyTreeItems<T = undefined> = readonly TreeItem<T>[];\n\nexport type FlattenedItem<T = undefined> = TreeItem<T> & {\n parentId: string | null;\n depth: number;\n index: number;\n};\n\nexport function isFlattenedTreeItem<T>(\n item: TreeItem<T>\n): item is FlattenedItem<T> {\n return (item as FlattenedItem<T>).parentId !== undefined;\n}\n\nexport type SensorContext = MutableRefObject<{\n items: FlattenedItem[];\n offset: number;\n}>;\n"],"mappings":"AAsBA,OAAO,SAASA,mBAAmBA,CACjCC,IAAiB,EACS;EAC1B,OAAQA,IAAI,CAAsBC,QAAQ,KAAKC,SAAS;AAC1D"
|
|
1
|
+
{"version":3,"file":"types.js","names":["isFlattenedTreeItem","item","parentId","undefined"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/types.ts"],"sourcesContent":["import type { MutableRefObject } from 'react';\n\nexport type TreeItem<T = undefined> = {\n id: string;\n children: TreeItem<T>[];\n selected: boolean;\n} & (T extends undefined\n ? // eslint-disable-next-line @typescript-eslint/ban-types\n {}\n : {\n data: T;\n });\n\nexport type TreeItems<T = undefined> = TreeItem<T>[];\nexport type ReadonlyTreeItems<T = undefined> = readonly TreeItem<T>[];\n\nexport type FlattenedItem<T = undefined> = TreeItem<T> & {\n parentId: string | null;\n depth: number;\n index: number;\n};\n\nexport function isFlattenedTreeItem<T>(\n item: TreeItem<T>\n): item is FlattenedItem<T> {\n return (item as FlattenedItem<T>).parentId !== undefined;\n}\n\nexport type SensorContext = MutableRefObject<{\n items: FlattenedItem[];\n offset: number;\n}>;\n"],"mappings":"AAsBA,OAAO,SAASA,mBAAmBA,CACjCC,IAAiB,EACS;EAC1B,OAAQA,IAAI,CAAsBC,QAAQ,KAAKC,SAAS;AAC1D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.js","names":["arrayMove","GridUtils","isFlattenedTreeItem","getDragDepth","offset","indentationWidth","Math","round","getTreeItem","columns","movedColumns","columnHeaderGroupMap","name","hiddenColumnSet","selectedItems","modelIndex","findIndex","col","group","get","Error","concat","modelIndexes","childIndexes","flat","id","selected","has","children","map","childName","sort","a","b","aVal","Array","isArray","data","visibleIndex","bVal","getVisibleRange","isVisible","some","index","getVisibleIndex","getTreeItems","columnHeaderGroups","hiddenColumns","items","selectedItemsSet","Set","groupMap","Map","_loop","getModelIndex","columnName","find","_ref","includes","undefined","parent","item","push","length","getProjection","activeId","overId","dragOffset","overItemIndex","_ref2","activeItemIndex","_ref3","activeItem","newItems","previousItem","nextItem","dragDepth","projectedDepth","depth","maxDepth","getMaxDepth","minDepth","getMinDepth","parentId","getParentId","_newItems$slice$rever","newParent","slice","reverse","_ref4","_previousItem$depth","_nextItem$depth","max","_ref5","flatten","arguments","reduce","acc","_objectSpread","flattenTree","every","findItemDeep","itemId","i","child","countChildren","count","_ref6","getChildCount","removeChildrenOf","ids","excludeParentIds","filter","add"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/utilities.ts"],"sourcesContent":["import { arrayMove } from '@dnd-kit/sortable';\nimport type { dh } from '@deephaven/jsapi-types';\nimport {\n GridUtils,\n type ModelIndex,\n type MoveOperation,\n} from '@deephaven/grid';\nimport type ColumnHeaderGroup from '../../../ColumnHeaderGroup';\nimport { isFlattenedTreeItem, type ReadonlyTreeItems } from './types';\nimport type { FlattenedItem, TreeItem } from './types';\n\n/**\n * Gets the depth of an item dragged with a given x-axis offset\n *\n * @param offset x-axis offset of the dragging item\n * @param indentationWidth Width of indentation for each depth\n * @returns The drag depth for the given offset\n */\nfunction getDragDepth(offset: number, indentationWidth: number): number {\n return Math.round(offset / indentationWidth);\n}\n\ninterface IrisGridTreeItemData {\n modelIndex: number | number[];\n visibleIndex: number | [number, number];\n isVisible: boolean;\n group?: ColumnHeaderGroup;\n}\n\nexport type IrisGridTreeItem = TreeItem<IrisGridTreeItemData>;\n\nexport type FlattenedIrisGridTreeItem = FlattenedItem<IrisGridTreeItemData>;\n\nfunction getTreeItem(\n columns: readonly dh.Column[],\n movedColumns: readonly MoveOperation[],\n columnHeaderGroupMap: Map<string, ColumnHeaderGroup>,\n name: string,\n hiddenColumnSet: Set<ModelIndex>,\n selectedItems: Set<string>\n): IrisGridTreeItem {\n const modelIndex = columns.findIndex(col => col.name === name);\n if (modelIndex === -1) {\n const group = columnHeaderGroupMap.get(name);\n\n if (group == null) {\n throw new Error(`Column or header group not found: ${name}`);\n }\n\n const modelIndexes = group.childIndexes.flat();\n\n return {\n id: name,\n selected: selectedItems.has(name),\n children: group.children\n .map(childName =>\n getTreeItem(\n columns,\n movedColumns,\n columnHeaderGroupMap,\n childName,\n hiddenColumnSet,\n selectedItems\n )\n )\n .sort((a, b) => {\n const aVal = Array.isArray(a.data.visibleIndex)\n ? a.data.visibleIndex[0]\n : a.data.visibleIndex;\n const bVal = Array.isArray(b.data.visibleIndex)\n ? b.data.visibleIndex[0]\n : b.data.visibleIndex;\n return aVal - bVal;\n }),\n data: {\n modelIndex: modelIndexes,\n visibleIndex: group.getVisibleRange(movedColumns),\n group,\n isVisible: modelIndexes.some(index => !hiddenColumnSet.has(index)),\n },\n };\n }\n\n return {\n id: name,\n children: [],\n selected: selectedItems.has(name),\n data: {\n modelIndex,\n visibleIndex: GridUtils.getVisibleIndex(modelIndex, movedColumns),\n isVisible: !hiddenColumnSet.has(modelIndex),\n },\n };\n}\n\nexport function getTreeItems(\n columns: readonly dh.Column[],\n movedColumns: readonly MoveOperation[],\n columnHeaderGroups: readonly ColumnHeaderGroup[],\n hiddenColumns: readonly ModelIndex[],\n selectedItems: readonly string[]\n): IrisGridTreeItem[] {\n const items: IrisGridTreeItem[] = [];\n const selectedItemsSet = new Set(selectedItems);\n const groupMap = new Map(\n columnHeaderGroups.map(group => [group.name, group])\n );\n const hiddenColumnSet = new Set(hiddenColumns);\n\n let visibleIndex = 0;\n while (visibleIndex < columns.length) {\n const modelIndex = GridUtils.getModelIndex(visibleIndex, movedColumns);\n const columnName = columns[modelIndex].name;\n\n let group = columnHeaderGroups.find(({ children }) =>\n children.includes(columnName)\n );\n while (group !== undefined && group.parent !== undefined) {\n group = groupMap.get(group.parent);\n }\n\n const item = getTreeItem(\n columns,\n movedColumns,\n groupMap,\n group ? group.name : columnName,\n hiddenColumnSet,\n selectedItemsSet\n );\n\n items.push(item);\n\n if (Array.isArray(item.data.visibleIndex)) {\n visibleIndex += item.data.visibleIndex[1] - item.data.visibleIndex[0] + 1;\n } else {\n visibleIndex += 1;\n }\n }\n\n return items;\n}\n\n/**\n * Gets the projected drop position and depth of the dragged item\n *\n * @param items List of flattened items\n * @param activeId ID of the actively dragged item\n * @param overId ID of the item currently being dragged over\n * @param dragOffset The x-axis offset of the dragged item\n * @param indentationWidth The width for each level of the tree\n * @returns The projected position and depth if the item were to be dropped\n */\nexport function getProjection(\n items: FlattenedItem[],\n activeId: string,\n overId: string,\n dragOffset: number,\n indentationWidth: number\n): {\n depth: number;\n maxDepth: number;\n minDepth: number;\n parentId: string | null;\n} {\n const overItemIndex = items.findIndex(({ id }) => id === overId);\n const activeItemIndex = items.findIndex(({ id }) => id === activeId);\n const activeItem = items[activeItemIndex];\n const newItems = arrayMove(items, activeItemIndex, overItemIndex);\n const previousItem: FlattenedItem | undefined = newItems[overItemIndex - 1];\n const nextItem = newItems[overItemIndex + 1];\n const dragDepth = getDragDepth(dragOffset, indentationWidth);\n const projectedDepth = activeItem.depth + dragDepth;\n const maxDepth = getMaxDepth({\n previousItem,\n nextItem,\n });\n const minDepth = getMinDepth({ nextItem });\n let depth = projectedDepth;\n\n if (projectedDepth >= maxDepth) {\n depth = maxDepth;\n } else if (projectedDepth < minDepth) {\n depth = minDepth;\n }\n\n return { depth, maxDepth, minDepth, parentId: getParentId() };\n\n function getParentId(): string | null {\n if (depth === 0 || !previousItem) {\n return null;\n }\n\n if (depth === previousItem.depth) {\n return previousItem.parentId;\n }\n\n if (depth > previousItem.depth) {\n return previousItem.id;\n }\n\n const newParent = newItems\n .slice(0, overItemIndex)\n .reverse()\n .find(item => item.depth === depth)?.parentId;\n\n return newParent ?? null;\n }\n}\n\nfunction getMaxDepth({\n previousItem,\n nextItem,\n}: {\n previousItem?: FlattenedItem;\n nextItem?: FlattenedItem;\n}): number {\n return Math.max(previousItem?.depth ?? 0, nextItem?.depth ?? 0);\n}\n\nfunction getMinDepth({\n nextItem,\n}: {\n nextItem: FlattenedItem | undefined;\n}): number {\n if (nextItem) {\n return nextItem.depth;\n }\n\n return 0;\n}\n\n/**\n * Helper function to recursively flatten a tree\n *\n * @param items Items to flatten\n * @param parentId The current parentId of the items\n * @param depth The current depth of the items\n * @returns Flattened items\n */\nfunction flatten<T>(\n items: ReadonlyTreeItems<T>,\n parentId: string | null = null,\n depth = 0\n): FlattenedItem<T>[] {\n return items.reduce<FlattenedItem<T>[]>(\n (acc, item, index) => [\n ...acc,\n { ...item, parentId, depth, index },\n ...flatten(item.children, item.id, depth + 1),\n ],\n []\n );\n}\n\n/**\n * Flattens a tree into a 1D array given the items\n * @param items The tree items to flatten\n * @returns The flattened tree items list\n */\nexport function flattenTree<T>(\n items: ReadonlyTreeItems<T>\n): FlattenedItem<T>[] {\n // Should help prevent double flattening since FlattenedItems are valid TreeItems\n if (items.every(isFlattenedTreeItem)) {\n return [...items];\n }\n return flatten(items);\n}\n\n/**\n * Recursively checks for the item in a list of items.\n * The list does not have to be flattened prior to searching.\n *\n * @param items Items to search\n * @param itemId Item to find\n * @returns The item if found\n */\nexport function findItemDeep(\n items: ReadonlyTreeItems,\n itemId: string\n): TreeItem | undefined {\n for (let i = 0; i < items.length; i += 1) {\n const item = items[i];\n const { id, children } = item;\n\n if (id === itemId) {\n return item;\n }\n\n if (children.length) {\n const child = findItemDeep(children, itemId);\n\n if (child) {\n return child;\n }\n }\n }\n\n return undefined;\n}\n\nfunction countChildren(items: TreeItem[], count = 0): number {\n return items.reduce((acc, { children }) => {\n if (children.length) {\n return countChildren(children, acc + 1);\n }\n\n return acc + 1;\n }, count);\n}\n\nexport function getChildCount(items: ReadonlyTreeItems, id: string): number {\n const item = findItemDeep(items, id);\n\n return item ? countChildren(item.children) : 0;\n}\n\n/**\n * Removes the children of the list of parents from the list of flattened items\n *\n * @param items The flattened items to remove from\n * @param ids The parents we want to remove the children of\n * @returns The flattened items without the children of the parents\n */\nexport function removeChildrenOf<T>(\n items: FlattenedItem<T>[],\n ids: string[]\n): FlattenedItem<T>[] {\n const excludeParentIds = new Set(ids);\n\n return items.filter(item => {\n if (item.parentId != null && excludeParentIds.has(item.parentId)) {\n if (item.children.length) {\n excludeParentIds.add(item.id);\n }\n return false;\n }\n\n return true;\n });\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"utilities.js","names":["arrayMove","GridUtils","isFlattenedTreeItem","getDragDepth","offset","indentationWidth","Math","round","getTreeItem","columns","movedColumns","columnHeaderGroupMap","name","hiddenColumnSet","selectedItems","modelIndex","findIndex","col","group","get","Error","concat","modelIndexes","childIndexes","flat","id","selected","has","children","map","childName","sort","a","b","aVal","Array","isArray","data","visibleIndex","bVal","getVisibleRange","isVisible","some","index","getVisibleIndex","getTreeItems","columnHeaderGroups","hiddenColumns","items","selectedItemsSet","Set","groupMap","Map","_loop","getModelIndex","columnName","find","_ref","includes","undefined","parent","item","push","length","getProjection","activeId","overId","dragOffset","overItemIndex","_ref2","activeItemIndex","_ref3","activeItem","newItems","previousItem","nextItem","dragDepth","projectedDepth","depth","maxDepth","getMaxDepth","minDepth","getMinDepth","parentId","getParentId","_newItems$slice$rever","newParent","slice","reverse","_ref4","_previousItem$depth","_nextItem$depth","max","_ref5","flatten","arguments","reduce","acc","_objectSpread","flattenTree","every","findItemDeep","itemId","i","child","countChildren","count","_ref6","getChildCount","removeChildrenOf","ids","excludeParentIds","filter","add"],"sources":["../../../../src/sidebar/visibility-ordering-builder/sortable-tree/utilities.ts"],"sourcesContent":["import { arrayMove } from '@dnd-kit/sortable';\nimport type { dh } from '@deephaven/jsapi-types';\nimport {\n GridUtils,\n type ModelIndex,\n type MoveOperation,\n} from '@deephaven/grid';\nimport type ColumnHeaderGroup from '../../../ColumnHeaderGroup';\nimport { isFlattenedTreeItem, type ReadonlyTreeItems } from './types';\nimport type { FlattenedItem, TreeItem } from './types';\n\n/**\n * Gets the depth of an item dragged with a given x-axis offset\n *\n * @param offset x-axis offset of the dragging item\n * @param indentationWidth Width of indentation for each depth\n * @returns The drag depth for the given offset\n */\nfunction getDragDepth(offset: number, indentationWidth: number): number {\n return Math.round(offset / indentationWidth);\n}\n\ninterface IrisGridTreeItemData {\n modelIndex: number | number[];\n visibleIndex: number | [number, number];\n isVisible: boolean;\n group?: ColumnHeaderGroup;\n}\n\nexport type IrisGridTreeItem = TreeItem<IrisGridTreeItemData>;\n\nexport type FlattenedIrisGridTreeItem = FlattenedItem<IrisGridTreeItemData>;\n\nfunction getTreeItem(\n columns: readonly dh.Column[],\n movedColumns: readonly MoveOperation[],\n columnHeaderGroupMap: Map<string, ColumnHeaderGroup>,\n name: string,\n hiddenColumnSet: Set<ModelIndex>,\n selectedItems: Set<string>\n): IrisGridTreeItem {\n const modelIndex = columns.findIndex(col => col.name === name);\n if (modelIndex === -1) {\n const group = columnHeaderGroupMap.get(name);\n\n if (group == null) {\n throw new Error(`Column or header group not found: ${name}`);\n }\n\n const modelIndexes = group.childIndexes.flat();\n\n return {\n id: name,\n selected: selectedItems.has(name),\n children: group.children\n .map(childName =>\n getTreeItem(\n columns,\n movedColumns,\n columnHeaderGroupMap,\n childName,\n hiddenColumnSet,\n selectedItems\n )\n )\n .sort((a, b) => {\n const aVal = Array.isArray(a.data.visibleIndex)\n ? a.data.visibleIndex[0]\n : a.data.visibleIndex;\n const bVal = Array.isArray(b.data.visibleIndex)\n ? b.data.visibleIndex[0]\n : b.data.visibleIndex;\n return aVal - bVal;\n }),\n data: {\n modelIndex: modelIndexes,\n visibleIndex: group.getVisibleRange(movedColumns),\n group,\n isVisible: modelIndexes.some(index => !hiddenColumnSet.has(index)),\n },\n };\n }\n\n return {\n id: name,\n children: [],\n selected: selectedItems.has(name),\n data: {\n modelIndex,\n visibleIndex: GridUtils.getVisibleIndex(modelIndex, movedColumns),\n isVisible: !hiddenColumnSet.has(modelIndex),\n },\n };\n}\n\nexport function getTreeItems(\n columns: readonly dh.Column[],\n movedColumns: readonly MoveOperation[],\n columnHeaderGroups: readonly ColumnHeaderGroup[],\n hiddenColumns: readonly ModelIndex[],\n selectedItems: readonly string[]\n): IrisGridTreeItem[] {\n const items: IrisGridTreeItem[] = [];\n const selectedItemsSet = new Set(selectedItems);\n const groupMap = new Map(\n columnHeaderGroups.map(group => [group.name, group])\n );\n const hiddenColumnSet = new Set(hiddenColumns);\n\n let visibleIndex = 0;\n while (visibleIndex < columns.length) {\n const modelIndex = GridUtils.getModelIndex(visibleIndex, movedColumns);\n const columnName = columns[modelIndex].name;\n\n let group = columnHeaderGroups.find(({ children }) =>\n children.includes(columnName)\n );\n while (group !== undefined && group.parent !== undefined) {\n group = groupMap.get(group.parent);\n }\n\n const item = getTreeItem(\n columns,\n movedColumns,\n groupMap,\n group ? group.name : columnName,\n hiddenColumnSet,\n selectedItemsSet\n );\n\n items.push(item);\n\n if (Array.isArray(item.data.visibleIndex)) {\n visibleIndex += item.data.visibleIndex[1] - item.data.visibleIndex[0] + 1;\n } else {\n visibleIndex += 1;\n }\n }\n\n return items;\n}\n\n/**\n * Gets the projected drop position and depth of the dragged item\n *\n * @param items List of flattened items\n * @param activeId ID of the actively dragged item\n * @param overId ID of the item currently being dragged over\n * @param dragOffset The x-axis offset of the dragged item\n * @param indentationWidth The width for each level of the tree\n * @returns The projected position and depth if the item were to be dropped\n */\nexport function getProjection(\n items: FlattenedItem[],\n activeId: string,\n overId: string,\n dragOffset: number,\n indentationWidth: number\n): {\n depth: number;\n maxDepth: number;\n minDepth: number;\n parentId: string | null;\n} {\n const overItemIndex = items.findIndex(({ id }) => id === overId);\n const activeItemIndex = items.findIndex(({ id }) => id === activeId);\n const activeItem = items[activeItemIndex];\n const newItems = arrayMove(items, activeItemIndex, overItemIndex);\n const previousItem: FlattenedItem | undefined = newItems[overItemIndex - 1];\n const nextItem = newItems[overItemIndex + 1];\n const dragDepth = getDragDepth(dragOffset, indentationWidth);\n const projectedDepth = activeItem.depth + dragDepth;\n const maxDepth = getMaxDepth({\n previousItem,\n nextItem,\n });\n const minDepth = getMinDepth({ nextItem });\n let depth = projectedDepth;\n\n if (projectedDepth >= maxDepth) {\n depth = maxDepth;\n } else if (projectedDepth < minDepth) {\n depth = minDepth;\n }\n\n return { depth, maxDepth, minDepth, parentId: getParentId() };\n\n function getParentId(): string | null {\n if (depth === 0 || !previousItem) {\n return null;\n }\n\n if (depth === previousItem.depth) {\n return previousItem.parentId;\n }\n\n if (depth > previousItem.depth) {\n return previousItem.id;\n }\n\n const newParent = newItems\n .slice(0, overItemIndex)\n .reverse()\n .find(item => item.depth === depth)?.parentId;\n\n return newParent ?? null;\n }\n}\n\nfunction getMaxDepth({\n previousItem,\n nextItem,\n}: {\n previousItem?: FlattenedItem;\n nextItem?: FlattenedItem;\n}): number {\n return Math.max(previousItem?.depth ?? 0, nextItem?.depth ?? 0);\n}\n\nfunction getMinDepth({\n nextItem,\n}: {\n nextItem: FlattenedItem | undefined;\n}): number {\n if (nextItem) {\n return nextItem.depth;\n }\n\n return 0;\n}\n\n/**\n * Helper function to recursively flatten a tree\n *\n * @param items Items to flatten\n * @param parentId The current parentId of the items\n * @param depth The current depth of the items\n * @returns Flattened items\n */\nfunction flatten<T>(\n items: ReadonlyTreeItems<T>,\n parentId: string | null = null,\n depth = 0\n): FlattenedItem<T>[] {\n return items.reduce<FlattenedItem<T>[]>(\n (acc, item, index) => [\n ...acc,\n { ...item, parentId, depth, index },\n ...flatten(item.children, item.id, depth + 1),\n ],\n []\n );\n}\n\n/**\n * Flattens a tree into a 1D array given the items\n * @param items The tree items to flatten\n * @returns The flattened tree items list\n */\nexport function flattenTree<T>(\n items: ReadonlyTreeItems<T>\n): FlattenedItem<T>[] {\n // Should help prevent double flattening since FlattenedItems are valid TreeItems\n if (items.every(isFlattenedTreeItem)) {\n return [...items];\n }\n return flatten(items);\n}\n\n/**\n * Recursively checks for the item in a list of items.\n * The list does not have to be flattened prior to searching.\n *\n * @param items Items to search\n * @param itemId Item to find\n * @returns The item if found\n */\nexport function findItemDeep(\n items: ReadonlyTreeItems,\n itemId: string\n): TreeItem | undefined {\n for (let i = 0; i < items.length; i += 1) {\n const item = items[i];\n const { id, children } = item;\n\n if (id === itemId) {\n return item;\n }\n\n if (children.length) {\n const child = findItemDeep(children, itemId);\n\n if (child) {\n return child;\n }\n }\n }\n\n return undefined;\n}\n\nfunction countChildren(items: TreeItem[], count = 0): number {\n return items.reduce((acc, { children }) => {\n if (children.length) {\n return countChildren(children, acc + 1);\n }\n\n return acc + 1;\n }, count);\n}\n\nexport function getChildCount(items: ReadonlyTreeItems, id: string): number {\n const item = findItemDeep(items, id);\n\n return item ? countChildren(item.children) : 0;\n}\n\n/**\n * Removes the children of the list of parents from the list of flattened items\n *\n * @param items The flattened items to remove from\n * @param ids The parents we want to remove the children of\n * @returns The flattened items without the children of the parents\n */\nexport function removeChildrenOf<T>(\n items: FlattenedItem<T>[],\n ids: string[]\n): FlattenedItem<T>[] {\n const excludeParentIds = new Set(ids);\n\n return items.filter(item => {\n if (item.parentId != null && excludeParentIds.has(item.parentId)) {\n if (item.children.length) {\n excludeParentIds.add(item.id);\n }\n return false;\n }\n\n return true;\n });\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/iris-grid",
|
|
3
|
-
"version": "1.2.1-plotly-
|
|
3
|
+
"version": "1.2.1-plotly-rc3.3+cfd3663b",
|
|
4
4
|
"description": "Deephaven Iris Grid",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -31,18 +31,18 @@
|
|
|
31
31
|
"build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@deephaven/components": "^1.2.1-plotly-
|
|
35
|
-
"@deephaven/console": "^1.2.1-plotly-
|
|
36
|
-
"@deephaven/filters": "^1.2.1-plotly-
|
|
37
|
-
"@deephaven/grid": "^1.2.1-plotly-
|
|
38
|
-
"@deephaven/icons": "^1.2.1-plotly-
|
|
39
|
-
"@deephaven/jsapi-components": "^1.2.1-plotly-
|
|
34
|
+
"@deephaven/components": "^1.2.1-plotly-rc3.3+cfd3663b",
|
|
35
|
+
"@deephaven/console": "^1.2.1-plotly-rc3.3+cfd3663b",
|
|
36
|
+
"@deephaven/filters": "^1.2.1-plotly-rc3.3+cfd3663b",
|
|
37
|
+
"@deephaven/grid": "^1.2.1-plotly-rc3.3+cfd3663b",
|
|
38
|
+
"@deephaven/icons": "^1.2.1-plotly-rc3.3+cfd3663b",
|
|
39
|
+
"@deephaven/jsapi-components": "^1.2.1-plotly-rc3.3+cfd3663b",
|
|
40
40
|
"@deephaven/jsapi-types": "^1.0.0-dev0.39.4",
|
|
41
|
-
"@deephaven/jsapi-utils": "^1.2.1-plotly-
|
|
42
|
-
"@deephaven/log": "^1.2.1-plotly-
|
|
43
|
-
"@deephaven/react-hooks": "^1.2.1-plotly-
|
|
44
|
-
"@deephaven/storage": "^1.2.1-plotly-
|
|
45
|
-
"@deephaven/utils": "^1.2.1-plotly-
|
|
41
|
+
"@deephaven/jsapi-utils": "^1.2.1-plotly-rc3.3+cfd3663b",
|
|
42
|
+
"@deephaven/log": "^1.2.1-plotly-rc3.3+cfd3663b",
|
|
43
|
+
"@deephaven/react-hooks": "^1.2.1-plotly-rc3.3+cfd3663b",
|
|
44
|
+
"@deephaven/storage": "^1.2.1-plotly-rc3.3+cfd3663b",
|
|
45
|
+
"@deephaven/utils": "^1.2.1-plotly-rc3.3+cfd3663b",
|
|
46
46
|
"@dnd-kit/core": "^6.1.0",
|
|
47
47
|
"@dnd-kit/sortable": "^7.0.2",
|
|
48
48
|
"@dnd-kit/utilities": "^3.2.2",
|
|
@@ -65,9 +65,9 @@
|
|
|
65
65
|
"react-dom": ">=16.8.0"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
|
-
"@deephaven/jsapi-shim": "^1.2.1-plotly-
|
|
69
|
-
"@deephaven/mocks": "^1.2.1-plotly-
|
|
70
|
-
"@deephaven/test-utils": "^1.2.1-plotly-
|
|
68
|
+
"@deephaven/jsapi-shim": "^1.2.1-plotly-rc3.3+cfd3663b",
|
|
69
|
+
"@deephaven/mocks": "^1.2.1-plotly-rc3.3+cfd3663b",
|
|
70
|
+
"@deephaven/test-utils": "^1.2.1-plotly-rc3.3+cfd3663b",
|
|
71
71
|
"deep-equal": "2.2.3"
|
|
72
72
|
},
|
|
73
73
|
"files": [
|
|
@@ -80,5 +80,5 @@
|
|
|
80
80
|
"publishConfig": {
|
|
81
81
|
"access": "public"
|
|
82
82
|
},
|
|
83
|
-
"gitHead": "
|
|
83
|
+
"gitHead": "cfd3663b28e622750b245ee27dd1a3413a737956"
|
|
84
84
|
}
|