Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@projectstorm/react-workspaces-behavior-panel-dropzone

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@projectstorm/react-workspaces-behavior-panel-dropzone - npm Package Compare versions

Comparing version
2.3.12
to
2.3.13
+1
-1
dist/index.umd.js

@@ -99,3 +99,3 @@ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["@projectstorm/react-workspaces-behavior-panel-dropzone"]=t():e["@projectstorm/react-workspaces-behavior-panel-dropzone"]=t()}(self,(()=>(()=>{"use strict";var e={n:t=>{var n=t&&t.__esModule?()=>t.default:()=>t;return e.d(n,{a:n}),n},d:(t,n)=>{for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{DefaultDropZoneLayerButtonTheme:()=>v,DefaultDropZoneLayerPanelTheme:()=>p,DropZoneAlignmentButtonWidget:()=>d,DropZoneLayer:()=>h,DropZoneLayerButtonWidget:()=>x,DropZoneLayerPanelWidget:()=>g,DropZoneLayerWidget:()=>b,DropZoneTransformWidget:()=>c,ReplaceZone:()=>M,draggingItemBehavior:()=>D,getDirectiveForWorkspaceNode:()=>w});const n=require("react"),o=require("@projectstorm/react-workspaces-core"),r=require("lodash"),i=require("@emotion/styled");var a=e.n(i);const l={thickness:30,thicknessIdle:13,lengthIdle:60,background:"#0096ff",backgroundEntered:"orange"},d=e=>{const[t,i]=(0,n.useState)(!1),a=(0,n.useRef)(null),d=r.merge({},l,e.theme||{});(0,o.useMouseDragEvents)({forwardRef:a,mouseEnter:()=>{i(!0)},mouseExit:()=>{i(!1)}}),(0,o.useDroppableModel)({forwardRef:a,engine:e.engine,onDrop:e.handleDrop});const c=e.alignment===o.Alignment.LEFT||e.alignment===o.Alignment.RIGHT;let m=d.thicknessIdle,p=d.lengthIdle;return c||(m=d.lengthIdle,p=d.thicknessIdle),n.createElement(s.SplitContainer,{thickness:d.thickness,ref:a,vertical:c,alignment:e.alignment,hover:t},n.createElement(s.SplitContainerIcon,{theme:d,hover:t,width:m,height:p}))};var s;!function(e){e.SplitContainer=a().div`

border-radius: 5px;
`}(y||(y={}));const E=require("@fortawesome/fontawesome-svg-core"),k=require("@fortawesome/free-solid-svg-icons");E.library.add(k.faCopy);const D=e=>{let t=null;const{engine:n}=e;n.registerListener({modelDragStart:()=>{var o;t||(t=new h({modelID:n.draggingID,getDropZoneForModel:e.getDropZoneForModel,debugModels:e.debug,theme:null===(o=e.getTheme)||void 0===o?void 0:o.call(e)}),n.layerManager.addLayer(t))},modelDragEnd:()=>{null==t||t.remove(),t=null}})},M={key:"REPLACE",render:e=>{let{entered:t,theme:o}=e;return n.createElement(x,{theme:o,entered:t,text:"Replace",icon:"copy"})},transform:e=>{let{model:t,zoneModel:n,engine:o}=e;n.parent.replaceModel(n,t),o.normalize()}},w=e=>{const{node:t,transformZones:n,generateParentNode:r}=e;if(!(t instanceof o.WorkspaceCollectionModel)&&t.parent instanceof o.WorkspaceNodeModel)return{transformZones:[M,...n||[]],splitZones:[{alignment:t.parent.vertical?o.Alignment.LEFT:o.Alignment.TOP,handleDrop:(e,n)=>{const i=t.parent,a=(null==r?void 0:r())||new o.WorkspaceNodeModel;a.setVertical(!i.vertical),a.setExpand(e.expandHorizontal,e.expandHorizontal),a.addModel(e),i.replaceModel(t,a),a.addModel(t),n.normalize()}},{alignment:t.parent.vertical?o.Alignment.RIGHT:o.Alignment.BOTTOM,handleDrop:(e,n)=>{const i=t.parent,a=(null==r?void 0:r())||new o.WorkspaceNodeModel;a.setVertical(!i.vertical),a.setExpand(e.expandHorizontal,e.expandHorizontal),a.addModel(e),i.replaceModel(t,a),a.addModel(t,0),n.normalize()}}]}};return t})()));
`}(y||(y={}));const E=require("@fortawesome/fontawesome-svg-core"),k=require("@fortawesome/free-solid-svg-icons");E.library.add(k.faCopy);const D=e=>{let t=null;const{engine:n}=e;n.registerListener({modelDragStart:()=>{var o;t||(t=new h({modelID:n.draggingID,getDropZoneForModel:e.getDropZoneForModel,debugModels:e.debug,theme:null===(o=e.getTheme)||void 0===o?void 0:o.call(e)}),n.layerManager.addLayer(t))},modelDragEnd:()=>{null==t||t.remove(),t=null}})},M={key:"REPLACE",render:({entered:e,theme:t})=>n.createElement(x,{theme:t,entered:e,text:"Replace",icon:"copy"}),transform:({model:e,zoneModel:t,engine:n})=>{t.parent.replaceModel(t,e),n.normalize()}},w=e=>{const{node:t,transformZones:n,generateParentNode:r}=e;if(!(t instanceof o.WorkspaceCollectionModel)&&t.parent instanceof o.WorkspaceNodeModel)return{transformZones:[M,...n||[]],splitZones:[{alignment:t.parent.vertical?o.Alignment.LEFT:o.Alignment.TOP,handleDrop:(e,n)=>{const i=t.parent,a=(null==r?void 0:r())||new o.WorkspaceNodeModel;a.setVertical(!i.vertical),a.setExpand(e.expandHorizontal,e.expandHorizontal),a.addModel(e),i.replaceModel(t,a),a.addModel(t),n.normalize()}},{alignment:t.parent.vertical?o.Alignment.RIGHT:o.Alignment.BOTTOM,handleDrop:(e,n)=>{const i=t.parent,a=(null==r?void 0:r())||new o.WorkspaceNodeModel;a.setVertical(!i.vertical),a.setExpand(e.expandHorizontal,e.expandHorizontal),a.addModel(e),i.replaceModel(t,a),a.addModel(t,0),n.normalize()}}]}};return t})()));
//# sourceMappingURL=index.umd.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"index.umd.js","mappings":"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","sources":["webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/webpack/universalModuleDefinition","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/webpack/bootstrap","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/webpack/runtime/compat get default export","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/webpack/runtime/define property getters","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/webpack/runtime/hasOwnProperty shorthand","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/webpack/runtime/make namespace object","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/external commonjs \"react\"","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/external commonjs \"@projectstorm/react-workspaces-core\"","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/external commonjs \"lodash\"","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/external commonjs \"@emotion/styled\"","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/../src/DropZoneAlignmentButtonWidget.tsx","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/../src/DropZoneTransformWidget.tsx","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/../src/DropZoneLayerPanelWidget.tsx","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/../src/DropZoneLayer.tsx","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/external commonjs \"@fortawesome/react-fontawesome\"","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/../src/DropZoneLayerButtonWidget.tsx","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/external commonjs \"@fortawesome/fontawesome-svg-core\"","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/external commonjs \"@fortawesome/free-solid-svg-icons\"","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/../src/index.tsx"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"@projectstorm/react-workspaces-behavior-panel-dropzone\"] = factory();\n\telse\n\t\troot[\"@projectstorm/react-workspaces-behavior-panel-dropzone\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@projectstorm/react-workspaces-core\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@emotion/styled\");","import * as React from 'react';\nimport { useRef, useState } from 'react';\nimport styled from '@emotion/styled';\nimport * as _ from 'lodash';\nimport {\n Alignment,\n useDroppableModel,\n useMouseDragEvents,\n WorkspaceEngine,\n WorkspaceModel\n} from '@projectstorm/react-workspaces-core';\n\nexport interface DropZoneAlignmentTheme {\n thickness?: number;\n thicknessIdle?: number;\n lengthIdle?: number;\n background?: string;\n backgroundEntered?: string;\n}\n\nconst DefaultDropZoneAlignmentTheme: DropZoneAlignmentTheme = {\n thickness: 30,\n thicknessIdle: 13,\n lengthIdle: 60,\n background: '#0096ff',\n backgroundEntered: 'orange'\n};\n\nexport interface DropZoneAlignmentButtonWidgetProps {\n alignment: Alignment;\n engine: WorkspaceEngine;\n model: WorkspaceModel;\n handleDrop: (model: WorkspaceModel) => any;\n theme?: DropZoneAlignmentTheme;\n}\n\nexport const DropZoneAlignmentButtonWidget: React.FC<DropZoneAlignmentButtonWidgetProps> = (props) => {\n const [entered, setEntered] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n const theme = _.merge({}, DefaultDropZoneAlignmentTheme, props.theme || {});\n useMouseDragEvents({\n forwardRef: ref,\n mouseEnter: () => {\n setEntered(true);\n },\n mouseExit: () => {\n setEntered(false);\n }\n });\n useDroppableModel({\n forwardRef: ref,\n engine: props.engine,\n onDrop: props.handleDrop\n });\n\n const vertical = props.alignment === Alignment.LEFT || props.alignment === Alignment.RIGHT;\n\n let width = theme.thicknessIdle;\n let height = theme.lengthIdle;\n if (!vertical) {\n width = theme.lengthIdle;\n height = theme.thicknessIdle;\n }\n\n return (\n <S.SplitContainer\n thickness={theme.thickness}\n ref={ref}\n vertical={vertical}\n alignment={props.alignment}\n hover={entered}\n >\n <S.SplitContainerIcon theme={theme} hover={entered} width={width} height={height} />\n </S.SplitContainer>\n );\n};\n\nnamespace S {\n export const SplitContainer = styled.div<{\n alignment: Alignment;\n hover: boolean;\n vertical: boolean;\n thickness: number;\n }>`\n ${(p) => p.alignment}: 0;\n position: absolute;\n width: ${(p) => (p.vertical ? `${p.thickness}px` : '100%')};\n height: ${(p) => (!p.vertical ? `${p.thickness}px` : '100%')};\n pointer-events: all;\n display: flex;\n align-items: center;\n justify-content: center;\n `;\n\n export const SplitContainerIcon = styled.div<{\n width: number;\n height: number;\n hover: boolean;\n theme: DropZoneAlignmentTheme;\n }>`\n border-radius: 2px;\n background: ${(p) => (p.hover ? p.theme.backgroundEntered : p.theme.background)};\n transition:\n background 0.3s,\n width ease-out 0.3s,\n height ease-out 0.3s;\n transition-delay: 0.1s;\n pointer-events: none;\n\n width: ${(p) => (p.hover ? '100%' : `${p.width}px`)};\n height: ${(p) => (p.hover ? '100%' : `${p.height}px`)};\n `;\n}\n","import * as React from 'react';\nimport styled from '@emotion/styled';\nimport { useDroppableModel, useMouseDragEvents, WorkspaceEngine } from '@projectstorm/react-workspaces-core';\nimport { useRef, useState } from 'react';\nimport { TransformZone } from './DropZoneLayerPanelWidget';\nimport { WorkspaceModel } from '@projectstorm/react-workspaces-core';\nimport { DropZoneLayerButtonTheme } from './DropZoneLayerButtonWidget';\n\nexport interface DropZoneTransformWidgetProps {\n engine: WorkspaceEngine;\n zone: TransformZone;\n model: WorkspaceModel;\n theme: Partial<DropZoneLayerButtonTheme>;\n}\n\nexport const DropZoneTransformWidget: React.FC<DropZoneTransformWidgetProps> = (props) => {\n const [entered, setEntered] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n useMouseDragEvents({\n forwardRef: ref,\n mouseEnter: () => {\n setEntered(true);\n },\n mouseExit: () => {\n setEntered(false);\n }\n });\n useDroppableModel({\n forwardRef: ref,\n engine: props.engine,\n onDrop: (model) => {\n props.zone.transform({\n model,\n zoneModel: props.model,\n engine: props.engine\n });\n }\n });\n return <S.Container ref={ref}>{props.zone.render({ entered, theme: props.theme })}</S.Container>;\n};\nnamespace S {\n export const Container = styled.div``;\n}\n","import * as React from 'react';\nimport * as _ from 'lodash';\nimport { useRef, useState } from 'react';\nimport styled from '@emotion/styled';\nimport {\n Alignment,\n DimensionTrackingWidget,\n UseMouseDragEventsRootWidget,\n WorkspaceEngine,\n WorkspaceModel\n} from '@projectstorm/react-workspaces-core';\nimport { DropZoneAlignmentButtonWidget, DropZoneAlignmentTheme } from './DropZoneAlignmentButtonWidget';\nimport { DropZoneTransformWidget } from './DropZoneTransformWidget';\nimport { DropZoneLayerButtonTheme } from './DropZoneLayerButtonWidget';\n\nexport interface TransformZoneEvent {\n model: WorkspaceModel;\n zoneModel: WorkspaceModel;\n engine: WorkspaceEngine;\n}\n\nexport interface TransformZone {\n transform: (event: TransformZoneEvent) => any;\n render: (options: { entered: boolean; theme: Partial<DropZoneLayerButtonTheme> }) => any;\n key: string;\n}\n\nexport interface SplitZone {\n alignment: Alignment;\n handleDrop: (model: WorkspaceModel, engine: WorkspaceEngine) => any;\n}\n\nexport interface DropZonePanelDirective {\n splitZones: SplitZone[];\n transformZones: TransformZone[];\n}\n\nexport interface DropZoneLayerPanelTheme {\n border?: number;\n borderColor?: string;\n borderColorEntered?: string;\n background?: string;\n backgroundEntered?: string;\n borderRadius?: number;\n blur?: number;\n splitButtonTheme?: DropZoneAlignmentTheme;\n transformButtonTheme?: Partial<DropZoneLayerButtonTheme>;\n}\n\nexport const DefaultDropZoneLayerPanelTheme: DropZoneLayerPanelTheme = {\n border: 2,\n blur: 0,\n borderColor: 'transparent',\n borderColorEntered: '#0096ff',\n background: 'transparent',\n borderRadius: 10,\n backgroundEntered: 'rgba(0, 0, 0, 0.4)'\n};\n\n// !------------------------------------------\n\nexport interface DropZoneLayerPanelWidgetProps {\n model: WorkspaceModel;\n engine: WorkspaceEngine;\n directive: DropZonePanelDirective;\n debug: boolean;\n theme?: DropZoneLayerPanelTheme;\n}\n\nexport const DropZoneLayerPanelWidget: React.FC<DropZoneLayerPanelWidgetProps> = (props) => {\n const ref = useRef<HTMLDivElement>(null);\n const [show, setShow] = useState(false);\n const theme = _.merge({}, DefaultDropZoneLayerPanelTheme, props.theme || {});\n\n return (\n <UseMouseDragEventsRootWidget\n forwardRef={ref}\n mouseEnter={() => {\n setShow(true);\n }}\n mouseExit={() => {\n setShow(false);\n }}\n >\n <S.DimensionTracking theme={theme} entered={show} dimension={props.model.r_dimensions}>\n <S.Inside ref={ref}>\n <S.Layer visible={show}>\n {props.directive.splitZones.map((d) => {\n return (\n <DropZoneAlignmentButtonWidget\n key={d.alignment}\n model={props.model}\n engine={props.engine}\n alignment={d.alignment}\n handleDrop={(model) => {\n d.handleDrop(model, props.engine);\n }}\n theme={theme.splitButtonTheme}\n />\n );\n })}\n </S.Layer>\n <S.Layer2 visible={show}>\n <S.ButtonBar>\n {props.directive.transformZones.map((zone) => {\n return (\n <DropZoneTransformWidget\n theme={theme.transformButtonTheme}\n model={props.model}\n zone={zone}\n engine={props.engine}\n key={zone.key}\n />\n );\n })}\n </S.ButtonBar>\n {props.debug ? <S.Debug>{props.model.id.substring(0, 7)}</S.Debug> : null}\n </S.Layer2>\n </S.Inside>\n </S.DimensionTracking>\n </UseMouseDragEventsRootWidget>\n );\n};\n\nnamespace S {\n export const DimensionTracking = styled(DimensionTrackingWidget)<{\n entered: boolean;\n theme: DropZoneLayerPanelTheme;\n }>`\n border-radius: ${(p) => p.theme.borderRadius}px;\n box-sizing: border-box;\n background: ${(p) => (p.entered ? p.theme.backgroundEntered : p.theme.background)};\n border: solid ${(p) => p.theme.border}px ${(p) => (p.entered ? p.theme.borderColorEntered : p.theme.borderColor)};\n transition:\n border 0.5s,\n background 0.5s;\n pointer-events: all;\n ${(p) => (p.theme.blur ? ` backdrop-filter: blur(${p.theme.blur}px)` : ``)};\n `;\n\n export const Debug = styled.span`\n font-size: 10px;\n color: white;\n `;\n\n export const ButtonBar = styled.div`\n display: flex;\n justify-content: center;\n flex-wrap: wrap;\n `;\n\n export const Layer = styled.div<{ visible: boolean }>`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n opacity: ${(p) => (p.visible ? 1 : 0)};\n transition: opacity 0.3s;\n `;\n\n export const Layer2 = styled.div<{ visible: boolean }>`\n position: absolute;\n box-sizing: border-box;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-wrap: wrap;\n padding: 20px;\n pointer-events: none;\n opacity: ${(p) => (p.visible ? 1 : 0)};\n transition: opacity 0.3s;\n `;\n\n export const Inside = styled.div`\n box-sizing: border-box;\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n `;\n}\n","import * as React from 'react';\nimport { Layer, WorkspaceEngine, WorkspaceModel } from '@projectstorm/react-workspaces-core';\nimport { DropZoneLayerPanelTheme, DropZoneLayerPanelWidget, DropZonePanelDirective } from './DropZoneLayerPanelWidget';\n\nexport interface DropZoneLayerOptions {\n getDropZoneForModel: (model: WorkspaceModel) => DropZonePanelDirective | null;\n theme?: DropZoneLayerPanelTheme;\n modelID: string;\n debugModels: boolean;\n}\n\nexport class DropZoneLayer extends Layer {\n constructor(private options2: DropZoneLayerOptions) {\n super({\n mouseEvents: false\n });\n }\n\n renderLayer(event): React.JSX.Element {\n return (\n <DropZoneLayerWidget\n debugModels={this.options2.debugModels}\n engine={event.engine}\n draggingModel={this.options2.modelID}\n getDropZoneForModel={this.options2.getDropZoneForModel}\n theme={this.options2.theme}\n />\n );\n }\n}\n\n//!--------------- widget ----------------\n\nexport interface DropZoneLayerWidgetProps {\n engine: WorkspaceEngine;\n getDropZoneForModel: (model: WorkspaceModel) => DropZonePanelDirective | null;\n draggingModel: string;\n debugModels: boolean;\n theme?: DropZoneLayerPanelTheme;\n}\n\nexport const DropZoneLayerWidget: React.FC<DropZoneLayerWidgetProps> = (props) => {\n const draggingModelFlattened =\n props.engine.rootModel\n .flatten()\n .find((m) => m.id === props.draggingModel)\n ?.flatten() || [];\n\n return (\n <>\n {props.engine.rootModel\n .flatten()\n .filter((m) => m.r_visible)\n .filter((m) => {\n // filter out the dragging model and its children (cant add parent to children)\n return !draggingModelFlattened.find((child) => child.id === m.id);\n })\n // dont show a drop zone for the same model\n // .filter((m) => m.id !== props.draggingModel.id)\n .map((m) => {\n const directive = props.getDropZoneForModel(m);\n\n if (!directive) {\n return null;\n }\n\n return (\n <DropZoneLayerPanelWidget\n debug={props.debugModels}\n directive={directive}\n engine={props.engine}\n model={m}\n theme={props.theme}\n key={m.id}\n />\n );\n })}\n </>\n );\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@fortawesome/react-fontawesome\");","import * as React from 'react';\nimport styled from '@emotion/styled';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { IconProp } from '@fortawesome/fontawesome-svg-core';\nimport * as _ from 'lodash';\n\nexport interface DropZoneLayerButtonTheme {\n icon?: {\n color?: string;\n size?: number;\n };\n text?: {\n color?: string;\n size?: number;\n };\n borderSize?: number;\n borderRadius?: number;\n borderColor?: string;\n borderColorEntered?: string;\n background?: string;\n backgroundEntered?: string;\n}\n\nexport const DefaultDropZoneLayerButtonTheme: DropZoneLayerButtonTheme = {\n background: 'transparent',\n backgroundEntered: 'rgba(255, 165, 0, 0.56)',\n borderColor: '#0096ff',\n borderColorEntered: 'orange',\n borderSize: 2,\n borderRadius: 5,\n icon: {\n color: 'white',\n size: 22\n },\n text: {\n color: 'white',\n size: 11\n }\n};\n\nexport interface DropZoneLayerButtonWidgetProps {\n icon: IconProp;\n text: string;\n entered: boolean;\n theme?: DropZoneLayerButtonTheme;\n}\n\nexport const DropZoneLayerButtonWidget: React.FC<DropZoneLayerButtonWidgetProps> = (props) => {\n const theme = _.merge({}, DefaultDropZoneLayerButtonTheme, props.theme || {});\n return (\n <S.Container theme={theme} entered={props.entered}>\n <S.Icon theme={theme} icon={props.icon} />\n <S.Text theme={theme}>{props.text}</S.Text>\n </S.Container>\n );\n};\n\nnamespace S {\n export const Icon = styled(FontAwesomeIcon)<{ theme: DropZoneLayerButtonTheme }>`\n font-size: ${(p) => p.theme.icon.size}px;\n color: ${(p) => p.theme.icon.color};\n pointer-events: none;\n `;\n\n export const Text = styled.div<{ theme: DropZoneLayerButtonTheme }>`\n font-size: ${(p) => p.theme.text.size}px;\n color: ${(p) => p.theme.text.color};\n padding-top: 5px;\n pointer-events: none;\n `;\n\n export const Container = styled.div<{ entered: boolean; theme: DropZoneLayerButtonTheme }>`\n border: solid 2px ${(p) => (p.entered ? p.theme.borderColorEntered : p.theme.borderColor)};\n box-sizing: border-box;\n background: ${(p) => (p.entered ? p.theme.backgroundEntered : p.theme.background)};\n transition:\n border 0.3s,\n background 0.3s;\n pointer-events: all;\n width: 60px;\n height: 60px;\n margin: 2px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-radius: 5px;\n `;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@fortawesome/fontawesome-svg-core\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@fortawesome/free-solid-svg-icons\");","import * as React from 'react';\nimport {\n Alignment,\n WorkspaceCollectionModel,\n WorkspaceEngine,\n WorkspaceModel,\n WorkspaceNodeModel\n} from '@projectstorm/react-workspaces-core';\nimport { DropZoneLayer } from './DropZoneLayer';\nimport { DropZoneLayerPanelTheme, DropZonePanelDirective, TransformZone } from './DropZoneLayerPanelWidget';\nimport { DropZoneLayerButtonWidget } from './DropZoneLayerButtonWidget';\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport { faCopy } from '@fortawesome/free-solid-svg-icons';\n\nlibrary.add(faCopy);\n\nexport interface DraggingItemBehaviorOptions {\n getDropZoneForModel: (model: WorkspaceModel) => DropZonePanelDirective | null;\n engine: WorkspaceEngine;\n debug?: boolean;\n getTheme?: () => DropZoneLayerPanelTheme;\n}\n\nexport const draggingItemBehavior = (options: DraggingItemBehaviorOptions) => {\n let layer: DropZoneLayer = null;\n const { engine } = options;\n engine.registerListener({\n modelDragStart: () => {\n if (layer) {\n return;\n }\n layer = new DropZoneLayer({\n modelID: engine.draggingID,\n getDropZoneForModel: options.getDropZoneForModel,\n debugModels: options.debug,\n theme: options.getTheme?.()\n });\n engine.layerManager.addLayer(layer);\n },\n modelDragEnd: () => {\n layer?.remove();\n layer = null;\n }\n });\n};\n\nexport const ReplaceZone: TransformZone = {\n key: 'REPLACE',\n render: ({ entered, theme }) => {\n return <DropZoneLayerButtonWidget theme={theme} entered={entered} text=\"Replace\" icon=\"copy\" />;\n },\n transform: ({ model, zoneModel, engine }) => {\n (zoneModel.parent as WorkspaceCollectionModel).replaceModel(zoneModel, model);\n engine.normalize();\n }\n};\n\nexport interface GetDirectiveForWorkspaceNodeOptions {\n node: WorkspaceModel;\n transformZones?: TransformZone[];\n generateParentNode?: () => WorkspaceNodeModel;\n}\n\nexport const getDirectiveForWorkspaceNode = (\n options: GetDirectiveForWorkspaceNodeOptions\n): DropZonePanelDirective | null => {\n const { node, transformZones, generateParentNode } = options;\n if (!(node instanceof WorkspaceCollectionModel) && node.parent instanceof WorkspaceNodeModel) {\n return {\n transformZones: [ReplaceZone, ...(transformZones || [])],\n splitZones: [\n {\n alignment: node.parent.vertical ? Alignment.LEFT : Alignment.TOP,\n handleDrop: (model, engine) => {\n const parent = node.parent as WorkspaceNodeModel;\n const m = generateParentNode?.() || new WorkspaceNodeModel();\n m.setVertical(!parent.vertical);\n m.setExpand(model.expandHorizontal, model.expandHorizontal);\n m.addModel(model);\n parent.replaceModel(node, m);\n m.addModel(node);\n engine.normalize();\n }\n },\n {\n alignment: node.parent.vertical ? Alignment.RIGHT : Alignment.BOTTOM,\n handleDrop: (model, engine) => {\n const parent = node.parent as WorkspaceNodeModel;\n const m = generateParentNode?.() || new WorkspaceNodeModel();\n m.setVertical(!parent.vertical);\n m.setExpand(model.expandHorizontal, model.expandHorizontal);\n m.addModel(model);\n parent.replaceModel(node, m);\n m.addModel(node, 0);\n engine.normalize();\n }\n }\n ]\n };\n }\n};\n\nexport * from './DropZoneLayerPanelWidget';\nexport * from './DropZoneLayerButtonWidget';\nexport * from './DropZoneTransformWidget';\nexport * from './DropZoneAlignmentButtonWidget';\nexport * from './DropZoneLayer';\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","require","DefaultDropZoneAlignmentTheme","thickness","thicknessIdle","lengthIdle","background","backgroundEntered","DropZoneAlignmentButtonWidget","props","entered","setEntered","useState","ref","useRef","theme","_","useMouseDragEvents","forwardRef","mouseEnter","mouseExit","useDroppableModel","engine","onDrop","handleDrop","vertical","alignment","Alignment","LEFT","RIGHT","width","height","React","S","SplitContainer","hover","SplitContainerIcon","styled","p","DropZoneTransformWidget","model","zone","transform","zoneModel","Container","render","DefaultDropZoneLayerPanelTheme","border","blur","borderColor","borderColorEntered","borderRadius","DropZoneLayerPanelWidget","show","setShow","UseMouseDragEventsRootWidget","DimensionTracking","dimension","r_dimensions","Inside","Layer","visible","directive","splitZones","map","splitButtonTheme","Layer2","ButtonBar","transformZones","transformButtonTheme","debug","Debug","id","substring","DimensionTrackingWidget","DropZoneLayer","constructor","options2","super","mouseEvents","renderLayer","event","DropZoneLayerWidget","debugModels","this","draggingModel","modelID","getDropZoneForModel","draggingModelFlattened","_a","rootModel","flatten","find","m","filter","r_visible","child","DefaultDropZoneLayerButtonTheme","borderSize","icon","color","size","text","DropZoneLayerButtonWidget","Icon","Text","FontAwesomeIcon","library","add","faCopy","draggingItemBehavior","options","layer","registerListener","modelDragStart","draggingID","getTheme","layerManager","addLayer","modelDragEnd","remove","ReplaceZone","_ref","_ref2","parent","replaceModel","normalize","getDirectiveForWorkspaceNode","node","generateParentNode","WorkspaceCollectionModel","WorkspaceNodeModel","TOP","setVertical","setExpand","expandHorizontal","addModel","BOTTOM"],"sourceRoot":""}
{"version":3,"file":"index.umd.js","mappings":"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","sources":["webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/webpack/universalModuleDefinition","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/webpack/bootstrap","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/webpack/runtime/compat get default export","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/webpack/runtime/define property getters","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/webpack/runtime/hasOwnProperty shorthand","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/webpack/runtime/make namespace object","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/external commonjs \"react\"","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/external commonjs \"@projectstorm/react-workspaces-core\"","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/external commonjs \"lodash\"","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/external commonjs \"@emotion/styled\"","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/../src/DropZoneAlignmentButtonWidget.tsx","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/../src/DropZoneTransformWidget.tsx","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/../src/DropZoneLayerPanelWidget.tsx","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/../src/DropZoneLayer.tsx","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/external commonjs \"@fortawesome/react-fontawesome\"","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/../src/DropZoneLayerButtonWidget.tsx","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/external commonjs \"@fortawesome/fontawesome-svg-core\"","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/external commonjs \"@fortawesome/free-solid-svg-icons\"","webpack://@projectstorm/react-workspaces-behavior-panel-dropzone/../src/index.tsx"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"@projectstorm/react-workspaces-behavior-panel-dropzone\"] = factory();\n\telse\n\t\troot[\"@projectstorm/react-workspaces-behavior-panel-dropzone\"] = factory();\n})(self, () => {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"react\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@projectstorm/react-workspaces-core\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"lodash\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@emotion/styled\");","import * as React from 'react';\nimport { useRef, useState } from 'react';\nimport styled from '@emotion/styled';\nimport * as _ from 'lodash';\nimport {\n Alignment,\n useDroppableModel,\n useMouseDragEvents,\n WorkspaceEngine,\n WorkspaceModel\n} from '@projectstorm/react-workspaces-core';\n\nexport interface DropZoneAlignmentTheme {\n thickness?: number;\n thicknessIdle?: number;\n lengthIdle?: number;\n background?: string;\n backgroundEntered?: string;\n}\n\nconst DefaultDropZoneAlignmentTheme: DropZoneAlignmentTheme = {\n thickness: 30,\n thicknessIdle: 13,\n lengthIdle: 60,\n background: '#0096ff',\n backgroundEntered: 'orange'\n};\n\nexport interface DropZoneAlignmentButtonWidgetProps {\n alignment: Alignment;\n engine: WorkspaceEngine;\n model: WorkspaceModel;\n handleDrop: (model: WorkspaceModel) => any;\n theme?: DropZoneAlignmentTheme;\n}\n\nexport const DropZoneAlignmentButtonWidget: React.FC<DropZoneAlignmentButtonWidgetProps> = (props) => {\n const [entered, setEntered] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n const theme = _.merge({}, DefaultDropZoneAlignmentTheme, props.theme || {});\n useMouseDragEvents({\n forwardRef: ref,\n mouseEnter: () => {\n setEntered(true);\n },\n mouseExit: () => {\n setEntered(false);\n }\n });\n useDroppableModel({\n forwardRef: ref,\n engine: props.engine,\n onDrop: props.handleDrop\n });\n\n const vertical = props.alignment === Alignment.LEFT || props.alignment === Alignment.RIGHT;\n\n let width = theme.thicknessIdle;\n let height = theme.lengthIdle;\n if (!vertical) {\n width = theme.lengthIdle;\n height = theme.thicknessIdle;\n }\n\n return (\n <S.SplitContainer\n thickness={theme.thickness}\n ref={ref}\n vertical={vertical}\n alignment={props.alignment}\n hover={entered}\n >\n <S.SplitContainerIcon theme={theme} hover={entered} width={width} height={height} />\n </S.SplitContainer>\n );\n};\n\nnamespace S {\n export const SplitContainer = styled.div<{\n alignment: Alignment;\n hover: boolean;\n vertical: boolean;\n thickness: number;\n }>`\n ${(p) => p.alignment}: 0;\n position: absolute;\n width: ${(p) => (p.vertical ? `${p.thickness}px` : '100%')};\n height: ${(p) => (!p.vertical ? `${p.thickness}px` : '100%')};\n pointer-events: all;\n display: flex;\n align-items: center;\n justify-content: center;\n `;\n\n export const SplitContainerIcon = styled.div<{\n width: number;\n height: number;\n hover: boolean;\n theme: DropZoneAlignmentTheme;\n }>`\n border-radius: 2px;\n background: ${(p) => (p.hover ? p.theme.backgroundEntered : p.theme.background)};\n transition:\n background 0.3s,\n width ease-out 0.3s,\n height ease-out 0.3s;\n transition-delay: 0.1s;\n pointer-events: none;\n\n width: ${(p) => (p.hover ? '100%' : `${p.width}px`)};\n height: ${(p) => (p.hover ? '100%' : `${p.height}px`)};\n `;\n}\n","import * as React from 'react';\nimport styled from '@emotion/styled';\nimport { useDroppableModel, useMouseDragEvents, WorkspaceEngine } from '@projectstorm/react-workspaces-core';\nimport { useRef, useState } from 'react';\nimport { TransformZone } from './DropZoneLayerPanelWidget';\nimport { WorkspaceModel } from '@projectstorm/react-workspaces-core';\nimport { DropZoneLayerButtonTheme } from './DropZoneLayerButtonWidget';\n\nexport interface DropZoneTransformWidgetProps {\n engine: WorkspaceEngine;\n zone: TransformZone;\n model: WorkspaceModel;\n theme: Partial<DropZoneLayerButtonTheme>;\n}\n\nexport const DropZoneTransformWidget: React.FC<DropZoneTransformWidgetProps> = (props) => {\n const [entered, setEntered] = useState(false);\n const ref = useRef<HTMLDivElement>(null);\n useMouseDragEvents({\n forwardRef: ref,\n mouseEnter: () => {\n setEntered(true);\n },\n mouseExit: () => {\n setEntered(false);\n }\n });\n useDroppableModel({\n forwardRef: ref,\n engine: props.engine,\n onDrop: (model) => {\n props.zone.transform({\n model,\n zoneModel: props.model,\n engine: props.engine\n });\n }\n });\n return <S.Container ref={ref}>{props.zone.render({ entered, theme: props.theme })}</S.Container>;\n};\nnamespace S {\n export const Container = styled.div``;\n}\n","import * as React from 'react';\nimport * as _ from 'lodash';\nimport { useRef, useState } from 'react';\nimport styled from '@emotion/styled';\nimport {\n Alignment,\n DimensionTrackingWidget,\n UseMouseDragEventsRootWidget,\n WorkspaceEngine,\n WorkspaceModel\n} from '@projectstorm/react-workspaces-core';\nimport { DropZoneAlignmentButtonWidget, DropZoneAlignmentTheme } from './DropZoneAlignmentButtonWidget';\nimport { DropZoneTransformWidget } from './DropZoneTransformWidget';\nimport { DropZoneLayerButtonTheme } from './DropZoneLayerButtonWidget';\n\nexport interface TransformZoneEvent {\n model: WorkspaceModel;\n zoneModel: WorkspaceModel;\n engine: WorkspaceEngine;\n}\n\nexport interface TransformZone {\n transform: (event: TransformZoneEvent) => any;\n render: (options: { entered: boolean; theme: Partial<DropZoneLayerButtonTheme> }) => any;\n key: string;\n}\n\nexport interface SplitZone {\n alignment: Alignment;\n handleDrop: (model: WorkspaceModel, engine: WorkspaceEngine) => any;\n}\n\nexport interface DropZonePanelDirective {\n splitZones: SplitZone[];\n transformZones: TransformZone[];\n}\n\nexport interface DropZoneLayerPanelTheme {\n border?: number;\n borderColor?: string;\n borderColorEntered?: string;\n background?: string;\n backgroundEntered?: string;\n borderRadius?: number;\n blur?: number;\n splitButtonTheme?: DropZoneAlignmentTheme;\n transformButtonTheme?: Partial<DropZoneLayerButtonTheme>;\n}\n\nexport const DefaultDropZoneLayerPanelTheme: DropZoneLayerPanelTheme = {\n border: 2,\n blur: 0,\n borderColor: 'transparent',\n borderColorEntered: '#0096ff',\n background: 'transparent',\n borderRadius: 10,\n backgroundEntered: 'rgba(0, 0, 0, 0.4)'\n};\n\n// !------------------------------------------\n\nexport interface DropZoneLayerPanelWidgetProps {\n model: WorkspaceModel;\n engine: WorkspaceEngine;\n directive: DropZonePanelDirective;\n debug: boolean;\n theme?: DropZoneLayerPanelTheme;\n}\n\nexport const DropZoneLayerPanelWidget: React.FC<DropZoneLayerPanelWidgetProps> = (props) => {\n const ref = useRef<HTMLDivElement>(null);\n const [show, setShow] = useState(false);\n const theme = _.merge({}, DefaultDropZoneLayerPanelTheme, props.theme || {});\n\n return (\n <UseMouseDragEventsRootWidget\n forwardRef={ref}\n mouseEnter={() => {\n setShow(true);\n }}\n mouseExit={() => {\n setShow(false);\n }}\n >\n <S.DimensionTracking theme={theme} entered={show} dimension={props.model.r_dimensions}>\n <S.Inside ref={ref}>\n <S.Layer visible={show}>\n {props.directive.splitZones.map((d) => {\n return (\n <DropZoneAlignmentButtonWidget\n key={d.alignment}\n model={props.model}\n engine={props.engine}\n alignment={d.alignment}\n handleDrop={(model) => {\n d.handleDrop(model, props.engine);\n }}\n theme={theme.splitButtonTheme}\n />\n );\n })}\n </S.Layer>\n <S.Layer2 visible={show}>\n <S.ButtonBar>\n {props.directive.transformZones.map((zone) => {\n return (\n <DropZoneTransformWidget\n theme={theme.transformButtonTheme}\n model={props.model}\n zone={zone}\n engine={props.engine}\n key={zone.key}\n />\n );\n })}\n </S.ButtonBar>\n {props.debug ? <S.Debug>{props.model.id.substring(0, 7)}</S.Debug> : null}\n </S.Layer2>\n </S.Inside>\n </S.DimensionTracking>\n </UseMouseDragEventsRootWidget>\n );\n};\n\nnamespace S {\n export const DimensionTracking = styled(DimensionTrackingWidget)<{\n entered: boolean;\n theme: DropZoneLayerPanelTheme;\n }>`\n border-radius: ${(p) => p.theme.borderRadius}px;\n box-sizing: border-box;\n background: ${(p) => (p.entered ? p.theme.backgroundEntered : p.theme.background)};\n border: solid ${(p) => p.theme.border}px ${(p) => (p.entered ? p.theme.borderColorEntered : p.theme.borderColor)};\n transition:\n border 0.5s,\n background 0.5s;\n pointer-events: all;\n ${(p) => (p.theme.blur ? ` backdrop-filter: blur(${p.theme.blur}px)` : ``)};\n `;\n\n export const Debug = styled.span`\n font-size: 10px;\n color: white;\n `;\n\n export const ButtonBar = styled.div`\n display: flex;\n justify-content: center;\n flex-wrap: wrap;\n `;\n\n export const Layer = styled.div<{ visible: boolean }>`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n opacity: ${(p) => (p.visible ? 1 : 0)};\n transition: opacity 0.3s;\n `;\n\n export const Layer2 = styled.div<{ visible: boolean }>`\n position: absolute;\n box-sizing: border-box;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-wrap: wrap;\n padding: 20px;\n pointer-events: none;\n opacity: ${(p) => (p.visible ? 1 : 0)};\n transition: opacity 0.3s;\n `;\n\n export const Inside = styled.div`\n box-sizing: border-box;\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n `;\n}\n","import * as React from 'react';\nimport { Layer, WorkspaceEngine, WorkspaceModel } from '@projectstorm/react-workspaces-core';\nimport { DropZoneLayerPanelTheme, DropZoneLayerPanelWidget, DropZonePanelDirective } from './DropZoneLayerPanelWidget';\n\nexport interface DropZoneLayerOptions {\n getDropZoneForModel: (model: WorkspaceModel) => DropZonePanelDirective | null;\n theme?: DropZoneLayerPanelTheme;\n modelID: string;\n debugModels: boolean;\n}\n\nexport class DropZoneLayer extends Layer {\n constructor(private options2: DropZoneLayerOptions) {\n super({\n mouseEvents: false\n });\n }\n\n renderLayer(event): React.JSX.Element {\n return (\n <DropZoneLayerWidget\n debugModels={this.options2.debugModels}\n engine={event.engine}\n draggingModel={this.options2.modelID}\n getDropZoneForModel={this.options2.getDropZoneForModel}\n theme={this.options2.theme}\n />\n );\n }\n}\n\n//!--------------- widget ----------------\n\nexport interface DropZoneLayerWidgetProps {\n engine: WorkspaceEngine;\n getDropZoneForModel: (model: WorkspaceModel) => DropZonePanelDirective | null;\n draggingModel: string;\n debugModels: boolean;\n theme?: DropZoneLayerPanelTheme;\n}\n\nexport const DropZoneLayerWidget: React.FC<DropZoneLayerWidgetProps> = (props) => {\n const draggingModelFlattened =\n props.engine.rootModel\n .flatten()\n .find((m) => m.id === props.draggingModel)\n ?.flatten() || [];\n\n return (\n <>\n {props.engine.rootModel\n .flatten()\n .filter((m) => m.r_visible)\n .filter((m) => {\n // filter out the dragging model and its children (cant add parent to children)\n return !draggingModelFlattened.find((child) => child.id === m.id);\n })\n // dont show a drop zone for the same model\n // .filter((m) => m.id !== props.draggingModel.id)\n .map((m) => {\n const directive = props.getDropZoneForModel(m);\n\n if (!directive) {\n return null;\n }\n\n return (\n <DropZoneLayerPanelWidget\n debug={props.debugModels}\n directive={directive}\n engine={props.engine}\n model={m}\n theme={props.theme}\n key={m.id}\n />\n );\n })}\n </>\n );\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@fortawesome/react-fontawesome\");","import * as React from 'react';\nimport styled from '@emotion/styled';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { IconProp } from '@fortawesome/fontawesome-svg-core';\nimport * as _ from 'lodash';\n\nexport interface DropZoneLayerButtonTheme {\n icon?: {\n color?: string;\n size?: number;\n };\n text?: {\n color?: string;\n size?: number;\n };\n borderSize?: number;\n borderRadius?: number;\n borderColor?: string;\n borderColorEntered?: string;\n background?: string;\n backgroundEntered?: string;\n}\n\nexport const DefaultDropZoneLayerButtonTheme: DropZoneLayerButtonTheme = {\n background: 'transparent',\n backgroundEntered: 'rgba(255, 165, 0, 0.56)',\n borderColor: '#0096ff',\n borderColorEntered: 'orange',\n borderSize: 2,\n borderRadius: 5,\n icon: {\n color: 'white',\n size: 22\n },\n text: {\n color: 'white',\n size: 11\n }\n};\n\nexport interface DropZoneLayerButtonWidgetProps {\n icon: IconProp;\n text: string;\n entered: boolean;\n theme?: DropZoneLayerButtonTheme;\n}\n\nexport const DropZoneLayerButtonWidget: React.FC<DropZoneLayerButtonWidgetProps> = (props) => {\n const theme = _.merge({}, DefaultDropZoneLayerButtonTheme, props.theme || {});\n return (\n <S.Container theme={theme} entered={props.entered}>\n <S.Icon theme={theme} icon={props.icon} />\n <S.Text theme={theme}>{props.text}</S.Text>\n </S.Container>\n );\n};\n\nnamespace S {\n export const Icon = styled(FontAwesomeIcon)<{ theme: DropZoneLayerButtonTheme }>`\n font-size: ${(p) => p.theme.icon.size}px;\n color: ${(p) => p.theme.icon.color};\n pointer-events: none;\n `;\n\n export const Text = styled.div<{ theme: DropZoneLayerButtonTheme }>`\n font-size: ${(p) => p.theme.text.size}px;\n color: ${(p) => p.theme.text.color};\n padding-top: 5px;\n pointer-events: none;\n `;\n\n export const Container = styled.div<{ entered: boolean; theme: DropZoneLayerButtonTheme }>`\n border: solid 2px ${(p) => (p.entered ? p.theme.borderColorEntered : p.theme.borderColor)};\n box-sizing: border-box;\n background: ${(p) => (p.entered ? p.theme.backgroundEntered : p.theme.background)};\n transition:\n border 0.3s,\n background 0.3s;\n pointer-events: all;\n width: 60px;\n height: 60px;\n margin: 2px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-radius: 5px;\n `;\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@fortawesome/fontawesome-svg-core\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"@fortawesome/free-solid-svg-icons\");","import * as React from 'react';\nimport {\n Alignment,\n WorkspaceCollectionModel,\n WorkspaceEngine,\n WorkspaceModel,\n WorkspaceNodeModel\n} from '@projectstorm/react-workspaces-core';\nimport { DropZoneLayer } from './DropZoneLayer';\nimport { DropZoneLayerPanelTheme, DropZonePanelDirective, TransformZone } from './DropZoneLayerPanelWidget';\nimport { DropZoneLayerButtonWidget } from './DropZoneLayerButtonWidget';\nimport { library } from '@fortawesome/fontawesome-svg-core';\nimport { faCopy } from '@fortawesome/free-solid-svg-icons';\n\nlibrary.add(faCopy);\n\nexport interface DraggingItemBehaviorOptions {\n getDropZoneForModel: (model: WorkspaceModel) => DropZonePanelDirective | null;\n engine: WorkspaceEngine;\n debug?: boolean;\n getTheme?: () => DropZoneLayerPanelTheme;\n}\n\nexport const draggingItemBehavior = (options: DraggingItemBehaviorOptions) => {\n let layer: DropZoneLayer = null;\n const { engine } = options;\n engine.registerListener({\n modelDragStart: () => {\n if (layer) {\n return;\n }\n layer = new DropZoneLayer({\n modelID: engine.draggingID,\n getDropZoneForModel: options.getDropZoneForModel,\n debugModels: options.debug,\n theme: options.getTheme?.()\n });\n engine.layerManager.addLayer(layer);\n },\n modelDragEnd: () => {\n layer?.remove();\n layer = null;\n }\n });\n};\n\nexport const ReplaceZone: TransformZone = {\n key: 'REPLACE',\n render: ({ entered, theme }) => {\n return <DropZoneLayerButtonWidget theme={theme} entered={entered} text=\"Replace\" icon=\"copy\" />;\n },\n transform: ({ model, zoneModel, engine }) => {\n (zoneModel.parent as WorkspaceCollectionModel).replaceModel(zoneModel, model);\n engine.normalize();\n }\n};\n\nexport interface GetDirectiveForWorkspaceNodeOptions {\n node: WorkspaceModel;\n transformZones?: TransformZone[];\n generateParentNode?: () => WorkspaceNodeModel;\n}\n\nexport const getDirectiveForWorkspaceNode = (\n options: GetDirectiveForWorkspaceNodeOptions\n): DropZonePanelDirective | null => {\n const { node, transformZones, generateParentNode } = options;\n if (!(node instanceof WorkspaceCollectionModel) && node.parent instanceof WorkspaceNodeModel) {\n return {\n transformZones: [ReplaceZone, ...(transformZones || [])],\n splitZones: [\n {\n alignment: node.parent.vertical ? Alignment.LEFT : Alignment.TOP,\n handleDrop: (model, engine) => {\n const parent = node.parent as WorkspaceNodeModel;\n const m = generateParentNode?.() || new WorkspaceNodeModel();\n m.setVertical(!parent.vertical);\n m.setExpand(model.expandHorizontal, model.expandHorizontal);\n m.addModel(model);\n parent.replaceModel(node, m);\n m.addModel(node);\n engine.normalize();\n }\n },\n {\n alignment: node.parent.vertical ? Alignment.RIGHT : Alignment.BOTTOM,\n handleDrop: (model, engine) => {\n const parent = node.parent as WorkspaceNodeModel;\n const m = generateParentNode?.() || new WorkspaceNodeModel();\n m.setVertical(!parent.vertical);\n m.setExpand(model.expandHorizontal, model.expandHorizontal);\n m.addModel(model);\n parent.replaceModel(node, m);\n m.addModel(node, 0);\n engine.normalize();\n }\n }\n ]\n };\n }\n};\n\nexport * from './DropZoneLayerPanelWidget';\nexport * from './DropZoneLayerButtonWidget';\nexport * from './DropZoneTransformWidget';\nexport * from './DropZoneAlignmentButtonWidget';\nexport * from './DropZoneLayer';\n"],"names":["root","factory","exports","module","define","amd","self","__webpack_require__","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","require","DefaultDropZoneAlignmentTheme","thickness","thicknessIdle","lengthIdle","background","backgroundEntered","DropZoneAlignmentButtonWidget","props","entered","setEntered","useState","ref","useRef","theme","_","useMouseDragEvents","forwardRef","mouseEnter","mouseExit","useDroppableModel","engine","onDrop","handleDrop","vertical","alignment","Alignment","LEFT","RIGHT","width","height","React","S","SplitContainer","hover","SplitContainerIcon","styled","p","DropZoneTransformWidget","model","zone","transform","zoneModel","Container","render","DefaultDropZoneLayerPanelTheme","border","blur","borderColor","borderColorEntered","borderRadius","DropZoneLayerPanelWidget","show","setShow","UseMouseDragEventsRootWidget","DimensionTracking","dimension","r_dimensions","Inside","Layer","visible","directive","splitZones","map","splitButtonTheme","Layer2","ButtonBar","transformZones","transformButtonTheme","debug","Debug","id","substring","DimensionTrackingWidget","DropZoneLayer","constructor","options2","super","mouseEvents","renderLayer","event","DropZoneLayerWidget","debugModels","this","draggingModel","modelID","getDropZoneForModel","draggingModelFlattened","_a","rootModel","flatten","find","m","filter","r_visible","child","DefaultDropZoneLayerButtonTheme","borderSize","icon","color","size","text","DropZoneLayerButtonWidget","Icon","Text","FontAwesomeIcon","library","add","faCopy","draggingItemBehavior","options","layer","registerListener","modelDragStart","draggingID","getTheme","layerManager","addLayer","modelDragEnd","remove","ReplaceZone","parent","replaceModel","normalize","getDirectiveForWorkspaceNode","node","generateParentNode","WorkspaceCollectionModel","WorkspaceNodeModel","TOP","setVertical","setExpand","expandHorizontal","addModel","BOTTOM"],"sourceRoot":""}
{
"name": "@projectstorm/react-workspaces-behavior-panel-dropzone",
"version": "2.3.12",
"version": "2.3.13",
"main": "./dist/index.umd.js",

@@ -11,13 +11,13 @@ "module": "./dist/index.jsx",

"dependencies": {
"@fortawesome/free-solid-svg-icons": "^7.0.0",
"@fortawesome/react-fontawesome": "^0.2.3",
"@fortawesome/fontawesome-svg-core": "^7.0.0",
"react": "^19.1.1",
"lodash": "^4.17.21",
"@fortawesome/free-solid-svg-icons": "^7.2.0",
"@fortawesome/react-fontawesome": "^3.2.0",
"@fortawesome/fontawesome-svg-core": "^7.2.0",
"react": "^19.2.4",
"lodash": "^4.17.23",
"@emotion/styled": "^11.14.1",
"@projectstorm/react-workspaces-core": "4.2.2"
"@projectstorm/react-workspaces-core": "4.2.3"
},
"devDependencies": {
"@types/lodash": "^4.17.20",
"@types/react": "^19.1.9"
"@types/lodash": "^4.17.23",
"@types/react": "^19.2.14"
},

@@ -24,0 +24,0 @@ "scripts": {

Sorry, the diff of this file is not supported yet