albinasoft-ui-package 1.0.85 → 1.0.87

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,7 +1,10 @@
1
1
  import React from "react";
2
2
  export declare enum AllowedTypes {
3
- IMAGE = "image",
3
+ PDF = "pdf",
4
4
  FILE = "file",
5
+ IMAGE = "image",
6
+ VIDEO = "video",
7
+ VISUAL = "visual",
5
8
  ALL = "all"
6
9
  }
7
10
  export interface CustomFileUploaderProps {
@@ -89,8 +89,11 @@ var fa_1 = require("react-icons/fa");
89
89
  // ====================
90
90
  var AllowedTypes;
91
91
  (function (AllowedTypes) {
92
- AllowedTypes["IMAGE"] = "image";
92
+ AllowedTypes["PDF"] = "pdf";
93
93
  AllowedTypes["FILE"] = "file";
94
+ AllowedTypes["IMAGE"] = "image";
95
+ AllowedTypes["VIDEO"] = "video";
96
+ AllowedTypes["VISUAL"] = "visual";
94
97
  AllowedTypes["ALL"] = "all";
95
98
  })(AllowedTypes = exports.AllowedTypes || (exports.AllowedTypes = {}));
96
99
  // ====================
@@ -152,8 +155,10 @@ var fileTypeIcons = {
152
155
  ".txt": react_1.default.createElement(fa_1.FaFilePdf, null),
153
156
  };
154
157
  var defaultFileIcon = react_1.default.createElement(fa_1.FaFile, null);
155
- // İzin verilen resim uzantıları
158
+ // İzin verilen dosya uzantıları
159
+ var allowedFileExtensions = [".pdf", ".doc", ".docx", ".xls", ".xlsx", ".txt"];
156
160
  var allowedImageExtensions = [".jpg", ".jpeg", ".png", ".gif", ".bmp", ".webp"];
161
+ var allowedVideoExtensions = [".mp4", ".avi", ".mov", ".mkv", ".webm", ".flv"];
157
162
  // ====================
158
163
  // Yardımcı Fonksiyonlar
159
164
  // ====================
@@ -164,14 +169,24 @@ var getFileExtension = function (file) {
164
169
  var isImageFile = function (file) {
165
170
  return allowedImageExtensions.includes(getFileExtension(file));
166
171
  };
167
- var isAllowedFileType = function (file, allowedTypes) {
168
- if (allowedTypes === AllowedTypes.ALL)
169
- return true;
170
- if (allowedTypes === AllowedTypes.IMAGE)
171
- return isImageFile(file);
172
- if (allowedTypes === AllowedTypes.FILE)
173
- return !isImageFile(file);
174
- return false;
172
+ var isAllowedFileType = function (file, allowedType) {
173
+ var ext = getFileExtension(file);
174
+ switch (allowedType) {
175
+ case AllowedTypes.ALL:
176
+ return true;
177
+ case AllowedTypes.PDF:
178
+ return ext === ".pdf";
179
+ case AllowedTypes.FILE:
180
+ return allowedFileExtensions.includes(ext);
181
+ case AllowedTypes.IMAGE:
182
+ return allowedImageExtensions.includes(ext);
183
+ case AllowedTypes.VIDEO:
184
+ return allowedVideoExtensions.includes(ext);
185
+ case AllowedTypes.VISUAL:
186
+ return allowedImageExtensions.includes(ext) || allowedVideoExtensions.includes(ext);
187
+ default:
188
+ return false;
189
+ }
175
190
  };
176
191
  // ====================
177
192
  // CustomFileUploader Bileşeni
@@ -210,8 +225,8 @@ var CustomFileUploader = function (_a) {
210
225
  react_toastify_1.toast.error("\"".concat(file.name, "\" dosyas\u0131 se\u00E7ilen dosya t\u00FCr\u00FCne uygun de\u011Fil."));
211
226
  return;
212
227
  }
213
- var isImg = isImageFile(file);
214
- var previewContent = isImg
228
+ var isImg = allowedTypes === AllowedTypes.IMAGE || (allowedTypes === AllowedTypes.VISUAL && isImageFile(file));
229
+ var previewContent = isImg && isImageFile(file)
215
230
  ? URL.createObjectURL(file)
216
231
  : fileTypeIcons[getFileExtension(file)] || defaultFileIcon;
217
232
  newPreviews.push({
@@ -333,9 +348,7 @@ var CustomFileUploader = function (_a) {
333
348
  react_1.default.createElement("label", { style: { fontWeight: "bold" } }, label))),
334
349
  react_1.default.createElement("div", { style: dropAreaStyle, onDrop: handleDrop, onDragOver: handleDragOver, onClick: handleAreaClick }, previews.length === 0 ? (react_1.default.createElement("div", null,
335
350
  "Dosyalar\u0131 buraya s\u00FCr\u00FCkleyip b\u0131rak\u0131n veya t\u0131klayarak dosya se\u00E7in.",
336
- multi
337
- ? " (Maksimum ".concat(maxFile, " dosya se\u00E7ilebilir.)")
338
- : " (Tek dosya seçilebilir.)")) : (react_1.default.createElement("div", { style: previewContainerStyle }, previews.map(function (item) { return (react_1.default.createElement("div", { key: item.id, style: { display: "flex", flexDirection: "column", alignItems: "center" } },
351
+ multi ? " (Maksimum ".concat(maxFile, " dosya se\u00E7ilebilir.)") : " (Tek dosya seçilebilir.)")) : (react_1.default.createElement("div", { style: previewContainerStyle }, previews.map(function (item) { return (react_1.default.createElement("div", { key: item.id, style: { display: "flex", flexDirection: "column", alignItems: "center" } },
339
352
  react_1.default.createElement("div", { style: previewItemStyle },
340
353
  item.isImage ? (react_1.default.createElement("img", { src: item.previewContent, alt: "\u00D6nizleme ".concat(item.id), style: { width: "100%", height: "100%", objectFit: "cover" } })) : (react_1.default.createElement("div", { style: {
341
354
  width: "100%",
@@ -345,8 +358,7 @@ var CustomFileUploader = function (_a) {
345
358
  alignItems: "center",
346
359
  fontSize: "48px",
347
360
  } }, item.previewContent)),
348
- react_1.default.createElement("button", { type: "button" // Form submit'ini tetiklememek için
349
- , style: removeButtonStyle, onClick: function (e) {
361
+ react_1.default.createElement("button", { type: "button", style: removeButtonStyle, onClick: function (e) {
350
362
  e.stopPropagation();
351
363
  handleRemoveFile(item.id);
352
364
  }, title: "Kald\u0131r" }, "\u00D7"),
@@ -88,7 +88,7 @@ var CustomTreeView = function (_a) {
88
88
  }
89
89
  }, [filterTerm, pathsToExpand]);
90
90
  var renderTree = function (nodes) {
91
- return nodes.map(function (node) { return (react_1.default.createElement(TreeItem_1.TreeItem, { key: node.value, itemId: node.value, label: react_1.default.createElement("span", { onClick: function () { return handleLabelClick(node.value); }, style: { cursor: 'pointer' } }, node.label) }, node.children ? renderTree(node.children) : null)); });
91
+ return nodes.map(function (node) { return (react_1.default.createElement(TreeItem_1.TreeItem, { key: node.value, itemId: node.value, label: react_1.default.createElement("span", { onClick: function () { return handleLabelClick(node.value); }, style: { cursor: "pointer" } }, node.label.trim() === "" ? "Kök" : node.label) }, node.children ? renderTree(node.children) : null)); });
92
92
  };
93
93
  var handleSelectionChange = function (event, selectedId) {
94
94
  setSelectedItem(selectedId);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "albinasoft-ui-package",
3
- "version": "1.0.85",
3
+ "version": "1.0.87",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {