albinasoft-ui-package 1.1.32 → 1.1.33
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/assets/css/custom-simple-select.css +94 -0
- package/dist/components/CustomForm.d.ts +19 -1
- package/dist/components/CustomForm.js +3 -1
- package/dist/components/CustomSimpleSelect.d.ts +21 -0
- package/dist/components/CustomSimpleSelect.js +64 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -1
- package/package.json +1 -1
@@ -0,0 +1,94 @@
|
|
1
|
+
.dropdown-menu {
|
2
|
+
background: white;
|
3
|
+
max-height: 200px;
|
4
|
+
overflow-y: auto;
|
5
|
+
}
|
6
|
+
|
7
|
+
.dropdown-menu::-webkit-scrollbar-thumb {
|
8
|
+
|
9
|
+
background-color: #888;
|
10
|
+
}
|
11
|
+
|
12
|
+
.dropdown-menu::-webkit-scrollbar-thumb:hover {
|
13
|
+
|
14
|
+
background-color: #555;
|
15
|
+
}
|
16
|
+
|
17
|
+
.dropdown-menu::-webkit-scrollbar-track {
|
18
|
+
|
19
|
+
background: transparent;
|
20
|
+
}
|
21
|
+
|
22
|
+
/* WebKit-tabanlı tarayıcılar için */
|
23
|
+
.dark .dropdown-menu::-webkit-scrollbar {
|
24
|
+
width: 8px;
|
25
|
+
}
|
26
|
+
|
27
|
+
.dark .dropdown-menu::-webkit-scrollbar-thumb {
|
28
|
+
background-color: #444;
|
29
|
+
border-radius: 4px;
|
30
|
+
}
|
31
|
+
|
32
|
+
.dark .dropdown-menu::-webkit-scrollbar-thumb:hover {
|
33
|
+
background-color: #666;
|
34
|
+
}
|
35
|
+
|
36
|
+
.dark .dropdown-menu::-webkit-scrollbar-track {
|
37
|
+
background: #151824;
|
38
|
+
}
|
39
|
+
|
40
|
+
.dark .dropdown-menu {
|
41
|
+
scrollbar-color: #444 #151824;
|
42
|
+
}
|
43
|
+
|
44
|
+
.dropdown-item {
|
45
|
+
padding: 8px 12px;
|
46
|
+
cursor: pointer;
|
47
|
+
}
|
48
|
+
|
49
|
+
.dropdown-item:hover {
|
50
|
+
background: #f1f1f1;
|
51
|
+
}
|
52
|
+
|
53
|
+
.dark .dropdown-item:hover {
|
54
|
+
background: #151824;
|
55
|
+
}
|
56
|
+
|
57
|
+
.simple-select.form-control {
|
58
|
+
white-space: nowrap;
|
59
|
+
overflow: hidden;
|
60
|
+
cursor: pointer;
|
61
|
+
|
62
|
+
padding: 0.5rem;
|
63
|
+
margin-left : 3rem;
|
64
|
+
display: flex;
|
65
|
+
align-items: center;
|
66
|
+
border: 1px solid var(--bs-primary);
|
67
|
+
border-radius: 3rem;
|
68
|
+
width: 300px !important;
|
69
|
+
|
70
|
+
}
|
71
|
+
|
72
|
+
.simple-select .selected {
|
73
|
+
font-weight: 600;
|
74
|
+
/* color:var(--bs-primary) */
|
75
|
+
}
|
76
|
+
|
77
|
+
.simple-select .icon-left,
|
78
|
+
.simple-select .icon-right {
|
79
|
+
flex: none;
|
80
|
+
color: #6c757d;
|
81
|
+
}
|
82
|
+
.simple-select .icon-left {
|
83
|
+
margin-right: 0.5rem;
|
84
|
+
color:var(--bs-primary)
|
85
|
+
}
|
86
|
+
|
87
|
+
.search-input{
|
88
|
+
margin-left: 2rem;
|
89
|
+
width: 90% !important;
|
90
|
+
box-sizing: border-box;
|
91
|
+
border: none !important;
|
92
|
+
outline: none !important;
|
93
|
+
}
|
94
|
+
|
@@ -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;
|
@@ -82,6 +82,7 @@ var CustomTextarea_1 = __importDefault(require("./CustomTextarea"));
|
|
82
82
|
var CustomCheckbox_1 = __importDefault(require("./CustomCheckbox"));
|
83
83
|
var CustomRadioButton_1 = __importDefault(require("./CustomRadioButton"));
|
84
84
|
var CustomSelect_1 = __importDefault(require("./CustomSelect"));
|
85
|
+
var CustomSimpleSelect_1 = __importDefault(require("./CustomSimpleSelect"));
|
85
86
|
var CustomDateTimePicker_1 = __importDefault(require("./CustomDateTimePicker"));
|
86
87
|
var CustomText_1 = __importDefault(require("./CustomText"));
|
87
88
|
var CustomDivider_1 = __importDefault(require("./CustomDivider"));
|
@@ -97,6 +98,7 @@ var ElementType;
|
|
97
98
|
ElementType["CHECKBOX"] = "checkbox";
|
98
99
|
ElementType["RADIO"] = "radio";
|
99
100
|
ElementType["SELECT"] = "select";
|
101
|
+
ElementType["SIMPLESELECT"] = "simpleselect";
|
100
102
|
ElementType["DATETIMEPICKER"] = "datetimepicker";
|
101
103
|
ElementType["TEXT"] = "text";
|
102
104
|
ElementType["DIVIDER"] = "divider";
|
@@ -223,7 +225,7 @@ var CustomForm = function (_a) {
|
|
223
225
|
var colId = _a[0], innerRows = _a[1];
|
224
226
|
return (react_1.default.createElement("div", { className: "col", key: "col-".concat(rowId, "-").concat(colId) }, Object.entries(innerRows).map(function (_a) {
|
225
227
|
var innerRowId = _a[0], elements = _a[1];
|
226
|
-
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 ? (
|
228
|
+
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 ? (
|
227
229
|
// FILEUPLOADER elemanı için CustomFileUploader'ı render ediyoruz
|
228
230
|
react_1.default.createElement(react_1.default.Fragment, null,
|
229
231
|
react_1.default.createElement(CustomFileUploader_1.default, { url: element.url, multi: element.multi, allowedTypes: element.allowedTypes, maxFile: element.maxFile, maxSize: element.maxSize, onUploadComplete: element.onUploadComplete, onRemoveUploaded: element.onRemoveUploaded, onPendingChange: element.onPendingChange, clearTrigger: element.clearTrigger, label: element.label, translations: element.translations }))) : null)); })));
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import "../assets/css/custom-simple-select.css";
|
3
|
+
interface Option {
|
4
|
+
value: string;
|
5
|
+
label: string;
|
6
|
+
}
|
7
|
+
interface SimpleSelectProps {
|
8
|
+
id?: string;
|
9
|
+
name?: string;
|
10
|
+
label?: string;
|
11
|
+
options: Option[];
|
12
|
+
value: string;
|
13
|
+
placeholder?: string;
|
14
|
+
searchable?: boolean;
|
15
|
+
disabled?: boolean;
|
16
|
+
className?: string;
|
17
|
+
style?: React.CSSProperties;
|
18
|
+
onChange: (value: string) => void;
|
19
|
+
}
|
20
|
+
declare const CustomSimpleSelect: React.FC<SimpleSelectProps>;
|
21
|
+
export default CustomSimpleSelect;
|
@@ -0,0 +1,64 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
var react_1 = __importStar(require("react"));
|
27
|
+
require("../assets/css/custom-simple-select.css");
|
28
|
+
var fa_1 = require("react-icons/fa");
|
29
|
+
var CustomSimpleSelect = function (_a) {
|
30
|
+
var _b;
|
31
|
+
var id = _a.id, name = _a.name, label = _a.label, options = _a.options, value = _a.value, _c = _a.placeholder, placeholder = _c === void 0 ? "Seçiniz..." : _c, _d = _a.searchable, searchable = _d === void 0 ? true : _d, _e = _a.disabled, disabled = _e === void 0 ? false : _e, className = _a.className, style = _a.style, onChange = _a.onChange;
|
32
|
+
var _f = (0, react_1.useState)(false), isOpen = _f[0], setIsOpen = _f[1];
|
33
|
+
var _g = (0, react_1.useState)(""), filterText = _g[0], setFilterText = _g[1];
|
34
|
+
var containerRef = (0, react_1.useRef)(null);
|
35
|
+
(0, react_1.useEffect)(function () {
|
36
|
+
var handleClickOutside = function (event) {
|
37
|
+
if (containerRef.current &&
|
38
|
+
!containerRef.current.contains(event.target)) {
|
39
|
+
setIsOpen(false);
|
40
|
+
}
|
41
|
+
};
|
42
|
+
document.addEventListener("mousedown", handleClickOutside);
|
43
|
+
return function () { return document.removeEventListener("mousedown", handleClickOutside); };
|
44
|
+
}, []);
|
45
|
+
var handleSelect = function (val) {
|
46
|
+
onChange(val);
|
47
|
+
setIsOpen(false);
|
48
|
+
setFilterText("");
|
49
|
+
};
|
50
|
+
var displayedLabel = ((_b = options.find(function (o) { return o.value === value; })) === null || _b === void 0 ? void 0 : _b.label) || "";
|
51
|
+
return (react_1.default.createElement("div", { className: className, style: style, ref: containerRef },
|
52
|
+
label && (react_1.default.createElement("label", { htmlFor: id, className: "form-label" }, label)),
|
53
|
+
react_1.default.createElement("div", { className: "simple-select form-control ".concat(disabled ? "disabled" : ""), onClick: function () { return !disabled && setIsOpen(function (v) { return !v; }); } },
|
54
|
+
react_1.default.createElement(fa_1.FaSyncAlt, { className: "icon-left" }),
|
55
|
+
react_1.default.createElement("div", { className: "selected" }, displayedLabel || react_1.default.createElement("span", { className: "placeholder" }, placeholder))),
|
56
|
+
isOpen && (react_1.default.createElement("div", { className: "dropdown-menu show" },
|
57
|
+
searchable && (react_1.default.createElement("input", { type: "text", className: "form-control search-input", placeholder: "Ara...", value: filterText, onChange: function (e) { return setFilterText(e.target.value); } })),
|
58
|
+
react_1.default.createElement("ul", { className: "options-list" }, options
|
59
|
+
.filter(function (o) {
|
60
|
+
return o.label.toLowerCase().includes(filterText.toLowerCase());
|
61
|
+
})
|
62
|
+
.map(function (o) { return (react_1.default.createElement("li", { key: o.value, className: "dropdown-item ".concat(o.value === value ? "selected" : ""), onClick: function () { return handleSelect(o.value); } }, o.label)); }))))));
|
63
|
+
};
|
64
|
+
exports.default = CustomSimpleSelect;
|
package/dist/index.d.ts
CHANGED
@@ -10,6 +10,7 @@ import CustomPhoneInput from './components/CustomPhoneInput';
|
|
10
10
|
import CustomRadioButton from './components/CustomRadioButton';
|
11
11
|
import CustomRichTextbox from './components/CustomRichTextbox';
|
12
12
|
import CustomSelect from './components/CustomSelect';
|
13
|
+
import CustomSimpleSelect from './components/CustomSimpleSelect';
|
13
14
|
import CustomTab from './components/CustomTab';
|
14
15
|
import CustomText from './components/CustomText';
|
15
16
|
import CustomTextarea from './components/CustomTextarea';
|
@@ -18,4 +19,4 @@ import CustomAutocompleteInput from './components/CustomAutocompleteInput';
|
|
18
19
|
import CustomProgressBar from './components/CustomProgressBar';
|
19
20
|
import CustomTimeline from './components/CustomTimeline';
|
20
21
|
import CustomDatatable from './components/CustomDatatable';
|
21
|
-
export { AlbinaForm, CustomButton, CustomCheckbox, CustomDateTimePicker, CustomDivider, CustomForm, CustomInput, CustomModal, CustomPhoneInput, CustomRadioButton, CustomRichTextbox, CustomSelect, CustomTab, CustomText, CustomTextarea, CustomTreeView, CustomAutocompleteInput, CustomProgressBar, CustomTimeline, CustomDatatable, };
|
22
|
+
export { AlbinaForm, CustomButton, CustomCheckbox, CustomDateTimePicker, CustomDivider, CustomForm, CustomInput, CustomModal, CustomPhoneInput, CustomRadioButton, CustomRichTextbox, CustomSelect, CustomSimpleSelect, CustomTab, CustomText, CustomTextarea, CustomTreeView, CustomAutocompleteInput, CustomProgressBar, CustomTimeline, CustomDatatable, };
|
package/dist/index.js
CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.CustomDatatable = exports.CustomTimeline = exports.CustomProgressBar = exports.CustomAutocompleteInput = exports.CustomTreeView = exports.CustomTextarea = exports.CustomText = exports.CustomTab = exports.CustomSelect = exports.CustomRichTextbox = exports.CustomRadioButton = exports.CustomPhoneInput = exports.CustomModal = exports.CustomInput = exports.CustomForm = exports.CustomDivider = exports.CustomDateTimePicker = exports.CustomCheckbox = exports.CustomButton = exports.AlbinaForm = void 0;
|
6
|
+
exports.CustomDatatable = exports.CustomTimeline = exports.CustomProgressBar = exports.CustomAutocompleteInput = exports.CustomTreeView = exports.CustomTextarea = exports.CustomText = exports.CustomTab = exports.CustomSimpleSelect = exports.CustomSelect = exports.CustomRichTextbox = exports.CustomRadioButton = exports.CustomPhoneInput = exports.CustomModal = exports.CustomInput = exports.CustomForm = exports.CustomDivider = exports.CustomDateTimePicker = exports.CustomCheckbox = exports.CustomButton = exports.AlbinaForm = void 0;
|
7
7
|
var AlbinaForm_1 = __importDefault(require("./components/AlbinaForm"));
|
8
8
|
exports.AlbinaForm = AlbinaForm_1.default;
|
9
9
|
var CustomButton_1 = __importDefault(require("./components/CustomButton"));
|
@@ -28,6 +28,8 @@ var CustomRichTextbox_1 = __importDefault(require("./components/CustomRichTextbo
|
|
28
28
|
exports.CustomRichTextbox = CustomRichTextbox_1.default;
|
29
29
|
var CustomSelect_1 = __importDefault(require("./components/CustomSelect"));
|
30
30
|
exports.CustomSelect = CustomSelect_1.default;
|
31
|
+
var CustomSimpleSelect_1 = __importDefault(require("./components/CustomSimpleSelect"));
|
32
|
+
exports.CustomSimpleSelect = CustomSimpleSelect_1.default;
|
31
33
|
var CustomTab_1 = __importDefault(require("./components/CustomTab"));
|
32
34
|
exports.CustomTab = CustomTab_1.default;
|
33
35
|
var CustomText_1 = __importDefault(require("./components/CustomText"));
|