@agung_dhewe/webapps 1.1.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 (130) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +2 -0
  3. package/jsconfig.json +10 -0
  4. package/libs/fgta5js-dist/fgta5js-v1.8.3.min.css +2 -0
  5. package/libs/fgta5js-dist/fgta5js-v1.8.3.min.js +11 -0
  6. package/libs/fgta5js-dist/fgta5js-v1.8.3.min.js.map +1 -0
  7. package/libs/fgta5js-dist/fonts/karla-italic-latin-ext.woff2 +0 -0
  8. package/libs/fgta5js-dist/fonts/karla-italic-latin.woff2 +0 -0
  9. package/libs/fgta5js-dist/fonts/karla-normal-latin-ext.woff2 +0 -0
  10. package/libs/fgta5js-dist/fonts/karla-normal-latin.woff2 +0 -0
  11. package/libs/fgta5js-dist/fonts/karla.css +142 -0
  12. package/libs/webmodule/module-edit.css +163 -0
  13. package/libs/webmodule/module-footer.css +22 -0
  14. package/libs/webmodule/module-list.css +25 -0
  15. package/libs/webmodule/module.css +52 -0
  16. package/libs/webmodule/module.js +195 -0
  17. package/libs/webmodule/pagehelper.mjs +45 -0
  18. package/modules/generator/appgen-components.mjs +142 -0
  19. package/modules/generator/appgen-icons.mjs +6 -0
  20. package/modules/generator/appgen-io.mjs +784 -0
  21. package/modules/generator/appgen-ui-search.mjs +173 -0
  22. package/modules/generator/appgen-ui-unique.mjs +153 -0
  23. package/modules/generator/appgen-ui.mjs +1181 -0
  24. package/modules/generator/generator-context.mjs +18 -0
  25. package/modules/generator/generator-designtemplate.html +1508 -0
  26. package/modules/generator/generator-ext.html +0 -0
  27. package/modules/generator/generator-ext.mjs +3 -0
  28. package/modules/generator/generator.css +642 -0
  29. package/modules/generator/generator.mjs +195 -0
  30. package/modules/generator/generator.png +0 -0
  31. package/modules/generator/generatorEdit.html +185 -0
  32. package/modules/generator/generatorEdit.mjs +238 -0
  33. package/modules/generator/generatorList.html +32 -0
  34. package/modules/generator/generatorList.mjs +243 -0
  35. package/modules/login/login.css +11 -0
  36. package/modules/login/login.html +12 -0
  37. package/modules/login/login.mjs +111 -0
  38. package/package.json +46 -0
  39. package/percobaan/simmpan-ke-minio.js +24 -0
  40. package/src/api.js +80 -0
  41. package/src/apis/generator.api.js +226 -0
  42. package/src/apis/login.api.js +109 -0
  43. package/src/bucket.js +24 -0
  44. package/src/context.js +26 -0
  45. package/src/datalog.sql +22 -0
  46. package/src/datarecords.js +0 -0
  47. package/src/db.js +61 -0
  48. package/src/generator/createApiExtenderModule.js +54 -0
  49. package/src/generator/createApiModule.js +218 -0
  50. package/src/generator/createIcon.js +62 -0
  51. package/src/generator/createInfoAboutExtender.js +42 -0
  52. package/src/generator/createInfoLogs.js +41 -0
  53. package/src/generator/createInfoRecordExtender.js +41 -0
  54. package/src/generator/createModuleContext.js +48 -0
  55. package/src/generator/createModuleDetilEditHtml.js +110 -0
  56. package/src/generator/createModuleDetilEditMjs.js +172 -0
  57. package/src/generator/createModuleDetilListHtml.js +146 -0
  58. package/src/generator/createModuleDetilListMjs.js +73 -0
  59. package/src/generator/createModuleEjs.js +51 -0
  60. package/src/generator/createModuleExtenderHtml.js +43 -0
  61. package/src/generator/createModuleExtenderMjs.js +43 -0
  62. package/src/generator/createModuleHeaderEditHtml.js +148 -0
  63. package/src/generator/createModuleHeaderEditMjs.js +197 -0
  64. package/src/generator/createModuleHeaderListHtml.js +144 -0
  65. package/src/generator/createModuleHeaderListMjs.js +67 -0
  66. package/src/generator/createModuleMjs.js +67 -0
  67. package/src/generator/createModuleRollup.js +42 -0
  68. package/src/generator/createProgramData.js +96 -0
  69. package/src/generator/createTable.js +156 -0
  70. package/src/generator/ddl.js +475 -0
  71. package/src/generator/helper.js +149 -0
  72. package/src/generator/templates/__rollup-module.ejs +90 -0
  73. package/src/generator/templates/api-extender-module.js.ejs +0 -0
  74. package/src/generator/templates/api-module.js.ejs +818 -0
  75. package/src/generator/templates/module-context.ejs +16 -0
  76. package/src/generator/templates/module-ext-about.ejs +1 -0
  77. package/src/generator/templates/module-ext-record.ejs +1 -0
  78. package/src/generator/templates/module-ext.html.ejs +3 -0
  79. package/src/generator/templates/module-ext.mjs.ejs +21 -0
  80. package/src/generator/templates/module-logs.ejs +14 -0
  81. package/src/generator/templates/module.ejs.ejs +48 -0
  82. package/src/generator/templates/module.mjs.ejs +256 -0
  83. package/src/generator/templates/moduleDetilEdit.html.ejs +34 -0
  84. package/src/generator/templates/moduleDetilEdit.mjs.ejs +792 -0
  85. package/src/generator/templates/moduleDetilList.html.ejs +26 -0
  86. package/src/generator/templates/moduleDetilList.mjs.ejs +319 -0
  87. package/src/generator/templates/moduleHeaderEdit.html.ejs +53 -0
  88. package/src/generator/templates/moduleHeaderEdit.mjs.ejs +807 -0
  89. package/src/generator/templates/moduleHeaderList.html.ejs +24 -0
  90. package/src/generator/templates/moduleHeaderList.mjs.ejs +308 -0
  91. package/src/generator/templates/sqlAddField.ejs +3 -0
  92. package/src/generator/templates/sqlAddForeignKey.ejs +12 -0
  93. package/src/generator/templates/sqlAddUniqueIndex.ejs +4 -0
  94. package/src/generator/templates/sqlCreateTable.ejs +9 -0
  95. package/src/generator/templates/sqlDropForeignKey.ejs +3 -0
  96. package/src/generator/templates/sqlDropUniqueIndex.ejs +4 -0
  97. package/src/generator/templates/sqlModifyField.ejs +6 -0
  98. package/src/generator/trygenerate.js +83 -0
  99. package/src/generator/worker.js +389 -0
  100. package/src/helper.js +82 -0
  101. package/src/logger.js +39 -0
  102. package/src/router.js +84 -0
  103. package/src/routers/defaultLoginApi.js +29 -0
  104. package/src/routers/defaultLoginAsset.js +18 -0
  105. package/src/routers/defaultLoginPage.js +36 -0
  106. package/src/routers/defaultRootIndex.js +16 -0
  107. package/src/routers/downloadHandler.js +51 -0
  108. package/src/routers/fileUploadApi.js +15 -0
  109. package/src/routers/generatorApi.js +30 -0
  110. package/src/routers/generatorAsset.js +18 -0
  111. package/src/routers/generatorPage.js +37 -0
  112. package/src/routers/handleError.js +43 -0
  113. package/src/routers/handleModuleNotfound.js +12 -0
  114. package/src/routers/moduleApi.js +34 -0
  115. package/src/routers/modulePage.js +102 -0
  116. package/src/sequencerdoc.js +311 -0
  117. package/src/sequencerline.js +214 -0
  118. package/src/session.js +57 -0
  119. package/src/startup.js +59 -0
  120. package/src/webapps.js +239 -0
  121. package/src/workermanager.js +83 -0
  122. package/templates/_lib_debug.ejs +11 -0
  123. package/templates/_lib_production.ejs +5 -0
  124. package/templates/application.page.ejs +143 -0
  125. package/templates/generator.page.ejs +131 -0
  126. package/templates/index.page.ejs +24 -0
  127. package/templates/login.page.ejs +102 -0
  128. package/templates/moduleError.ejs +16 -0
  129. package/templates/moduleNotfound.ejs +14 -0
  130. package/webapps.code-workspace +11 -0
@@ -0,0 +1,1508 @@
1
+
2
+ <!-- DESIGNER INFO -->
3
+ <div name="designer-info" class="designer-info">
4
+ <div name="col_title" data-tag="content">
5
+ {title}
6
+ </div>
7
+
8
+ <div data-tag="label" style="margin-top: 8px">Name</div>
9
+ <div data-tag="content" name="col_name" style="margin-top: 8px">{name}</div>
10
+
11
+ <div data-tag="label" style="margin-top: 15px">Table</div>
12
+ <div data-tag="content" name="col_table" style="margin-top: 15px">{table}</div>
13
+
14
+ <div data-tag="label">PK</div>
15
+ <div data-tag="content" name="col_pk">{pk}</div>
16
+
17
+ <div data-tag="label" style="margin-top: 15px">Table Desc</div>
18
+ <div data-tag="content" style="border: 0; margin-top: 15px">
19
+ <input name="table-descr" type="text" style="padding: 3px 0 3px 3px; width: 100%;">
20
+ </div>
21
+
22
+ <div data-tag="label" style="margin-top: 15px" data-control>Data Control</div>
23
+ <div data-tag="content" style="border: 0; margin-top: 15px; display: flex; gap: 20px" data-control>
24
+ <label>
25
+ <input type="checkbox" name="allow-row-add">
26
+ Allow Add Row
27
+ </label>
28
+ <label>
29
+ <input type="checkbox" name="allow-row-remove">
30
+ Allow Remove Row
31
+ </label>
32
+
33
+ </div>
34
+
35
+ <div data-tag="label" style="margin-top: 15px" data-autoid>Row Identifier</div>
36
+ <div data-tag="content" style="border: 0; margin-top: 15px; display: flex; gap: 20px" data-autoid>
37
+ <div>
38
+ <select name="identifier-method">
39
+ <option value="manual" selected>Manual</option>
40
+ <option value="auto-by-default">Auto By Default (Numeric Only)</option>
41
+ <option value="auto-always">Auto Always (Numeric Only)</option>
42
+ <option value="auto-yearly">Auto Yearly (for Document) </option>
43
+ <option value="auto-monthly">Auto Monthly (for Document)</option>
44
+ <option value="auto-yearly-short">Auto Yearly (short, for entity)</option>
45
+ <option value="auto-custom">Auto Custom Sequencer</option>
46
+ </select>
47
+
48
+ <label style="margin-left: 40px; margin-right: 5px;">Prefix</label>
49
+ <input name="identifier-prefix" type="text" style="width: 30px; padding: 3px 0 3px 3px;">
50
+
51
+ <label style="margin-left: 15px; margin-right: 5px;">Block</label>
52
+ <input name="identifier-block" type="text" style="width: 30px; padding: 3px 0 3px 3px;" value="3">
53
+
54
+ <label style="margin-left: 15px; margin-right: 5px;">Length</label>
55
+ <input name="identifier-length" type="number" style="width: 30px; padding: 3px 0 3px 3px;" value="6">
56
+ </div>
57
+
58
+
59
+ </div>
60
+
61
+ </div>
62
+
63
+
64
+ <!-- UNIQUE-DESIGN -->
65
+ <div name="designer-unique" class="designer-unique hidden">
66
+ <table name="tbl-unique">
67
+ <tr>
68
+ <td style="vertical-align: top;">
69
+ <input name="unique_name" class="action-input" placeholder="unique name">
70
+ <div style="padding-left: 6px; font-size: 0.8rem;">
71
+ <a name="btnNew" href="javascript:void(0)">new</a>
72
+ </div>
73
+ </td>
74
+ <td style="vertical-align: top;">
75
+ <div>
76
+ <input name="unique_fields" class="action-input" style="width: 400px" placeholder="fields">
77
+ </div>
78
+ <div style="font-size: 0.8em; font-style: italic; padding-left: 5px;">
79
+ untuk multiple fields, pisahkan dengan koma (,)
80
+ </div>
81
+
82
+ </td>
83
+ <td style="vertical-align: top;">
84
+ <button name="btnAdd" class="action-button-add">Add</button>
85
+ </td>
86
+ </tr>
87
+ </table>
88
+ </div>
89
+
90
+
91
+ <!-- SEARCH-DESIGN -->
92
+ <div name="designer-search" class="designer-search hidden">
93
+ Jika search tidak didefinisikan, akan otomatis ditambahkan search criteria exact berdasarkan id<br><br>
94
+ <table name="tbl-search">
95
+ <tr>
96
+ <td style="vertical-align: top;">
97
+ <input name="criteria_name" class="action-input" placeholder="criteria name">
98
+ <div style="padding-left: 6px; font-size: 0.8rem;">
99
+ <a name="btnNew" href="javascript:void(0)">new</a>
100
+ </div>
101
+ </td>
102
+ <td style="vertical-align: top;">
103
+ <input name="criteria_label" class="action-input" placeholder="criteria label">
104
+ </td>
105
+ <td style="vertical-align: top;">
106
+ <div>
107
+ <input name="criteria_fields" class="action-input" style="width: 400px" placeholder="fields">
108
+ </div>
109
+ <div style="font-size: 0.8em; font-style: italic; padding-left: 5px;">
110
+ untuk multiple fields, pisahkan dengan koma (,)<br>
111
+ ketikkan <b>namafield</b> untuk exact search,<br>
112
+ atau ketikkan <b>%namafield</b> untuk search like
113
+ </div>
114
+
115
+ </td>
116
+ <td style="vertical-align: top;">
117
+ <button name="btnAdd" class="action-button-add">Add</button>
118
+ </td>
119
+ </tr>
120
+
121
+ </table>
122
+ </div>
123
+
124
+
125
+ <!-- DROP TARGET -->
126
+ <div name="drop-target" class="drop-target">
127
+ drag and drop component here
128
+ </div>
129
+
130
+ <!-- ICON TOOL -->
131
+ <div name="component-icon-tool" class="component-icon-tool" draggable="true">
132
+ <div data-icon></div>
133
+ <div data-label>Textbox</div>
134
+ </div>
135
+
136
+ <!--
137
+ fieldname
138
+ datatype
139
+ defaultvalue
140
+ datalength
141
+ dataprecission
142
+ description
143
+ objectname
144
+ labeltext
145
+ placeholder
146
+ isrequired
147
+ isbatasmin
148
+ isbatasmax
149
+ minimum
150
+ maximum
151
+ msg_invalid_default
152
+ msg_invalid_required
153
+ msg_invalid_minimum
154
+ msg_invalid_maximum
155
+
156
+ ishandlechanged
157
+ ishandleinput
158
+ ishandlekeydown
159
+ -->
160
+
161
+
162
+ <!-- FIELD EDITOR -->
163
+
164
+
165
+ <!-- TEXTBOX -->
166
+ <div name="design-data-field" class="design-data-field" data-template="textbox">
167
+ <div name="component-type" data-detil data-fieldtitle>
168
+ <div style="display: flex; justify-content: left; align-items: center; gap: 5px;" field-handle-bar class="field-handle-bar">
169
+ <div name="icon-pk" class="design-data-field-icon-pk"></div>
170
+ <div name="icon" class="design-data-field-icon">
171
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48">
172
+ <path d="M3 8h42v32H3z" style="fill:#fff;stroke:#000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"/>
173
+ <g style="stroke-width:1.20933">
174
+ <path d="M25.87 12.666V39.14h3.043l.207-.886q1.194.647 2.423 1.023 1.228.39 2.87.39 1.764 0 3.233-.664 1.47-.681 2.698-2.025 1.159-1.292 1.833-3.198.692-1.904.693-4.286 0-4.713-1.99-7.3-1.971-2.586-5.396-2.586-1.92 0-3.458.715a13.4 13.4 0 0 0-2.906 1.803v-9.459zm8.82 9.986q2.542 0 3.683 1.77 1.14 1.752 1.14 5.155 0 3.726-1.538 5.478-1.521 1.735-4.219 1.735-1.263 0-2.266-.237-.986-.24-2.37-.852V24.814a11.8 11.8 0 0 1 2.698-1.548q1.453-.613 2.871-.614M14.414 19.701a22.6 22.6 0 0 0-3.672.306q-1.863.307-2.848.562v3.252h.178q1.738-.63 3.368-.954 1.63-.34 2.957-.34 1.093 0 2.097.136 1.002.137 1.717.528.753.408 1.148 1.123.413.715.413 1.804v.494a93 93 0 0 0-5.5.408q-2.563.273-4.39 1.04-1.81.765-2.795 2.11-.967 1.328-.967 3.489Q6.12 36.298 8 38q1.882 1.702 4.587 1.701 1.47 0 2.561-.271a10 10 0 0 0 1.935-.649 8.8 8.8 0 0 0 1.47-.815q.77-.528 1.219-.818v2.026h3.348V26.27q.001-1.838-.59-3.08a5.1 5.1 0 0 0-1.72-2.026q-1.145-.8-2.722-1.123-1.56-.34-3.674-.34m5.358 9.498v5.293a15 15 0 0 1-2.725 1.583q-1.47.647-3.242.648-2.132 0-3.172-.817-1.038-.835-1.039-2.469 0-1.446.897-2.263.896-.834 2.348-1.226 1.218-.324 3.295-.493a144 144 0 0 1 3.638-.256" style="font-size:33.7393px;font-family:Sans;-inkscape-font-specification:&quot;Sans, Normal&quot;;stroke-width:2.41864;stroke-linecap:round;stroke-linejoin:round" transform="matrix(.90413 0 0 .75628 1.466 4.42)"/>
175
+ </g>
176
+ </svg>
177
+ </div>
178
+ <div name="title">
179
+ Textbox
180
+ </div>
181
+ <div class="field-remove-button">
182
+ </div>
183
+ </div>
184
+ </div>
185
+
186
+ <div data-detil data-fieldform>
187
+ <!-- 1 2 3 4 5 6 -->
188
+ <label>Field name</label><div>
189
+ <input type="text" name="fieldname"></div>
190
+
191
+ <label>Type</label>
192
+ <div>
193
+ <select name="datatype">
194
+ <option value="text" selected>text</option>
195
+ <option value="varchar">varchar</option>
196
+ <option value="char">char</option>
197
+ <option value="int">integer</option>
198
+ <option value="smallint">small integer</option>
199
+ <option value="bigint">big integer</option>
200
+ <option value="timestamp">timestamp</option>
201
+ </select>
202
+ </div>
203
+
204
+ <label>Length</label>
205
+ <div>
206
+ <input type="number" name="datalength" value="30">
207
+ <input type="hidden" name="dataprecission" value="0">
208
+ </div>
209
+
210
+
211
+
212
+ <label>Default Value</label>
213
+ <div>
214
+ <input name="defaultvalue" type="text" >
215
+ </div>
216
+ <div></div>
217
+ <label >
218
+ <input name="allownull" type="checkbox" value="1" style="transform: translateY(2px);" checked>
219
+ Allow Null
220
+ </label>
221
+ <div></div>
222
+ <div></div>
223
+
224
+ <label>Description</label>
225
+ <div style="grid-column: span 5;">
226
+ <input name="description" type="text" >
227
+ </div>
228
+
229
+
230
+ <div>
231
+ <input type="text" style="visibility: hidden;"> <!-- agar tinggi baris tidak terlihat sempet, karena di baris ini hanya checkbox-->
232
+ </div>
233
+ <div style="grid-column: span 5; display: flex; align-items: center;">
234
+ <label>
235
+ <input type="checkbox" name="showingrid" style="transform: translateY(2px);" checked >
236
+ Show in GridView
237
+ </label>
238
+ <label style="margin-left: 40px">
239
+ <input type="checkbox" name="showinform" style="transform: translateY(2px);" checked>
240
+ Show in Form
241
+ </label>
242
+ <label style="margin-left: 20px">
243
+ <input type="checkbox" name="disabledinform" style="transform: translateY(2px);">
244
+ Disabled
245
+ </label>
246
+ </div>
247
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
248
+
249
+
250
+
251
+ <label>Object Name</label>
252
+ <input type="text" name="objectname">
253
+ <label>Index</label>
254
+ <input type="text" name="index" value="0">
255
+ <div style="grid-column: span 2;"></div>
256
+
257
+
258
+
259
+ <label>Label Text</label>
260
+ <input type="text" name="labeltext">
261
+
262
+ <label>Placeholder</label>
263
+ <div style="grid-column: span 3;">
264
+ <input type="text" name="placeholder">
265
+ </div>
266
+
267
+
268
+ <label>Char Case</label>
269
+ <div>
270
+ <select name="charcasing">
271
+ <option value="normal" selected>Normal</option>
272
+ <option value="lowercase">lowercase</option>
273
+ <option value="uppercase">UPPERCASE</option>
274
+ </select>
275
+ </div>
276
+ <div style="grid-column: span 4;"></div>
277
+
278
+
279
+
280
+ <label>Information</label>
281
+ <div style="grid-column: span 5;">
282
+ <input name="information" type="text" >
283
+ </div>
284
+
285
+
286
+ <label>Container CSS</label><div>
287
+ <input type="text" name="input-containercss"></div>
288
+
289
+ <label>InLine Style</label>
290
+ <div style="grid-column: span 3;">
291
+ <input type="text" name="input-inlinestyle">
292
+ </div>
293
+
294
+
295
+
296
+
297
+
298
+
299
+
300
+
301
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
302
+ <label>Grid</label>
303
+ <div style="grid-column: span 5;" name="validation">
304
+
305
+ <label style="grid-column: span 2; transform: translateY(5px); ">Formatter</label>
306
+ <input name="gridformatter" type="text">
307
+
308
+ <label style="grid-column: span 2; transform: translateY(5px); ">CSS</label>
309
+ <input name="gridcss" type="text">
310
+
311
+ <label style="grid-column: span 2; transform: translateY(5px); ">Inline Style</label>
312
+ <input name="gridinlinestyle" type="text">
313
+
314
+ <label style="grid-column: span 2; transform: translateY(5px); ">&nbsp;</label>
315
+ <label>
316
+ <input name="gridsorting" type="checkbox" value="1" style="transform: translateY(2px);" >
317
+ Sorting
318
+ </label>
319
+
320
+ </div>
321
+
322
+
323
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
324
+ <label>Validation</label>
325
+ <div style="grid-column: span 5;" name="validation">
326
+
327
+ <div name="defaultinvalidmessage" style="grid-column: span 2;">Default Invalid Message</div>
328
+ <input type="text" name="msg_invalid_default" placeholder="invalid message">
329
+
330
+ <label>
331
+ <input name="isrequired" type="checkbox" value="1" style="transform: translateY(2px);">
332
+ Required
333
+ </label>
334
+ <div></div>
335
+ <input name="msg_invalid_required" type="text" placeholder="invalid message">
336
+
337
+ <label>
338
+ <input name="isbatasmin" type="checkbox" value="1" style="transform: translateY(2px);" >
339
+ Min Length
340
+ </label>
341
+ <input type="number" name="minimum">
342
+ <input type="text" name="msg_invalid_minimum" placeholder="invalid message">
343
+
344
+ <label>
345
+ <input name="isbatasmax" type="checkbox" value="1" checked disabled style="transform: translateY(2px);" >
346
+ Max Length
347
+ </label>
348
+ <input type="number" name="maximum" disabled>
349
+ <input type="text" name="msg_invalid_maximum" placeholder="invalid message">
350
+
351
+ <label style="grid-column: span 2;">
352
+ <input name="hascustomvalidator" type="checkbox" value="1" style="transform: translateY(2px);" >
353
+ Custom Validator
354
+ </label>
355
+ <input name="validator" type="text" >
356
+
357
+ </div>
358
+
359
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
360
+ <label>Reference</label>
361
+ <input type="text" name="ref_table" placeholder="table">
362
+ <label>PK</label>
363
+ <div style="grid-column: span 3; display: flex; gap: 10px" >
364
+ <div><input type="text" name="ref_id" placeholder="fieldname"></div>
365
+ </div>
366
+
367
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
368
+ <label name="validation" style="transform: translateY(10px);">Handle Event</label>
369
+ <div style="grid-column: span 5; padding-left: 10px; display: flex; gap: 30px; flex-wrap: wrap;" >
370
+
371
+ <label>
372
+ <input name="ishandlechanged" type="checkbox" value="1" style="transform: translateY(2px);" value="1">
373
+ Changed
374
+ </label>
375
+
376
+ <label>
377
+ <input name="ishandleinput" type="checkbox" value="1" style="transform: translateY(2px);" value="1">
378
+ Input
379
+ </label>
380
+
381
+ <label>
382
+ <input name="ishandlekeydown" type="checkbox" value="1" style="transform: translateY(2px);" value="1">
383
+ Keydown
384
+ </label>
385
+ </div>
386
+ </div>
387
+ <div name="component-summary" data-summary style="display: none;" draggable="true" field-handle-bar class="field-handle-bar">
388
+ <div name="icon-pk" class="design-data-field-icon-pk"></div>
389
+ <div name="icon" class="design-data-field-icon"></div>
390
+ <div name="title">
391
+ <input type="text" name="fieldname-summary" placeholder="text field name">
392
+ </div>
393
+ <div class="field-remove-button">
394
+ </div>
395
+ </div>
396
+ </div>
397
+
398
+
399
+ <!-- NUMBERBOX -->
400
+ <div name="design-data-field" class="design-data-field" data-template="numberbox">
401
+ <div name="component-type" data-detil data-fieldtitle>
402
+ <div style="display: flex; justify-content: left; align-items: center; gap: 5px;" field-handle-bar class="field-handle-bar">
403
+ <div name="icon-pk" class="design-data-field-icon-pk"></div>
404
+ <div name="icon" class="design-data-field-icon">
405
+ <svg version="1.1" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
406
+ <g stroke-linecap="round" stroke-linejoin="round" stroke-width="4">
407
+ <path transform="scale(.87733 1.1398)" d="m42.141 16.959-4.9275-0.88311q0.61434-2.355 2.355-3.6092 1.7534-1.2543 4.9531-1.2543 3.6732 0 5.3115 1.3695t1.6382 3.4428q0 1.2159-0.66553 2.2014-0.66553 0.9855-2.0094 1.7278 1.0879 0.26877 1.6638 0.62714 0.9343 0.57594 1.4463 1.523 0.52475 0.9343 0.52475 2.2398 0 1.6382-0.85751 3.1485-0.85751 1.4974-2.4701 2.3166-1.6126 0.80632-4.2364 0.80632-2.5597 0-4.0444-0.60154-1.4718-0.60154-2.4317-1.7534-0.9471-1.1647-1.459-2.9181l5.2091-0.69113q0.30717 1.5742 0.9471 2.1886 0.65273 0.60154 1.651 0.60154 1.0495 0 1.7406-0.76792 0.70393-0.76792 0.70393-2.0478 0-1.3055-0.67833-2.0222-0.66553-0.71673-1.8174-0.71673-0.61434 0-1.6894 0.30717l0.26877-3.7244q0.43516 0.06399 0.67833 0.06399 1.0239 0 1.7022-0.65273 0.69113-0.65273 0.69113-1.5486 0-0.85751-0.51195-1.3695-0.51195-0.51195-1.4079-0.51195-0.9215 0-1.4974 0.56314-0.57594 0.55034-0.78072 1.9454z"/>
408
+ <path transform="scale(.87733 1.1398)" d="m34.859 30.296h-15.64q0.26877-2.3166 1.6254-4.3516 1.3695-2.0478 5.1195-4.8251 2.291-1.7022 2.9309-2.5853t0.63993-1.6766q0-0.85751-0.63993-1.459-0.62714-0.61434-1.587-0.61434-0.9983 0-1.6382 0.62714-0.62714 0.62714-0.84471 2.2142l-5.2219-0.42236q0.30717-2.2014 1.1263-3.43 0.81912-1.2415 2.3038-1.8942 1.4974-0.66553 4.134-0.66553 2.7517 0 4.2748 0.62714 1.5358 0.62714 2.4062 1.9326 0.88311 1.2927 0.88311 2.9053 0 1.715-1.0111 3.2765-0.9983 1.5614-3.6476 3.43-1.5742 1.0879-2.1118 1.523-0.52474 0.43516-1.2415 1.1391h8.14z"/>
409
+ <path transform="scale(.87733 1.1398)" d="m13.933 11.213v19.083h-5.2731v-12.504q-1.2799 0.9727-2.4829 1.5742-1.1903 0.60154-2.9949 1.1519v-4.2748q2.6621-0.85751 4.134-2.0606t2.3038-2.9693z"/>
410
+ </g>
411
+ </svg>
412
+ </div>
413
+ <div name="title">
414
+ Numberbox
415
+ </div>
416
+ <div class="field-remove-button">
417
+ </div>
418
+ </div>
419
+ </div>
420
+
421
+
422
+ <div data-detil data-fieldform>
423
+ <!-- 1 2 3 4 5 6 -->
424
+ <label>Field name</label><div>
425
+ <input type="text" name="fieldname"></div>
426
+
427
+ <label>Type</label>
428
+ <div>
429
+ <select name="datatype" onchange="window.Application.numberboxDatatypeChange(this)">
430
+ <option value="int" selected>integer</option>
431
+ <option value="smallint">small integer</option>
432
+ <option value="bigint">big integer</option>
433
+ <option value="decimal">decimal</option>
434
+ </select>
435
+ </div>
436
+
437
+ <label>Length</label>
438
+ <div>
439
+ <input type="number" name="datalength" value="9">
440
+ <input type="number" name="dataprecission" value="0">
441
+ </div>
442
+
443
+
444
+ <label>Default Value</label>
445
+ <div>
446
+ <input name="defaultvalue" type="number" value="0">
447
+ </div>
448
+ <div></div>
449
+ <label >
450
+ <input name="allownull" type="checkbox" value="1" style="transform: translateY(2px);">
451
+ Allow Null
452
+ </label>
453
+ <div></div>
454
+ <div></div>
455
+
456
+
457
+
458
+ <label>Description</label>
459
+ <div style="grid-column: span 5;">
460
+ <input type="text" name="description">
461
+ </div>
462
+
463
+
464
+ <div>
465
+ <input type="text" style="visibility: hidden;"> <!-- agar tinggi baris tidak terlihat sempet, karena di baris ini hanya checkbox-->
466
+ </div>
467
+ <div style="grid-column: span 5; display: flex; align-items: center;">
468
+ <label>
469
+ <input type="checkbox" name="showingrid" style="transform: translateY(2px);" checked >
470
+ Show in GridView
471
+ </label>
472
+ <label style="margin-left: 40px">
473
+ <input type="checkbox" name="showinform" style="transform: translateY(2px);" checked>
474
+ Show in Form
475
+ </label>
476
+ <label style="margin-left: 20px">
477
+ <input type="checkbox" name="disabledinform" style="transform: translateY(2px);">
478
+ Disabled
479
+ </label>
480
+ </div>
481
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
482
+
483
+
484
+ <label>Object Name</label>
485
+ <input type="text" name="objectname">
486
+ <label>Index</label>
487
+ <input type="text" name="index" value="0">
488
+ <div style="grid-column: span 2;"></div>
489
+
490
+
491
+ <label>Label Text</label>
492
+ <input type="text" name="labeltext">
493
+
494
+ <label>Placeholder</label>
495
+ <div style="grid-column: span 3;">
496
+ <input type="text" name="placeholder">
497
+ </div>
498
+
499
+ <label>Information</label>
500
+ <div style="grid-column: span 5;">
501
+ <input name="information" type="text" >
502
+ </div>
503
+
504
+
505
+ <label>Container CSS</label>
506
+ <input type="text" name="input-containercss">
507
+
508
+ <label>InLine Style</label>
509
+ <div style="grid-column: span 3;">
510
+ <input type="text" name="input-inlinestyle">
511
+ </div>
512
+
513
+
514
+
515
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
516
+ <label>Grid</label>
517
+ <div style="grid-column: span 5;" name="validation">
518
+
519
+ <label style="grid-column: span 2; transform: translateY(5px); ">Formatter</label>
520
+ <input name="gridformatter" type="text" value="decimal(v, 0)">
521
+
522
+ <label style="grid-column: span 2; transform: translateY(5px); ">CSS</label>
523
+ <input name="gridcss" type="text">
524
+
525
+ <label style="grid-column: span 2; transform: translateY(5px); ">Inline Style</label>
526
+ <input name="gridinlinestyle" type="text" value="text-align:right">
527
+
528
+ <label style="grid-column: span 2; transform: translateY(5px); ">&nbsp;</label>
529
+ <label>
530
+ <input name="gridsorting" type="checkbox" value="1" style="transform: translateY(2px);" >
531
+ Sorting
532
+ </label>
533
+
534
+ </div>
535
+
536
+
537
+
538
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
539
+ <label>Validation</label>
540
+ <div style="grid-column: span 5;" name="validation">
541
+
542
+ <div name="defaultinvalidmessage" style="grid-column: span 2;">Default Invalid Message</div>
543
+ <input type="text" name="msg_invalid_default" placeholder="invalid message">
544
+
545
+ <label>
546
+ <input name="isbatasmin" type="checkbox" value="1" style="transform: translateY(2px);">
547
+ Min Value
548
+ </label>
549
+ <input type="number" name="minimum">
550
+ <input type="text" name="msg_invalid_minimum" placeholder="invalid message">
551
+
552
+ <label name="max">
553
+ <input name="isbatasmax" type="checkbox" value="1" style="transform: translateY(2px);">
554
+ Maximum
555
+ </label>
556
+ <input type="number" name="maximum">
557
+ <input type="text" name="msg_invalid_maximum" placeholder="invalid message">
558
+
559
+ <label style="grid-column: span 2;">
560
+ <input name="hascustomvalidator" type="checkbox" value="1" style="transform: translateY(2px);" >
561
+ Custom Validator
562
+ </label>
563
+ <input name="validator" type="text" >
564
+
565
+ </div>
566
+
567
+
568
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
569
+ <label name="validation" style="transform: translateY(10px);">Handle Event</label>
570
+ <div style="grid-column: span 5; padding-left: 10px; display: flex; gap: 30px; flex-wrap: wrap;" >
571
+
572
+ <label>
573
+ <input name="ishandlechanged" type="checkbox" value="1" style="transform: translateY(2px);" value="1">
574
+ Changed
575
+ </label>
576
+
577
+ <label>
578
+ <input name="ishandleinput" type="checkbox" value="1" style="transform: translateY(2px);" value="1">
579
+ Input
580
+ </label>
581
+
582
+ <label>
583
+ <input name="ishandlekeydown" type="checkbox" value="1" style="transform: translateY(2px);" value="1">
584
+ Keydown
585
+ </label>
586
+ </div>
587
+
588
+
589
+ </div>
590
+ <div name="component-summary" data-summary style="display: none;" draggable="true" field-handle-bar class="field-handle-bar">
591
+ <div name="icon-pk" class="design-data-field-icon-pk"></div>
592
+ <div name="icon" class="design-data-field-icon">
593
+ </div>
594
+ <div name="title">
595
+ <input type="text" name="fieldname-summary" placeholder="number field name">
596
+ </div>
597
+ <div class="field-remove-button">
598
+ </div>
599
+ </div>
600
+ </div>
601
+
602
+ <!-- CHECKBOX -->
603
+ <div name="design-data-field" class="design-data-field" data-template="checkbox">
604
+ <div name="component-type" data-detil data-fieldtitle>
605
+ <div style="display: flex; justify-content: left; align-items: center; gap: 5px;" field-handle-bar class="field-handle-bar">
606
+ <div name="icon-pk" class="design-data-field-icon-pk"></div>
607
+ <div name="icon" class="design-data-field-icon">
608
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><path d="M3 8h42v32H3z" style="fill:#fff;stroke:#000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"/><path d="m12 24.5 8 9.5 16-19" style="fill:none;stroke:#000;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"/></svg>
609
+ </div>
610
+ <div name="title">
611
+ Checkbox
612
+ </div>
613
+ <div class="field-remove-button">
614
+ </div>
615
+ </div>
616
+ </div>
617
+ <div data-detil data-fieldform>
618
+ <!-- 1 2 3 4 5 6 -->
619
+ <label>Field name</label><div>
620
+ <input type="text" name="fieldname"></div>
621
+
622
+ <label>Type</label>
623
+ <div>
624
+ <select name="datatype">
625
+ <option value="boolean" selected>boolean</option>
626
+ </select>
627
+ </div>
628
+
629
+ <div></div>
630
+ <div></div>
631
+
632
+
633
+
634
+ <label>Default Value</label>
635
+ <div>
636
+ <label>
637
+ <input name="defaultvalue" type="checkbox" value="1">
638
+ Checked
639
+ </label>
640
+ </div>
641
+ <div></div>
642
+ <div></div>
643
+ <div>
644
+ <input name="allownull" type="checkbox" value="1" style="transform: translateY(2px); visibility: hidden;" disabled> <!-- AllowNull-->
645
+ </div>
646
+ <div>
647
+ <input type="text" style="visibility: hidden;">
648
+ </div>
649
+
650
+
651
+ <label>Description</label>
652
+ <div style="grid-column: span 5;"><input type="text" name="description"></div>
653
+
654
+
655
+
656
+
657
+ <div>
658
+ <input type="text" style="visibility: hidden;"> <!-- agar tinggi baris tidak terlihat sempet, karena di baris ini hanya checkbox-->
659
+ </div>
660
+ <div style="grid-column: span 5; display: flex; align-items: center;">
661
+ <label>
662
+ <input type="checkbox" name="showingrid" style="transform: translateY(2px);" checked >
663
+ Show in GridView
664
+ </label>
665
+ <label style="margin-left: 40px">
666
+ <input type="checkbox" name="showinform" style="transform: translateY(2px);" checked>
667
+ Show in Form
668
+ </label>
669
+ <label style="margin-left: 20px">
670
+ <input type="checkbox" name="disabledinform" style="transform: translateY(2px);">
671
+ Disabled
672
+ </label>
673
+ </div>
674
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
675
+
676
+
677
+ <label>Object Name</label>
678
+ <input type="text" name="objectname">
679
+ <label>Index</label>
680
+ <input type="text" name="index" value="0">
681
+ <div style="grid-column: span 2;"></div>
682
+
683
+
684
+
685
+ <label>Text</label>
686
+ <input type="text" name="labeltext">
687
+ <label>Caption</label>
688
+ <div style="grid-column: span 3;">
689
+ <input type="text" name="caption">
690
+ </div>
691
+
692
+
693
+ <label>Information</label>
694
+ <div style="grid-column: span 5;">
695
+ <input name="information" type="text" >
696
+ </div>
697
+
698
+
699
+ <label>Container CSS</label>
700
+ <input type="text" name="input-containercss">
701
+
702
+ <label>InLine Style</label>
703
+ <div style="grid-column: span 3;">
704
+ <input type="text" name="input-inlinestyle">
705
+ </div>
706
+
707
+
708
+
709
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
710
+ <label>Grid</label>
711
+ <div style="grid-column: span 5;" name="validation">
712
+
713
+ <label style="grid-column: span 2; transform: translateY(5px); ">Formatter</label>
714
+ <input name="gridformatter" type="text" value="checkmark(value)">
715
+
716
+ <label style="grid-column: span 2; transform: translateY(5px); ">CSS</label>
717
+ <input name="gridcss" type="text">
718
+
719
+ <label style="grid-column: span 2; transform: translateY(5px); ">Inline Style</label>
720
+ <input name="gridinlinestyle" type="text" value='text-align:center'>
721
+
722
+ <label style="grid-column: span 2; transform: translateY(5px); ">&nbsp;</label>
723
+ <label>
724
+ <input name="gridsorting" type="checkbox" value="1" style="transform: translateY(2px);" >
725
+ Sorting
726
+ </label>
727
+
728
+ </div>
729
+
730
+
731
+
732
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
733
+ <label>Validation</label>
734
+ <div style="grid-column: span 5;" name="validation">
735
+ <div name="defaultinvalidmessage" style="grid-column: span 2;">Default Invalid Message</div>
736
+ <input type="text" name="msg_invalid_default" placeholder="invalid message">
737
+
738
+ <label style="grid-column: span 2;">
739
+ <input name="hascustomvalidator" type="checkbox" value="1" style="transform: translateY(2px);" >
740
+ Custom Validator
741
+ </label>
742
+ <input name="validator" type="text" >
743
+
744
+ </div>
745
+
746
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
747
+ <label name="validation" style="transform: translateY(10px);">Handle Event</label>
748
+ <div style="grid-column: span 5; padding-left: 10px; display: flex; gap: 30px; flex-wrap: wrap;" >
749
+ <label>
750
+ <input name="ishandlechecked" type="checkbox" value="1" style="transform: translateY(2px);" value="1">
751
+ Checked
752
+ </label>
753
+ </div>
754
+
755
+ </div>
756
+
757
+
758
+
759
+ <div name="component-summary" data-summary style="display: none;" draggable="true" field-handle-bar class="field-handle-bar">
760
+ <div name="icon-pk" class="design-data-field-icon-pk"></div>
761
+ <div name="icon" class="design-data-field-icon">
762
+ </div>
763
+ <div name="title">
764
+ <input type="text" name="fieldname-summary" placeholder="checkbox field name">
765
+ </div>
766
+ <div class="field-remove-button">
767
+ </div>
768
+ </div>
769
+
770
+ </div>
771
+
772
+
773
+ <!-- COMBOBOX -->
774
+ <div name="design-data-field" class="design-data-field" data-template="combobox">
775
+ <div name="component-type" data-detil data-fieldtitle>
776
+ <div style="display: flex; justify-content: left; align-items: center; gap: 5px;" field-handle-bar class="field-handle-bar">
777
+ <div name="icon-pk" class="design-data-field-icon-pk"></div>
778
+ <div name="icon" class="design-data-field-icon">
779
+ <svg version="1.1" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
780
+ <rect x="3" y="8" width="42" height="32" fill="#fff" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"/>
781
+ <path d="m8.4 13 15.591 22 17.009-22z"/>
782
+ </svg>
783
+ </div>
784
+ <div name="title">
785
+ Combobox
786
+ </div>
787
+ <div class="field-remove-button">
788
+ </div>
789
+ </div>
790
+ </div>
791
+
792
+ <div data-detil data-fieldform>
793
+ <!-- 1 2 3 4 5 6 -->
794
+ <label>Field name</label><div>
795
+ <input type="text" name="fieldname"></div>
796
+
797
+ <label>Type</label>
798
+ <div>
799
+ <select name="datatype">
800
+ <option value="varchar" selected>varchar</option>
801
+ <option value="char">char</option>
802
+ <option value="text">text</option>
803
+ <option value="smallint">small integer</option>
804
+ <option value="int">integer</option>
805
+ <option value="bigint">bigint</option>
806
+ </select>
807
+ </div>
808
+
809
+ <label>Length</label>
810
+ <div>
811
+ <input type="number" name="datalength" value="30">
812
+ <input type="hidden" name="dataprecission" value="0">
813
+ </div>
814
+
815
+
816
+
817
+ <label>Default Value</label>
818
+ <div>
819
+ <input name="defaultvalue" type="text" >
820
+ </div>
821
+ <div></div>
822
+ <label >
823
+ <input name="allownull" type="checkbox" value="1" style="transform: translateY(2px);" checked>
824
+ Allow Null
825
+ </label>
826
+ <div></div>
827
+ <div></div>
828
+
829
+
830
+ <label>Description</label>
831
+ <div style="grid-column: span 5;">
832
+ <input name="description" type="text" >
833
+ </div>
834
+
835
+
836
+ <div>
837
+ <input type="text" style="visibility: hidden;"> <!-- agar tinggi baris tidak terlihat sempet, karena di baris ini hanya checkbox-->
838
+ </div>
839
+ <div style="grid-column: span 5; display: flex; align-items: center;">
840
+ <label>
841
+ <input type="checkbox" name="showingrid" style="transform: translateY(2px);" checked >
842
+ Show in GridView
843
+ </label>
844
+ <label style="margin-left: 40px">
845
+ <input type="checkbox" name="showinform" style="transform: translateY(2px);" checked>
846
+ Show in Form
847
+ </label>
848
+ <label style="margin-left: 20px">
849
+ <input type="checkbox" name="disabledinform" style="transform: translateY(2px);">
850
+ Disabled
851
+ </label>
852
+ </div>
853
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
854
+
855
+
856
+ <label>Object Name</label>
857
+ <input type="text" name="objectname">
858
+ <label>Index</label>
859
+ <input type="text" name="index" value="0">
860
+ <div style="grid-column: span 2;"></div>
861
+
862
+
863
+ <label>Label Text</label>
864
+ <input type="text" name="labeltext">
865
+
866
+ <label>Placeholder</label>
867
+ <div style="grid-column: span 3;">
868
+ <input type="text" name="placeholder">
869
+ </div>
870
+
871
+ <label>Information</label>
872
+ <div style="grid-column: span 5;">
873
+ <input name="information" type="text" >
874
+ </div>
875
+
876
+
877
+ <label>Container CSS</label>
878
+ <input type="text" name="input-containercss">
879
+
880
+ <label>InLine Style</label>
881
+ <div style="grid-column: span 3;">
882
+ <input type="text" name="input-inlinestyle">
883
+ </div>
884
+
885
+
886
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
887
+ <label>Grid</label>
888
+ <div style="grid-column: span 5;" name="validation">
889
+
890
+ <label style="grid-column: span 2; transform: translateY(5px); ">Formatter</label>
891
+ <input name="gridformatter" type="text">
892
+
893
+ <label style="grid-column: span 2; transform: translateY(5px); ">CSS</label>
894
+ <input name="gridcss" type="text">
895
+
896
+ <label style="grid-column: span 2; transform: translateY(5px); ">Inline Style</label>
897
+ <input name="gridinlinestyle" type="text">
898
+
899
+ <label style="grid-column: span 2; transform: translateY(5px); ">&nbsp;</label>
900
+ <label>
901
+ <input name="gridsorting" type="checkbox" value="1" style="transform: translateY(2px);" >
902
+ Sorting
903
+ </label>
904
+
905
+ </div>
906
+
907
+
908
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
909
+ <label>Validation</label>
910
+ <div style="grid-column: span 5;" name="validation">
911
+
912
+ <div name="defaultinvalidmessage" style="grid-column: span 2;">Default Invalid Message</div>
913
+ <input type="text" name="msg_invalid_default" placeholder="invalid message">
914
+
915
+ <label>
916
+ <input name="isrequired" type="checkbox" value="1" style="transform: translateY(2px);">
917
+ Required
918
+ </label>
919
+ <div></div>
920
+ <input name="msg_invalid_required" type="text" placeholder="invalid message">
921
+
922
+ <label style="grid-column: span 2;">
923
+ <input name="hascustomvalidator" type="checkbox" value="1" style="transform: translateY(2px);" >
924
+ Custom Validator
925
+ </label>
926
+ <input name="validator" type="text" >
927
+ </div>
928
+
929
+
930
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
931
+ <label>Reference</label>
932
+ <input type="text" name="ref_table" placeholder="table">
933
+ <label>Binding</label>
934
+ <div style="grid-column: span 3; display: flex; gap: 10px" >
935
+ <div><input type="text" name="ref_id" placeholder="value fieldname"></div>
936
+ <div><input type="text" name="ref_text" placeholder="text fieldname"></div>
937
+ <div><input type="text" name="ref_display" placeholder="display as"></div>
938
+ </div>
939
+
940
+ <label>Loader API</label>
941
+ <input type="text" name="loaderapimodule" placeholder="apps name">
942
+ <div style="grid-column: span 4;" >
943
+ <input type="text" name="loaderapipath" placeholder="path">
944
+ </div>
945
+
946
+
947
+
948
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
949
+ <label name="validation" style="transform: translateY(10px);">Handle Event</label>
950
+ <div style="grid-column: span 5; padding-left: 10px; display: flex; gap: 30px; flex-wrap: wrap;" >
951
+
952
+ <label>
953
+ <input name="ishandleselecting" type="checkbox" value="1" style="transform: translateY(2px);" value="1" checked disabled>
954
+ Selecting
955
+ </label>
956
+
957
+ <label>
958
+ <input name="ishandleselected" type="checkbox" value="1" style="transform: translateY(2px);" value="1">
959
+ Selected
960
+ </label>
961
+
962
+ <label>
963
+ <input name="ishandlepopulating" type="checkbox" value="1" style="transform: translateY(2px);" value="1">
964
+ Populating
965
+ </label>
966
+
967
+ <label>
968
+ <input name="ishandleloadingdata" type="checkbox" value="1" style="transform: translateY(2px);" value="1">
969
+ LoadingData
970
+ </label>
971
+ </div>
972
+ </div>
973
+ <div name="component-summary" data-summary style="display: none;" draggable="true" field-handle-bar class="field-handle-bar">
974
+ <div name="icon-pk" class="design-data-field-icon-pk"></div>
975
+ <div name="icon" class="design-data-field-icon"></div>
976
+ <div name="title">
977
+ <input type="text" name="fieldname-summary" placeholder="texcomboboxt field name">
978
+ </div>
979
+ <div class="field-remove-button">
980
+ </div>
981
+ </div>
982
+ </div>
983
+
984
+
985
+ <!-- DATEPICKER -->
986
+ <div name="design-data-field" class="design-data-field" data-template="datepicker">
987
+ <div name="component-type" data-detil data-fieldtitle>
988
+ <div style="display: flex; justify-content: left; align-items: center; gap: 5px;" field-handle-bar class="field-handle-bar">
989
+ <div name="icon-pk" class="design-data-field-icon-pk"></div>
990
+ <div name="icon" class="design-data-field-icon">
991
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48">
992
+ <path d="M3 8h42v32H3z" style="fill:#fff;stroke:#000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"/>
993
+ <path d="M9 13h30v5H9z" style="fill:#000;stroke:#000;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"/>
994
+ <path d="M17.741 24.561v15.263h-4.217V29.823q-1.024.778-1.986 1.26-.952.48-2.396.92v-3.419q2.13-.686 3.307-1.648t1.842-2.375zm4.607.256h12.171v2.815q-1.586 1.433-2.65 3.102-1.29 2.027-2.038 4.515-.594 1.934-.798 4.575h-4.157q.492-3.675 1.546-6.162t3.337-5.323h-7.411z" aria-label="17" style="font-size:20.9652px;font-family:&quot;Arial Black&quot;;-inkscape-font-specification:&quot;Arial Black, Normal&quot;;stroke-width:4;stroke-linecap:round;stroke-linejoin:round" transform="scale(1.07634 .92908)"/>
995
+ </svg>
996
+ </div>
997
+ <div name="title">
998
+ Datepicker
999
+ </div>
1000
+ <div class="field-remove-button">
1001
+ </div>
1002
+ </div>
1003
+ </div>
1004
+
1005
+ <div data-detil data-fieldform>
1006
+ <!-- 1 2 3 4 5 6 -->
1007
+ <label>Field name</label><div>
1008
+ <input type="text" name="fieldname"></div>
1009
+
1010
+ <label>Type</label>
1011
+ <div>
1012
+ <select name="datatype">
1013
+ <option value="date" selected>date</option>
1014
+ </select>
1015
+ </div>
1016
+
1017
+ <label>Length</label>
1018
+ <div>
1019
+ <input type="number" name="datalength" value="8" disabled>
1020
+ <input type="hidden" name="dataprecission" value="0">
1021
+ </div>
1022
+
1023
+
1024
+
1025
+ <label>Default Value</label>
1026
+ <div>
1027
+ <input name="defaultvalue" type="text" disabled value="now()">
1028
+ </div>
1029
+ <div></div>
1030
+ <label >
1031
+ <input name="allownull" type="checkbox" value="1" style="transform: translateY(2px);" checked>
1032
+ Allow Null
1033
+ </label>
1034
+ <div></div>
1035
+ <div></div>
1036
+
1037
+
1038
+
1039
+ <label>Description</label>
1040
+ <div style="grid-column: span 5;">
1041
+ <input name="description" type="text" >
1042
+ </div>
1043
+
1044
+
1045
+ <div>
1046
+ <input type="text" style="visibility: hidden;"> <!-- agar tinggi baris tidak terlihat sempet, karena di baris ini hanya checkbox-->
1047
+ </div>
1048
+ <div style="grid-column: span 5; display: flex; align-items: center;">
1049
+ <label>
1050
+ <input type="checkbox" name="showingrid" style="transform: translateY(2px);" checked >
1051
+ Show in GridView
1052
+ </label>
1053
+ <label style="margin-left: 40px">
1054
+ <input type="checkbox" name="showinform" style="transform: translateY(2px);" checked>
1055
+ Show in Form
1056
+ </label>
1057
+ <label style="margin-left: 20px">
1058
+ <input type="checkbox" name="disabledinform" style="transform: translateY(2px);">
1059
+ Disabled
1060
+ </label>
1061
+ </div>
1062
+
1063
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
1064
+
1065
+
1066
+ <label>Object Name</label>
1067
+ <input type="text" name="objectname">
1068
+ <label>Index</label>
1069
+ <input type="text" name="index" value="0">
1070
+ <div style="grid-column: span 2;"></div>
1071
+
1072
+
1073
+ <label>Label Text</label>
1074
+ <input type="text" name="labeltext">
1075
+
1076
+ <label>Placeholder</label>
1077
+ <div style="grid-column: span 3;">
1078
+ <input type="text" name="placeholder">
1079
+ </div>
1080
+
1081
+
1082
+ <label>Information</label>
1083
+ <div style="grid-column: span 5;">
1084
+ <input name="information" type="text" >
1085
+ </div>
1086
+
1087
+ <label>Container CSS</label>
1088
+ <input type="text" name="input-containercss">
1089
+
1090
+ <label>InLine Style</label>
1091
+ <div style="grid-column: span 3;">
1092
+ <input type="text" name="input-inlinestyle">
1093
+ </div>
1094
+
1095
+
1096
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
1097
+ <label>Grid</label>
1098
+ <div style="grid-column: span 5;" name="validation">
1099
+
1100
+ <label style="grid-column: span 2; transform: translateY(5px); ">Formatter</label>
1101
+ <input name="gridformatter" type="text" value="dateshort(v)">
1102
+
1103
+ <label style="grid-column: span 2; transform: translateY(5px); ">CSS</label>
1104
+ <input name="gridcss" type="text">
1105
+
1106
+ <label style="grid-column: span 2; transform: translateY(5px); ">Inline Style</label>
1107
+ <input name="gridinlinestyle" type="text">
1108
+
1109
+ <label style="grid-column: span 2; transform: translateY(5px); ">&nbsp;</label>
1110
+ <label>
1111
+ <input name="gridsorting" type="checkbox" value="1" style="transform: translateY(2px);" >
1112
+ Sorting
1113
+ </label>
1114
+
1115
+ </div>
1116
+
1117
+
1118
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
1119
+ <label>Validation</label>
1120
+ <div style="grid-column: span 5;" name="validation">
1121
+
1122
+ <div name="defaultinvalidmessage" style="grid-column: span 2;">Default Invalid Message</div>
1123
+ <input type="text" name="msg_invalid_default" placeholder="invalid message">
1124
+
1125
+ <label>
1126
+ <input name="isrequired" type="checkbox" value="1" style="transform: translateY(2px);">
1127
+ Required
1128
+ </label>
1129
+ <div></div>
1130
+ <input name="msg_invalid_required" type="text" placeholder="invalid message">
1131
+
1132
+ <label style="grid-column: span 2;">
1133
+ <input name="hascustomvalidator" type="checkbox" value="1" style="transform: translateY(2px);" >
1134
+ Custom Validator
1135
+ </label>
1136
+ <input name="validator" type="text" >
1137
+
1138
+ </div>
1139
+
1140
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
1141
+ <label name="validation" style="transform: translateY(10px);">Handle Event</label>
1142
+ <div style="grid-column: span 5; padding-left: 10px; display: flex; gap: 30px; flex-wrap: wrap;" >
1143
+ <label>
1144
+ <input name="ishandlechanged" type="checkbox" value="1" style="transform: translateY(2px);" value="1">
1145
+ Changed
1146
+ </label>
1147
+ </div>
1148
+ </div>
1149
+ <div name="component-summary" data-summary style="display: none;" draggable="true" field-handle-bar class="field-handle-bar">
1150
+ <div name="icon-pk" class="design-data-field-icon-pk"></div>
1151
+ <div name="icon" class="design-data-field-icon"></div>
1152
+ <div name="title">
1153
+ <input type="text" name="fieldname-summary" placeholder="date field name">
1154
+ </div>
1155
+ <div class="field-remove-button">
1156
+ </div>
1157
+ </div>
1158
+ </div>
1159
+
1160
+
1161
+ <!-- TIMEPICKER -->
1162
+ <div name="design-data-field" class="design-data-field" data-template="timepicker">
1163
+ <div name="component-type" data-detil data-fieldtitle>
1164
+ <div style="display: flex; justify-content: left; align-items: center; gap: 5px;" field-handle-bar class="field-handle-bar">
1165
+ <div name="icon-pk" class="design-data-field-icon-pk"></div>
1166
+ <div name="icon" class="design-data-field-icon">
1167
+ <svg version="1.1" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
1168
+ <g fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round">
1169
+ <circle cx="24" cy="24" r="14" stroke-width="5"/>
1170
+ <path d="m19 21 5 3 8-7" stroke-width="4"/>
1171
+ </g>
1172
+ </svg>
1173
+ </div>
1174
+ <div name="title">
1175
+ Timepicker
1176
+ </div>
1177
+ <div class="field-remove-button">
1178
+ </div>
1179
+ </div>
1180
+ </div>
1181
+
1182
+ <div data-detil data-fieldform>
1183
+ <!-- 1 2 3 4 5 6 -->
1184
+ <label>Field name</label><div>
1185
+ <input type="text" name="fieldname"></div>
1186
+
1187
+ <label>Type</label>
1188
+ <div>
1189
+ <select name="datatype">
1190
+ <option value="time" selected>time</option>
1191
+ </select>
1192
+ </div>
1193
+
1194
+ <label>Length</label>
1195
+ <div>
1196
+ <input type="number" name="datalength" value="6" disabled>
1197
+ <input type="hidden" name="dataprecission" value="0">
1198
+ </div>
1199
+
1200
+
1201
+
1202
+ <label>Default Value</label>
1203
+ <div>
1204
+ <input name="defaultvalue" type="text" value="00:00">
1205
+ </div>
1206
+ <div></div>
1207
+ <label >
1208
+ <input name="allownull" type="checkbox" value="1" style="transform: translateY(2px);" checked>
1209
+ Allow Null
1210
+ </label>
1211
+ <div></div>
1212
+ <div></div>
1213
+
1214
+
1215
+ <label>Description</label>
1216
+ <div style="grid-column: span 5;">
1217
+ <input name="description" type="text" >
1218
+ </div>
1219
+
1220
+
1221
+ <div>
1222
+ <input type="text" style="visibility: hidden;"> <!-- agar tinggi baris tidak terlihat sempet, karena di baris ini hanya checkbox-->
1223
+ </div>
1224
+ <div style="grid-column: span 5; display: flex; align-items: center;">
1225
+ <label>
1226
+ <input type="checkbox" name="showingrid" style="transform: translateY(2px);" checked >
1227
+ Show in GridView
1228
+ </label>
1229
+ <label style="margin-left: 40px">
1230
+ <input type="checkbox" name="showinform" style="transform: translateY(2px);" checked>
1231
+ Show in Form
1232
+ </label>
1233
+ <label style="margin-left: 20px">
1234
+ <input type="checkbox" name="disabledinform" style="transform: translateY(2px);">
1235
+ Disabled
1236
+ </label>
1237
+ </div>
1238
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
1239
+
1240
+
1241
+ <label>Object Name</label>
1242
+ <input type="text" name="objectname">
1243
+ <label>Index</label>
1244
+ <input type="text" name="index" value="0">
1245
+ <div style="grid-column: span 2;"></div>
1246
+
1247
+
1248
+
1249
+
1250
+ <label>Label Text</label>
1251
+ <input type="text" name="labeltext">
1252
+
1253
+ <label>Placeholder</label>
1254
+ <div style="grid-column: span 3;">
1255
+ <input type="text" name="placeholder">
1256
+ </div>
1257
+
1258
+ <label>Information</label>
1259
+ <div >
1260
+ <input name="information" type="text" >
1261
+ </div>
1262
+
1263
+
1264
+ <label>Container CSS</label>
1265
+ <input type="text" name="input-containercss">
1266
+
1267
+ <label>InLine Style</label>
1268
+ <div style="grid-column: span 3;">
1269
+ <input type="text" name="input-inlinestyle">
1270
+ </div>
1271
+
1272
+
1273
+
1274
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
1275
+ <label>Grid</label>
1276
+ <div style="grid-column: span 5;" name="validation">
1277
+
1278
+ <label style="grid-column: span 2; transform: translateY(5px); ">Formatter</label>
1279
+ <input name="gridformatter" type="text">
1280
+
1281
+ <label style="grid-column: span 2; transform: translateY(5px); ">CSS</label>
1282
+ <input name="gridcss" type="text">
1283
+
1284
+ <label style="grid-column: span 2; transform: translateY(5px); ">Inline Style</label>
1285
+ <input name="gridinlinestyle" type="text">
1286
+
1287
+ <label style="grid-column: span 2; transform: translateY(5px); ">&nbsp;</label>
1288
+ <label>
1289
+ <input name="gridsorting" type="checkbox" value="1" style="transform: translateY(2px);" >
1290
+ Sorting
1291
+ </label>
1292
+
1293
+ </div>
1294
+
1295
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
1296
+ <label>Validation</label>
1297
+ <div style="grid-column: span 5;" name="validation">
1298
+
1299
+ <div name="defaultinvalidmessage" style="grid-column: span 2;">Default Invalid Message</div>
1300
+ <input type="text" name="msg_invalid_default" placeholder="invalid message">
1301
+
1302
+ <label>
1303
+ <input name="isrequired" type="checkbox" value="1" style="transform: translateY(2px);">
1304
+ Required
1305
+ </label>
1306
+ <div></div>
1307
+ <input name="msg_invalid_required" type="text" placeholder="invalid message">
1308
+
1309
+ <label style="grid-column: span 2;">
1310
+ <input name="hascustomvalidator" type="checkbox" value="1" style="transform: translateY(2px);" >
1311
+ Custom Validator
1312
+ </label>
1313
+ <input name="validator" type="text" >
1314
+
1315
+ </div>
1316
+
1317
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
1318
+ <label name="validation" style="transform: translateY(10px);">Handle Event</label>
1319
+ <div style="grid-column: span 5; padding-left: 10px; display: flex; gap: 30px; flex-wrap: wrap;" >
1320
+ <label>
1321
+ <input name="ishandlechanged" type="checkbox" value="1" style="transform: translateY(2px);" value="1">
1322
+ Changed
1323
+ </label>
1324
+ </div>
1325
+ </div>
1326
+ <div name="component-summary" data-summary style="display: none;" draggable="true" field-handle-bar class="field-handle-bar">
1327
+ <div name="icon-pk" class="design-data-field-icon-pk"></div>
1328
+ <div name="icon" class="design-data-field-icon"></div>
1329
+ <div name="title">
1330
+ <input type="text" name="fieldname-summary" placeholder="time field name">
1331
+ </div>
1332
+ <div class="field-remove-button">
1333
+ </div>
1334
+ </div>
1335
+ </div>
1336
+
1337
+
1338
+ <!-- FILEBOX -->
1339
+ <div name="design-data-field" class="design-data-field" data-template="filebox">
1340
+ <div name="component-type" data-detil data-fieldtitle>
1341
+ <div style="display: flex; justify-content: left; align-items: center; gap: 5px;" field-handle-bar class="field-handle-bar">
1342
+ <div name="icon-pk" class="design-data-field-icon-pk"></div>
1343
+ <div name="icon" class="design-data-field-icon">
1344
+ <svg version="1.1" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg">
1345
+ <path d="m6 31v6h36v-6" fill="none" stroke="#000" stroke-linecap="square" stroke-width="6"/>
1346
+ <path d="m19 29h10v-7h11l-16-15-16 15h11z"/>
1347
+ </svg>
1348
+ </div>
1349
+ <div name="title">
1350
+ Filebox
1351
+ </div>
1352
+ <div class="field-remove-button">
1353
+ </div>
1354
+ </div>
1355
+ </div>
1356
+
1357
+ <div data-detil data-fieldform>
1358
+ <!-- 1 2 3 4 5 6 -->
1359
+ <label>Field name</label><div>
1360
+ <input type="text" name="fieldname"></div>
1361
+
1362
+ <label>Type</label>
1363
+ <div>
1364
+ <select name="datatype">
1365
+ <option value="text" selected>text</option>
1366
+ </select>
1367
+ </div>
1368
+
1369
+ <label>Length</label>
1370
+ <div>
1371
+ <input type="number" name="datalength" value="255">
1372
+ <input type="hidden" name="dataprecission" value="0">
1373
+ </div>
1374
+
1375
+
1376
+
1377
+ <label>Default Value</label>
1378
+ <div>
1379
+ <input name="defaultvalue" type="text" >
1380
+ </div>
1381
+ <div></div>
1382
+ <label >
1383
+ <input name="allownull" type="checkbox" value="1" style="transform: translateY(2px);" checked>
1384
+ Allow Null
1385
+ </label>
1386
+ <div></div>
1387
+ <div></div>
1388
+
1389
+
1390
+ <label>Description</label>
1391
+ <div style="grid-column: span 5;">
1392
+ <input name="description" type="text" >
1393
+ </div>
1394
+
1395
+
1396
+
1397
+
1398
+ <div>
1399
+ <input type="text" style="visibility: hidden;"> <!-- agar tinggi baris tidak terlihat sempet, karena di baris ini hanya checkbox-->
1400
+ </div>
1401
+ <div style="grid-column: span 5; display: flex; align-items: center;">
1402
+ <label>
1403
+ <input type="checkbox" name="showingrid" style="transform: translateY(2px);" checked >
1404
+ Show in GridView
1405
+ </label>
1406
+ <label style="margin-left: 40px">
1407
+ <input type="checkbox" name="showinform" style="transform: translateY(2px);" checked>
1408
+ Show in Form
1409
+ </label>
1410
+ <label style="margin-left: 20px">
1411
+ <input type="checkbox" name="disabledinform" style="transform: translateY(2px);">
1412
+ Disabled
1413
+ </label>
1414
+ </div>
1415
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
1416
+
1417
+
1418
+ <label>Object Name</label>
1419
+ <input type="text" name="objectname">
1420
+ <label>Index</label>
1421
+ <input type="text" name="index" value="0">
1422
+ <div style="grid-column: span 2;"></div>
1423
+
1424
+
1425
+ <label>Label Text</label>
1426
+ <input type="text" name="labeltext">
1427
+
1428
+ <label>Placeholder</label>
1429
+ <div style="grid-column: span 3;">
1430
+ <input type="text" name="placeholder">
1431
+ </div>
1432
+
1433
+ <label>Information</label>
1434
+ <div style="grid-column: span 5;">
1435
+ <input name="information" type="text" >
1436
+ </div>
1437
+
1438
+ <label>Container CSS</label>
1439
+ <input type="text" name="input-containercss">
1440
+
1441
+ <label>InLine Style</label>
1442
+ <div style="grid-column: span 3;">
1443
+ <input type="text" name="input-inlinestyle">
1444
+ </div>
1445
+
1446
+
1447
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
1448
+ <label>Grid</label>
1449
+ <div style="grid-column: span 5;" name="validation">
1450
+
1451
+ <label style="grid-column: span 2; transform: translateY(5px); ">Formatter</label>
1452
+ <input name="gridformatter" type="text">
1453
+
1454
+ <label style="grid-column: span 2; transform: translateY(5px); ">CSS</label>
1455
+ <input name="gridcss" type="text">
1456
+
1457
+ <label style="grid-column: span 2; transform: translateY(5px); ">Inline Style</label>
1458
+ <input name="gridinlinestyle" type="text">
1459
+
1460
+ <label style="grid-column: span 2; transform: translateY(5px); ">&nbsp;</label>
1461
+ <label>
1462
+ <input name="gridsorting" type="checkbox" value="1" style="transform: translateY(2px);" >
1463
+ Sorting
1464
+ </label>
1465
+
1466
+ </div>
1467
+
1468
+
1469
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
1470
+ <label>Validation</label>
1471
+ <div style="grid-column: span 5;" name="validation">
1472
+
1473
+ <div name="defaultinvalidmessage" style="grid-column: span 2;">Default Invalid Message</div>
1474
+ <input type="text" name="msg_invalid_default" placeholder="invalid message">
1475
+
1476
+ <label>
1477
+ <input name="isrequired" type="checkbox" value="1" style="transform: translateY(2px);">
1478
+ Required
1479
+ </label>
1480
+ <div></div>
1481
+ <input name="msg_invalid_required" type="text" placeholder="invalid message">
1482
+
1483
+ <label style="grid-column: span 2;">
1484
+ <input name="hascustomvalidator" type="checkbox" value="1" style="transform: translateY(2px);" >
1485
+ Custom Validator
1486
+ </label>
1487
+ <input name="validator" type="text" >
1488
+ </div>
1489
+
1490
+ <div style="display: block; height: 1rem; grid-column: span 6;"></div>
1491
+ <label name="validation" style="transform: translateY(10px);">Handle Event</label>
1492
+ <div style="grid-column: span 5; padding-left: 10px; display: flex; gap: 30px; flex-wrap: wrap;" >
1493
+ <label>
1494
+ <input name="ishandlechanged" type="checkbox" value="1" style="transform: translateY(2px);" value="1">
1495
+ Changed
1496
+ </label>
1497
+ </div>
1498
+ </div>
1499
+ <div name="component-summary" data-summary style="display: none;" draggable="true" field-handle-bar class="field-handle-bar">
1500
+ <div name="icon-pk" class="design-data-field-icon-pk"></div>
1501
+ <div name="icon" class="design-data-field-icon"></div>
1502
+ <div name="title">
1503
+ <input type="text" name="fieldname-summary" placeholder="filebox field name">
1504
+ </div>
1505
+ <div class="field-remove-button">
1506
+ </div>
1507
+ </div>
1508
+ </div>