datafolder 1.0.6 → 1.0.7

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.
Files changed (57) hide show
  1. package/README.md +3 -1
  2. package/internal.md +119 -0
  3. package/package.json +2 -2
  4. package/scripts/convertBinFiles.js +49 -0
  5. package/scripts/fastify.js +2 -2
  6. package/src/QyCD.js +19 -10
  7. package/src/QyCache.js +6 -0
  8. package/src/QyFetch.js +1 -1
  9. package/src/QyKVData.js +21 -12
  10. package/src/QyKVDataSaver_Worker.js +7 -7
  11. package/src/QySnapshotCompactor_Worker.js +19 -18
  12. package/src/QySnapshotSaver_Worker.js +54 -52
  13. package/src/QySnapshots.js +72 -64
  14. package/src/rpc/getTriggerFiles.js +1 -0
  15. package/src/soc_pokec.js +7 -7
  16. package/static/datafolderui/QyStyledElement.js +6 -15
  17. package/static/datafolderui/QyUIFolderTree.js +71 -62
  18. package/static/datafolderui/QyUIFolderViewer.js +210 -0
  19. package/static/datafolderui/QyUIUtils.js +1 -1
  20. package/static/datafolderui/display-tree.js +18 -57
  21. package/static/datafolderui/explore-tree.js +10 -10
  22. package/static/datafolderui/folder-tree.js +71 -2
  23. package/static/datafolderui/json-view.js +7 -3
  24. package/static/datafolderui/main-page.js +22 -19
  25. package/static/datafolderui/query-editor.js +1 -1
  26. package/static/datafolderui/trigger-editor.js +30 -0
  27. package/data/sampleDataFolder/qykv/history/acl/1_acl.txt +0 -1
  28. package/data/sampleDataFolder/qykv/history/acl/2_acl.txt +0 -1
  29. package/data/sampleDataFolder/qykv/history/acl/3_acl.txt +0 -1
  30. package/data/sampleDataFolder/qykv/history/acl/4_acl.txt +0 -1
  31. package/data/sampleDataFolder/qykv/history/acl/5_acl.txt +0 -1
  32. package/data/sampleDataFolder/qykv/snapshot/1/1_pM.txt +0 -0
  33. package/data/sampleDataFolder/qykv/snapshot/1/1_prefixPM.txt +0 -0
  34. package/data/sampleDataFolder/qykv/snapshot/1/1_vL.txt +0 -10
  35. package/data/sampleDataFolder/qykv/snapshot/2/1_pM.txt +0 -0
  36. package/data/sampleDataFolder/qykv/snapshot/2/1_prefixPM.txt +0 -0
  37. package/data/sampleDataFolder/qykv/snapshot/2/1_vL.txt +0 -1
  38. package/data/sampleDataFolder/qykv/snapshot/3/1_pM.txt +0 -0
  39. package/data/sampleDataFolder/qykv/snapshot/3/1_prefixPM.txt +0 -0
  40. package/data/sampleDataFolder/qykv/snapshot/3/1_vL.txt +0 -1
  41. package/data/sampleDataFolder/qykv/snapshot/4/1_pM.txt +0 -0
  42. package/data/sampleDataFolder/qykv/snapshot/4/1_prefixPM.txt +0 -0
  43. package/data/sampleDataFolder/qykv/snapshot/4/1_vL.txt +0 -1
  44. package/data/sampleDataFolder/qykv/snapshot/4/2_pM.txt +0 -0
  45. package/data/sampleDataFolder/qykv/snapshot/4/2_prefixPM.txt +0 -0
  46. package/data/sampleDataFolder/qykv/snapshot/4/2_vL.txt +0 -9
  47. package/data/sampleDataFolder/qykv/snapshot/5/1_pM.txt +0 -0
  48. package/data/sampleDataFolder/qykv/snapshot/5/1_prefixPM.txt +0 -0
  49. package/data/sampleDataFolder/qykv/snapshot/5/1_vL.txt +0 -55
  50. package/data/sampleDataFolder/qykv/snapshot/info/1.json +0 -1
  51. package/data/sampleDataFolder/qykv/snapshot/info/2.json +0 -1
  52. package/data/sampleDataFolder/qykv/snapshot/info/3.json +0 -1
  53. package/data/sampleDataFolder/qykv/snapshot/info/4.json +0 -1
  54. package/data/sampleDataFolder/qykv/snapshot/info/5.json +0 -1
  55. package/data/sampleDataFolder/qylog/2026/02/15/08/change.txt +0 -58
  56. package/data/sampleDataFolder/qylog/2026/02/15/08/stderr.txt +0 -11
  57. package/data/sampleDataFolder/qylog/2026/02/15/08/stdout.txt +0 -36
@@ -7,8 +7,8 @@ import {
7
7
  } from "./hscrpt.js";
8
8
 
9
9
  import {
10
- setHeight as o,
11
- isNotNullObj as r
10
+ setHeight as r,
11
+ isNotNullObj as o
12
12
  } from "./QyUIUtils.js";
13
13
 
14
14
  import "./folder-tree.js";
@@ -23,7 +23,7 @@ class e extends HTMLElement {
23
23
  }
24
24
  connectedCallback() {
25
25
  this.parentDiv = this.parentElement;
26
- var r, e, t = new s({
26
+ var e, t = new s({
27
27
  box: this.parentDiv,
28
28
  name: "layout_" + this.parentDiv.id,
29
29
  panels: [ {
@@ -57,63 +57,67 @@ class e extends HTMLElement {
57
57
  type: "submit"
58
58
  }, [ c("i", {
59
59
  classList: "bi bi-search"
60
- }) ]) ]) ]), (i = c("folder-tree", [ (r = this).folderTreeDiv = c("div", {
61
- style: {
62
- overflow: "auto"
63
- }
64
- }) ]), r.folderTree = new Tree(r.folderTreeDiv, {
65
- navigate: !0
66
- }), r.folderTree.on("select", e => {
67
- if (!r.clickSrc) {
68
- r.clickSrc = "folderTree";
69
- var t = r, i = e, {
70
- folderTree: s,
71
- selectedHierarchy: o
72
- } = t, s = s.hierarchy(i).reverse();
73
- t.namePath = s.map(e => e.textContent), Object.assign(o, s);
74
- {
75
- var n = t;
76
- let {
77
- namePath: i,
78
- pathUL: e
79
- } = n, s = e.children, o = i.length, r = 0 < o;
80
- for (let t = 0; t < o; ++t) {
81
- if (t >= s.length) {
82
- for (let e = t; e < o; ++e) ((r, n, e) => {
83
- e = c("span", {
84
- classList: "nav-link",
85
- "data-bs-toggle": "tab",
86
- role: "tab",
87
- style: "cursor:pointer",
88
- onclick: () => {
89
- r.clickSrc || (r.clickSrc = "tab");
90
- var t = n, {
91
- clickSrc: e,
92
- rootFolder: i,
93
- selectedHierarchy: s,
94
- folderTree: o
95
- } = e = r;
96
- i.parentElement.open = !0;
97
- for (let e = 0; e < t; ++e) s[e].parentElement.open = !0;
98
- i = s[t], "tab" == e && i.scrollIntoView({
99
- block: "center"
100
- }), o.select(i), "tab" == r.clickSrc && (r.clickSrc = void 0);
101
- }
102
- }, [ e ]), r.pathUL.append(c("li", {
103
- classList: "nav-item"
104
- }, [ e ]));
105
- })(n, e, i[e]);
106
- break;
60
+ }) ]) ]) ]), (o => {
61
+ var e = c("folder-tree"), {
62
+ folderTreeDiv: t,
63
+ folderTree: i
64
+ } = e;
65
+ return i.on("select", e => {
66
+ if (!o.clickSrc) {
67
+ o.clickSrc = "folderTree";
68
+ var t = o, i = e, {
69
+ folderTree: s,
70
+ selectedHierarchy: r
71
+ } = t, s = s.hierarchy(i).reverse();
72
+ t.namePath = s.map(e => e.textContent), Object.assign(r, s);
73
+ {
74
+ var n = t;
75
+ let {
76
+ namePath: i,
77
+ pathUL: e
78
+ } = n, s = e.children, r = i.length, o = 0 < r;
79
+ for (let t = 0; t < r; ++t) {
80
+ if (t >= s.length) {
81
+ for (let e = t; e < r; ++e) ((o, n, e) => {
82
+ e = c("span", {
83
+ classList: "nav-link",
84
+ "data-bs-toggle": "tab",
85
+ role: "tab",
86
+ style: "cursor:pointer",
87
+ onclick: () => {
88
+ o.clickSrc || (o.clickSrc = "tab");
89
+ var t = n, {
90
+ clickSrc: e,
91
+ rootFolder: i,
92
+ selectedHierarchy: s,
93
+ folderTree: r
94
+ } = e = o;
95
+ i && (i.parentElement.open = !0);
96
+ for (let e = 0; e < t; ++e) s[e].parentElement.open = !0;
97
+ i = s[t], "tab" == e && i.scrollIntoView({
98
+ block: "center"
99
+ }), r.select(i), "tab" == o.clickSrc && (o.clickSrc = void 0);
100
+ }
101
+ }, [ e ]), o.pathUL.append(c("li", {
102
+ classList: "nav-item"
103
+ }, [ e ]));
104
+ })(n, e, i[e]);
105
+ break;
106
+ }
107
+ var l = s[t].children[0], a = i[t];
108
+ l.innerText != a && (l.innerText = a, o = !1);
107
109
  }
108
- var l = s[t].children[0], a = i[t];
109
- l.innerText != a && (l.innerText = a, r = !1);
110
+ if (!o) for (;r < s.length; ) e.removeChild(e.lastElementChild);
111
+ 0 < r && s[r - 1].children[0].click();
110
112
  }
111
- if (!r) for (;o < s.length; ) e.removeChild(e.lastElementChild);
112
- 0 < o && s[o - 1].children[0].click();
113
113
  }
114
- }
115
- r.selectedElement != e && (r.selectedElement = e, d(r)), "folderTree" == r.clickSrc && (r.clickSrc = void 0);
116
- }), i)), t.el("main"));
114
+ o.selectedElement != e && (o.selectedElement = e, d(o)), "folderTree" == o.clickSrc && (o.clickSrc = void 0);
115
+ }), Object.assign(o, {
116
+ folderTree: i,
117
+ folderTreeDiv: t,
118
+ folder_tree: e
119
+ }), e;
120
+ })(this)), t.el("main"));
117
121
  i.append(this.pathUL = c("ul", {
118
122
  classList: "nav nav-tabs"
119
123
  }), this.contentDiv = c("div", [ (e = this).jsonView = c("json-view", [ e.jsonViewDiv = c("div", {
@@ -124,10 +128,15 @@ class e extends HTMLElement {
124
128
  layout: t,
125
129
  mainDiv: i,
126
130
  selectedHierarchy: {},
127
- fileContentMap: {},
128
131
  namePath: []
129
132
  }), t.on("resize:done", () => this.onSizeChange());
130
133
  }
134
+ get fileContentMap() {
135
+ return this.folder_tree.fileContentMap;
136
+ }
137
+ set fileContentMap(e) {
138
+ this.folder_tree.fileContentMap = e;
139
+ }
131
140
  onSizeChange() {
132
141
  var {
133
142
  parentDiv: e,
@@ -135,8 +144,8 @@ class e extends HTMLElement {
135
144
  jsonViewDiv: i,
136
145
  mainDiv: s
137
146
  } = this;
138
- o(e, document.body.clientHeight - e.offsetTop), o(t, s.clientHeight - t.offsetTop - 1),
139
- o(i, s.clientHeight - i.offsetTop - 1), d(this);
147
+ r(e, document.body.clientHeight - e.offsetTop), r(t, s.clientHeight - t.offsetTop - 1),
148
+ r(i, s.clientHeight - i.offsetTop - 1), d(this);
140
149
  }
141
150
  showMsg(e) {
142
151
  this.msgSpan.innerText = e;
@@ -146,13 +155,13 @@ class e extends HTMLElement {
146
155
  e && (jsonview.destroy(e), this.jsonTree = void 0);
147
156
  }
148
157
  showSelectedFile(e) {
149
- this.showContent(this.fileContentMap[e.dataset.fileContentKey]);
158
+ this.showContent(this.folder_tree.fileContentMap[e.dataset.fileContentKey]);
150
159
  }
151
160
  showSelectedDir(e) {
152
161
  "false" != e.parentElement.dataset.loaded ? this.showContent(e.dataset) : this.showContent("not loaded");
153
162
  }
154
163
  showContent(t) {
155
- if (r(t)) {
164
+ if (o(t)) {
156
165
  var e = this.codemirror, e = (e && (e.hidden = !0), this.jsonView.hidden = !1,
157
166
  this), i = t;
158
167
  e.deleteJsonTree(), i = jsonview.create(i), jsonview.render(i, e.jsonViewDiv),
@@ -0,0 +1,210 @@
1
+ import {
2
+ w2layout as r
3
+ } from "../w2ui/src/w2compat.js";
4
+
5
+ import {
6
+ h as d
7
+ } from "./hscrpt.js";
8
+
9
+ import {
10
+ setHeight as o,
11
+ isNotNullObj as s
12
+ } from "./QyUIUtils.js";
13
+
14
+ import "./folder-tree.js";
15
+
16
+ import "./json-view.js";
17
+
18
+ import "./code-mirror.js";
19
+
20
+ let n = 0;
21
+
22
+ class e extends HTMLElement {
23
+ constructor() {
24
+ super();
25
+ }
26
+ connectedCallback() {
27
+ this.idCount = ++n, this.parentDiv = this.parentElement;
28
+ var e, t = new r({
29
+ box: this.parentDiv,
30
+ name: "layout_folderviewer_" + this.idCount,
31
+ panels: [ {
32
+ type: "left",
33
+ size: 300,
34
+ resizable: !0
35
+ }, {
36
+ type: "main"
37
+ }, {
38
+ type: "bottom",
39
+ size: 10
40
+ } ]
41
+ }), i = (t.el("left").append((i = this).toolbarDiv = d("div", {
42
+ classList: "btn-toolbar",
43
+ role: "toolbar",
44
+ style: "border-bottom: 1px solid #e4e4e4"
45
+ }, [ (e => d("div", {
46
+ classList: "input-group"
47
+ }, [ d("input", {
48
+ id: "searchInput_" + e.idCount,
49
+ type: "text",
50
+ classList: "form-control",
51
+ style: {
52
+ width: "150px"
53
+ }
54
+ }) ]))(i), d("div", {
55
+ classList: "btn-group btn-group-sm",
56
+ role: "group"
57
+ }, [ d("button", {
58
+ classList: "btn btn-outline-success",
59
+ type: "submit"
60
+ }, [ d("i", {
61
+ classList: "bi bi-search"
62
+ }) ]) ]) ]), (s => {
63
+ var e = d("folder-tree"), {
64
+ folderTreeDiv: t,
65
+ folderTree: i
66
+ } = e;
67
+ return i.on("select", e => {
68
+ if (!s.clickSrc) {
69
+ s.clickSrc = "folderTree";
70
+ var t = s, i = e, {
71
+ folderTree: r,
72
+ selectedHierarchy: o
73
+ } = t, r = r.hierarchy(i).reverse();
74
+ t.namePath = r.map(e => e.textContent), Object.assign(o, r);
75
+ {
76
+ var n = t;
77
+ let {
78
+ namePath: i,
79
+ pathUL: e
80
+ } = n, r = e.children, o = i.length, s = 0 < o;
81
+ for (let t = 0; t < o; ++t) {
82
+ if (t >= r.length) {
83
+ for (let e = t; e < o; ++e) ((s, n, e) => {
84
+ e = d("span", {
85
+ classList: "nav-link",
86
+ "data-bs-toggle": "tab",
87
+ role: "tab",
88
+ style: "cursor:pointer",
89
+ onclick: () => {
90
+ s.clickSrc || (s.clickSrc = "tab");
91
+ var t = n, {
92
+ clickSrc: e,
93
+ rootFolder: i,
94
+ selectedHierarchy: r,
95
+ folderTree: o
96
+ } = e = s;
97
+ i.parentElement.open = !0;
98
+ for (let e = 0; e < t; ++e) r[e].parentElement.open = !0;
99
+ i = r[t], "tab" == e && i.scrollIntoView({
100
+ block: "center"
101
+ }), o.select(i), "tab" == s.clickSrc && (s.clickSrc = void 0);
102
+ }
103
+ }, [ e ]), s.pathUL.append(d("li", {
104
+ classList: "nav-item"
105
+ }, [ e ]));
106
+ })(n, e, i[e]);
107
+ break;
108
+ }
109
+ var l = r[t].children[0], a = i[t];
110
+ l.innerText != a && (l.innerText = a, s = !1);
111
+ }
112
+ if (!s) for (;o < r.length; ) e.removeChild(e.lastElementChild);
113
+ 0 < o && r[o - 1].children[0].click();
114
+ }
115
+ }
116
+ s.selectedElement != e && (s.selectedElement = e, c(s)), "folderTree" == s.clickSrc && (s.clickSrc = void 0);
117
+ }), Object.assign(s, {
118
+ folderTree: i,
119
+ folderTreeDiv: t,
120
+ folder_tree: e
121
+ }), e;
122
+ })(this)), t.el("main"));
123
+ i.append(this.pathUL = d("ul", {
124
+ classList: "nav nav-tabs"
125
+ }), this.contentDiv = d("div", [ (e = this).jsonView = d("json-view", [ e.jsonViewDiv = d("div", {
126
+ style: {
127
+ overflow: "auto"
128
+ }
129
+ }) ]) ])), t.el("bottom").append(this.msgSpan = d("span")), Object.assign(this, {
130
+ layout: t,
131
+ mainDiv: i,
132
+ selectedHierarchy: {},
133
+ namePath: []
134
+ }), t.on("resize:done", () => this.onSizeChange());
135
+ }
136
+ get fileContentMap() {
137
+ return this.folder_tree.fileContentMap;
138
+ }
139
+ set fileContentMap(e) {
140
+ this.folder_tree.fileContentMap = e;
141
+ }
142
+ onSizeChange() {
143
+ var {
144
+ parentDiv: e,
145
+ folderTreeDiv: t,
146
+ jsonViewDiv: i,
147
+ mainDiv: r
148
+ } = this;
149
+ o(e, document.body.clientHeight - e.offsetTop), o(t, r.clientHeight - t.offsetTop - 1),
150
+ o(i, r.clientHeight - i.offsetTop - 1), c(this);
151
+ }
152
+ showMsg(e) {
153
+ this.msgSpan.innerText = e;
154
+ }
155
+ deleteJsonTree() {
156
+ var e = this.jsonTree;
157
+ e && (jsonview.destroy(e), this.jsonTree = void 0);
158
+ }
159
+ showSelectedFile(r) {
160
+ r = this.folder_tree.fileContentMap[r.dataset.fileContentKey];
161
+ if (this.isTriggerEditor) {
162
+ var o = r;
163
+ let {
164
+ codemirror: e,
165
+ codemirror2: t,
166
+ jsonView: i
167
+ } = s = this;
168
+ i && (i.hidden = !0), e ? e.hidden = !1 : s.contentDiv.append(e = s.codemirror = d("code-mirror")),
169
+ t ? t.hidden = !1 : s.contentDiv.append(t = s.codemirror2 = d("code-mirror"));
170
+ var {
171
+ fileNamePath: s,
172
+ propNamePathList: o,
173
+ modCode: n
174
+ } = o;
175
+ e.text = JSON.stringify({
176
+ fileNamePath: s,
177
+ propNamePathList: o
178
+ }), t.text = n;
179
+ } else this.showContent(r);
180
+ }
181
+ showSelectedDir(e) {
182
+ "false" != e.parentElement.dataset.loaded ? this.showContent(e.dataset) : this.showContent("not loaded");
183
+ }
184
+ showContent(t) {
185
+ var e = this.codemirror2;
186
+ if (e && (e.hidden = !0), s(t)) {
187
+ var e = this.codemirror, e = (e && (e.hidden = !0), this.jsonView.hidden = !1,
188
+ this), i = t;
189
+ e.deleteJsonTree(), i = jsonview.create(i), jsonview.render(i, e.jsonViewDiv),
190
+ jsonview.expand(i), e.jsonTree = i;
191
+ } else {
192
+ let e = this.codemirror;
193
+ e ? e.hidden = !1 : this.contentDiv.append(e = this.codemirror = d("code-mirror", {
194
+ readOnly: !0
195
+ })), this.jsonView.hidden = !0, e.text = t;
196
+ }
197
+ }
198
+ resetPathTabs() {
199
+ this.pathUL.replaceChildren();
200
+ }
201
+ }
202
+
203
+ function c(e) {
204
+ var t, i = e.selectedElement;
205
+ i ? (t = e, "file" == (i = i).dataset.type ? t.showSelectedFile(i) : t.showSelectedDir(i)) : e.deleteJsonTree();
206
+ }
207
+
208
+ export {
209
+ e as QyUIFolderViewer
210
+ };
@@ -1,5 +1,5 @@
1
1
  async function t(e, n, o) {
2
- var t = `/rpc/${e}?args=` + encodeURIComponent(JSON.stringify(n));
2
+ var t = "/rpc/" + e + (n ? "?args=" + encodeURIComponent(JSON.stringify(n)) : "");
3
3
  let i;
4
4
  if (o) {
5
5
  let t;
@@ -3,72 +3,33 @@ import {
3
3
  } from "./hscrpt.js";
4
4
 
5
5
  import {
6
- QyUIFolderTree as e
7
- } from "./QyUIFolderTree.js";
6
+ QyUIFolderViewer as e
7
+ } from "./QyUIFolderViewer.js";
8
8
 
9
9
  customElements.define("display-tree", class extends e {
10
10
  constructor() {
11
11
  super();
12
12
  }
13
13
  connectedCallback() {
14
- var e = (super.connectedCallback(), (e = this).toolbarDiv.append((e => e.countSpan = t("span", {
14
+ var e;
15
+ super.connectedCallback(), (e = this).toolbarDiv.append((e => e.countSpan = t("span", {
15
16
  classList: "btn btn-success ms-auto"
16
- }, [ "0" ]))(e)), this).folderTree;
17
- this.rootFolder = e.folder({
18
- name: "/",
19
- open: !0
20
- }), e.select(this.rootFolder);
17
+ }, [ "0" ]))(e));
21
18
  }
22
19
  showTree(e, t) {
23
- var o = this, {
20
+ (r = this).deleteJsonTree();
21
+ var {
22
+ countSpan: r,
23
+ msgSpan: s
24
+ } = r, {
25
+ countSpan: r,
26
+ msgSpan: s,
27
+ folder_tree: o
28
+ } = (r.innerText = "0", s.innerText = "", this.resetPathTabs(), this), {
24
29
  rootFolder: r,
25
- countSpan: s,
26
- msgSpan: n
27
- } = (o.deleteJsonTree(), o);
28
- s.innerText = "0", n.innerText = "", r && (r.parentElement.remove(), Object.assign(o, {
29
- rootFolder: void 0,
30
- fileContentMap: {}
31
- })), this.resetPathTabs(), this.countSpan.innerText = t, this.msgSpan.innerText = "Total " + t,
32
- this.rootFolder = this.folderTree.folder({
33
- name: "/",
34
- open: !0
35
- }), function o(r, s, e) {
36
- let {
37
- folderTree: n,
38
- fileContentMap: l
39
- } = r;
40
- let a = s.dataset;
41
- let {
42
- fullPathHash: t,
43
- subdirMap: i,
44
- fileMap: d
45
- } = e;
46
- t && (a.fullPathHash = t);
47
- if (i) {
48
- let e = Object.keys(i).sort();
49
- for (var f of e) {
50
- let e = n.folder({
51
- name: f
52
- }, s);
53
- o(r, e, i[f]);
54
- }
55
- let t = e.length;
56
- 0 < t && (a.subdirCount = t);
57
- }
58
- if (d) {
59
- let e = Object.keys(d).sort();
60
- for (var h of e) {
61
- let {
62
- fileContent: e,
63
- fileContentKey: t
64
- } = d[h], o = n.file({
65
- name: h
66
- }, s);
67
- o.dataset.fileContentKey = t, l[t] = e;
68
- }
69
- let t = e.length;
70
- 0 < t && (a.fileCount = t);
71
- }
72
- }(this, this.rootFolder, e), this.folderTree.select(this.rootFolder), this.tree = e;
30
+ folderTree: s
31
+ } = (r.innerText = t, s.innerText = "Total " + t, o.constructFolderTree(e),
32
+ o);
33
+ this.rootFolder = o.rootFolder, s.select(r);
73
34
  }
74
35
  });
@@ -3,8 +3,8 @@ import {
3
3
  } from "./QyUIUtils.js";
4
4
 
5
5
  import {
6
- QyUIFolderTree as e
7
- } from "./QyUIFolderTree.js";
6
+ QyUIFolderViewer as e
7
+ } from "./QyUIFolderViewer.js";
8
8
 
9
9
  import {
10
10
  h as l
@@ -52,8 +52,8 @@ customElements.define("explore-tree", class extends e {
52
52
  this).folderTree, o = (t.on("fetch", async e => {
53
53
  var t = this, o = e, l = o.dataset, {
54
54
  namePath: n,
55
- folderTree: s,
56
- rootFolder: i,
55
+ folderTree: i,
56
+ rootFolder: s,
57
57
  showHiddenFolder: d
58
58
  } = t;
59
59
  if (n = await (e => f("getSubItems", {
@@ -67,15 +67,15 @@ customElements.define("explore-tree", class extends e {
67
67
  n && (l.fullPathHash = n);
68
68
  let e;
69
69
  if (0 < r.length) {
70
- for (var h of r) o == i && "%" == h ? e = !0 : s.asyncFolder({
70
+ for (var h of r) o == s && "%" == h ? e = !0 : i.asyncFolder({
71
71
  name: h
72
72
  }, o);
73
73
  l.subdirCount = r.length;
74
74
  }
75
- if (e && ((n = s.asyncFolder({
75
+ if (e && ((n = i.asyncFolder({
76
76
  name: "%"
77
77
  }, o)).parentElement.hidden = !d, t.rootHiddenFolder = n), 0 < a.length) {
78
- for (var c of a) s.file({
78
+ for (var c of a) i.file({
79
79
  name: c
80
80
  }, o);
81
81
  l.fileCount = a.length;
@@ -96,12 +96,12 @@ customElements.define("explore-tree", class extends e {
96
96
  namePath: l,
97
97
  fileContentMap: n
98
98
  } = this;
99
- let s;
100
- s = o.fileContentKey ? n[o.fileContentKey] : ({
99
+ let i;
100
+ i = o.fileContentKey ? n[o.fileContentKey] : ({
101
101
  fileContent: l,
102
102
  fileContentKey: t
103
103
  } = await f("getFileContent", {
104
104
  filePath: l
105
- }), n[o.fileContentKey = t] = l), e == this.selectedElement && this.showContent(s);
105
+ }), n[o.fileContentKey = t] = l), e == this.selectedElement && this.showContent(i);
106
106
  }
107
107
  });
@@ -1,5 +1,74 @@
1
1
  import {
2
- defineStyledElement as e
2
+ QyStyledElement as e
3
3
  } from "./QyStyledElement.js";
4
4
 
5
- e("folder-tree", [ "../tree.js/tree.css" ]);
5
+ import {
6
+ h as t
7
+ } from "./hscrpt.js";
8
+
9
+ customElements.define("folder-tree", class extends e {
10
+ constructor() {
11
+ super([ "../tree.js/tree.css" ]);
12
+ }
13
+ compose() {
14
+ var e = t("div", {
15
+ style: {
16
+ overflow: "auto"
17
+ }
18
+ });
19
+ this.shadowRoot.append(e), Object.assign(this, {
20
+ folderTreeDiv: e,
21
+ folderTree: new Tree(e, {
22
+ navigate: !0
23
+ }),
24
+ fileContentMap: {}
25
+ });
26
+ }
27
+ constructFolderTree(e) {
28
+ (t = (o = this).rootFolder) && (t.parentElement.remove(), Object.assign(o, {
29
+ rootFolder: void 0,
30
+ fileContentMap: {}
31
+ }));
32
+ var {
33
+ folderTree: t,
34
+ fileContentMap: o
35
+ } = this, r = this.rootFolder = t.folder({
36
+ name: "/",
37
+ open: !0
38
+ });
39
+ e && !function o(r, l, s, e) {
40
+ let n = s.dataset;
41
+ let {
42
+ fullPathHash: t,
43
+ subdirMap: a,
44
+ fileMap: f
45
+ } = e;
46
+ t && (n.fullPathHash = t);
47
+ if (a) {
48
+ let e = Object.keys(a).sort();
49
+ for (var i of e) {
50
+ let e = r.folder({
51
+ name: i
52
+ }, s);
53
+ o(r, l, e, a[i]);
54
+ }
55
+ let t = e.length;
56
+ 0 < t && (n.subdirCount = t);
57
+ }
58
+ if (f) {
59
+ let e = Object.keys(f).sort();
60
+ for (var d of e) {
61
+ let {
62
+ fileContent: e,
63
+ fileContentKey: t
64
+ } = f[d], o = r.file({
65
+ name: d
66
+ }, s);
67
+ o.dataset.fileContentKey = t, l[t] = e;
68
+ }
69
+ let t = e.length;
70
+ 0 < t && (n.fileCount = t);
71
+ }
72
+ }(t, o, r, e);
73
+ }
74
+ });
@@ -1,8 +1,10 @@
1
1
  import {
2
- defineStyledElement as n
2
+ QyStyledElement as n
3
3
  } from "./QyStyledElement.js";
4
4
 
5
- n("json-view", `
5
+ customElements.define("json-view", class extends n {
6
+ constructor() {
7
+ super(`
6
8
  .json-container {
7
9
  font-family: "Open Sans";
8
10
  font-size: 14px;
@@ -69,4 +71,6 @@ n("json-view", `
69
71
  border-width: 5px 0 5px 6px;
70
72
  border-color: rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) gray;
71
73
  }
72
- `);
74
+ `);
75
+ }
76
+ });