@sealcode/jdd-editor 0.1.19 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.nyc_output/cfebf13d-f940-426b-a4d3-af28d17bb6b8.json +1 -0
- package/.nyc_output/processinfo/2ad4e34c-cebb-4299-9698-08eccbbe71f7.json +1 -0
- package/.nyc_output/processinfo/71f2685b-e2c9-4db2-9f31-0dbdcacfcea1.json +1 -0
- package/.nyc_output/processinfo/cfebf13d-f940-426b-a4d3-af28d17bb6b8.json +1 -0
- package/.nyc_output/processinfo/index.json +1 -1
- package/.xunit +1 -1
- package/@types/test.test.d.ts +0 -0
- package/coverage/clover.xml +279 -259
- package/dist/src/components.sreact.js +1 -1
- package/dist/src/components.sreact.js.map +2 -2
- package/dist/src/controllers/autogrow-textarea.stimulus.js.map +2 -2
- package/dist/src/controllers/markdown-textarea.stimulus.js +1 -1
- package/dist/src/controllers/markdown-textarea.stimulus.js.map +2 -2
- package/dist/src/controllers/refresh-styles.stimulus.js +1 -1
- package/dist/src/controllers/refresh-styles.stimulus.js.map +2 -2
- package/dist/src/inputs/component-input-single-reference.js +1 -1
- package/dist/src/inputs/component-input-single-reference.js.map +2 -2
- package/dist/src/inputs/component-input-structured.js +1 -1
- package/dist/src/inputs/component-input-structured.js.map +2 -2
- package/dist/src/inputs/component-input.js +30 -7
- package/dist/src/inputs/component-input.js.map +2 -2
- package/dist/src/jdd-page.js +1 -1
- package/dist/src/jdd-page.js.map +2 -2
- package/{lib → dist}/src/test.test.js +1 -1
- package/dist/src/test.test.js.map +7 -0
- package/package.json +7 -6
- package/src/components.sreact.ts +1 -1
- package/src/controllers/autogrow-textarea.stimulus.ts +2 -1
- package/src/controllers/markdown-textarea.stimulus.ts +1 -1
- package/src/controllers/refresh-styles.stimulus.ts +3 -1
- package/src/inputs/component-input-single-reference.ts +1 -1
- package/src/inputs/component-input-structured.ts +1 -1
- package/src/inputs/component-input.ts +31 -9
- package/src/jdd-page.ts +1 -1
- package/src/test.test.ts +3 -0
- package/test.cjs +53 -0
- package/.mocharc.js +0 -6
- package/.nyc_output/9bfa248d-4f8e-4d29-9c47-d1a3961c5254.json +0 -1
- package/.nyc_output/processinfo/29e7bb87-9f10-462e-84d8-ec620cfa9e6b.json +0 -1
- package/.nyc_output/processinfo/7d7104e8-f179-427b-b4bd-30f78397e4f1.json +0 -1
- package/.nyc_output/processinfo/9bfa248d-4f8e-4d29-9c47-d1a3961c5254.json +0 -1
- package/esbuild.js +0 -23
- package/lib/src/component-preview-actions.js +0 -377
- package/lib/src/component-preview-actions.js.map +0 -7
- package/lib/src/components.sreact.js +0 -93
- package/lib/src/components.sreact.js.map +0 -7
- package/lib/src/controllers/autogrow-textarea.stimulus.js +0 -13
- package/lib/src/controllers/autogrow-textarea.stimulus.js.map +0 -7
- package/lib/src/controllers/component-debugger.stimulus.js +0 -193
- package/lib/src/controllers/component-debugger.stimulus.js.map +0 -7
- package/lib/src/controllers/exportable-textarea.stimulus.js +0 -71
- package/lib/src/controllers/exportable-textarea.stimulus.js.map +0 -7
- package/lib/src/controllers/input-image-preview.stimulus.js +0 -30
- package/lib/src/controllers/input-image-preview.stimulus.js.map +0 -7
- package/lib/src/controllers/jdd-table-paste.stimulus.js +0 -78
- package/lib/src/controllers/jdd-table-paste.stimulus.js.map +0 -7
- package/lib/src/controllers/json-editor.stimulus.js +0 -114
- package/lib/src/controllers/json-editor.stimulus.js.map +0 -7
- package/lib/src/controllers/markdown-textarea.stimulus.js +0 -174
- package/lib/src/controllers/markdown-textarea.stimulus.js.map +0 -7
- package/lib/src/controllers/refresh-on-ts-changes.stimulus.js +0 -90
- package/lib/src/controllers/refresh-on-ts-changes.stimulus.js.map +0 -7
- package/lib/src/controllers/refresh-styles.stimulus.js +0 -67
- package/lib/src/controllers/refresh-styles.stimulus.js.map +0 -7
- package/lib/src/controllers/submit-on-input.stimulus.js +0 -55
- package/lib/src/controllers/submit-on-input.stimulus.js.map +0 -7
- package/lib/src/controllers/toast.stimulus.js +0 -19
- package/lib/src/controllers/toast.stimulus.js.map +0 -7
- package/lib/src/edit-jdd-field.js +0 -94
- package/lib/src/edit-jdd-field.js.map +0 -7
- package/lib/src/index.js +0 -3
- package/lib/src/index.js.map +0 -7
- package/lib/src/inputs/component-input-enum.js +0 -30
- package/lib/src/inputs/component-input-enum.js.map +0 -7
- package/lib/src/inputs/component-input-image.js +0 -63
- package/lib/src/inputs/component-input-image.js.map +0 -7
- package/lib/src/inputs/component-input-list.js +0 -74
- package/lib/src/inputs/component-input-list.js.map +0 -7
- package/lib/src/inputs/component-input-single-reference.js +0 -31
- package/lib/src/inputs/component-input-single-reference.js.map +0 -7
- package/lib/src/inputs/component-input-structured.js +0 -36
- package/lib/src/inputs/component-input-structured.js.map +0 -7
- package/lib/src/inputs/component-input-table.js +0 -228
- package/lib/src/inputs/component-input-table.js.map +0 -7
- package/lib/src/inputs/component-input.js +0 -164
- package/lib/src/inputs/component-input.js.map +0 -7
- package/lib/src/inputs/print-arg-path.js +0 -7
- package/lib/src/inputs/print-arg-path.js.map +0 -7
- package/lib/src/jdd-creator.js +0 -131
- package/lib/src/jdd-creator.js.map +0 -7
- package/lib/src/jdd-page.js +0 -339
- package/lib/src/jdd-page.js.map +0 -7
- package/lib/src/test.test.js.map +0 -7
- /package/{.eslintrc.js → .eslintrc.cjs} +0 -0
- /package/.nyc_output/{29e7bb87-9f10-462e-84d8-ec620cfa9e6b.json → 2ad4e34c-cebb-4299-9698-08eccbbe71f7.json} +0 -0
- /package/.nyc_output/{7d7104e8-f179-427b-b4bd-30f78397e4f1.json → 71f2685b-e2c9-4db2-9f31-0dbdcacfcea1.json} +0 -0
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
import { Controller } from "stimulus";
|
|
2
|
-
const CSS_ID = "simplemde-css";
|
|
3
|
-
const JS_ID = "simplemde-js";
|
|
4
|
-
class MarkdownTextarea extends Controller {
|
|
5
|
-
constructor() {
|
|
6
|
-
super(...arguments);
|
|
7
|
-
this.mdeStarted = false;
|
|
8
|
-
}
|
|
9
|
-
addCSS() {
|
|
10
|
-
const tag = document.querySelector(`head #${CSS_ID}`);
|
|
11
|
-
if (!tag) {
|
|
12
|
-
const link = document.createElement("link");
|
|
13
|
-
link.setAttribute("rel", "stylesheet");
|
|
14
|
-
link.setAttribute("type", "text/css");
|
|
15
|
-
link.setAttribute("id", CSS_ID);
|
|
16
|
-
link.setAttribute("href", "/dist/simplemde.min.css");
|
|
17
|
-
document.head.appendChild(link);
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
async addJS() {
|
|
21
|
-
return new Promise((resolve, reject) => {
|
|
22
|
-
const once_loaded = (e) => {
|
|
23
|
-
e.target.setAttribute("loaded", "true");
|
|
24
|
-
resolve();
|
|
25
|
-
};
|
|
26
|
-
try {
|
|
27
|
-
const tag = document.querySelector(`head #${JS_ID}`);
|
|
28
|
-
if (!tag) {
|
|
29
|
-
const script = document.createElement("script");
|
|
30
|
-
script.setAttribute("id", JS_ID);
|
|
31
|
-
script.setAttribute("src", "/dist/simplemde.min.js");
|
|
32
|
-
script.addEventListener("load", once_loaded);
|
|
33
|
-
document.head.appendChild(script);
|
|
34
|
-
} else {
|
|
35
|
-
if (tag.getAttribute("loaded") == "true") {
|
|
36
|
-
resolve();
|
|
37
|
-
} else {
|
|
38
|
-
tag.addEventListener("load", once_loaded);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
} catch (e) {
|
|
42
|
-
reject(e);
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
handleResize() {
|
|
47
|
-
this.sm.codemirror.refresh();
|
|
48
|
-
}
|
|
49
|
-
async connect() {
|
|
50
|
-
var _a, _b;
|
|
51
|
-
console.log("Markdown connect!", this.element);
|
|
52
|
-
if ((_a = this.element.parentNode) == null ? void 0 : _a.querySelector(".editor-toolbar")) {
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
this.addCSS();
|
|
56
|
-
await this.addJS();
|
|
57
|
-
const component_block = this.isInsideComponentBlock();
|
|
58
|
-
if (component_block) {
|
|
59
|
-
if (this.isHiddenBlock()) {
|
|
60
|
-
const handler = () => {
|
|
61
|
-
var _a2;
|
|
62
|
-
(_a2 = this.getCheckboxThatShowsBlock()) == null ? void 0 : _a2.removeEventListener(
|
|
63
|
-
"change",
|
|
64
|
-
handler
|
|
65
|
-
);
|
|
66
|
-
setTimeout(() => this.init(), 1);
|
|
67
|
-
};
|
|
68
|
-
(_b = this.getCheckboxThatShowsBlock()) == null ? void 0 : _b.addEventListener(
|
|
69
|
-
"change",
|
|
70
|
-
handler
|
|
71
|
-
);
|
|
72
|
-
} else {
|
|
73
|
-
await this.init();
|
|
74
|
-
}
|
|
75
|
-
} else {
|
|
76
|
-
await this.init();
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
async startMDE() {
|
|
80
|
-
if (this.mdeStarted) {
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
this.sm = new SimpleMDE({
|
|
84
|
-
element: this.element,
|
|
85
|
-
autoDownloadFontAwesome: false,
|
|
86
|
-
spellChecker: false,
|
|
87
|
-
hideIcons: ["image", "preview", "side-by-side"],
|
|
88
|
-
status: ["words"],
|
|
89
|
-
autosave: { enabled: false },
|
|
90
|
-
forceSync: true,
|
|
91
|
-
initialValue: this.element.value
|
|
92
|
-
});
|
|
93
|
-
this.sm.codemirror.on("change", () => {
|
|
94
|
-
this.element.dispatchEvent(new Event("input"));
|
|
95
|
-
});
|
|
96
|
-
this.setupRefreshOnShow();
|
|
97
|
-
this.resizeObserver = new ResizeObserver(() => {
|
|
98
|
-
this.sm.codemirror.refresh();
|
|
99
|
-
});
|
|
100
|
-
const wrapper = this.sm.element.closest(
|
|
101
|
-
".grow-wrap"
|
|
102
|
-
);
|
|
103
|
-
this.resizeObserver.observe(wrapper);
|
|
104
|
-
document.addEventListener(
|
|
105
|
-
"turbo:before-morph-element",
|
|
106
|
-
function(event) {
|
|
107
|
-
const target = event.target;
|
|
108
|
-
if (target == wrapper && event.detail.newElement !== void 0) {
|
|
109
|
-
event.preventDefault();
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
);
|
|
113
|
-
this.mdeStarted = true;
|
|
114
|
-
}
|
|
115
|
-
async init() {
|
|
116
|
-
this.intersectionObserver = new IntersectionObserver(
|
|
117
|
-
(entries) => {
|
|
118
|
-
entries.forEach((entry) => {
|
|
119
|
-
if (entry.intersectionRatio > 0.2) {
|
|
120
|
-
this.startMDE();
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
root: this.element.closest(".component-arguments"),
|
|
126
|
-
rootMargin: "0px",
|
|
127
|
-
threshold: 0.25
|
|
128
|
-
}
|
|
129
|
-
);
|
|
130
|
-
this.intersectionObserver.observe(this.element);
|
|
131
|
-
}
|
|
132
|
-
isHiddenBlock() {
|
|
133
|
-
var _a;
|
|
134
|
-
return !((_a = this.getCheckboxThatShowsBlock()) == null ? void 0 : _a.checked);
|
|
135
|
-
}
|
|
136
|
-
isInsideComponentBlock() {
|
|
137
|
-
return this.element.closest(".jdd-editor__component-block");
|
|
138
|
-
}
|
|
139
|
-
getCheckboxThatShowsBlock() {
|
|
140
|
-
const block = this.isInsideComponentBlock();
|
|
141
|
-
if (!block) {
|
|
142
|
-
return null;
|
|
143
|
-
}
|
|
144
|
-
return block.querySelector(".component-collapse-toggle");
|
|
145
|
-
}
|
|
146
|
-
setupRefreshOnShow() {
|
|
147
|
-
var _a;
|
|
148
|
-
this.checkboxHandler = (e) => {
|
|
149
|
-
const target = e.target;
|
|
150
|
-
if (target.checked) {
|
|
151
|
-
this.sm.codemirror.refresh();
|
|
152
|
-
}
|
|
153
|
-
};
|
|
154
|
-
(_a = this.getCheckboxThatShowsBlock()) == null ? void 0 : _a.addEventListener(
|
|
155
|
-
"change",
|
|
156
|
-
this.checkboxHandler
|
|
157
|
-
);
|
|
158
|
-
}
|
|
159
|
-
disconnect() {
|
|
160
|
-
var _a, _b, _c;
|
|
161
|
-
console.log("disconnecting", this.element);
|
|
162
|
-
(_a = this.getCheckboxThatShowsBlock()) == null ? void 0 : _a.removeEventListener(
|
|
163
|
-
"change",
|
|
164
|
-
this.checkboxHandler
|
|
165
|
-
);
|
|
166
|
-
(_b = this.element.closest(".grow-wrap")) == null ? void 0 : _b.removeAttribute("data-turbo-permanent");
|
|
167
|
-
(_c = this.resizeObserver) == null ? void 0 : _c.unobserve(this.sm.element);
|
|
168
|
-
this.sm.toTextArea();
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
export {
|
|
172
|
-
MarkdownTextarea as default
|
|
173
|
-
};
|
|
174
|
-
//# sourceMappingURL=markdown-textarea.stimulus.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/controllers/markdown-textarea.stimulus.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-misused-promises */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Controller } from \"stimulus\";\nimport type { default as simplemde } from \"simplemde\";\n\nconst CSS_ID = \"simplemde-css\";\nconst JS_ID = \"simplemde-js\";\n\ndeclare const SimpleMDE: simplemde;\n\nexport default class MarkdownTextarea extends Controller<HTMLTextAreaElement> {\n\tsm: simplemde;\n\tcheckboxHandler: (this: HTMLElement, ev: Event) => any;\n\tresizeObserver: ResizeObserver;\n\tintersectionObserver: IntersectionObserver;\n\tmdeStarted = false;\n\n\taddCSS() {\n\t\tconst tag = document.querySelector(`head #${CSS_ID}`);\n\t\tif (!tag) {\n\t\t\tconst link = document.createElement(\"link\");\n\t\t\tlink.setAttribute(\"rel\", \"stylesheet\");\n\t\t\tlink.setAttribute(\"type\", \"text/css\");\n\t\t\tlink.setAttribute(\"id\", CSS_ID);\n\t\t\tlink.setAttribute(\"href\", \"/dist/simplemde.min.css\");\n\t\t\tdocument.head.appendChild(link);\n\t\t}\n\t}\n\n\tasync addJS() {\n\t\treturn new Promise<void>((resolve, reject) => {\n\t\t\tconst once_loaded = (e: MouseEvent) => {\n\t\t\t\t(e.target as HTMLScriptElement).setAttribute(\"loaded\", \"true\");\n\t\t\t\tresolve();\n\t\t\t};\n\t\t\ttry {\n\t\t\t\tconst tag = document.querySelector(`head #${JS_ID}`);\n\t\t\t\tif (!tag) {\n\t\t\t\t\tconst script = document.createElement(\"script\");\n\t\t\t\t\tscript.setAttribute(\"id\", JS_ID);\n\t\t\t\t\tscript.setAttribute(\"src\", \"/dist/simplemde.min.js\");\n\t\t\t\t\tscript.addEventListener(\"load\", once_loaded);\n\t\t\t\t\tdocument.head.appendChild(script);\n\t\t\t\t} else {\n\t\t\t\t\tif (tag.getAttribute(\"loaded\") == \"true\") {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttag.addEventListener(\"load\", once_loaded);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treject(e);\n\t\t\t}\n\t\t});\n\t}\n\n\thandleResize() {\n\t\tthis.sm.codemirror.refresh();\n\t}\n\n\tasync connect() {\n\t\tconsole.log(\"Markdown connect!\", this.element);\n\t\tif (this.element.parentNode?.querySelector(\".editor-toolbar\")) {\n\t\t\t//already loaded, quit;\n\t\t\treturn;\n\t\t}\n\t\tthis.addCSS();\n\t\tawait this.addJS();\n\t\tconst component_block = this.isInsideComponentBlock();\n\n\t\t// some offloading of starting the MDE, because it is slow on Chrome\n\t\tif (component_block) {\n\t\t\tif (this.isHiddenBlock()) {\n\t\t\t\tconst handler = () => {\n\t\t\t\t\tthis.getCheckboxThatShowsBlock()?.removeEventListener(\n\t\t\t\t\t\t\"change\",\n\t\t\t\t\t\thandler\n\t\t\t\t\t);\n\t\t\t\t\tsetTimeout(() => this.init(), 1);\n\t\t\t\t};\n\t\t\t\tthis.getCheckboxThatShowsBlock()?.addEventListener(\n\t\t\t\t\t\"change\",\n\t\t\t\t\thandler\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tawait this.init();\n\t\t\t}\n\t\t} else {\n\t\t\tawait this.init();\n\t\t}\n\t}\n\n\tasync startMDE() {\n\t\tif (this.mdeStarted) {\n\t\t\treturn;\n\t\t}\n\t\tthis.sm = new (SimpleMDE as any)({\n\t\t\telement: this.element,\n\t\t\tautoDownloadFontAwesome: false,\n\t\t\tspellChecker: false,\n\t\t\thideIcons: [\"image\", \"preview\", \"side-by-side\"],\n\t\t\tstatus: [\"words\"],\n\t\t\tautosave: { enabled: false },\n\t\t\tforceSync: true, // for autosubmit to work\n\t\t\tinitialValue: this.element.value,\n\t\t}) as simplemde;\n\t\t// this.element.closest(\".grow-wrap\").setAttribute(\"data-turbo-permanent\", \"\");\n\t\tthis.sm.codemirror.on(\"change\", () => {\n\t\t\tthis.element.dispatchEvent(new Event(\"input\"));\n\t\t});\n\t\tthis.setupRefreshOnShow();\n\t\tthis.resizeObserver = new ResizeObserver(() => {\n\t\t\tthis.sm.codemirror.refresh();\n\t\t});\n\t\tconst wrapper = (this.sm as any).element.closest(\n\t\t\t\".grow-wrap\"\n\t\t) as HTMLDivElement;\n\t\tthis.resizeObserver.observe(wrapper);\n\t\tdocument.addEventListener(\n\t\t\t\"turbo:before-morph-element\",\n\t\t\tfunction (event: BeforeUnloadEvent) {\n\t\t\t\tconst target = event.target as HTMLDivElement;\n\t\t\t\t// disallow morphing, but allow removing\n\t\t\t\tif (\n\t\t\t\t\ttarget == wrapper &&\n\t\t\t\t\t(event as any).detail.newElement !== undefined\n\t\t\t\t) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t\tthis.mdeStarted = true;\n\t}\n\n\tasync init() {\n\t\tthis.intersectionObserver = new IntersectionObserver(\n\t\t\t(entries) => {\n\t\t\t\tentries.forEach((entry) => {\n\t\t\t\t\tif (entry.intersectionRatio > 0.2) {\n\t\t\t\t\t\tthis.startMDE();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\t{\n\t\t\t\troot: this.element.closest(\".component-arguments\"),\n\t\t\t\trootMargin: \"0px\",\n\t\t\t\tthreshold: 0.25,\n\t\t\t}\n\t\t);\n\t\tthis.intersectionObserver.observe(this.element);\n\t}\n\n\tisHiddenBlock() {\n\t\treturn !this.getCheckboxThatShowsBlock()?.checked;\n\t}\n\n\tisInsideComponentBlock(): false | HTMLDivElement {\n\t\treturn this.element.closest(\".jdd-editor__component-block\") as\n\t\t\t| HTMLDivElement\n\t\t\t| false;\n\t}\n\n\tgetCheckboxThatShowsBlock(): HTMLInputElement | null {\n\t\tconst block = this.isInsideComponentBlock();\n\t\tif (!block) {\n\t\t\treturn null;\n\t\t}\n\t\treturn block.querySelector(\".component-collapse-toggle\");\n\t}\n\n\tsetupRefreshOnShow() {\n\t\tthis.checkboxHandler = (e) => {\n\t\t\tconst target = e.target as HTMLInputElement;\n\t\t\tif (target.checked) {\n\t\t\t\tthis.sm.codemirror.refresh();\n\t\t\t}\n\t\t};\n\t\tthis.getCheckboxThatShowsBlock()?.addEventListener(\n\t\t\t\"change\",\n\t\t\tthis.checkboxHandler\n\t\t);\n\t}\n\n\tdisconnect() {\n\t\tconsole.log(\"disconnecting\", this.element);\n\t\tthis.getCheckboxThatShowsBlock()?.removeEventListener(\n\t\t\t\"change\",\n\t\t\tthis.checkboxHandler\n\t\t);\n\t\tthis.element\n\t\t\t.closest(\".grow-wrap\")\n\t\t\t?.removeAttribute(\"data-turbo-permanent\");\n\t\tthis.resizeObserver?.unobserve((this.sm as any).element as HTMLElement);\n\t\tthis.sm.toTextArea();\n\t}\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["_a"]
|
|
7
|
-
}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { Controller } from "stimulus";
|
|
2
|
-
const APP_DOWN_ERROR_MESSAGE = "App is currently down";
|
|
3
|
-
const sleep = (time) => new Promise((resolve) => {
|
|
4
|
-
setTimeout(resolve, time);
|
|
5
|
-
});
|
|
6
|
-
async function get_status() {
|
|
7
|
-
const r = await fetch("/status.json");
|
|
8
|
-
return await r.json();
|
|
9
|
-
}
|
|
10
|
-
async function wait_for_run_id_to_change() {
|
|
11
|
-
let first_timestamp;
|
|
12
|
-
try {
|
|
13
|
-
const { started_at } = await get_status();
|
|
14
|
-
first_timestamp = started_at;
|
|
15
|
-
} catch (e) {
|
|
16
|
-
await wait_for_app_to_be_stable();
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
if (!first_timestamp) {
|
|
20
|
-
throw new Error(APP_DOWN_ERROR_MESSAGE);
|
|
21
|
-
}
|
|
22
|
-
while (true) {
|
|
23
|
-
const { started_at } = await get_status().catch(() => ({
|
|
24
|
-
started_at: first_timestamp
|
|
25
|
-
}));
|
|
26
|
-
if (started_at !== first_timestamp) {
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
await sleep(100);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
async function wait_for_app_to_be_stable(n = 3) {
|
|
33
|
-
console.log("Waiting for app to be stable....");
|
|
34
|
-
let counter = 0;
|
|
35
|
-
while (true) {
|
|
36
|
-
const { status } = await get_status().catch(() => ({
|
|
37
|
-
status: "down"
|
|
38
|
-
}));
|
|
39
|
-
if (status == "running") {
|
|
40
|
-
console.log(counter);
|
|
41
|
-
counter++;
|
|
42
|
-
} else {
|
|
43
|
-
counter = 0;
|
|
44
|
-
}
|
|
45
|
-
if (counter == n) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
await sleep(100);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
async function wait_for_app_restart() {
|
|
52
|
-
try {
|
|
53
|
-
await wait_for_run_id_to_change();
|
|
54
|
-
} catch (e) {
|
|
55
|
-
if (e.message !== APP_DOWN_ERROR_MESSAGE) {
|
|
56
|
-
throw e;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
await wait_for_app_to_be_stable();
|
|
60
|
-
}
|
|
61
|
-
class RefreshOnTSChanges extends Controller {
|
|
62
|
-
async connect() {
|
|
63
|
-
const { port, watch } = await fetch("/dist/notifier.json").then(
|
|
64
|
-
(r) => r.json()
|
|
65
|
-
);
|
|
66
|
-
if (!watch) {
|
|
67
|
-
console.warn(
|
|
68
|
-
"Not running auto refresh on watch because the build process is not running in watch mode"
|
|
69
|
-
);
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
const socket = new WebSocket(`ws://localhost:${port}`);
|
|
73
|
-
socket.onmessage = async (message) => {
|
|
74
|
-
const data = message.data;
|
|
75
|
-
if (typeof data === "string" && data.endsWith("-ts")) {
|
|
76
|
-
document.documentElement.classList.add("restarting");
|
|
77
|
-
await wait_for_app_restart();
|
|
78
|
-
document.documentElement.dispatchEvent(new Event("ts-rebuilt"));
|
|
79
|
-
document.documentElement.classList.remove("restarting");
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
async disconnect() {
|
|
84
|
-
this.socket.close();
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
export {
|
|
88
|
-
RefreshOnTSChanges as default
|
|
89
|
-
};
|
|
90
|
-
//# sourceMappingURL=refresh-on-ts-changes.stimulus.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/controllers/refresh-on-ts-changes.stimulus.ts"],
|
|
4
|
-
"sourcesContent": ["import { Controller } from \"stimulus\";\n\nconst APP_DOWN_ERROR_MESSAGE = \"App is currently down\";\n\nconst sleep = (time: number) =>\n\tnew Promise((resolve) => {\n\t\tsetTimeout(resolve, time);\n\t});\n\nasync function get_status(): Promise<{ started_at: number; status: string }> {\n\tconst r = await fetch(\"/status.json\");\n\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\treturn (await r.json()) as { started_at: number; status: string };\n}\n\nasync function wait_for_run_id_to_change() {\n\tlet first_timestamp: number;\n\ttry {\n\t\tconst { started_at } = await get_status();\n\t\tfirst_timestamp = started_at;\n\t} catch (e) {\n\t\tawait wait_for_app_to_be_stable();\n\t\treturn;\n\t}\n\n\tif (!first_timestamp) {\n\t\tthrow new Error(APP_DOWN_ERROR_MESSAGE);\n\t}\n\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tconst { started_at } = await get_status().catch(() => ({\n\t\t\tstarted_at: first_timestamp,\n\t\t}));\n\t\tif (started_at !== first_timestamp) {\n\t\t\treturn;\n\t\t}\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tawait sleep(100);\n\t}\n}\n\nasync function wait_for_app_to_be_stable(n = 3) {\n\t// eslint-disable-next-line no-console\n\tconsole.log(\"Waiting for app to be stable....\");\n\tlet counter = 0;\n\t// eslint-disable-next-line no-constant-condition\n\twhile (true) {\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tconst { status } = await get_status().catch(() => ({\n\t\t\tstatus: \"down\",\n\t\t}));\n\t\tif (status == \"running\") {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.log(counter);\n\t\t\tcounter++;\n\t\t} else {\n\t\t\tcounter = 0;\n\t\t}\n\t\tif (counter == n) {\n\t\t\treturn;\n\t\t}\n\t\t// eslint-disable-next-line no-await-in-loop\n\t\tawait sleep(100);\n\t}\n}\n\nasync function wait_for_app_restart() {\n\ttry {\n\t\tawait wait_for_run_id_to_change();\n\t} catch (e) {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n\t\tif (e.message !== APP_DOWN_ERROR_MESSAGE) {\n\t\t\tthrow e;\n\t\t}\n\t}\n\tawait wait_for_app_to_be_stable();\n}\n\nexport default class RefreshOnTSChanges extends Controller {\n\tsocket: WebSocket;\n\n\tasync connect() {\n\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\tconst { port, watch } = (await fetch(\"/dist/notifier.json\").then((r) =>\n\t\t\tr.json()\n\t\t)) as { port: number; watch: boolean };\n\t\tif (!watch) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn(\n\t\t\t\t\"Not running auto refresh on watch because the build process is not running in watch mode\"\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t\tconst socket = new WebSocket(`ws://localhost:${port}`);\n\t\tsocket.onmessage = async (message) => {\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tconst data = message.data as unknown;\n\t\t\tif (typeof data === \"string\" && data.endsWith(\"-ts\")) {\n\t\t\t\tdocument.documentElement.classList.add(\"restarting\");\n\t\t\t\tawait wait_for_app_restart();\n\t\t\t\tdocument.documentElement.dispatchEvent(new Event(\"ts-rebuilt\"));\n\t\t\t\tdocument.documentElement.classList.remove(\"restarting\");\n\t\t\t}\n\t\t};\n\t}\n\n\tasync disconnect() {\n\t\tthis.socket.close();\n\t}\n}\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,kBAAkB;AAE3B,MAAM,yBAAyB;AAE/B,MAAM,QAAQ,CAAC,SACd,IAAI,QAAQ,CAAC,YAAY;AACxB,aAAW,SAAS,IAAI;AACzB,CAAC;AAEF,eAAe,aAA8D;AAC5E,QAAM,IAAI,MAAM,MAAM,cAAc;AAEpC,SAAQ,MAAM,EAAE,KAAK;AACtB;AAEA,eAAe,4BAA4B;AAC1C,MAAI;AACJ,MAAI;AACH,UAAM,EAAE,WAAW,IAAI,MAAM,WAAW;AACxC,sBAAkB;AAAA,EACnB,SAAS,GAAP;AACD,UAAM,0BAA0B;AAChC;AAAA,EACD;AAEA,MAAI,CAAC,iBAAiB;AACrB,UAAM,IAAI,MAAM,sBAAsB;AAAA,EACvC;AAGA,SAAO,MAAM;AAEZ,UAAM,EAAE,WAAW,IAAI,MAAM,WAAW,EAAE,MAAM,OAAO;AAAA,MACtD,YAAY;AAAA,IACb,EAAE;AACF,QAAI,eAAe,iBAAiB;AACnC;AAAA,IACD;AAEA,UAAM,MAAM,GAAG;AAAA,EAChB;AACD;AAEA,eAAe,0BAA0B,IAAI,GAAG;AAE/C,UAAQ,IAAI,kCAAkC;AAC9C,MAAI,UAAU;AAEd,SAAO,MAAM;AAEZ,UAAM,EAAE,OAAO,IAAI,MAAM,WAAW,EAAE,MAAM,OAAO;AAAA,MAClD,QAAQ;AAAA,IACT,EAAE;AACF,QAAI,UAAU,WAAW;AAExB,cAAQ,IAAI,OAAO;AACnB;AAAA,IACD,OAAO;AACN,gBAAU;AAAA,IACX;AACA,QAAI,WAAW,GAAG;AACjB;AAAA,IACD;AAEA,UAAM,MAAM,GAAG;AAAA,EAChB;AACD;AAEA,eAAe,uBAAuB;AACrC,MAAI;AACH,UAAM,0BAA0B;AAAA,EACjC,SAAS,GAAP;AAED,QAAI,EAAE,YAAY,wBAAwB;AACzC,YAAM;AAAA,IACP;AAAA,EACD;AACA,QAAM,0BAA0B;AACjC;AAEA,MAAO,2BAAyC,WAAW;AAAA,EAG1D,MAAM,UAAU;AAEf,UAAM,EAAE,MAAM,MAAM,IAAK,MAAM,MAAM,qBAAqB,EAAE;AAAA,MAAK,CAAC,MACjE,EAAE,KAAK;AAAA,IACR;AACA,QAAI,CAAC,OAAO;AAEX,cAAQ;AAAA,QACP;AAAA,MACD;AACA;AAAA,IACD;AACA,UAAM,SAAS,IAAI,UAAU,kBAAkB,MAAM;AACrD,WAAO,YAAY,OAAO,YAAY;AAErC,YAAM,OAAO,QAAQ;AACrB,UAAI,OAAO,SAAS,YAAY,KAAK,SAAS,KAAK,GAAG;AACrD,iBAAS,gBAAgB,UAAU,IAAI,YAAY;AACnD,cAAM,qBAAqB;AAC3B,iBAAS,gBAAgB,cAAc,IAAI,MAAM,YAAY,CAAC;AAC9D,iBAAS,gBAAgB,UAAU,OAAO,YAAY;AAAA,MACvD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,aAAa;AAClB,SAAK,OAAO,MAAM;AAAA,EACnB;AACD;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { Controller } from "stimulus";
|
|
2
|
-
function make_new_link(href) {
|
|
3
|
-
const new_link = document.createElement("link");
|
|
4
|
-
new_link.rel = "stylesheet";
|
|
5
|
-
new_link.href = href.split("?")[0] + `?${Math.random()}+${Math.random()}`;
|
|
6
|
-
new_link.type = "text/css";
|
|
7
|
-
return new_link;
|
|
8
|
-
}
|
|
9
|
-
function refresh_css() {
|
|
10
|
-
const actual_hrefs = new Set(
|
|
11
|
-
Array.from(document.querySelectorAll("head link[rel=stylesheet]")).map(
|
|
12
|
-
(e) => {
|
|
13
|
-
var _a;
|
|
14
|
-
return (_a = e == null ? void 0 : e.getAttribute("href")) == null ? void 0 : _a.split("?")[0];
|
|
15
|
-
}
|
|
16
|
-
)
|
|
17
|
-
);
|
|
18
|
-
return actual_hrefs.forEach((href) => {
|
|
19
|
-
var _a;
|
|
20
|
-
const new_link = make_new_link(href);
|
|
21
|
-
const to_delete_after_load = Array.from(
|
|
22
|
-
document.querySelectorAll(
|
|
23
|
-
`head link[rel=stylesheet][href^="${href}"]`
|
|
24
|
-
)
|
|
25
|
-
);
|
|
26
|
-
new_link.onload = function() {
|
|
27
|
-
setTimeout(() => {
|
|
28
|
-
to_delete_after_load.forEach((to_remove) => {
|
|
29
|
-
to_remove.remove();
|
|
30
|
-
});
|
|
31
|
-
}, 100);
|
|
32
|
-
};
|
|
33
|
-
(_a = document.querySelector("head")) == null ? void 0 : _a.appendChild(new_link);
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
class RefreshStyles extends Controller {
|
|
37
|
-
async connect() {
|
|
38
|
-
const { port } = await fetch("/dist/notifier.json").then(
|
|
39
|
-
(r) => r.json()
|
|
40
|
-
);
|
|
41
|
-
try {
|
|
42
|
-
this.socket = new WebSocket(`ws://localhost:${port}`);
|
|
43
|
-
} catch (e) {
|
|
44
|
-
console.error(e);
|
|
45
|
-
console.warn(
|
|
46
|
-
"Not enabling auto style refresh due to the above error"
|
|
47
|
-
);
|
|
48
|
-
}
|
|
49
|
-
this.socket.onmessage = async (message) => {
|
|
50
|
-
if (message.data === "css") {
|
|
51
|
-
refresh_css();
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
document.documentElement.addEventListener("turbo:morph", refresh_css);
|
|
55
|
-
}
|
|
56
|
-
async disconnect() {
|
|
57
|
-
this.socket.close();
|
|
58
|
-
document.documentElement.removeEventListener(
|
|
59
|
-
"turbo:morph",
|
|
60
|
-
refresh_css
|
|
61
|
-
);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
export {
|
|
65
|
-
RefreshStyles as default
|
|
66
|
-
};
|
|
67
|
-
//# sourceMappingURL=refresh-styles.stimulus.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/controllers/refresh-styles.stimulus.ts"],
|
|
4
|
-
"sourcesContent": ["import { Controller } from \"stimulus\";\n\nfunction make_new_link(href: string) {\n\tconst new_link = document.createElement(\"link\");\n\tnew_link.rel = \"stylesheet\";\n\tnew_link.href = href.split(\"?\")[0] + `?${Math.random()}+${Math.random()}`;\n\tnew_link.type = \"text/css\";\n\treturn new_link;\n}\n\nfunction refresh_css() {\n\tconst actual_hrefs = new Set(\n\t\tArray.from(document.querySelectorAll(\"head link[rel=stylesheet]\")).map(\n\t\t\t(e) => e?.getAttribute(\"href\")?.split(\"?\")[0]\n\t\t)\n\t);\n\treturn actual_hrefs.forEach((href: string) => {\n\t\tconst new_link = make_new_link(href);\n\t\tconst to_delete_after_load = Array.from(\n\t\t\tdocument.querySelectorAll(\n\t\t\t\t`head link[rel=stylesheet][href^=\"${href}\"]`\n\t\t\t)\n\t\t);\n\t\tnew_link.onload = function () {\n\t\t\t// delay to prevent flicker\n\t\t\tsetTimeout(() => {\n\t\t\t\tto_delete_after_load.forEach((to_remove) => {\n\t\t\t\t\tto_remove.remove();\n\t\t\t\t});\n\t\t\t}, 100);\n\t\t};\n\t\tdocument.querySelector(\"head\")?.appendChild(new_link);\n\t});\n}\n\nexport default class RefreshStyles extends Controller {\n\tsocket: WebSocket;\n\n\tasync connect() {\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst { port } = await fetch(\"/dist/notifier.json\").then((r) =>\n\t\t\tr.json()\n\t\t);\n\t\ttry {\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\n\t\t\tthis.socket = new WebSocket(`ws://localhost:${port as number}`);\n\t\t} catch (e) {\n\t\t\tconsole.error(e);\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.warn(\n\t\t\t\t\"Not enabling auto style refresh due to the above error\"\n\t\t\t);\n\t\t}\n\t\tthis.socket.onmessage = async (message) => {\n\t\t\tif (message.data === \"css\") {\n\t\t\t\trefresh_css();\n\t\t\t}\n\t\t};\n\t\tdocument.documentElement.addEventListener(\"turbo:morph\", refresh_css);\n\t}\n\n\tasync disconnect() {\n\t\tthis.socket.close();\n\t\tdocument.documentElement.removeEventListener(\n\t\t\t\"turbo:morph\",\n\t\t\trefresh_css\n\t\t);\n\t}\n}\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,kBAAkB;AAE3B,SAAS,cAAc,MAAc;AACpC,QAAM,WAAW,SAAS,cAAc,MAAM;AAC9C,WAAS,MAAM;AACf,WAAS,OAAO,KAAK,MAAM,GAAG,EAAE,KAAK,IAAI,KAAK,OAAO,KAAK,KAAK,OAAO;AACtE,WAAS,OAAO;AAChB,SAAO;AACR;AAEA,SAAS,cAAc;AACtB,QAAM,eAAe,IAAI;AAAA,IACxB,MAAM,KAAK,SAAS,iBAAiB,2BAA2B,CAAC,EAAE;AAAA,MAClE,CAAC,MAAG;AAbP;AAaU,4CAAG,aAAa,YAAhB,mBAAyB,MAAM,KAAK;AAAA;AAAA,IAC5C;AAAA,EACD;AACA,SAAO,aAAa,QAAQ,CAAC,SAAiB;AAhB/C;AAiBE,UAAM,WAAW,cAAc,IAAI;AACnC,UAAM,uBAAuB,MAAM;AAAA,MAClC,SAAS;AAAA,QACR,oCAAoC;AAAA,MACrC;AAAA,IACD;AACA,aAAS,SAAS,WAAY;AAE7B,iBAAW,MAAM;AAChB,6BAAqB,QAAQ,CAAC,cAAc;AAC3C,oBAAU,OAAO;AAAA,QAClB,CAAC;AAAA,MACF,GAAG,GAAG;AAAA,IACP;AACA,mBAAS,cAAc,MAAM,MAA7B,mBAAgC,YAAY;AAAA,EAC7C,CAAC;AACF;AAEA,MAAO,sBAAoC,WAAW;AAAA,EAGrD,MAAM,UAAU;AAEf,UAAM,EAAE,KAAK,IAAI,MAAM,MAAM,qBAAqB,EAAE;AAAA,MAAK,CAAC,MACzD,EAAE,KAAK;AAAA,IACR;AACA,QAAI;AAGH,WAAK,SAAS,IAAI,UAAU,kBAAkB,MAAgB;AAAA,IAC/D,SAAS,GAAP;AACD,cAAQ,MAAM,CAAC;AAEf,cAAQ;AAAA,QACP;AAAA,MACD;AAAA,IACD;AACA,SAAK,OAAO,YAAY,OAAO,YAAY;AAC1C,UAAI,QAAQ,SAAS,OAAO;AAC3B,oBAAY;AAAA,MACb;AAAA,IACD;AACA,aAAS,gBAAgB,iBAAiB,eAAe,WAAW;AAAA,EACrE;AAAA,EAEA,MAAM,aAAa;AAClB,SAAK,OAAO,MAAM;AAClB,aAAS,gBAAgB;AAAA,MACxB;AAAA,MACA;AAAA,IACD;AAAA,EACD;AACD;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { Controller } from "stimulus";
|
|
2
|
-
import { throttle } from "throttle-debounce";
|
|
3
|
-
class SubmitOnInput extends Controller {
|
|
4
|
-
connect() {
|
|
5
|
-
this.sendValues = throttle(
|
|
6
|
-
500,
|
|
7
|
-
() => {
|
|
8
|
-
var _a, _b, _c;
|
|
9
|
-
const component_index = ((_a = this.element.closest(".jdd-editor__component-block")) == null ? void 0 : _a.getAttribute("data-component-index")) || null;
|
|
10
|
-
if (component_index == null) {
|
|
11
|
-
(_b = this.element.closest("form")) == null ? void 0 : _b.requestSubmit();
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
const updateOnlyPreview = (event) => {
|
|
15
|
-
var _a2;
|
|
16
|
-
const target = event.target;
|
|
17
|
-
if ([
|
|
18
|
-
"component-arguments",
|
|
19
|
-
"component-preview__header"
|
|
20
|
-
].includes(target.id) || ((_a2 = target.parentElement) == null ? void 0 : _a2.classList.contains(
|
|
21
|
-
"jdd-container"
|
|
22
|
-
)) && !target.classList.contains(
|
|
23
|
-
"component-number-" + component_index
|
|
24
|
-
)) {
|
|
25
|
-
event.preventDefault();
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
document.addEventListener(
|
|
29
|
-
"turbo:before-morph-element",
|
|
30
|
-
updateOnlyPreview
|
|
31
|
-
);
|
|
32
|
-
(_c = this.element.closest("form")) == null ? void 0 : _c.requestSubmit();
|
|
33
|
-
const after_submit = () => {
|
|
34
|
-
document.removeEventListener(
|
|
35
|
-
"turbo:before-morph-element",
|
|
36
|
-
updateOnlyPreview
|
|
37
|
-
);
|
|
38
|
-
document.removeEventListener("turbo:morph", after_submit);
|
|
39
|
-
};
|
|
40
|
-
document.addEventListener("turbo:morph", after_submit);
|
|
41
|
-
},
|
|
42
|
-
{ noTrailing: false }
|
|
43
|
-
);
|
|
44
|
-
}
|
|
45
|
-
makePermanent() {
|
|
46
|
-
this.element.setAttribute("data-turbo-permanent", "");
|
|
47
|
-
}
|
|
48
|
-
makeNotPermanent() {
|
|
49
|
-
this.element.removeAttribute("data-turbo-permanent");
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
export {
|
|
53
|
-
SubmitOnInput as default
|
|
54
|
-
};
|
|
55
|
-
//# sourceMappingURL=submit-on-input.stimulus.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/controllers/submit-on-input.stimulus.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable @typescript-eslint/consistent-type-assertions, @typescript-eslint/no-unsafe-assignment */\nimport { Controller } from \"stimulus\";\nimport { throttle } from \"throttle-debounce\";\n\nexport default class SubmitOnInput extends Controller<HTMLTextAreaElement> {\n\tsendValues: () => void;\n\n\tconnect() {\n\t\tthis.sendValues = throttle(\n\t\t\t500,\n\t\t\t() => {\n\t\t\t\tconst component_index =\n\t\t\t\t\tthis.element\n\t\t\t\t\t\t.closest(\".jdd-editor__component-block\")\n\t\t\t\t\t\t?.getAttribute(\"data-component-index\") || null;\n\t\t\t\tif (component_index == null) {\n\t\t\t\t\t// not an input within a JDD component editor\n\t\t\t\t\tthis.element.closest(\"form\")?.requestSubmit();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// During this automatic submit, we force idiomorph to only update the components edited by this input.\n\t\t\t\tconst updateOnlyPreview = (event: BeforeUnloadEvent) => {\n\t\t\t\t\tconst target = event.target as HTMLDivElement;\n\t\t\t\t\tif (\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\"component-arguments\",\n\t\t\t\t\t\t\t\"component-preview__header\",\n\t\t\t\t\t\t].includes(target.id) ||\n\t\t\t\t\t\t(target.parentElement?.classList.contains(\n\t\t\t\t\t\t\t\"jdd-container\"\n\t\t\t\t\t\t) &&\n\t\t\t\t\t\t\t!target.classList.contains(\n\t\t\t\t\t\t\t\t\"component-number-\" + component_index\n\t\t\t\t\t\t\t))\n\t\t\t\t\t) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tdocument.addEventListener(\n\t\t\t\t\t\"turbo:before-morph-element\",\n\t\t\t\t\tupdateOnlyPreview\n\t\t\t\t);\n\t\t\t\tthis.element.closest(\"form\")?.requestSubmit();\n\t\t\t\tconst after_submit = () => {\n\t\t\t\t\tdocument.removeEventListener(\n\t\t\t\t\t\t\"turbo:before-morph-element\",\n\t\t\t\t\t\tupdateOnlyPreview\n\t\t\t\t\t);\n\t\t\t\t\tdocument.removeEventListener(\"turbo:morph\", after_submit);\n\t\t\t\t};\n\t\t\t\tdocument.addEventListener(\"turbo:morph\", after_submit);\n\t\t\t},\n\t\t\t{ noTrailing: false }\n\t\t);\n\t}\n\n\tmakePermanent() {\n\t\t// this prevents morphing from overwriting the input value with previous half-dane values - https://github.com/hotwired/turbo/issues/1199\n\t\tthis.element.setAttribute(\"data-turbo-permanent\", \"\");\n\t}\n\n\tmakeNotPermanent() {\n\t\tthis.element.removeAttribute(\"data-turbo-permanent\");\n\t}\n}\n"],
|
|
5
|
-
"mappings": "AACA,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AAEzB,MAAO,sBAAoC,WAAgC;AAAA,EAG1E,UAAU;AACT,SAAK,aAAa;AAAA,MACjB;AAAA,MACA,MAAM;AAVT;AAWI,cAAM,oBACL,UAAK,QACH,QAAQ,8BAA8B,MADxC,mBAEG,aAAa,4BAA2B;AAC5C,YAAI,mBAAmB,MAAM;AAE5B,qBAAK,QAAQ,QAAQ,MAAM,MAA3B,mBAA8B;AAC9B;AAAA,QACD;AAGA,cAAM,oBAAoB,CAAC,UAA6B;AAtB5D,cAAAA;AAuBK,gBAAM,SAAS,MAAM;AACrB,cACC;AAAA,YACC;AAAA,YACA;AAAA,UACD,EAAE,SAAS,OAAO,EAAE,OACnBA,MAAA,OAAO,kBAAP,gBAAAA,IAAsB,UAAU;AAAA,YAChC;AAAA,gBAEA,CAAC,OAAO,UAAU;AAAA,YACjB,sBAAsB;AAAA,UACvB,GACA;AACD,kBAAM,eAAe;AAAA,UACtB;AAAA,QACD;AACA,iBAAS;AAAA,UACR;AAAA,UACA;AAAA,QACD;AACA,mBAAK,QAAQ,QAAQ,MAAM,MAA3B,mBAA8B;AAC9B,cAAM,eAAe,MAAM;AAC1B,mBAAS;AAAA,YACR;AAAA,YACA;AAAA,UACD;AACA,mBAAS,oBAAoB,eAAe,YAAY;AAAA,QACzD;AACA,iBAAS,iBAAiB,eAAe,YAAY;AAAA,MACtD;AAAA,MACA,EAAE,YAAY,MAAM;AAAA,IACrB;AAAA,EACD;AAAA,EAEA,gBAAgB;AAEf,SAAK,QAAQ,aAAa,wBAAwB,EAAE;AAAA,EACrD;AAAA,EAEA,mBAAmB;AAClB,SAAK,QAAQ,gBAAgB,sBAAsB;AAAA,EACpD;AACD;",
|
|
6
|
-
"names": ["_a"]
|
|
7
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Controller } from "stimulus";
|
|
2
|
-
class Toast extends Controller {
|
|
3
|
-
connect() {
|
|
4
|
-
console.log("connect");
|
|
5
|
-
this.element.addEventListener(
|
|
6
|
-
"animationend",
|
|
7
|
-
({ animationName }) => {
|
|
8
|
-
var _a;
|
|
9
|
-
if (animationName == "fade-out") {
|
|
10
|
-
(_a = this.element.parentElement) == null ? void 0 : _a.removeChild(this.element);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
export {
|
|
17
|
-
Toast as default
|
|
18
|
-
};
|
|
19
|
-
//# sourceMappingURL=toast.stimulus.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/controllers/toast.stimulus.ts"],
|
|
4
|
-
"sourcesContent": ["import { Controller } from \"stimulus\";\n\nexport default class Toast extends Controller {\n\tconnect() {\n\t\tconsole.log(\"connect\");\n\t\tthis.element.addEventListener(\n\t\t\t\"animationend\",\n\t\t\t({ animationName }: AnimationEvent) => {\n\t\t\t\tif (animationName == \"fade-out\") {\n\t\t\t\t\tthis.element.parentElement?.removeChild(this.element);\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t}\n}\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,kBAAkB;AAE3B,MAAO,cAA4B,WAAW;AAAA,EAC7C,UAAU;AACT,YAAQ,IAAI,SAAS;AACrB,SAAK,QAAQ;AAAA,MACZ;AAAA,MACA,CAAC,EAAE,cAAc,MAAsB;AAP1C;AAQI,YAAI,iBAAiB,YAAY;AAChC,qBAAK,QAAQ,kBAAb,mBAA4B,YAAY,KAAK;AAAA,QAC9C;AAAA,MACD;AAAA,IACD;AAAA,EACD;AACD;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
documentContainerFromStorage,
|
|
3
|
-
documentToParsed,
|
|
4
|
-
documentToStorage
|
|
5
|
-
} from "@sealcode/jdd";
|
|
6
|
-
import JDDCreator from "./jdd-creator.js";
|
|
7
|
-
import { tempstream } from "tempstream";
|
|
8
|
-
class EditJDDField extends JDDCreator {
|
|
9
|
-
async getID(ctx) {
|
|
10
|
-
const id = ctx.params["id"];
|
|
11
|
-
if (!id) {
|
|
12
|
-
throw new Error("Missing URL parameter: id");
|
|
13
|
-
}
|
|
14
|
-
return id;
|
|
15
|
-
}
|
|
16
|
-
async getItem(ctx) {
|
|
17
|
-
const {
|
|
18
|
-
items: [item]
|
|
19
|
-
} = await this.getCollection(ctx).list(ctx.$context).ids([await this.getID(ctx)]).fetch();
|
|
20
|
-
if (!item) {
|
|
21
|
-
throw new Error(
|
|
22
|
-
"Couldn't get item of id " + await this.getID(ctx)
|
|
23
|
-
);
|
|
24
|
-
}
|
|
25
|
-
return item;
|
|
26
|
-
}
|
|
27
|
-
mount(router, path) {
|
|
28
|
-
super.mount(router, path);
|
|
29
|
-
router.post(path + "save/", async (ctx) => {
|
|
30
|
-
const { state } = await this.extractState(ctx);
|
|
31
|
-
const item = await this.getItem(ctx);
|
|
32
|
-
item.set(
|
|
33
|
-
this.getJDDFieldName(),
|
|
34
|
-
(await documentToStorage(
|
|
35
|
-
this.registry,
|
|
36
|
-
this.makeJDDContext(ctx),
|
|
37
|
-
{
|
|
38
|
-
value: state.components
|
|
39
|
-
}
|
|
40
|
-
)).value
|
|
41
|
-
);
|
|
42
|
-
await item.save(ctx.$context);
|
|
43
|
-
ctx.type = "html";
|
|
44
|
-
ctx.status = 422;
|
|
45
|
-
if (!state.messages) {
|
|
46
|
-
state.messages = [];
|
|
47
|
-
}
|
|
48
|
-
state.messages.push("Saved!");
|
|
49
|
-
ctx.body = this.render(ctx, state);
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
async renderHeader(_ctx, _item) {
|
|
53
|
-
return `<h1>Edit JDD</h1>`;
|
|
54
|
-
}
|
|
55
|
-
async renderPreParameterButtons(ctx) {
|
|
56
|
-
const item = await this.getItem(ctx);
|
|
57
|
-
return tempstream`<div>${this.renderHeader(ctx, item)}</div>`;
|
|
58
|
-
}
|
|
59
|
-
renderParameterButtons(state) {
|
|
60
|
-
{
|
|
61
|
-
}
|
|
62
|
-
return `<div class="jdd-editor__toolbar">
|
|
63
|
-
<input type="submit" value="Preview" />
|
|
64
|
-
<select name="component">
|
|
65
|
-
${Object.keys(this.getRegistryComponents()).map((cmp) => `<option value="${cmp}">${cmp}</option>`).join("")}
|
|
66
|
-
</select>
|
|
67
|
-
${this.makeActionButton(state, {
|
|
68
|
-
action: "add_component",
|
|
69
|
-
label: "Add component"
|
|
70
|
-
})}
|
|
71
|
-
<input type="submit" formaction="./save/" value="zapisz" />
|
|
72
|
-
</div>`;
|
|
73
|
-
}
|
|
74
|
-
async getInitialState(ctx) {
|
|
75
|
-
const article = await this.getItem(ctx);
|
|
76
|
-
const parsed_document = await documentToParsed(
|
|
77
|
-
this.registry,
|
|
78
|
-
this.makeJDDContext(ctx),
|
|
79
|
-
documentContainerFromStorage(
|
|
80
|
-
article.get(this.getJDDFieldName()) || []
|
|
81
|
-
)
|
|
82
|
-
);
|
|
83
|
-
return {
|
|
84
|
-
components: parsed_document.value.map((e) => ({
|
|
85
|
-
...e,
|
|
86
|
-
open: true
|
|
87
|
-
}))
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
export {
|
|
92
|
-
EditJDDField
|
|
93
|
-
};
|
|
94
|
-
//# sourceMappingURL=edit-jdd-field.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/edit-jdd-field.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\n/* eslint-disable @typescript-eslint/consistent-type-assertions */\n/* eslint-disable @typescript-eslint/no-unused-vars */\nimport type Router from \"@koa/router\";\nimport type { JDDocumentContainer, RawJDDocument } from \"@sealcode/jdd\";\nimport {\n\tdocumentContainerFromStorage,\n\tdocumentToParsed,\n\tdocumentToStorage,\n} from \"@sealcode/jdd\";\nimport type { Context } from \"koa\";\nimport type { Collection, CollectionItem, FieldNames } from \"sealious\";\nimport JDDCreator from \"./jdd-creator.js\";\nimport type { JDDPageState } from \"./jdd-page.js\";\nimport { tempstream } from \"tempstream\";\n\nexport abstract class EditJDDField<C extends Collection> extends JDDCreator {\n\tasync getID(ctx: Context): Promise<string> {\n\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions, @typescript-eslint/no-unsafe-member-access\n\t\tconst id = ctx.params[\"id\"] as string;\n\t\tif (!id) {\n\t\t\tthrow new Error(\"Missing URL parameter: \" + \"id\");\n\t\t}\n\t\treturn id;\n\t}\n\n\tabstract getCollection(ctx: Context): C;\n\n\tasync getItem(ctx: Context): Promise<CollectionItem<C>> {\n\t\tconst {\n\t\t\titems: [item],\n\t\t} = await this.getCollection(ctx)\n\t\t\t.list(ctx.$context)\n\t\t\t.ids([await this.getID(ctx)])\n\t\t\t.fetch();\n\t\tif (!item) {\n\t\t\tthrow new Error(\n\t\t\t\t\"Couldn't get item of id \" + (await this.getID(ctx))\n\t\t\t);\n\t\t}\n\t\treturn item;\n\t}\n\n\tabstract getJDDFieldName(): FieldNames<C[\"fields\"]>;\n\n\tmount(router: Router, path: string) {\n\t\tsuper.mount(router, path);\n\n\t\trouter.post(path + \"save/\", async (ctx) => {\n\t\t\tconst { state } = await this.extractState(ctx);\n\t\t\tconst item = await this.getItem(ctx);\n\n\t\t\titem.set(\n\t\t\t\tthis.getJDDFieldName(),\n\t\t\t\t(\n\t\t\t\t\tawait documentToStorage(\n\t\t\t\t\t\tthis.registry,\n\t\t\t\t\t\tthis.makeJDDContext(ctx),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: state.components,\n\t\t\t\t\t\t} as unknown as JDDocumentContainer<\"parsed\">\n\t\t\t\t\t)\n\t\t\t\t).value as any\n\t\t\t);\n\t\t\tawait item.save(ctx.$context);\n\t\t\tctx.type = \"html\";\n\t\t\tctx.status = 422;\n\t\t\tif (!state.messages) {\n\t\t\t\tstate.messages = [];\n\t\t\t}\n\t\t\tstate.messages.push(\"Saved!\");\n\t\t\tctx.body = this.render(ctx, state);\n\t\t});\n\t}\n\n\tasync renderHeader(_ctx: Context, _item: CollectionItem<C>) {\n\t\treturn /* HTML */ `<h1>Edit JDD</h1>`;\n\t}\n\n\tasync renderPreParameterButtons(ctx: Context) {\n\t\tconst item = await this.getItem(ctx);\n\t\treturn tempstream`<div>${this.renderHeader(ctx, item)}</div>`;\n\t}\n\n\trenderParameterButtons(state: JDDPageState) {\n\t\t{\n\t\t\t/*The below button has to be here in order for it to be the default behavior */\n\t\t}\n\t\treturn `<div class=\"jdd-editor__toolbar\">\n\t\t\t\t<input type=\"submit\" value=\"Preview\" />\n\t\t\t\t<select name=\"component\">\n\t\t\t\t\t${Object.keys(this.getRegistryComponents())\n\t\t\t\t\t\t.map((cmp) => `<option value=\"${cmp}\">${cmp}</option>`)\n\t\t\t\t\t\t.join(\"\")}\n\t\t\t\t</select>\n\t\t\t\t${this.makeActionButton(state, {\n\t\t\t\t\taction: \"add_component\",\n\t\t\t\t\tlabel: \"Add component\",\n\t\t\t\t})}\n\t\t\t\t<input type=\"submit\" formaction=\"./save/\" value=\"zapisz\" />\n\t\t\t</div>`;\n\t}\n\n\tasync getInitialState(ctx: Context) {\n\t\tconst article = await this.getItem(ctx);\n\t\tconst parsed_document = await documentToParsed(\n\t\t\tthis.registry,\n\t\t\tthis.makeJDDContext(ctx),\n\t\t\tdocumentContainerFromStorage(\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\t\t(article.get(this.getJDDFieldName()) as RawJDDocument) || []\n\t\t\t)\n\t\t);\n\t\treturn {\n\t\t\tcomponents: parsed_document.value.map((e) => ({\n\t\t\t\t...e,\n\t\t\t\topen: true,\n\t\t\t})),\n\t\t};\n\t}\n\n\t// uncomment to create whitelist of allowed components\n\t// getAllowedComponents() {\n\t// \treturn [\"nice-box\"];\n\t// }\n}\n"],
|
|
5
|
-
"mappings": "AAMA;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AAGP,OAAO,gBAAgB;AAEvB,SAAS,kBAAkB;AAEpB,MAAe,qBAA2C,WAAW;AAAA,EAC3E,MAAM,MAAM,KAA+B;AAE1C,UAAM,KAAK,IAAI,OAAO;AACtB,QAAI,CAAC,IAAI;AACR,YAAM,IAAI,MAAM,4BAAiC;AAAA,IAClD;AACA,WAAO;AAAA,EACR;AAAA,EAIA,MAAM,QAAQ,KAA0C;AACvD,UAAM;AAAA,MACL,OAAO,CAAC,IAAI;AAAA,IACb,IAAI,MAAM,KAAK,cAAc,GAAG,EAC9B,KAAK,IAAI,QAAQ,EACjB,IAAI,CAAC,MAAM,KAAK,MAAM,GAAG,CAAC,CAAC,EAC3B,MAAM;AACR,QAAI,CAAC,MAAM;AACV,YAAM,IAAI;AAAA,QACT,6BAA8B,MAAM,KAAK,MAAM,GAAG;AAAA,MACnD;AAAA,IACD;AACA,WAAO;AAAA,EACR;AAAA,EAIA,MAAM,QAAgB,MAAc;AACnC,UAAM,MAAM,QAAQ,IAAI;AAExB,WAAO,KAAK,OAAO,SAAS,OAAO,QAAQ;AAC1C,YAAM,EAAE,MAAM,IAAI,MAAM,KAAK,aAAa,GAAG;AAC7C,YAAM,OAAO,MAAM,KAAK,QAAQ,GAAG;AAEnC,WAAK;AAAA,QACJ,KAAK,gBAAgB;AAAA,SAEpB,MAAM;AAAA,UACL,KAAK;AAAA,UACL,KAAK,eAAe,GAAG;AAAA,UACvB;AAAA,YACC,OAAO,MAAM;AAAA,UACd;AAAA,QACD,GACC;AAAA,MACH;AACA,YAAM,KAAK,KAAK,IAAI,QAAQ;AAC5B,UAAI,OAAO;AACX,UAAI,SAAS;AACb,UAAI,CAAC,MAAM,UAAU;AACpB,cAAM,WAAW,CAAC;AAAA,MACnB;AACA,YAAM,SAAS,KAAK,QAAQ;AAC5B,UAAI,OAAO,KAAK,OAAO,KAAK,KAAK;AAAA,IAClC,CAAC;AAAA,EACF;AAAA,EAEA,MAAM,aAAa,MAAe,OAA0B;AAC3D,WAAkB;AAAA,EACnB;AAAA,EAEA,MAAM,0BAA0B,KAAc;AAC7C,UAAM,OAAO,MAAM,KAAK,QAAQ,GAAG;AACnC,WAAO,kBAAkB,KAAK,aAAa,KAAK,IAAI;AAAA,EACrD;AAAA,EAEA,uBAAuB,OAAqB;AAC3C;AAAA,IAEA;AACA,WAAO;AAAA;AAAA;AAAA,OAGF,OAAO,KAAK,KAAK,sBAAsB,CAAC,EACxC,IAAI,CAAC,QAAQ,kBAAkB,QAAQ,cAAc,EACrD,KAAK,EAAE;AAAA;AAAA,MAER,KAAK,iBAAiB,OAAO;AAAA,MAC9B,QAAQ;AAAA,MACR,OAAO;AAAA,IACR,CAAC;AAAA;AAAA;AAAA,EAGJ;AAAA,EAEA,MAAM,gBAAgB,KAAc;AACnC,UAAM,UAAU,MAAM,KAAK,QAAQ,GAAG;AACtC,UAAM,kBAAkB,MAAM;AAAA,MAC7B,KAAK;AAAA,MACL,KAAK,eAAe,GAAG;AAAA,MACvB;AAAA,QAEE,QAAQ,IAAI,KAAK,gBAAgB,CAAC,KAAuB,CAAC;AAAA,MAC5D;AAAA,IACD;AACA,WAAO;AAAA,MACN,YAAY,gBAAgB,MAAM,IAAI,CAAC,OAAO;AAAA,QAC7C,GAAG;AAAA,QACH,MAAM;AAAA,MACP,EAAE;AAAA,IACH;AAAA,EACD;AAMD;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
package/lib/src/index.js
DELETED
package/lib/src/index.js.map
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { printArgPath } from "./print-arg-path.js";
|
|
2
|
-
function ComponentInputEnum({
|
|
3
|
-
arg_path,
|
|
4
|
-
arg,
|
|
5
|
-
value,
|
|
6
|
-
onchange
|
|
7
|
-
}) {
|
|
8
|
-
return `<div id=${`component-input-enum-${arg_path.join("-")}`}>
|
|
9
|
-
<label>
|
|
10
|
-
${arg_path.at(-1) || ""}
|
|
11
|
-
<select
|
|
12
|
-
name="${`$${printArgPath(arg_path)}`}"
|
|
13
|
-
onchange="${onchange || ""}"
|
|
14
|
-
>
|
|
15
|
-
${arg.values.map(
|
|
16
|
-
(v) => `<option
|
|
17
|
-
value="${v}"
|
|
18
|
-
${value == v ? "selected" : ""}
|
|
19
|
-
>
|
|
20
|
-
${v}
|
|
21
|
-
</option>`
|
|
22
|
-
).join("")}
|
|
23
|
-
</select>
|
|
24
|
-
</label>
|
|
25
|
-
</div>`;
|
|
26
|
-
}
|
|
27
|
-
export {
|
|
28
|
-
ComponentInputEnum
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=component-input-enum.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/inputs/component-input-enum.ts"],
|
|
4
|
-
"sourcesContent": ["import type { Enum } from \"@sealcode/jdd\";\nimport { printArgPath } from \"./print-arg-path.js\";\n\nexport function ComponentInputEnum<State, S extends string, T extends Enum<S>>({\n\targ_path,\n\targ,\n\tvalue,\n\tonchange,\n}: {\n\tstate: State;\n\targ_path: string[];\n\targ: T;\n\tvalue: string;\n\tonchange?: string;\n}) {\n\treturn /* HTML */ `<div id=${`component-input-enum-${arg_path.join(\"-\")}`}>\n\t\t<label>\n\t\t\t${arg_path.at(-1) || \"\"}\n\t\t\t<select\n\t\t\t\tname=\"${`$${printArgPath(arg_path)}`}\"\n\t\t\t\tonchange=\"${onchange || \"\"}\"\n\t\t\t>\n\t\t\t\t${arg.values\n\t\t\t\t\t.map(\n\t\t\t\t\t\t(v: S) => /* HTML */ `<option\n\t\t\t\t\t\t\tvalue=\"${v}\"\n\t\t\t\t\t\t\t${value == v ? \"selected\" : \"\"}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t${v}\n\t\t\t\t\t\t</option>`\n\t\t\t\t\t)\n\t\t\t\t\t.join(\"\")}\n\t\t\t</select>\n\t\t</label>\n\t</div>`;\n}\n"],
|
|
5
|
-
"mappings": "AACA,SAAS,oBAAoB;AAEtB,SAAS,mBAA+D;AAAA,EAC9E;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAMG;AACF,SAAkB,WAAW,wBAAwB,SAAS,KAAK,GAAG;AAAA;AAAA,KAElE,SAAS,GAAG,EAAE,KAAK;AAAA;AAAA,YAEZ,IAAI,aAAa,QAAQ;AAAA,gBACrB,YAAY;AAAA;AAAA,MAEtB,IAAI,OACJ;AAAA,IACA,CAAC,MAAoB;AAAA,gBACX;AAAA,SACP,SAAS,IAAI,aAAa;AAAA;AAAA,SAE1B;AAAA;AAAA,EAEJ,EACC,KAAK,EAAE;AAAA;AAAA;AAAA;AAIb;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|