datafolder 1.0.2 → 1.0.4

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 (84) hide show
  1. package/README.md +34 -31
  2. package/index.js +1 -3
  3. package/package.json +5 -3
  4. package/sample.js +37 -37
  5. package/scripts/airbnb.js +10 -11
  6. package/scripts/airbnb2.js +10 -11
  7. package/scripts/airbnb2_queries.js +20 -22
  8. package/scripts/airbnb_queries.js +23 -22
  9. package/scripts/downloadFile.js +29 -31
  10. package/scripts/express.js +7 -5
  11. package/scripts/fastify.js +12 -11
  12. package/scripts/flights.js +9 -9
  13. package/scripts/flights2.js +9 -9
  14. package/scripts/flights2_queries.js +107 -105
  15. package/scripts/flights_queries.js +113 -109
  16. package/src/QyAcl.js +153 -152
  17. package/src/QyAclSaver.js +16 -10
  18. package/src/QyAclSaver_Worker.js +21 -15
  19. package/src/QyAclWriter.js +23 -13
  20. package/src/QyBatch.js +298 -263
  21. package/src/QyBinWriter.js +49 -37
  22. package/src/QyCD.js +13 -14
  23. package/src/QyCache.js +177 -140
  24. package/src/QyCompressor.js +71 -45
  25. package/src/QyCompressor_Worker.js +17 -9
  26. package/src/QyDB.js +67 -12
  27. package/src/QyDefaultOptions.js +13 -10
  28. package/src/QyDir.js +89 -53
  29. package/src/QyFetch.js +27 -24
  30. package/src/QyFile.js +89 -77
  31. package/src/QyFileContentUtils.js +129 -132
  32. package/src/QyFileLogger.js +63 -41
  33. package/src/QyIndex.js +175 -197
  34. package/src/QyIndexPropTree.js +25 -25
  35. package/src/QyIntersectNode.js +34 -31
  36. package/src/QyItem.js +54 -52
  37. package/src/QyJsonSaver.js +12 -6
  38. package/src/QyKVData.js +279 -245
  39. package/src/QyKVDataCleaner.js +12 -6
  40. package/src/QyKVDataCleaner_Worker.js +77 -59
  41. package/src/QyKVDataLoader.js +67 -46
  42. package/src/QyKVDataSaver.js +15 -9
  43. package/src/QyKVDataSaver_Worker.js +83 -60
  44. package/src/QyLogFileSaver.js +12 -6
  45. package/src/QyLogFileSaver_Worker.js +24 -14
  46. package/src/QyLogger.js +51 -40
  47. package/src/QyMessageWorker.js +43 -29
  48. package/src/QyMessager.js +74 -54
  49. package/src/QyMessager_Run.js +20 -7
  50. package/src/QyMod.js +15 -11
  51. package/src/QyOpRunner.js +58 -41
  52. package/src/QyQueue.js +35 -30
  53. package/src/QySaver.js +52 -29
  54. package/src/QySnapshotCompactor.js +15 -9
  55. package/src/QySnapshotCompactor_Worker.js +131 -110
  56. package/src/QySnapshotSaver.js +15 -9
  57. package/src/QySnapshotSaver_Worker.js +125 -110
  58. package/src/QySnapshots.js +264 -242
  59. package/src/QyStructure.js +35 -27
  60. package/src/QyTrigger.js +62 -55
  61. package/src/QyUnionNode.js +54 -56
  62. package/src/QyUtils.js +170 -158
  63. package/src/QyWorker.js +34 -20
  64. package/src/hackernews.js +63 -71
  65. package/src/rpc/getFileContent.js +7 -7
  66. package/src/rpc/getSubItems.js +12 -28
  67. package/src/rpc/queryFiles.js +2 -25
  68. package/src/simulate.js +85 -80
  69. package/src/simulate2.js +77 -78
  70. package/src/soc_pokec.js +44 -32
  71. package/static/datafolderui/QyStyledElement.js +12 -12
  72. package/static/datafolderui/QyUIFolderTree.js +20 -20
  73. package/static/datafolderui/QyUIUtils.js +8 -8
  74. package/static/datafolderui/explore-tree.js +31 -31
  75. package/static/datafolderui/folder-tree.js +2 -2
  76. package/static/datafolderui/hscrpt.js +9 -17
  77. package/static/datafolderui/json-view.js +3 -5
  78. package/static/datafolderui/kv-input.js +15 -15
  79. package/static/datafolderui/list-input.js +17 -17
  80. package/static/datafolderui/main-page.js +18 -18
  81. package/static/datafolderui/num-input.js +5 -5
  82. package/static/datafolderui/query-editor.js +6 -1
  83. package/static/datafolderui/querySelectorShadowRoot.js +15 -19
  84. 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 QyUIFolderTree extends HTMLElement {
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 w2layout({
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
- setHeight(e, document.body.clientHeight - e.offsetTop), setHeight(t, i.clientHeight - t.offsetTop - 1),
55
- setHeight(s, i.clientHeight - s.offsetTop - 1), this._updateContentDisplay();
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 = h("span");
69
+ return this.msgSpan = i("span");
70
70
  }
71
71
  _createJsonViewDiv() {
72
- return h("json-view", [ this.jsonViewDiv = h("div", {
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 = h("ul", {
79
+ return this.pathUL = i("ul", {
80
80
  classList: "nav nav-tabs"
81
81
  });
82
82
  }
83
83
  _createSearchIcon() {
84
- return h("div", {
84
+ return i("div", {
85
85
  classList: "btn-group btn-group-sm",
86
86
  role: "group"
87
- }, [ h("button", {
87
+ }, [ i("button", {
88
88
  classList: "btn btn-outline-success",
89
89
  type: "submit"
90
- }, [ h("i", {
90
+ }, [ i("i", {
91
91
  classList: "bi bi-search"
92
92
  }) ]) ]);
93
93
  }
94
94
  _createSearchInput() {
95
- return h("div", {
95
+ return i("div", {
96
96
  classList: "input-group"
97
- }, [ h("input", {
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 = h("div", {
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 = h("folder-tree", [ this.folderTreeDiv = h("div", {
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 = h("span", {
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(h("li", {
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 rpc(e, n, o) {
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 setHeight(t, e) {
24
+ function e(t, e) {
25
25
  t.style.height = e + "px";
26
26
  }
27
27
 
28
- function setWidth(t, e) {
28
+ function n(t, e) {
29
29
  t.style.width = e + "px";
30
30
  }
31
31
 
32
- function appendStyle(t, e) {
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 config = {
13
+ let s = {
14
14
  showHiddenFolder: !1
15
15
  };
16
16
 
17
- customElements.define("explore-tree", class extends QyUIFolderTree {
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 = config.showHiddenFolder, t = (this._appendToolbar(e), this.checkTooltip = new bootstrap.Tooltip(this.checkLabel),
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 h("div", {
39
+ return o("div", {
40
40
  classList: "btn-group btn-group-sm ms-1",
41
41
  role: "group"
42
- }, [ h("input", {
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 = h("label", {
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
- }, [ h("i", {
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: n,
73
- fileContentMap: i
72
+ namePath: s,
73
+ fileContentMap: n
74
74
  } = this;
75
- let l;
76
- l = o.fileContentKey ? i[o.fileContentKey] : ({
77
- fileContent: n,
75
+ let i;
76
+ i = o.fileContentKey ? n[o.fileContentKey] : ({
77
+ fileContent: s,
78
78
  fileContentKey: t
79
- } = await this._getFileContent(n), i[o.fileContentKey = t] = n), e == this.selectedElement && this._showJson(l);
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: n,
84
- folderTree: i,
85
- rootFolder: l,
86
- showHiddenFolder: s
87
- } = this, n = await this._getSubItems(n);
88
- if (n) {
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: n,
90
+ fullPathHash: s,
91
91
  subdirList: d,
92
92
  fileList: r
93
- } = n;
94
- n && (o.fullPathHash = n);
93
+ } = s;
94
+ s && (o.fullPathHash = s);
95
95
  let e;
96
96
  if (0 < d.length) {
97
- for (var a of d) t == l && "%" == a ? e = !0 : i.asyncFolder({
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 && ((n = i.asyncFolder({
102
+ if (e && ((s = n.asyncFolder({
103
103
  name: "%"
104
- }, t)).parentElement.hidden = !s, this.rootHiddenFolder = n), 0 < r.length) {
105
- for (var h of r) i.file({
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 rpc("getSubItems", {
113
+ return t("getSubItems", {
114
114
  dirPath: e
115
115
  });
116
116
  }
117
117
  _getFileContent(e) {
118
- return rpc("getFileContent", {
118
+ return t("getFileContent", {
119
119
  filePath: e
120
120
  });
121
121
  }
@@ -1,5 +1,5 @@
1
1
  import {
2
- defineStyledElement
2
+ defineStyledElement as e
3
3
  } from "./QyStyledElement.js";
4
4
 
5
- defineStyledElement("folder-tree", [ "../tree.js/tree.css" ]);
5
+ e("folder-tree", [ "../tree.js/tree.css" ]);
@@ -1,25 +1,17 @@
1
- function h(t, e, r) {
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 o = e[s];
6
- if ("style" === s) i.style = toStyleStr(o); else if ("classList" === s) i.classList = toClassList(o); else if (s.startsWith("data-") || s.startsWith("aria-")) i.setAttribute(s, o); else if ("attrs" === s) for (var n in o) i.setAttribute(n, o[n]); else if ("on" === s) for (var a in o) i.addEventListener(a, o[a]); else i[s] = o;
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 i.compose && i.compose(), r) {
9
- var f, l = i.shadowRoot || i;
10
- for (f of r.filter(t => null != t)) l.appendChild("string" == typeof f ? document.createTextNode(f) : f);
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 i;
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
- let cssText = `
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 inputEvent = new Event("input");
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 = h("span", {
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: n,
36
- kvElementList: i
35
+ labelDiv: i,
36
+ kvElementList: l
37
37
  } = this;
38
- 0 < i.length && (this.replaceChildren(n), i.length = 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, n = s.length;
44
- var i = () => {
45
- n == s.length - 1 && this._createKVElement(), this.dispatchEvent(inputEvent);
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(h("div", {
47
+ this.append(n("div", {
48
48
  style: "display:contents"
49
- }, [ t = h("resizable-input", {
49
+ }, [ t = n("resizable-input", {
50
50
  attrs: {
51
51
  value: t
52
52
  },
53
- oninput: i
54
- }), ":" ]), h("div", {
53
+ oninput: l
54
+ }), ":" ]), n("div", {
55
55
  style: "display:contents"
56
- }, [ e = h("resizable-input", {
56
+ }, [ e = n("resizable-input", {
57
57
  attrs: {
58
58
  value: e
59
59
  },
60
- oninput: i
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 inputEvent = new Event("input");
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 = h("span", {
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: n,
26
- elementList: s
25
+ labelDiv: s,
26
+ elementList: i
27
27
  } = this;
28
- 0 < s.length && (this.replaceChildren(n), s.length = 0);
28
+ 0 < i.length && (this.replaceChildren(s), i.length = 0);
29
29
  for (e of t) this._createInputElement(e.toString());
30
- n = t.length;
31
- return (0 == n || '"**"' != t[n - 1] && "'**'" != t[n - 1]) && this._createInputElement(),
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, n = e.length, s;
36
- this.append(h("div", {
35
+ let e = this.elementList, s = e.length, i;
36
+ this.append(n("div", {
37
37
  style: "display:contents"
38
- }, [ s = h("resizable-input", {
38
+ }, [ i = n("resizable-input", {
39
39
  attrs: {
40
40
  value: t
41
41
  },
42
42
  oninput: () => {
43
- var t = s.text;
43
+ var t = i.text;
44
44
  if ("'**'" == t || '"**"' == t) {
45
- for (let t = n + 1; t < e.length; ++t) this.removeChild(e[t].parentElement);
46
- e.length = n + 1;
47
- } else n == e.length - 1 && this._createInputElement();
48
- this.dispatchEvent(inputEvent);
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(s);
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 config = {
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
- } = config;
22
+ } = d;
23
23
  this.append(this._createNav(e, t), this._createTabDivs(t));
24
24
  let {
25
25
  tabButtons: [ a, r ],
26
- tabDivs: [ n, s ]
26
+ tabDivs: [ s, n ]
27
27
  } = this;
28
28
  bootstrap.Tab.getOrCreateInstance(a).show();
29
- e = h("explore-tree");
30
- n.appendChild(e);
31
- let i = h("query-editor");
32
- s.appendChild(i), Object.assign(this, {
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 h("nav", {
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 h("div", {
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 h("ul", {
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 h("div", {
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 h("a", {
71
+ return o("a", {
72
72
  classList: "navbar-brand"
73
73
  }, [ e ]);
74
74
  }
75
75
  _createTabDiv(e) {
76
- return h("div", {
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 h("button", {
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(h("main-page"));
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 = 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 eventInput = new Event("input");
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(h("span", {
14
+ this.style.display = "contents", this.append(t("span", {
15
15
  classList: "col-form-label col-auto p-2"
16
- }, [ this.label + ": " ]), this.resizableInput = h("resizable-input", {
17
- oninput: () => this.dispatchEvent(eventInput)
16
+ }, [ this.label + ": " ]), this.resizableInput = t("resizable-input", {
17
+ oninput: () => this.dispatchEvent(e)
18
18
  }));
19
19
  }
20
20
  get text() {
@@ -49,7 +49,7 @@ customElements.define("query-editor", class extends HTMLElement {
49
49
  super();
50
50
  }
51
51
  compose() {
52
- this.append(h("div", {
52
+ this.append(this._createEditor(), h("div", {
53
53
  classList: "btn-toolbar",
54
54
  role: "toolbar",
55
55
  style: {
@@ -121,6 +121,11 @@ customElements.define("query-editor", class extends HTMLElement {
121
121
  }
122
122
  }) ]);
123
123
  }
124
+ _createEditor() {
125
+ return h("textarea", {
126
+ style: "height:50px;width:100%"
127
+ });
128
+ }
124
129
  _createDropDownButton() {
125
130
  return h("div", {
126
131
  classList: "btn-group btn-grou-sm"