albinasoft-ui-package 1.1.11 → 1.1.13

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)); })));
@@ -0,0 +1,29 @@
1
+ import React from 'react';
2
+ interface Props {
3
+ id?: string;
4
+ name?: string;
5
+ label?: string;
6
+ value: string;
7
+ placeholder?: string;
8
+ placeholderWhenUnselectedCountryCode?: string;
9
+ placeholderForCountryCode?: string;
10
+ required?: boolean;
11
+ submitted?: boolean;
12
+ errorMessage?: string;
13
+ conditionalErrorVisible?: boolean;
14
+ conditionalErrorMessage?: string;
15
+ conditionalErrorVisibleForCountryCode?: boolean;
16
+ conditionalErrorMessageForCountryCode?: string;
17
+ disabled?: boolean;
18
+ readOnly?: boolean;
19
+ description?: string | null;
20
+ descriptionForCountryCode?: string | null;
21
+ tooltip?: string;
22
+ style?: React.CSSProperties;
23
+ mainClass?: string;
24
+ className?: string;
25
+ countryCodeText?: string;
26
+ onChange: (full: string) => void;
27
+ }
28
+ declare const CustomPhoneInput: React.FC<Props>;
29
+ export default CustomPhoneInput;
@@ -0,0 +1,251 @@
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
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
26
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
27
+ if (ar || !(i in from)) {
28
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
29
+ ar[i] = from[i];
30
+ }
31
+ }
32
+ return to.concat(ar || Array.prototype.slice.call(from));
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ var react_1 = __importStar(require("react"));
39
+ var react_bootstrap_1 = require("react-bootstrap");
40
+ var react_input_mask_1 = __importDefault(require("react-input-mask"));
41
+ var fa_1 = require("react-icons/fa");
42
+ var CustomSelect_1 = __importDefault(require("./CustomSelect"));
43
+ var countries = [
44
+ { id: 'TR', code: '90', label: 'Türkiye (+90)', mask: '(999) 999 99 99' },
45
+ { id: 'AZ', code: '994', label: 'Azerbaijan (+994)', mask: '(99) 999-9999' },
46
+ // North America (NANP)
47
+ { id: 'US', code: '1', label: 'United States (+1)', mask: '(999) 999-9999' },
48
+ { id: 'CA', code: '1', label: 'Canada (+1)', mask: '(999) 999-9999' },
49
+ { id: 'BS', code: '1242', label: 'Bahamas (+1242)', mask: '999-9999' },
50
+ { id: 'BB', code: '1246', label: 'Barbados (+1246)', mask: '999-9999' },
51
+ { id: 'AI', code: '1264', label: 'Anguilla (+1264)', mask: '999-9999' },
52
+ { id: 'AG', code: '1268', label: 'Antigua & Barbuda (+1268)', mask: '999-9999' },
53
+ { id: 'VG', code: '1284', label: 'British Virgin Islands (+1284)', mask: '999-9999' },
54
+ { id: 'VI', code: '1340', label: 'U.S. Virgin Islands (+1340)', mask: '999-9999' },
55
+ { id: 'BM', code: '1441', label: 'Bermuda (+1441)', mask: '999-9999' },
56
+ { id: 'GD', code: '1473', label: 'Grenada (+1473)', mask: '999-9999' },
57
+ { id: 'KY', code: '1649', label: 'Cayman Islands (+1649)', mask: '999-9999' },
58
+ { id: 'MS', code: '1664', label: 'Montserrat (+1664)', mask: '999-9999' },
59
+ { id: 'AS', code: '1684', label: 'American Samoa (+1684)', mask: '999-9999' },
60
+ { id: 'LC', code: '1758', label: 'St. Lucia (+1758)', mask: '999-9999' },
61
+ { id: 'DM', code: '1767', label: 'Dominica (+1767)', mask: '999-9999' },
62
+ { id: 'VC', code: '1784', label: 'St. Vincent & Grenadines (+1784)', mask: '999-9999' },
63
+ { id: 'DO', code: '1809', label: 'Dominican Republic (+1809)', mask: '999-9999' },
64
+ { id: 'TT', code: '1868', label: 'Trinidad & Tobago (+1868)', mask: '999-9999' },
65
+ { id: 'KN', code: '1869', label: 'St. Kitts & Nevis (+1869)', mask: '999-9999' },
66
+ { id: 'JM', code: '1876', label: 'Jamaica (+1876)', mask: '999-9999' },
67
+ // Russia & neighbors
68
+ { id: 'RU', code: '7', label: 'Russia (+7)', mask: '(999) 999-99-99' },
69
+ { id: 'KZ', code: '7', label: 'Kazakhstan (+7)', mask: '(999) 999-99-99' },
70
+ // North Africa & Middle East
71
+ { id: 'EG', code: '20', label: 'Egypt (+20)', mask: '(99) 9999 9999' },
72
+ { id: 'MA', code: '212', label: 'Morocco (+212)', mask: '(99) 9999 9999' },
73
+ { id: 'TN', code: '216', label: 'Tunisia (+216)', mask: '(99) 999 9999' },
74
+ { id: 'LY', code: '218', label: 'Libya (+218)', mask: '(99) 999 9999' },
75
+ { id: 'SD', code: '249', label: 'Sudan (+249)', mask: '(99) 999 9999' },
76
+ { id: 'PS', code: '970', label: 'Palestine (+970)', mask: '5999 999999' },
77
+ { id: 'JO', code: '962', label: 'Jordan (+962)', mask: '7999 999999' },
78
+ { id: 'LB', code: '961', label: 'Lebanon (+961)', mask: '3 999 999' },
79
+ { id: 'SY', code: '963', label: 'Syria (+963)', mask: '11 999 9999' },
80
+ { id: 'IQ', code: '964', label: 'Iraq (+964)', mask: '1 9999 99999' },
81
+ { id: 'KW', code: '965', label: 'Kuwait (+965)', mask: '9999 9999' },
82
+ { id: 'SA', code: '966', label: 'Saudi Arabia (+966)', mask: '5 9999 9999' },
83
+ { id: 'YE', code: '967', label: 'Yemen (+967)', mask: '7 999 999 999' },
84
+ { id: 'OM', code: '968', label: 'Oman (+968)', mask: '9 9999 9999' },
85
+ { id: 'AE', code: '971', label: 'United Arab Emirates (+971)', mask: '5 999 9999' },
86
+ { id: 'IL', code: '972', label: 'Israel (+972)', mask: '5-999-9999' },
87
+ { id: 'BH', code: '973', label: 'Bahrain (+973)', mask: '3999 9999' },
88
+ { id: 'QA', code: '974', label: 'Qatar (+974)', mask: '3 999 9999' },
89
+ { id: 'BT', code: '975', label: 'Bhutan (+975)', mask: '17-99-9999' },
90
+ { id: 'MN', code: '976', label: 'Mongolia (+976)', mask: '99-999-999' },
91
+ { id: 'NP', code: '977', label: 'Nepal (+977)', mask: '1-9999999' },
92
+ // Sub-Saharan Africa
93
+ { id: 'NG', code: '234', label: 'Nigeria (+234)', mask: '(999) 999-9999' },
94
+ { id: 'GH', code: '233', label: 'Ghana (+233)', mask: '(99) 999 9999' },
95
+ { id: 'CI', code: '225', label: 'Côte d’Ivoire (+225)', mask: '(99) 9999 9999' },
96
+ { id: 'SN', code: '221', label: 'Senegal (+221)', mask: '(99) 999 9999' },
97
+ { id: 'CM', code: '237', label: 'Cameroon (+237)', mask: '(99) 99 99 99' },
98
+ { id: 'KE', code: '254', label: 'Kenya (+254)', mask: '(999) 999 9999' },
99
+ { id: 'TZ', code: '255', label: 'Tanzania (+255)', mask: '(999) 999 999' },
100
+ { id: 'UG', code: '256', label: 'Uganda (+256)', mask: '(999) 999 999' },
101
+ { id: 'ET', code: '251', label: 'Ethiopia (+251)', mask: '(99) 999 9999' },
102
+ { id: 'DZ', code: '213', label: 'Algeria (+213)', mask: '(999) 999 9999' },
103
+ // Europe
104
+ { id: 'GR', code: '30', label: 'Greece (+30)', mask: '(999) 9999999' },
105
+ { id: 'NL', code: '31', label: 'Netherlands (+31)', mask: '(99) 999 9999' },
106
+ { id: 'BE', code: '32', label: 'Belgium (+32)', mask: '(99) 999 99 99' },
107
+ { id: 'FR', code: '33', label: 'France (+33)', mask: '(9) 99 99 99 99' },
108
+ { id: 'ES', code: '34', label: 'Spain (+34)', mask: '(99) 999 99 99' },
109
+ { id: 'HU', code: '36', label: 'Hungary (+36)', mask: '(99) 999 9999' },
110
+ { id: 'IT', code: '39', label: 'Italy (+39)', mask: '9 9999 99999' },
111
+ { id: 'RO', code: '40', label: 'Romania (+40)', mask: '(99) 999 9999' },
112
+ { id: 'CH', code: '41', label: 'Switzerland (+41)', mask: '(99) 999 99 99' },
113
+ { id: 'AT', code: '43', label: 'Austria (+43)', mask: '(999) 999 9999' },
114
+ { id: 'GB', code: '44', label: 'United Kingdom (+44)', mask: '9999 999999' },
115
+ { id: 'DK', code: '45', label: 'Denmark (+45)', mask: '99 99 99 99' },
116
+ { id: 'SE', code: '46', label: 'Sweden (+46)', mask: '99-999 99 99' },
117
+ { id: 'NO', code: '47', label: 'Norway (+47)', mask: '99 99 99 99' },
118
+ { id: 'PL', code: '48', label: 'Poland (+48)', mask: '99 999 99 99' },
119
+ { id: 'DE', code: '49', label: 'Germany (+49)', mask: '(999) 9999 9999' },
120
+ { id: 'PT', code: '351', label: 'Portugal (+351)', mask: '99 999 9999' },
121
+ { id: 'IE', code: '353', label: 'Ireland (+353)', mask: '99 999 9999' },
122
+ { id: 'IS', code: '354', label: 'Iceland (+354)', mask: '999 9999' },
123
+ { id: 'AL', code: '355', label: 'Albania (+355)', mask: '99 999 9999' },
124
+ { id: 'MT', code: '356', label: 'Malta (+356)', mask: '9999 9999' },
125
+ { id: 'CY', code: '357', label: 'Cyprus (+357)', mask: '99 999 999' },
126
+ { id: 'FI', code: '358', label: 'Finland (+358)', mask: '99 999 9999' },
127
+ { id: 'BG', code: '359', label: 'Bulgaria (+359)', mask: '(99) 999 9999' },
128
+ { id: 'LT', code: '370', label: 'Lithuania (+370)', mask: '6 999 9999' },
129
+ { id: 'LV', code: '371', label: 'Latvia (+371)', mask: '29999999' },
130
+ { id: 'EE', code: '372', label: 'Estonia (+372)', mask: '5 999 9999' },
131
+ { id: 'MD', code: '373', label: 'Moldova (+373)', mask: '79 999 999' },
132
+ { id: 'AM', code: '374', label: 'Armenia (+374)', mask: '99 999999' },
133
+ { id: 'BY', code: '375', label: 'Belarus (+375)', mask: '29 999 99 99' },
134
+ { id: 'AD', code: '376', label: 'Andorra (+376)', mask: '3 999 999' },
135
+ { id: 'MC', code: '377', label: 'Monaco (+377)', mask: '99 99 99 99' },
136
+ { id: 'SM', code: '378', label: 'San Marino (+378)', mask: '9999 99999' },
137
+ { id: 'Va', code: '379', label: 'Vatican City (+379)', mask: '999 999999' },
138
+ { id: 'UA', code: '380', label: 'Ukraine (+380)', mask: '(99) 999 99 99' },
139
+ { id: 'RS', code: '381', label: 'Serbia (+381)', mask: '(9) 999 999 999' },
140
+ { id: 'ME', code: '382', label: 'Montenegro (+382)', mask: '(99) 999 999' },
141
+ { id: 'XK', code: '383', label: 'Kosovo (+383)', mask: '(49) 999 999' },
142
+ { id: 'HR', code: '385', label: 'Croatia (+385)', mask: '(99) 999 9999' },
143
+ { id: 'SI', code: '386', label: 'Slovenia (+386)', mask: '31 999 999' },
144
+ { id: 'BA', code: '387', label: 'Bosnia & Herzegovina (+387)', mask: '(99) 999 999' },
145
+ { id: 'MK', code: '389', label: 'North Macedonia (+389)', mask: '7 999 9999' },
146
+ { id: 'CZ', code: '420', label: 'Czech Republic (+420)', mask: '999 999 999' },
147
+ { id: 'SK', code: '421', label: 'Slovakia (+421)', mask: '999 999 999' },
148
+ { id: 'LI', code: '423', label: 'Liechtenstein (+423)', mask: '799 9999' },
149
+ // Asia & Pacific
150
+ { id: 'AF', code: '93', label: 'Afghanistan (+93)', mask: '70 999 9999' },
151
+ { id: 'PK', code: '92', label: 'Pakistan (+92)', mask: '300 9999999' },
152
+ { id: 'IN', code: '91', label: 'India (+91)', mask: '99999 99999' },
153
+ { id: 'BD', code: '880', label: 'Bangladesh (+880)', mask: '999 999 9999' },
154
+ { id: 'LK', code: '94', label: 'Sri Lanka (+94)', mask: '11 2 345 678' },
155
+ { id: 'MV', code: '960', label: 'Maldives (+960)', mask: '9 99 9999' },
156
+ { id: 'MM', code: '95', label: 'Myanmar (+95)', mask: '9 999 999 99' },
157
+ { id: 'KH', code: '855', label: 'Cambodia (+855)', mask: '(99) 999 999' },
158
+ { id: 'LA', code: '856', label: 'Laos (+856)', mask: '20 999 9999' },
159
+ { id: 'TH', code: '66', label: 'Thailand (+66)', mask: '9 9999 9999' },
160
+ { id: 'VN', code: '84', label: 'Vietnam (+84)', mask: '99 999 9999' },
161
+ { id: 'MY', code: '60', label: 'Malaysia (+60)', mask: '19-999 9999' },
162
+ { id: 'SG', code: '65', label: 'Singapore (+65)', mask: '9999 9999' },
163
+ { id: 'ID', code: '62', label: 'Indonesia (+62)', mask: '(+62) 812-3456-7890' },
164
+ { id: 'PH', code: '63', label: 'Philippines (+63)', mask: '(99) 999 9999' },
165
+ { id: 'AU', code: '61', label: 'Australia (+61)', mask: '4 9999 9999' },
166
+ { id: 'NZ', code: '64', label: 'New Zealand (+64)', mask: '21 234 5678' },
167
+ { id: 'JP', code: '81', label: 'Japan (+81)', mask: '90-1234-5678' },
168
+ { id: 'KR', code: '82', label: 'South Korea (+82)', mask: '10-1234-5678' },
169
+ { id: 'CN', code: '86', label: 'China (+86)', mask: '10 1234 5678' },
170
+ { id: 'TW', code: '886', label: 'Taiwan (+886)', mask: '912-345-678' },
171
+ { id: 'HK', code: '852', label: 'Hong Kong (+852)', mask: '9123 4567' },
172
+ { id: 'MO', code: '853', label: 'Macao (+853)', mask: '6234 5678' },
173
+ ];
174
+ var CustomPhoneInput = function (_a) {
175
+ var id = _a.id, name = _a.name, label = _a.label, value = _a.value, _b = _a.placeholder, placeholder = _b === void 0 ? 'Telefon numaranızı giriniz.' : _b, _c = _a.placeholderWhenUnselectedCountryCode, placeholderWhenUnselectedCountryCode = _c === void 0 ? 'Önce ülke kodunu seçiniz.' : _c, _d = _a.placeholderForCountryCode, placeholderForCountryCode = _d === void 0 ? "Seçiniz..." : _d, _e = _a.required, required = _e === void 0 ? false : _e, _f = _a.submitted, submitted = _f === void 0 ? false : _f, errorMessage = _a.errorMessage, _g = _a.conditionalErrorVisible, conditionalErrorVisible = _g === void 0 ? false : _g, conditionalErrorMessage = _a.conditionalErrorMessage, _h = _a.conditionalErrorVisibleForCountryCode, conditionalErrorVisibleForCountryCode = _h === void 0 ? false : _h, _j = _a.conditionalErrorMessageForCountryCode, conditionalErrorMessageForCountryCode = _j === void 0 ? '' : _j, _k = _a.disabled, disabled = _k === void 0 ? false : _k, _l = _a.readOnly, readOnly = _l === void 0 ? false : _l, description = _a.description, descriptionForCountryCode = _a.descriptionForCountryCode, tooltip = _a.tooltip, style = _a.style, mainClass = _a.mainClass, className = _a.className, _m = _a.countryCodeText, countryCodeText = _m === void 0 ? 'Ülke Kodu' : _m, onChange = _a.onChange;
176
+ var _o = (0, react_1.useState)(null), country = _o[0], setCountry = _o[1];
177
+ var _p = (0, react_1.useState)(''), national = _p[0], setNational = _p[1];
178
+ var _q = (0, react_1.useState)(''), countryId = _q[0], setCountryId = _q[1];
179
+ var showInvalidCountry = submitted && required && !countryId;
180
+ var skipParse = (0, react_1.useRef)(false);
181
+ var sorted = (0, react_1.useMemo)(function () { return __spreadArray([], countries, true).sort(function (a, b) { return b.code.length - a.code.length; }); }, []);
182
+ (0, react_1.useEffect)(function () {
183
+ if (!value) {
184
+ setCountryId('');
185
+ setNational('');
186
+ return;
187
+ }
188
+ for (var _i = 0, sorted_1 = sorted; _i < sorted_1.length; _i++) {
189
+ var c = sorted_1[_i];
190
+ if (value.startsWith(c.code)) {
191
+ setCountry(c);
192
+ setNational(value.slice(c.code.length));
193
+ return;
194
+ }
195
+ }
196
+ setCountry(sorted[0]);
197
+ setNational(value);
198
+ }, [value, sorted]);
199
+ var handleNationalChange = function (e) {
200
+ skipParse.current = true;
201
+ var raw = e.target.value.replace(/\D/g, '');
202
+ setNational(raw);
203
+ onChange((country === null || country === void 0 ? void 0 : country.code) + raw);
204
+ };
205
+ // validation için
206
+ var showInvalid = submitted && required && !value;
207
+ return (react_1.default.createElement("div", { className: mainClass, style: style },
208
+ react_1.default.createElement("div", { className: "form-group" },
209
+ react_1.default.createElement("div", { className: "row" },
210
+ react_1.default.createElement("div", { className: "col-12 col-md-3" },
211
+ react_1.default.createElement(CustomSelect_1.default, { id: id && "".concat(id, "-country"), name: name && "".concat(name, "-country"), label: countryCodeText, options: countries.map(function (c) { return ({
212
+ id: c.id,
213
+ label: c.label,
214
+ value: c.id
215
+ }); }), value: (country === null || country === void 0 ? void 0 : country.id) || '', onChange: function (val) {
216
+ var selId = Array.isArray(val) ? val[0] : val;
217
+ setCountryId(selId);
218
+ setNational('');
219
+ onChange(selId ? countries.find(function (c) { return c.id === selId; }).code : '');
220
+ }, disabled: disabled, searchable: true, multiple: false, placeholder: placeholderForCountryCode, className: "h-100 ".concat(showInvalidCountry ? 'is-invalid' : ''), required: required }),
221
+ conditionalErrorVisibleForCountryCode && (react_1.default.createElement("div", { className: "conditional-error-message text-warning mt-2" },
222
+ react_1.default.createElement("div", { className: "description-icon" },
223
+ react_1.default.createElement(fa_1.FaExclamationTriangle, null)),
224
+ react_1.default.createElement("div", { className: "description-text" },
225
+ react_1.default.createElement("span", null, conditionalErrorMessageForCountryCode)))),
226
+ descriptionForCountryCode && (react_1.default.createElement("div", { className: "form-description text-secondary mt-2" },
227
+ react_1.default.createElement("div", { className: "description-icon" },
228
+ react_1.default.createElement(fa_1.FaInfoCircle, null)),
229
+ react_1.default.createElement("div", { className: "description-text" },
230
+ react_1.default.createElement("span", null, descriptionForCountryCode))))),
231
+ react_1.default.createElement("div", { className: "col-12 col-md-9" },
232
+ react_1.default.createElement("label", { className: "form-label" }, label),
233
+ tooltip ? (react_1.default.createElement(react_bootstrap_1.OverlayTrigger, { placement: "bottom", overlay: react_1.default.createElement(react_bootstrap_1.Tooltip, { id: "tt-".concat(tooltip) }, tooltip) },
234
+ react_1.default.createElement(react_input_mask_1.default, { id: id, name: name, mask: (country === null || country === void 0 ? void 0 : country.mask) || '', value: national, onChange: handleNationalChange, className: "form-control ".concat(className || '', " ").concat(showInvalid ? 'is-invalid' : ''), placeholder: countryId === '' ? placeholderWhenUnselectedCountryCode : placeholder || (country === null || country === void 0 ? void 0 : country.mask) || '', disabled: countryId === '' || disabled, readOnly: readOnly, autoComplete: "tel", required: required }))) : (react_1.default.createElement(react_input_mask_1.default, { id: id, name: name, mask: (country === null || country === void 0 ? void 0 : country.mask) || '', value: national, onChange: handleNationalChange, className: "form-control ".concat(className || '', " ").concat(showInvalid ? 'is-invalid' : ''), placeholder: countryId === '' ? placeholderWhenUnselectedCountryCode : placeholder || (country === null || country === void 0 ? void 0 : country.mask) || '', disabled: countryId === '' || disabled, readOnly: readOnly, autoComplete: "tel", required: required })),
235
+ react_1.default.createElement("div", { className: "invalid-feedback text-danger" },
236
+ react_1.default.createElement("div", { className: "description-icon" },
237
+ react_1.default.createElement(fa_1.FaExclamationTriangle, null)),
238
+ react_1.default.createElement("div", { className: "description-text" },
239
+ react_1.default.createElement("span", null, errorMessage || "Bu alan boş bırakılamaz."))),
240
+ conditionalErrorVisible && (react_1.default.createElement("div", { className: "conditional-error-message text-warning mt-2" },
241
+ react_1.default.createElement("div", { className: "description-icon" },
242
+ react_1.default.createElement(fa_1.FaExclamationTriangle, null)),
243
+ react_1.default.createElement("div", { className: "description-text" },
244
+ react_1.default.createElement("span", null, conditionalErrorMessage)))),
245
+ description && (react_1.default.createElement("div", { className: "form-description text-secondary mt-2" },
246
+ react_1.default.createElement("div", { className: "description-icon" },
247
+ react_1.default.createElement(fa_1.FaInfoCircle, null)),
248
+ react_1.default.createElement("div", { className: "description-text" },
249
+ react_1.default.createElement("span", null, description)))))))));
250
+ };
251
+ exports.default = CustomPhoneInput;
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ import CustomDivider from './components/CustomDivider';
6
6
  import CustomForm from './components/CustomForm';
7
7
  import CustomInput from './components/CustomInput';
8
8
  import CustomModal from './components/CustomModal';
9
+ import CustomPhoneInput from './components/CustomPhoneInput';
9
10
  import CustomRadioButton from './components/CustomRadioButton';
10
11
  import CustomRichTextbox from './components/CustomRichTextbox';
11
12
  import CustomSelect from './components/CustomSelect';
@@ -17,4 +18,4 @@ import CustomAutocompleteInput from './components/CustomAutocompleteInput';
17
18
  import CustomProgressBar from './components/CustomProgressBar';
18
19
  import CustomTimeline from './components/CustomTimeline';
19
20
  import CustomDatatable from './components/CustomDatatable';
20
- export { AlbinaForm, CustomButton, CustomCheckbox, CustomDateTimePicker, CustomDivider, CustomForm, CustomInput, CustomModal, CustomRadioButton, CustomRichTextbox, CustomSelect, CustomTab, CustomText, CustomTextarea, CustomTreeView, CustomAutocompleteInput, CustomProgressBar, CustomTimeline, CustomDatatable, };
21
+ export { AlbinaForm, CustomButton, CustomCheckbox, CustomDateTimePicker, CustomDivider, CustomForm, CustomInput, CustomModal, CustomPhoneInput, CustomRadioButton, CustomRichTextbox, CustomSelect, 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.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.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"));
@@ -20,6 +20,8 @@ var CustomInput_1 = __importDefault(require("./components/CustomInput"));
20
20
  exports.CustomInput = CustomInput_1.default;
21
21
  var CustomModal_1 = __importDefault(require("./components/CustomModal"));
22
22
  exports.CustomModal = CustomModal_1.default;
23
+ var CustomPhoneInput_1 = __importDefault(require("./components/CustomPhoneInput"));
24
+ exports.CustomPhoneInput = CustomPhoneInput_1.default;
23
25
  var CustomRadioButton_1 = __importDefault(require("./components/CustomRadioButton"));
24
26
  exports.CustomRadioButton = CustomRadioButton_1.default;
25
27
  var CustomRichTextbox_1 = __importDefault(require("./components/CustomRichTextbox"));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "albinasoft-ui-package",
3
- "version": "1.1.11",
3
+ "version": "1.1.13",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {