datafolder 1.0.7 → 1.0.9

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 (124) hide show
  1. package/README.md +4 -1
  2. package/index.js +1 -1
  3. package/internal.md +5 -3
  4. package/package.json +7 -5
  5. package/scripts/airbnb.js +77 -72
  6. package/scripts/airbnb2.js +78 -73
  7. package/scripts/airbnb2_queries.js +181 -229
  8. package/scripts/airbnb_queries.js +214 -265
  9. package/scripts/convertBinFiles.js +47 -49
  10. package/scripts/downloadFile.js +41 -40
  11. package/scripts/express.js +44 -48
  12. package/scripts/fastify.js +71 -80
  13. package/scripts/flights.js +71 -75
  14. package/scripts/flights2.js +78 -81
  15. package/scripts/flights2_queries.js +417 -455
  16. package/scripts/flights_queries.js +381 -407
  17. package/src/QyAcl.d.ts +17 -0
  18. package/src/QyAcl.js +113 -116
  19. package/src/QyAclSaver.d.ts +4 -0
  20. package/src/QyAclSaver.js +3 -3
  21. package/src/QyAclSaver_Worker.d.ts +9 -0
  22. package/src/QyAclSaver_Worker.js +2 -4
  23. package/src/QyAclWriter.d.ts +5 -0
  24. package/src/QyBatch.d.ts +42 -0
  25. package/src/QyBatch.js +8 -8
  26. package/src/QyBinWriter.d.ts +15 -0
  27. package/src/QyCD.d.ts +37 -0
  28. package/src/QyCD.js +8 -6
  29. package/src/QyCache.d.ts +44 -0
  30. package/src/QyCache.js +65 -59
  31. package/src/QyCompressor.d.ts +9 -0
  32. package/src/QyCompressor.js +29 -29
  33. package/src/QyCompressor_Worker.d.ts +1 -0
  34. package/src/QyDB.d.ts +42 -0
  35. package/src/QyDB.js +13 -11
  36. package/src/QyDefaultOptions.d.ts +1 -0
  37. package/src/QyDefaultOptions.js +3 -0
  38. package/src/QyDir.d.ts +48 -0
  39. package/src/QyDir.js +41 -41
  40. package/src/QyFetch.d.ts +7 -0
  41. package/src/QyFetch.js +2 -3
  42. package/src/QyFile.d.ts +19 -0
  43. package/src/QyFile.js +35 -34
  44. package/src/QyFileContentUtils.d.ts +13 -0
  45. package/src/QyFileContentUtils.js +126 -126
  46. package/src/QyFileLogger.d.ts +11 -0
  47. package/src/QyIndex.d.ts +6 -0
  48. package/src/QyIndex.js +73 -75
  49. package/src/QyIndexPropTree.d.ts +7 -0
  50. package/src/QyIndexPropTree.js +24 -24
  51. package/src/QyIntersectNode.d.ts +7 -0
  52. package/src/QyIntersectNode.js +15 -15
  53. package/src/QyItem.d.ts +30 -0
  54. package/src/QyItem.js +32 -28
  55. package/src/QyJsonSaver.d.ts +6 -0
  56. package/src/QyKVData.d.ts +12 -0
  57. package/src/QyKVData.js +11 -10
  58. package/src/QyKVDataCleaner.d.ts +4 -0
  59. package/src/QyKVDataCleaner.js +1 -1
  60. package/src/QyKVDataCleaner_Worker.d.ts +13 -0
  61. package/src/QyKVDataCleaner_Worker.js +2 -4
  62. package/src/QyKVDataLoader.d.ts +9 -0
  63. package/src/QyKVDataLoader.js +11 -11
  64. package/src/QyKVDataSaver.d.ts +4 -0
  65. package/src/QyKVDataSaver.js +6 -6
  66. package/src/QyKVDataSaver_Worker.d.ts +13 -0
  67. package/src/QyKVDataSaver_Worker.js +7 -9
  68. package/src/QyLogFileSaver.d.ts +4 -0
  69. package/src/QyLogFileSaver.js +1 -1
  70. package/src/QyLogFileSaver_Worker.d.ts +8 -0
  71. package/src/QyLogFileSaver_Worker.js +2 -4
  72. package/src/QyLogger.d.ts +10 -0
  73. package/src/QyLogger.js +40 -40
  74. package/src/QyMessageWorker.d.ts +5 -0
  75. package/src/QyMessageWorker.js +7 -7
  76. package/src/QyMessager.d.ts +7 -0
  77. package/src/QyMessager.js +30 -27
  78. package/src/QyMessager_Run.d.ts +1 -0
  79. package/src/QyMessager_Run.js +11 -6
  80. package/src/QyMod.d.ts +1 -0
  81. package/src/QyMod.js +6 -6
  82. package/src/QyOpRunner.d.ts +10 -0
  83. package/src/QyOpRunner.js +39 -39
  84. package/src/QyQueue.d.ts +11 -0
  85. package/src/QySaver.d.ts +10 -0
  86. package/src/QySnapshotCompactor.d.ts +4 -0
  87. package/src/QySnapshotCompactor.js +1 -1
  88. package/src/QySnapshotCompactor_Worker.d.ts +11 -0
  89. package/src/QySnapshotCompactor_Worker.js +2 -4
  90. package/src/QySnapshotSaver.d.ts +4 -0
  91. package/src/QySnapshotSaver.js +1 -1
  92. package/src/QySnapshotSaver_Worker.d.ts +16 -0
  93. package/src/QySnapshotSaver_Worker.js +17 -16
  94. package/src/QySnapshots.d.ts +27 -0
  95. package/src/QySnapshots.js +3 -3
  96. package/src/QyStructure.d.ts +1 -0
  97. package/src/QyStructure.js +18 -18
  98. package/src/QyTrigger.d.ts +9 -0
  99. package/src/QyTrigger.js +30 -30
  100. package/src/QyUnionNode.d.ts +17 -0
  101. package/src/QyUnionNode.js +2 -2
  102. package/src/QyUtils.d.ts +53 -0
  103. package/src/QyUtils.js +140 -117
  104. package/src/QyWorker.d.ts +5 -0
  105. package/src/QyWorker.js +18 -18
  106. package/src/hackernews.d.ts +1 -0
  107. package/src/hackernews.js +59 -47
  108. package/src/rpc/getRpcFiles.js +1 -0
  109. package/src/simulate.d.ts +1 -0
  110. package/src/simulate2.d.ts +1 -0
  111. package/src/soc_pokec.d.ts +1 -0
  112. package/static/codemirror.bundle/editor.bundle.js +399 -184
  113. package/static/datafolderui/QyStyledElement.js +2 -2
  114. package/static/datafolderui/QyUIFolderViewer.js +97 -77
  115. package/static/datafolderui/QyUIUtils.js +4 -4
  116. package/static/datafolderui/code-mirror.js +7 -7
  117. package/static/datafolderui/display-tree.js +13 -10
  118. package/static/datafolderui/hscrpt.js +26 -7
  119. package/static/datafolderui/json-view.js +27 -0
  120. package/static/datafolderui/main-page.js +65 -37
  121. package/static/datafolderui/query-editor.js +8 -8
  122. package/static/datafolderui/rpc-editor.js +31 -0
  123. package/static/datafolderui/trigger-editor.js +9 -6
  124. package/static/datafolderui/QyUIFolderTree.js +0 -188
@@ -4,11 +4,11 @@ import {
4
4
 
5
5
  class e extends HTMLElement {
6
6
  constructor(e, t) {
7
- super(), Array.isArray(e) && (t = e, e = void 0);
7
+ super();
8
8
  var r = this.attachShadow({
9
9
  mode: "open"
10
10
  });
11
- if (t) for (var s of t) {
11
+ if (Array.isArray(e) && (t = e, e = void 0), t) for (var s of t) {
12
12
  var a = document.createElement("link");
13
13
  a.setAttribute("rel", "stylesheet"), a.setAttribute("href", s), r.appendChild(a);
14
14
  }
@@ -1,14 +1,14 @@
1
1
  import {
2
- w2layout as r
2
+ w2layout as i
3
3
  } from "../w2ui/src/w2compat.js";
4
4
 
5
5
  import {
6
- h as d
6
+ h as c
7
7
  } from "./hscrpt.js";
8
8
 
9
9
  import {
10
- setHeight as o,
11
- isNotNullObj as s
10
+ setHeight as n,
11
+ isNotNullObj as e
12
12
  } from "./QyUIUtils.js";
13
13
 
14
14
  import "./folder-tree.js";
@@ -17,15 +17,15 @@ import "./json-view.js";
17
17
 
18
18
  import "./code-mirror.js";
19
19
 
20
- let n = 0;
20
+ let r = 0;
21
21
 
22
- class e extends HTMLElement {
22
+ class t extends HTMLElement {
23
23
  constructor() {
24
24
  super();
25
25
  }
26
26
  connectedCallback() {
27
- this.idCount = ++n, this.parentDiv = this.parentElement;
28
- var e, t = new r({
27
+ this.idCount = ++r, this.parentDiv = this.parentElement;
28
+ var e = new i({
29
29
  box: this.parentDiv,
30
30
  name: "layout_folderviewer_" + this.idCount,
31
31
  panels: [ {
@@ -38,29 +38,12 @@ class e extends HTMLElement {
38
38
  type: "bottom",
39
39
  size: 10
40
40
  } ]
41
- }), i = (t.el("left").append((i = this).toolbarDiv = d("div", {
41
+ }), t = (e.el("left").append((t = this).toolbarDiv = c("div", {
42
42
  classList: "btn-toolbar",
43
43
  role: "toolbar",
44
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"), {
45
+ }, [ s(t), o() ]), (s => {
46
+ var e = c("folder-tree"), {
64
47
  folderTreeDiv: t,
65
48
  folderTree: i
66
49
  } = e;
@@ -81,7 +64,7 @@ class e extends HTMLElement {
81
64
  for (let t = 0; t < o; ++t) {
82
65
  if (t >= r.length) {
83
66
  for (let e = t; e < o; ++e) ((s, n, e) => {
84
- e = d("span", {
67
+ e = c("span", {
85
68
  classList: "nav-link",
86
69
  "data-bs-toggle": "tab",
87
70
  role: "tab",
@@ -100,7 +83,7 @@ class e extends HTMLElement {
100
83
  block: "center"
101
84
  }), o.select(i), "tab" == s.clickSrc && (s.clickSrc = void 0);
102
85
  }
103
- }, [ e ]), s.pathUL.append(d("li", {
86
+ }, [ e ]), s.pathUL.append(c("li", {
104
87
  classList: "nav-item"
105
88
  }, [ e ]));
106
89
  })(n, e, i[e]);
@@ -113,25 +96,35 @@ class e extends HTMLElement {
113
96
  0 < o && r[o - 1].children[0].click();
114
97
  }
115
98
  }
116
- s.selectedElement != e && (s.selectedElement = e, c(s)), "folderTree" == s.clickSrc && (s.clickSrc = void 0);
99
+ s.selectedElement != e && (s.selectedElement = e, d(s)), "folderTree" == s.clickSrc && (s.clickSrc = void 0);
117
100
  }), Object.assign(s, {
118
101
  folderTree: i,
119
102
  folderTreeDiv: t,
120
103
  folder_tree: e
121
104
  }), e;
122
- })(this)), t.el("main"));
123
- i.append(this.pathUL = d("ul", {
105
+ })(this)), e.el("main"));
106
+ t.append(this.upperDiv = c("div", {
107
+ style: {
108
+ display: "flex",
109
+ "align-items": "center",
110
+ "justify-content": "space-between",
111
+ "margin-right": "1px"
112
+ }
113
+ }, [ this.pathUL = c("ul", {
124
114
  classList: "nav nav-tabs"
125
- }), this.contentDiv = d("div", [ (e = this).jsonView = d("json-view", [ e.jsonViewDiv = d("div", {
115
+ }), c("div", {
116
+ classList: "btn-toolbar",
117
+ role: "toolbar"
118
+ }, [ s(self), o() ]) ]), this.contentDiv = c("div", [ this.json_view = c("json-view"), this.codeMirrorDiv = c("div", {
126
119
  style: {
127
120
  overflow: "auto"
128
121
  }
129
- }) ]) ])), t.el("bottom").append(this.msgSpan = d("span")), Object.assign(this, {
130
- layout: t,
131
- mainDiv: i,
122
+ }) ])), e.el("bottom").append(this.msgSpan = c("span")), Object.assign(this, {
123
+ layout: e,
124
+ mainDiv: t,
132
125
  selectedHierarchy: {},
133
126
  namePath: []
134
- }), t.on("resize:done", () => this.onSizeChange());
127
+ }), e.on("resize:done", () => this.onSizeChange());
135
128
  }
136
129
  get fileContentMap() {
137
130
  return this.folder_tree.fileContentMap;
@@ -143,56 +136,55 @@ class e extends HTMLElement {
143
136
  var {
144
137
  parentDiv: e,
145
138
  folderTreeDiv: t,
146
- jsonViewDiv: i,
147
- mainDiv: r
139
+ json_view: i,
140
+ mainDiv: r,
141
+ contentDiv: o,
142
+ codeMirrorDiv: s
148
143
  } = 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);
144
+ n(e, document.body.clientHeight - e.offsetTop), n(t, r.clientHeight - t.offsetTop),
145
+ n(o, r.clientHeight - o.offsetTop), i.setHeight(o.clientHeight), n(s, o.clientHeight),
146
+ d(this);
151
147
  }
152
148
  showMsg(e) {
153
149
  this.msgSpan.innerText = e;
154
150
  }
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];
151
+ showSelectedFile(o) {
152
+ o = this.folder_tree.fileContentMap[o.dataset.fileContentKey];
161
153
  if (this.isTriggerEditor) {
162
- var o = r;
154
+ var s = o;
163
155
  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"));
156
+ code_mirror: e,
157
+ code_mirror2: t,
158
+ json_view: i,
159
+ codeMirrorDiv: r
160
+ } = n = this;
161
+ i.hidden = !0, r.hidden = !1, e || n.codeMirrorDiv.append(e = n.code_mirror = c("code-mirror")),
162
+ t || n.codeMirrorDiv.append(t = n.code_mirror2 = c("code-mirror"));
170
163
  var {
171
- fileNamePath: s,
172
- propNamePathList: o,
173
- modCode: n
174
- } = o;
164
+ fileNamePath: n,
165
+ propNamePathList: s,
166
+ modCode: l
167
+ } = s;
175
168
  e.text = JSON.stringify({
176
- fileNamePath: s,
177
- propNamePathList: o
178
- }), t.text = n;
179
- } else this.showContent(r);
169
+ fileNamePath: n,
170
+ propNamePathList: s
171
+ }), t.text = l;
172
+ } else this.showContent(o);
180
173
  }
181
174
  showSelectedDir(e) {
182
175
  "false" != e.parentElement.dataset.loaded ? this.showContent(e.dataset) : this.showContent("not loaded");
183
176
  }
184
177
  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", {
178
+ var {
179
+ json_view: i,
180
+ codeMirrorDiv: r
181
+ } = this;
182
+ if (e(t)) r.hidden = !0, i.hidden = !1, i.show(t); else {
183
+ r.hidden = !1, i.hidden = !0;
184
+ let e = this.code_mirror;
185
+ e || r.append(e = this.code_mirror = c("code-mirror", {
194
186
  readOnly: !0
195
- })), this.jsonView.hidden = !0, e.text = t;
187
+ })), e.text = t;
196
188
  }
197
189
  }
198
190
  resetPathTabs() {
@@ -200,11 +192,39 @@ class e extends HTMLElement {
200
192
  }
201
193
  }
202
194
 
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();
195
+ function d(e) {
196
+ var {
197
+ selectedElement: t,
198
+ json_view: i
199
+ } = e;
200
+ t ? (e = e, "file" == (t = t).dataset.type ? e.showSelectedFile(t) : e.showSelectedDir(t)) : i.clear();
201
+ }
202
+
203
+ function o() {
204
+ return c("div", {
205
+ classList: "btn-group btn-group-sm",
206
+ role: "group"
207
+ }, [ c("button", {
208
+ classList: "btn btn-outline-success",
209
+ type: "submit"
210
+ }, [ c("i", {
211
+ classList: "bi bi-search"
212
+ }) ]) ]);
213
+ }
214
+
215
+ function s(e) {
216
+ return c("div", {
217
+ classList: "input-group"
218
+ }, [ c("input", {
219
+ id: "searchInput_" + e.idCount,
220
+ type: "text",
221
+ classList: "form-control",
222
+ style: {
223
+ width: "150px"
224
+ }
225
+ }) ]);
206
226
  }
207
227
 
208
228
  export {
209
- e as QyUIFolderViewer
229
+ t as QyUIFolderViewer
210
230
  };
@@ -3,7 +3,7 @@ async function t(e, n, o) {
3
3
  let i;
4
4
  if (o) {
5
5
  let t;
6
- "object" == typeof o ? (t = "application/json", o = JSON.stringify(o)) : t = "text/plain",
6
+ a(o) ? (t = "application/json", o = JSON.stringify(o)) : t = "text/plain",
7
7
  i = {
8
8
  method: "POST",
9
9
  headers: {
@@ -14,7 +14,7 @@ async function t(e, n, o) {
14
14
  }
15
15
  try {
16
16
  var r = await fetch(t, i);
17
- if (r.ok) return await r.json();
17
+ if (r.ok) return r.json();
18
18
  console.error("Response status: " + r.status);
19
19
  } catch (t) {
20
20
  console.error(`Calling ${e} with ${n} failed:`, t);
@@ -34,7 +34,7 @@ function o(t, e) {
34
34
  n.textContent = e, t.appendChild(n);
35
35
  }
36
36
 
37
- function i(t) {
37
+ function a(t) {
38
38
  return null != t && "object" == typeof t;
39
39
  }
40
40
 
@@ -43,5 +43,5 @@ export {
43
43
  e as setHeight,
44
44
  n as setWidth,
45
45
  o as appendStyle,
46
- i as isNotNullObj
46
+ a as isNotNullObj
47
47
  };
@@ -4,16 +4,16 @@ customElements.define("code-mirror", class extends HTMLElement {
4
4
  }
5
5
  compose() {
6
6
  var r, e;
7
- this.codemirror || ({
7
+ this.codeMirror || ({
8
8
  readOnly: r,
9
9
  changeCallback: e
10
- } = this, this.codemirror = createCodeMirror(this, r, e));
10
+ } = this, this.codeMirror = createCodeMirror(this, r, e));
11
11
  }
12
12
  get text() {
13
- return this.codemirror?.state.doc.toString() ?? "";
13
+ return this.codeMirror?.state.doc.toString() ?? "";
14
14
  }
15
15
  set text(r) {
16
- var e = this.codemirror;
16
+ var e = this.codeMirror;
17
17
  e && e.dispatch({
18
18
  changes: {
19
19
  from: 0,
@@ -23,13 +23,13 @@ customElements.define("code-mirror", class extends HTMLElement {
23
23
  });
24
24
  }
25
25
  get hidden() {
26
- return !!this.codemirror?.dom.hidden;
26
+ return !!this.codeMirror?.dom.hidden;
27
27
  }
28
28
  set hidden(r) {
29
- var e = this.codemirror;
29
+ var e = this.codeMirror;
30
30
  e && (e.dom.hidden = !!r);
31
31
  }
32
32
  clearHistory() {
33
- this.codemirror?.clearHistory();
33
+ this.codeMirror?.clearHistory();
34
34
  }
35
35
  });
@@ -6,6 +6,14 @@ import {
6
6
  QyUIFolderViewer as e
7
7
  } from "./QyUIFolderViewer.js";
8
8
 
9
+ function o(e, t) {
10
+ var r = e.folder_tree, {
11
+ rootFolder: t,
12
+ folderTree: s
13
+ } = (r.constructFolderTree(t), r);
14
+ e.rootFolder = r.rootFolder, s.select(t);
15
+ }
16
+
9
17
  customElements.define("display-tree", class extends e {
10
18
  constructor() {
11
19
  super();
@@ -14,22 +22,17 @@ customElements.define("display-tree", class extends e {
14
22
  var e;
15
23
  super.connectedCallback(), (e = this).toolbarDiv.append((e => e.countSpan = t("span", {
16
24
  classList: "btn btn-success ms-auto"
17
- }, [ "0" ]))(e));
25
+ }, [ "0" ]))(e)), o(this);
18
26
  }
19
27
  showTree(e, t) {
20
- (r = this).deleteJsonTree();
28
+ (r = this).json_view.clear();
21
29
  var {
22
30
  countSpan: r,
23
31
  msgSpan: s
24
32
  } = r, {
25
33
  countSpan: r,
26
- msgSpan: s,
27
- folder_tree: o
28
- } = (r.innerText = "0", s.innerText = "", this.resetPathTabs(), this), {
29
- rootFolder: r,
30
- folderTree: s
31
- } = (r.innerText = t, s.innerText = "Total " + t, o.constructFolderTree(e),
32
- o);
33
- this.rootFolder = o.rootFolder, s.select(r);
34
+ msgSpan: s
35
+ } = (r.innerText = "0", s.innerText = "", this.resetPathTabs(), this);
36
+ r.innerText = t, s.innerText = "Total " + t, o(this, e);
34
37
  }
35
38
  });
@@ -1,13 +1,32 @@
1
1
  function t(t, e, r) {
2
2
  Array.isArray(e) && (r = e, e = {});
3
- var s, i, o = document.createElement(t);
4
- for (s in e) {
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;
3
+ var a, s, o = document.createElement(t);
4
+ for (a in e) {
5
+ var i = e[a];
6
+ switch (a) {
7
+ case "style":
8
+ o.style = "string" == typeof (s = i) ? s : Object.entries(s).map(([ t, e ]) => t + ":" + e).join(";");
9
+ break;
10
+
11
+ case "classList":
12
+ o.classList = "string" == typeof (s = i) ? s : s.join(" ");
13
+ break;
14
+
15
+ case "attrs":
16
+ for (var n in i) o.setAttribute(n, i[n]);
17
+ break;
18
+
19
+ case "on":
20
+ for (var c in i) o.addEventListener(c, i[c]);
21
+ break;
22
+
23
+ default:
24
+ a.startsWith("data-") || a.startsWith("aria-") ? o.setAttribute(a, i) : o[a] = i;
25
+ }
7
26
  }
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);
27
+ if (o.compose && "function" == typeof o.compose && o.compose(), r) {
28
+ var f, p = o.shadowRoot ?? o;
29
+ for (f of r.filter(t => null != t)) p.appendChild("string" == typeof f ? document.createTextNode(f) : f);
11
30
  }
12
31
  return o;
13
32
  }
@@ -2,6 +2,14 @@ import {
2
2
  QyStyledElement as n
3
3
  } from "./QyStyledElement.js";
4
4
 
5
+ import {
6
+ h as o
7
+ } from "./hscrpt.js";
8
+
9
+ import {
10
+ setHeight as e
11
+ } from "./QyUIUtils.js";
12
+
5
13
  customElements.define("json-view", class extends n {
6
14
  constructor() {
7
15
  super(`
@@ -73,4 +81,23 @@ customElements.define("json-view", class extends n {
73
81
  }
74
82
  `);
75
83
  }
84
+ compose() {
85
+ this.shadowRoot.append(this.jsonViewDiv = o("div", {
86
+ style: {
87
+ overflow: "auto"
88
+ }
89
+ }));
90
+ }
91
+ setHeight(n) {
92
+ e(this.jsonViewDiv, n);
93
+ }
94
+ show(n) {
95
+ this.clear();
96
+ n = this.jsonTree = jsonview.create(n);
97
+ jsonview.render(n, this.jsonViewDiv), jsonview.expand(n);
98
+ }
99
+ clear() {
100
+ var n = this.jsonTree;
101
+ n && (jsonview.destroy(n), this.jsonTree = void 0);
102
+ }
76
103
  });
@@ -1,5 +1,5 @@
1
1
  import {
2
- h as d
2
+ h as u
3
3
  } from "./hscrpt.js";
4
4
 
5
5
  import "./explore-tree.js";
@@ -8,7 +8,9 @@ import "./query-editor.js";
8
8
 
9
9
  import "./trigger-editor.js";
10
10
 
11
- let l = {
11
+ import "./rpc-editor.js";
12
+
13
+ let h = {
12
14
  brandName: "datafolder UI",
13
15
  tabNames: [ "Explore", "Query", "RPC", "Triggers" ]
14
16
  };
@@ -18,63 +20,89 @@ customElements.define("main-page", class extends HTMLElement {
18
20
  super();
19
21
  }
20
22
  connectedCallback() {
21
- var {
22
- brandName: e,
23
- tabNames: t
24
- } = l;
25
- this.append(d("nav", {
23
+ var t, e, {
24
+ brandName: s,
25
+ tabNames: i
26
+ } = h;
27
+ this.append((e = i, (t = this).upperDiv = u("div", {
28
+ classList: "bg-body-tertiary",
29
+ style: {
30
+ display: "flex",
31
+ "align-items": "center"
32
+ }
33
+ }, [ u("nav", {
26
34
  classList: "navbar bg-body-tertiary"
27
- }, [ ((e, t, a) => d("div", {
35
+ }, [ u("div", {
28
36
  classList: "container-fluid"
29
- }, [ (e => d("a", {
37
+ }, [ (t => u("a", {
30
38
  classList: "navbar-brand"
31
- }, [ e ]))(t), ((e, t) => d("ul", {
39
+ }, [ t ]))(s), ((t, e) => u("ul", {
32
40
  classList: "nav nav-pills me-auto mb-2 mb-lg-0"
33
- }, e.tabButtons = t.map(e => d("button", {
41
+ }, t.tabButtons = e.map(t => u("button", {
34
42
  classList: "nav-link",
35
- id: `pills-${e}-tab`,
43
+ id: `pills-${t}-tab`,
36
44
  "data-bs-toggle": "pill",
37
- "data-bs-target": "#pills-" + e,
45
+ "data-bs-target": "#pills-" + t,
38
46
  type: "button",
39
47
  role: "tab"
40
- }, [ e ]))))(e, a) ]))(this, e, t) ]), d("div", {
48
+ }, [ t ]))))(t, e) ]) ]), u("div", {
49
+ classList: "btn-toolbar",
50
+ role: "toolbar",
51
+ style: {
52
+ "margin-left": "20px"
53
+ }
54
+ }, [ u("button", {
55
+ classList: "btn btn-outline-success",
56
+ type: "submit",
57
+ style: {
58
+ "margin-right": "0px"
59
+ }
60
+ }, [ u("i", {
61
+ classList: "bi bi-arrow-clockwise"
62
+ }) ]), u("button", {
63
+ classList: "btn btn-outline-success",
64
+ type: "submit"
65
+ }, [ u("i", {
66
+ classList: "bi bi-file-earmark-plus"
67
+ }) ]) ]) ])), u("div", {
41
68
  classList: "tab-content",
42
69
  id: "pills-tabContent"
43
- }, this.tabDivs = t.map(e => d("div", {
70
+ }, this.tabDivs = i.map(t => u("div", {
44
71
  classList: "tab-pane",
45
- id: "pills-" + e,
72
+ id: "pills-" + t,
46
73
  role: "tabpanel"
47
74
  }))));
48
75
  let {
49
- tabButtons: [ a, s ],
50
- tabDivs: [ i, n, , r ]
76
+ tabButtons: [ a, r, n, o ],
77
+ tabDivs: [ l, d, b, p ]
51
78
  } = this;
52
79
  bootstrap.Tab.getOrCreateInstance(a).show();
53
- e = d("explore-tree");
54
- i.appendChild(e);
55
- let o = d("query-editor");
56
- n.appendChild(o);
57
- t = d("trigger-editor"), r.append(t), Object.assign(this, {
58
- exploreTree: e,
59
- queryEditor: o,
60
- triggerEditor: t
61
- }), o.addEventListener("run", () => s.click()), e = () => this.onSizeChange();
62
- document.addEventListener("DOMContentLoaded", e), window.addEventListener("resize", e),
63
- s.addEventListener("shown.bs.tab", () => {
64
- o.onSizeChange();
65
- });
80
+ s = u("explore-tree");
81
+ l.appendChild(s);
82
+ let c = u("query-editor"), g = (d.appendChild(c), u("rpc-editor")), m = (b.appendChild(g),
83
+ u("trigger-editor"));
84
+ p.append(m), Object.assign(this, {
85
+ explore_tree: s,
86
+ query_editor: c,
87
+ rpc_editor: g,
88
+ trigger_editor: m
89
+ }), c.addEventListener("run", () => r.click()), window.addEventListener("resize", () => this.onSizeChange()),
90
+ r.addEventListener("shown.bs.tab", () => c.onSizeChange()), n.addEventListener("show.bs.tab", () => g.show()),
91
+ o.addEventListener("show.bs.tab", () => m.show());
66
92
  }
67
93
  onSizeChange() {
68
94
  var {
69
- exploreTree: e,
70
- queryEditor: t
95
+ explore_tree: t,
96
+ query_editor: e,
97
+ rpc_editor: s,
98
+ trigger_editor: i
71
99
  } = this;
72
- e.onSizeChange(), t.onSizeChange();
100
+ t.onSizeChange(), e.onSizeChange(), s.onSizeChange(), i.onSizeChange();
73
101
  }
74
- }), document.body.append(d("main-page"));
102
+ }), document.body.append(u("main-page"));
75
103
 
76
104
  import {
77
- rpc as e
105
+ rpc as t
78
106
  } from "./QyUIUtils.js";
79
107
 
80
- window.rpc = e;
108
+ window.rpc = t;