flexlayout-react 0.8.9 → 0.8.11
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/ChangeLog.txt +12 -0
- package/README.md +30 -24
- package/declarations/view/BorderTab.d.ts +1 -2
- package/declarations/view/Icons.d.ts +7 -8
- package/declarations/view/Layout.d.ts +1 -1
- package/declarations/view/SizeTracker.d.ts +1 -1
- package/dist/flexlayout.js +51 -31
- package/dist/flexlayout_min.js +1 -1
- package/dist/flexlayout_min.js.LICENSE.txt +10 -0
- package/dist/src/Attribute.js +43 -0
- package/dist/src/Attribute.js.map +1 -0
- package/dist/src/AttributeDefinitions.js +132 -0
- package/dist/src/AttributeDefinitions.js.map +1 -0
- package/dist/src/DockLocation.js +121 -0
- package/dist/src/DockLocation.js.map +1 -0
- package/dist/src/DropInfo.js +10 -0
- package/dist/src/DropInfo.js.map +1 -0
- package/dist/src/I18nLabel.js +14 -0
- package/dist/src/I18nLabel.js.map +1 -0
- package/dist/src/Orientation.js +23 -0
- package/dist/src/Orientation.js.map +1 -0
- package/dist/src/Rect.js +111 -0
- package/dist/src/Rect.js.map +1 -0
- package/dist/src/Types.js +95 -0
- package/dist/src/Types.js.map +1 -0
- package/dist/src/index.js +22 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/model/Action.js +7 -0
- package/dist/src/model/Action.js.map +1 -0
- package/dist/src/model/Actions.js +170 -0
- package/dist/src/model/Actions.js.map +1 -0
- package/dist/src/model/BorderNode.js +390 -0
- package/dist/src/model/BorderNode.js.map +1 -0
- package/dist/src/model/BorderSet.js +67 -0
- package/dist/src/model/BorderSet.js.map +1 -0
- package/dist/src/model/ICloseType.js +7 -0
- package/dist/src/model/ICloseType.js.map +1 -0
- package/dist/src/model/IDraggable.js +2 -0
- package/dist/src/model/IDraggable.js.map +1 -0
- package/dist/src/model/IDropTarget.js +2 -0
- package/dist/src/model/IDropTarget.js.map +1 -0
- package/dist/src/model/IJsonModel.js +2 -0
- package/dist/src/model/IJsonModel.js.map +1 -0
- package/dist/src/model/LayoutWindow.js +81 -0
- package/dist/src/model/LayoutWindow.js.map +1 -0
- package/dist/src/model/Model.js +608 -0
- package/dist/src/model/Model.js.map +1 -0
- package/dist/src/model/Node.js +218 -0
- package/dist/src/model/Node.js.map +1 -0
- package/dist/src/model/RowNode.js +492 -0
- package/dist/src/model/RowNode.js.map +1 -0
- package/dist/src/model/TabNode.js +293 -0
- package/dist/src/model/TabNode.js.map +1 -0
- package/dist/src/model/TabSetNode.js +469 -0
- package/dist/src/model/TabSetNode.js.map +1 -0
- package/dist/src/model/Utils.js +48 -0
- package/dist/src/model/Utils.js.map +1 -0
- package/dist/src/view/BorderButton.js +126 -0
- package/dist/src/view/BorderButton.js.map +1 -0
- package/dist/src/view/BorderTab.js +44 -0
- package/dist/src/view/BorderTab.js.map +1 -0
- package/dist/src/view/BorderTabSet.js +138 -0
- package/dist/src/view/BorderTabSet.js.map +1 -0
- package/dist/src/view/DragContainer.js +16 -0
- package/dist/src/view/DragContainer.js.map +1 -0
- package/dist/src/view/ErrorBoundary.js +24 -0
- package/dist/src/view/ErrorBoundary.js.map +1 -0
- package/dist/src/view/Icons.js +29 -0
- package/dist/src/view/Icons.js.map +1 -0
- package/dist/src/view/Layout.js +881 -0
- package/dist/src/view/Layout.js.map +1 -0
- package/dist/src/view/Overlay.js +9 -0
- package/dist/src/view/Overlay.js.map +1 -0
- package/dist/src/view/PopoutWindow.js +129 -0
- package/dist/src/view/PopoutWindow.js.map +1 -0
- package/dist/src/view/PopupMenu.js +89 -0
- package/dist/src/view/PopupMenu.js.map +1 -0
- package/dist/src/view/Row.js +46 -0
- package/dist/src/view/Row.js.map +1 -0
- package/dist/src/view/SizeTracker.js +12 -0
- package/dist/src/view/SizeTracker.js.map +1 -0
- package/dist/src/view/Splitter.js +192 -0
- package/dist/src/view/Splitter.js.map +1 -0
- package/dist/src/view/Tab.js +91 -0
- package/dist/src/view/Tab.js.map +1 -0
- package/dist/src/view/TabButton.js +124 -0
- package/dist/src/view/TabButton.js.map +1 -0
- package/dist/src/view/TabButtonStamp.js +15 -0
- package/dist/src/view/TabButtonStamp.js.map +1 -0
- package/dist/src/view/TabOverflowHook.js +266 -0
- package/dist/src/view/TabOverflowHook.js.map +1 -0
- package/dist/src/view/TabSet.js +256 -0
- package/dist/src/view/TabSet.js.map +1 -0
- package/dist/src/view/Utils.js +110 -0
- package/dist/src/view/Utils.js.map +1 -0
- package/lib/AttributeDefinitions.js +2 -2
- package/lib/AttributeDefinitions.js.map +1 -1
- package/lib/Rect.js +1 -1
- package/lib/Rect.js.map +1 -1
- package/lib/view/BorderButton.js +7 -9
- package/lib/view/BorderButton.js.map +1 -1
- package/lib/view/BorderTab.js +18 -9
- package/lib/view/BorderTab.js.map +1 -1
- package/lib/view/BorderTabSet.js +11 -17
- package/lib/view/BorderTabSet.js.map +1 -1
- package/lib/view/DragContainer.js +2 -2
- package/lib/view/DragContainer.js.map +1 -1
- package/lib/view/ErrorBoundary.js +2 -2
- package/lib/view/ErrorBoundary.js.map +1 -1
- package/lib/view/Icons.js +8 -20
- package/lib/view/Icons.js.map +1 -1
- package/lib/view/Layout.js +44 -84
- package/lib/view/Layout.js.map +1 -1
- package/lib/view/Overlay.js +2 -2
- package/lib/view/Overlay.js.map +1 -1
- package/lib/view/PopupMenu.js +4 -5
- package/lib/view/PopupMenu.js.map +1 -1
- package/lib/view/Row.js +5 -4
- package/lib/view/Row.js.map +1 -1
- package/lib/view/SizeTracker.js +2 -1
- package/lib/view/SizeTracker.js.map +1 -1
- package/lib/view/Splitter.js +9 -4
- package/lib/view/Splitter.js.map +1 -1
- package/lib/view/Tab.js +3 -4
- package/lib/view/Tab.js.map +1 -1
- package/lib/view/TabButton.js +7 -9
- package/lib/view/TabButton.js.map +1 -1
- package/lib/view/TabButtonStamp.js +4 -6
- package/lib/view/TabButtonStamp.js.map +1 -1
- package/lib/view/TabSet.js +38 -42
- package/lib/view/TabSet.js.map +1 -1
- package/lib/view/Utils.js +3 -3
- package/lib/view/Utils.js.map +1 -1
- package/package.json +87 -77
- package/playwright-report/data/01f8ff379b7b7c06b0f8dbd65cbd55e95f8ca470.zip +0 -0
- package/playwright-report/data/02a706b995d751dee8ac0429e29eafb796a23f96.zip +0 -0
- package/playwright-report/data/04468c5a7304bad1acbe32d3376bfc5038e172d9.zip +0 -0
- package/playwright-report/data/04ffe14721deea0c6402bb96c78055475f6cd687.zip +0 -0
- package/playwright-report/data/07e1bb8bd6407ceafa7a1051839d398f34b41a52.zip +0 -0
- package/playwright-report/data/0d17b99e2ddd975da4868f295b370a9fc9b55993.zip +0 -0
- package/playwright-report/data/108805618d29c7800d55d7dd8da36829fec366bd.zip +0 -0
- package/playwright-report/data/1271fd2bc76809c25b62351f4321b396e745a199.zip +0 -0
- package/playwright-report/data/16bd316f5e3e9ad6c9dc2a6a0388f3425c1a61d9.zip +0 -0
- package/playwright-report/data/1a1b06cebe59d981e21198164093230b0a1704fd.zip +0 -0
- package/playwright-report/data/1b3b6bba4aca415bc586b2a0abb18410af26fbf1.zip +0 -0
- package/playwright-report/data/1ce927369a55edf14ec99e0029d1a342cb0fcfa4.zip +0 -0
- package/playwright-report/data/20a694648a90f0a805a4397b73699142e5dd50c1.zip +0 -0
- package/playwright-report/data/211f1c8fc3f5d052d935906201f29a1e42a2fbd8.zip +0 -0
- package/playwright-report/data/2176124681e769fbba593a272e67331fd69e56ef.zip +0 -0
- package/playwright-report/data/2487db6273b09acd9a62a9ecfa8f1e411cc769df.zip +0 -0
- package/playwright-report/data/25abefed6606e15cac6dc83e3ea4e85896233020.zip +0 -0
- package/playwright-report/data/2752051b8593d432be1a623813f2dbee043dc959.zip +0 -0
- package/playwright-report/data/2d72001a7f57a11282fe741ca22501b34f7576a2.zip +0 -0
- package/playwright-report/data/308de4d252afe1db5aeda783ea3eaf09368aa812.zip +0 -0
- package/playwright-report/data/30f265807a34ee9bb2ddd931970be6f572a42ffe.zip +0 -0
- package/playwright-report/data/326599ace543d3340403f5eaa0f28ef73f7d3cfc.zip +0 -0
- package/playwright-report/data/3662fcf1839c6bb164e1aceea5e25b410bae6286.zip +0 -0
- package/playwright-report/data/38cdebbb090386af04f96f13bf45b2a23feb6cf5.zip +0 -0
- package/playwright-report/data/3b45c7876ca7a4208061f69fa0cce9f9e619557c.zip +0 -0
- package/playwright-report/data/3c6115f8ff03527f3b888e8c6626d086146bb961.zip +0 -0
- package/playwright-report/data/3e976a69f9bc188048c96969507a28fc5411da40.zip +0 -0
- package/playwright-report/data/420bd6c0ed97c53e6ee5108c11c337690ed9dd71.zip +0 -0
- package/playwright-report/data/424c925f1d020f7918c5b1d4e93a3aff4ffd0d35.zip +0 -0
- package/playwright-report/data/4459657c233583f0bb5f541ba2a56d14fc04324f.zip +0 -0
- package/playwright-report/data/45dbca16424f69b6af3f201fd918186e66e6a921.zip +0 -0
- package/playwright-report/data/4c7242437d15e34066b69d5f3a71e21f436d81bb.zip +0 -0
- package/playwright-report/data/56f84e2288e6485b68f0f78f79af97016d066eea.zip +0 -0
- package/playwright-report/data/679d4cfcb398dd2d19703be59bbf1de72f73fa3e.zip +0 -0
- package/playwright-report/data/686279f3ccdca1213fe91a9901f1ca469a41db4b.zip +0 -0
- package/playwright-report/data/69403980b98daeb052c732f3d984b7ccc51022aa.zip +0 -0
- package/playwright-report/data/6d91e10cd5dc95944881ea0f875bf0e531c63164.zip +0 -0
- package/playwright-report/data/6f362695f59905c3acdcafb6eeacfa4b068bc030.zip +0 -0
- package/playwright-report/data/71dd5897288168b0f7fb2e187f2b543e880733b1.zip +0 -0
- package/playwright-report/data/7540a41a9c123cffc1750447ccb69d9fb8cc8ba5.zip +0 -0
- package/playwright-report/data/78f8483a26c47ca761f43b1f142a9fb9d001b27e.zip +0 -0
- package/playwright-report/data/7e8bd5ba547094dcf303d450853b2f74f41749b2.zip +0 -0
- package/playwright-report/data/7fbec8e63ea2ee1702a94fe4d837067192e661f0.zip +0 -0
- package/playwright-report/data/87f2ea42a46cbd21813358d7d6e31d9999fca953.zip +0 -0
- package/playwright-report/data/8db527a1f9b753036cf63bb4afc96a765007fe82.zip +0 -0
- package/playwright-report/data/8e5ccd4bd56f3843f4e788c5e9842165221c2748.zip +0 -0
- package/playwright-report/data/8fc12e2795e02ee2ad773ec7be25f94b6ca697ed.zip +0 -0
- package/playwright-report/data/9d10ab1649ded4751d19014847e110b0b03ad126.zip +0 -0
- package/playwright-report/data/ab82c3994c6614fa6873fc92fd44ca78cb45f9d6.zip +0 -0
- package/playwright-report/data/ac554655d509fe64199a053e715def4ce4bbd618.zip +0 -0
- package/playwright-report/data/ad8e5a0cec5ec3369478099a58b7652c0dd636f1.zip +0 -0
- package/playwright-report/data/ae30baf5dea2dc0dd2ca87ffa08afb936b27fef1.zip +0 -0
- package/playwright-report/data/bc7631ffd4df693573a3233ec403a1f9cbcb00a9.zip +0 -0
- package/playwright-report/data/bcfe71e7532702969ecdde584a294907ed21525e.zip +0 -0
- package/playwright-report/data/bf020e09e20d0cd6e1b8aa82153e84f9d40c7f74.zip +0 -0
- package/playwright-report/data/c3452f499f82ef644c3d314626d3d9c762ff5c20.zip +0 -0
- package/playwright-report/data/c5dfbb00ea0965a4214f02cde22245958bb31c86.zip +0 -0
- package/playwright-report/data/c716ede7c5174d8a83653a6862605eca04783bad.zip +0 -0
- package/playwright-report/data/c95ca5869740edf6d1d627d120aa9ba26b1d3415.zip +0 -0
- package/playwright-report/data/cc17390169d327b4dfc2a9b3a8279e74ff975b1d.zip +0 -0
- package/playwright-report/data/d0ff6b9f342d792119f1513cc53c9f315a56251b.zip +0 -0
- package/playwright-report/data/d26377153bff611b5ba5a1148fc8858f7bb2cb7b.zip +0 -0
- package/playwright-report/data/dc0608de1b624a691f2f393bf450fc01591076ef.zip +0 -0
- package/playwright-report/data/dee4c585c248f4827601afbde02d3732761bdd8b.zip +0 -0
- package/playwright-report/data/e4cdfceef70735028de78f94f7e07a1e65fa317d.zip +0 -0
- package/playwright-report/data/e64d89424643af3f746a091f7567db49b0b45f3c.zip +0 -0
- package/playwright-report/data/e70483c7d13bb871f5c5b4aa54149172d58bf0c0.zip +0 -0
- package/playwright-report/data/e8333b653df262d800ee7b5329503b975d420e87.zip +0 -0
- package/playwright-report/data/ed1bd19a957a6165ba73a644af4959590b23eed9.zip +0 -0
- package/playwright-report/data/f35cf046cdf897abd96f318f79443407e58b8f0b.zip +0 -0
- package/playwright-report/data/f8793a7c69b939ac07422cf41aac45ebe4a86908.zip +0 -0
- package/playwright-report/data/fb2a383b96839380e90e0137363a574e665aed38.zip +0 -0
- package/playwright-report/data/fede8e774c66e329bdac055d6d67e73aa75b14fc.zip +0 -0
- package/playwright-report/index.html +71 -0
- package/playwright-report/trace/assets/codeMirrorModule-DpJ-EmBQ.js +24 -0
- package/playwright-report/trace/assets/defaultSettingsView-DTenqiGw.js +259 -0
- package/playwright-report/trace/codeMirrorModule.C3UTv-Ge.css +1 -0
- package/playwright-report/trace/codicon.DCmgc-ay.ttf +0 -0
- package/playwright-report/trace/defaultSettingsView.5fN5lw10.css +1 -0
- package/playwright-report/trace/index.CFOW-Ezb.css +1 -0
- package/playwright-report/trace/index.CUq7VgrV.js +2 -0
- package/playwright-report/trace/index.html +43 -0
- package/playwright-report/trace/playwright-logo.svg +9 -0
- package/playwright-report/trace/snapshot.html +21 -0
- package/playwright-report/trace/sw.bundle.js +3 -0
- package/playwright-report/trace/uiMode.BatfzHMG.css +1 -0
- package/playwright-report/trace/uiMode.CHJSAD7F.js +5 -0
- package/playwright-report/trace/uiMode.html +17 -0
- package/playwright-report/trace/xtermModule.Beg8tuEN.css +32 -0
- package/playwright.config.ts +79 -0
- package/screenshots/PlaywrightUI.png +0 -0
- package/src/AttributeDefinitions.ts +2 -2
- package/src/Rect.ts +1 -1
- package/src/view/BorderButton.tsx +1 -1
- package/src/view/BorderTab.tsx +18 -7
- package/src/view/Icons.tsx +0 -2
- package/src/view/Layout.tsx +14 -10
- package/src/view/Overlay.tsx +0 -1
- package/src/view/Splitter.tsx +6 -0
- package/src/view/TabButton.tsx +1 -1
- package/src/view/TabButtonStamp.tsx +0 -1
- package/src/view/TabSet.tsx +16 -7
- package/test-results/view-Add-methods-add-to-active-tabset-chromium/trace.zip +0 -0
- package/test-results/view-Add-methods-drag-to-border-chromium/trace.zip +0 -0
- package/test-results/view-Add-methods-drag-to-tabset-chromium/trace.zip +0 -0
- package/test-results/view-Delete-methods-delete-all-tabs-chromium/trace.zip +0 -0
- package/test-results/view-Delete-methods-delete-tab-chromium/trace.zip +0 -0
- package/test-results/view-Extended-App-onRenderTab-chromium/trace.zip +0 -0
- package/test-results/view-Extended-App-onRenderTab-in-border-chromium/trace.zip +0 -0
- package/test-results/view-Extended-App-onRenderTabSet-chromium/trace.zip +0 -0
- package/test-results/view-Extended-App-onRenderTabSet-for-border-chromium/trace.zip +0 -0
- package/test-results/view-Extended-App-onRenderTabSet-sticky-buttons-chromium/trace.zip +0 -0
- package/test-results/view-Extended-layout2-borders-autohide-left-chromium/trace.zip +0 -0
- package/test-results/view-Extended-layout2-borders-autohide-top-chromium/trace.zip +0 -0
- package/test-results/view-Extended-layout2-check-border-bottom-min-size-chromium/trace.zip +0 -0
- package/test-results/view-Extended-layout2-check-border-left-min-size-chromium/trace.zip +0 -0
- package/test-results/view-Extended-layout2-check-border-right-min-size-chromium/trace.zip +0 -0
- package/test-results/view-Extended-layout2-check-border-top-min-size-chromium/trace.zip +0 -0
- package/test-results/view-Extended-layout2-check-tabset-min-size-chromium/trace.zip +0 -0
- package/test-results/view-Extended-layout2-tabset-close-chromium/trace.zip +0 -0
- package/test-results/view-Maximize-methods-maximize-tabset-using-double-click-chromium/trace.zip +0 -0
- package/test-results/view-Maximize-methods-maximize-tabset-using-max-button-chromium/trace.zip +0 -0
- package/test-results/view-Others-click-on-tab-button-causes-tabset-activate-chromium/trace.zip +0 -0
- package/test-results/view-Others-click-on-tab-contents-causes-tabset-activate-chromium/trace.zip +0 -0
- package/test-results/view-Others-click-on-tabstrip-causes-tabset-activate-chromium/trace.zip +0 -0
- package/test-results/view-Others-rename-tab-cancelled-with-esc-chromium/trace.zip +0 -0
- package/test-results/view-Others-rename-tab-chromium/trace.zip +0 -0
- package/test-results/view-Overflow-menu-show-menu-chromium/trace.zip +0 -0
- package/test-results/view-Splitters-horizontal--5a358-ter-to-bottom-edge-and-back-chromium/trace.zip +0 -0
- package/test-results/view-Splitters-horizontal--f02d2-litter-to-top-edge-and-back-chromium/trace.zip +0 -0
- package/test-results/view-Splitters-horizontal-resizes-with-hsplitter-chromium/trace.zip +0 -0
- package/test-results/view-Splitters-vsplitter-chromium/trace.zip +0 -0
- package/test-results/view-Splitters-vsplitter-to-edge-chromium/trace.zip +0 -0
- package/test-results/view-Splitters-vsplitter-to-edge-left-chromium/trace.zip +0 -0
- package/test-results/view-borders-border-bottom-to-tab-chromium/trace.zip +0 -0
- package/test-results/view-borders-border-left-to-tab-chromium/trace.zip +0 -0
- package/test-results/view-borders-border-right-to-tab-chromium/trace.zip +0 -0
- package/test-results/view-borders-border-top-to-tab-chromium/trace.zip +0 -0
- package/test-results/view-borders-move-tab-in-border-bottom-chromium/trace.zip +0 -0
- package/test-results/view-borders-move-tab-in-border-left-chromium/trace.zip +0 -0
- package/test-results/view-borders-move-tab-in-border-right-chromium/trace.zip +0 -0
- package/test-results/view-borders-move-tab-in-border-top-chromium/trace.zip +0 -0
- package/test-results/view-borders-tab-to-border-bottom-chromium/trace.zip +0 -0
- package/test-results/view-borders-tab-to-border-left-chromium/trace.zip +0 -0
- package/test-results/view-borders-tab-to-border-right-chromium/trace.zip +0 -0
- package/test-results/view-borders-tab-to-border-top-chromium/trace.zip +0 -0
- package/test-results/view-borders-tab-to-open-border-bottom-center-chromium/trace.zip +0 -0
- package/test-results/view-borders-tab-to-open-border-bottom-chromium/trace.zip +0 -0
- package/test-results/view-borders-tab-to-open-border-left-center-chromium/trace.zip +0 -0
- package/test-results/view-borders-tab-to-open-border-left-chromium/trace.zip +0 -0
- package/test-results/view-borders-tab-to-open-border-right-center-chromium/trace.zip +0 -0
- package/test-results/view-borders-tab-to-open-border-right-chromium/trace.zip +0 -0
- package/test-results/view-borders-tab-to-open-border-top-center-chromium/trace.zip +0 -0
- package/test-results/view-borders-tab-to-open-border-top-chromium/trace.zip +0 -0
- package/test-results/view-drag-tests-two-tabs-tab-to-edge-chromium/trace.zip +0 -0
- package/test-results/view-drag-tests-two-tabs-tab-to-tab-bottom-chromium/trace.zip +0 -0
- package/test-results/view-drag-tests-two-tabs-tab-to-tab-center-chromium/trace.zip +0 -0
- package/test-results/view-drag-tests-two-tabs-tab-to-tab-left-chromium/trace.zip +0 -0
- package/test-results/view-drag-tests-two-tabs-tab-to-tab-right-chromium/trace.zip +0 -0
- package/test-results/view-drag-tests-two-tabs-tab-to-tab-top-chromium/trace.zip +0 -0
- package/test-results/view-tab-can-have-icon-chromium/trace.zip +0 -0
- package/test-results/view-three-tabs-move-tab-in-tabstrip-chromium/trace.zip +0 -0
- package/test-results/view-three-tabs-move-tabstrip-chromium/trace.zip +0 -0
- package/test-results/view-three-tabs-row-to-column-chromium/trace.zip +0 -0
- package/test-results/view-three-tabs-row-to-single-tabset-chromium/trace.zip +0 -0
- package/test-results/view-three-tabs-tab-to-edge-bottom-chromium/trace.zip +0 -0
- package/test-results/view-three-tabs-tab-to-edge-left-chromium/trace.zip +0 -0
- package/test-results/view-three-tabs-tab-to-edge-right-chromium/trace.zip +0 -0
- package/test-results/view-three-tabs-tab-to-edge-top-chromium/trace.zip +0 -0
- package/test-results/view-three-tabs-tab-to-tab-bottom-chromium/trace.zip +0 -0
- package/test-results/view-three-tabs-tab-to-tab-center-chromium/trace.zip +0 -0
- package/test-results/view-three-tabs-tab-to-tab-left-chromium/trace.zip +0 -0
- package/test-results/view-three-tabs-tab-to-tab-right-chromium/trace.zip +0 -0
- package/test-results/view-three-tabs-tab-to-tab-top-chromium/trace.zip +0 -0
- package/test-results/view-three-tabs-tab-to-tabset-chromium/trace.zip +0 -0
- package/tests-playwright/helpers.ts +124 -0
- package/tests-playwright/view.spec.ts +911 -0
- package/declarations/examples/demo/Utils.d.ts +0 -4
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export * from './view/Layout';
|
|
2
|
+
export * from './model/Action';
|
|
3
|
+
export * from './model/Actions';
|
|
4
|
+
export * from './model/BorderNode';
|
|
5
|
+
export * from './model/BorderSet';
|
|
6
|
+
export * from './model/ICloseType';
|
|
7
|
+
export * from './model/IDraggable';
|
|
8
|
+
export * from './model/IDropTarget';
|
|
9
|
+
export * from './model/IJsonModel';
|
|
10
|
+
export * from './model/Model';
|
|
11
|
+
export * from './model/Node';
|
|
12
|
+
export * from './model/RowNode';
|
|
13
|
+
export * from './model/TabNode';
|
|
14
|
+
export * from './model/TabSetNode';
|
|
15
|
+
export * from './model/LayoutWindow';
|
|
16
|
+
export * from './DockLocation';
|
|
17
|
+
export * from './DropInfo';
|
|
18
|
+
export * from './I18nLabel';
|
|
19
|
+
export * from './Orientation';
|
|
20
|
+
export * from './Rect';
|
|
21
|
+
export * from './Types';
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAE9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AAErC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Action.js","sourceRoot":"","sources":["../../../src/model/Action.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IAIf,YAAY,IAAY,EAAE,IAAyB;QAC/C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;CACJ"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { Action } from "./Action";
|
|
2
|
+
/**
|
|
3
|
+
* The Action creator class for FlexLayout model actions
|
|
4
|
+
*/
|
|
5
|
+
export class Actions {
|
|
6
|
+
/**
|
|
7
|
+
* Adds a tab node to the given tabset node
|
|
8
|
+
* @param json the json for the new tab node e.g {type:"tab", component:"table"}
|
|
9
|
+
* @param toNodeId the new tab node will be added to the tabset with this node id
|
|
10
|
+
* @param location the location where the new tab will be added, one of the DockLocation enum values.
|
|
11
|
+
* @param index for docking to the center this value is the index of the tab, use -1 to add to the end.
|
|
12
|
+
* @param select (optional) whether to select the new tab, overriding autoSelectTab
|
|
13
|
+
* @returns {Action} the action
|
|
14
|
+
*/
|
|
15
|
+
static addNode(json, toNodeId, location, index, select) {
|
|
16
|
+
return new Action(Actions.ADD_NODE, {
|
|
17
|
+
json,
|
|
18
|
+
toNode: toNodeId,
|
|
19
|
+
location: location.getName(),
|
|
20
|
+
index,
|
|
21
|
+
select,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Moves a node (tab or tabset) from one location to another
|
|
26
|
+
* @param fromNodeId the id of the node to move
|
|
27
|
+
* @param toNodeId the id of the node to receive the moved node
|
|
28
|
+
* @param location the location where the moved node will be added, one of the DockLocation enum values.
|
|
29
|
+
* @param index for docking to the center this value is the index of the tab, use -1 to add to the end.
|
|
30
|
+
* @param select (optional) whether to select the moved tab(s) in new tabset, overriding autoSelectTab
|
|
31
|
+
* @returns {Action} the action
|
|
32
|
+
*/
|
|
33
|
+
static moveNode(fromNodeId, toNodeId, location, index, select) {
|
|
34
|
+
return new Action(Actions.MOVE_NODE, {
|
|
35
|
+
fromNode: fromNodeId,
|
|
36
|
+
toNode: toNodeId,
|
|
37
|
+
location: location.getName(),
|
|
38
|
+
index,
|
|
39
|
+
select,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Deletes a tab node from the layout
|
|
44
|
+
* @param tabNodeId the id of the tab node to delete
|
|
45
|
+
* @returns {Action} the action
|
|
46
|
+
*/
|
|
47
|
+
static deleteTab(tabNodeId) {
|
|
48
|
+
return new Action(Actions.DELETE_TAB, { node: tabNodeId });
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Deletes a tabset node and all it's child tab nodes from the layout
|
|
52
|
+
* @param tabsetNodeId the id of the tabset node to delete
|
|
53
|
+
* @returns {Action} the action
|
|
54
|
+
*/
|
|
55
|
+
static deleteTabset(tabsetNodeId) {
|
|
56
|
+
return new Action(Actions.DELETE_TABSET, { node: tabsetNodeId });
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Change the given nodes tab text
|
|
60
|
+
* @param tabNodeId the id of the node to rename
|
|
61
|
+
* @param text the test of the tab
|
|
62
|
+
* @returns {Action} the action
|
|
63
|
+
*/
|
|
64
|
+
static renameTab(tabNodeId, text) {
|
|
65
|
+
return new Action(Actions.RENAME_TAB, { node: tabNodeId, text });
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Selects the given tab in its parent tabset
|
|
69
|
+
* @param tabNodeId the id of the node to set selected
|
|
70
|
+
* @returns {Action} the action
|
|
71
|
+
*/
|
|
72
|
+
static selectTab(tabNodeId) {
|
|
73
|
+
return new Action(Actions.SELECT_TAB, { tabNode: tabNodeId });
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Set the given tabset node as the active tabset
|
|
77
|
+
* @param tabsetNodeId the id of the tabset node to set as active
|
|
78
|
+
* @returns {Action} the action
|
|
79
|
+
*/
|
|
80
|
+
static setActiveTabset(tabsetNodeId, windowId) {
|
|
81
|
+
return new Action(Actions.SET_ACTIVE_TABSET, { tabsetNode: tabsetNodeId, windowId: windowId });
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Adjust the weights of a row, used when the splitter is moved
|
|
85
|
+
* @param nodeId the row node whose childrens weights are being adjusted
|
|
86
|
+
* @param weights an array of weights to be applied to the children
|
|
87
|
+
* @returns {Action} the action
|
|
88
|
+
*/
|
|
89
|
+
static adjustWeights(nodeId, weights) {
|
|
90
|
+
return new Action(Actions.ADJUST_WEIGHTS, { nodeId, weights });
|
|
91
|
+
}
|
|
92
|
+
static adjustBorderSplit(nodeId, pos) {
|
|
93
|
+
return new Action(Actions.ADJUST_BORDER_SPLIT, { node: nodeId, pos });
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Maximizes the given tabset
|
|
97
|
+
* @param tabsetNodeId the id of the tabset to maximize
|
|
98
|
+
* @returns {Action} the action
|
|
99
|
+
*/
|
|
100
|
+
static maximizeToggle(tabsetNodeId, windowId) {
|
|
101
|
+
return new Action(Actions.MAXIMIZE_TOGGLE, { node: tabsetNodeId, windowId: windowId });
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Updates the global model jsone attributes
|
|
105
|
+
* @param attributes the json for the model attributes to update (merge into the existing attributes)
|
|
106
|
+
* @returns {Action} the action
|
|
107
|
+
*/
|
|
108
|
+
static updateModelAttributes(attributes) {
|
|
109
|
+
return new Action(Actions.UPDATE_MODEL_ATTRIBUTES, { json: attributes });
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Updates the given nodes json attributes
|
|
113
|
+
* @param nodeId the id of the node to update
|
|
114
|
+
* @param attributes the json attributes to update (merge with the existing attributes)
|
|
115
|
+
* @returns {Action} the action
|
|
116
|
+
*/
|
|
117
|
+
static updateNodeAttributes(nodeId, attributes) {
|
|
118
|
+
return new Action(Actions.UPDATE_NODE_ATTRIBUTES, { node: nodeId, json: attributes });
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Pops out the given tab node into a new browser window
|
|
122
|
+
* @param nodeId the tab node to popout
|
|
123
|
+
* @returns
|
|
124
|
+
*/
|
|
125
|
+
static popoutTab(nodeId) {
|
|
126
|
+
return new Action(Actions.POPOUT_TAB, { node: nodeId });
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Pops out the given tab set node into a new browser window
|
|
130
|
+
* @param nodeId the tab set node to popout
|
|
131
|
+
* @returns
|
|
132
|
+
*/
|
|
133
|
+
static popoutTabset(nodeId) {
|
|
134
|
+
return new Action(Actions.POPOUT_TABSET, { node: nodeId });
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Closes the popout window
|
|
138
|
+
* @param windowId the id of the popout window to close
|
|
139
|
+
* @returns
|
|
140
|
+
*/
|
|
141
|
+
static closeWindow(windowId) {
|
|
142
|
+
return new Action(Actions.CLOSE_WINDOW, { windowId });
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Creates a new empty popout window with the given layout
|
|
146
|
+
* @param layout the json layout for the new window
|
|
147
|
+
* @param rect the window rectangle in screen coordinates
|
|
148
|
+
* @returns
|
|
149
|
+
*/
|
|
150
|
+
static createWindow(layout, rect) {
|
|
151
|
+
return new Action(Actions.CREATE_WINDOW, { layout, rect });
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
Actions.ADD_NODE = "FlexLayout_AddNode";
|
|
155
|
+
Actions.MOVE_NODE = "FlexLayout_MoveNode";
|
|
156
|
+
Actions.DELETE_TAB = "FlexLayout_DeleteTab";
|
|
157
|
+
Actions.DELETE_TABSET = "FlexLayout_DeleteTabset";
|
|
158
|
+
Actions.RENAME_TAB = "FlexLayout_RenameTab";
|
|
159
|
+
Actions.SELECT_TAB = "FlexLayout_SelectTab";
|
|
160
|
+
Actions.SET_ACTIVE_TABSET = "FlexLayout_SetActiveTabset";
|
|
161
|
+
Actions.ADJUST_WEIGHTS = "FlexLayout_AdjustWeights";
|
|
162
|
+
Actions.ADJUST_BORDER_SPLIT = "FlexLayout_AdjustBorderSplit";
|
|
163
|
+
Actions.MAXIMIZE_TOGGLE = "FlexLayout_MaximizeToggle";
|
|
164
|
+
Actions.UPDATE_MODEL_ATTRIBUTES = "FlexLayout_UpdateModelAttributes";
|
|
165
|
+
Actions.UPDATE_NODE_ATTRIBUTES = "FlexLayout_UpdateNodeAttributes";
|
|
166
|
+
Actions.POPOUT_TAB = "FlexLayout_PopoutTab";
|
|
167
|
+
Actions.POPOUT_TABSET = "FlexLayout_PopoutTabset";
|
|
168
|
+
Actions.CLOSE_WINDOW = "FlexLayout_CloseWindow";
|
|
169
|
+
Actions.CREATE_WINDOW = "FlexLayout_CreateWindow";
|
|
170
|
+
//# sourceMappingURL=Actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Actions.js","sourceRoot":"","sources":["../../../src/model/Actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
import { Attribute } from "../Attribute";
|
|
2
|
+
import { AttributeDefinitions } from "../AttributeDefinitions";
|
|
3
|
+
import { DockLocation } from "../DockLocation";
|
|
4
|
+
import { DropInfo } from "../DropInfo";
|
|
5
|
+
import { Orientation } from "../Orientation";
|
|
6
|
+
import { Rect } from "../Rect";
|
|
7
|
+
import { CLASSES } from "../Types";
|
|
8
|
+
import { Model } from "./Model";
|
|
9
|
+
import { Node } from "./Node";
|
|
10
|
+
import { TabNode } from "./TabNode";
|
|
11
|
+
import { adjustSelectedIndex } from "./Utils";
|
|
12
|
+
export class BorderNode extends Node {
|
|
13
|
+
/** @internal */
|
|
14
|
+
static fromJson(json, model) {
|
|
15
|
+
const location = DockLocation.getByName(json.location);
|
|
16
|
+
const border = new BorderNode(location, json, model);
|
|
17
|
+
if (json.children) {
|
|
18
|
+
border.children = json.children.map((jsonChild) => {
|
|
19
|
+
const child = TabNode.fromJson(jsonChild, model);
|
|
20
|
+
child.setParent(border);
|
|
21
|
+
return child;
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return border;
|
|
25
|
+
}
|
|
26
|
+
/** @internal */
|
|
27
|
+
constructor(location, json, model) {
|
|
28
|
+
super(model);
|
|
29
|
+
/** @internal */
|
|
30
|
+
this.outerRect = Rect.empty();
|
|
31
|
+
/** @internal */
|
|
32
|
+
this.contentRect = Rect.empty();
|
|
33
|
+
/** @internal */
|
|
34
|
+
this.tabHeaderRect = Rect.empty();
|
|
35
|
+
this.location = location;
|
|
36
|
+
this.attributes.id = `border_${location.getName()}`;
|
|
37
|
+
BorderNode.attributeDefinitions.fromJson(json, this.attributes);
|
|
38
|
+
model.addNode(this);
|
|
39
|
+
}
|
|
40
|
+
getLocation() {
|
|
41
|
+
return this.location;
|
|
42
|
+
}
|
|
43
|
+
getClassName() {
|
|
44
|
+
return this.getAttr("className");
|
|
45
|
+
}
|
|
46
|
+
isHorizontal() {
|
|
47
|
+
return this.location.orientation === Orientation.HORZ;
|
|
48
|
+
}
|
|
49
|
+
getSize() {
|
|
50
|
+
const defaultSize = this.getAttr("size");
|
|
51
|
+
const selected = this.getSelected();
|
|
52
|
+
if (selected === -1) {
|
|
53
|
+
return defaultSize;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
const tabNode = this.children[selected];
|
|
57
|
+
const tabBorderSize = this.isHorizontal() ? tabNode.getAttr("borderWidth") : tabNode.getAttr("borderHeight");
|
|
58
|
+
if (tabBorderSize === -1) {
|
|
59
|
+
return defaultSize;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
return tabBorderSize;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
getMinSize() {
|
|
67
|
+
const selectedNode = this.getSelectedNode();
|
|
68
|
+
let min = this.getAttr("minSize");
|
|
69
|
+
if (selectedNode) {
|
|
70
|
+
const nodeMin = this.isHorizontal() ? selectedNode.getMinWidth() : selectedNode.getMinHeight();
|
|
71
|
+
min = Math.max(min, nodeMin);
|
|
72
|
+
}
|
|
73
|
+
return min;
|
|
74
|
+
}
|
|
75
|
+
getMaxSize() {
|
|
76
|
+
const selectedNode = this.getSelectedNode();
|
|
77
|
+
let max = this.getAttr("maxSize");
|
|
78
|
+
if (selectedNode) {
|
|
79
|
+
const nodeMax = this.isHorizontal() ? selectedNode.getMaxWidth() : selectedNode.getMaxHeight();
|
|
80
|
+
max = Math.min(max, nodeMax);
|
|
81
|
+
}
|
|
82
|
+
return max;
|
|
83
|
+
}
|
|
84
|
+
getSelected() {
|
|
85
|
+
return this.attributes.selected;
|
|
86
|
+
}
|
|
87
|
+
isAutoHide() {
|
|
88
|
+
return this.getAttr("enableAutoHide");
|
|
89
|
+
}
|
|
90
|
+
getSelectedNode() {
|
|
91
|
+
if (this.getSelected() !== -1) {
|
|
92
|
+
return this.children[this.getSelected()];
|
|
93
|
+
}
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
getOrientation() {
|
|
97
|
+
return this.location.getOrientation();
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Returns the config attribute that can be used to store node specific data that
|
|
101
|
+
* WILL be saved to the json. The config attribute should be changed via the action Actions.updateNodeAttributes rather
|
|
102
|
+
* than directly, for example:
|
|
103
|
+
* this.state.model.doAction(
|
|
104
|
+
* FlexLayout.Actions.updateNodeAttributes(node.getId(), {config:myConfigObject}));
|
|
105
|
+
*/
|
|
106
|
+
getConfig() {
|
|
107
|
+
return this.attributes.config;
|
|
108
|
+
}
|
|
109
|
+
isMaximized() {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
isShowing() {
|
|
113
|
+
return this.attributes.show;
|
|
114
|
+
}
|
|
115
|
+
toJson() {
|
|
116
|
+
const json = {};
|
|
117
|
+
BorderNode.attributeDefinitions.toJson(json, this.attributes);
|
|
118
|
+
json.location = this.location.getName();
|
|
119
|
+
json.children = this.children.map((child) => child.toJson());
|
|
120
|
+
return json;
|
|
121
|
+
}
|
|
122
|
+
/** @internal */
|
|
123
|
+
isAutoSelectTab(whenOpen) {
|
|
124
|
+
if (whenOpen == null) {
|
|
125
|
+
whenOpen = this.getSelected() !== -1;
|
|
126
|
+
}
|
|
127
|
+
if (whenOpen) {
|
|
128
|
+
return this.getAttr("autoSelectTabWhenOpen");
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
return this.getAttr("autoSelectTabWhenClosed");
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
isEnableTabScrollbar() {
|
|
135
|
+
return this.getAttr("enableTabScrollbar");
|
|
136
|
+
}
|
|
137
|
+
/** @internal */
|
|
138
|
+
setSelected(index) {
|
|
139
|
+
this.attributes.selected = index;
|
|
140
|
+
}
|
|
141
|
+
/** @internal */
|
|
142
|
+
getTabHeaderRect() {
|
|
143
|
+
return this.tabHeaderRect;
|
|
144
|
+
}
|
|
145
|
+
/** @internal */
|
|
146
|
+
setTabHeaderRect(r) {
|
|
147
|
+
this.tabHeaderRect = r;
|
|
148
|
+
}
|
|
149
|
+
/** @internal */
|
|
150
|
+
getOuterRect() {
|
|
151
|
+
return this.outerRect;
|
|
152
|
+
}
|
|
153
|
+
/** @internal */
|
|
154
|
+
setOuterRect(r) {
|
|
155
|
+
this.outerRect = r;
|
|
156
|
+
}
|
|
157
|
+
/** @internal */
|
|
158
|
+
getRect() {
|
|
159
|
+
return this.tabHeaderRect;
|
|
160
|
+
}
|
|
161
|
+
/** @internal */
|
|
162
|
+
getContentRect() {
|
|
163
|
+
return this.contentRect;
|
|
164
|
+
}
|
|
165
|
+
/** @internal */
|
|
166
|
+
setContentRect(r) {
|
|
167
|
+
this.contentRect = r;
|
|
168
|
+
}
|
|
169
|
+
/** @internal */
|
|
170
|
+
isEnableDrop() {
|
|
171
|
+
return this.getAttr("enableDrop");
|
|
172
|
+
}
|
|
173
|
+
/** @internal */
|
|
174
|
+
setSize(pos) {
|
|
175
|
+
const selected = this.getSelected();
|
|
176
|
+
if (selected === -1) {
|
|
177
|
+
this.attributes.size = pos;
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
const tabNode = this.children[selected];
|
|
181
|
+
const tabBorderSize = this.isHorizontal() ? tabNode.getAttr("borderWidth") : tabNode.getAttr("borderHeight");
|
|
182
|
+
if (tabBorderSize === -1) {
|
|
183
|
+
this.attributes.size = pos;
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
if (this.isHorizontal()) {
|
|
187
|
+
tabNode.setBorderWidth(pos);
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
tabNode.setBorderHeight(pos);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/** @internal */
|
|
196
|
+
updateAttrs(json) {
|
|
197
|
+
BorderNode.attributeDefinitions.update(json, this.attributes);
|
|
198
|
+
}
|
|
199
|
+
/** @internal */
|
|
200
|
+
remove(node) {
|
|
201
|
+
const removedIndex = this.removeChild(node);
|
|
202
|
+
if (this.getSelected() !== -1) {
|
|
203
|
+
adjustSelectedIndex(this, removedIndex);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
/** @internal */
|
|
207
|
+
canDrop(dragNode, x, y) {
|
|
208
|
+
if (!(dragNode instanceof TabNode)) {
|
|
209
|
+
return undefined;
|
|
210
|
+
}
|
|
211
|
+
let dropInfo;
|
|
212
|
+
const dockLocation = DockLocation.CENTER;
|
|
213
|
+
if (this.tabHeaderRect.contains(x, y)) {
|
|
214
|
+
if (this.location.orientation === Orientation.VERT) {
|
|
215
|
+
if (this.children.length > 0) {
|
|
216
|
+
let child = this.children[0];
|
|
217
|
+
let childRect = child.getTabRect();
|
|
218
|
+
const childY = childRect.y;
|
|
219
|
+
const childHeight = childRect.height;
|
|
220
|
+
let pos = this.tabHeaderRect.x;
|
|
221
|
+
let childCenter = 0;
|
|
222
|
+
for (let i = 0; i < this.children.length; i++) {
|
|
223
|
+
child = this.children[i];
|
|
224
|
+
childRect = child.getTabRect();
|
|
225
|
+
childCenter = childRect.x + childRect.width / 2;
|
|
226
|
+
if (x >= pos && x < childCenter) {
|
|
227
|
+
const outlineRect = new Rect(childRect.x - 2, childY, 3, childHeight);
|
|
228
|
+
dropInfo = new DropInfo(this, outlineRect, dockLocation, i, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
|
|
229
|
+
break;
|
|
230
|
+
}
|
|
231
|
+
pos = childCenter;
|
|
232
|
+
}
|
|
233
|
+
if (dropInfo == null) {
|
|
234
|
+
const outlineRect = new Rect(childRect.getRight() - 2, childY, 3, childHeight);
|
|
235
|
+
dropInfo = new DropInfo(this, outlineRect, dockLocation, this.children.length, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
const outlineRect = new Rect(this.tabHeaderRect.x + 1, this.tabHeaderRect.y + 2, 3, 18);
|
|
240
|
+
dropInfo = new DropInfo(this, outlineRect, dockLocation, 0, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
if (this.children.length > 0) {
|
|
245
|
+
let child = this.children[0];
|
|
246
|
+
let childRect = child.getTabRect();
|
|
247
|
+
const childX = childRect.x;
|
|
248
|
+
const childWidth = childRect.width;
|
|
249
|
+
let pos = this.tabHeaderRect.y;
|
|
250
|
+
let childCenter = 0;
|
|
251
|
+
for (let i = 0; i < this.children.length; i++) {
|
|
252
|
+
child = this.children[i];
|
|
253
|
+
childRect = child.getTabRect();
|
|
254
|
+
childCenter = childRect.y + childRect.height / 2;
|
|
255
|
+
if (y >= pos && y < childCenter) {
|
|
256
|
+
const outlineRect = new Rect(childX, childRect.y - 2, childWidth, 3);
|
|
257
|
+
dropInfo = new DropInfo(this, outlineRect, dockLocation, i, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
|
|
258
|
+
break;
|
|
259
|
+
}
|
|
260
|
+
pos = childCenter;
|
|
261
|
+
}
|
|
262
|
+
if (dropInfo == null) {
|
|
263
|
+
const outlineRect = new Rect(childX, childRect.getBottom() - 2, childWidth, 3);
|
|
264
|
+
dropInfo = new DropInfo(this, outlineRect, dockLocation, this.children.length, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
const outlineRect = new Rect(this.tabHeaderRect.x + 2, this.tabHeaderRect.y + 1, 18, 3);
|
|
269
|
+
dropInfo = new DropInfo(this, outlineRect, dockLocation, 0, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
if (!dragNode.canDockInto(dragNode, dropInfo)) {
|
|
273
|
+
return undefined;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
else if (this.getSelected() !== -1 && this.outerRect.contains(x, y)) {
|
|
277
|
+
const outlineRect = this.outerRect;
|
|
278
|
+
dropInfo = new DropInfo(this, outlineRect, dockLocation, -1, CLASSES.FLEXLAYOUT__OUTLINE_RECT);
|
|
279
|
+
if (!dragNode.canDockInto(dragNode, dropInfo)) {
|
|
280
|
+
return undefined;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
return dropInfo;
|
|
284
|
+
}
|
|
285
|
+
/** @internal */
|
|
286
|
+
drop(dragNode, location, index, select) {
|
|
287
|
+
let fromIndex = 0;
|
|
288
|
+
const dragParent = dragNode.getParent();
|
|
289
|
+
if (dragParent !== undefined) {
|
|
290
|
+
fromIndex = dragParent.removeChild(dragNode);
|
|
291
|
+
// if selected node in border is being docked into a different border then deselect border tabs
|
|
292
|
+
if (dragParent !== this && dragParent instanceof BorderNode && dragParent.getSelected() === fromIndex) {
|
|
293
|
+
dragParent.setSelected(-1);
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
adjustSelectedIndex(dragParent, fromIndex);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
// if dropping a tab back to same tabset and moving to forward position then reduce insertion index
|
|
300
|
+
if (dragNode instanceof TabNode && dragParent === this && fromIndex < index && index > 0) {
|
|
301
|
+
index--;
|
|
302
|
+
}
|
|
303
|
+
// simple_bundled dock to existing tabset
|
|
304
|
+
let insertPos = index;
|
|
305
|
+
if (insertPos === -1) {
|
|
306
|
+
insertPos = this.children.length;
|
|
307
|
+
}
|
|
308
|
+
if (dragNode instanceof TabNode) {
|
|
309
|
+
this.addChild(dragNode, insertPos);
|
|
310
|
+
}
|
|
311
|
+
if (select || (select !== false && this.isAutoSelectTab())) {
|
|
312
|
+
this.setSelected(insertPos);
|
|
313
|
+
}
|
|
314
|
+
this.model.tidy();
|
|
315
|
+
}
|
|
316
|
+
/** @internal */
|
|
317
|
+
getSplitterBounds(index, useMinSize = false) {
|
|
318
|
+
const pBounds = [0, 0];
|
|
319
|
+
const minSize = useMinSize ? this.getMinSize() : 0;
|
|
320
|
+
const maxSize = useMinSize ? this.getMaxSize() : 99999;
|
|
321
|
+
const rootRow = this.model.getRoot(Model.MAIN_WINDOW_ID);
|
|
322
|
+
const innerRect = rootRow.getRect();
|
|
323
|
+
const splitterSize = this.model.getSplitterSize();
|
|
324
|
+
if (this.location === DockLocation.TOP) {
|
|
325
|
+
pBounds[0] = this.tabHeaderRect.getBottom() + minSize;
|
|
326
|
+
const maxPos = this.tabHeaderRect.getBottom() + maxSize;
|
|
327
|
+
pBounds[1] = Math.max(pBounds[0], innerRect.getBottom() - rootRow.getMinHeight() - splitterSize);
|
|
328
|
+
pBounds[1] = Math.min(pBounds[1], maxPos);
|
|
329
|
+
}
|
|
330
|
+
else if (this.location === DockLocation.LEFT) {
|
|
331
|
+
pBounds[0] = this.tabHeaderRect.getRight() + minSize;
|
|
332
|
+
const maxPos = this.tabHeaderRect.getRight() + maxSize;
|
|
333
|
+
pBounds[1] = Math.max(pBounds[0], innerRect.getRight() - rootRow.getMinWidth() - splitterSize);
|
|
334
|
+
pBounds[1] = Math.min(pBounds[1], maxPos);
|
|
335
|
+
}
|
|
336
|
+
else if (this.location === DockLocation.BOTTOM) {
|
|
337
|
+
pBounds[1] = this.tabHeaderRect.y - minSize - splitterSize;
|
|
338
|
+
const maxPos = this.tabHeaderRect.y - maxSize - splitterSize;
|
|
339
|
+
pBounds[0] = Math.min(pBounds[1], innerRect.y + rootRow.getMinHeight());
|
|
340
|
+
pBounds[0] = Math.max(pBounds[0], maxPos);
|
|
341
|
+
}
|
|
342
|
+
else if (this.location === DockLocation.RIGHT) {
|
|
343
|
+
pBounds[1] = this.tabHeaderRect.x - minSize - splitterSize;
|
|
344
|
+
const maxPos = this.tabHeaderRect.x - maxSize - splitterSize;
|
|
345
|
+
pBounds[0] = Math.min(pBounds[1], innerRect.x + rootRow.getMinWidth());
|
|
346
|
+
pBounds[0] = Math.max(pBounds[0], maxPos);
|
|
347
|
+
}
|
|
348
|
+
return pBounds;
|
|
349
|
+
}
|
|
350
|
+
/** @internal */
|
|
351
|
+
calculateSplit(splitter, splitterPos) {
|
|
352
|
+
const pBounds = this.getSplitterBounds(splitterPos);
|
|
353
|
+
if (this.location === DockLocation.BOTTOM || this.location === DockLocation.RIGHT) {
|
|
354
|
+
return Math.max(0, pBounds[1] - splitterPos);
|
|
355
|
+
}
|
|
356
|
+
else {
|
|
357
|
+
return Math.max(0, splitterPos - pBounds[0]);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
/** @internal */
|
|
361
|
+
getAttributeDefinitions() {
|
|
362
|
+
return BorderNode.attributeDefinitions;
|
|
363
|
+
}
|
|
364
|
+
/** @internal */
|
|
365
|
+
static getAttributeDefinitions() {
|
|
366
|
+
return BorderNode.attributeDefinitions;
|
|
367
|
+
}
|
|
368
|
+
/** @internal */
|
|
369
|
+
static createAttributeDefinitions() {
|
|
370
|
+
const attributeDefinitions = new AttributeDefinitions();
|
|
371
|
+
attributeDefinitions.add("type", BorderNode.TYPE, true).setType(Attribute.STRING).setFixed();
|
|
372
|
+
attributeDefinitions.add("selected", -1).setType(Attribute.NUMBER).setDescription(`index of selected/visible tab in border; -1 means no tab selected`);
|
|
373
|
+
attributeDefinitions.add("show", true).setType(Attribute.BOOLEAN).setDescription(`show/hide this border`);
|
|
374
|
+
attributeDefinitions.add("config", undefined).setType("any").setDescription(`a place to hold json config used in your own code`);
|
|
375
|
+
attributeDefinitions.addInherited("enableDrop", "borderEnableDrop").setType(Attribute.BOOLEAN).setDescription(`whether tabs can be dropped into this border`);
|
|
376
|
+
attributeDefinitions.addInherited("className", "borderClassName").setType(Attribute.STRING).setDescription(`class applied to tab button`);
|
|
377
|
+
attributeDefinitions.addInherited("autoSelectTabWhenOpen", "borderAutoSelectTabWhenOpen").setType(Attribute.BOOLEAN).setDescription(`whether to select new/moved tabs in border when the border is already open`);
|
|
378
|
+
attributeDefinitions.addInherited("autoSelectTabWhenClosed", "borderAutoSelectTabWhenClosed").setType(Attribute.BOOLEAN).setDescription(`whether to select new/moved tabs in border when the border is currently closed`);
|
|
379
|
+
attributeDefinitions.addInherited("size", "borderSize").setType(Attribute.NUMBER).setDescription(`size of the tab area when selected`);
|
|
380
|
+
attributeDefinitions.addInherited("minSize", "borderMinSize").setType(Attribute.NUMBER).setDescription(`the minimum size of the tab area`);
|
|
381
|
+
attributeDefinitions.addInherited("maxSize", "borderMaxSize").setType(Attribute.NUMBER).setDescription(`the maximum size of the tab area`);
|
|
382
|
+
attributeDefinitions.addInherited("enableAutoHide", "borderEnableAutoHide").setType(Attribute.BOOLEAN).setDescription(`hide border if it has zero tabs`);
|
|
383
|
+
attributeDefinitions.addInherited("enableTabScrollbar", "borderEnableTabScrollbar").setType(Attribute.BOOLEAN).setDescription(`whether to show a mini scrollbar for the tabs`);
|
|
384
|
+
return attributeDefinitions;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
BorderNode.TYPE = "border";
|
|
388
|
+
/** @internal */
|
|
389
|
+
BorderNode.attributeDefinitions = BorderNode.createAttributeDefinitions();
|
|
390
|
+
//# sourceMappingURL=BorderNode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BorderNode.js","sourceRoot":"","sources":["../../../src/model/BorderNode.ts"],"names":[],"mappings":"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"}
|