krl-alfred 2.23.7 → 2.23.8
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.
- package/dist/components/Uploader/Uploader.d.ts +1 -1
- package/dist/components/Uploader/Uploader.js +4 -3
- package/dist/components/Uploader/props.d.ts +5 -0
- package/dist/components/Uploader/props.js +2 -1
- package/dist/components/Uploader/stories/Uploader.stories.d.ts +5 -2
- package/dist/components/Uploader/stories/Uploader.stories.js +22 -3
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { UploaderProps } from './props';
|
|
3
|
-
declare const Uploader: ({ className, title, description, images, maxCount, columnCount, uploadLabel, coverBadgeText, variant, selectedIndex, showCoverBadge, accept, disabled, imagePadding, onUpload, onRemove, onSelect, }: UploaderProps) => React.JSX.Element;
|
|
3
|
+
declare const Uploader: ({ className, title, description, images, maxCount, columnCount, uploadLabel, coverBadgeText, variant, selectedIndexes, selectedIndex, showCoverBadge, accept, disabled, imagePadding, onUpload, onRemove, onSelect, }: UploaderProps) => React.JSX.Element;
|
|
4
4
|
export default Uploader;
|
|
@@ -21,13 +21,14 @@ var Uploader_styled_1 = require("./Uploader.styled");
|
|
|
21
21
|
var Icon_1 = __importDefault(require("../Icon/Icon"));
|
|
22
22
|
var Badges_1 = __importDefault(require("../Badges/Badges"));
|
|
23
23
|
var Uploader = function (_a) {
|
|
24
|
-
var className = _a.className, title = _a.title, description = _a.description, _b = _a.images, images = _b === void 0 ? props_1.UploaderDefault.images : _b, _c = _a.maxCount, maxCount = _c === void 0 ? props_1.UploaderDefault.maxCount : _c, _d = _a.columnCount, columnCount = _d === void 0 ? props_1.UploaderDefault.columnCount : _d, _e = _a.uploadLabel, uploadLabel = _e === void 0 ? props_1.UploaderDefault.uploadLabel : _e, _f = _a.coverBadgeText, coverBadgeText = _f === void 0 ? props_1.UploaderDefault.coverBadgeText : _f, _g = _a.variant, variant = _g === void 0 ? props_1.UploaderDefault.variant : _g,
|
|
24
|
+
var className = _a.className, title = _a.title, description = _a.description, _b = _a.images, images = _b === void 0 ? props_1.UploaderDefault.images : _b, _c = _a.maxCount, maxCount = _c === void 0 ? props_1.UploaderDefault.maxCount : _c, _d = _a.columnCount, columnCount = _d === void 0 ? props_1.UploaderDefault.columnCount : _d, _e = _a.uploadLabel, uploadLabel = _e === void 0 ? props_1.UploaderDefault.uploadLabel : _e, _f = _a.coverBadgeText, coverBadgeText = _f === void 0 ? props_1.UploaderDefault.coverBadgeText : _f, _g = _a.variant, variant = _g === void 0 ? props_1.UploaderDefault.variant : _g, selectedIndexes = _a.selectedIndexes, selectedIndex = _a.selectedIndex, _h = _a.showCoverBadge, showCoverBadge = _h === void 0 ? props_1.UploaderDefault.showCoverBadge : _h, _j = _a.accept, accept = _j === void 0 ? props_1.UploaderDefault.accept : _j, _k = _a.disabled, disabled = _k === void 0 ? props_1.UploaderDefault.disabled : _k, _l = _a.imagePadding, imagePadding = _l === void 0 ? props_1.UploaderDefault.imagePadding : _l, onUpload = _a.onUpload, onRemove = _a.onRemove, onSelect = _a.onSelect;
|
|
25
25
|
var fileInputRef = (0, react_1.useRef)(null);
|
|
26
26
|
var uploadIndexRef = (0, react_1.useRef)(null);
|
|
27
27
|
var localPreviewsRef = (0, react_1.useRef)({});
|
|
28
|
-
var
|
|
28
|
+
var _m = (0, react_1.useState)({}), localPreviews = _m[0], setLocalPreviews = _m[1];
|
|
29
29
|
var slots = Array.from({ length: maxCount }, function (_, index) { var _a, _b; return (_b = (_a = images[index]) !== null && _a !== void 0 ? _a : localPreviews[index]) !== null && _b !== void 0 ? _b : null; });
|
|
30
30
|
var isCoverSelect = variant === 'coverSelect';
|
|
31
|
+
var activeSelectedIndexes = selectedIndexes !== null && selectedIndexes !== void 0 ? selectedIndexes : (selectedIndex !== undefined && selectedIndex !== null ? [selectedIndex] : props_1.UploaderDefault.selectedIndexes);
|
|
31
32
|
localPreviewsRef.current = localPreviews;
|
|
32
33
|
(0, react_1.useEffect)(function () {
|
|
33
34
|
return function () {
|
|
@@ -107,7 +108,7 @@ var Uploader = function (_a) {
|
|
|
107
108
|
return ((0, jsx_runtime_1.jsxs)(Uploader_styled_1.UploaderStyled, __assign({ className: className }, { children: [(title || description) && ((0, jsx_runtime_1.jsxs)(Uploader_styled_1.UploaderHeader, { children: [title && (0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderTitle, { children: title }), description && (0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderDescription, { children: description })] })), (0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderGrid, __assign({ "$columnCount": columnCount }, { children: slots.map(function (image, index) {
|
|
108
109
|
var _a, _b;
|
|
109
110
|
var isEmpty = !image;
|
|
110
|
-
var isSelected = isCoverSelect &&
|
|
111
|
+
var isSelected = isCoverSelect && !isEmpty && activeSelectedIndexes.includes(index);
|
|
111
112
|
var showCoverOnSlot = !isCoverSelect && showCoverBadge && index === 0;
|
|
112
113
|
var showUploadContent = isEmpty || showCoverOnSlot;
|
|
113
114
|
return ((0, jsx_runtime_1.jsxs)(Uploader_styled_1.UploaderSlot, __assign({ type: "button", "$isEmpty": isEmpty, "$isSelected": isSelected, "$disabled": disabled, disabled: disabled, onClick: function () { return handleSlotClick(index, image); } }, { children: [image && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderSlotMedia, __assign({ "$padding": imagePadding }, { children: (0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderSlotImage, { src: image.src, alt: (_a = image.alt) !== null && _a !== void 0 ? _a : '' }) })), !isCoverSelect && ((0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderRemoveButton, __assign({ type: "button", "aria-label": "G\u00F6rseli kald\u0131r", onClick: function (event) { return handleRemove(event, index); } }, { children: (0, jsx_runtime_1.jsx)(Icon_1.default, { name: "Closebig" }) })))] })), showUploadContent && ((0, jsx_runtime_1.jsxs)(Uploader_styled_1.UploaderUploadContent, __assign({ "$hasImage": !isEmpty }, { children: [showCoverOnSlot && ((0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderUploadBadgeWrapper, { children: renderCoverBadge() })), (0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderUploadLabel, __assign({ "$isHidden": !isEmpty && showCoverOnSlot }, { children: uploadLabel })), (0, jsx_runtime_1.jsx)(Uploader_styled_1.UploaderUploadIcon, __assign({ "$isHidden": !isEmpty && showCoverOnSlot }, { children: (0, jsx_runtime_1.jsx)(Icon_1.default, { name: "PlusMd", width: "1.5rem", height: "1.5rem", color: "var(--primary)" }) }))] })))] }), (_b = image === null || image === void 0 ? void 0 : image.id) !== null && _b !== void 0 ? _b : "slot-".concat(index)));
|
|
@@ -15,6 +15,9 @@ export interface UploaderProps {
|
|
|
15
15
|
uploadLabel?: string;
|
|
16
16
|
coverBadgeText?: string;
|
|
17
17
|
variant?: UploaderVariant;
|
|
18
|
+
/** Seçili slot index'leri (birden fazla olabilir) */
|
|
19
|
+
selectedIndexes?: number[];
|
|
20
|
+
/** @deprecated `selectedIndexes` kullan. Tek seçim için `[index]` geç. */
|
|
18
21
|
selectedIndex?: number;
|
|
19
22
|
showCoverBadge?: boolean;
|
|
20
23
|
accept?: string;
|
|
@@ -23,6 +26,7 @@ export interface UploaderProps {
|
|
|
23
26
|
imagePadding?: string;
|
|
24
27
|
onUpload?: (index: number, file: File) => void;
|
|
25
28
|
onRemove?: (index: number) => void;
|
|
29
|
+
/** Slot seçildiğinde çağrılır; parent selectedIndexes'i yönetir */
|
|
26
30
|
onSelect?: (index: number) => void;
|
|
27
31
|
}
|
|
28
32
|
export declare const UploaderDefault: {
|
|
@@ -32,6 +36,7 @@ export declare const UploaderDefault: {
|
|
|
32
36
|
uploadLabel: string;
|
|
33
37
|
coverBadgeText: string;
|
|
34
38
|
variant: UploaderVariant;
|
|
39
|
+
selectedIndexes: number[];
|
|
35
40
|
selectedIndex: number;
|
|
36
41
|
showCoverBadge: boolean;
|
|
37
42
|
accept: string;
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { UploaderImage } from '../props';
|
|
3
3
|
declare const _default: {
|
|
4
4
|
title: string;
|
|
5
|
-
component: ({ className, title, description, images, maxCount, columnCount, uploadLabel, coverBadgeText, variant, selectedIndex, showCoverBadge, accept, disabled, imagePadding, onUpload, onRemove, onSelect, }: import("../props").UploaderProps) => React.JSX.Element;
|
|
5
|
+
component: ({ className, title, description, images, maxCount, columnCount, uploadLabel, coverBadgeText, variant, selectedIndexes, selectedIndex, showCoverBadge, accept, disabled, imagePadding, onUpload, onRemove, onSelect, }: import("../props").UploaderProps) => React.JSX.Element;
|
|
6
6
|
tags: string[];
|
|
7
7
|
argTypes: {
|
|
8
8
|
variant: {
|
|
@@ -24,6 +24,9 @@ declare const _default: {
|
|
|
24
24
|
imagePadding: {
|
|
25
25
|
control: string;
|
|
26
26
|
};
|
|
27
|
+
selectedIndexes: {
|
|
28
|
+
control: string;
|
|
29
|
+
};
|
|
27
30
|
};
|
|
28
31
|
};
|
|
29
32
|
export default _default;
|
|
@@ -58,7 +61,7 @@ export declare const CoverSelect: {
|
|
|
58
61
|
title: string;
|
|
59
62
|
variant: string;
|
|
60
63
|
images: UploaderImage[];
|
|
61
|
-
|
|
64
|
+
selectedIndexes: number[];
|
|
62
65
|
maxCount: number;
|
|
63
66
|
};
|
|
64
67
|
};
|
|
@@ -1,4 +1,15 @@
|
|
|
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
|
+
};
|
|
2
13
|
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
14
|
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
15
|
if (ar || !(i in from)) {
|
|
@@ -36,6 +47,7 @@ exports.default = {
|
|
|
36
47
|
showCoverBadge: { control: 'boolean' },
|
|
37
48
|
disabled: { control: 'boolean' },
|
|
38
49
|
imagePadding: { control: 'text' },
|
|
50
|
+
selectedIndexes: { control: 'object' },
|
|
39
51
|
},
|
|
40
52
|
};
|
|
41
53
|
exports.Empty = {
|
|
@@ -69,7 +81,7 @@ exports.CoverSelect = {
|
|
|
69
81
|
title: 'Ana görselden seç',
|
|
70
82
|
variant: 'coverSelect',
|
|
71
83
|
images: [sampleImage],
|
|
72
|
-
|
|
84
|
+
selectedIndexes: [0],
|
|
73
85
|
maxCount: 4,
|
|
74
86
|
},
|
|
75
87
|
};
|
|
@@ -94,8 +106,15 @@ exports.Interactive = {
|
|
|
94
106
|
render: function () { return (0, jsx_runtime_1.jsx)(UploaderInteractiveStory, {}); },
|
|
95
107
|
};
|
|
96
108
|
var UploaderCoverSelectStory = function () {
|
|
97
|
-
var _a = (0, react_1.useState)(0),
|
|
98
|
-
|
|
109
|
+
var _a = (0, react_1.useState)([0]), selectedIndexes = _a[0], setSelectedIndexes = _a[1];
|
|
110
|
+
var images = [sampleImage, __assign(__assign({}, sampleImage), { id: 'sample-2' }), __assign(__assign({}, sampleImage), { id: 'sample-3' })];
|
|
111
|
+
return ((0, jsx_runtime_1.jsx)(Uploader_1.default, { title: "Ana g\u00F6rselden se\u00E7", variant: "coverSelect", images: images, selectedIndexes: selectedIndexes, maxCount: 4, onSelect: function (index) {
|
|
112
|
+
setSelectedIndexes(function (prev) {
|
|
113
|
+
return prev.includes(index)
|
|
114
|
+
? prev.filter(function (item) { return item !== index; })
|
|
115
|
+
: __spreadArray(__spreadArray([], prev, true), [index], false);
|
|
116
|
+
});
|
|
117
|
+
} }));
|
|
99
118
|
};
|
|
100
119
|
exports.CoverSelectInteractive = {
|
|
101
120
|
render: function () { return (0, jsx_runtime_1.jsx)(UploaderCoverSelectStory, {}); },
|