From 90205f539563cb047cf7070379c78b6af01103f4 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Wed, 26 Jul 2023 17:29:47 +0800 Subject: [PATCH] =?UTF-8?q?feat(editor):=20=E6=96=B0=E5=A2=9E=E6=8B=96?= =?UTF-8?q?=E5=8A=A8=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor/package.json | 4 +- packages/stage/package.json | 6 +- packages/stage/src/MoveableActionsAble.ts | 90 +++--- packages/stage/src/MoveableOptionsManager.ts | 3 +- packages/stage/src/moveable-able.css | 98 ++++++ pnpm-lock.yaml | 308 +++++++++++-------- 6 files changed, 316 insertions(+), 193 deletions(-) create mode 100644 packages/stage/src/moveable-able.css diff --git a/packages/editor/package.json b/packages/editor/package.json index 82700b3b..be924e44 100644 --- a/packages/editor/package.json +++ b/packages/editor/package.json @@ -56,8 +56,8 @@ "buffer": "^6.0.3", "color": "^3.1.3", "events": "^3.3.0", - "gesto": "^1.7.0", - "keycon": "^1.1.2", + "gesto": "^1.19.1", + "keycon": "^1.4.0", "lodash-es": "^4.17.21", "monaco-editor": "^0.39.0", "serialize-javascript": "^6.0.0", diff --git a/packages/stage/package.json b/packages/stage/package.json index 47f0f3ae..cbda6682 100644 --- a/packages/stage/package.json +++ b/packages/stage/package.json @@ -29,14 +29,14 @@ "url": "https://github.com/Tencent/tmagic-editor.git" }, "dependencies": { - "@scena/guides": "^0.23.3", + "@scena/guides": "^0.29.1", "@tmagic/core": "1.3.0-alpha.15", "@tmagic/schema": "1.3.0-alpha.15", "@tmagic/utils": "1.3.0-alpha.15", "events": "^3.3.0", - "keycon": "^1.1.2", + "keycon": "^1.4.0", "lodash-es": "^4.17.21", - "moveable": "^0.43.1", + "moveable": "^0.51.1", "moveable-helper": "^0.4.0" }, "devDependencies": { diff --git a/packages/stage/src/MoveableActionsAble.ts b/packages/stage/src/MoveableActionsAble.ts index 45fc1dd3..7326e687 100644 --- a/packages/stage/src/MoveableActionsAble.ts +++ b/packages/stage/src/MoveableActionsAble.ts @@ -1,13 +1,12 @@ import { MoveableManagerInterface, Renderer } from 'moveable'; +import ableCss from './moveable-able.css?raw'; import { AbleActionEventType } from './types'; export default (handler: (type: AbleActionEventType) => void) => ({ name: 'actions', - props: { - selectParent: Boolean, - }, - events: {}, + props: [], + events: [], render(moveable: MoveableManagerInterface, React: Renderer) { const rect = moveable.getRect(); const { pos2 } = moveable.state; @@ -24,34 +23,7 @@ export default (handler: (type: AbleActionEventType) => void) => ({ transform-origin: 0px 0px; display: flex; } - .moveable-button { - width: 20px; - height: 20px; - background: #4af; - border-radius: 4px; - appearance: none; - border: 0; - color: white; - font-size: 12px; - font-weight: bold; - margin-left: 2px; - position: relative; - } - .moveable-remove-button:before, .moveable-remove-button:after { - content: ""; - position: absolute; - left: 50%; - top: 50%; - transform: translate(-50%, -50%) rotate(45deg); - width: 14px; - height: 2px; - background: #fff; - border-radius: 1px; - cursor: pointer; - } - .moveable-remove-button:after { - transform: translate(-50%, -50%) rotate(-45deg); - } + ${ableCss} `, ); // Add key (required) @@ -61,7 +33,7 @@ export default (handler: (type: AbleActionEventType) => void) => ({ { className: 'moveable-editable', style: { - transform: `translate(${pos2[0] - 48}px, ${pos2[1] - 28}px) rotate(${rect.rotation}deg) translate(10px)`, + transform: `translate(${pos2[0] - 60}px, ${pos2[1] - 28}px) rotate(${rect.rotation}deg)`, }, }, [ @@ -74,27 +46,12 @@ export default (handler: (type: AbleActionEventType) => void) => ({ handler(AbleActionEventType.SELECT_PARENT); }, }, - React.createElement( - 'svg', - { - width: '20px', - height: '20px', - viewBox: '0 0 16 16', - fill: 'none', - xmlns: 'http://www.w3.org/2000/svg', - style: { - transform: 'rotate(90deg)', - position: 'absolute', - left: 0, - top: 0, - }, - }, - React.createElement('path', { - d: 'M13.0001 4V10H4.20718L5.85363 8.35355L5.14652 7.64645L2.64652 10.1464C2.45126 10.3417 2.45126 10.6583 2.64652 10.8536L5.14652 13.3536L5.85363 12.6464L4.20718 11H13.0001C13.5524 11 14.0001 10.5523 14.0001 10V4H13.0001Z', - fill: 'currentColor', - fillOpacity: '0.9', - }), - ), + React.createElement('div', { + className: 'moveable-select-parent-arrow-top-icon', + }), + React.createElement('div', { + className: 'moveable-select-parent-arrow-body-icon', + }), ), React.createElement('button', { className: 'moveable-button moveable-remove-button', @@ -103,6 +60,31 @@ export default (handler: (type: AbleActionEventType) => void) => ({ handler(AbleActionEventType.REMOVE); }, }), + React.createElement( + 'button', + { + className: 'moveable-button moveable-drag-area-button', + title: '拖动', + }, + React.createElement('div', { + className: 'moveable-select-parent-arrow-top-icon moveable-select-parent-arrow-top-icon-top', + }), + React.createElement('div', { + className: 'moveable-select-parent-arrow-top-icon moveable-select-parent-arrow-top-icon-bottom', + }), + React.createElement('div', { + className: 'moveable-select-parent-arrow-top-icon moveable-select-parent-arrow-top-icon-left', + }), + React.createElement('div', { + className: ' moveable-select-parent-arrow-top-icon moveable-select-parent-arrow-top-icon-right', + }), + React.createElement('div', { + className: 'moveable-select-parent-arrow-body-icon-horizontal', + }), + React.createElement('div', { + className: 'moveable-select-parent-arrow-body-icon-vertical', + }), + ), ], ); }, diff --git a/packages/stage/src/MoveableOptionsManager.ts b/packages/stage/src/MoveableOptionsManager.ts index 7ff78e71..23435588 100644 --- a/packages/stage/src/MoveableOptionsManager.ts +++ b/packages/stage/src/MoveableOptionsManager.ts @@ -177,7 +177,8 @@ export default class MoveableOptionsManager extends EventEmitter { left: isAbsolute, }, isDisplayInnerSnapDigit: true, - + dragTarget: '.moveable-drag-area-button', + dragTargetSelf: true, props: { actions: true, }, diff --git a/packages/stage/src/moveable-able.css b/packages/stage/src/moveable-able.css new file mode 100644 index 00000000..7ce3fb7d --- /dev/null +++ b/packages/stage/src/moveable-able.css @@ -0,0 +1,98 @@ +.moveable-button { + width: 20px; + height: 20px; + background: #4af; + border-radius: 4px; + appearance: none; + border: 0; + color: white; + font-size: 12px; + font-weight: bold; + margin-left: 2px; + position: relative; +} +.moveable-remove-button:before, .moveable-remove-button:after { + content: ""; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%) rotate(45deg); + width: 14px; + height: 2px; + background: #fff; + border-radius: 1px; + cursor: pointer; +} +.moveable-remove-button:after { + transform: translate(-50%, -50%) rotate(-45deg); +} + +.moveable-select-parent-arrow-top-icon { + transform: rotateZ(-45deg); + width: 4px; + height: 4px; + border-color: #fff; + border-width: 2px 2px 0 0; + border-style: solid; + position: absolute; + left: 4px; + top: 4px; +} + +.moveable-select-parent-arrow-body-icon { + width: 7px; + height: 11px; + border-color: #fff; + border-width: 0 0 2px 2px; + border-style: solid; +} + +.moveable-drag-area-button .moveable-select-parent-arrow-top-icon { + width: 2px; + height: 2px; +} + +.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-top { + transform: rotateZ(-45deg); + left: 8px; + top: 3px; +} + +.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-bottom { + transform: rotateZ(135deg); + left: 8px; + top: auto; + bottom: 3px; +} + +.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-right { + transform: rotateZ(45deg); + right: 3px; + left: auto; + top: 8px; +} + +.moveable-drag-area-button .moveable-select-parent-arrow-top-icon-left { + transform: rotateZ(235deg); + left: 3px; + top: 8px; +} + +.moveable-drag-area-button .moveable-select-parent-arrow-body-icon-horizontal { + width: 2px; + height: 11px; + background-color: #fff; + position: absolute; + left: 9px; + top: 4px; +} + +.moveable-drag-area-button .moveable-select-parent-arrow-body-icon-vertical { + width: 11px; + height: 2px; + background-color: #fff; + position: absolute; + left: 4px; + top: 9px; +} + diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6297b214..da4dfca3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -292,11 +292,11 @@ importers: specifier: ^3.3.0 version: 3.3.0 gesto: - specifier: ^1.7.0 - version: 1.7.0 + specifier: ^1.19.1 + version: 1.19.1 keycon: - specifier: ^1.1.2 - version: 1.1.2 + specifier: ^1.4.0 + version: 1.4.0 lodash-es: specifier: ^4.17.21 version: 4.17.21 @@ -451,8 +451,8 @@ importers: packages/stage: dependencies: '@scena/guides': - specifier: ^0.23.3 - version: 0.23.3 + specifier: ^0.29.1 + version: 0.29.1 '@tmagic/core': specifier: 1.3.0-alpha.15 version: link:../core @@ -466,14 +466,14 @@ importers: specifier: ^3.3.0 version: 3.3.0 keycon: - specifier: ^1.1.2 - version: 1.1.2 + specifier: ^1.4.0 + version: 1.4.0 lodash-es: specifier: ^4.17.21 version: 4.17.21 moveable: - specifier: ^0.43.1 - version: 0.43.1 + specifier: ^0.51.1 + version: 0.51.1 moveable-helper: specifier: ^0.4.0 version: 0.4.0(scenejs@1.9.4) @@ -3419,6 +3419,12 @@ packages: '@egjs/component': 3.0.4 dev: false + /@cfcs/core@0.0.6: + resolution: {integrity: sha512-FxfJMwoLB8MEMConeXUCqtMGqxdtePQxRBOiGip9ULcYYam3WfCgoY6xdnMaSkYvRvmosp5iuG+TiPofm65+Pw==} + dependencies: + '@egjs/component': 3.0.4 + dev: false + /@commitlint/cli@16.2.3: resolution: {integrity: sha512-VsJBQLvhhlOgEfxs/Z5liYuK0dXqLE5hz1VJzLBxiOxG31kL/X5Q4OvK292BmO7IGZcm1yJE3XQPWSiFaEHbWA==} engines: {node: '>=v12'} @@ -3456,6 +3462,7 @@ packages: /@commitlint/config-validator@17.4.4: resolution: {integrity: sha512-bi0+TstqMiqoBAQDvdEP4AFh0GaKyLFlPPEObgI29utoKEYoPQTvF0EYqIwYYLEoJYhj5GfMIhPHJkTJhagfeg==} engines: {node: '>=v14'} + requiresBuild: true dependencies: '@commitlint/types': 17.4.4 ajv: 8.12.0 @@ -3478,6 +3485,7 @@ packages: /@commitlint/execute-rule@17.4.0: resolution: {integrity: sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA==} engines: {node: '>=v14'} + requiresBuild: true dev: true optional: true @@ -3591,6 +3599,7 @@ packages: /@commitlint/resolve-extends@17.4.4: resolution: {integrity: sha512-znXr1S0Rr8adInptHw0JeLgumS11lWbk5xAWFVno+HUFVN45875kUtqjrI6AppmD3JI+4s0uZlqqlkepjJd99A==} engines: {node: '>=v14'} + requiresBuild: true dependencies: '@commitlint/config-validator': 17.4.4 '@commitlint/types': 17.4.4 @@ -3634,6 +3643,7 @@ packages: /@commitlint/types@17.4.4: resolution: {integrity: sha512-amRN8tRLYOsxRr6mTnGGGvB5EmW/4DDjLMgiwK3CCVEmN6Sr/6xePGEpWaspKkckILuUORCwe6VfDBw6uj4axQ==} engines: {node: '>=v14'} + requiresBuild: true dependencies: chalk: 4.1.2 dev: true @@ -3642,6 +3652,7 @@ packages: /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} + requiresBuild: true dependencies: '@jridgewell/trace-mapping': 0.3.9 dev: true @@ -3654,6 +3665,10 @@ packages: resolution: {integrity: sha512-/T0Oe7KkfUoCusFj1cJ6N+Tu+jFZXVkaKqDBcDY3P0goJfcfaT+4+oG8aHi4LDgBErNjP6uvC3IEOSMe2ka/yQ==} dev: false + /@daybrush/utils@1.13.0: + resolution: {integrity: sha512-ALK12C6SQNNHw1enXK+UO8bdyQ+jaWNQ1Af7Z3FNxeAwjYhQT7do+TRE4RASAJ3ObaS2+TJ7TXR3oz2Gzbw0PQ==} + dev: false + /@docsearch/css@3.3.5: resolution: {integrity: sha512-NaXVp3I8LdmJ54fn038KHgG7HmbIzZlKS2FkVf6mKcW5bYMJovkx4947joQyZk5yubxOZ+ddHSh79y39Aevufg==} dev: true @@ -4214,6 +4229,7 @@ packages: /@jridgewell/resolve-uri@3.1.1: resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} engines: {node: '>=6.0.0'} + requiresBuild: true dev: true /@jridgewell/set-array@1.1.2: @@ -4240,6 +4256,7 @@ packages: /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + requiresBuild: true dependencies: '@jridgewell/resolve-uri': 3.1.1 '@jridgewell/sourcemap-codec': 1.4.15 @@ -4306,46 +4323,46 @@ packages: /@scena/dragscroll@1.4.0: resolution: {integrity: sha512-3O8daaZD9VXA9CP3dra6xcgt/qrm0mg0xJCwiX6druCteQ9FFsXffkF8PrqxY4Z4VJ58fFKEa0RlKqbsi/XnRA==} dependencies: - '@daybrush/utils': 1.11.0 + '@daybrush/utils': 1.13.0 '@scena/event-emitter': 1.0.5 dev: false /@scena/event-emitter@1.0.5: resolution: {integrity: sha512-AzY4OTb0+7ynefmWFQ6hxDdk0CySAq/D4efljfhtRHCOP7MBF9zUfhKG3TJiroVjASqVgkRJFdenS8ArZo6Olg==} dependencies: - '@daybrush/utils': 1.11.0 + '@daybrush/utils': 1.13.0 dev: false - /@scena/guides@0.23.3: - resolution: {integrity: sha512-bbbByPjTku5qEx7OhMKlnJ5zXF2NSJekpLMFneRFEPK3evlb3viprOpMGCDswGvf06z7geyif4UZlABE9pLMYg==} + /@scena/guides@0.29.1: + resolution: {integrity: sha512-gtL0b+5RpEptR6+j70d+hr9FVR7Zo5crs64FrKEyYES9s7HYHDJ5f61ZnQQ+Nsbsx3U69yrUeo5BzZ8xsYW8Ew==} dependencies: '@scena/event-emitter': 1.0.5 - react-compat-guides: 0.20.3 - react-simple-compat: 1.2.3 + croact: 1.0.4 + croact-guides: 0.26.1 dev: false /@scena/matrix@1.1.1: resolution: {integrity: sha512-JVKBhN0tm2Srl+Yt+Ywqu0oLgLcdemDQlD1OxmN9jaCTwaFPZ7tY8n6dhVgMEaR9qcR7r+kAlMXnSfNyYdE+Vg==} dependencies: - '@daybrush/utils': 1.11.0 + '@daybrush/utils': 1.13.0 dev: false - /@scena/react-guides@0.22.3: - resolution: {integrity: sha512-jnY1SlmHbzwWKVqAydw95fQNLIOgMAq9XKYEyN49wBxVswyhfNagdymOFMjEmFiJHe6mi8/nDz7sWIjNoNBL4A==} + /@scena/react-guides@0.28.1: + resolution: {integrity: sha512-O8P0dXT+Km7YeFURlr7Ncgx3QLghA3IJMXfKPaqY8wRK0WB81SPo9aeLrn6q2G1x9cAnG4yZWbafI8ooN6/WFQ==} dependencies: - '@daybrush/utils': 1.11.0 + '@daybrush/utils': 1.13.0 '@scena/dragscroll': 1.4.0 - '@scena/react-ruler': 0.14.2 + '@scena/react-ruler': 0.19.0 css-to-mat: 1.0.3 framework-utils: 1.1.0 - gesto: 1.15.1 - react-css-styled: 1.1.2(@daybrush/utils@1.11.0) + gesto: 1.19.1 + react-css-styled: 1.1.9 dev: false - /@scena/react-ruler@0.14.2: - resolution: {integrity: sha512-69c7uu60zNMpJHBLniT3FK2CtaYEcIcs/yrZAy/uh+Zz6P9gs/Xo7sLdOf9tKf90MCOzdrJnqzqjLXlxpWYNCQ==} + /@scena/react-ruler@0.19.0: + resolution: {integrity: sha512-2OEOjLMOptDxdSuEqID2JAljQuYoeoV09MnLjiBeyzJxoUcVjzyBCPwkMbHRKj2Z3WrwztJAFBF+y6yNNM5Lcw==} dependencies: - '@daybrush/utils': 1.11.0 + '@daybrush/utils': 1.13.0 framework-utils: 1.1.0 dev: false @@ -4387,18 +4404,22 @@ packages: /@tsconfig/node10@1.0.9: resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + requiresBuild: true dev: true /@tsconfig/node12@1.0.11: resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + requiresBuild: true dev: true /@tsconfig/node14@1.0.3: resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + requiresBuild: true dev: true /@tsconfig/node16@1.0.3: resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} + requiresBuild: true dev: true /@types/aria-query@4.2.2: @@ -5183,6 +5204,7 @@ packages: /ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + requiresBuild: true dependencies: fast-deep-equal: 3.1.3 json-schema-traverse: 1.0.0 @@ -5256,6 +5278,7 @@ packages: /arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + requiresBuild: true dev: true /argparse@2.0.1: @@ -6064,6 +6087,7 @@ packages: /cosmiconfig-typescript-loader@4.3.0(@types/node@18.15.11)(cosmiconfig@8.1.3)(ts-node@10.9.1)(typescript@4.9.5): resolution: {integrity: sha512-NTxV1MFfZDLPiBMjxbHRwSh5LaLcPMwNdCutmnHJCKoVnlvldPWlllonKwrsRJ5pYZBIBGRWWU2tfvzxgeSW5Q==} engines: {node: '>=12', npm: '>=6'} + requiresBuild: true peerDependencies: '@types/node': '*' cosmiconfig: '>=7' @@ -6091,6 +6115,7 @@ packages: /cosmiconfig@8.1.3: resolution: {integrity: sha512-/UkO2JKI18b5jVMJUp0lvKFMpa/Gye+ZgZjKD+DGEN9y7NRcf/nK1A0sp67ONmKtnDCNMS44E6jrk0Yc3bDuUw==} engines: {node: '>=14'} + requiresBuild: true dependencies: import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -6101,8 +6126,66 @@ packages: /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + requiresBuild: true dev: true + /croact-css-styled@1.1.9: + resolution: {integrity: sha512-G7yvRiVJ3Eoj0ov2h2xR4312hpOzATay2dGS9clK8yJQothjH1sBXIyvOeRP5wBKD9mPcKcoUXPCPsl0tQog4w==} + dependencies: + '@daybrush/utils': 1.13.0 + css-styled: 1.0.8 + framework-utils: 1.1.0 + dev: false + + /croact-guides@0.26.1: + resolution: {integrity: sha512-W+CnK4h+MaaSsPxusrWrdEy02YX3b/IuLUJeGb8lSa4s2mE324qub0zEep50OAfZ5GlBZyuc7M2hgMwXHrwUYg==} + dependencies: + '@daybrush/utils': 1.13.0 + '@scena/dragscroll': 1.4.0 + '@scena/react-guides': 0.28.1 + croact-css-styled: 1.1.9 + croact-ruler: 0.18.0 + css-to-mat: 1.0.3 + framework-utils: 1.1.0 + gesto: 1.19.1 + react-css-styled: 1.1.9 + dev: false + + /croact-moveable@0.7.1(croact@1.0.4): + resolution: {integrity: sha512-GW4W/TO7MOXWWRW+F6LIpvmPHy7ZNsVMMDXBiR1UejyQQX6a4gCecnFdcvflzDg2LaUa0kHVhfeUDfxmZYrUgQ==} + peerDependencies: + croact: ^1.0.4 + dependencies: + '@daybrush/utils': 1.13.0 + '@egjs/agent': 2.4.3 + '@egjs/children-differ': 1.0.1 + '@egjs/list-differ': 1.0.1 + '@scena/dragscroll': 1.4.0 + '@scena/event-emitter': 1.0.5 + '@scena/matrix': 1.1.1 + croact: 1.0.4 + croact-css-styled: 1.1.9 + css-to-mat: 1.1.1 + framework-utils: 1.1.0 + gesto: 1.19.1 + overlap-area: 1.1.0 + react-css-styled: 1.1.9 + react-moveable: 0.54.1 + dev: false + + /croact-ruler@0.18.0: + resolution: {integrity: sha512-FZtYH1n3Mpv7VX24y26lAMOVqem+/qRG4a7nBy9pwDeh9Q8UycOQqAdmWxNC1CNh1Pw1k4K28/gRQOyo4r1Zag==} + dependencies: + '@scena/react-ruler': 0.19.0 + dev: false + + /croact@1.0.4: + resolution: {integrity: sha512-9GhvyzTY/IVUrMQ2iz/mzgZ8+NcjczmIo/t4FkC1CU0CEcau6v6VsEih4jkTa4ZmRgYTF0qXEZLObCzdDFplpw==} + dependencies: + '@daybrush/utils': 1.13.0 + '@egjs/list-differ': 1.0.1 + dev: false + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -6112,19 +6195,23 @@ packages: which: 2.0.2 dev: true - /css-styled@1.0.1(@daybrush/utils@1.11.0): - resolution: {integrity: sha512-psJCbNDPPusDBWH/gszP6BetPh577QaqpvaysTNPitxX0nxdGiTgELiOCus0gZ0yXk3gvjShBrFP07nvn58/TQ==} - peerDependencies: - '@daybrush/utils': '>=1.0.0' + /css-styled@1.0.8: + resolution: {integrity: sha512-tCpP7kLRI8dI95rCh3Syl7I+v7PP+2JYOzWkl0bUEoSbJM+u8ITbutjlQVf0NC2/g4ULROJPi16sfwDIO8/84g==} dependencies: - '@daybrush/utils': 1.11.0 - string-hash: 1.1.3 + '@daybrush/utils': 1.13.0 dev: false /css-to-mat@1.0.3: resolution: {integrity: sha512-HADRhVqPc8wFqEp6ClK+uuPYg+FMBinNo2ReLyI/KQCncmHPJ60o5zldyJG7NjsTqXWbdfGJO51jnoxfMvWJiA==} dependencies: - '@daybrush/utils': 1.11.0 + '@daybrush/utils': 1.13.0 + '@scena/matrix': 1.1.1 + dev: false + + /css-to-mat@1.1.1: + resolution: {integrity: sha512-kvpxFYZb27jRd2vium35G7q5XZ2WJ9rWjDUMNT36M3Hc41qCrLXFM5iEKMGXcrPsKfXEN+8l/riB4QzwwwiEyQ==} + dependencies: + '@daybrush/utils': 1.13.0 '@scena/matrix': 1.1.1 dev: false @@ -6290,6 +6377,7 @@ packages: /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} + requiresBuild: true dev: true /dijkstrajs@1.0.2: @@ -7092,17 +7180,10 @@ packages: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} - /gesto@1.15.1: - resolution: {integrity: sha512-mqdBeVeYpymupHojEEyH33u0KvL/hbG6gKbqoQKoR7aeWrN82CIXYZkAo4Ie81PUhxS5HNDdmJVcSzqOpPm0JQ==} + /gesto@1.19.1: + resolution: {integrity: sha512-ofWVEdqmnpFm3AFf7aoclhoayseb3OkwSiXbXusKYu/99iN5HgeWP+SWqdghQ5TFlOgP5Zlz+6SY8mP2V0kFaQ==} dependencies: - '@daybrush/utils': 1.11.0 - '@scena/event-emitter': 1.0.5 - dev: false - - /gesto@1.7.0: - resolution: {integrity: sha512-gPwWUYVPlYATOL59Gl1g2pPtCvbYJIU2kaj85lGvGCde1jgWAh5QI/rwlLgTWpH+Nl53pmPGFmp/oGqJ9d7grw==} - dependencies: - '@daybrush/utils': 1.11.0 + '@daybrush/utils': 1.13.0 '@scena/event-emitter': 1.0.5 dev: false @@ -7849,6 +7930,7 @@ packages: /json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + requiresBuild: true dev: true optional: true @@ -7892,9 +7974,10 @@ packages: resolution: {integrity: sha512-Rdgz9Hl9Iv4QKi8b0OlCRQEzp4AgVxyCtz5S/+VIHezDmrDhkp2N2TqBWOLz0/gbeREXOOiI9/4b8BY9uw2vFg==} dev: false - /keycon@1.1.2: - resolution: {integrity: sha512-yCoUAfwqmQUWrtOFuZhicxasF/4ae+M0aH8yV1wEKKZCZql8v6jWhlVF9dT5i1TfuHSmgt/GNuCaWIHT8wk6eQ==} + /keycon@1.4.0: + resolution: {integrity: sha512-p1NAIxiRMH3jYfTeXRs2uWbVJ1WpEjpi8ktzUyBJsX7/wn2qu2VRXktneBLNtKNxJmlUYxRi9gOJt1DuthXR7A==} dependencies: + '@cfcs/core': 0.0.6 '@daybrush/utils': 1.11.0 '@scena/event-emitter': 1.0.5 keycode: 2.2.1 @@ -8028,6 +8111,7 @@ packages: /lodash.isplainobject@4.0.6: resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + requiresBuild: true dev: true optional: true @@ -8041,11 +8125,13 @@ packages: /lodash.mergewith@4.6.2: resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==} + requiresBuild: true dev: true optional: true /lodash.uniq@4.5.0: resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} + requiresBuild: true dev: true optional: true @@ -8154,6 +8240,7 @@ packages: /make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + requiresBuild: true dev: true /map-obj@1.0.1: @@ -8312,13 +8399,14 @@ packages: scenejs: 1.9.4 dev: false - /moveable@0.43.1: - resolution: {integrity: sha512-D533ZWgftClA0dVN1IrctxCFEYsRKDsQcT4VneI02TJu2N2ArtaPwkYi6Je/ZHx9ShxKbdS8iCzUkDLy1+yOyA==} + /moveable@0.51.1: + resolution: {integrity: sha512-YvMWmlM1MMWNvY+u7RmPvMvu6YDvYV0GVpdrfA2hacUa/iv5RslyMNe8+yp4WcQYN7RPF0TIyu/SqC6z2Y+5qw==} dependencies: + '@daybrush/utils': 1.13.0 '@scena/event-emitter': 1.0.5 - react-compat-moveable: 0.31.1 - react-moveable: 0.46.1 - react-simple-compat: 1.2.3 + croact: 1.0.4 + croact-moveable: 0.7.1(croact@1.0.4) + react-moveable: 0.54.1 dev: false /ms@2.1.2: @@ -8501,12 +8589,12 @@ packages: wcwidth: 1.0.1 dev: true - /order-map@0.2.2(@daybrush/utils@1.11.0): + /order-map@0.2.2(@daybrush/utils@1.13.0): resolution: {integrity: sha512-X//Db/lT11tdxxutWQfE+bmbTyieDJWrr/vSiwBwOf8RRw9yAgF7gqn1ihFmfX2E7l7gcPcucep3aWFjo5FpoA==} peerDependencies: '@daybrush/utils': '>=1.0.0' dependencies: - '@daybrush/utils': 1.11.0 + '@daybrush/utils': 1.13.0 dev: false /os-tmpdir@1.0.2: @@ -8517,7 +8605,7 @@ packages: /overlap-area@1.1.0: resolution: {integrity: sha512-3dlJgJCaVeXH0/eZjYVJvQiLVVrPO4U1ZGqlATtx6QGO3b5eNM6+JgUKa7oStBTdYuGTk7gVoABCW6Tp+dhRdw==} dependencies: - '@daybrush/utils': 1.11.0 + '@daybrush/utils': 1.13.0 dev: false /p-limit@1.3.0: @@ -8838,70 +8926,11 @@ packages: dependencies: safe-buffer: 5.2.1 - /react-compat-css-styled@1.0.9: - resolution: {integrity: sha512-YpUgTpXU1wR58aPQJVGAWq6QeEFWkafV0qq4Y8KRUwpQJLbJF2GYu5ZQ/kafHGvN3dqQX2e340NlNZ+zbZZv2w==} + /react-css-styled@1.1.9: + resolution: {integrity: sha512-M7fJZ3IWFaIHcZEkoFOnkjdiUFmwd8d+gTh2bpqMOcnxy/0Gsykw4dsL4QBiKsxcGow6tETUa4NAUcmJF+/nfw==} dependencies: - '@daybrush/utils': 1.11.0 - css-styled: 1.0.1(@daybrush/utils@1.11.0) + css-styled: 1.0.8 framework-utils: 1.1.0 - react-css-styled: 1.0.4(@daybrush/utils@1.11.0) - dev: false - - /react-compat-guides@0.20.3: - resolution: {integrity: sha512-+N36pfgWgNBWmwf/ZkI9WmGSVaqLiI7Kvxcts7tyOjog7u4tMUsvAWL5J1D5SiZBtkkEFD215SGmvGb0EzsHiA==} - dependencies: - '@daybrush/utils': 1.11.0 - '@scena/dragscroll': 1.4.0 - '@scena/react-guides': 0.22.3 - css-to-mat: 1.0.3 - framework-utils: 1.1.0 - gesto: 1.15.1 - react-compat-css-styled: 1.0.9 - react-compat-ruler: 0.13.2 - react-css-styled: 1.1.2(@daybrush/utils@1.11.0) - dev: false - - /react-compat-moveable@0.31.1: - resolution: {integrity: sha512-PI1YmWeJnGR00sG+4RJvfxjYcGQ0HpMFK3gVAyjh9Y7GGFo3GPms55JNyRK9UYYw47ik0Vx3mHEr90l5ZUNK7Q==} - dependencies: - '@daybrush/utils': 1.11.0 - '@egjs/agent': 2.4.3 - '@egjs/children-differ': 1.0.1 - '@egjs/list-differ': 1.0.1 - '@scena/dragscroll': 1.4.0 - '@scena/event-emitter': 1.0.5 - '@scena/matrix': 1.1.1 - css-to-mat: 1.0.3 - framework-utils: 1.1.0 - gesto: 1.15.1 - overlap-area: 1.1.0 - react-compat-css-styled: 1.0.9 - react-css-styled: 1.1.2(@daybrush/utils@1.11.0) - react-moveable: 0.46.1 - dev: false - - /react-compat-ruler@0.13.2: - resolution: {integrity: sha512-wLjhE9PKMC7qmnSD4woCNTQGRe/zFPgMkIWZp8k8euhpVjdVjQ873zXTz4co4SWL7k+8tCahIaYtme/dGm/AZw==} - dependencies: - '@scena/react-ruler': 0.14.2 - dev: false - - /react-css-styled@1.0.4(@daybrush/utils@1.11.0): - resolution: {integrity: sha512-nRske1bAKOCaf7Gf3o76tKQFIYggaW1qH4rutBlitH5lYnRPA7WoAYKrcxqdUPZd00oASg3SvFZSh3Mc1Wvj3w==} - dependencies: - css-styled: 1.0.1(@daybrush/utils@1.11.0) - framework-utils: 1.1.0 - transitivePeerDependencies: - - '@daybrush/utils' - dev: false - - /react-css-styled@1.1.2(@daybrush/utils@1.11.0): - resolution: {integrity: sha512-YHTGOWaCLf7pASGRY3awG8rv67qyOjaUXUKfa3jFwzWges22SxYWQdMWIhCz7I8PXTrNRcIkemc6o2vVpd+gUA==} - dependencies: - css-styled: 1.0.1(@daybrush/utils@1.11.0) - framework-utils: 1.1.0 - transitivePeerDependencies: - - '@daybrush/utils' dev: false /react-dom@17.0.2(react@17.0.2): @@ -8919,21 +8948,22 @@ packages: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} dev: true - /react-moveable@0.46.1: - resolution: {integrity: sha512-Xi+64z51p7nrXwu3PeTUCoOYgRUwaZ6wxkrrbLAxYIqEd9Mfu/WHdiWzp5sp0kHsegJPX2t+XEErTmulAEQaIQ==} + /react-moveable@0.54.1: + resolution: {integrity: sha512-Kj2ifw9nk3LZvu7ezhst8Z5WBPRr+yVv9oROwrBirFlHmwGHHZXUGk5Gaezu+JGqqNRsQJncVMW5Uf68KSSOvg==} dependencies: - '@daybrush/utils': 1.11.0 + '@daybrush/utils': 1.13.0 '@egjs/agent': 2.4.3 '@egjs/children-differ': 1.0.1 '@egjs/list-differ': 1.0.1 '@scena/dragscroll': 1.4.0 '@scena/event-emitter': 1.0.5 '@scena/matrix': 1.1.1 - css-to-mat: 1.0.3 + css-to-mat: 1.1.1 framework-utils: 1.1.0 - gesto: 1.15.1 + gesto: 1.19.1 overlap-area: 1.1.0 - react-css-styled: 1.1.2(@daybrush/utils@1.11.0) + react-css-styled: 1.1.9 + react-selecto: 1.26.0 dev: false /react-refresh@0.9.0: @@ -8941,12 +8971,10 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-simple-compat@1.2.3: - resolution: {integrity: sha512-vYepRjSriGRyEmFtSsTQoHWVQRbBMYR4ONATeZtuf8GDY8jWGkc6R4+lIb5rVhPBIkx3ru68bpl+9r8V4YA/nA==} - deprecated: Use 'croact' module. + /react-selecto@1.26.0: + resolution: {integrity: sha512-aBTZEYA68uE+o8TytNjTb2GpIn4oKEv0U4LIow3cspJQlF/PdAnBwkq9UuiKVuFluu5kfLQ7Keu3S2Tihlmw0g==} dependencies: - '@daybrush/utils': 1.11.0 - '@egjs/list-differ': 1.0.1 + selecto: 1.26.0 dev: false /react@17.0.2: @@ -9110,6 +9138,7 @@ packages: /require-from-string@2.0.2: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + requiresBuild: true dev: true optional: true @@ -9262,10 +9291,10 @@ packages: resolution: {integrity: sha512-/DajsY2fwaOgWKOPNV2nP/eE2+zF+q2tE4aYOSteg7JWrzHPXTXG1ds4Ah09nImznJ5rPnZOm1/gX451we2WvQ==} dependencies: '@cfcs/core': 0.0.12 - '@daybrush/utils': 1.11.0 + '@daybrush/utils': 1.13.0 '@scena/event-emitter': 1.0.5 - css-styled: 1.0.1(@daybrush/utils@1.11.0) - order-map: 0.2.2(@daybrush/utils@1.11.0) + css-styled: 1.0.8 + order-map: 0.2.2(@daybrush/utils@1.13.0) dev: false /scheduler@0.20.2: @@ -9279,6 +9308,21 @@ packages: resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==} dev: true + /selecto@1.26.0: + resolution: {integrity: sha512-cEFKdv5rmkF6pf2OScQJllaNp4UJy/FvviB40ZaMSHrQCxC72X/Q6uhzW1tlb2RE+0danvUNJTs64cI9VXtUyg==} + dependencies: + '@daybrush/utils': 1.13.0 + '@egjs/children-differ': 1.0.1 + '@scena/dragscroll': 1.4.0 + '@scena/event-emitter': 1.0.5 + css-styled: 1.0.8 + css-to-mat: 1.1.1 + framework-utils: 1.1.0 + gesto: 1.19.1 + keycon: 1.4.0 + overlap-area: 1.1.0 + dev: false + /semver-compare@1.0.0: resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} dev: true @@ -9485,10 +9529,6 @@ packages: engines: {node: '>=0.6.19'} dev: true - /string-hash@1.1.3: - resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} - dev: false - /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -10079,6 +10119,7 @@ packages: /v8-compile-cache-lib@3.0.1: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + requiresBuild: true dev: true /v8-to-istanbul@9.1.0: @@ -10689,6 +10730,7 @@ packages: /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} + requiresBuild: true dev: true /yocto-queue@0.1.0: