blixify-ui-web 0.1.36 → 0.1.38

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.
@@ -1,15 +1,4 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
3
  if (k2 === undefined) k2 = k;
15
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -69,15 +58,6 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
69
58
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
59
  }
71
60
  };
72
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
73
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
74
- if (ar || !(i in from)) {
75
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
76
- ar[i] = from[i];
77
- }
78
- }
79
- return to.concat(ar || Array.prototype.slice.call(from));
80
- };
81
61
  var __importDefault = (this && this.__importDefault) || function (mod) {
82
62
  return (mod && mod.__esModule) ? mod : { "default": mod };
83
63
  };
@@ -104,7 +84,6 @@ var uploadInput_1 = require("../../input/uploadInput");
104
84
  var breadcrumb_1 = require("../../navigation/breadcrumb");
105
85
  var tabs_1 = require("../../navigation/tabs");
106
86
  var link_1 = require("../../structure/link");
107
- var readQuery_1 = require("../readQuery");
108
87
  var readQueryHoc_1 = require("../readQueryHoc");
109
88
  var utils_2 = require("../utils");
110
89
  var writeQuery_1 = require("../writeQuery");
@@ -115,30 +94,28 @@ function DataTemplate(props) {
115
94
  var objectFormRef = (0, react_1.createRef)();
116
95
  var modalFormInputRefs = props.model.map(function () { return (0, react_1.createRef)(); });
117
96
  var limit = props.limit ? props.limit : 10;
118
- var _f = (0, react_1.useState)(false), modalVisible = _f[0], setModalVisible = _f[1];
119
- var _g = (0, react_1.useState)(""), selectedObjectStructureId = _g[0], setSelectedObjectStructureId = _g[1];
120
- var _h = (0, react_1.useState)(""), selectedObjectId = _h[0], setSelectedObjectId = _h[1];
121
- var _j = (0, react_1.useState)({}), selectedObjectData = _j[0], setSelectedObjectData = _j[1];
122
- var _k = (0, react_1.useState)(""), searchText = _k[0], setSearchText = _k[1];
123
- var _l = (0, react_1.useState)(""), cursor = _l[0], setCursor = _l[1];
124
- var _m = (0, react_1.useState)(""), lastCursor = _m[0], setLastCursor = _m[1];
125
- var _o = (0, react_1.useState)([]), data = _o[0], setData = _o[1];
126
- var _p = (0, react_1.useState)({}), referenceModelSchema = _p[0], setReferenceSchema = _p[1];
97
+ var _f = (0, react_1.useState)(false), loading = _f[0], setLoading = _f[1];
98
+ //INFO : Used by List
99
+ var _g = (0, react_1.useState)(""), searchText = _g[0], setSearchText = _g[1];
100
+ var _h = (0, react_1.useState)(true), tableLoading = _h[0], setTableLoading = _h[1];
101
+ var _j = (0, react_1.useState)(""), cursor = _j[0], setCursor = _j[1];
102
+ var _k = (0, react_1.useState)(""), lastCursor = _k[0], setLastCursor = _k[1];
103
+ var _l = (0, react_1.useState)([]), data = _l[0], setData = _l[1];
104
+ var _m = (0, react_1.useState)(0), size = _m[0], setSize = _m[1];
105
+ var _o = (0, react_1.useState)(0), pageIndex = _o[0], setPageIndex = _o[1];
106
+ //INFO : Used by Read
107
+ //INFO : Used by Update
108
+ var _p = (0, react_1.useState)(false), modalVisible = _p[0], setModalVisible = _p[1];
127
109
  var _q = (0, react_1.useState)({}), selectedData = _q[0], setSelectedData = _q[1];
128
- var _r = (0, react_1.useState)({}), referenceOptions = _r[0], setReferenceOptions = _r[1];
129
- var _s = (0, react_1.useState)({}), referenceSearchText = _s[0], setReferenceSearchText = _s[1];
130
- var _t = (0, react_1.useState)(0), size = _t[0], setSize = _t[1];
131
- var _u = (0, react_1.useState)(0), pageIndex = _u[0], setPageIndex = _u[1];
132
- var _v = (0, react_1.useState)(false), loading = _v[0], setLoading = _v[1];
110
+ var _r = (0, react_1.useState)(""), selectedObjectStructureId = _r[0], setSelectedObjectStructureId = _r[1];
111
+ var _s = (0, react_1.useState)(""), selectedObjectId = _s[0], setSelectedObjectId = _s[1];
112
+ var _t = (0, react_1.useState)({}), selectedObjectData = _t[0], setSelectedObjectData = _t[1];
113
+ var _u = (0, react_1.useState)({}), referenceModelSchema = _u[0], setReferenceSchema = _u[1];
114
+ var _v = (0, react_1.useState)({}), referenceOptions = _v[0], setReferenceOptions = _v[1];
115
+ var _w = (0, react_1.useState)({}), referenceSearchText = _w[0], setReferenceSearchText = _w[1];
133
116
  var dbModule = props.server === "firebase" ? (_a = props.lib) === null || _a === void 0 ? void 0 : _a.firebase : (_b = props.lib) === null || _b === void 0 ? void 0 : _b.axios;
134
117
  var writeServerQuery = new writeQuery_1.WriteQuery((_c = props.lib) === null || _c === void 0 ? void 0 : _c.axios, props.server, props.collectionId, props.dbEndpoint);
135
- var handlePopUpModal = function (modalVisible) {
136
- if (!modalVisible) {
137
- setSelectedObjectStructureId("");
138
- setSelectedObjectData({});
139
- }
140
- setModalVisible(modalVisible);
141
- };
118
+ //SECTION - List
142
119
  var handlePagination = function (value) {
143
120
  if (typeof value === "number") {
144
121
  setPageIndex(value);
@@ -158,216 +135,43 @@ function DataTemplate(props) {
158
135
  }
159
136
  }
160
137
  };
161
- var handleListReferenceDetails = function (data) { return __awaiter(_this, void 0, void 0, function () {
162
- var referenceDetails_1, referenceCollection_1, referenceKey_1, responseData_1, err_1;
163
- var _this = this;
164
- return __generator(this, function (_a) {
165
- switch (_a.label) {
166
- case 0:
167
- _a.trys.push([0, 3, , 4]);
168
- referenceDetails_1 = {};
169
- referenceCollection_1 = [];
170
- referenceKey_1 = [];
171
- return [4 /*yield*/, Promise.all(data.map(function (eachData) {
172
- var _a, _b;
173
- var _loop_1 = function (eachKey, eachValue) {
174
- var model = props.model.find(function (eachAttribute) {
175
- return eachAttribute.id === eachKey;
176
- });
177
- switch (model === null || model === void 0 ? void 0 : model.type) {
178
- case "reference":
179
- if (referenceDetails_1[eachKey]) {
180
- if (!referenceDetails_1[eachKey].includes(eachValue)) {
181
- referenceDetails_1[eachKey].push(eachValue);
182
- }
183
- }
184
- else {
185
- referenceDetails_1[eachKey] = [eachValue];
186
- referenceKey_1.push(eachKey);
187
- referenceCollection_1.push((_a = model.referenceSpaceId) !== null && _a !== void 0 ? _a : "");
188
- }
189
- break;
190
- case "listReference":
191
- if (Array.isArray(eachValue)) {
192
- if (referenceDetails_1[eachKey]) {
193
- var mergedSet = new Set(__spreadArray(__spreadArray([], eachValue, true), referenceDetails_1[eachKey], true));
194
- referenceDetails_1[eachKey] = Array.from(mergedSet);
195
- }
196
- else {
197
- referenceDetails_1[eachKey] = __spreadArray([], eachValue, true);
198
- referenceKey_1.push(eachKey);
199
- referenceCollection_1.push((_b = model.referenceSpaceId) !== null && _b !== void 0 ? _b : "");
200
- }
201
- }
202
- break;
203
- }
204
- };
205
- for (var _i = 0, _c = Object.entries(eachData); _i < _c.length; _i++) {
206
- var _d = _c[_i], eachKey = _d[0], eachValue = _d[1];
207
- _loop_1(eachKey, eachValue);
208
- }
209
- return null;
210
- }))];
211
- case 1:
212
- _a.sent();
213
- responseData_1 = {};
214
- return [4 /*yield*/, Promise.all(referenceCollection_1.map(function (eachCollection, index) { return __awaiter(_this, void 0, void 0, function () {
215
- var query, res;
216
- var _a;
217
- return __generator(this, function (_b) {
218
- switch (_b.label) {
219
- case 0:
220
- query = new readQuery_1.ReadQuery(dbModule, props.server, eachCollection, props.dbEndpoint);
221
- return [4 /*yield*/, query.call({
222
- type: "list",
223
- query: [
224
- {
225
- type: "in",
226
- value: (_a = referenceDetails_1[referenceKey_1[index]]) !== null && _a !== void 0 ? _a : [],
227
- queryId: props.server === "mongoServer" ? "_id" : "id",
228
- },
229
- ],
230
- })];
231
- case 1:
232
- res = _b.sent();
233
- responseData_1[referenceKey_1[index]] = res === null || res === void 0 ? void 0 : res.data;
234
- return [2 /*return*/];
235
- }
236
- });
237
- }); }))];
238
- case 2:
239
- _a.sent();
240
- return [2 /*return*/, responseData_1];
241
- case 3:
242
- err_1 = _a.sent();
243
- return [2 /*return*/, []];
244
- case 4: return [2 /*return*/];
245
- }
246
- });
247
- }); };
248
- var handleListDataBasedOnModel = function (data, server) { return __awaiter(_this, void 0, void 0, function () {
249
- var dataList, referenceDetails;
250
- return __generator(this, function (_a) {
251
- switch (_a.label) {
252
- case 0:
253
- dataList = [];
254
- return [4 /*yield*/, handleListReferenceDetails(data)];
255
- case 1:
256
- referenceDetails = _a.sent();
257
- data.map(function (eachDataAttribute) {
258
- var _a, _b;
259
- var eachData = {};
260
- var eachNewData = JSON.parse(JSON.stringify(eachDataAttribute), utils_2.jsonReviver);
261
- var eachDataId = (_a = eachNewData["id"]) !== null && _a !== void 0 ? _a : eachNewData["_id"];
262
- var _loop_2 = function (eachKey, eachValue) {
263
- var model = props.model.find(function (eachAttribute) {
264
- return eachAttribute.id === eachKey;
265
- });
266
- switch (model === null || model === void 0 ? void 0 : model.type) {
267
- case "string":
268
- if (eachKey === "id" || eachKey === "_id") {
269
- eachData[eachKey] = eachValue;
270
- }
271
- else {
272
- eachData[eachKey] =
273
- typeof eachValue === "string"
274
- ? eachValue.length > 15
275
- ? eachValue.substring(0, 15) + "..."
276
- : eachValue
277
- : eachValue;
278
- }
279
- break;
280
- case "date":
281
- case "number":
282
- case "boolean":
283
- case "address":
284
- case "object":
285
- case "list":
286
- case "multipleList":
287
- eachData[eachKey] = eachValue;
288
- break;
289
- case "image":
290
- var url = (0, utils_2.renderImageUrlFromPath)(props.imageEndpoint, model.imageCollectionName, eachDataId, model.imageFileName, eachValue);
291
- eachData[eachKey] = (react_1.default.createElement("img", { src: url, alt: "".concat(eachValue), className: "w-10 h-10" }));
292
- break;
293
- case "reference":
294
- var currentReferenceData = referenceDetails[eachKey].find(function (eachDetail) {
295
- return props.server === "mongoServer"
296
- ? eachDetail._id === eachValue
297
- : eachDetail.id === eachValue;
298
- });
299
- eachData[eachKey] =
300
- (_b = currentReferenceData[model.referenceLabel]) !== null && _b !== void 0 ? _b : (0, utils_2.renderReferenceStringAttribute)(currentReferenceData);
301
- break;
302
- case "listReference":
303
- var referenceListLabel_1 = [];
304
- if (Array.isArray(eachValue)) {
305
- eachValue.map(function (value) {
306
- var _a;
307
- var currentReferenceDetails = referenceDetails[eachKey].find(function (eachDetail) {
308
- return props.server === "mongoServer"
309
- ? eachDetail._id === value
310
- : eachDetail.id === value;
311
- });
312
- referenceListLabel_1.push((_a = currentReferenceDetails[model.referenceLabel]) !== null && _a !== void 0 ? _a : (0, utils_2.renderReferenceStringAttribute)(currentReferenceDetails));
313
- return null;
314
- });
315
- }
316
- eachData[eachKey] = referenceListLabel_1;
317
- break;
318
- default:
319
- break;
320
- }
321
- };
322
- for (var _i = 0, _c = Object.entries(eachNewData); _i < _c.length; _i++) {
323
- var _d = _c[_i], eachKey = _d[0], eachValue = _d[1];
324
- _loop_2(eachKey, eachValue);
325
- }
326
- eachData["update"] = (react_1.default.createElement(outline_1.PencilSquareIcon, { className: "w-5 text-primary-600", onClick: function (event) {
327
- var _a;
328
- event.preventDefault();
329
- event.stopPropagation();
330
- var id = (_a = eachData["id"]) !== null && _a !== void 0 ? _a : eachData["_id"];
331
- handleNavigate("".concat(props.localURLEndpoint, "?data=").concat(id, "&type=update&collection=").concat(props.collectionId, "&view=general"));
332
- } }));
333
- dataList.push(server === "mongoServer"
334
- ? __assign(__assign({}, eachData), { id: eachData["_id"] }) : __assign({}, eachData));
335
- return null;
336
- });
337
- return [2 /*return*/, dataList];
338
- }
339
- });
340
- }); };
138
+ var handleGetListError = function () {
139
+ setTableLoading(false);
140
+ };
341
141
  var handleGetListData = function (responseData) { return __awaiter(_this, void 0, void 0, function () {
342
- var dataList;
142
+ var dataList, handleListResponse;
343
143
  var _a, _b;
344
144
  return __generator(this, function (_c) {
345
145
  switch (_c.label) {
346
146
  case 0:
347
147
  dataList = [];
148
+ handleListResponse = (0, utils_2.handleListDataBasedOnModel)(responseData.data, props.server, dbModule, props.model, (_a = props.imageEndpoint) !== null && _a !== void 0 ? _a : "", props.localURLEndpoint, props.collectionId, props.dbEndpoint, handleNavigate);
348
149
  if (!(props.server === "mongoServer")) return [3 /*break*/, 3];
349
150
  if (!(responseData.data.length > 0)) return [3 /*break*/, 2];
350
- return [4 /*yield*/, handleListDataBasedOnModel(responseData.data, props.server)];
151
+ return [4 /*yield*/, handleListResponse];
351
152
  case 1:
352
153
  dataList = _c.sent();
353
154
  setData(dataList);
155
+ setTableLoading(false);
354
156
  setSize(responseData.count);
355
157
  _c.label = 2;
356
158
  case 2: return [3 /*break*/, 6];
357
159
  case 3:
358
- if (!(((_b = (_a = responseData.data) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.length) > 0)) return [3 /*break*/, 5];
359
- return [4 /*yield*/, handleListDataBasedOnModel(responseData.data.data, props.server)];
160
+ if (!(((_b = responseData.data) === null || _b === void 0 ? void 0 : _b.length) > 0)) return [3 /*break*/, 5];
161
+ return [4 /*yield*/, handleListResponse];
360
162
  case 4:
361
163
  dataList = _c.sent();
362
164
  _c.label = 5;
363
165
  case 5:
364
166
  setData(searchText ? dataList : dataList.concat(data));
365
- setCursor(responseData.data.count);
167
+ setTableLoading(false);
168
+ setCursor(responseData.count);
366
169
  _c.label = 6;
367
170
  case 6: return [2 /*return*/];
368
171
  }
369
172
  });
370
173
  }); };
174
+ //Section - Update
371
175
  var handleRetreiveSelectedData = function (responseData) { return __awaiter(_this, void 0, void 0, function () {
372
176
  var dummyRespData, dummyReferenceModelSchema, newRespData, _a;
373
177
  var _b, _c, _d;
@@ -378,7 +182,7 @@ function DataTemplate(props) {
378
182
  dummyRespData = JSON.parse(JSON.stringify(responseData.data), utils_2.jsonReviver);
379
183
  dummyReferenceModelSchema = JSON.parse(JSON.stringify(referenceModelSchema));
380
184
  if (!(props.type === "read")) return [3 /*break*/, 2];
381
- return [4 /*yield*/, (0, utils_2.handleRetrieveReferenceDetails)(dummyRespData, (_b = props.model) !== null && _b !== void 0 ? _b : [], dbModule, props.server, props.dbEndpoint, props.schemaEndpoint, (_c = props.imageEndpoint) !== null && _c !== void 0 ? _c : "", (_d = props.id) !== null && _d !== void 0 ? _d : "", dummyReferenceModelSchema, setReferenceSchema)];
185
+ return [4 /*yield*/, (0, utils_2.handleRetrieveDeepModel)(dummyRespData, (_b = props.model) !== null && _b !== void 0 ? _b : [], dbModule, props.server, props.dbEndpoint, props.schemaEndpoint, (_c = props.imageEndpoint) !== null && _c !== void 0 ? _c : "", (_d = props.id) !== null && _d !== void 0 ? _d : "", dummyReferenceModelSchema, setReferenceSchema)];
382
186
  case 1:
383
187
  _a = _e.sent();
384
188
  return [3 /*break*/, 3];
@@ -393,19 +197,6 @@ function DataTemplate(props) {
393
197
  }
394
198
  });
395
199
  }); };
396
- var handleNavigate = function (link) {
397
- var _a, _b, _c;
398
- var href = link !== null && link !== void 0 ? link : "".concat(props.localURLEndpoint, "?type=list&collection=").concat(props.collectionId);
399
- if ((_a = props.lib) === null || _a === void 0 ? void 0 : _a.navigateNext) {
400
- props.lib.navigateNext.push(href);
401
- }
402
- else if ((_b = props.lib) === null || _b === void 0 ? void 0 : _b.navigate) {
403
- (_c = props.lib) === null || _c === void 0 ? void 0 : _c.navigate(href);
404
- }
405
- else if (window) {
406
- window.location.replace(href);
407
- }
408
- };
409
200
  var handleClonedDataAttribute = function (selectedData, model, force, IsRemainId) {
410
201
  var defaultValue = selectedData;
411
202
  var clonedSelectedData = JSON.parse(JSON.stringify(selectedData));
@@ -449,88 +240,64 @@ function DataTemplate(props) {
449
240
  }
450
241
  return clonedSelectedData;
451
242
  };
452
- var handleOnChangeFile = function (e) {
243
+ var handleOnChangeData = function () {
453
244
  var _a;
454
245
  if (modalVisible && selectedObjectStructureId) {
455
246
  var filterObjectModel = props.model.find(function (eachModel) {
456
247
  return eachModel.id === selectedObjectStructureId;
457
248
  });
458
- var clonedSelectedObjectData = handleClonedDataAttribute(selectedObjectData, (_a = filterObjectModel === null || filterObjectModel === void 0 ? void 0 : filterObjectModel.objectData) !== null && _a !== void 0 ? _a : []);
459
- clonedSelectedObjectData[e.target.id] =
460
- e.target.files.length > 0 ? e.target.files[0] : undefined;
461
- setSelectedObjectData(clonedSelectedObjectData);
249
+ return {
250
+ data: selectedObjectData,
251
+ model: (_a = filterObjectModel === null || filterObjectModel === void 0 ? void 0 : filterObjectModel.objectData) !== null && _a !== void 0 ? _a : [],
252
+ };
462
253
  }
463
254
  else {
464
- var clonedSelectedData = handleClonedDataAttribute(selectedData, props.model);
465
- clonedSelectedData[e.target.id] =
466
- e.target.files.length > 0 ? e.target.files[0] : undefined;
467
- setSelectedData(clonedSelectedData);
255
+ return {
256
+ data: selectedData,
257
+ model: props.model,
258
+ };
468
259
  }
469
260
  };
470
- var handleOnChangeAddress = function (id, address) {
471
- var _a;
261
+ var handleUpdateChangeData = function (data) {
472
262
  if (modalVisible && selectedObjectStructureId) {
473
- var filterObjectModel = props.model.find(function (eachModel) {
474
- return eachModel.id === selectedObjectStructureId;
475
- });
476
- var clonedSelectedObjectData = handleClonedDataAttribute(selectedObjectData, (_a = filterObjectModel === null || filterObjectModel === void 0 ? void 0 : filterObjectModel.objectData) !== null && _a !== void 0 ? _a : []);
477
- clonedSelectedObjectData[id] = address;
478
- setSelectedObjectData(clonedSelectedObjectData);
263
+ setSelectedObjectData(data);
479
264
  }
480
265
  else {
481
- var clonedSelectedData = handleClonedDataAttribute(selectedData, props.model);
482
- clonedSelectedData[id] = address;
483
- setSelectedData(clonedSelectedData);
266
+ setSelectedData(data);
484
267
  }
485
268
  };
269
+ var handleOnChangeFile = function (e) {
270
+ var _a = handleOnChangeData(), data = _a.data, model = _a.model;
271
+ var clonedData = handleClonedDataAttribute(data, model);
272
+ clonedData[e.target.id] =
273
+ e.target.files.length > 0 ? e.target.files[0] : undefined;
274
+ handleUpdateChangeData(clonedData);
275
+ };
276
+ var handleOnChangeAddress = function (id, address) {
277
+ var _a = handleOnChangeData(), data = _a.data, model = _a.model;
278
+ var clonedData = handleClonedDataAttribute(data, model);
279
+ clonedData[id] = address;
280
+ handleUpdateChangeData(clonedData);
281
+ };
486
282
  var handleOnChangeText = function (e) {
487
- var _a;
488
- if (modalVisible && selectedObjectStructureId) {
489
- var filterObjectModel = props.model.find(function (eachModel) {
490
- return eachModel.id === selectedObjectStructureId;
491
- });
492
- var clonedSelectedObjectData = handleClonedDataAttribute(selectedObjectData, (_a = filterObjectModel === null || filterObjectModel === void 0 ? void 0 : filterObjectModel.objectData) !== null && _a !== void 0 ? _a : []);
493
- clonedSelectedObjectData[e.target.id] = e.target.value;
494
- setSelectedObjectData(clonedSelectedObjectData);
495
- }
496
- else {
497
- var clonedSelectedData = handleClonedDataAttribute(selectedData, props.model);
498
- clonedSelectedData[e.target.id] = e.target.value;
499
- setSelectedData(clonedSelectedData);
500
- }
283
+ var _a = handleOnChangeData(), data = _a.data, model = _a.model;
284
+ var clonedData = handleClonedDataAttribute(data, model);
285
+ clonedData[e.target.id] = e.target.value;
286
+ handleUpdateChangeData(clonedData);
501
287
  };
502
288
  var handleOnChangeSelect = function (id, value) {
503
- var _a;
504
- if (modalVisible && selectedObjectStructureId) {
505
- var filterObjectModel = props.model.find(function (eachModel) {
506
- return eachModel.id === selectedObjectStructureId;
507
- });
508
- var clonedSelectedObjectData = handleClonedDataAttribute(selectedObjectData, (_a = filterObjectModel === null || filterObjectModel === void 0 ? void 0 : filterObjectModel.objectData) !== null && _a !== void 0 ? _a : []);
509
- clonedSelectedObjectData[id] = value;
510
- setSelectedObjectData(clonedSelectedObjectData);
511
- }
512
- else {
513
- var clonedSelectedData = handleClonedDataAttribute(selectedData, props.model);
514
- clonedSelectedData[id] = value;
515
- setSelectedData(clonedSelectedData);
516
- }
289
+ var _a = handleOnChangeData(), data = _a.data, model = _a.model;
290
+ var clonedData = handleClonedDataAttribute(data, model);
291
+ clonedData[id] = value;
292
+ handleUpdateChangeData(clonedData);
517
293
  };
518
294
  var handleOnChangeDate = function (id, value) {
519
- var _a;
520
- if (modalVisible && selectedObjectStructureId) {
521
- var filterObjectModel = props.model.find(function (eachModel) {
522
- return eachModel.id === selectedObjectStructureId;
523
- });
524
- var clonedSelectedObjectData = handleClonedDataAttribute(selectedObjectData, (_a = filterObjectModel === null || filterObjectModel === void 0 ? void 0 : filterObjectModel.objectData) !== null && _a !== void 0 ? _a : []);
525
- clonedSelectedObjectData[id] = value;
526
- setSelectedObjectData(clonedSelectedObjectData);
527
- }
528
- else {
529
- var clonedSelectedData = handleClonedDataAttribute(selectedData, props.model);
530
- clonedSelectedData[id] = value;
531
- setSelectedData(clonedSelectedData);
532
- }
295
+ var _a = handleOnChangeData(), data = _a.data, model = _a.model;
296
+ var clonedData = handleClonedDataAttribute(data, model);
297
+ clonedData[id] = value;
298
+ handleUpdateChangeData(clonedData);
533
299
  };
300
+ //SECTION - Reference
534
301
  var handleSearchReferenceOptions = function (id, searchText) {
535
302
  var clonedSearchText = JSON.parse(JSON.stringify(referenceSearchText));
536
303
  clonedSearchText[id] = searchText;
@@ -550,140 +317,36 @@ function DataTemplate(props) {
550
317
  clonedReferrenceOptions[id] = optionList;
551
318
  setReferenceOptions(clonedReferrenceOptions);
552
319
  };
553
- var handleRemoveSelectedData = function () { return __awaiter(_this, void 0, void 0, function () {
554
- var selectedId, res, err_2;
555
- return __generator(this, function (_a) {
556
- switch (_a.label) {
557
- case 0:
558
- _a.trys.push([0, 5, , 6]);
559
- selectedId = props.id;
560
- if (!selectedId) return [3 /*break*/, 4];
561
- setLoading(true);
562
- setModalVisible(true);
563
- return [4 /*yield*/, handleRemoveImage()];
564
- case 1:
565
- _a.sent();
566
- return [4 /*yield*/, handleRemoveObjectImage()];
567
- case 2:
568
- _a.sent();
569
- return [4 /*yield*/, writeServerQuery.call("delete", { id: selectedId })];
570
- case 3:
571
- res = _a.sent();
572
- setModalVisible(false);
573
- setLoading(false);
574
- if (res) {
575
- handleNavigate();
576
- }
577
- _a.label = 4;
578
- case 4: return [3 /*break*/, 6];
579
- case 5:
580
- err_2 = _a.sent();
581
- setModalVisible(false);
582
- setLoading(false);
583
- return [3 /*break*/, 6];
584
- case 6: return [2 /*return*/];
585
- }
586
- });
587
- }); };
588
- var handleRemoveImage = function () { return __awaiter(_this, void 0, void 0, function () {
589
- var imageAttribute;
590
- var _this = this;
591
- return __generator(this, function (_a) {
592
- switch (_a.label) {
593
- case 0:
594
- imageAttribute = props.model.filter(function (eachAttribute) {
595
- return eachAttribute.type === "image";
596
- });
597
- return [4 /*yield*/, Promise.all(imageAttribute.map(function (eachImage) { return __awaiter(_this, void 0, void 0, function () {
598
- var _a, _b;
599
- return __generator(this, function (_c) {
600
- switch (_c.label) {
601
- case 0: return [4 /*yield*/, ((_a = props.lib) === null || _a === void 0 ? void 0 : _a.axios.post((_b = eachImage.imageEndpoint + "/delete") !== null && _b !== void 0 ? _b : "", {
602
- data: {
603
- assetParentId: props.id,
604
- assetCollectionName: eachImage.imageCollectionName,
605
- assetFileName: eachImage.imageFileName,
606
- },
607
- }))];
608
- case 1:
609
- _c.sent();
610
- return [2 /*return*/];
611
- }
612
- });
613
- }); }))];
614
- case 1:
615
- _a.sent();
616
- return [2 /*return*/];
617
- }
618
- });
619
- }); };
620
- var handleRemoveObjectImage = function () { return __awaiter(_this, void 0, void 0, function () {
621
- var uploadObjectAttribute, objectAttribute, _loop_3, _i, _a, _b, eachKey, eachValue;
622
- var _this = this;
320
+ //SECTION - Assets
321
+ var handleUploadAxios = function (eachImageEndpoint, assetParentId, assetCollectionName, assetFileName, file, id, isObject) { return __awaiter(_this, void 0, void 0, function () {
322
+ var collectionName, responseData;
323
+ var _a, _b;
623
324
  return __generator(this, function (_c) {
624
325
  switch (_c.label) {
625
326
  case 0:
626
- uploadObjectAttribute = {};
627
- objectAttribute = props.model.filter(function (eachAttribute) {
628
- return eachAttribute.type === "object";
629
- });
630
- if (!(objectAttribute.length > 0)) return [3 /*break*/, 4];
631
- objectAttribute.map(function (eachObject) {
632
- var _a;
633
- var filterImageObjectData = (_a = eachObject.objectData) === null || _a === void 0 ? void 0 : _a.filter(function (eachAttribute) {
634
- return eachAttribute.type === "image";
635
- });
636
- uploadObjectAttribute[eachObject.id] = filterImageObjectData;
637
- return null;
638
- });
639
- _loop_3 = function (eachKey, eachValue) {
640
- return __generator(this, function (_d) {
641
- switch (_d.label) {
642
- case 0:
643
- if (!Array.isArray(eachValue)) return [3 /*break*/, 2];
644
- return [4 /*yield*/, Promise.all(eachValue.map(function (eachImage) { return __awaiter(_this, void 0, void 0, function () {
645
- var _a, _b;
646
- return __generator(this, function (_c) {
647
- switch (_c.label) {
648
- case 0: return [4 /*yield*/, ((_a = props.lib) === null || _a === void 0 ? void 0 : _a.axios.post((_b = eachImage.imageEndpoint + "/delete") !== null && _b !== void 0 ? _b : "", {
649
- data: {
650
- assetParentId: eachKey,
651
- assetCollectionName: eachImage.imageCollectionName + "/" + props.id,
652
- assetFileName: eachImage.imageFileName,
653
- },
654
- }))];
655
- case 1:
656
- _c.sent();
657
- return [2 /*return*/, null];
658
- }
659
- });
660
- }); }))];
661
- case 1:
662
- _d.sent();
663
- _d.label = 2;
664
- case 2: return [2 /*return*/];
665
- }
666
- });
667
- };
668
- _i = 0, _a = Object.entries(uploadObjectAttribute);
669
- _c.label = 1;
327
+ collectionName = isObject
328
+ ? assetCollectionName + "/" + id
329
+ : assetCollectionName;
330
+ return [4 /*yield*/, ((_a = props.lib) === null || _a === void 0 ? void 0 : _a.axios.post((_b = eachImageEndpoint + "/upload") !== null && _b !== void 0 ? _b : "", {
331
+ file: file,
332
+ data: {
333
+ assetParentId: assetParentId,
334
+ assetCollectionName: collectionName,
335
+ assetFileName: assetFileName,
336
+ },
337
+ }, {
338
+ headers: {
339
+ "Content-Type": "multipart/form-data",
340
+ },
341
+ }))];
670
342
  case 1:
671
- if (!(_i < _a.length)) return [3 /*break*/, 4];
672
- _b = _a[_i], eachKey = _b[0], eachValue = _b[1];
673
- return [5 /*yield**/, _loop_3(eachKey, eachValue)];
674
- case 2:
675
- _c.sent();
676
- _c.label = 3;
677
- case 3:
678
- _i++;
679
- return [3 /*break*/, 1];
680
- case 4: return [2 /*return*/];
343
+ responseData = _c.sent();
344
+ return [2 /*return*/, responseData];
681
345
  }
682
346
  });
683
347
  }); };
684
- // TODO - Object Support Image With Path - spaceId / dataId / structureId / file.jpg;
685
348
  var handleUploadObjectImage = function (id) { return __awaiter(_this, void 0, void 0, function () {
686
- var clonedSelectedData, uploadObjectAttribute, objectAttribute, _loop_4, _i, _a, _b, eachKey, eachValue;
349
+ var clonedSelectedData, uploadObjectAttribute, objectAttribute, _loop_1, _i, _a, _b, eachKey, eachValue;
687
350
  var _this = this;
688
351
  return __generator(this, function (_c) {
689
352
  switch (_c.label) {
@@ -702,7 +365,7 @@ function DataTemplate(props) {
702
365
  uploadObjectAttribute[eachObject.id] = filterImageObjectData;
703
366
  return null;
704
367
  });
705
- _loop_4 = function (eachKey, eachValue) {
368
+ _loop_1 = function (eachKey, eachValue) {
706
369
  return __generator(this, function (_d) {
707
370
  switch (_d.label) {
708
371
  case 0:
@@ -715,18 +378,7 @@ function DataTemplate(props) {
715
378
  case 0:
716
379
  if (!(typeof selectedData[eachKey][eachImage.id] === "string")) return [3 /*break*/, 1];
717
380
  return [2 /*return*/];
718
- case 1: return [4 /*yield*/, ((_a = props.lib) === null || _a === void 0 ? void 0 : _a.axios.post((_b = eachImage.imageEndpoint + "/upload") !== null && _b !== void 0 ? _b : "", {
719
- file: selectedData[eachKey][eachImage.id],
720
- data: {
721
- assetParentId: eachKey,
722
- assetCollectionName: eachImage.imageCollectionName + "/" + id,
723
- assetFileName: eachImage.imageFileName,
724
- },
725
- }, {
726
- headers: {
727
- "Content-Type": "multipart/form-data",
728
- },
729
- }))];
381
+ case 1: return [4 /*yield*/, handleUploadAxios((_a = eachImage.imageEndpoint) !== null && _a !== void 0 ? _a : "", eachKey, eachImage.imageCollectionName + "/" + id, (_b = eachImage.imageFileName) !== null && _b !== void 0 ? _b : "", selectedData[eachKey][eachImage.id], id, false)];
730
382
  case 2:
731
383
  responseData = _c.sent();
732
384
  if (responseData.data) {
@@ -749,7 +401,7 @@ function DataTemplate(props) {
749
401
  case 1:
750
402
  if (!(_i < _a.length)) return [3 /*break*/, 4];
751
403
  _b = _a[_i], eachKey = _b[0], eachValue = _b[1];
752
- return [5 /*yield**/, _loop_4(eachKey, eachValue)];
404
+ return [5 /*yield**/, _loop_1(eachKey, eachValue)];
753
405
  case 2:
754
406
  _c.sent();
755
407
  _c.label = 3;
@@ -761,7 +413,7 @@ function DataTemplate(props) {
761
413
  });
762
414
  }); };
763
415
  var handleUploadListObjectImage = function (id) { return __awaiter(_this, void 0, void 0, function () {
764
- var clonedSelectedData, uploadObjectAttribute, objectAttribute, _loop_5, _i, _a, _b, eachKey, eachValue;
416
+ var clonedSelectedData, uploadObjectAttribute, objectAttribute, _loop_2, _i, _a, _b, eachKey, eachValue;
765
417
  var _this = this;
766
418
  return __generator(this, function (_c) {
767
419
  switch (_c.label) {
@@ -780,7 +432,7 @@ function DataTemplate(props) {
780
432
  uploadObjectAttribute[eachObject.id] = filterImageObjectData;
781
433
  return null;
782
434
  });
783
- _loop_5 = function (eachKey, eachValue) {
435
+ _loop_2 = function (eachKey, eachValue) {
784
436
  return __generator(this, function (_d) {
785
437
  switch (_d.label) {
786
438
  case 0:
@@ -792,7 +444,7 @@ function DataTemplate(props) {
792
444
  return __generator(this, function (_a) {
793
445
  switch (_a.label) {
794
446
  case 0:
795
- // INFO : FOR INGNORE UPLOAD FOR NOT UPDATING PURPOSE
447
+ //INFO : Only upload if this is a File Blob
796
448
  return [4 /*yield*/, Promise.all(clonedSelectedData[eachKey].map(function (eachData, index) { return __awaiter(_this, void 0, void 0, function () {
797
449
  var objectId, responseData;
798
450
  var _a, _b, _c;
@@ -803,22 +455,11 @@ function DataTemplate(props) {
803
455
  return [2 /*return*/];
804
456
  case 1:
805
457
  objectId = (_a = eachData["id"]) !== null && _a !== void 0 ? _a : (0, uuid_1.v4)();
806
- return [4 /*yield*/, ((_b = props.lib) === null || _b === void 0 ? void 0 : _b.axios.post((_c = eachImage.imageEndpoint + "/upload") !== null && _c !== void 0 ? _c : "", {
807
- file: eachData[eachImage.id],
808
- data: {
809
- assetParentId: eachKey,
810
- assetCollectionName: eachImage.imageCollectionName +
811
- "/" +
812
- id +
813
- "/" +
814
- objectId,
815
- assetFileName: eachImage.imageFileName,
816
- },
817
- }, {
818
- headers: {
819
- "Content-Type": "multipart/form-data",
820
- },
821
- }))];
458
+ return [4 /*yield*/, handleUploadAxios((_b = eachImage.imageEndpoint) !== null && _b !== void 0 ? _b : "", eachKey, eachImage.imageCollectionName +
459
+ "/" +
460
+ id +
461
+ "/" +
462
+ objectId, (_c = eachImage.imageFileName) !== null && _c !== void 0 ? _c : "", eachData[eachImage.id], id, true)];
822
463
  case 2:
823
464
  responseData = _d.sent();
824
465
  if (responseData.data) {
@@ -831,7 +472,7 @@ function DataTemplate(props) {
831
472
  });
832
473
  }); }))];
833
474
  case 1:
834
- // INFO : FOR INGNORE UPLOAD FOR NOT UPDATING PURPOSE
475
+ //INFO : Only upload if this is a File Blob
835
476
  _a.sent();
836
477
  return [2 /*return*/, null];
837
478
  }
@@ -849,7 +490,7 @@ function DataTemplate(props) {
849
490
  case 1:
850
491
  if (!(_i < _a.length)) return [3 /*break*/, 4];
851
492
  _b = _a[_i], eachKey = _b[0], eachValue = _b[1];
852
- return [5 /*yield**/, _loop_5(eachKey, eachValue)];
493
+ return [5 /*yield**/, _loop_2(eachKey, eachValue)];
853
494
  case 2:
854
495
  _c.sent();
855
496
  _c.label = 3;
@@ -873,26 +514,15 @@ function DataTemplate(props) {
873
514
  });
874
515
  return [4 /*yield*/, Promise.all(imageAttribute.map(function (eachImage) { return __awaiter(_this, void 0, void 0, function () {
875
516
  var responseData;
876
- var _a, _b;
877
- return __generator(this, function (_c) {
878
- switch (_c.label) {
517
+ var _a, _b, _c;
518
+ return __generator(this, function (_d) {
519
+ switch (_d.label) {
879
520
  case 0:
880
521
  if (!(typeof selectedData[eachImage.id] === "string")) return [3 /*break*/, 1];
881
522
  return [2 /*return*/];
882
- case 1: return [4 /*yield*/, ((_a = props.lib) === null || _a === void 0 ? void 0 : _a.axios.post((_b = eachImage.imageEndpoint + "/upload") !== null && _b !== void 0 ? _b : "", {
883
- file: selectedData[eachImage.id],
884
- data: {
885
- assetParentId: id,
886
- assetCollectionName: eachImage.imageCollectionName,
887
- assetFileName: eachImage.imageFileName,
888
- },
889
- }, {
890
- headers: {
891
- "Content-Type": "multipart/form-data",
892
- },
893
- }))];
523
+ case 1: return [4 /*yield*/, handleUploadAxios((_a = eachImage.imageEndpoint) !== null && _a !== void 0 ? _a : "", id, (_b = eachImage.imageCollectionName) !== null && _b !== void 0 ? _b : "", (_c = eachImage.imageFileName) !== null && _c !== void 0 ? _c : "", selectedData[eachImage.id], id, true)];
894
524
  case 2:
895
- responseData = _c.sent();
525
+ responseData = _d.sent();
896
526
  if (responseData.data) {
897
527
  clonedSelectedData[eachImage.id] = responseData.data.data;
898
528
  }
@@ -906,6 +536,113 @@ function DataTemplate(props) {
906
536
  }
907
537
  });
908
538
  }); };
539
+ var handleRemoveImageAxios = function (eachImage) { return __awaiter(_this, void 0, void 0, function () {
540
+ var _a, _b;
541
+ return __generator(this, function (_c) {
542
+ switch (_c.label) {
543
+ case 0: return [4 /*yield*/, ((_a = props.lib) === null || _a === void 0 ? void 0 : _a.axios.post((_b = eachImage.imageEndpoint + "/delete") !== null && _b !== void 0 ? _b : "", {
544
+ data: {
545
+ assetParentId: props.id,
546
+ assetCollectionName: eachImage.imageCollectionName,
547
+ assetFileName: eachImage.imageFileName,
548
+ },
549
+ }))];
550
+ case 1:
551
+ _c.sent();
552
+ return [2 /*return*/];
553
+ }
554
+ });
555
+ }); };
556
+ var handleRemoveImage = function () { return __awaiter(_this, void 0, void 0, function () {
557
+ var imageAttribute;
558
+ var _this = this;
559
+ return __generator(this, function (_a) {
560
+ switch (_a.label) {
561
+ case 0:
562
+ imageAttribute = props.model.filter(function (eachAttribute) {
563
+ return eachAttribute.type === "image";
564
+ });
565
+ return [4 /*yield*/, Promise.all(imageAttribute.map(function (eachImage) { return __awaiter(_this, void 0, void 0, function () {
566
+ return __generator(this, function (_a) {
567
+ switch (_a.label) {
568
+ case 0: return [4 /*yield*/, handleRemoveImageAxios(eachImage)];
569
+ case 1:
570
+ _a.sent();
571
+ return [2 /*return*/];
572
+ }
573
+ });
574
+ }); }))];
575
+ case 1:
576
+ _a.sent();
577
+ return [2 /*return*/];
578
+ }
579
+ });
580
+ }); };
581
+ var handleRemoveObjectImage = function () { return __awaiter(_this, void 0, void 0, function () {
582
+ var uploadObjectAttribute, objectAttribute, _loop_3, _i, _a, _b, eachKey, eachValue;
583
+ var _this = this;
584
+ return __generator(this, function (_c) {
585
+ switch (_c.label) {
586
+ case 0:
587
+ uploadObjectAttribute = {};
588
+ objectAttribute = props.model.filter(function (eachAttribute) {
589
+ return eachAttribute.type === "object";
590
+ });
591
+ if (!(objectAttribute.length > 0)) return [3 /*break*/, 4];
592
+ objectAttribute.map(function (eachObject) {
593
+ var _a;
594
+ var filterImageObjectData = (_a = eachObject.objectData) === null || _a === void 0 ? void 0 : _a.filter(function (eachAttribute) {
595
+ return eachAttribute.type === "image";
596
+ });
597
+ uploadObjectAttribute[eachObject.id] = filterImageObjectData;
598
+ return null;
599
+ });
600
+ _loop_3 = function (eachKey, eachValue) {
601
+ return __generator(this, function (_d) {
602
+ switch (_d.label) {
603
+ case 0:
604
+ if (!Array.isArray(eachValue)) return [3 /*break*/, 2];
605
+ return [4 /*yield*/, Promise.all(eachValue.map(function (eachImage) { return __awaiter(_this, void 0, void 0, function () {
606
+ var _a, _b;
607
+ return __generator(this, function (_c) {
608
+ switch (_c.label) {
609
+ case 0: return [4 /*yield*/, ((_a = props.lib) === null || _a === void 0 ? void 0 : _a.axios.post((_b = eachImage.imageEndpoint + "/delete") !== null && _b !== void 0 ? _b : "", {
610
+ data: {
611
+ assetParentId: eachKey,
612
+ assetCollectionName: eachImage.imageCollectionName + "/" + props.id,
613
+ assetFileName: eachImage.imageFileName,
614
+ },
615
+ }))];
616
+ case 1:
617
+ _c.sent();
618
+ return [2 /*return*/, null];
619
+ }
620
+ });
621
+ }); }))];
622
+ case 1:
623
+ _d.sent();
624
+ _d.label = 2;
625
+ case 2: return [2 /*return*/];
626
+ }
627
+ });
628
+ };
629
+ _i = 0, _a = Object.entries(uploadObjectAttribute);
630
+ _c.label = 1;
631
+ case 1:
632
+ if (!(_i < _a.length)) return [3 /*break*/, 4];
633
+ _b = _a[_i], eachKey = _b[0], eachValue = _b[1];
634
+ return [5 /*yield**/, _loop_3(eachKey, eachValue)];
635
+ case 2:
636
+ _c.sent();
637
+ _c.label = 3;
638
+ case 3:
639
+ _i++;
640
+ return [3 /*break*/, 1];
641
+ case 4: return [2 /*return*/];
642
+ }
643
+ });
644
+ }); };
645
+ //SECTION - Object
909
646
  // TODO - Remove Root Folder of the Object List Image
910
647
  var handleRemoveObjectListData = function () {
911
648
  var clonedSelectedData = handleClonedDataAttribute(selectedData, props.model);
@@ -976,8 +713,44 @@ function DataTemplate(props) {
976
713
  setModalVisible(true);
977
714
  }
978
715
  };
716
+ //SECTION - CRUD
717
+ var handleRemoveSelectedData = function () { return __awaiter(_this, void 0, void 0, function () {
718
+ var selectedId, res, err_1;
719
+ return __generator(this, function (_a) {
720
+ switch (_a.label) {
721
+ case 0:
722
+ _a.trys.push([0, 5, , 6]);
723
+ selectedId = props.id;
724
+ if (!selectedId) return [3 /*break*/, 4];
725
+ setLoading(true);
726
+ setModalVisible(true);
727
+ return [4 /*yield*/, handleRemoveImage()];
728
+ case 1:
729
+ _a.sent();
730
+ return [4 /*yield*/, handleRemoveObjectImage()];
731
+ case 2:
732
+ _a.sent();
733
+ return [4 /*yield*/, writeServerQuery.call("delete", { id: selectedId })];
734
+ case 3:
735
+ res = _a.sent();
736
+ setModalVisible(false);
737
+ setLoading(false);
738
+ if (res) {
739
+ handleNavigate();
740
+ }
741
+ _a.label = 4;
742
+ case 4: return [3 /*break*/, 6];
743
+ case 5:
744
+ err_1 = _a.sent();
745
+ setModalVisible(false);
746
+ setLoading(false);
747
+ return [3 /*break*/, 6];
748
+ case 6: return [2 /*return*/];
749
+ }
750
+ });
751
+ }); };
979
752
  var handleSubmit = function () { return __awaiter(_this, void 0, void 0, function () {
980
- var selectedId, id, createSelectedData, res, err_3;
753
+ var selectedId, id, createSelectedData, res, err_2;
981
754
  var _a;
982
755
  return __generator(this, function (_b) {
983
756
  switch (_b.label) {
@@ -1021,7 +794,7 @@ function DataTemplate(props) {
1021
794
  }
1022
795
  return [3 /*break*/, 7];
1023
796
  case 6:
1024
- err_3 = _b.sent();
797
+ err_2 = _b.sent();
1025
798
  setModalVisible(false);
1026
799
  setLoading(false);
1027
800
  return [3 /*break*/, 7];
@@ -1029,11 +802,33 @@ function DataTemplate(props) {
1029
802
  }
1030
803
  });
1031
804
  }); };
805
+ //SECTION - Utils
806
+ var handlePopUpModal = function (modalVisible) {
807
+ if (!modalVisible) {
808
+ setSelectedObjectStructureId("");
809
+ setSelectedObjectData({});
810
+ }
811
+ setModalVisible(modalVisible);
812
+ };
813
+ var handleNavigate = function (link) {
814
+ var _a, _b, _c;
815
+ var href = link !== null && link !== void 0 ? link : "".concat(props.localURLEndpoint, "?type=list&collection=").concat(props.collectionId);
816
+ if ((_a = props.lib) === null || _a === void 0 ? void 0 : _a.navigateNext) {
817
+ props.lib.navigateNext.push(href);
818
+ }
819
+ else if ((_b = props.lib) === null || _b === void 0 ? void 0 : _b.navigate) {
820
+ (_c = props.lib) === null || _c === void 0 ? void 0 : _c.navigate(href);
821
+ }
822
+ else if (window) {
823
+ window.location.replace(href);
824
+ }
825
+ };
1032
826
  var renderTableHeader = function () {
1033
827
  var tableHeader = [];
1034
828
  props.model.map(function (eachAttribute) {
1035
829
  if (eachAttribute.id === "baseUpdatedAt" ||
1036
- eachAttribute.type === "listObject") {
830
+ eachAttribute.type === "listObject" ||
831
+ eachAttribute.hide) {
1037
832
  return null;
1038
833
  }
1039
834
  tableHeader.push({
@@ -1075,18 +870,23 @@ function DataTemplate(props) {
1075
870
  };
1076
871
  var renderDataTemplateForm = function (data, model, formInputRef, isObject, isObjectList) {
1077
872
  var inputList = [];
1078
- // INFO : filteredModel is to secure the formInputRef[index] will not have any issue
873
+ //INFO : filteredModel is to secure the formInputRef[index] will not have any issue
1079
874
  var filteredModel = model.filter(function (eachAttribute) {
1080
- // INFO - Default Model Contain Id While Object Type Don't have
875
+ //INFO - Default Model Contain Id While Object Type Don't have
1081
876
  return eachAttribute.id !== "_id" && eachAttribute.id !== "id";
1082
877
  });
1083
878
  filteredModel.map(function (eachAttribute, index) {
1084
- // INFO - Default Model Contain Id While Object Type Don't have
879
+ //INFO - Default Model Contain Id While Object Type Don't have
1085
880
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
1086
881
  var clonedSelectedData = handleClonedDataAttribute(data, model);
1087
882
  var clonedReferenceOptions = JSON.parse(JSON.stringify(referenceOptions));
1088
883
  var clonedReferenceSearchText = JSON.parse(JSON.stringify(referenceSearchText));
1089
884
  var label = eachAttribute.name;
885
+ var disabled = props.type === "read"
886
+ ? true
887
+ : props.type === "update" && props.id === "new"
888
+ ? false
889
+ : eachAttribute.disabled;
1090
890
  switch (eachAttribute.type) {
1091
891
  case "address":
1092
892
  inputList.push(react_1.default.createElement(address_1.Address, { id: eachAttribute.id, label: label, value: (_a = clonedSelectedData[eachAttribute.id]) !== null && _a !== void 0 ? _a : {
@@ -1095,7 +895,7 @@ function DataTemplate(props) {
1095
895
  name: "",
1096
896
  }, onChange: function (address) {
1097
897
  handleOnChangeAddress(eachAttribute.id, address);
1098
- }, ref: formInputRef[index], disabled: props.type === "read" }));
898
+ }, ref: eachAttribute.optional ? null : formInputRef[index], disabled: disabled }));
1099
899
  break;
1100
900
  case "object":
1101
901
  inputList.push(react_1.default.createElement(react_1.default.Fragment, null,
@@ -1110,17 +910,17 @@ function DataTemplate(props) {
1110
910
  break;
1111
911
  case "list":
1112
912
  case "multipleList":
1113
- inputList.push(react_1.default.createElement(select_1.Select, { ref: formInputRef[index], id: eachAttribute.id, value: (_b = clonedSelectedData[eachAttribute.id]) !== null && _b !== void 0 ? _b : (eachAttribute.type === "list" ? "" : []), label: label, options: (_d = (_c = eachAttribute.listSelection) === null || _c === void 0 ? void 0 : _c.map(function (eachAttribute) {
913
+ inputList.push(react_1.default.createElement(select_1.Select, { ref: eachAttribute.optional ? null : formInputRef[index], id: eachAttribute.id, value: (_b = clonedSelectedData[eachAttribute.id]) !== null && _b !== void 0 ? _b : (eachAttribute.type === "list" ? "" : []), label: label, options: (_d = (_c = eachAttribute.listSelection) === null || _c === void 0 ? void 0 : _c.map(function (eachAttribute) {
1114
914
  return {
1115
915
  key: eachAttribute,
1116
916
  label: eachAttribute,
1117
917
  };
1118
918
  })) !== null && _d !== void 0 ? _d : [], onChange: function (value) {
1119
919
  handleOnChangeSelect(eachAttribute.id, value);
1120
- }, disabled: props.type === "read" }));
920
+ }, disabled: disabled }));
1121
921
  break;
1122
922
  case "boolean":
1123
- inputList.push(react_1.default.createElement(select_1.Select, { ref: formInputRef[index], id: eachAttribute.id, value: (_e = clonedSelectedData[eachAttribute.id]) !== null && _e !== void 0 ? _e : "", label: label, options: [
923
+ inputList.push(react_1.default.createElement(select_1.Select, { ref: eachAttribute.optional ? null : formInputRef[index], id: eachAttribute.id, value: (_e = clonedSelectedData[eachAttribute.id]) !== null && _e !== void 0 ? _e : "", label: label, options: [
1124
924
  {
1125
925
  key: "true",
1126
926
  label: "True",
@@ -1131,7 +931,7 @@ function DataTemplate(props) {
1131
931
  },
1132
932
  ], onChange: function (value) {
1133
933
  handleOnChangeSelect(eachAttribute.id, value);
1134
- }, disabled: props.type === "read" }));
934
+ }, disabled: disabled }));
1135
935
  break;
1136
936
  case "image":
1137
937
  var hasImageToken = typeof clonedSelectedData[eachAttribute.id] === "string";
@@ -1147,10 +947,10 @@ function DataTemplate(props) {
1147
947
  : (0, utils_2.renderImageUrlFromPath)(props.imageEndpoint, eachAttribute.imageCollectionName + "%2F" + props.id, selectedObjectStructureId, eachAttribute.imageFileName, clonedSelectedData[eachAttribute.id])
1148
948
  : (0, utils_2.renderImageUrlFromPath)(props.imageEndpoint, eachAttribute.imageCollectionName, props.id, eachAttribute.imageFileName, clonedSelectedData[eachAttribute.id]);
1149
949
  }
1150
- inputList.push(react_1.default.createElement(uploadInput_1.UploadInput, { ref: formInputRef[index], id: eachAttribute.id, label: "Upload Image", file: (_f = url !== null && url !== void 0 ? url : clonedSelectedData[eachAttribute.id]) !== null && _f !== void 0 ? _f : "", accept: ".png,.jpg,.jpeg", onChange: handleOnChangeFile, disabled: props.type === "read" }));
950
+ inputList.push(react_1.default.createElement(uploadInput_1.UploadInput, { ref: eachAttribute.optional ? null : formInputRef[index], id: eachAttribute.id, label: "Upload Image", file: (_f = url !== null && url !== void 0 ? url : clonedSelectedData[eachAttribute.id]) !== null && _f !== void 0 ? _f : "", accept: ".png,.jpg,.jpeg", onChange: handleOnChangeFile, disabled: disabled }));
1151
951
  break;
1152
952
  case "number":
1153
- inputList.push(react_1.default.createElement(textInput_1.TextInput, { id: eachAttribute.id, ref: formInputRef[index], type: "number", value: (_g = clonedSelectedData[eachAttribute.id]) !== null && _g !== void 0 ? _g : "", placeholder: label, label: label, onChange: handleOnChangeText, disabled: props.type === "read" }));
953
+ inputList.push(react_1.default.createElement(textInput_1.TextInput, { id: eachAttribute.id, ref: eachAttribute.optional ? null : formInputRef[index], type: "number", value: (_g = clonedSelectedData[eachAttribute.id]) !== null && _g !== void 0 ? _g : "", placeholder: label, label: label, onChange: handleOnChangeText, disabled: disabled }));
1154
954
  break;
1155
955
  case "reference":
1156
956
  case "listReference":
@@ -1174,18 +974,20 @@ function DataTemplate(props) {
1174
974
  }, onChangeData: function (data) {
1175
975
  var _a;
1176
976
  handleGetReferenceOptions(data, eachAttribute.id, (_a = eachAttribute.referenceLabel) !== null && _a !== void 0 ? _a : "");
977
+ }, onError: function (error) {
978
+ console.debug(error);
1177
979
  } }),
1178
- react_1.default.createElement(select_1.Select, { ref: formInputRef[index], id: eachAttribute.id, value: (_j = clonedSelectedData[eachAttribute.id]) !== null && _j !== void 0 ? _j : (eachAttribute.type === "reference" ? "" : []), label: label, options: (_k = clonedReferenceOptions[eachAttribute.id]) !== null && _k !== void 0 ? _k : [], onChange: function (value) {
980
+ react_1.default.createElement(select_1.Select, { ref: eachAttribute.optional ? null : formInputRef[index], id: eachAttribute.id, value: (_j = clonedSelectedData[eachAttribute.id]) !== null && _j !== void 0 ? _j : (eachAttribute.type === "reference" ? "" : []), label: label, options: (_k = clonedReferenceOptions[eachAttribute.id]) !== null && _k !== void 0 ? _k : [], onChange: function (value) {
1179
981
  handleOnChangeSelect(eachAttribute.id, value);
1180
982
  }, onSearch: function (value) {
1181
983
  handleSearchReferenceOptions(eachAttribute.id, value);
1182
- }, disabled: props.type === "read" })));
984
+ }, disabled: disabled })));
1183
985
  break;
1184
986
  case "string":
1185
- inputList.push(react_1.default.createElement(textInput_1.TextInput, { id: eachAttribute.id, ref: formInputRef[index], type: "text", value: (_l = clonedSelectedData[eachAttribute.id]) !== null && _l !== void 0 ? _l : "", placeholder: label, label: label, onChange: handleOnChangeText, disabled: props.type === "read" }));
987
+ inputList.push(react_1.default.createElement(textInput_1.TextInput, { id: eachAttribute.id, ref: eachAttribute.optional ? null : formInputRef[index], type: "text", value: (_l = clonedSelectedData[eachAttribute.id]) !== null && _l !== void 0 ? _l : "", placeholder: label, label: label, onChange: handleOnChangeText, disabled: disabled }));
1186
988
  break;
1187
989
  case "date":
1188
- inputList.push(react_1.default.createElement(datePicker_1.InputDatePicker, { title: label, id: eachAttribute.id, ref: formInputRef[index], onChange: handleOnChangeDate, value: clonedSelectedData[eachAttribute.id], disabled: props.type === "read" }));
990
+ inputList.push(react_1.default.createElement(datePicker_1.InputDatePicker, { title: label, id: eachAttribute.id, ref: eachAttribute.optional ? null : formInputRef[index], onChange: handleOnChangeDate, value: clonedSelectedData[eachAttribute.id], disabled: disabled }));
1189
991
  break;
1190
992
  }
1191
993
  return null;
@@ -1206,7 +1008,7 @@ function DataTemplate(props) {
1206
1008
  });
1207
1009
  if (viewType === "general") {
1208
1010
  if (dataType === "list") {
1209
- return (react_1.default.createElement(table_1.Table, { paginationType: props.server === "mongoServer" ? "page" : "cursor", data: data, size: size, limit: limit, cursor: cursor, loading: false, header: renderTableHeader(), pageIndex: pageIndex, onClickRow: function (id) {
1011
+ return (react_1.default.createElement(table_1.Table, { paginationType: props.server === "mongoServer" ? "page" : "cursor", data: data, size: size, limit: limit, cursor: cursor, loading: tableLoading, header: renderTableHeader(), pageIndex: pageIndex, onClickRow: function (id) {
1210
1012
  handleNavigate("".concat(props.localURLEndpoint, "?data=").concat(id, "&type=read&collection=").concat(props.collectionId, "&view=general"));
1211
1013
  }, linkType: props.linkType, custom: props.custom, newTabUrl: "".concat(props.localURLEndpoint, "?data="), addNewTabUrl: "&type=read&collection=".concat(props.collectionId, "&view=general"), handleUpdatePageIndex: handlePagination, className: "mt-5" }));
1212
1014
  }
@@ -1232,7 +1034,7 @@ function DataTemplate(props) {
1232
1034
  var renderDetailListData = function () {
1233
1035
  var _a;
1234
1036
  var detailList = [];
1235
- var _loop_6 = function (eachKey, eachValue) {
1037
+ var _loop_4 = function (eachKey, eachValue) {
1236
1038
  if (eachKey !== "id" &&
1237
1039
  eachKey !== "_id" &&
1238
1040
  eachKey !== "baseUpdatedAt") {
@@ -1247,7 +1049,7 @@ function DataTemplate(props) {
1247
1049
  };
1248
1050
  for (var _i = 0, _b = Object.entries(selectedData); _i < _b.length; _i++) {
1249
1051
  var _c = _b[_i], eachKey = _c[0], eachValue = _c[1];
1250
- _loop_6(eachKey, eachValue);
1052
+ _loop_4(eachKey, eachValue);
1251
1053
  }
1252
1054
  return detailList;
1253
1055
  };
@@ -1266,7 +1068,7 @@ function DataTemplate(props) {
1266
1068
  tag: "",
1267
1069
  };
1268
1070
  var isTitle = true;
1269
- var _loop_7 = function (eachKey, eachValue) {
1071
+ var _loop_5 = function (eachKey, eachValue) {
1270
1072
  if (eachListObject.objectData) {
1271
1073
  var model = eachListObject.objectData.find(function (eachAttribute) {
1272
1074
  return eachAttribute.id === eachKey;
@@ -1291,7 +1093,7 @@ function DataTemplate(props) {
1291
1093
  else if (eachValue instanceof File) {
1292
1094
  url = URL.createObjectURL(eachValue);
1293
1095
  }
1294
- eachNewList[eachKey] = (react_1.default.createElement("img", { src: url, alt: "", className: "w-10 h-10" }));
1096
+ eachNewList[eachKey] = (react_1.default.createElement("img", { src: url, alt: "", className: "w-10 h-10 object-contain" }));
1295
1097
  break;
1296
1098
  case "date":
1297
1099
  eachNewList[eachKey] =
@@ -1316,7 +1118,7 @@ function DataTemplate(props) {
1316
1118
  };
1317
1119
  for (var _i = 0, _a = Object.entries(eachObject); _i < _a.length; _i++) {
1318
1120
  var _b = _a[_i], eachKey = _b[0], eachValue = _b[1];
1319
- _loop_7(eachKey, eachValue);
1121
+ _loop_5(eachKey, eachValue);
1320
1122
  }
1321
1123
  eachNewList["tag"] = "";
1322
1124
  if (list_2[eachListObject.id]) {
@@ -1461,7 +1263,7 @@ function DataTemplate(props) {
1461
1263
  cursor: renderCursor(),
1462
1264
  sort: (_d = props.sort) !== null && _d !== void 0 ? _d : undefined,
1463
1265
  limit: limit,
1464
- }, onChangeData: handleGetListData }),
1266
+ }, onChangeData: handleGetListData, onError: handleGetListError }),
1465
1267
  react_1.default.createElement("div", { className: "flex flex-col py-2 sm:items-center sm:flex-row" },
1466
1268
  react_1.default.createElement("div", { className: "flex flex-col" },
1467
1269
  react_1.default.createElement("p", { className: "text-xl font-medium" }, props.title),