vueless 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_readme/README.md +78 -0
- package/_readme/UGroup.md +25 -0
- package/_readme/UNotify.md +53 -0
- package/_readme/UPage.md +37 -0
- package/_readme/UTopLoader.md +27 -0
- package/_readme/layoutAdmin.md +703 -0
- package/_readme/layoutApp.md +153 -0
- package/_readme/layoutAuth.md +190 -0
- package/composable.ui/index.js +81 -0
- package/config.rollup-plugin-visualizer/index.js +11 -0
- package/config.unplugin-vue-i18n/index.js +9 -0
- package/config.vite-plugin-pwa/index.js +132 -0
- package/config.vite-svg-loader/index.js +22 -0
- package/constant.component-names/index.js +6 -0
- package/index.js +151 -0
- package/layout-ui.loader/index.vue +61 -0
- package/layout-ui.loader/store/index.js +17 -0
- package/layout-ui.loader-top/components/TopProgress.vue +277 -0
- package/layout-ui.loader-top/index.vue +218 -0
- package/layout-ui.loader-top/store/index.js +55 -0
- package/layout-ui.notify/index.stories.js +102 -0
- package/layout-ui.notify/index.vue +254 -0
- package/layout-ui.viewport/index.vue +78 -0
- package/layout-ui.viewport/store/index.js +47 -0
- package/layout.admin/AsideBlock.vue +534 -0
- package/layout.admin/AsideInfoBlock.vue +85 -0
- package/layout.admin/BrandBlock.vue +380 -0
- package/layout.admin/ChangeThemeModal.vue +179 -0
- package/layout.admin/HelperBlock.vue +132 -0
- package/layout.admin/MainMenu.vue +234 -0
- package/layout.admin/MainSubMenu.vue +196 -0
- package/layout.admin/MobileMainMenu.vue +197 -0
- package/layout.admin/MobileSubBlock.vue +171 -0
- package/layout.admin/RightInfoBlock.vue +166 -0
- package/layout.admin/UserBlock.vue +290 -0
- package/layout.admin/images/abstract-01.jpg +0 -0
- package/layout.admin/images/abstract-01_preview.jpg +0 -0
- package/layout.admin/index.vue +544 -0
- package/layout.admin/mixins/index.js +54 -0
- package/layout.admin/store/index.js +167 -0
- package/layout.auth/FeaturesBlock.vue +57 -0
- package/layout.auth/FooterMenu.vue +90 -0
- package/layout.auth/LanguageSwitcher.vue +90 -0
- package/layout.auth/index.vue +237 -0
- package/library.vue-tailwind-3/TDatepicker/components/t-date-trigger.js +257 -0
- package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-navigator.js +600 -0
- package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-time-selector.js +522 -0
- package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-calendar-days-day.js +289 -0
- package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-calendar-days.js +236 -0
- package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-calendar-headers.js +64 -0
- package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-calendar.js +159 -0
- package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-months-month.js +106 -0
- package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-months.js +97 -0
- package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-years-year.js +117 -0
- package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view-years.js +104 -0
- package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views-view.js +294 -0
- package/library.vue-tailwind-3/TDatepicker/components/t-datepicker-views.js +212 -0
- package/library.vue-tailwind-3/TDatepicker/components/t-toggle.js +323 -0
- package/library.vue-tailwind-3/TDatepicker/index.js +1051 -0
- package/library.vue-tailwind-3/base/Component.js +126 -0
- package/library.vue-tailwind-3/base/HtmlInput.js +38 -0
- package/library.vue-tailwind-3/base/TextInput.js +102 -0
- package/library.vue-tailwind-3/index.js +12 -0
- package/library.vue-tailwind-3/l10n/ar.js +27 -0
- package/library.vue-tailwind-3/l10n/at.js +29 -0
- package/library.vue-tailwind-3/l10n/az.js +40 -0
- package/library.vue-tailwind-3/l10n/be.js +35 -0
- package/library.vue-tailwind-3/l10n/bg.js +41 -0
- package/library.vue-tailwind-3/l10n/bn.js +39 -0
- package/library.vue-tailwind-3/l10n/bs.js +28 -0
- package/library.vue-tailwind-3/l10n/cat.js +59 -0
- package/library.vue-tailwind-3/l10n/cs.js +35 -0
- package/library.vue-tailwind-3/l10n/cy.js +68 -0
- package/library.vue-tailwind-3/l10n/da.js +31 -0
- package/library.vue-tailwind-3/l10n/de.js +30 -0
- package/library.vue-tailwind-3/l10n/default.js +54 -0
- package/library.vue-tailwind-3/l10n/eo.js +31 -0
- package/library.vue-tailwind-3/l10n/es.js +32 -0
- package/library.vue-tailwind-3/l10n/et.js +46 -0
- package/library.vue-tailwind-3/l10n/fa.js +41 -0
- package/library.vue-tailwind-3/l10n/fi.js +50 -0
- package/library.vue-tailwind-3/l10n/fo.js +40 -0
- package/library.vue-tailwind-3/l10n/fr.js +48 -0
- package/library.vue-tailwind-3/l10n/ga.js +36 -0
- package/library.vue-tailwind-3/l10n/gr.js +33 -0
- package/library.vue-tailwind-3/l10n/he.js +41 -0
- package/library.vue-tailwind-3/l10n/hi.js +39 -0
- package/library.vue-tailwind-3/l10n/hr.js +41 -0
- package/library.vue-tailwind-3/l10n/hu.js +46 -0
- package/library.vue-tailwind-3/l10n/id.js +30 -0
- package/library.vue-tailwind-3/l10n/index.js +127 -0
- package/library.vue-tailwind-3/l10n/is.js +40 -0
- package/library.vue-tailwind-3/l10n/it.js +31 -0
- package/library.vue-tailwind-3/l10n/ja.js +42 -0
- package/library.vue-tailwind-3/l10n/ka.js +35 -0
- package/library.vue-tailwind-3/l10n/km.js +45 -0
- package/library.vue-tailwind-3/l10n/ko.js +41 -0
- package/library.vue-tailwind-3/l10n/kz.js +34 -0
- package/library.vue-tailwind-3/l10n/lt.js +41 -0
- package/library.vue-tailwind-3/l10n/lv.js +37 -0
- package/library.vue-tailwind-3/l10n/mk.js +30 -0
- package/library.vue-tailwind-3/l10n/mn.js +42 -0
- package/library.vue-tailwind-3/l10n/ms.js +28 -0
- package/library.vue-tailwind-3/l10n/my.js +42 -0
- package/library.vue-tailwind-3/l10n/nl.js +48 -0
- package/library.vue-tailwind-3/l10n/no.js +31 -0
- package/library.vue-tailwind-3/l10n/pa.js +27 -0
- package/library.vue-tailwind-3/l10n/pl.js +31 -0
- package/library.vue-tailwind-3/l10n/pt.js +36 -0
- package/library.vue-tailwind-3/l10n/ro.js +29 -0
- package/library.vue-tailwind-3/l10n/ru.js +48 -0
- package/library.vue-tailwind-3/l10n/si.js +40 -0
- package/library.vue-tailwind-3/l10n/sk.js +32 -0
- package/library.vue-tailwind-3/l10n/sl.js +32 -0
- package/library.vue-tailwind-3/l10n/sq.js +27 -0
- package/library.vue-tailwind-3/l10n/sr-cyr.js +29 -0
- package/library.vue-tailwind-3/l10n/sr.js +30 -0
- package/library.vue-tailwind-3/l10n/sv.js +30 -0
- package/library.vue-tailwind-3/l10n/th.js +43 -0
- package/library.vue-tailwind-3/l10n/tr.js +32 -0
- package/library.vue-tailwind-3/l10n/uk.js +28 -0
- package/library.vue-tailwind-3/l10n/uz.js +35 -0
- package/library.vue-tailwind-3/l10n/uz_latn.js +48 -0
- package/library.vue-tailwind-3/l10n/vn.js +41 -0
- package/library.vue-tailwind-3/l10n/zh-tw.js +41 -0
- package/library.vue-tailwind-3/l10n/zh.js +41 -0
- package/library.vue-tailwind-3/services/date.service.js +294 -0
- package/library.vue-tailwind-3/services/formatting.service.js +205 -0
- package/library.vue-tailwind-3/services/vueTailwind.service.js +41 -0
- package/library.vue-tailwind-3/t-alert.js +151 -0
- package/library.vue-tailwind-3/t-button.js +243 -0
- package/library.vue-tailwind-3/t-card.js +98 -0
- package/library.vue-tailwind-3/t-checkbox.js +292 -0
- package/library.vue-tailwind-3/t-dropdown.js +322 -0
- package/library.vue-tailwind-3/t-input.js +68 -0
- package/library.vue-tailwind-3/t-modal.js +409 -0
- package/library.vue-tailwind-3/t-pagination.js +309 -0
- package/library.vue-tailwind-3/t-radio.js +301 -0
- package/library.vue-tailwind-3/t-table.js +362 -0
- package/library.vue-tailwind-3/t-textarea.js +84 -0
- package/library.web-types-gen/index.js +17 -0
- package/library.web-types-gen/lib/build.js +226 -0
- package/library.web-types-gen/lib/config.js +26 -0
- package/library.web-types-gen/package.json +3 -0
- package/package.json +20 -0
- package/resolver.unplugin-vue-components/index.js +94 -0
- package/service.api/index.js +275 -0
- package/service.data/index.js +75 -0
- package/service.date/index.js +222 -0
- package/service.i18n/index.js +145 -0
- package/service.idb-keyval/index.js +37 -0
- package/service.jwt/index.js +27 -0
- package/service.money/index.js +86 -0
- package/service.notify/index.js +87 -0
- package/service.redirect/index.js +20 -0
- package/service.storybook/index.js +118 -0
- package/service.ui/index.js +174 -0
- package/service.validation/index.js +55 -0
- package/service.worker/index.js +26 -0
- package/ui.button/index.stories.js +165 -0
- package/ui.button/index.vue +1018 -0
- package/ui.button-expand/index.stories.js +44 -0
- package/ui.button-expand/index.vue +22 -0
- package/ui.button-expand-item/index.stories.js +69 -0
- package/ui.button-expand-item/index.vue +154 -0
- package/ui.button-group/index.stories.js +104 -0
- package/ui.button-group/index.vue +165 -0
- package/ui.button-group-item/index.stories.js +74 -0
- package/ui.button-group-item/index.vue +283 -0
- package/ui.button-link/index.stories.js +121 -0
- package/ui.button-link/index.vue +541 -0
- package/ui.container-accordion/index.stories.js +88 -0
- package/ui.container-accordion/index.vue +167 -0
- package/ui.container-card/index.stories.js +128 -0
- package/ui.container-card/index.vue +207 -0
- package/ui.container-divider/index.stories.js +91 -0
- package/ui.container-divider/index.vue +201 -0
- package/ui.container-group/index.stories.js +87 -0
- package/ui.container-group/index.vue +172 -0
- package/ui.container-groups/index.stories.js +44 -0
- package/ui.container-groups/index.vue +18 -0
- package/ui.container-modal/components/ArrowLink.vue +87 -0
- package/ui.container-modal/index.stories.js +169 -0
- package/ui.container-modal/index.vue +416 -0
- package/ui.container-modal-confirm/index.stories.js +150 -0
- package/ui.container-modal-confirm/index.vue +186 -0
- package/ui.container-page/components/ArrowLink.vue +87 -0
- package/ui.container-page/index.stories.js +174 -0
- package/ui.container-page/index.vue +486 -0
- package/ui.container-row/index.stories.js +71 -0
- package/ui.container-row/index.vue +52 -0
- package/ui.data-list/index.stories.js +90 -0
- package/ui.data-list/index.vue +367 -0
- package/ui.data-table/components/DateSeparator.vue +99 -0
- package/ui.data-table/components/EmptyTableMsg.vue +46 -0
- package/ui.data-table/components/TableCheckbox.vue +109 -0
- package/ui.data-table/index.stories.js +231 -0
- package/ui.data-table/index.vue +1101 -0
- package/ui.dropdown-button/index.stories.js +157 -0
- package/ui.dropdown-button/index.vue +331 -0
- package/ui.dropdown-item/index.stories.js +29 -0
- package/ui.dropdown-item/index.vue +70 -0
- package/ui.dropdown-link/index.stories.js +127 -0
- package/ui.dropdown-link/index.vue +330 -0
- package/ui.dropdown-list/index.stories.js +46 -0
- package/ui.dropdown-list/index.vue +139 -0
- package/ui.dropdown-tag/index.stories.js +125 -0
- package/ui.dropdown-tag/index.vue +285 -0
- package/ui.form-checkbox/index.stories.js +98 -0
- package/ui.form-checkbox/index.vue +301 -0
- package/ui.form-checkbox-group/index.stories.js +39 -0
- package/ui.form-checkbox-group/index.vue +216 -0
- package/ui.form-checkbox-multi-state/index.stories.js +62 -0
- package/ui.form-checkbox-multi-state/index.vue +244 -0
- package/ui.form-color-picker/index.vue +350 -0
- package/ui.form-date-picker/index.stories.js +119 -0
- package/ui.form-date-picker/index.vue +851 -0
- package/ui.form-date-picker-range/components/VariantButton.vue +136 -0
- package/ui.form-date-picker-range/components/VariantInput.vue +101 -0
- package/ui.form-date-picker-range/index.stories.js +93 -0
- package/ui.form-date-picker-range/index.vue +1537 -0
- package/ui.form-date-picker-range/services/dateRange.service.js +178 -0
- package/ui.form-input/index.stories.js +132 -0
- package/ui.form-input/index.vue +524 -0
- package/ui.form-input/text-security-disc.woff +0 -0
- package/ui.form-input-file/index.stories.js +85 -0
- package/ui.form-input-file/index.vue +584 -0
- package/ui.form-input-money/_components/ConvertibleInput.vue +773 -0
- package/ui.form-input-money/_components/RangeInput.vue +356 -0
- package/ui.form-input-money/_components/SingleInput.vue +378 -0
- package/ui.form-input-money/index.stories.js +98 -0
- package/ui.form-input-money/index.vue +260 -0
- package/ui.form-input-number/index.stories.js +33 -0
- package/ui.form-input-number/index.vue +127 -0
- package/ui.form-input-rating/index.stories.js +107 -0
- package/ui.form-input-rating/index.vue +242 -0
- package/ui.form-input-search/index.stories.js +86 -0
- package/ui.form-input-search/index.vue +210 -0
- package/ui.form-radio/index.stories.js +69 -0
- package/ui.form-radio/index.vue +176 -0
- package/ui.form-radio-card/index.stories.js +140 -0
- package/ui.form-radio-card/index.vue +183 -0
- package/ui.form-radio-group/index.stories.js +41 -0
- package/ui.form-radio-group/index.vue +98 -0
- package/ui.form-select/index.stories.js +183 -0
- package/ui.form-select/index.vue +1025 -0
- package/ui.form-select-multi/index.stories.js +131 -0
- package/ui.form-select-multi/index.vue +882 -0
- package/ui.form-switch/index.stories.js +126 -0
- package/ui.form-switch/index.vue +673 -0
- package/ui.form-textarea/index.stories.js +109 -0
- package/ui.form-textarea/index.vue +399 -0
- package/ui.icons-metronic/ATM.svg +8 -0
- package/ui.icons-metronic/Active-call.svg +8 -0
- package/ui.icons-metronic/Add-music.svg +8 -0
- package/ui.icons-metronic/Add-user.svg +8 -0
- package/ui.icons-metronic/Address-card.svg +7 -0
- package/ui.icons-metronic/Adjust.svg +7 -0
- package/ui.icons-metronic/Adress-book1.svg +8 -0
- package/ui.icons-metronic/Adress-book2.svg +8 -0
- package/ui.icons-metronic/Air-ballon.svg +8 -0
- package/ui.icons-metronic/Air-conditioning.svg +8 -0
- package/ui.icons-metronic/Airplay-video.svg +8 -0
- package/ui.icons-metronic/Airplay.svg +8 -0
- package/ui.icons-metronic/Airpods.svg +10 -0
- package/ui.icons-metronic/Alarm-clock.svg +9 -0
- package/ui.icons-metronic/Align-auto.svg +8 -0
- package/ui.icons-metronic/Align-center.svg +8 -0
- package/ui.icons-metronic/Align-justify.svg +8 -0
- package/ui.icons-metronic/Align-left.svg +9 -0
- package/ui.icons-metronic/Align-right.svg +8 -0
- package/ui.icons-metronic/Anchor-center-down.svg +11 -0
- package/ui.icons-metronic/Anchor-center-up.svg +11 -0
- package/ui.icons-metronic/Anchor-center.svg +8 -0
- package/ui.icons-metronic/Anchor-left-down.svg +11 -0
- package/ui.icons-metronic/Anchor-left-up.svg +11 -0
- package/ui.icons-metronic/Anchor-left.svg +11 -0
- package/ui.icons-metronic/Anchor-right-down.svg +11 -0
- package/ui.icons-metronic/Anchor-right-up.svg +11 -0
- package/ui.icons-metronic/Anchor-right.svg +11 -0
- package/ui.icons-metronic/Android.svg +8 -0
- package/ui.icons-metronic/Angle Grinder.svg +9 -0
- package/ui.icons-metronic/Angle-double-down.svg +8 -0
- package/ui.icons-metronic/Angle-double-left.svg +8 -0
- package/ui.icons-metronic/Angle-double-right.svg +8 -0
- package/ui.icons-metronic/Angle-double-up.svg +8 -0
- package/ui.icons-metronic/Angle-down.svg +7 -0
- package/ui.icons-metronic/Angle-left.svg +7 -0
- package/ui.icons-metronic/Angle-right.svg +7 -0
- package/ui.icons-metronic/Angle-up.svg +7 -0
- package/ui.icons-metronic/Apple-Watch.svg +8 -0
- package/ui.icons-metronic/Archive.svg +7 -0
- package/ui.icons-metronic/Armchair.svg +8 -0
- package/ui.icons-metronic/Arrow-down.svg +8 -0
- package/ui.icons-metronic/Arrow-from-bottom.svg +9 -0
- package/ui.icons-metronic/Arrow-from-left.svg +9 -0
- package/ui.icons-metronic/Arrow-from-right.svg +9 -0
- package/ui.icons-metronic/Arrow-from-top.svg +9 -0
- package/ui.icons-metronic/Arrow-left.svg +8 -0
- package/ui.icons-metronic/Arrow-right.svg +8 -0
- package/ui.icons-metronic/Arrow-to-bottom.svg +9 -0
- package/ui.icons-metronic/Arrow-to-left.svg +9 -0
- package/ui.icons-metronic/Arrow-to-right.svg +9 -0
- package/ui.icons-metronic/Arrow-to-up.svg +9 -0
- package/ui.icons-metronic/Arrow-up.svg +8 -0
- package/ui.icons-metronic/Arrows-h.svg +9 -0
- package/ui.icons-metronic/Arrows-v.svg +9 -0
- package/ui.icons-metronic/Arrows.svg +8 -0
- package/ui.icons-metronic/Article.svg +8 -0
- package/ui.icons-metronic/Attachment1.svg +8 -0
- package/ui.icons-metronic/Attachment2.svg +10 -0
- package/ui.icons-metronic/Axe.svg +8 -0
- package/ui.icons-metronic/Back.svg +8 -0
- package/ui.icons-metronic/Backspace.svg +8 -0
- package/ui.icons-metronic/Backward.svg +8 -0
- package/ui.icons-metronic/Bag-chair.svg +8 -0
- package/ui.icons-metronic/Bag1.svg +8 -0
- package/ui.icons-metronic/Bag2.svg +8 -0
- package/ui.icons-metronic/Baking-glove.svg +8 -0
- package/ui.icons-metronic/Barcode-read.svg +8 -0
- package/ui.icons-metronic/Barcode-scan.svg +9 -0
- package/ui.icons-metronic/Barcode.svg +8 -0
- package/ui.icons-metronic/Bath.svg +8 -0
- package/ui.icons-metronic/Battery-charging.svg +9 -0
- package/ui.icons-metronic/Battery-empty.svg +8 -0
- package/ui.icons-metronic/Battery-full.svg +8 -0
- package/ui.icons-metronic/Battery-half.svg +8 -0
- package/ui.icons-metronic/Bed.svg +9 -0
- package/ui.icons-metronic/Beer.svg +11 -0
- package/ui.icons-metronic/Bezier-curve.svg +8 -0
- package/ui.icons-metronic/Binocular.svg +7 -0
- package/ui.icons-metronic/Bitcoin.svg +9 -0
- package/ui.icons-metronic/Blender.svg +7 -0
- package/ui.icons-metronic/Bluetooth.svg +8 -0
- package/ui.icons-metronic/Bold.svg +7 -0
- package/ui.icons-metronic/Book-open.svg +8 -0
- package/ui.icons-metronic/Book.svg +13 -0
- package/ui.icons-metronic/Bookmark.svg +7 -0
- package/ui.icons-metronic/Border.svg +7 -0
- package/ui.icons-metronic/Bottle1.svg +8 -0
- package/ui.icons-metronic/Bottle2.svg +8 -0
- package/ui.icons-metronic/Bowl.svg +8 -0
- package/ui.icons-metronic/Box.svg +8 -0
- package/ui.icons-metronic/Box1.svg +8 -0
- package/ui.icons-metronic/Box2.svg +8 -0
- package/ui.icons-metronic/Box3.svg +8 -0
- package/ui.icons-metronic/Brassiere.svg +7 -0
- package/ui.icons-metronic/Bread.svg +8 -0
- package/ui.icons-metronic/Briefcase.svg +8 -0
- package/ui.icons-metronic/Broom.svg +8 -0
- package/ui.icons-metronic/Brush.svg +8 -0
- package/ui.icons-metronic/Brush2.svg +8 -0
- package/ui.icons-metronic/Bucket.svg +8 -0
- package/ui.icons-metronic/Bucket2.svg +8 -0
- package/ui.icons-metronic/Building.svg +9 -0
- package/ui.icons-metronic/Bulb1.svg +10 -0
- package/ui.icons-metronic/Bulb2.svg +10 -0
- package/ui.icons-metronic/Bullet-list.svg +8 -0
- package/ui.icons-metronic/Burger.svg +9 -0
- package/ui.icons-metronic/CD.svg +8 -0
- package/ui.icons-metronic/CMD.svg +7 -0
- package/ui.icons-metronic/CPU1.svg +14 -0
- package/ui.icons-metronic/CPU2.svg +20 -0
- package/ui.icons-metronic/Cake.svg +9 -0
- package/ui.icons-metronic/Calculator.svg +8 -0
- package/ui.icons-metronic/Call#1.svg +7 -0
- package/ui.icons-metronic/Call.svg +7 -0
- package/ui.icons-metronic/Camera.svg +9 -0
- package/ui.icons-metronic/Cap-1.svg +8 -0
- package/ui.icons-metronic/Cap-2.svg +7 -0
- package/ui.icons-metronic/Cap-3.svg +8 -0
- package/ui.icons-metronic/Cap.svg +8 -0
- package/ui.icons-metronic/Cardboard-vr.svg +8 -0
- package/ui.icons-metronic/Carrot.svg +10 -0
- package/ui.icons-metronic/Cart1.svg +8 -0
- package/ui.icons-metronic/Cart2.svg +8 -0
- package/ui.icons-metronic/Cart3.svg +8 -0
- package/ui.icons-metronic/Cassete.svg +9 -0
- package/ui.icons-metronic/Celcium.svg +8 -0
- package/ui.icons-metronic/Chair1.svg +8 -0
- package/ui.icons-metronic/Chair2.svg +8 -0
- package/ui.icons-metronic/Chart-bar1.svg +10 -0
- package/ui.icons-metronic/Chart-bar2.svg +10 -0
- package/ui.icons-metronic/Chart-bar3.svg +10 -0
- package/ui.icons-metronic/Chart-line1.svg +8 -0
- package/ui.icons-metronic/Chart-line2.svg +8 -0
- package/ui.icons-metronic/Chart-pie.svg +8 -0
- package/ui.icons-metronic/Chat-check.svg +8 -0
- package/ui.icons-metronic/Chat-error.svg +8 -0
- package/ui.icons-metronic/Chat-locked.svg +8 -0
- package/ui.icons-metronic/Chat-smile.svg +8 -0
- package/ui.icons-metronic/Chat1.svg +8 -0
- package/ui.icons-metronic/Chat2.svg +8 -0
- package/ui.icons-metronic/Chat4.svg +7 -0
- package/ui.icons-metronic/Chat5.svg +8 -0
- package/ui.icons-metronic/Chat6.svg +8 -0
- package/ui.icons-metronic/Check.svg +7 -0
- package/ui.icons-metronic/Cheese.svg +8 -0
- package/ui.icons-metronic/Chef.svg +8 -0
- package/ui.icons-metronic/Chicken.svg +10 -0
- package/ui.icons-metronic/Circle.svg +7 -0
- package/ui.icons-metronic/Clip.svg +7 -0
- package/ui.icons-metronic/Clipboard-check.svg +9 -0
- package/ui.icons-metronic/Clipboard-list.svg +14 -0
- package/ui.icons-metronic/Clipboard.svg +10 -0
- package/ui.icons-metronic/Clock.svg +8 -0
- package/ui.icons-metronic/Close.svg +9 -0
- package/ui.icons-metronic/Cloud-download.svg +8 -0
- package/ui.icons-metronic/Cloud-fog.svg +8 -0
- package/ui.icons-metronic/Cloud-sun.svg +8 -0
- package/ui.icons-metronic/Cloud-upload.svg +8 -0
- package/ui.icons-metronic/Cloud-wind.svg +9 -0
- package/ui.icons-metronic/Cloud1.svg +7 -0
- package/ui.icons-metronic/Cloud2.svg +8 -0
- package/ui.icons-metronic/Cloudy-night.svg +8 -0
- package/ui.icons-metronic/Cloudy.svg +8 -0
- package/ui.icons-metronic/Code.svg +8 -0
- package/ui.icons-metronic/Code2.svg +7 -0
- package/ui.icons-metronic/Coffee1.svg +11 -0
- package/ui.icons-metronic/Coffee2.svg +9 -0
- package/ui.icons-metronic/Color-profile.svg +8 -0
- package/ui.icons-metronic/Color.svg +7 -0
- package/ui.icons-metronic/Commit.svg +8 -0
- package/ui.icons-metronic/Commode1.svg +8 -0
- package/ui.icons-metronic/Commode2.svg +8 -0
- package/ui.icons-metronic/Compass.svg +7 -0
- package/ui.icons-metronic/Compass2.svg +8 -0
- package/ui.icons-metronic/Compilation.svg +11 -0
- package/ui.icons-metronic/Compiled-file.svg +11 -0
- package/ui.icons-metronic/Compiling.svg +8 -0
- package/ui.icons-metronic/Component.svg +7 -0
- package/ui.icons-metronic/Contact1.svg +8 -0
- package/ui.icons-metronic/Control.svg +7 -0
- package/ui.icons-metronic/Cookie.svg +10 -0
- package/ui.icons-metronic/Cooking-book.svg +14 -0
- package/ui.icons-metronic/Cooking-pot.svg +8 -0
- package/ui.icons-metronic/Couch.svg +8 -0
- package/ui.icons-metronic/Credit-card.svg +9 -0
- package/ui.icons-metronic/Crop.svg +8 -0
- package/ui.icons-metronic/Crown.svg +8 -0
- package/ui.icons-metronic/Cupboard.svg +8 -0
- package/ui.icons-metronic/Cursor.svg +7 -0
- package/ui.icons-metronic/Curtains.svg +8 -0
- package/ui.icons-metronic/Cutting board.svg +8 -0
- package/ui.icons-metronic/DVD.svg +8 -0
- package/ui.icons-metronic/Day-rain.svg +8 -0
- package/ui.icons-metronic/Deer.svg +8 -0
- package/ui.icons-metronic/Delete-user.svg +8 -0
- package/ui.icons-metronic/Deleted-file.svg +8 -0
- package/ui.icons-metronic/Deleted-folder.svg +8 -0
- package/ui.icons-metronic/Diagnostics.svg +9 -0
- package/ui.icons-metronic/Dial-numbers.svg +15 -0
- package/ui.icons-metronic/Difference.svg +8 -0
- package/ui.icons-metronic/Dinner.svg +11 -0
- package/ui.icons-metronic/Dinner2.svg +8 -0
- package/ui.icons-metronic/Direction1.svg +7 -0
- package/ui.icons-metronic/Direction2.svg +7 -0
- package/ui.icons-metronic/Dish.svg +8 -0
- package/ui.icons-metronic/Dishes.svg +8 -0
- package/ui.icons-metronic/Dislike.svg +8 -0
- package/ui.icons-metronic/Display1.svg +8 -0
- package/ui.icons-metronic/Display2.svg +9 -0
- package/ui.icons-metronic/Display3.svg +9 -0
- package/ui.icons-metronic/Dollar.svg +9 -0
- package/ui.icons-metronic/Done-circle.svg +8 -0
- package/ui.icons-metronic/Door-open.svg +8 -0
- package/ui.icons-metronic/Double-check.svg +8 -0
- package/ui.icons-metronic/Down-2.svg +8 -0
- package/ui.icons-metronic/Down-left.svg +8 -0
- package/ui.icons-metronic/Down-right.svg +8 -0
- package/ui.icons-metronic/Download.svg +9 -0
- package/ui.icons-metronic/DownloadedFile.svg +8 -0
- package/ui.icons-metronic/Downloads-folder.svg +8 -0
- package/ui.icons-metronic/Dress.svg +8 -0
- package/ui.icons-metronic/Duplicate.svg +8 -0
- package/ui.icons-metronic/Earth.svg +8 -0
- package/ui.icons-metronic/Edit-text.svg +8 -0
- package/ui.icons-metronic/Edit.svg +8 -0
- package/ui.icons-metronic/Edit2.svg +7 -0
- package/ui.icons-metronic/Eject.svg +8 -0
- package/ui.icons-metronic/Equalizer.svg +10 -0
- package/ui.icons-metronic/Eraser.svg +7 -0
- package/ui.icons-metronic/Error-circle.svg +8 -0
- package/ui.icons-metronic/Euro.svg +8 -0
- package/ui.icons-metronic/Exchange.svg +10 -0
- package/ui.icons-metronic/Expand-arrows.svg +8 -0
- package/ui.icons-metronic/Export.svg +9 -0
- package/ui.icons-metronic/Fahrenheit.svg +8 -0
- package/ui.icons-metronic/Fan.svg +9 -0
- package/ui.icons-metronic/File-cloud.svg +8 -0
- package/ui.icons-metronic/File-done.svg +8 -0
- package/ui.icons-metronic/File-minus.svg +8 -0
- package/ui.icons-metronic/File-plus.svg +8 -0
- package/ui.icons-metronic/File.svg +9 -0
- package/ui.icons-metronic/Filter.svg +7 -0
- package/ui.icons-metronic/Fire.svg +7 -0
- package/ui.icons-metronic/Fireplace.svg +8 -0
- package/ui.icons-metronic/Fish.svg +8 -0
- package/ui.icons-metronic/Flag.svg +8 -0
- package/ui.icons-metronic/Flashlight.svg +8 -0
- package/ui.icons-metronic/Flatten.svg +8 -0
- package/ui.icons-metronic/Flip-horizontal.svg +9 -0
- package/ui.icons-metronic/Flip-vertical.svg +9 -0
- package/ui.icons-metronic/Flower1.svg +10 -0
- package/ui.icons-metronic/Flower2.svg +11 -0
- package/ui.icons-metronic/Flower3.svg +9 -0
- package/ui.icons-metronic/Fog.svg +12 -0
- package/ui.icons-metronic/Folder-check.svg +8 -0
- package/ui.icons-metronic/Folder-cloud.svg +8 -0
- package/ui.icons-metronic/Folder-error.svg +8 -0
- package/ui.icons-metronic/Folder-heart.svg +8 -0
- package/ui.icons-metronic/Folder-minus.svg +8 -0
- package/ui.icons-metronic/Folder-plus.svg +8 -0
- package/ui.icons-metronic/Folder-solid.svg +7 -0
- package/ui.icons-metronic/Folder-star.svg +8 -0
- package/ui.icons-metronic/Folder-thunder.svg +8 -0
- package/ui.icons-metronic/Folder.svg +7 -0
- package/ui.icons-metronic/Folder2.svg +7 -0
- package/ui.icons-metronic/Font.svg +8 -0
- package/ui.icons-metronic/Fork-spoon-knife.svg +12 -0
- package/ui.icons-metronic/Fork-spoon.svg +10 -0
- package/ui.icons-metronic/Fork.svg +8 -0
- package/ui.icons-metronic/Forward.svg +7 -0
- package/ui.icons-metronic/Forward2.svg +8 -0
- package/ui.icons-metronic/French Bread.svg +7 -0
- package/ui.icons-metronic/Fridge.svg +7 -0
- package/ui.icons-metronic/Frying-pan.svg +8 -0
- package/ui.icons-metronic/Gameboy.svg +8 -0
- package/ui.icons-metronic/Gamepad1.svg +8 -0
- package/ui.icons-metronic/Gamepad2.svg +8 -0
- package/ui.icons-metronic/Gas-stove.svg +8 -0
- package/ui.icons-metronic/Generator.svg +10 -0
- package/ui.icons-metronic/Gift.svg +8 -0
- package/ui.icons-metronic/Git1.svg +9 -0
- package/ui.icons-metronic/Git2.svg +12 -0
- package/ui.icons-metronic/Git3.svg +10 -0
- package/ui.icons-metronic/Git4.svg +10 -0
- package/ui.icons-metronic/Github.svg +8 -0
- package/ui.icons-metronic/Glass-martini.svg +8 -0
- package/ui.icons-metronic/Globe.svg +8 -0
- package/ui.icons-metronic/Grater.svg +8 -0
- package/ui.icons-metronic/Group-chat.svg +8 -0
- package/ui.icons-metronic/Group-folders.svg +8 -0
- package/ui.icons-metronic/Group.svg +8 -0
- package/ui.icons-metronic/H1.svg +8 -0
- package/ui.icons-metronic/H2.svg +8 -0
- package/ui.icons-metronic/Half-heart.svg +8 -0
- package/ui.icons-metronic/Half-star.svg +8 -0
- package/ui.icons-metronic/Hanger.svg +7 -0
- package/ui.icons-metronic/Hard-drive.svg +8 -0
- package/ui.icons-metronic/Hat.svg +8 -0
- package/ui.icons-metronic/Headphones.svg +8 -0
- package/ui.icons-metronic/Heart.svg +7 -0
- package/ui.icons-metronic/Hidden.svg +9 -0
- package/ui.icons-metronic/Highvoltage.svg +7 -0
- package/ui.icons-metronic/Home-heart.svg +8 -0
- package/ui.icons-metronic/Home.svg +7 -0
- package/ui.icons-metronic/Homepod.svg +8 -0
- package/ui.icons-metronic/Horizontal.svg +8 -0
- package/ui.icons-metronic/Hummer.svg +8 -0
- package/ui.icons-metronic/Hummer2.svg +9 -0
- package/ui.icons-metronic/Ice-cream1.svg +8 -0
- package/ui.icons-metronic/Ice-cream2.svg +8 -0
- package/ui.icons-metronic/Image.svg +7 -0
- package/ui.icons-metronic/Import.svg +9 -0
- package/ui.icons-metronic/Incoming-box.svg +9 -0
- package/ui.icons-metronic/Incoming-call.svg +8 -0
- package/ui.icons-metronic/Incoming-mail.svg +8 -0
- package/ui.icons-metronic/Info-circle.svg +9 -0
- package/ui.icons-metronic/Interselect.svg +8 -0
- package/ui.icons-metronic/Iron.svg +8 -0
- package/ui.icons-metronic/Itallic.svg +7 -0
- package/ui.icons-metronic/Join-1.svg +8 -0
- package/ui.icons-metronic/Join-2.svg +8 -0
- package/ui.icons-metronic/Join-3.svg +8 -0
- package/ui.icons-metronic/Kettle.svg +8 -0
- package/ui.icons-metronic/Key.svg +8 -0
- package/ui.icons-metronic/Keyboard.svg +8 -0
- package/ui.icons-metronic/Kitchen-scale.svg +8 -0
- package/ui.icons-metronic/Knife1.svg +8 -0
- package/ui.icons-metronic/Knife2.svg +8 -0
- package/ui.icons-metronic/KnifeAndFork1.svg +10 -0
- package/ui.icons-metronic/KnifeAndFork2.svg +10 -0
- package/ui.icons-metronic/LTE1.svg +8 -0
- package/ui.icons-metronic/LTE2.svg +8 -0
- package/ui.icons-metronic/Ladder.svg +8 -0
- package/ui.icons-metronic/Ladle.svg +8 -0
- package/ui.icons-metronic/Lamp1.svg +10 -0
- package/ui.icons-metronic/Lamp2.svg +9 -0
- package/ui.icons-metronic/Laptop-macbook.svg +8 -0
- package/ui.icons-metronic/Laptop.svg +8 -0
- package/ui.icons-metronic/Layers.svg +8 -0
- package/ui.icons-metronic/Layout-3d.svg +8 -0
- package/ui.icons-metronic/Layout-4-blocks.svg +8 -0
- package/ui.icons-metronic/Layout-arrange.svg +8 -0
- package/ui.icons-metronic/Layout-grid.svg +8 -0
- package/ui.icons-metronic/Layout-horizontal.svg +8 -0
- package/ui.icons-metronic/Layout-left-panel-1.svg +8 -0
- package/ui.icons-metronic/Layout-left-panel-2.svg +8 -0
- package/ui.icons-metronic/Layout-right-panel-1.svg +8 -0
- package/ui.icons-metronic/Layout-right-panel-2.svg +8 -0
- package/ui.icons-metronic/Layout-top-panel-1.svg +8 -0
- package/ui.icons-metronic/Layout-top-panel-2.svg +8 -0
- package/ui.icons-metronic/Layout-top-panel-3.svg +8 -0
- package/ui.icons-metronic/Layout-top-panel-4.svg +8 -0
- package/ui.icons-metronic/Layout-top-panel-5.svg +8 -0
- package/ui.icons-metronic/Layout-top-panel-6.svg +8 -0
- package/ui.icons-metronic/Layout-vertical.svg +8 -0
- package/ui.icons-metronic/Left 3.svg +8 -0
- package/ui.icons-metronic/Left-2.svg +8 -0
- package/ui.icons-metronic/Left-circle.svg +8 -0
- package/ui.icons-metronic/Library.svg +8 -0
- package/ui.icons-metronic/Like.svg +8 -0
- package/ui.icons-metronic/Line.svg +9 -0
- package/ui.icons-metronic/Loader.svg +9 -0
- package/ui.icons-metronic/Loading.svg +9 -0
- package/ui.icons-metronic/Location-arrow.svg +7 -0
- package/ui.icons-metronic/Lock-circle.svg +8 -0
- package/ui.icons-metronic/Lock-overturning.svg +8 -0
- package/ui.icons-metronic/Lock.svg +13 -0
- package/ui.icons-metronic/Locked-folder.svg +8 -0
- package/ui.icons-metronic/MC.svg +8 -0
- package/ui.icons-metronic/Magic.svg +8 -0
- package/ui.icons-metronic/Mail-at.svg +7 -0
- package/ui.icons-metronic/Mail-attachment.svg +8 -0
- package/ui.icons-metronic/Mail-box.svg +8 -0
- package/ui.icons-metronic/Mail-error.svg +8 -0
- package/ui.icons-metronic/Mail-heart.svg +8 -0
- package/ui.icons-metronic/Mail-locked.svg +8 -0
- package/ui.icons-metronic/Mail-notification.svg +8 -0
- package/ui.icons-metronic/Mail-opened.svg +8 -0
- package/ui.icons-metronic/Mail-unocked.svg +8 -0
- package/ui.icons-metronic/Mail.svg +7 -0
- package/ui.icons-metronic/Mailbox.svg +8 -0
- package/ui.icons-metronic/Marker1.svg +7 -0
- package/ui.icons-metronic/Marker2.svg +7 -0
- package/ui.icons-metronic/Mask.svg +8 -0
- package/ui.icons-metronic/Media-folder.svg +8 -0
- package/ui.icons-metronic/Media-library1.svg +10 -0
- package/ui.icons-metronic/Media-library2.svg +8 -0
- package/ui.icons-metronic/Media-library3.svg +14 -0
- package/ui.icons-metronic/Media.svg +8 -0
- package/ui.icons-metronic/Menu.svg +8 -0
- package/ui.icons-metronic/Menu2.svg +4 -0
- package/ui.icons-metronic/Mic.svg +8 -0
- package/ui.icons-metronic/Midi.svg +13 -0
- package/ui.icons-metronic/Minus.svg +8 -0
- package/ui.icons-metronic/Minus2.svg +6 -0
- package/ui.icons-metronic/Mirror.svg +8 -0
- package/ui.icons-metronic/Miso-soup.svg +8 -0
- package/ui.icons-metronic/Missed-call.svg +8 -0
- package/ui.icons-metronic/Mixer.svg +8 -0
- package/ui.icons-metronic/Money.svg +8 -0
- package/ui.icons-metronic/Moon.svg +7 -0
- package/ui.icons-metronic/Mouse.svg +9 -0
- package/ui.icons-metronic/Movie-Lane2.svg +8 -0
- package/ui.icons-metronic/Movie-lane1.svg +8 -0
- package/ui.icons-metronic/Music-cloud.svg +8 -0
- package/ui.icons-metronic/Music-note.svg +7 -0
- package/ui.icons-metronic/Music.svg +8 -0
- package/ui.icons-metronic/Music2.svg +7 -0
- package/ui.icons-metronic/Mute.svg +8 -0
- package/ui.icons-metronic/Next.svg +8 -0
- package/ui.icons-metronic/Night-fog.svg +8 -0
- package/ui.icons-metronic/Night-rain.svg +8 -0
- package/ui.icons-metronic/Notification2.svg +8 -0
- package/ui.icons-metronic/Notifications1.svg +7 -0
- package/ui.icons-metronic/Option.svg +8 -0
- package/ui.icons-metronic/Orange.svg +8 -0
- package/ui.icons-metronic/Other1.svg +9 -0
- package/ui.icons-metronic/Other2.svg +9 -0
- package/ui.icons-metronic/Outgoing-box.svg +9 -0
- package/ui.icons-metronic/Outgoing-call.svg +8 -0
- package/ui.icons-metronic/Outgoing-mail.svg +8 -0
- package/ui.icons-metronic/Outlet.svg +8 -0
- package/ui.icons-metronic/Panties.svg +7 -0
- package/ui.icons-metronic/Pantone.svg +9 -0
- package/ui.icons-metronic/Paragraph.svg +7 -0
- package/ui.icons-metronic/Patch.svg +9 -0
- package/ui.icons-metronic/Pause.svg +7 -0
- package/ui.icons-metronic/Pen-tool-vector.svg +8 -0
- package/ui.icons-metronic/PenAndRuller.svg +8 -0
- package/ui.icons-metronic/Pencil.svg +8 -0
- package/ui.icons-metronic/Phone.svg +9 -0
- package/ui.icons-metronic/Picker.svg +8 -0
- package/ui.icons-metronic/Picture.svg +10 -0
- package/ui.icons-metronic/Pictures1.svg +10 -0
- package/ui.icons-metronic/Pictures2.svg +12 -0
- package/ui.icons-metronic/Pixels.svg +12 -0
- package/ui.icons-metronic/Pizza.svg +10 -0
- package/ui.icons-metronic/Play.svg +7 -0
- package/ui.icons-metronic/Playlist1.svg +8 -0
- package/ui.icons-metronic/Playlist2.svg +8 -0
- package/ui.icons-metronic/Plus.svg +8 -0
- package/ui.icons-metronic/Plus2.svg +7 -0
- package/ui.icons-metronic/Polygon.svg +7 -0
- package/ui.icons-metronic/Position.svg +7 -0
- package/ui.icons-metronic/Position2.svg +9 -0
- package/ui.icons-metronic/Pound.svg +8 -0
- package/ui.icons-metronic/Price1.svg +7 -0
- package/ui.icons-metronic/Price2.svg +11 -0
- package/ui.icons-metronic/Printer.svg +8 -0
- package/ui.icons-metronic/Protected-file.svg +8 -0
- package/ui.icons-metronic/Puzzle.svg +7 -0
- package/ui.icons-metronic/Question-circle.svg +8 -0
- package/ui.icons-metronic/Quote1.svg +8 -0
- package/ui.icons-metronic/Quote2.svg +8 -0
- package/ui.icons-metronic/RSS.svg +9 -0
- package/ui.icons-metronic/Radio.svg +11 -0
- package/ui.icons-metronic/Rain1.svg +8 -0
- package/ui.icons-metronic/Rain2.svg +8 -0
- package/ui.icons-metronic/Rain5.svg +8 -0
- package/ui.icons-metronic/Rainbow.svg +9 -0
- package/ui.icons-metronic/Range-hood.svg +8 -0
- package/ui.icons-metronic/Readed-mail.svg +8 -0
- package/ui.icons-metronic/Rec.svg +7 -0
- package/ui.icons-metronic/Rectangle.svg +7 -0
- package/ui.icons-metronic/Redo.svg +7 -0
- package/ui.icons-metronic/Repeat-one.svg +8 -0
- package/ui.icons-metronic/Repeat.svg +8 -0
- package/ui.icons-metronic/Reply-all.svg +8 -0
- package/ui.icons-metronic/Reply.svg +7 -0
- package/ui.icons-metronic/Right 3.svg +8 -0
- package/ui.icons-metronic/Right-2.svg +8 -0
- package/ui.icons-metronic/Right-circle.svg +8 -0
- package/ui.icons-metronic/Right.svg +7 -0
- package/ui.icons-metronic/Road-Cone.svg +8 -0
- package/ui.icons-metronic/Roller.svg +9 -0
- package/ui.icons-metronic/Rolling-pin.svg +8 -0
- package/ui.icons-metronic/Rouble.svg +8 -0
- package/ui.icons-metronic/Roulette.svg +8 -0
- package/ui.icons-metronic/Route.svg +9 -0
- package/ui.icons-metronic/Router1.svg +8 -0
- package/ui.icons-metronic/Router2.svg +8 -0
- package/ui.icons-metronic/Ruller.svg +7 -0
- package/ui.icons-metronic/SD-card.svg +7 -0
- package/ui.icons-metronic/Sad.svg +8 -0
- package/ui.icons-metronic/Safe-chat.svg +8 -0
- package/ui.icons-metronic/Safe.svg +8 -0
- package/ui.icons-metronic/Sale1.svg +8 -0
- package/ui.icons-metronic/Sale2.svg +10 -0
- package/ui.icons-metronic/Saturation.svg +8 -0
- package/ui.icons-metronic/Saucepan.svg +8 -0
- package/ui.icons-metronic/Save.svg +8 -0
- package/ui.icons-metronic/Scale.svg +8 -0
- package/ui.icons-metronic/Scissors.svg +8 -0
- package/ui.icons-metronic/Screwdriver.svg +8 -0
- package/ui.icons-metronic/Search.svg +8 -0
- package/ui.icons-metronic/Select.svg +8 -0
- package/ui.icons-metronic/Selected-file.svg +8 -0
- package/ui.icons-metronic/Send.svg +7 -0
- package/ui.icons-metronic/Sending mail.svg +8 -0
- package/ui.icons-metronic/Sending.svg +8 -0
- package/ui.icons-metronic/Server.svg +9 -0
- package/ui.icons-metronic/Settings#3.svg +8 -0
- package/ui.icons-metronic/Settings-1.svg +8 -0
- package/ui.icons-metronic/Settings-2.svg +7 -0
- package/ui.icons-metronic/Settings.svg +8 -0
- package/ui.icons-metronic/Settings4.svg +8 -0
- package/ui.icons-metronic/Share.svg +8 -0
- package/ui.icons-metronic/Share2.svg +10 -0
- package/ui.icons-metronic/Shield-check.svg +8 -0
- package/ui.icons-metronic/Shield-disabled.svg +8 -0
- package/ui.icons-metronic/Shield-protected.svg +8 -0
- package/ui.icons-metronic/Shield-thunder.svg +8 -0
- package/ui.icons-metronic/Shield-user.svg +9 -0
- package/ui.icons-metronic/Shift.svg +7 -0
- package/ui.icons-metronic/Shirt.svg +8 -0
- package/ui.icons-metronic/Shoes.svg +8 -0
- package/ui.icons-metronic/Shorts.svg +7 -0
- package/ui.icons-metronic/Shovel.svg +8 -0
- package/ui.icons-metronic/Shovel2.svg +8 -0
- package/ui.icons-metronic/Shuffle.svg +8 -0
- package/ui.icons-metronic/Shutdown.svg +8 -0
- package/ui.icons-metronic/Sieve.svg +8 -0
- package/ui.icons-metronic/Sign-in.svg +9 -0
- package/ui.icons-metronic/Sign-out.svg +9 -0
- package/ui.icons-metronic/Size.svg +8 -0
- package/ui.icons-metronic/Sketch.svg +8 -0
- package/ui.icons-metronic/Smile.svg +8 -0
- package/ui.icons-metronic/Sneakers.svg +8 -0
- package/ui.icons-metronic/Snoozed-mail.svg +8 -0
- package/ui.icons-metronic/Snow.svg +8 -0
- package/ui.icons-metronic/Snow1.svg +8 -0
- package/ui.icons-metronic/Snow2.svg +8 -0
- package/ui.icons-metronic/Snow3.svg +8 -0
- package/ui.icons-metronic/Socket-eu.svg +7 -0
- package/ui.icons-metronic/Socket-us.svg +7 -0
- package/ui.icons-metronic/Socks.svg +8 -0
- package/ui.icons-metronic/Sort1.svg +8 -0
- package/ui.icons-metronic/Sort2.svg +7 -0
- package/ui.icons-metronic/Sort3.svg +7 -0
- package/ui.icons-metronic/Spam.svg +7 -0
- package/ui.icons-metronic/Spatula.svg +8 -0
- package/ui.icons-metronic/Speaker.svg +8 -0
- package/ui.icons-metronic/Spoon.svg +9 -0
- package/ui.icons-metronic/Spy.svg +8 -0
- package/ui.icons-metronic/Stairs.svg +7 -0
- package/ui.icons-metronic/Stamp.svg +8 -0
- package/ui.icons-metronic/Star-outlined.svg +6 -0
- package/ui.icons-metronic/Star.svg +7 -0
- package/ui.icons-metronic/Stop.svg +7 -0
- package/ui.icons-metronic/Storm.svg +8 -0
- package/ui.icons-metronic/Strikethrough.svg +8 -0
- package/ui.icons-metronic/Substract.svg +8 -0
- package/ui.icons-metronic/Sun-fog.svg +8 -0
- package/ui.icons-metronic/Sun-glasses.svg +8 -0
- package/ui.icons-metronic/Sun.svg +8 -0
- package/ui.icons-metronic/Suset1.svg +8 -0
- package/ui.icons-metronic/Suset2.svg +8 -0
- package/ui.icons-metronic/Sushi.svg +8 -0
- package/ui.icons-metronic/Swiss-knife.svg +8 -0
- package/ui.icons-metronic/T-Shirt.svg +7 -0
- package/ui.icons-metronic/TV1.svg +9 -0
- package/ui.icons-metronic/TV2.svg +8 -0
- package/ui.icons-metronic/Tablet.svg +8 -0
- package/ui.icons-metronic/Target.svg +8 -0
- package/ui.icons-metronic/Temperature-empty.svg +7 -0
- package/ui.icons-metronic/Temperature-full.svg +7 -0
- package/ui.icons-metronic/Temperature-half.svg +7 -0
- package/ui.icons-metronic/Terminal.svg +8 -0
- package/ui.icons-metronic/Text-height.svg +8 -0
- package/ui.icons-metronic/Text-width.svg +8 -0
- package/ui.icons-metronic/Text.svg +7 -0
- package/ui.icons-metronic/Thumbtack.svg +8 -0
- package/ui.icons-metronic/Thunder-circle.svg +8 -0
- package/ui.icons-metronic/Thunder-move.svg +8 -0
- package/ui.icons-metronic/Thunder-night.svg +8 -0
- package/ui.icons-metronic/Thunder.svg +7 -0
- package/ui.icons-metronic/Thunder2.svg +8 -0
- package/ui.icons-metronic/Ticket.svg +7 -0
- package/ui.icons-metronic/Tie.svg +8 -0
- package/ui.icons-metronic/Time-schedule.svg +8 -0
- package/ui.icons-metronic/Timer.svg +10 -0
- package/ui.icons-metronic/Toilet.svg +8 -0
- package/ui.icons-metronic/Tools.svg +8 -0
- package/ui.icons-metronic/Towel.svg +7 -0
- package/ui.icons-metronic/Trash.svg +8 -0
- package/ui.icons-metronic/Trash2.svg +8 -0
- package/ui.icons-metronic/Triangle.svg +7 -0
- package/ui.icons-metronic/Two-bottles.svg +8 -0
- package/ui.icons-metronic/USB.svg +9 -0
- package/ui.icons-metronic/Umbrella.svg +8 -0
- package/ui.icons-metronic/Underline.svg +8 -0
- package/ui.icons-metronic/Undo.svg +7 -0
- package/ui.icons-metronic/Union.svg +7 -0
- package/ui.icons-metronic/Unlock.svg +13 -0
- package/ui.icons-metronic/Up-2.svg +8 -0
- package/ui.icons-metronic/Up-down.svg +10 -0
- package/ui.icons-metronic/Up-left.svg +8 -0
- package/ui.icons-metronic/Up-right.svg +8 -0
- package/ui.icons-metronic/Update.svg +7 -0
- package/ui.icons-metronic/Upload-folder.svg +8 -0
- package/ui.icons-metronic/Upload.svg +9 -0
- package/ui.icons-metronic/Uploaded-file.svg +8 -0
- package/ui.icons-metronic/Urgent-mail.svg +8 -0
- package/ui.icons-metronic/Usb-storage.svg +8 -0
- package/ui.icons-metronic/User-folder.svg +9 -0
- package/ui.icons-metronic/User.svg +8 -0
- package/ui.icons-metronic/Vertical.svg +8 -0
- package/ui.icons-metronic/Video-camera.svg +8 -0
- package/ui.icons-metronic/Visible.svg +8 -0
- package/ui.icons-metronic/Volume-down.svg +8 -0
- package/ui.icons-metronic/Volume-full.svg +8 -0
- package/ui.icons-metronic/Volume-half.svg +8 -0
- package/ui.icons-metronic/Volume-up.svg +8 -0
- package/ui.icons-metronic/Vynil.svg +8 -0
- package/ui.icons-metronic/Waiting.svg +7 -0
- package/ui.icons-metronic/Wallet.svg +9 -0
- package/ui.icons-metronic/Wallet2.svg +8 -0
- package/ui.icons-metronic/Wallet3.svg +9 -0
- package/ui.icons-metronic/Warning-1-circle.svg +9 -0
- package/ui.icons-metronic/Warning-2.svg +9 -0
- package/ui.icons-metronic/Washer.svg +8 -0
- package/ui.icons-metronic/Watch1.svg +10 -0
- package/ui.icons-metronic/Watch2.svg +10 -0
- package/ui.icons-metronic/Water-mixer.svg +9 -0
- package/ui.icons-metronic/Weight1.svg +8 -0
- package/ui.icons-metronic/Weight2.svg +8 -0
- package/ui.icons-metronic/Wi-fi.svg +8 -0
- package/ui.icons-metronic/Wind.svg +8 -0
- package/ui.icons-metronic/Wine.svg +8 -0
- package/ui.icons-metronic/Wood-horse.svg +7 -0
- package/ui.icons-metronic/Wood1.svg +8 -0
- package/ui.icons-metronic/Wood2.svg +8 -0
- package/ui.icons-metronic/Write.svg +8 -0
- package/ui.icons-metronic/Youtube.svg +8 -0
- package/ui.icons-metronic/ZoomMinus.svg +9 -0
- package/ui.icons-metronic/ZoomPlus.svg +9 -0
- package/ui.icons-metronic/air-dryer.svg +8 -0
- package/ui.icons-metronic/iMac.svg +9 -0
- package/ui.icons-metronic/iPhone-X.svg +8 -0
- package/ui.icons-metronic/iPhone-back.svg +7 -0
- package/ui.icons-metronic/iPhone-x-back.svg +7 -0
- package/ui.icons-metronic/index.js +4 -0
- package/ui.image-avatar/default-avatar.png +0 -0
- package/ui.image-avatar/index.stories.js +106 -0
- package/ui.image-avatar/index.vue +253 -0
- package/ui.image-icon/cli.mjs +159 -0
- package/ui.image-icon/index.stories.js +129 -0
- package/ui.image-icon/index.vue +511 -0
- package/ui.image-logo/index.stories.js +84 -0
- package/ui.image-logo/index.vue +184 -0
- package/ui.navigation-pagination/index.stories.js +35 -0
- package/ui.navigation-pagination/index.vue +115 -0
- package/ui.navigation-stepper/index.stories.js +29 -0
- package/ui.navigation-stepper/index.vue +129 -0
- package/ui.navigation-tab/index.stories.js +61 -0
- package/ui.navigation-tab/index.vue +112 -0
- package/ui.navigation-tabs/index.stories.js +73 -0
- package/ui.navigation-tabs/index.vue +119 -0
- package/ui.other-dot/index.stories.js +77 -0
- package/ui.other-dot/index.vue +100 -0
- package/ui.other-loader/index.stories.js +77 -0
- package/ui.other-loader/index.vue +185 -0
- package/ui.text-alert/index.stories.js +124 -0
- package/ui.text-alert/index.vue +236 -0
- package/ui.text-block/index.stories.js +111 -0
- package/ui.text-block/index.vue +137 -0
- package/ui.text-empty/configs/default.config.js +28 -0
- package/ui.text-empty/index.stories.js +106 -0
- package/ui.text-empty/index.vue +95 -0
- package/ui.text-empty/services/variant.service.js +22 -0
- package/ui.text-field/index.stories.js +60 -0
- package/ui.text-field/index.vue +109 -0
- package/ui.text-file/index.stories.js +28 -0
- package/ui.text-file/index.vue +102 -0
- package/ui.text-files/index.stories.js +31 -0
- package/ui.text-files/index.vue +64 -0
- package/ui.text-header/index.stories.js +110 -0
- package/ui.text-header/index.vue +237 -0
- package/ui.text-money/assets/credit.svg +7 -0
- package/ui.text-money/assets/debit.svg +12 -0
- package/ui.text-money/index.stories.js +263 -0
- package/ui.text-money/index.vue +523 -0
- package/ui.text-tag/index.stories.js +90 -0
- package/ui.text-tag/index.vue +178 -0
- package/web-types.json +6320 -0
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import axios from "axios";
|
|
2
|
+
import JwtServiceDefault from "vueless/service.jwt";
|
|
3
|
+
import NotifyServiceDefault from "vueless/service.notify";
|
|
4
|
+
import I18nServiceDefault from "vueless/service.i18n";
|
|
5
|
+
|
|
6
|
+
export default class ApiServiceDefault {
|
|
7
|
+
#notify = new NotifyServiceDefault();
|
|
8
|
+
|
|
9
|
+
constructor() {
|
|
10
|
+
this.pendingRequests = [];
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
addPendingRequest(request) {
|
|
14
|
+
this.pendingRequests.push(request);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
removePendingRequest(request) {
|
|
18
|
+
const index = this.pendingRequests.indexOf(request);
|
|
19
|
+
|
|
20
|
+
if (index !== -1) {
|
|
21
|
+
this.pendingRequests.splice(index, 1);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
cancelPendingRequests() {
|
|
26
|
+
this.pendingRequests.forEach((request) => {
|
|
27
|
+
request.cancel();
|
|
28
|
+
});
|
|
29
|
+
this.pendingRequests = [];
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Inits axios
|
|
34
|
+
*/
|
|
35
|
+
init() {
|
|
36
|
+
const restApiPrefix = import.meta.env.VITE_REST_API_PREFIX;
|
|
37
|
+
let apiBaseUrl = import.meta.env.VITE_API_DOMAIN;
|
|
38
|
+
|
|
39
|
+
axios.defaults.baseURL = apiBaseUrl + restApiPrefix;
|
|
40
|
+
|
|
41
|
+
this.setAxiosInterceptors(axios);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Set axios interceptors
|
|
46
|
+
* @param { Object } $axios
|
|
47
|
+
*/
|
|
48
|
+
setAxiosInterceptors($axios) {
|
|
49
|
+
$axios.interceptors.response.use(
|
|
50
|
+
(response) => {
|
|
51
|
+
this.loader("off", response.config.url);
|
|
52
|
+
|
|
53
|
+
return response;
|
|
54
|
+
},
|
|
55
|
+
(error) => {
|
|
56
|
+
const { config, response, message } = error;
|
|
57
|
+
const apiMessage = this.getResponseMessage(response);
|
|
58
|
+
|
|
59
|
+
this.loader("off", error.config.url);
|
|
60
|
+
|
|
61
|
+
// show error notification if it isn't disabled in partiular api request
|
|
62
|
+
if (!config?.disableErrorNotify) {
|
|
63
|
+
if (message === "Network Error") {
|
|
64
|
+
this.#notify.error("networkError");
|
|
65
|
+
} else {
|
|
66
|
+
Array.isArray(apiMessage) && apiMessage.length
|
|
67
|
+
? apiMessage.forEach((code) => this.#notify.error(code))
|
|
68
|
+
: this.#notify.error(apiMessage);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return Promise.reject(error);
|
|
73
|
+
},
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Set the default HTTP request headers
|
|
79
|
+
*/
|
|
80
|
+
setHeaders(withLanguage = true) {
|
|
81
|
+
const authToken = new JwtServiceDefault().getAuthToken();
|
|
82
|
+
const activeLanguage = new I18nServiceDefault().getActiveLanguage();
|
|
83
|
+
|
|
84
|
+
axios.defaults.headers.common["Authorization"] = `Bearer ${authToken}`;
|
|
85
|
+
|
|
86
|
+
if (withLanguage) axios.defaults.headers.common["Language"] = activeLanguage;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Get message code for global notification
|
|
91
|
+
* @param { Object } response
|
|
92
|
+
* @returns String
|
|
93
|
+
*/
|
|
94
|
+
getResponseMessage(response) {
|
|
95
|
+
return response?.data?.message;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Show success notify or set type and message in local storage for display with delay
|
|
100
|
+
* @param { String } message
|
|
101
|
+
* @param { Boolean } withDelay
|
|
102
|
+
*/
|
|
103
|
+
showSuccessNotify(message, withDelay) {
|
|
104
|
+
const type = "success";
|
|
105
|
+
|
|
106
|
+
withDelay ? this.#notify.setDelayed(type, message) : this.#notify.success(message);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Change loaders state (on | off): redeclare this method
|
|
111
|
+
* @param { String } state
|
|
112
|
+
* @param { String } resource
|
|
113
|
+
*/
|
|
114
|
+
loader(state, resource) {
|
|
115
|
+
// eslint-disable-next-line no-console
|
|
116
|
+
if (state === "on") console.log(state, resource);
|
|
117
|
+
// eslint-disable-next-line no-console
|
|
118
|
+
if (state === "off") console.log(state, resource);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Get axios request config (method for redeclaration)
|
|
123
|
+
* @param { Object } settings
|
|
124
|
+
* @returns { Object }
|
|
125
|
+
*/
|
|
126
|
+
getRequestConfig(settings) {
|
|
127
|
+
const { allowMultipleRequests = false, disableErrorNotify = false } = settings;
|
|
128
|
+
|
|
129
|
+
const config = {};
|
|
130
|
+
|
|
131
|
+
if (allowMultipleRequests) {
|
|
132
|
+
config.allowMultipleRequests = allowMultipleRequests;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
if (disableErrorNotify) {
|
|
136
|
+
config.disableErrorNotify = disableErrorNotify;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
return config;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Send the GET HTTP request
|
|
144
|
+
* @param { String } resource
|
|
145
|
+
* @param { Object } settings
|
|
146
|
+
* @returns { IDBRequest<IDBValidKey> | Promise<void> }
|
|
147
|
+
*/
|
|
148
|
+
get(resource, settings = {}) {
|
|
149
|
+
const config = this.getRequestConfig(settings);
|
|
150
|
+
const { withLoader = true, withNotify = false, delaySuccessNotify = false } = settings;
|
|
151
|
+
|
|
152
|
+
if (withLoader) {
|
|
153
|
+
this.loader("on", resource);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
config.cancelToken = new axios.CancelToken((cancel) => {
|
|
157
|
+
this.addPendingRequest({ cancel });
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
return axios.get(resource, config).then((response) => {
|
|
161
|
+
this.removePendingRequest(config.cancelToken);
|
|
162
|
+
|
|
163
|
+
if (withNotify) {
|
|
164
|
+
const message = this.getResponseMessage(response);
|
|
165
|
+
|
|
166
|
+
this.showSuccessNotify(message, delaySuccessNotify);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
return response;
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Set the POST HTTP request
|
|
175
|
+
* @param { String } resource
|
|
176
|
+
* @param params
|
|
177
|
+
* @param { Object } settings
|
|
178
|
+
* @returns { IDBRequest<IDBValidKey> | Promise<void> }
|
|
179
|
+
*/
|
|
180
|
+
post(resource, params = null, settings = {}) {
|
|
181
|
+
const config = this.getRequestConfig(settings);
|
|
182
|
+
const { withLoader = true, withNotify = false, delaySuccessNotify = false } = settings;
|
|
183
|
+
|
|
184
|
+
if (withLoader) {
|
|
185
|
+
this.loader("on", resource);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
return axios.post(resource, params, config).then((response) => {
|
|
189
|
+
if (withNotify) {
|
|
190
|
+
const message = this.getResponseMessage(response);
|
|
191
|
+
|
|
192
|
+
this.showSuccessNotify(message, delaySuccessNotify);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
return response;
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Send the PUT HTTP request
|
|
201
|
+
* @param { String } resource
|
|
202
|
+
* @param params
|
|
203
|
+
* @param { Object } settings
|
|
204
|
+
* @returns {IDBRequest<IDBValidKey> | Promise<void>}
|
|
205
|
+
*/
|
|
206
|
+
put(resource, params = null, settings = {}) {
|
|
207
|
+
const config = this.getRequestConfig(settings);
|
|
208
|
+
const { withLoader = true, withNotify = false, delaySuccessNotify = false } = settings;
|
|
209
|
+
|
|
210
|
+
if (withLoader) {
|
|
211
|
+
this.loader("on", resource);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
return axios.put(resource, params, config).then((response) => {
|
|
215
|
+
if (withNotify) {
|
|
216
|
+
const message = this.getResponseMessage(response);
|
|
217
|
+
|
|
218
|
+
this.showSuccessNotify(message, delaySuccessNotify);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
return response;
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Send the PATCH HTTP request
|
|
227
|
+
* @param { String } resource
|
|
228
|
+
* @param params
|
|
229
|
+
* @param { Object } settings
|
|
230
|
+
* @returns { IDBRequest<IDBValidKey> | Promise<void> }
|
|
231
|
+
*/
|
|
232
|
+
patch(resource, params = null, settings = {}) {
|
|
233
|
+
const config = this.getRequestConfig(settings);
|
|
234
|
+
const { withLoader = true, withNotify = false, delaySuccessNotify = false } = settings;
|
|
235
|
+
|
|
236
|
+
if (withLoader) {
|
|
237
|
+
this.loader("on", resource);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
return axios.patch(resource, params, config).then((response) => {
|
|
241
|
+
if (withNotify) {
|
|
242
|
+
const message = this.getResponseMessage(response);
|
|
243
|
+
|
|
244
|
+
this.showSuccessNotify(message, delaySuccessNotify);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
return response;
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* Send the DELETE HTTP request
|
|
253
|
+
* @param { String } resource
|
|
254
|
+
* @param { Object } settings
|
|
255
|
+
* @returns { IDBRequest<IDBValidKey> | Promise<void> }
|
|
256
|
+
*/
|
|
257
|
+
delete(resource, settings = {}) {
|
|
258
|
+
const config = this.getRequestConfig(settings);
|
|
259
|
+
const { withLoader = true, withNotify = false, delaySuccessNotify = false } = settings;
|
|
260
|
+
|
|
261
|
+
if (withLoader) {
|
|
262
|
+
this.loader("on", resource);
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
return axios.delete(resource, config).then((response) => {
|
|
266
|
+
if (withNotify) {
|
|
267
|
+
const message = this.getResponseMessage(response);
|
|
268
|
+
|
|
269
|
+
this.showSuccessNotify(message, delaySuccessNotify);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
return response;
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { isProxy, isReactive, isRef, toRaw } from "vue";
|
|
2
|
+
|
|
3
|
+
export default class DataServiceDefault {
|
|
4
|
+
compareValues(key, order = "asc") {
|
|
5
|
+
return function innerSort(a, b) {
|
|
6
|
+
const isPropExistInObjA = Object.prototype.hasOwnProperty.call(a, key);
|
|
7
|
+
const isPropExistInObjB = Object.prototype.hasOwnProperty.call(b, key);
|
|
8
|
+
|
|
9
|
+
if (!isPropExistInObjA || !isPropExistInObjB) {
|
|
10
|
+
return 0;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const varA = typeof a[key] === "string" ? a[key].toUpperCase() : a[key];
|
|
14
|
+
const varB = typeof b[key] === "string" ? b[key].toUpperCase() : b[key];
|
|
15
|
+
let comparison = 0;
|
|
16
|
+
|
|
17
|
+
if (!varA) return 1;
|
|
18
|
+
|
|
19
|
+
if (!varB) return -1;
|
|
20
|
+
|
|
21
|
+
if (varA > varB) {
|
|
22
|
+
comparison = 1;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (varA < varB) {
|
|
26
|
+
comparison = -1;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return order === "desc" ? comparison * -1 : comparison;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
createFormData(form = {}) {
|
|
34
|
+
const formData = new FormData();
|
|
35
|
+
|
|
36
|
+
for (let key in form) {
|
|
37
|
+
if (Array.isArray(form[key])) {
|
|
38
|
+
form[key].forEach((item, index) => formData.append(`${key}[${index}]`, item));
|
|
39
|
+
} else if (typeof form[key] === "boolean") {
|
|
40
|
+
formData.append(key, Number(form[key]));
|
|
41
|
+
} else {
|
|
42
|
+
formData.append(key, form[key]);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return formData;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
updateArray(oldArray, newArray) {
|
|
50
|
+
newArray = new Map(newArray.map((item) => [item.id, item]));
|
|
51
|
+
|
|
52
|
+
const updatedArray = oldArray.map((item) => {
|
|
53
|
+
if (newArray.has(item.id)) {
|
|
54
|
+
item = newArray.get(item.id);
|
|
55
|
+
newArray.delete(item.id);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return item;
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
return [...updatedArray, ...newArray.values()];
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
getRawValue = (value) => {
|
|
65
|
+
if (Array.isArray(value)) {
|
|
66
|
+
return value.map((item) => this.getRawValue(item));
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if (isRef(value) || isReactive(value) || isProxy(value)) {
|
|
70
|
+
return this.getRawValue(toRaw(value));
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return value;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import I18nServiceDefault from "vueless/service.i18n";
|
|
2
|
+
import { enGB, ru, uk } from "date-fns/locale";
|
|
3
|
+
import {
|
|
4
|
+
addDays,
|
|
5
|
+
addMonths,
|
|
6
|
+
endOfDay,
|
|
7
|
+
endOfMonth,
|
|
8
|
+
endOfTomorrow,
|
|
9
|
+
format,
|
|
10
|
+
getUnixTime,
|
|
11
|
+
isToday,
|
|
12
|
+
isTomorrow,
|
|
13
|
+
isYesterday,
|
|
14
|
+
minutesToSeconds,
|
|
15
|
+
startOfDay,
|
|
16
|
+
subMonths,
|
|
17
|
+
startOfYear,
|
|
18
|
+
endOfYear,
|
|
19
|
+
startOfMonth,
|
|
20
|
+
subDays,
|
|
21
|
+
secondsToMilliseconds,
|
|
22
|
+
getDaysInMonth,
|
|
23
|
+
} from "date-fns";
|
|
24
|
+
import { zonedTimeToUtc } from "date-fns-tz";
|
|
25
|
+
import { format as TimeagoFormat, register as TimeagoRegister } from "timeago.js";
|
|
26
|
+
import { uk as locale_UA, ru as locale_RU } from "timeago.js/lib/lang";
|
|
27
|
+
|
|
28
|
+
const { getActiveLanguage } = new I18nServiceDefault();
|
|
29
|
+
|
|
30
|
+
export default class DateServiceDefault {
|
|
31
|
+
#languages = {
|
|
32
|
+
en: enGB,
|
|
33
|
+
ru: ru,
|
|
34
|
+
ua: uk,
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
#settings = {
|
|
38
|
+
yearFormat: "y",
|
|
39
|
+
monthFormat: "MMMM",
|
|
40
|
+
dayFormat: "EEEE",
|
|
41
|
+
dateNumberFormat: "dd",
|
|
42
|
+
hourFormat: "HH",
|
|
43
|
+
minuteFormat: "mm",
|
|
44
|
+
secondFormat: "ss",
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
TOMORROW_TIMESTAMP = getUnixTime(endOfTomorrow());
|
|
48
|
+
|
|
49
|
+
constructor(languages = null) {
|
|
50
|
+
this.#languages = languages || this.#languages;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
getDifferenceBetweenTimeZone(date) {
|
|
54
|
+
const diffInMinutesFrom = Math.abs(startOfDay(Number(date?.from)).getTimezoneOffset());
|
|
55
|
+
const diffInMinutesTo = Math.abs(endOfDay(Number(date?.to)).getTimezoneOffset());
|
|
56
|
+
|
|
57
|
+
return {
|
|
58
|
+
from: minutesToSeconds(diffInMinutesFrom),
|
|
59
|
+
to: minutesToSeconds(diffInMinutesTo),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
formatDate(date, settings) {
|
|
64
|
+
const mergedSettings = {
|
|
65
|
+
...this.#settings,
|
|
66
|
+
...settings,
|
|
67
|
+
};
|
|
68
|
+
const {
|
|
69
|
+
dayFormat,
|
|
70
|
+
monthFormat,
|
|
71
|
+
yearFormat,
|
|
72
|
+
dateNumberFormat,
|
|
73
|
+
hourFormat,
|
|
74
|
+
minuteFormat,
|
|
75
|
+
i18n,
|
|
76
|
+
withTime,
|
|
77
|
+
} = mergedSettings;
|
|
78
|
+
const locale = this.#languages[getActiveLanguage()];
|
|
79
|
+
|
|
80
|
+
const day = format(date, dayFormat, { locale });
|
|
81
|
+
const month = format(date, monthFormat, { locale }).split(".").join(""); //Removes dot from Ukr and Rus localization;
|
|
82
|
+
const year = format(date, yearFormat);
|
|
83
|
+
const dateNumber = format(date, dateNumberFormat);
|
|
84
|
+
const hours = format(date, hourFormat);
|
|
85
|
+
const minutes = format(date, minuteFormat);
|
|
86
|
+
|
|
87
|
+
let formattedDate = `${day}, ${dateNumber} ${month} ${year}`;
|
|
88
|
+
|
|
89
|
+
if (isYesterday(date)) {
|
|
90
|
+
formattedDate = `${i18n.yesterday}, ${dateNumber} ${month} ${year}`;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (isToday(date)) {
|
|
94
|
+
formattedDate = `${i18n.today}, ${dateNumber} ${month} ${year}`;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (isTomorrow(date)) {
|
|
98
|
+
formattedDate = `${i18n.tomorrow}, ${dateNumber} ${month} ${year}`;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (withTime) {
|
|
102
|
+
formattedDate = `${formattedDate} – ${hours}:${minutes}`;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
return formattedDate;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
dateConverter(timestamp, type = "date") {
|
|
109
|
+
const locale = this.#languages[getActiveLanguage()];
|
|
110
|
+
const date = new Date(timestamp * 1000);
|
|
111
|
+
let options = "";
|
|
112
|
+
|
|
113
|
+
if (type.includes("date")) {
|
|
114
|
+
options = "dd.MM.yyyy";
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if (type.includes("time")) {
|
|
118
|
+
options = "HH:mm:ss";
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (type.includes("datetime")) {
|
|
122
|
+
options = "HH:mm dd.MM.yyyy";
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
if (type.includes("dateWithFullMonth")) {
|
|
126
|
+
options = "dd MMMM yyyy";
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
if (type.includes("dateWithFullMonthAndTime")) {
|
|
130
|
+
options = "dd MMMM yyyy HH:mm";
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
return format(date, options, { locale });
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
thirtyDaysAgo() {
|
|
137
|
+
const date = new Date();
|
|
138
|
+
const thirtyDaysAgo = subDays(date, getDaysInMonth(date));
|
|
139
|
+
const diffInSeconds = this.getDifferenceBetweenTimeZone({ from: startOfDay(thirtyDaysAgo) });
|
|
140
|
+
|
|
141
|
+
return getUnixTime(startOfDay(thirtyDaysAgo)) + diffInSeconds.from;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
nextTwoWeek() {
|
|
145
|
+
const date = new Date();
|
|
146
|
+
const nextTwoWeek = addDays(date, 14);
|
|
147
|
+
const diffInSeconds = this.getDifferenceBetweenTimeZone({ to: nextTwoWeek });
|
|
148
|
+
|
|
149
|
+
return getUnixTime(endOfDay(nextTwoWeek)) + diffInSeconds.to;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
sixMonthsAgo() {
|
|
153
|
+
const currentDate = new Date();
|
|
154
|
+
const startOfFiveMonthsAgoInSeconds = getUnixTime(startOfMonth(subMonths(currentDate, 5)));
|
|
155
|
+
const endOfCurrentMonthInSeconds = getUnixTime(endOfMonth(currentDate));
|
|
156
|
+
const diffInSeconds = this.getDifferenceBetweenTimeZone({
|
|
157
|
+
from: startOfMonth(subMonths(currentDate, 5)),
|
|
158
|
+
to: endOfMonth(currentDate),
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
return {
|
|
162
|
+
from: startOfFiveMonthsAgoInSeconds + diffInSeconds.from,
|
|
163
|
+
to: endOfCurrentMonthInSeconds + diffInSeconds.to,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
currentMonth() {
|
|
168
|
+
const currentDate = new Date();
|
|
169
|
+
const startOfMonthInSeconds = getUnixTime(startOfMonth(currentDate));
|
|
170
|
+
const endOfMonthInSeconds = getUnixTime(endOfMonth(currentDate));
|
|
171
|
+
const diffInSeconds = this.getDifferenceBetweenTimeZone({
|
|
172
|
+
from: startOfMonth(currentDate),
|
|
173
|
+
to: endOfMonth(currentDate),
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
return {
|
|
177
|
+
from: startOfMonthInSeconds + diffInSeconds.from,
|
|
178
|
+
to: endOfMonthInSeconds + diffInSeconds.to,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
currentYear() {
|
|
183
|
+
const currentDate = new Date();
|
|
184
|
+
const startOfYearInSeconds = getUnixTime(startOfYear(currentDate));
|
|
185
|
+
const endOfYearInSeconds = getUnixTime(endOfYear(currentDate));
|
|
186
|
+
const diffInSeconds = this.getDifferenceBetweenTimeZone({
|
|
187
|
+
from: startOfYear(currentDate),
|
|
188
|
+
to: endOfYear(currentDate),
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
return {
|
|
192
|
+
from: startOfYearInSeconds + diffInSeconds.from,
|
|
193
|
+
to: endOfYearInSeconds + diffInSeconds.to,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
nextMonth() {
|
|
198
|
+
const nextMonth = addMonths(new Date(), 1);
|
|
199
|
+
|
|
200
|
+
const firstDayOfMonth = getUnixTime(startOfMonth(nextMonth));
|
|
201
|
+
const lastDayOfMonth = getUnixTime(endOfMonth(nextMonth));
|
|
202
|
+
|
|
203
|
+
return { firstDayOfMonth, lastDayOfMonth };
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
startOfSelectedDay(timestamp) {
|
|
207
|
+
const localTimeZone = "Etc/GMT";
|
|
208
|
+
|
|
209
|
+
const localStartOfDay = zonedTimeToUtc(startOfDay(timestamp), localTimeZone);
|
|
210
|
+
|
|
211
|
+
return getUnixTime(localStartOfDay);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
getTimeAgo(date) {
|
|
215
|
+
TimeagoRegister("ua", locale_UA);
|
|
216
|
+
TimeagoRegister("ru", locale_RU);
|
|
217
|
+
|
|
218
|
+
const activeLanguage = getActiveLanguage();
|
|
219
|
+
|
|
220
|
+
return TimeagoFormat(secondsToMilliseconds(date), activeLanguage);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { getCurrentInstance } from "vue";
|
|
2
|
+
import { createI18n, useI18n } from "vue-i18n";
|
|
3
|
+
import merge from "lodash.merge";
|
|
4
|
+
import { fallbackLocale } from "vueless/service.ui";
|
|
5
|
+
|
|
6
|
+
export default class I18nServiceDefault {
|
|
7
|
+
static FALLBACK_LOCALE = "en";
|
|
8
|
+
static LOCALE_KEY = "language";
|
|
9
|
+
|
|
10
|
+
#globalMessages = {};
|
|
11
|
+
#moduleMessages = {};
|
|
12
|
+
|
|
13
|
+
constructor() {
|
|
14
|
+
this._fallbackLocale = fallbackLocale || I18nServiceDefault.FALLBACK_LOCALE;
|
|
15
|
+
|
|
16
|
+
this.createI18nInstance();
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
createI18nInstance() {
|
|
20
|
+
this.i18nInstance = createI18n({
|
|
21
|
+
legacy: false,
|
|
22
|
+
messages: {},
|
|
23
|
+
locale: this.getActiveLanguage(),
|
|
24
|
+
fallbackLocale: this._fallbackLocale,
|
|
25
|
+
missing: this.missing,
|
|
26
|
+
warnHtmlMessage: false, // TODO: Think how to manage this later
|
|
27
|
+
pluralRules: {
|
|
28
|
+
ru: this.pluralizationRules,
|
|
29
|
+
ua: this.pluralizationRules,
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
async init() {
|
|
35
|
+
// Auto import global translations.
|
|
36
|
+
const global = import.meta.glob("@/i18n/**/*.yaml");
|
|
37
|
+
|
|
38
|
+
for (const path in global) {
|
|
39
|
+
const locales = await global[path]();
|
|
40
|
+
const lang = path.split(".").shift().split("/").pop();
|
|
41
|
+
|
|
42
|
+
this.#globalMessages[lang] = locales.default;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Auto import translations from the modules.
|
|
46
|
+
const modules = import.meta.glob("@/modules/**/*.yaml");
|
|
47
|
+
|
|
48
|
+
for (const path in modules) {
|
|
49
|
+
const locales = await modules[path]();
|
|
50
|
+
const lang = path.split(".").shift().split("/").pop();
|
|
51
|
+
const module = path.split("modules").pop().split("/").at(1);
|
|
52
|
+
|
|
53
|
+
this.#moduleMessages[lang] = {
|
|
54
|
+
...this.#moduleMessages[lang],
|
|
55
|
+
[module]: locales.default,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
this.setMessages();
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
setMessages(module) {
|
|
63
|
+
const lang = this.getActiveLanguage();
|
|
64
|
+
|
|
65
|
+
const messages = this.#moduleMessages[lang]
|
|
66
|
+
? merge(this.#moduleMessages[lang][module], this.#globalMessages[lang])
|
|
67
|
+
: this.#globalMessages[lang];
|
|
68
|
+
|
|
69
|
+
this.i18nInstance.global.setLocaleMessage(lang, messages);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// eslint-disable-next-line no-unused-vars
|
|
73
|
+
missing(locale, key) {
|
|
74
|
+
// Handle issues here by Honeybadger.io or similar error tracking app.
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
pluralizationRules(value, plurals) {
|
|
78
|
+
let pluralIndex = 0;
|
|
79
|
+
|
|
80
|
+
if (value) {
|
|
81
|
+
const remainder = value % 10;
|
|
82
|
+
const teen = value > 10 && value < 20;
|
|
83
|
+
const endsWithOne = remainder === 1;
|
|
84
|
+
|
|
85
|
+
if (plurals < 4) {
|
|
86
|
+
pluralIndex = !teen && endsWithOne ? 1 : 2;
|
|
87
|
+
} else {
|
|
88
|
+
pluralIndex = 3;
|
|
89
|
+
if (!teen && endsWithOne) pluralIndex = 1;
|
|
90
|
+
if (!teen && remainder >= 2 && remainder <= 4) pluralIndex = 2;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return pluralIndex;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Get translation from global or local scopes
|
|
99
|
+
* @param localPath {string}
|
|
100
|
+
* @param params {$ObjMap}
|
|
101
|
+
* @returns {string}
|
|
102
|
+
*/
|
|
103
|
+
getTranslation(localPath, params = {}) {
|
|
104
|
+
const { t, tm } = useI18n({ useScope: "local" });
|
|
105
|
+
const { t: tGlobal, tm: tmGlobal, te: teGlobal } = useI18n({ useScope: "global" });
|
|
106
|
+
|
|
107
|
+
const componentName = getCurrentInstance().type.name;
|
|
108
|
+
const globalPath = `${componentName}.${localPath}`;
|
|
109
|
+
|
|
110
|
+
let translation;
|
|
111
|
+
|
|
112
|
+
if (!localPath || !componentName) {
|
|
113
|
+
translation = "";
|
|
114
|
+
} else if (params?.isNested) {
|
|
115
|
+
translation = teGlobal(globalPath) ? tmGlobal(globalPath) : tm(localPath);
|
|
116
|
+
} else {
|
|
117
|
+
translation = teGlobal(globalPath) ? tGlobal(globalPath) : t(localPath);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return translation;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Save the active language to the localStorage
|
|
125
|
+
* @param lang
|
|
126
|
+
*/
|
|
127
|
+
setActiveLanguage = (lang) => {
|
|
128
|
+
const localeKey = I18nServiceDefault.LOCALE_KEY;
|
|
129
|
+
|
|
130
|
+
this.i18nInstance.global.locale.value = lang;
|
|
131
|
+
localStorage.setItem(localeKey, lang);
|
|
132
|
+
|
|
133
|
+
this.setMessages();
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Get the current active language from localStorage or set default if non exist
|
|
138
|
+
* @returns {string | string}
|
|
139
|
+
*/
|
|
140
|
+
getActiveLanguage = () => {
|
|
141
|
+
const localeKey = I18nServiceDefault.LOCALE_KEY;
|
|
142
|
+
|
|
143
|
+
return localStorage.getItem(localeKey) || this._fallbackLocale;
|
|
144
|
+
};
|
|
145
|
+
}
|