intelicoreact 1.6.20 → 1.6.21
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/Atomic/FormElements/ActionAlert/ActionAlert.js +1 -102
- package/dist/Atomic/FormElements/AdvancedStatus/AdvancedStatus.js +1 -89
- package/dist/Atomic/FormElements/Calendar/Calendar.js +1 -232
- package/dist/Atomic/FormElements/Calendar/Calendar.props.js +1 -3
- package/dist/Atomic/FormElements/CheckboxInput/CheckboxInput.js +1 -101
- package/dist/Atomic/FormElements/CheckboxesLine/CheckboxesLine.js +1 -70
- package/dist/Atomic/FormElements/Datepicker/Datepicker.js +1 -350
- package/dist/Atomic/FormElements/Datepicker/Datepicker.props.js +1 -3
- package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.js +1 -177
- package/dist/Atomic/FormElements/Datepicker/components/DatepickerCalendar.props.js +1 -3
- package/dist/Atomic/FormElements/Dropdown/Dropdown.js +1 -561
- package/dist/Atomic/FormElements/Dropdown/components/DropdownLoader.js +1 -20
- package/dist/Atomic/FormElements/DropdownLiveSearch/DropdownLiveSearch.js +1 -405
- package/dist/Atomic/FormElements/FileLoader/FileLoader.js +1 -94
- package/dist/Atomic/FormElements/FileLoader/partial/LoadZone.js +1 -105
- package/dist/Atomic/FormElements/FileLoader/partial/LoadedContent.js +1 -67
- package/dist/Atomic/FormElements/FileLoaderDescription/FileLoaderDescription.js +1 -247
- package/dist/Atomic/FormElements/FileLoaderLocal/FileLoaderLocal.js +1 -160
- package/dist/Atomic/FormElements/FileLoaderLocalGroup/FileLoaderLocalGroup.js +1 -193
- package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN.js +1 -135
- package/dist/Atomic/FormElements/FormattedRawSSN/FormattedRawSSN_old.js +1 -116
- package/dist/Atomic/FormElements/Input/Input.js +1 -467
- package/dist/Atomic/FormElements/InputCalendar/InputCalendar.js +1 -161
- package/dist/Atomic/FormElements/InputColor/InputColor.js +1 -64
- package/dist/Atomic/FormElements/InputCurrency/InputCurrency.js +1 -166
- package/dist/Atomic/FormElements/InputDateRange/InputDateRange.js +1 -354
- package/dist/Atomic/FormElements/InputDateRange/components/DateInput.js +1 -71
- package/dist/Atomic/FormElements/InputDateRange/components/Datepicker.js +1 -693
- package/dist/Atomic/FormElements/InputDateRange/components/OpenedPart.js +1 -254
- package/dist/Atomic/FormElements/InputDateRange/components/SelectItem.js +1 -32
- package/dist/Atomic/FormElements/InputDateRange/dependencies.js +1 -200
- package/dist/Atomic/FormElements/InputLink/InputLink.js +1 -99
- package/dist/Atomic/FormElements/InputMask/InputCarretPosition.js +1 -37
- package/dist/Atomic/FormElements/InputMask/InputMask.js +1 -1214
- package/dist/Atomic/FormElements/InputMask/config.js +1 -15
- package/dist/Atomic/FormElements/InputMask/functions.js +1 -58
- package/dist/Atomic/FormElements/InputMask2/InputMask2.js +1 -674
- package/dist/Atomic/FormElements/InputMask2/config.js +1 -15
- package/dist/Atomic/FormElements/InputMask2/functions.js +1 -58
- package/dist/Atomic/FormElements/InputMask3/InputMask3.js +1 -766
- package/dist/Atomic/FormElements/InputMask3/config.js +1 -15
- package/dist/Atomic/FormElements/InputMask3/functions.js +1 -58
- package/dist/Atomic/FormElements/InputWithAction/InputWithAction.js +1 -114
- package/dist/Atomic/FormElements/InputsRow/InputsRow.js +1 -140
- package/dist/Atomic/FormElements/Label/Label.js +1 -82
- package/dist/Atomic/FormElements/MobileCalendar/MobileCalendar.js +1 -506
- package/dist/Atomic/FormElements/MultiSelect/MultiSelect.js +1 -45
- package/dist/Atomic/FormElements/NumericInput/NumericInput.js +1 -331
- package/dist/Atomic/FormElements/RadioGroup/RadioGroup.js +1 -66
- package/dist/Atomic/FormElements/RadioGroupWithInput/RadioGroupWithInput.js +1 -80
- package/dist/Atomic/FormElements/RadioInput/RadioInput.js +1 -64
- package/dist/Atomic/FormElements/RadioRowSwitcher/RadioRowSwitcher.js +1 -54
- package/dist/Atomic/FormElements/RangeCalendar/RangeCalendar.js +1 -183
- package/dist/Atomic/FormElements/RangeInputs/RangeInputs.js +1 -209
- package/dist/Atomic/FormElements/RangeList/RangeList.js +1 -175
- package/dist/Atomic/FormElements/RangeList/partial/RangeListRow.js +1 -43
- package/dist/Atomic/FormElements/RangeSlider/RangeSlider.js +1 -443
- package/dist/Atomic/FormElements/RangeSlider2/RangeSlider2.js +1 -858
- package/dist/Atomic/FormElements/SwitchableRow/SwitchableRow.js +1 -39
- package/dist/Atomic/FormElements/Switcher/Switcher.js +1 -59
- package/dist/Atomic/FormElements/SwitcherCheckbox/SwitcherCheckbox.js +1 -50
- package/dist/Atomic/FormElements/SwitcherHide/SwitcherHide.js +1 -47
- package/dist/Atomic/FormElements/SwitcherRadio/SwitcherRadio.js +1 -96
- package/dist/Atomic/FormElements/SwitcherRange/SwitcherRange.js +1 -40
- package/dist/Atomic/FormElements/SwitcherRangeList/SwitcherRangeList.js +1 -64
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/SwitcherTagsDropdown.js +1 -170
- package/dist/Atomic/FormElements/SwitcherTagsDropdown/partial/States.js +1 -202
- package/dist/Atomic/FormElements/SwitcherTextarea/SwitcherTextarea.js +1 -67
- package/dist/Atomic/FormElements/TagListToDropdown/TagListToDropdown.js +1 -115
- package/dist/Atomic/FormElements/TagsDropdown/TagsDropdown.js +1 -826
- package/dist/Atomic/FormElements/Text/Text.js +1 -125
- package/dist/Atomic/FormElements/TextSwitcher/TextSwitcher.js +1 -45
- package/dist/Atomic/FormElements/Textarea/Textarea.js +1 -80
- package/dist/Atomic/FormElements/TieredCheckboxes/TieredCheckboxes.js +1 -176
- package/dist/Atomic/FormElements/TieredCheckboxes/partial/AccordionWithCheckbox.js +1 -62
- package/dist/Atomic/FormElements/TimeRange/TimeRange.js +1 -127
- package/dist/Atomic/FormElements/UserContacts/UserContacts.js +1 -220
- package/dist/Atomic/FormElements/VariantsListRadio/VariantsListRadio.js +1 -83
- package/dist/Atomic/FormElements/VariantsListRadio/partials/VariantsListRadioItem.js +1 -82
- package/dist/Atomic/FormElements/WidgetPseudoTable/WidgetPseudoTable.js +1 -101
- package/dist/Atomic/FormElements/WidgetPseudoTable/partial/constructor.js +1 -29
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/WidgetWithSwitchableRows.js +1 -113
- package/dist/Atomic/FormElements/WidgetWithSwitchableRows/partial/constructor.js +1 -30
- package/dist/Atomic/Layout/Header/Header.js +1 -85
- package/dist/Atomic/Layout/Spinner/Spinner.js +1 -39
- package/dist/Atomic/UI/Accordion/Accordion.js +1 -118
- package/dist/Atomic/UI/Accordion/AccordionItem.js +1 -181
- package/dist/Atomic/UI/AccordionTable/AccordionTable.js +1 -238
- package/dist/Atomic/UI/AccordionText/AccordionText.js +1 -69
- package/dist/Atomic/UI/AdvancedTag/AdvTag.js +1 -207
- package/dist/Atomic/UI/AdvancedTag/AdvancedTags.js +1 -56
- package/dist/Atomic/UI/Alert/Alert.js +1 -72
- package/dist/Atomic/UI/Arrow/Arrow.js +1 -132
- package/dist/Atomic/UI/Box/Box.js +1 -52
- package/dist/Atomic/UI/Button/Button.js +1 -89
- package/dist/Atomic/UI/ButtonsBar/ButtonsBar.js +1 -72
- package/dist/Atomic/UI/Chart/Chart.js +1 -172
- package/dist/Atomic/UI/Chart/partial/Chart.constants.js +1 -95
- package/dist/Atomic/UI/Chart/partial/ChartTypeSwitcherIcon/ChartTypeSwitcherIcon.js +1 -80
- package/dist/Atomic/UI/Chart/partial/datasetSetters.js +1 -188
- package/dist/Atomic/UI/Chart/partial/optionsConstructor.js +1 -335
- package/dist/Atomic/UI/Chart/partial/optionsSetters.js +1 -43
- package/dist/Atomic/UI/Chart/partial/utils.js +1 -60
- package/dist/Atomic/UI/CircleProgressBar/CircleProgressBar.js +1 -109
- package/dist/Atomic/UI/DateTime/DateTime.js +1 -57
- package/dist/Atomic/UI/DebugContainer/DebugContainer.js +1 -44
- package/dist/Atomic/UI/DebugContainer/useDebugContainer.js +1 -15
- package/dist/Atomic/UI/DoubleString/DoubleString.js +1 -102
- package/dist/Atomic/UI/DynamicIcon/DynamicIcon.js +1 -226
- package/dist/Atomic/UI/ExampleChartIntegration/ExampleChartIntegration.js +1 -221
- package/dist/Atomic/UI/ExampleChartIntegration/partial/utils.js +1 -106
- package/dist/Atomic/UI/Hint/Hint.js +1 -193
- package/dist/Atomic/UI/Hint/partials/_utils.js +1 -51
- package/dist/Atomic/UI/Modal/Modal.js +1 -188
- package/dist/Atomic/UI/Modal/ModalHOC.js +1 -72
- package/dist/Atomic/UI/Modal/partials/ModalFooter.js +1 -46
- package/dist/Atomic/UI/Modal/partials/ModalTitle.js +1 -83
- package/dist/Atomic/UI/Modal/partials/useMobileModal.js +1 -200
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion._test.js +1 -75
- package/dist/Atomic/UI/MonoAccordion/MonoAccordion.js +1 -80
- package/dist/Atomic/UI/NavLine/NavLine.js +1 -293
- package/dist/Atomic/UI/PageTitle/PageTitle.js +1 -75
- package/dist/Atomic/UI/PieChart/PieChart.js +1 -42
- package/dist/Atomic/UI/Price/Price.js +1 -22
- package/dist/Atomic/UI/PriceRange/PriceRange.js +1 -36
- package/dist/Atomic/UI/ProgressLine/ProgressLine.js +1 -71
- package/dist/Atomic/UI/Status/Status.js +1 -59
- package/dist/Atomic/UI/Table/Partials/TdCell.js +1 -87
- package/dist/Atomic/UI/Table/Partials/TdHeader.js +1 -38
- package/dist/Atomic/UI/Table/Partials/TdRow.js +1 -99
- package/dist/Atomic/UI/Table/Partials/TdTitle.js +1 -52
- package/dist/Atomic/UI/Table/Table.js +1 -63
- package/dist/Atomic/UI/Table/TdTypes/TdActions.js +1 -80
- package/dist/Atomic/UI/Table/TdTypes/TdPriority.js +1 -28
- package/dist/Atomic/UI/Table/TdTypes/TdRange.js +1 -13
- package/dist/Atomic/UI/Table/TdTypes/TdWeight.js +1 -53
- package/dist/Atomic/UI/Tag/Tag.js +1 -160
- package/dist/Atomic/UI/TagList/TagList.js +1 -251
- package/dist/Atomic/UI/UserBox/UserBox.js +1 -73
- package/dist/Atomic/UI/WizardStepper/constructor.js +1 -84
- package/dist/Atomic/UI/WizardStepper/index.js +1 -3
- package/dist/Atomic/UI/WizardStepper/ui/StateIcon/StateIcon.js +1 -37
- package/dist/Atomic/UI/WizardStepper/ui/StateIcon/index.js +1 -3
- package/dist/Atomic/UI/WizardStepper/ui/StepRow/StepRow.js +1 -61
- package/dist/Atomic/UI/WizardStepper/ui/StepRow/index.js +1 -3
- package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/StepWrapper.js +1 -39
- package/dist/Atomic/UI/WizardStepper/ui/StepWrapper/index.js +1 -3
- package/dist/Atomic/UI/WizardStepper/ui/icons.js +1 -49
- package/dist/Atomic/UI/WizardStepper/ui/index.js +1 -3
- package/dist/Classes/AbortableFetch.js +1 -454
- package/dist/Classes/AnimatedHandler.js +1 -47
- package/dist/Classes/RESTAPI/index.js +1 -228
- package/dist/Classes/RESTAPI/partials/AbortableFetch.js +1 -457
- package/dist/Classes/RESTAPI/partials/ApiBase.js +1 -48
- package/dist/Classes/RESTAPI/partials/ApiRequestCreators.js +1 -112
- package/dist/Classes/RESTAPI/partials/ApiUtils.js +1 -189
- package/dist/Classes/RESTAPI/partials/CredentialsProcessing.js +1 -252
- package/dist/Classes/RESTAPI/partials/Utils.js +1 -92
- package/dist/Classes/RESTAPI/partials/_outerDependencies.js +1 -3
- package/dist/Classes/RESTAPI/partials/_utils.js +1 -197
- package/dist/Constants/index.constants.js +1 -78
- package/dist/Functions/Portal.js +1 -22
- package/dist/Functions/customEventListener.js +1 -96
- package/dist/Functions/dateTime.js +1 -149
- package/dist/Functions/fieldValueFormatters.js +1 -405
- package/dist/Functions/guards/assertions.js +1 -66
- package/dist/Functions/guards/safeValue.js +1 -30
- package/dist/Functions/guards/typeGuards.js +1 -116
- package/dist/Functions/hooks/useFormFieldsChangesManager.js +1 -95
- package/dist/Functions/locale/createTranslator.js +1 -32
- package/dist/Functions/operations.js +1 -130
- package/dist/Functions/presets/inputMaskPresets.js +1 -170
- package/dist/Functions/presets/inputPresets.js +1 -60
- package/dist/Functions/presets/mobileKeyboardTypesPresets.js +1 -45
- package/dist/Functions/schemas.js +1 -31
- package/dist/Functions/useBodyScrollLock.js +1 -17
- package/dist/Functions/useClickOutside.js +1 -15
- package/dist/Functions/useDebounce.js +1 -17
- package/dist/Functions/useFieldFocus.js +1 -84
- package/dist/Functions/useFormTools/form-drivers/ArrayWithObjects.js +1 -39
- package/dist/Functions/useFormTools/form-drivers/ObjectWithIterableObjects.js +1 -159
- package/dist/Functions/useFormTools/form-drivers/ObjectWithNamedKeyObjects.js +1 -78
- package/dist/Functions/useFormTools/functions/General.js +1 -134
- package/dist/Functions/useFormTools/functions/RenderFields.js +1 -111
- package/dist/Functions/useFormTools/functions/usePrevious.js +1 -12
- package/dist/Functions/useFormTools/index.js +1 -778
- package/dist/Functions/useInputHighlightError.js +1 -67
- package/dist/Functions/useIsMobile/useIsMobile.js +1 -53
- package/dist/Functions/useKeyPress/useHandleKeyPress.js +1 -21
- package/dist/Functions/useKeyPress/useKeyPress.js +1 -75
- package/dist/Functions/useLocalStorage.js +1 -34
- package/dist/Functions/useLocationParams.js +1 -27
- package/dist/Functions/useMediaQuery.js +1 -17
- package/dist/Functions/useMetaInfo.js +1 -43
- package/dist/Functions/useMouseUpOutside.js +1 -16
- package/dist/Functions/useOnlineStatus.js +1 -29
- package/dist/Functions/usePasswordChecker.js +1 -110
- package/dist/Functions/usePrevious.js +1 -12
- package/dist/Functions/useResize.js +1 -31
- package/dist/Functions/useScrollTo.js +1 -17
- package/dist/Functions/useToggle.js +1 -17
- package/dist/Functions/utils.js +1 -522
- package/dist/Langs.js +1 -168
- package/dist/Molecular/CustomIcons/components/AffiliateNetworks.js +1 -21
- package/dist/Molecular/CustomIcons/components/AlertCircle.js +1 -23
- package/dist/Molecular/CustomIcons/components/AppStore.js +1 -29
- package/dist/Molecular/CustomIcons/components/Arrow.js +1 -32
- package/dist/Molecular/CustomIcons/components/ArrowDown.js +1 -17
- package/dist/Molecular/CustomIcons/components/ArrowLeft.js +1 -22
- package/dist/Molecular/CustomIcons/components/ArrowRight.js +1 -22
- package/dist/Molecular/CustomIcons/components/ArrowUp.js +1 -17
- package/dist/Molecular/CustomIcons/components/Bell.js +1 -15
- package/dist/Molecular/CustomIcons/components/Button.js +1 -12
- package/dist/Molecular/CustomIcons/components/Campaigns.js +1 -16
- package/dist/Molecular/CustomIcons/components/Check.js +1 -14
- package/dist/Molecular/CustomIcons/components/Check2.js +1 -12
- package/dist/Molecular/CustomIcons/components/ChevronDown.js +1 -12
- package/dist/Molecular/CustomIcons/components/ChevronDownDisabled.js +1 -11
- package/dist/Molecular/CustomIcons/components/ChevronLeft.js +1 -11
- package/dist/Molecular/CustomIcons/components/ChevronRight.js +1 -11
- package/dist/Molecular/CustomIcons/components/ChevronUp.js +1 -11
- package/dist/Molecular/CustomIcons/components/ChevronUpDown.js +1 -27
- package/dist/Molecular/CustomIcons/components/Close.js +1 -14
- package/dist/Molecular/CustomIcons/components/ColumnsOrder.js +1 -17
- package/dist/Molecular/CustomIcons/components/Delete.js +1 -16
- package/dist/Molecular/CustomIcons/components/Edit.js +1 -15
- package/dist/Molecular/CustomIcons/components/Email.js +1 -31
- package/dist/Molecular/CustomIcons/components/FinturfLogo.js +1 -18
- package/dist/Molecular/CustomIcons/components/FinturfLogo2.js +1 -35
- package/dist/Molecular/CustomIcons/components/Flows.js +1 -15
- package/dist/Molecular/CustomIcons/components/Gift.js +1 -25
- package/dist/Molecular/CustomIcons/components/GoogleAuth.js +1 -29
- package/dist/Molecular/CustomIcons/components/GooglePlay.js +1 -29
- package/dist/Molecular/CustomIcons/components/HelpCircle.js +1 -19
- package/dist/Molecular/CustomIcons/components/HelpCircle2.js +1 -20
- package/dist/Molecular/CustomIcons/components/HelpCircleFilled.js +1 -19
- package/dist/Molecular/CustomIcons/components/Home.js +1 -16
- package/dist/Molecular/CustomIcons/components/Home2.js +1 -22
- package/dist/Molecular/CustomIcons/components/Key.js +1 -23
- package/dist/Molecular/CustomIcons/components/Landers.js +1 -20
- package/dist/Molecular/CustomIcons/components/Lock.js +1 -15
- package/dist/Molecular/CustomIcons/components/Mail.js +1 -26
- package/dist/Molecular/CustomIcons/components/Mastercard.js +1 -73
- package/dist/Molecular/CustomIcons/components/Minus.js +1 -25
- package/dist/Molecular/CustomIcons/components/Offers.js +1 -16
- package/dist/Molecular/CustomIcons/components/Pause.js +1 -28
- package/dist/Molecular/CustomIcons/components/PayPal.js +1 -41
- package/dist/Molecular/CustomIcons/components/PayPalLightLarge.js +1 -28
- package/dist/Molecular/CustomIcons/components/Phone.js +1 -30
- package/dist/Molecular/CustomIcons/components/Play.js +1 -25
- package/dist/Molecular/CustomIcons/components/Plus.js +1 -25
- package/dist/Molecular/CustomIcons/components/Profile.js +1 -16
- package/dist/Molecular/CustomIcons/components/QRCode.js +1 -29
- package/dist/Molecular/CustomIcons/components/Rectangle.js +1 -12
- package/dist/Molecular/CustomIcons/components/Revert.js +1 -13
- package/dist/Molecular/CustomIcons/components/Star.js +1 -14
- package/dist/Molecular/CustomIcons/components/Star2.js +1 -16
- package/dist/Molecular/CustomIcons/components/TrafficSources.js +1 -14
- package/dist/Molecular/CustomIcons/components/Trash.js +1 -15
- package/dist/Molecular/CustomIcons/components/TrashRed.js +1 -15
- package/dist/Molecular/CustomIcons/components/Triggers.js +1 -15
- package/dist/Molecular/CustomIcons/components/User.js +1 -25
- package/dist/Molecular/CustomIcons/components/Visa.js +1 -31
- package/dist/Molecular/CustomIcons/components/X.js +1 -12
- package/dist/Molecular/CustomIcons/index.js +1 -61
- package/dist/Molecular/FormElement/FormElement.js +1 -54
- package/dist/Molecular/FormWithDependOn/FormWithDependOn.js +1 -184
- package/dist/Molecular/FormWithDependOn/partials/_utils.js +1 -53
- package/dist/Molecular/InputAddress/InputAddress.js +1 -620
- package/dist/Molecular/InputPassword/InputPassword.js +1 -48
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -1,197 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
export function getIsOnlyAnObject(input) {
|
|
4
|
-
return (
|
|
5
|
-
typeof input === "object" &&
|
|
6
|
-
input instanceof Object &&
|
|
7
|
-
!Array.isArray(input)
|
|
8
|
-
);
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
export const clone = (input) => {
|
|
12
|
-
if (input === null || typeof input !== "object") return input;
|
|
13
|
-
const data = input instanceof Array ? [] : {};
|
|
14
|
-
for (const i in input) data[i] = clone(input[i]);
|
|
15
|
-
return data;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
//принимает обьект и массив ключей обьекта
|
|
19
|
-
//возвращает обьект с теми полями, которых нет в массиве ключей
|
|
20
|
-
export const omitKeys = (obj = {}, keys = []) =>
|
|
21
|
-
keys.reduce((acc, key) => {
|
|
22
|
-
const { [key]: omit, ...rest } = acc;
|
|
23
|
-
return rest;
|
|
24
|
-
}, obj);
|
|
25
|
-
|
|
26
|
-
export const getResponseClone = async (res) =>
|
|
27
|
-
typeof res?.clone === "function" ? await res.clone() : clone(res);
|
|
28
|
-
|
|
29
|
-
export function addCustomMethods(data, prefix) {
|
|
30
|
-
const preparedPrefix = (prefix || "").toString();
|
|
31
|
-
|
|
32
|
-
Object.keys(data).forEach((key) => {
|
|
33
|
-
const preparedKey = `${preparedPrefix}${key}`;
|
|
34
|
-
if (typeof data[key] === "function" && getIsOnlyAnObject(this))
|
|
35
|
-
this[preparedKey] = data[key];
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export async function getInstanceOfFetchSystem(isGetBody) {
|
|
40
|
-
const API_CONTEXT = this;
|
|
41
|
-
const CREDENTIALS_CONTEXT = API_CONTEXT.credentialsProcessing;
|
|
42
|
-
|
|
43
|
-
let credentials = {};
|
|
44
|
-
//? Наличие credentialsProcessing включает добавление токена в принципе (если авторизованы в системе)
|
|
45
|
-
if (CREDENTIALS_CONTEXT) {
|
|
46
|
-
//? Метод getCredentials - классовый метод, обертка над getCredentials, переданным при создании экземпляра
|
|
47
|
-
//? В классовом getCredentials уже инкапсулирована логика использования importCredentials
|
|
48
|
-
const cred = await CREDENTIALS_CONTEXT.getCredentials();
|
|
49
|
-
|
|
50
|
-
credentials = CREDENTIALS_CONTEXT.isUseRefreshTokensPropcessing
|
|
51
|
-
? await CREDENTIALS_CONTEXT.waitRefresh(
|
|
52
|
-
cred.isNeedRefresh && !CREDENTIALS_CONTEXT.getIsTokenStartRefresh(),
|
|
53
|
-
).then(async () =>
|
|
54
|
-
CREDENTIALS_CONTEXT.processCredentials(
|
|
55
|
-
await CREDENTIALS_CONTEXT.getCredentials(),
|
|
56
|
-
),
|
|
57
|
-
)
|
|
58
|
-
: cred;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
//? На уровне получения instance может уже сложиться ситуация, что сходили на рефреш и он неудачный.
|
|
62
|
-
//? Прерываем получение instance, даем возможность отработать callbackAfterRejectRefresh (смотри class CredentialsProcessing)
|
|
63
|
-
if (credentials.isRefreshFailed) return null;
|
|
64
|
-
|
|
65
|
-
if (
|
|
66
|
-
API_CONTEXT.addAsCommon &&
|
|
67
|
-
typeof API_CONTEXT.addAsCommon !== "function"
|
|
68
|
-
) {
|
|
69
|
-
throw new Error("addAsCommon must be function [getInstanceOfFetchSystem]");
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
const {
|
|
73
|
-
headers: headersToAbortableFetchInstance,
|
|
74
|
-
queryParameters: queryParamsToAbortableFetchInstance,
|
|
75
|
-
options: optionsToAbortableFetchInstance,
|
|
76
|
-
} = (await API_CONTEXT.addAsCommon?.()) || {};
|
|
77
|
-
|
|
78
|
-
if (
|
|
79
|
-
(headersToAbortableFetchInstance &&
|
|
80
|
-
!getIsOnlyAnObject(headersToAbortableFetchInstance)) ||
|
|
81
|
-
(optionsToAbortableFetchInstance &&
|
|
82
|
-
!getIsOnlyAnObject(optionsToAbortableFetchInstance)) ||
|
|
83
|
-
(queryParamsToAbortableFetchInstance &&
|
|
84
|
-
!(
|
|
85
|
-
typeof queryParamsToAbortableFetchInstance === "string" ||
|
|
86
|
-
getIsOnlyAnObject(queryParamsToAbortableFetchInstance) ||
|
|
87
|
-
Array.isArray(queryParamsToAbortableFetchInstance)
|
|
88
|
-
))
|
|
89
|
-
) {
|
|
90
|
-
throw new Error(
|
|
91
|
-
"Bad output format from addAsCommon [getInstanceOfFetchSystem]",
|
|
92
|
-
);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
//? По итогу возвращается экземпляр класса AbortableFetch (который мы конфигурируем большим объектом настроек)
|
|
96
|
-
return (
|
|
97
|
-
CREDENTIALS_CONTEXT?.isUseRefreshTokensPropcessing
|
|
98
|
-
? CREDENTIALS_CONTEXT.waitRefresh()
|
|
99
|
-
: Promise.resolve()
|
|
100
|
-
).then(
|
|
101
|
-
async () =>
|
|
102
|
-
new AbortableFetch({
|
|
103
|
-
//? Метод по умолчанию
|
|
104
|
-
method: "GET",
|
|
105
|
-
//? Заголовки по умолчанию
|
|
106
|
-
headers: {
|
|
107
|
-
...headersToAbortableFetchInstance,
|
|
108
|
-
//? (*) Тут обрабатываются кейсы
|
|
109
|
-
//? - когда нет this.credentialsProcessing
|
|
110
|
-
//? (мы НЕ хотим добавлять токены в принципе, не зашли в верхнюю if-ку)
|
|
111
|
-
//? - когда есть this.credentialsProcessing, но нет credentials.token (не авторизованы)
|
|
112
|
-
//? (зашли в верхнюю if-ку, попробовали получить/обновить креды)
|
|
113
|
-
...(credentials.token
|
|
114
|
-
? CREDENTIALS_CONTEXT?.getHeadersForAuthorize?.(
|
|
115
|
-
credentials.token,
|
|
116
|
-
) || {}
|
|
117
|
-
: {}),
|
|
118
|
-
},
|
|
119
|
-
queryParameters: await API_CONTEXT.processQueryParams(
|
|
120
|
-
queryParamsToAbortableFetchInstance,
|
|
121
|
-
),
|
|
122
|
-
//? Опции по умолчанию
|
|
123
|
-
options: {
|
|
124
|
-
mode: "cors",
|
|
125
|
-
redirect: "follow",
|
|
126
|
-
...optionsToAbortableFetchInstance,
|
|
127
|
-
},
|
|
128
|
-
|
|
129
|
-
//? Каждый запрос (каждый запрос мультизапроса), сделаный методом request этого экземпляра выполнит этот колбек
|
|
130
|
-
everyPromiseCallback: async function everyPromiseCallback(response) {
|
|
131
|
-
//? this - это НЕ API_CONTEXT и НЕ CREDENTIALS_CONTEXT, a итоговый эекземпляр AbortableFetch
|
|
132
|
-
const ABORTABLE_FETCH_INSTANCE = this;
|
|
133
|
-
|
|
134
|
-
if (!response.status) {
|
|
135
|
-
const request = ABORTABLE_FETCH_INSTANCE.requestInput.find(
|
|
136
|
-
(item) => item.path === response.request.path,
|
|
137
|
-
);
|
|
138
|
-
const isUseErrorToast = request?.mesageOptions?.isUseErrorToast;
|
|
139
|
-
if (isUseErrorToast) {
|
|
140
|
-
API_CONTEXT.sendMessage?.(
|
|
141
|
-
API_CONTEXT.NO_INET,
|
|
142
|
-
request.mesageOptions,
|
|
143
|
-
response,
|
|
144
|
-
);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
return API_CONTEXT.REJECT_CODES.includes(response.status) || (
|
|
149
|
-
CREDENTIALS_CONTEXT?.isUseRefreshTokensPropcessing &&
|
|
150
|
-
CREDENTIALS_CONTEXT?.CODES_USING_THE_REFRESH_ATTEMPT?.includes?.(response.status)
|
|
151
|
-
)
|
|
152
|
-
? Promise.reject(new Error(`status:${response.status}`))
|
|
153
|
-
: Promise.resolve(
|
|
154
|
-
!isGetBody
|
|
155
|
-
? response
|
|
156
|
-
: await API_CONTEXT.getResponseBody(response),
|
|
157
|
-
);
|
|
158
|
-
},
|
|
159
|
-
|
|
160
|
-
//? Если хоть один запрос из пачки будет зареджекчен, зареджектится вся пачка.
|
|
161
|
-
//? В этом случае будет выполнен этот колбэк
|
|
162
|
-
catchCallback: async function catchCallback(res) {
|
|
163
|
-
//? this - это НЕ API_CONTEXT и НЕ CREDENTIALS_CONTEXT, a итоговый эекземпляр AbortableFetch
|
|
164
|
-
const ABORTABLE_FETCH_INSTANCE = this;
|
|
165
|
-
const code = Number(res.message.split(":")[1]);
|
|
166
|
-
|
|
167
|
-
if (CREDENTIALS_CONTEXT?.CODES_USING_THE_REFRESH_ATTEMPT?.includes?.(code)) {
|
|
168
|
-
const isDoRefresh =
|
|
169
|
-
!CREDENTIALS_CONTEXT?.getIsTokenStartRefresh?.();
|
|
170
|
-
|
|
171
|
-
return CREDENTIALS_CONTEXT?.waitRefresh(isDoRefresh).then(
|
|
172
|
-
async () => {
|
|
173
|
-
//? Пробуем зарефрешить
|
|
174
|
-
const newCredentials = await CREDENTIALS_CONTEXT?.processCredentials({
|
|
175
|
-
...(await CREDENTIALS_CONTEXT?.getCredentials(true)),
|
|
176
|
-
isCatchCallbackProcess: isDoRefresh,
|
|
177
|
-
});
|
|
178
|
-
|
|
179
|
-
ABORTABLE_FETCH_INSTANCE.setHeaders({
|
|
180
|
-
...ABORTABLE_FETCH_INSTANCE.getHeaders(),
|
|
181
|
-
...(newCredentials?.token
|
|
182
|
-
? { Authorization: `Bearer ${newCredentials?.token}` }
|
|
183
|
-
: {}),
|
|
184
|
-
});
|
|
185
|
-
|
|
186
|
-
if (newCredentials.token)
|
|
187
|
-
return ABORTABLE_FETCH_INSTANCE.repeatRequest();
|
|
188
|
-
return Promise.reject(res);
|
|
189
|
-
},
|
|
190
|
-
);
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
return Promise.reject(res);
|
|
194
|
-
},
|
|
195
|
-
}),
|
|
196
|
-
);
|
|
197
|
-
}
|
|
1
|
+
var e;function t(e,t,r,n,o,s,i){try{var a=e[s](i),u=a.value}catch(e){r(e);return}a.done?t(u):Promise.resolve(u).then(n,o)}function r(e){return function(){var r=this,n=arguments;return new Promise(function(o,s){var i=e.apply(r,n);function a(e){t(i,o,s,a,u,"next",e)}function u(e){t(i,o,s,a,u,"throw",e)}a(void 0)})}}function n(e,t){return null!=t&&"undefined"!=typeof Symbol&&t[Symbol.hasInstance]?!!t[Symbol.hasInstance](e):e instanceof t}function o(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){var n;n=r[t],t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n})}return e}function s(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);r.push.apply(r,n)}return r})(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function i(e){var t=function(e,t){if("object"!==a(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==a(n))return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===a(t)?t:String(t)}function a(e){return e&&"undefined"!=typeof Symbol&&e.constructor===Symbol?"symbol":typeof e}function u(e,t){var r,n,o,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=a(0),i.throw=a(1),i.return=a(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(a){return function(u){var l=[a,u];if(r)throw TypeError("Generator is already executing.");for(;i&&(i=0,l[0]&&(s=0)),s;)try{if(r=1,n&&(o=2&l[0]?n.return:l[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,l[1])).done)return o;switch(n=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return s.label++,{value:l[1],done:!1};case 5:s.label++,n=l[1],l=[0];continue;case 7:l=s.ops.pop(),s.trys.pop();continue;default:if(!(o=(o=s.trys).length>0&&o[o.length-1])&&(6===l[0]||2===l[0])){s=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){s.label=l[1];break}if(6===l[0]&&s.label<o[1]){s.label=o[1],o=l;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(l);break}o[2]&&s.ops.pop(),s.trys.pop();continue}l=t.call(e,s)}catch(e){l=[6,e],n=0}finally{r=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}}}import l from"./AbortableFetch";export function getIsOnlyAnObject(e){return(void 0===e?"undefined":a(e))==="object"&&n(e,Object)&&!Array.isArray(e)}export var clone=function(e){if(null===e||(void 0===e?"undefined":a(e))!=="object")return e;var t=n(e,Array)?[]:{};for(var r in e)t[r]=clone(e[r]);return t};export var omitKeys=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return t.reduce(function(e,t){return e[t],function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},s=Object.keys(e);for(n=0;n<s.length;n++)r=s[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)r=s[n],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}(e,[t].map(i))},e)};export var getResponseClone=(e=r(function(e){var t;return u(this,function(r){switch(r.label){case 0:if("function"!=typeof(null==e?void 0:e.clone))return[3,2];return[4,e.clone()];case 1:return t=r.sent(),[3,3];case 2:t=clone(e),r.label=3;case 3:return[2,t]}})}),function(t){return e.apply(this,arguments)});export function addCustomMethods(e,t){var r=this,n=(t||"").toString();Object.keys(e).forEach(function(t){var o="".concat(n).concat(t);"function"==typeof e[t]&&getIsOnlyAnObject(r)&&(r[o]=e[t])})}export function getInstanceOfFetchSystem(e){return c.apply(this,arguments)}function c(){return(c=r(function(e){var t,n,i,a,c,f,p,y,b,d;return u(this,function(h){switch(h.label){case 0:if(n=this,i=n.credentialsProcessing,a={},!i)return[3,5];return[4,i.getCredentials()];case 1:if(c=h.sent(),!i.isUseRefreshTokensPropcessing)return[3,3];return[4,i.waitRefresh(c.isNeedRefresh&&!i.getIsTokenStartRefresh()).then(/*#__PURE__*/r(function(){var e;return u(this,function(t){switch(t.label){case 0:return e=i.processCredentials,[4,i.getCredentials()];case 1:return[2,e.apply(i,[t.sent()])]}})}))];case 2:return f=h.sent(),[3,4];case 3:f=c,h.label=4;case 4:a=f,h.label=5;case 5:if(a.isRefreshFailed)return[2,null];if(n.addAsCommon&&"function"!=typeof n.addAsCommon)throw Error("addAsCommon must be function [getInstanceOfFetchSystem]");return[4,null==(t=n.addAsCommon)?void 0:t.call(n)];case 6:if(y=(p=h.sent()||{}).headers,b=p.queryParameters,d=p.options,y&&!getIsOnlyAnObject(y)||d&&!getIsOnlyAnObject(d)||b&&!("string"==typeof b||getIsOnlyAnObject(b)||Array.isArray(b)))throw Error("Bad output format from addAsCommon [getInstanceOfFetchSystem]");return[2,((null==i?void 0:i.isUseRefreshTokensPropcessing)?i.waitRefresh():Promise.resolve()).then(/*#__PURE__*/r(function(){var t,c,f;return u(this,function(p){switch(p.label){case 0:return c=l.bind,f={method:"GET",headers:o({},y,a.token&&(null==i||null==(t=i.getHeadersForAuthorize)?void 0:t.call(i,a.token))||{})},[4,n.processQueryParams(b)];case 1:var h,v;return[2,new(c.apply(l,[void 0,(f.queryParameters=p.sent(),f.options=o({mode:"cors",redirect:"follow"},d),f.everyPromiseCallback=(h=r(function(t){var r,o,s,a,l,c,f,p,y;return u(this,function(u){switch(u.label){case 0:if(s=this,!t.status&&(null==(l=s.requestInput.find(function(e){return e.path===t.request.path}))||null==(a=l.mesageOptions)?void 0:a.isUseErrorToast)&&(null==(c=n.sendMessage)||c.call(n,n.NO_INET,l.mesageOptions,t)),!(n.REJECT_CODES.includes(t.status)||(null==i?void 0:i.isUseRefreshTokensPropcessing)&&(null==i||null==(o=i.CODES_USING_THE_REFRESH_ATTEMPT)||null==(r=o.includes)?void 0:r.call(o,t.status))))return[3,1];return f=Promise.reject(Error("status:".concat(t.status))),[3,5];case 1:if(p=Promise.resolve,e)return[3,2];return y=t,[3,4];case 2:return[4,n.getResponseBody(t)];case 3:y=u.sent(),u.label=4;case 4:f=p.apply(Promise,[y]),u.label=5;case 5:return[2,f]}})}),function(e){return h.apply(this,arguments)}),f.catchCallback=(v=r(function(e){var t,n,a,l,c,f;return u(this,function(p){return(a=this,l=Number(e.message.split(":")[1]),null==i||null==(n=i.CODES_USING_THE_REFRESH_ATTEMPT)||null==(t=n.includes)?void 0:t.call(n,l))?(f=!(null==i||null==(c=i.getIsTokenStartRefresh)?void 0:c.call(i)),[2,null==i?void 0:i.waitRefresh(f).then(/*#__PURE__*/r(function(){var t,r,n,l;return u(this,function(u){switch(u.label){case 0:if(null!=i)return[3,1];return r=void 0,[3,3];case 1:return n=i.processCredentials,l=[{}],[4,null==i?void 0:i.getCredentials(!0)];case 2:r=n.apply(i,[s.apply(void 0,[o.apply(void 0,l.concat([u.sent()])),{isCatchCallbackProcess:f}])]),u.label=3;case 3:return[4,r];case 4:if(t=u.sent(),a.setHeaders(o({},a.getHeaders(),(null==t?void 0:t.token)?{Authorization:"Bearer ".concat(null==t?void 0:t.token)}:{})),t.token)return[2,a.repeatRequest()];return[2,Promise.reject(e)]}})}))]):[2,Promise.reject(e)]})}),function(e){return v.apply(this,arguments)}),f)]))]}})}))]}})})).apply(this,arguments)}
|
|
@@ -1,78 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
"Escape",
|
|
3
|
-
"F1",
|
|
4
|
-
"F2",
|
|
5
|
-
"F3",
|
|
6
|
-
"F4",
|
|
7
|
-
"F5",
|
|
8
|
-
"F6",
|
|
9
|
-
"F7",
|
|
10
|
-
"F8",
|
|
11
|
-
"F9",
|
|
12
|
-
"F10",
|
|
13
|
-
"F11",
|
|
14
|
-
"F12",
|
|
15
|
-
"Tab",
|
|
16
|
-
"CapsLock",
|
|
17
|
-
"Shift",
|
|
18
|
-
"Control",
|
|
19
|
-
"Meta",
|
|
20
|
-
"Option",
|
|
21
|
-
"Alt",
|
|
22
|
-
"ContextMenu",
|
|
23
|
-
"ArrowLeft",
|
|
24
|
-
"ArrowRight",
|
|
25
|
-
"ArrowUp",
|
|
26
|
-
"ArrowDown",
|
|
27
|
-
"NumLock",
|
|
28
|
-
"Backspace",
|
|
29
|
-
"Delete",
|
|
30
|
-
"Enter",
|
|
31
|
-
"Return",
|
|
32
|
-
"Insert",
|
|
33
|
-
"Home",
|
|
34
|
-
"End",
|
|
35
|
-
"PageUp",
|
|
36
|
-
"PageDown",
|
|
37
|
-
"PrintScreen",
|
|
38
|
-
"ScrollLock",
|
|
39
|
-
"Pause",
|
|
40
|
-
];
|
|
41
|
-
|
|
42
|
-
export const MAX_PHONE_LENGTH = 10;
|
|
43
|
-
export const MAX_NAME_LENGTH = 128;
|
|
44
|
-
|
|
45
|
-
export const DEFAULT_DATE_MASK_NO_VALUE_SYMBOL = "_";
|
|
46
|
-
|
|
47
|
-
export const DEFAULT_COLORS = [
|
|
48
|
-
"#D9C1FF",
|
|
49
|
-
"#FFBAF0",
|
|
50
|
-
"#FFB8CE",
|
|
51
|
-
"#FFC3A2",
|
|
52
|
-
"#FFDB7C",
|
|
53
|
-
"#F9F871",
|
|
54
|
-
"#C3FCF1",
|
|
55
|
-
"#F6F2CB",
|
|
56
|
-
"#E0F8D1",
|
|
57
|
-
"#B1DFFB",
|
|
58
|
-
"#8DECFE",
|
|
59
|
-
"#76F7ED",
|
|
60
|
-
"#8AFEC8",
|
|
61
|
-
];
|
|
62
|
-
|
|
63
|
-
export const KEYBOARD_KEY_CODES = {
|
|
64
|
-
Backspace: 8,
|
|
65
|
-
Delete: 46,
|
|
66
|
-
ARROW_LEFT: 37,
|
|
67
|
-
ARROW_RIGHT: 39,
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
export const OS = {
|
|
71
|
-
iOS: "iOS",
|
|
72
|
-
Android: "Android",
|
|
73
|
-
WP: "Windows Phone",
|
|
74
|
-
Linux: "Linux",
|
|
75
|
-
Windows: "Windows",
|
|
76
|
-
MacOS: "MacOS",
|
|
77
|
-
Unknown: "unknown",
|
|
78
|
-
};
|
|
1
|
+
export var KEYBOARD_SERVICE_KEYS=["Escape","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","Tab","CapsLock","Shift","Control","Meta","Option","Alt","ContextMenu","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","NumLock","Backspace","Delete","Enter","Return","Insert","Home","End","PageUp","PageDown","PrintScreen","ScrollLock","Pause"];export var MAX_PHONE_LENGTH=10;export var MAX_NAME_LENGTH=128;export var DEFAULT_DATE_MASK_NO_VALUE_SYMBOL="_";export var DEFAULT_COLORS=["#D9C1FF","#FFBAF0","#FFB8CE","#FFC3A2","#FFDB7C","#F9F871","#C3FCF1","#F6F2CB","#E0F8D1","#B1DFFB","#8DECFE","#76F7ED","#8AFEC8"];export var KEYBOARD_KEY_CODES={Backspace:8,Delete:46,ARROW_LEFT:37,ARROW_RIGHT:39};export var OS={iOS:"iOS",Android:"Android",WP:"Windows Phone",Linux:"Linux",Windows:"Windows",MacOS:"MacOS",Unknown:"unknown"};
|
package/dist/Functions/Portal.js
CHANGED
|
@@ -1,22 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
import ReactDOM from "react-dom";
|
|
4
|
-
|
|
5
|
-
const Portal = ({ children, parentSelector }) => {
|
|
6
|
-
const [container] = useState(() => document.createElement("div"));
|
|
7
|
-
useEffect(() => {
|
|
8
|
-
let parent;
|
|
9
|
-
|
|
10
|
-
if (parentSelector) parent = document.querySelector(parentSelector);
|
|
11
|
-
else parent = document.body;
|
|
12
|
-
parent?.appendChild(container);
|
|
13
|
-
|
|
14
|
-
return () => {
|
|
15
|
-
parent?.removeChild(container);
|
|
16
|
-
};
|
|
17
|
-
}, []);
|
|
18
|
-
|
|
19
|
-
return ReactDOM.createPortal(children, container);
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export default React.memo(Portal);
|
|
1
|
+
function r(r,t){(null==t||t>r.length)&&(t=r.length);for(var e=0,n=Array(t);e<t;e++)n[e]=r[e];return n}import t,{useEffect as e,useState as n}from"react";import o from"react-dom";export default t.memo(function(t){var l,u=t.children,a=t.parentSelector,i=(l=n(function(){return document.createElement("div")}),function(r){if(Array.isArray(r))return r}(l)||function(r,t){var e,n,o=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=o){var l=[],u=!0,a=!1;try{for(o=o.call(r);!(u=(e=o.next()).done)&&(l.push(e.value),l.length!==t);u=!0);}catch(r){a=!0,n=r}finally{try{u||null==o.return||o.return()}finally{if(a)throw n}}return l}}(l,1)||function(t,e){if(t){if("string"==typeof t)return r(t,1);var n=Object.prototype.toString.call(t).slice(8,-1);if("Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(t,e)}}(l,1)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}())[0];return e(function(){var r;return null==(r=a?document.querySelector(a):document.body)||r.appendChild(i),function(){null==r||r.removeChild(i)}},[]),o.createPortal(u,i)});
|
|
@@ -1,96 +1 @@
|
|
|
1
|
-
(function () {
|
|
2
|
-
Element.prototype._addEventListener = Element.prototype.addEventListener;
|
|
3
|
-
Element.prototype.addEventListener = function (a, b, c) {
|
|
4
|
-
if (c == undefined) c = false;
|
|
5
|
-
this._addEventListener(a, b, c);
|
|
6
|
-
if (!this.eventListenerList) this.eventListenerList = {};
|
|
7
|
-
if (!this.eventListenerList[a]) this.eventListenerList[a] = [];
|
|
8
|
-
//this.removeEventListener(a,b,c); // TODO - handle duplicates..
|
|
9
|
-
this.eventListenerList[a].push({ listener: b, useCapture: c });
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
Element.prototype.getEventListeners = function (a) {
|
|
13
|
-
if (!this.eventListenerList) this.eventListenerList = {};
|
|
14
|
-
if (a == undefined) return this.eventListenerList;
|
|
15
|
-
return this.eventListenerList[a];
|
|
16
|
-
};
|
|
17
|
-
Element.prototype.clearEventListeners = function (a) {
|
|
18
|
-
if (!this.eventListenerList) this.eventListenerList = {};
|
|
19
|
-
if (a == undefined) {
|
|
20
|
-
for (const x in this.getEventListeners()) this.clearEventListeners(x);
|
|
21
|
-
return;
|
|
22
|
-
}
|
|
23
|
-
const el = this.getEventListeners(a);
|
|
24
|
-
if (el == undefined) return;
|
|
25
|
-
for (let i = el.length - 1; i >= 0; --i) {
|
|
26
|
-
const ev = el[i];
|
|
27
|
-
this.removeEventListener(a, ev.listener, ev.useCapture);
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
Element.prototype._removeEventListener =
|
|
32
|
-
Element.prototype.removeEventListener;
|
|
33
|
-
Element.prototype.removeEventListener = function (a, b, c) {
|
|
34
|
-
if (c == undefined) c = false;
|
|
35
|
-
this._removeEventListener(a, b, c);
|
|
36
|
-
if (!this.eventListenerList) this.eventListenerList = {};
|
|
37
|
-
if (!this.eventListenerList[a]) this.eventListenerList[a] = [];
|
|
38
|
-
|
|
39
|
-
// Find the event in the list
|
|
40
|
-
for (let i = 0; i < this.eventListenerList[a].length; i++) {
|
|
41
|
-
if (
|
|
42
|
-
(this.eventListenerList[a][i].listener == b,
|
|
43
|
-
this.eventListenerList[a][i].useCapture == c)
|
|
44
|
-
) {
|
|
45
|
-
// Hmm..
|
|
46
|
-
this.eventListenerList[a].splice(i, 1);
|
|
47
|
-
break;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
if (this.eventListenerList[a].length == 0) delete this.eventListenerList[a];
|
|
51
|
-
};
|
|
52
|
-
})();
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Добавляет обработчик события к элементу
|
|
56
|
-
* @param {HTMLElement} element - DOM элемент
|
|
57
|
-
* @param {string} eventName - Название события
|
|
58
|
-
* @param {Function} handler - Функция-обработчик
|
|
59
|
-
*/
|
|
60
|
-
export function addEventListener(element, eventName, handler) {
|
|
61
|
-
if (element && element.addEventListener) {
|
|
62
|
-
element.addEventListener(eventName, handler);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Удаляет обработчик события с элемента
|
|
68
|
-
* @param {HTMLElement} element - DOM элемент
|
|
69
|
-
* @param {string} eventName - Название события
|
|
70
|
-
* @param {Function} handler - Функция-обработчик
|
|
71
|
-
*/
|
|
72
|
-
export function removeEventListener(element, eventName, handler) {
|
|
73
|
-
if (element && element.removeEventListener) {
|
|
74
|
-
element.removeEventListener(eventName, handler);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Создает и отправляет кастомное событие
|
|
80
|
-
* @param {HTMLElement} element - DOM элемент
|
|
81
|
-
* @param {string} eventName - Название события
|
|
82
|
-
* @param {Object} detail - Данные события
|
|
83
|
-
*/
|
|
84
|
-
export function dispatchCustomEvent(element, eventName, detail = {}) {
|
|
85
|
-
if (element) {
|
|
86
|
-
const event = new CustomEvent(eventName, { detail });
|
|
87
|
-
element.dispatchEvent(event);
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// Экспортируем объект со всеми функциями для обратной совместимости
|
|
92
|
-
export default {
|
|
93
|
-
addEventListener,
|
|
94
|
-
removeEventListener,
|
|
95
|
-
dispatchCustomEvent
|
|
96
|
-
};
|
|
1
|
+
Element.prototype._addEventListener=Element.prototype.addEventListener,Element.prototype.addEventListener=function(e,t,n){void 0==n&&(n=!1),this._addEventListener(e,t,n),this.eventListenerList||(this.eventListenerList={}),this.eventListenerList[e]||(this.eventListenerList[e]=[]),this.eventListenerList[e].push({listener:t,useCapture:n})},Element.prototype.getEventListeners=function(e){return(this.eventListenerList||(this.eventListenerList={}),void 0==e)?this.eventListenerList:this.eventListenerList[e]},Element.prototype.clearEventListeners=function(e){if(this.eventListenerList||(this.eventListenerList={}),void 0==e){for(var t in this.getEventListeners())this.clearEventListeners(t);return}var n=this.getEventListeners(e);if(void 0!=n)for(var i=n.length-1;i>=0;--i){var s=n[i];this.removeEventListener(e,s.listener,s.useCapture)}},Element.prototype._removeEventListener=Element.prototype.removeEventListener,Element.prototype.removeEventListener=function(e,t,n){void 0==n&&(n=!1),this._removeEventListener(e,t,n),this.eventListenerList||(this.eventListenerList={}),this.eventListenerList[e]||(this.eventListenerList[e]=[]);for(var i=0;i<this.eventListenerList[e].length;i++)if(this.eventListenerList[e][i].listener,this.eventListenerList[e][i].useCapture==n){this.eventListenerList[e].splice(i,1);break}0==this.eventListenerList[e].length&&delete this.eventListenerList[e]};export function addEventListener(e,t,n){e&&e.addEventListener&&e.addEventListener(t,n)}export function removeEventListener(e,t,n){e&&e.removeEventListener&&e.removeEventListener(t,n)}export function dispatchCustomEvent(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e){var i=new CustomEvent(t,{detail:n});e.dispatchEvent(i)}}export default{addEventListener:addEventListener,removeEventListener:removeEventListener,dispatchCustomEvent:dispatchCustomEvent};
|
|
@@ -1,149 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @constant {Object} DATETIME_FORMATS
|
|
5
|
-
* @description Все доступные форматы дат и времени.
|
|
6
|
-
*/
|
|
7
|
-
export const DATETIME_FORMATS = Object.freeze({
|
|
8
|
-
// Основные форматы
|
|
9
|
-
DATE_FORMAT: "YYYY-MM-DD", // Стандартный формат даты
|
|
10
|
-
DATE_WITHOUT_SEPARATORS: "MMDDYYYY", // Без разделителей
|
|
11
|
-
VALIDATION_DATE_FORMAT: "MM/DD/YYYY", // Для валидации
|
|
12
|
-
INPUT_DATE_FORMAT: "MM.DD.YYYY", // Формат для ввода
|
|
13
|
-
INPUT_TIME_FORMAT: "YYYY-MM-DD HH:mm:SS", // Ввод времени
|
|
14
|
-
TIME_FORMAT_WSPACE: "YYYY-MM-DD HH:mm:SS", // Время с пробелом
|
|
15
|
-
TIME_FORMAT: "YYYY-MM-DDTHH:mm:SS", // Время с T (ISO формат)
|
|
16
|
-
DATE_FORMAT_WITH_SLASH: "MM/DD/YYYY", // Дата с разделителем /
|
|
17
|
-
|
|
18
|
-
// Дополнительные форматы
|
|
19
|
-
DATE_WITH_DASHES: "MM-DD-YYYY", // Дата с дефисами
|
|
20
|
-
DATE_WITH_DOTS: "DD.MM.YYYY", // Дата с точками
|
|
21
|
-
DATE_WITH_COMMA: "DD,MM,YYYY", // Дата с запятыми
|
|
22
|
-
FULL_DATE_TIME: "YYYY-MM-DD HH:mm:ss", // Полная дата и время
|
|
23
|
-
ISO_DATE_TIME: "YYYY-MM-DDTHH:mm:ss.SSSZ", // ISO стандарт с миллисекундами
|
|
24
|
-
LOCALIZED_DATE: "MMMM DD, YYYY", // Локализованный формат с полным названием месяца
|
|
25
|
-
SHORT_DATE: "MM/DD/YY", // Краткая дата
|
|
26
|
-
SHORT_DATE_WITH_TIME: "MM/DD/YY HH:mm", // Краткая дата с временем
|
|
27
|
-
TIME_24H: "HH:mm", // Время в 24-часовом формате
|
|
28
|
-
TIME_12H: "hh:mm A", // Время в 12-часовом формате
|
|
29
|
-
TIME_12H_WITH_SECONDS: "hh:mm:ss A", // Время в 12-часовом формате с секундами
|
|
30
|
-
TIME_24H_WITH_SECONDS: "HH:mm:ss", // Время в 24-часовом формате с секундами
|
|
31
|
-
MONTH_DAY: "MM/DD", // Только месяц и день
|
|
32
|
-
YEAR_MONTH_DAY: "YYYY/MM/DD", // Год/Месяц/День
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
const formatMap = Object.freeze({
|
|
36
|
-
[DATETIME_FORMATS.DATE_FORMAT]: "YYYY-MM-DD", // Стандартный формат даты
|
|
37
|
-
[DATETIME_FORMATS.DATE_WITHOUT_SEPARATORS]: "MMDDYYYY", // Без разделителей
|
|
38
|
-
[DATETIME_FORMATS.VALIDATION_DATE_FORMAT]: "MM/DD/YYYY", // Для валидации
|
|
39
|
-
[DATETIME_FORMATS.INPUT_DATE_FORMAT]: "MM.DD.YYYY", // Формат для ввода
|
|
40
|
-
[DATETIME_FORMATS.INPUT_TIME_FORMAT]: "YYYY-MM-DD HH:mm:SS", // Ввод времени
|
|
41
|
-
[DATETIME_FORMATS.TIME_FORMAT_WSPACE]: "YYYY-MM-DD HH:mm:SS", // Время с пробелом
|
|
42
|
-
[DATETIME_FORMATS.TIME_FORMAT]: "YYYY-MM-DDTHH:mm:SS", // Время с T (ISO формат)
|
|
43
|
-
[DATETIME_FORMATS.DATE_FORMAT_WITH_SLASH]: "MM/DD/YYYY", // Дата с разделителем /
|
|
44
|
-
[DATETIME_FORMATS.DATE_WITH_DASHES]: "MM-DD-YYYY", // Дата с дефисами
|
|
45
|
-
[DATETIME_FORMATS.DATE_WITH_DOTS]: "DD.MM.YYYY", // Дата с точками
|
|
46
|
-
[DATETIME_FORMATS.DATE_WITH_COMMA]: "DD,MM,YYYY", // Дата с запятыми
|
|
47
|
-
[DATETIME_FORMATS.FULL_DATE_TIME]: "YYYY-MM-DD HH:mm:ss", // Полная дата и время
|
|
48
|
-
[DATETIME_FORMATS.ISO_DATE_TIME]: "YYYY-MM-DDTHH:mm:ss.SSSZ", // ISO стандарт с миллисекундами
|
|
49
|
-
[DATETIME_FORMATS.LOCALIZED_DATE]: "MMMM DD, YYYY", // Локализованный формат с полным названием месяца
|
|
50
|
-
[DATETIME_FORMATS.SHORT_DATE]: "MM/DD/YY", // Краткая дата
|
|
51
|
-
[DATETIME_FORMATS.SHORT_DATE_WITH_TIME]: "MM/DD/YY HH:mm", // Краткая дата с временем
|
|
52
|
-
[DATETIME_FORMATS.TIME_24H]: "HH:mm", // Время в 24-часовом формате
|
|
53
|
-
[DATETIME_FORMATS.TIME_12H]: "hh:mm A", // Время в 12-часовом формате
|
|
54
|
-
[DATETIME_FORMATS.TIME_12H_WITH_SECONDS]: "hh:mm:ss A", // Время в 12-часовом формате с секундами
|
|
55
|
-
[DATETIME_FORMATS.TIME_24H_WITH_SECONDS]: "HH:mm:ss", // Время в 24-часовом формате с секундами
|
|
56
|
-
[DATETIME_FORMATS.MONTH_DAY]: "MM/DD", // Только месяц и день
|
|
57
|
-
[DATETIME_FORMATS.YEAR_MONTH_DAY]: "YYYY/MM/DD", // Год/Месяц/День
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* @constant {Object} DATE_UNITS
|
|
62
|
-
* @description Единицы времени, которые могут быть использованы для работы с датами.
|
|
63
|
-
*/
|
|
64
|
-
export const DATE_UNITS = Object.freeze({
|
|
65
|
-
YEARS: Object.freeze({
|
|
66
|
-
YEARS: "years",
|
|
67
|
-
YEAR: "year",
|
|
68
|
-
Y: "y",
|
|
69
|
-
TEMPLATE: "YYYY",
|
|
70
|
-
}),
|
|
71
|
-
|
|
72
|
-
MONTHS: Object.freeze({
|
|
73
|
-
MONTHS: "months",
|
|
74
|
-
MONTH: "month",
|
|
75
|
-
MON: "M",
|
|
76
|
-
TEMPLATE: "MM",
|
|
77
|
-
}),
|
|
78
|
-
|
|
79
|
-
DAYS: Object.freeze({
|
|
80
|
-
DAYS: "days",
|
|
81
|
-
DAY: "day",
|
|
82
|
-
D: "d",
|
|
83
|
-
TEMPLATE: "DD",
|
|
84
|
-
}),
|
|
85
|
-
|
|
86
|
-
HOURS: Object.freeze({
|
|
87
|
-
HOURS: "hours",
|
|
88
|
-
HOUR: "hour",
|
|
89
|
-
H: "h",
|
|
90
|
-
TEMPLATE: "HH",
|
|
91
|
-
}),
|
|
92
|
-
|
|
93
|
-
WEEKS: Object.freeze({
|
|
94
|
-
WEEKS: "weeks",
|
|
95
|
-
WEEK: "week",
|
|
96
|
-
W: "w",
|
|
97
|
-
}),
|
|
98
|
-
|
|
99
|
-
QUARTERS: Object.freeze({
|
|
100
|
-
QUARTERS: "quarters",
|
|
101
|
-
QUARTER: "quarter",
|
|
102
|
-
Q: "Q",
|
|
103
|
-
}),
|
|
104
|
-
|
|
105
|
-
MINUTES: Object.freeze({
|
|
106
|
-
MINUTES: "minutes",
|
|
107
|
-
MINUTE: "minute",
|
|
108
|
-
MIN: "m",
|
|
109
|
-
}),
|
|
110
|
-
|
|
111
|
-
SECONDS: Object.freeze({
|
|
112
|
-
SECONDS: "seconds",
|
|
113
|
-
SECOND: "second",
|
|
114
|
-
S: "s",
|
|
115
|
-
}),
|
|
116
|
-
|
|
117
|
-
MILLISECONDS: Object.freeze({
|
|
118
|
-
MILLISECONDS: "milliseconds",
|
|
119
|
-
MILLISECOND: "millisecond",
|
|
120
|
-
MS: "ms",
|
|
121
|
-
}),
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
/**
|
|
125
|
-
* Функция для парсинга и форматирования строки с датой в указанный формат.
|
|
126
|
-
*
|
|
127
|
-
* @param {string} value - Строка с датой, которую необходимо распарсить и отформатировать.
|
|
128
|
-
* @param {string} [outputFormat=DATETIME_FORMATS.INPUT_DATE_FORMAT] - Формат, в который будет преобразована дата.
|
|
129
|
-
* Если не указан, используется формат по умолчанию `MM.DD.YYYY`.
|
|
130
|
-
*
|
|
131
|
-
* @returns {string} - Отформатированная дата в строковом виде, или исходная строка, если дата не распознана.
|
|
132
|
-
*
|
|
133
|
-
* @throws {Error} - Если значение даты некорректно (не строка или пустое).
|
|
134
|
-
*/
|
|
135
|
-
export function parseAndFormatDate(
|
|
136
|
-
value,
|
|
137
|
-
outputFormat = DATETIME_FORMATS.INPUT_DATE_FORMAT,
|
|
138
|
-
) {
|
|
139
|
-
if (!value || typeof value !== "string") return value;
|
|
140
|
-
|
|
141
|
-
for (let format in formatMap) {
|
|
142
|
-
const parsedDate = moment(value, formatMap[format], true);
|
|
143
|
-
if (parsedDate.isValid()) {
|
|
144
|
-
return parsedDate.format(outputFormat);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
return value;
|
|
149
|
-
}
|
|
1
|
+
function T(T,M,D){return M in T?Object.defineProperty(T,M,{value:D,enumerable:!0,configurable:!0,writable:!0}):T[M]=D,T}import M from"moment";export var DATETIME_FORMATS=Object.freeze({DATE_FORMAT:"YYYY-MM-DD",DATE_WITHOUT_SEPARATORS:"MMDDYYYY",VALIDATION_DATE_FORMAT:"MM/DD/YYYY",INPUT_DATE_FORMAT:"MM.DD.YYYY",INPUT_TIME_FORMAT:"YYYY-MM-DD HH:mm:SS",TIME_FORMAT_WSPACE:"YYYY-MM-DD HH:mm:SS",TIME_FORMAT:"YYYY-MM-DDTHH:mm:SS",DATE_FORMAT_WITH_SLASH:"MM/DD/YYYY",DATE_WITH_DASHES:"MM-DD-YYYY",DATE_WITH_DOTS:"DD.MM.YYYY",DATE_WITH_COMMA:"DD,MM,YYYY",FULL_DATE_TIME:"YYYY-MM-DD HH:mm:ss",ISO_DATE_TIME:"YYYY-MM-DDTHH:mm:ss.SSSZ",LOCALIZED_DATE:"MMMM DD, YYYY",SHORT_DATE:"MM/DD/YY",SHORT_DATE_WITH_TIME:"MM/DD/YY HH:mm",TIME_24H:"HH:mm",TIME_12H:"hh:mm A",TIME_12H_WITH_SECONDS:"hh:mm:ss A",TIME_24H_WITH_SECONDS:"HH:mm:ss",MONTH_DAY:"MM/DD",YEAR_MONTH_DAY:"YYYY/MM/DD"});var D,Y=Object.freeze((T(D={},DATETIME_FORMATS.DATE_FORMAT,"YYYY-MM-DD"),T(D,DATETIME_FORMATS.DATE_WITHOUT_SEPARATORS,"MMDDYYYY"),T(D,DATETIME_FORMATS.VALIDATION_DATE_FORMAT,"MM/DD/YYYY"),T(D,DATETIME_FORMATS.INPUT_DATE_FORMAT,"MM.DD.YYYY"),T(D,DATETIME_FORMATS.INPUT_TIME_FORMAT,"YYYY-MM-DD HH:mm:SS"),T(D,DATETIME_FORMATS.TIME_FORMAT_WSPACE,"YYYY-MM-DD HH:mm:SS"),T(D,DATETIME_FORMATS.TIME_FORMAT,"YYYY-MM-DDTHH:mm:SS"),T(D,DATETIME_FORMATS.DATE_FORMAT_WITH_SLASH,"MM/DD/YYYY"),T(D,DATETIME_FORMATS.DATE_WITH_DASHES,"MM-DD-YYYY"),T(D,DATETIME_FORMATS.DATE_WITH_DOTS,"DD.MM.YYYY"),T(D,DATETIME_FORMATS.DATE_WITH_COMMA,"DD,MM,YYYY"),T(D,DATETIME_FORMATS.FULL_DATE_TIME,"YYYY-MM-DD HH:mm:ss"),T(D,DATETIME_FORMATS.ISO_DATE_TIME,"YYYY-MM-DDTHH:mm:ss.SSSZ"),T(D,DATETIME_FORMATS.LOCALIZED_DATE,"MMMM DD, YYYY"),T(D,DATETIME_FORMATS.SHORT_DATE,"MM/DD/YY"),T(D,DATETIME_FORMATS.SHORT_DATE_WITH_TIME,"MM/DD/YY HH:mm"),T(D,DATETIME_FORMATS.TIME_24H,"HH:mm"),T(D,DATETIME_FORMATS.TIME_12H,"hh:mm A"),T(D,DATETIME_FORMATS.TIME_12H_WITH_SECONDS,"hh:mm:ss A"),T(D,DATETIME_FORMATS.TIME_24H_WITH_SECONDS,"HH:mm:ss"),T(D,DATETIME_FORMATS.MONTH_DAY,"MM/DD"),T(D,DATETIME_FORMATS.YEAR_MONTH_DAY,"YYYY/MM/DD"),D));export var DATE_UNITS=Object.freeze({YEARS:Object.freeze({YEARS:"years",YEAR:"year",Y:"y",TEMPLATE:"YYYY"}),MONTHS:Object.freeze({MONTHS:"months",MONTH:"month",MON:"M",TEMPLATE:"MM"}),DAYS:Object.freeze({DAYS:"days",DAY:"day",D:"d",TEMPLATE:"DD"}),HOURS:Object.freeze({HOURS:"hours",HOUR:"hour",H:"h",TEMPLATE:"HH"}),WEEKS:Object.freeze({WEEKS:"weeks",WEEK:"week",W:"w"}),QUARTERS:Object.freeze({QUARTERS:"quarters",QUARTER:"quarter",Q:"Q"}),MINUTES:Object.freeze({MINUTES:"minutes",MINUTE:"minute",MIN:"m"}),SECONDS:Object.freeze({SECONDS:"seconds",SECOND:"second",S:"s"}),MILLISECONDS:Object.freeze({MILLISECONDS:"milliseconds",MILLISECOND:"millisecond",MS:"ms"})});export function parseAndFormatDate(T){var D=arguments.length>1&&void 0!==arguments[1]?arguments[1]:DATETIME_FORMATS.INPUT_DATE_FORMAT;if(!T||"string"!=typeof T)return T;for(var E in Y){var A=M(T,Y[E],!0);if(A.isValid())return A.format(D)}return T}
|