splitter: use more lightweight split.js for sidebar splitter
This commit is contained in:
+1
-1
@@ -19,7 +19,7 @@
|
|||||||
"mime-types": "^2.1.27",
|
"mime-types": "^2.1.27",
|
||||||
"pretty-bytes": "^5.3.0",
|
"pretty-bytes": "^5.3.0",
|
||||||
"register-service-worker": "^1.7.1",
|
"register-service-worker": "^1.7.1",
|
||||||
"split-me": "^1.2.2"
|
"split.js": "^1.6.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"css-loader": "^3.5.3",
|
"css-loader": "^3.5.3",
|
||||||
|
|||||||
+72
-45
@@ -17,7 +17,8 @@ import fasLeft from '@fortawesome/fontawesome-free/svgs/solid/arrow-left.svg';
|
|||||||
import fasRight from '@fortawesome/fontawesome-free/svgs/solid/arrow-right.svg';
|
import fasRight from '@fortawesome/fontawesome-free/svgs/solid/arrow-right.svg';
|
||||||
import fasMenuV from '@fortawesome/fontawesome-free/svgs/solid/ellipsis-v.svg';
|
import fasMenuV from '@fortawesome/fontawesome-free/svgs/solid/ellipsis-v.svg';
|
||||||
|
|
||||||
import { defineCustomElements as defineSplitMe } from 'split-me/loader';
|
import Split from 'split.js'
|
||||||
|
//import { defineCustomElements as defineSplitMe } from 'split-me/loader';
|
||||||
|
|
||||||
|
|
||||||
const RWP_SCHEME = "search://";
|
const RWP_SCHEME = "search://";
|
||||||
@@ -59,6 +60,7 @@ class Coll extends LitElement
|
|||||||
this.editable = false;
|
this.editable = false;
|
||||||
|
|
||||||
this.showSidebar = localStorage.getItem(`pages:showSidebar`) === "1";
|
this.showSidebar = localStorage.getItem(`pages:showSidebar`) === "1";
|
||||||
|
this.splitter = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
static get properties() {
|
static get properties() {
|
||||||
@@ -98,7 +100,7 @@ class Coll extends LitElement
|
|||||||
this.isFullscreen = !!document.fullscreenElement;
|
this.isFullscreen = !!document.fullscreenElement;
|
||||||
});
|
});
|
||||||
|
|
||||||
defineSplitMe(window);
|
//defineSplitMe(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
updated(changedProperties) {
|
updated(changedProperties) {
|
||||||
@@ -146,6 +148,40 @@ class Coll extends LitElement
|
|||||||
if (changedProperties.has("showSidebar")) {
|
if (changedProperties.has("showSidebar")) {
|
||||||
localStorage.setItem(`pages:showSidebar`, this.showSidebar ? "1" : "0");
|
localStorage.setItem(`pages:showSidebar`, this.showSidebar ? "1" : "0");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (changedProperties.has("tabData") || changedProperties.has("showSidebar")) {
|
||||||
|
this.configureSplitter();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
configureSplitter() {
|
||||||
|
if (this.tabData.view === "replay" && this.showSidebar) {
|
||||||
|
const pages = this.renderRoot.querySelector("wr-page-view");
|
||||||
|
const replay = this.renderRoot.querySelector("wr-coll-replay");
|
||||||
|
|
||||||
|
if (pages && replay && !this.splitter) {
|
||||||
|
const opts = {
|
||||||
|
sizes: [30, 70],
|
||||||
|
|
||||||
|
minSize: [300, 300],
|
||||||
|
|
||||||
|
gutterSize: 4,
|
||||||
|
|
||||||
|
onDragStart() {
|
||||||
|
replay.setDisablePointer(true);
|
||||||
|
},
|
||||||
|
|
||||||
|
onDragEnd() {
|
||||||
|
replay.setDisablePointer(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.splitter = Split([pages, replay], opts);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.splitter.destroy();
|
||||||
|
this.splitter = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async doUpdateInfo() {
|
async doUpdateInfo() {
|
||||||
@@ -399,14 +435,14 @@ class Coll extends LitElement
|
|||||||
opacity: 1.0;
|
opacity: 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
split-me {
|
.gutter.gutter-horizontal {
|
||||||
--phantom-divider-thickness: 4px;
|
cursor: col-resize;
|
||||||
--divider-thickness: 0.1rem;
|
float: left;
|
||||||
--divider-color: rgb(151, 152, 154);
|
background-color: rgb(151, 152, 154);
|
||||||
--divider-shadow: 0;
|
}
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
.gutter.gutter-horizontal:hover {
|
||||||
display: block;
|
cursor: col-resize;
|
||||||
}
|
}
|
||||||
|
|
||||||
wr-page-view, wr-coll-replay {
|
wr-page-view, wr-coll-replay {
|
||||||
@@ -585,7 +621,7 @@ class Coll extends LitElement
|
|||||||
replay.setDisablePointer(true);
|
replay.setDisablePointer(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
event.path[0].addEventListener("mouseup", (event) => this.dragEnd(), {once: true});
|
//event.path[0].addEventListener("mouseup", (event) => this.dragEnd(), {once: true});
|
||||||
}
|
}
|
||||||
|
|
||||||
dragEnd() {
|
dragEnd() {
|
||||||
@@ -621,41 +657,32 @@ class Coll extends LitElement
|
|||||||
class="is-paddingless ${isResources ? '' : 'is-hidden'}">
|
class="is-paddingless ${isResources ? '' : 'is-hidden'}">
|
||||||
</wr-coll-resources>
|
</wr-coll-resources>
|
||||||
|
|
||||||
<split-me n="${isSidebar ? 2 : 1}"
|
<wr-page-view
|
||||||
d="horizontal"
|
slot="0"
|
||||||
.sizes=${[0.30, 0.70]}
|
.collInfo="${this.collInfo}"
|
||||||
.minSizes=${[0.10, 0.50]}
|
.active="${isPages}"
|
||||||
@dragstart="${this.dragStart}"
|
.editable="${this.editable}"
|
||||||
class="${isReplay || isPages ? '' : 'is-hidden'}"
|
.isSidebar="${isSidebar}"
|
||||||
>
|
currList="${this.tabData.currList || 0}"
|
||||||
<wr-page-view
|
query="${this.tabData.query || ""}"
|
||||||
slot="0"
|
.url="${this.tabData.url || ""}"
|
||||||
.collInfo="${this.collInfo}"
|
.ts="${this.tabData.ts || ""}"
|
||||||
.active="${isPages}"
|
@coll-tab-nav="${this.onCollTabNav}" id="pages"
|
||||||
.editable="${this.editable}"
|
class="${isSidebar ? 'sidebar' : (isPages ? '' : 'is-hidden')}">
|
||||||
.isSidebar="${isSidebar}"
|
</wr-page-view>
|
||||||
currList="${this.tabData.currList || 0}"
|
|
||||||
query="${this.tabData.query || ""}"
|
|
||||||
.url="${this.tabData.url || ""}"
|
|
||||||
.ts="${this.tabData.ts || ""}"
|
|
||||||
@coll-tab-nav="${this.onCollTabNav}" id="pages"
|
|
||||||
class="${isSidebar ? 'sidebar' : (isPages ? '' : 'is-hidden')}">
|
|
||||||
</wr-page-view>
|
|
||||||
|
|
||||||
${isReplay ? html`
|
${isReplay ? html`
|
||||||
<wr-coll-replay
|
<wr-coll-replay
|
||||||
slot="${isSidebar ? 1 : 0}"
|
slot="${isSidebar ? 1 : 0}"
|
||||||
.collInfo="${this.collInfo}"
|
.collInfo="${this.collInfo}"
|
||||||
sourceUrl="${this.sourceUrl}"
|
sourceUrl="${this.sourceUrl}"
|
||||||
url="${this.tabData.url || ""}"
|
url="${this.tabData.url || ""}"
|
||||||
ts="${this.tabData.ts || ""}"
|
ts="${this.tabData.ts || ""}"
|
||||||
@coll-tab-nav="${this.onCollTabNav}" id="replay"
|
@coll-tab-nav="${this.onCollTabNav}" id="replay"
|
||||||
@replay-loading="${(e) => this.isLoading = e.detail.loading}"
|
@replay-loading="${(e) => this.isLoading = e.detail.loading}"
|
||||||
class="${isReplay ? '' : 'is-hidden'}">
|
class="${isReplay ? '' : 'is-hidden'}">
|
||||||
</wr-coll-replay>
|
</wr-coll-replay>
|
||||||
` : ``}
|
` : ``}
|
||||||
|
|
||||||
</split-me>
|
|
||||||
|
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3530,11 +3530,6 @@ locate-path@^5.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
p-locate "^4.1.0"
|
p-locate "^4.1.0"
|
||||||
|
|
||||||
lodash.throttle@^4.1.1:
|
|
||||||
version "4.1.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
|
|
||||||
integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=
|
|
||||||
|
|
||||||
lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@~4.17.12:
|
lodash@^4.0.0, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@~4.17.12:
|
||||||
version "4.17.15"
|
version "4.17.15"
|
||||||
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
|
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
|
||||||
@@ -5410,13 +5405,6 @@ spdy@^4.0.1:
|
|||||||
select-hose "^2.0.0"
|
select-hose "^2.0.0"
|
||||||
spdy-transport "^3.0.0"
|
spdy-transport "^3.0.0"
|
||||||
|
|
||||||
split-me@^1.2.2:
|
|
||||||
version "1.2.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/split-me/-/split-me-1.2.2.tgz#64c1641f455d61662e7674cca4896f4ee4e72792"
|
|
||||||
integrity sha512-wZF3TUNVn/DGoLfMlg3wFbYmh+vhLDSZ6fcIVcVH6xuf/v9Es4aXcynYvEiyO71zniv4TqsUEhQkwPJ1xnz5FQ==
|
|
||||||
dependencies:
|
|
||||||
lodash.throttle "^4.1.1"
|
|
||||||
|
|
||||||
split-string@^3.0.1, split-string@^3.0.2:
|
split-string@^3.0.1, split-string@^3.0.2:
|
||||||
version "3.1.0"
|
version "3.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
|
resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
|
||||||
@@ -5424,6 +5412,11 @@ split-string@^3.0.1, split-string@^3.0.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
extend-shallow "^3.0.0"
|
extend-shallow "^3.0.0"
|
||||||
|
|
||||||
|
split.js@^1.6.2:
|
||||||
|
version "1.6.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/split.js/-/split.js-1.6.2.tgz#b8c63aeef2b15d84a003ead09e7def6ad166bb40"
|
||||||
|
integrity sha512-72C7zcQePzlmWqPOKkB2Ro0sUmnWSx+qEWXjLJKk6Qp4jAkFRz1hJgJb+ay6ZQyz/Aw9r8N/PZiCEKbPVpFoDQ==
|
||||||
|
|
||||||
sprintf-js@^1.1.2:
|
sprintf-js@^1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
|
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
|
||||||
|
|||||||
Reference in New Issue
Block a user