albinasoft-ui-package 1.1.12 → 1.1.14

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.
@@ -14,6 +14,7 @@ declare enum ElementType {
14
14
  TREEVIEW = "treeview",
15
15
  BUTTON = "button",
16
16
  AUTOCOMPLETEINPUT = "autocompleteinput",
17
+ PHONE = "phone",
17
18
  FILEUPLOADER = "fileuploader"
18
19
  }
19
20
  interface InputElement {
@@ -160,6 +161,17 @@ interface AutoCompleteInputElement {
160
161
  fetchOptions: (query: string) => Promise<string[]>;
161
162
  onSelect: (value: string) => void;
162
163
  }
164
+ interface PhoneElement {
165
+ id?: string;
166
+ type: ElementType;
167
+ label: string;
168
+ value: string;
169
+ rowId?: number;
170
+ colId?: number;
171
+ innerRowId?: number;
172
+ colClass?: string;
173
+ onChange: (full: string) => void;
174
+ }
163
175
  interface FileUploaderElement {
164
176
  id: string;
165
177
  type: ElementType.FILEUPLOADER;
@@ -178,7 +190,7 @@ interface FileUploaderElement {
178
190
  innerRowId?: number;
179
191
  colClass?: string;
180
192
  }
181
- type FormElement = InputElement | TextareaElement | CheckboxElement | RadioButtonElement | SelectElement | DateTimePickerElement | TextElement | DividerElement | RichTextboxElement | TreeViewElement | ButtonElement | AutoCompleteInputElement | FileUploaderElement;
193
+ type FormElement = InputElement | TextareaElement | CheckboxElement | RadioButtonElement | SelectElement | DateTimePickerElement | TextElement | DividerElement | RichTextboxElement | TreeViewElement | ButtonElement | AutoCompleteInputElement | PhoneElement | FileUploaderElement;
182
194
  interface CustomFormProps {
183
195
  elements: FormElement[];
184
196
  innerRowCustomClass?: string;
@@ -89,6 +89,7 @@ var CustomRichTextbox_1 = __importDefault(require("./CustomRichTextbox"));
89
89
  var CustomTreeView_1 = __importDefault(require("./CustomTreeView"));
90
90
  var CustomAutocompleteInput_1 = __importDefault(require("./CustomAutocompleteInput"));
91
91
  var CustomFileUploader_1 = __importDefault(require("./CustomFileUploader"));
92
+ var CustomPhoneInput_1 = __importDefault(require("./CustomPhoneInput"));
92
93
  var ElementType;
93
94
  (function (ElementType) {
94
95
  ElementType["INPUT"] = "input";
@@ -103,6 +104,7 @@ var ElementType;
103
104
  ElementType["TREEVIEW"] = "treeview";
104
105
  ElementType["BUTTON"] = "button";
105
106
  ElementType["AUTOCOMPLETEINPUT"] = "autocompleteinput";
107
+ ElementType["PHONE"] = "phone";
106
108
  ElementType["FILEUPLOADER"] = "fileuploader";
107
109
  })(ElementType || (ElementType = {}));
108
110
  exports.ElementType = ElementType;
@@ -221,7 +223,7 @@ var CustomForm = function (_a) {
221
223
  var colId = _a[0], innerRows = _a[1];
222
224
  return (react_1.default.createElement("div", { className: "col", key: "col-".concat(rowId, "-").concat(colId) }, Object.entries(innerRows).map(function (_a) {
223
225
  var innerRowId = _a[0], elements = _a[1];
224
- 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.FILEUPLOADER ? (
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 ? (
225
227
  // FILEUPLOADER elemanı için CustomFileUploader'ı render ediyoruz
226
228
  react_1.default.createElement(react_1.default.Fragment, null,
227
229
  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, label: element.label, translations: element.translations }))) : null)); })));
@@ -14,7 +14,12 @@ declare enum TabSize {
14
14
  interface TabItem {
15
15
  key: string;
16
16
  title: React.ReactNode;
17
- content: React.ReactNode;
17
+ /**
18
+ * Ya doğrudan içerik,
19
+ * ya da sekme değiştirecek bir fonksiyon alır:
20
+ * (goTo: (newKey:string)=>void) => ReactNode
21
+ */
22
+ content: React.ReactNode | ((goTo: (key: string) => void) => React.ReactNode);
18
23
  icon?: React.ReactNode;
19
24
  }
20
25
  interface CustomTabProps {
@@ -72,13 +72,15 @@ var CustomTab = function (_a) {
72
72
  : "justify-content-start";
73
73
  var navStyle = transparent ? { background: "transparent" } : undefined;
74
74
  var _j = sizeConfig[size], iconSize = _j.iconSize, fsClass = _j.fsClass;
75
+ // Bu fonksiyonu içeriğe geçiriyoruz:
76
+ var goToTab = function (key) {
77
+ if (tabs.some(function (t) { return t.key === key; })) {
78
+ setActiveTabKey(key);
79
+ }
80
+ };
75
81
  return (react_1.default.createElement("div", { className: "m-3" },
76
- react_1.default.createElement(react_bootstrap_1.Tab.Container, { activeKey: activeTabKey, onSelect: function (tabKey) { var _a; return setActiveTabKey(tabKey || ((_a = tabs[0]) === null || _a === void 0 ? void 0 : _a.key) || ""); } },
77
- react_1.default.createElement(react_bootstrap_1.Nav, { variant: "tabs", className: "d-flex ".concat(alignmentClass, " m-0"), style: __assign({ width: "100%" }, navStyle) }, tabs.map(function (tab) { return (react_1.default.createElement(react_bootstrap_1.Nav.Item, { key: tab.key, className: isFullWidth ? "flex-grow-1" : "", style: {
78
- margin: isBasic ? "0 5px" : undefined,
79
- } }, isBasic ? (react_1.default.createElement("div", { onClick: function () { return setActiveTabKey(tab.key); }, className: "btn w-100 ".concat(activeTabKey === tab.key
80
- ? "btn-primary"
81
- : "btn-outline-primary"), style: {
82
+ react_1.default.createElement(react_bootstrap_1.Tab.Container, { activeKey: activeTabKey, onSelect: function (k) { var _a; return setActiveTabKey(k || ((_a = tabs[0]) === null || _a === void 0 ? void 0 : _a.key) || ""); } },
83
+ react_1.default.createElement(react_bootstrap_1.Nav, { variant: "tabs", className: "d-flex ".concat(alignmentClass, " m-0"), style: __assign({ width: "100%" }, navStyle) }, tabs.map(function (tab) { return (react_1.default.createElement(react_bootstrap_1.Nav.Item, { key: tab.key, className: isFullWidth ? "flex-grow-1" : "", style: { margin: isBasic ? "0 5px" : undefined } }, isBasic ? (react_1.default.createElement("div", { onClick: function () { return setActiveTabKey(tab.key); }, className: "btn w-100 ".concat(activeTabKey === tab.key ? "btn-primary" : "btn-outline-primary"), style: {
82
84
  padding: "10px 15px",
83
85
  textAlign: "center",
84
86
  border: "none",
@@ -91,14 +93,20 @@ var CustomTab = function (_a) {
91
93
  cursor: "pointer",
92
94
  } },
93
95
  react_1.default.createElement("div", { className: "card-body d-flex flex-column text-center justify-content-center" },
94
- react_1.default.createElement("span", { style: { fontSize: iconSize } }, tab.icon || react_1.default.createElement(react_1.default.Fragment, null)),
96
+ react_1.default.createElement("span", { style: { fontSize: iconSize } }, tab.icon),
95
97
  react_1.default.createElement("span", { className: fsClass }, tab.title)))))); })),
96
98
  react_1.default.createElement(react_bootstrap_1.Tab.Content, { style: {
97
99
  padding: "10px",
98
100
  border: "10px solid transparent",
99
101
  borderRadius: "".concat(isFullWidth ? "6px" : "20px"),
100
- background: "linear-gradient(var(--bs-body-bg),var(--bs-body-bg)) padding-box, linear-gradient(180deg, rgba(var(--bs-primary-rgb), 1) 0%, rgba(var(--bs-primary-rgb), 0.1) 15%, rgba(var(--bs-primary-rgb), 0) 35%) border-box",
101
- } }, tabs.map(function (tab) { return (react_1.default.createElement(react_bootstrap_1.Tab.Pane, { eventKey: tab.key, key: tab.key }, tab.content)); })))));
102
+ background: "linear-gradient(var(--bs-body-bg),var(--bs-body-bg)) padding-box, " +
103
+ "linear-gradient(180deg, rgba(var(--bs-primary-rgb), 1) 0%, " +
104
+ "rgba(var(--bs-primary-rgb), 0.1) 15%, rgba(var(--bs-primary-rgb), 0) 35%) border-box",
105
+ } }, tabs.map(function (tab) { return (react_1.default.createElement(react_bootstrap_1.Tab.Pane, { eventKey: tab.key, key: tab.key }, typeof tab.content === "function"
106
+ ? // eğer fonksiyon ise, goToTab callback’ini ver
107
+ tab.content(goToTab)
108
+ : // değilse doğrudan render et
109
+ tab.content)); })))));
102
110
  };
103
111
  exports.CustomTab = CustomTab;
104
112
  exports.default = CustomTab;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "albinasoft-ui-package",
3
- "version": "1.1.12",
3
+ "version": "1.1.14",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {