@sealcode/jdd-editor 0.1.0

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 (192) hide show
  1. package/.arcconfig +12 -0
  2. package/.arclint +18 -0
  3. package/.eslintrc.js +37 -0
  4. package/.mocharc.js +6 -0
  5. package/.nycrc +6 -0
  6. package/.prettierrc +14 -0
  7. package/@types/component-preview-actions.d.ts +43 -0
  8. package/@types/components.sreact.d.ts +48 -0
  9. package/@types/controllers/autogrow-textarea.stimulus.d.ts +5 -0
  10. package/@types/controllers/component-debugger.stimulus.d.ts +28 -0
  11. package/@types/controllers/exportable-textarea.stimulus.d.ts +7 -0
  12. package/@types/controllers/input-image-preview.stimulus.d.ts +5 -0
  13. package/@types/controllers/jdd-table-paste.stimulus.d.ts +8 -0
  14. package/@types/controllers/json-editor.stimulus.d.ts +9 -0
  15. package/@types/controllers/markdown-textarea.stimulus.d.ts +20 -0
  16. package/@types/controllers/refresh-on-ts-changes.stimulus.d.ts +6 -0
  17. package/@types/controllers/refresh-styles.stimulus.d.ts +6 -0
  18. package/@types/controllers/submit-on-input.stimulus.d.ts +7 -0
  19. package/@types/controllers/toast.stimulus.d.ts +4 -0
  20. package/@types/edit-jdd-field.d.ts +22 -0
  21. package/@types/index.d.ts +2 -0
  22. package/@types/inputs/component-input-enum.d.ts +8 -0
  23. package/@types/inputs/component-input-image.d.ts +15 -0
  24. package/@types/inputs/component-input-list.d.ts +15 -0
  25. package/@types/inputs/component-input-single-reference.d.ts +11 -0
  26. package/@types/inputs/component-input-structured.d.ts +15 -0
  27. package/@types/inputs/component-input-table.d.ts +15 -0
  28. package/@types/inputs/component-input.d.ts +16 -0
  29. package/@types/inputs/print-arg-path.d.ts +1 -0
  30. package/@types/jdd-creator.d.ts +49 -0
  31. package/@types/jdd-page.d.ts +85 -0
  32. package/assets/icons/table-add-column-right.svg +1 -0
  33. package/assets/icons/table-add-row-below.svg +1 -0
  34. package/assets/icons/table-add-row-header-below.svg +1 -0
  35. package/assets/icons/table-delete-column.svg +1 -0
  36. package/assets/icons/table-delete-row.svg +1 -0
  37. package/assets/icons/table-move-column-right.svg +1 -0
  38. package/assets/icons/table-move-row-down.svg +1 -0
  39. package/assets/icons/table-move-row-up.svg +1 -0
  40. package/assets/styles/component-admin-table.jdd-page.css +11 -0
  41. package/assets/styles/component-debugger.jdd-page.css +71 -0
  42. package/assets/styles/components.jdd-page.css +286 -0
  43. package/assets/styles/grow-wrap.css +33 -0
  44. package/assets/styles/markdown-editor.css +42 -0
  45. package/dist/src/autogrow-textarea.stimulus.js +13 -0
  46. package/dist/src/autogrow-textarea.stimulus.js.map +7 -0
  47. package/dist/src/component-debugger.stimulus.js +190 -0
  48. package/dist/src/component-debugger.stimulus.js.map +7 -0
  49. package/dist/src/component-preview-actions.js +439 -0
  50. package/dist/src/component-preview-actions.js.map +7 -0
  51. package/dist/src/components.sreact.js +93 -0
  52. package/dist/src/components.sreact.js.map +7 -0
  53. package/dist/src/controllers/autogrow-textarea.stimulus.js +13 -0
  54. package/dist/src/controllers/autogrow-textarea.stimulus.js.map +7 -0
  55. package/dist/src/controllers/component-debugger.stimulus.js +193 -0
  56. package/dist/src/controllers/component-debugger.stimulus.js.map +7 -0
  57. package/dist/src/controllers/exportable-textarea.stimulus.js +71 -0
  58. package/dist/src/controllers/exportable-textarea.stimulus.js.map +7 -0
  59. package/dist/src/controllers/input-image-preview.stimulus.js +30 -0
  60. package/dist/src/controllers/input-image-preview.stimulus.js.map +7 -0
  61. package/dist/src/controllers/jdd-table-paste.stimulus.js +78 -0
  62. package/dist/src/controllers/jdd-table-paste.stimulus.js.map +7 -0
  63. package/dist/src/controllers/json-editor.stimulus.js +114 -0
  64. package/dist/src/controllers/json-editor.stimulus.js.map +7 -0
  65. package/dist/src/controllers/markdown-textarea.stimulus.js +174 -0
  66. package/dist/src/controllers/markdown-textarea.stimulus.js.map +7 -0
  67. package/dist/src/controllers/refresh-on-ts-changes.stimulus.js +90 -0
  68. package/dist/src/controllers/refresh-on-ts-changes.stimulus.js.map +7 -0
  69. package/dist/src/controllers/refresh-styles.stimulus.js +67 -0
  70. package/dist/src/controllers/refresh-styles.stimulus.js.map +7 -0
  71. package/dist/src/controllers/submit-on-input.stimulus.js +55 -0
  72. package/dist/src/controllers/submit-on-input.stimulus.js.map +7 -0
  73. package/dist/src/controllers/toast.stimulus.js +19 -0
  74. package/dist/src/controllers/toast.stimulus.js.map +7 -0
  75. package/dist/src/edit-jdd-field.js +94 -0
  76. package/dist/src/edit-jdd-field.js.map +7 -0
  77. package/dist/src/exportable-textarea.stimulus.js +71 -0
  78. package/dist/src/exportable-textarea.stimulus.js.map +7 -0
  79. package/dist/src/index.js +3 -0
  80. package/dist/src/index.js.map +7 -0
  81. package/dist/src/input-image-preview.stimulus.js +30 -0
  82. package/dist/src/input-image-preview.stimulus.js.map +7 -0
  83. package/dist/src/inputs/component-input-enum.js +30 -0
  84. package/dist/src/inputs/component-input-enum.js.map +7 -0
  85. package/dist/src/inputs/component-input-image.js +58 -0
  86. package/dist/src/inputs/component-input-image.js.map +7 -0
  87. package/dist/src/inputs/component-input-list.js +74 -0
  88. package/dist/src/inputs/component-input-list.js.map +7 -0
  89. package/dist/src/inputs/component-input-single-reference.js +31 -0
  90. package/dist/src/inputs/component-input-single-reference.js.map +7 -0
  91. package/dist/src/inputs/component-input-structured.js +36 -0
  92. package/dist/src/inputs/component-input-structured.js.map +7 -0
  93. package/dist/src/inputs/component-input-table.js +228 -0
  94. package/dist/src/inputs/component-input-table.js.map +7 -0
  95. package/dist/src/inputs/component-input.js +129 -0
  96. package/dist/src/inputs/component-input.js.map +7 -0
  97. package/dist/src/inputs/print-arg-path.js +7 -0
  98. package/dist/src/inputs/print-arg-path.js.map +7 -0
  99. package/dist/src/jdd-creator.js +131 -0
  100. package/dist/src/jdd-creator.js.map +7 -0
  101. package/dist/src/jdd-page.js +339 -0
  102. package/dist/src/jdd-page.js.map +7 -0
  103. package/dist/src/jdd-table-paste.stimulus.js +78 -0
  104. package/dist/src/jdd-table-paste.stimulus.js.map +7 -0
  105. package/dist/src/json-editor.stimulus.js +114 -0
  106. package/dist/src/json-editor.stimulus.js.map +7 -0
  107. package/dist/src/markdown-textarea.stimulus.js +174 -0
  108. package/dist/src/markdown-textarea.stimulus.js.map +7 -0
  109. package/dist/src/submit-on-input.stimulus.js +55 -0
  110. package/dist/src/submit-on-input.stimulus.js.map +7 -0
  111. package/dist/src/toast.stimulus.js +19 -0
  112. package/dist/src/toast.stimulus.js.map +7 -0
  113. package/esbuild.cjs +20 -0
  114. package/esbuild.js +23 -0
  115. package/jenkins.sanity.sh +3 -0
  116. package/lib/component-preview-actions.js +286 -0
  117. package/lib/component-preview-actions.js.map +1 -0
  118. package/lib/components.sreact.js +102 -0
  119. package/lib/components.sreact.js.map +1 -0
  120. package/lib/controllers/autogrow-textarea.stimulus.js +15 -0
  121. package/lib/controllers/autogrow-textarea.stimulus.js.map +1 -0
  122. package/lib/controllers/component-debugger.stimulus.js +188 -0
  123. package/lib/controllers/component-debugger.stimulus.js.map +1 -0
  124. package/lib/controllers/exportable-textarea.stimulus.js +79 -0
  125. package/lib/controllers/exportable-textarea.stimulus.js.map +1 -0
  126. package/lib/controllers/input-image-preview.stimulus.js +28 -0
  127. package/lib/controllers/input-image-preview.stimulus.js.map +1 -0
  128. package/lib/controllers/jdd-table-paste.stimulus.js +84 -0
  129. package/lib/controllers/jdd-table-paste.stimulus.js.map +1 -0
  130. package/lib/controllers/json-editor.stimulus.js +134 -0
  131. package/lib/controllers/json-editor.stimulus.js.map +1 -0
  132. package/lib/controllers/markdown-textarea.stimulus.js +186 -0
  133. package/lib/controllers/markdown-textarea.stimulus.js.map +1 -0
  134. package/lib/controllers/refresh-on-ts-changes.stimulus.js +123 -0
  135. package/lib/controllers/refresh-on-ts-changes.stimulus.js.map +1 -0
  136. package/lib/controllers/refresh-styles.stimulus.js +66 -0
  137. package/lib/controllers/refresh-styles.stimulus.js.map +1 -0
  138. package/lib/controllers/submit-on-input.stimulus.js +48 -0
  139. package/lib/controllers/submit-on-input.stimulus.js.map +1 -0
  140. package/lib/controllers/toast.stimulus.js +16 -0
  141. package/lib/controllers/toast.stimulus.js.map +1 -0
  142. package/lib/edit-jdd-field.js +102 -0
  143. package/lib/edit-jdd-field.js.map +1 -0
  144. package/lib/index.js +19 -0
  145. package/lib/index.js.map +1 -0
  146. package/lib/inputs/component-input-enum.js +25 -0
  147. package/lib/inputs/component-input-enum.js.map +1 -0
  148. package/lib/inputs/component-input-image.js +47 -0
  149. package/lib/inputs/component-input-image.js.map +1 -0
  150. package/lib/inputs/component-input-list.js +61 -0
  151. package/lib/inputs/component-input-list.js.map +1 -0
  152. package/lib/inputs/component-input-single-reference.js +36 -0
  153. package/lib/inputs/component-input-single-reference.js.map +1 -0
  154. package/lib/inputs/component-input-structured.js +42 -0
  155. package/lib/inputs/component-input-structured.js.map +1 -0
  156. package/lib/inputs/component-input-table.js +184 -0
  157. package/lib/inputs/component-input-table.js.map +1 -0
  158. package/lib/inputs/component-input.js +133 -0
  159. package/lib/inputs/component-input.js.map +1 -0
  160. package/lib/inputs/print-arg-path.js +7 -0
  161. package/lib/inputs/print-arg-path.js.map +1 -0
  162. package/lib/jdd-creator.js +113 -0
  163. package/lib/jdd-creator.js.map +1 -0
  164. package/lib/jdd-page.js +310 -0
  165. package/lib/jdd-page.js.map +1 -0
  166. package/package.json +61 -0
  167. package/src/component-preview-actions.ts +520 -0
  168. package/src/components.sreact.ts +100 -0
  169. package/src/controllers/autogrow-textarea.stimulus.ts +13 -0
  170. package/src/controllers/component-debugger.stimulus.ts +247 -0
  171. package/src/controllers/exportable-textarea.stimulus.ts +77 -0
  172. package/src/controllers/input-image-preview.stimulus.ts +29 -0
  173. package/src/controllers/jdd-table-paste.stimulus.ts +89 -0
  174. package/src/controllers/json-editor.stimulus.ts +127 -0
  175. package/src/controllers/markdown-textarea.stimulus.ts +198 -0
  176. package/src/controllers/refresh-on-ts-changes.stimulus.ts +112 -0
  177. package/src/controllers/refresh-styles.stimulus.ts +70 -0
  178. package/src/controllers/submit-on-input.stimulus.ts +66 -0
  179. package/src/controllers/toast.stimulus.ts +15 -0
  180. package/src/edit-jdd-field.ts +127 -0
  181. package/src/index.ts +2 -0
  182. package/src/inputs/component-input-enum.ts +36 -0
  183. package/src/inputs/component-input-image.ts +70 -0
  184. package/src/inputs/component-input-list.ts +91 -0
  185. package/src/inputs/component-input-single-reference.ts +45 -0
  186. package/src/inputs/component-input-structured.ts +51 -0
  187. package/src/inputs/component-input-table.ts +262 -0
  188. package/src/inputs/component-input.ts +158 -0
  189. package/src/inputs/print-arg-path.ts +3 -0
  190. package/src/jdd-creator.ts +151 -0
  191. package/src/jdd-page.ts +439 -0
  192. package/tsconfig.json +24 -0
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ /* eslint-disable @typescript-eslint/no-unused-vars */
13
+ /* eslint-disable @typescript-eslint/no-explicit-any */
14
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
15
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
16
+ /* eslint-disable @typescript-eslint/no-unsafe-call */
17
+ const stimulus_1 = require("stimulus");
18
+ const JS_ID = "codemirror-js";
19
+ const JS_PATH = "/dist/codemirror.js";
20
+ const JS_MODE_ID = "codemirror-js-mode-js";
21
+ const JS_MODE_PATH = "/dist/codemirror-javascript-mode.js";
22
+ const CSS_ID = "codemirror-css";
23
+ const CSS_PATH = "/dist/codemirror.css";
24
+ class JSONEditor extends stimulus_1.Controller {
25
+ constructor() {
26
+ super(...arguments);
27
+ this.saving = false;
28
+ }
29
+ addCSS() {
30
+ const tag = document.querySelector(`head #${CSS_ID}`);
31
+ if (!tag) {
32
+ const link = document.createElement("link");
33
+ link.setAttribute("rel", "stylesheet");
34
+ link.setAttribute("type", "text/css");
35
+ link.setAttribute("id", CSS_ID);
36
+ link.setAttribute("href", CSS_PATH);
37
+ document.head.appendChild(link);
38
+ }
39
+ }
40
+ addJS(js_id, js_path) {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ return new Promise((resolve, reject) => {
43
+ const once_loaded = (e) => {
44
+ e.target.setAttribute("loaded", "true");
45
+ resolve();
46
+ };
47
+ try {
48
+ const tag = document.querySelector(`head #${js_id}`);
49
+ if (!tag) {
50
+ const script = document.createElement("script");
51
+ script.setAttribute("id", js_id);
52
+ script.setAttribute("src", js_path);
53
+ script.addEventListener("load", once_loaded);
54
+ document.head.appendChild(script);
55
+ }
56
+ else {
57
+ if (tag.getAttribute("loaded") == "true") {
58
+ resolve();
59
+ }
60
+ else {
61
+ tag.addEventListener("load", once_loaded);
62
+ }
63
+ }
64
+ }
65
+ catch (e) {
66
+ reject(e);
67
+ }
68
+ });
69
+ });
70
+ }
71
+ connect() {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ var _a, _b;
74
+ if ((_a = this.element.parentNode) === null || _a === void 0 ? void 0 : _a.querySelector(".CodeMirror")) {
75
+ //already loaded, quit;
76
+ return;
77
+ }
78
+ this.addCSS();
79
+ yield this.addJS(JS_ID, JS_PATH);
80
+ yield this.addJS(JS_MODE_ID, JS_MODE_PATH);
81
+ this.cm = CodeMirror.fromTextArea(this.element, {
82
+ mode: {
83
+ name: "javascript",
84
+ json: true,
85
+ },
86
+ theme: "default",
87
+ addModeClass: true,
88
+ lineWrapping: true,
89
+ });
90
+ this.cm.on("change", () => {
91
+ this.saving = true;
92
+ this.element.innerHTML = this.cm.getValue().replace("<", "&lt;");
93
+ this.saving = false;
94
+ });
95
+ // to prevent morhping from removing the element
96
+ this.cm.getWrapperElement().setAttribute("data-turbo-permanent", "");
97
+ const observer = new MutationObserver((mutation) => {
98
+ console.log("DETECTED TEXTAREA MUTATION CHANGE!", mutation);
99
+ if (!this.saving) {
100
+ if (this.cm.getValue() != this.element.innerHTML) {
101
+ console.log("SETTING CM VALUE TO", this.element.innerHTML.slice(0, 100));
102
+ this.cm.setValue(this.element.innerHTML);
103
+ }
104
+ }
105
+ });
106
+ observer.observe(this.element, {
107
+ characterData: true,
108
+ subtree: true,
109
+ });
110
+ this.element.addEventListener("change", () => {
111
+ console.log("DETECTED TEXTAREA CHANGE!");
112
+ if (!this.saving) {
113
+ if (this.cm.getValue() != this.element.innerHTML) {
114
+ console.log("SETTING CM VALUE TO", this.element.innerHTML.slice(0, 100));
115
+ this.cm.setValue(this.element.innerHTML);
116
+ }
117
+ }
118
+ });
119
+ (_b = this.element
120
+ .closest("details")) === null || _b === void 0 ? void 0 : _b.addEventListener("toggle", (event) => {
121
+ if (event.target.open) {
122
+ this.cm.refresh();
123
+ }
124
+ });
125
+ });
126
+ }
127
+ disconnect() {
128
+ return __awaiter(this, void 0, void 0, function* () {
129
+ console.log("DISCONNECTING JSON EDITOR");
130
+ });
131
+ }
132
+ }
133
+ exports.default = JSONEditor;
134
+ //# sourceMappingURL=json-editor.stimulus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-editor.stimulus.js","sourceRoot":"","sources":["../../src/controllers/json-editor.stimulus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ /* eslint-disable @typescript-eslint/no-misused-promises */
13
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
14
+ /* eslint-disable @typescript-eslint/no-unsafe-call */
15
+ /* eslint-disable @typescript-eslint/no-explicit-any */
16
+ const stimulus_1 = require("stimulus");
17
+ const CSS_ID = "simplemde-css";
18
+ const JS_ID = "simplemde-js";
19
+ class MarkdownTextarea extends stimulus_1.Controller {
20
+ constructor() {
21
+ super(...arguments);
22
+ this.mdeStarted = false;
23
+ }
24
+ addCSS() {
25
+ const tag = document.querySelector(`head #${CSS_ID}`);
26
+ if (!tag) {
27
+ const link = document.createElement("link");
28
+ link.setAttribute("rel", "stylesheet");
29
+ link.setAttribute("type", "text/css");
30
+ link.setAttribute("id", CSS_ID);
31
+ link.setAttribute("href", "/dist/simplemde.min.css");
32
+ document.head.appendChild(link);
33
+ }
34
+ }
35
+ addJS() {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ return new Promise((resolve, reject) => {
38
+ const once_loaded = (e) => {
39
+ e.target.setAttribute("loaded", "true");
40
+ resolve();
41
+ };
42
+ try {
43
+ const tag = document.querySelector(`head #${JS_ID}`);
44
+ if (!tag) {
45
+ const script = document.createElement("script");
46
+ script.setAttribute("id", JS_ID);
47
+ script.setAttribute("src", "/dist/simplemde.min.js");
48
+ script.addEventListener("load", once_loaded);
49
+ document.head.appendChild(script);
50
+ }
51
+ else {
52
+ if (tag.getAttribute("loaded") == "true") {
53
+ resolve();
54
+ }
55
+ else {
56
+ tag.addEventListener("load", once_loaded);
57
+ }
58
+ }
59
+ }
60
+ catch (e) {
61
+ reject(e);
62
+ }
63
+ });
64
+ });
65
+ }
66
+ handleResize() {
67
+ this.sm.codemirror.refresh();
68
+ }
69
+ connect() {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ var _a, _b;
72
+ console.log("Markdown connect!", this.element);
73
+ if ((_a = this.element.parentNode) === null || _a === void 0 ? void 0 : _a.querySelector(".editor-toolbar")) {
74
+ //already loaded, quit;
75
+ return;
76
+ }
77
+ this.addCSS();
78
+ yield this.addJS();
79
+ const component_block = this.isInsideComponentBlock();
80
+ // some offloading of starting the MDE, because it is slow on Chrome
81
+ if (component_block) {
82
+ if (this.isHiddenBlock()) {
83
+ const handler = () => {
84
+ var _a;
85
+ (_a = this.getCheckboxThatShowsBlock()) === null || _a === void 0 ? void 0 : _a.removeEventListener("change", handler);
86
+ setTimeout(() => this.init(), 1);
87
+ };
88
+ (_b = this.getCheckboxThatShowsBlock()) === null || _b === void 0 ? void 0 : _b.addEventListener("change", handler);
89
+ }
90
+ else {
91
+ yield this.init();
92
+ }
93
+ }
94
+ else {
95
+ yield this.init();
96
+ }
97
+ });
98
+ }
99
+ startMDE() {
100
+ return __awaiter(this, void 0, void 0, function* () {
101
+ if (this.mdeStarted) {
102
+ return;
103
+ }
104
+ this.sm = new SimpleMDE({
105
+ element: this.element,
106
+ autoDownloadFontAwesome: false,
107
+ spellChecker: false,
108
+ hideIcons: ["image", "preview", "side-by-side"],
109
+ status: ["words"],
110
+ autosave: { enabled: false },
111
+ forceSync: true, // for autosubmit to work
112
+ initialValue: this.element.value,
113
+ });
114
+ // this.element.closest(".grow-wrap").setAttribute("data-turbo-permanent", "");
115
+ this.sm.codemirror.on("change", () => {
116
+ this.element.dispatchEvent(new Event("input"));
117
+ });
118
+ this.setupRefreshOnShow();
119
+ this.resizeObserver = new ResizeObserver(() => {
120
+ this.sm.codemirror.refresh();
121
+ });
122
+ const wrapper = this.sm.element.closest(".grow-wrap");
123
+ this.resizeObserver.observe(wrapper);
124
+ document.addEventListener("turbo:before-morph-element", function (event) {
125
+ const target = event.target;
126
+ // disallow morphing, but allow removing
127
+ if (target == wrapper &&
128
+ event.detail.newElement !== undefined) {
129
+ event.preventDefault();
130
+ }
131
+ });
132
+ this.mdeStarted = true;
133
+ });
134
+ }
135
+ init() {
136
+ return __awaiter(this, void 0, void 0, function* () {
137
+ this.intersectionObserver = new IntersectionObserver((entries) => {
138
+ entries.forEach((entry) => {
139
+ if (entry.intersectionRatio > 0.2) {
140
+ this.startMDE();
141
+ }
142
+ });
143
+ }, {
144
+ root: this.element.closest(".component-arguments"),
145
+ rootMargin: "0px",
146
+ threshold: 0.25,
147
+ });
148
+ this.intersectionObserver.observe(this.element);
149
+ });
150
+ }
151
+ isHiddenBlock() {
152
+ var _a;
153
+ return !((_a = this.getCheckboxThatShowsBlock()) === null || _a === void 0 ? void 0 : _a.checked);
154
+ }
155
+ isInsideComponentBlock() {
156
+ return this.element.closest(".jdd-editor__component-block");
157
+ }
158
+ getCheckboxThatShowsBlock() {
159
+ const block = this.isInsideComponentBlock();
160
+ if (!block) {
161
+ return null;
162
+ }
163
+ return block.querySelector(".component-collapse-toggle");
164
+ }
165
+ setupRefreshOnShow() {
166
+ var _a;
167
+ this.checkboxHandler = (e) => {
168
+ const target = e.target;
169
+ if (target.checked) {
170
+ this.sm.codemirror.refresh();
171
+ }
172
+ };
173
+ (_a = this.getCheckboxThatShowsBlock()) === null || _a === void 0 ? void 0 : _a.addEventListener("change", this.checkboxHandler);
174
+ }
175
+ disconnect() {
176
+ var _a, _b, _c;
177
+ console.log("disconnecting", this.element);
178
+ (_a = this.getCheckboxThatShowsBlock()) === null || _a === void 0 ? void 0 : _a.removeEventListener("change", this.checkboxHandler);
179
+ (_b = this.element
180
+ .closest(".grow-wrap")) === null || _b === void 0 ? void 0 : _b.removeAttribute("data-turbo-permanent");
181
+ (_c = this.resizeObserver) === null || _c === void 0 ? void 0 : _c.unobserve(this.sm.element);
182
+ this.sm.toTextArea();
183
+ }
184
+ }
185
+ exports.default = MarkdownTextarea;
186
+ //# sourceMappingURL=markdown-textarea.stimulus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown-textarea.stimulus.js","sourceRoot":"","sources":["../../src/controllers/markdown-textarea.stimulus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const stimulus_1 = require("stimulus");
13
+ const APP_DOWN_ERROR_MESSAGE = "App is currently down";
14
+ const sleep = (time) => new Promise((resolve) => {
15
+ setTimeout(resolve, time);
16
+ });
17
+ function get_status() {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ const r = yield fetch("/status.json");
20
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
21
+ return (yield r.json());
22
+ });
23
+ }
24
+ function wait_for_run_id_to_change() {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ let first_timestamp;
27
+ try {
28
+ const { started_at } = yield get_status();
29
+ first_timestamp = started_at;
30
+ }
31
+ catch (e) {
32
+ yield wait_for_app_to_be_stable();
33
+ return;
34
+ }
35
+ if (!first_timestamp) {
36
+ throw new Error(APP_DOWN_ERROR_MESSAGE);
37
+ }
38
+ // eslint-disable-next-line no-constant-condition
39
+ while (true) {
40
+ // eslint-disable-next-line no-await-in-loop
41
+ const { started_at } = yield get_status().catch(() => ({
42
+ started_at: first_timestamp,
43
+ }));
44
+ if (started_at !== first_timestamp) {
45
+ return;
46
+ }
47
+ // eslint-disable-next-line no-await-in-loop
48
+ yield sleep(100);
49
+ }
50
+ });
51
+ }
52
+ function wait_for_app_to_be_stable() {
53
+ return __awaiter(this, arguments, void 0, function* (n = 3) {
54
+ // eslint-disable-next-line no-console
55
+ console.log("Waiting for app to be stable....");
56
+ let counter = 0;
57
+ // eslint-disable-next-line no-constant-condition
58
+ while (true) {
59
+ // eslint-disable-next-line no-await-in-loop
60
+ const { status } = yield get_status().catch(() => ({
61
+ status: "down",
62
+ }));
63
+ if (status == "running") {
64
+ // eslint-disable-next-line no-console
65
+ console.log(counter);
66
+ counter++;
67
+ }
68
+ else {
69
+ counter = 0;
70
+ }
71
+ if (counter == n) {
72
+ return;
73
+ }
74
+ // eslint-disable-next-line no-await-in-loop
75
+ yield sleep(100);
76
+ }
77
+ });
78
+ }
79
+ function wait_for_app_restart() {
80
+ return __awaiter(this, void 0, void 0, function* () {
81
+ try {
82
+ yield wait_for_run_id_to_change();
83
+ }
84
+ catch (e) {
85
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
86
+ if (e.message !== APP_DOWN_ERROR_MESSAGE) {
87
+ throw e;
88
+ }
89
+ }
90
+ yield wait_for_app_to_be_stable();
91
+ });
92
+ }
93
+ class RefreshOnTSChanges extends stimulus_1.Controller {
94
+ connect() {
95
+ return __awaiter(this, void 0, void 0, function* () {
96
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
97
+ const { port, watch } = (yield fetch("/dist/notifier.json").then((r) => r.json()));
98
+ if (!watch) {
99
+ // eslint-disable-next-line no-console
100
+ console.warn("Not running auto refresh on watch because the build process is not running in watch mode");
101
+ return;
102
+ }
103
+ const socket = new WebSocket(`ws://localhost:${port}`);
104
+ socket.onmessage = (message) => __awaiter(this, void 0, void 0, function* () {
105
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
106
+ const data = message.data;
107
+ if (typeof data === "string" && data.endsWith("-ts")) {
108
+ document.documentElement.classList.add("restarting");
109
+ yield wait_for_app_restart();
110
+ document.documentElement.dispatchEvent(new Event("ts-rebuilt"));
111
+ document.documentElement.classList.remove("restarting");
112
+ }
113
+ });
114
+ });
115
+ }
116
+ disconnect() {
117
+ return __awaiter(this, void 0, void 0, function* () {
118
+ this.socket.close();
119
+ });
120
+ }
121
+ }
122
+ exports.default = RefreshOnTSChanges;
123
+ //# sourceMappingURL=refresh-on-ts-changes.stimulus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh-on-ts-changes.stimulus.js","sourceRoot":"","sources":["../../src/controllers/refresh-on-ts-changes.stimulus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ const stimulus_1 = require("stimulus");
13
+ function make_new_link(href) {
14
+ const new_link = document.createElement("link");
15
+ new_link.rel = "stylesheet";
16
+ new_link.href = href.split("?")[0] + `?${Math.random()}+${Math.random()}`;
17
+ new_link.type = "text/css";
18
+ return new_link;
19
+ }
20
+ function refresh_css() {
21
+ const actual_hrefs = new Set(Array.from(document.querySelectorAll("head link[rel=stylesheet]")).map((e) => e.getAttribute("href").split("?")[0]));
22
+ return actual_hrefs.forEach((href) => {
23
+ const new_link = make_new_link(href);
24
+ const to_delete_after_load = Array.from(document.querySelectorAll(`head link[rel=stylesheet][href^="${href}"]`));
25
+ new_link.onload = function () {
26
+ // delay to prevent flicker
27
+ setTimeout(() => {
28
+ to_delete_after_load.forEach((to_remove) => {
29
+ to_remove.remove();
30
+ });
31
+ }, 100);
32
+ };
33
+ document.querySelector("head").appendChild(new_link);
34
+ });
35
+ }
36
+ class RefreshStyles extends stimulus_1.Controller {
37
+ connect() {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
40
+ const { port } = yield fetch("/dist/notifier.json").then((r) => r.json());
41
+ try {
42
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
43
+ this.socket = new WebSocket(`ws://localhost:${port}`);
44
+ }
45
+ catch (e) {
46
+ console.error(e);
47
+ // eslint-disable-next-line no-console
48
+ console.warn("Not enabling auto style refresh due to the above error");
49
+ }
50
+ this.socket.onmessage = (message) => __awaiter(this, void 0, void 0, function* () {
51
+ if (message.data === "css") {
52
+ refresh_css();
53
+ }
54
+ });
55
+ document.documentElement.addEventListener("turbo:morph", refresh_css);
56
+ });
57
+ }
58
+ disconnect() {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ this.socket.close();
61
+ document.documentElement.removeEventListener("turbo:morph", refresh_css);
62
+ });
63
+ }
64
+ }
65
+ exports.default = RefreshStyles;
66
+ //# sourceMappingURL=refresh-styles.stimulus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh-styles.stimulus.js","sourceRoot":"","sources":["../../src/controllers/refresh-styles.stimulus.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uCAAsC;AAEtC,SAAS,aAAa,CAAC,IAAY;IAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,GAAG,GAAG,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;IAC1E,QAAQ,CAAC,IAAI,GAAG,UAAU,CAAC;IAC3B,OAAO,QAAQ,CAAC;AACjB,CAAC;AAED,SAAS,WAAW;IACnB,MAAM,YAAY,GAAG,IAAI,GAAG,CAC3B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,CAAC,CAAC,GAAG,CACrE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAC3C,CACD,CAAC;IACF,OAAO,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACpC,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QACrC,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CACtC,QAAQ,CAAC,gBAAgB,CAAC,oCAAoC,IAAI,IAAI,CAAC,CACvE,CAAC;QACF,QAAQ,CAAC,MAAM,GAAG;YACjB,2BAA2B;YAC3B,UAAU,CAAC,GAAG,EAAE;gBACf,oBAAoB,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;oBAC1C,SAAS,CAAC,MAAM,EAAE,CAAC;gBACpB,CAAC,CAAC,CAAC;YACJ,CAAC,EAAE,GAAG,CAAC,CAAC;QACT,CAAC,CAAC;QACF,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAqB,aAAc,SAAQ,qBAAU;IAG9C,OAAO;;YACZ,mEAAmE;YACnE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1E,IAAI,CAAC;gBACJ,yEAAyE;gBAEzE,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,kBAAkB,IAAc,EAAE,CAAC,CAAC;YACjE,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBACjB,sCAAsC;gBACtC,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACxE,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAO,OAAO,EAAE,EAAE;gBACzC,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBAC5B,WAAW,EAAE,CAAC;gBACf,CAAC;YACF,CAAC,CAAA,CAAC;YACF,QAAQ,CAAC,eAAe,CAAC,gBAAgB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QACvE,CAAC;KAAA;IAEK,UAAU;;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpB,QAAQ,CAAC,eAAe,CAAC,mBAAmB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAC1E,CAAC;KAAA;CACD;AA3BD,gCA2BC"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable @typescript-eslint/consistent-type-assertions, @typescript-eslint/no-unsafe-assignment */
4
+ const stimulus_1 = require("stimulus");
5
+ const throttle_debounce_1 = require("throttle-debounce");
6
+ class SubmitOnInput extends stimulus_1.Controller {
7
+ connect() {
8
+ this.sendValues = (0, throttle_debounce_1.throttle)(500, () => {
9
+ var _a, _b, _c;
10
+ const component_index = ((_a = this.element
11
+ .closest(".jdd-editor__component-block")) === null || _a === void 0 ? void 0 : _a.getAttribute("data-component-index")) || null;
12
+ if (component_index == null) {
13
+ // not an input within a JDD component editor
14
+ (_b = this.element.closest("form")) === null || _b === void 0 ? void 0 : _b.requestSubmit();
15
+ return;
16
+ }
17
+ // During this automatic submit, we force idiomorph to only update the components edited by this input.
18
+ const updateOnlyPreview = (event) => {
19
+ var _a;
20
+ const target = event.target;
21
+ if ([
22
+ "component-arguments",
23
+ "component-preview__header",
24
+ ].includes(target.id) ||
25
+ (((_a = target.parentElement) === null || _a === void 0 ? void 0 : _a.classList.contains("jdd-container")) &&
26
+ !target.classList.contains("component-number-" + component_index))) {
27
+ event.preventDefault();
28
+ }
29
+ };
30
+ document.addEventListener("turbo:before-morph-element", updateOnlyPreview);
31
+ (_c = this.element.closest("form")) === null || _c === void 0 ? void 0 : _c.requestSubmit();
32
+ const after_submit = () => {
33
+ document.removeEventListener("turbo:before-morph-element", updateOnlyPreview);
34
+ document.removeEventListener("turbo:morph", after_submit);
35
+ };
36
+ document.addEventListener("turbo:morph", after_submit);
37
+ }, { noTrailing: false });
38
+ }
39
+ makePermanent() {
40
+ // this prevents morphing from overwriting the input value with previous half-dane values - https://github.com/hotwired/turbo/issues/1199
41
+ this.element.setAttribute("data-turbo-permanent", "");
42
+ }
43
+ makeNotPermanent() {
44
+ this.element.removeAttribute("data-turbo-permanent");
45
+ }
46
+ }
47
+ exports.default = SubmitOnInput;
48
+ //# sourceMappingURL=submit-on-input.stimulus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submit-on-input.stimulus.js","sourceRoot":"","sources":["../../src/controllers/submit-on-input.stimulus.ts"],"names":[],"mappings":";;AAAA,2GAA2G;AAC3G,uCAAsC;AACtC,yDAA6C;AAE7C,MAAqB,aAAc,SAAQ,qBAA+B;IAGzE,OAAO;QACN,IAAI,CAAC,UAAU,GAAG,IAAA,4BAAQ,EACzB,GAAG,EACH,GAAG,EAAE;;YACJ,MAAM,eAAe,GACpB,CAAA,MAAA,IAAI,CAAC,OAAO;iBACV,OAAO,CAAC,8BAA8B,CAAC,0CACtC,YAAY,CAAC,sBAAsB,CAAC,KAAI,IAAI,CAAC;YACjD,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;gBAC7B,6CAA6C;gBAC7C,MAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,0CAAE,aAAa,EAAE,CAAC;gBAC9C,OAAO;YACR,CAAC;YAED,uGAAuG;YACvG,MAAM,iBAAiB,GAAG,CAAC,KAAwB,EAAE,EAAE;;gBACtD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAwB,CAAC;gBAC9C,IACC;oBACC,qBAAqB;oBACrB,2BAA2B;iBAC3B,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBACrB,CAAC,CAAA,MAAA,MAAM,CAAC,aAAa,0CAAE,SAAS,CAAC,QAAQ,CACxC,eAAe,CACf;wBACA,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CACzB,mBAAmB,GAAG,eAAe,CACrC,CAAC,EACF,CAAC;oBACF,KAAK,CAAC,cAAc,EAAE,CAAC;gBACxB,CAAC;YACF,CAAC,CAAC;YACF,QAAQ,CAAC,gBAAgB,CACxB,4BAA4B,EAC5B,iBAAiB,CACjB,CAAC;YACF,MAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,0CAAE,aAAa,EAAE,CAAC;YAC9C,MAAM,YAAY,GAAG,GAAG,EAAE;gBACzB,QAAQ,CAAC,mBAAmB,CAC3B,4BAA4B,EAC5B,iBAAiB,CACjB,CAAC;gBACF,QAAQ,CAAC,mBAAmB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;YAC3D,CAAC,CAAC;YACF,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACxD,CAAC,EACD,EAAE,UAAU,EAAE,KAAK,EAAE,CACrB,CAAC;IACH,CAAC;IAED,aAAa;QACZ,yIAAyI;QACzI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,gBAAgB;QACf,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;IACtD,CAAC;CACD;AA7DD,gCA6DC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const stimulus_1 = require("stimulus");
4
+ class Toast extends stimulus_1.Controller {
5
+ connect() {
6
+ console.log("connect");
7
+ this.element.addEventListener("animationend", ({ animationName }) => {
8
+ var _a;
9
+ if (animationName == "fade-out") {
10
+ (_a = this.element.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.element);
11
+ }
12
+ });
13
+ }
14
+ }
15
+ exports.default = Toast;
16
+ //# sourceMappingURL=toast.stimulus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast.stimulus.js","sourceRoot":"","sources":["../../src/controllers/toast.stimulus.ts"],"names":[],"mappings":";;AAAA,uCAAsC;AAEtC,MAAqB,KAAM,SAAQ,qBAAU;IAC5C,OAAO;QACN,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAC5B,cAAc,EACd,CAAC,EAAE,aAAa,EAAkB,EAAE,EAAE;;YACrC,IAAI,aAAa,IAAI,UAAU,EAAE,CAAC;gBACjC,MAAA,IAAI,CAAC,OAAO,CAAC,aAAa,0CAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvD,CAAC;QACF,CAAC,CACD,CAAC;IACH,CAAC;CACD;AAZD,wBAYC"}