albinasoft-ui-package 1.1.34 → 1.1.35
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.
@@ -55,6 +55,7 @@ export interface CustomFileUploaderProps {
|
|
55
55
|
* Eğer bu prop’un değeri değişirse uploader içini temizle
|
56
56
|
*/
|
57
57
|
clearTrigger?: any;
|
58
|
+
onUploadedListChange?: (uploadedFileNames: string[]) => void;
|
58
59
|
}
|
59
60
|
declare const CustomFileUploader: React.FC<CustomFileUploaderProps>;
|
60
61
|
export default CustomFileUploader;
|
@@ -308,7 +308,12 @@ var CustomFileUploader = function (props) {
|
|
308
308
|
};
|
309
309
|
// Dosya kaldırma işlemi
|
310
310
|
var handleRemoveFile = function (previewId) {
|
311
|
+
var _a;
|
311
312
|
var updatedPreviews = previews.filter(function (item) { return item.id !== previewId; });
|
313
|
+
var uploadedList = updatedPreviews
|
314
|
+
.filter(function (p) { return p.uploaded && p.serverFileName; })
|
315
|
+
.map(function (p) { return p.serverFileName; });
|
316
|
+
(_a = props.onUploadedListChange) === null || _a === void 0 ? void 0 : _a.call(props, uploadedList);
|
312
317
|
setPreviews(updatedPreviews);
|
313
318
|
updatePendingStatus(updatedPreviews);
|
314
319
|
var itemToRemove = previews.find(function (item) { return item.id === previewId; });
|
@@ -359,11 +364,16 @@ var CustomFileUploader = function (props) {
|
|
359
364
|
if (data.responseCode === 200 && data.content && data.content.fileList.length > 0) {
|
360
365
|
uploadedFileName_1 = data.content.fileList[0].fileName;
|
361
366
|
setPreviews(function (prev) {
|
367
|
+
var _a;
|
362
368
|
var updated = prev.map(function (p) {
|
363
369
|
return p.id === item.id
|
364
370
|
? __assign(__assign({}, p), { uploaded: true, isUploading: false, serverFileName: uploadedFileName_1 }) : p;
|
365
371
|
});
|
366
372
|
updatePendingStatus(updated);
|
373
|
+
var uploadedList = updated
|
374
|
+
.filter(function (p) { return p.uploaded && p.serverFileName; })
|
375
|
+
.map(function (p) { return p.serverFileName; });
|
376
|
+
(_a = props.onUploadedListChange) === null || _a === void 0 ? void 0 : _a.call(props, uploadedList);
|
367
377
|
return updated;
|
368
378
|
});
|
369
379
|
}
|
@@ -7,6 +7,7 @@ declare enum ElementType {
|
|
7
7
|
CHECKBOX = "checkbox",
|
8
8
|
RADIO = "radio",
|
9
9
|
SELECT = "select",
|
10
|
+
SIMPLESELECT = "simpleselect",
|
10
11
|
DATETIMEPICKER = "datetimepicker",
|
11
12
|
TEXT = "text",
|
12
13
|
DIVIDER = "divider",
|
@@ -83,6 +84,23 @@ interface SelectElement {
|
|
83
84
|
colClass?: string;
|
84
85
|
onChange: (value: string | string[]) => void;
|
85
86
|
}
|
87
|
+
interface SimpleSelectElement {
|
88
|
+
required: boolean;
|
89
|
+
id?: string;
|
90
|
+
type: ElementType;
|
91
|
+
label: string;
|
92
|
+
value: string[];
|
93
|
+
options: {
|
94
|
+
id: string;
|
95
|
+
label: string;
|
96
|
+
value: string;
|
97
|
+
}[];
|
98
|
+
rowId?: number;
|
99
|
+
colId?: number;
|
100
|
+
innerRowId?: number;
|
101
|
+
colClass?: string;
|
102
|
+
onChange: (value: string | string[]) => void;
|
103
|
+
}
|
86
104
|
interface DateTimePickerElement {
|
87
105
|
id?: string;
|
88
106
|
type: ElementType;
|
@@ -191,7 +209,7 @@ interface FileUploaderElement {
|
|
191
209
|
innerRowId?: number;
|
192
210
|
colClass?: string;
|
193
211
|
}
|
194
|
-
type FormElement = InputElement | TextareaElement | CheckboxElement | RadioButtonElement | SelectElement | DateTimePickerElement | TextElement | DividerElement | RichTextboxElement | TreeViewElement | ButtonElement | AutoCompleteInputElement | PhoneElement | FileUploaderElement;
|
212
|
+
type FormElement = InputElement | TextareaElement | CheckboxElement | RadioButtonElement | SelectElement | SimpleSelectElement | DateTimePickerElement | TextElement | DividerElement | RichTextboxElement | TreeViewElement | ButtonElement | AutoCompleteInputElement | PhoneElement | FileUploaderElement;
|
195
213
|
interface CustomFormProps {
|
196
214
|
elements: FormElement[];
|
197
215
|
innerRowCustomClass?: string;
|
@@ -69,6 +69,15 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
69
69
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
70
70
|
}
|
71
71
|
};
|
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
|
+
};
|
72
81
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
73
82
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
74
83
|
};
|
@@ -82,6 +91,7 @@ var CustomTextarea_1 = __importDefault(require("./CustomTextarea"));
|
|
82
91
|
var CustomCheckbox_1 = __importDefault(require("./CustomCheckbox"));
|
83
92
|
var CustomRadioButton_1 = __importDefault(require("./CustomRadioButton"));
|
84
93
|
var CustomSelect_1 = __importDefault(require("./CustomSelect"));
|
94
|
+
var CustomSimpleSelect_1 = __importDefault(require("./CustomSimpleSelect"));
|
85
95
|
var CustomDateTimePicker_1 = __importDefault(require("./CustomDateTimePicker"));
|
86
96
|
var CustomText_1 = __importDefault(require("./CustomText"));
|
87
97
|
var CustomDivider_1 = __importDefault(require("./CustomDivider"));
|
@@ -97,6 +107,7 @@ var ElementType;
|
|
97
107
|
ElementType["CHECKBOX"] = "checkbox";
|
98
108
|
ElementType["RADIO"] = "radio";
|
99
109
|
ElementType["SELECT"] = "select";
|
110
|
+
ElementType["SIMPLESELECT"] = "simpleselect";
|
100
111
|
ElementType["DATETIMEPICKER"] = "datetimepicker";
|
101
112
|
ElementType["TEXT"] = "text";
|
102
113
|
ElementType["DIVIDER"] = "divider";
|
@@ -119,6 +130,8 @@ var CustomForm = function (_a) {
|
|
119
130
|
var formRef = (0, react_1.useRef)(null);
|
120
131
|
var _f = (0, react_1.useState)(false), isLoading = _f[0], setIsLoading = _f[1];
|
121
132
|
var _g = (0, react_1.useState)(false), submitted = _g[0], setSubmitted = _g[1];
|
133
|
+
var _h = (0, react_1.useState)([]), uploadedFiles = _h[0], setUploadedFiles = _h[1];
|
134
|
+
var _j = (0, react_1.useState)([]), uploadedFileNames = _j[0], setUploadedFileNames = _j[1];
|
122
135
|
var isUploadingAnyFile = Object.values(pendingFileCounts || {}).some(function (count) { return count > 0; });
|
123
136
|
var disableConfirmButton = isLoading || isUploadingAnyFile;
|
124
137
|
var handleConfirm = function (e) { return __awaiter(void 0, void 0, void 0, function () {
|
@@ -185,6 +198,9 @@ var CustomForm = function (_a) {
|
|
185
198
|
formValues_1[element.id] = element.value;
|
186
199
|
}
|
187
200
|
});
|
201
|
+
formValues_1.uploadedFiles = uploadedFiles;
|
202
|
+
formValues_1["__uploadedFileNames"] = uploadedFileNames;
|
203
|
+
formValues_1["fileNames"] = uploadedFileNames;
|
188
204
|
return [4 /*yield*/, onSubmit(formValues_1)];
|
189
205
|
case 2:
|
190
206
|
_a.sent();
|
@@ -226,10 +242,14 @@ var CustomForm = function (_a) {
|
|
226
242
|
var colId = _a[0], innerRows = _a[1];
|
227
243
|
return (react_1.default.createElement("div", { className: "col", key: "col-".concat(rowId, "-").concat(colId) }, Object.entries(innerRows).map(function (_a) {
|
228
244
|
var innerRowId = _a[0], elements = _a[1];
|
229
|
-
return (react_1.default.createElement("div", { className: "row ".concat(innerRowCustomClass), key: "inner-row-".concat(rowId, "-").concat(colId, "-").concat(innerRowId) }, elements.map(function (element) { return (react_1.default.createElement("div", { className: element.colClass || "col-12", key: element.id }, element.type === ElementType.TEXT ? (react_1.default.createElement(CustomText_1.default, __assign({}, element))) : element.type === ElementType.INPUT ? (react_1.default.createElement(CustomInput_1.default, __assign({}, element))) : element.type === ElementType.TEXTAREA ? (react_1.default.createElement(CustomTextarea_1.default, __assign({}, element))) : element.type === ElementType.CHECKBOX ? (react_1.default.createElement(CustomCheckbox_1.default, __assign({}, element))) : element.type === ElementType.RADIO ? (react_1.default.createElement(CustomRadioButton_1.default, __assign({}, element))) : element.type === ElementType.SELECT ? (react_1.default.createElement(CustomSelect_1.default, __assign({}, element, { submitted: submitted }))) : element.type === ElementType.DATETIMEPICKER ? (react_1.default.createElement(CustomDateTimePicker_1.default, __assign({}, element, { submitted: submitted }))) : element.type === ElementType.DIVIDER ? (react_1.default.createElement(CustomDivider_1.default, __assign({}, element))) : element.type === ElementType.RICHTEXTBOX ? (react_1.default.createElement(CustomRichTextbox_1.default, __assign({}, element))) : element.type === ElementType.TREEVIEW ? (react_1.default.createElement(CustomTreeView_1.default, __assign({}, element))) : element.type === ElementType.BUTTON ? (react_1.default.createElement(CustomButton_1.default, __assign({}, element, { isLoading: isLoading }))) : element.type === ElementType.AUTOCOMPLETEINPUT ? (react_1.default.createElement(CustomAutocompleteInput_1.default, __assign({}, element))) : element.type === ElementType.PHONE ? (react_1.default.createElement(CustomPhoneInput_1.default, __assign({}, element))) : element.type === ElementType.FILEUPLOADER ? (
|
245
|
+
return (react_1.default.createElement("div", { className: "row ".concat(innerRowCustomClass), key: "inner-row-".concat(rowId, "-").concat(colId, "-").concat(innerRowId) }, elements.map(function (element) { return (react_1.default.createElement("div", { className: element.colClass || "col-12", key: element.id }, element.type === ElementType.TEXT ? (react_1.default.createElement(CustomText_1.default, __assign({}, element))) : element.type === ElementType.INPUT ? (react_1.default.createElement(CustomInput_1.default, __assign({}, element))) : element.type === ElementType.TEXTAREA ? (react_1.default.createElement(CustomTextarea_1.default, __assign({}, element))) : element.type === ElementType.CHECKBOX ? (react_1.default.createElement(CustomCheckbox_1.default, __assign({}, element))) : element.type === ElementType.RADIO ? (react_1.default.createElement(CustomRadioButton_1.default, __assign({}, element))) : element.type === ElementType.SELECT ? (react_1.default.createElement(CustomSelect_1.default, __assign({}, element, { submitted: submitted }))) : element.type === ElementType.SIMPLESELECT ? (react_1.default.createElement(CustomSimpleSelect_1.default, __assign({}, element, { value: Array.isArray(element.value) ? element.value[0] || "" : "", onChange: function (val) { return element.onChange(val); } }))) : element.type === ElementType.DATETIMEPICKER ? (react_1.default.createElement(CustomDateTimePicker_1.default, __assign({}, element, { submitted: submitted }))) : element.type === ElementType.DIVIDER ? (react_1.default.createElement(CustomDivider_1.default, __assign({}, element))) : element.type === ElementType.RICHTEXTBOX ? (react_1.default.createElement(CustomRichTextbox_1.default, __assign({}, element))) : element.type === ElementType.TREEVIEW ? (react_1.default.createElement(CustomTreeView_1.default, __assign({}, element))) : element.type === ElementType.BUTTON ? (react_1.default.createElement(CustomButton_1.default, __assign({}, element, { isLoading: isLoading }))) : element.type === ElementType.AUTOCOMPLETEINPUT ? (react_1.default.createElement(CustomAutocompleteInput_1.default, __assign({}, element))) : element.type === ElementType.PHONE ? (react_1.default.createElement(CustomPhoneInput_1.default, __assign({}, element))) : element.type === ElementType.FILEUPLOADER ? (
|
230
246
|
// FILEUPLOADER elemanı için CustomFileUploader'ı render ediyoruz
|
231
247
|
react_1.default.createElement(react_1.default.Fragment, null,
|
232
|
-
react_1.default.createElement(CustomFileUploader_1.default, { url: element.url, multi: element.multi, allowedTypes: element.allowedTypes, maxFile: element.maxFile, maxSize: element.maxSize, onUploadComplete:
|
248
|
+
react_1.default.createElement(CustomFileUploader_1.default, { url: element.url, multi: element.multi, allowedTypes: element.allowedTypes, maxFile: element.maxFile, maxSize: element.maxSize, onUploadComplete: function (fileNames) {
|
249
|
+
var _a, _b;
|
250
|
+
setUploadedFileNames(function (prev) { return __spreadArray(__spreadArray([], prev, true), fileNames, true); });
|
251
|
+
(_b = (_a = element).onUploadComplete) === null || _b === void 0 ? void 0 : _b.call(_a, fileNames); // Orijinal fonksiyonu da tetikle
|
252
|
+
}, onRemoveUploaded: element.onRemoveUploaded, onPendingChange: element.onPendingChange, clearTrigger: element.clearTrigger, label: element.label, translations: element.translations, onUploadedListChange: setUploadedFiles }))) : null)); })));
|
233
253
|
})));
|
234
254
|
})));
|
235
255
|
}),
|