@jsg-developer/vue-pack 0.0.3 → 0.0.5

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 (113) hide show
  1. package/dist/ArrayObject-Cb0A6NL-.cjs +1 -0
  2. package/dist/ArrayObject-G-w4_LdV.js +4 -0
  3. package/dist/ColorPicker-BOU6KGlX.cjs +1 -0
  4. package/dist/ColorPicker-_HBqDi2i.js +4 -0
  5. package/dist/ComboboxComponent-BKzDSOlW.cjs +1 -0
  6. package/dist/ComboboxComponent-dHzbOpla.js +4 -0
  7. package/dist/CurrencyInput-BkEubeqv.js +4 -0
  8. package/dist/CurrencyInput-BoLzCKBI.cjs +1 -0
  9. package/dist/DEPENDENCY-LICENSES.txt +1 -96
  10. package/dist/DateInput-BOmJIkVs.js +4 -0
  11. package/dist/DateInput-CkwXQGkB.cjs +1 -0
  12. package/dist/DateTimeInput-COgGqch6.cjs +1 -0
  13. package/dist/DateTimeInput-Cy3evqKy.js +4 -0
  14. package/dist/DateTimeInput.vue_vue_type_script_setup_true_lang-PkNDbgK0.cjs +2 -0
  15. package/dist/DateTimeInput.vue_vue_type_script_setup_true_lang-T42eSMbp.js +142 -0
  16. package/dist/EmailInput-BFMPoqlz.js +4 -0
  17. package/dist/EmailInput-BH6wvnu5.cjs +1 -0
  18. package/dist/FileArrayInput-Cf_9Mrc6.js +5 -0
  19. package/dist/FileArrayInput-Crgama_k.cjs +1 -0
  20. package/dist/FileArrayInput.vue_vue_type_script_setup_true_lang-ChT-nLrY.js +198 -0
  21. package/dist/FileArrayInput.vue_vue_type_script_setup_true_lang-IBxome2w.cjs +2 -0
  22. package/dist/FileInput-Cv5K7drD.js +4 -0
  23. package/dist/FileInput-E05E9FcK.cjs +1 -0
  24. package/dist/GroupRenderer-BNf5s8mD.cjs +1 -0
  25. package/dist/GroupRenderer-CIgOBN5K.js +4 -0
  26. package/dist/ImageArrayInput-8Qgrvcbb.cjs +1 -0
  27. package/dist/ImageArrayInput-BPCMsKu1.js +5 -0
  28. package/dist/ImageArrayInput.vue_vue_type_script_setup_true_lang-BcE8UQhP.cjs +2 -0
  29. package/dist/ImageArrayInput.vue_vue_type_script_setup_true_lang-D7NOHKcL.js +322 -0
  30. package/dist/ImageInput-B4APQoOO.js +4 -0
  31. package/dist/ImageInput-Mj7_sYYX.cjs +1 -0
  32. package/dist/NumberInput-ClvWuXot.cjs +1 -0
  33. package/dist/NumberInput-Czd4poVa.js +4 -0
  34. package/dist/ObjectInput-CjB0V2zR.js +4 -0
  35. package/dist/ObjectInput-DjSJwhGr.cjs +1 -0
  36. package/dist/PasswordInput-DRh06StM.js +4 -0
  37. package/dist/PasswordInput-DTfrmgOD.cjs +1 -0
  38. package/dist/RateInput-BtyyMCbk.cjs +1 -0
  39. package/dist/RateInput-D5fJbQZN.js +4 -0
  40. package/dist/TabelData-BYu-G2SR.cjs +1 -0
  41. package/dist/TabelData-Dh93tqPE.js +2437 -0
  42. package/dist/TagInput-BzVaBoUE.cjs +1 -0
  43. package/dist/TagInput-CCAXe9xT.js +4 -0
  44. package/dist/TelInput-CbIiq52O.js +4 -0
  45. package/dist/TelInput-mPzO-Dus.cjs +1 -0
  46. package/dist/TextAreaInput-CfYiwJ4X.js +4 -0
  47. package/dist/TextAreaInput-Cs1aCwDH.cjs +1 -0
  48. package/dist/TextAreaQuill-DnN9J7_3.cjs +1 -0
  49. package/dist/TextAreaQuill-qInAEeeB.js +600 -0
  50. package/dist/TextInput-BlJmRFwH.cjs +1 -0
  51. package/dist/TextInput-DK78fqLR.js +4 -0
  52. package/dist/TimeInput-BrjXbwHE.cjs +1 -0
  53. package/dist/TimeInput-fS0dhh7j.js +4 -0
  54. package/dist/ToggleInput-CCNu8DT9.cjs +1 -0
  55. package/dist/ToggleInput-Dz5NPH5L.js +4 -0
  56. package/dist/UrlInput-BVJivcaK.js +4 -0
  57. package/dist/UrlInput-BbVaLK_E.cjs +1 -0
  58. package/dist/init.cjs.js +1 -1
  59. package/dist/init.es.js +1 -1
  60. package/dist/jsgd-vue-pack.cjs.js +1 -1
  61. package/dist/jsgd-vue-pack.es.js +1640 -310
  62. package/dist/plugin/vue.cjs.js +1 -1
  63. package/dist/plugin/vue.es.js +48 -41
  64. package/dist/resize-B2mDlzAG.cjs +12 -0
  65. package/dist/resize-DgY2sl-h.js +5942 -0
  66. package/dist/types/components/Form/composables/useFormModal.d.ts +9 -0
  67. package/dist/types/components/Tabel/TabelData.vue.d.ts +5 -4
  68. package/dist/types/components/Tabel/composables/useDisplayHelpers.d.ts +21 -0
  69. package/dist/types/components/Tabel/composables/useTableLogic.d.ts +0 -1
  70. package/dist/types/components/UI/Feedback/WarningForm.vue.d.ts +1 -1
  71. package/dist/types/components/UI/Inputs/CurrencyInput.vue.d.ts +13 -0
  72. package/dist/types/components/UI/Inputs/FileInput.vue.d.ts +2 -2
  73. package/dist/types/components/UI/Inputs/ImageInput.vue.d.ts +2 -2
  74. package/dist/types/components/UI/Inputs/RateInput.vue.d.ts +9 -0
  75. package/dist/types/components/UI/Inputs/TelInput.vue.d.ts +13 -0
  76. package/dist/types/components/UI/Inputs/TextAreaQuill.vue.d.ts +3 -3
  77. package/dist/types/components/UI/Inputs/components/QuillAltModal.vue.d.ts +12 -0
  78. package/dist/types/components/UI/Inputs/components/QuillEmbedModal.vue.d.ts +23 -0
  79. package/dist/types/components/UI/Inputs/composables/index.d.ts +1 -0
  80. package/dist/types/components/UI/Inputs/composables/useCurrencyInput.d.ts +11 -0
  81. package/dist/types/components/UI/Inputs/index.d.ts +3 -0
  82. package/dist/types/configs/types/field.types.d.ts +50 -4
  83. package/dist/types/configs/types/globalText.types.d.ts +2 -1
  84. package/dist/types/configs/types/props.types.d.ts +53 -2
  85. package/dist/types/configs/types/schema.types.d.ts +3 -2
  86. package/dist/types/configs/types/table-data.types.d.ts +3 -11
  87. package/dist/types/lib/demoData.d.ts +313 -0
  88. package/dist/types/lib/index.d.ts +1 -0
  89. package/dist/types/schemas/CQ.d.ts +2 -0
  90. package/dist/types/schemas/TestSchema.d.ts +2 -1
  91. package/dist/types/schemas/categories.d.ts +2 -0
  92. package/dist/types/schemas/colors.d.ts +2 -0
  93. package/dist/types/schemas/expenditure.d.ts +2 -0
  94. package/dist/types/schemas/income.d.ts +9 -0
  95. package/dist/types/schemas/index.d.ts +16 -1
  96. package/dist/types/schemas/model.d.ts +2 -0
  97. package/dist/types/schemas/news.d.ts +2 -0
  98. package/dist/types/schemas/order.d.ts +2 -0
  99. package/dist/types/schemas/page.d.ts +2 -0
  100. package/dist/types/schemas/promo.d.ts +2 -0
  101. package/dist/types/schemas/qna.d.ts +2 -0
  102. package/dist/types/schemas/rate.d.ts +2 -0
  103. package/dist/types/schemas/service.d.ts +2 -0
  104. package/dist/types/schemas/subTools.d.ts +2 -0
  105. package/dist/types/schemas/tools.d.ts +2 -0
  106. package/dist/types/untils/regex.d.ts +1 -0
  107. package/dist/types/validate/validate.d.ts +2 -2
  108. package/dist/vue-pack.css +1 -1
  109. package/package.json +11 -4
  110. package/dist/TabelData-B6yN5ZQs.cjs +0 -1
  111. package/dist/TabelData-BPjJ27Uj.js +0 -2219
  112. package/dist/quill.snow-BF_lta84.cjs +0 -15
  113. package/dist/quill.snow-DiPGvD5E.js +0 -6399
@@ -1,6 +1,15 @@
1
- import { b as s, c as o, a4 as p, a2 as n, e as u, f as b, g as m, h as g, i as d, _ as y, F as c, j as h, k as T, l as x, L as f, m as I, n as A, o as L, d as S, a3 as D, p as k, q as v, T as w, r as q, s as E, t as F, a as P, u as N, M as j, D as W, v as B, x as M, N as R, $ as C, a1 as G, Q as O, S as z, I as K, K as H, a8 as U, X as V, H as X, W as _, w as J, V as Y, E as Z, a0 as Q, z as $, A as ee, y as ae, O as te, C as le, G as re, P as ie, Y as se, U as oe, R as pe, a9 as ne, a5 as ue, a7 as be, a6 as me, Z as ge, J as de, B as ye } from "./quill.snow-DiPGvD5E.js";
2
- import { d as he, _ as Te, a as xe, F as fe, b as Ie, M as Ae, c as Le, T as Se, W as De, j as ke, f as ve, e as we, g as qe, h as Ee, k as Fe, i as Pe, m as Ne, o as je, n as We, l as Be } from "./TabelData-BPjJ27Uj.js";
3
- const e = [
1
+ import { s as r, u as l } from "./resize-DgY2sl-h.js";
2
+ import { b as v, c as B, e as _, a5 as w, a2 as C, g as G, h as R, i as j, _ as H, F as L, j as O, k as F, L as J, l as W, m as U, n as $, f as z, d as V, a3 as Q, o as X, q as Y, p as Z, r as ee, t as ae, v as te, a as ie, w as re, N as le, G as ne, x as oe, z as de, O as se, $ as ue, a1 as me, R as pe, T as ce, K as ye, M as be, a9 as ge, X as De, J as he, W as ke, y as qe, V as Pe, H as Ae, Q as Se, a0 as Te, B as Me, C as Ke, A as Ne, P as xe, E as fe, I as Ie, Y as Ee, U as ve, S as Be, aa as _e, a4 as we, a6 as Ce, a8 as Ge, a7 as Re, Z as je, D as He } from "./resize-DgY2sl-h.js";
3
+ import { d as Oe, _ as Fe, a as Je, F as We, b as Ue, M as $e, c as ze, T as Ve, W as Qe, j as Xe, f as Ye, e as Ze, g as ea, h as aa, k as ta, i as ia, m as ra, o as la, n as na, l as oa } from "./TabelData-Dh93tqPE.js";
4
+ import { _ as sa } from "./DateTimeInput.vue_vue_type_script_setup_true_lang-T42eSMbp.js";
5
+ import { _ as ma } from "./FileArrayInput.vue_vue_type_script_setup_true_lang-ChT-nLrY.js";
6
+ import { _ as ca } from "./ImageArrayInput.vue_vue_type_script_setup_true_lang-D7NOHKcL.js";
7
+ import { default as ba } from "./TextAreaQuill-qInAEeeB.js";
8
+ import "vue";
9
+ import "dompurify";
10
+ import "lodash.isequal";
11
+ import "zod";
12
+ const m = [
4
13
  "png",
5
14
  "jpg",
6
15
  "jpeg",
@@ -15,7 +24,7 @@ const e = [
15
24
  "avif",
16
25
  "ico",
17
26
  "jfif"
18
- ], a = [
27
+ ], p = [
19
28
  "text",
20
29
  "email",
21
30
  "password",
@@ -24,7 +33,7 @@ const e = [
24
33
  "color",
25
34
  "select",
26
35
  "arrayObject",
27
- "richText",
36
+ "quillEditor",
28
37
  "optionGroupSchema",
29
38
  "tag",
30
39
  "object",
@@ -38,351 +47,1672 @@ const e = [
38
47
  "file",
39
48
  "fileArray",
40
49
  // 🔹 baru
41
- "textArea"
42
- ], t = ["form", "news"], l = {
43
- // === Text ===
44
- name: {
45
- type: "text",
46
- label: "Nama",
47
- required: !0,
48
- validate: {
49
- duplicate: !0,
50
- minLength: 3,
51
- maxLength: 50,
52
- pattern: "^[a-zA-Z0-9 ]+$"
50
+ "textArea",
51
+ "currency",
52
+ "rate",
53
+ "tel"
54
+ ], c = ["form", "news"], y = {
55
+ keys: {
56
+ idKey: "id",
57
+ idsKey: "ids",
58
+ nameKey: "name"
59
+ },
60
+ base: {
61
+ source: {
62
+ DB_NAME: "tools",
63
+ connect: [
64
+ {
65
+ key: "typeId",
66
+ connectKey: "id",
67
+ DB_NAME: "type"
68
+ },
69
+ {
70
+ DB_NAME: "model",
71
+ connectKey: "id",
72
+ key: "modelId"
73
+ }
74
+ ]
75
+ },
76
+ dataTabelDisplay: {
77
+ Nama: "name",
78
+ Gambar: "image",
79
+ Harga: "price",
80
+ Kategory: "type.name",
81
+ Model: "model.name"
53
82
  },
54
- value: "hahahahah"
83
+ lang: "id",
84
+ schema: {
85
+ global: {
86
+ name: {
87
+ type: "text",
88
+ label: "Nama Produk",
89
+ validate: {
90
+ duplicate: !0
91
+ },
92
+ required: !0
93
+ },
94
+ typeName: {
95
+ type: "select",
96
+ label: "Kategory",
97
+ options: {
98
+ DB_NAME: "type",
99
+ valueKey: "name"
100
+ },
101
+ required: !0,
102
+ DB_NAME: "type",
103
+ baseKey: {
104
+ base: "typeId",
105
+ name: "name"
106
+ },
107
+ withCreate: {
108
+ DB_NAME: "type",
109
+ endPoint: "/api/admin/type/create",
110
+ schema: {
111
+ name: {
112
+ type: "text",
113
+ label: "Nama Kategori Produk",
114
+ validate: {
115
+ duplicate: !0
116
+ },
117
+ required: !0
118
+ }
119
+ }
120
+ }
121
+ },
122
+ modelName: {
123
+ type: "select",
124
+ label: "Model",
125
+ required: !0,
126
+ DB_NAME: "model",
127
+ options: {
128
+ DB_NAME: "model",
129
+ valueKey: "name"
130
+ },
131
+ baseKey: {
132
+ base: "modelId",
133
+ name: "name"
134
+ },
135
+ withCreate: {
136
+ DB_NAME: "model",
137
+ endPoint: "/api/admin/model/create",
138
+ schema: {
139
+ name: {
140
+ type: "text",
141
+ label: "Nama Model Produk",
142
+ validate: {
143
+ duplicate: !0
144
+ },
145
+ required: !0
146
+ }
147
+ }
148
+ }
149
+ },
150
+ description: {
151
+ type: "textArea",
152
+ label: "Description"
153
+ },
154
+ price: {
155
+ type: "currency",
156
+ label: "Harga",
157
+ required: !0
158
+ },
159
+ image: {
160
+ type: "image",
161
+ label: "Gambar Produk",
162
+ validate: {
163
+ maxSize: 1048,
164
+ ratio: {
165
+ Width: 3,
166
+ Height: 2
167
+ }
168
+ },
169
+ required: !0
170
+ },
171
+ optionGroupSchema: {
172
+ label: "Pilihan Tipe Barang",
173
+ typeDesign: "cekbox",
174
+ type: "optionGroupSchema",
175
+ options: {
176
+ "Input Ukuran Produk?": {
177
+ sizeX: {
178
+ type: "number",
179
+ label: "Panjang Produk",
180
+ required: !0
181
+ },
182
+ sizeY: {
183
+ type: "number",
184
+ label: "Lebar Produk",
185
+ required: !0
186
+ },
187
+ sizeZ: {
188
+ type: "number",
189
+ label: "Tebal Produk",
190
+ required: !1
191
+ },
192
+ unitOfMeasure: {
193
+ type: "select",
194
+ label: "Satuan Ukuran",
195
+ options: ["cm", "m", "inch", "feet", "yard"],
196
+ optionsView: ["Sentimeter", "Meter", "Inci", "Kaki", "Yard"],
197
+ required: !0
198
+ }
199
+ },
200
+ "Input Dimensi Produk?": {
201
+ dimensions: {
202
+ type: "number",
203
+ label: "Dimensi Produk",
204
+ required: !0
205
+ }
206
+ }
207
+ }
208
+ }
209
+ }
210
+ }
55
211
  },
56
- Toogle: {
57
- type: "toggle",
58
- label: "Toogle",
59
- required: !0,
60
- value: !0
212
+ endPoints: {
213
+ create: "/api/admin/tool/create",
214
+ update: "/api/admin/tool/update",
215
+ delete: "/api/admin/tool/delete/:id",
216
+ deleteMany: "/api/admin/tool/delete"
217
+ }
218
+ }, b = {
219
+ keys: {
220
+ idKey: "id",
221
+ idsKey: "ids"
61
222
  },
62
- // === Email ===
63
- email: {
64
- type: "email",
65
- label: "Email",
66
- required: !0,
67
- validate: {
68
- duplicate: !0
223
+ base: {
224
+ source: {
225
+ DB_NAME: "type",
226
+ connect: [
227
+ {
228
+ key: "id",
229
+ DB_NAME: "tools",
230
+ connectKey: "typeId"
231
+ },
232
+ {
233
+ key: "id",
234
+ DB_NAME: "subTool",
235
+ connectKey: "typeId"
236
+ }
237
+ ]
238
+ },
239
+ lang: "id",
240
+ dataTabelDisplay: {
241
+ Nama: "name",
242
+ "Terhubung Dengan Produk": "tools.name",
243
+ "Sub Barang yang terhubung": "subTool.name"
244
+ },
245
+ schema: {
246
+ global: {
247
+ name: {
248
+ type: "text",
249
+ label: "Nama Kategori Produk",
250
+ validate: {
251
+ duplicate: !0
252
+ },
253
+ required: !0
254
+ }
255
+ }
69
256
  }
70
257
  },
71
- imagesArray: {
72
- type: "imageArray",
73
- label: "Foto Profil",
74
- validate: {
75
- maxSize: 2048,
76
- ratio: { Width: 1, Height: 1 },
77
- pixel: { minWidth: 500, minHeight: 500 },
78
- allowedTypes: ["png"]
79
- }
258
+ endPoints: {
259
+ create: "/api/admin/type/create",
260
+ update: "/api/admin/type/update",
261
+ delete: "/api/admin/type/delete/:id",
262
+ deleteMany: "/api/admin/type/delete"
263
+ }
264
+ }, g = {
265
+ keys: {
266
+ idKey: "id",
267
+ idsKey: "ids"
80
268
  },
81
- filesaya: {
82
- type: "fileArray",
83
- label: "File saya",
84
- validate: {
85
- maxSize: 2e4
269
+ base: {
270
+ source: {
271
+ DB_NAME: "color",
272
+ connect: [
273
+ {
274
+ key: "id",
275
+ DB_NAME: "subTool",
276
+ connectKey: "images.colorToolsId"
277
+ }
278
+ ]
279
+ },
280
+ lang: "id",
281
+ dataTabelDisplay: {
282
+ Nama: "name",
283
+ "Opsi pilih warna": "options",
284
+ Warna: "colors",
285
+ "Sub Barang yang tehubung": "subTool.name"
286
+ },
287
+ schema: {
288
+ global: {
289
+ name: {
290
+ type: "text",
291
+ label: "Nama Grup Warna",
292
+ validate: {
293
+ duplicate: !0
294
+ },
295
+ required: !0
296
+ },
297
+ options: {
298
+ type: "number",
299
+ label: "Opsi memilih warna",
300
+ required: !0,
301
+ validate: {
302
+ min: 1,
303
+ max: 10,
304
+ integer: !0
305
+ }
306
+ },
307
+ colors: {
308
+ type: "color",
309
+ label: "Pilih Warna",
310
+ required: !0
311
+ }
312
+ }
86
313
  }
87
314
  },
88
- // === Password ===
89
- password: {
90
- type: "password",
91
- label: "Password",
92
- required: !0,
93
- validate: {
94
- minLength: 8,
95
- maxLength: 20,
96
- requireUppercase: !0,
97
- requireNumber: !0
98
- }
315
+ endPoints: {
316
+ create: "/api/admin/tool/color/create",
317
+ update: "/api/admin/tool/color/update",
318
+ delete: "/api/admin/tool/color/delete/:id",
319
+ deleteMany: "/api/admin/tool/color/delete"
320
+ }
321
+ }, D = {
322
+ keys: {
323
+ idKey: "id",
324
+ idsKey: "ids"
99
325
  },
100
- // === Number ===
101
- age: {
102
- type: "number",
103
- label: "Umur",
104
- validate: {
105
- min: 1,
106
- max: 100,
107
- integer: !0
326
+ base: {
327
+ source: {
328
+ DB_NAME: "subTool",
329
+ connect: [
330
+ {
331
+ key: "toolsId",
332
+ DB_NAME: "tools",
333
+ connectKey: "id"
334
+ },
335
+ {
336
+ key: "modelId",
337
+ DB_NAME: "model",
338
+ connectKey: "id"
339
+ },
340
+ {
341
+ key: "typeId",
342
+ DB_NAME: "type",
343
+ connectKey: "id"
344
+ }
345
+ ]
346
+ },
347
+ dataTabelDisplay: {
348
+ Nama: "name",
349
+ Harga: "price",
350
+ Deskripsi: "description",
351
+ "🔗 Produk": "tools.name",
352
+ "🔗 Model": "model.name",
353
+ "🔗 Kategori": "type.name",
354
+ "Gambar Sub Produk": "images.image"
355
+ },
356
+ lang: "id",
357
+ schema: {
358
+ global: {
359
+ name: { type: "text", label: "Nama", required: !0 },
360
+ price: {
361
+ type: "number",
362
+ label: "Harga",
363
+ required: !0
364
+ },
365
+ description: { type: "textArea", label: "Deskripsi", required: !1 },
366
+ optionGroupSchema: {
367
+ label: "Pilihan Sub Produk Untuk ?",
368
+ typeDesign: "cekbox",
369
+ type: "optionGroupSchema",
370
+ required: !0,
371
+ options: {
372
+ "Tautkan dengan Kategori": {
373
+ typeName: {
374
+ type: "select",
375
+ label: "Sub Produk untuk Kategory",
376
+ DB_NAME: "type",
377
+ baseKey: {
378
+ base: "typeId",
379
+ name: "name"
380
+ },
381
+ options: {
382
+ DB_NAME: "type",
383
+ valueKey: "name"
384
+ },
385
+ required: !0
386
+ }
387
+ },
388
+ "Tautkan dengan Model": {
389
+ modelName: {
390
+ type: "select",
391
+ label: "Sub Produk untuk Model",
392
+ DB_NAME: "model",
393
+ baseKey: {
394
+ base: "modelId",
395
+ name: "name"
396
+ },
397
+ options: {
398
+ DB_NAME: "model",
399
+ valueKey: "name"
400
+ },
401
+ required: !0
402
+ }
403
+ },
404
+ "Tautkan dengan Produk": {
405
+ toolName: {
406
+ type: "select",
407
+ label: "Sub Produk untuk Produk",
408
+ DB_NAME: "tools",
409
+ baseKey: {
410
+ base: "toolsId",
411
+ name: "name"
412
+ },
413
+ options: {
414
+ DB_NAME: "tools",
415
+ valueKey: "name"
416
+ },
417
+ required: !0
418
+ }
419
+ }
420
+ }
421
+ },
422
+ images: {
423
+ type: "arrayObject",
424
+ label: "List Sub Gambar",
425
+ endPoint: {
426
+ deleteMany: "/api/admin/tool/sub/sti/delete"
427
+ },
428
+ required: !0,
429
+ schema: {
430
+ name: { type: "text", label: "Nama Gambar", required: !0 },
431
+ optionGroupSchema: {
432
+ label: "Pilihan Type Warna",
433
+ typeDesign: "select",
434
+ type: "optionGroupSchema",
435
+ required: !0,
436
+ options: {
437
+ "Tautkan Dengan Grup Warna": {
438
+ colorToolsId: {
439
+ type: "select",
440
+ label: "Pilih Grup Warna",
441
+ options: {
442
+ DB_NAME: "color",
443
+ valueKey: "id",
444
+ viewKey: "name"
445
+ },
446
+ withCreate: {
447
+ DB_NAME: "color",
448
+ endPoint: "/api/admin/tool/color/create",
449
+ schema: {
450
+ name: {
451
+ type: "text",
452
+ label: "Nama Grup Warna",
453
+ validate: { duplicate: !0 },
454
+ required: !0
455
+ },
456
+ options: {
457
+ type: "number",
458
+ label: "Opsi memilih warna",
459
+ required: !0
460
+ },
461
+ colors: {
462
+ type: "color",
463
+ label: "Pilih Warna",
464
+ required: !0
465
+ }
466
+ }
467
+ },
468
+ optionsIsNumber: !0,
469
+ required: !0
470
+ }
471
+ },
472
+ "Warna Tetap": {
473
+ colors: {
474
+ type: "color",
475
+ label: "Pilih Warna",
476
+ required: !0
477
+ }
478
+ }
479
+ }
480
+ },
481
+ image: {
482
+ type: "image",
483
+ label: "Gambar Sub Produk",
484
+ validate: {
485
+ maxSize: 1048,
486
+ ratio: {
487
+ Width: 1,
488
+ Height: 1
489
+ }
490
+ },
491
+ required: !0
492
+ }
493
+ }
494
+ }
495
+ }
108
496
  }
109
497
  },
110
- // === Image ===
111
- avatar: {
112
- type: "image",
113
- label: "Foto Profil",
114
- validate: {
115
- maxSize: 2048,
116
- ratio: { Width: 16, Height: 9 },
117
- pixel: { minWidth: 500, minHeight: 500 },
118
- allowedTypes: ["png"]
498
+ endPoints: {
499
+ create: "/api/admin/tool/sub/create",
500
+ update: "/api/admin/tool/sub/update",
501
+ delete: "/api/admin/tool/sub/delete/:id",
502
+ deleteMany: "/api/admin/tool/sub/delete"
503
+ }
504
+ }, h = {
505
+ keys: {
506
+ idKey: "id",
507
+ idsKey: "ids"
508
+ },
509
+ base: {
510
+ source: {
511
+ DB_NAME: "model",
512
+ connect: [
513
+ {
514
+ key: "id",
515
+ DB_NAME: "tools",
516
+ connectKey: "modelId"
517
+ },
518
+ {
519
+ key: "id",
520
+ DB_NAME: "subTool",
521
+ connectKey: "modelId"
522
+ }
523
+ ]
524
+ },
525
+ dataTabelDisplay: {
526
+ Nama: "name",
527
+ "Terhubung Dengan Produk": "tools.name",
528
+ "Sub Barang yang terhubung": "subTool.name"
529
+ },
530
+ lang: "id",
531
+ schema: {
532
+ global: {
533
+ name: {
534
+ type: "text",
535
+ label: "Nama Kategori Produk",
536
+ validate: {
537
+ duplicate: !0
538
+ },
539
+ required: !0
540
+ }
541
+ }
119
542
  }
120
543
  },
121
- // === Color ===
122
- favoriteColor: {
123
- type: "color",
124
- label: "Warna Favorit",
125
- single: !0,
126
- validate: { min: 1, max: 10 }
544
+ endPoints: {
545
+ create: "/api/admin/model/create",
546
+ update: "/api/admin/model/update",
547
+ delete: "/api/admin/model/delete/:id",
548
+ deleteMany: "/api/admin/model/delete"
549
+ }
550
+ }, k = {
551
+ keys: {
552
+ idKey: "id",
553
+ idsKey: "ids"
127
554
  },
128
- // === Select ===
129
- role: {
130
- type: "select",
131
- label: "Peran",
132
- options: ["admin", "editor", "user"],
133
- optionsView: ["Admin", "Editor", "User"],
134
- withCreate: {
135
- DB_NAME: "roles",
136
- schema: {
137
- roleName: { type: "text", label: "Nama Role", required: !0 }
555
+ base: {
556
+ seoDisplay: "seoScore",
557
+ source: {
558
+ DB_NAME: "news"
559
+ },
560
+ dataTabelDisplay: {
561
+ Judul: "title",
562
+ "Gambar Berita": { valueKey: "image", type: "image" },
563
+ Berita: "news",
564
+ tags: { valueKey: "seo.tag", type: "tag" }
565
+ },
566
+ lang: "id",
567
+ schema: {
568
+ SeoDisplay: {
569
+ sendSeo: !0,
570
+ title: "title",
571
+ description: "seo.metaDescription",
572
+ slug: "seo.slug",
573
+ tags: "seo.tag",
574
+ image: "image",
575
+ news: "news",
576
+ author: "author",
577
+ publishedAt: "createdAt",
578
+ canonical: "seo.canonicalUrl",
579
+ focusKeyword: "seo.keywords"
138
580
  },
139
- endPoint: "/api/admin/role/create"
581
+ global: {
582
+ title: {
583
+ type: "text",
584
+ label: "Judul Berita",
585
+ validate: {
586
+ duplicate: !0
587
+ },
588
+ required: !0
589
+ },
590
+ image: {
591
+ type: "image",
592
+ label: "Gambar Berita",
593
+ validate: {
594
+ maxSize: 2048,
595
+ allowedTypes: ["jpeg", "png", "jpg"],
596
+ ratio: {
597
+ Width: 13,
598
+ Height: 6
599
+ }
600
+ },
601
+ required: !0
602
+ },
603
+ altImage: {
604
+ type: "text",
605
+ label: "Alt Gambar Berita",
606
+ required: !1
607
+ },
608
+ news: {
609
+ type: "quillEditor",
610
+ label: "Berita",
611
+ required: !0,
612
+ validate: {
613
+ maxLength: 5e3,
614
+ minLength: 100
615
+ }
616
+ },
617
+ seo: {
618
+ type: "object",
619
+ label: "Konfigurasi SEO",
620
+ schema: {
621
+ slug: {
622
+ type: "text",
623
+ label: "Slug / URL",
624
+ placeholder: "contoh-judul-berita",
625
+ required: !0,
626
+ // Backend harus isi default value dari Title jika kosong
627
+ validate: {
628
+ pattern: "^[a-z0-9]+(?:-[a-z0-9]+)*$"
629
+ // Validasi format slug (lowercase & dash)
630
+ }
631
+ },
632
+ metaTitle: {
633
+ type: "text",
634
+ label: "Meta Title (Google)",
635
+ placeholder: "Judul pendek max 60 char...",
636
+ required: !1
637
+ // Jika kosong, ambil dari Judul Berita utama
638
+ },
639
+ metaDescription: {
640
+ type: "textArea",
641
+ // Sebaiknya textarea, bukan text biasa
642
+ label: "Meta Description",
643
+ required: !1,
644
+ validate: {
645
+ maxLength: 160
646
+ // Validasi panjang karakter
647
+ }
648
+ },
649
+ keywords: {
650
+ type: "text",
651
+ label: "Focus Keyword",
652
+ // Ubah label jadi Tunggal biar jelas
653
+ placeholder: "Kata kunci utama...",
654
+ required: !1
655
+ },
656
+ canonicalUrl: {
657
+ // Tambahan untuk Advanced SEO
658
+ type: "url",
659
+ label: "Canonical URL (Opsional)",
660
+ placeholder: "Isi jika ini konten duplikat/syndication",
661
+ required: !1
662
+ },
663
+ tag: {
664
+ type: "tag",
665
+ label: "Tags / Topik",
666
+ required: !1
667
+ }
668
+ },
669
+ required: !0
670
+ },
671
+ category: {
672
+ type: "text",
673
+ label: "Kategori",
674
+ required: !1
675
+ },
676
+ author: {
677
+ type: "text",
678
+ label: "Author",
679
+ required: !1
680
+ },
681
+ source: {
682
+ type: "arrayObject",
683
+ label: "Daftar Referensi",
684
+ schema: {
685
+ category: {
686
+ type: "select",
687
+ label: "Jenis Sumber",
688
+ options: ["Buku", "Jurnal", "Berita/Artikel Web"],
689
+ required: !0
690
+ },
691
+ name: {
692
+ type: "text",
693
+ label: "Judul (Buku/Artikel/Jurnal)",
694
+ required: !0
695
+ },
696
+ author: {
697
+ // Penting untuk Buku & Jurnal
698
+ type: "text",
699
+ label: "Penulis / Kontributor",
700
+ required: !1
701
+ },
702
+ url: {
703
+ type: "url",
704
+ label: "Link (Kosongkan jika Buku Fisik)",
705
+ required: !1
706
+ // Diubah jadi false agar buku fisik bisa masuk
707
+ },
708
+ identifier: {
709
+ // Untuk ISBN (Buku) atau DOI (Jurnal)
710
+ type: "text",
711
+ label: "Identitas Tambahan (ISBN/DOI/Penerbit)",
712
+ required: !1
713
+ }
714
+ },
715
+ required: !1
716
+ },
717
+ orderCode: {
718
+ type: "select",
719
+ label: "Terhubung dengan Pesanan",
720
+ options: {
721
+ DB_NAME: "rate",
722
+ valueKey: "orderCode"
723
+ }
724
+ },
725
+ show: {
726
+ type: "toggle",
727
+ label: "Tampilkan Berita",
728
+ value: !0
729
+ }
730
+ }
140
731
  }
141
732
  },
142
- // === ArrayObject ===
143
- addresses: {
144
- type: "arrayObject",
145
- label: "Alamat",
733
+ endPoints: {
734
+ create: "/api/admin/news/create",
735
+ update: "/api/admin/news/update",
736
+ delete: "/api/admin/news/delete/:id",
737
+ deleteMany: "/api/admin/news/delete"
738
+ }
739
+ }, q = {
740
+ keys: {
741
+ idKey: "id",
742
+ idsKey: "ids"
743
+ },
744
+ base: {
745
+ source: {
746
+ DB_NAME: "promo"
747
+ },
748
+ dataTabelDisplay: {
749
+ Judul: "title",
750
+ "Gambar Promo": "image",
751
+ Deskripsi: "description",
752
+ Mulai: "promoStartDate",
753
+ Selesai: "promoEndDate",
754
+ "Tipe Promo": "type"
755
+ },
756
+ lang: "id",
146
757
  schema: {
147
- street: { type: "text", label: "Jalan", required: !0 },
148
- city: { type: "text", label: "Kota", required: !0 },
149
- zip: { type: "number", label: "Kode Pos", required: !0 },
150
- // === Object (nested all fields again) ===
151
- addresses: {
152
- type: "arrayObject",
153
- label: "Alamat",
154
- schema: {
155
- street: { type: "text", label: "Jalan", required: !0 },
156
- city: { type: "text", label: "Kota", required: !0 },
157
- zip: { type: "number", label: "Kode Pos", required: !0 },
158
- // === Object (nested all fields again) ===
159
- profile: {
160
- type: "object",
161
- label: "Profil Lengkap",
162
- schema: {
163
- nick: { type: "text", label: "Nick" },
164
- website: { type: "url", label: "Website" },
165
- birthDate: { type: "date", label: "Tanggal Lahir" },
166
- birthTime: { type: "time", label: "Waktu Lahir" },
167
- lastLogin: { type: "dateTime", label: "Login Terakhir" },
168
- about: { type: "textArea", label: "Tentang Saya" }
758
+ global: {
759
+ title: {
760
+ type: "text",
761
+ label: "Judul Promo",
762
+ validate: {
763
+ duplicate: !0,
764
+ maxLength: 50
765
+ },
766
+ required: !0
767
+ },
768
+ image: {
769
+ type: "image",
770
+ label: "Gambar Promo",
771
+ required: !0,
772
+ validate: {
773
+ maxSize: 2048,
774
+ allowedTypes: ["jpeg", "png", "jpg"],
775
+ ratio: {
776
+ Width: 13,
777
+ Height: 6
169
778
  }
170
779
  }
780
+ },
781
+ description: {
782
+ type: "textArea",
783
+ label: "Deskripsi Promo",
784
+ required: !0,
785
+ validate: {
786
+ maxLength: 300
787
+ }
788
+ },
789
+ keywords: {
790
+ type: "tag",
791
+ label: "Kata Kunci Promo",
792
+ required: !1
793
+ },
794
+ tags: {
795
+ type: "tag",
796
+ label: "Tags Promo",
797
+ required: !1
798
+ },
799
+ couponCode: {
800
+ type: "text",
801
+ label: "Kode Coupon",
802
+ required: !1
803
+ },
804
+ type: {
805
+ type: "optionGroupSchema",
806
+ label: "Tipe Promo",
807
+ typeDesign: "select",
808
+ required: !0,
809
+ withValue: !0,
810
+ optionsLabels: {
811
+ DISCOUNT: "Diskon",
812
+ DAY_RENT: "Promo Sewa Harian",
813
+ FREE_SHIPPING: "Ongkir Gratis"
814
+ },
815
+ options: {
816
+ DISCOUNT: {
817
+ details: {
818
+ type: "object",
819
+ label: "Detail",
820
+ schema: {
821
+ discountModel: {
822
+ type: "optionGroupSchema",
823
+ label: "Tipe Diskon",
824
+ typeDesign: "select",
825
+ required: !0,
826
+ withValue: !0,
827
+ optionsLabels: {
828
+ RateDiscount: "Diskon Persen",
829
+ NominalDiscount: "Diskon Nominal"
830
+ },
831
+ options: {
832
+ RateDiscount: {
833
+ discount: {
834
+ type: "number",
835
+ label: "Diskon (%)",
836
+ required: !0
837
+ },
838
+ minPrice: {
839
+ type: "number",
840
+ label: "Minimal Total Harga",
841
+ required: !0
842
+ },
843
+ maximumDiscount: {
844
+ type: "number",
845
+ label: "Maksimal Diskon (Rp)",
846
+ required: !1
847
+ }
848
+ },
849
+ NominalDiscount: {
850
+ discount: {
851
+ type: "number",
852
+ label: "Diskon (Rp)",
853
+ required: !0
854
+ },
855
+ minPrice: {
856
+ type: "number",
857
+ label: "Minimal Total Harga",
858
+ required: !0
859
+ }
860
+ }
861
+ }
862
+ }
863
+ }
864
+ }
865
+ },
866
+ DAY_RENT: {
867
+ details: {
868
+ type: "object",
869
+ label: "Detail",
870
+ schema: {
871
+ discountModel: {
872
+ type: "optionGroupSchema",
873
+ label: "Tipe Diskon",
874
+ typeDesign: "select",
875
+ withValue: !0,
876
+ required: !0,
877
+ optionsLabels: {
878
+ RateDiscount: "Diskon Persen",
879
+ NominalDiscount: "Diskon Nominal"
880
+ },
881
+ options: {
882
+ RateDiscount: {
883
+ discount: {
884
+ type: "number",
885
+ label: "Diskon (%)",
886
+ required: !0
887
+ },
888
+ minPrice: {
889
+ type: "number",
890
+ label: "Minimal Total Harga",
891
+ required: !0
892
+ },
893
+ maximumDiscount: {
894
+ type: "number",
895
+ label: "Maksimal Diskon (Rp)",
896
+ required: !1
897
+ },
898
+ minDay: {
899
+ type: "number",
900
+ label: "Minimal Hari Sewa",
901
+ required: !0
902
+ }
903
+ },
904
+ NominalDiscount: {
905
+ discount: {
906
+ type: "number",
907
+ label: "Diskon (Rp)",
908
+ required: !0
909
+ },
910
+ minPrice: {
911
+ type: "number",
912
+ label: "Minimal Total Harga",
913
+ required: !0
914
+ },
915
+ minDay: {
916
+ type: "number",
917
+ label: "Minimal Hari Sewa",
918
+ required: !0
919
+ }
920
+ }
921
+ }
922
+ }
923
+ }
924
+ }
925
+ },
926
+ FREE_SHIPPING: {
927
+ details: {
928
+ type: "object",
929
+ label: "Detail",
930
+ schema: {
931
+ discountModel: {
932
+ type: "optionGroupSchema",
933
+ label: "Tipe Diskon",
934
+ typeDesign: "select",
935
+ required: !0,
936
+ withValue: !0,
937
+ optionsLabels: {
938
+ RateDiscount: "Diskon Persen",
939
+ NominalDiscount: "Diskon Nominal"
940
+ },
941
+ options: {
942
+ RateDiscount: {
943
+ discount: {
944
+ type: "number",
945
+ label: "Diskon (%)",
946
+ required: !0
947
+ },
948
+ minPrice: {
949
+ type: "number",
950
+ label: "Minimal Total Harga",
951
+ required: !0
952
+ },
953
+ maximumDiscount: {
954
+ type: "number",
955
+ label: "Maksimal Diskon (Rp)",
956
+ required: !1
957
+ },
958
+ maxDistance: {
959
+ type: "number",
960
+ label: "Maksimal Jarak (Km)",
961
+ required: !0
962
+ }
963
+ },
964
+ NominalDiscount: {
965
+ discount: {
966
+ type: "number",
967
+ label: "Diskon (Rp)",
968
+ required: !0
969
+ },
970
+ minPrice: {
971
+ type: "number",
972
+ label: "Minimal Total Harga",
973
+ required: !0
974
+ },
975
+ maxDistance: {
976
+ type: "number",
977
+ label: "Maksimal Jarak (Km)",
978
+ required: !0
979
+ }
980
+ }
981
+ }
982
+ }
983
+ }
984
+ }
985
+ }
986
+ }
987
+ },
988
+ promoStartDate: {
989
+ type: "dateTime",
990
+ label: "Tanggal Mulai Promo",
991
+ required: !1,
992
+ outputFormat: "utc"
993
+ },
994
+ promoEndDate: {
995
+ type: "dateTime",
996
+ label: "Tanggal Selesai Promo",
997
+ required: !1,
998
+ outputFormat: "utc"
171
999
  }
172
- },
173
- profile: {
174
- type: "object",
175
- label: "Profil Lengkap",
176
- schema: {
177
- nick: { type: "text", label: "Nick" },
178
- website: { type: "url", label: "Website" },
179
- birthDate: { type: "date", label: "Tanggal Lahir" },
180
- birthTime: { type: "time", label: "Waktu Lahir" },
181
- lastLogin: { type: "dateTime", label: "Login Terakhir" },
182
- about: { type: "textArea", label: "Tentang Saya" }
1000
+ }
1001
+ }
1002
+ },
1003
+ endPoints: {
1004
+ create: "/api/admin/promo/create",
1005
+ update: "/api/admin/promo/update",
1006
+ delete: "/api/admin/promo/delete/:id",
1007
+ deleteMany: "/api/admin/promo/delete"
1008
+ }
1009
+ }, P = {
1010
+ keys: {
1011
+ idKey: "id",
1012
+ idsKey: "ids"
1013
+ },
1014
+ base: {
1015
+ source: {
1016
+ DB_NAME: "QandA"
1017
+ },
1018
+ dataTabelDisplay: {
1019
+ judul: "title",
1020
+ Pertanyaan: "question",
1021
+ Jawaban: "answer"
1022
+ },
1023
+ lang: "id",
1024
+ schema: {
1025
+ global: {
1026
+ category: {
1027
+ type: "text",
1028
+ label: "Kategori",
1029
+ required: !0
1030
+ },
1031
+ question: {
1032
+ type: "textArea",
1033
+ label: "Pertanyaan",
1034
+ required: !0
1035
+ },
1036
+ answer: {
1037
+ type: "textArea",
1038
+ label: "Jawaban",
1039
+ required: !0
183
1040
  }
184
1041
  }
185
1042
  }
186
1043
  },
187
- // === RichText ===
188
- bio: {
189
- type: "richText",
190
- label: "Biografi",
191
- validate: { minLength: 10, maxLength: 200 }
1044
+ endPoints: {
1045
+ create: "/api/admin/qanda/create",
1046
+ update: "/api/admin/qanda/update",
1047
+ delete: "/api/admin/qanda/delete/:id",
1048
+ deleteMany: "/api/admin/qanda/delete"
1049
+ }
1050
+ }, A = {
1051
+ feature: {
1052
+ createActive: !1,
1053
+ deleteActive: !1,
1054
+ updateActive: !0,
1055
+ displayActive: !0,
1056
+ searchQueryActive: !0
192
1057
  },
193
- // === Tag ===
194
- tags: {
195
- type: "tag",
196
- label: "Tag",
197
- validate: { min: 1, max: 5 }
1058
+ keys: {
1059
+ idKey: "id",
1060
+ idsKey: "ids"
198
1061
  },
199
- isActive: { type: "toggle", label: "Aktif?" },
200
- // === Object (nested all fields again) ===
201
- profile: {
202
- type: "object",
203
- label: "Profil Lengkap",
1062
+ base: {
1063
+ source: {
1064
+ DB_NAME: "page"
1065
+ },
1066
+ dataTabelDisplay: {
1067
+ Nama: "name",
1068
+ "Gambar Hero Halaman": "image",
1069
+ "Slug Halaman": "slug",
1070
+ Deskripsi: "description"
1071
+ },
1072
+ lang: "id",
204
1073
  schema: {
205
- nick: { type: "text", label: "Nick" },
206
- website: { type: "url", label: "Website" },
207
- birthDate: { type: "date", label: "Tanggal Lahir" },
208
- birthTime: { type: "time", label: "Waktu Lahir" },
209
- lastLogin: { type: "dateTime", label: "Login Terakhir" },
210
- about: { type: "textArea", label: "Tentang Saya" },
211
- // === ArrayObject ===
212
- addresses: {
213
- type: "arrayObject",
214
- label: "Alamat",
215
- schema: {
216
- street: { type: "text", label: "Jalan", required: !0 },
217
- city: { type: "text", label: "Kota", required: !0 },
218
- zip: { type: "number", label: "Kode Pos", required: !0 },
219
- // === Object (nested all fields again) ===
220
- profile: {
221
- type: "object",
222
- label: "Profil Lengkap",
223
- schema: {
224
- nick: { type: "text", label: "Nick" },
225
- website: { type: "url", label: "Website" },
226
- birthDate: { type: "date", label: "Tanggal Lahir" },
227
- birthTime: { type: "time", label: "Waktu Lahir" },
228
- lastLogin: { type: "dateTime", label: "Login Terakhir" },
229
- about: { type: "textArea", label: "Tentang Saya" }
1074
+ global: {
1075
+ name: {
1076
+ type: "text",
1077
+ label: "Nama Halaman",
1078
+ placeholder: "Masukkan nama halaman",
1079
+ validate: {
1080
+ duplicate: !0
1081
+ },
1082
+ required: !0
1083
+ },
1084
+ image: {
1085
+ type: "image",
1086
+ label: "Gambar Halaman",
1087
+ required: !0
1088
+ },
1089
+ slug: {
1090
+ type: "text",
1091
+ label: "Slug (URL)",
1092
+ placeholder: "contoh: /beranda",
1093
+ validate: {
1094
+ duplicate: !0
1095
+ },
1096
+ required: !0
1097
+ },
1098
+ description: {
1099
+ type: "textArea",
1100
+ label: "Deskripsi Singkat",
1101
+ placeholder: "Masukkan deskripsi singkat halaman",
1102
+ required: !0
1103
+ },
1104
+ active: {
1105
+ type: "toggle",
1106
+ label: "Tampilkan di Website",
1107
+ value: !0
1108
+ }
1109
+ }
1110
+ }
1111
+ },
1112
+ endPoints: {
1113
+ update: "/api/admin/page/update"
1114
+ }
1115
+ }, S = {
1116
+ keys: {
1117
+ idKey: "id",
1118
+ idsKey: "ids"
1119
+ },
1120
+ base: {
1121
+ source: {
1122
+ DB_NAME: "orders"
1123
+ },
1124
+ dataTabelDisplay: {
1125
+ "Nama Pelanggan": "customer",
1126
+ Status: "status",
1127
+ Acara: "eventDate",
1128
+ "Acara Selesai": "eventEnds",
1129
+ Total: { valueKey: "totalPrice", type: "currency" }
1130
+ },
1131
+ lang: "id",
1132
+ schema: {
1133
+ global: {
1134
+ customer: {
1135
+ type: "text",
1136
+ label: "Nama Pelanggan",
1137
+ required: !0
1138
+ },
1139
+ address: {
1140
+ type: "textArea",
1141
+ label: "Alamat",
1142
+ required: !0
1143
+ },
1144
+ phone: {
1145
+ type: "tel",
1146
+ label: "Nomor Telepon",
1147
+ required: !0
1148
+ },
1149
+ promoShippingCode: {
1150
+ type: "text",
1151
+ label: "Kode Promo",
1152
+ required: !1
1153
+ },
1154
+ promoDiscountCode: {
1155
+ type: "text",
1156
+ label: "Kode Diskon",
1157
+ required: !1
1158
+ },
1159
+ email: {
1160
+ type: "email",
1161
+ label: "Email"
1162
+ },
1163
+ orderTools: {
1164
+ type: "arrayObject",
1165
+ label: "Daftar Pesanan",
1166
+ schema: {
1167
+ toolId: {
1168
+ type: "select",
1169
+ label: "Nama Produk",
1170
+ DB_NAME: "tools",
1171
+ baseKey: {
1172
+ base: "toolId",
1173
+ name: "name"
1174
+ },
1175
+ options: {
1176
+ DB_NAME: "tools",
1177
+ valueKey: "name"
1178
+ },
1179
+ required: !0
1180
+ },
1181
+ quantity: {
1182
+ type: "number",
1183
+ label: "Jumlah",
1184
+ required: !0
1185
+ },
1186
+ accessories: {
1187
+ type: "arrayObject",
1188
+ label: "Aksesoris",
1189
+ schema: {
1190
+ subToolId: {
1191
+ type: "select",
1192
+ label: "Nama Aksesoris",
1193
+ DB_NAME: "subtool",
1194
+ baseKey: {
1195
+ base: "subToolId",
1196
+ name: "name"
1197
+ },
1198
+ options: {
1199
+ DB_NAME: "subtool",
1200
+ valueKey: "name"
1201
+ },
1202
+ required: !0
1203
+ },
1204
+ quantity: {
1205
+ type: "number",
1206
+ label: "Jumlah",
1207
+ required: !0
1208
+ }
1209
+ }
230
1210
  }
231
1211
  }
1212
+ },
1213
+ distance: {
1214
+ type: "number",
1215
+ label: "Jarak (Km)",
1216
+ required: !1
1217
+ },
1218
+ image: {
1219
+ type: "image",
1220
+ label: "Gambar Jarak",
1221
+ required: !1
1222
+ },
1223
+ status: {
1224
+ type: "select",
1225
+ options: [
1226
+ "pending",
1227
+ "checkStok",
1228
+ "survey",
1229
+ "waitingDpPayment",
1230
+ "dpPaid",
1231
+ "installing",
1232
+ "eventOngoing",
1233
+ "eventEnds",
1234
+ "unloading",
1235
+ "waitingRepayment",
1236
+ "completed",
1237
+ "canceled",
1238
+ "failedPayment"
1239
+ ],
1240
+ optionsView: [
1241
+ "Pending",
1242
+ "Check Stok",
1243
+ "Survey",
1244
+ "Waiting DP Payment",
1245
+ "DP Paid",
1246
+ "Installing",
1247
+ "Event Ongoing",
1248
+ "Event Ends",
1249
+ "Unloading",
1250
+ "Waiting Repayment",
1251
+ "Completed",
1252
+ "Canceled",
1253
+ "Failed Payment"
1254
+ ],
1255
+ label: "Status",
1256
+ required: !0
1257
+ },
1258
+ eventDate: {
1259
+ type: "dateTime",
1260
+ label: "Tanggal Acara",
1261
+ required: !0
1262
+ },
1263
+ eventEnds: {
1264
+ type: "dateTime",
1265
+ label: "Tanggal Selesai",
1266
+ required: !0
232
1267
  }
233
1268
  }
234
1269
  }
235
1270
  },
236
- // === OptionGroup (with all field types) ===
237
- settings: {
238
- type: "optionGroupSchema",
239
- label: "Pengaturan",
240
- typeDesign: "cekbox",
241
- withValue: !0,
242
- options: {
243
- "Grup A": {
244
- optionA: { type: "text", label: "Teks A", required: !0 },
245
- optionB: { type: "number", label: "Angka B" },
246
- optionC: {
247
- type: "optionGroupSchema",
248
- label: "Sub Group",
249
- withValue: !0,
250
- typeDesign: "select",
1271
+ endPoints: {
1272
+ create: "/api/admin/order/create",
1273
+ update: "/api/admin/order/update",
1274
+ delete: "/api/admin/order/delete/:id",
1275
+ deleteMany: "/api/admin/order/delete"
1276
+ }
1277
+ }, T = {
1278
+ keys: {
1279
+ idKey: "id",
1280
+ idsKey: "ids"
1281
+ },
1282
+ base: {
1283
+ source: {
1284
+ fetchApi: {
1285
+ get: "/api/admin/order/income",
1286
+ getAll: "/api/admin/order/income"
1287
+ // autoRefresh: {
1288
+ // time: 60000
1289
+ // }
1290
+ }
1291
+ },
1292
+ lang: "id",
1293
+ dataTabelDisplay: {
1294
+ "Kode Pesanan": "order.orderCode",
1295
+ nominal: "pay",
1296
+ "Status Pembayaran": "status",
1297
+ "di Bayar": "createdAt",
1298
+ "di Acc": "updatedAt"
1299
+ },
1300
+ schema: {
1301
+ global: {
1302
+ orderId: {
1303
+ type: "select",
1304
+ label: "Kode Pesanan",
1305
+ required: !0,
1306
+ baseKey: {
1307
+ base: "orderId",
1308
+ name: "orderCode"
1309
+ },
251
1310
  options: {
252
- "Sub A": {
253
- subText: { type: "text", label: "Sub Text" },
254
- subNumber: { type: "number", label: "Sub Number" },
255
- subToggle: { type: "toggle", label: "Sub Toggle" }
256
- },
257
- "Sub B": {
258
- subImage: { type: "image", label: "Sub Image" },
259
- subColor: { type: "color", label: "Sub Color" }
260
- }
1311
+ DB_NAME: "orders",
1312
+ valueKey: "id",
1313
+ viewKey: "orderCode"
1314
+ },
1315
+ optionsIsNumber: !0
1316
+ },
1317
+ pay: {
1318
+ label: "Nominal",
1319
+ type: "number",
1320
+ required: !0
1321
+ },
1322
+ source: {
1323
+ label: "Sumber Pendapatan",
1324
+ type: "text"
1325
+ },
1326
+ image: {
1327
+ type: "image",
1328
+ label: "Bukti Pembayaran",
1329
+ required: !0
1330
+ },
1331
+ note: {
1332
+ type: "textArea",
1333
+ label: "Catatan"
1334
+ },
1335
+ status: {
1336
+ type: "select",
1337
+ options: ["pending", "paid", "failed", "canceled"],
1338
+ value: "paid",
1339
+ required: !0
1340
+ }
1341
+ }
1342
+ }
1343
+ },
1344
+ customActions: [
1345
+ {
1346
+ key: "acceptPayment",
1347
+ label: "Acc Pembayaran",
1348
+ icon: '<span class="i-mdi:check-circle-outline inline-block align-middle text-md"/>',
1349
+ class: "bg-green-500 text-white text-md"
1350
+ }
1351
+ ],
1352
+ endPoints: {
1353
+ create: "/api/admin/order/payment/create",
1354
+ update: "/api/admin/order/payment/update"
1355
+ }
1356
+ }, M = async (e) => {
1357
+ switch (e.key) {
1358
+ case "acceptPayment":
1359
+ try {
1360
+ if (e.item["Status Pembayaran"] === "paid")
1361
+ return {
1362
+ mode: "error",
1363
+ message: "Pembayaran Sudah Di ACC"
1364
+ };
1365
+ const a = {
1366
+ id: e.item.id,
1367
+ status: "paid"
1368
+ }, t = await r("/api/admin/order/payment/update/status", {
1369
+ method: "PATCH",
1370
+ headers: {
1371
+ "Content-Type": "application/json"
1372
+ },
1373
+ body: JSON.stringify(a)
1374
+ });
1375
+ if (!t.ok)
1376
+ return {
1377
+ mode: "error",
1378
+ message: "Gagal Mengupdate Status Pembayaran"
1379
+ };
1380
+ const i = await t.json();
1381
+ return await l("income", i.data), {
1382
+ mode: "success",
1383
+ message: "Status Pembayaran Berhasil Diupdate"
1384
+ };
1385
+ } catch (a) {
1386
+ return console.error(a), {
1387
+ mode: "error",
1388
+ message: "Terjadi Kesalahan"
1389
+ };
1390
+ }
1391
+ default:
1392
+ return {
1393
+ mode: "success",
1394
+ message: "Status Pembayaran Berhasil Diupdate"
1395
+ };
1396
+ }
1397
+ }, K = {
1398
+ keys: {
1399
+ idKey: "id",
1400
+ idsKey: "ids"
1401
+ },
1402
+ base: {
1403
+ source: {
1404
+ DB_NAME: "cqs"
1405
+ },
1406
+ lang: "id",
1407
+ dataTabelDisplay: {
1408
+ name: "name",
1409
+ subject: { valueKey: "subject", type: "select" },
1410
+ pertanyaan: "message",
1411
+ jawaban: "reply",
1412
+ publikasi: { valueKey: "published", type: "boolean" }
1413
+ },
1414
+ schema: {
1415
+ global: {
1416
+ name: {
1417
+ label: "Nama",
1418
+ type: "text",
1419
+ required: !0
1420
+ },
1421
+ phone: {
1422
+ label: "Telepon",
1423
+ type: "tel",
1424
+ required: !0
1425
+ },
1426
+ email: {
1427
+ label: "Email",
1428
+ type: "email",
1429
+ required: !0
1430
+ },
1431
+ subject: {
1432
+ label: "Subjek",
1433
+ type: "text",
1434
+ required: !0
1435
+ },
1436
+ message: {
1437
+ type: "textArea",
1438
+ label: "Pertanyaan",
1439
+ required: !0
1440
+ },
1441
+ reply: {
1442
+ label: "Jawaban",
1443
+ type: "textArea",
1444
+ required: !0
1445
+ }
1446
+ }
1447
+ }
1448
+ },
1449
+ endPoints: {
1450
+ create: "/api/admin/questions/create",
1451
+ update: "/api/admin/questions/update",
1452
+ delete: "/api/admin/questions/delete/:id",
1453
+ deleteMany: "/api/admin/questions/delete"
1454
+ }
1455
+ }, N = {
1456
+ keys: {
1457
+ idKey: "id",
1458
+ idsKey: "ids"
1459
+ },
1460
+ base: {
1461
+ source: {
1462
+ DB_NAME: "expenditure"
1463
+ },
1464
+ lang: "id",
1465
+ dataTabelDisplay: {
1466
+ pengeluaran: "pay",
1467
+ catatan: "note",
1468
+ "di Buat": "createdAt",
1469
+ "di Update": "updatedAt"
1470
+ },
1471
+ schema: {
1472
+ global: {
1473
+ pay: {
1474
+ label: "Nominal",
1475
+ type: "number",
1476
+ required: !0
1477
+ },
1478
+ note: {
1479
+ type: "textArea",
1480
+ label: "Catatan"
1481
+ }
1482
+ }
1483
+ }
1484
+ },
1485
+ endPoints: {
1486
+ create: "/api/admin/expenditure/create",
1487
+ update: "/api/admin/expenditure/update",
1488
+ delete: "/api/admin/expenditure/delete/:id",
1489
+ deleteMany: "/api/admin/expenditure/delete"
1490
+ }
1491
+ }, x = {
1492
+ keys: {
1493
+ idKey: "id",
1494
+ idsKey: "ids"
1495
+ },
1496
+ base: {
1497
+ source: {
1498
+ DB_NAME: "service"
1499
+ },
1500
+ lang: "id",
1501
+ dataTabelDisplay: {
1502
+ Judul: "title",
1503
+ Gambar: "image",
1504
+ deskripsi: "description"
1505
+ },
1506
+ schema: {
1507
+ global: {
1508
+ title: {
1509
+ type: "text",
1510
+ label: "Judul",
1511
+ required: !0,
1512
+ validate: {
1513
+ maxLength: 20,
1514
+ minLength: 5,
1515
+ duplicate: !0
1516
+ }
1517
+ },
1518
+ image: {
1519
+ type: "image",
1520
+ label: "Gambar",
1521
+ required: !0
1522
+ },
1523
+ description: {
1524
+ type: "textArea",
1525
+ label: "Deskripsi",
1526
+ required: !0,
1527
+ validate: {
1528
+ maxLength: 200,
1529
+ minLength: 10
261
1530
  }
262
1531
  }
263
- },
264
- "Grup B": {
265
- optionX: { type: "email", label: "Email X" },
266
- optionY: { type: "password", label: "Password Y" }
267
1532
  }
268
1533
  }
1534
+ },
1535
+ endPoints: {
1536
+ create: "/api/admin/service/create",
1537
+ update: "/api/admin/service/update",
1538
+ delete: "/api/admin/service/delete/:id",
1539
+ deleteMany: "/api/admin/service/delete"
1540
+ }
1541
+ }, f = {
1542
+ keys: {
1543
+ idKey: "id",
1544
+ idsKey: "ids"
1545
+ },
1546
+ base: {
1547
+ source: {
1548
+ DB_NAME: "rate"
1549
+ },
1550
+ dataTabelDisplay: {
1551
+ "Code Pesanan": { valueKey: "orderCode", type: "text" },
1552
+ "Rating Kepuasan": { valueKey: "rate", type: "rate" }
1553
+ },
1554
+ lang: "id",
1555
+ schema: {
1556
+ global: {
1557
+ orderCode: {
1558
+ type: "select",
1559
+ label: "Terhubung dengan Pesanan",
1560
+ options: {
1561
+ DB_NAME: "orders",
1562
+ valueKey: "orderCode"
1563
+ }
1564
+ },
1565
+ photoCustomer: {
1566
+ type: "image",
1567
+ label: "Foto Customer",
1568
+ required: !1
1569
+ },
1570
+ photoProject: {
1571
+ type: "image",
1572
+ label: "Foto Proyek",
1573
+ required: !1
1574
+ },
1575
+ rate: {
1576
+ type: "rate",
1577
+ label: "Rating",
1578
+ required: !0,
1579
+ validate: {
1580
+ min: 1,
1581
+ max: 5
1582
+ }
1583
+ },
1584
+ message: {
1585
+ type: "text",
1586
+ label: "Pesan",
1587
+ required: !1
1588
+ },
1589
+ published: {
1590
+ type: "toggle",
1591
+ label: "Diterbitkan",
1592
+ value: !1
1593
+ },
1594
+ newsPublished: {
1595
+ type: "toggle",
1596
+ label: "Diterbitkan di Berita",
1597
+ value: !1
1598
+ }
1599
+ }
1600
+ }
1601
+ },
1602
+ endPoints: {
1603
+ create: "/api/admin/rate/create",
1604
+ update: "/api/admin/rate/update",
1605
+ delete: "/api/admin/rate/delete/:id",
1606
+ deleteMany: "/api/admin/rate/delete"
269
1607
  }
270
- // settingsQ: {
271
- // type: 'optionGroupSchema',
272
- // label: 'Pengaturan',
273
- // typeDesign: 'select',
274
- // withValue: true,
275
- // options: {'Grup L' :
276
- // {
277
- // optionG: { type: 'text', label: 'Teks G', required: true },
278
- // optionF: { type: 'number', label: 'Angka F' },
279
- // optionASAS: {
280
- // type: 'optionGroupSchema',
281
- // label: 'Sub Group',
282
- // withValue: true,
283
- // typeDesign: 'select',
284
- // options: {'Sub AsSS' : {
285
- // subText: { type: 'text', label: 'Sub Text' },
286
- // subNumber: { type: 'number', label: 'Sub Number' },
287
- // subToggle: { type: 'toggle', label: 'Sub Toggle' },
288
- // }, 'Sub Bvcvxc': {
289
- // subImage: { type: 'image', label: 'Sub Image' },
290
- // subColor: { type: 'color', label: 'Sub Color' },
291
- // }},
292
- // },
293
- // }, 'Grup Basdzxczxc': {
294
- // optionXAFF: { type: 'email', label: 'Email X' },
295
- // optionYAFFF: { type: 'password', label: 'Password Y' },
296
- // }},
297
- // },
298
1608
  };
299
1609
  export {
300
- he as AlertApp,
301
- s as ArrayObjectInput,
302
- Te as BaseImage,
303
- xe as BaseLabel,
304
- o as ColorInput,
305
- p as DATETIME_REGEX,
306
- n as DATE_REGEX,
307
- u as DateInput,
308
- b as DateTimeInput,
309
- m as EmailInput,
310
- fe as FieldDetailRenderer,
311
- g as FileArrayInput,
312
- d as FileInput,
313
- y as FormFieldRenderer,
314
- c as FormModal,
315
- h as GroupRendererInput,
316
- T as ImageArrayInput,
317
- x as ImageInput,
318
- Ie as ImagePreview,
319
- e as ImageTypes,
320
- f as Loader,
321
- Ae as ModalDetailData,
322
- I as NumberInput,
323
- A as ObjectInput,
324
- L as PasswordInput,
325
- Le as SafeHtml,
326
- S as SelectedOptions,
327
- D as TIME_REGEX,
328
- Se as TabelData,
329
- k as TagInput,
330
- l as TestSchema,
331
- v as TextAreaInput,
332
- w as TextAreaQuillInput,
333
- q as TextInput,
334
- E as TimeInput,
335
- F as ToggleInput,
336
- P as Tooltip,
337
- N as UrlInput,
338
- De as WarningForm,
339
- j as clearStore,
340
- W as configureIndexedDB,
341
- ke as defaultEndpoints,
342
- ve as defaultFeatureToggles,
343
- we as defaultKeys,
344
- qe as defaultManualControl,
345
- B as defaultMessagesErrorRequired,
346
- Ee as defaultPagination,
347
- Fe as defaultSubmitAuth,
348
- M as defaultTextLabelsMap,
349
- Pe as defaultValidation,
350
- R as deleteItemFromStore,
351
- C as deleteNestedAndCleanup,
352
- G as emailRegex,
353
- a as fieldTypes,
354
- t as formDesign,
355
- Ne as formatDate,
356
- je as formatDateTime,
357
- We as formatTime,
358
- O as gcd,
359
- Be as getClientLocaleAndTimeZone,
360
- z as getCommonRatio,
361
- K as getFromIndexedDB,
362
- H as getItemById,
363
- U as getMessage,
364
- V as getNested,
365
- X as getSingleFromIndexedDB,
366
- _ as hasAnyError,
367
- J as inputMessages,
368
- Y as isSameMessage,
369
- Z as isStoreArray,
370
- Q as normalizeKey,
371
- $ as registerErrorMessageRequired,
372
- ee as registerInputMessages,
373
- ae as registerLanguage,
374
- te as removeFromIndexedDB,
375
- le as safeValidate,
376
- re as saveToIndexedDB,
377
- ie as secureFetch,
378
- se as setNested,
379
- oe as setUID,
380
- pe as simplifyRatio,
381
- ne as submitData,
382
- ue as toDateOnly,
383
- be as toDateTimeString,
384
- me as toTimeOnly,
385
- ge as unsetNested,
386
- de as updateItemInStore,
387
- ye as validate
1610
+ Oe as AlertApp,
1611
+ v as ArrayObjectInput,
1612
+ Fe as BaseImage,
1613
+ Je as BaseLabel,
1614
+ b as CategoriesSchema,
1615
+ B as ColorInput,
1616
+ g as ColorsSchema,
1617
+ K as CqSchema,
1618
+ _ as CurrencyInput,
1619
+ w as DATETIME_REGEX,
1620
+ C as DATE_REGEX,
1621
+ G as DateInput,
1622
+ sa as DateTimeInput,
1623
+ R as EmailInput,
1624
+ We as FieldDetailRenderer,
1625
+ ma as FileArrayInput,
1626
+ j as FileInput,
1627
+ H as FormFieldRenderer,
1628
+ L as FormModal,
1629
+ O as GroupRendererInput,
1630
+ ca as ImageArrayInput,
1631
+ F as ImageInput,
1632
+ Ue as ImagePreview,
1633
+ m as ImageTypes,
1634
+ J as Loader,
1635
+ $e as ModalDetailData,
1636
+ h as ModelSchema,
1637
+ k as NewsSchema,
1638
+ W as NumberInput,
1639
+ U as ObjectInput,
1640
+ S as OrderSchema,
1641
+ A as PageSchema,
1642
+ $ as PasswordInput,
1643
+ q as PromoSchema,
1644
+ P as QnASchema,
1645
+ z as RateInput,
1646
+ f as RateSchema,
1647
+ ze as SafeHtml,
1648
+ V as SelectedOptions,
1649
+ x as ServiceSchema,
1650
+ D as SubToolSchema,
1651
+ Q as TIME_REGEX,
1652
+ Ve as TabelData,
1653
+ X as TagInput,
1654
+ Y as TelInput,
1655
+ Z as TextAreaInput,
1656
+ ba as TextAreaQuillInput,
1657
+ ee as TextInput,
1658
+ ae as TimeInput,
1659
+ te as ToggleInput,
1660
+ y as ToolSchema,
1661
+ ie as Tooltip,
1662
+ re as UrlInput,
1663
+ Qe as WarningForm,
1664
+ le as clearStore,
1665
+ ne as configureIndexedDB,
1666
+ Xe as defaultEndpoints,
1667
+ Ye as defaultFeatureToggles,
1668
+ Ze as defaultKeys,
1669
+ ea as defaultManualControl,
1670
+ oe as defaultMessagesErrorRequired,
1671
+ aa as defaultPagination,
1672
+ ta as defaultSubmitAuth,
1673
+ de as defaultTextLabelsMap,
1674
+ ia as defaultValidation,
1675
+ se as deleteItemFromStore,
1676
+ ue as deleteNestedAndCleanup,
1677
+ me as emailRegex,
1678
+ N as expenditureSchema,
1679
+ p as fieldTypes,
1680
+ c as formDesign,
1681
+ ra as formatDate,
1682
+ la as formatDateTime,
1683
+ na as formatTime,
1684
+ pe as gcd,
1685
+ oa as getClientLocaleAndTimeZone,
1686
+ ce as getCommonRatio,
1687
+ ye as getFromIndexedDB,
1688
+ be as getItemById,
1689
+ ge as getMessage,
1690
+ De as getNested,
1691
+ he as getSingleFromIndexedDB,
1692
+ M as handleCustomActionIncome,
1693
+ ke as hasAnyError,
1694
+ T as incomeSchema,
1695
+ qe as inputMessages,
1696
+ Pe as isSameMessage,
1697
+ Ae as isStoreArray,
1698
+ Se as newDemoData,
1699
+ Te as normalizeKey,
1700
+ Me as registerErrorMessageRequired,
1701
+ Ke as registerInputMessages,
1702
+ Ne as registerLanguage,
1703
+ xe as removeFromIndexedDB,
1704
+ fe as safeValidate,
1705
+ Ie as saveToIndexedDB,
1706
+ r as secureFetch,
1707
+ Ee as setNested,
1708
+ ve as setUID,
1709
+ Be as simplifyRatio,
1710
+ _e as submitData,
1711
+ we as telRegex,
1712
+ Ce as toDateOnly,
1713
+ Ge as toDateTimeString,
1714
+ Re as toTimeOnly,
1715
+ je as unsetNested,
1716
+ l as updateItemInStore,
1717
+ He as validate
388
1718
  };