datafolder 1.0.5 → 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 (49) hide show
  1. package/README.md +5 -0
  2. package/internal.md +119 -0
  3. package/package.json +2 -2
  4. package/sample.js +19 -19
  5. package/scripts/convertBinFiles.js +49 -0
  6. package/scripts/fastify.js +2 -2
  7. package/src/QyAcl.js +44 -44
  8. package/src/QyAclSaver_Worker.js +2 -2
  9. package/src/QyAclWriter.js +1 -1
  10. package/src/QyBatch.js +1 -3
  11. package/src/QyBinWriter.js +65 -66
  12. package/src/QyCD.js +72 -27
  13. package/src/QyCache.js +39 -33
  14. package/src/QyDB.js +4 -30
  15. package/src/QyDefaultOptions.js +2 -1
  16. package/src/QyFetch.js +4 -22
  17. package/src/QyFileLogger.js +2 -2
  18. package/src/QyKVData.js +168 -183
  19. package/src/QyKVDataCleaner_Worker.js +15 -14
  20. package/src/QyKVDataSaver_Worker.js +20 -20
  21. package/src/QyLogFileSaver.js +1 -1
  22. package/src/QyLogFileSaver_Worker.js +2 -2
  23. package/src/QyMod.js +7 -7
  24. package/src/QyOpRunner.js +19 -16
  25. package/src/QySnapshotCompactor_Worker.js +54 -52
  26. package/src/QySnapshotSaver_Worker.js +55 -53
  27. package/src/QySnapshots.js +157 -147
  28. package/src/QyUnionNode.js +2 -2
  29. package/src/rpc/evalCode.js +4 -4
  30. package/src/rpc/getFileContent.js +4 -4
  31. package/src/rpc/getSubItems.js +12 -12
  32. package/src/rpc/getTriggerFiles.js +1 -0
  33. package/src/rpc/queryFiles.js +1 -1
  34. package/src/soc_pokec.js +7 -7
  35. package/static/codemirror.bundle/editor.bundle.js +27906 -0
  36. package/static/datafolderui/QyStyledElement.js +6 -15
  37. package/static/datafolderui/QyUIFolderTree.js +130 -145
  38. package/static/datafolderui/QyUIFolderViewer.js +210 -0
  39. package/static/datafolderui/QyUIUtils.js +10 -5
  40. package/static/datafolderui/code-mirror.js +35 -0
  41. package/static/datafolderui/display-tree.js +21 -94
  42. package/static/datafolderui/explore-tree.js +66 -81
  43. package/static/datafolderui/folder-tree.js +71 -2
  44. package/static/datafolderui/index.css +7 -0
  45. package/static/datafolderui/index.html +1 -0
  46. package/static/datafolderui/json-view.js +7 -3
  47. package/static/datafolderui/main-page.js +42 -60
  48. package/static/datafolderui/query-editor.js +178 -198
  49. package/static/datafolderui/trigger-editor.js +30 -0
@@ -1,30 +1,21 @@
1
1
  import {
2
- appendStyle as n
2
+ appendStyle as o
3
3
  } from "./QyUIUtils.js";
4
4
 
5
- class s extends HTMLElement {
5
+ class e extends HTMLElement {
6
6
  constructor(e, t) {
7
7
  super(), Array.isArray(e) && (t = e, e = void 0);
8
8
  var r = this.attachShadow({
9
9
  mode: "open"
10
10
  });
11
11
  if (t) for (var s of t) {
12
- var o = document.createElement("link");
13
- o.setAttribute("rel", "stylesheet"), o.setAttribute("href", s), r.appendChild(o);
12
+ var a = document.createElement("link");
13
+ a.setAttribute("rel", "stylesheet"), a.setAttribute("href", s), r.appendChild(a);
14
14
  }
15
- e && n(r, e);
15
+ e && o(r, e);
16
16
  }
17
17
  }
18
18
 
19
- function e(e, t, r) {
20
- customElements.define(e, class extends s {
21
- constructor() {
22
- super(t, r);
23
- }
24
- });
25
- }
26
-
27
19
  export {
28
- s as QyStyledElement,
29
- e as defineStyledElement
20
+ e as QyStyledElement
30
21
  };
@@ -3,24 +3,27 @@ import {
3
3
  } from "../w2ui/src/w2compat.js";
4
4
 
5
5
  import {
6
- h as i
6
+ h as c
7
7
  } from "./hscrpt.js";
8
8
 
9
9
  import {
10
- setHeight as r
10
+ setHeight as r,
11
+ isNotNullObj as o
11
12
  } from "./QyUIUtils.js";
12
13
 
13
14
  import "./folder-tree.js";
14
15
 
15
16
  import "./json-view.js";
16
17
 
18
+ import "./code-mirror.js";
19
+
17
20
  class e extends HTMLElement {
18
21
  constructor() {
19
22
  super();
20
23
  }
21
24
  connectedCallback() {
22
25
  this.parentDiv = this.parentElement;
23
- var e = new s({
26
+ var e, t = new s({
24
27
  box: this.parentDiv,
25
28
  name: "layout_" + this.parentDiv.id,
26
29
  panels: [ {
@@ -33,171 +36,153 @@ class e extends HTMLElement {
33
36
  type: "bottom",
34
37
  size: 10
35
38
  } ]
36
- }), t = (e.el("left").append(this._createToolbar(), this._createFolderTree()),
37
- e.el("main"));
38
- t.append(this._createPathUL(), this._createJsonViewDiv()), e.el("bottom").append(this._createMsgSpan()),
39
- Object.assign(this, {
40
- layout: e,
41
- mainDiv: t,
42
- selectedHierarchy: {},
43
- fileContentMap: {},
44
- namePath: []
45
- }), e.on("resize:done", () => this.onSizeChange());
46
- }
47
- onSizeChange() {
48
- var {
49
- parentDiv: e,
50
- folderTreeDiv: t,
51
- jsonViewDiv: s,
52
- mainDiv: i
53
- } = this;
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
- }
57
- showMsg(e) {
58
- this.msgSpan.innerText = e;
59
- }
60
- _updateContentDisplay() {
61
- var e = this.selectedElement;
62
- e ? this._showSelected(e) : this._deleteJsonTree();
63
- }
64
- _deleteJsonTree() {
65
- var e = this.jsonTree;
66
- e && (jsonview.destroy(e), this.jsonTree = void 0);
67
- }
68
- _createMsgSpan() {
69
- return this.msgSpan = i("span");
70
- }
71
- _createJsonViewDiv() {
72
- return i("json-view", [ this.jsonViewDiv = i("div", {
39
+ }), i = (t.el("left").append((i = this).toolbarDiv = c("div", {
40
+ classList: "btn-toolbar",
41
+ role: "toolbar",
42
+ style: "border-bottom: 1px solid #e4e4e4"
43
+ }, [ (e => c("div", {
44
+ classList: "input-group"
45
+ }, [ c("input", {
46
+ id: "searchInput_" + e.parentDiv.id,
47
+ type: "text",
48
+ classList: "form-control",
73
49
  style: {
74
- overflow: "auto"
50
+ width: "150px"
75
51
  }
76
- }) ]);
77
- }
78
- _createPathUL() {
79
- return this.pathUL = i("ul", {
80
- classList: "nav nav-tabs"
81
- });
82
- }
83
- _createSearchIcon() {
84
- return i("div", {
52
+ }) ]))(i), c("div", {
85
53
  classList: "btn-group btn-group-sm",
86
54
  role: "group"
87
- }, [ i("button", {
55
+ }, [ c("button", {
88
56
  classList: "btn btn-outline-success",
89
57
  type: "submit"
90
- }, [ i("i", {
58
+ }, [ c("i", {
91
59
  classList: "bi bi-search"
92
- }) ]) ]);
93
- }
94
- _createSearchInput() {
95
- return i("div", {
96
- classList: "input-group"
97
- }, [ i("input", {
98
- id: "searchInput_" + this.parentDiv.id,
99
- type: "text",
100
- classList: "form-control",
101
- style: {
102
- width: "150px"
103
- }
104
- }) ]);
105
- }
106
- _createToolbar() {
107
- return this.toolbarDiv = i("div", {
108
- classList: "btn-toolbar",
109
- role: "toolbar",
110
- style: "border-bottom: 1px solid #e4e4e4"
111
- }, [ this._createSearchInput(), this._createSearchIcon() ]), this.toolbarDiv;
112
- }
113
- _createFolderTree() {
114
- var e = i("folder-tree", [ this.folderTreeDiv = i("div", {
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);
109
+ }
110
+ if (!o) for (;r < s.length; ) e.removeChild(e.lastElementChild);
111
+ 0 < r && s[r - 1].children[0].click();
112
+ }
113
+ }
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"));
121
+ i.append(this.pathUL = c("ul", {
122
+ classList: "nav nav-tabs"
123
+ }), this.contentDiv = c("div", [ (e = this).jsonView = c("json-view", [ e.jsonViewDiv = c("div", {
115
124
  style: {
116
125
  overflow: "auto"
117
126
  }
118
- }) ]);
119
- return this.folderTree = new Tree(this.folderTreeDiv, {
120
- navigate: !0
121
- }), this.folderTree.on("select", e => {
122
- this.clickSrc || (this.clickSrc = "folderTree", this._updateHierarchy(e)),
123
- this.selectedElement != e && (this.selectedElement = e, this._updateContentDisplay()),
124
- "folderTree" == this.clickSrc && (this.clickSrc = void 0);
125
- }), e;
126
- }
127
- _showSelected(e) {
128
- "file" == e.dataset.type ? this._showSelectedFile(e) : this._showSelectedDir(e);
129
- }
130
- _showSelectedFile(e) {
131
- this._showJson(this.fileContentMap[e.dataset.fileContentKey]);
132
- }
133
- _showSelectedDir(e) {
134
- "false" != e.parentElement.dataset.loaded ? this._showJson(e.dataset) : this._showJson({
135
- loaded: !1
136
- });
127
+ }) ]) ])), t.el("bottom").append(this.msgSpan = c("span")), Object.assign(this, {
128
+ layout: t,
129
+ mainDiv: i,
130
+ selectedHierarchy: {},
131
+ namePath: []
132
+ }), t.on("resize:done", () => this.onSizeChange());
137
133
  }
138
- _showJson(e) {
139
- this._deleteJsonTree();
140
- e = jsonview.create(e);
141
- jsonview.render(e, this.jsonViewDiv), jsonview.expand(e), this.jsonTree = e;
134
+ get fileContentMap() {
135
+ return this.folder_tree.fileContentMap;
142
136
  }
143
- _updateHierarchy(e) {
144
- var {
145
- folderTree: t,
146
- selectedHierarchy: s
147
- } = this, t = t.hierarchy(e).reverse();
148
- this.namePath = t.map(e => e.textContent), Object.assign(s, t), this._updatePathTabs();
137
+ set fileContentMap(e) {
138
+ this.folder_tree.fileContentMap = e;
149
139
  }
150
- _onPathTabsClick(t) {
140
+ onSizeChange() {
151
141
  var {
152
- clickSrc: e,
153
- rootFolder: s,
154
- selectedHierarchy: i,
155
- folderTree: r
142
+ parentDiv: e,
143
+ folderTreeDiv: t,
144
+ jsonViewDiv: i,
145
+ mainDiv: s
156
146
  } = this;
157
- s.parentElement.open = !0;
158
- for (let e = 0; e < t; ++e) i[e].parentElement.open = !0;
159
- s = i[t];
160
- "tab" == e && s.scrollIntoView({
161
- block: "center"
162
- }), r.select(s);
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);
163
149
  }
164
- _createPathTab(e, t) {
165
- t = i("span", {
166
- classList: "nav-link",
167
- "data-bs-toggle": "tab",
168
- role: "tab",
169
- style: "cursor:pointer",
170
- onclick: () => {
171
- this.clickSrc || (this.clickSrc = "tab"), this._onPathTabsClick(e),
172
- "tab" == this.clickSrc && (this.clickSrc = void 0);
173
- }
174
- }, [ t ]);
175
- this.pathUL.append(i("li", {
176
- classList: "nav-item"
177
- }, [ t ]));
150
+ showMsg(e) {
151
+ this.msgSpan.innerText = e;
178
152
  }
179
- _updatePathTabs() {
180
- var {
181
- namePath: s,
182
- pathUL: e
183
- } = this, i = e.children, r = s.length;
184
- let a = 0 < r;
185
- for (let t = 0; t < r; ++t) {
186
- if (t >= i.length) {
187
- for (let e = t; e < r; ++e) this._createPathTab(e, s[e]);
188
- break;
189
- }
190
- var o = i[t].children[0], n = s[t];
191
- o.innerText != n && (o.innerText = n, a = !1);
153
+ deleteJsonTree() {
154
+ var e = this.jsonTree;
155
+ e && (jsonview.destroy(e), this.jsonTree = void 0);
156
+ }
157
+ showSelectedFile(e) {
158
+ this.showContent(this.folder_tree.fileContentMap[e.dataset.fileContentKey]);
159
+ }
160
+ showSelectedDir(e) {
161
+ "false" != e.parentElement.dataset.loaded ? this.showContent(e.dataset) : this.showContent("not loaded");
162
+ }
163
+ showContent(t) {
164
+ if (o(t)) {
165
+ var e = this.codemirror, e = (e && (e.hidden = !0), this.jsonView.hidden = !1,
166
+ this), i = t;
167
+ e.deleteJsonTree(), i = jsonview.create(i), jsonview.render(i, e.jsonViewDiv),
168
+ jsonview.expand(i), e.jsonTree = i;
169
+ } else {
170
+ let e = this.codemirror;
171
+ e ? e.hidden = !1 : this.contentDiv.append(e = this.codemirror = c("code-mirror", {
172
+ readOnly: !0
173
+ })), this.jsonView.hidden = !0, e.text = t;
192
174
  }
193
- if (!a) for (;r < i.length; ) e.removeChild(e.lastElementChild);
194
- 0 < r && i[r - 1].children[0].click();
195
175
  }
196
- _resetPathTabs() {
176
+ resetPathTabs() {
197
177
  this.pathUL.replaceChildren();
198
178
  }
199
179
  }
200
180
 
181
+ function d(e) {
182
+ var t, i = e.selectedElement;
183
+ i ? (t = e, "file" == (i = i).dataset.type ? t.showSelectedFile(i) : t.showSelectedDir(i)) : e.deleteJsonTree();
184
+ }
185
+
201
186
  export {
202
187
  e as QyUIFolderTree
203
188
  };
@@ -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;
@@ -13,9 +13,9 @@ async function t(e, n, o) {
13
13
  };
14
14
  }
15
15
  try {
16
- var a = await fetch(t, i);
17
- if (a.ok) return await a.json();
18
- console.error("Response status: " + a.status);
16
+ var r = await fetch(t, i);
17
+ if (r.ok) return await r.json();
18
+ console.error("Response status: " + r.status);
19
19
  } catch (t) {
20
20
  console.error(`Calling ${e} with ${n} failed:`, t);
21
21
  }
@@ -34,9 +34,14 @@ function o(t, e) {
34
34
  n.textContent = e, t.appendChild(n);
35
35
  }
36
36
 
37
+ function i(t) {
38
+ return null != t && "object" == typeof t;
39
+ }
40
+
37
41
  export {
38
42
  t as rpc,
39
43
  e as setHeight,
40
44
  n as setWidth,
41
- o as appendStyle
45
+ o as appendStyle,
46
+ i as isNotNullObj
42
47
  };
@@ -0,0 +1,35 @@
1
+ customElements.define("code-mirror", class extends HTMLElement {
2
+ constructor() {
3
+ super();
4
+ }
5
+ compose() {
6
+ var r, e;
7
+ this.codemirror || ({
8
+ readOnly: r,
9
+ changeCallback: e
10
+ } = this, this.codemirror = createCodeMirror(this, r, e));
11
+ }
12
+ get text() {
13
+ return this.codemirror?.state.doc.toString() ?? "";
14
+ }
15
+ set text(r) {
16
+ var e = this.codemirror;
17
+ e && e.dispatch({
18
+ changes: {
19
+ from: 0,
20
+ to: e.state.doc.length,
21
+ insert: r
22
+ }
23
+ });
24
+ }
25
+ get hidden() {
26
+ return !!this.codemirror?.dom.hidden;
27
+ }
28
+ set hidden(r) {
29
+ var e = this.codemirror;
30
+ e && (e.dom.hidden = !!r);
31
+ }
32
+ clearHistory() {
33
+ this.codemirror?.clearHistory();
34
+ }
35
+ });