@sydsoft/base 1.43.0 → 1.44.0
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/esm/_lib/baseFunctions.d.ts +1 -0
- package/dist/esm/_lib/baseFunctions.js +4 -0
- package/dist/esm/_lib/storage/encData.d.ts +2 -2
- package/dist/esm/_lib/storage/encData.js +15 -10
- package/dist/esm/form/SearchableInput.d.ts +2 -2
- package/dist/esm/form/SearchableInput.js +45 -23
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
export declare const isDev: boolean;
|
|
3
3
|
export declare const isServerReq: (context: any) => boolean;
|
|
4
|
+
export declare const sleep: (ms?: number) => Promise<unknown>;
|
|
4
5
|
export declare const padNumber: (num: number, padLength?: number, padString?: string) => string;
|
|
5
6
|
export declare function inputTumuBuyukCevir(e: React.ChangeEvent<HTMLInputElement>): void;
|
|
6
7
|
export declare function inputTumuKucukCevir(e: React.ChangeEvent<HTMLInputElement>): void;
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export var isDev = !process.env.NODE_ENV || process.env.NODE_ENV === 'development';
|
|
2
2
|
export var isServerReq = function (context) { var _a, _b; return !((_b = (_a = context === null || context === void 0 ? void 0 : context.req) === null || _a === void 0 ? void 0 : _a.url) === null || _b === void 0 ? void 0 : _b.startsWith('/_next')); };
|
|
3
|
+
export var sleep = function (ms) {
|
|
4
|
+
if (ms === void 0) { ms = 1000; }
|
|
5
|
+
return new Promise(function (resolve) { return setTimeout(resolve, ms); });
|
|
6
|
+
};
|
|
3
7
|
export var padNumber = function (num, padLength, padString) {
|
|
4
8
|
if (padLength === void 0) { padLength = 2; }
|
|
5
9
|
if (padString === void 0) { padString = '0'; }
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const encData: (data:
|
|
2
|
-
export declare const decData: (data: string) => any;
|
|
1
|
+
export declare const encData: (data: object | string | number, keys?: number[]) => string;
|
|
2
|
+
export declare const decData: (data: string, keys?: number[]) => any;
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { isDev } from
|
|
2
|
-
var
|
|
3
|
-
export var encData = function (data) {
|
|
1
|
+
import { isDev } from "@sydsoft/base";
|
|
2
|
+
var encDecDataKeys = [3, 5, 8, 11, 15, 22];
|
|
3
|
+
export var encData = function (data, keys) {
|
|
4
|
+
if (keys === void 0) { keys = encDecDataKeys; }
|
|
4
5
|
try {
|
|
5
|
-
var
|
|
6
|
+
var newJSON = { data: data };
|
|
7
|
+
var utf8Data = unescape(encodeURIComponent(JSON.stringify(newJSON))); // Dizeyi UTF-8'e dönüştür
|
|
6
8
|
var newData_1 = btoa(utf8Data);
|
|
7
9
|
keys.map(function (value) {
|
|
8
10
|
var randomChar = String.fromCharCode(Math.floor(Math.random() * (122 - 97 + 1)) + 97);
|
|
@@ -11,11 +13,13 @@ export var encData = function (data) {
|
|
|
11
13
|
return newData_1;
|
|
12
14
|
}
|
|
13
15
|
catch (e) {
|
|
14
|
-
isDev && console.log(
|
|
15
|
-
return
|
|
16
|
+
isDev && console.log("ERROR => encData =>", e);
|
|
17
|
+
return "";
|
|
16
18
|
}
|
|
17
19
|
};
|
|
18
|
-
export var decData = function (data) {
|
|
20
|
+
export var decData = function (data, keys) {
|
|
21
|
+
var _a;
|
|
22
|
+
if (keys === void 0) { keys = encDecDataKeys; }
|
|
19
23
|
try {
|
|
20
24
|
var decode_1 = data;
|
|
21
25
|
keys.map(function (value, index) {
|
|
@@ -29,10 +33,11 @@ export var decData = function (data) {
|
|
|
29
33
|
});
|
|
30
34
|
var decodedString = atob(decode_1);
|
|
31
35
|
var utf8DecodedString = decodeURIComponent(escape(decodedString));
|
|
32
|
-
|
|
36
|
+
var parse = JSON.parse(utf8DecodedString);
|
|
37
|
+
return (_a = parse === null || parse === void 0 ? void 0 : parse.data) !== null && _a !== void 0 ? _a : "";
|
|
33
38
|
}
|
|
34
39
|
catch (e) {
|
|
35
|
-
isDev && console.log(
|
|
36
|
-
return
|
|
40
|
+
isDev && console.log("ERROR => decData =>", e);
|
|
41
|
+
return "";
|
|
37
42
|
}
|
|
38
43
|
};
|
|
@@ -6,7 +6,6 @@ type typeList = {
|
|
|
6
6
|
[key: string]: any;
|
|
7
7
|
};
|
|
8
8
|
type typeValue = string | number | undefined;
|
|
9
|
-
type typeVoidFunction = () => void;
|
|
10
9
|
interface Props extends PropsInput {
|
|
11
10
|
autoCompleteList?: typeList[];
|
|
12
11
|
isDataFromApi: boolean;
|
|
@@ -18,6 +17,7 @@ interface Props extends PropsInput {
|
|
|
18
17
|
onChange?: (e: any) => void;
|
|
19
18
|
onText?: (text: string) => void;
|
|
20
19
|
onSelect?: (item: any) => void;
|
|
20
|
+
onLoad?: (value: typeValue) => void;
|
|
21
21
|
ilkSec?: boolean;
|
|
22
22
|
newCreate?: boolean;
|
|
23
23
|
style?: React.CSSProperties;
|
|
@@ -27,7 +27,7 @@ interface Props extends PropsInput {
|
|
|
27
27
|
notFoundMessage?: string;
|
|
28
28
|
}
|
|
29
29
|
export interface SearchableInputRef {
|
|
30
|
-
setAutoCompleteList: (list: typeList[], value?: typeValue, callback?:
|
|
30
|
+
setAutoCompleteList: (list: typeList[], value?: typeValue, callback?: () => void) => void;
|
|
31
31
|
clear: (openList?: boolean, focusInput?: boolean) => void;
|
|
32
32
|
open: () => void;
|
|
33
33
|
close: () => void;
|
|
@@ -7,20 +7,20 @@ import { onKeyboardSelection, setScrollListPosition } from '../_lib/listFunction
|
|
|
7
7
|
import { Icon } from '../icon';
|
|
8
8
|
import styles from './styles/SearchableInput.module.css';
|
|
9
9
|
export var SearchableInput = forwardRef(function (_a, ref) {
|
|
10
|
-
var
|
|
10
|
+
var _b = _a.autoCompleteList, autoCompleteList = _b === void 0 ? [] : _b, isDataFromApi = _a.isDataFromApi, name = _a.name, value = _a.value, parentInputValue = _a.parentInputValue, disabled = _a.disabled, itemComponent = _a.itemComponent, _c = _a.valueKey, valueKey = _c === void 0 ? 'value' : _c, _d = _a.labelKey, labelKey = _d === void 0 ? 'label' : _d, onSelect = _a.onSelect, onChange = _a.onChange, onText = _a.onText, onLoad = _a.onLoad, style = _a.style, _e = _a.listPositionRelative, listPositionRelative = _e === void 0 ? false : _e, _f = _a.loadingMessage, loadingMessage = _f === void 0 ? 'Lütfen bekleyiniz...' : _f, _g = _a.notFoundMessage, notFoundMessage = _g === void 0 ? 'Kayıt bulunamadı...' : _g, placeholder = _a.placeholder, endAdornment = _a.endAdornment, _h = _a.ilkSec, ilkSec = _h === void 0 ? false : _h, _j = _a.newCreate, newCreate = _j === void 0 ? false : _j, inputRef = _a.inputRef, other = __rest(_a, ["autoCompleteList", "isDataFromApi", "name", "value", "parentInputValue", "disabled", "itemComponent", "valueKey", "labelKey", "onSelect", "onChange", "onText", "onLoad", "style", "listPositionRelative", "loadingMessage", "notFoundMessage", "placeholder", "endAdornment", "ilkSec", "newCreate", "inputRef"]);
|
|
11
11
|
var refMain = useRef(null);
|
|
12
12
|
var refInput = useRef(null);
|
|
13
13
|
var refList = useRef(null);
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
var
|
|
18
|
-
var
|
|
19
|
-
var
|
|
20
|
-
var
|
|
21
|
-
var
|
|
14
|
+
var _k = useState(autoCompleteList !== null && autoCompleteList !== void 0 ? autoCompleteList : []), data = _k[0], setData = _k[1];
|
|
15
|
+
var _l = useState(value !== null && value !== void 0 ? value : undefined), selectedValue = _l[0], setSelectedValue = _l[1];
|
|
16
|
+
var _m = useState(parentInputValue !== null && parentInputValue !== void 0 ? parentInputValue : undefined), parentValue = _m[0], setParentValue = _m[1];
|
|
17
|
+
var _o = useState(''), text = _o[0], setText = _o[1]; //Inputta görünen
|
|
18
|
+
var _p = useState(''), filter = _p[0], setFilter = _p[1]; // Filtrelemeye tabi tutulan
|
|
19
|
+
var _q = useState({ created: false }), newItemCreate = _q[0], setNewItemCreate = _q[1];
|
|
20
|
+
var _r = useState(false), open = _r[0], setOpen = _r[1];
|
|
21
|
+
var _s = useState(isDataFromApi && (!autoCompleteList || (autoCompleteList === null || autoCompleteList === void 0 ? void 0 : autoCompleteList.length) == 0)), loading = _s[0], setLoading = _s[1];
|
|
22
22
|
useImperativeHandle(ref, function () { return ({
|
|
23
|
-
setAutoCompleteList: function (list, value) {
|
|
23
|
+
setAutoCompleteList: function (list, value, callback) {
|
|
24
24
|
if (value === void 0) { value = undefined; }
|
|
25
25
|
if (autoCompleteList && (autoCompleteList === null || autoCompleteList === void 0 ? void 0 : autoCompleteList.length) > 0) {
|
|
26
26
|
alert('AutoCompleteList zaten tanımlı olduğundan dışardan data seti değiştirilemez.');
|
|
@@ -29,7 +29,11 @@ export var SearchableInput = forwardRef(function (_a, ref) {
|
|
|
29
29
|
setData(list);
|
|
30
30
|
value && sendChange(value);
|
|
31
31
|
setLoading(false);
|
|
32
|
-
|
|
32
|
+
if (!Array.isArray(list) || list.length == 0) {
|
|
33
|
+
clear(false);
|
|
34
|
+
}
|
|
35
|
+
callback && callback();
|
|
36
|
+
// isDev && console.log("setAutoCompleteList =>", name, value, list);
|
|
33
37
|
},
|
|
34
38
|
clear: function (openList, focusInput) {
|
|
35
39
|
if (openList === void 0) { openList = false; }
|
|
@@ -51,23 +55,39 @@ export var SearchableInput = forwardRef(function (_a, ref) {
|
|
|
51
55
|
if (inputRef)
|
|
52
56
|
inputRef.current = refInput.current;
|
|
53
57
|
}, [refInput.current]);
|
|
58
|
+
useEffect(function () { return onLoad && onLoad(value); }, []);
|
|
54
59
|
useEffect(function () {
|
|
55
|
-
if (autoCompleteList && Array.isArray(autoCompleteList)
|
|
56
|
-
|
|
57
|
-
|
|
60
|
+
if (autoCompleteList && Array.isArray(autoCompleteList)) {
|
|
61
|
+
if (autoCompleteList.length > 0) {
|
|
62
|
+
// Sadece gerçekten farklıysa set et
|
|
63
|
+
if (JSON.stringify(autoCompleteList) !== JSON.stringify(data)) {
|
|
64
|
+
setData(autoCompleteList);
|
|
65
|
+
// isDev && console.log("autoCompleteList dolu =>", name, autoCompleteList);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
// Boş array geldi VE data zaten boş değilse
|
|
70
|
+
if (data.length > 0) {
|
|
71
|
+
setData([]);
|
|
72
|
+
// isDev && console.log("autoCompleteList boşaltıldı =>", name);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
58
75
|
}
|
|
59
76
|
}, [autoCompleteList]);
|
|
60
77
|
useEffect(function () {
|
|
61
78
|
// isDev && console.log('data =>', name, data, 'selectedValue =>', selectedValue, 'value =>', value);
|
|
79
|
+
if (!Array.isArray(data)) {
|
|
80
|
+
setData([]);
|
|
81
|
+
}
|
|
62
82
|
if (data.length > 0) {
|
|
63
83
|
setLoading(false);
|
|
64
84
|
checkByValue(selectedValue, open);
|
|
65
|
-
if (!value) {
|
|
66
|
-
|
|
85
|
+
if (!value && ilkSec) {
|
|
86
|
+
checkByValue(data[0][valueKey], false);
|
|
67
87
|
}
|
|
68
88
|
}
|
|
69
89
|
else {
|
|
70
|
-
!isDataFromApi && clear();
|
|
90
|
+
!isDataFromApi && clear(false);
|
|
71
91
|
}
|
|
72
92
|
}, [data]);
|
|
73
93
|
// Seçim değişikliğinde parent'ı bilgilendir
|
|
@@ -82,7 +102,7 @@ export var SearchableInput = forwardRef(function (_a, ref) {
|
|
|
82
102
|
if (parentInputValue !== parentValue) {
|
|
83
103
|
setParentValue(parentInputValue);
|
|
84
104
|
clear(false);
|
|
85
|
-
// isDev && console.log(name,
|
|
105
|
+
// isDev && console.log(name, "parentInputValueDeğişti =>", parentInputValue);
|
|
86
106
|
}
|
|
87
107
|
}, [parentInputValue]);
|
|
88
108
|
useEffect(function () {
|
|
@@ -115,11 +135,12 @@ export var SearchableInput = forwardRef(function (_a, ref) {
|
|
|
115
135
|
}, [open]);
|
|
116
136
|
useLayoutEffect(function () { return handleUpdatePosition(); }, [open]);
|
|
117
137
|
var setValue = useCallback(function (item, openList) {
|
|
118
|
-
var
|
|
119
|
-
var
|
|
138
|
+
var _a, _b;
|
|
139
|
+
var newValue = (_a = item === null || item === void 0 ? void 0 : item[valueKey]) !== null && _a !== void 0 ? _a : '';
|
|
140
|
+
var newLabel = (_b = item === null || item === void 0 ? void 0 : item[labelKey]) !== null && _b !== void 0 ? _b : '';
|
|
120
141
|
setOpen(openList);
|
|
121
142
|
setText(newLabel);
|
|
122
|
-
// isDev && console.log(
|
|
143
|
+
// isDev && console.log(name, "setValue", newValue, "item", item, "value", value);
|
|
123
144
|
if (newValue === selectedValue)
|
|
124
145
|
return;
|
|
125
146
|
setFilter('');
|
|
@@ -158,7 +179,7 @@ export var SearchableInput = forwardRef(function (_a, ref) {
|
|
|
158
179
|
if (onText)
|
|
159
180
|
onText('');
|
|
160
181
|
}
|
|
161
|
-
}, [data, labelKey, value, valueKey, isDataFromApi, onText, setValue]);
|
|
182
|
+
}, [data, labelKey, value, valueKey, isDataFromApi, onText, setValue, refInput.current]);
|
|
162
183
|
var clear = useCallback(function (openList, focusInput) {
|
|
163
184
|
var _a;
|
|
164
185
|
if (openList === void 0) { openList = true; }
|
|
@@ -170,6 +191,7 @@ export var SearchableInput = forwardRef(function (_a, ref) {
|
|
|
170
191
|
focusInput && ((_a = refInput === null || refInput === void 0 ? void 0 : refInput.current) === null || _a === void 0 ? void 0 : _a.focus());
|
|
171
192
|
}, [setValue, onText]);
|
|
172
193
|
var sendChange = useCallback(function (value) {
|
|
194
|
+
// isDev && console.log(name, "sendChange", value, "selectedValue", selectedValue);
|
|
173
195
|
if (onChange && value !== selectedValue) {
|
|
174
196
|
onChange({ target: { name: name, value: value } });
|
|
175
197
|
}
|
|
@@ -215,7 +237,7 @@ export var SearchableInput = forwardRef(function (_a, ref) {
|
|
|
215
237
|
selectedClass: 'selected'
|
|
216
238
|
});
|
|
217
239
|
};
|
|
218
|
-
return (_jsxs("div", { ref: refMain, className: styles.searchableInputComponent, onKeyDown: onKeyDown, style: style, children: [_jsx(Input, __assign({}, other, { inputRef: refInput, name: name, value: text, onFocus: function () { return !disabled && setOpen(true); }, onChange: textInputOnChange, endAdornment: !disabled && (_jsxs("div", { style: { marginRight: 5 }, tabIndex: -1, children: [_jsx(Button, { title: 'Temizle', tabIndex: -1, hidden: !(text && text.length > 0), onClick: function () { return clear(true, true); }, onlyIcon: _jsx(Icon, { name: 'close', style: { color: '#444' } }) }), endAdornment, _jsx(Button, { tabIndex: -1, hidden: !(data.length > 0), onClick: function () { return !disabled && setOpen(!open); }, onlyIcon: _jsx(Icon, { name: open ? 'keyboard_arrow_up' : 'keyboard_arrow_down', style: { color: '#444' } }) })] })), placeholder: loading ? 'Lütfen bekleyiniz...' : placeholder, loading: loading, disabled: disabled, propsInput: __assign(__assign({}, other === null || other === void 0 ? void 0 : other.propsInput), { autoComplete: 'off' }) })), open && (_jsx("div", { className: 'listDiv', "data-relative": listPositionRelative, children: _jsxs("ul", { ref: refList, className: "list ".concat(open ? 'open' : ''), children: [(filteredData.length === 0 || loading) && _jsx("div", { className: "message ".concat(loading ? 'loading' : ''), children: loading ? loadingMessage : notFoundMessage }), filteredData.map(function (item, key) {
|
|
240
|
+
return (_jsxs("div", { ref: refMain, className: styles.searchableInputComponent, onKeyDown: onKeyDown, style: style, children: [_jsx(Input, __assign({}, other, { inputRef: refInput, name: name, value: text, onFocus: function () { return !disabled && setOpen(true); }, onChange: textInputOnChange, endAdornment: !disabled && (_jsxs("div", { style: { marginRight: 5 }, tabIndex: -1, children: [_jsx(Button, { title: 'Temizle', tabIndex: -1, hidden: !(text && text.length > 0), onClick: function () { return clear(true, true); }, onlyIcon: _jsx(Icon, { name: 'close', style: { color: '#444' } }) }), endAdornment, _jsx(Button, { tabIndex: -1, hidden: !data || !(data.length > 0), onClick: function () { return !disabled && setOpen(!open); }, onlyIcon: _jsx(Icon, { name: open ? 'keyboard_arrow_up' : 'keyboard_arrow_down', style: { color: '#444' } }) })] })), placeholder: loading ? 'Lütfen bekleyiniz...' : placeholder, loading: loading, disabled: disabled, propsInput: __assign(__assign({}, other === null || other === void 0 ? void 0 : other.propsInput), { autoComplete: 'off' }) })), open && (_jsx("div", { className: 'listDiv', "data-relative": listPositionRelative, children: _jsxs("ul", { ref: refList, className: "list ".concat(open ? 'open' : ''), children: [(filteredData.length === 0 || loading) && _jsx("div", { className: "message ".concat(loading ? 'loading' : ''), children: loading ? loadingMessage : notFoundMessage }), filteredData.map(function (item, key) {
|
|
219
241
|
var itemValue = item[valueKey];
|
|
220
242
|
var itemLabel = item[labelKey];
|
|
221
243
|
return (_jsxs("li", { className: "item ".concat(itemValue === selectedValue ? 'active' : ''), "data-value": itemValue, "data-label": itemLabel, onClick: function () { return setValue(item, false); }, children: [item.create && _jsx("span", { className: 'newCreate', children: "Yeni Olu\u015Ftur: " }), itemComponent ? itemComponent(item) : itemLabel] }, key));
|