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.
Files changed (357) hide show
  1. package/README.md +29 -0
  2. package/package.json +101 -0
  3. package/src/Hooks/Hooks.ts +75 -0
  4. package/src/assets/img/avatar.webp +0 -0
  5. package/src/assets/styles/borders.scss +11 -0
  6. package/src/assets/styles/brandbook.css +227 -0
  7. package/src/assets/styles/colors.scss +42 -0
  8. package/src/assets/styles/fonts.scss +15 -0
  9. package/src/assets/styles/index.css +15 -0
  10. package/src/assets/styles/index.scss +45 -0
  11. package/src/assets/styles/platform/android.css +53 -0
  12. package/src/assets/styles/platform/ios.css +53 -0
  13. package/src/assets/styles/platform/webdesktop.css +72 -0
  14. package/src/assets/styles/platform/webdesktop_old.css +65 -0
  15. package/src/assets/styles/platform/webmobile.css +53 -0
  16. package/src/assets/styles/platform/webtablet.css +53 -0
  17. package/src/assets/styles/reset.scss +28 -0
  18. package/src/assets/styles/shadow.scss +6 -0
  19. package/src/assets/styles/theme/aquaBlueLight.css +162 -0
  20. package/src/assets/styles/theme/blueLight.css +187 -0
  21. package/src/assets/styles/theme/blueLight_test.css +162 -0
  22. package/src/assets/styles/theme/dark.css +286 -0
  23. package/src/assets/styles/theme/light.css +151 -0
  24. package/src/assets/svg/ArrowLeft.svg +5 -0
  25. package/src/assets/svg/ArrowRight.svg +5 -0
  26. package/src/assets/svg/Close.svg +7 -0
  27. package/src/assets/svg/DoubleArrowLeft.svg +5 -0
  28. package/src/assets/svg/DoubleArrowRight.svg +5 -0
  29. package/src/assets/svg/Ellipsis.svg +7 -0
  30. package/src/assets/svg/Filter.svg +10 -0
  31. package/src/assets/svg/Menu.svg +5 -0
  32. package/src/assets/svg/Move.svg +5 -0
  33. package/src/assets/svg/Password.svg +5 -0
  34. package/src/assets/svg/RightMenu.svg +5 -0
  35. package/src/assets/svg/Settings.svg +6 -0
  36. package/src/assets/svg/User.svg +6 -0
  37. package/src/buildLibrary.ts +59 -0
  38. package/src/classes/Auth.ts +63 -0
  39. package/src/classes/AuthButton.ts +64 -0
  40. package/src/classes/AuthForm.ts +114 -0
  41. package/src/classes/AuthModal.ts +32 -0
  42. package/src/classes/AuthStatusesObjects.ts +37 -0
  43. package/src/classes/AuthTokens.ts +43 -0
  44. package/src/classes/AuthUser.ts +53 -0
  45. package/src/classes/CallbackRequest.ts +12 -0
  46. package/src/classes/Chat.ts +18 -0
  47. package/src/classes/ChatMessage.ts +48 -0
  48. package/src/classes/Contact.ts +96 -0
  49. package/src/classes/Cropper.ts +22 -0
  50. package/src/classes/DateHelper.ts +29 -0
  51. package/src/classes/Email.ts +18 -0
  52. package/src/classes/EmailField.ts +42 -0
  53. package/src/classes/EmailRules.ts +4 -0
  54. package/src/classes/FTSPPreset.ts +16 -0
  55. package/src/classes/FileInfo.ts +86 -0
  56. package/src/classes/HttpResponse.ts +22 -0
  57. package/src/classes/Human.ts +106 -0
  58. package/src/classes/LabelValue.ts +11 -0
  59. package/src/classes/LocalStore.ts +22 -0
  60. package/src/classes/M2M.ts +25 -0
  61. package/src/classes/Menu.ts +102 -0
  62. package/src/classes/PageSectionImage.ts +19 -0
  63. package/src/classes/PasswordField.ts +39 -0
  64. package/src/classes/PasswordRepeatField.ts +37 -0
  65. package/src/classes/Phone.ts +17 -0
  66. package/src/classes/PostAddress.ts +11 -0
  67. package/src/classes/PostAddressRules.ts +1 -0
  68. package/src/classes/Role.ts +13 -0
  69. package/src/classes/Schema.ts +13 -0
  70. package/src/classes/SchemaField.ts +10 -0
  71. package/src/classes/SearchElement.ts +18 -0
  72. package/src/classes/SearchElementMeta.ts +10 -0
  73. package/src/classes/SearchGroup.ts +25 -0
  74. package/src/classes/SearchGroupMetaColumn.ts +11 -0
  75. package/src/classes/SearchModel.ts +61 -0
  76. package/src/classes/SortModel.ts +57 -0
  77. package/src/classes/SubMenu.ts +56 -0
  78. package/src/classes/TelephoneNumberRules.ts +9 -0
  79. package/src/classes/User.ts +17 -0
  80. package/src/classes/UserAccount.ts +17 -0
  81. package/src/classes/UserService.ts +20 -0
  82. package/src/classes/ValidationRules.ts +15 -0
  83. package/src/classes/ValueType.ts +69 -0
  84. package/src/classes/Website.ts +11 -0
  85. package/src/classes/WebsiteRules.ts +4 -0
  86. package/src/classes/admin/AdminButtonParams.ts +27 -0
  87. package/src/classes/admin/AdminHeaderParams.ts +34 -0
  88. package/src/classes/calendar/Calendar.ts +168 -0
  89. package/src/classes/calendar/Day.ts +15 -0
  90. package/src/classes/calendar/Month.ts +144 -0
  91. package/src/classes/calendar/Week.ts +44 -0
  92. package/src/classes/calendar/Year.ts +130 -0
  93. package/src/classes/filters/Cursor.ts +43 -0
  94. package/src/classes/filters/FTSP.ts +99 -0
  95. package/src/classes/filters/FilterModel.ts +263 -0
  96. package/src/classes/filters/FilterQuery.ts +187 -0
  97. package/src/classes/filters/OperatorsOptions.ts +8 -0
  98. package/src/classes/filters/OperatorsTextOptions.ts +3 -0
  99. package/src/classes/filters/Pagination.ts +78 -0
  100. package/src/classes/filters/SelectFilter.ts +15 -0
  101. package/src/classes/filters/TreeModel.ts +14 -0
  102. package/src/classes/page/CustomSection.ts +24 -0
  103. package/src/classes/page/Page.ts +160 -0
  104. package/src/classes/page/PageDocument.ts +27 -0
  105. package/src/classes/page/PageImage.ts +15 -0
  106. package/src/classes/page/PageSection.ts +82 -0
  107. package/src/classes/page/PageSectionDocument.ts +56 -0
  108. package/src/classes/page/PageSideMenu.ts +74 -0
  109. package/src/components/AdaptiveContainer.vue +154 -0
  110. package/src/components/AdaptiveContainerHorizontal.vue +173 -0
  111. package/src/components/AdminGallery.vue +238 -0
  112. package/src/components/AuthModal.vue +16 -0
  113. package/src/components/CarouselImages.vue +434 -0
  114. package/src/components/ContactForm.vue +219 -0
  115. package/src/components/ContextWindow.vue +48 -0
  116. package/src/components/DateInputRange.vue +66 -0
  117. package/src/components/DateInputRange_v2.vue +25 -0
  118. package/src/components/DropList.vue +55 -0
  119. package/src/components/Edit.svg +10 -0
  120. package/src/components/EmailForm.vue +180 -0
  121. package/src/components/FTSPPanel.vue +379 -0
  122. package/src/components/FilterCheckbox.vue +73 -0
  123. package/src/components/FilterSelect.vue +104 -0
  124. package/src/components/FiltersButtonsSelect.vue +126 -0
  125. package/src/components/GeneralItem.vue +172 -0
  126. package/src/components/GridContainer.vue +66 -0
  127. package/src/components/Icons/Filter/IconDownload.vue +55 -0
  128. package/src/components/Icons/Filter/IconFilter.vue +55 -0
  129. package/src/components/Icons/IconArrowLeft.vue +36 -0
  130. package/src/components/Icons/IconCheckDefault.vue +41 -0
  131. package/src/components/Icons/IconClose.vue +37 -0
  132. package/src/components/Icons/IconEdit.vue +40 -0
  133. package/src/components/Icons/IconEmail.vue +36 -0
  134. package/src/components/Icons/IconMove.vue +53 -0
  135. package/src/components/Icons/IconPhone.vue +36 -0
  136. package/src/components/Icons/IconSearch.vue +47 -0
  137. package/src/components/Icons/IconSelectArrow.vue +41 -0
  138. package/src/components/Icons/Pagination/ArrowLeft.vue +52 -0
  139. package/src/components/Icons/Pagination/ArrowRight.vue +52 -0
  140. package/src/components/Icons/Pagination/DoubleArrowLeft.vue +52 -0
  141. package/src/components/Icons/Pagination/DoubleArrowRight.vue +52 -0
  142. package/src/components/Icons/Pagination/EllipsisSvg.vue +58 -0
  143. package/src/components/ImageCropper.vue +203 -0
  144. package/src/components/InfoItem.vue +294 -0
  145. package/src/components/InfoItemSelectButtons.vue +43 -0
  146. package/src/components/LeftRightContainer.vue +93 -0
  147. package/src/components/MessageBody.vue +45 -0
  148. package/src/components/PAutocomplete.vue +93 -0
  149. package/src/components/PDialog.vue +77 -0
  150. package/src/components/PLoader.vue +68 -0
  151. package/src/components/PNotification.vue +79 -0
  152. package/src/components/PPagination.vue +174 -0
  153. package/src/components/PhoneForm.vue +180 -0
  154. package/src/components/RSContainer.vue +262 -0
  155. package/src/components/RemoteSearch.vue +156 -0
  156. package/src/components/ResearcheContainer.vue +71 -0
  157. package/src/components/RightSliderContainer.vue +181 -0
  158. package/src/components/RightTabsContainer.vue +210 -0
  159. package/src/components/SelectValueType.vue +39 -0
  160. package/src/components/SingleNameToggleForm.vue +399 -0
  161. package/src/components/SortList.vue +101 -0
  162. package/src/components/SortSelect.vue +93 -0
  163. package/src/components/SvgIcon.vue +25 -0
  164. package/src/components/Switch3Pos.vue +173 -0
  165. package/src/components/ThemeWrapper.vue +19 -0
  166. package/src/components/ToggleInfoItem.vue +296 -0
  167. package/src/components/TopSliderContainer.vue +166 -0
  168. package/src/components/UploaderImage.vue +268 -0
  169. package/src/components/atoms/PButton/PButton.stories.ts +44 -0
  170. package/src/components/atoms/PButton/PButton.test.ts +66 -0
  171. package/src/components/atoms/PButton/PButton.vue +54 -0
  172. package/src/components/atoms/PButton/skins/p-button_base.css +131 -0
  173. package/src/components/atoms/PButton/skins/p-button_filter.scss +83 -0
  174. package/src/components/atoms/PButton/skins/p-button_icon.scss +78 -0
  175. package/src/components/atoms/PButton/skins/p-button_pag.css +44 -0
  176. package/src/components/atoms/PButton/skins/p-button_text.css +88 -0
  177. package/src/components/atoms/PButton/skins/p-button_text_ano.css +88 -0
  178. package/src/components/atoms/PCheckbox/PCheckBox.test.ts +107 -0
  179. package/src/components/atoms/PCheckbox/PCheckBox.vue +92 -0
  180. package/src/components/atoms/PDatePicker/PDatePicker.test.ts +63 -0
  181. package/src/components/atoms/PDatePicker/PDatePicker.vue +141 -0
  182. package/src/components/atoms/PFlex/PFlex.test.ts +41 -0
  183. package/src/components/atoms/PFlex/PFlex.vue +46 -0
  184. package/src/components/atoms/PInput/PInput.stories.ts +40 -0
  185. package/src/components/atoms/PInput/PInput.test.ts +92 -0
  186. package/src/components/atoms/PInput/PInput.vue +133 -0
  187. package/src/components/atoms/PInputDate/PInputDate.test.ts +55 -0
  188. package/src/components/atoms/PInputDate/PInputDate.vue +79 -0
  189. package/src/components/atoms/PInputNumber/PInputNumber.vue +175 -0
  190. package/src/components/atoms/PLeftSlider/PLeftSlider.test.ts +121 -0
  191. package/src/components/atoms/PLeftSlider/PLeftSlider.vue +139 -0
  192. package/src/components/atoms/PList/PList.test.ts +32 -0
  193. package/src/components/atoms/PList/PList.vue +27 -0
  194. package/src/components/atoms/PListItem/PListItem.test.ts +61 -0
  195. package/src/components/atoms/PListItem/PListItem.vue +51 -0
  196. package/src/components/atoms/PRadio/PRadio.test.ts +110 -0
  197. package/src/components/atoms/PRadio/PRadio.vue +97 -0
  198. package/src/components/atoms/PRightSlider/PRightSlider.test.ts +123 -0
  199. package/src/components/atoms/PRightSlider/PRightSlider.vue +149 -0
  200. package/src/components/atoms/PSelect/PSelect.test.ts +74 -0
  201. package/src/components/atoms/PSelect/PSelect.vue +192 -0
  202. package/src/components/atoms/PSelect/select-arrow-down.svg +4 -0
  203. package/src/components/atoms/PSticky/PSticky.test.ts +70 -0
  204. package/src/components/atoms/PSticky/PSticky.vue +37 -0
  205. package/src/components/atoms/PString/PString.test.ts +58 -0
  206. package/src/components/atoms/PString/PString.vue +58 -0
  207. package/src/components/atoms/PTextarea/PTextarea.stories.ts +40 -0
  208. package/src/components/atoms/PTextarea/PTextarea.test.ts +22 -0
  209. package/src/components/atoms/PTextarea/PTextarea.vue +123 -0
  210. package/src/components/atoms/PTopSlider/PTopSlider.test.ts +95 -0
  211. package/src/components/atoms/PTopSlider/PTopSlider.vue +164 -0
  212. package/src/components/molecules/Collapse/CollapseContainer.vue +36 -0
  213. package/src/components/molecules/Collapse/CollapseItem.vue +295 -0
  214. package/src/components/molecules/Collapse/VerticalCollapseContainer.vue +102 -0
  215. package/src/components/molecules/PAdd/PAdd.vue +65 -0
  216. package/src/components/molecules/PAdd/PContainer.vue +65 -0
  217. package/src/components/molecules/PAdd/PContainerStickyHead.vue +51 -0
  218. package/src/components/molecules/PDel/PDel.vue +74 -0
  219. package/src/components/organisms/AuthForm.vue +219 -0
  220. package/src/components/organisms/PModal.vue +113 -0
  221. package/src/components/organisms/PTabs/ITab.ts +5 -0
  222. package/src/components/organisms/PTabs/PTabs.vue +190 -0
  223. package/src/components/organisms/UploaderFile/UploaderFile.test.ts +23 -0
  224. package/src/components/organisms/UploaderFile/UploaderFile.vue +202 -0
  225. package/src/components/pages/AuthPage.vue +22 -0
  226. package/src/components/pages/PageNotFound.vue +7 -0
  227. package/src/index.ts +206 -0
  228. package/src/interfaces/AdminLayout.ts +4 -0
  229. package/src/interfaces/Animations.ts +5 -0
  230. package/src/interfaces/AuthStatuses.ts +8 -0
  231. package/src/interfaces/CalendarScale.ts +6 -0
  232. package/src/interfaces/Callback.ts +2 -0
  233. package/src/interfaces/Class.ts +3 -0
  234. package/src/interfaces/DataTypes.ts +8 -0
  235. package/src/interfaces/Filter.ts +3 -0
  236. package/src/interfaces/IAdminMenu.ts +9 -0
  237. package/src/interfaces/IAuthInfo.ts +0 -0
  238. package/src/interfaces/ICursor.ts +14 -0
  239. package/src/interfaces/IEmailPassword.ts +4 -0
  240. package/src/interfaces/IFIlesList.ts +4 -0
  241. package/src/interfaces/IFile.ts +7 -0
  242. package/src/interfaces/IFileAnchor.ts +4 -0
  243. package/src/interfaces/IFileInfo.ts +22 -0
  244. package/src/interfaces/IFileInfosGetter.ts +5 -0
  245. package/src/interfaces/IFiler.ts +7 -0
  246. package/src/interfaces/IFilter.ts +4 -0
  247. package/src/interfaces/IFilterQuery.ts +24 -0
  248. package/src/interfaces/IForm.ts +5 -0
  249. package/src/interfaces/IHTTPTypes.ts +19 -0
  250. package/src/interfaces/IMessage.ts +5 -0
  251. package/src/interfaces/IOption.ts +4 -0
  252. package/src/interfaces/IOrdered.ts +4 -0
  253. package/src/interfaces/IPagination.ts +15 -0
  254. package/src/interfaces/ISearchElement.ts +6 -0
  255. package/src/interfaces/ISearchObject.ts +6 -0
  256. package/src/interfaces/ISearchQuery.ts +4 -0
  257. package/src/interfaces/ISelectFilter.ts +6 -0
  258. package/src/interfaces/ISortModel.ts +18 -0
  259. package/src/interfaces/IStorePaginator.ts +4 -0
  260. package/src/interfaces/ISupposedTimePeriod.ts +4 -0
  261. package/src/interfaces/ITimePeriod.ts +4 -0
  262. package/src/interfaces/ITokens.ts +4 -0
  263. package/src/interfaces/IWithId.ts +3 -0
  264. package/src/interfaces/IWithImage.ts +9 -0
  265. package/src/interfaces/IWithName.ts +4 -0
  266. package/src/interfaces/IWithSupposedTimePeriod.ts +4 -0
  267. package/src/interfaces/ItemsWithCount.ts +4 -0
  268. package/src/interfaces/LocalStoreKeys.ts +7 -0
  269. package/src/interfaces/Operators.ts +11 -0
  270. package/src/interfaces/Orders.ts +4 -0
  271. package/src/interfaces/RoleName.ts +4 -0
  272. package/src/interfaces/SocialTypes.ts +6 -0
  273. package/src/interfaces/Sort.ts +9 -0
  274. package/src/interfaces/ValueRelation.ts +7 -0
  275. package/src/interfaces/canvas/ICanvas.ts +3 -0
  276. package/src/interfaces/canvas/ICanvasResult.ts +7 -0
  277. package/src/interfaces/canvas/ICoordinates.ts +6 -0
  278. package/src/interfaces/types.ts +3 -0
  279. package/src/services/AdminHead.ts +32 -0
  280. package/src/services/AdminSideMenu.ts +52 -0
  281. package/src/services/AdminUI.ts +9 -0
  282. package/src/services/Arrays.ts +65 -0
  283. package/src/services/Axios.ts +64 -0
  284. package/src/services/BaseRoutes.ts +21 -0
  285. package/src/services/BaseStore.ts +220 -0
  286. package/src/services/Button.ts +42 -0
  287. package/src/services/Cache.ts +44 -0
  288. package/src/services/CacheS.ts +44 -0
  289. package/src/services/CarouselSwipe.ts +14 -0
  290. package/src/services/ClassHelper.ts +101 -0
  291. package/src/services/Color.ts +8 -0
  292. package/src/services/CreateSortModels.ts +26 -0
  293. package/src/services/Cursor.ts +51 -0
  294. package/src/services/DateFormat.ts +102 -0
  295. package/src/services/DateMask.ts +69 -0
  296. package/src/services/Dates.ts +41 -0
  297. package/src/services/DatesFormatter.ts +45 -0
  298. package/src/services/Dialog.ts +70 -0
  299. package/src/services/Dragger.ts +22 -0
  300. package/src/services/Extension.ts +6 -0
  301. package/src/services/Favourite.ts +62 -0
  302. package/src/services/HttpClient.ts +199 -0
  303. package/src/services/HttpClientS.ts +188 -0
  304. package/src/services/HttpError.ts +58 -0
  305. package/src/services/Loading.ts +14 -0
  306. package/src/services/MakeCarousel.ts +10 -0
  307. package/src/services/Menu.ts +102 -0
  308. package/src/services/Message.ts +66 -0
  309. package/src/services/Notification.ts +37 -0
  310. package/src/services/PHelp.ts +20 -0
  311. package/src/services/Paginator.ts +22 -0
  312. package/src/services/Period.ts +29 -0
  313. package/src/services/PhoneService.ts +46 -0
  314. package/src/services/Router.ts +85 -0
  315. package/src/services/RouterGuard.ts +15 -0
  316. package/src/services/Scheduler.ts +66 -0
  317. package/src/services/Scroll.ts +19 -0
  318. package/src/services/SortList.ts +44 -0
  319. package/src/services/Sorter.ts +6 -0
  320. package/src/services/Strings.test.ts +30 -0
  321. package/src/services/Strings.ts +138 -0
  322. package/src/services/Time.ts +124 -0
  323. package/src/services/Timer.ts +13 -0
  324. package/src/services/Token.ts +71 -0
  325. package/src/services/Visible.ts +16 -0
  326. package/src/services/WaitElement.ts +19 -0
  327. package/src/services/WebSocketClient.ts +62 -0
  328. package/src/services/brandColors.ts +5 -0
  329. package/src/services/buildNameNumbers.ts +8 -0
  330. package/src/services/countRating.ts +12 -0
  331. package/src/services/index.ts +105 -0
  332. package/src/services/indexNames.ts +55 -0
  333. package/src/services/moves.ts +17 -0
  334. package/src/services/useConfirmLeavePage.ts +52 -0
  335. package/src/services/validate.ts +22 -0
  336. package/src/store/AuthStore.ts +58 -0
  337. package/src/store/ContactsStore.ts +11 -0
  338. package/src/store/CropperStore.ts +20 -0
  339. package/src/store/EmailsStore.ts +11 -0
  340. package/src/store/FTSPPresetsStore.ts +11 -0
  341. package/src/store/FileInfosStore.ts +11 -0
  342. package/src/store/HumansStore.ts +11 -0
  343. package/src/store/MenusStore.ts +11 -0
  344. package/src/store/PhonesStore.ts +11 -0
  345. package/src/store/SchemasStore.ts +11 -0
  346. package/src/store/SearchStore.ts +65 -0
  347. package/src/store/ServicesStores.ts +29 -0
  348. package/src/store/ServicesStoresNames.ts +17 -0
  349. package/src/store/UserAccountsStore.ts +11 -0
  350. package/src/store/ValueTypesStore.ts +11 -0
  351. package/src/tsconfig.build-lib.json +30 -0
  352. package/src/types/AuthInfo.ts +6 -0
  353. package/src/types/HttpHeaders.ts +12 -0
  354. package/src/types/HttpMethods.ts +6 -0
  355. package/src/types/Sizes.ts +7 -0
  356. package/src/types/Statuses.ts +9 -0
  357. package/src/types/ValueTypes.ts +16 -0
@@ -0,0 +1,52 @@
1
+ import { Ref, ref } from 'vue';
2
+ import { NavigationGuardNext } from 'vue-router';
3
+
4
+ import PHelp from './PHelp';
5
+
6
+ declare type SubmitCallback = () => void;
7
+ interface IReturn {
8
+ confirmLeave: Ref<boolean>;
9
+ saveButtonClick: Ref<boolean>;
10
+ formUpdated: () => void;
11
+ beforeWindowUnload: (e: Event) => void;
12
+ showConfirmModal: (submit: SubmitCallback, next: NavigationGuardNext) => void;
13
+ }
14
+
15
+ export default function (): IReturn {
16
+ const confirmLeave: Ref<boolean> = ref(false);
17
+ const saveButtonClick: Ref<boolean> = ref(false);
18
+
19
+ const formUpdated = (): void => {
20
+ confirmLeave.value = true;
21
+ };
22
+
23
+ const beforeWindowUnload = (e: Event): void => {
24
+ if (confirmLeave.value) {
25
+ e.preventDefault();
26
+ }
27
+ };
28
+
29
+ const showConfirmModal = (submit: SubmitCallback, next: NavigationGuardNext): void => {
30
+ if (confirmLeave.value && !saveButtonClick.value) {
31
+ PHelp.Dialog.Save()
32
+ .then(() => {
33
+ submit();
34
+ next();
35
+ })
36
+ .catch(() => {
37
+ PHelp.Notification.Warning('Изменения не были сохранены');
38
+ next();
39
+ });
40
+ } else {
41
+ next();
42
+ }
43
+ };
44
+
45
+ return {
46
+ confirmLeave,
47
+ saveButtonClick,
48
+ beforeWindowUnload,
49
+ formUpdated,
50
+ showConfirmModal,
51
+ };
52
+ }
@@ -0,0 +1,22 @@
1
+ import { Ref } from 'vue';
2
+
3
+ import IForm from '@/services/interfaces/IForm';
4
+
5
+ import PHelp from './PHelp';
6
+
7
+ export default function validate(form: Ref<IForm>, hideErrorList?: boolean): boolean {
8
+ let validationResult = true;
9
+ form.value.validate((valid: boolean, errorFields: Record<string, unknown>) => {
10
+ if (!valid) {
11
+ if (hideErrorList) {
12
+ PHelp.Notification.Error('Пожалуйста, проверьте правильность введенных данных');
13
+ } else {
14
+ PHelp.Notification.Error(PHelp.Notification.FormMessage(errorFields));
15
+ }
16
+ validationResult = false;
17
+ return validationResult;
18
+ }
19
+ return validationResult;
20
+ });
21
+ return validationResult;
22
+ }
@@ -0,0 +1,58 @@
1
+ import HttpClient from '@/services/HttpClientS';
2
+ import EmailPassword from '@/services/interfaces/IEmailPassword';
3
+ import ITokens from '@/services/interfaces/ITokens';
4
+ import IWithId from '@/services/interfaces/IWithId';
5
+ import TokenService from '@/services/Token';
6
+ import { AuthInfo } from '@/services/types/AuthInfo';
7
+
8
+ class S<UserT extends IWithId> {
9
+ async Login(): Promise<void> {
10
+ const res = await HttpClient.Post<EmailPassword, AuthInfo<UserT>>({
11
+ query: 'auth/login',
12
+ payload: PHelp.AuthForm.ToEmailPassword(),
13
+ });
14
+ if (!res) {
15
+ PHelp.Notification.Error('Ошибка авторизации');
16
+ throw 'Ошибка авторизации';
17
+ }
18
+ PHelp.Auth.SetState(res);
19
+ }
20
+ async LoginAs(email: string): Promise<void> {
21
+ const res = await HttpClient.Post<{ email: string }, AuthInfo<UserT>>({
22
+ query: 'auth/login-as',
23
+ payload: { email: email },
24
+ });
25
+ if (!res) {
26
+ PHelp.Notification.Error('Ошибка авторизации');
27
+ return;
28
+ }
29
+ PHelp.Auth.SetState(res);
30
+ }
31
+ async Register(): Promise<void> {
32
+ await HttpClient.Post<EmailPassword, AuthInfo<UserT>>({ query: 'auth/register', payload: PHelp.AuthForm.ToEmailPassword() });
33
+ }
34
+ async RestorePassword(): Promise<void> {
35
+ await HttpClient.Post<EmailPassword, UserT>({ query: 'auth/restore-password', payload: PHelp.AuthForm.ToEmailPassword() });
36
+ }
37
+ async passwordChange(): Promise<void> {
38
+ const userId = Router.GetStringParam('userId');
39
+ await HttpClient.Put<unknown, UserT>({
40
+ query: 'auth/password-change',
41
+ payload: { id: userId, email: PHelp.AuthForm.Email().email, password: PHelp.AuthForm.Password().password },
42
+ });
43
+ }
44
+
45
+ async RefreshToken(): Promise<void> {
46
+ await HttpClient.Post<unknown, { user: UserT; token: ITokens }>({
47
+ query: 'auth/refresh-token',
48
+ payload: { refreshToken: TokenService.getRefreshToken() },
49
+ });
50
+ }
51
+
52
+ async CheckUuid(checkObj: { userId: string; uniqueId: string }): Promise<void> {
53
+ await HttpClient.Get<boolean>({ query: `auth/check-uuid/${checkObj.userId}/${checkObj.uniqueId}` });
54
+ }
55
+ }
56
+
57
+ const store: S = new S();
58
+ export default store;
@@ -0,0 +1,11 @@
1
+ import BaseStore from '@/services/BaseStore';
2
+ import Contact from '@/services/classes/Contact';
3
+
4
+ class S extends BaseStore<Contact> {
5
+ constructor() {
6
+ super(Contact, 'contacts');
7
+ }
8
+ }
9
+
10
+ const store: S = new S();
11
+ export default store;
@@ -0,0 +1,20 @@
1
+ import Cropper from '@/services/classes/Cropper';
2
+
3
+ class S {
4
+ private cropper = new Cropper();
5
+
6
+ Open(cropper: Cropper) {
7
+ this.cropper = cropper;
8
+ }
9
+
10
+ Cropper(): Cropper {
11
+ return this.cropper;
12
+ }
13
+
14
+ Ratio(): number {
15
+ return this.cropper.ratio;
16
+ }
17
+ }
18
+
19
+ const store: S = new S();
20
+ export default store;
@@ -0,0 +1,11 @@
1
+ import BaseStore from '@/services/BaseStore';
2
+ import Email from '@/services/classes/Email';
3
+
4
+ class S extends BaseStore<Email> {
5
+ constructor() {
6
+ super(Email, 'emails');
7
+ }
8
+ }
9
+
10
+ const store: S = new S();
11
+ export default store;
@@ -0,0 +1,11 @@
1
+ import BaseStore from '@/services/BaseStore';
2
+ import FTSPPreset from '@/services/classes/FTSPPreset';
3
+
4
+ class S extends BaseStore<FTSPPreset> {
5
+ constructor() {
6
+ super(FTSPPreset, 'ftsp-presets');
7
+ }
8
+ }
9
+
10
+ const store: S = new S();
11
+ export default store;
@@ -0,0 +1,11 @@
1
+ import BaseStore from '@/services/BaseStore';
2
+ import FileInfo from '@/services/classes/FileInfo';
3
+
4
+ class S extends BaseStore<FileInfo> {
5
+ constructor() {
6
+ super(FileInfo, 'file-infos');
7
+ }
8
+ }
9
+
10
+ const store: S = new S();
11
+ export default store;
@@ -0,0 +1,11 @@
1
+ import BaseStore from '@/services/BaseStore';
2
+ import Human from '@/services/classes/Human';
3
+
4
+ class S extends BaseStore<Human> {
5
+ constructor() {
6
+ super(Human, 'humans');
7
+ }
8
+ }
9
+
10
+ const store: S = new S();
11
+ export default store;
@@ -0,0 +1,11 @@
1
+ import BaseStore from '@/services/BaseStore';
2
+ import Menu from '@/services/classes/Menu';
3
+
4
+ class S extends BaseStore<Menu> {
5
+ constructor() {
6
+ super(Menu, 'menus');
7
+ }
8
+ }
9
+
10
+ const store: S = new S();
11
+ export default store;
@@ -0,0 +1,11 @@
1
+ import BaseStore from '@/services/BaseStore';
2
+ import Phone from '@/services/classes/Phone';
3
+
4
+ class S extends BaseStore<Phone> {
5
+ constructor() {
6
+ super(Phone, 'phones');
7
+ }
8
+ }
9
+
10
+ const store: S = new S();
11
+ export default store;
@@ -0,0 +1,11 @@
1
+ import BaseStore from '@/services/BaseStore';
2
+ import Schema from '@/services/classes/Schema';
3
+
4
+ class S extends BaseStore<Schema> {
5
+ constructor() {
6
+ super(Schema, 'schemas');
7
+ }
8
+ }
9
+
10
+ const store: S = new S();
11
+ export default store;
@@ -0,0 +1,65 @@
1
+ import SearchElement from '@/services/classes/SearchElement';
2
+ import SearchGroup from '@/services/classes/SearchGroup';
3
+ import SearchModel from '@/services/classes/SearchModel';
4
+ import HttpClient from '@/services/HttpClientS';
5
+
6
+ class S {
7
+ private isSearchDrawerOpen = ref(false);
8
+ private searchModel = reactive(new SearchModel());
9
+ private searchGroups = reactive([]);
10
+ private count = 0;
11
+
12
+ async Search(searchModel: SearchModel): Promise<void> {
13
+ const item = await HttpClient.Get<SearchModel>({ query: `?key=${searchModel.key}&query=${searchModel.query}` });
14
+ if (item && item.searchGroup) {
15
+ item.searchGroup.options.forEach((opt: SearchElement) => {
16
+ searchModel.searchObjects.push({ id: opt.id, value: opt.value, label: opt.label, description: opt.description });
17
+ });
18
+ }
19
+ }
20
+
21
+ async mainSearch(searchModel: SearchModel): Promise<void> {
22
+ this.SetSearchModel(await HttpClient.Get<SearchModel>({ query: `/main?searchModel=${searchModel.toUrl()}` }));
23
+ }
24
+ async Full(searchModel: SearchModel): Promise<void> {
25
+ searchModel.options = [];
26
+ searchModel.searchGroups.forEach((s: SearchGroup) => {
27
+ s.options = [];
28
+ });
29
+ const res = await HttpClient.Get<SearchModel>({ query: `main?searchModel=${searchModel.toUrl()}` });
30
+ this.SetSearchModel(res as SearchModel);
31
+ }
32
+
33
+ ToggleDrawer(isOpen: boolean) {
34
+ this.isSearchDrawerOpen.value = isOpen;
35
+ this.searchModel = new SearchModel();
36
+ }
37
+ SetSearchModel(searchModel: void | SearchModel): void {
38
+ if (!searchModel) {
39
+ return;
40
+ }
41
+ this.searchModel = new SearchModel(searchModel);
42
+ }
43
+
44
+ SetSearchGroups(): void {
45
+ // this.searchModel.searchGroups = searchGroups.map((item: SearchGroup) => new SearchGroup(item));
46
+ }
47
+
48
+ IsSearchDrawerOpen(): Ref<boolean> {
49
+ return this.isSearchDrawerOpen;
50
+ }
51
+ SearchModel(): SearchModel {
52
+ return this.searchModel;
53
+ }
54
+
55
+ SearchGroups(): SearchGroup[] {
56
+ return this.searchGroups;
57
+ }
58
+
59
+ Count(): number {
60
+ return this.count;
61
+ }
62
+ }
63
+
64
+ const store: S = new S();
65
+ export default store;
@@ -0,0 +1,29 @@
1
+ import AuthStore from './AuthStore';
2
+ import ContactsStore from './ContactsStore';
3
+ import CropperStore from './CropperStore';
4
+ import EmailsStore from './EmailsStore';
5
+ import FileInfosStore from './FileInfosStore';
6
+ import FTSPPresetsStore from './FTSPPresetsStore';
7
+ import HumansStore from './HumansStore';
8
+ import MenusStore from './MenusStore';
9
+ import PhonesStore from './PhonesStore';
10
+ import SchemasStore from './SchemasStore';
11
+ import SearchStore from './SearchStore';
12
+ import UserAccountsStore from './UserAccountsStore';
13
+ import ValueTypesStore from './ValueTypesStore';
14
+
15
+ export {
16
+ AuthStore,
17
+ ContactsStore,
18
+ CropperStore,
19
+ EmailsStore,
20
+ FileInfosStore,
21
+ FTSPPresetsStore,
22
+ HumansStore,
23
+ MenusStore,
24
+ PhonesStore,
25
+ SchemasStore,
26
+ SearchStore,
27
+ UserAccountsStore,
28
+ ValueTypesStore,
29
+ };
@@ -0,0 +1,17 @@
1
+ const Core = [
2
+ 'AuthStore',
3
+ 'ContactsStore',
4
+ 'CropperStore',
5
+ 'EmailsStore',
6
+ 'FileInfosStore',
7
+ 'FTSPPresetsStore',
8
+ 'MenusStore',
9
+ 'HumansStore',
10
+ 'SchemasStore',
11
+ 'PhonesStore',
12
+ 'SearchStore',
13
+ 'UserAccountsStore',
14
+ 'ValueTypesStore',
15
+ ];
16
+
17
+ export default Core;
@@ -0,0 +1,11 @@
1
+ import BaseStore from '@/services/BaseStore';
2
+ import UserAccount from '@/services/classes/UserAccount';
3
+
4
+ class S extends BaseStore<UserAccount> {
5
+ constructor() {
6
+ super(UserAccount, 'users-accounts');
7
+ }
8
+ }
9
+
10
+ const store: S = new S();
11
+ export default store;
@@ -0,0 +1,11 @@
1
+ import BaseStore from '@/services/BaseStore';
2
+ import ValueType from '@/services/classes/ValueType';
3
+
4
+ class S extends BaseStore<ValueType> {
5
+ constructor() {
6
+ super(ValueType, 'value-types');
7
+ }
8
+ }
9
+
10
+ const store: S = new S();
11
+ export default store;
@@ -0,0 +1,30 @@
1
+ {
2
+ "extends": "@vue/tsconfig/tsconfig.web.json",
3
+ "include": [
4
+ "env.d.ts",
5
+ "src/*"
6
+ ],
7
+ "compilerOptions": {
8
+ "outDir": "./dist/types",
9
+ "declaration": true,
10
+ "lib": [
11
+ "esnext"
12
+ ],
13
+ "strict": true,
14
+ "noImplicitAny": true,
15
+ "baseUrl": ".",
16
+ "path": {
17
+ "@/*": [
18
+ "./src/*"
19
+ ],
20
+ "~/*": [
21
+ "./*"
22
+ ]
23
+ }
24
+ },
25
+ "references": [
26
+ {
27
+ "path": "./tsconfig.vite-confige.json"
28
+ }
29
+ ]
30
+ }
@@ -0,0 +1,6 @@
1
+ import ITokens from '@/services/interfaces/ITokens';
2
+
3
+ export type AuthInfo<UserT> = {
4
+ user: UserT;
5
+ tokens: ITokens;
6
+ };
@@ -0,0 +1,12 @@
1
+ export enum HttpHeadersKeys {
2
+ ContentType = 'Content-Type',
3
+ Token = 'token',
4
+ }
5
+ export enum HttpHeadersValues {
6
+ ApplicationJson = 'application/json',
7
+ MultipartFormData = 'multipart/form-data',
8
+ }
9
+
10
+ type HttpHeaders = Partial<Record<HttpHeadersKeys, HttpHeadersValues | string>>;
11
+
12
+ export default HttpHeaders;
@@ -0,0 +1,6 @@
1
+ export enum HttpMethods {
2
+ GET = 'get',
3
+ POST = 'post',
4
+ PUT = 'put',
5
+ DELETE = 'delete',
6
+ }
@@ -0,0 +1,7 @@
1
+ export enum Sizes {
2
+ XS = 'xs',
3
+ S = 's',
4
+ M = 'm',
5
+ L = 'l',
6
+ XL = 'xl',
7
+ }
@@ -0,0 +1,9 @@
1
+ enum Statuses {
2
+ Primary = 'primary',
3
+ Success = 'success',
4
+ Warning = 'warning',
5
+ Error = 'error',
6
+ Info = 'info',
7
+ }
8
+
9
+ export default Statuses;
@@ -0,0 +1,16 @@
1
+ enum ValueTypes {
2
+ String = 'string',
3
+ Text = 'text',
4
+ Number = 'number',
5
+ Date = 'date',
6
+ DateTime = 'dateTime',
7
+ Radio = 'radio',
8
+ Set = 'set',
9
+ Boolean = 'boolean',
10
+ Files = 'files',
11
+ File = 'file',
12
+ MatrixRadio = 'matrixRadio',
13
+ MatrixSet = 'matrixSet',
14
+ }
15
+
16
+ export default ValueTypes;