@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,102 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.JDDDebugger = void 0;
16
+ const jdd_1 = require("@sealcode/jdd");
17
+ const tempstream_1 = require("tempstream");
18
+ const component_preview_actions_js_1 = require("./component-preview-actions.js");
19
+ const jdd_page_js_1 = __importDefault(require("./jdd-page.js"));
20
+ class JDDDebugger extends jdd_page_js_1.default {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.actions = component_preview_actions_js_1.ComponentPreviewActions;
24
+ this.containerSizes = ["320", "600", "800", "1024", "1300", "1920"];
25
+ }
26
+ renderParameterButtons(state) {
27
+ const all_components = super.getRegistryComponents();
28
+ if (!state.components[0]) {
29
+ console.error("No components are present in state.components");
30
+ }
31
+ return /* HTML */ `<div>
32
+ <input type="submit" value="Preview" />
33
+ <select
34
+ name="component"
35
+ onchange="${this.makeActionCallback("change_component")}"
36
+ autocomplete="off"
37
+ >
38
+ ${Object.entries(all_components)
39
+ .map(([name]) => /* HTML */ {
40
+ var _a;
41
+ return `<option
42
+ value="${name}"
43
+ ${name == ((_a = state.components[0]) === null || _a === void 0 ? void 0 : _a.component_name)
44
+ ? "selected"
45
+ : ""}
46
+ >
47
+ {name}
48
+ </option>`;
49
+ })
50
+ .join("")}
51
+ </select>
52
+ <noscript>
53
+ ${this.makeActionButton(state, "change_component")}
54
+ </noscript>
55
+ ${this.makeActionButton(state, "randomize_args", "0")}
56
+ </div>`;
57
+ }
58
+ getInitialState(ctx) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ const first_component = Object.entries(this.registry.getAll())[0];
61
+ if (!first_component) {
62
+ throw new Error("No registered components!");
63
+ }
64
+ const [component_name, component] = first_component;
65
+ const initial_state = {
66
+ components: [
67
+ {
68
+ component_name: component_name,
69
+ args: yield component.getExampleValues(this.makeJDDContext(ctx)),
70
+ open: true,
71
+ },
72
+ ],
73
+ };
74
+ return initial_state;
75
+ });
76
+ }
77
+ wrapInLayout(ctx, content, state) {
78
+ const jdd = new jdd_1.JDD(this.registry, this.makeJDDContext(ctx), (0, jdd_1.documentContainerFromParsed)(state.components));
79
+ return this.html({
80
+ ctx,
81
+ title: "Components",
82
+ body: content,
83
+ description: "",
84
+ css_clumps: ["jdd-page", ...jdd.getAllCSSClumps()],
85
+ htmlOptions: {
86
+ morphing: true,
87
+ preserveScroll: true,
88
+ autoRefreshCSS: true,
89
+ showBanner: false,
90
+ navbar: () => ``,
91
+ bodyClasses: ["jdd-editor"],
92
+ showBottomNavbar: false,
93
+ showFooter: false,
94
+ loadHamburgerMenu: false,
95
+ loadSearchModal: false,
96
+ },
97
+ makeHead: (...args) => (0, tempstream_1.tempstream) `${this.defaultHead(...args)}${jdd.renderEarlyAssets()}`,
98
+ });
99
+ }
100
+ }
101
+ exports.JDDDebugger = JDDDebugger;
102
+ //# sourceMappingURL=components.sreact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components.sreact.js","sourceRoot":"","sources":["../src/components.sreact.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
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
+ class AutogrowTextarea extends stimulus_1.Controller {
6
+ connect() {
7
+ this.autogrow();
8
+ }
9
+ autogrow() {
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access
11
+ this.element.parentNode.dataset.replicatedValue = this.element.value;
12
+ }
13
+ }
14
+ exports.default = AutogrowTextarea;
15
+ //# sourceMappingURL=autogrow-textarea.stimulus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autogrow-textarea.stimulus.js","sourceRoot":"","sources":["../../src/controllers/autogrow-textarea.stimulus.ts"],"names":[],"mappings":";;AAAA,2GAA2G;AAC3G,uCAAsC;AAEtC,MAAqB,gBAAiB,SAAQ,qBAA+B;IAC5E,OAAO;QACN,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjB,CAAC;IAED,QAAQ;QACP,0GAA0G;QACzG,IAAI,CAAC,OAAO,CAAC,UAAkB,CAAC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/E,CAAC;CACD;AATD,mCASC"}
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
4
+ /* eslint-disable @typescript-eslint/consistent-type-assertions */
5
+ /* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */
6
+ const stimulus_1 = require("stimulus");
7
+ class ComponentDebugger extends stimulus_1.Controller {
8
+ connect() {
9
+ var _a;
10
+ const main_form = (_a = document
11
+ .querySelector("#component-debugger")) === null || _a === void 0 ? void 0 : _a.closest("form");
12
+ if (!main_form) {
13
+ throw new Error("No main form");
14
+ }
15
+ this.main_form = main_form;
16
+ document.documentElement.addEventListener("ts-rebuilt", () => {
17
+ this.main_form.requestSubmit();
18
+ });
19
+ this.main_form.addEventListener("turbo:submit-end", () => {
20
+ // this clears the values of file inputs, so they don't get unecessarily
21
+ // re-uploaded on future submissions - the file is alreade there on the server
22
+ this.main_form
23
+ .querySelectorAll("input[type=file]")
24
+ .forEach((input) => (input.value = ""));
25
+ });
26
+ window.addEventListener("load", () => {
27
+ this.update_width_display();
28
+ });
29
+ document.addEventListener("turbo:render", () => {
30
+ // not calling that to see if that improves performance
31
+ // console.log("UWD because of render event");
32
+ // this.update_width_display();
33
+ });
34
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
35
+ const gutter = this.gutterTarget;
36
+ gutter.addEventListener("mousedown", (e) => {
37
+ this.origin_x = e.clientX;
38
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
39
+ const resizable = this.targets.find("preview");
40
+ this.origin_width = resizable.getBoundingClientRect().width;
41
+ const handler = (e) => this.resizeHandler(e);
42
+ document.addEventListener("mousemove", handler);
43
+ const remove_move_listener = () => {
44
+ document.removeEventListener("mousemove", handler);
45
+ document.removeEventListener("mouseup", remove_move_listener);
46
+ document.dispatchEvent(new Event("component-debugger--resize-done"));
47
+ };
48
+ document.addEventListener("mouseup", remove_move_listener);
49
+ e.preventDefault();
50
+ });
51
+ }
52
+ update_width_display() {
53
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
54
+ console.log("uwd");
55
+ const preview = this.targets.find("preview");
56
+ const component_width = preview.offsetWidth;
57
+ this.sizeSelectTarget
58
+ .querySelectorAll("option")
59
+ .forEach((e) => e.removeAttribute("selected"));
60
+ let option = this.sizeSelectTarget.querySelector("option.dynamic");
61
+ if (!option) {
62
+ option = document.createElement("option");
63
+ option.classList.add("dynamic");
64
+ option.setAttribute("selected", "");
65
+ this.sizeSelectTarget.insertBefore(option, this.sizeSelectTarget.childNodes[0]);
66
+ }
67
+ option.setAttribute("selected", "");
68
+ option.innerHTML = `${component_width} px`;
69
+ option.value = String(component_width);
70
+ this.sizeSelectTarget.value = String(component_width);
71
+ }
72
+ resizeHandler(e) {
73
+ const width_offset = this.origin_x - e.clientX;
74
+ const new_width = Math.max(this.origin_width + width_offset, 1);
75
+ this.setPreviewWidth(new_width);
76
+ this.update_width_display();
77
+ document.dispatchEvent(new Event("component-debugger--resize"));
78
+ }
79
+ setPreviewWidth(width) {
80
+ var _a;
81
+ (_a = document
82
+ .getElementById("component-debugger")) === null || _a === void 0 ? void 0 : _a.style.setProperty("--resizable-column-width", width.toString() + "px");
83
+ this.update_width_display();
84
+ }
85
+ handleWidthDropdown() {
86
+ const value = this.sizeSelectTarget.value;
87
+ this.setPreviewWidth(parseInt(value));
88
+ }
89
+ handleBlockHover(e) {
90
+ var _a, _b;
91
+ const index = parseInt(((_a = e.target
92
+ .closest(".jdd-editor__component-block")) === null || _a === void 0 ? void 0 : _a.getAttribute("data-component-index")) || "0");
93
+ (_b = this.element
94
+ .querySelector(`.component-number-${index}`)) === null || _b === void 0 ? void 0 : _b.classList.add("highlighted");
95
+ }
96
+ handleBlockUnhover(e) {
97
+ var _a;
98
+ const index = parseInt(((_a = e.target
99
+ .closest(".jdd-editor__component-block")) === null || _a === void 0 ? void 0 : _a.getAttribute("data-component-index")) || "");
100
+ this.element
101
+ .querySelectorAll(`.component-number-${index}.highlighted`)
102
+ .forEach((e) => e.classList.remove("highlighted"));
103
+ }
104
+ componentBlockTargetConnected(block_element) {
105
+ const index = parseInt(block_element.getAttribute("data-component-index") || "0");
106
+ block_element.addEventListener("focusin", () => {
107
+ this.scrollToComponentPreview(index);
108
+ });
109
+ const summary = block_element.querySelector("summary");
110
+ if (summary) {
111
+ summary.addEventListener("mouseenter", this.handleBlockHover.bind(this));
112
+ summary.addEventListener("mouseleave", this.handleBlockUnhover.bind(this));
113
+ }
114
+ }
115
+ previewTargetConnected(preview_element) {
116
+ preview_element.addEventListener("click", ({ target }) => {
117
+ var _a;
118
+ if (!(target instanceof HTMLElement)) {
119
+ return;
120
+ }
121
+ const closest = target.closest(".jdd-component");
122
+ if (!closest) {
123
+ return;
124
+ }
125
+ const index = parseInt(String((_a = Array.from(closest.classList)
126
+ .find((c) => c.startsWith("component-number-"))) === null || _a === void 0 ? void 0 : _a.replace("component-number-", "")));
127
+ if (isNaN(index)) {
128
+ return;
129
+ }
130
+ this.focusComponentBlock(index);
131
+ });
132
+ }
133
+ focusComponentBlock(index) {
134
+ var _a;
135
+ const block = this.componentBlockTargets[index];
136
+ if (!block) {
137
+ return;
138
+ }
139
+ this.checkboxTargets[index].checked = true;
140
+ this.checkboxTargets[index].dispatchEvent(new Event("change")); // to help with refreshing markdown editor
141
+ block.scrollIntoView({ behavior: "smooth" });
142
+ (_a = block.querySelector(".component-preview-parameters input")) === null || _a === void 0 ? void 0 : _a.focus();
143
+ }
144
+ getIndex(block_element) {
145
+ const index = parseInt(String(block_element.getAttribute("data-component-index")));
146
+ return index;
147
+ }
148
+ labelClicked(element) {
149
+ var _a, _b;
150
+ const block_element = element.target.closest(`[data-component-debugger-target="componentBlock"]`);
151
+ const index = this.getIndex(block_element);
152
+ if (!((_b = (_a = this.checkboxTargets) === null || _a === void 0 ? void 0 : _a[index]) === null || _b === void 0 ? void 0 : _b.checked)) {
153
+ this.scrollToComponentPreview(index);
154
+ }
155
+ }
156
+ getPreviewElementForComponentIndex(index) {
157
+ const element = this.element.querySelector(`.component-number-${index}`);
158
+ return element;
159
+ }
160
+ scrollToComponentPreview(index) {
161
+ const element = this.getPreviewElementForComponentIndex(index);
162
+ if (!element) {
163
+ return;
164
+ }
165
+ const preview_element = this.element.querySelector(".component-preview");
166
+ if (!preview_element) {
167
+ throw new Error("Missing preview element!");
168
+ }
169
+ if (element.clientHeight > preview_element.clientHeight) {
170
+ preview_element.scrollTop = element.offsetTop - 44;
171
+ }
172
+ else {
173
+ preview_element.scrollTop =
174
+ element.offsetTop -
175
+ (preview_element.clientHeight - element.clientHeight) / 2 -
176
+ 44;
177
+ }
178
+ }
179
+ }
180
+ ComponentDebugger.targets = [
181
+ "gutter",
182
+ "componentBlock",
183
+ "checkbox",
184
+ "preview",
185
+ "sizeSelect",
186
+ ];
187
+ exports.default = ComponentDebugger;
188
+ //# sourceMappingURL=component-debugger.stimulus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-debugger.stimulus.js","sourceRoot":"","sources":["../../src/controllers/component-debugger.stimulus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
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-non-null-assertion */
13
+ const stimulus_1 = require("stimulus");
14
+ function download(data, filename, type) {
15
+ const file = new Blob([data], { type: type });
16
+ const a = document.createElement("a"), url = URL.createObjectURL(file);
17
+ a.href = url;
18
+ a.download = filename;
19
+ document.body.appendChild(a);
20
+ a.click();
21
+ setTimeout(function () {
22
+ document.body.removeChild(a);
23
+ window.URL.revokeObjectURL(url);
24
+ }, 0);
25
+ }
26
+ class ExportableTextarea extends stimulus_1.Controller {
27
+ connect() {
28
+ console.log("exportable", this.element);
29
+ this.element.removeAttribute("open");
30
+ this.element.addEventListener("turbo:before-morph-attribute", (event) => {
31
+ if (event.target == this.element &&
32
+ event.detail.attributeName == "open") {
33
+ event.preventDefault();
34
+ }
35
+ });
36
+ }
37
+ copy(e) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ e.preventDefault();
40
+ const textarea = this.element.querySelector("textarea");
41
+ if (!textarea) {
42
+ throw new Error("Couldn't find the textarea");
43
+ }
44
+ yield navigator.clipboard.writeText(textarea.value);
45
+ e.target.textContent = "Copied";
46
+ yield sleep(1000);
47
+ e.target.textContent = "Copy";
48
+ });
49
+ }
50
+ download(e) {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ e.preventDefault();
53
+ const textarea = this.element.querySelector("textarea");
54
+ if (!textarea) {
55
+ throw new Error("Couldn't find the textarea");
56
+ }
57
+ download(textarea.value, String(Date.now()) + ".json", "application/json");
58
+ });
59
+ }
60
+ import(e) {
61
+ return __awaiter(this, void 0, void 0, function* () {
62
+ var _a;
63
+ e.preventDefault();
64
+ const file_input = this.element.querySelector("input[type='file']");
65
+ const file = (_a = file_input.files) === null || _a === void 0 ? void 0 : _a[0];
66
+ if (file) {
67
+ const text = yield file.text();
68
+ const textarea = this.element.querySelector("textarea");
69
+ textarea.innerHTML = text.replaceAll("<", "&lt;");
70
+ textarea.dispatchEvent(new Event("change"));
71
+ }
72
+ });
73
+ }
74
+ }
75
+ exports.default = ExportableTextarea;
76
+ function sleep(n) {
77
+ return new Promise((resolve) => setTimeout(resolve, n));
78
+ }
79
+ //# sourceMappingURL=exportable-textarea.stimulus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exportable-textarea.stimulus.js","sourceRoot":"","sources":["../../src/controllers/exportable-textarea.stimulus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const stimulus_1 = require("stimulus");
4
+ class InputImagePreview extends stimulus_1.Controller {
5
+ handleChange() {
6
+ var _a, _b, _c, _d;
7
+ let img = this.element.querySelector("img");
8
+ if (!img) {
9
+ img = document.createElement("img");
10
+ img.setAttribute("style", "height: 40px; width: 40px");
11
+ (_a = this.element
12
+ .querySelector(".image-preview-container")) === null || _a === void 0 ? void 0 : _a.appendChild(img);
13
+ }
14
+ window.URL.revokeObjectURL(img.src);
15
+ const file = (_c = (_b = this.element.querySelector("input")) === null || _b === void 0 ? void 0 : _b.files) === null || _c === void 0 ? void 0 : _c[0];
16
+ if (!file) {
17
+ console.warn("No file");
18
+ return;
19
+ }
20
+ const new_url = window.URL.createObjectURL(file);
21
+ img.src = new_url;
22
+ img.parentNode;
23
+ (_d = img.parentElement) === null || _d === void 0 ? void 0 : _d.querySelectorAll("source").forEach((e) => { var _a; return (_a = e.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(e); });
24
+ img.style.aspectRatio = "1";
25
+ }
26
+ }
27
+ exports.default = InputImagePreview;
28
+ //# sourceMappingURL=input-image-preview.stimulus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-image-preview.stimulus.js","sourceRoot":"","sources":["../../src/controllers/input-image-preview.stimulus.ts"],"names":[],"mappings":";;AAAA,uCAAsC;AAEtC,MAAqB,iBAAkB,SAAQ,qBAAU;IAGxD,YAAY;;QACX,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACpC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;YACvD,MAAA,IAAI,CAAC,OAAO;iBACV,aAAa,CAAC,0BAA0B,CAAC,0CACxC,WAAW,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,0CAAE,KAAK,0CAAG,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO;QACR,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACjD,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC;QAClB,GAAG,CAAC,UAAU,CAAC;QACf,MAAA,GAAG,CAAC,aAAa,0CACd,gBAAgB,CAAC,QAAQ,EAC1B,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,WAAC,OAAA,MAAA,CAAC,CAAC,UAAU,0CAAE,WAAW,CAAC,CAAC,CAAC,CAAA,EAAA,CAAC,CAAC;QAC/C,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC;IAC7B,CAAC;CACD;AA1BD,oCA0BC"}
@@ -0,0 +1,84 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
16
+ /* eslint-disable @typescript-eslint/consistent-type-assertions */
17
+ /* eslint-disable no-await-in-loop */
18
+ /* eslint-disable @typescript-eslint/no-misused-promises */
19
+ const stimulus_1 = require("stimulus");
20
+ const turndown_1 = __importDefault(require("turndown"));
21
+ const object_path_1 = __importDefault(require("object-path"));
22
+ const turndownService = new turndown_1.default();
23
+ class default_1 extends stimulus_1.Controller {
24
+ connect() {
25
+ this.element.addEventListener("click", () => __awaiter(this, void 0, void 0, function* () {
26
+ const clipboardContents = yield navigator.clipboard.read();
27
+ for (const item of clipboardContents) {
28
+ if (!item.types.includes("text/html")) {
29
+ alert("Nie można skopiować tabeli - nie znaleziono danych HTML");
30
+ return;
31
+ }
32
+ const blob = yield item.getType("text/html");
33
+ const html = yield blob.text();
34
+ const div = document.createElement("div");
35
+ div.innerHTML = html;
36
+ const table = div.querySelector("table");
37
+ if (!table) {
38
+ alert("No table in clipboard");
39
+ }
40
+ const rows = Array.from((table === null || table === void 0 ? void 0 : table.querySelectorAll("tr")) || []).map((tr) => {
41
+ const cells = Array.from(tr.querySelectorAll("td"));
42
+ return {
43
+ type: "row",
44
+ cells: cells.map((cell) => turndownService.turndown(cell)),
45
+ };
46
+ });
47
+ const form = this.element.closest("form");
48
+ const json_textarea = document.getElementById("component-debugger-json-textarea");
49
+ if (!json_textarea) {
50
+ console.error("Could not find json textarea with the jdd state");
51
+ return;
52
+ }
53
+ if (!form) {
54
+ throw new Error("Not inside a form");
55
+ }
56
+ const handler = () => {
57
+ document.removeEventListener("turbo:morph", handler);
58
+ const state = JSON.parse(json_textarea.value);
59
+ object_path_1.default.set(state, this.argpathValue, {
60
+ rows,
61
+ });
62
+ json_textarea.childNodes[0].textContent =
63
+ JSON.stringify(state);
64
+ setTimeout(() => {
65
+ // async in order to give a chance for UI state to update after changing the iframe value
66
+ const submitter_button = document.createElement("button");
67
+ submitter_button.setAttribute("formaction", "./?action=replace_state&action_args=W10=");
68
+ form.appendChild(submitter_button);
69
+ form.requestSubmit(submitter_button);
70
+ submitter_button.remove();
71
+ }, 0);
72
+ };
73
+ document.addEventListener("turbo:morph", handler);
74
+ form.requestSubmit(); // to get the newest json first, there may be some
75
+ // unsent changes
76
+ }
77
+ }));
78
+ }
79
+ }
80
+ default_1.values = {
81
+ argpath: String,
82
+ };
83
+ exports.default = default_1;
84
+ //# sourceMappingURL=jdd-table-paste.stimulus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jdd-table-paste.stimulus.js","sourceRoot":"","sources":["../../src/controllers/jdd-table-paste.stimulus.ts"],"names":[],"mappings":"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"}