datafolder 1.0.2 → 1.0.3
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/README.md +9 -3
- package/index.js +2 -3
- package/package.json +3 -2
- package/sample.js +37 -37
- package/scripts/airbnb.js +10 -11
- package/scripts/airbnb2.js +10 -11
- package/scripts/airbnb2_queries.js +11 -11
- package/scripts/airbnb_queries.js +15 -14
- package/scripts/downloadFile.js +29 -31
- package/scripts/express.js +5 -4
- package/scripts/fastify.js +12 -11
- package/scripts/flights.js +8 -8
- package/scripts/flights2.js +9 -9
- package/scripts/flights2_queries.js +19 -16
- package/scripts/flights_queries.js +18 -13
- package/src/QyAcl.js +153 -152
- package/src/QyAclSaver.js +16 -10
- package/src/QyAclSaver_Worker.js +21 -15
- package/src/QyAclWriter.js +23 -13
- package/src/QyBatch.js +298 -263
- package/src/QyBinWriter.js +49 -37
- package/src/QyCD.js +13 -14
- package/src/QyCache.js +177 -140
- package/src/QyCompressor.js +71 -45
- package/src/QyCompressor_Worker.js +17 -9
- package/src/QyDB.js +41 -12
- package/src/QyDefaultOptions.js +13 -10
- package/src/QyDir.js +89 -53
- package/src/QyFetch.js +27 -24
- package/src/QyFile.js +89 -77
- package/src/QyFileContentUtils.js +129 -132
- package/src/QyFileLogger.js +63 -41
- package/src/QyIndex.js +175 -197
- package/src/QyIndexPropTree.js +25 -25
- package/src/QyIntersectNode.js +34 -31
- package/src/QyItem.js +54 -52
- package/src/QyJsonSaver.js +12 -6
- package/src/QyKVData.js +279 -245
- package/src/QyKVDataCleaner.js +12 -6
- package/src/QyKVDataCleaner_Worker.js +77 -59
- package/src/QyKVDataLoader.js +67 -46
- package/src/QyKVDataSaver.js +15 -9
- package/src/QyKVDataSaver_Worker.js +83 -60
- package/src/QyLogFileSaver.js +12 -6
- package/src/QyLogFileSaver_Worker.js +24 -14
- package/src/QyLogger.js +51 -40
- package/src/QyMessageWorker.js +43 -29
- package/src/QyMessager.js +74 -54
- package/src/QyMessager_Run.js +20 -7
- package/src/QyMod.js +15 -11
- package/src/QyOpRunner.js +58 -41
- package/src/QyQueue.js +35 -30
- package/src/QySaver.js +52 -29
- package/src/QySnapshotCompactor.js +15 -9
- package/src/QySnapshotCompactor_Worker.js +131 -110
- package/src/QySnapshotSaver.js +15 -9
- package/src/QySnapshotSaver_Worker.js +125 -110
- package/src/QySnapshots.js +260 -241
- package/src/QyStructure.js +35 -27
- package/src/QyTrigger.js +62 -55
- package/src/QyUnionNode.js +54 -56
- package/src/QyUtils.js +170 -158
- package/src/QyWorker.js +34 -20
- package/src/hackernews.js +63 -71
- package/src/rpc/getFileContent.js +7 -7
- package/src/rpc/getSubItems.js +22 -22
- package/src/simulate.js +85 -80
- package/src/simulate2.js +77 -78
- package/src/soc_pokec.js +44 -32
- package/static/datafolderui/QyStyledElement.js +12 -12
- package/static/datafolderui/QyUIFolderTree.js +20 -20
- package/static/datafolderui/QyUIUtils.js +8 -8
- package/static/datafolderui/explore-tree.js +31 -31
- package/static/datafolderui/folder-tree.js +2 -2
- package/static/datafolderui/hscrpt.js +9 -17
- package/static/datafolderui/json-view.js +3 -5
- package/static/datafolderui/kv-input.js +15 -15
- package/static/datafolderui/list-input.js +17 -17
- package/static/datafolderui/main-page.js +18 -18
- package/static/datafolderui/num-input.js +5 -5
- package/static/datafolderui/querySelectorShadowRoot.js +15 -19
- package/static/datafolderui/resizable-input.js +18 -18
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
|
-
w2layout
|
|
2
|
+
w2layout as s
|
|
3
3
|
} from "../w2ui/src/w2compat.js";
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
|
-
h
|
|
6
|
+
h as i
|
|
7
7
|
} from "./hscrpt.js";
|
|
8
8
|
|
|
9
9
|
import {
|
|
10
|
-
setHeight
|
|
10
|
+
setHeight as r
|
|
11
11
|
} from "./QyUIUtils.js";
|
|
12
12
|
|
|
13
13
|
import "./folder-tree.js";
|
|
14
14
|
|
|
15
15
|
import "./json-view.js";
|
|
16
16
|
|
|
17
|
-
class
|
|
17
|
+
class e extends HTMLElement {
|
|
18
18
|
constructor() {
|
|
19
19
|
super();
|
|
20
20
|
}
|
|
21
21
|
connectedCallback() {
|
|
22
22
|
this.parentDiv = this.parentElement;
|
|
23
|
-
var e = new
|
|
23
|
+
var e = new s({
|
|
24
24
|
box: this.parentDiv,
|
|
25
25
|
name: "layout_" + this.parentDiv.id,
|
|
26
26
|
panels: [ {
|
|
@@ -51,8 +51,8 @@ class QyUIFolderTree extends HTMLElement {
|
|
|
51
51
|
jsonViewDiv: s,
|
|
52
52
|
mainDiv: i
|
|
53
53
|
} = this;
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
r(e, document.body.clientHeight - e.offsetTop), r(t, i.clientHeight - t.offsetTop - 1),
|
|
55
|
+
r(s, i.clientHeight - s.offsetTop - 1), this._updateContentDisplay();
|
|
56
56
|
}
|
|
57
57
|
showMsg(e) {
|
|
58
58
|
this.msgSpan.innerText = e;
|
|
@@ -66,35 +66,35 @@ class QyUIFolderTree extends HTMLElement {
|
|
|
66
66
|
e && (jsonview.destroy(e), this.jsonTree = void 0);
|
|
67
67
|
}
|
|
68
68
|
_createMsgSpan() {
|
|
69
|
-
return this.msgSpan =
|
|
69
|
+
return this.msgSpan = i("span");
|
|
70
70
|
}
|
|
71
71
|
_createJsonViewDiv() {
|
|
72
|
-
return
|
|
72
|
+
return i("json-view", [ this.jsonViewDiv = i("div", {
|
|
73
73
|
style: {
|
|
74
74
|
overflow: "auto"
|
|
75
75
|
}
|
|
76
76
|
}) ]);
|
|
77
77
|
}
|
|
78
78
|
_createPathUL() {
|
|
79
|
-
return this.pathUL =
|
|
79
|
+
return this.pathUL = i("ul", {
|
|
80
80
|
classList: "nav nav-tabs"
|
|
81
81
|
});
|
|
82
82
|
}
|
|
83
83
|
_createSearchIcon() {
|
|
84
|
-
return
|
|
84
|
+
return i("div", {
|
|
85
85
|
classList: "btn-group btn-group-sm",
|
|
86
86
|
role: "group"
|
|
87
|
-
}, [
|
|
87
|
+
}, [ i("button", {
|
|
88
88
|
classList: "btn btn-outline-success",
|
|
89
89
|
type: "submit"
|
|
90
|
-
}, [
|
|
90
|
+
}, [ i("i", {
|
|
91
91
|
classList: "bi bi-search"
|
|
92
92
|
}) ]) ]);
|
|
93
93
|
}
|
|
94
94
|
_createSearchInput() {
|
|
95
|
-
return
|
|
95
|
+
return i("div", {
|
|
96
96
|
classList: "input-group"
|
|
97
|
-
}, [
|
|
97
|
+
}, [ i("input", {
|
|
98
98
|
id: "searchInput_" + this.parentDiv.id,
|
|
99
99
|
type: "text",
|
|
100
100
|
classList: "form-control",
|
|
@@ -104,14 +104,14 @@ class QyUIFolderTree extends HTMLElement {
|
|
|
104
104
|
}) ]);
|
|
105
105
|
}
|
|
106
106
|
_createToolbar() {
|
|
107
|
-
return this.toolbarDiv =
|
|
107
|
+
return this.toolbarDiv = i("div", {
|
|
108
108
|
classList: "btn-toolbar",
|
|
109
109
|
role: "toolbar",
|
|
110
110
|
style: "border-bottom: 1px solid #e4e4e4"
|
|
111
111
|
}, [ this._createSearchInput(), this._createSearchIcon() ]), this.toolbarDiv;
|
|
112
112
|
}
|
|
113
113
|
_createFolderTree() {
|
|
114
|
-
var e =
|
|
114
|
+
var e = i("folder-tree", [ this.folderTreeDiv = i("div", {
|
|
115
115
|
style: {
|
|
116
116
|
overflow: "auto"
|
|
117
117
|
}
|
|
@@ -162,7 +162,7 @@ class QyUIFolderTree extends HTMLElement {
|
|
|
162
162
|
}), r.select(s);
|
|
163
163
|
}
|
|
164
164
|
_createPathTab(e, t) {
|
|
165
|
-
t =
|
|
165
|
+
t = i("span", {
|
|
166
166
|
classList: "nav-link",
|
|
167
167
|
"data-bs-toggle": "tab",
|
|
168
168
|
role: "tab",
|
|
@@ -172,7 +172,7 @@ class QyUIFolderTree extends HTMLElement {
|
|
|
172
172
|
"tab" == this.clickSrc && (this.clickSrc = void 0);
|
|
173
173
|
}
|
|
174
174
|
}, [ t ]);
|
|
175
|
-
this.pathUL.append(
|
|
175
|
+
this.pathUL.append(i("li", {
|
|
176
176
|
classList: "nav-item"
|
|
177
177
|
}, [ t ]));
|
|
178
178
|
}
|
|
@@ -199,5 +199,5 @@ class QyUIFolderTree extends HTMLElement {
|
|
|
199
199
|
}
|
|
200
200
|
|
|
201
201
|
export {
|
|
202
|
-
QyUIFolderTree
|
|
202
|
+
e as QyUIFolderTree
|
|
203
203
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
async function
|
|
1
|
+
async function t(e, n, o) {
|
|
2
2
|
var t = `/rpc/${e}?args=` + encodeURIComponent(JSON.stringify(n));
|
|
3
3
|
let i;
|
|
4
4
|
if (o) {
|
|
@@ -21,22 +21,22 @@ async function rpc(e, n, o) {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
function
|
|
24
|
+
function e(t, e) {
|
|
25
25
|
t.style.height = e + "px";
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
function
|
|
28
|
+
function n(t, e) {
|
|
29
29
|
t.style.width = e + "px";
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
function
|
|
32
|
+
function o(t, e) {
|
|
33
33
|
var n = document.createElement("style");
|
|
34
34
|
n.textContent = e, t.appendChild(n);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
export {
|
|
38
|
-
rpc,
|
|
39
|
-
setHeight,
|
|
40
|
-
setWidth,
|
|
41
|
-
appendStyle
|
|
38
|
+
t as rpc,
|
|
39
|
+
e as setHeight,
|
|
40
|
+
n as setWidth,
|
|
41
|
+
o as appendStyle
|
|
42
42
|
};
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
|
-
rpc
|
|
2
|
+
rpc as t
|
|
3
3
|
} from "./QyUIUtils.js";
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
|
-
QyUIFolderTree
|
|
6
|
+
QyUIFolderTree as e
|
|
7
7
|
} from "./QyUIFolderTree.js";
|
|
8
8
|
|
|
9
9
|
import {
|
|
10
|
-
h
|
|
10
|
+
h as o
|
|
11
11
|
} from "./hscrpt.js";
|
|
12
12
|
|
|
13
|
-
let
|
|
13
|
+
let s = {
|
|
14
14
|
showHiddenFolder: !1
|
|
15
15
|
};
|
|
16
16
|
|
|
17
|
-
customElements.define("explore-tree", class extends
|
|
17
|
+
customElements.define("explore-tree", class extends e {
|
|
18
18
|
constructor() {
|
|
19
19
|
super();
|
|
20
20
|
}
|
|
21
21
|
connectedCallback() {
|
|
22
22
|
super.connectedCallback();
|
|
23
|
-
var e =
|
|
23
|
+
var e = s.showHiddenFolder, t = (this._appendToolbar(e), this.checkTooltip = new bootstrap.Tooltip(this.checkLabel),
|
|
24
24
|
this).folderTree, o = (t.on("fetch", async e => {
|
|
25
25
|
await this._loadSubItems(e), e.resolve(), e == this.selectedElement && this._showSelectedDir(e);
|
|
26
26
|
}), t.asyncFolder({
|
|
@@ -36,16 +36,16 @@ customElements.define("explore-tree", class extends QyUIFolderTree {
|
|
|
36
36
|
this.toolbarDiv.append(this._createShowHiddenCheck(e));
|
|
37
37
|
}
|
|
38
38
|
_createShowHiddenCheck(e) {
|
|
39
|
-
return
|
|
39
|
+
return o("div", {
|
|
40
40
|
classList: "btn-group btn-group-sm ms-1",
|
|
41
41
|
role: "group"
|
|
42
|
-
}, [
|
|
42
|
+
}, [ o("input", {
|
|
43
43
|
type: "checkbox",
|
|
44
44
|
classList: "btn-check",
|
|
45
45
|
id: "showHiddenFolderCheck",
|
|
46
46
|
checked: e,
|
|
47
47
|
onchange: () => this._toggleShowHiddenFolder()
|
|
48
|
-
}), this.checkLabel =
|
|
48
|
+
}), this.checkLabel = o("label", {
|
|
49
49
|
classList: "btn btn-outline-primary",
|
|
50
50
|
"data-bs-toggle": "tooltip",
|
|
51
51
|
"data-bs-placement": "top",
|
|
@@ -53,7 +53,7 @@ customElements.define("explore-tree", class extends QyUIFolderTree {
|
|
|
53
53
|
attrs: {
|
|
54
54
|
for: "showHiddenFolderCheck"
|
|
55
55
|
}
|
|
56
|
-
}, [
|
|
56
|
+
}, [ o("i", {
|
|
57
57
|
classList: "bi bi-window-plus"
|
|
58
58
|
}) ]) ]);
|
|
59
59
|
}
|
|
@@ -69,40 +69,40 @@ customElements.define("explore-tree", class extends QyUIFolderTree {
|
|
|
69
69
|
}
|
|
70
70
|
async _showSelectedFile(e) {
|
|
71
71
|
var t, o = e.dataset, {
|
|
72
|
-
namePath:
|
|
73
|
-
fileContentMap:
|
|
72
|
+
namePath: s,
|
|
73
|
+
fileContentMap: n
|
|
74
74
|
} = this;
|
|
75
|
-
let
|
|
76
|
-
|
|
77
|
-
fileContent:
|
|
75
|
+
let i;
|
|
76
|
+
i = o.fileContentKey ? n[o.fileContentKey] : ({
|
|
77
|
+
fileContent: s,
|
|
78
78
|
fileContentKey: t
|
|
79
|
-
} = await this._getFileContent(
|
|
79
|
+
} = await this._getFileContent(s), n[o.fileContentKey = t] = s), e == this.selectedElement && this._showJson(i);
|
|
80
80
|
}
|
|
81
81
|
async _loadSubItems(t) {
|
|
82
82
|
var o = t.dataset, {
|
|
83
|
-
namePath:
|
|
84
|
-
folderTree:
|
|
85
|
-
rootFolder:
|
|
86
|
-
showHiddenFolder:
|
|
87
|
-
} = this,
|
|
88
|
-
if (
|
|
83
|
+
namePath: s,
|
|
84
|
+
folderTree: n,
|
|
85
|
+
rootFolder: i,
|
|
86
|
+
showHiddenFolder: l
|
|
87
|
+
} = this, s = await this._getSubItems(s);
|
|
88
|
+
if (s) {
|
|
89
89
|
var {
|
|
90
|
-
fullPathHash:
|
|
90
|
+
fullPathHash: s,
|
|
91
91
|
subdirList: d,
|
|
92
92
|
fileList: r
|
|
93
|
-
} =
|
|
94
|
-
|
|
93
|
+
} = s;
|
|
94
|
+
s && (o.fullPathHash = s);
|
|
95
95
|
let e;
|
|
96
96
|
if (0 < d.length) {
|
|
97
|
-
for (var a of d) t ==
|
|
97
|
+
for (var a of d) t == i && "%" == a ? e = !0 : n.asyncFolder({
|
|
98
98
|
name: a
|
|
99
99
|
}, t);
|
|
100
100
|
o.subdirCount = d.length;
|
|
101
101
|
}
|
|
102
|
-
if (e && ((
|
|
102
|
+
if (e && ((s = n.asyncFolder({
|
|
103
103
|
name: "%"
|
|
104
|
-
}, t)).parentElement.hidden = !
|
|
105
|
-
for (var h of r)
|
|
104
|
+
}, t)).parentElement.hidden = !l, this.rootHiddenFolder = s), 0 < r.length) {
|
|
105
|
+
for (var h of r) n.file({
|
|
106
106
|
name: h
|
|
107
107
|
}, t);
|
|
108
108
|
o.fileCount = r.length;
|
|
@@ -110,12 +110,12 @@ customElements.define("explore-tree", class extends QyUIFolderTree {
|
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
_getSubItems(e) {
|
|
113
|
-
return
|
|
113
|
+
return t("getSubItems", {
|
|
114
114
|
dirPath: e
|
|
115
115
|
});
|
|
116
116
|
}
|
|
117
117
|
_getFileContent(e) {
|
|
118
|
-
return
|
|
118
|
+
return t("getFileContent", {
|
|
119
119
|
filePath: e
|
|
120
120
|
});
|
|
121
121
|
}
|
|
@@ -1,25 +1,17 @@
|
|
|
1
|
-
function
|
|
1
|
+
function t(t, e, r) {
|
|
2
2
|
Array.isArray(e) && (r = e, e = {});
|
|
3
|
-
var s, i = document.createElement(t);
|
|
3
|
+
var s, i, o = document.createElement(t);
|
|
4
4
|
for (s in e) {
|
|
5
|
-
var
|
|
6
|
-
if ("style" === s)
|
|
5
|
+
var a = e[s];
|
|
6
|
+
if ("style" === s) o.style = "string" == typeof (i = a) ? i : Object.entries(i).map(([ t, e ]) => t + ":" + e).join(";"); else if ("classList" === s) o.classList = "string" == typeof (i = a) ? i : i.join(" "); else if (s.startsWith("data-") || s.startsWith("aria-")) o.setAttribute(s, a); else if ("attrs" === s) for (var n in a) o.setAttribute(n, a[n]); else if ("on" === s) for (var f in a) o.addEventListener(f, a[f]); else o[s] = a;
|
|
7
7
|
}
|
|
8
|
-
if ("function" == typeof
|
|
9
|
-
var
|
|
10
|
-
for (
|
|
8
|
+
if ("function" == typeof o.compose && o.compose(), r) {
|
|
9
|
+
var l, c = o.shadowRoot || o;
|
|
10
|
+
for (l of r.filter(t => null != t)) c.appendChild("string" == typeof l ? document.createTextNode(l) : l);
|
|
11
11
|
}
|
|
12
|
-
return
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
function toStyleStr(t) {
|
|
16
|
-
return "string" == typeof t ? t : Object.entries(t).map(([ t, e ]) => t + ":" + e).join(";");
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function toClassList(t) {
|
|
20
|
-
return "string" == typeof t ? t : t.join(" ");
|
|
12
|
+
return o;
|
|
21
13
|
}
|
|
22
14
|
|
|
23
15
|
export {
|
|
24
|
-
h
|
|
16
|
+
t as h
|
|
25
17
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
|
-
defineStyledElement
|
|
2
|
+
defineStyledElement as n
|
|
3
3
|
} from "./QyStyledElement.js";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
n("json-view", `
|
|
6
6
|
.json-container {
|
|
7
7
|
font-family: "Open Sans";
|
|
8
8
|
font-size: 14px;
|
|
@@ -69,6 +69,4 @@ let cssText = `
|
|
|
69
69
|
border-width: 5px 0 5px 6px;
|
|
70
70
|
border-color: rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) gray;
|
|
71
71
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
defineStyledElement("json-view", cssText);
|
|
72
|
+
`);
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
|
-
h
|
|
2
|
+
h as n
|
|
3
3
|
} from "./hscrpt.js";
|
|
4
4
|
|
|
5
|
-
let
|
|
5
|
+
let a = new Event("input");
|
|
6
6
|
|
|
7
7
|
customElements.define("kv-input", class extends HTMLElement {
|
|
8
8
|
constructor() {
|
|
9
9
|
super();
|
|
10
10
|
}
|
|
11
11
|
compose() {
|
|
12
|
-
this.classList.add("row", "align-items-center", "p-1"), this.appendChild(this.labelDiv =
|
|
12
|
+
this.classList.add("row", "align-items-center", "p-1"), this.appendChild(this.labelDiv = n("span", {
|
|
13
13
|
classList: "col-form-label col-auto"
|
|
14
14
|
}, [ this.label + ": " ])), Object.assign(this, {
|
|
15
15
|
kvElementList: []
|
|
@@ -32,32 +32,32 @@ customElements.define("kv-input", class extends HTMLElement {
|
|
|
32
32
|
}
|
|
33
33
|
set(t) {
|
|
34
34
|
var e, s, {
|
|
35
|
-
labelDiv:
|
|
36
|
-
kvElementList:
|
|
35
|
+
labelDiv: i,
|
|
36
|
+
kvElementList: l
|
|
37
37
|
} = this;
|
|
38
|
-
0 <
|
|
38
|
+
0 < l.length && (this.replaceChildren(i), l.length = 0);
|
|
39
39
|
for ([ e, s ] of Object.entries(t)) this._createKVElement(e, s.toString());
|
|
40
40
|
return this._createKVElement(), this;
|
|
41
41
|
}
|
|
42
42
|
_createKVElement(t = "", e = "") {
|
|
43
|
-
let s = this.kvElementList,
|
|
44
|
-
var
|
|
45
|
-
|
|
43
|
+
let s = this.kvElementList, i = s.length;
|
|
44
|
+
var l = () => {
|
|
45
|
+
i == s.length - 1 && this._createKVElement(), this.dispatchEvent(a);
|
|
46
46
|
};
|
|
47
|
-
this.append(
|
|
47
|
+
this.append(n("div", {
|
|
48
48
|
style: "display:contents"
|
|
49
|
-
}, [ t =
|
|
49
|
+
}, [ t = n("resizable-input", {
|
|
50
50
|
attrs: {
|
|
51
51
|
value: t
|
|
52
52
|
},
|
|
53
|
-
oninput:
|
|
54
|
-
}), ":" ]),
|
|
53
|
+
oninput: l
|
|
54
|
+
}), ":" ]), n("div", {
|
|
55
55
|
style: "display:contents"
|
|
56
|
-
}, [ e =
|
|
56
|
+
}, [ e = n("resizable-input", {
|
|
57
57
|
attrs: {
|
|
58
58
|
value: e
|
|
59
59
|
},
|
|
60
|
-
oninput:
|
|
60
|
+
oninput: l
|
|
61
61
|
}) ])), s.push({
|
|
62
62
|
keyElement: t,
|
|
63
63
|
valueElement: e
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import {
|
|
2
|
-
h
|
|
2
|
+
h as n
|
|
3
3
|
} from "./hscrpt.js";
|
|
4
4
|
|
|
5
5
|
import "./resizable-input.js";
|
|
6
6
|
|
|
7
|
-
let
|
|
7
|
+
let l = new Event("input");
|
|
8
8
|
|
|
9
9
|
customElements.define("list-input", class extends HTMLElement {
|
|
10
10
|
constructor() {
|
|
11
11
|
super();
|
|
12
12
|
}
|
|
13
13
|
compose() {
|
|
14
|
-
this.classList.add("row", "align-items-center", "p-1"), this.appendChild(this.labelDiv =
|
|
14
|
+
this.classList.add("row", "align-items-center", "p-1"), this.appendChild(this.labelDiv = n("span", {
|
|
15
15
|
classList: "col-form-label col-auto"
|
|
16
16
|
}, [ this.label + ": " ])), Object.assign(this, {
|
|
17
17
|
elementList: []
|
|
@@ -22,31 +22,31 @@ customElements.define("list-input", class extends HTMLElement {
|
|
|
22
22
|
}
|
|
23
23
|
set(t) {
|
|
24
24
|
var e, {
|
|
25
|
-
labelDiv:
|
|
26
|
-
elementList:
|
|
25
|
+
labelDiv: s,
|
|
26
|
+
elementList: i
|
|
27
27
|
} = this;
|
|
28
|
-
0 <
|
|
28
|
+
0 < i.length && (this.replaceChildren(s), i.length = 0);
|
|
29
29
|
for (e of t) this._createInputElement(e.toString());
|
|
30
|
-
|
|
31
|
-
return (0 ==
|
|
30
|
+
s = t.length;
|
|
31
|
+
return (0 == s || '"**"' != t[s - 1] && "'**'" != t[s - 1]) && this._createInputElement(),
|
|
32
32
|
this;
|
|
33
33
|
}
|
|
34
34
|
_createInputElement(t = "") {
|
|
35
|
-
let e = this.elementList,
|
|
36
|
-
this.append(
|
|
35
|
+
let e = this.elementList, s = e.length, i;
|
|
36
|
+
this.append(n("div", {
|
|
37
37
|
style: "display:contents"
|
|
38
|
-
}, [
|
|
38
|
+
}, [ i = n("resizable-input", {
|
|
39
39
|
attrs: {
|
|
40
40
|
value: t
|
|
41
41
|
},
|
|
42
42
|
oninput: () => {
|
|
43
|
-
var t =
|
|
43
|
+
var t = i.text;
|
|
44
44
|
if ("'**'" == t || '"**"' == t) {
|
|
45
|
-
for (let t =
|
|
46
|
-
e.length =
|
|
47
|
-
} else
|
|
48
|
-
this.dispatchEvent(
|
|
45
|
+
for (let t = s + 1; t < e.length; ++t) this.removeChild(e[t].parentElement);
|
|
46
|
+
e.length = s + 1;
|
|
47
|
+
} else s == e.length - 1 && this._createInputElement();
|
|
48
|
+
this.dispatchEvent(l);
|
|
49
49
|
}
|
|
50
|
-
}) ])), e.push(
|
|
50
|
+
}) ])), e.push(i);
|
|
51
51
|
}
|
|
52
52
|
});
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
|
-
h
|
|
2
|
+
h as o
|
|
3
3
|
} from "./hscrpt.js";
|
|
4
4
|
|
|
5
5
|
import "./explore-tree.js";
|
|
6
6
|
|
|
7
7
|
import "./query-editor.js";
|
|
8
8
|
|
|
9
|
-
let
|
|
9
|
+
let d = {
|
|
10
10
|
brandName: "datafolder UI",
|
|
11
11
|
tabNames: [ "Explore", "Query", "RPC", "Triggers" ]
|
|
12
12
|
};
|
|
@@ -19,17 +19,17 @@ customElements.define("main-page", class extends HTMLElement {
|
|
|
19
19
|
var {
|
|
20
20
|
brandName: e,
|
|
21
21
|
tabNames: t
|
|
22
|
-
} =
|
|
22
|
+
} = d;
|
|
23
23
|
this.append(this._createNav(e, t), this._createTabDivs(t));
|
|
24
24
|
let {
|
|
25
25
|
tabButtons: [ a, r ],
|
|
26
|
-
tabDivs: [
|
|
26
|
+
tabDivs: [ s, n ]
|
|
27
27
|
} = this;
|
|
28
28
|
bootstrap.Tab.getOrCreateInstance(a).show();
|
|
29
|
-
e =
|
|
30
|
-
|
|
31
|
-
let i =
|
|
32
|
-
|
|
29
|
+
e = o("explore-tree");
|
|
30
|
+
s.appendChild(e);
|
|
31
|
+
let i = o("query-editor");
|
|
32
|
+
n.appendChild(i), Object.assign(this, {
|
|
33
33
|
exploreTree: e,
|
|
34
34
|
queryEditor: i
|
|
35
35
|
}), i.addEventListener("run", () => r.click());
|
|
@@ -47,40 +47,40 @@ customElements.define("main-page", class extends HTMLElement {
|
|
|
47
47
|
e.onSizeChange(), t.onSizeChange();
|
|
48
48
|
}
|
|
49
49
|
_createNav(e, t) {
|
|
50
|
-
return
|
|
50
|
+
return o("nav", {
|
|
51
51
|
classList: "navbar bg-body-tertiary"
|
|
52
52
|
}, [ this._createNavBar(e, t) ]);
|
|
53
53
|
}
|
|
54
54
|
_createNavBar(e, t) {
|
|
55
|
-
return
|
|
55
|
+
return o("div", {
|
|
56
56
|
classList: "container-fluid"
|
|
57
57
|
}, [ this._createBrand(e), this._createTabButtons(t) ]);
|
|
58
58
|
}
|
|
59
59
|
_createTabButtons(e) {
|
|
60
|
-
return
|
|
60
|
+
return o("ul", {
|
|
61
61
|
classList: "nav nav-pills me-auto mb-2 mb-lg-0"
|
|
62
62
|
}, this.tabButtons = e.map(e => this._createTabButton(e)));
|
|
63
63
|
}
|
|
64
64
|
_createTabDivs(e) {
|
|
65
|
-
return
|
|
65
|
+
return o("div", {
|
|
66
66
|
classList: "tab-content",
|
|
67
67
|
id: "pills-tabContent"
|
|
68
68
|
}, this.tabDivs = e.map(e => this._createTabDiv(e)));
|
|
69
69
|
}
|
|
70
70
|
_createBrand(e) {
|
|
71
|
-
return
|
|
71
|
+
return o("a", {
|
|
72
72
|
classList: "navbar-brand"
|
|
73
73
|
}, [ e ]);
|
|
74
74
|
}
|
|
75
75
|
_createTabDiv(e) {
|
|
76
|
-
return
|
|
76
|
+
return o("div", {
|
|
77
77
|
classList: "tab-pane",
|
|
78
78
|
id: "pills-" + e,
|
|
79
79
|
role: "tabpanel"
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
_createTabButton(e) {
|
|
83
|
-
return
|
|
83
|
+
return o("button", {
|
|
84
84
|
classList: "nav-link",
|
|
85
85
|
id: `pills-${e}-tab`,
|
|
86
86
|
"data-bs-toggle": "pill",
|
|
@@ -89,10 +89,10 @@ customElements.define("main-page", class extends HTMLElement {
|
|
|
89
89
|
role: "tab"
|
|
90
90
|
}, [ e ]);
|
|
91
91
|
}
|
|
92
|
-
}), document.body.append(
|
|
92
|
+
}), document.body.append(o("main-page"));
|
|
93
93
|
|
|
94
94
|
import {
|
|
95
|
-
rpc
|
|
95
|
+
rpc as e
|
|
96
96
|
} from "./QyUIUtils.js";
|
|
97
97
|
|
|
98
|
-
window.rpc =
|
|
98
|
+
window.rpc = e;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import {
|
|
2
|
-
h
|
|
2
|
+
h as t
|
|
3
3
|
} from "./hscrpt.js";
|
|
4
4
|
|
|
5
5
|
import "./resizable-input.js";
|
|
6
6
|
|
|
7
|
-
let
|
|
7
|
+
let e = new Event("input");
|
|
8
8
|
|
|
9
9
|
customElements.define("num-input", class extends HTMLElement {
|
|
10
10
|
constructor() {
|
|
11
11
|
super();
|
|
12
12
|
}
|
|
13
13
|
compose() {
|
|
14
|
-
this.style.display = "contents", this.append(
|
|
14
|
+
this.style.display = "contents", this.append(t("span", {
|
|
15
15
|
classList: "col-form-label col-auto p-2"
|
|
16
|
-
}, [ this.label + ": " ]), this.resizableInput =
|
|
17
|
-
oninput: () => this.dispatchEvent(
|
|
16
|
+
}, [ this.label + ": " ]), this.resizableInput = t("resizable-input", {
|
|
17
|
+
oninput: () => this.dispatchEvent(e)
|
|
18
18
|
}));
|
|
19
19
|
}
|
|
20
20
|
get text() {
|
|
@@ -1,24 +1,20 @@
|
|
|
1
|
-
function*
|
|
2
|
-
for (var
|
|
3
|
-
var
|
|
4
|
-
|
|
1
|
+
function* t(e) {
|
|
2
|
+
for (var r of e.children) {
|
|
3
|
+
var l = r.shadowRoot;
|
|
4
|
+
l ? yield l : yield* t(r);
|
|
5
5
|
}
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
function querySelectorShadowRoot(e, o) {
|
|
9
|
-
let t = e.querySelector(o);
|
|
10
|
-
if (t) return t;
|
|
11
|
-
var l = getShadowRootChild(e);
|
|
12
|
-
for (let e = l.next().value; e; e = l.next().value) if (t = e.querySelector(o)) return t;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
function querySelectorAllShadowRoot(e, o) {
|
|
16
|
-
var t = [ ...e.querySelectorAll(o) ], l = getShadowRootChild(e);
|
|
17
|
-
for (let e = l.next().value; e; e = l.next().value) t.push(...e.querySelectorAll(o));
|
|
18
|
-
return t;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
8
|
Object.assign(globalThis, {
|
|
22
|
-
querySelectorShadowRoot:
|
|
23
|
-
|
|
9
|
+
querySelectorShadowRoot: function(e, r) {
|
|
10
|
+
let l = e.querySelector(r);
|
|
11
|
+
if (l) return l;
|
|
12
|
+
var o = t(e);
|
|
13
|
+
for (let e = o.next().value; e; e = o.next().value) if (l = e.querySelector(r)) return l;
|
|
14
|
+
},
|
|
15
|
+
querySelectorAllShadowRoot: function(e, r) {
|
|
16
|
+
var l = [ ...e.querySelectorAll(r) ], o = t(e);
|
|
17
|
+
for (let e = o.next().value; e; e = o.next().value) l.push(...e.querySelectorAll(r));
|
|
18
|
+
return l;
|
|
19
|
+
}
|
|
24
20
|
});
|