@sealcode/jdd-editor 0.1.6 → 0.1.8

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 (117) hide show
  1. package/.nyc_output/29e7bb87-9f10-462e-84d8-ec620cfa9e6b.json +1 -0
  2. package/.nyc_output/7d7104e8-f179-427b-b4bd-30f78397e4f1.json +1 -0
  3. package/.nyc_output/9bfa248d-4f8e-4d29-9c47-d1a3961c5254.json +1 -0
  4. package/.nyc_output/processinfo/29e7bb87-9f10-462e-84d8-ec620cfa9e6b.json +1 -0
  5. package/.nyc_output/processinfo/7d7104e8-f179-427b-b4bd-30f78397e4f1.json +1 -0
  6. package/.nyc_output/processinfo/9bfa248d-4f8e-4d29-9c47-d1a3961c5254.json +1 -0
  7. package/.nyc_output/processinfo/index.json +1 -0
  8. package/.xunit +2 -0
  9. package/assets/styles/components.jdd-page.css +3 -2
  10. package/coverage/clover.xml +846 -0
  11. package/dist/src/inputs/component-input.js +7 -4
  12. package/dist/src/inputs/component-input.js.map +2 -2
  13. package/lib/src/component-preview-actions.js +439 -0
  14. package/lib/src/component-preview-actions.js.map +7 -0
  15. package/lib/src/components.sreact.js +93 -0
  16. package/lib/src/components.sreact.js.map +7 -0
  17. package/{dist/src → lib/src/controllers}/autogrow-textarea.stimulus.js.map +1 -1
  18. package/{dist/src → lib/src/controllers}/component-debugger.stimulus.js +3 -0
  19. package/lib/src/controllers/component-debugger.stimulus.js.map +7 -0
  20. package/{dist/src → lib/src/controllers}/exportable-textarea.stimulus.js.map +1 -1
  21. package/{dist/src → lib/src/controllers}/input-image-preview.stimulus.js.map +1 -1
  22. package/{dist/src → lib/src/controllers}/jdd-table-paste.stimulus.js.map +1 -1
  23. package/{dist/src → lib/src/controllers}/json-editor.stimulus.js.map +1 -1
  24. package/{dist/src → lib/src/controllers}/markdown-textarea.stimulus.js.map +1 -1
  25. package/lib/src/controllers/refresh-on-ts-changes.stimulus.js +90 -0
  26. package/lib/src/controllers/refresh-on-ts-changes.stimulus.js.map +7 -0
  27. package/lib/src/controllers/refresh-styles.stimulus.js +67 -0
  28. package/lib/src/controllers/refresh-styles.stimulus.js.map +7 -0
  29. package/{dist/src → lib/src/controllers}/submit-on-input.stimulus.js.map +1 -1
  30. package/{dist/src → lib/src/controllers}/toast.stimulus.js.map +1 -1
  31. package/lib/src/edit-jdd-field.js +94 -0
  32. package/lib/src/edit-jdd-field.js.map +7 -0
  33. package/lib/src/index.js +3 -0
  34. package/lib/src/index.js.map +7 -0
  35. package/lib/src/inputs/component-input-enum.js +30 -0
  36. package/lib/src/inputs/component-input-enum.js.map +7 -0
  37. package/lib/src/inputs/component-input-image.js +63 -0
  38. package/lib/src/inputs/component-input-image.js.map +7 -0
  39. package/lib/src/inputs/component-input-list.js +74 -0
  40. package/lib/src/inputs/component-input-list.js.map +7 -0
  41. package/lib/src/inputs/component-input-single-reference.js +31 -0
  42. package/lib/src/inputs/component-input-single-reference.js.map +7 -0
  43. package/lib/src/inputs/component-input-structured.js +36 -0
  44. package/lib/src/inputs/component-input-structured.js.map +7 -0
  45. package/lib/src/inputs/component-input-table.js +228 -0
  46. package/lib/src/inputs/component-input-table.js.map +7 -0
  47. package/lib/src/inputs/component-input.js +164 -0
  48. package/lib/src/inputs/component-input.js.map +7 -0
  49. package/lib/src/inputs/print-arg-path.js +7 -0
  50. package/lib/src/inputs/print-arg-path.js.map +7 -0
  51. package/lib/src/jdd-creator.js +131 -0
  52. package/lib/src/jdd-creator.js.map +7 -0
  53. package/lib/src/jdd-page.js +339 -0
  54. package/lib/src/jdd-page.js.map +7 -0
  55. package/lib/src/test.test.js +5 -0
  56. package/lib/src/test.test.js.map +7 -0
  57. package/package.json +1 -1
  58. package/src/inputs/component-input.ts +9 -4
  59. package/dist/src/component-debugger.stimulus.js.map +0 -7
  60. package/lib/component-preview-actions.js +0 -286
  61. package/lib/component-preview-actions.js.map +0 -1
  62. package/lib/components.sreact.js +0 -102
  63. package/lib/components.sreact.js.map +0 -1
  64. package/lib/controllers/autogrow-textarea.stimulus.js +0 -15
  65. package/lib/controllers/autogrow-textarea.stimulus.js.map +0 -1
  66. package/lib/controllers/component-debugger.stimulus.js +0 -188
  67. package/lib/controllers/component-debugger.stimulus.js.map +0 -1
  68. package/lib/controllers/exportable-textarea.stimulus.js +0 -79
  69. package/lib/controllers/exportable-textarea.stimulus.js.map +0 -1
  70. package/lib/controllers/input-image-preview.stimulus.js +0 -28
  71. package/lib/controllers/input-image-preview.stimulus.js.map +0 -1
  72. package/lib/controllers/jdd-table-paste.stimulus.js +0 -84
  73. package/lib/controllers/jdd-table-paste.stimulus.js.map +0 -1
  74. package/lib/controllers/json-editor.stimulus.js +0 -134
  75. package/lib/controllers/json-editor.stimulus.js.map +0 -1
  76. package/lib/controllers/markdown-textarea.stimulus.js +0 -186
  77. package/lib/controllers/markdown-textarea.stimulus.js.map +0 -1
  78. package/lib/controllers/refresh-on-ts-changes.stimulus.js +0 -123
  79. package/lib/controllers/refresh-on-ts-changes.stimulus.js.map +0 -1
  80. package/lib/controllers/refresh-styles.stimulus.js +0 -66
  81. package/lib/controllers/refresh-styles.stimulus.js.map +0 -1
  82. package/lib/controllers/submit-on-input.stimulus.js +0 -48
  83. package/lib/controllers/submit-on-input.stimulus.js.map +0 -1
  84. package/lib/controllers/toast.stimulus.js +0 -16
  85. package/lib/controllers/toast.stimulus.js.map +0 -1
  86. package/lib/edit-jdd-field.js +0 -102
  87. package/lib/edit-jdd-field.js.map +0 -1
  88. package/lib/index.js +0 -19
  89. package/lib/index.js.map +0 -1
  90. package/lib/inputs/component-input-enum.js +0 -25
  91. package/lib/inputs/component-input-enum.js.map +0 -1
  92. package/lib/inputs/component-input-image.js +0 -47
  93. package/lib/inputs/component-input-image.js.map +0 -1
  94. package/lib/inputs/component-input-list.js +0 -61
  95. package/lib/inputs/component-input-list.js.map +0 -1
  96. package/lib/inputs/component-input-single-reference.js +0 -36
  97. package/lib/inputs/component-input-single-reference.js.map +0 -1
  98. package/lib/inputs/component-input-structured.js +0 -42
  99. package/lib/inputs/component-input-structured.js.map +0 -1
  100. package/lib/inputs/component-input-table.js +0 -184
  101. package/lib/inputs/component-input-table.js.map +0 -1
  102. package/lib/inputs/component-input.js +0 -133
  103. package/lib/inputs/component-input.js.map +0 -1
  104. package/lib/inputs/print-arg-path.js +0 -7
  105. package/lib/inputs/print-arg-path.js.map +0 -1
  106. package/lib/jdd-creator.js +0 -113
  107. package/lib/jdd-creator.js.map +0 -1
  108. package/lib/jdd-page.js +0 -310
  109. package/lib/jdd-page.js.map +0 -1
  110. /package/{dist/src → lib/src/controllers}/autogrow-textarea.stimulus.js +0 -0
  111. /package/{dist/src → lib/src/controllers}/exportable-textarea.stimulus.js +0 -0
  112. /package/{dist/src → lib/src/controllers}/input-image-preview.stimulus.js +0 -0
  113. /package/{dist/src → lib/src/controllers}/jdd-table-paste.stimulus.js +0 -0
  114. /package/{dist/src → lib/src/controllers}/json-editor.stimulus.js +0 -0
  115. /package/{dist/src → lib/src/controllers}/markdown-textarea.stimulus.js +0 -0
  116. /package/{dist/src → lib/src/controllers}/submit-on-input.stimulus.js +0 -0
  117. /package/{dist/src → lib/src/controllers}/toast.stimulus.js +0 -0
@@ -0,0 +1,74 @@
1
+ import { ComponentInput } from "./component-input.js";
2
+ import { tempstream } from "tempstream";
3
+ async function ComponentInputList({
4
+ state,
5
+ ctx,
6
+ arg_path,
7
+ arg,
8
+ value,
9
+ page,
10
+ makeJDDContext,
11
+ ...rest
12
+ }) {
13
+ if (!value) {
14
+ value = [];
15
+ }
16
+ return tempstream`<fieldset
17
+ id="${`component-input-list-${arg_path.join("-")}`}"
18
+ >
19
+ <legend>${arg_path.at(-1)}</legend>
20
+ ${value.map(
21
+ (value2, i, all_values) => tempstream`<div style="display: flex">
22
+ ${ComponentInput({
23
+ ...rest,
24
+ ctx,
25
+ state,
26
+ arg_path: [...arg_path, i.toString()],
27
+ arg: arg.item_type,
28
+ value: value2,
29
+ page,
30
+ makeJDDContext
31
+ })}
32
+ ${page.makeActionButton(
33
+ state,
34
+ {
35
+ action: "move_array_item_down",
36
+ label: "\u2193",
37
+ disabled: i == all_values.length - 1
38
+ },
39
+ arg_path,
40
+ i
41
+ )}
42
+ ${page.makeActionButton(
43
+ state,
44
+ {
45
+ action: "move_array_item_up",
46
+ label: "\u2191",
47
+ disabled: i == 0
48
+ },
49
+ arg_path,
50
+ i
51
+ )}
52
+
53
+ ${page.makeActionButton(
54
+ state,
55
+ { action: "remove_array_item", label: "\u274C" },
56
+ arg_path,
57
+ i
58
+ )}
59
+ </div>`
60
+ )}
61
+ ${page.makeActionButton(
62
+ state,
63
+ {
64
+ action: "add_array_item",
65
+ label: "\u2795"
66
+ },
67
+ arg_path
68
+ )}
69
+ </fieldset>`;
70
+ }
71
+ export {
72
+ ComponentInputList
73
+ };
74
+ //# sourceMappingURL=component-input-list.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/inputs/component-input-list.ts"],
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport type { Context } from \"koa\";\nimport type { ComponentArgument, JDDContext, List } from \"@sealcode/jdd\";\nimport type { JDDPageState } from \"../jdd-page.js\";\nimport type { StatefulPage } from \"@sealcode/sealgen\";\nimport { ComponentInput } from \"./component-input.js\";\nimport type { ComponentPreviewActions } from \"../component-preview-actions.js\";\nimport { tempstream } from \"tempstream\";\n\nexport async function ComponentInputList<\n\tState extends JDDPageState,\n\tT extends ComponentArgument<unknown>\n>({\n\tstate,\n\tctx,\n\targ_path,\n\targ,\n\tvalue,\n\tpage,\n\tmakeJDDContext,\n\t...rest\n}: {\n\tstate: State;\n\tctx: Context;\n\targ_path: string[];\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\targ: List<T, any>;\n\tvalue: T[];\n\tpage: StatefulPage<JDDPageState, typeof ComponentPreviewActions>;\n\tmakeJDDContext: (ctx: Context) => JDDContext;\n\tmakeAssetURL: (asset: string) => string;\n}): Promise<string> {\n\tif (!value) {\n\t\tvalue = [];\n\t}\n\treturn tempstream/* HTML */ `<fieldset\n\t\tid=\"${`component-input-list-${arg_path.join(\"-\")}`}\"\n\t>\n\t\t<legend>${arg_path.at(-1)!}</legend>\n\t\t${value.map(\n\t\t\t(value, i, all_values) =>\n\t\t\t\ttempstream`<div style=\"display: flex\">\n\t\t\t\t\t${ComponentInput({\n\t\t\t\t\t\t...rest,\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\targ_path: [...arg_path, i.toString()],\n\t\t\t\t\t\targ: arg.item_type,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\tpage,\n\t\t\t\t\t\tmakeJDDContext,\n\t\t\t\t\t})}\n\t\t\t\t\t${page.makeActionButton(\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\taction: \"move_array_item_down\",\n\t\t\t\t\t\t\tlabel: \"\u2193\",\n\t\t\t\t\t\t\tdisabled: i == all_values.length - 1,\n\t\t\t\t\t\t},\n\t\t\t\t\t\targ_path,\n\t\t\t\t\t\ti\n\t\t\t\t\t)}\n\t\t\t\t\t${page.makeActionButton(\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\taction: \"move_array_item_up\",\n\t\t\t\t\t\t\tlabel: \"\u2191\",\n\t\t\t\t\t\t\tdisabled: i == 0,\n\t\t\t\t\t\t},\n\t\t\t\t\t\targ_path,\n\t\t\t\t\t\ti\n\t\t\t\t\t)}\n\n\t\t\t\t\t${page.makeActionButton(\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\t{ action: \"remove_array_item\", label: \"\u274C\" },\n\t\t\t\t\t\targ_path,\n\t\t\t\t\t\ti\n\t\t\t\t\t)}\n\t\t\t\t</div>`\n\t\t)}\n\t\t${page.makeActionButton(\n\t\t\tstate,\n\t\t\t{\n\t\t\t\taction: \"add_array_item\",\n\t\t\t\tlabel: \"\u2795\",\n\t\t\t},\n\t\t\targ_path\n\t\t)}\n\t</fieldset>`;\n}\n"],
5
+ "mappings": "AAKA,SAAS,sBAAsB;AAE/B,SAAS,kBAAkB;AAE3B,eAAsB,mBAGpB;AAAA,EACD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,KACG;AACJ,GAUoB;AACnB,MAAI,CAAC,OAAO;AACX,YAAQ,CAAC;AAAA,EACV;AACA,SAAO;AAAA,QACA,wBAAwB,SAAS,KAAK,GAAG;AAAA;AAAA,YAErC,SAAS,GAAG,EAAE;AAAA,IACtB,MAAM;AAAA,IACP,CAACA,QAAO,GAAG,eACV;AAAA,OACG,eAAe;AAAA,MAChB,GAAG;AAAA,MACH;AAAA,MACA;AAAA,MACA,UAAU,CAAC,GAAG,UAAU,EAAE,SAAS,CAAC;AAAA,MACpC,KAAK,IAAI;AAAA,MACT,OAAAA;AAAA,MACA;AAAA,MACA;AAAA,IACD,CAAC;AAAA,OACC,KAAK;AAAA,MACN;AAAA,MACA;AAAA,QACC,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,UAAU,KAAK,WAAW,SAAS;AAAA,MACpC;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,OACE,KAAK;AAAA,MACN;AAAA,MACA;AAAA,QACC,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,UAAU,KAAK;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA;AAAA,OAEE,KAAK;AAAA,MACN;AAAA,MACA,EAAE,QAAQ,qBAAqB,OAAO,SAAI;AAAA,MAC1C;AAAA,MACA;AAAA,IACD;AAAA;AAAA,EAEH;AAAA,IACE,KAAK;AAAA,IACN;AAAA,IACA;AAAA,MACC,QAAQ;AAAA,MACR,OAAO;AAAA,IACR;AAAA,IACA;AAAA,EACD;AAAA;AAEF;",
6
+ "names": ["value"]
7
+ }
@@ -0,0 +1,31 @@
1
+ import { printArgPath } from "./print-arg-path.js";
2
+ async function ComponentInputSingleReference({
3
+ ctx,
4
+ arg_path,
5
+ arg,
6
+ value,
7
+ onchange,
8
+ makeJDDContext
9
+ }) {
10
+ const values = await arg.getValues(makeJDDContext(ctx));
11
+ const ret = `<div>
12
+ <label>
13
+ ${arg_path.at(-1) || ""}
14
+ <select name="${`$${printArgPath(arg_path)}`}" onchange="${onchange}">
15
+ ${values.sort((v1, v2) => v1.label > v2.label ? 1 : -1).map(
16
+ (v) => `<option
17
+ value="${v.value}"
18
+ ${value == v.value ? "selected" : ""}
19
+ >
20
+ ${v.label}
21
+ </option>`
22
+ ).join("")}
23
+ </select>
24
+ </label>
25
+ </div>`;
26
+ return ret;
27
+ }
28
+ export {
29
+ ComponentInputSingleReference
30
+ };
31
+ //# sourceMappingURL=component-input-single-reference.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/inputs/component-input-single-reference.ts"],
4
+ "sourcesContent": ["import type { Context } from \"koa\";\nimport type { JDDContext, SingleReference } from \"@sealcode/jdd\";\nimport { printArgPath } from \"./print-arg-path.js\";\n\nexport async function ComponentInputSingleReference<\n\tState,\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tT extends SingleReference<any>\n>({\n\tctx,\n\targ_path,\n\targ,\n\tvalue,\n\tonchange,\n\tmakeJDDContext,\n}: {\n\tctx: Context;\n\tstate: State;\n\targ_path: string[];\n\targ: T;\n\tvalue: string;\n\tonchange?: string;\n\tmakeJDDContext: (ctx: Context) => JDDContext;\n}): Promise<string> {\n\tconst values = await arg.getValues(makeJDDContext(ctx));\n\tconst ret = `<div>\n\t\t\t<label>\n\t\t\t\t${arg_path.at(-1) || \"\"}\n\t\t\t\t<select name=\"${`$${printArgPath(arg_path)}`}\" onchange=\"${onchange}\">\n\t\t\t\t\t${values\n\t\t\t\t\t\t.sort((v1, v2) => (v1.label > v2.label ? 1 : -1))\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t(v) => /* HTML */ `<option\n\t\t\t\t\t\t\t\tvalue=\"${v.value}\"\n\t\t\t\t\t\t\t\t${value == v.value ? \"selected\" : \"\"}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t${v.label}\n\t\t\t\t\t\t\t</option>`\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join(\"\")}\n\t\t\t\t</select>\n\t\t\t</label>\n\t\t</div>`;\n\treturn ret;\n}\n"],
5
+ "mappings": "AAEA,SAAS,oBAAoB;AAE7B,eAAsB,8BAIpB;AAAA,EACD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GAQoB;AACnB,QAAM,SAAS,MAAM,IAAI,UAAU,eAAe,GAAG,CAAC;AACtD,QAAM,MAAM;AAAA;AAAA,MAEP,SAAS,GAAG,EAAE,KAAK;AAAA,oBACL,IAAI,aAAa,QAAQ,kBAAkB;AAAA,OACxD,OACA,KAAK,CAAC,IAAI,OAAQ,GAAG,QAAQ,GAAG,QAAQ,IAAI,EAAG,EAC/C;AAAA,IACA,CAAC,MAAiB;AAAA,iBACR,EAAE;AAAA,UACT,SAAS,EAAE,QAAQ,aAAa;AAAA;AAAA,UAEhC,EAAE;AAAA;AAAA,EAEN,EACC,KAAK,EAAE;AAAA;AAAA;AAAA;AAIb,SAAO;AACR;",
6
+ "names": []
7
+ }
@@ -0,0 +1,36 @@
1
+ import { ComponentInput } from "./component-input.js";
2
+ async function ComponentInputStructured({
3
+ state,
4
+ ctx,
5
+ arg_path,
6
+ arg,
7
+ value,
8
+ page,
9
+ ...rest
10
+ }) {
11
+ return `<fieldset
12
+ id="${`component-input-structured-${arg_path.join("-")}`}"
13
+ >
14
+ <legend>${arg_path.at(-1)}</legend>
15
+ ${(await Promise.all(
16
+ Object.entries(arg.structure).map(async ([arg_name, arg2]) => {
17
+ const ret = `<div>
18
+ ${await ComponentInput({
19
+ ctx,
20
+ state,
21
+ arg_path: [...arg_path, arg_name],
22
+ arg: arg2,
23
+ value: value[arg_name],
24
+ page,
25
+ ...rest
26
+ })}
27
+ </div>`;
28
+ return ret;
29
+ })
30
+ )).join("")}
31
+ </fieldset>`;
32
+ }
33
+ export {
34
+ ComponentInputStructured
35
+ };
36
+ //# sourceMappingURL=component-input-structured.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/inputs/component-input-structured.ts"],
4
+ "sourcesContent": ["import type { Context } from \"koa\";\nimport type { ComponentArgument, JDDContext, Structured } from \"@sealcode/jdd\";\nimport type { StatefulPage } from \"@sealcode/sealgen\";\nimport { ComponentInput } from \"./component-input.js\";\nimport type { JDDPageState } from \"../jdd-page.js\";\nimport type { ComponentPreviewActions } from \"../component-preview-actions.js\";\n\nexport async function ComponentInputStructured<\n\tT extends Structured<Record<string, ComponentArgument<unknown>>>\n>({\n\tstate,\n\tctx,\n\targ_path,\n\targ,\n\tvalue,\n\tpage,\n\t...rest\n}: {\n\tstate: JDDPageState;\n\tctx: Context;\n\targ_path: string[];\n\targ: T;\n\tvalue: Record<string, unknown>;\n\tpage: StatefulPage<JDDPageState, typeof ComponentPreviewActions>;\n\tmakeJDDContext: (ctx: Context) => JDDContext;\n\tmakeAssetURL: (asset: string) => string;\n}) {\n\treturn /* HTML */ `<fieldset\n\t\tid=\"${`component-input-structured-${arg_path.join(\"-\")}`}\"\n\t>\n\t\t<legend>${arg_path.at(-1)}</legend>\n\t\t${(\n\t\t\tawait Promise.all(\n\t\t\t\tObject.entries(arg.structure).map(async ([arg_name, arg]) => {\n\t\t\t\t\tconst ret = `<div>\n\t\t\t\t\t\t${await ComponentInput({\n\t\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\targ_path: [...arg_path, arg_name],\n\t\t\t\t\t\t\targ,\n\t\t\t\t\t\t\tvalue: value[arg_name],\n\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t...rest,\n\t\t\t\t\t\t})}\n\t\t\t\t\t</div>`;\n\t\t\t\t\treturn ret;\n\t\t\t\t})\n\t\t\t)\n\t\t).join(\"\")}\n\t</fieldset>`;\n}\n"],
5
+ "mappings": "AAGA,SAAS,sBAAsB;AAI/B,eAAsB,yBAEpB;AAAA,EACD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,KACG;AACJ,GASG;AACF,SAAkB;AAAA,QACX,8BAA8B,SAAS,KAAK,GAAG;AAAA;AAAA,YAE3C,SAAS,GAAG,EAAE;AAAA,KAEvB,MAAM,QAAQ;AAAA,IACb,OAAO,QAAQ,IAAI,SAAS,EAAE,IAAI,OAAO,CAAC,UAAUA,IAAG,MAAM;AAC5D,YAAM,MAAM;AAAA,QACT,MAAM,eAAe;AAAA,QACtB;AAAA,QACA;AAAA,QACA,UAAU,CAAC,GAAG,UAAU,QAAQ;AAAA,QAChC,KAAAA;AAAA,QACA,OAAO,MAAM;AAAA,QACb;AAAA,QACA,GAAG;AAAA,MACJ,CAAC;AAAA;AAEF,aAAO;AAAA,IACR,CAAC;AAAA,EACF,GACC,KAAK,EAAE;AAAA;AAEX;",
6
+ "names": ["arg"]
7
+ }
@@ -0,0 +1,228 @@
1
+ import { Markdown } from "@sealcode/jdd";
2
+ import { isTableHeader } from "@sealcode/jdd";
3
+ import { tempstream } from "tempstream";
4
+ import { ComponentInput } from "./component-input.js";
5
+ async function ComponentInputTable({
6
+ state,
7
+ arg_path,
8
+ ctx,
9
+ arg,
10
+ value,
11
+ page,
12
+ makeJDDContext,
13
+ makeAssetURL
14
+ }) {
15
+ if (!value) {
16
+ value = await arg.getEmptyValue(makeJDDContext(ctx));
17
+ }
18
+ const show_paste = arg.cell_type instanceof Markdown && arg.header_type instanceof Markdown;
19
+ return tempstream`<fieldset>
20
+ <legend>${arg_path.at(-1)}</legend>
21
+ <div>
22
+ ${show_paste ? `<input
23
+ type="button"
24
+ value="paste"
25
+ placeholder="paste table here"
26
+ data-jdd-table-paste-argpath-value="${arg_path.join(
27
+ "."
28
+ )}"
29
+ data-controller="jdd-table-paste"
30
+ />` : ""}
31
+ <table
32
+ class="jdd-component-input--table"
33
+ style="position: relative; /* necessary for sticky th*/"
34
+ >
35
+ <tbody>
36
+ <tr>
37
+ <td></td>
38
+ ${[...Array(arg.getColumnsCount(value)).keys()].map(
39
+ (column_index) => `<th
40
+ class="sticky sticky--top subdued"
41
+ >
42
+ ${page.makeActionButton(
43
+ state,
44
+ {
45
+ action: "remove_table_column",
46
+ label: "Remove column",
47
+ content: `<img
48
+ width="20"
49
+ height="20"
50
+ src="${makeAssetURL(
51
+ "icons/table-delete-column.svg"
52
+ )}"
53
+ />`
54
+ },
55
+ arg_path,
56
+ column_index
57
+ )}
58
+ ${column_index >= arg.getColumnsCount(value) - 1 ? "" : page.makeActionButton(
59
+ state,
60
+ {
61
+ action: "move_table_column_right",
62
+ label: "Move column to the right",
63
+ content: `<img
64
+ width="20"
65
+ height="20"
66
+ src="${makeAssetURL(
67
+ "icons/table-move-column-right.svg"
68
+ )}"
69
+ />`
70
+ },
71
+ arg_path,
72
+ column_index
73
+ )}
74
+ </th>`
75
+ ).join("")}
76
+ </tr>
77
+ ${value.rows.map(
78
+ (row, row_index) => tempstream`<tr>
79
+ <td class="sticky sticky--left subdued">
80
+ <div
81
+ style="display: flex; flex-flow: column; row-gap: 5px;"
82
+ >
83
+ ${page.makeActionButton(
84
+ state,
85
+ {
86
+ action: "remove_table_row",
87
+ label: "Remove row",
88
+ content: `<img
89
+ width="20"
90
+ height="20"
91
+ src="${makeAssetURL(
92
+ "icons/table-delete-row.svg"
93
+ )}"
94
+ />`
95
+ },
96
+ arg_path,
97
+ row_index
98
+ )}
99
+ ${page.makeActionButton(
100
+ state,
101
+ {
102
+ action: "move_table_row_down",
103
+ label: "Move this row down",
104
+ content: `<img
105
+ width="20"
106
+ height="20"
107
+ src="${makeAssetURL(
108
+ "icons/table-move-row-down.svg"
109
+ )}"
110
+ />`
111
+ },
112
+ arg_path,
113
+ row_index
114
+ )}
115
+ </div>
116
+ </td>
117
+ ${isTableHeader(row) ? tempstream`<th
118
+ colspan="${arg.getColumnsCount(value).toString()}"
119
+ >
120
+ ${ComponentInput({
121
+ state,
122
+ ctx,
123
+ arg_path: [
124
+ ...arg_path,
125
+ "rows",
126
+ row_index.toString(),
127
+ "header_content"
128
+ ],
129
+ arg: arg.header_type,
130
+ value: row.header_content,
131
+ page,
132
+ makeJDDContext,
133
+ makeAssetURL
134
+ })}
135
+ </th>` : row.cells.map(
136
+ (cell, cell_index) => tempstream`<td>
137
+ ${ComponentInput({
138
+ ctx,
139
+ state,
140
+ arg_path: [
141
+ ...arg_path,
142
+ "rows",
143
+ row_index.toString(),
144
+ "cells",
145
+ cell_index.toString()
146
+ ],
147
+ arg: arg.cell_type,
148
+ value: cell,
149
+ page,
150
+ makeJDDContext,
151
+ makeAssetURL
152
+ })}
153
+ </td>`
154
+ )}
155
+ ${row_index == 0 ? `<td
156
+ class="subdued"
157
+ rowspan="${value.rows.length.toString()}"
158
+ >
159
+ ${page.makeActionButton(
160
+ state,
161
+ {
162
+ action: "add_table_column",
163
+ label: "Add column",
164
+ content: `<img
165
+ width="20"
166
+ height="20"
167
+ src="${makeAssetURL(
168
+ "icons/table-add-column-right.svg"
169
+ )}"
170
+ />`
171
+ },
172
+ arg_path
173
+ )}
174
+ </td>` : ""}
175
+ </tr>`
176
+ )}
177
+ <tr>
178
+ <td
179
+ class="subdued"
180
+ colspan="{(arg.getColumnsCount(value)"
181
+ +
182
+ 1).toString()}
183
+ >
184
+ ${page.makeActionButton(
185
+ state,
186
+ {
187
+ action: "add_table_row",
188
+ label: "Add table row",
189
+ content: `<img
190
+ width="20"
191
+ height="20"
192
+ src="${makeAssetURL(
193
+ "icons/table-add-row-below.svg"
194
+ )}"
195
+ />`
196
+ },
197
+ arg_path,
198
+ arg.getColumnsCount(value),
199
+ void 0
200
+ )}
201
+ ${page.makeActionButton(
202
+ state,
203
+ {
204
+ action: "add_table_row",
205
+ label: "Add table header",
206
+ content: `<img
207
+ width="20"
208
+ height="20"
209
+ src="${makeAssetURL(
210
+ "icons/table-add-column-header-below.svg"
211
+ )}"
212
+ />`
213
+ },
214
+ arg_path,
215
+ arg.getColumnsCount(value),
216
+ "header"
217
+ )}
218
+ </td>
219
+ </tr>
220
+ </tbody>
221
+ </table>
222
+ </div>
223
+ </fieldset>`;
224
+ }
225
+ export {
226
+ ComponentInputTable
227
+ };
228
+ //# sourceMappingURL=component-input-table.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/inputs/component-input-table.ts"],
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport type { JDDContext, Table, TableData } from \"@sealcode/jdd\";\nimport { Markdown } from \"@sealcode/jdd\";\nimport { isTableHeader } from \"@sealcode/jdd\";\nimport type { StatefulPage } from \"@sealcode/sealgen\";\nimport type { Context } from \"koa\";\nimport { tempstream } from \"tempstream\";\nimport { ComponentInput } from \"./component-input.js\";\nimport type { ComponentPreviewActions } from \"../component-preview-actions.js\";\nimport type { JDDPageState } from \"../jdd-page.js\";\n\nexport async function ComponentInputTable<\n\tState extends JDDPageState,\n\tCellType,\n\tHeaderType\n>({\n\tstate,\n\targ_path,\n\tctx,\n\targ,\n\tvalue,\n\tpage,\n\tmakeJDDContext,\n\tmakeAssetURL,\n}: {\n\tstate: State;\n\tctx: Context;\n\targ_path: string[];\n\targ: Table<CellType, HeaderType>;\n\tvalue: TableData<CellType, HeaderType>;\n\tpage: StatefulPage<JDDPageState, typeof ComponentPreviewActions>;\n\tmakeJDDContext: (ctx: Context) => JDDContext;\n\tmakeAssetURL: (asset: string) => string;\n}): Promise<string> {\n\tif (!value) {\n\t\tvalue = await arg.getEmptyValue(makeJDDContext(ctx));\n\t}\n\n\tconst show_paste =\n\t\targ.cell_type instanceof Markdown &&\n\t\targ.header_type instanceof Markdown;\n\n\treturn tempstream/* HTML */ `<fieldset>\n\t\t<legend>${arg_path.at(-1)!}</legend>\n\t\t<div>\n\t\t\t${show_paste\n\t\t\t\t? /* HTML */ `<input\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tvalue=\"paste\"\n\t\t\t\t\t\tplaceholder=\"paste table here\"\n\t\t\t\t\t\tdata-jdd-table-paste-argpath-value=\"${arg_path.join(\n\t\t\t\t\t\t\t\".\"\n\t\t\t\t\t\t)}\"\n\t\t\t\t\t\tdata-controller=\"jdd-table-paste\"\n\t\t\t\t />`\n\t\t\t\t: \"\"}\n\t\t\t<table\n\t\t\t\tclass=\"jdd-component-input--table\"\n\t\t\t\tstyle=\"position: relative; /* necessary for sticky th*/\"\n\t\t\t>\n\t\t\t\t<tbody>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td></td>\n\t\t\t\t\t\t${[...Array(arg.getColumnsCount(value)).keys()]\n\t\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t\t(column_index) => /* HTML */ `<th\n\t\t\t\t\t\t\t\t\tclass=\"sticky sticky--top subdued\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t${page.makeActionButton(\n\t\t\t\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\taction: \"remove_table_column\",\n\t\t\t\t\t\t\t\t\t\t\tlabel: \"Remove column\",\n\t\t\t\t\t\t\t\t\t\t\tcontent: /* HTML */ `<img\n\t\t\t\t\t\t\t\t\t\t\t\twidth=\"20\"\n\t\t\t\t\t\t\t\t\t\t\t\theight=\"20\"\n\t\t\t\t\t\t\t\t\t\t\t\tsrc=\"${makeAssetURL(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"icons/table-delete-column.svg\"\n\t\t\t\t\t\t\t\t\t\t\t\t)}\"\n\t\t\t\t\t\t\t\t\t\t\t/>`,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\targ_path,\n\t\t\t\t\t\t\t\t\t\tcolumn_index\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t${column_index >=\n\t\t\t\t\t\t\t\t\targ.getColumnsCount(value) - 1\n\t\t\t\t\t\t\t\t\t\t? \"\"\n\t\t\t\t\t\t\t\t\t\t: page.makeActionButton(\n\t\t\t\t\t\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\taction: \"move_table_column_right\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tlabel: \"Move column to the right\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tcontent: /* HTML */ `<img\n\t\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"20\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\theight=\"20\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsrc=\"${makeAssetURL(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"icons/table-move-column-right.svg\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)}\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>`,\n\t\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t\targ_path,\n\t\t\t\t\t\t\t\t\t\t\t\tcolumn_index\n\t\t\t\t\t\t\t\t\t\t )}\n\t\t\t\t\t\t\t\t</th>`\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t.join(\"\")}\n\t\t\t\t\t</tr>\n\t\t\t\t\t${value.rows.map(\n\t\t\t\t\t\t(row, row_index) => tempstream/* HTML */ `<tr>\n\t\t\t\t\t\t\t<td class=\"sticky sticky--left subdued\">\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tstyle=\"display: flex; flex-flow: column; row-gap: 5px;\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t${page.makeActionButton(\n\t\t\t\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\taction: \"remove_table_row\",\n\t\t\t\t\t\t\t\t\t\t\tlabel: \"Remove row\",\n\t\t\t\t\t\t\t\t\t\t\tcontent: /* HTML */ `<img\n\t\t\t\t\t\t\t\t\t\t\t\twidth=\"20\"\n\t\t\t\t\t\t\t\t\t\t\t\theight=\"20\"\n\t\t\t\t\t\t\t\t\t\t\t\tsrc=\"${makeAssetURL(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"icons/table-delete-row.svg\"\n\t\t\t\t\t\t\t\t\t\t\t\t)}\"\n\t\t\t\t\t\t\t\t\t\t\t/>`,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\targ_path,\n\t\t\t\t\t\t\t\t\t\trow_index\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t${page.makeActionButton(\n\t\t\t\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\taction: \"move_table_row_down\",\n\t\t\t\t\t\t\t\t\t\t\tlabel: \"Move this row down\",\n\t\t\t\t\t\t\t\t\t\t\tcontent: /* HTML */ `<img\n\t\t\t\t\t\t\t\t\t\t\t\twidth=\"20\"\n\t\t\t\t\t\t\t\t\t\t\t\theight=\"20\"\n\t\t\t\t\t\t\t\t\t\t\t\tsrc=\"${makeAssetURL(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"icons/table-move-row-down.svg\"\n\t\t\t\t\t\t\t\t\t\t\t\t)}\"\n\t\t\t\t\t\t\t\t\t\t\t/>`,\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\targ_path,\n\t\t\t\t\t\t\t\t\t\trow_index\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t${isTableHeader(row)\n\t\t\t\t\t\t\t\t? /* HTML */ tempstream`<th\n\t\t\t\t\t\t\t\t\t\tcolspan=\"${arg.getColumnsCount(value).toString()}\"\n\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t${ComponentInput({\n\t\t\t\t\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\t\t\t\t\targ_path: [\n\t\t\t\t\t\t\t\t\t\t\t\t...arg_path,\n\t\t\t\t\t\t\t\t\t\t\t\t\"rows\",\n\t\t\t\t\t\t\t\t\t\t\t\trow_index.toString(),\n\t\t\t\t\t\t\t\t\t\t\t\t\"header_content\",\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\targ: arg.header_type,\n\t\t\t\t\t\t\t\t\t\t\tvalue: row.header_content,\n\t\t\t\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\t\t\t\tmakeJDDContext,\n\t\t\t\t\t\t\t\t\t\t\tmakeAssetURL,\n\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t </th>`\n\t\t\t\t\t\t\t\t: row.cells.map(\n\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\tcell,\n\t\t\t\t\t\t\t\t\t\t\tcell_index\n\t\t\t\t\t\t\t\t\t\t) => tempstream/* HTML */ `<td>\n\t\t\t\t\t\t\t\t\t\t\t${ComponentInput({\n\t\t\t\t\t\t\t\t\t\t\t\tctx,\n\t\t\t\t\t\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\t\t\t\t\t\targ_path: [\n\t\t\t\t\t\t\t\t\t\t\t\t\t...arg_path,\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"rows\",\n\t\t\t\t\t\t\t\t\t\t\t\t\trow_index.toString(),\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"cells\",\n\t\t\t\t\t\t\t\t\t\t\t\t\tcell_index.toString(),\n\t\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t\targ: arg.cell_type,\n\t\t\t\t\t\t\t\t\t\t\t\tvalue: cell,\n\t\t\t\t\t\t\t\t\t\t\t\tpage,\n\t\t\t\t\t\t\t\t\t\t\t\tmakeJDDContext,\n\t\t\t\t\t\t\t\t\t\t\t\tmakeAssetURL,\n\t\t\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\t\t</td>`\n\t\t\t\t\t\t\t\t )}\n\t\t\t\t\t\t\t${row_index == 0\n\t\t\t\t\t\t\t\t? /* HTML */ `<td\n\t\t\t\t\t\t\t\t\t\tclass=\"subdued\"\n\t\t\t\t\t\t\t\t\t\trowspan=\"${value.rows.length.toString()}\"\n\t\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t\t${page.makeActionButton(\n\t\t\t\t\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\taction: \"add_table_column\",\n\t\t\t\t\t\t\t\t\t\t\t\tlabel: \"Add column\",\n\t\t\t\t\t\t\t\t\t\t\t\tcontent: /* HTML */ `<img\n\t\t\t\t\t\t\t\t\t\t\t\t\twidth=\"20\"\n\t\t\t\t\t\t\t\t\t\t\t\t\theight=\"20\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tsrc=\"${makeAssetURL(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"icons/table-add-column-right.svg\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>`,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\targ_path\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t </td>`\n\t\t\t\t\t\t\t\t: \"\"}\n\t\t\t\t\t\t</tr>`\n\t\t\t\t\t)}\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\tclass=\"subdued\"\n\t\t\t\t\t\t\tcolspan=\"{(arg.getColumnsCount(value)\"\n\t\t\t\t\t\t\t+\n\t\t\t\t\t\t\t1).toString()}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t${page.makeActionButton(\n\t\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\taction: \"add_table_row\",\n\t\t\t\t\t\t\t\t\tlabel: \"Add table row\",\n\t\t\t\t\t\t\t\t\tcontent: /* HTML */ `<img\n\t\t\t\t\t\t\t\t\t\twidth=\"20\"\n\t\t\t\t\t\t\t\t\t\theight=\"20\"\n\t\t\t\t\t\t\t\t\t\tsrc=\"${makeAssetURL(\n\t\t\t\t\t\t\t\t\t\t\t\"icons/table-add-row-below.svg\"\n\t\t\t\t\t\t\t\t\t\t)}\"\n\t\t\t\t\t\t\t\t\t/>`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\targ_path,\n\t\t\t\t\t\t\t\targ.getColumnsCount(value),\n\t\t\t\t\t\t\t\tundefined\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t${page.makeActionButton(\n\t\t\t\t\t\t\t\tstate,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\taction: \"add_table_row\",\n\t\t\t\t\t\t\t\t\tlabel: \"Add table header\",\n\t\t\t\t\t\t\t\t\tcontent: /* HTML */ `<img\n\t\t\t\t\t\t\t\t\t\twidth=\"20\"\n\t\t\t\t\t\t\t\t\t\theight=\"20\"\n\t\t\t\t\t\t\t\t\t\tsrc=\"${makeAssetURL(\n\t\t\t\t\t\t\t\t\t\t\t\"icons/table-add-column-header-below.svg\"\n\t\t\t\t\t\t\t\t\t\t)}\"\n\t\t\t\t\t\t\t\t\t/>`,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\targ_path,\n\t\t\t\t\t\t\t\targ.getColumnsCount(value),\n\t\t\t\t\t\t\t\t\"header\"\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t</div>\n\t</fieldset>`;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,164 @@
1
+ import { printArgPath } from "./print-arg-path.js";
2
+ import { SingleReference } from "@sealcode/jdd";
3
+ import {
4
+ ComponentArguments,
5
+ Enum,
6
+ Image,
7
+ List,
8
+ Structured,
9
+ Table
10
+ } from "@sealcode/jdd";
11
+ import { ComponentInputStructured } from "./component-input-structured.js";
12
+ import { ComponentInputList } from "./component-input-list.js";
13
+ import { ComponentInputEnum } from "./component-input-enum.js";
14
+ import { ComponentInputImage } from "./component-input-image.js";
15
+ import { ComponentInputTable } from "./component-input-table.js";
16
+ import { ComponentInputSingleReference } from "./component-input-single-reference.js";
17
+ import { is, predicates } from "@sealcode/ts-predicates";
18
+ import { tempstream } from "tempstream";
19
+ const actionName = "Components";
20
+ const absoluteUrlPattern = "http(s?)(://)((www.)?)(([^.]+).)?([a-zA-z0-9-_]+)";
21
+ async function ComponentInput({
22
+ ctx,
23
+ state,
24
+ arg_path,
25
+ arg,
26
+ value,
27
+ page,
28
+ makeJDDContext,
29
+ makeAssetURL
30
+ }) {
31
+ if (value === void 0) {
32
+ value = await arg.getEmptyValue(makeJDDContext(ctx));
33
+ }
34
+ if (arg instanceof List) {
35
+ return ComponentInputList({
36
+ ctx,
37
+ state,
38
+ arg_path,
39
+ arg,
40
+ value,
41
+ page,
42
+ makeJDDContext,
43
+ makeAssetURL
44
+ });
45
+ }
46
+ const argType = arg.getTypeName();
47
+ const isUrlAbsolute = arg instanceof ComponentArguments.URL && arg.urlType === "absolute";
48
+ const inputType = isUrlAbsolute ? "url" : "text";
49
+ if (arg instanceof Structured) {
50
+ return ComponentInputStructured({
51
+ ctx,
52
+ state,
53
+ arg_path,
54
+ arg,
55
+ value,
56
+ page,
57
+ makeJDDContext,
58
+ makeAssetURL
59
+ });
60
+ }
61
+ if (arg instanceof SingleReference) {
62
+ return ComponentInputSingleReference({
63
+ ctx,
64
+ state,
65
+ arg_path,
66
+ arg,
67
+ value,
68
+ onchange: page.rerender(),
69
+ makeJDDContext
70
+ });
71
+ }
72
+ if (arg instanceof Enum) {
73
+ return ComponentInputEnum({
74
+ state,
75
+ arg_path,
76
+ arg,
77
+ value,
78
+ onchange: page.rerender()
79
+ });
80
+ }
81
+ if (arg instanceof Image) {
82
+ return ComponentInputImage({
83
+ ctx,
84
+ state,
85
+ arg_path,
86
+ arg,
87
+ value,
88
+ page,
89
+ makeJDDContext
90
+ });
91
+ }
92
+ if (arg instanceof Table) {
93
+ return ComponentInputTable({
94
+ ctx,
95
+ state,
96
+ arg_path,
97
+ arg,
98
+ value,
99
+ page,
100
+ makeJDDContext,
101
+ makeAssetURL
102
+ });
103
+ }
104
+ const inputElement = () => {
105
+ switch (argType) {
106
+ case "url":
107
+ return tempstream`
108
+ <input
109
+ type="url"
110
+ name="{$.component_args${printArgPath(arg_path)}}"
111
+ value="{value"
112
+ as
113
+ string}
114
+ size="40"
115
+ pattern="{isUrlAbsolute"
116
+ ?
117
+ absoluteUrlPattern
118
+ :
119
+ undefined}
120
+ />
121
+ `;
122
+ case "number":
123
+ return tempstream`
124
+ <input type="number"
125
+ name={$.component_args${printArgPath(arg_path)}}
126
+ value={(value || "").toString()} min={ arg instanceof Number
127
+ ? arg.min.toString() : undefined } max={ arg instanceof
128
+ Number ? arg.max.toString() : undefined } step={ arg
129
+ instanceof Number ? arg.step.toString() : undefined } />
130
+ `;
131
+ default:
132
+ return tempstream`
133
+ <input type="${inputType}"
134
+ name="${`$${printArgPath(arg_path)}`}"
135
+ value="${is(value, predicates.string) ? value : ""}"
136
+ size="40"
137
+ ${isUrlAbsolute ? `pattern="${absoluteUrlPattern}"` : ""}"
138
+ />
139
+ `;
140
+ }
141
+ };
142
+ return `<div>
143
+ <label>
144
+ ${arg_path.at(-1) || ""}
145
+ ${argType == "markdown" ? `<div class="grow-wrap">
146
+ <textarea
147
+ name="${`$${printArgPath(arg_path)}`}"
148
+ onblur="${page.rerender()}"
149
+ cols="40"
150
+ data-controller="markdown-textarea submit-on-input"
151
+ data-action="autogrow-textarea#autogrow blur->autogrow-textarea#autogrow resize->autogrow-textarea#autogrow submit-on-input#sendValues focus->submit-on-input#makePermanent blur->submit-on-input#makeNotPermanent"
152
+ autocomplete="off"
153
+ >
154
+ ${is(value, predicates.string) ? value : ""}</textarea
155
+ >
156
+ </div>` : inputElement()}
157
+ </label>
158
+ </div>`;
159
+ }
160
+ export {
161
+ ComponentInput,
162
+ actionName
163
+ };
164
+ //# sourceMappingURL=component-input.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/inputs/component-input.ts"],
4
+ "sourcesContent": ["import { printArgPath } from \"./print-arg-path.js\";\nimport type { Context } from \"koa\";\nimport type {\n\tComponentArgument,\n\tJDDContext,\n\tTableData,\n\tNumber,\n} from \"@sealcode/jdd\";\nimport { SingleReference } from \"@sealcode/jdd\";\nimport {\n\tComponentArguments,\n\tEnum,\n\tImage,\n\tList,\n\tStructured,\n\tTable,\n} from \"@sealcode/jdd\";\nimport { ComponentInputStructured } from \"./component-input-structured.js\";\nimport type { StatefulPage } from \"@sealcode/sealgen\";\nimport type { ComponentPreviewActions } from \"../component-preview-actions.js\";\nimport { ComponentInputList } from \"./component-input-list.js\";\nimport type { JDDPageState } from \"../jdd-page.js\";\nimport { ComponentInputEnum } from \"./component-input-enum.js\";\nimport { ComponentInputImage } from \"./component-input-image.js\";\nimport { ComponentInputTable } from \"./component-input-table.js\";\nimport type { FilePointer } from \"@sealcode/file-manager\";\nimport { ComponentInputSingleReference } from \"./component-input-single-reference.js\";\nimport { is, predicates } from \"@sealcode/ts-predicates\";\nimport { tempstream } from \"tempstream\";\n\nexport const actionName = \"Components\";\nconst absoluteUrlPattern = \"http(s?)(://)((www.)?)(([^.]+).)?([a-zA-z0-9-_]+)\";\n\nexport async function ComponentInput<State extends JDDPageState, T>({\n\tctx,\n\tstate,\n\targ_path,\n\targ,\n\tvalue,\n\tpage,\n\tmakeJDDContext,\n\tmakeAssetURL,\n}: {\n\tstate: State;\n\tctx: Context;\n\targ_path: string[];\n\targ: ComponentArgument<T>;\n\tvalue: T;\n\tpage: StatefulPage<JDDPageState, typeof ComponentPreviewActions>;\n\tmakeJDDContext: (ctx: Context) => JDDContext;\n\tmakeAssetURL: (asset: string) => string;\n}): Promise<string> {\n\tif (value === undefined) {\n\t\tvalue = await arg.getEmptyValue(makeJDDContext(ctx));\n\t}\n\tif (arg instanceof List) {\n\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\treturn ComponentInputList({\n\t\t\tctx,\n\t\t\tstate,\n\t\t\targ_path,\n\t\t\targ,\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tvalue: value as T[],\n\t\t\tpage,\n\t\t\tmakeJDDContext,\n\t\t\tmakeAssetURL,\n\t\t});\n\t}\n\n\tconst argType = arg.getTypeName();\n\tconst isUrlAbsolute =\n\t\targ instanceof ComponentArguments.URL && arg.urlType === \"absolute\";\n\tconst inputType = isUrlAbsolute ? \"url\" : \"text\";\n\n\tif (arg instanceof Structured) {\n\t\treturn ComponentInputStructured({\n\t\t\tctx,\n\t\t\tstate,\n\t\t\targ_path,\n\t\t\targ,\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tvalue: value as Record<string, unknown>,\n\t\t\tpage,\n\t\t\tmakeJDDContext,\n\t\t\tmakeAssetURL,\n\t\t});\n\t}\n\n\tif (arg instanceof SingleReference) {\n\t\treturn ComponentInputSingleReference({\n\t\t\tctx,\n\t\t\tstate,\n\t\t\targ_path,\n\t\t\targ,\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tvalue: value as string,\n\t\t\tonchange: page.rerender(),\n\t\t\tmakeJDDContext,\n\t\t});\n\t}\n\n\tif (arg instanceof Enum) {\n\t\treturn ComponentInputEnum({\n\t\t\tstate,\n\t\t\targ_path,\n\t\t\targ,\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tvalue: value as string,\n\t\t\tonchange: page.rerender(),\n\t\t});\n\t}\n\n\tif (arg instanceof Image) {\n\t\treturn ComponentInputImage({\n\t\t\tctx,\n\t\t\tstate,\n\t\t\targ_path,\n\t\t\targ,\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tvalue: value as FilePointer,\n\t\t\tpage,\n\t\t\tmakeJDDContext,\n\t\t});\n\t}\n\n\tif (arg instanceof Table) {\n\t\treturn ComponentInputTable({\n\t\t\tctx,\n\t\t\tstate,\n\t\t\targ_path,\n\t\t\targ,\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tvalue: value as TableData<unknown, unknown>,\n\t\t\tpage,\n\t\t\tmakeJDDContext,\n\t\t\tmakeAssetURL,\n\t\t});\n\t}\n\n\tconst inputElement = () => {\n\t\tswitch (argType) {\n\t\t\tcase \"url\":\n\t\t\t\treturn tempstream/* HTML */ `\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"url\"\n\t\t\t\t\t\tname=\"{$.component_args${printArgPath(arg_path)}}\"\n\t\t\t\t\t\tvalue=\"{value\"\n\t\t\t\t\t\tas\n\t\t\t\t\t\tstring}\n\t\t\t\t\t\tsize=\"40\"\n\t\t\t\t\t\tpattern=\"{isUrlAbsolute\"\n\t\t\t\t\t\t?\n\t\t\t\t\t\tabsoluteUrlPattern\n\t\t\t\t\t\t:\n\t\t\t\t\t\tundefined}\n\t\t\t\t\t/>\n\t\t\t\t`;\n\t\t\tcase \"number\":\n\t\t\t\treturn tempstream/* HTML */ `\n\t\t\t\t\t<input type=\"number\"\n\t\t\t\t\tname={$.component_args${printArgPath(arg_path)}}\n\t\t\t\t\tvalue={(value || \"\").toString()} min={ arg instanceof Number\n\t\t\t\t\t? arg.min.toString() : undefined } max={ arg instanceof\n\t\t\t\t\tNumber ? arg.max.toString() : undefined } step={ arg\n\t\t\t\t\tinstanceof Number ? arg.step.toString() : undefined } />\n\t\t\t\t`;\n\t\t\tdefault:\n\t\t\t\treturn tempstream/* HTML */ `\n\t\t\t\t\t<input type=\"${inputType}\"\n\t\t\t\t\tname=\"${`$${printArgPath(arg_path)}`}\"\n\t\t\t\t\tvalue=\"${is(value, predicates.string) ? value : \"\"}\"\n\t\t\t\t\tsize=\"40\"\n\t\t\t\t\t${isUrlAbsolute ? `pattern=\"${absoluteUrlPattern}\"` : \"\"}\"\n\t\t\t\t\t/>\n\t\t\t\t`;\n\t\t}\n\t};\n\n\treturn /* HTML */ `<div>\n\t\t<label>\n\t\t\t${arg_path.at(-1) || \"\"}\n\t\t\t${argType == \"markdown\"\n\t\t\t\t? /* HTML */ `<div class=\"grow-wrap\">\n\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\tname=\"${`$${printArgPath(arg_path)}`}\"\n\t\t\t\t\t\t\tonblur=\"${page.rerender()}\"\n\t\t\t\t\t\t\tcols=\"40\"\n\t\t\t\t\t\t\tdata-controller=\"markdown-textarea submit-on-input\"\n\t\t\t\t\t\t\tdata-action=\"autogrow-textarea#autogrow blur->autogrow-textarea#autogrow resize->autogrow-textarea#autogrow submit-on-input#sendValues focus->submit-on-input#makePermanent blur->submit-on-input#makeNotPermanent\"\n\t\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\t>\n${is(value, predicates.string) ? value : \"\"}</textarea\n\t\t\t\t\t\t>\n\t\t\t\t </div>`\n\t\t\t\t: inputElement()}\n\t\t</label>\n\t</div>`;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ function printArgPath(path) {
2
+ return path.map((e) => `[${e}]`).join("");
3
+ }
4
+ export {
5
+ printArgPath
6
+ };
7
+ //# sourceMappingURL=print-arg-path.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/inputs/print-arg-path.ts"],
4
+ "sourcesContent": ["export function printArgPath(path: string[]): string {\n\treturn path.map((e) => `[${e}]`).join(\"\");\n}\n"],
5
+ "mappings": "AAAO,SAAS,aAAa,MAAwB;AACpD,SAAO,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,EAAE;AACzC;",
6
+ "names": []
7
+ }