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,101 @@
1
+ <template>
2
+ <PSelect
3
+ v-if="mounted"
4
+ v-model="sortModel"
5
+ :popper-append-to-body="false"
6
+ :clearable="!sortModel?.default"
7
+ value-key="label"
8
+ @change="setSort"
9
+ @clear="setSort()"
10
+ >
11
+ <option v-for="(item, i) in SortList.Get()" :key="i" :label="item.label" :value="item" />
12
+ </PSelect>
13
+ </template>
14
+
15
+ <script lang="ts" setup>
16
+ import SortModel from '@/services/classes/SortModel';
17
+ import SortList from '@/services/SortList';
18
+
19
+ defineProps({
20
+ maxWidth: {
21
+ type: [Number, String],
22
+ default: 250,
23
+ },
24
+ });
25
+
26
+ const mounted = ref(false);
27
+
28
+ const emits = defineEmits(['load']);
29
+
30
+ const sortModel: Ref<SortModel | undefined> = ref();
31
+
32
+ onBeforeMount((): void => {
33
+ mounted.value = true;
34
+ sortModel.value = SortList.GetDefault();
35
+ FTSP.Get().setSortModel(sortModel.value as SortModel);
36
+ });
37
+
38
+ // watch(setDefaultSortModel, () => setSort());
39
+
40
+ const changeModel = async (s: SortModel | undefined): Promise<void> => {
41
+ sortModel.value = s ?? SortList.GetDefault();
42
+ FTSP.Get().setSortModel(sortModel.value);
43
+ FTSP.Get().p.drop();
44
+ emits('load');
45
+ };
46
+
47
+ const setSort = async (s?: SortModel) => {
48
+ FTSP.Get().p.drop();
49
+ await changeModel(s);
50
+ };
51
+ </script>
52
+
53
+ <style lang="scss" scoped>
54
+ :deep(.el-select__wrapper) {
55
+ min-height: 38px;
56
+ margin-top: 7px;
57
+ }
58
+
59
+ .anticon {
60
+ margin: 4px 4px 2px 4px;
61
+ font-size: 13px;
62
+
63
+ &:hover {
64
+ color: #5cb6ff;
65
+ }
66
+ }
67
+
68
+ .set {
69
+ color: #5cb6ff;
70
+ }
71
+
72
+ :deep(.el-input__inner) {
73
+ border-radius: 5px;
74
+ padding-left: 10px;
75
+ height: 40px;
76
+ // width: 100%;
77
+ display: flex;
78
+ font-family: Comfortaa, Arial, Helvetica, sans-serif;
79
+ font-size: 15px;
80
+ }
81
+
82
+ :deep(.el-input__inner::placeholder) {
83
+ color: #4a4a4a;
84
+ }
85
+
86
+ :deep(.el-select .el-input .el-select__caret) {
87
+ color: #4a4a4a;
88
+ font-size: 16px;
89
+ font-weight: bold;
90
+ margin-right: 5px;
91
+ }
92
+
93
+ .el-select {
94
+ width: 100%;
95
+ }
96
+
97
+ // :deep(.el-form-item) {
98
+ // padding: 10px;
99
+ // margin: 10px 0 0 0;
100
+ // }
101
+ </style>
@@ -0,0 +1,93 @@
1
+ <template>
2
+ <PSelect v-model="sortModel" :popper-append-to-body="false" :clearable="!sortModel?.default" value-key="label" @change="setSort">
3
+ <option v-for="(item, i) in SortList.Get()" :key="i" :label="item.label" :value="item" />
4
+ </PSelect>
5
+ </template>
6
+
7
+ <script lang="ts" setup>
8
+ import SortModel from '@/services/classes/SortModel';
9
+ import SortList from '@/services/SortList';
10
+
11
+ defineProps({
12
+ maxWidth: {
13
+ type: [Number, String],
14
+ default: 250,
15
+ },
16
+ });
17
+
18
+ const emits = defineEmits(['load']);
19
+
20
+ const sortModel: Ref<SortModel | undefined> = ref();
21
+
22
+ onBeforeMount((): void => {
23
+ sortModel.value = SortList.GetDefault();
24
+ });
25
+
26
+ // watch(
27
+ // () => FTSP.Get().resetFlag,
28
+ // () => setSort()
29
+ // );
30
+
31
+ const changeModel = async (e?: Event): Promise<void> => {
32
+ if (!e) {
33
+ sortModel.value = SortList.GetDefault();
34
+ }
35
+ FTSP.Get().setSortModel(sortModel.value as SortModel);
36
+ FTSP.Get().p.drop();
37
+ emits('load');
38
+ };
39
+
40
+ const setSort = async (s?: Event) => {
41
+ await changeModel(s);
42
+ };
43
+ </script>
44
+
45
+ <style lang="scss" scoped>
46
+ :deep(.el-select__wrapper) {
47
+ min-height: 38px;
48
+ margin-top: 7px;
49
+ }
50
+
51
+ .anticon {
52
+ margin: 4px 4px 2px 4px;
53
+ font-size: 13px;
54
+
55
+ &:hover {
56
+ color: #5cb6ff;
57
+ }
58
+ }
59
+
60
+ .set {
61
+ color: #5cb6ff;
62
+ }
63
+
64
+ :deep(.el-input__inner) {
65
+ border-radius: 5px;
66
+ padding-left: 10px;
67
+ height: 40px;
68
+ // width: 100%;
69
+ display: flex;
70
+ font-family: Comfortaa, Arial, Helvetica, sans-serif;
71
+ font-size: 15px;
72
+ }
73
+
74
+ :deep(.el-input__inner::placeholder) {
75
+ color: #4a4a4a;
76
+ }
77
+
78
+ :deep(.el-select .el-input .el-select__caret) {
79
+ color: #4a4a4a;
80
+ font-size: 16px;
81
+ font-weight: bold;
82
+ margin-right: 5px;
83
+ }
84
+
85
+ .el-select {
86
+ width: 100%;
87
+ }
88
+
89
+ // :deep(.el-form-item) {
90
+ // padding: 10px;
91
+ // margin: 10px 0 0 0;
92
+ // }
93
+ </style>
@@ -0,0 +1,25 @@
1
+ <template>
2
+ <component :is="dynamicComponent" />
3
+ </template>
4
+
5
+ <script>
6
+ import { defineAsyncComponent } from 'vue';
7
+ // import Edit from '@/assets/svg/Edit.svg?component';
8
+
9
+ export default {
10
+ props: {
11
+ name: {
12
+ type: String,
13
+ required: true,
14
+ },
15
+ },
16
+
17
+ computed: {
18
+ dynamicComponent() {
19
+ const name = this.name;
20
+
21
+ return defineAsyncComponent(() => import(`../../assets/svg/${name}.svg`));
22
+ },
23
+ },
24
+ };
25
+ </script>
@@ -0,0 +1,173 @@
1
+ <template>
2
+ <div class="switch-container">
3
+ <div class="line">
4
+ <PString :string="firstModel.label" font-size="12px" padding="0" :style="getStyle(firstModel)" @click="selectModel(firstModel)" />
5
+ <PString string="Все" font-size="12px" padding="0" :style="getStyle()" @click="selectModel()" />
6
+ <PString :string="secondModel.label" font-size="12px" padding="0" :style="getStyle(secondModel)" @click="selectModel(secondModel)" />
7
+ </div>
8
+ <div class="line">
9
+ <div
10
+ class="switch-knob1"
11
+ :style="getKnobStyle1()"
12
+ :class="{ active: firstModel.valueEq(filterModel) }"
13
+ @click="selectModel(firstModel)"
14
+ />
15
+ <div class="switch-knob2" :style="getKnobStyle2()" :class="{ active: !filterModel }" @click="selectModel()" />
16
+ <div
17
+ class="switch-knob3"
18
+ :style="getKnobStyle3()"
19
+ :class="{ active: secondModel.valueEq(filterModel) }"
20
+ @click="selectModel(secondModel)"
21
+ />
22
+
23
+ <div class="switch-axis"></div>
24
+ <div class="switch-axis-dash1"></div>
25
+ <div class="switch-axis-dash2"></div>
26
+ <div class="switch-axis-dash3"></div>
27
+ </div>
28
+ </div>
29
+ </template>
30
+
31
+ <script lang="ts" setup>
32
+ const props = defineProps({
33
+ firstModel: {
34
+ type: Object as PropType<FilterModel>,
35
+ required: true,
36
+ },
37
+ secondModel: {
38
+ type: Object as PropType<FilterModel>,
39
+ required: true,
40
+ },
41
+ defaultLabel: {
42
+ type: String as PropType<string>,
43
+ default: 'Все',
44
+ },
45
+ });
46
+ const emptyStyle = {
47
+ background: 'inherit',
48
+ border: '1px solid #c4c4c4',
49
+ };
50
+ const getKnobStyle1 = () => (props.firstModel.valueEq(filterModel.value) ? undefined : emptyStyle);
51
+ const getKnobStyle2 = () => (filterModel.value ? emptyStyle : undefined);
52
+ const getKnobStyle3 = () => (props.secondModel.valueEq(filterModel.value) ? undefined : emptyStyle);
53
+
54
+ const getStyle = (model?: FilterModel) => {
55
+ const color = filterModel.value?.valueEq(model) ? '#006bb4' : '#B0A4C0';
56
+ return { color: color };
57
+ };
58
+ const emits = defineEmits(['load']);
59
+ const filterModel: Ref<FilterModel | undefined> = ref(undefined);
60
+
61
+ const selectModel = async (model?: FilterModel): void => {
62
+ if (filterModel.value?.valueEq(model)) {
63
+ return;
64
+ }
65
+ FTSP.Get().replaceF(model, filterModel.value);
66
+ filterModel.value = model;
67
+ emits('load');
68
+ };
69
+ </script>
70
+
71
+ <style lang="scss" scoped>
72
+ @import '@/services/assets/styles/index.scss';
73
+
74
+ .active {
75
+ background: inherit;
76
+ border: 1px solid #c4c4c4;
77
+ }
78
+
79
+ .switch-container {
80
+ width: calc(100% - 2px);
81
+ height: 74px;
82
+ border: $light-pink-border;
83
+ border-radius: $border-radius;
84
+ background: $base-background;
85
+ }
86
+
87
+ .line {
88
+ position: relative;
89
+ width: calc(100% - 20px);
90
+ display: flex;
91
+ justify-content: space-between;
92
+ align-items: center;
93
+ padding: 10px;
94
+ }
95
+
96
+ .line:last-child {
97
+ margin-top: 5px;
98
+ }
99
+
100
+ .switch-axis {
101
+ position: absolute;
102
+ top: 50%;
103
+ left: 50%;
104
+ transform: translateY(-50%);
105
+ transform: translateX(-50%);
106
+ width: calc(100% - 30px);
107
+ height: 1px;
108
+ background: #b0a4c0;
109
+ }
110
+
111
+ .switch-axis-dash1 {
112
+ position: absolute;
113
+ top: 6px;
114
+ left: 14px;
115
+ width: 1px;
116
+ height: 9px;
117
+ background: #b0a4c0;
118
+ }
119
+
120
+ .switch-axis-dash2 {
121
+ position: absolute;
122
+ top: 6px;
123
+ left: 50%;
124
+ width: 0.5px;
125
+ height: 9px;
126
+ background: #b0a4c0;
127
+ }
128
+
129
+ .switch-axis-dash3 {
130
+ position: absolute;
131
+ top: 6px;
132
+ right: 14px;
133
+ width: 1px;
134
+ height: 9px;
135
+ background: #b0a4c0;
136
+ }
137
+
138
+ .switch-knob1 {
139
+ position: absolute;
140
+ left: 6px;
141
+ width: 16px;
142
+ height: 32px;
143
+ background: #dff2f8;
144
+ border-radius: 2px;
145
+ border: 1px solid #006bb4;
146
+ z-index: 1;
147
+ transition: 0.1s;
148
+ }
149
+
150
+ .switch-knob2 {
151
+ position: absolute;
152
+ left: calc(50% - 9px);
153
+ width: 16px;
154
+ height: 32px;
155
+ background: #dff2f8;
156
+ border-radius: 2px;
157
+ border: 1px solid #006bb4;
158
+ z-index: 1;
159
+ transition: 0.1s;
160
+ }
161
+
162
+ .switch-knob3 {
163
+ position: absolute;
164
+ right: 6px;
165
+ width: 16px;
166
+ height: 32px;
167
+ background: #dff2f8;
168
+ border-radius: 2px;
169
+ border: 1px solid #006bb4;
170
+ z-index: 1;
171
+ transition: 0.1s;
172
+ }
173
+ </style>
@@ -0,0 +1,19 @@
1
+ <template>
2
+ <div class="flex">
3
+ <slot />
4
+ </div>
5
+ </template>
6
+
7
+ <script lang="ts" setup></script>
8
+
9
+ <style lang="scss" scoped>
10
+ .flex {
11
+ width: 100%;
12
+ box-sizing: border-box;
13
+ display: flex;
14
+ justify-content: left;
15
+ align-items: center;
16
+ // background: var(--background-subtle-background-color);
17
+ padding: 40px;
18
+ }
19
+ </style>
@@ -0,0 +1,296 @@
1
+ <template>
2
+ <InfoItem :title="title" icon="edit-title" :with-hover="true" :close="closeToggle" width="100%" @keyup-enter="submit">
3
+ <PString v-if="content.length > 0" :string="content" />
4
+ <PString v-else string="Введите данные" color="#B0A4C0" />
5
+ <template #open-inside-content>
6
+ <GridContainer custom-class="grid">
7
+ <slot />
8
+ <PButton type="admin" color="blue" text="Сохранить" @click="submit" />
9
+ </GridContainer>
10
+ </template>
11
+ </InfoItem>
12
+ </template>
13
+
14
+ <script lang="ts" setup>
15
+ defineProps({
16
+ title: {
17
+ type: String as PropType<string>,
18
+ required: true,
19
+ },
20
+ content: {
21
+ type: String as PropType<string>,
22
+ required: true,
23
+ },
24
+ });
25
+ const closeToggle: Ref<boolean> = ref(false);
26
+ const emit = defineEmits(['submit']);
27
+
28
+ const submit = async (): Promise<void> => {
29
+ emit('submit');
30
+ closeToggle.value = !closeToggle.value;
31
+ };
32
+ </script>
33
+ <style lang="scss" scoped>
34
+ @import '@/services/assets/styles/index.scss';
35
+
36
+ .button {
37
+ width: auto;
38
+ height: 34px;
39
+ border-radius: 5px;
40
+ color: #006bb4;
41
+ font-size: 12px;
42
+
43
+ &-filter {
44
+ background: #ffffff;
45
+ }
46
+
47
+ &-download {
48
+ background: #dff2f8;
49
+ }
50
+ }
51
+
52
+ :deep(.button-register) {
53
+ width: auto;
54
+ height: 34px;
55
+ border-radius: 5px;
56
+ color: #006bb4;
57
+ background: #ffffff;
58
+ font-size: 12px;
59
+ }
60
+
61
+ :deep(.name-item) {
62
+ margin: 0;
63
+ width: auto;
64
+ border-color: #ffffff;
65
+ padding: 0;
66
+ }
67
+
68
+ .grid {
69
+ max-width: auto;
70
+ grid-gap: 10px;
71
+ margin: 0;
72
+ grid-template-columns: repeat(auto-fit, minmax(100%, 1fr));
73
+ }
74
+
75
+ .plus-button {
76
+ width: 100%;
77
+ height: 34px;
78
+ border-radius: 5px;
79
+ color: #00bea5;
80
+ background: #c1efeb;
81
+ }
82
+
83
+ .save-picker-button {
84
+ width: 100%;
85
+ height: 34px;
86
+ border-radius: 5px;
87
+ color: #006bb4;
88
+ background: #dff2f8;
89
+ }
90
+
91
+ .gender-button {
92
+ width: 42px;
93
+ border-radius: 5px;
94
+ height: 42px;
95
+ color: #006bb4;
96
+ background: #dff2f8;
97
+ margin: 2px 10px 0 0;
98
+ font-size: 18px;
99
+ }
100
+
101
+ .save-button {
102
+ width: 100%;
103
+ border-radius: 5px;
104
+ height: 42px;
105
+ color: #006bb4;
106
+ background: #dff2f8;
107
+ margin: 2px 10px 0 0;
108
+ font-size: 14px;
109
+ }
110
+
111
+ :deep(.edit-button) {
112
+ min-width: 40px;
113
+ max-width: 40px;
114
+ height: 40px;
115
+ border-radius: 5px;
116
+ color: #006bb4;
117
+ background: #dff2f8;
118
+ }
119
+
120
+ :deep(.files-buttons) {
121
+ width: auto;
122
+ height: 34px;
123
+ border-radius: 5px;
124
+ color: #006bb4;
125
+ background: #dff2f8;
126
+ font-size: 12px;
127
+
128
+ &:hover {
129
+ background: #dff2f8;
130
+ }
131
+ }
132
+
133
+ .edv {
134
+ font-size: 14px;
135
+ padding: 0;
136
+ margin: 0 5px 0 0;
137
+
138
+ &-active {
139
+ color: #b0a4c0;
140
+ }
141
+ }
142
+
143
+ .patient-name {
144
+ color: #006bb4;
145
+ font-size: 17px;
146
+ min-width: 150px;
147
+ width: 100%;
148
+ padding: 0;
149
+ }
150
+
151
+ .hidden {
152
+ display: none;
153
+ }
154
+
155
+ .scroll-block {
156
+ height: 75vh;
157
+ overflow: hidden;
158
+ overflow-y: scroll;
159
+ margin-left: 8px;
160
+ }
161
+
162
+ .registers-tooltip {
163
+ &:hover {
164
+ cursor: pointer;
165
+ }
166
+ }
167
+
168
+ .patient-link {
169
+ &:hover {
170
+ cursor: pointer;
171
+ text-decoration: underline;
172
+ }
173
+ }
174
+
175
+ .tag-link:hover {
176
+ background-color: darken(white, 10%);
177
+ cursor: pointer;
178
+ }
179
+
180
+ .flex-block {
181
+ width: 100%;
182
+ display: flex;
183
+ justify-content: space-between;
184
+ align-items: center;
185
+ }
186
+
187
+ :deep(.edit-icon) {
188
+ width: 28px;
189
+ height: 28px;
190
+ color: #006bb4;
191
+ }
192
+
193
+ .item-flex {
194
+ display: flex;
195
+ width: 100%;
196
+ justify-content: space-between;
197
+ align-items: center;
198
+ margin: 0 10px 0 0;
199
+ }
200
+
201
+ .item-flex:last-child {
202
+ margin: 10px 0;
203
+ }
204
+
205
+ .line-item-left {
206
+ display: flex;
207
+ justify-content: space-between;
208
+ align-items: center;
209
+ width: auto;
210
+ padding: 0;
211
+ }
212
+
213
+ .line-item-right {
214
+ display: flex;
215
+ justify-content: right;
216
+ align-items: center;
217
+ width: auto;
218
+ padding: 0;
219
+ }
220
+
221
+ :deep(.icon-plus) {
222
+ fill: #00b5a4;
223
+ width: 24px;
224
+ height: 24px;
225
+ cursor: pointer;
226
+ }
227
+
228
+ .icon-filter {
229
+ width: 24px;
230
+ height: 24px;
231
+ cursor: pointer;
232
+ stroke: #006bb4;
233
+ fill: none;
234
+ }
235
+
236
+ .icon-del {
237
+ width: 10px;
238
+ height: 10px;
239
+ cursor: pointer;
240
+ }
241
+
242
+ .patient-count {
243
+ margin-top: 10px;
244
+ color: $site_light_pink;
245
+ font-size: 14px;
246
+ }
247
+
248
+ :deep(.el-form-item) {
249
+ margin: 8px 0 0 0;
250
+ }
251
+
252
+ @media (max-width: 1915px) {
253
+ .flex-block {
254
+ width: 100%;
255
+ display: block;
256
+ justify-content: space-between;
257
+ align-items: center;
258
+ }
259
+ .line-item {
260
+ display: flex;
261
+ justify-content: space-between;
262
+ align-items: center;
263
+ width: 100%;
264
+ padding: 0;
265
+ }
266
+ .item-flex {
267
+ display: flex;
268
+ width: 100%;
269
+ justify-content: space-between;
270
+ align-items: center;
271
+ margin-top: 10px;
272
+ }
273
+
274
+ .item-flex:last-child {
275
+ margin-top: 10px;
276
+ margin-bottom: 10px;
277
+ }
278
+ }
279
+
280
+ @media (max-width: 560px) {
281
+ .line-item-left {
282
+ margin: 10px 0;
283
+ }
284
+
285
+ .line-item-right {
286
+ margin: 10px 0;
287
+ justify-content: space-between;
288
+ }
289
+
290
+ .item-flex:first-child {
291
+ display: block;
292
+ width: 100%;
293
+ margin: 0 0px 10px 0;
294
+ }
295
+ }
296
+ </style>