@sydsoft/base 1.58.0 → 2.0.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 +16 -0
- package/dist/esm/_lib/baseFunctions.js +102 -0
- package/dist/esm/_lib/inputMask.d.ts +12 -0
- package/dist/esm/_lib/inputMask.js +234 -0
- package/dist/esm/_lib/listFunctions.d.ts +7 -0
- package/dist/esm/_lib/listFunctions.js +119 -0
- package/dist/esm/_lib/storage/cookies.d.ts +9 -0
- package/dist/esm/_lib/storage/cookies.js +39 -0
- package/dist/esm/_lib/storage/encData.d.ts +7 -0
- package/dist/esm/_lib/storage/encData.js +48 -0
- package/dist/esm/_lib/storage/localStorage.d.ts +11 -0
- package/dist/esm/_lib/storage/localStorage.js +74 -0
- package/dist/esm/_lib/storage/sessionStorage.d.ts +11 -0
- package/dist/esm/_lib/storage/sessionStorage.js +74 -0
- package/dist/esm/_lib/useInterval.d.ts +6 -0
- package/dist/esm/_lib/useInterval.js +24 -0
- package/dist/esm/alert/index.d.ts +23 -0
- package/dist/esm/alert/index.js +112 -0
- package/dist/esm/alert/index.module.css +125 -0
- package/dist/esm/box/Box.d.ts +14 -0
- package/dist/esm/box/Box.js +20 -0
- package/dist/esm/box/Box.module.css +159 -0
- package/dist/esm/box/BoxContent.d.ts +14 -0
- package/dist/esm/box/BoxContent.js +7 -0
- package/dist/esm/box/BoxFooter.d.ts +15 -0
- package/dist/esm/box/BoxFooter.js +13 -0
- package/dist/esm/box/BoxHeader.d.ts +21 -0
- package/dist/esm/box/BoxHeader.js +14 -0
- package/dist/esm/box/index.d.ts +9 -0
- package/dist/esm/box/index.js +9 -0
- package/dist/esm/countDown/index.d.ts +27 -0
- package/dist/esm/countDown/index.js +102 -0
- package/dist/esm/dateTime/index.d.ts +17 -0
- package/dist/esm/dateTime/index.js +81 -0
- package/dist/esm/form/Button.d.ts +32 -0
- package/dist/esm/form/Button.js +81 -0
- package/dist/esm/form/Checkbox.d.ts +28 -0
- package/dist/esm/form/Checkbox.js +28 -0
- package/dist/esm/form/Dialog.d.ts +25 -0
- package/dist/esm/form/Dialog.js +40 -0
- package/dist/esm/form/Form.d.ts +15 -0
- package/dist/esm/form/Form.js +17 -0
- package/dist/esm/form/FormOlustur.d.ts +44 -0
- package/dist/esm/form/FormOlustur.js +57 -0
- package/dist/esm/form/Input.d.ts +66 -0
- package/dist/esm/form/Input.js +196 -0
- package/dist/esm/form/Label.d.ts +12 -0
- package/dist/esm/form/Label.js +14 -0
- package/dist/esm/form/SearchableInput.d.ts +42 -0
- package/dist/esm/form/SearchableInput.js +277 -0
- package/dist/esm/form/UploadBase.d.ts +25 -0
- package/dist/esm/form/UploadBase.js +86 -0
- package/dist/esm/form/index.d.ts +14 -0
- package/dist/esm/form/index.js +14 -0
- package/dist/esm/form/styles/Button.module.css +151 -0
- package/dist/esm/form/styles/Input.module.css +227 -0
- package/dist/esm/form/styles/Label.module.css +37 -0
- package/dist/esm/form/styles/SearchableInput.module.css +86 -0
- package/dist/esm/grid/index.d.ts +43 -0
- package/dist/esm/grid/index.js +102 -0
- package/dist/esm/grid/index.module.css +812 -0
- package/dist/esm/icon/icons.d.ts +27 -0
- package/dist/esm/icon/icons.js +28 -0
- package/dist/esm/icon/index.d.ts +38 -0
- package/dist/esm/icon/index.js +25 -0
- package/dist/esm/icon/mui.d.ts +6 -0
- package/dist/esm/icon/mui.js +6 -0
- package/dist/esm/index.d.ts +24 -0
- package/dist/esm/index.js +24 -0
- package/dist/esm/menu/index.d.ts +75 -0
- package/dist/esm/menu/index.js +59 -0
- package/dist/esm/menu/index.module.css +106 -0
- package/dist/esm/modal/index.d.ts +23 -0
- package/dist/esm/modal/index.js +66 -0
- package/dist/esm/modal/index.module.css +83 -0
- package/dist/esm/popover/index.d.ts +26 -0
- package/dist/esm/popover/index.js +343 -0
- package/dist/esm/popover/index.module.css +95 -0
- package/dist/esm/tooltip/index.d.ts +16 -0
- package/dist/esm/tooltip/index.js +124 -0
- package/package.json +12 -8
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { __assign } from "tslib";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* @author : izzetseydaoglu
|
|
5
|
+
* @copyright : sydSOFT Bilişim Hizmetleri (c) 2026
|
|
6
|
+
* @version : 2026-02-10 20:23:07
|
|
7
|
+
*/
|
|
8
|
+
import React, { memo, useEffect, useMemo } from 'react';
|
|
9
|
+
import { Col, Row } from '../grid';
|
|
10
|
+
import { isDev } from '../_lib/baseFunctions';
|
|
11
|
+
import { Label } from './Label';
|
|
12
|
+
export var FormOlustur = memo(function FunctionMemo(props) {
|
|
13
|
+
var form = props.form, formOgeler = props.formOgeler, onChange = props.onChange, formType = props.formType, sabitGrid = props.sabitGrid, justifyContent = props.justifyContent, rowSpacing = props.rowSpacing, colSpacing = props.colSpacing;
|
|
14
|
+
useEffect(function () {
|
|
15
|
+
if (formOgeler && onChange && form) {
|
|
16
|
+
formOgeler.forEach(function (formOgeler) {
|
|
17
|
+
var _a, _b, _c, _d;
|
|
18
|
+
var fieldName = (_b = (_a = formOgeler === null || formOgeler === void 0 ? void 0 : formOgeler.component) === null || _a === void 0 ? void 0 : _a.props) === null || _b === void 0 ? void 0 : _b.name;
|
|
19
|
+
if (formOgeler.noRender && fieldName && form[fieldName] && form[fieldName] != '') {
|
|
20
|
+
isDev && console.log('noRenderGuncelle');
|
|
21
|
+
if ((formOgeler === null || formOgeler === void 0 ? void 0 : formOgeler.component) && ((_d = (_c = formOgeler === null || formOgeler === void 0 ? void 0 : formOgeler.component) === null || _c === void 0 ? void 0 : _c.props) === null || _d === void 0 ? void 0 : _d.name)) {
|
|
22
|
+
onChange({
|
|
23
|
+
target: {
|
|
24
|
+
name: fieldName,
|
|
25
|
+
value: ''
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}, [JSON.stringify(form), formOgeler]);
|
|
33
|
+
var result = useMemo(function () {
|
|
34
|
+
return formOgeler.map(function (_a, i) {
|
|
35
|
+
var noRender = _a.noRender, fullComponent = _a.fullComponent, component = _a.component, propsComponent = _a.propsComponent, propsRow = _a.propsRow, label = _a.label, propsLabel = _a.propsLabel, gridLabel = _a.gridLabel, gridInput = _a.gridInput;
|
|
36
|
+
if (noRender) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
if (fullComponent)
|
|
40
|
+
return React.cloneElement(fullComponent, { key: i });
|
|
41
|
+
var newProps = __assign({}, propsComponent);
|
|
42
|
+
if (onChange && component && !component.props.onChange) {
|
|
43
|
+
newProps = __assign(__assign({}, newProps), { onChange: onChange });
|
|
44
|
+
}
|
|
45
|
+
if (onChange && form && component.props.name && !component.props.value) {
|
|
46
|
+
newProps = __assign(__assign({}, newProps), { value: form[component.props.name] && form[component.props.name].length > 0 ? String(form[component.props.name]) : '' });
|
|
47
|
+
}
|
|
48
|
+
if (formType === 'label')
|
|
49
|
+
newProps = __assign(__assign({}, newProps), { label: '' });
|
|
50
|
+
var detectLabel = label || component.props.label;
|
|
51
|
+
gridLabel = __assign(__assign({}, sabitGrid.label), gridLabel);
|
|
52
|
+
gridInput = __assign(__assign({}, sabitGrid.input), gridInput);
|
|
53
|
+
return (_jsxs(Row, __assign({ justifyContent: justifyContent, rowSpacing: rowSpacing, colSpacing: colSpacing }, propsRow, { children: [formType === 'label' && detectLabel && (_jsx(Col, __assign({}, gridLabel, { children: _jsx(Label, __assign({ required: component.props.required }, propsLabel, { children: detectLabel })) }))), _jsx(Col, __assign({}, gridInput, { children: React.cloneElement(component, newProps) }))] }), i));
|
|
54
|
+
});
|
|
55
|
+
}, [form, formOgeler, onChange, formType, sabitGrid, justifyContent, rowSpacing, colSpacing]);
|
|
56
|
+
return _jsx(React.Fragment, { children: result });
|
|
57
|
+
});
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author : izzetseydaoglu
|
|
3
|
+
* @copyright : sydSOFT Bilişim Hizmetleri (c) 2026
|
|
4
|
+
* @version : 2026-01-21 21:35:48
|
|
5
|
+
*/
|
|
6
|
+
import React from 'react';
|
|
7
|
+
type maskSettingsTranslation = {
|
|
8
|
+
[key: string]: {
|
|
9
|
+
pattern: any;
|
|
10
|
+
transform?: (value: string) => string;
|
|
11
|
+
optional?: boolean;
|
|
12
|
+
recursive?: boolean;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
type maskSettings = {
|
|
16
|
+
clearIfNotMatch?: boolean;
|
|
17
|
+
reverse?: boolean;
|
|
18
|
+
translation?: maskSettingsTranslation;
|
|
19
|
+
selectOnFocus?: boolean;
|
|
20
|
+
onChange?: (maskedValue: string, cleanValue: string, targetInput: React.ChangeEvent<HTMLInputElement>) => void;
|
|
21
|
+
};
|
|
22
|
+
export interface PropsInput {
|
|
23
|
+
componentRef?: any;
|
|
24
|
+
inputRef?: any;
|
|
25
|
+
className?: string;
|
|
26
|
+
id?: string;
|
|
27
|
+
name?: string;
|
|
28
|
+
value?: any;
|
|
29
|
+
label?: string;
|
|
30
|
+
loading?: boolean;
|
|
31
|
+
autoFocus?: boolean | undefined;
|
|
32
|
+
disabled?: boolean;
|
|
33
|
+
required?: boolean;
|
|
34
|
+
placeholder?: string;
|
|
35
|
+
type?: 'text' | 'number' | 'email' | 'color' | 'date' | 'time' | 'datetime-local' | 'hidden' | 'file' | 'password' | 'tel' | 'search';
|
|
36
|
+
select?: any[];
|
|
37
|
+
ilkSec?: boolean;
|
|
38
|
+
valueKey?: string;
|
|
39
|
+
labelKey?: string;
|
|
40
|
+
multiline?: boolean;
|
|
41
|
+
rows?: number | undefined;
|
|
42
|
+
onChange?: (e: any) => void;
|
|
43
|
+
onFocus?: (e: any) => void;
|
|
44
|
+
onBlur?: (e: any) => void;
|
|
45
|
+
onClick?: (e: any) => void;
|
|
46
|
+
onKeyPress?: (e: any) => void;
|
|
47
|
+
onKeyUp?: (e: any) => void;
|
|
48
|
+
onKeyDown?: (e: any) => void;
|
|
49
|
+
propsComponent?: object | any;
|
|
50
|
+
propsInput?: object;
|
|
51
|
+
startAdornment?: any;
|
|
52
|
+
endAdornment?: any;
|
|
53
|
+
sadeceYazi?: boolean;
|
|
54
|
+
sadeceSayi?: boolean;
|
|
55
|
+
tumuBuyuk?: boolean;
|
|
56
|
+
tumuKucuk?: boolean;
|
|
57
|
+
seoCevir?: boolean;
|
|
58
|
+
dosyaNoGiris?: boolean;
|
|
59
|
+
fileNameGiris?: boolean;
|
|
60
|
+
dateGecmisKontrol?: boolean;
|
|
61
|
+
autoSelectText?: boolean;
|
|
62
|
+
mask?: string;
|
|
63
|
+
maskSettings?: maskSettings;
|
|
64
|
+
}
|
|
65
|
+
export declare const Input: React.FC<PropsInput>;
|
|
66
|
+
export {};
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { __assign } from "tslib";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* @author : izzetseydaoglu
|
|
5
|
+
* @copyright : sydSOFT Bilişim Hizmetleri (c) 2026
|
|
6
|
+
* @version : 2026-01-21 21:35:48
|
|
7
|
+
*/
|
|
8
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
9
|
+
import { convertForSEO, inputTumuBuyukCevir, inputTumuKucukCevir } from '../_lib/baseFunctions';
|
|
10
|
+
import { applyInputMask } from '../_lib/inputMask';
|
|
11
|
+
import { alert_add } from '../alert';
|
|
12
|
+
import { Dialog } from './Dialog';
|
|
13
|
+
import styles from './styles/Input.module.css';
|
|
14
|
+
export var Input = function (_a) {
|
|
15
|
+
var componentRef = _a.componentRef, inputRef = _a.inputRef, className = _a.className, propsComponent = _a.propsComponent, propsInput = _a.propsInput, id = _a.id, name = _a.name, _b = _a.value, value = _b === void 0 ? '' : _b, type = _a.type, label = _a.label, startAdornment = _a.startAdornment, endAdornment = _a.endAdornment, placeholder = _a.placeholder, onChange = _a.onChange, onFocus = _a.onFocus, onBlur = _a.onBlur, onClick = _a.onClick, onKeyPress = _a.onKeyPress, onKeyUp = _a.onKeyUp, onKeyDown = _a.onKeyDown, _c = _a.disabled, disabled = _c === void 0 ? false : _c, _d = _a.required, required = _d === void 0 ? false : _d, _e = _a.loading, loading = _e === void 0 ? false : _e, _f = _a.autoFocus, autoFocus = _f === void 0 ? false : _f, select = _a.select, _g = _a.valueKey, valueKey = _g === void 0 ? 'value' : _g, _h = _a.labelKey, labelKey = _h === void 0 ? 'label' : _h, _j = _a.ilkSec, ilkSec = _j === void 0 ? false : _j, _k = _a.multiline, multiline = _k === void 0 ? false : _k, _l = _a.rows, rows = _l === void 0 ? 2 : _l, sadeceYazi = _a.sadeceYazi, sadeceSayi = _a.sadeceSayi, tumuBuyuk = _a.tumuBuyuk, tumuKucuk = _a.tumuKucuk, seoCevir = _a.seoCevir, dosyaNoGiris = _a.dosyaNoGiris, fileNameGiris = _a.fileNameGiris, dateGecmisKontrol = _a.dateGecmisKontrol, autoSelectText = _a.autoSelectText, _m = _a.mask, mask = _m === void 0 ? '' : _m, _o = _a.maskSettings, maskSettings = _o === void 0 ? {
|
|
16
|
+
clearIfNotMatch: true,
|
|
17
|
+
reverse: false, //Tersten doldurmaya başla, fiyatlar için geçerli
|
|
18
|
+
selectOnFocus: false
|
|
19
|
+
} : _o;
|
|
20
|
+
var refMain = useRef(null);
|
|
21
|
+
var refInput = useRef(null);
|
|
22
|
+
var refLabel = useRef(null);
|
|
23
|
+
var _p = useState(value && value.toString().length > 0), inputFilled = _p[0], setInputFilled = _p[1];
|
|
24
|
+
var _q = useState(false), focus = _q[0], setFocus = _q[1];
|
|
25
|
+
useEffect(function () {
|
|
26
|
+
if (inputRef)
|
|
27
|
+
inputRef.current = refInput.current;
|
|
28
|
+
if (componentRef)
|
|
29
|
+
componentRef.current = refMain.current;
|
|
30
|
+
}, [componentRef, inputRef]);
|
|
31
|
+
useEffect(function () {
|
|
32
|
+
autoSelectText && !select && (refInput === null || refInput === void 0 ? void 0 : refInput.current) && refInput.current.select();
|
|
33
|
+
}, [autoSelectText, select]);
|
|
34
|
+
useEffect(function () {
|
|
35
|
+
var _a, _b;
|
|
36
|
+
var filled = String(value) && value.toString().length > 0 ? true : false;
|
|
37
|
+
setInputFilled(filled);
|
|
38
|
+
filled && ((_b = (_a = refMain === null || refMain === void 0 ? void 0 : refMain.current) === null || _a === void 0 ? void 0 : _a.classList) === null || _b === void 0 ? void 0 : _b.remove(styles.error));
|
|
39
|
+
}, [value]);
|
|
40
|
+
useEffect(function () {
|
|
41
|
+
// if (type === "number") sadeceSayi = true; //TODO: sadeceSayi burada değiştirelemez ki!!!
|
|
42
|
+
if (select && ilkSec && (value === '' || value === null || value === undefined)) {
|
|
43
|
+
if (select.length) {
|
|
44
|
+
var ilkItem = select[0][valueKey] ? select[0][valueKey] : '';
|
|
45
|
+
onChange && onChange({ target: { name: name, value: ilkItem } });
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}, [select]);
|
|
49
|
+
useEffect(function () {
|
|
50
|
+
var _a;
|
|
51
|
+
if (typeof window !== 'undefined' && (mask === null || mask === void 0 ? void 0 : mask.length) > 0 && (refInput === null || refInput === void 0 ? void 0 : refInput.current)) {
|
|
52
|
+
(_a = refInput.current) === null || _a === void 0 ? void 0 : _a.setAttribute('autocomplete', 'off');
|
|
53
|
+
}
|
|
54
|
+
if ((mask === null || mask === void 0 ? void 0 : mask.length) > 0 && (refInput === null || refInput === void 0 ? void 0 : refInput.current)) {
|
|
55
|
+
var maskInstance_1 = applyInputMask(refInput.current, mask, __assign(__assign({}, maskSettings), { onChange: function (masked, clean, e) {
|
|
56
|
+
if (onChange) {
|
|
57
|
+
onChange({ target: { name: name, value: masked } });
|
|
58
|
+
}
|
|
59
|
+
if (maskSettings && maskSettings.onChange) {
|
|
60
|
+
maskSettings.onChange(masked, clean, e);
|
|
61
|
+
}
|
|
62
|
+
} }));
|
|
63
|
+
maskInstance_1 === null || maskInstance_1 === void 0 ? void 0 : maskInstance_1.setValue(value ? value : null);
|
|
64
|
+
return function () { return maskInstance_1 === null || maskInstance_1 === void 0 ? void 0 : maskInstance_1.destroy(); };
|
|
65
|
+
}
|
|
66
|
+
}, [mask]);
|
|
67
|
+
var Change = useCallback(function (e) {
|
|
68
|
+
if (tumuBuyuk)
|
|
69
|
+
inputTumuBuyukCevir(e);
|
|
70
|
+
if (tumuKucuk)
|
|
71
|
+
inputTumuKucukCevir(e);
|
|
72
|
+
if (seoCevir)
|
|
73
|
+
convertForSEO(e);
|
|
74
|
+
setInputFilled(e.target.value.length > 0);
|
|
75
|
+
onChange ? onChange(e) : null;
|
|
76
|
+
}, [onChange, seoCevir, tumuBuyuk, tumuKucuk]);
|
|
77
|
+
var Focus = useCallback(function (e) {
|
|
78
|
+
var _a, _b;
|
|
79
|
+
onFocus ? onFocus(e) : null;
|
|
80
|
+
setFocus(true);
|
|
81
|
+
(_b = (_a = refMain === null || refMain === void 0 ? void 0 : refMain.current) === null || _a === void 0 ? void 0 : _a.classList) === null || _b === void 0 ? void 0 : _b.remove(styles.error);
|
|
82
|
+
}, [onFocus]);
|
|
83
|
+
var Blur = useCallback(function (e) {
|
|
84
|
+
var _a, _b, _c, _d;
|
|
85
|
+
if (fileNameGiris && e.target.value !== '' && /[/\\?%*:|"'<>]/g.test(e.target.value)) {
|
|
86
|
+
e.target.value = e.target.value.replace(/[/\\?%*:|"'<>]/g, '-');
|
|
87
|
+
if (onChange)
|
|
88
|
+
onChange(e);
|
|
89
|
+
alert_add({ type: 'warning', message: 'Lütfen dosya adındaki özel karakter değiştirildi.' });
|
|
90
|
+
}
|
|
91
|
+
if (dosyaNoGiris && e.target.value !== '' && !/^[1-2]\d{3}\/\d/.test(e.target.value)) {
|
|
92
|
+
e.target.value = '';
|
|
93
|
+
if (onChange)
|
|
94
|
+
onChange(e);
|
|
95
|
+
alert_add({ type: 'error', message: 'Lütfen doğru bir dosya numarası giriniz. Örn: 2022/123' });
|
|
96
|
+
}
|
|
97
|
+
if (dateGecmisKontrol && e.target.value !== '') {
|
|
98
|
+
var today = new Date().toISOString().slice(0, 10);
|
|
99
|
+
if (e.target.value < today) {
|
|
100
|
+
Dialog({
|
|
101
|
+
message: 'Geçmiş bir tarihi seçtiniz. Devam etmek istiyor musunuz?'
|
|
102
|
+
}).then(function (r) {
|
|
103
|
+
if (!r) {
|
|
104
|
+
e.target.value = '';
|
|
105
|
+
if (onChange)
|
|
106
|
+
onChange(e);
|
|
107
|
+
e.target.focus();
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
if (required) {
|
|
113
|
+
if (e.target.value === '') {
|
|
114
|
+
(_b = (_a = refMain === null || refMain === void 0 ? void 0 : refMain.current) === null || _a === void 0 ? void 0 : _a.classList) === null || _b === void 0 ? void 0 : _b.add(styles.error);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
(_d = (_c = refMain === null || refMain === void 0 ? void 0 : refMain.current) === null || _c === void 0 ? void 0 : _c.classList) === null || _d === void 0 ? void 0 : _d.remove(styles.error);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
if (value !== e.target.value) {
|
|
121
|
+
onChange && onChange({ target: { name: name, value: e.target.value } });
|
|
122
|
+
}
|
|
123
|
+
onBlur ? onBlur(e) : null;
|
|
124
|
+
setFocus(false);
|
|
125
|
+
}, [fileNameGiris, dosyaNoGiris, dateGecmisKontrol, required, value, onBlur, onChange, name]);
|
|
126
|
+
var Click = useCallback(function (e) { return (onClick ? onClick(e) : null); }, [onClick]);
|
|
127
|
+
var KeyPress = useCallback(function (e) {
|
|
128
|
+
if (sadeceYazi) {
|
|
129
|
+
var turkishLetters = /[ğüşıöçĞÜŞİÖÇ]/;
|
|
130
|
+
if (!(/[A-Za-z\s.]/.test(e.key) || turkishLetters.test(e.key))) {
|
|
131
|
+
e.preventDefault();
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if ((sadeceSayi || dosyaNoGiris) && (e.which < 48 || e.which > 57))
|
|
136
|
+
e.preventDefault();
|
|
137
|
+
if (dosyaNoGiris && e.which !== 8 && e.target.value.length === 4 && e.target.value.search('/') === -1) {
|
|
138
|
+
e.target.value = e.target.value + '/';
|
|
139
|
+
}
|
|
140
|
+
onKeyPress ? onKeyPress(e) : null;
|
|
141
|
+
}, [sadeceYazi, sadeceSayi, dosyaNoGiris, onKeyPress]);
|
|
142
|
+
var KeyUp = useCallback(function (e) { return (onKeyUp ? onKeyUp(e) : null); }, [onKeyUp]);
|
|
143
|
+
var KeyDown = useCallback(function (e) {
|
|
144
|
+
onKeyDown ? onKeyDown(e) : null;
|
|
145
|
+
}, [onKeyDown]);
|
|
146
|
+
var ortakProps = {
|
|
147
|
+
ref: refInput,
|
|
148
|
+
id: id,
|
|
149
|
+
name: name,
|
|
150
|
+
value: value,
|
|
151
|
+
autoFocus: autoFocus,
|
|
152
|
+
disabled: disabled,
|
|
153
|
+
required: required,
|
|
154
|
+
placeholder: placeholder,
|
|
155
|
+
onChange: Change,
|
|
156
|
+
onFocus: Focus,
|
|
157
|
+
onBlur: Blur,
|
|
158
|
+
onClick: Click,
|
|
159
|
+
onKeyPress: KeyPress,
|
|
160
|
+
onKeyUp: KeyUp,
|
|
161
|
+
onKeyDown: KeyDown
|
|
162
|
+
};
|
|
163
|
+
var component;
|
|
164
|
+
if (select) {
|
|
165
|
+
component = (_jsxs("select", __assign({ className: "".concat(styles.input, " ").concat(styles.select) }, ortakProps, propsInput, { children: [ilkSec === false && _jsx("option", { value: '' }), select.map(function (item) {
|
|
166
|
+
var value = item[valueKey];
|
|
167
|
+
var label = item[labelKey];
|
|
168
|
+
return (_jsx("option", { value: value, children: label ? label : value }, value));
|
|
169
|
+
})] })));
|
|
170
|
+
}
|
|
171
|
+
else if (multiline) {
|
|
172
|
+
component = _jsx("textarea", __assign({ className: "".concat(styles.input, " ").concat(styles.textarea), rows: rows }, ortakProps, propsInput));
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
component = _jsx("input", __assign({ className: "".concat(styles.input), type: type }, ortakProps, propsInput));
|
|
176
|
+
}
|
|
177
|
+
var classList = function () {
|
|
178
|
+
var list = ['sInputComponent', styles.component];
|
|
179
|
+
if (className)
|
|
180
|
+
list.push(className);
|
|
181
|
+
if (label) {
|
|
182
|
+
list.push(styles.hidePlaceHolder);
|
|
183
|
+
}
|
|
184
|
+
// if (props.required && (value.length === 0 || !value)) list.push("error");
|
|
185
|
+
return list.join(' ');
|
|
186
|
+
};
|
|
187
|
+
useEffect(function () {
|
|
188
|
+
if (propsComponent && propsComponent.hasOwnProperty('style')) {
|
|
189
|
+
var background = propsComponent.style.background ? propsComponent.style.background : propsComponent.style.backgroundColor ? propsComponent.style.backgroundColor : null;
|
|
190
|
+
if (background && refLabel.current) {
|
|
191
|
+
refLabel.current.style.setProperty('--label-bg', background);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}, [propsComponent]);
|
|
195
|
+
return (_jsxs("div", __assign({ ref: refMain, className: classList(), "data-disabled": disabled }, propsComponent, { children: [startAdornment && _jsx("div", { className: "adornment_start ".concat(styles.adornment, " ").concat(styles.start), children: startAdornment }), _jsxs("div", { className: "".concat(styles.inputBase, " ").concat(inputFilled || focus || type == 'date' ? styles.open : ''), children: [component, label && (_jsxs("div", { ref: refLabel, className: "label ".concat(styles.label), children: [label, required && _jsx("span", { className: styles.required, children: "*" })] }))] }), (endAdornment || loading) && (_jsxs("div", { className: "adornment_end ".concat(styles.adornment, " ").concat(styles.end), children: [endAdornment, loading && _jsx("div", { className: styles.loading })] }))] })));
|
|
196
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author : izzetseydaoglu
|
|
3
|
+
* @copyright : sydSOFT Bilişim Hizmetleri (c) 2026
|
|
4
|
+
* @version : 2026-02-10 20:23:07
|
|
5
|
+
*/
|
|
6
|
+
import React from 'react';
|
|
7
|
+
interface Props {
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
required?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare const Label: React.FC<Props>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { __assign, __rest } from "tslib";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* @author : izzetseydaoglu
|
|
5
|
+
* @copyright : sydSOFT Bilişim Hizmetleri (c) 2026
|
|
6
|
+
* @version : 2026-02-10 20:23:07
|
|
7
|
+
*/
|
|
8
|
+
import { memo } from 'react';
|
|
9
|
+
import { Tooltip } from '../tooltip';
|
|
10
|
+
import styles from './styles/Label.module.css';
|
|
11
|
+
export var Label = memo(function FMemo(_a) {
|
|
12
|
+
var _b = _a.required, required = _b === void 0 ? false : _b, children = _a.children, other = __rest(_a, ["required", "children"]);
|
|
13
|
+
return (_jsxs("label", __assign({ className: styles.label }, other, { children: [children, _jsx(Tooltip, { title: 'Zorunlu Alan', children: _jsx("span", { className: styles.required, children: required && '*' }) })] })));
|
|
14
|
+
});
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @author : izzetseydaoglu
|
|
3
|
+
* @copyright : sydSOFT Bilişim Hizmetleri (c) 2026
|
|
4
|
+
* @version : 2026-02-10 20:23:07
|
|
5
|
+
*/
|
|
6
|
+
import { PropsInput } from './index';
|
|
7
|
+
type typeList = {
|
|
8
|
+
value?: string;
|
|
9
|
+
label?: string;
|
|
10
|
+
[key: string]: any;
|
|
11
|
+
};
|
|
12
|
+
type typeValue = string | number | undefined;
|
|
13
|
+
interface Props extends PropsInput {
|
|
14
|
+
autoCompleteList?: typeList[];
|
|
15
|
+
isDataFromApi: boolean;
|
|
16
|
+
value: typeValue;
|
|
17
|
+
valueKey?: string;
|
|
18
|
+
labelKey?: string;
|
|
19
|
+
itemComponent?: (option: typeList) => React.ReactNode;
|
|
20
|
+
parentInputValue?: typeValue;
|
|
21
|
+
onChange?: (e: any) => void;
|
|
22
|
+
onText?: (text: string) => void;
|
|
23
|
+
onSelect?: (item: any) => void;
|
|
24
|
+
onLoad?: (value: typeValue) => void;
|
|
25
|
+
ilkSec?: boolean;
|
|
26
|
+
newCreate?: boolean;
|
|
27
|
+
style?: React.CSSProperties;
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
listPositionRelative?: boolean;
|
|
30
|
+
loadingMessage?: string;
|
|
31
|
+
notFoundMessage?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface SearchableInputRef {
|
|
34
|
+
setAutoCompleteList: (list: typeList[], value?: typeValue, callback?: () => void) => void;
|
|
35
|
+
clear: (openList?: boolean, focusInput?: boolean) => void;
|
|
36
|
+
open: () => void;
|
|
37
|
+
close: () => void;
|
|
38
|
+
checkByValue: (value: typeValue, openList?: boolean) => void;
|
|
39
|
+
setLoading: (loading: boolean) => void;
|
|
40
|
+
}
|
|
41
|
+
export declare const SearchableInput: import("react").ForwardRefExoticComponent<Props & import("react").RefAttributes<SearchableInputRef>>;
|
|
42
|
+
export {};
|