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,73 @@
1
+ <template>
2
+ <PCheckBox v-model="checked" :label="model.label" size="mini" @change="setFilterModel" />
3
+ </template>
4
+
5
+ <script lang="ts" setup>
6
+ import FilterModel from '@/services/classes/filters/FilterModel';
7
+ const props = defineProps({
8
+ model: {
9
+ type: Object as PropType<FilterModel>,
10
+ default: () => new FilterModel(),
11
+ required: true,
12
+ },
13
+ });
14
+ const checked = ref(false);
15
+ const emits = defineEmits(['load']);
16
+
17
+ const setFilterModel = () => {
18
+ props.model.setBoolean(checked.value);
19
+ if (checked.value) {
20
+ FTSP.Get().setF(props.model);
21
+ } else {
22
+ FTSP.Get().removeF(props.model);
23
+ }
24
+ emits('load');
25
+ };
26
+ </script>
27
+
28
+ <style lang="scss" scoped>
29
+ @import '@/services/assets/styles/index.scss';
30
+ // @import '@/assets/elements/filterForm.scss';
31
+
32
+ :deep(.el-input__inner) {
33
+ border-radius: 20px;
34
+ padding-left: 25px;
35
+ height: 34px;
36
+ // width: 100%;
37
+ display: flex;
38
+ font-family: Arial, Helvetica, sans-serif;
39
+ font-size: 15px;
40
+ }
41
+
42
+ :deep(.el-input__inner::placeholder) {
43
+ color: #4a4a4a;
44
+ }
45
+
46
+ :deep(.el-select .el-input .el-select__caret) {
47
+ color: #4a4a4a;
48
+ font-size: 15px;
49
+ font-weight: bold;
50
+ margin-right: 5px;
51
+ }
52
+
53
+ .el-select {
54
+ width: 100%;
55
+ }
56
+
57
+ :deep(.el-input__suffix) {
58
+ top: -2px;
59
+ }
60
+
61
+ :deep(.el-form-item) {
62
+ padding: 0 10px;
63
+ margin: 0;
64
+ }
65
+
66
+ .el-form {
67
+ width: 100%;
68
+ }
69
+
70
+ // .filter-form {
71
+ // width: 100%;
72
+ // }
73
+ </style>
@@ -0,0 +1,104 @@
1
+ <template>
2
+ <PSelect v-model="filterModel" :clearable="filterModel" :placeholder="defaultLabel" @change="selectFilter">
3
+ <option v-for="(model, i) in models" :key="i" :value="model" :label="model.label" />
4
+ </PSelect>
5
+ </template>
6
+
7
+ <script lang="ts" setup>
8
+ import FilterModel from '@/services/classes/filters/FilterModel';
9
+
10
+ defineProps({
11
+ models: {
12
+ type: Array as PropType<FilterModel[]>,
13
+ default: () => [],
14
+ },
15
+ defaultLabel: {
16
+ type: String as PropType<string>,
17
+ default: 'Все',
18
+ },
19
+ inverse: { type: Boolean as PropType<boolean>, required: false, default: false },
20
+ });
21
+ const emits = defineEmits(['load']);
22
+ const ftsp = FTSP.Get();
23
+
24
+ // watch(
25
+ // () => restore.value,
26
+ // () => {
27
+ // // const finded = props.models.find((m: FilterModel) => {
28
+ // // return ftsp.value.f.some((f: FilterModel) => {
29
+ // // return m.valueEq(f);
30
+ // // });
31
+ // // });
32
+ // // setFilter(finded);
33
+ // }
34
+ // );
35
+ const filterModel: Ref<FilterModel | undefined> = ref(undefined);
36
+
37
+ const setFilter = async (model?: FilterModel) => {
38
+ ftsp.replaceF(model, filterModel.value);
39
+ filterModel.value = model;
40
+ };
41
+
42
+ const selectFilter = async (model?: FilterModel) => {
43
+ if (!model) {
44
+ await setFilter(undefined);
45
+ } else {
46
+ await setFilter(filterModel.value);
47
+ }
48
+ emits('load');
49
+ };
50
+ </script>
51
+
52
+ <style lang="scss" scoped>
53
+ .filter-button {
54
+ width: auto;
55
+ height: 23px;
56
+ border-radius: 5px;
57
+ color: #006bb4;
58
+ background: #ffffff;
59
+ font-size: 12px;
60
+ padding: 10px;
61
+ }
62
+
63
+ .anticon {
64
+ margin: 4px 4px 2px 4px;
65
+ font-size: 13px;
66
+
67
+ &:hover {
68
+ color: #5cb6ff;
69
+ }
70
+ }
71
+
72
+ .set {
73
+ color: #5cb6ff;
74
+ }
75
+
76
+ :deep(.el-input__inner) {
77
+ border-radius: 20px;
78
+ padding-left: 25px;
79
+ height: 34px;
80
+ width: 100%;
81
+ display: flex;
82
+ font-family: Comfortaa, Arial, Helvetica, sans-serif;
83
+ font-size: 15px;
84
+ }
85
+
86
+ :deep(.el-input__inner::placeholder) {
87
+ color: #4a4a4a;
88
+ }
89
+
90
+ :deep(.el-select .el-input .el-select__caret) {
91
+ color: #4a4a4a;
92
+ font-size: 16px;
93
+ font-weight: bold;
94
+ margin-right: 5px;
95
+ }
96
+
97
+ .el-select {
98
+ width: 100%;
99
+ }
100
+
101
+ :deep(.el-form-item) {
102
+ margin-bottom: 0;
103
+ }
104
+ </style>
@@ -0,0 +1,126 @@
1
+ <template>
2
+ <PString :string="defaultLabel" font-size="14px" padding="0" margin="20px 0 0 10px" />
3
+ <InfoItem
4
+ margin="5px 0 0 0px"
5
+ :with-open-window="false"
6
+ height="auto"
7
+ background="#F5F5F5"
8
+ border-color="#C4C4C4"
9
+ padding="7px"
10
+ :with-hover="false"
11
+ >
12
+ <!-- <InfoItem margin="0" :with-open-window="false" :with-icon="false" height="auto" background="#F5F5F5" border-color="#C4C4C4" padding="7px" :with-hover="false"> -->
13
+ <template #title>
14
+ <!-- <PString :string="defaultLabel" font-size="14px" padding="0" margin="-5px 0 0 0" /> -->
15
+ </template>
16
+
17
+ <GridContainer max-width="100%" grid-gap="7px" grid-template-columns="repeat(auto-fit, minmax(100%, 1fr))" margin="0px">
18
+ <PButton
19
+ v-for="(model, index) in models"
20
+ :key="index"
21
+ color="blue"
22
+ height="auto"
23
+ :text="model.label"
24
+ :is-toggle="model.valueEq(filterModel)"
25
+ :toggle-mode="true"
26
+ :inverse="inverse"
27
+ @click="selectFilter(model.valueEq(filterModel) ? undefined : model)"
28
+ />
29
+ </GridContainer>
30
+ </InfoItem>
31
+ </template>
32
+
33
+ <script lang="ts" setup>
34
+ import FilterModel from '@/services/classes/filters/FilterModel';
35
+
36
+ defineProps({
37
+ models: {
38
+ type: Array<FilterModel>,
39
+ default: () => [],
40
+ },
41
+ defaultLabel: {
42
+ type: String,
43
+ default: 'Все',
44
+ },
45
+ inverse: { type: Boolean as PropType<boolean>, required: false, default: false },
46
+ });
47
+ const emits = defineEmits(['load']);
48
+
49
+ // watch(
50
+ // () => restore.value,
51
+ // () => {
52
+ // const finded = props.models.find((m: FilterModel) => {
53
+ // return FTSP.Get().f.some((f: FilterModel) => {
54
+ // return m.valueEq(f);
55
+ // });
56
+ // });
57
+ // setFilter(finded);
58
+ // }
59
+ // );
60
+ const filterModel: Ref<FilterModel | undefined> = ref(undefined);
61
+
62
+ const setFilter = async (model?: FilterModel) => {
63
+ FTSP.Get().replaceF(model, filterModel.value);
64
+ filterModel.value = model;
65
+ FTSP.Get().p.drop();
66
+ };
67
+
68
+ const selectFilter = async (model?: FilterModel) => {
69
+ await setFilter(model);
70
+ emits('load');
71
+ };
72
+ </script>
73
+
74
+ <style lang="scss" scoped>
75
+ .filter-button {
76
+ width: auto;
77
+ height: 23px;
78
+ border-radius: 5px;
79
+ color: #006bb4;
80
+ background: #ffffff;
81
+ font-size: 12px;
82
+ padding: 10px;
83
+ }
84
+
85
+ .anticon {
86
+ margin: 4px 4px 2px 4px;
87
+ font-size: 13px;
88
+
89
+ &:hover {
90
+ color: #5cb6ff;
91
+ }
92
+ }
93
+
94
+ .set {
95
+ color: #5cb6ff;
96
+ }
97
+
98
+ :deep(.el-input__inner) {
99
+ border-radius: 20px;
100
+ padding-left: 25px;
101
+ height: 34px;
102
+ width: 100%;
103
+ display: flex;
104
+ font-family: Comfortaa, Arial, Helvetica, sans-serif;
105
+ font-size: 15px;
106
+ }
107
+
108
+ :deep(.el-input__inner::placeholder) {
109
+ color: #4a4a4a;
110
+ }
111
+
112
+ :deep(.el-select .el-input .el-select__caret) {
113
+ color: #4a4a4a;
114
+ font-size: 16px;
115
+ font-weight: bold;
116
+ margin-right: 5px;
117
+ }
118
+
119
+ .el-select {
120
+ width: 100%;
121
+ }
122
+
123
+ :deep(.el-form-item) {
124
+ margin-bottom: 0;
125
+ }
126
+ </style>
@@ -0,0 +1,172 @@
1
+ <template>
2
+ <div
3
+ class="general-block-item"
4
+ :style="{
5
+ background: background,
6
+ height: height,
7
+ width: width,
8
+ borderColor: borderColor,
9
+ padding: padding,
10
+ margin: margin,
11
+ transform: scale ? (hovering ? 'scale(1.03, 1.03)' : '') : '',
12
+ }"
13
+ @mouseenter="hovering = true"
14
+ @mouseleave="hovering = false"
15
+ >
16
+ <div
17
+ class="green"
18
+ :style="{
19
+ width: `${ready}`,
20
+ }"
21
+ ></div>
22
+ <div
23
+ class="general-block-item-title"
24
+ :style="{
25
+ fontSize: fontSize,
26
+ }"
27
+ >
28
+ <slot name="general-item" />
29
+ </div>
30
+ <div
31
+ class="tools-icon"
32
+ :style="{
33
+ display: withIcon ? 'flex' : 'none',
34
+ }"
35
+ >
36
+ <svg class="icon-del">
37
+ <use xlink:href="#del"></use>
38
+ </svg>
39
+ </div>
40
+ <svg width="0" height="0" class="hidden">
41
+ <symbol id="del" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10">
42
+ <path
43
+ d="M2.91797 8.75C2.6888 8.75 2.49255 8.66833 2.32922 8.505C2.16589 8.34167 2.08436 8.14556 2.08464 7.91667V2.5H1.66797V1.66667H3.7513V1.25H6.2513V1.66667H8.33464V2.5H7.91797V7.91667C7.91797 8.14583 7.8363 8.34208 7.67297 8.50542C7.50964 8.66875 7.31352 8.75028 7.08464 8.75H2.91797ZM7.08464 2.5H2.91797V7.91667H7.08464V2.5ZM3.7513 7.08333H4.58464V3.33333H3.7513V7.08333ZM5.41797 7.08333H6.2513V3.33333H5.41797V7.08333Z"
44
+ ></path>
45
+ </symbol>
46
+ </svg>
47
+ </div>
48
+ <!-- borderColor: scale ? borderColor : (hovering ? '#379fff' : borderColor), -->
49
+ </template>
50
+
51
+ <script lang="ts" setup>
52
+ defineProps({
53
+ background: {
54
+ type: String as PropType<string>,
55
+ required: false,
56
+ default: '#ffffff',
57
+ },
58
+ height: {
59
+ type: String as PropType<string>,
60
+ required: false,
61
+ default: '40px',
62
+ },
63
+ width: {
64
+ type: String as PropType<string>,
65
+ required: false,
66
+ default: 'auto',
67
+ },
68
+
69
+ ready: {
70
+ type: String as PropType<string>,
71
+ required: false,
72
+ default: '0%',
73
+ },
74
+ padding: {
75
+ type: String as PropType<string>,
76
+ required: false,
77
+ default: '10px',
78
+ },
79
+ borderColor: {
80
+ type: String as PropType<string>,
81
+ required: false,
82
+ default: '#343D5C',
83
+ },
84
+ margin: {
85
+ type: String as PropType<string>,
86
+ required: false,
87
+ default: '5px',
88
+ },
89
+ scale: {
90
+ type: Boolean as PropType<boolean>,
91
+ required: false,
92
+ default: true,
93
+ },
94
+ fontSize: {
95
+ type: String as PropType<string>,
96
+ required: false,
97
+ default: '14px',
98
+ },
99
+ withIcon: {
100
+ type: Boolean as PropType<boolean>,
101
+ required: false,
102
+ default: false,
103
+ },
104
+ });
105
+
106
+ const hovering = ref(false);
107
+ </script>
108
+
109
+ <style lang="scss" scoped>
110
+ @import '@/services/assets/styles/index.scss';
111
+
112
+ .hidden {
113
+ display: none;
114
+ }
115
+
116
+ .general-block-item {
117
+ position: relative;
118
+ display: flex;
119
+ justify-content: center;
120
+ align-items: center;
121
+ width: auto;
122
+ display: flex;
123
+ justify-content: center;
124
+ align-items: center;
125
+ cursor: pointer;
126
+ transition: 0.3s;
127
+ border-radius: $border-radius;
128
+ border: $custom-border;
129
+ text-align: center;
130
+ overflow: hidden;
131
+ }
132
+
133
+ .green {
134
+ position: absolute;
135
+ background: #c7ecea;
136
+ top: 0;
137
+ left: 0;
138
+ width: 80%;
139
+ height: 100%;
140
+ }
141
+
142
+ .general-block-item-title {
143
+ font-size: 12px;
144
+ color: #343e5c;
145
+ display: flex;
146
+ justify-content: center;
147
+ align-items: center;
148
+ text-align: center;
149
+ z-index: 1;
150
+ }
151
+
152
+ .icon-del {
153
+ width: 32px;
154
+ height: 32px;
155
+ cursor: pointer;
156
+ fill: #343e5c;
157
+ }
158
+
159
+ .icon-del:hover {
160
+ fill: #1979cf;
161
+ }
162
+
163
+ .tools-icon {
164
+ display: flex;
165
+ justify-content: right;
166
+ align-items: center;
167
+ position: absolute;
168
+ top: 50%;
169
+ transform: translateY(-50%);
170
+ right: 10px;
171
+ }
172
+ </style>
@@ -0,0 +1,66 @@
1
+ <template>
2
+ <div class="grid-block" :class="customClass">
3
+ <slot />
4
+ </div>
5
+ </template>
6
+
7
+ <script lang="ts" setup>
8
+ defineProps({
9
+ maxWidth: {
10
+ type: String as PropType<string>,
11
+ required: false,
12
+ default: '',
13
+ },
14
+ width: {
15
+ type: String as PropType<string>,
16
+ required: false,
17
+ default: '100%',
18
+ },
19
+ background: {
20
+ type: String as PropType<string>,
21
+ required: false,
22
+ default: 'inherit',
23
+ },
24
+ gridGap: {
25
+ type: String as PropType<string>,
26
+ required: false,
27
+ default: '10px',
28
+ },
29
+ gridTemplateColumns: {
30
+ type: String as PropType<string>,
31
+ required: false,
32
+ default: 'repeat(auto-fit, minmax(250px, 1fr))',
33
+ },
34
+ gridTemplateRows: {
35
+ type: String as PropType<string>,
36
+ required: false,
37
+ default: 'repeat(0 0px)',
38
+ },
39
+ margin: {
40
+ type: String as PropType<string>,
41
+ required: false,
42
+ default: '10px 0 0 0',
43
+ },
44
+ // Custom class styles have prio
45
+ customClass: { type: String as PropType<string>, required: false, default: '' },
46
+ });
47
+ </script>
48
+
49
+ <style lang="scss" scoped>
50
+ @import '@/services/assets/styles/index.scss';
51
+
52
+ .grid-block {
53
+ box-sizing: border-box;
54
+ display: grid;
55
+ margin-left: auto;
56
+ margin-right: auto;
57
+ justify-content: center;
58
+ max-width: v-bind(maxWidth);
59
+ width: v-bind(width);
60
+ background: v-bind(background);
61
+ grid-gap: v-bind(gridGap);
62
+ grid-template-columns: v-bind(gridTemplateColumns);
63
+ grid-template-rows: v-bind(gridTemplateRows);
64
+ margin: v-bind(margin);
65
+ }
66
+ </style>
@@ -0,0 +1,55 @@
1
+ <template>
2
+ <svg
3
+ class="icon"
4
+ :class="iconClass"
5
+ :style="{
6
+ margin: margin,
7
+ width: size,
8
+ height: size,
9
+ fill: hoverColor ? (hovering ? hoverColor : color) : hovering ? color : color,
10
+ }"
11
+ @mouseenter="hovering = true"
12
+ @mouseleave="hovering = false"
13
+ >
14
+ <use xlink:href="#download"></use>
15
+ </svg>
16
+
17
+ <svg width="0" height="0" class="hidden">
18
+ <symbol id="download" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
19
+ <path
20
+ d="M15.6443 5.06141C15.0797 5.29331 15.0998 5.06141 15.0998 12.1393C15.0998 15.7388 15.0696 18.6728 15.0293 18.6728C14.9889 18.6728 14.1521 17.8763 13.1842 16.9083C11.6819 15.4061 11.3592 15.1338 11.0467 15.0733C10.724 15.0229 10.6333 15.0632 10.3611 15.3254C10.1292 15.5573 10.0586 15.7186 10.0586 16.0211C10.0586 16.3941 10.1594 16.5151 12.8615 19.2071C15.4326 21.7681 15.6947 22 16.0073 22C16.3198 22 16.582 21.7681 19.153 19.2071C21.9156 16.4546 21.9559 16.4042 21.9559 15.9908C21.9559 15.4867 21.6535 15.1641 21.109 15.0733C20.736 15.0128 20.7259 15.0229 18.8808 16.868C17.0357 18.6929 17.0155 18.7131 17.0155 18.3703C17.0054 18.1787 16.9953 15.2145 16.9853 11.7965L16.9651 5.56554L16.713 5.31348C16.4307 5.03117 15.9669 4.92026 15.6443 5.06141Z"
21
+ ></path>
22
+ <path
23
+ d="M5.30247 20.3872L5 20.6997L5.04033 22.081C5.07058 23.4321 5.08066 23.4825 5.44363 24.2488C6.09899 25.6099 7.17782 26.5173 8.59945 26.8904C9.47663 27.1122 22.5335 27.1223 23.4006 26.8904C25.044 26.4669 26.3245 25.2671 26.8084 23.7043C26.9496 23.2506 27 22.7868 27 21.8794C27 20.6796 27 20.6695 26.7076 20.3771C26.3144 19.9839 25.901 19.9839 25.4675 20.3771L25.1347 20.6695L25.1045 21.8189C25.0843 22.8776 25.0541 23.0086 24.7516 23.6035C24.3987 24.3093 23.7938 24.8235 23.088 25.0251C22.5839 25.1663 9.4363 25.1663 8.93217 25.0251C8.30706 24.8436 7.64161 24.3093 7.29881 23.7144C7.00642 23.2002 6.98625 23.0691 6.93584 21.9197L6.88543 20.6695L6.5527 20.3771C6.11916 19.9839 5.70577 19.9839 5.30247 20.3872Z"
24
+ ></path>
25
+ </symbol>
26
+ </svg>
27
+ </template>
28
+
29
+ <script lang="ts" setup>
30
+ const hovering = ref(false);
31
+ defineProps({
32
+ color: { type: String as PropType<string>, default: '' },
33
+ hoverColor: { type: String as PropType<string>, default: '' },
34
+ size: { type: String as PropType<string>, default: '' },
35
+ margin: { type: String as PropType<string>, default: '0' },
36
+ iconClass: { type: String as PropType<string>, required: false, default: '' },
37
+ });
38
+ </script>
39
+
40
+ <style lang="scss" scoped>
41
+ @import '@/services/assets/styles/index.scss';
42
+ .hidden {
43
+ display: none;
44
+ }
45
+ .icon {
46
+ width: $icon-width;
47
+ height: $icon-height;
48
+ fill: $icon-color;
49
+ transition: $icon-transition;
50
+ }
51
+
52
+ .icon:hover {
53
+ fill: $icon-hover-color;
54
+ }
55
+ </style>
@@ -0,0 +1,55 @@
1
+ <template>
2
+ <svg
3
+ class="icon"
4
+ :class="iconClass"
5
+ :style="{
6
+ margin: margin,
7
+ width: size,
8
+ height: size,
9
+ fill: hoverColor ? (hovering ? hoverColor : color) : hovering ? color : color,
10
+ }"
11
+ @mouseenter="hovering = true"
12
+ @mouseleave="hovering = false"
13
+ >
14
+ <use xlink:href="#filter"></use>
15
+ </svg>
16
+
17
+ <svg width="0" height="0" class="hidden">
18
+ <symbol id="filter" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
19
+ <path
20
+ d="M8.58216 5.14236C6.22884 5.77558 4.70721 8.02494 5.04745 10.3688C5.61452 14.2627 10.3684 15.8127 13.0714 12.9962C13.6385 12.4103 14.319 11.2194 14.319 10.8225C14.319 10.6902 14.9428 10.6713 20.3771 10.6713H26.4353L26.7094 10.3972C27.0969 10.0097 27.0969 9.44261 26.7094 9.05511L26.4353 8.78103H20.396H14.3662L14.1867 8.23287C13.4589 5.9646 10.8599 4.52803 8.58216 5.14236ZM10.9638 7.21215C13.0525 8.24232 13.0336 11.2194 10.9355 12.2496C10.2172 12.5993 9.20593 12.6276 8.54436 12.2968C6.21939 11.1533 6.43676 7.81702 8.8846 7.01368C9.45166 6.8341 10.3495 6.91916 10.9638 7.21215Z"
21
+ ></path>
22
+ <path
23
+ d="M21.5953 17.6266C21.1133 17.7211 20.2155 18.0519 19.8752 18.2599C18.9868 18.7986 18.0322 20.0083 17.8054 20.8778L17.6826 21.3504H12.3616C6.66257 21.3504 6.63422 21.3504 6.37904 21.8135C6.20892 22.1443 6.26562 22.6452 6.51135 22.9287L6.73818 23.1933L12.1915 23.2406L17.6448 23.2878L17.8621 23.8738C18.4292 25.4427 19.7334 26.6052 21.2929 26.936C22.1057 27.1061 23.3154 27.0021 24.062 26.6997C25.3379 26.1799 26.4059 25.0174 26.8029 23.7037C26.9635 23.165 27.0013 22.8625 26.9635 22.0781C26.9352 21.1991 26.8974 21.0479 26.5855 20.3864C25.8105 18.7513 24.2794 17.7117 22.5499 17.6172C22.1529 17.5983 21.7276 17.6077 21.5953 17.6266ZM23.5517 19.8004C24.081 20.0556 24.5913 20.5754 24.8748 21.1519C24.9977 21.4071 25.045 21.7095 25.045 22.3427C25.045 23.1555 25.0261 23.2311 24.7236 23.7415C23.5611 25.6412 20.8014 25.5656 19.7902 23.5997C19.5066 23.0421 19.4405 22.0119 19.6484 21.3787C20.1682 19.8004 22.0206 19.0537 23.5517 19.8004Z"
24
+ ></path>
25
+ </symbol>
26
+ </svg>
27
+ </template>
28
+
29
+ <script lang="ts" setup>
30
+ const hovering = ref(false);
31
+ defineProps({
32
+ color: { type: String as PropType<string>, default: '' },
33
+ hoverColor: { type: String as PropType<string>, default: '' },
34
+ size: { type: String as PropType<string>, default: '' },
35
+ margin: { type: String as PropType<string>, default: '0' },
36
+ iconClass: { type: String as PropType<string>, required: false, default: '' },
37
+ });
38
+ </script>
39
+
40
+ <style lang="scss" scoped>
41
+ @import '@/services/assets/styles/index.scss';
42
+ .hidden {
43
+ display: none;
44
+ }
45
+ .icon {
46
+ width: $icon-width;
47
+ height: $icon-height;
48
+ fill: $icon-color;
49
+ transition: $icon-transition;
50
+ }
51
+
52
+ .icon:hover {
53
+ fill: $icon-hover-color;
54
+ }
55
+ </style>
@@ -0,0 +1,36 @@
1
+ <template>
2
+ <svg
3
+ class="icon"
4
+ :class="iconClass"
5
+ :style="{
6
+ margin: margin,
7
+ width: size,
8
+ height: size,
9
+ }"
10
+ >
11
+ <use xlink:href="#arrow-left"></use>
12
+ </svg>
13
+
14
+ <svg width="0" height="0" class="hidden">
15
+ <symbol id="arrow-left" fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
16
+ <path
17
+ d="M13.4323 2.0816C13.3788 2.0909 13.2951 2.12113 13.2462 2.14904C13.1997 2.17462 11.5439 3.85601 9.56715 5.8816C6.70668 8.81648 5.96017 9.59322 5.90436 9.69787C5.84622 9.8095 5.83691 9.85601 5.83691 9.99787C5.83691 10.1397 5.84622 10.1886 5.90436 10.2979C6.00436 10.4886 13.102 17.7746 13.2764 17.8653C13.3695 17.9142 13.423 17.9258 13.5555 17.9258C13.916 17.9235 14.1788 17.6583 14.1788 17.2932C14.1788 17.0374 14.1392 16.9769 13.623 16.4467C13.3695 16.1862 11.8555 14.6328 10.2555 12.9909C8.65552 11.349 7.35087 9.99787 7.35552 9.9909C7.36017 9.9816 8.86715 8.43276 10.7044 6.54904C12.5416 4.66532 14.0671 3.08392 14.0951 3.03508C14.2392 2.79555 14.1951 2.45834 13.9927 2.25834C13.8462 2.1095 13.6323 2.04206 13.4323 2.0816Z"
18
+ fill="currentColor"
19
+ ></path>
20
+ </symbol>
21
+ </svg>
22
+ </template>
23
+
24
+ <script lang="ts" setup>
25
+ defineProps({
26
+ size: { type: String, default: '' },
27
+ margin: { type: String, default: '0' },
28
+ iconClass: { type: String, required: false, default: '' },
29
+ });
30
+ </script>
31
+
32
+ <style lang="scss" scoped>
33
+ .hidden {
34
+ display: none;
35
+ }
36
+ </style>