@jxsuite/studio 2.2.2 → 2.4.0
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/data/css-meta.json +1487 -0
- package/data/elements-meta.json +370 -0
- package/data/html-meta.json +366 -0
- package/data/stylebook-meta.json +200 -0
- package/data/webdata.json +1621 -0
- package/dist/chunks/{Overlay.dev-ymy3et3y.js → Overlay.dev-d2ajy6sj.js} +7 -7
- package/dist/chunks/{content-source-r2n7v682.js → content-source-jrvn5vwy.js} +13 -12
- package/dist/chunks/{convert-to-repeater-cnpyvj74.js → convert-to-repeater-109dwcj7.js} +12 -11
- package/dist/chunks/{extension-sections-vpcm4jvx.js → extension-sections-2zjyty05.js} +17 -16
- package/dist/chunks/{files-zeg88k2d.js → files-jdbtammm.js} +18 -19
- package/dist/chunks/{format-host-taymsw55.js → format-host-kq6963gs.js} +2 -2
- package/dist/chunks/{git-panel-qp4rrwr9.js → git-panel-2stf3ahg.js} +12 -11
- package/dist/chunks/{layers-panel-kj93w2zg.js → layers-panel-a8wjsdjj.js} +15 -14
- package/dist/chunks/{monaco-setup-xy3bs05d.js → monaco-setup-a5wkmbgh.js} +6 -3
- package/dist/chunks/{publish-panel-6qz6kp41.js → publish-panel-2we6smjv.js} +6 -6
- package/dist/chunks/{quick-search-9wwa09hh.js → quick-search-hmpwdgys.js} +19 -18
- package/dist/chunks/right-panel-hn3y3j0j.js +38 -0
- package/dist/chunks/{sp-overlay.dev-h6kdx076.js → sp-overlay.dev-s18hymn9.js} +8 -8
- package/dist/chunks/sp-progress-circle.dev-0zxcyz3r.js +15 -0
- package/dist/chunks/sp-tooltip.dev-5c6d1kjz.js +15 -0
- package/dist/chunks/{studio-753znj4c.js → studio-0evba9z5.js} +5 -5
- package/dist/chunks/{studio-qhh8r5fz.js → studio-102jzb8r.js} +4 -4
- package/dist/chunks/{studio-22xr4q8q.js → studio-1dgqagzz.js} +18 -29
- package/dist/chunks/{studio-6f0am8f2.js → studio-2w11grav.js} +2 -2
- package/dist/chunks/{studio-pv8m0h4a.js → studio-377bbhtz.js} +28 -23
- package/dist/chunks/{studio-6zzbyx17.js → studio-53dn6e6t.js} +2 -2
- package/dist/chunks/studio-53n8bp04.js +16 -0
- package/dist/chunks/{studio-tqemhphj.js → studio-6gcrk1bq.js} +4 -4
- package/dist/chunks/{studio-3z8jjm2p.js → studio-7ejemhej.js} +3 -3
- package/dist/chunks/{studio-nqq8jk8f.js → studio-8x4399kc.js} +14 -14
- package/dist/chunks/{studio-rgwcpast.js → studio-ay8wcr2b.js} +2 -2
- package/dist/chunks/{studio-xmvbhg31.js → studio-c31yb4t6.js} +2 -2
- package/dist/chunks/{studio-5kt960pk.js → studio-ddgrc5hs.js} +133 -147
- package/dist/chunks/{studio-zqv3w24n.js → studio-eqyybj2e.js} +5 -5
- package/dist/chunks/{studio-p471gg5n.js → studio-kvfx9z2c.js} +7 -3
- package/dist/chunks/{studio-8sdyjfd6.js → studio-kwavhmdr.js} +2 -2
- package/dist/chunks/{studio-300zsz1k.js → studio-ky68mp85.js} +6 -6
- package/dist/chunks/{studio-x0et2z9g.js → studio-ng5gbxkj.js} +15 -15
- package/dist/chunks/{studio-hekaagev.js → studio-q07vj7p9.js} +17 -17
- package/dist/chunks/{studio-fys6z73y.js → studio-qd4k0h80.js} +7 -7
- package/dist/chunks/{studio-yphy4z9m.js → studio-rdsvb808.js} +5 -5
- package/dist/chunks/{studio-g8t7g0gp.js → studio-tqr02xaa.js} +3 -3
- package/dist/chunks/{studio-ckwz4d3x.js → studio-twsafr1e.js} +2 -2
- package/dist/chunks/{studio-qrsfh1w7.js → studio-tzx3xmvx.js} +5 -5
- package/dist/chunks/{studio-6a0h7sne.js → studio-vhk5fmfv.js} +2 -2
- package/dist/chunks/{studio-hrajjyt2.js → studio-wdt9y92a.js} +2 -2
- package/dist/chunks/{studio-r8vx7bkz.js → studio-wxthr2x1.js} +14 -13
- package/dist/chunks/{studio-yz9s88s0.js → studio-yk7037sg.js} +40 -14
- package/dist/chunks/{studio-1kgfcv7s.js → studio-yz06mkfj.js} +12 -11
- package/dist/codicon.ttf +0 -0
- package/dist/iframe-entry.js +14 -3
- package/dist/manifest.json +82 -0
- package/dist/studio.js +247 -106
- package/index.html +0 -50
- package/package.json +16 -9
- package/src/canvas/canvas-live-render.ts +2 -4
- package/src/canvas/canvas-origin.ts +25 -0
- package/src/canvas/iframe-entry.ts +5 -0
- package/src/canvas/iframe-host.ts +45 -4
- package/src/content/entry-editor.ts +2 -1
- package/src/editor/context-menu.ts +13 -2
- package/src/editor/slash-menu.ts +26 -11
- package/src/files/files.ts +11 -23
- package/src/grid/grid-panel.ts +27 -6
- package/src/hosting/document.ts +109 -0
- package/src/hosting/layout.ts +211 -0
- package/src/hosting/stage.ts +166 -0
- package/src/hosting/tsconfig.json +18 -0
- package/src/panels/ai-chat/chat-view.ts +25 -14
- package/src/panels/git-panel.ts +17 -14
- package/src/panels/head-panel.ts +32 -14
- package/src/panels/imports-panel.ts +32 -13
- package/src/panels/layers-panel.ts +9 -1
- package/src/panels/panel-registry.ts +0 -1
- package/src/panels/properties-panel.ts +3 -3
- package/src/panels/settings-pane.ts +1 -1
- package/src/panels/style-panel.ts +3 -3
- package/src/panels/stylebook-panel.ts +10 -1
- package/src/panels/toolbar.ts +1 -1
- package/src/platforms/cloud.ts +9 -0
- package/src/services/ai-models.ts +14 -1
- package/src/services/bundle-base.ts +69 -0
- package/src/services/monaco-setup.ts +19 -13
- package/src/shell/tree.ts +155 -0
- package/src/shell.ts +0 -2
- package/src/studio.ts +22 -2
- package/src/types.ts +32 -0
- package/src/ui/ai-managed-connect.ts +18 -3
- package/src/ui/regions.ts +10 -45
- package/styles/overlays.css +35 -0
- package/styles/shell.css +7 -0
- package/dist/chunks/2020-xp8vnwma.js.map +0 -24
- package/dist/chunks/Overlay.dev-ymy3et3y.js.map +0 -9
- package/dist/chunks/adapter-jkcyhgtr.js.map +0 -9
- package/dist/chunks/cf-settings-g5fbf2zp.js.map +0 -9
- package/dist/chunks/components-z6cnkyy1.js.map +0 -9
- package/dist/chunks/content-source-r2n7v682.js.map +0 -9
- package/dist/chunks/convert-to-repeater-cnpyvj74.js.map +0 -10
- package/dist/chunks/editor-cptq5jp1.js.map +0 -9
- package/dist/chunks/extension-sections-vpcm4jvx.js.map +0 -11
- package/dist/chunks/files-zeg88k2d.js.map +0 -9
- package/dist/chunks/flow-qbfgrpeh.js.map +0 -12
- package/dist/chunks/focus-trap.esm-ggawf1hy.js.map +0 -11
- package/dist/chunks/focus-visible-6eg70z18.js.map +0 -10
- package/dist/chunks/format-host-taymsw55.js.map +0 -9
- package/dist/chunks/git-panel-qp4rrwr9.js.map +0 -9
- package/dist/chunks/index-nj44jpzj.js.map +0 -14
- package/dist/chunks/index-zqxmqxmh.js.map +0 -9
- package/dist/chunks/javascript-q8kpmfah.js.map +0 -11
- package/dist/chunks/jsonMode-dkr040ga.js.map +0 -18
- package/dist/chunks/jx-validate-jj9rnt4n.js.map +0 -9
- package/dist/chunks/layers-panel-kj93w2zg.js.map +0 -9
- package/dist/chunks/monaco-binding-rj6xpx9y.js.map +0 -10
- package/dist/chunks/monaco-setup-xy3bs05d.js.map +0 -15
- package/dist/chunks/publish-panel-6qz6kp41.js.map +0 -9
- package/dist/chunks/quick-search-9wwa09hh.js.map +0 -9
- package/dist/chunks/right-panel-faf816ch.js +0 -37
- package/dist/chunks/right-panel-faf816ch.js.map +0 -9
- package/dist/chunks/section-registry-sx1ykvkw.js.map +0 -9
- package/dist/chunks/sp-overlay.dev-h6kdx076.js.map +0 -9
- package/dist/chunks/sp-popover.dev-dj9x7e7a.js.map +0 -9
- package/dist/chunks/sp-progress-circle.dev-0fpvhm52.js +0 -15
- package/dist/chunks/sp-progress-circle.dev-0fpvhm52.js.map +0 -9
- package/dist/chunks/sp-tooltip.dev-rvepkw4r.js +0 -15
- package/dist/chunks/sp-tooltip.dev-rvepkw4r.js.map +0 -9
- package/dist/chunks/sp-tray.dev-64v4pxw8.js.map +0 -12
- package/dist/chunks/studio-0a5qrh01.js.map +0 -9
- package/dist/chunks/studio-0rqqhrdy.js.map +0 -12
- package/dist/chunks/studio-18j3bmcz.js.map +0 -10
- package/dist/chunks/studio-1kgfcv7s.js.map +0 -13
- package/dist/chunks/studio-22xr4q8q.js.map +0 -13
- package/dist/chunks/studio-300zsz1k.js.map +0 -39
- package/dist/chunks/studio-3fk1ac9z.js.map +0 -12
- package/dist/chunks/studio-3n4ndrzh.js.map +0 -41
- package/dist/chunks/studio-3z8jjm2p.js.map +0 -13
- package/dist/chunks/studio-4mqb9a0j.js.map +0 -14
- package/dist/chunks/studio-4q0wznzf.js.map +0 -73
- package/dist/chunks/studio-5ehhackm.js.map +0 -10
- package/dist/chunks/studio-5kt960pk.js.map +0 -38
- package/dist/chunks/studio-5x5774ak.js.map +0 -10
- package/dist/chunks/studio-685s0ytq.js.map +0 -76
- package/dist/chunks/studio-6a0h7sne.js.map +0 -15
- package/dist/chunks/studio-6f0am8f2.js.map +0 -10
- package/dist/chunks/studio-6kv3apa9.js.map +0 -10
- package/dist/chunks/studio-6zzbyx17.js.map +0 -12
- package/dist/chunks/studio-753znj4c.js.map +0 -16
- package/dist/chunks/studio-7afd21nw.js.map +0 -10
- package/dist/chunks/studio-8jpzqk5s.js.map +0 -10
- package/dist/chunks/studio-8q517dfr.js.map +0 -10
- package/dist/chunks/studio-8sdyjfd6.js.map +0 -10
- package/dist/chunks/studio-a0tswy0w.js.map +0 -9
- package/dist/chunks/studio-a7pzveq1.js.map +0 -11
- package/dist/chunks/studio-ahnzd9rg.js.map +0 -10
- package/dist/chunks/studio-b9b6t1dg.js.map +0 -651
- package/dist/chunks/studio-bw5dz6km.js.map +0 -21
- package/dist/chunks/studio-cjm7fdjf.js.map +0 -14
- package/dist/chunks/studio-ckwz4d3x.js.map +0 -12
- package/dist/chunks/studio-d1ks410h.js.map +0 -10
- package/dist/chunks/studio-dg7zyt5x.js.map +0 -10
- package/dist/chunks/studio-fys6z73y.js.map +0 -10
- package/dist/chunks/studio-g1wdche0.js.map +0 -56
- package/dist/chunks/studio-g8t7g0gp.js.map +0 -10
- package/dist/chunks/studio-h4rxscfc.js.map +0 -10
- package/dist/chunks/studio-hekaagev.js.map +0 -18
- package/dist/chunks/studio-hrajjyt2.js.map +0 -10
- package/dist/chunks/studio-nqq8jk8f.js.map +0 -14
- package/dist/chunks/studio-p471gg5n.js.map +0 -14
- package/dist/chunks/studio-pv8m0h4a.js.map +0 -98
- package/dist/chunks/studio-qhh8r5fz.js.map +0 -13
- package/dist/chunks/studio-qrsfh1w7.js.map +0 -41
- package/dist/chunks/studio-r8vx7bkz.js.map +0 -235
- package/dist/chunks/studio-rgwcpast.js.map +0 -12
- package/dist/chunks/studio-s519zc99.js.map +0 -10
- package/dist/chunks/studio-sas7mt3k.js.map +0 -10
- package/dist/chunks/studio-t5wqwzdh.js.map +0 -10
- package/dist/chunks/studio-tqemhphj.js.map +0 -11
- package/dist/chunks/studio-tr20m8g8.js.map +0 -9
- package/dist/chunks/studio-tvgyw9xw.js.map +0 -14
- package/dist/chunks/studio-x0et2z9g.js.map +0 -32
- package/dist/chunks/studio-xm3dbxvn.js.map +0 -19
- package/dist/chunks/studio-xmvbhg31.js.map +0 -10
- package/dist/chunks/studio-ynxwkrzd.js.map +0 -246
- package/dist/chunks/studio-yphy4z9m.js.map +0 -10
- package/dist/chunks/studio-yz9s88s0.js.map +0 -54
- package/dist/chunks/studio-z6nw2ek2.js.map +0 -10
- package/dist/chunks/studio-zqv3w24n.js.map +0 -11
- package/dist/chunks/tsMode-76kr53q0.js.map +0 -13
- package/dist/chunks/ws-client-6shc5rze.js.map +0 -12
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../node_modules/bind-event-listener/dist/bind.js", "../../../node_modules/bind-event-listener/dist/bind-all.js", "../../../node_modules/bind-event-listener/dist/index.js", "../../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js", "../../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js", "../../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js", "../../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js", "../../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js", "../../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/adapter/element-adapter.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/honey-pot-data-attribute.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/is-honey-pot-element.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/get-element-from-point-without-honey-pot.js", "../../../node_modules/@babel/runtime/helpers/esm/typeof.js", "../../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js", "../../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js", "../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/honey-pot-fix/make-honey-pot-fix.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/max-z-index.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/popover-reset-styles.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/public-utils/once.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/supports-popover.js", "../../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js", "../../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js", "../../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js", "../../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/lifecycle-manager.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/is-firefox.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/is-safari.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/is-from-another-window.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/count-events-for-safari.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/is-leaving-window-in-safari.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/changing-window/is-leaving-window.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/detect-broken-drag.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/get-input.js", "../../../node_modules/raf-schd/dist/raf-schd.esm.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/dispatch-consumer-event.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/ledger/usage-ledger.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/public-utils/combine.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/add-attribute.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-drop-target.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-monitor.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/make-adapter/make-adapter.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/android.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/media-types/text-media-type.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/util/media-types/url-media-type.js", "../../../node_modules/@atlaskit/pragmatic-drag-and-drop/dist/esm/adapter/element-adapter-native-data-key.js"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bind = void 0;\nfunction bind(target, _a) {\n var type = _a.type, listener = _a.listener, options = _a.options;\n target.addEventListener(type, listener, options);\n return function unbind() {\n target.removeEventListener(type, listener, options);\n };\n}\nexports.bind = bind;\n",
|
|
6
|
-
"\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindAll = void 0;\nvar bind_1 = require(\"./bind\");\nfunction toOptions(value) {\n if (typeof value === 'undefined') {\n return undefined;\n }\n if (typeof value === 'boolean') {\n return {\n capture: value,\n };\n }\n return value;\n}\nfunction getBinding(original, sharedOptions) {\n if (sharedOptions == null) {\n return original;\n }\n var binding = __assign(__assign({}, original), { options: __assign(__assign({}, toOptions(sharedOptions)), toOptions(original.options)) });\n return binding;\n}\nfunction bindAll(target, bindings, sharedOptions) {\n var unbinds = bindings.map(function (original) {\n var binding = getBinding(original, sharedOptions);\n return (0, bind_1.bind)(target, binding);\n });\n return function unbindAll() {\n unbinds.forEach(function (unbind) { return unbind(); });\n };\n}\nexports.bindAll = bindAll;\n",
|
|
7
|
-
"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bindAll = exports.bind = void 0;\nvar bind_1 = require(\"./bind\");\nObject.defineProperty(exports, \"bind\", { enumerable: true, get: function () { return bind_1.bind; } });\nvar bind_all_1 = require(\"./bind-all\");\nObject.defineProperty(exports, \"bindAll\", { enumerable: true, get: function () { return bind_all_1.bindAll; } });\n",
|
|
8
|
-
"function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };",
|
|
9
|
-
"function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nexport { _iterableToArrayLimit as default };",
|
|
10
|
-
"function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };",
|
|
11
|
-
"import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };",
|
|
12
|
-
"function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };",
|
|
13
|
-
"import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nfunction _slicedToArray(r, e) {\n return arrayWithHoles(r) || iterableToArrayLimit(r, e) || unsupportedIterableToArray(r, e) || nonIterableRest();\n}\nexport { _slicedToArray as default };",
|
|
14
|
-
"import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { bind } from 'bind-event-listener';\nimport { getElementFromPointWithoutHoneypot } from '../honey-pot-fix/get-element-from-point-without-honey-pot';\nimport { makeHoneyPotFix } from '../honey-pot-fix/make-honey-pot-fix';\nimport { makeAdapter } from '../make-adapter/make-adapter';\nimport { combine } from '../public-utils/combine';\nimport { once } from '../public-utils/once';\nimport { addAttribute } from '../util/add-attribute';\nimport { androidFallbackText, isAndroid } from '../util/android';\nimport { getInput } from '../util/get-input';\nimport { textMediaType } from '../util/media-types/text-media-type';\nimport { URLMediaType } from '../util/media-types/url-media-type';\nimport { elementAdapterNativeDataKey } from './element-adapter-native-data-key';\n\n// Payload for the draggable being dragged\n// eslint-disable-next-line @atlaskit/volt-strict-mode/no-re-exports\n\nvar draggableRegistry = new WeakMap();\nfunction addToRegistry(args) {\n draggableRegistry.set(args.element, args);\n return function cleanup() {\n draggableRegistry.delete(args.element);\n };\n}\nvar honeyPotFix = makeHoneyPotFix();\nvar adapter = makeAdapter({\n typeKey: 'element',\n defaultDropEffect: 'move',\n mount: function mount(api) {\n /** Binding event listeners the `document` rather than `window` so that\n * this adapter always gets preference over the text adapter.\n * `document` is the first `EventTarget` under `window`\n * https://twitter.com/alexandereardon/status/1604658588311465985\n */\n return combine(honeyPotFix.bindEvents(), bind(document, {\n type: 'dragstart',\n listener: function listener(event) {\n var _entry$dragHandle, _entry$getInitialData, _entry$getInitialData2, _entry$dragHandle2, _entry$getInitialData3, _entry$getInitialData4;\n if (!api.canStart(event)) {\n return;\n }\n\n // If the \"dragstart\" event is cancelled, then a drag won't start\n // There will be no further drag operation events (eg no \"dragend\" event)\n if (event.defaultPrevented) {\n return;\n }\n\n // Technically `dataTransfer` can be `null` according to the types\n // But that behaviour does not seem to appear in the spec.\n // If there is not `dataTransfer`, we can assume something is wrong and not\n // start a drag\n if (!event.dataTransfer) {\n // Including this code on \"test\" and \"development\" environments:\n // - Browser tests commonly run against \"development\" builds\n // - Unit tests commonly run in \"test\"\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(\"\\n It appears as though you have are not testing DragEvents correctly.\\n\\n - If you are unit testing, ensure you have polyfilled DragEvent.\\n - If you are browser testing, ensure you are dispatching drag events correctly.\\n\\n Please see our testing guides for more information:\\n https://atlassian.design/components/pragmatic-drag-and-drop/core-package/testing\\n \".replace(/ {2}/g, ''));\n }\n return;\n }\n\n // the closest parent that is a draggable element will be marked as\n // the `event.target` for the event\n var target = event.target;\n\n // this source is only for elements\n // Note: only HTMLElements can have the \"draggable\" attribute\n if (!(target instanceof HTMLElement)) {\n return;\n }\n\n // see if the thing being dragged is owned by us\n var entry = draggableRegistry.get(target);\n\n // no matching element found\n // → dragging an element with `draggable=\"true\"` that is not controlled by us\n if (!entry) {\n return;\n }\n\n /**\n * A text selection drag _can_ have the `draggable` element be\n * the `event.target` if the user is dragging the text selection\n * from the `draggable`.\n *\n * To know if the `draggable` is being dragged, we look at whether any\n * `\"text/plain\"` data is being dragged. If it is, then a text selection\n * drag is occurring.\n *\n * This behaviour has been validated on:\n *\n * - Chrome@128 on Android@14\n * - Chrome@128 on iOS@17.6.1\n * - Chrome@128 on Windows@11\n * - Chrome@128 on MacOS@14.6.1\n * - Firefox@129 on Windows@11 (not possible for user to select text in a draggable)\n * - Firefox@129 on MacOS@14.6.1 (not possible for user to select text in a draggable)\n *\n * Note: Could usually just use: `event.dataTransfer.types.includes(textMediaType)`\n * but unfortunately ProseMirror is always setting `\"\"` as the dragged text\n *\n * Note: Unfortunately editor is (heavily) leaning on the current functionality today\n * and unwinding it will be a decent amount of effort. So for now, a text selection\n * where the `event.target` is a `draggable` element will still trigger the\n * element adapter.\n *\n * // Future state:\n * if(event.dataTransfer.getData(textMediaType)) {\n * \treturn;\n * }\n *\n */\n\n var input = getInput(event);\n var feedback = {\n element: entry.element,\n dragHandle: (_entry$dragHandle = entry.dragHandle) !== null && _entry$dragHandle !== void 0 ? _entry$dragHandle : null,\n input: input\n };\n\n // Check: does the draggable want to allow dragging?\n if (entry.canDrag && !entry.canDrag(feedback)) {\n // cancel drag operation if we cannot drag\n event.preventDefault();\n return;\n }\n\n // Check: is there a drag handle and is the user using it?\n if (entry.dragHandle) {\n // technically don't need this util, but just being\n // consistent with how we look up what is under the users\n // cursor.\n var over = getElementFromPointWithoutHoneypot({\n x: input.clientX,\n y: input.clientY\n });\n\n // if we are not dragging from the drag handle (or something inside the drag handle)\n // then we will cancel the active drag\n if (!entry.dragHandle.contains(over)) {\n event.preventDefault();\n return;\n }\n }\n\n /**\n * **Goal**\n * Pass information to other applications\n *\n * **Approach**\n * Put data into the native data store\n *\n * **What about the native adapter?**\n * When the element adapter puts native data into the native data store\n * the native adapter is not triggered in the current window,\n * but a native adapter in an external window _can_ be triggered\n *\n * **Why bake this into core?**\n * This functionality could be pulled out and exposed inside of\n * `onGenerateDragPreview`. But decided to make it a part of the\n * base API as it felt like a common enough use case and ended\n * up being a similar amount of code to include this function as\n * it was to expose the hook for it\n */\n var nativeData = (_entry$getInitialData = (_entry$getInitialData2 = entry.getInitialDataForExternal) === null || _entry$getInitialData2 === void 0 ? void 0 : _entry$getInitialData2.call(entry, feedback)) !== null && _entry$getInitialData !== void 0 ? _entry$getInitialData : null;\n if (nativeData) {\n for (var _i = 0, _Object$entries = Object.entries(nativeData); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n key = _Object$entries$_i[0],\n data = _Object$entries$_i[1];\n event.dataTransfer.setData(key, data !== null && data !== void 0 ? data : '');\n }\n }\n\n /**\n * 📱 For Android devices, a drag operation will not start unless\n * \"text/plain\" or \"text/uri-list\" data exists in the native data store\n * https://twitter.com/alexandereardon/status/1732189803754713424\n *\n * Tested on:\n * Device: Google Pixel 5\n * Android version: 14 (November 5, 2023)\n * Chrome version: 120.0\n */\n if (isAndroid() && !event.dataTransfer.types.includes(textMediaType) && !event.dataTransfer.types.includes(URLMediaType)) {\n event.dataTransfer.setData(textMediaType, androidFallbackText);\n }\n\n /**\n * 1. Must set any media type for `iOS15` to work\n * 2. We are also doing adding data so that the native adapter\n * can know that the element adapter has handled this drag\n *\n * We used to wrap this `setData()` in a `try/catch` for Firefox,\n * but it looks like that was not needed.\n *\n * Tested using: https://codesandbox.io/s/checking-firefox-throw-behaviour-on-dragstart-qt8h4f\n *\n * - ✅ Firefox@70.0 (Oct 2019) on macOS Sonoma\n * - ✅ Firefox@70.0 (Oct 2019) on macOS Big Sur\n * - ✅ Firefox@70.0 (Oct 2019) on Windows 10\n *\n * // just checking a few more combinations to be super safe\n *\n * - ✅ Chrome@78 (Oct 2019) on macOS Big Sur\n * - ✅ Chrome@78 (Oct 2019) on Windows 10\n * - ✅ Safari@14.1 on macOS Big Sur\n */\n event.dataTransfer.setData(elementAdapterNativeDataKey, '');\n var payload = {\n element: entry.element,\n dragHandle: (_entry$dragHandle2 = entry.dragHandle) !== null && _entry$dragHandle2 !== void 0 ? _entry$dragHandle2 : null,\n data: (_entry$getInitialData3 = (_entry$getInitialData4 = entry.getInitialData) === null || _entry$getInitialData4 === void 0 ? void 0 : _entry$getInitialData4.call(entry, feedback)) !== null && _entry$getInitialData3 !== void 0 ? _entry$getInitialData3 : {}\n };\n var dragType = {\n type: 'element',\n payload: payload,\n startedFrom: 'internal'\n };\n api.start({\n event: event,\n dragType: dragType\n });\n }\n }));\n },\n dispatchEventToSource: function dispatchEventToSource(_ref) {\n var _draggableRegistry$ge, _draggableRegistry$ge2;\n var eventName = _ref.eventName,\n payload = _ref.payload;\n // During a drag operation, a draggable can be:\n // - remounted with different functions\n // - removed completely\n // So we need to get the latest entry from the registry in order\n // to call the latest event functions\n\n (_draggableRegistry$ge = draggableRegistry.get(payload.source.element)) === null || _draggableRegistry$ge === void 0 || (_draggableRegistry$ge2 = _draggableRegistry$ge[eventName]) === null || _draggableRegistry$ge2 === void 0 || _draggableRegistry$ge2.call(_draggableRegistry$ge,\n // I cannot seem to get the types right here.\n // TS doesn't seem to like that one event can need `nativeSetDragImage`\n // @ts-expect-error\n payload);\n },\n onPostDispatch: honeyPotFix.getOnPostDispatch()\n});\nexport var dropTargetForElements = adapter.dropTarget;\n// eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports\nexport var monitorForElements = adapter.monitor;\n\n// eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports\nexport function draggable(args) {\n // Guardrail: warn if the drag handle is not contained in draggable element\n if (process.env.NODE_ENV !== 'production') {\n if (args.dragHandle && !args.element.contains(args.dragHandle)) {\n // eslint-disable-next-line no-console\n console.warn('Drag handle element must be contained in draggable element', {\n element: args.element,\n dragHandle: args.dragHandle\n });\n }\n }\n // Guardrail: warn if the draggable element is already registered\n if (process.env.NODE_ENV !== 'production') {\n var existing = draggableRegistry.get(args.element);\n if (existing) {\n // eslint-disable-next-line no-console\n console.warn('You have already registered a `draggable` on the same element', {\n existing: existing,\n proposed: args\n });\n }\n }\n var cleanup = combine(\n // making the draggable register the adapter rather than drop targets\n // this is because you *must* have a draggable element to start a drag\n // but you _might_ not have any drop targets immediately\n // (You might create drop targets async)\n adapter.registerUsage(), addToRegistry(args), addAttribute(args.element, {\n attribute: 'draggable',\n value: 'true'\n }));\n\n // Wrapping in `once` to prevent unexpected side effects if consumers call\n // the clean up function multiple times.\n return once(cleanup);\n}\n\n/** Common event payload for all events */\n\n/** A map containing payloads for all events */\n\n/** Common event payload for all drop target events */\n\n/** A map containing payloads for all events on drop targets */\n\n/** Arguments given to all feedback functions (eg `canDrag()`) on for a `draggable()` */\n\n/** Arguments given to all feedback functions (eg `canDrop()`) on a `dropTargetForElements()` */\n\n/** Arguments given to all monitor feedback functions (eg `canMonitor()`) for a `monitorForElements` */",
|
|
15
|
-
"// pulling this into a separate file so adapter(s) that don't\n// need the honey pot can pay as little as possible for it.\nexport var honeyPotDataAttribute = 'data-pdnd-honey-pot';",
|
|
16
|
-
"import { honeyPotDataAttribute } from './honey-pot-data-attribute';\nexport function isHoneyPotElement(target) {\n return target instanceof Element && target.hasAttribute(honeyPotDataAttribute);\n}",
|
|
17
|
-
"import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { isHoneyPotElement } from './is-honey-pot-element';\nexport function getElementFromPointWithoutHoneypot(client) {\n // eslint-disable-next-line no-restricted-syntax\n var _document$elementsFro = document.elementsFromPoint(client.x, client.y),\n _document$elementsFro2 = _slicedToArray(_document$elementsFro, 2),\n top = _document$elementsFro2[0],\n second = _document$elementsFro2[1];\n if (!top) {\n return null;\n }\n if (isHoneyPotElement(top)) {\n return second !== null && second !== void 0 ? second : null;\n }\n return top;\n}",
|
|
18
|
-
"function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };",
|
|
19
|
-
"import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };",
|
|
20
|
-
"import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };",
|
|
21
|
-
"import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };",
|
|
22
|
-
"import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport { bind, bindAll } from 'bind-event-listener';\nimport { maxZIndex } from '../util/max-z-index';\nimport { popoverResetUserAgentStyles } from '../util/popover-reset-styles';\nimport { supportsPopover } from '../util/supports-popover';\nimport { honeyPotDataAttribute } from './honey-pot-data-attribute';\nvar honeyPotSize = 2;\nvar halfHoneyPotSize = honeyPotSize / 2;\n\n/**\n * `clientX` and `clientY` can be in sub pixels (eg `2.332`)\n * However, browser hitbox testing is commonly do to the closest pixel.\n *\n * → https://issues.chromium.org/issues/40940531\n *\n * To be sure that the honey pot will be over the `client` position,\n * we `.floor()` `clientX` and`clientY` and then make it `2px` in size.\n **/\nfunction floorToClosestPixel(point) {\n return {\n x: Math.floor(point.x),\n y: Math.floor(point.y)\n };\n}\n\n/**\n * We want to make sure the honey pot sits around the users position.\n * This seemed to be the most resilient while testing.\n */\nfunction pullBackByHalfHoneyPotSize(point) {\n return {\n x: point.x - halfHoneyPotSize,\n y: point.y - halfHoneyPotSize\n };\n}\n\n/**\n * Prevent the honey pot from changing the window size.\n * This is super unlikely to occur, but just being safe.\n */\nfunction preventGoingBackwardsOffScreen(point) {\n return {\n x: Math.max(point.x, 0),\n y: Math.max(point.y, 0)\n };\n}\n\n/**\n * Prevent the honey pot from changing the window size.\n * This is super unlikely to occur, but just being safe.\n */\nfunction preventGoingForwardsOffScreen(point) {\n return {\n x: Math.min(point.x, window.innerWidth - honeyPotSize),\n y: Math.min(point.y, window.innerHeight - honeyPotSize)\n };\n}\n\n/**\n * Create a `2x2` `DOMRect` around the `client` position\n */\nfunction getHoneyPotRectFor(_ref) {\n var client = _ref.client;\n var point = preventGoingForwardsOffScreen(preventGoingBackwardsOffScreen(pullBackByHalfHoneyPotSize(floorToClosestPixel(client))));\n\n // When debugging, it is helpful to\n // make this element a bit bigger\n return DOMRect.fromRect({\n x: point.x,\n y: point.y,\n width: honeyPotSize,\n height: honeyPotSize\n });\n}\nfunction getRectStyles(_ref2) {\n var clientRect = _ref2.clientRect;\n return {\n left: \"\".concat(clientRect.left, \"px\"),\n top: \"\".concat(clientRect.top, \"px\"),\n width: \"\".concat(clientRect.width, \"px\"),\n height: \"\".concat(clientRect.height, \"px\")\n };\n}\nfunction isWithin(_ref3) {\n var client = _ref3.client,\n clientRect = _ref3.clientRect;\n return (\n // is within horizontal bounds\n client.x >= clientRect.x && client.x <= clientRect.x + clientRect.width &&\n // is within vertical bounds\n client.y >= clientRect.y && client.y <= clientRect.y + clientRect.height\n );\n}\n/**\n * The honey pot fix is designed to get around a painful bug in all browsers.\n *\n * [Overview](https://www.youtube.com/watch?v=udE9qbFTeQg)\n *\n * **Background**\n *\n * When a drag starts, browsers incorrectly think that the users pointer is\n * still depressed where the drag started. Any element that goes under this position\n * will be entered into, causing `\"mouseenter\"` events and `\":hover\"` styles to be applied.\n *\n * _This is a violation of the spec_\n *\n * > \"From the moment that the user agent is to initiate the drag-and-drop operation,\n * > until the end \tof the drag-and-drop operation, device input events\n * > (e.g. mouse and keyboard events) must be suppressed.\"\n * >\n * > - https://html.spec.whatwg.org/multipage/dnd.html#drag-and-drop-processing-model\n *\n * _Some impacts_\n *\n * - `\":hover\"` styles being applied where they shouldn't (looks messy)\n * - components such as tooltips responding to `\"mouseenter\"` can show during a drag,\n * and on an element the user isn't even over\n *\n * Bug: https://issues.chromium.org/issues/41129937\n *\n * **Honey pot fix**\n *\n * 1. Create an element where the browser thinks the depressed pointer is\n * to absorb the incorrect pointer events\n * 2. Remove that element when it is no longer needed\n */\nfunction mountHoneyPot(_ref4) {\n var initial = _ref4.initial;\n var element = document.createElement('div');\n element.setAttribute(honeyPotDataAttribute, 'true');\n\n // Using popover=\"manual\" to place the element in the browser's top layer.\n // This ensures the honey pot is visually on top of everything else,\n // including elements using z-index and other stacking contexts.\n // \"manual\" means no light dismiss — we manage the lifecycle ourselves.\n // Falls back to position:fixed + maxZIndex when the popover API is not available.\n if (supportsPopover()) {\n element.setAttribute('popover', 'manual');\n }\n\n // can shift during the drag thanks to Firefox\n var clientRect = getHoneyPotRectFor({\n client: initial\n });\n Object.assign(element.style, _objectSpread(_objectSpread({\n position: 'fixed'\n }, supportsPopover() ?\n // needs to come first as it has 'inset: unset' which\n // needs to be overridden by our top / left values\n popoverResetUserAgentStyles : {\n // Fallback: using maximum possible z-index so that this element\n // will always be on top of other positioned content.\n zIndex: maxZIndex\n }), {}, {\n // Setting a background color explicitly to avoid any inherited styles.\n // Looks like this could be `opacity: 0`, but worried that _might_\n // cause the element to be ignored on some platforms.\n // When debugging, set backgroundColor to something like \"red\".\n backgroundColor: 'transparent',\n // Being explicit to avoid inheriting styles\n padding: 0,\n margin: 0,\n boxSizing: 'border-box',\n // We want this element to absorb pointer events,\n // it's kind of the whole point 😉\n pointerEvents: 'auto'\n }, getRectStyles({\n clientRect: clientRect\n })));\n document.body.appendChild(element);\n if (supportsPopover()) {\n element.showPopover();\n }\n\n /**\n * 🦊 In firefox we can get `\"pointermove\"` events after the drag\n * has started, which is a spec violation.\n * The final `\"pointermove\"` will reveal where the \"depressed\" position\n * is for our honey pot fix.\n */\n var unbindPointerMove = bind(window, {\n type: 'pointermove',\n listener: function listener(event) {\n var client = {\n x: event.clientX,\n y: event.clientY\n };\n clientRect = getHoneyPotRectFor({\n client: client\n });\n Object.assign(element.style, getRectStyles({\n clientRect: clientRect\n }));\n },\n // using capture so we are less likely to be impacted by event stopping\n options: {\n capture: true\n }\n });\n return function finish(_ref5) {\n var current = _ref5.current;\n // Don't need this any more\n unbindPointerMove();\n\n // If the user is hover the honey pot, we remove it\n // so that the user can continue to interact with the page normally.\n if (isWithin({\n client: current,\n clientRect: clientRect\n })) {\n element.remove();\n return;\n }\n function cleanup() {\n unbindPostDragEvents();\n element.remove();\n }\n var unbindPostDragEvents = bindAll(window, [{\n type: 'pointerdown',\n listener: cleanup\n }, {\n type: 'pointermove',\n listener: cleanup\n }, {\n type: 'focusin',\n listener: cleanup\n }, {\n type: 'focusout',\n listener: cleanup\n },\n // a 'pointerdown' should happen before 'dragstart', but just being super safe\n {\n type: 'dragstart',\n listener: cleanup\n },\n // if the user has dragged something out of the window\n // and then is dragging something back into the window\n // the first events we will see are \"dragenter\" (and then \"dragover\").\n // So if we see any of these we need to clear the post drag fix.\n {\n type: 'dragenter',\n listener: cleanup\n }, {\n type: 'dragover',\n listener: cleanup\n }\n\n // Not adding a \"wheel\" event listener, as \"wheel\" by itself does not\n // resolve the bug.\n ], {\n // Using `capture` so less likely to be impacted by other code stopping events\n capture: true\n });\n };\n}\nexport function makeHoneyPotFix() {\n var latestPointerMove = null;\n function bindEvents() {\n // For sanity, only collecting this value from when events are first bound.\n // This prevents the case where a super old \"pointermove\" could be used\n // from a prior interaction.\n latestPointerMove = null;\n return bind(window, {\n type: 'pointermove',\n listener: function listener(event) {\n latestPointerMove = {\n x: event.clientX,\n y: event.clientY\n };\n },\n // listening for pointer move in capture phase\n // so we are less likely to be impacted by events being stopped.\n options: {\n capture: true\n }\n });\n }\n function getOnPostDispatch() {\n var finish = null;\n return function onPostEvent(_ref6) {\n var eventName = _ref6.eventName,\n payload = _ref6.payload;\n // We are adding the honey pot `onDragStart` so we don't\n // impact the creation of the native drag preview.\n if (eventName === 'onDragStart') {\n var input = payload.location.initial.input;\n\n // Sometimes there will be no latest \"pointermove\" (eg iOS).\n // In which case, we use the start position of the drag.\n var initial = latestPointerMove !== null && latestPointerMove !== void 0 ? latestPointerMove : {\n x: input.clientX,\n y: input.clientY\n };\n\n // Don't need to defensively call `finish()` as `onDrop` from\n // one interaction is guaranteed to be called before `onDragStart`\n // of the next.\n finish = mountHoneyPot({\n initial: initial\n });\n }\n if (eventName === 'onDrop') {\n var _finish;\n var _input = payload.location.current.input;\n (_finish = finish) === null || _finish === void 0 || _finish({\n current: {\n x: _input.clientX,\n y: _input.clientY\n }\n });\n finish = null;\n // this interaction is finished, we want to use\n // the latest \"pointermove\" for each interaction\n latestPointerMove = null;\n }\n };\n }\n return {\n bindEvents: bindEvents,\n getOnPostDispatch: getOnPostDispatch\n };\n}",
|
|
23
|
-
"// Maximum possible z-index\n// https://stackoverflow.com/questions/491052/minimum-and-maximum-value-of-z-index\nexport var maxZIndex = 2147483647;",
|
|
24
|
-
"/**\n * Resets user agent styles for `[popover]` elements.\n *\n * Browsers apply these defaults to popovers (per the WHATWG HTML spec rendering section):\n * - `inset: 0` + `margin: auto` → centers the popover in the viewport\n * - `border: solid` → visible border\n * - `padding: 0.25em` → internal spacing\n * - `overflow: auto` → scrollbars when content overflows\n * - `color: CanvasText` + `background-color: Canvas` → system theme colors\n *\n * This object neutralizes those defaults so the popover behaves like a plain\n * positioned `<div>`, matching the sizing of the legacy (non-popover)\n * fallback container exactly.\n *\n * **Width and height (`auto`)**\n *\n * `width` and `height` override the spec user agent value of `fit-content`\n * with `auto`.\n *\n * _Why?_\n *\n * - When a `[popover]` is sized with `fit-content` and contains a flex\n * container, Safari collapses any flex item that uses `overflow: auto`\n * to `0px`.\n * - Setting the popover's `width` and `height` to `auto` skips the `fit-content`\n * pass and avoids the bug in Safari\n * - Chromium and Firefox tolerate `fit-content` here, but `auto` is safe\n * everywhere and matches our non-popover path\n */\nexport var popoverResetUserAgentStyles = {\n inset: 'unset',\n border: 'none',\n padding: 0,\n margin: 0,\n overflow: 'visible',\n color: 'inherit',\n background: 'transparent',\n width: 'auto',\n height: 'auto'\n};",
|
|
25
|
-
"/** Provide a function that you only ever want to be called a single time */\nexport function once(fn) {\n var cache = null;\n return function wrapped() {\n if (!cache) {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var result = fn.apply(this, args);\n cache = {\n result: result\n };\n }\n return cache.result;\n };\n}",
|
|
26
|
-
"import { once } from '../public-utils/once';\n\n// Using `once` as the value won't change in a browser\n\n/**\n * Returns `true` if the browser supports the Popover API (top-layer).\n *\n * When supported, elements with `popover=\"manual\"` can be promoted to the\n * browser's top layer via `element.showPopover()`, which is more reliable\n * than `z-index` for ensuring an element renders above everything else.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Popover_API\n */\nexport var supportsPopover = once(function supportsPopover() {\n return typeof HTMLElement !== 'undefined' && typeof HTMLElement.prototype.showPopover === 'function';\n});",
|
|
27
|
-
"import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };",
|
|
28
|
-
"function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };",
|
|
29
|
-
"function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };",
|
|
30
|
-
"import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };",
|
|
31
|
-
"import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport { bindAll } from 'bind-event-listener';\nimport { getElementFromPointWithoutHoneypot } from '../honey-pot-fix/get-element-from-point-without-honey-pot';\nimport { isHoneyPotElement } from '../honey-pot-fix/is-honey-pot-element';\nimport { isLeavingWindow } from '../util/changing-window/is-leaving-window';\nimport { getBindingsForBrokenDrags } from '../util/detect-broken-drag';\nimport { getInput } from '../util/get-input';\nimport { makeDispatch } from './dispatch-consumer-event';\nvar globalState = {\n isActive: false\n};\nfunction canStart() {\n return !globalState.isActive;\n}\nfunction getNativeSetDragImage(event) {\n if (event.dataTransfer) {\n // need to use `.bind` as `setDragImage` is required\n // to be run with `event.dataTransfer` as the \"this\" context\n return event.dataTransfer.setDragImage.bind(event.dataTransfer);\n }\n return null;\n}\nfunction hasHierarchyChanged(_ref) {\n var current = _ref.current,\n next = _ref.next;\n if (current.length !== next.length) {\n return true;\n }\n // not checking stickiness, data or dropEffect,\n // just whether the hierarchy has changed\n for (var i = 0; i < current.length; i++) {\n if (current[i].element !== next[i].element) {\n return true;\n }\n }\n return false;\n}\nfunction start(_ref2) {\n var event = _ref2.event,\n dragType = _ref2.dragType,\n getDropTargetsOver = _ref2.getDropTargetsOver,\n dispatchEvent = _ref2.dispatchEvent;\n if (!canStart()) {\n return;\n }\n var initial = getStartLocation({\n event: event,\n dragType: dragType,\n getDropTargetsOver: getDropTargetsOver\n });\n globalState.isActive = true;\n var state = {\n current: initial\n };\n\n // Setting initial drop effect for the drag\n setDropEffectOnEvent({\n event: event,\n current: initial.dropTargets\n });\n var dispatch = makeDispatch({\n source: dragType.payload,\n dispatchEvent: dispatchEvent,\n initial: initial\n });\n function updateState(next) {\n // only looking at whether hierarchy has changed to determine whether something as 'changed'\n var hasChanged = hasHierarchyChanged({\n current: state.current.dropTargets,\n next: next.dropTargets\n });\n\n // Always updating the state to include latest data, dropEffect and stickiness\n // Only updating consumers if the hierarchy has changed in some way\n // Consumers can get the latest data by using `onDrag`\n state.current = next;\n if (hasChanged) {\n dispatch.dragUpdate({\n current: state.current\n });\n }\n }\n function onUpdateEvent(event) {\n var input = getInput(event);\n\n // If we are over the honey pot, we need to get the element\n // that the user would have been over if not for the honey pot\n var target = isHoneyPotElement(event.target) ? getElementFromPointWithoutHoneypot({\n x: input.clientX,\n y: input.clientY\n }) : event.target;\n var nextDropTargets = getDropTargetsOver({\n target: target,\n input: input,\n source: dragType.payload,\n current: state.current.dropTargets\n });\n if (nextDropTargets.length) {\n // 🩸 must call `event.preventDefault()` to allow a browser drop to occur\n event.preventDefault();\n setDropEffectOnEvent({\n event: event,\n current: nextDropTargets\n });\n }\n updateState({\n dropTargets: nextDropTargets,\n input: input\n });\n }\n function cancel() {\n // The spec behaviour is that when a drag is cancelled, or when dropping on no drop targets,\n // a \"dragleave\" event is fired on the active drop target before a \"dragend\" event.\n // We are replicating that behaviour in `cancel` if there are any active drop targets to\n // ensure consistent behaviour.\n //\n // Note: When cancelling, or dropping on no drop targets, a \"dragleave\" event\n // will have already cleared the dropTargets to `[]` (as that particular \"dragleave\" has a `relatedTarget` of `null`)\n\n if (state.current.dropTargets.length) {\n updateState({\n dropTargets: [],\n input: state.current.input\n });\n }\n dispatch.drop({\n current: state.current,\n updatedSourcePayload: null\n });\n finish();\n }\n function finish() {\n globalState.isActive = false;\n unbindEvents();\n }\n var unbindEvents = bindAll(window, [{\n // 👋 Note: we are repurposing the `dragover` event as our `drag` event\n // this is because firefox does not publish pointer coordinates during\n // a `drag` event, but does for every other type of drag event\n // `dragover` fires on all elements that are being dragged over\n // Because we are binding to `window` - our `dragover` is effectively the same as a `drag`\n // 🦊😤\n type: 'dragover',\n listener: function listener(event) {\n // We need to regularly calculate the drop targets in order to allow:\n // - dynamic `canDrop()` checks\n // - rapid updating `getData()` calls to attach data in response to user input (eg for edge detection)\n // Sadly we cannot schedule inspecting changes resulting from this event\n // we need to be able to conditionally cancel the event with `event.preventDefault()`\n // to enable the correct native drop experience.\n\n // 1. check to see if anything has changed\n onUpdateEvent(event);\n\n // 2. let consumers know a move has occurred\n // This will include the latest 'input' values\n dispatch.drag({\n current: state.current\n });\n }\n }, {\n type: 'dragenter',\n listener: onUpdateEvent\n }, {\n type: 'dragleave',\n listener: function listener(event) {\n if (!isLeavingWindow({\n dragLeave: event\n })) {\n return;\n }\n\n /**\n * At this point we don't know if a drag is being cancelled,\n * or if a drag is leaving the `window`.\n *\n * Both have:\n * 1. \"dragleave\" (with `relatedTarget: null`)\n * 2. \"dragend\" (a \"dragend\" can occur when outside the `window`)\n *\n * **Clearing drop targets**\n *\n * For either case we are clearing the the drop targets\n *\n * - cancelling: we clear drop targets in `\"dragend\"` anyway\n * - leaving the `window`: we clear the drop targets (to clear stickiness)\n *\n * **Leaving the window and finishing the drag**\n *\n * _internal drags_\n *\n * - The drag continues when the user is outside the `window`\n * and can resume if the user drags back over the `window`,\n * or end when the user drops in an external `window`.\n * - We will get a `\"dragend\"`, or we can listen for other\n * events to determine the drag is finished when the user re-enters the `window`).\n *\n * _external drags_\n *\n * - We conclude the drag operation.\n * - We have no idea if the user will drag back over the `window`,\n * or if the drag ends elsewhere.\n * - We will create a new drag if the user re-enters the `window`.\n *\n * **Not updating `input`**\n *\n * 🐛 Bug[Chrome] the final `\"dragleave\"` has default input values (eg `clientX == 0`)\n * Workaround: intentionally not updating `input` in \"dragleave\"\n * rather than the users current input values\n * - [Conversation](https://twitter.com/alexandereardon/status/1642697633864241152)\n * - [Bug](https://bugs.chromium.org/p/chromium/issues/detail?id=1429937)\n **/\n\n updateState({\n input: state.current.input,\n dropTargets: []\n });\n if (dragType.startedFrom === 'external') {\n cancel();\n }\n }\n }, {\n // A \"drop\" can only happen if the browser allowed the drop\n type: 'drop',\n listener: function listener(event) {\n // Capture the final input.\n // We are capturing the final `input` for the\n // most accurate honey pot experience\n state.current = {\n dropTargets: state.current.dropTargets,\n input: getInput(event)\n };\n\n /** If there are no drop targets, then we will get\n * a \"drop\" event if:\n * - `preventUnhandled()` is being used\n * - there is an unmanaged drop target (eg another library)\n * In these cases, it's up to the consumer\n * to handle the drop if it's not over one of our drop targets\n * - `preventUnhandled()` will cancel the \"drop\"\n * - unmanaged drop targets can handle the \"drop\" how they want to\n * We won't call `event.preventDefault()` in this call path */\n\n if (!state.current.dropTargets.length) {\n cancel();\n return;\n }\n event.preventDefault();\n\n // applying the latest drop effect to the event\n setDropEffectOnEvent({\n event: event,\n current: state.current.dropTargets\n });\n dispatch.drop({\n current: state.current,\n // When dropping something native, we need to extract the latest\n // `.items` from the \"drop\" event as it is now accessible\n updatedSourcePayload: dragType.type === 'external' ? dragType.getDropPayload(event) : null\n });\n finish();\n }\n }, {\n // \"dragend\" fires when on the drag source (eg a draggable element)\n // when the drag is finished.\n // \"dragend\" will fire after \"drop\" (if there was a successful drop)\n // \"dragend\" does not fire if the draggable source has been removed during the drag\n // or for external drag sources (eg files)\n\n // This \"dragend\" listener will not fire if there was a successful drop\n // as we will have already removed the event listener\n\n type: 'dragend',\n listener: function listener(event) {\n // In firefox, the position of the \"dragend\" event can\n // be a bit different to the last \"dragover\" event.\n // Updating the input so we can get the best possible\n // information for the honey pot.\n state.current = {\n dropTargets: state.current.dropTargets,\n input: getInput(event)\n };\n cancel();\n }\n }].concat(_toConsumableArray(getBindingsForBrokenDrags({\n onDragEnd: cancel\n }))),\n // Once we have started a managed drag operation it is important that we see / own all drag events\n // We got one adoption bug pop up where some code was stopping (`event.stopPropagation()`)\n // all \"drop\" events in the bubble phase on the `document.body`.\n // This meant that we never saw the \"drop\" event.\n {\n capture: true\n });\n dispatch.start({\n nativeSetDragImage: getNativeSetDragImage(event)\n });\n}\nfunction setDropEffectOnEvent(_ref3) {\n var _current$;\n var event = _ref3.event,\n current = _ref3.current;\n // setting the `dropEffect` to be the innerMost drop targets dropEffect\n var innerMost = (_current$ = current[0]) === null || _current$ === void 0 ? void 0 : _current$.dropEffect;\n if (innerMost != null && event.dataTransfer) {\n event.dataTransfer.dropEffect = innerMost;\n }\n}\nfunction getStartLocation(_ref4) {\n var event = _ref4.event,\n dragType = _ref4.dragType,\n getDropTargetsOver = _ref4.getDropTargetsOver;\n var input = getInput(event);\n\n // When dragging from outside of the browser,\n // the drag is not being sourced from any local drop targets\n if (dragType.startedFrom === 'external') {\n return {\n input: input,\n dropTargets: []\n };\n }\n var dropTargets = getDropTargetsOver({\n input: input,\n source: dragType.payload,\n target: event.target,\n current: []\n });\n return {\n input: input,\n dropTargets: dropTargets\n };\n}\nexport var lifecycle = {\n canStart: canStart,\n start: start\n};",
|
|
32
|
-
"import { once } from '../public-utils/once';\n\n// using `cache` as our `isFirefox()` result will not change in a browser\n\n/**\n * Returns `true` if a `Firefox` browser\n * */\nexport var isFirefox = once(function isFirefox() {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n return navigator.userAgent.includes('Firefox');\n});",
|
|
33
|
-
"import { once } from '../public-utils/once';\n\n// using `cache` as our `isSafari()` result will not change in a browser\n\n/**\n * Returns `true` if a `Safari` browser.\n * Returns `true` if the browser is running on iOS (they are all Safari).\n *\n * Use `isSafariOnIOS` if you want to check if something is Safari + iOS\n * */\nexport var isSafari = once(function isSafari() {\n if (process.env.NODE_ENV === 'test') {\n return false;\n }\n var _navigator = navigator,\n userAgent = _navigator.userAgent;\n return userAgent.includes('AppleWebKit') && !userAgent.includes('Chrome');\n});",
|
|
34
|
-
"/**\n * Does the `EventTarget` look like a `Node` based on \"duck typing\".\n *\n * Helpful when the `Node` might be outside of the current document\n * so we cannot to an `target instanceof Node` check.\n */\nfunction isNodeLike(target) {\n return 'nodeName' in target;\n}\n\n/**\n * Is an `EventTarget` a `Node` from another `window`?\n */\nexport function isFromAnotherWindow(eventTarget) {\n return isNodeLike(eventTarget) && eventTarget.ownerDocument !== document;\n}",
|
|
35
|
-
"import { bindAll } from 'bind-event-listener';\nimport { isSafari } from '../is-safari';\n\n/* For \"dragenter\" events, the browser should set `relatedTarget` to the previous element.\n * For external drag operations, our first \"dragenter\" event should have a `event.relatedTarget` of `null`.\n *\n * Unfortunately in Safari `event.relatedTarget` is *always* set to `null`\n * Safari bug: https://bugs.webkit.org/show_bug.cgi?id=242627\n * To work around this we count \"dragenter\" and \"dragleave\" events */\n// Using symbols for event properties so we don't clash with\n// anything on the `event` object\nexport var symbols = {\n isLeavingWindow: Symbol('leaving'),\n isEnteringWindow: Symbol('entering')\n};\n(function fixSafari() {\n // Don't do anything when server side rendering\n if (typeof window === 'undefined') {\n return;\n }\n\n // rather than checking the userAgent for \"jsdom\" we can do this check\n // so that the check will be removed completely in production code\n if (process.env.NODE_ENV === 'test') {\n return;\n }\n if (!isSafari()) {\n return;\n }\n function getInitialState() {\n return {\n enterCount: 0,\n isOverWindow: false\n };\n }\n var state = getInitialState();\n function resetState() {\n state = getInitialState();\n }\n\n // These event listeners are bound _forever_ and _never_ removed\n // We don't bother cleaning up these event listeners (for now)\n // as this workaround is only for Safari\n\n // This is how the event count works:\n //\n // lift (+1 enterCount)\n // - dragstart(draggable) [enterCount: 0]\n // - dragenter(draggable) [enterCount: 1]\n // leaving draggable (+0 enterCount)\n // - dragenter(document.body) [enterCount: 2]\n // - dragleave(draggable) [enterCount: 1]\n // leaving window (-1 enterCount)\n // - dragleave(document.body) [enterCount: 0] {leaving the window}\n\n // Things to note:\n // - dragenter and dragleave bubble\n // - the first dragenter when entering a window might not be on `window`\n // - it could be on an element that is pressed up against the window\n // - (so we cannot rely on `event.target` values)\n\n bindAll(window, [{\n type: 'dragstart',\n listener: function listener() {\n state.enterCount = 0;\n // drag start occurs in the source window\n state.isOverWindow = true;\n // When a drag first starts it will also trigger a \"dragenter\" on the draggable element\n }\n }, {\n type: 'drop',\n listener: resetState\n }, {\n type: 'dragend',\n listener: resetState\n }, {\n type: 'dragenter',\n listener: function listener(event) {\n if (!state.isOverWindow && state.enterCount === 0) {\n // Patching the `event` object\n // The `event` object is shared with all event listeners for the event\n event[symbols.isEnteringWindow] = true;\n }\n state.isOverWindow = true;\n state.enterCount++;\n }\n }, {\n type: 'dragleave',\n listener: function listener(event) {\n state.enterCount--;\n if (state.isOverWindow && state.enterCount === 0) {\n // Patching the `event` object as it is shared with all event listeners\n // The `event` object is shared with all event listeners for the event\n event[symbols.isLeavingWindow] = true;\n state.isOverWindow = false;\n }\n }\n }],\n // using `capture: true` so that adding event listeners\n // in bubble phase will have the correct symbols\n {\n capture: true\n });\n})();",
|
|
36
|
-
"import { isSafari } from '../is-safari';\nimport { symbols } from './count-events-for-safari';\n\n// eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports\nexport function isLeavingWindowInSafari(_ref) {\n var dragLeave = _ref.dragLeave;\n if (!isSafari()) {\n return false;\n }\n return dragLeave.hasOwnProperty(symbols.isLeavingWindow);\n}",
|
|
37
|
-
"import { isFirefox } from '../is-firefox';\nimport { isSafari } from '../is-safari';\nimport { isFromAnotherWindow } from './is-from-another-window';\nimport { isLeavingWindowInSafari } from './is-leaving-window-in-safari';\nexport function isLeavingWindow(_ref) {\n var dragLeave = _ref.dragLeave;\n var type = dragLeave.type,\n relatedTarget = dragLeave.relatedTarget;\n if (type !== 'dragleave') {\n return false;\n }\n if (isSafari()) {\n return isLeavingWindowInSafari({\n dragLeave: dragLeave\n });\n }\n\n // Standard check: if going to `null` we are leaving the `window`\n if (relatedTarget == null) {\n return true;\n }\n\n /**\n * 🦊 Exception: `iframe` in Firefox (`125.0`)\n *\n * Case 1: parent `window` → child `iframe`\n * `dragLeave.relatedTarget` is element _inside_ the child `iframe`\n * (foreign element)\n *\n * Case 2: child `iframe` → parent `window`\n * `dragLeave.relatedTarget` is the `iframe` in the parent `window`\n * (foreign element)\n */\n\n if (isFirefox()) {\n return isFromAnotherWindow(relatedTarget);\n }\n\n /**\n * 🌏 Exception: `iframe` in Chrome (`124.0`)\n *\n * Case 1: parent `window` → child `iframe`\n * `dragLeave.relatedTarget` is the `iframe` in the parent `window`\n *\n * Case 2: child `iframe` → parent `window`\n * `dragLeave.relatedTarget` is `null` *(standard check)*\n */\n\n // Case 2\n // Using `instanceof` check as the element will be in the same `window`\n return relatedTarget instanceof HTMLIFrameElement;\n}",
|
|
38
|
-
"export function getBindingsForBrokenDrags(_ref) {\n var onDragEnd = _ref.onDragEnd;\n return [\n // ## Detecting drag ending for removed draggables\n //\n // If a draggable element is removed during a drag and the user drops:\n // 1. if over a valid drop target: we get a \"drop\" event to know the drag is finished\n // 2. if not over a valid drop target (or cancelled): we get nothing\n // The \"dragend\" event will not fire on the source draggable if it has been\n // removed from the DOM.\n // So we need to figure out if a drag operation has finished by looking at other events\n // We can do this by looking at other events\n\n // ### First detection: \"pointermove\" events\n\n // 1. \"pointermove\" events cannot fire during a drag and drop operation\n // according to the spec. So if we get a \"pointermove\" it means that\n // the drag and drop operations has finished. So if we get a \"pointermove\"\n // we know that the drag is over\n // 2. 🦊😤 Drag and drop operations are _supposed_ to suppress\n // other pointer events. However, firefox will allow a few\n // pointer event to get through after a drag starts.\n // The most I've seen is 3\n {\n type: 'pointermove',\n listener: function () {\n var callCount = 0;\n return function listener() {\n // Using 20 as it is far bigger than the most observed (3)\n if (callCount < 20) {\n callCount++;\n return;\n }\n onDragEnd();\n };\n }()\n },\n // ### Second detection: \"pointerdown\" events\n\n // If we receive this event then we know that a drag operation has finished\n // and potentially another one is about to start.\n // Note: `pointerdown` fires on all browsers / platforms before \"dragstart\"\n {\n type: 'pointerdown',\n listener: onDragEnd\n }];\n}",
|
|
39
|
-
"export function getInput(event) {\n return {\n altKey: event.altKey,\n button: event.button,\n buttons: event.buttons,\n ctrlKey: event.ctrlKey,\n metaKey: event.metaKey,\n shiftKey: event.shiftKey,\n clientX: event.clientX,\n clientY: event.clientY,\n pageX: event.pageX,\n pageY: event.pageY\n };\n}",
|
|
40
|
-
"var rafSchd = function rafSchd(fn) {\n var lastArgs = [];\n var frameId = null;\n\n var wrapperFn = function wrapperFn() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n lastArgs = args;\n\n if (frameId) {\n return;\n }\n\n frameId = requestAnimationFrame(function () {\n frameId = null;\n fn.apply(void 0, lastArgs);\n });\n };\n\n wrapperFn.cancel = function () {\n if (!frameId) {\n return;\n }\n\n cancelAnimationFrame(frameId);\n frameId = null;\n };\n\n return wrapperFn;\n};\n\nexport default rafSchd;\n",
|
|
41
|
-
"import rafSchd from 'raf-schd';\nvar scheduleOnDrag = rafSchd(function (fn) {\n return fn();\n});\nvar dragStart = function () {\n var scheduled = null;\n function schedule(fn) {\n var frameId = requestAnimationFrame(function () {\n scheduled = null;\n fn();\n });\n scheduled = {\n frameId: frameId,\n fn: fn\n };\n }\n function flush() {\n if (scheduled) {\n cancelAnimationFrame(scheduled.frameId);\n scheduled.fn();\n scheduled = null;\n }\n }\n return {\n schedule: schedule,\n flush: flush\n };\n}();\nexport function makeDispatch(_ref) {\n var source = _ref.source,\n initial = _ref.initial,\n dispatchEvent = _ref.dispatchEvent;\n var previous = {\n dropTargets: []\n };\n function safeDispatch(args) {\n dispatchEvent(args);\n previous = {\n dropTargets: args.payload.location.current.dropTargets\n };\n }\n var dispatch = {\n start: function start(_ref2) {\n var nativeSetDragImage = _ref2.nativeSetDragImage;\n // Ensuring that both `onGenerateDragPreview` and `onDragStart` get the same location.\n // We do this so that `previous` is`[]` in `onDragStart` (which is logical)\n var location = {\n current: initial,\n previous: previous,\n initial: initial\n };\n // a `onGenerateDragPreview` does _not_ add another entry for `previous`\n // onDragPreview\n safeDispatch({\n eventName: 'onGenerateDragPreview',\n payload: {\n source: source,\n location: location,\n nativeSetDragImage: nativeSetDragImage\n }\n });\n dragStart.schedule(function () {\n safeDispatch({\n eventName: 'onDragStart',\n payload: {\n source: source,\n location: location\n }\n });\n });\n },\n dragUpdate: function dragUpdate(_ref3) {\n var current = _ref3.current;\n dragStart.flush();\n scheduleOnDrag.cancel();\n safeDispatch({\n eventName: 'onDropTargetChange',\n payload: {\n source: source,\n location: {\n initial: initial,\n previous: previous,\n current: current\n }\n }\n });\n },\n drag: function drag(_ref4) {\n var current = _ref4.current;\n scheduleOnDrag(function () {\n dragStart.flush();\n var location = {\n initial: initial,\n previous: previous,\n current: current\n };\n safeDispatch({\n eventName: 'onDrag',\n payload: {\n source: source,\n location: location\n }\n });\n });\n },\n drop: function drop(_ref5) {\n var current = _ref5.current,\n updatedSourcePayload = _ref5.updatedSourcePayload;\n dragStart.flush();\n scheduleOnDrag.cancel();\n safeDispatch({\n eventName: 'onDrop',\n payload: {\n source: updatedSourcePayload !== null && updatedSourcePayload !== void 0 ? updatedSourcePayload : source,\n location: {\n current: current,\n previous: previous,\n initial: initial\n }\n }\n });\n }\n };\n return dispatch;\n}",
|
|
42
|
-
"// Extending `Map` to allow us to link Key and Values together\n\nvar ledger = new Map();\nfunction registerUsage(_ref) {\n var typeKey = _ref.typeKey,\n mount = _ref.mount;\n var entry = ledger.get(typeKey);\n if (entry) {\n entry.usageCount++;\n return entry;\n }\n var initial = {\n typeKey: typeKey,\n unmount: mount(),\n usageCount: 1\n };\n ledger.set(typeKey, initial);\n return initial;\n}\nexport function register(args) {\n var entry = registerUsage(args);\n return function unregister() {\n entry.usageCount--;\n if (entry.usageCount > 0) {\n return;\n }\n // Only a single usage left, remove it\n entry.unmount();\n ledger.delete(args.typeKey);\n };\n}",
|
|
43
|
-
"/** Create a new combined function that will call all the provided functions */\nexport function combine() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n return function cleanup() {\n fns.forEach(function (fn) {\n return fn();\n });\n };\n}",
|
|
44
|
-
"export function addAttribute(element, _ref) {\n var attribute = _ref.attribute,\n value = _ref.value;\n element.setAttribute(attribute, value);\n return function () {\n return element.removeAttribute(attribute);\n };\n}",
|
|
45
|
-
"import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nimport { combine } from '../public-utils/combine';\nimport { once } from '../public-utils/once';\nimport { addAttribute } from '../util/add-attribute';\nfunction copyReverse(array) {\n return array.slice(0).reverse();\n}\nexport function makeDropTarget(_ref) {\n var typeKey = _ref.typeKey,\n defaultDropEffect = _ref.defaultDropEffect;\n var registry = new WeakMap();\n var dropTargetDataAtt = \"data-drop-target-for-\".concat(typeKey);\n var dropTargetSelector = \"[\".concat(dropTargetDataAtt, \"]\");\n function addToRegistry(args) {\n registry.set(args.element, args);\n return function () {\n return registry.delete(args.element);\n };\n }\n function dropTargetForConsumers(args) {\n // Guardrail: warn if the draggable element is already registered\n if (process.env.NODE_ENV !== 'production') {\n var existing = registry.get(args.element);\n if (existing) {\n // eslint-disable-next-line no-console\n console.warn(\"You have already registered a [\".concat(typeKey, \"] dropTarget on the same element\"), {\n existing: existing,\n proposed: args\n });\n }\n if (args.element instanceof HTMLIFrameElement) {\n // eslint-disable-next-line no-console\n console.warn(\"\\n We recommend not registering <iframe> elements as drop targets\\n as it can result in some strange browser event ordering.\\n \" // Removing newlines and excessive whitespace\n .replace(/\\s{2,}/g, ' ').trim());\n }\n }\n var cleanup = combine(addAttribute(args.element, {\n attribute: dropTargetDataAtt,\n value: 'true'\n }), addToRegistry(args));\n\n // Wrapping in `once` to prevent unexpected side effects if consumers call\n // the clean up function multiple times.\n return once(cleanup);\n }\n function getActualDropTargets(_ref2) {\n var _args$getData, _args$getData2, _args$getDropEffect, _args$getDropEffect2;\n var source = _ref2.source,\n target = _ref2.target,\n input = _ref2.input,\n _ref2$result = _ref2.result,\n result = _ref2$result === void 0 ? [] : _ref2$result;\n if (target == null) {\n return result;\n }\n if (!(target instanceof Element)) {\n // For \"text-selection\" drags, the original `target`\n // is not an `Element`, so we need to start looking from\n // the parent element\n if (target instanceof Node) {\n return getActualDropTargets({\n source: source,\n target: target.parentElement,\n input: input,\n result: result\n });\n }\n\n // not sure what we are working with,\n // so we can exit.\n return result;\n }\n var closest = target.closest(dropTargetSelector);\n\n // Cannot find anything else\n if (closest == null) {\n return result;\n }\n var args = registry.get(closest);\n\n // error: something had a dropTargetSelector but we could not\n // find a match. For now, failing silently\n if (args == null) {\n return result;\n }\n var feedback = {\n input: input,\n source: source,\n element: args.element\n };\n\n // if dropping is not allowed, skip this drop target\n // and continue looking up the DOM tree\n if (args.canDrop && !args.canDrop(feedback)) {\n return getActualDropTargets({\n source: source,\n target: args.element.parentElement,\n input: input,\n result: result\n });\n }\n\n // calculate our new record\n var data = (_args$getData = (_args$getData2 = args.getData) === null || _args$getData2 === void 0 ? void 0 : _args$getData2.call(args, feedback)) !== null && _args$getData !== void 0 ? _args$getData : {};\n var dropEffect = (_args$getDropEffect = (_args$getDropEffect2 = args.getDropEffect) === null || _args$getDropEffect2 === void 0 ? void 0 : _args$getDropEffect2.call(args, feedback)) !== null && _args$getDropEffect !== void 0 ? _args$getDropEffect : defaultDropEffect;\n var record = {\n data: data,\n element: args.element,\n dropEffect: dropEffect,\n // we are collecting _actual_ drop targets, so these are\n // being applied _not_ due to stickiness\n isActiveDueToStickiness: false\n };\n return getActualDropTargets({\n source: source,\n target: args.element.parentElement,\n input: input,\n // Using bubble ordering. Same ordering as `event.getPath()`\n result: [].concat(_toConsumableArray(result), [record])\n });\n }\n function notifyCurrent(_ref3) {\n var eventName = _ref3.eventName,\n payload = _ref3.payload;\n var _iterator = _createForOfIteratorHelper(payload.location.current.dropTargets),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _entry$eventName;\n var record = _step.value;\n var entry = registry.get(record.element);\n var args = _objectSpread(_objectSpread({}, payload), {}, {\n self: record\n });\n entry === null || entry === void 0 || (_entry$eventName = entry[eventName]) === null || _entry$eventName === void 0 || _entry$eventName.call(entry,\n // I cannot seem to get the types right here.\n // TS doesn't seem to like that one event can need `nativeSetDragImage`\n // @ts-expect-error\n args);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n var actions = {\n onGenerateDragPreview: notifyCurrent,\n onDrag: notifyCurrent,\n onDragStart: notifyCurrent,\n onDrop: notifyCurrent,\n onDropTargetChange: function onDropTargetChange(_ref4) {\n var payload = _ref4.payload;\n var isCurrent = new Set(payload.location.current.dropTargets.map(function (record) {\n return record.element;\n }));\n var visited = new Set();\n var _iterator2 = _createForOfIteratorHelper(payload.location.previous.dropTargets),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _entry$onDropTargetCh;\n var record = _step2.value;\n visited.add(record.element);\n var entry = registry.get(record.element);\n var isOver = isCurrent.has(record.element);\n var args = _objectSpread(_objectSpread({}, payload), {}, {\n self: record\n });\n entry === null || entry === void 0 || (_entry$onDropTargetCh = entry.onDropTargetChange) === null || _entry$onDropTargetCh === void 0 || _entry$onDropTargetCh.call(entry, args);\n\n // if we cannot find the drop target in the current array, then it has been left\n if (!isOver) {\n var _entry$onDragLeave;\n entry === null || entry === void 0 || (_entry$onDragLeave = entry.onDragLeave) === null || _entry$onDragLeave === void 0 || _entry$onDragLeave.call(entry, args);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n var _iterator3 = _createForOfIteratorHelper(payload.location.current.dropTargets),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var _entry$onDropTargetCh2, _entry$onDragEnter;\n var _record = _step3.value;\n // already published an update to this drop target\n if (visited.has(_record.element)) {\n continue;\n }\n // at this point we have a new drop target that is being entered into\n var _args = _objectSpread(_objectSpread({}, payload), {}, {\n self: _record\n });\n var _entry = registry.get(_record.element);\n _entry === null || _entry === void 0 || (_entry$onDropTargetCh2 = _entry.onDropTargetChange) === null || _entry$onDropTargetCh2 === void 0 || _entry$onDropTargetCh2.call(_entry, _args);\n _entry === null || _entry === void 0 || (_entry$onDragEnter = _entry.onDragEnter) === null || _entry$onDragEnter === void 0 || _entry$onDragEnter.call(_entry, _args);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n };\n function dispatchEvent(args) {\n actions[args.eventName](args);\n }\n function getIsOver(_ref5) {\n var source = _ref5.source,\n target = _ref5.target,\n input = _ref5.input,\n current = _ref5.current;\n var actual = getActualDropTargets({\n source: source,\n target: target,\n input: input\n });\n\n // stickiness is only relevant when we have less\n // drop targets than we did before\n if (actual.length >= current.length) {\n return actual;\n }\n\n // less 'actual' drop targets than before,\n // we need to see if 'stickiness' applies\n\n // An old drop target will continue to be dropped on if:\n // 1. it has the same parent\n // 2. nothing exists in it's previous index\n\n var lastCaptureOrdered = copyReverse(current);\n var actualCaptureOrdered = copyReverse(actual);\n var resultCaptureOrdered = [];\n for (var index = 0; index < lastCaptureOrdered.length; index++) {\n var _argsForLast$getIsSti;\n var last = lastCaptureOrdered[index];\n var fresh = actualCaptureOrdered[index];\n\n // if a record is in the new index -> use that\n // it will have the latest data + dropEffect\n if (fresh != null) {\n resultCaptureOrdered.push(fresh);\n continue;\n }\n\n // At this point we have no drop target in the old spot\n // Check to see if we can use a previous sticky drop target\n\n // The \"parent\" is the one inside of `resultCaptureOrdered`\n // (the parent might be a drop target that was sticky)\n var parent = resultCaptureOrdered[index - 1];\n var lastParent = lastCaptureOrdered[index - 1];\n\n // Stickiness is based on parent relationships, so if the parent relationship has change\n // then we can stop our search\n if ((parent === null || parent === void 0 ? void 0 : parent.element) !== (lastParent === null || lastParent === void 0 ? void 0 : lastParent.element)) {\n break;\n }\n\n // We need to check whether the old drop target can still be dropped on\n\n var argsForLast = registry.get(last.element);\n\n // We cannot drop on a drop target that is no longer mounted\n if (!argsForLast) {\n break;\n }\n var feedback = {\n input: input,\n source: source,\n element: argsForLast.element\n };\n\n // We cannot drop on a drop target that no longer allows being dropped on\n if (argsForLast.canDrop && !argsForLast.canDrop(feedback)) {\n break;\n }\n\n // We cannot drop on a drop target that is no longer sticky\n if (!((_argsForLast$getIsSti = argsForLast.getIsSticky) !== null && _argsForLast$getIsSti !== void 0 && _argsForLast$getIsSti.call(argsForLast, feedback))) {\n break;\n }\n\n // Note: intentionally not recollecting `getData()` or `getDropEffect()`\n // Previous values for `data` and `dropEffect` will be borrowed\n // This is to prevent things like the 'closest edge' changing when\n // no longer over a drop target.\n // We could change our mind on this behaviour in the future\n\n resultCaptureOrdered.push(_objectSpread(_objectSpread({}, last), {}, {\n // making it clear to consumers this drop target is active due to stickiness\n isActiveDueToStickiness: true\n }));\n }\n\n // return bubble ordered result\n return copyReverse(resultCaptureOrdered);\n }\n return {\n dropTargetForConsumers: dropTargetForConsumers,\n getIsOver: getIsOver,\n dispatchEvent: dispatchEvent\n };\n}",
|
|
46
|
-
"import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nimport { once } from '../public-utils/once';\nexport function makeMonitor() {\n var registry = new Set();\n var dragging = null;\n function tryAddToActive(monitor) {\n if (!dragging) {\n return;\n }\n // Monitor is allowed to monitor events if:\n // 1. It has no `canMonitor` function (default is that a monitor can listen to everything)\n // 2. `canMonitor` returns true\n if (!monitor.canMonitor || monitor.canMonitor(dragging.canMonitorArgs)) {\n dragging.active.add(monitor);\n }\n }\n function monitorForConsumers(args) {\n // We are giving each `args` a new reference so that you\n // can create multiple monitors with the same `args`.\n var entry = _objectSpread({}, args);\n registry.add(entry);\n\n // if there is an active drag we need to see if this new monitor is relevant\n tryAddToActive(entry);\n function cleanup() {\n registry.delete(entry);\n\n // We need to stop publishing events during a drag to this monitor!\n if (dragging) {\n dragging.active.delete(entry);\n }\n }\n\n // Wrapping in `once` to prevent unexpected side effects if consumers call\n // the clean up function multiple times.\n return once(cleanup);\n }\n function dispatchEvent(_ref) {\n var eventName = _ref.eventName,\n payload = _ref.payload;\n if (eventName === 'onGenerateDragPreview') {\n dragging = {\n canMonitorArgs: {\n initial: payload.location.initial,\n source: payload.source\n },\n active: new Set()\n };\n var _iterator = _createForOfIteratorHelper(registry),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var monitor = _step.value;\n tryAddToActive(monitor);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n\n // This should never happen.\n if (!dragging) {\n return;\n }\n\n // Creating an array from the set _before_ iterating\n // This is so that monitors added during the current event will not be called.\n // This behaviour matches native EventTargets where an event listener\n // cannot add another event listener during an active event to the same\n // event target in the same event (for us we have a single global event target)\n var active = Array.from(dragging.active);\n for (var _i = 0, _active = active; _i < _active.length; _i++) {\n var _monitor = _active[_i];\n // A monitor can be removed by another monitor during an event.\n // We need to check that the monitor is still registered before calling it\n if (dragging.active.has(_monitor)) {\n var _monitor$eventName;\n // @ts-expect-error: I cannot get this type working!\n (_monitor$eventName = _monitor[eventName]) === null || _monitor$eventName === void 0 || _monitor$eventName.call(_monitor, payload);\n }\n }\n if (eventName === 'onDrop') {\n dragging.active.clear();\n dragging = null;\n }\n }\n return {\n dispatchEvent: dispatchEvent,\n monitorForConsumers: monitorForConsumers\n };\n}",
|
|
47
|
-
"import { lifecycle } from '../ledger/lifecycle-manager';\nimport { register } from '../ledger/usage-ledger';\nimport { makeDropTarget } from './make-drop-target';\nimport { makeMonitor } from './make-monitor';\nexport function makeAdapter(_ref) {\n var typeKey = _ref.typeKey,\n mount = _ref.mount,\n dispatchEventToSource = _ref.dispatchEventToSource,\n onPostDispatch = _ref.onPostDispatch,\n defaultDropEffect = _ref.defaultDropEffect;\n var monitorAPI = makeMonitor();\n var dropTargetAPI = makeDropTarget({\n typeKey: typeKey,\n defaultDropEffect: defaultDropEffect\n });\n function dispatchEvent(args) {\n // 1. forward the event to source\n dispatchEventToSource === null || dispatchEventToSource === void 0 || dispatchEventToSource(args);\n\n // 2. forward the event to relevant dropTargets\n dropTargetAPI.dispatchEvent(args);\n\n // 3. forward event to monitors\n monitorAPI.dispatchEvent(args);\n\n // 4. post consumer dispatch (used for honey pot fix)\n onPostDispatch === null || onPostDispatch === void 0 || onPostDispatch(args);\n }\n function start(_ref2) {\n var event = _ref2.event,\n dragType = _ref2.dragType;\n lifecycle.start({\n event: event,\n dragType: dragType,\n getDropTargetsOver: dropTargetAPI.getIsOver,\n dispatchEvent: dispatchEvent\n });\n }\n function registerUsage() {\n function mountAdapter() {\n var api = {\n canStart: lifecycle.canStart,\n start: start\n };\n return mount(api);\n }\n return register({\n typeKey: typeKey,\n mount: mountAdapter\n });\n }\n return {\n registerUsage: registerUsage,\n dropTarget: dropTargetAPI.dropTargetForConsumers,\n monitor: monitorAPI.monitorForConsumers\n };\n}",
|
|
48
|
-
"import { once } from '../public-utils/once';\n\n// Using `once` as the value won't change in a browser\n\nexport var isAndroid = once(function isAndroid() {\n return navigator.userAgent.toLocaleLowerCase().includes('android');\n});\n\n// eslint-disable-next-line @atlaskit/volt-strict-mode/no-multiple-exports\nexport var androidFallbackText = 'pdnd:android-fallback';",
|
|
49
|
-
"// Why we put the media types in their own files:\n//\n// - we are not putting them all in one file as not all adapters need all types\n// - we are not putting them in the external helpers as some things just need the\n// types and not the external functions code\nexport var textMediaType = 'text/plain';",
|
|
50
|
-
"// Why we put the media types in their own files:\n//\n// - we are not putting them all in one file as not all adapters need all types\n// - we are not putting them in the external helpers as some things just need the\n// types and not the external functions code\nexport var URLMediaType = 'text/uri-list';",
|
|
51
|
-
"/**\n * This key has been pulled into a separate module\n * so that the external adapter does not need to import\n * the element adapter\n */\nexport var elementAdapterNativeDataKey = 'application/vnd.pdnd';"
|
|
52
|
-
],
|
|
53
|
-
"mappings": "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",
|
|
54
|
-
"debugId": "3EB5BB66ABFD423464756E2164756E21",
|
|
55
|
-
"names": []
|
|
56
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/publish/publish-panel.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"/// <reference lib=\"dom\" />\n/**\n * Publish panel — the one-click Cloudflare Pages publish flow, driven by the\n * PAL's cf* members. States: unsupported platform → info; no credential →\n * connect (hosted OAuth via cfConnect, or an API-token form backed by\n * cf-settings); connected without `build.deploy` → create-and-connect form;\n * connected → deployment status (publishing rides every commit).\n *\n * **The token was in the DOM, on every open.** `credentialTpl` rendered\n * `value=${getCfToken()}` into an `sp-textfield` whenever a token was stored and\n * the platform had no hosted broker — a control the reader had not asked to\n * edit, on a surface `scripts/screenshots` photographs. `type=\"password\"` masks\n * pixels and nothing else: the value is in the attribute, in the serialized\n * HTML, in the accessibility tree and in every DOM dump. It is gone. A stored\n * token is now reported as *stored*, the field is only ever drawn empty for a\n * REPLACEMENT the reader asked for, and revoking lives where every other\n * credential's does — Preferences › Accounts (`studio.md` §15 rule 1: a surface\n * never prints the secret it describes).\n *\n * @license MIT\n */\n\nimport { html } from \"lit-html\";\nimport type { DeployConfig, ProjectConfig } from \"@jxsuite/schema/types\";\nimport { activeRegistry } from \"../commands/active-registry\";\nimport { currentDeploy, noteDeployment } from \"./deploy-checklist\";\nimport { getPlatform } from \"../platform\";\nimport { getCfToken, setCfToken } from \"../services/cf-settings\";\nimport { projectState } from \"../store\";\nimport type { CfConnection } from \"../types\";\nimport { openModal } from \"../ui/layers\";\nimport type { CfAccount, PagesDeploymentInfo } from \"./pages-service\";\nimport {\n connectDeploy,\n latestDeployment,\n listAccounts,\n platformSupportsPublish,\n writeDeployConfig,\n} from \"./pages-service\";\n\nconst PAGES_APP_INSTALL_URL = \"https://github.com/apps/cloudflare-pages/installations/new\";\n\nlet _handle: ReturnType<typeof openModal> | null = null;\nlet _connection: CfConnection | null | \"loading\" = \"loading\";\nlet _accounts: CfAccount[] = [];\nlet _deployment: PagesDeploymentInfo | null = null;\nlet _error = \"\";\nlet _busy = false;\n/** Whether the reader has asked to replace a token that is already stored. */\nlet _replacing = false;\nlet _form = { accountId: \"\", branch: \"main\", owner: \"\", projectName: \"\", repo: \"\" };\n\nfunction currentConfig(): ProjectConfig | null {\n return (projectState?.projectConfig as ProjectConfig | undefined) ?? null;\n}\n\nfunction deriveSlug(name: string): string {\n return (\n name\n .toLowerCase()\n .replaceAll(/[^a-z0-9]+/g, \"-\")\n .replaceAll(/^-+|-+$/g, \"\")\n .slice(0, 58) || \"site\"\n );\n}\n\n/** Prefill owner/repo from cloud roots (\"owner/repo\"); blank elsewhere. */\nfunction prefillRepo(): { owner: string; repo: string } {\n const root = getPlatform().projectRoot;\n const match = /^([\\w.-]+)\\/([\\w.-]+)$/.exec(root);\n return match ? { owner: match[1]!, repo: match[2]! } : { owner: \"\", repo: \"\" };\n}\n\nasync function loadConnection(): Promise<void> {\n _connection = \"loading\";\n render();\n try {\n _connection = (await getPlatform().cfConnection?.()) ?? null;\n if (_connection?.connected) {\n _accounts = await listAccounts();\n _form.accountId = _connection.accountId ?? _accounts[0]?.id ?? \"\";\n const deploy = currentDeploy();\n if (deploy) {\n _deployment = await latestDeployment(deploy);\n // We ASKED, so the deploy checklist may stop saying \"unknown\" — including when the answer\n // Was \"none\", which is a fact and not an absence of one.\n noteDeployment(_deployment);\n }\n }\n } catch (error) {\n _connection = null;\n _error = error instanceof Error ? error.message : String(error);\n }\n render();\n}\n\n/**\n * Take the token straight from the live control to storage.\n *\n * It is read from the DOM and never written back to it, which is the whole asymmetry: a secret may\n * pass through a field the user typed it into, and may not be painted into one they did not.\n */\nasync function saveToken(host: HTMLElement): Promise<void> {\n const input = host.querySelector<HTMLInputElement>(\"#cf-token-input\");\n const value = (input?.value ?? \"\").trim();\n if (!value) {\n _error = \"Paste a token, or use Preferences › Accounts to forget the stored one.\";\n render();\n return;\n }\n setCfToken(value);\n if (input) {\n input.value = \"\";\n }\n _replacing = false;\n _error = \"\";\n await loadConnection();\n}\n\n/** Open Preferences on Accounts — the one place a credential is listed and forgotten. */\nfunction openAccounts(): void {\n void activeRegistry()?.run(\"app.preferences\", { section: \"accounts\" });\n}\n\nasync function hostedConnect(): Promise<void> {\n _busy = true;\n render();\n try {\n await getPlatform().cfConnect?.();\n } catch (error) {\n _error = error instanceof Error ? error.message : String(error);\n }\n _busy = false;\n await loadConnection();\n}\n\nasync function submitConnect(): Promise<void> {\n const config = currentConfig();\n if (!config) {\n return;\n }\n if (!_form.projectName || !_form.owner || !_form.repo || !_form.accountId) {\n _error = \"Account, project name, and the GitHub owner/repo are all required.\";\n render();\n return;\n }\n _busy = true;\n _error = \"\";\n render();\n try {\n const deploy = await connectDeploy(config, {\n accountId: _form.accountId,\n owner: _form.owner,\n productionBranch: _form.branch || \"main\",\n projectName: _form.projectName,\n repo: _form.repo,\n });\n _deployment = await latestDeployment(deploy).catch(() => null);\n } catch (error) {\n _error = error instanceof Error ? error.message : String(error);\n }\n _busy = false;\n render();\n}\n\nasync function disconnect(): Promise<void> {\n const config = currentConfig();\n if (!config) {\n return;\n }\n _busy = true;\n render();\n try {\n await writeDeployConfig(config, null);\n _deployment = null;\n } catch (error) {\n _error = error instanceof Error ? error.message : String(error);\n }\n _busy = false;\n render();\n}\n\nfunction close(): void {\n _handle?.close();\n _handle = null;\n}\n\nfunction fieldRow(label: string, input: unknown) {\n return html`\n <label class=\"publish-field\">\n <span>${label}</span>\n ${input}\n </label>\n `;\n}\n\nfunction credentialTpl() {\n const platform = getPlatform();\n if (platform.cfConnect) {\n return html`\n <p>Connect your Cloudflare account to publish this site.</p>\n <sp-button\n ?disabled=${_busy}\n @click=${() => {\n void hostedConnect();\n }}\n >\n Connect Cloudflare\n </sp-button>\n `;\n }\n const stored = getCfToken() !== \"\";\n if (stored && !_replacing) {\n // The token is STORED, and that is the whole of what this says. It was rejected or has expired\n // — otherwise `_connection.connected` would be true and this branch unreachable — so the two\n // Honest moves are to replace it or to forget it, and neither needs to see it.\n return html`\n <p>\n A Cloudflare API token is stored on this machine, and Cloudflare did not accept it. It may\n have been revoked, or it may be missing the Account Settings Read and Pages Read/Write\n permissions.\n </p>\n <div class=\"publish-actions\">\n <sp-button\n ?disabled=${_busy}\n @click=${() => {\n _replacing = true;\n _error = \"\";\n render();\n }}\n >\n Replace token\n </sp-button>\n <sp-button variant=\"secondary\" @click=${openAccounts}>Preferences › Accounts</sp-button>\n </div>\n `;\n }\n return html`\n <p>\n Paste a Cloudflare API token (permissions: Account Settings Read, Pages Read/Write). It is\n stored on this machine and only sent to the same-origin proxy — Studio never renders it back.\n </p>\n ${fieldRow(\n \"API token\",\n html`<sp-textfield\n id=\"cf-token-input\"\n type=\"password\"\n value=\"\"\n placeholder=\"cf_...\"\n ></sp-textfield>`,\n )}\n <div class=\"publish-actions\">\n <sp-button\n ?disabled=${_busy}\n @click=${(e: Event) => {\n void saveToken(hostOf(e));\n }}\n >\n Verify & Connect\n </sp-button>\n <sp-button variant=\"secondary\" @click=${openAccounts}>Preferences › Accounts</sp-button>\n </div>\n `;\n}\n\nfunction hostOf(e: Event): HTMLElement {\n return (e.target as HTMLElement).closest(\".publish-modal\") ?? document.body;\n}\n\nfunction connectFormTpl() {\n return html`\n <p>\n Create a Cloudflare Pages project connected to this repository. Every commit then builds and\n publishes automatically (<code>bunx jx build</code>).\n </p>\n ${fieldRow(\n \"Account\",\n html`\n <sp-picker\n value=${_form.accountId}\n @change=${(e: Event) => {\n _form.accountId = (e.target as HTMLInputElement).value;\n }}\n >\n ${_accounts.map((a) => html`<sp-menu-item value=${a.id}>${a.name}</sp-menu-item>`)}\n </sp-picker>\n `,\n )}\n ${fieldRow(\n \"Pages project name\",\n html`<sp-textfield\n value=${_form.projectName}\n @input=${(e: Event) => {\n _form.projectName = (e.target as HTMLInputElement).value;\n }}\n ></sp-textfield>`,\n )}\n ${fieldRow(\n \"GitHub owner\",\n html`<sp-textfield\n value=${_form.owner}\n @input=${(e: Event) => {\n _form.owner = (e.target as HTMLInputElement).value;\n }}\n ></sp-textfield>`,\n )}\n ${fieldRow(\n \"GitHub repository\",\n html`<sp-textfield\n value=${_form.repo}\n @input=${(e: Event) => {\n _form.repo = (e.target as HTMLInputElement).value;\n }}\n ></sp-textfield>`,\n )}\n ${fieldRow(\n \"Production branch\",\n html`<sp-textfield\n value=${_form.branch}\n @input=${(e: Event) => {\n _form.branch = (e.target as HTMLInputElement).value;\n }}\n ></sp-textfield>`,\n )}\n <sp-button\n ?disabled=${_busy}\n @click=${() => {\n void submitConnect();\n }}\n >\n ${_busy ? \"Connecting…\" : \"Create & Connect\"}\n </sp-button>\n `;\n}\n\nfunction statusTpl(deploy: DeployConfig) {\n return html`\n <p>\n Connected to Pages project <strong>${deploy.projectName}</strong>\n ${\n deploy.productionUrl\n ? html` —\n <a href=${deploy.productionUrl} target=\"_blank\" rel=\"noreferrer\">\n ${deploy.productionUrl}\n </a>`\n : \"\"\n }\n </p>\n ${\n _deployment\n ? html`\n <p>\n Latest deployment: <strong>${_deployment.stage}: ${_deployment.status}</strong>\n (${_deployment.environment}) —\n <a href=${_deployment.url} target=\"_blank\" rel=\"noreferrer\">preview</a>\n </p>\n `\n : html`<p>No deployments yet — the first commit after connecting triggers one.</p>`\n }\n <p class=\"publish-hint\">Publishing happens automatically on every commit.</p>\n <div class=\"publish-actions\">\n <sp-button\n variant=\"secondary\"\n ?disabled=${_busy}\n @click=${() => {\n void loadConnection();\n }}\n >\n Refresh\n </sp-button>\n <sp-button\n variant=\"negative\"\n ?disabled=${_busy}\n @click=${() => {\n void disconnect();\n }}\n >\n Disconnect\n </sp-button>\n </div>\n `;\n}\n\nfunction bodyTpl() {\n if (!platformSupportsPublish()) {\n return html`\n <p>\n This platform cannot reach the Cloudflare API. Publish by committing and pushing — your host\n builds <code>bunx jx build</code> and serves <code>dist/</code>.\n </p>\n `;\n }\n if (_connection === \"loading\") {\n return html`<p>Checking Cloudflare connection…</p>`;\n }\n if (!_connection?.connected) {\n return credentialTpl();\n }\n const deploy = currentDeploy();\n return deploy ? statusTpl(deploy) : connectFormTpl();\n}\n\nfunction errorTpl() {\n if (!_error) {\n return \"\";\n }\n const needsPagesApp = /github/i.test(_error) && /app|install|source|repo/i.test(_error);\n return html`\n <p class=\"publish-error\">\n ${_error}\n ${\n needsPagesApp\n ? html` — if the Cloudflare Pages GitHub App is not installed on the repository,\n <a href=${PAGES_APP_INSTALL_URL} target=\"_blank\" rel=\"noreferrer\">install it</a> and\n retry.`\n : \"\"\n }\n </p>\n `;\n}\n\nfunction render(): void {\n const tpl = html`\n <div class=\"new-project-modal publish-modal\" data-jx-region=\"overlay.dialog:publish\">\n <div class=\"new-project-modal-header\">\n <h2 class=\"new-project-modal-title\">Publish</h2>\n <sp-action-button size=\"s\" quiet @click=${close}>✕</sp-action-button>\n </div>\n <div class=\"new-project-modal-body\">${bodyTpl()} ${errorTpl()}</div>\n </div>\n `;\n if (_handle) {\n _handle.update(tpl);\n } else {\n _handle = openModal(tpl, { label: \"Publish\", onDismiss: close });\n }\n}\n\n/**\n * Automation-only seam (scripts/screenshots): open the modal directly in its connected state with a\n * canned deployment, bypassing {@link loadConnection} so no Cloudflare request ever fires. The\n * active project's `build.deploy` block still supplies the connected project/URL line.\n */\nexport function seedPublishConnected(options: {\n accountId?: string;\n deployment: PagesDeploymentInfo;\n}): void {\n _connection = { accountId: options.accountId ?? \"demo-account\", connected: true };\n _accounts = [];\n _deployment = options.deployment;\n noteDeployment(options.deployment);\n _error = \"\";\n _busy = false;\n _replacing = false;\n render();\n}\n\n/** Open the publish modal for the active project. */\nexport function openPublishPanel(): void {\n const config = currentConfig();\n const { owner, repo } = prefillRepo();\n _connection = \"loading\";\n _accounts = [];\n _deployment = null;\n _error = \"\";\n _busy = false;\n _replacing = false;\n _form = {\n accountId: \"\",\n branch: \"main\",\n owner,\n projectName: currentDeploy()?.projectName ?? deriveSlug(config?.name ?? \"\"),\n repo,\n };\n render();\n void loadConnection();\n}\n"
|
|
6
|
-
],
|
|
7
|
-
"mappings": "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",
|
|
8
|
-
"debugId": "32DE20DAF46B08AA64756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/services/model-uri.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"/**\n * Model-URI mapping for project files — deliberately Monaco-free.\n *\n * This lived in `monaco-setup`, whose top-level imports pull in Monaco's editor API and its\n * TypeScript/JSON/JavaScript language contributions. Anything importing this pure string helper\n * therefore dragged 12.6 MB back onto the cold-start path, defeating the lazy load. Kept separate\n * so `canvas-render` can address a model without loading an editor.\n */\n\nexport const ENTRY_SCHEMA_FILES = new Set([\"project.schema.json\", \"document.schema.json\"]);\n\n/**\n * The model URI to mount a project file at. Normally `file:///<project-relative-path>`, which is\n * what makes a document's relative `$schema` resolve against its own directory — EXCEPT for the two\n * generated entry documents, which get a reserved prefix instead.\n *\n * Their natural URIs collide with the schema ids above, and Monaco's JSON adapter calls\n * `resetSchema(model.uri)` on `onWillDisposeModel` (jsonMode.js). That reaches\n * `JSONSchemaService.onResourceChange`, which drops the inline content of the handle registered\n * under the SAME id — so opening `project.schema.json` in the source view and closing it again\n * silently un-registers the project schema, and every `project.json` goes back to reporting `No\n * schema request service available` for the rest of the session. Re-registering on disposal cannot\n * fix this reliably (the adapter's reset is async and listener order is not ours to pick); keeping\n * the two namespaces disjoint can.\n *\n * @param {string} path - Project-relative file path\n * @returns {string} Model URI string\n */\nexport function modelUriFor(path: string): string {\n return ENTRY_SCHEMA_FILES.has(path) ? `file:///.jx/generated/${path}` : `file:///${path}`;\n}\n"
|
|
6
|
-
],
|
|
7
|
-
"mappings": ";AASO,IAAM,qBAAqB,IAAI,IAAI,CAAC,uBAAuB,sBAAsB,CAAC;AAmBlF,SAAS,WAAW,CAAC,MAAsB;AAAA,EAChD,OAAO,mBAAmB,IAAI,IAAI,IAAI,yBAAyB,SAAS,WAAW;AAAA;",
|
|
8
|
-
"debugId": "52E5EE14C7301EA964756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|