@cloud-ru/uikit-product-fields-predefined 0.13.3 → 0.13.5
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/CHANGELOG.md +25 -0
- package/dist/cjs/components/AIDisclaimer/AIDisclaimer.d.ts +4 -0
- package/dist/cjs/components/AIDisclaimer/AIDisclaimer.js +13 -0
- package/dist/cjs/components/AIDisclaimer/index.d.ts +1 -0
- package/dist/cjs/components/AIDisclaimer/index.js +17 -0
- package/dist/cjs/components/AIDisclaimer/styles.module.css +21 -0
- package/dist/cjs/components/FieldAi/FieldAi.d.ts +20 -0
- package/dist/cjs/components/FieldAi/FieldAi.js +66 -0
- package/dist/cjs/components/FieldAi/components/CheckItem/CheckItem.d.ts +8 -0
- package/dist/cjs/components/FieldAi/components/CheckItem/CheckItem.js +28 -0
- package/dist/cjs/components/FieldAi/components/CheckItem/index.d.ts +1 -0
- package/dist/cjs/components/FieldAi/components/CheckItem/index.js +17 -0
- package/dist/cjs/components/FieldAi/components/CheckItem/styles.module.css +22 -0
- package/dist/cjs/components/FieldAi/components/MobileFieldAi/MobileFieldAi.d.ts +5 -0
- package/dist/cjs/components/FieldAi/components/MobileFieldAi/MobileFieldAi.js +31 -0
- package/dist/cjs/components/FieldAi/components/MobileFieldAi/index.d.ts +1 -0
- package/dist/cjs/components/FieldAi/components/MobileFieldAi/index.js +17 -0
- package/dist/cjs/components/FieldAi/components/MobileFieldAi/styles.module.css +87 -0
- package/dist/cjs/components/FieldAi/components/PasswordValidation/PasswordValidation.d.ts +6 -0
- package/dist/cjs/components/FieldAi/components/PasswordValidation/PasswordValidation.js +23 -0
- package/dist/cjs/components/FieldAi/components/PasswordValidation/index.d.ts +1 -0
- package/dist/cjs/components/FieldAi/components/PasswordValidation/index.js +17 -0
- package/dist/cjs/components/FieldAi/components/PasswordValidation/styles.module.css +35 -0
- package/dist/cjs/components/FieldAi/components/TextArea/TextArea.d.ts +39 -0
- package/dist/cjs/components/FieldAi/components/TextArea/TextArea.js +33 -0
- package/dist/cjs/components/FieldAi/components/TextArea/index.d.ts +1 -0
- package/dist/cjs/components/FieldAi/components/TextArea/index.js +17 -0
- package/dist/cjs/components/FieldAi/components/TextArea/styles.module.css +32 -0
- package/dist/cjs/components/FieldAi/components/WithPasswordValidation/WithPasswordValidation.d.ts +9 -0
- package/dist/cjs/components/FieldAi/components/WithPasswordValidation/WithPasswordValidation.js +23 -0
- package/dist/cjs/components/FieldAi/components/WithPasswordValidation/index.d.ts +1 -0
- package/dist/cjs/components/FieldAi/components/WithPasswordValidation/index.js +17 -0
- package/dist/cjs/components/FieldAi/components/WithPasswordValidation/styles.module.css +5 -0
- package/dist/cjs/components/FieldAi/index.d.ts +1 -0
- package/dist/cjs/components/FieldAi/index.js +17 -0
- package/dist/cjs/components/FieldAi/styles.module.css +25 -0
- package/dist/cjs/components/FieldAi/utils.d.ts +9 -0
- package/dist/cjs/components/FieldAi/utils.js +19 -0
- package/dist/cjs/components/FieldChat/FieldChat.d.ts +15 -0
- package/dist/cjs/components/FieldChat/FieldChat.js +55 -0
- package/dist/cjs/components/FieldChat/components/Attachments/Attachments.d.ts +6 -0
- package/dist/cjs/components/FieldChat/components/Attachments/Attachments.js +20 -0
- package/dist/cjs/components/FieldChat/components/Attachments/index.d.ts +1 -0
- package/dist/cjs/components/FieldChat/components/Attachments/index.js +17 -0
- package/dist/cjs/components/FieldChat/components/Attachments/styles.module.css +9 -0
- package/dist/cjs/components/FieldChat/index.d.ts +1 -0
- package/dist/cjs/components/FieldChat/index.js +17 -0
- package/dist/cjs/components/FieldChat/styles.module.css +12 -0
- package/dist/cjs/components/FieldPhone/FieldPhone.d.ts +25 -0
- package/dist/cjs/components/FieldPhone/FieldPhone.js +131 -0
- package/dist/cjs/components/FieldPhone/__tests__/constants.d.ts +5 -0
- package/dist/cjs/components/FieldPhone/__tests__/constants.js +29 -0
- package/dist/cjs/components/FieldPhone/__tests__/formatPhoneNumber.spec.d.ts +1 -0
- package/dist/cjs/components/FieldPhone/__tests__/formatPhoneNumber.spec.js +14 -0
- package/dist/cjs/components/FieldPhone/__tests__/matchMedia.d.ts +1 -0
- package/dist/cjs/components/FieldPhone/__tests__/matchMedia.js +16 -0
- package/dist/cjs/components/FieldPhone/constants.d.ts +1 -0
- package/dist/cjs/components/FieldPhone/constants.js +4 -0
- package/dist/cjs/components/FieldPhone/countries.d.ts +3500 -0
- package/dist/cjs/components/FieldPhone/countries.js +1442 -0
- package/dist/cjs/components/FieldPhone/hooks/index.d.ts +2 -0
- package/dist/cjs/components/FieldPhone/hooks/index.js +18 -0
- package/dist/cjs/components/FieldPhone/hooks/useCountries.d.ts +2 -0
- package/dist/cjs/components/FieldPhone/hooks/useCountries.js +36 -0
- package/dist/cjs/components/FieldPhone/hooks/useMapCountryToOptions.d.ts +2 -0
- package/dist/cjs/components/FieldPhone/hooks/useMapCountryToOptions.js +19 -0
- package/dist/cjs/components/FieldPhone/index.d.ts +5 -0
- package/dist/cjs/components/FieldPhone/index.js +23 -0
- package/dist/cjs/components/FieldPhone/styles.module.css +3 -0
- package/dist/cjs/components/FieldPhone/types.d.ts +31 -0
- package/dist/cjs/components/FieldPhone/types.js +2 -0
- package/dist/cjs/components/FieldPhone/utils.d.ts +7 -0
- package/dist/cjs/components/FieldPhone/utils.js +57 -0
- package/dist/cjs/components/SelectCreate/SelectCreate.d.ts +21 -0
- package/dist/cjs/components/SelectCreate/SelectCreate.js +66 -0
- package/dist/cjs/components/SelectCreate/SelectFooter/SelectFooter.d.ts +7 -0
- package/dist/cjs/components/SelectCreate/SelectFooter/SelectFooter.js +16 -0
- package/dist/cjs/components/SelectCreate/SelectFooter/index.d.ts +1 -0
- package/dist/cjs/components/SelectCreate/SelectFooter/index.js +17 -0
- package/dist/cjs/components/SelectCreate/SelectFooter/styles.module.css +6 -0
- package/dist/cjs/components/SelectCreate/index.d.ts +1 -0
- package/dist/cjs/components/SelectCreate/index.js +17 -0
- package/dist/cjs/components/SelectCreate/types.d.ts +28 -0
- package/dist/cjs/components/SelectCreate/types.js +2 -0
- package/dist/cjs/components/SelectCreate/useSelectDataStates.d.ts +10 -0
- package/dist/cjs/components/SelectCreate/useSelectDataStates.js +26 -0
- package/dist/cjs/components/index.d.ts +5 -0
- package/dist/cjs/components/index.js +21 -0
- package/dist/cjs/helperComponents/FieldSubmitButton/FieldSubmitButton.d.ts +9 -0
- package/dist/cjs/helperComponents/FieldSubmitButton/FieldSubmitButton.js +15 -0
- package/dist/cjs/helperComponents/FieldSubmitButton/index.d.ts +1 -0
- package/dist/cjs/helperComponents/FieldSubmitButton/index.js +17 -0
- package/dist/cjs/helperComponents/TextAreaActionsFooter/TextAreaActionsFooter.d.ts +7 -0
- package/dist/cjs/helperComponents/TextAreaActionsFooter/TextAreaActionsFooter.js +12 -0
- package/dist/cjs/helperComponents/TextAreaActionsFooter/index.d.ts +1 -0
- package/dist/cjs/helperComponents/TextAreaActionsFooter/index.js +17 -0
- package/dist/cjs/helperComponents/TextAreaActionsFooter/styles.module.css +21 -0
- package/dist/cjs/helpers/capitalize.d.ts +1 -0
- package/dist/cjs/helpers/capitalize.js +6 -0
- package/dist/cjs/helpers/getSymbolsRangeFromMask.d.ts +8 -0
- package/dist/cjs/helpers/getSymbolsRangeFromMask.js +17 -0
- package/dist/cjs/helpers/index.d.ts +3 -0
- package/dist/cjs/helpers/index.js +19 -0
- package/dist/cjs/helpers/isTouchDevice.d.ts +2 -0
- package/dist/cjs/helpers/isTouchDevice.js +6 -0
- package/dist/cjs/hooks/index.d.ts +1 -0
- package/dist/cjs/hooks/index.js +17 -0
- package/dist/cjs/hooks/useOpen.d.ts +5 -0
- package/dist/cjs/hooks/useOpen.js +18 -0
- package/dist/cjs/index.d.ts +3 -0
- package/dist/cjs/index.js +22 -0
- package/dist/esm/components/AIDisclaimer/AIDisclaimer.d.ts +4 -0
- package/dist/esm/components/AIDisclaimer/AIDisclaimer.js +7 -0
- package/dist/esm/components/AIDisclaimer/index.d.ts +1 -0
- package/dist/esm/components/AIDisclaimer/index.js +1 -0
- package/dist/esm/components/AIDisclaimer/styles.module.css +21 -0
- package/dist/esm/components/FieldAi/FieldAi.d.ts +20 -0
- package/dist/esm/components/FieldAi/FieldAi.js +60 -0
- package/dist/esm/components/FieldAi/components/CheckItem/CheckItem.d.ts +8 -0
- package/dist/esm/components/FieldAi/components/CheckItem/CheckItem.js +22 -0
- package/dist/esm/components/FieldAi/components/CheckItem/index.d.ts +1 -0
- package/dist/esm/components/FieldAi/components/CheckItem/index.js +1 -0
- package/dist/esm/components/FieldAi/components/CheckItem/styles.module.css +22 -0
- package/dist/esm/components/FieldAi/components/MobileFieldAi/MobileFieldAi.d.ts +5 -0
- package/dist/esm/components/FieldAi/components/MobileFieldAi/MobileFieldAi.js +25 -0
- package/dist/esm/components/FieldAi/components/MobileFieldAi/index.d.ts +1 -0
- package/dist/esm/components/FieldAi/components/MobileFieldAi/index.js +1 -0
- package/dist/esm/components/FieldAi/components/MobileFieldAi/styles.module.css +87 -0
- package/dist/esm/components/FieldAi/components/PasswordValidation/PasswordValidation.d.ts +6 -0
- package/dist/esm/components/FieldAi/components/PasswordValidation/PasswordValidation.js +17 -0
- package/dist/esm/components/FieldAi/components/PasswordValidation/index.d.ts +1 -0
- package/dist/esm/components/FieldAi/components/PasswordValidation/index.js +1 -0
- package/dist/esm/components/FieldAi/components/PasswordValidation/styles.module.css +35 -0
- package/dist/esm/components/FieldAi/components/TextArea/TextArea.d.ts +39 -0
- package/dist/esm/components/FieldAi/components/TextArea/TextArea.js +27 -0
- package/dist/esm/components/FieldAi/components/TextArea/index.d.ts +1 -0
- package/dist/esm/components/FieldAi/components/TextArea/index.js +1 -0
- package/dist/esm/components/FieldAi/components/TextArea/styles.module.css +32 -0
- package/dist/esm/components/FieldAi/components/WithPasswordValidation/WithPasswordValidation.d.ts +9 -0
- package/dist/esm/components/FieldAi/components/WithPasswordValidation/WithPasswordValidation.js +17 -0
- package/dist/esm/components/FieldAi/components/WithPasswordValidation/index.d.ts +1 -0
- package/dist/esm/components/FieldAi/components/WithPasswordValidation/index.js +1 -0
- package/dist/esm/components/FieldAi/components/WithPasswordValidation/styles.module.css +5 -0
- package/dist/esm/components/FieldAi/index.d.ts +1 -0
- package/dist/esm/components/FieldAi/index.js +1 -0
- package/dist/esm/components/FieldAi/styles.module.css +25 -0
- package/dist/esm/components/FieldAi/utils.d.ts +9 -0
- package/dist/esm/components/FieldAi/utils.js +15 -0
- package/dist/esm/components/FieldChat/FieldChat.d.ts +15 -0
- package/dist/esm/components/FieldChat/FieldChat.js +49 -0
- package/dist/esm/components/FieldChat/components/Attachments/Attachments.d.ts +6 -0
- package/dist/esm/components/FieldChat/components/Attachments/Attachments.js +14 -0
- package/dist/esm/components/FieldChat/components/Attachments/index.d.ts +1 -0
- package/dist/esm/components/FieldChat/components/Attachments/index.js +1 -0
- package/dist/esm/components/FieldChat/components/Attachments/styles.module.css +9 -0
- package/dist/esm/components/FieldChat/index.d.ts +1 -0
- package/dist/esm/components/FieldChat/index.js +1 -0
- package/dist/esm/components/FieldChat/styles.module.css +12 -0
- package/dist/esm/components/FieldPhone/FieldPhone.d.ts +25 -0
- package/dist/esm/components/FieldPhone/FieldPhone.js +125 -0
- package/dist/esm/components/FieldPhone/__tests__/constants.d.ts +5 -0
- package/dist/esm/components/FieldPhone/__tests__/constants.js +26 -0
- package/dist/esm/components/FieldPhone/__tests__/formatPhoneNumber.spec.d.ts +1 -0
- package/dist/esm/components/FieldPhone/__tests__/formatPhoneNumber.spec.js +12 -0
- package/dist/esm/components/FieldPhone/__tests__/matchMedia.d.ts +1 -0
- package/dist/esm/components/FieldPhone/__tests__/matchMedia.js +14 -0
- package/dist/esm/components/FieldPhone/constants.d.ts +1 -0
- package/dist/esm/components/FieldPhone/constants.js +1 -0
- package/dist/esm/components/FieldPhone/countries.d.ts +3500 -0
- package/dist/esm/components/FieldPhone/countries.js +1436 -0
- package/dist/esm/components/FieldPhone/hooks/index.d.ts +2 -0
- package/dist/esm/components/FieldPhone/hooks/index.js +2 -0
- package/dist/esm/components/FieldPhone/hooks/useCountries.d.ts +2 -0
- package/dist/esm/components/FieldPhone/hooks/useCountries.js +33 -0
- package/dist/esm/components/FieldPhone/hooks/useMapCountryToOptions.d.ts +2 -0
- package/dist/esm/components/FieldPhone/hooks/useMapCountryToOptions.js +16 -0
- package/dist/esm/components/FieldPhone/index.d.ts +5 -0
- package/dist/esm/components/FieldPhone/index.js +4 -0
- package/dist/esm/components/FieldPhone/styles.module.css +3 -0
- package/dist/esm/components/FieldPhone/types.d.ts +31 -0
- package/dist/esm/components/FieldPhone/types.js +1 -0
- package/dist/esm/components/FieldPhone/utils.d.ts +7 -0
- package/dist/esm/components/FieldPhone/utils.js +51 -0
- package/dist/esm/components/SelectCreate/SelectCreate.d.ts +21 -0
- package/dist/esm/components/SelectCreate/SelectCreate.js +63 -0
- package/dist/esm/components/SelectCreate/SelectFooter/SelectFooter.d.ts +7 -0
- package/dist/esm/components/SelectCreate/SelectFooter/SelectFooter.js +10 -0
- package/dist/esm/components/SelectCreate/SelectFooter/index.d.ts +1 -0
- package/dist/esm/components/SelectCreate/SelectFooter/index.js +1 -0
- package/dist/esm/components/SelectCreate/SelectFooter/styles.module.css +6 -0
- package/dist/esm/components/SelectCreate/index.d.ts +1 -0
- package/dist/esm/components/SelectCreate/index.js +1 -0
- package/dist/esm/components/SelectCreate/types.d.ts +28 -0
- package/dist/esm/components/SelectCreate/types.js +1 -0
- package/dist/esm/components/SelectCreate/useSelectDataStates.d.ts +10 -0
- package/dist/esm/components/SelectCreate/useSelectDataStates.js +23 -0
- package/dist/esm/components/index.d.ts +5 -0
- package/dist/esm/components/index.js +5 -0
- package/dist/esm/helperComponents/FieldSubmitButton/FieldSubmitButton.d.ts +9 -0
- package/dist/esm/helperComponents/FieldSubmitButton/FieldSubmitButton.js +12 -0
- package/dist/esm/helperComponents/FieldSubmitButton/index.d.ts +1 -0
- package/dist/esm/helperComponents/FieldSubmitButton/index.js +1 -0
- package/dist/esm/helperComponents/TextAreaActionsFooter/TextAreaActionsFooter.d.ts +7 -0
- package/dist/esm/helperComponents/TextAreaActionsFooter/TextAreaActionsFooter.js +6 -0
- package/dist/esm/helperComponents/TextAreaActionsFooter/index.d.ts +1 -0
- package/dist/esm/helperComponents/TextAreaActionsFooter/index.js +1 -0
- package/dist/esm/helperComponents/TextAreaActionsFooter/styles.module.css +21 -0
- package/dist/esm/helpers/capitalize.d.ts +1 -0
- package/dist/esm/helpers/capitalize.js +3 -0
- package/dist/esm/helpers/getSymbolsRangeFromMask.d.ts +8 -0
- package/dist/esm/helpers/getSymbolsRangeFromMask.js +14 -0
- package/dist/esm/helpers/index.d.ts +3 -0
- package/dist/esm/helpers/index.js +3 -0
- package/dist/esm/helpers/isTouchDevice.d.ts +2 -0
- package/dist/esm/helpers/isTouchDevice.js +3 -0
- package/dist/esm/hooks/index.d.ts +1 -0
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/useOpen.d.ts +5 -0
- package/dist/esm/hooks/useOpen.js +15 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +3 -0
- package/dist/tsconfig.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/package.json +9 -8
|
@@ -0,0 +1,18 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./useCountries"), exports);
|
|
18
|
+
__exportStar(require("./useMapCountryToOptions"), exports);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useCountries = useCountries;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const countries_1 = require("../countries");
|
|
6
|
+
const utils_1 = require("../utils");
|
|
7
|
+
const useMapCountryToOptions_1 = require("./useMapCountryToOptions");
|
|
8
|
+
function useCountries(optionsSettings) {
|
|
9
|
+
const mapCountryToOption = (0, useMapCountryToOptions_1.useMapCountryToOptions)();
|
|
10
|
+
const filterCountries = (0, react_1.useMemo)(() => {
|
|
11
|
+
if (!optionsSettings) {
|
|
12
|
+
return () => true;
|
|
13
|
+
}
|
|
14
|
+
const { includedCountries, excludedCountries } = optionsSettings;
|
|
15
|
+
const uniqueKey = 'value';
|
|
16
|
+
if (includedCountries) {
|
|
17
|
+
const includedSet = (0, utils_1.uniqueSet)(includedCountries, uniqueKey);
|
|
18
|
+
return (country) => includedSet.has(country[uniqueKey]);
|
|
19
|
+
}
|
|
20
|
+
if (excludedCountries) {
|
|
21
|
+
const excludedSet = (0, utils_1.uniqueSet)(excludedCountries, uniqueKey);
|
|
22
|
+
return (country) => !excludedSet.has(country[uniqueKey]);
|
|
23
|
+
}
|
|
24
|
+
return () => true;
|
|
25
|
+
}, [optionsSettings]);
|
|
26
|
+
return (0, react_1.useMemo)(() => {
|
|
27
|
+
if (optionsSettings === null || optionsSettings === void 0 ? void 0 : optionsSettings.overriddenOptions)
|
|
28
|
+
return optionsSettings.overriddenOptions;
|
|
29
|
+
return countries_1.ALL_COUNTRY_CODES.reduce((result, country) => {
|
|
30
|
+
if (filterCountries(country)) {
|
|
31
|
+
result.push(mapCountryToOption(country));
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}, []);
|
|
35
|
+
}, [optionsSettings, filterCountries, mapCountryToOption]);
|
|
36
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useMapCountryToOptions = useMapCountryToOptions;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const uikit_product_locale_1 = require("@sbercloud/uikit-product-locale");
|
|
6
|
+
function useMapCountryToOptions() {
|
|
7
|
+
const { t } = (0, uikit_product_locale_1.useLocale)('FieldsPredefined');
|
|
8
|
+
const mapCountryToOption = (0, react_1.useCallback)(({ value: id, mask, caption, beforeContent, iso2 }) => ({
|
|
9
|
+
id,
|
|
10
|
+
mask,
|
|
11
|
+
content: {
|
|
12
|
+
option: t(`FieldPhone.${id}`),
|
|
13
|
+
caption: caption,
|
|
14
|
+
},
|
|
15
|
+
beforeContent,
|
|
16
|
+
iso2,
|
|
17
|
+
}), [t]);
|
|
18
|
+
return mapCountryToOption;
|
|
19
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.detectCountryByPhone = exports.formatPhoneNumber = void 0;
|
|
18
|
+
__exportStar(require("./FieldPhone"), exports);
|
|
19
|
+
__exportStar(require("./countries"), exports);
|
|
20
|
+
__exportStar(require("./hooks"), exports);
|
|
21
|
+
var utils_1 = require("./utils");
|
|
22
|
+
Object.defineProperty(exports, "formatPhoneNumber", { enumerable: true, get: function () { return utils_1.formatPhoneNumber; } });
|
|
23
|
+
Object.defineProperty(exports, "detectCountryByPhone", { enumerable: true, get: function () { return utils_1.detectCountryByPhone; } });
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { useIMask } from 'react-imask';
|
|
3
|
+
import { ALL_COUNTRY_CODES } from './countries';
|
|
4
|
+
export type FieldPhoneOptionsProps = {
|
|
5
|
+
id: string;
|
|
6
|
+
beforeContent: ReactNode;
|
|
7
|
+
content: {
|
|
8
|
+
option: string;
|
|
9
|
+
caption: string;
|
|
10
|
+
};
|
|
11
|
+
mask: string;
|
|
12
|
+
iso2: string;
|
|
13
|
+
};
|
|
14
|
+
export type MaskOptions = Parameters<typeof useIMask>[0];
|
|
15
|
+
export type Country = (typeof ALL_COUNTRY_CODES)[number];
|
|
16
|
+
type OneOf<T extends object> = {
|
|
17
|
+
[K in keyof T]: {
|
|
18
|
+
[P in K]: T[P];
|
|
19
|
+
} & {
|
|
20
|
+
[P in Exclude<keyof T, K>]?: never;
|
|
21
|
+
};
|
|
22
|
+
}[keyof T];
|
|
23
|
+
export type CountrySettings = OneOf<{
|
|
24
|
+
/** Список элементов выпадающего списка со странами, который будет передан в селект-компонент и переопределит список объявленных стран внутри пакета */
|
|
25
|
+
overriddenOptions: FieldPhoneOptionsProps[];
|
|
26
|
+
/** Список стран, которые должны отображаться в селекторе (будут выбраны из перечня стран, объявленных внутри пакета) */
|
|
27
|
+
includedCountries: Country[];
|
|
28
|
+
/** Список стран, которые будут исключены из списка объявленных стран внутри пакета */
|
|
29
|
+
excludedCountries: Country[];
|
|
30
|
+
}>;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { FieldPhoneOptionsProps } from './types';
|
|
2
|
+
export declare const uniqueSet: <T, K extends keyof T>(arr: T[], key: K) => Set<T[K]>;
|
|
3
|
+
export declare const formatPhoneNumber: <T extends {
|
|
4
|
+
caption: string;
|
|
5
|
+
mask: string;
|
|
6
|
+
}>(phone: string, countries: readonly T[]) => string;
|
|
7
|
+
export declare function detectCountryByPhone(text: string, options: FieldPhoneOptionsProps[]): FieldPhoneOptionsProps | undefined;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatPhoneNumber = exports.uniqueSet = void 0;
|
|
4
|
+
exports.detectCountryByPhone = detectCountryByPhone;
|
|
5
|
+
const awesome_phonenumber_1 = require("awesome-phonenumber");
|
|
6
|
+
const countries_1 = require("./countries");
|
|
7
|
+
const uniqueSet = (arr, key) => new Set(arr.map(obj => obj[key]));
|
|
8
|
+
exports.uniqueSet = uniqueSet;
|
|
9
|
+
/* Приходит +79878887879/+7987****875, на основании mask возвращается +7 987-888-78-79/+7 987-***-*8-75 */
|
|
10
|
+
const formatPhoneNumber = (phone, countries) => {
|
|
11
|
+
const digits = phone.replace(/[^\d*]/g, '');
|
|
12
|
+
const country = countries.find(item => digits.startsWith(item.caption.replace('+', '')));
|
|
13
|
+
if (!country) {
|
|
14
|
+
return phone;
|
|
15
|
+
}
|
|
16
|
+
const countryCode = country.caption.replace('+', '');
|
|
17
|
+
const restNumber = digits.slice(countryCode.length);
|
|
18
|
+
let formatted = '';
|
|
19
|
+
let index = 0;
|
|
20
|
+
for (const char of country.mask) {
|
|
21
|
+
if (char === 'X') {
|
|
22
|
+
formatted += restNumber.charAt(index) || '';
|
|
23
|
+
index++;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
formatted += char;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return `${country.caption} ${formatted}`;
|
|
30
|
+
};
|
|
31
|
+
exports.formatPhoneNumber = formatPhoneNumber;
|
|
32
|
+
const byId = (id) => (option) => option.id === id;
|
|
33
|
+
function detectCountryByPhone(text, options) {
|
|
34
|
+
const cleaned = text.replace(/[^\d+]/g, '');
|
|
35
|
+
const withPlus = cleaned.startsWith('+') ? cleaned : `+${cleaned}`;
|
|
36
|
+
const parsedNumber = (0, awesome_phonenumber_1.parsePhoneNumber)(withPlus);
|
|
37
|
+
const regionCode = parsedNumber.regionCode;
|
|
38
|
+
/* У Абхазии iso2 совпадает с Россией */
|
|
39
|
+
if (/^\+?7(840|940)/.test(cleaned)) {
|
|
40
|
+
let russia;
|
|
41
|
+
for (const option of options) {
|
|
42
|
+
const id = option.id;
|
|
43
|
+
const iso = option.iso2;
|
|
44
|
+
if (id === countries_1.ABKHAZIA_COUNTRY_CODE.value) {
|
|
45
|
+
return option;
|
|
46
|
+
}
|
|
47
|
+
if (!russia && (id === countries_1.RUSSIA_COUNTRY_CODE.value || iso === countries_1.RUSSIA_COUNTRY_CODE.iso2)) {
|
|
48
|
+
russia = option;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return russia;
|
|
52
|
+
}
|
|
53
|
+
if (regionCode === countries_1.RUSSIA_COUNTRY_CODE.iso2) {
|
|
54
|
+
return options.find(byId(countries_1.RUSSIA_COUNTRY_CODE.value));
|
|
55
|
+
}
|
|
56
|
+
return options.find(opt => opt.iso2 === regionCode);
|
|
57
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { WithLayoutType, WithSupportProps } from '@sbercloud/uikit-product-utils';
|
|
2
|
+
import { IconPredefinedProps } from '@snack-uikit/icon-predefined';
|
|
3
|
+
import { EntityName, FieldSelectProps, LayoutProps } from './types';
|
|
4
|
+
export type SelectCreateProps = WithSupportProps<WithLayoutType & LayoutProps & {
|
|
5
|
+
/** Тип объекта для создания новой опции (в единственном числе вин.падеже для кнопки Создать <entityName> и множественном числе) */
|
|
6
|
+
entityName: EntityName;
|
|
7
|
+
/** Коллбек создания новой опции, при успешном выполнении возвращает value новой опции */
|
|
8
|
+
submitHandler: () => Promise<string | void>;
|
|
9
|
+
/** Пропсы прокидываемые в селект */
|
|
10
|
+
selectProps: FieldSelectProps;
|
|
11
|
+
/** Коллбек рефетча запроса на получение списка опций в случае ошибки (при передаче dataError в selectProps). */
|
|
12
|
+
onRefetch?: VoidFunction;
|
|
13
|
+
className?: string;
|
|
14
|
+
/** Коллбек после закрытия модального окна/дровера */
|
|
15
|
+
afterClose?: VoidFunction;
|
|
16
|
+
/** Иконка сервиса */
|
|
17
|
+
entityIcon?: IconPredefinedProps['icon'];
|
|
18
|
+
/** Управление состоянием компонента в зависимости от прав пользователя (по дефолту permission = 'canCreate') */
|
|
19
|
+
permission?: 'none' | 'canRead' | 'canCreate';
|
|
20
|
+
}>;
|
|
21
|
+
export declare const SelectCreate: import("react").NamedExoticComponent<SelectCreateProps>;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
12
|
+
var t = {};
|
|
13
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
14
|
+
t[p] = s[p];
|
|
15
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
16
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
17
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
18
|
+
t[p[i]] = s[p[i]];
|
|
19
|
+
}
|
|
20
|
+
return t;
|
|
21
|
+
};
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.SelectCreate = void 0;
|
|
24
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
25
|
+
const react_1 = require("react");
|
|
26
|
+
const uikit_product_icons_1 = require("@sbercloud/uikit-product-icons");
|
|
27
|
+
const uikit_product_locale_1 = require("@sbercloud/uikit-product-locale");
|
|
28
|
+
const uikit_product_mobile_fields_1 = require("@sbercloud/uikit-product-mobile-fields");
|
|
29
|
+
const uikit_product_mobile_modal_1 = require("@sbercloud/uikit-product-mobile-modal");
|
|
30
|
+
const uikit_product_utils_1 = require("@sbercloud/uikit-product-utils");
|
|
31
|
+
const button_1 = require("@snack-uikit/button");
|
|
32
|
+
const tooltip_1 = require("@snack-uikit/tooltip");
|
|
33
|
+
const hooks_1 = require("../../hooks");
|
|
34
|
+
const SelectFooter_1 = require("./SelectFooter");
|
|
35
|
+
const useSelectDataStates_1 = require("./useSelectDataStates");
|
|
36
|
+
exports.SelectCreate = (0, react_1.memo)(function SelectCreate(_a) {
|
|
37
|
+
var { selectProps, createLayoutProps, createLayoutType = 'drawer', entityName, submitHandler, onRefetch, className, afterClose, entityIcon, permission = 'canCreate', layoutType } = _a, rest = __rest(_a, ["selectProps", "createLayoutProps", "createLayoutType", "entityName", "submitHandler", "onRefetch", "className", "afterClose", "entityIcon", "permission", "layoutType"]);
|
|
38
|
+
const { t } = (0, uikit_product_locale_1.useLocale)('FieldsPredefined');
|
|
39
|
+
const { onClose, onOpen, isOpen } = (0, hooks_1.useOpen)();
|
|
40
|
+
const selectDataStates = (0, useSelectDataStates_1.useSelectDataStates)({ entityName, entityIcon, onRefetch });
|
|
41
|
+
const selectSize = selectProps.size || 'm';
|
|
42
|
+
const handleClose = (0, react_1.useCallback)(() => {
|
|
43
|
+
onClose();
|
|
44
|
+
afterClose === null || afterClose === void 0 ? void 0 : afterClose();
|
|
45
|
+
}, [afterClose, onClose]);
|
|
46
|
+
const handleCreate = (0, react_1.useCallback)(() => __awaiter(this, void 0, void 0, function* () {
|
|
47
|
+
var _a;
|
|
48
|
+
const newOption = yield submitHandler();
|
|
49
|
+
(_a = selectProps.onChange) === null || _a === void 0 ? void 0 : _a.call(selectProps, newOption);
|
|
50
|
+
handleClose();
|
|
51
|
+
}), [handleClose, selectProps, submitHandler]);
|
|
52
|
+
const buttons = (0, react_1.useMemo)(() => ({
|
|
53
|
+
approveButton: { label: t('SelectCreate.buttonCreate'), onClick: handleCreate },
|
|
54
|
+
cancelButton: { label: t('SelectCreate.buttonCancel'), onClick: onClose },
|
|
55
|
+
}), [t, handleCreate, onClose]);
|
|
56
|
+
const formLayout = (0, react_1.useMemo)(() => {
|
|
57
|
+
const layoutProps = Object.assign(Object.assign(Object.assign({}, createLayoutProps), buttons), { open: isOpen, onClose: handleClose, layoutType });
|
|
58
|
+
return createLayoutType === 'modal' ? ((0, jsx_runtime_1.jsx)(uikit_product_mobile_modal_1.AdaptiveModal, Object.assign({}, layoutProps))) : ((0, jsx_runtime_1.jsx)(uikit_product_mobile_modal_1.AdaptiveDrawer, Object.assign({}, layoutProps)));
|
|
59
|
+
}, [createLayoutProps, buttons, isOpen, handleClose, layoutType, createLayoutType]);
|
|
60
|
+
const createBtnLabel = `${t('SelectCreate.buttonCreate')} ${entityName.single.toLocaleLowerCase()}`;
|
|
61
|
+
const tooltipProps = {
|
|
62
|
+
tip: t('SelectCreate.noPermission'),
|
|
63
|
+
placement: 'top',
|
|
64
|
+
};
|
|
65
|
+
return ((0, jsx_runtime_1.jsxs)("div", Object.assign({ className: className }, (0, uikit_product_utils_1.extractSupportProps)(rest), { "data-test-id": 'select-create__wrapper', children: [(0, jsx_runtime_1.jsxs)(tooltip_1.WithTooltip, { tooltip: permission === 'none' ? tooltipProps : undefined, children: [(0, jsx_runtime_1.jsx)(uikit_product_mobile_fields_1.AdaptiveFieldSelect, Object.assign({ layoutType: layoutType, placeholder: t('SelectCreate.selectPlaceholder') }, selectDataStates, selectProps, { size: selectSize, footer: (0, jsx_runtime_1.jsx)(SelectFooter_1.SelectFooter, { onClick: onOpen, createButtonLabel: createBtnLabel, canCreate: permission === 'canCreate' }), disabled: permission === 'none' })), (0, jsx_runtime_1.jsx)(tooltip_1.WithTooltip, { tooltip: permission === 'canRead' ? tooltipProps : undefined, children: (0, jsx_runtime_1.jsx)(button_1.ButtonFunction, { label: createBtnLabel, icon: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.PlusSVG, {}), iconPosition: 'before', onClick: onOpen, size: selectSize, "data-test-id": 'select-create__create-button', disabled: permission !== 'canCreate' }) })] }), formLayout] })));
|
|
66
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SelectFooter = SelectFooter;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const uikit_product_icons_1 = require("@sbercloud/uikit-product-icons");
|
|
9
|
+
const uikit_product_locale_1 = require("@sbercloud/uikit-product-locale");
|
|
10
|
+
const button_1 = require("@snack-uikit/button");
|
|
11
|
+
const tooltip_1 = require("@snack-uikit/tooltip");
|
|
12
|
+
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
13
|
+
function SelectFooter({ onClick, createButtonLabel, canCreate }) {
|
|
14
|
+
const { t } = (0, uikit_product_locale_1.useLocale)('FieldsPredefined');
|
|
15
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.footerWrapper, children: (0, jsx_runtime_1.jsx)(tooltip_1.WithTooltip, { tooltip: canCreate ? undefined : { tip: t('SelectCreate.noPermission'), placement: 'top' }, children: (0, jsx_runtime_1.jsx)(button_1.ButtonFunction, { label: createButtonLabel, onClick: onClick, icon: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.PlusSVG, {}), iconPosition: 'before', "data-test-id": 'select-create__create-button-footer', disabled: !canCreate }) }) }));
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './SelectFooter';
|
|
@@ -0,0 +1,17 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./SelectFooter"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './SelectCreate';
|
|
@@ -0,0 +1,17 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./SelectCreate"), exports);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { FieldSelectMultipleProps, FieldSelectSingleProps } from '@sbercloud/uikit-product-mobile-fields';
|
|
3
|
+
import { AdaptiveDrawerProps, AdaptiveModalProps } from '@sbercloud/uikit-product-mobile-modal';
|
|
4
|
+
type CommonModalDrawerProps = 'open' | 'onClose' | 'approveButton' | 'cancelButton' | 'layoutType';
|
|
5
|
+
type CreateLayoutModalProps = Omit<AdaptiveModalProps, CommonModalDrawerProps> & {
|
|
6
|
+
content: ReactNode;
|
|
7
|
+
};
|
|
8
|
+
type CreateLayoutDrawerProps = Omit<AdaptiveDrawerProps, CommonModalDrawerProps>;
|
|
9
|
+
export type LayoutProps = {
|
|
10
|
+
/** По клику на кнопку создания открывать модальное окно или дровер */
|
|
11
|
+
createLayoutType: 'modal';
|
|
12
|
+
/** Пропсы передаваемые в модалку или дровер создания новой опции */
|
|
13
|
+
createLayoutProps: CreateLayoutModalProps;
|
|
14
|
+
} | {
|
|
15
|
+
createLayoutType: 'drawer';
|
|
16
|
+
createLayoutProps: CreateLayoutDrawerProps;
|
|
17
|
+
};
|
|
18
|
+
export type EntityName = {
|
|
19
|
+
plural: string;
|
|
20
|
+
single: string;
|
|
21
|
+
};
|
|
22
|
+
export type OmittedSelectProps = 'footer' | 'noResultState' | 'noDataState' | 'errorDataState';
|
|
23
|
+
export type FieldSelectProps = (Omit<FieldSelectSingleProps, OmittedSelectProps> & {
|
|
24
|
+
selection?: 'single';
|
|
25
|
+
}) | (Omit<FieldSelectMultipleProps, OmittedSelectProps> & {
|
|
26
|
+
selection: 'multiple';
|
|
27
|
+
});
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FieldSelectProps } from '@sbercloud/uikit-product-mobile-fields';
|
|
2
|
+
import { IconPredefinedProps } from '@snack-uikit/icon-predefined';
|
|
3
|
+
import { EntityName } from './types';
|
|
4
|
+
type Props = {
|
|
5
|
+
onRefetch?: VoidFunction;
|
|
6
|
+
entityName: EntityName;
|
|
7
|
+
entityIcon?: IconPredefinedProps['icon'];
|
|
8
|
+
};
|
|
9
|
+
export declare function useSelectDataStates({ onRefetch, entityName, entityIcon }: Props): Pick<FieldSelectProps, "noDataState" | "noResultsState" | "errorDataState">;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useSelectDataStates = useSelectDataStates;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const uikit_product_icons_1 = require("@sbercloud/uikit-product-icons");
|
|
7
|
+
const uikit_product_locale_1 = require("@sbercloud/uikit-product-locale");
|
|
8
|
+
const button_1 = require("@snack-uikit/button");
|
|
9
|
+
const helpers_1 = require("../../helpers");
|
|
10
|
+
function useSelectDataStates({ onRefetch, entityName, entityIcon }) {
|
|
11
|
+
const { t } = (0, uikit_product_locale_1.useLocale)('FieldsPredefined');
|
|
12
|
+
return (0, react_1.useMemo)(() => ({
|
|
13
|
+
noDataState: {
|
|
14
|
+
icon: { icon: entityIcon !== null && entityIcon !== void 0 ? entityIcon : uikit_product_icons_1.SearchSVG },
|
|
15
|
+
description: `${(0, helpers_1.capitalize)(entityName.plural)} ${t('SelectCreate.noData')}`,
|
|
16
|
+
},
|
|
17
|
+
noResultsState: {
|
|
18
|
+
icon: { icon: uikit_product_icons_1.SearchSVG },
|
|
19
|
+
description: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, helpers_1.capitalize)(entityName.plural), " ", t('SelectCreate.noResult'), ".", (0, jsx_runtime_1.jsx)("br", {}), t('SelectCreate.changeRequest'), " ", entityName.single.toLocaleLowerCase()] })),
|
|
20
|
+
},
|
|
21
|
+
errorDataState: {
|
|
22
|
+
description: `${t('SelectCreate.loadError')} ${entityName.plural.toLocaleLowerCase()}`,
|
|
23
|
+
footer: onRefetch ? ((0, jsx_runtime_1.jsx)(button_1.ButtonTonal, { label: t('SelectCreate.buttonRefetch'), icon: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.UpdateSVG, {}), appearance: 'neutral', onClick: onRefetch })) : ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {})),
|
|
24
|
+
},
|
|
25
|
+
}), [entityIcon, entityName, t, onRefetch]);
|
|
26
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./FieldPhone"), exports);
|
|
18
|
+
__exportStar(require("./SelectCreate"), exports);
|
|
19
|
+
__exportStar(require("./FieldAi"), exports);
|
|
20
|
+
__exportStar(require("./FieldChat"), exports);
|
|
21
|
+
__exportStar(require("./AIDisclaimer"), exports);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type FieldSubmitButtonProps = {
|
|
2
|
+
active: boolean;
|
|
3
|
+
handleClick(): void;
|
|
4
|
+
size?: 'xs' | 's';
|
|
5
|
+
className?: string;
|
|
6
|
+
fullWidth?: boolean;
|
|
7
|
+
showTooltip?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare function FieldSubmitButton({ active, handleClick, size, className, fullWidth, showTooltip, }: FieldSubmitButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FieldSubmitButton = FieldSubmitButton;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const uikit_product_icons_1 = require("@sbercloud/uikit-product-icons");
|
|
6
|
+
const uikit_product_locale_1 = require("@sbercloud/uikit-product-locale");
|
|
7
|
+
const button_1 = require("@snack-uikit/button");
|
|
8
|
+
const tooltip_1 = require("@snack-uikit/tooltip");
|
|
9
|
+
function FieldSubmitButton({ active, handleClick, size = 'xs', className, fullWidth, showTooltip = true, }) {
|
|
10
|
+
const { t } = (0, uikit_product_locale_1.useLocale)('FieldsPredefined');
|
|
11
|
+
if (active) {
|
|
12
|
+
return ((0, jsx_runtime_1.jsx)(tooltip_1.Tooltip, { tip: t('FieldAi.submit.tooltip'), hoverDelayOpen: 600, open: showTooltip ? undefined : false, children: (0, jsx_runtime_1.jsx)(button_1.ButtonFilled, { fullWidth: fullWidth, icon: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.ArrowUpSVG, {}), size: size, appearance: 'primary', type: 'submit', onClick: handleClick, className: className }) }));
|
|
13
|
+
}
|
|
14
|
+
return (0, jsx_runtime_1.jsx)(button_1.ButtonFilled, { icon: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.ArrowUpSVG, {}), size: size, disabled: true, className: className, fullWidth: fullWidth });
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './FieldSubmitButton';
|
|
@@ -0,0 +1,17 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./FieldSubmitButton"), exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TextAreaActionsFooter = TextAreaActionsFooter;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const classnames_1 = __importDefault(require("classnames"));
|
|
9
|
+
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
10
|
+
function TextAreaActionsFooter({ left, right }) {
|
|
11
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: styles_module_scss_1.default.actionsFooter, children: [(0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.actionsWrapper, children: left }), (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)(styles_module_scss_1.default.actionsWrapper, styles_module_scss_1.default.right), children: right })] }));
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './TextAreaActionsFooter';
|
|
@@ -0,0 +1,17 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./TextAreaActionsFooter"), exports);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.actionsFooter{
|
|
2
|
+
display:flex;
|
|
3
|
+
flex-direction:row;
|
|
4
|
+
justify-content:space-between;
|
|
5
|
+
align-items:center;
|
|
6
|
+
width:100%;
|
|
7
|
+
padding-bottom:7px;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.actionsWrapper{
|
|
11
|
+
display:flex;
|
|
12
|
+
flex-direction:row;
|
|
13
|
+
align-items:center;
|
|
14
|
+
gap:var(--dimension-050m, 4px);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.right{
|
|
18
|
+
justify-content:flex-end;
|
|
19
|
+
width:100%;
|
|
20
|
+
padding-right:8px;
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function capitalize(word: string): string;
|