sprof 0.1.0
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/README.md +29 -0
- package/package.json +101 -0
- package/src/Hooks/Hooks.ts +75 -0
- package/src/assets/img/avatar.webp +0 -0
- package/src/assets/styles/borders.scss +11 -0
- package/src/assets/styles/brandbook.css +227 -0
- package/src/assets/styles/colors.scss +42 -0
- package/src/assets/styles/fonts.scss +15 -0
- package/src/assets/styles/index.css +15 -0
- package/src/assets/styles/index.scss +45 -0
- package/src/assets/styles/platform/android.css +53 -0
- package/src/assets/styles/platform/ios.css +53 -0
- package/src/assets/styles/platform/webdesktop.css +72 -0
- package/src/assets/styles/platform/webdesktop_old.css +65 -0
- package/src/assets/styles/platform/webmobile.css +53 -0
- package/src/assets/styles/platform/webtablet.css +53 -0
- package/src/assets/styles/reset.scss +28 -0
- package/src/assets/styles/shadow.scss +6 -0
- package/src/assets/styles/theme/aquaBlueLight.css +162 -0
- package/src/assets/styles/theme/blueLight.css +187 -0
- package/src/assets/styles/theme/blueLight_test.css +162 -0
- package/src/assets/styles/theme/dark.css +286 -0
- package/src/assets/styles/theme/light.css +151 -0
- package/src/assets/svg/ArrowLeft.svg +5 -0
- package/src/assets/svg/ArrowRight.svg +5 -0
- package/src/assets/svg/Close.svg +7 -0
- package/src/assets/svg/DoubleArrowLeft.svg +5 -0
- package/src/assets/svg/DoubleArrowRight.svg +5 -0
- package/src/assets/svg/Ellipsis.svg +7 -0
- package/src/assets/svg/Filter.svg +10 -0
- package/src/assets/svg/Menu.svg +5 -0
- package/src/assets/svg/Move.svg +5 -0
- package/src/assets/svg/Password.svg +5 -0
- package/src/assets/svg/RightMenu.svg +5 -0
- package/src/assets/svg/Settings.svg +6 -0
- package/src/assets/svg/User.svg +6 -0
- package/src/buildLibrary.ts +59 -0
- package/src/classes/Auth.ts +63 -0
- package/src/classes/AuthButton.ts +64 -0
- package/src/classes/AuthForm.ts +114 -0
- package/src/classes/AuthModal.ts +32 -0
- package/src/classes/AuthStatusesObjects.ts +37 -0
- package/src/classes/AuthTokens.ts +43 -0
- package/src/classes/AuthUser.ts +53 -0
- package/src/classes/CallbackRequest.ts +12 -0
- package/src/classes/Chat.ts +18 -0
- package/src/classes/ChatMessage.ts +48 -0
- package/src/classes/Contact.ts +96 -0
- package/src/classes/Cropper.ts +22 -0
- package/src/classes/DateHelper.ts +29 -0
- package/src/classes/Email.ts +18 -0
- package/src/classes/EmailField.ts +42 -0
- package/src/classes/EmailRules.ts +4 -0
- package/src/classes/FTSPPreset.ts +16 -0
- package/src/classes/FileInfo.ts +86 -0
- package/src/classes/HttpResponse.ts +22 -0
- package/src/classes/Human.ts +106 -0
- package/src/classes/LabelValue.ts +11 -0
- package/src/classes/LocalStore.ts +22 -0
- package/src/classes/M2M.ts +25 -0
- package/src/classes/Menu.ts +102 -0
- package/src/classes/PageSectionImage.ts +19 -0
- package/src/classes/PasswordField.ts +39 -0
- package/src/classes/PasswordRepeatField.ts +37 -0
- package/src/classes/Phone.ts +17 -0
- package/src/classes/PostAddress.ts +11 -0
- package/src/classes/PostAddressRules.ts +1 -0
- package/src/classes/Role.ts +13 -0
- package/src/classes/Schema.ts +13 -0
- package/src/classes/SchemaField.ts +10 -0
- package/src/classes/SearchElement.ts +18 -0
- package/src/classes/SearchElementMeta.ts +10 -0
- package/src/classes/SearchGroup.ts +25 -0
- package/src/classes/SearchGroupMetaColumn.ts +11 -0
- package/src/classes/SearchModel.ts +61 -0
- package/src/classes/SortModel.ts +57 -0
- package/src/classes/SubMenu.ts +56 -0
- package/src/classes/TelephoneNumberRules.ts +9 -0
- package/src/classes/User.ts +17 -0
- package/src/classes/UserAccount.ts +17 -0
- package/src/classes/UserService.ts +20 -0
- package/src/classes/ValidationRules.ts +15 -0
- package/src/classes/ValueType.ts +69 -0
- package/src/classes/Website.ts +11 -0
- package/src/classes/WebsiteRules.ts +4 -0
- package/src/classes/admin/AdminButtonParams.ts +27 -0
- package/src/classes/admin/AdminHeaderParams.ts +34 -0
- package/src/classes/calendar/Calendar.ts +168 -0
- package/src/classes/calendar/Day.ts +15 -0
- package/src/classes/calendar/Month.ts +144 -0
- package/src/classes/calendar/Week.ts +44 -0
- package/src/classes/calendar/Year.ts +130 -0
- package/src/classes/filters/Cursor.ts +43 -0
- package/src/classes/filters/FTSP.ts +99 -0
- package/src/classes/filters/FilterModel.ts +263 -0
- package/src/classes/filters/FilterQuery.ts +187 -0
- package/src/classes/filters/OperatorsOptions.ts +8 -0
- package/src/classes/filters/OperatorsTextOptions.ts +3 -0
- package/src/classes/filters/Pagination.ts +78 -0
- package/src/classes/filters/SelectFilter.ts +15 -0
- package/src/classes/filters/TreeModel.ts +14 -0
- package/src/classes/page/CustomSection.ts +24 -0
- package/src/classes/page/Page.ts +160 -0
- package/src/classes/page/PageDocument.ts +27 -0
- package/src/classes/page/PageImage.ts +15 -0
- package/src/classes/page/PageSection.ts +82 -0
- package/src/classes/page/PageSectionDocument.ts +56 -0
- package/src/classes/page/PageSideMenu.ts +74 -0
- package/src/components/AdaptiveContainer.vue +154 -0
- package/src/components/AdaptiveContainerHorizontal.vue +173 -0
- package/src/components/AdminGallery.vue +238 -0
- package/src/components/AuthModal.vue +16 -0
- package/src/components/CarouselImages.vue +434 -0
- package/src/components/ContactForm.vue +219 -0
- package/src/components/ContextWindow.vue +48 -0
- package/src/components/DateInputRange.vue +66 -0
- package/src/components/DateInputRange_v2.vue +25 -0
- package/src/components/DropList.vue +55 -0
- package/src/components/Edit.svg +10 -0
- package/src/components/EmailForm.vue +180 -0
- package/src/components/FTSPPanel.vue +379 -0
- package/src/components/FilterCheckbox.vue +73 -0
- package/src/components/FilterSelect.vue +104 -0
- package/src/components/FiltersButtonsSelect.vue +126 -0
- package/src/components/GeneralItem.vue +172 -0
- package/src/components/GridContainer.vue +66 -0
- package/src/components/Icons/Filter/IconDownload.vue +55 -0
- package/src/components/Icons/Filter/IconFilter.vue +55 -0
- package/src/components/Icons/IconArrowLeft.vue +36 -0
- package/src/components/Icons/IconCheckDefault.vue +41 -0
- package/src/components/Icons/IconClose.vue +37 -0
- package/src/components/Icons/IconEdit.vue +40 -0
- package/src/components/Icons/IconEmail.vue +36 -0
- package/src/components/Icons/IconMove.vue +53 -0
- package/src/components/Icons/IconPhone.vue +36 -0
- package/src/components/Icons/IconSearch.vue +47 -0
- package/src/components/Icons/IconSelectArrow.vue +41 -0
- package/src/components/Icons/Pagination/ArrowLeft.vue +52 -0
- package/src/components/Icons/Pagination/ArrowRight.vue +52 -0
- package/src/components/Icons/Pagination/DoubleArrowLeft.vue +52 -0
- package/src/components/Icons/Pagination/DoubleArrowRight.vue +52 -0
- package/src/components/Icons/Pagination/EllipsisSvg.vue +58 -0
- package/src/components/ImageCropper.vue +203 -0
- package/src/components/InfoItem.vue +294 -0
- package/src/components/InfoItemSelectButtons.vue +43 -0
- package/src/components/LeftRightContainer.vue +93 -0
- package/src/components/MessageBody.vue +45 -0
- package/src/components/PAutocomplete.vue +93 -0
- package/src/components/PDialog.vue +77 -0
- package/src/components/PLoader.vue +68 -0
- package/src/components/PNotification.vue +79 -0
- package/src/components/PPagination.vue +174 -0
- package/src/components/PhoneForm.vue +180 -0
- package/src/components/RSContainer.vue +262 -0
- package/src/components/RemoteSearch.vue +156 -0
- package/src/components/ResearcheContainer.vue +71 -0
- package/src/components/RightSliderContainer.vue +181 -0
- package/src/components/RightTabsContainer.vue +210 -0
- package/src/components/SelectValueType.vue +39 -0
- package/src/components/SingleNameToggleForm.vue +399 -0
- package/src/components/SortList.vue +101 -0
- package/src/components/SortSelect.vue +93 -0
- package/src/components/SvgIcon.vue +25 -0
- package/src/components/Switch3Pos.vue +173 -0
- package/src/components/ThemeWrapper.vue +19 -0
- package/src/components/ToggleInfoItem.vue +296 -0
- package/src/components/TopSliderContainer.vue +166 -0
- package/src/components/UploaderImage.vue +268 -0
- package/src/components/atoms/PButton/PButton.stories.ts +44 -0
- package/src/components/atoms/PButton/PButton.test.ts +66 -0
- package/src/components/atoms/PButton/PButton.vue +54 -0
- package/src/components/atoms/PButton/skins/p-button_base.css +131 -0
- package/src/components/atoms/PButton/skins/p-button_filter.scss +83 -0
- package/src/components/atoms/PButton/skins/p-button_icon.scss +78 -0
- package/src/components/atoms/PButton/skins/p-button_pag.css +44 -0
- package/src/components/atoms/PButton/skins/p-button_text.css +88 -0
- package/src/components/atoms/PButton/skins/p-button_text_ano.css +88 -0
- package/src/components/atoms/PCheckbox/PCheckBox.test.ts +107 -0
- package/src/components/atoms/PCheckbox/PCheckBox.vue +92 -0
- package/src/components/atoms/PDatePicker/PDatePicker.test.ts +63 -0
- package/src/components/atoms/PDatePicker/PDatePicker.vue +141 -0
- package/src/components/atoms/PFlex/PFlex.test.ts +41 -0
- package/src/components/atoms/PFlex/PFlex.vue +46 -0
- package/src/components/atoms/PInput/PInput.stories.ts +40 -0
- package/src/components/atoms/PInput/PInput.test.ts +92 -0
- package/src/components/atoms/PInput/PInput.vue +133 -0
- package/src/components/atoms/PInputDate/PInputDate.test.ts +55 -0
- package/src/components/atoms/PInputDate/PInputDate.vue +79 -0
- package/src/components/atoms/PInputNumber/PInputNumber.vue +175 -0
- package/src/components/atoms/PLeftSlider/PLeftSlider.test.ts +121 -0
- package/src/components/atoms/PLeftSlider/PLeftSlider.vue +139 -0
- package/src/components/atoms/PList/PList.test.ts +32 -0
- package/src/components/atoms/PList/PList.vue +27 -0
- package/src/components/atoms/PListItem/PListItem.test.ts +61 -0
- package/src/components/atoms/PListItem/PListItem.vue +51 -0
- package/src/components/atoms/PRadio/PRadio.test.ts +110 -0
- package/src/components/atoms/PRadio/PRadio.vue +97 -0
- package/src/components/atoms/PRightSlider/PRightSlider.test.ts +123 -0
- package/src/components/atoms/PRightSlider/PRightSlider.vue +149 -0
- package/src/components/atoms/PSelect/PSelect.test.ts +74 -0
- package/src/components/atoms/PSelect/PSelect.vue +192 -0
- package/src/components/atoms/PSelect/select-arrow-down.svg +4 -0
- package/src/components/atoms/PSticky/PSticky.test.ts +70 -0
- package/src/components/atoms/PSticky/PSticky.vue +37 -0
- package/src/components/atoms/PString/PString.test.ts +58 -0
- package/src/components/atoms/PString/PString.vue +58 -0
- package/src/components/atoms/PTextarea/PTextarea.stories.ts +40 -0
- package/src/components/atoms/PTextarea/PTextarea.test.ts +22 -0
- package/src/components/atoms/PTextarea/PTextarea.vue +123 -0
- package/src/components/atoms/PTopSlider/PTopSlider.test.ts +95 -0
- package/src/components/atoms/PTopSlider/PTopSlider.vue +164 -0
- package/src/components/molecules/Collapse/CollapseContainer.vue +36 -0
- package/src/components/molecules/Collapse/CollapseItem.vue +295 -0
- package/src/components/molecules/Collapse/VerticalCollapseContainer.vue +102 -0
- package/src/components/molecules/PAdd/PAdd.vue +65 -0
- package/src/components/molecules/PAdd/PContainer.vue +65 -0
- package/src/components/molecules/PAdd/PContainerStickyHead.vue +51 -0
- package/src/components/molecules/PDel/PDel.vue +74 -0
- package/src/components/organisms/AuthForm.vue +219 -0
- package/src/components/organisms/PModal.vue +113 -0
- package/src/components/organisms/PTabs/ITab.ts +5 -0
- package/src/components/organisms/PTabs/PTabs.vue +190 -0
- package/src/components/organisms/UploaderFile/UploaderFile.test.ts +23 -0
- package/src/components/organisms/UploaderFile/UploaderFile.vue +202 -0
- package/src/components/pages/AuthPage.vue +22 -0
- package/src/components/pages/PageNotFound.vue +7 -0
- package/src/index.ts +206 -0
- package/src/interfaces/AdminLayout.ts +4 -0
- package/src/interfaces/Animations.ts +5 -0
- package/src/interfaces/AuthStatuses.ts +8 -0
- package/src/interfaces/CalendarScale.ts +6 -0
- package/src/interfaces/Callback.ts +2 -0
- package/src/interfaces/Class.ts +3 -0
- package/src/interfaces/DataTypes.ts +8 -0
- package/src/interfaces/Filter.ts +3 -0
- package/src/interfaces/IAdminMenu.ts +9 -0
- package/src/interfaces/IAuthInfo.ts +0 -0
- package/src/interfaces/ICursor.ts +14 -0
- package/src/interfaces/IEmailPassword.ts +4 -0
- package/src/interfaces/IFIlesList.ts +4 -0
- package/src/interfaces/IFile.ts +7 -0
- package/src/interfaces/IFileAnchor.ts +4 -0
- package/src/interfaces/IFileInfo.ts +22 -0
- package/src/interfaces/IFileInfosGetter.ts +5 -0
- package/src/interfaces/IFiler.ts +7 -0
- package/src/interfaces/IFilter.ts +4 -0
- package/src/interfaces/IFilterQuery.ts +24 -0
- package/src/interfaces/IForm.ts +5 -0
- package/src/interfaces/IHTTPTypes.ts +19 -0
- package/src/interfaces/IMessage.ts +5 -0
- package/src/interfaces/IOption.ts +4 -0
- package/src/interfaces/IOrdered.ts +4 -0
- package/src/interfaces/IPagination.ts +15 -0
- package/src/interfaces/ISearchElement.ts +6 -0
- package/src/interfaces/ISearchObject.ts +6 -0
- package/src/interfaces/ISearchQuery.ts +4 -0
- package/src/interfaces/ISelectFilter.ts +6 -0
- package/src/interfaces/ISortModel.ts +18 -0
- package/src/interfaces/IStorePaginator.ts +4 -0
- package/src/interfaces/ISupposedTimePeriod.ts +4 -0
- package/src/interfaces/ITimePeriod.ts +4 -0
- package/src/interfaces/ITokens.ts +4 -0
- package/src/interfaces/IWithId.ts +3 -0
- package/src/interfaces/IWithImage.ts +9 -0
- package/src/interfaces/IWithName.ts +4 -0
- package/src/interfaces/IWithSupposedTimePeriod.ts +4 -0
- package/src/interfaces/ItemsWithCount.ts +4 -0
- package/src/interfaces/LocalStoreKeys.ts +7 -0
- package/src/interfaces/Operators.ts +11 -0
- package/src/interfaces/Orders.ts +4 -0
- package/src/interfaces/RoleName.ts +4 -0
- package/src/interfaces/SocialTypes.ts +6 -0
- package/src/interfaces/Sort.ts +9 -0
- package/src/interfaces/ValueRelation.ts +7 -0
- package/src/interfaces/canvas/ICanvas.ts +3 -0
- package/src/interfaces/canvas/ICanvasResult.ts +7 -0
- package/src/interfaces/canvas/ICoordinates.ts +6 -0
- package/src/interfaces/types.ts +3 -0
- package/src/services/AdminHead.ts +32 -0
- package/src/services/AdminSideMenu.ts +52 -0
- package/src/services/AdminUI.ts +9 -0
- package/src/services/Arrays.ts +65 -0
- package/src/services/Axios.ts +64 -0
- package/src/services/BaseRoutes.ts +21 -0
- package/src/services/BaseStore.ts +220 -0
- package/src/services/Button.ts +42 -0
- package/src/services/Cache.ts +44 -0
- package/src/services/CacheS.ts +44 -0
- package/src/services/CarouselSwipe.ts +14 -0
- package/src/services/ClassHelper.ts +101 -0
- package/src/services/Color.ts +8 -0
- package/src/services/CreateSortModels.ts +26 -0
- package/src/services/Cursor.ts +51 -0
- package/src/services/DateFormat.ts +102 -0
- package/src/services/DateMask.ts +69 -0
- package/src/services/Dates.ts +41 -0
- package/src/services/DatesFormatter.ts +45 -0
- package/src/services/Dialog.ts +70 -0
- package/src/services/Dragger.ts +22 -0
- package/src/services/Extension.ts +6 -0
- package/src/services/Favourite.ts +62 -0
- package/src/services/HttpClient.ts +199 -0
- package/src/services/HttpClientS.ts +188 -0
- package/src/services/HttpError.ts +58 -0
- package/src/services/Loading.ts +14 -0
- package/src/services/MakeCarousel.ts +10 -0
- package/src/services/Menu.ts +102 -0
- package/src/services/Message.ts +66 -0
- package/src/services/Notification.ts +37 -0
- package/src/services/PHelp.ts +20 -0
- package/src/services/Paginator.ts +22 -0
- package/src/services/Period.ts +29 -0
- package/src/services/PhoneService.ts +46 -0
- package/src/services/Router.ts +85 -0
- package/src/services/RouterGuard.ts +15 -0
- package/src/services/Scheduler.ts +66 -0
- package/src/services/Scroll.ts +19 -0
- package/src/services/SortList.ts +44 -0
- package/src/services/Sorter.ts +6 -0
- package/src/services/Strings.test.ts +30 -0
- package/src/services/Strings.ts +138 -0
- package/src/services/Time.ts +124 -0
- package/src/services/Timer.ts +13 -0
- package/src/services/Token.ts +71 -0
- package/src/services/Visible.ts +16 -0
- package/src/services/WaitElement.ts +19 -0
- package/src/services/WebSocketClient.ts +62 -0
- package/src/services/brandColors.ts +5 -0
- package/src/services/buildNameNumbers.ts +8 -0
- package/src/services/countRating.ts +12 -0
- package/src/services/index.ts +105 -0
- package/src/services/indexNames.ts +55 -0
- package/src/services/moves.ts +17 -0
- package/src/services/useConfirmLeavePage.ts +52 -0
- package/src/services/validate.ts +22 -0
- package/src/store/AuthStore.ts +58 -0
- package/src/store/ContactsStore.ts +11 -0
- package/src/store/CropperStore.ts +20 -0
- package/src/store/EmailsStore.ts +11 -0
- package/src/store/FTSPPresetsStore.ts +11 -0
- package/src/store/FileInfosStore.ts +11 -0
- package/src/store/HumansStore.ts +11 -0
- package/src/store/MenusStore.ts +11 -0
- package/src/store/PhonesStore.ts +11 -0
- package/src/store/SchemasStore.ts +11 -0
- package/src/store/SearchStore.ts +65 -0
- package/src/store/ServicesStores.ts +29 -0
- package/src/store/ServicesStoresNames.ts +17 -0
- package/src/store/UserAccountsStore.ts +11 -0
- package/src/store/ValueTypesStore.ts +11 -0
- package/src/tsconfig.build-lib.json +30 -0
- package/src/types/AuthInfo.ts +6 -0
- package/src/types/HttpHeaders.ts +12 -0
- package/src/types/HttpMethods.ts +6 -0
- package/src/types/Sizes.ts +7 -0
- package/src/types/Statuses.ts +9 -0
- package/src/types/ValueTypes.ts +16 -0
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
export default abstract class Strings {
|
|
2
|
+
static Capitalize(str: string): string {
|
|
3
|
+
if (!str) {
|
|
4
|
+
return '';
|
|
5
|
+
}
|
|
6
|
+
return str[0].toUpperCase() + str.slice(1);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
static ToCamelCase(str: string): string {
|
|
10
|
+
const wordPattern = new RegExp(
|
|
11
|
+
['[А-Я][а-я][A-Z][a-z]+', '[А-Я]+(?=[А-Я][а-я])', '[A-Z]+(?=[A-Z][a-z])', '[А-Я]+', '[A-Z]+', '[а-я]+', '[a-z]+', '[0-9]+'].join('|'),
|
|
12
|
+
'g'
|
|
13
|
+
);
|
|
14
|
+
const parts = str.match(wordPattern) as string[];
|
|
15
|
+
return parts
|
|
16
|
+
.map((w: string, i: number) => {
|
|
17
|
+
return i === 0 ? w.toLowerCase() : Strings.Capitalize(w.toLowerCase());
|
|
18
|
+
})
|
|
19
|
+
.join('');
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
static ToKebabCase(str: string): string {
|
|
23
|
+
return str
|
|
24
|
+
.replace(/([a-z])([A-Z])/g, '$1-$2')
|
|
25
|
+
.replace(/[\s_]+/g, '-')
|
|
26
|
+
.toLowerCase();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
static GetStringBetweenChars(str: string, first: string, two: string): string {
|
|
30
|
+
return str.substring(str.indexOf(first) + 2, str.lastIndexOf(two));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static Translit(str: string, toEachLang?: boolean): string {
|
|
34
|
+
const transliter: Record<string, string> = {
|
|
35
|
+
q: 'й',
|
|
36
|
+
w: 'ц',
|
|
37
|
+
e: 'у',
|
|
38
|
+
r: 'к',
|
|
39
|
+
t: 'е',
|
|
40
|
+
y: 'н',
|
|
41
|
+
u: 'г',
|
|
42
|
+
i: 'ш',
|
|
43
|
+
o: 'щ',
|
|
44
|
+
p: 'з',
|
|
45
|
+
'[': 'х',
|
|
46
|
+
']': 'ъ',
|
|
47
|
+
a: 'ф',
|
|
48
|
+
s: 'ы',
|
|
49
|
+
d: 'в',
|
|
50
|
+
f: 'а',
|
|
51
|
+
g: 'п',
|
|
52
|
+
h: 'р',
|
|
53
|
+
j: 'о',
|
|
54
|
+
k: 'л',
|
|
55
|
+
l: 'д',
|
|
56
|
+
';': 'ж',
|
|
57
|
+
"'": 'э',
|
|
58
|
+
z: 'я',
|
|
59
|
+
x: 'ч',
|
|
60
|
+
c: 'с',
|
|
61
|
+
v: 'м',
|
|
62
|
+
b: 'и',
|
|
63
|
+
n: 'т',
|
|
64
|
+
m: 'ь',
|
|
65
|
+
',': 'б',
|
|
66
|
+
'.': 'ю',
|
|
67
|
+
'/': '.',
|
|
68
|
+
};
|
|
69
|
+
if (toEachLang && /[а-яА-Я]/g.test(str)) {
|
|
70
|
+
return str.replace(/[А-я/,.;'\][]/g, (x: string) => {
|
|
71
|
+
if (x === x.toLowerCase()) {
|
|
72
|
+
const result = Object.keys(transliter).find((key) => transliter[key] === x);
|
|
73
|
+
if (result) return result;
|
|
74
|
+
return '';
|
|
75
|
+
}
|
|
76
|
+
const result = Object.keys(transliter).find((key) => transliter[key] === x.toLowerCase());
|
|
77
|
+
if (result) {
|
|
78
|
+
return result.toUpperCase();
|
|
79
|
+
}
|
|
80
|
+
return '';
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
return str.replace(/[A-z/,.;'\][]/g, (x: string) => {
|
|
84
|
+
return x === x.toLowerCase() ? transliter[x] : transliter[x.toLowerCase()].toUpperCase();
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
static RemoveEmoji(str: string): string {
|
|
89
|
+
const emoji = /([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g;
|
|
90
|
+
return str.replace(emoji, '');
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
static CanBeTranslited(str: string): boolean {
|
|
94
|
+
// eslint-disable-next-line no-useless-escape
|
|
95
|
+
const regex = /^[~`!@#$%^&*()_+=[\]\\{}|;':",.\/<>?a-zA-Z0-9-]+$/;
|
|
96
|
+
return regex.test(str);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
static StringsEquals(str1: string, str2: string): boolean {
|
|
100
|
+
const low1 = str1.toLowerCase().replaceAll(/\s/g, '');
|
|
101
|
+
const low2 = str2.toLowerCase().replaceAll(/\s/g, '');
|
|
102
|
+
const transl1 = Strings.Translit(low1);
|
|
103
|
+
const transl2 = Strings.Translit(low2);
|
|
104
|
+
return low1.includes(low2) || transl1.includes(low2) || low1.includes(transl2);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
static SearchIn(s1: string, s2: string): boolean {
|
|
108
|
+
return Strings.StringsEquals(s1, s2);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
static FormatToPercentage(percent: number): string {
|
|
112
|
+
return `${percent}%`;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
static WrapSubStr(text: string, subStr: string): string {
|
|
116
|
+
const re = new RegExp(Strings.GetVariants(subStr).join('|'), 'gi');
|
|
117
|
+
return text.replace(re, `<span class="search-text">${subStr}</span>`);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
static GetVariants(s: string): string[] {
|
|
121
|
+
const st = Strings.Translit(s);
|
|
122
|
+
return [s, Strings.Capitalize(s), s.toLowerCase(), s.toUpperCase(), st, Strings.Capitalize(st), st.toLowerCase(), st.toUpperCase()];
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
static ContainsNum(str: string): boolean {
|
|
126
|
+
return /\d/.test(str);
|
|
127
|
+
}
|
|
128
|
+
static CreateGuid(): string {
|
|
129
|
+
const S4 = function () {
|
|
130
|
+
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
|
|
131
|
+
};
|
|
132
|
+
return S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4();
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
static JoinSnake(...str: string[]): string {
|
|
136
|
+
return str.join('_');
|
|
137
|
+
}
|
|
138
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import Period from './Period';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
const Second = 1000;
|
|
5
|
+
const Minute = 60 * Second;
|
|
6
|
+
const Hour = 60 * Minute;
|
|
7
|
+
const Day = 24 * Hour;
|
|
8
|
+
const Week = 7 * Day;
|
|
9
|
+
|
|
10
|
+
export { Day, Hour, Minute, Second, Week };
|
|
11
|
+
|
|
12
|
+
export enum TimelineSteps {
|
|
13
|
+
FiveMinutes = '5',
|
|
14
|
+
HourQuarter = '15',
|
|
15
|
+
HourHalf = '30',
|
|
16
|
+
Hour = '60',
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export const TimelineMinutes: Record<TimelineSteps, string[]> = {
|
|
20
|
+
[TimelineSteps.FiveMinutes]: ['00', '05', '10', '15', '20', '25', '30', '35', '40', '45', '50', '55'],
|
|
21
|
+
[TimelineSteps.HourQuarter]: ['00', '15', '30', '45'],
|
|
22
|
+
[TimelineSteps.HourHalf]: ['00', '30'],
|
|
23
|
+
[TimelineSteps.Hour]: ['00'],
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export default abstract class Time {
|
|
27
|
+
static S(n: number): number {
|
|
28
|
+
return Second * n
|
|
29
|
+
}
|
|
30
|
+
static M(n: number): number {
|
|
31
|
+
return Minute * n
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
static H(n: number): number {
|
|
35
|
+
return Hour * n
|
|
36
|
+
}
|
|
37
|
+
static D(n: number): number {
|
|
38
|
+
return Hour * n
|
|
39
|
+
}
|
|
40
|
+
static W(n: number): number {
|
|
41
|
+
return Hour * n
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
static NormalizeTime(m: string | number): string {
|
|
45
|
+
return String(m).padStart(2, '0');
|
|
46
|
+
}
|
|
47
|
+
static HMtoM(time: string): number {
|
|
48
|
+
const parts = Time.SplitHM(time);
|
|
49
|
+
if (parts.length > 1) {
|
|
50
|
+
return Time.HtoM(parts[0]) + parts[1];
|
|
51
|
+
}
|
|
52
|
+
return Time.HtoM(parts[0]);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
static HtoM(h: string | number) {
|
|
56
|
+
return Number(h) * 60;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
static SplitHM(time: string): number[] {
|
|
60
|
+
if (!time) {
|
|
61
|
+
return [];
|
|
62
|
+
}
|
|
63
|
+
const parts = time.split(':');
|
|
64
|
+
return [Number(parts[0]), Number(parts[1])];
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
static HmsToHm(hms: string): string {
|
|
68
|
+
const parts = Time.SplitHM(hms);
|
|
69
|
+
return Time.ConcatHM(parts[0], parts[1]);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
static AddMtoHM(hm: string, minutes: number): string {
|
|
73
|
+
const d = new Date();
|
|
74
|
+
const hmArr = Time.SplitHM(hm);
|
|
75
|
+
d.setHours(hmArr[0], hmArr[1], 0, 0);
|
|
76
|
+
const newD = new Date(d.getTime() + minutes * 60000);
|
|
77
|
+
const h = newD.getHours();
|
|
78
|
+
const m = newD.getMinutes();
|
|
79
|
+
return Time.ConcatHM(h, m);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
static ConcatHM(h: number | string, m: number | string): string {
|
|
83
|
+
return `${h}:${Time.NormalizeTime(m)}`;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
static DiffM(t1: string, t2: string): number {
|
|
87
|
+
return Time.Gt(t2, t1) ? Time.HMtoM(t2) - Time.HMtoM(t1) : Time.HMtoM(t1) - Time.HMtoM(t2);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
static GetPeriod(t1: string, t2: string): string {
|
|
91
|
+
return Period.Get(t1, t2);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
static Gt(t1: string, t2: string): boolean {
|
|
95
|
+
return Time.HMtoM(t1) > Time.HMtoM(t2);
|
|
96
|
+
}
|
|
97
|
+
static GtOrEq(t1: string, t2: string): boolean {
|
|
98
|
+
return Time.Gt(t1, t2) || Time.Eq(t1, t2);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
static Eq(t1: string, t2: string): boolean {
|
|
102
|
+
return Time.HMtoM(t1) === Time.HMtoM(t2);
|
|
103
|
+
}
|
|
104
|
+
static PeriodInPeriod(p1Start: string, p1End: string, p2Start: string, p2End: string): boolean {
|
|
105
|
+
return Time.HMtoM(p1Start) >= Time.HMtoM(p2Start) && Time.HMtoM(p1End) <= Time.HMtoM(p2End);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
static PeriodsIntersects(p1Start: string, p1End: string, p2Start: string, p2End: string): boolean {
|
|
109
|
+
return Period.Intersects(Time.HMtoM(p1Start), Time.HMtoM(p1End), Time.HMtoM(p2Start), Time.HMtoM(p2End));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export const getTimeArray = (): string[] => {
|
|
114
|
+
const timeArray = [];
|
|
115
|
+
for (let i = 9; i < 16; ++i) {
|
|
116
|
+
for (let j = 0; j < 60; j += 10) {
|
|
117
|
+
const h = i < 10 ? '0' + i : i;
|
|
118
|
+
const m = j === 0 ? '00' : j;
|
|
119
|
+
const hm = `${h}:${m}`;
|
|
120
|
+
timeArray.push(hm);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return timeArray;
|
|
124
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import Time from './Time'
|
|
2
|
+
|
|
3
|
+
export default abstract class Timer {
|
|
4
|
+
static Wait<T>(ms: number, v?: T): Promise<T | undefined> {
|
|
5
|
+
return new Promise((resolve) => setTimeout(() => resolve(v), ms));
|
|
6
|
+
}
|
|
7
|
+
static WaitS<T>(s: number, v?: T): Promise<T | undefined> {
|
|
8
|
+
return Timer.Wait(Time.S(s), v)
|
|
9
|
+
}
|
|
10
|
+
static WaitM<T>(m: number, v?: T): Promise<T | undefined> {
|
|
11
|
+
return Timer.Wait(Time.M(m), v)
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import Human from '@/services/classes/Human';
|
|
2
|
+
import ITokens from '@/services/interfaces/ITokens';
|
|
3
|
+
|
|
4
|
+
const TokenService = (() => {
|
|
5
|
+
function _isAuth(): boolean {
|
|
6
|
+
const token = _getAccessToken();
|
|
7
|
+
const u = 'undefined';
|
|
8
|
+
return !(!token || token === u);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
function _setToken(tokenObj: ITokens) {
|
|
12
|
+
if (tokenObj.accessToken) {
|
|
13
|
+
localStorage.setItem('access_token', tokenObj.accessToken);
|
|
14
|
+
}
|
|
15
|
+
if (tokenObj.refreshToken) {
|
|
16
|
+
localStorage.setItem('refresh_token', tokenObj.refreshToken);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function _getUserId() {
|
|
21
|
+
const userString = localStorage.getItem('user');
|
|
22
|
+
if (userString) {
|
|
23
|
+
return JSON.parse(userString).id;
|
|
24
|
+
}
|
|
25
|
+
return '';
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function _getUser() {
|
|
29
|
+
const userString = localStorage.getItem('user');
|
|
30
|
+
if (userString) {
|
|
31
|
+
return JSON.parse(userString);
|
|
32
|
+
}
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function _getAccessToken() {
|
|
37
|
+
return localStorage.getItem('access_token');
|
|
38
|
+
}
|
|
39
|
+
function _getRefreshToken() {
|
|
40
|
+
return localStorage.getItem('refresh_token');
|
|
41
|
+
}
|
|
42
|
+
function _clearTokens() {
|
|
43
|
+
localStorage.removeItem('access_token');
|
|
44
|
+
localStorage.removeItem('refresh_token');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function _updateHuman(human: Human) {
|
|
48
|
+
if (!_isAuth()) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const user = TokenService.getUser();
|
|
52
|
+
if (!user) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
user.human = human;
|
|
56
|
+
localStorage.setItem('user', JSON.stringify(user));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
return {
|
|
60
|
+
isAuth: _isAuth,
|
|
61
|
+
setTokens: _setToken,
|
|
62
|
+
getAccessToken: _getAccessToken,
|
|
63
|
+
getRefreshToken: _getRefreshToken,
|
|
64
|
+
getUserId: _getUserId,
|
|
65
|
+
clearTokens: _clearTokens,
|
|
66
|
+
getUser: _getUser,
|
|
67
|
+
updateHuman: _updateHuman,
|
|
68
|
+
};
|
|
69
|
+
})();
|
|
70
|
+
|
|
71
|
+
export default TokenService;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export default (selector: string): Promise<unknown> => {
|
|
2
|
+
return new Promise((resolve) => {
|
|
3
|
+
if (document.querySelector(selector)) {
|
|
4
|
+
return resolve(document.querySelector(selector));
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
const observer = new MutationObserver(() => {
|
|
8
|
+
if (document.querySelector(selector)) {
|
|
9
|
+
observer.disconnect();
|
|
10
|
+
resolve(document.querySelector(selector));
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
observer.observe(document.body, {
|
|
15
|
+
childList: true,
|
|
16
|
+
subtree: true,
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import ChatMessage from '@/services/classes/ChatMessage';
|
|
2
|
+
import ClassHelper from '@/services/ClassHelper';
|
|
3
|
+
|
|
4
|
+
const apiHost = import.meta.env.VITE_APP_API_HOST ?? '';
|
|
5
|
+
export default class WebSocketClient {
|
|
6
|
+
private client?: WebSocket;
|
|
7
|
+
private endpoint = '';
|
|
8
|
+
private query = '';
|
|
9
|
+
private period = 20000;
|
|
10
|
+
|
|
11
|
+
constructor(endpoint = '', query = '', mutation = 'set') {
|
|
12
|
+
ClassHelper.BuildClass(this, { endpoint, query, mutation });
|
|
13
|
+
this.connect();
|
|
14
|
+
this.ping();
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
send(data: string | ArrayBufferLike | Blob | ArrayBufferView) {
|
|
18
|
+
if (!this.client || this.client.readyState !== 1) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
this.client.send(data);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
private ping() {
|
|
25
|
+
setInterval(this.sendPing.bind(this), this.period);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
private sendPing() {
|
|
29
|
+
if (!this.client || this.client.readyState !== 1) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this.send(JSON.stringify(ChatMessage.CreatePingMessage()));
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
setOnMessage(): void {
|
|
36
|
+
if (!this.client) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
// eslint-disable-next-line
|
|
40
|
+
this.client.onmessage = (e: MessageEvent<any>) => {
|
|
41
|
+
if (!e.data) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
// commit(this.mutation, JSON.parse(e.data));
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
private buildUrl(): string {
|
|
49
|
+
const path = `ws/${this.endpoint}/${this.query}`;
|
|
50
|
+
return new URL(path, apiHost.replace('http', 'ws')).toString();
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
private connect() {
|
|
54
|
+
this.client = new WebSocket(this.buildUrl());
|
|
55
|
+
this.client.onclose = this.reconnect;
|
|
56
|
+
this.client.onerror = this.reconnect;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
private reconnect() {
|
|
60
|
+
setTimeout(this.connect, 3000);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export default function buildNameNumbers(array: Array<unknown>, titles: string[]): string {
|
|
2
|
+
const cases = [2, 0, 1, 1, 1, 2];
|
|
3
|
+
return (
|
|
4
|
+
array.length +
|
|
5
|
+
' ' +
|
|
6
|
+
titles[array.length % 100 > 4 && array.length % 100 < 20 ? 2 : cases[array.length % 10 < 5 ? array.length % 10 : 5]]
|
|
7
|
+
);
|
|
8
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
type IWithRating = {
|
|
2
|
+
rating: number;
|
|
3
|
+
};
|
|
4
|
+
|
|
5
|
+
export default function countRating(items: IWithRating[]): number {
|
|
6
|
+
const withoutZero = items.filter((o: IWithRating) => o.rating !== 0);
|
|
7
|
+
let sum = 0;
|
|
8
|
+
withoutZero.forEach((o: IWithRating) => (sum = sum + o.rating));
|
|
9
|
+
const rate = sum / withoutZero.length;
|
|
10
|
+
|
|
11
|
+
return isNaN(rate) ? 0 : Number((sum / withoutZero.length).toFixed(2));
|
|
12
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
//
|
|
2
|
+
import Arrays from "./Arrays";
|
|
3
|
+
import Axios from "./Axios";
|
|
4
|
+
import brandColors from "./brandColors";
|
|
5
|
+
import buildNameNumbers from "./buildNameNumbers";
|
|
6
|
+
import Button from "./Button";
|
|
7
|
+
import Cache from "./Cache";
|
|
8
|
+
import CarouselSwipe from "./CarouselSwipe";
|
|
9
|
+
import Auth from "../classes/Auth";
|
|
10
|
+
import Contact from "../classes/Contact";
|
|
11
|
+
import Email from "../classes/Email";
|
|
12
|
+
import FilterModel from "../classes/filters/FilterModel";
|
|
13
|
+
import FTSP from "../classes/filters/FTSP";
|
|
14
|
+
import SortModel from "../classes/SortModel";
|
|
15
|
+
import ValueType from "../classes/ValueType";
|
|
16
|
+
import ClassHelper from "./ClassHelper";
|
|
17
|
+
import Color from "./Color";
|
|
18
|
+
import countRating from "./countRating";
|
|
19
|
+
import CreateSortModels from "./CreateSortModels";
|
|
20
|
+
import Cursor from "./Cursor";
|
|
21
|
+
import DateFormat from "./DateFormat";
|
|
22
|
+
import DateMask from "./DateMask";
|
|
23
|
+
import Dates from "./Dates";
|
|
24
|
+
import DatesFormatter from "./DatesFormatter";
|
|
25
|
+
import Dragger from "./Dragger";
|
|
26
|
+
import Extension from "./Extension";
|
|
27
|
+
import Favourite from "./Favourite";
|
|
28
|
+
import Hooks from "../Hooks/Hooks";
|
|
29
|
+
import HttpClient from "./HttpClient";
|
|
30
|
+
import MakeCarousel from "./MakeCarousel";
|
|
31
|
+
import { moveDown, moveUp } from "./moves";
|
|
32
|
+
import Period from "./Period";
|
|
33
|
+
import PHelp from "./PHelp";
|
|
34
|
+
import PhoneService from "./PhoneService";
|
|
35
|
+
import Router from "./Router";
|
|
36
|
+
import RouterGuard from "./RouterGuard";
|
|
37
|
+
import Scheduler from "./Scheduler";
|
|
38
|
+
import Scroll from "./Scroll";
|
|
39
|
+
import Sorter from "./Sorter";
|
|
40
|
+
// import Store from './Store';
|
|
41
|
+
import Strings from "./Strings";
|
|
42
|
+
import Time from "./Time";
|
|
43
|
+
import Timer from "./Timer";
|
|
44
|
+
import Token from "./Token";
|
|
45
|
+
import { Sizes } from "../types/Sizes";
|
|
46
|
+
import Statuses from "../types/Statuses";
|
|
47
|
+
import useConfirmLeavePage from "./useConfirmLeavePage";
|
|
48
|
+
import validate from "./validate";
|
|
49
|
+
import WaitElement from "./WaitElement";
|
|
50
|
+
import WebSocketClient from "./WebSocketClient";
|
|
51
|
+
|
|
52
|
+
export {
|
|
53
|
+
Arrays,
|
|
54
|
+
Auth,
|
|
55
|
+
Axios,
|
|
56
|
+
brandColors,
|
|
57
|
+
buildNameNumbers,
|
|
58
|
+
Button,
|
|
59
|
+
Cache,
|
|
60
|
+
CarouselSwipe,
|
|
61
|
+
ClassHelper,
|
|
62
|
+
Color,
|
|
63
|
+
Contact,
|
|
64
|
+
countRating,
|
|
65
|
+
CreateSortModels,
|
|
66
|
+
Cursor,
|
|
67
|
+
DateFormat,
|
|
68
|
+
DateMask,
|
|
69
|
+
Dates,
|
|
70
|
+
DatesFormatter,
|
|
71
|
+
Dragger,
|
|
72
|
+
Email,
|
|
73
|
+
Extension,
|
|
74
|
+
Favourite,
|
|
75
|
+
//
|
|
76
|
+
FilterModel,
|
|
77
|
+
FTSP,
|
|
78
|
+
Hooks,
|
|
79
|
+
HttpClient,
|
|
80
|
+
MakeCarousel,
|
|
81
|
+
moveDown,
|
|
82
|
+
moveUp,
|
|
83
|
+
Period,
|
|
84
|
+
// PHelp
|
|
85
|
+
PHelp,
|
|
86
|
+
PhoneService,
|
|
87
|
+
Router,
|
|
88
|
+
RouterGuard,
|
|
89
|
+
Scheduler,
|
|
90
|
+
Scroll,
|
|
91
|
+
Sizes,
|
|
92
|
+
Sorter,
|
|
93
|
+
SortModel,
|
|
94
|
+
Statuses,
|
|
95
|
+
// Store,
|
|
96
|
+
Strings,
|
|
97
|
+
Time,
|
|
98
|
+
Timer,
|
|
99
|
+
Token,
|
|
100
|
+
useConfirmLeavePage,
|
|
101
|
+
validate,
|
|
102
|
+
ValueType,
|
|
103
|
+
WaitElement,
|
|
104
|
+
WebSocketClient,
|
|
105
|
+
};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
const ServicesNames = [
|
|
2
|
+
'Contact',
|
|
3
|
+
'Button',
|
|
4
|
+
'RouterGuard',
|
|
5
|
+
'Sizes',
|
|
6
|
+
'Statuses',
|
|
7
|
+
'Email',
|
|
8
|
+
'FTSP',
|
|
9
|
+
'Arrays',
|
|
10
|
+
'Axios',
|
|
11
|
+
'brandColors',
|
|
12
|
+
'buildNameNumbers',
|
|
13
|
+
'Cache',
|
|
14
|
+
'CarouselSwipe',
|
|
15
|
+
'ClassHelper',
|
|
16
|
+
'Color',
|
|
17
|
+
'countRating',
|
|
18
|
+
'CreateSortModels',
|
|
19
|
+
'Cursor',
|
|
20
|
+
'DateFormat',
|
|
21
|
+
'DateMask',
|
|
22
|
+
'Dates',
|
|
23
|
+
'DatesFormatter',
|
|
24
|
+
'Dragger',
|
|
25
|
+
'Favourite',
|
|
26
|
+
'Extension',
|
|
27
|
+
'HttpClient',
|
|
28
|
+
'MakeCarousel',
|
|
29
|
+
'moveUp',
|
|
30
|
+
'moveDown',
|
|
31
|
+
'Period',
|
|
32
|
+
'PhoneService',
|
|
33
|
+
'Router',
|
|
34
|
+
'Scheduler',
|
|
35
|
+
'Scroll',
|
|
36
|
+
'Sorter',
|
|
37
|
+
// 'Store',
|
|
38
|
+
'Strings',
|
|
39
|
+
'Time',
|
|
40
|
+
'TimeFormatter',
|
|
41
|
+
'Token',
|
|
42
|
+
'useConfirmLeavePage',
|
|
43
|
+
'validate',
|
|
44
|
+
'WaitElement',
|
|
45
|
+
'WebSocketClient',
|
|
46
|
+
'Hooks',
|
|
47
|
+
'ValueType',
|
|
48
|
+
'PHelp',
|
|
49
|
+
'Auth',
|
|
50
|
+
//
|
|
51
|
+
'FilterModel',
|
|
52
|
+
'SortModel',
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
export default ServicesNames;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import IOrdered from '@/services/interfaces/IOrdered';
|
|
2
|
+
|
|
3
|
+
export function moveUp(items: IOrdered[], index: number): void {
|
|
4
|
+
items[index].order = index - 1;
|
|
5
|
+
if (items[index - 1]) {
|
|
6
|
+
items[index - 1].order = index;
|
|
7
|
+
}
|
|
8
|
+
[items[index], items[index - 1]] = [items[index - 1], items[index]];
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export function moveDown(items: IOrdered[], index: number): void {
|
|
12
|
+
items[index].order = index + 1;
|
|
13
|
+
if (items[index + 1]) {
|
|
14
|
+
items[index + 1].order = index;
|
|
15
|
+
}
|
|
16
|
+
[items[index], items[index + 1]] = [items[index + 1], items[index]];
|
|
17
|
+
}
|