sonamu 0.0.1 → 0.0.2

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 (255) hide show
  1. package/dist/api/caster.d.ts +12 -0
  2. package/dist/api/caster.d.ts.map +1 -0
  3. package/dist/api/caster.js +72 -0
  4. package/dist/api/caster.js.map +1 -0
  5. package/dist/api/code-converters.d.ts +21 -0
  6. package/dist/api/code-converters.d.ts.map +1 -0
  7. package/dist/api/code-converters.js +446 -0
  8. package/dist/api/code-converters.js.map +1 -0
  9. package/dist/api/context.d.ts +11 -0
  10. package/dist/api/context.d.ts.map +1 -0
  11. package/dist/api/context.js +3 -0
  12. package/dist/api/context.js.map +1 -0
  13. package/dist/api/decorators.d.ts +27 -0
  14. package/dist/api/decorators.d.ts.map +1 -0
  15. package/dist/api/decorators.js +23 -0
  16. package/dist/api/decorators.js.map +1 -0
  17. package/dist/api/index.d.ts +6 -0
  18. package/dist/api/index.d.ts.map +1 -0
  19. package/dist/api/index.js +22 -0
  20. package/dist/api/index.js.map +1 -0
  21. package/dist/api/init.d.ts +13 -0
  22. package/dist/api/init.d.ts.map +1 -0
  23. package/dist/api/init.js +110 -0
  24. package/dist/api/init.js.map +1 -0
  25. package/dist/database/base-model.d.ts +36 -0
  26. package/dist/database/base-model.d.ts.map +1 -0
  27. package/dist/database/base-model.js +222 -0
  28. package/dist/database/base-model.js.map +1 -0
  29. package/dist/database/db.d.ts +23 -0
  30. package/dist/database/db.d.ts.map +1 -0
  31. package/dist/database/db.js +109 -0
  32. package/dist/database/db.js.map +1 -0
  33. package/dist/database/f9-base-model.d.ts +39 -0
  34. package/dist/database/f9-base-model.d.ts.map +1 -0
  35. package/dist/database/f9-base-model.js +229 -0
  36. package/dist/database/f9-base-model.js.map +1 -0
  37. package/dist/database/f9-db.d.ts +23 -0
  38. package/dist/database/f9-db.d.ts.map +1 -0
  39. package/dist/database/f9-db.js +109 -0
  40. package/dist/database/f9-db.js.map +1 -0
  41. package/dist/database/knex-plugins/knex-on-duplicate-update.d.ts +2 -0
  42. package/dist/database/knex-plugins/knex-on-duplicate-update.d.ts.map +1 -0
  43. package/dist/database/knex-plugins/knex-on-duplicate-update.js +37 -0
  44. package/dist/database/knex-plugins/knex-on-duplicate-update.js.map +1 -0
  45. package/dist/database/upsert-builder.d.ts +29 -0
  46. package/dist/database/upsert-builder.d.ts.map +1 -0
  47. package/dist/database/upsert-builder.js +230 -0
  48. package/dist/database/upsert-builder.js.map +1 -0
  49. package/dist/exceptions/error-handler.d.ts +3 -0
  50. package/dist/exceptions/error-handler.d.ts.map +1 -0
  51. package/dist/exceptions/error-handler.js +32 -0
  52. package/dist/exceptions/error-handler.js.map +1 -0
  53. package/dist/exceptions/exceptions.d.ts +48 -0
  54. package/dist/exceptions/exceptions.d.ts.map +1 -0
  55. package/dist/exceptions/exceptions.js +105 -0
  56. package/dist/exceptions/exceptions.js.map +1 -0
  57. package/dist/exceptions/f9-exception.d.ts +48 -0
  58. package/dist/exceptions/f9-exception.d.ts.map +1 -0
  59. package/dist/exceptions/f9-exception.js +105 -0
  60. package/dist/exceptions/f9-exception.js.map +1 -0
  61. package/dist/exceptions/index.d.ts +3 -0
  62. package/dist/exceptions/index.d.ts.map +1 -0
  63. package/dist/exceptions/index.js +19 -0
  64. package/dist/exceptions/index.js.map +1 -0
  65. package/dist/exceptions/so-exceptions.d.ts +48 -0
  66. package/dist/exceptions/so-exceptions.d.ts.map +1 -0
  67. package/dist/exceptions/so-exceptions.js +105 -0
  68. package/dist/exceptions/so-exceptions.js.map +1 -0
  69. package/dist/f9-md/f9-md.d.ts +29 -0
  70. package/dist/f9-md/f9-md.d.ts.map +1 -0
  71. package/dist/f9-md/f9-md.js +148 -0
  72. package/dist/f9-md/f9-md.js.map +1 -0
  73. package/dist/f9-md/index.d.ts +5 -0
  74. package/dist/f9-md/index.d.ts.map +1 -0
  75. package/dist/f9-md/index.js +21 -0
  76. package/dist/f9-md/index.js.map +1 -0
  77. package/dist/f9-md/md-utils.d.ts +55 -0
  78. package/dist/f9-md/md-utils.d.ts.map +1 -0
  79. package/dist/f9-md/md-utils.js +104 -0
  80. package/dist/f9-md/md-utils.js.map +1 -0
  81. package/dist/f9-md/migrator.d.ts +79 -0
  82. package/dist/f9-md/migrator.d.ts.map +1 -0
  83. package/dist/f9-md/migrator.js +1084 -0
  84. package/dist/f9-md/migrator.js.map +1 -0
  85. package/dist/f9-md/model-definition.d.ts +40 -0
  86. package/dist/f9-md/model-definition.d.ts.map +1 -0
  87. package/dist/f9-md/model-definition.js +409 -0
  88. package/dist/f9-md/model-definition.js.map +1 -0
  89. package/dist/index.d.ts +18 -0
  90. package/dist/index.d.ts.map +1 -0
  91. package/dist/index.js.map +1 -0
  92. package/dist/smd/migrator.d.ts +79 -0
  93. package/dist/smd/migrator.d.ts.map +1 -0
  94. package/dist/smd/migrator.js +1084 -0
  95. package/dist/smd/migrator.js.map +1 -0
  96. package/dist/smd/smd-manager.d.ts +28 -0
  97. package/dist/smd/smd-manager.d.ts.map +1 -0
  98. package/dist/smd/smd-manager.js +140 -0
  99. package/dist/smd/smd-manager.js.map +1 -0
  100. package/dist/smd/smd-utils.d.ts +55 -0
  101. package/dist/smd/smd-utils.d.ts.map +1 -0
  102. package/dist/smd/smd-utils.js +104 -0
  103. package/dist/smd/smd-utils.js.map +1 -0
  104. package/dist/smd/smd.d.ts +40 -0
  105. package/dist/smd/smd.d.ts.map +1 -0
  106. package/dist/smd/smd.js +409 -0
  107. package/dist/smd/smd.js.map +1 -0
  108. package/dist/syncer/index.d.ts +2 -0
  109. package/dist/syncer/index.d.ts.map +1 -0
  110. package/dist/syncer/index.js +18 -0
  111. package/dist/syncer/index.js.map +1 -0
  112. package/dist/syncer/syncer.d.ts +103 -0
  113. package/dist/syncer/syncer.d.ts.map +1 -0
  114. package/dist/syncer/syncer.js +1001 -0
  115. package/dist/syncer/syncer.js.map +1 -0
  116. package/dist/templates/base-template.d.ts +13 -0
  117. package/dist/templates/base-template.d.ts.map +1 -0
  118. package/dist/templates/base-template.js +10 -0
  119. package/dist/templates/base-template.js.map +1 -0
  120. package/dist/templates/bridge.template.d.ts +17 -0
  121. package/dist/templates/bridge.template.d.ts.map +1 -0
  122. package/dist/templates/bridge.template.js +79 -0
  123. package/dist/templates/bridge.template.js.map +1 -0
  124. package/dist/templates/generated.template.d.ts +31 -0
  125. package/dist/templates/generated.template.d.ts.map +1 -0
  126. package/dist/templates/generated.template.js +180 -0
  127. package/dist/templates/generated.template.js.map +1 -0
  128. package/dist/templates/generated_http.template.d.ts +25 -0
  129. package/dist/templates/generated_http.template.d.ts.map +1 -0
  130. package/dist/templates/generated_http.template.js +114 -0
  131. package/dist/templates/generated_http.template.js.map +1 -0
  132. package/dist/templates/index.d.ts +2 -0
  133. package/dist/templates/index.d.ts.map +1 -0
  134. package/dist/templates/index.js +18 -0
  135. package/dist/templates/index.js.map +1 -0
  136. package/dist/templates/init_enums.template.d.ts +17 -0
  137. package/dist/templates/init_enums.template.d.ts.map +1 -0
  138. package/dist/templates/init_enums.template.js +54 -0
  139. package/dist/templates/init_enums.template.js.map +1 -0
  140. package/dist/templates/init_generated.template.d.ts +17 -0
  141. package/dist/templates/init_generated.template.d.ts.map +1 -0
  142. package/dist/templates/init_generated.template.js +40 -0
  143. package/dist/templates/init_generated.template.js.map +1 -0
  144. package/dist/templates/init_types.template.d.ts +17 -0
  145. package/dist/templates/init_types.template.d.ts.map +1 -0
  146. package/dist/templates/init_types.template.js +34 -0
  147. package/dist/templates/init_types.template.js.map +1 -0
  148. package/dist/templates/md.template.d.ts +17 -0
  149. package/dist/templates/md.template.d.ts.map +1 -0
  150. package/dist/templates/md.template.js +45 -0
  151. package/dist/templates/md.template.js.map +1 -0
  152. package/dist/templates/model.template.d.ts +17 -0
  153. package/dist/templates/model.template.d.ts.map +1 -0
  154. package/dist/templates/model.template.js +159 -0
  155. package/dist/templates/model.template.js.map +1 -0
  156. package/dist/templates/model_test.template.d.ts +17 -0
  157. package/dist/templates/model_test.template.d.ts.map +1 -0
  158. package/dist/templates/model_test.template.js +35 -0
  159. package/dist/templates/model_test.template.js.map +1 -0
  160. package/dist/templates/service.template.d.ts +28 -0
  161. package/dist/templates/service.template.d.ts.map +1 -0
  162. package/dist/templates/service.template.js +162 -0
  163. package/dist/templates/service.template.js.map +1 -0
  164. package/dist/templates/smd.template.d.ts +17 -0
  165. package/dist/templates/smd.template.d.ts.map +1 -0
  166. package/dist/templates/smd.template.js +45 -0
  167. package/dist/templates/smd.template.js.map +1 -0
  168. package/dist/templates/view_enums_buttonset.template.d.ts +17 -0
  169. package/dist/templates/view_enums_buttonset.template.d.ts.map +1 -0
  170. package/dist/templates/view_enums_buttonset.template.js +30 -0
  171. package/dist/templates/view_enums_buttonset.template.js.map +1 -0
  172. package/dist/templates/view_enums_dropdown.template.d.ts +18 -0
  173. package/dist/templates/view_enums_dropdown.template.d.ts.map +1 -0
  174. package/dist/templates/view_enums_dropdown.template.js +59 -0
  175. package/dist/templates/view_enums_dropdown.template.js.map +1 -0
  176. package/dist/templates/view_enums_select.template.d.ts +17 -0
  177. package/dist/templates/view_enums_select.template.d.ts.map +1 -0
  178. package/dist/templates/view_enums_select.template.js +56 -0
  179. package/dist/templates/view_enums_select.template.js.map +1 -0
  180. package/dist/templates/view_form.template.d.ts +83 -0
  181. package/dist/templates/view_form.template.d.ts.map +1 -0
  182. package/dist/templates/view_form.template.js +332 -0
  183. package/dist/templates/view_form.template.js.map +1 -0
  184. package/dist/templates/view_id_all_select.template.d.ts +17 -0
  185. package/dist/templates/view_id_all_select.template.d.ts.map +1 -0
  186. package/dist/templates/view_id_all_select.template.js +30 -0
  187. package/dist/templates/view_id_all_select.template.js.map +1 -0
  188. package/dist/templates/view_id_async_select.template.d.ts +17 -0
  189. package/dist/templates/view_id_async_select.template.d.ts.map +1 -0
  190. package/dist/templates/view_id_async_select.template.js +96 -0
  191. package/dist/templates/view_id_async_select.template.js.map +1 -0
  192. package/dist/templates/view_list.template.d.ts +96 -0
  193. package/dist/templates/view_list.template.d.ts.map +1 -0
  194. package/dist/templates/view_list.template.js +552 -0
  195. package/dist/templates/view_list.template.js.map +1 -0
  196. package/dist/templates/view_list_columns.template.d.ts +17 -0
  197. package/dist/templates/view_list_columns.template.d.ts.map +1 -0
  198. package/dist/templates/view_list_columns.template.js +47 -0
  199. package/dist/templates/view_list_columns.template.js.map +1 -0
  200. package/dist/templates/view_search_input.template.d.ts +17 -0
  201. package/dist/templates/view_search_input.template.d.ts.map +1 -0
  202. package/dist/templates/view_search_input.template.js +63 -0
  203. package/dist/templates/view_search_input.template.js.map +1 -0
  204. package/dist/testing/f9-fixture-manager.d.ts +16 -0
  205. package/dist/testing/f9-fixture-manager.d.ts.map +1 -0
  206. package/dist/testing/f9-fixture-manager.js +211 -0
  207. package/dist/testing/f9-fixture-manager.js.map +1 -0
  208. package/dist/testing/fixture-manager.d.ts +16 -0
  209. package/dist/testing/fixture-manager.d.ts.map +1 -0
  210. package/dist/testing/fixture-manager.js +212 -0
  211. package/dist/testing/fixture-manager.js.map +1 -0
  212. package/dist/types/index.d.ts +2 -0
  213. package/dist/types/index.d.ts.map +1 -0
  214. package/dist/types/index.js +18 -0
  215. package/dist/types/index.js.map +1 -0
  216. package/dist/types/shared.d.ts +725 -0
  217. package/dist/types/shared.d.ts.map +1 -0
  218. package/dist/types/shared.js +288 -0
  219. package/dist/types/shared.js.map +1 -0
  220. package/dist/types/types.d.ts +725 -0
  221. package/dist/types/types.d.ts.map +1 -0
  222. package/dist/types/types.js +288 -0
  223. package/dist/types/types.js.map +1 -0
  224. package/dist/utils/controller.d.ts +8 -0
  225. package/dist/utils/controller.d.ts.map +1 -0
  226. package/dist/utils/controller.js +32 -0
  227. package/dist/utils/controller.js.map +1 -0
  228. package/dist/utils/f9-cache.d.ts +1 -0
  229. package/dist/utils/f9-cache.d.ts.map +1 -0
  230. package/dist/utils/f9-cache.js +113 -0
  231. package/dist/utils/f9-cache.js.map +1 -0
  232. package/dist/utils/index.d.ts +4 -0
  233. package/dist/utils/index.d.ts.map +1 -0
  234. package/dist/utils/index.js +20 -0
  235. package/dist/utils/index.js.map +1 -0
  236. package/dist/utils/lodash-able.d.ts +3 -0
  237. package/dist/utils/lodash-able.d.ts.map +1 -0
  238. package/dist/utils/lodash-able.js +13 -0
  239. package/dist/utils/lodash-able.js.map +1 -0
  240. package/dist/utils/model.d.ts +17 -0
  241. package/dist/utils/model.d.ts.map +1 -0
  242. package/dist/utils/model.js +26 -0
  243. package/dist/utils/model.js.map +1 -0
  244. package/dist/utils/tf-utils.d.ts +6 -0
  245. package/dist/utils/tf-utils.d.ts.map +1 -0
  246. package/dist/utils/tf-utils.js +67 -0
  247. package/dist/utils/tf-utils.js.map +1 -0
  248. package/dist/utils/utils.d.ts +6 -0
  249. package/dist/utils/utils.d.ts.map +1 -0
  250. package/dist/utils/utils.js +67 -0
  251. package/dist/utils/utils.js.map +1 -0
  252. package/package.json +4 -2
  253. package/src/templates/generated.template.ts +2 -2
  254. package/src/templates/model_test.template.ts +1 -1
  255. package/src/templates/smd.template.ts +1 -1
@@ -0,0 +1,332 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Template__view_form = void 0;
4
+ const inflection_1 = require("inflection");
5
+ const zod_1 = require("zod");
6
+ const smd_manager_1 = require("../smd/smd-manager");
7
+ const base_template_1 = require("./base-template");
8
+ const view_list_template_1 = require("./view_list.template");
9
+ class Template__view_form extends base_template_1.Template {
10
+ constructor() {
11
+ super("view_form");
12
+ }
13
+ getTargetAndPath(names) {
14
+ return {
15
+ target: "web/src/pages/admin",
16
+ path: `${names.fsPlural}/form.tsx`,
17
+ };
18
+ }
19
+ wrapFC(body, label) {
20
+ return [
21
+ `<Form.Field>${label ? `\n <label>${label}</label>` : ""}`,
22
+ body,
23
+ `</Form.Field>`,
24
+ ].join("\n");
25
+ }
26
+ wrapFG(body, label) {
27
+ return [
28
+ `<Form.Group widths="equal">`,
29
+ this.wrapFC(body, label),
30
+ `</Form.Group>`,
31
+ ].join("\n");
32
+ }
33
+ renderColumnImport(smdId, col) {
34
+ if (col.renderType === "enums") {
35
+ const { id, targetMDNames } = (0, view_list_template_1.getEnumInfoFromColName)(smdId, col.name);
36
+ const componentId = `${id}Select`;
37
+ return `import { ${componentId} } from "src/components/${targetMDNames.fs}/${componentId}";`;
38
+ }
39
+ else if (col.renderType === "number-fk_id") {
40
+ const relProp = (0, view_list_template_1.getRelationPropFromColName)(smdId, col.name.replace("_id", ""));
41
+ const targetNames = smd_manager_1.SMDManager.getNamesFromId(relProp.with);
42
+ const componentId = `${relProp.with}IdAsyncSelect`;
43
+ return `import { ${componentId} } from "src/components/${targetNames.fs}/${componentId}";`;
44
+ }
45
+ else {
46
+ throw new Error(`렌더 불가능한 임포트 ${col.name} ${col.renderType}`);
47
+ }
48
+ }
49
+ renderColumn(smdId, col, names, parent = "") {
50
+ var _a;
51
+ let regExpr = "";
52
+ regExpr = `{...register(\`${parent}${col.name}\`)}`;
53
+ switch (col.renderType) {
54
+ case "string-plain":
55
+ if (col.zodType instanceof zod_1.z.ZodString &&
56
+ ((_a = col.zodType.maxLength) !== null && _a !== void 0 ? _a : 0) <= 512) {
57
+ return `<Input placeholder="${col.label}" ${regExpr} />`;
58
+ }
59
+ else {
60
+ return `<TextArea rows={8} placeholder="${col.label}" ${regExpr} />`;
61
+ }
62
+ case "string-datetime":
63
+ return `<SQLDateTimeInput ${regExpr} />`;
64
+ case "number-id":
65
+ return `<input type="hidden" ${regExpr} />`;
66
+ case "number-plain":
67
+ return `<NumberInput placeholder="${col.label}" ${regExpr} />`;
68
+ case "boolean":
69
+ return `<BooleanToggle ${regExpr} />`;
70
+ case "string-image":
71
+ return `<ImageUploader multiple={false} ${regExpr} />`;
72
+ case "array-images":
73
+ return `<ImageUploader multiple={true} ${regExpr} maxSize={5} />`;
74
+ case "enums":
75
+ try {
76
+ let enumId;
77
+ if (col.name === "orderBy") {
78
+ enumId = `${names.capital}${(0, inflection_1.camelize)(col.name)}Select`;
79
+ }
80
+ else {
81
+ const { id } = (0, view_list_template_1.getEnumInfoFromColName)(smdId, col.name);
82
+ enumId = `${id}Select`;
83
+ }
84
+ return `<${enumId} ${regExpr} ${col.optional || col.nullable ? "clearable" : ""} />`;
85
+ }
86
+ catch (_b) {
87
+ return `<>찾을 수 없는 Enum ${col.name}</>`;
88
+ }
89
+ case "number-fk_id":
90
+ try {
91
+ const relProp = (0, view_list_template_1.getRelationPropFromColName)(smdId, col.name.replace("_id", ""));
92
+ const fkId = `${relProp.with}IdAsyncSelect`;
93
+ return `<${fkId} {...register('${col.name}')} ${col.optional || col.nullable ? "clearable" : ""} subset="A" />`;
94
+ }
95
+ catch (_c) {
96
+ return `<>${col.name} 찾을 수 없음</>`;
97
+ }
98
+ case "array":
99
+ return `{form.${col.name}.map((elem, index) => ${this.renderColumn(smdId, col.element, names, `${parent}${col.name}[\${index}]`)})}`;
100
+ case "object":
101
+ return (`<Form.Group className="${col.name}"${parent !== "" ? " key={index}" : ""}>` +
102
+ col
103
+ .children.map((child) => this.wrapFC(this.renderColumn(smdId, child, names, `${parent}.`), child.label))
104
+ .join("\n") +
105
+ "</Form.Group>");
106
+ default:
107
+ throw new Error(`대응 불가능한 렌더 타입 ${col.renderType} on ${col.name}`);
108
+ }
109
+ }
110
+ resolveDefaultValue(columns) {
111
+ return columns.reduce((result, col) => {
112
+ if (col.optional) {
113
+ return result;
114
+ }
115
+ let value;
116
+ if (col.nullable === true) {
117
+ value = null;
118
+ }
119
+ else if (col.zodType instanceof zod_1.z.ZodNumber) {
120
+ value = 0;
121
+ }
122
+ else if (col.zodType instanceof zod_1.z.ZodEnum) {
123
+ value = Object.keys(col.zodType.Enum)[0];
124
+ }
125
+ else if (col.zodType instanceof zod_1.z.ZodBoolean) {
126
+ value = false;
127
+ }
128
+ else if (col.zodType instanceof zod_1.z.ZodString) {
129
+ if (col.renderType === "string-datetime") {
130
+ value = "now()";
131
+ }
132
+ else {
133
+ value = "";
134
+ }
135
+ }
136
+ else if (col.zodType instanceof zod_1.z.ZodArray) {
137
+ value = [];
138
+ }
139
+ else if (col.zodType instanceof zod_1.z.ZodObject) {
140
+ value = {};
141
+ }
142
+ result[col.name] = value;
143
+ return result;
144
+ }, {});
145
+ }
146
+ render({ smdId }, saveParamsNode) {
147
+ const names = smd_manager_1.SMDManager.getNamesFromId(smdId);
148
+ const columns = saveParamsNode.children.filter((col) => col.name !== "id");
149
+ const defaultValue = this.resolveDefaultValue(columns);
150
+ // 프리 템플릿
151
+ const preTemplates = columns
152
+ .filter((col) => {
153
+ if (col.name !== "id" &&
154
+ (["enums", "number-id"].includes(col.renderType) ||
155
+ col.name.endsWith("_id"))) {
156
+ try {
157
+ (0, view_list_template_1.getRelationPropFromColName)(smdId, col.name.replace("_id", ""));
158
+ }
159
+ catch (_a) {
160
+ return false;
161
+ }
162
+ return true;
163
+ }
164
+ else {
165
+ return false;
166
+ }
167
+ })
168
+ .map((col) => {
169
+ let key;
170
+ let targetMdId = smdId;
171
+ if (col.renderType === "enums") {
172
+ key = "view_enums_select";
173
+ }
174
+ else {
175
+ key = "view_id_async_select";
176
+ const relProp = (0, view_list_template_1.getRelationPropFromColName)(smdId, col.name.replace("_id", ""));
177
+ targetMdId = relProp.with;
178
+ }
179
+ return {
180
+ key: key,
181
+ options: {
182
+ smdId: targetMdId,
183
+ node: col,
184
+ },
185
+ };
186
+ })
187
+ .filter((preTemplate) => {
188
+ if (preTemplate.key === "view_id_async_select") {
189
+ try {
190
+ smd_manager_1.SMDManager.get(preTemplate.options.smdId);
191
+ return true;
192
+ }
193
+ catch (_a) {
194
+ return false;
195
+ }
196
+ }
197
+ return true;
198
+ });
199
+ return Object.assign(Object.assign({}, this.getTargetAndPath(names)), { body: `
200
+ import React, { useEffect, useState, Dispatch, SetStateAction } from 'react';
201
+ import { useSearchParams } from 'react-router-dom';
202
+ import {
203
+ Button,
204
+ Checkbox,
205
+ Form,
206
+ Header,
207
+ Input,
208
+ Segment,
209
+ TextArea,
210
+ Label,
211
+ } from 'semantic-ui-react';
212
+ import { DateTime } from "luxon";
213
+
214
+ import { BackLink } from 'src/typeframe/components/BackLink';
215
+ import { LinkInput } from 'src/typeframe/components/LinkInput';
216
+ import { ImageUploader } from 'src/typeframe/components/ImageUploader';
217
+ import { NumberInput } from 'src/typeframe/components/NumberInput';
218
+ import { BooleanToggle } from 'src/typeframe/components/BooleanToggle';
219
+ import { SQLDateTimeInput } from "src/typeframe/components/SQLDateTimeInput";
220
+ import { defCatch } from 'src/typeframe/fetch';
221
+
222
+ import { ${names.capital}SaveParams } from 'src/services/${names.fs}/${names.fs}.types';
223
+ import { useTypeForm, useGoBack } from 'src/typeframe/helpers';
224
+ import { usePubSub } from 'src/typeframe/pubsub';
225
+ import { ${names.capital}Service } from 'src/services/${names.fs}/${names.fs}.service';
226
+ import { ${names.capital}SubsetA } from 'src/services/${names.fs}/${names.fs}.generated';
227
+ ${columns
228
+ .filter((col) => ["number-fk_id", "enums"].includes(col.renderType))
229
+ .map((col) => {
230
+ return this.renderColumnImport(smdId, col);
231
+ })
232
+ .join("\n")}
233
+
234
+ export default function ${names.capitalPlural}FormPage() {
235
+ // 라우팅 searchParams
236
+ const [searchParams] = useSearchParams();
237
+ const query = {
238
+ id: searchParams.get('id') ?? undefined,
239
+ };
240
+
241
+ return <${names.capitalPlural}Form id={query?.id ? Number(query.id) : undefined} />;
242
+ }
243
+ type ${names.capitalPlural}FormProps = {
244
+ id?: number;
245
+ mode?: 'page' | 'modal';
246
+ };
247
+ export function ${names.capitalPlural}Form({ id, mode }: ${names.capitalPlural}FormProps) {
248
+ // 편집시 기존 row
249
+ const [row, setRow] = useState<${names.capital}SubsetA | undefined>();
250
+
251
+ // ${names.capital}SaveParams 폼
252
+ const { form, setForm, register } = useTypeForm(${names.capital}SaveParams, ${JSON.stringify(defaultValue).replace('"now()"', "DateTime.local().toSQL().slice(0, 19)")});
253
+
254
+ // 수정일 때 기존 row 콜
255
+ useEffect(() => {
256
+ if (id) {
257
+ ${names.capital}Service.get${names.capital}('A', id).then((row) => {
258
+ setRow(row);
259
+ setForm({
260
+ ...row,
261
+ ${columns
262
+ .filter((col) => col.renderType === "number-fk_id")
263
+ .map((col) => {
264
+ if (col.nullable) {
265
+ return `${col.name}: row.${col.name.replace("_id", "?.id")} ?? null`;
266
+ }
267
+ else {
268
+ return `${col.name}: row.${col.name.replace("_id", ".id")}`;
269
+ }
270
+ })
271
+ .join(",\n")}
272
+ });
273
+ });
274
+ }
275
+ }, [id]);
276
+
277
+ // 저장
278
+ const { goBack } = useGoBack();
279
+ const handleSubmit = () => {
280
+ ${names.capital}Service.save([form]).then(([id]) => {
281
+ if (mode !== 'modal') {
282
+ goBack('/admin/${names.fsPlural}');
283
+ }
284
+ }).catch(defCatch);
285
+ };
286
+
287
+ // 모달 서브밋 핸들링
288
+ const { subscribe } = usePubSub();
289
+ useEffect(() => {
290
+ if (id) {
291
+ return subscribe(\`${names.fs}#\${id}.submitted\`, () => {
292
+ handleSubmit();
293
+ });
294
+ }
295
+ }, [form]);
296
+
297
+ return (
298
+ <div className="form">
299
+ <Segment padded basic>
300
+ <Segment padded color="grey">
301
+ <div className="header-row">
302
+ <Header>
303
+ ${names.capital}{id ? \`#\${id} 수정 폼\` : ' 작성 폼'}
304
+ </Header>
305
+ <div className="buttons">
306
+ <BackLink primary size="tiny" to="/admin/${names.fsPlural}">
307
+ 목록
308
+ </BackLink>
309
+ </div>
310
+ </div>
311
+ <Form>
312
+ ${columns
313
+ .map((col) => this.wrapFG(this.renderColumn(smdId, col, names), col.label))
314
+ .join("\n")}
315
+ {mode !== 'modal' && (
316
+ <Segment basic textAlign="center">
317
+ <Button type="submit" primary onClick={handleSubmit}>
318
+ 저장
319
+ </Button>
320
+ </Segment>
321
+ )}
322
+ </Form>
323
+ </Segment>
324
+ </Segment>
325
+ </div>
326
+ );
327
+ }
328
+ `.trim(), importKeys: [], preTemplates });
329
+ }
330
+ }
331
+ exports.Template__view_form = Template__view_form;
332
+ //# sourceMappingURL=view_form.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view_form.template.js","sourceRoot":"","sources":["../../src/templates/view_form.template.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { TemplateOptions } from "../types/types";
2
+ import { SMDNamesRecord } from "../smd/smd-manager";
3
+ import { Template } from "./base-template";
4
+ export declare class Template__view_id_all_select extends Template {
5
+ constructor();
6
+ getTargetAndPath(names: SMDNamesRecord): {
7
+ target: string;
8
+ path: string;
9
+ };
10
+ render({ smdId }: TemplateOptions["view_id_all_select"]): {
11
+ body: string;
12
+ importKeys: never[];
13
+ target: string;
14
+ path: string;
15
+ };
16
+ }
17
+ //# sourceMappingURL=view_id_all_select.template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view_id_all_select.template.d.ts","sourceRoot":"","sources":["../../src/templates/view_id_all_select.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAc,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,qBAAa,4BAA6B,SAAQ,QAAQ;;IAKxD,gBAAgB,CAAC,KAAK,EAAE,cAAc;;;;IAOtC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,eAAe,CAAC,oBAAoB,CAAC;;;;;;CAiBxD"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Template__view_id_all_select = void 0;
4
+ const smd_manager_1 = require("../smd/smd-manager");
5
+ const base_template_1 = require("./base-template");
6
+ class Template__view_id_all_select extends base_template_1.Template {
7
+ constructor() {
8
+ super("view_id_all_select");
9
+ }
10
+ getTargetAndPath(names) {
11
+ return {
12
+ target: "web/src/components",
13
+ path: `${names.fs}/${names.capital}IdAllSelect.tsx`,
14
+ };
15
+ }
16
+ render({ smdId }) {
17
+ const names = smd_manager_1.SMDManager.getNamesFromId(smdId);
18
+ return Object.assign(Object.assign({}, this.getTargetAndPath(names)), { body: `
19
+ /*
20
+ view_id_all_select
21
+ ${JSON.stringify({
22
+ key: this.key,
23
+ options: smdId,
24
+ })}
25
+ */
26
+ `.trim(), importKeys: [] });
27
+ }
28
+ }
29
+ exports.Template__view_id_all_select = Template__view_id_all_select;
30
+ //# sourceMappingURL=view_id_all_select.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view_id_all_select.template.js","sourceRoot":"","sources":["../../src/templates/view_id_all_select.template.ts"],"names":[],"mappings":";;;AACA,oDAAgE;AAChE,mDAA2C;AAE3C,MAAa,4BAA6B,SAAQ,wBAAQ;IACxD;QACE,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC9B,CAAC;IAED,gBAAgB,CAAC,KAAqB;QACpC,OAAO;YACL,MAAM,EAAE,oBAAoB;YAC5B,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,iBAAiB;SACpD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,EAAE,KAAK,EAAyC;QACrD,MAAM,KAAK,GAAG,wBAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE/C,uCACK,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAC/B,IAAI,EAAE;;;EAGV,IAAI,CAAC,SAAS,CAAC;gBACf,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,OAAO,EAAE,KAAK;aACf,CAAC;;OAEK,CAAC,IAAI,EAAE,EACR,UAAU,EAAE,EAAE,IACd;IACJ,CAAC;CACF;AA7BD,oEA6BC"}
@@ -0,0 +1,17 @@
1
+ import { TemplateOptions } from "../types/types";
2
+ import { SMDNamesRecord } from "../smd/smd-manager";
3
+ import { Template } from "./base-template";
4
+ export declare class Template__view_id_async_select extends Template {
5
+ constructor();
6
+ getTargetAndPath(names: SMDNamesRecord): {
7
+ target: string;
8
+ path: string;
9
+ };
10
+ render({ smdId, textField }: TemplateOptions["view_id_async_select"]): {
11
+ body: string;
12
+ importKeys: never[];
13
+ target: string;
14
+ path: string;
15
+ };
16
+ }
17
+ //# sourceMappingURL=view_id_async_select.template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view_id_async_select.template.d.ts","sourceRoot":"","sources":["../../src/templates/view_id_async_select.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAc,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,qBAAa,8BAA+B,SAAQ,QAAQ;;IAK1D,gBAAgB,CAAC,KAAK,EAAE,cAAc;;;;IAOtC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,eAAe,CAAC,sBAAsB,CAAC;;;;;;CAgGrE"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Template__view_id_async_select = void 0;
4
+ const smd_manager_1 = require("../smd/smd-manager");
5
+ const base_template_1 = require("./base-template");
6
+ class Template__view_id_async_select extends base_template_1.Template {
7
+ constructor() {
8
+ super("view_id_async_select");
9
+ }
10
+ getTargetAndPath(names) {
11
+ return {
12
+ target: "web/src/components",
13
+ path: `${names.fs}/${names.capital}IdAsyncSelect.tsx`,
14
+ };
15
+ }
16
+ render({ smdId, textField }) {
17
+ const names = smd_manager_1.SMDManager.getNamesFromId(smdId);
18
+ const smd = smd_manager_1.SMDManager.get(smdId);
19
+ if (!textField) {
20
+ const pickedProp = smd.props.find((prop) => ["name", "title"].includes(prop.name));
21
+ if (pickedProp) {
22
+ textField = pickedProp.name;
23
+ }
24
+ else {
25
+ const candidateProp = smd.props.find((prop) => prop.type === "string");
26
+ if (candidateProp) {
27
+ textField = candidateProp.name;
28
+ }
29
+ else {
30
+ console.log("textField 찾을 수 없음");
31
+ }
32
+ }
33
+ }
34
+ return Object.assign(Object.assign({}, this.getTargetAndPath(names)), { body: `
35
+ import React, { useState, useEffect, SyntheticEvent } from "react";
36
+ import { DropdownProps, DropdownItemProps, DropdownOnSearchChangeData, Dropdown } from "semantic-ui-react";
37
+ import { ${names.capital}SubsetKey, ${names.capital}SubsetMapping } from "src/services/${names.fs}/${names.fs}.generated";
38
+ import { ${names.capital}Service } from "src/services/${names.fs}/${names.fs}.service";
39
+ import { ${names.capital}ListParams } from "src/services/${names.fs}/${names.fs}.types";
40
+
41
+ export function ${names.capital}IdAsyncSelect<T extends ${names.capital}SubsetKey>(
42
+ { subset, baseListParams, textField, valueField, ...props }: DropdownProps & {
43
+ subset: T;
44
+ baseListParams?: ${names.capital}ListParams;
45
+ textField${textField ? "?" : ""}: keyof ${names.capital}SubsetMapping[T];
46
+ valueField?: keyof ${names.capital}SubsetMapping[T];
47
+ },
48
+ ) {
49
+ const [options, setOptions] = useState<DropdownItemProps[]>([]);
50
+ const [listParams, setListParams] = useState<${names.capital}ListParams>(
51
+ baseListParams ?? {},
52
+ );
53
+
54
+ const { data, error } = ${names.capital}Service.use${names.capitalPlural}(subset, listParams);
55
+ const { rows: ${names.camelPlural}, total } = data ?? {};
56
+
57
+ useEffect(() => {
58
+ setOptions(
59
+ (${names.camelPlural} ?? []).map((${names.camel}) => {
60
+ return {
61
+ key: ${names.camel}.id,
62
+ value: ${names.camel}[valueField ?? 'id'] as string | number,
63
+ text: String(${names.camel}[textField${textField ? ` ?? '${textField}'` : ""}]),
64
+ };
65
+ }),
66
+ );
67
+ }, [${names.camelPlural}]);
68
+
69
+ const handleSearchChange = (
70
+ e: SyntheticEvent<HTMLElement, Event>,
71
+ data: DropdownOnSearchChangeData,
72
+ ) => {
73
+ setListParams({
74
+ ...listParams,
75
+ keyword: data.searchQuery,
76
+ });
77
+ };
78
+
79
+ return (
80
+ <Dropdown
81
+ placeholder="${names.constant}"
82
+ selection
83
+ options={options}
84
+ onSearchChange={handleSearchChange}
85
+ disabled={!${names.camelPlural}}
86
+ loading={!${names.camelPlural}}
87
+ selectOnBlur={false}
88
+ {...props}
89
+ />
90
+ );
91
+ }
92
+ `.trim(), importKeys: [] });
93
+ }
94
+ }
95
+ exports.Template__view_id_async_select = Template__view_id_async_select;
96
+ //# sourceMappingURL=view_id_async_select.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view_id_async_select.template.js","sourceRoot":"","sources":["../../src/templates/view_id_async_select.template.ts"],"names":[],"mappings":";;;AACA,oDAAgE;AAChE,mDAA2C;AAE3C,MAAa,8BAA+B,SAAQ,wBAAQ;IAC1D;QACE,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAC,KAAqB;QACpC,OAAO;YACL,MAAM,EAAE,oBAAoB;YAC5B,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,mBAAmB;SACtD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,EAA2C;QAClE,MAAM,KAAK,GAAG,wBAAU,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE/C,MAAM,GAAG,GAAG,wBAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE;YACd,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACzC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CACtC,CAAC;YACF,IAAI,UAAU,EAAE;gBACd,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC;aAC7B;iBAAM;gBACL,MAAM,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;gBACvE,IAAI,aAAa,EAAE;oBACjB,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC;iBAChC;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;iBAClC;aACF;SACF;QAED,uCACK,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAC/B,IAAI,EAAE;;;WAGD,KAAK,CAAC,OAAO,cAChB,KAAK,CAAC,OACR,sCAAsC,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE;WACrD,KAAK,CAAC,OAAO,gCAAgC,KAAK,CAAC,EAAE,IACxD,KAAK,CAAC,EACR;WACK,KAAK,CAAC,OAAO,mCAAmC,KAAK,CAAC,EAAE,IAC3D,KAAK,CAAC,EACR;;kBAEY,KAAK,CAAC,OAAO,2BACvB,KAAK,CAAC,OACR;;;uBAGiB,KAAK,CAAC,OAAO;eACrB,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,KAAK,CAAC,OAAO;yBAClC,KAAK,CAAC,OAAO;;;;iDAIW,KAAK,CAAC,OAAO;;;;4BAIlC,KAAK,CAAC,OAAO,cACjC,KAAK,CAAC,aACR;kBACY,KAAK,CAAC,WAAW;;;;SAI1B,KAAK,CAAC,WAAW,gBAAgB,KAAK,CAAC,KAAK;;iBAEpC,KAAK,CAAC,KAAK;mBACT,KAAK,CAAC,KAAK;yBACL,KAAK,CAAC,KAAK,aAC5B,SAAS,CAAC,CAAC,CAAC,QAAQ,SAAS,GAAG,CAAC,CAAC,CAAC,EACrC;;;;QAIE,KAAK,CAAC,WAAW;;;;;;;;;;;;;;qBAcJ,KAAK,CAAC,QAAQ;;;;mBAIhB,KAAK,CAAC,WAAW;kBAClB,KAAK,CAAC,WAAW;;;;;;OAM5B,CAAC,IAAI,EAAE,EACR,UAAU,EAAE,EAAE,IACd;IACJ,CAAC;CACF;AA5GD,wEA4GC"}
@@ -0,0 +1,96 @@
1
+ import { RenderingNode, TemplateOptions } from "../types/types";
2
+ import { SMDNamesRecord } from "../smd/smd-manager";
3
+ import { RelationProp } from "../types/types";
4
+ import { Template } from "./base-template";
5
+ export declare class Template__view_list extends Template {
6
+ constructor();
7
+ getTargetAndPath(names: SMDNamesRecord): {
8
+ target: string;
9
+ path: string;
10
+ };
11
+ wrapTc(body: string, key: string, collapsing?: boolean, className?: string): string;
12
+ renderColumn(smdId: string, col: RenderingNode, names: SMDNamesRecord, parentObj?: string, withoutName?: boolean): string;
13
+ renderColumnImport(smdId: string, col: RenderingNode, names: SMDNamesRecord): (string | null)[];
14
+ renderFilterImport(smdId: string, col: RenderingNode, names: SMDNamesRecord): string;
15
+ renderFilter(smdId: string, col: RenderingNode, names: SMDNamesRecord): string;
16
+ getDefault(columns: RenderingNode[]): {
17
+ orderBy: string;
18
+ search: string;
19
+ };
20
+ render({ smdId }: TemplateOptions["view_list"], columnsNode: RenderingNode, listParamsNode: RenderingNode): {
21
+ body: string;
22
+ importKeys: never[];
23
+ preTemplates: {
24
+ key: "smd" | "init_enums" | "init_types" | "init_generated" | "generated" | "generated_http" | "model" | "model_test" | "bridge" | "service" | "view_list" | "view_list_columns" | "view_search_input" | "view_form" | "view_id_all_select" | "view_id_async_select" | "view_enums_select" | "view_enums_dropdown" | "view_enums_buttonset";
25
+ options: {
26
+ refCode?: string | undefined;
27
+ smdId: string;
28
+ title: string;
29
+ } | {
30
+ def?: Record<string, Record<string, string>> | undefined;
31
+ smdId: string;
32
+ } | {
33
+ smdId: string;
34
+ } | {
35
+ smdId: string;
36
+ } | {
37
+ smdId: string;
38
+ } | {
39
+ smdId: string;
40
+ } | {
41
+ smdId: string;
42
+ defaultSearchField: string;
43
+ defaultOrderBy: string;
44
+ } | {
45
+ smdId: string;
46
+ } | {
47
+ smdId: string;
48
+ } | {
49
+ smdId: string;
50
+ } | {
51
+ extra?: unknown;
52
+ smdId: string;
53
+ } | {
54
+ smdId: string;
55
+ columns: {
56
+ name: string;
57
+ label: string;
58
+ tc: string;
59
+ }[];
60
+ columnImports: string;
61
+ } | {
62
+ smdId: string;
63
+ } | {
64
+ smdId: string;
65
+ } | {
66
+ smdId: string;
67
+ } | {
68
+ smdId: string;
69
+ textField: string;
70
+ } | {
71
+ smdId: string;
72
+ enumId: string;
73
+ idConstant: string;
74
+ } | {
75
+ smdId: string;
76
+ enumId: string;
77
+ idConstant: string;
78
+ } | {
79
+ smdId: string;
80
+ enumId: string;
81
+ idConstant: string;
82
+ };
83
+ }[];
84
+ target: string;
85
+ path: string;
86
+ };
87
+ }
88
+ export declare function getEnumInfoFromColName(smdId: string, colName: string): {
89
+ id: string;
90
+ targetMDNames: SMDNamesRecord;
91
+ targetMDId: string;
92
+ modulePath: string;
93
+ name: string;
94
+ };
95
+ export declare function getRelationPropFromColName(smdId: string, colName: string): RelationProp;
96
+ //# sourceMappingURL=view_list.template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view_list.template.d.ts","sourceRoot":"","sources":["../../src/templates/view_list.template.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAe,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC7E,OAAO,EAAc,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAA8B,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,qBAAa,mBAAoB,SAAQ,QAAQ;;IAK/C,gBAAgB,CAAC,KAAK,EAAE,cAAc;;;;IAOtC,MAAM,CACJ,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,UAAU,GAAE,OAAc,EAC1B,SAAS,GAAE,MAAW;IAOxB,YAAY,CACV,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,cAAc,EACrB,SAAS,GAAE,MAAc,EACzB,WAAW,GAAE,OAAe,GAC3B,MAAM;IAuFT,kBAAkB,CAChB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,aAAa,EAClB,KAAK,EAAE,cAAc,GACpB,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;IA4BpB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc;IAmC3E,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc;IAyCrE,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG;QACpC,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB;IAkBD,MAAM,CACJ,EAAE,KAAK,EAAE,EAAE,eAAe,CAAC,WAAW,CAAC,EACvC,WAAW,EAAE,aAAa,EAC1B,cAAc,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+UhC;AAED,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd;IACD,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,cAAc,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,CAoCA;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,YAAY,CAQd"}