@ozdao/martyrs 0.2.546 → 0.2.547
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/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs → Dropdown.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs.map → Dropdown.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +1 -1
- package/dist/martyrs/src/components/Field/{Field.vue2.cjs → Field.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Field/{Field.vue2.js.map → Field.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Field/{Field.vue2.js → Field.vue.js} +2 -2
- package/dist/martyrs/src/components/Field/Field.vue.js.map +1 -0
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue.cjs → Menu.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Menu/{Menu.vue.js → Menu.vue2.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Select/{Select.vue.cjs → Select.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Select/Select.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Select/{Select.vue.js → Select.vue2.js} +2 -2
- package/dist/martyrs/src/components/Select/{Select.vue.cjs.map → Select.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.cjs → Spoiler.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Spoiler/Spoiler.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.js → Spoiler.vue2.js} +2 -2
- package/dist/martyrs/src/components/Spoiler/{Spoiler.vue.cjs.map → Spoiler.vue2.js.map} +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.cjs +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -2
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +2 -2
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/globals.client.cjs +0 -6
- package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.js +0 -6
- package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockSearch.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.cjs +25 -117
- package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.js +25 -117
- package/dist/martyrs/src/modules/globals/views/components/partials/Footer.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Filters.vue2.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +2 -2
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +2 -2
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +2 -2
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.cjs +1 -1
- package/dist/martyrs/src/modules/landing/components/sections/SectionGuide.vue.js +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +2 -2
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +6 -6
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +6 -6
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +6 -6
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +6 -6
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +6 -6
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +6 -6
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +5 -5
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +5 -5
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/router/organizations.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/router/organizations.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/CardProduct.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/elements/{THC.vue.cjs → THC.vue2.cjs} +2 -2
- package/dist/martyrs/src/modules/products/components/elements/THC.vue2.cjs.map +1 -0
- package/dist/martyrs/src/modules/products/components/elements/{THC.vue.js → THC.vue2.js} +2 -2
- package/dist/martyrs/src/modules/products/components/elements/THC.vue2.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/FilterProducts.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +3 -3
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +3 -3
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spot.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
- package/package.json +1 -1
- package/src/modules/globals/TASK.MD +9 -102
- package/src/modules/globals/globals.client.js +0 -7
- package/src/modules/globals/views/components/partials/Footer.vue +27 -127
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
- package/dist/martyrs/src/components/Field/Field.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +0 -1
- package/dist/martyrs/src/components/Select/Select.vue.js.map +0 -1
- package/dist/martyrs/src/components/Spoiler/Spoiler.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/elements/THC.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/products/components/elements/THC.vue.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { mergeModels, useModel, ref, computed, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, toDisplayString, unref, withCtx, createTextVNode, Fragment, renderList, normalizeClass, createCommentVNode, createBlock } from "vue";
|
|
2
2
|
import { useI18n } from "vue-i18n";
|
|
3
3
|
import _sfc_main$1 from "../../../../components/Button/Button.vue.js";
|
|
4
|
-
import Field from "../../../../components/Field/Field.
|
|
5
|
-
import Select from "../../../../components/Select/Select.
|
|
4
|
+
import Field from "../../../../components/Field/Field.vue.js";
|
|
5
|
+
import Select from "../../../../components/Select/Select.vue2.js";
|
|
6
6
|
import _sfc_main$3 from "../../../../components/Checkbox/Checkbox.vue.js";
|
|
7
7
|
import _sfc_main$2 from "../../../../components/Popup/Popup.vue.js";
|
|
8
8
|
/* empty css */
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
3
|
const vue = require("vue");
|
|
4
4
|
const wallet = require("../../localization/wallet.json.cjs");
|
|
5
|
-
const Field = require("../../../../../components/Field/Field.
|
|
5
|
+
const Field = require("../../../../../components/Field/Field.vue.cjs");
|
|
6
6
|
const vueI18n = require("vue-i18n");
|
|
7
7
|
const _hoisted_1 = { class: "bg-grey radius-big mn-t-semi mn-b-semi flex flex-justify-between" };
|
|
8
8
|
const _sfc_main = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createElementBlock, openBlock, Fragment, createElementVNode, createVNode, unref, toDisplayString } from "vue";
|
|
2
2
|
import text from "../../localization/wallet.json.js";
|
|
3
|
-
import Field from "../../../../../components/Field/Field.
|
|
3
|
+
import Field from "../../../../../components/Field/Field.vue.js";
|
|
4
4
|
import { useI18n } from "vue-i18n";
|
|
5
5
|
const _hoisted_1 = { class: "bg-grey radius-big mn-t-semi mn-b-semi flex flex-justify-between" };
|
|
6
6
|
const _sfc_main = {
|
|
@@ -5,8 +5,8 @@ const vueI18n = require("vue-i18n");
|
|
|
5
5
|
const bignumber = require("../../../../../../node_modules/.pnpm/bignumber.js@9.2.1/node_modules/bignumber.js/bignumber.cjs");
|
|
6
6
|
const wallet_store = require("../../store/wallet.store.cjs");
|
|
7
7
|
const wallet = require("../../localization/wallet.json.cjs");
|
|
8
|
-
const Field = require("../../../../../components/Field/Field.
|
|
9
|
-
const Select = require("../../../../../components/Select/Select.
|
|
8
|
+
const Field = require("../../../../../components/Field/Field.vue.cjs");
|
|
9
|
+
const Select = require("../../../../../components/Select/Select.vue2.cjs");
|
|
10
10
|
const _hoisted_1 = { class: "mn-b-small t-center t-bold" };
|
|
11
11
|
const _hoisted_2 = { class: "t-semi" };
|
|
12
12
|
const _hoisted_3 = ["disabled"];
|
|
@@ -3,8 +3,8 @@ import { useI18n } from "vue-i18n";
|
|
|
3
3
|
import { BigNumber } from "../../../../../../node_modules/.pnpm/bignumber.js@9.2.1/node_modules/bignumber.js/bignumber.js";
|
|
4
4
|
import { state, actions } from "../../store/wallet.store.js";
|
|
5
5
|
import text from "../../localization/wallet.json.js";
|
|
6
|
-
import Field from "../../../../../components/Field/Field.
|
|
7
|
-
import Select from "../../../../../components/Select/Select.
|
|
6
|
+
import Field from "../../../../../components/Field/Field.vue.js";
|
|
7
|
+
import Select from "../../../../../components/Select/Select.vue2.js";
|
|
8
8
|
const _hoisted_1 = { class: "mn-b-small t-center t-bold" };
|
|
9
9
|
const _hoisted_2 = { class: "t-semi" };
|
|
10
10
|
const _hoisted_3 = ["disabled"];
|
|
@@ -9,8 +9,8 @@ const Popup = require("../../../../../components/Popup/Popup.vue.cjs");
|
|
|
9
9
|
const Button = require("../../../../../components/Button/Button.vue.cjs");
|
|
10
10
|
require("vue-router");
|
|
11
11
|
;/* empty css */
|
|
12
|
-
;/* empty css
|
|
13
|
-
;/* empty css
|
|
12
|
+
;/* empty css */
|
|
13
|
+
;/* empty css */
|
|
14
14
|
;/* empty css */
|
|
15
15
|
const ConnectMetamask = require("../elements/ConnectMetamask.vue.cjs");
|
|
16
16
|
const CashDeposit = require("../blocks/CashDeposit.vue.cjs");
|
|
@@ -7,8 +7,8 @@ import _sfc_main$3 from "../../../../../components/Popup/Popup.vue.js";
|
|
|
7
7
|
import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
|
|
8
8
|
import "vue-router";
|
|
9
9
|
/* empty css */
|
|
10
|
-
/* empty css
|
|
11
|
-
/* empty css
|
|
10
|
+
/* empty css */
|
|
11
|
+
/* empty css */
|
|
12
12
|
/* empty css */
|
|
13
13
|
import _sfc_main$2 from "../elements/ConnectMetamask.vue.js";
|
|
14
14
|
import _sfc_main$4 from "../blocks/CashDeposit.vue.js";
|
package/package.json
CHANGED
|
@@ -1,105 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
Переиименовать все в менеджеры - storeMaganer, wsManager, moduleManager и сделать одинаковый экспорт и имена ws.manager.js, store.manager.js, module.manager.js, i18n.manager.js
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
При переходе на роут, который требует загрузки нового модуля:
|
|
5
|
-
1. После клика на ссылку UI полностью блокируется
|
|
6
|
-
2. Начинается загрузка модуля (2-3 секунды)
|
|
7
|
-
3. Лоадер показывается только ПОСЛЕ загрузки модуля на мгновение
|
|
8
|
-
4. Затем происходит переход на новый роут
|
|
3
|
+
ну и в целом в store.js все сделать как это менеджер сторов названия
|
|
9
4
|
|
|
10
|
-
|
|
5
|
+
import store from './views/classes/store.js';
|
|
6
|
+
import websockets from './views/classes/globals.websocket.js';
|
|
7
|
+
import { i18nManager } from '@martyrs/src/modules/globals/views/classes/globals.i18n.js';
|
|
8
|
+
import { moduleRegistry } from './views/classes/module-registry.js';
|
|
11
9
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- **Файл:** `globals.app.js:89-119`
|
|
16
|
-
- Модули загружаются динамически в `router.beforeEach` guard
|
|
17
|
-
- Модули регистрируют роуты через `router.addRoute()` после загрузки
|
|
18
|
-
- После загрузки возвращается `to.fullPath` для повторной навигации
|
|
19
|
-
|
|
20
|
-
### Условие показа лоадера
|
|
21
|
-
- **Файл:** `Client.vue:16`
|
|
22
|
-
- Условие: `v-if="!page || globals.state.loading"`
|
|
23
|
-
- `page` - ref на текущий компонент страницы
|
|
24
|
-
- `globals.state.loading` - глобальный флаг загрузки
|
|
25
|
-
|
|
26
|
-
## Корень проблемы
|
|
27
|
-
Vue Router `beforeEach` guard блокирует все обновления DOM до своего завершения:
|
|
28
|
-
- Guards выполняются синхронно и блокируют навигацию
|
|
29
|
-
- Vue не может обновить DOM пока `beforeEach` не завершится
|
|
30
|
-
- Даже установка `globals.state.loading = true` не приводит к рендерингу
|
|
31
|
-
|
|
32
|
-
**Подтверждение из документации Vue Router:**
|
|
33
|
-
> "Guards may be resolved asynchronously, and the navigation is considered pending before all hooks have been resolved"
|
|
34
|
-
|
|
35
|
-
**GitHub issue vuejs/vue #9200:**
|
|
36
|
-
> "Vue.nextTick doesn't seem to cover browser re-render"
|
|
37
|
-
|
|
38
|
-
## Что пробовали и не сработало
|
|
39
|
-
|
|
40
|
-
### 1. nextTick после установки loading флага
|
|
41
|
-
```javascript
|
|
42
|
-
store.globals.state.loading = true;
|
|
43
|
-
await nextTick();
|
|
44
|
-
```
|
|
45
|
-
**Результат:** Не работает, т.к. nextTick работает с микротасками, которые выполняются ДО отрисовки браузером
|
|
46
|
-
|
|
47
|
-
### 2. requestAnimationFrame
|
|
48
|
-
```javascript
|
|
49
|
-
store.globals.state.loading = true;
|
|
50
|
-
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
51
|
-
```
|
|
52
|
-
**Результат:** Не работает, beforeEach все равно блокирует рендеринг
|
|
53
|
-
|
|
54
|
-
### 3. setTimeout с return false
|
|
55
|
-
```javascript
|
|
56
|
-
setTimeout(async () => {
|
|
57
|
-
// загрузка модулей
|
|
58
|
-
router.push(to.fullPath);
|
|
59
|
-
}, 0);
|
|
60
|
-
return false;
|
|
61
|
-
```
|
|
62
|
-
**Результат:** Приводит к 404, т.к. роуты еще не зарегистрированы
|
|
63
|
-
|
|
64
|
-
### 4. Watch на route.path в Client.vue
|
|
65
|
-
```javascript
|
|
66
|
-
watch(() => route.path, () => {
|
|
67
|
-
page.value = null;
|
|
68
|
-
});
|
|
69
|
-
```
|
|
70
|
-
**Результат:** Не работает, т.к. route.path меняется только ПОСЛЕ завершения beforeEach
|
|
71
|
-
|
|
72
|
-
### 5. Свой beforeEach в Client.vue
|
|
73
|
-
```javascript
|
|
74
|
-
router.beforeEach((to, from) => {
|
|
75
|
-
page.value = null;
|
|
76
|
-
});
|
|
77
|
-
```
|
|
78
|
-
**Результат:** Не работает, все beforeEach выполняются синхронно и блокируют рендеринг
|
|
79
|
-
|
|
80
|
-
### 6. Создание DOM элемента напрямую
|
|
81
|
-
```javascript
|
|
82
|
-
const loader = document.createElement('div');
|
|
83
|
-
document.body.appendChild(loader);
|
|
84
|
-
```
|
|
85
|
-
**Результат:** Работает, но это хак, обходящий Vue реактивность
|
|
86
|
-
|
|
87
|
-
## Ограничения
|
|
88
|
-
1. **Нельзя загружать модули после навигации** - модули регистрируют роуты, без них будет 404
|
|
89
|
-
2. **Нельзя загружать модули вне beforeEach** - нужно гарантировать загрузку ДО навигации
|
|
90
|
-
3. **return to.fullPath необходим** - для повторной навигации с новыми роутами
|
|
91
|
-
|
|
92
|
-
## Возможные решения
|
|
93
|
-
|
|
94
|
-
### 1. Использовать HTML лоадер (не Vue компонент)
|
|
95
|
-
Добавить лоадер прямо в index.html, показывать/скрывать через классы
|
|
96
|
-
|
|
97
|
-
### 2. Изменить архитектуру загрузки
|
|
98
|
-
- Предзагружать все возможные роуты
|
|
99
|
-
- Использовать другой подход к динамической регистрации
|
|
100
|
-
|
|
101
|
-
### 3. Использовать Web Workers
|
|
102
|
-
Загружать модули в воркере, но это потребует полного рефакторинга
|
|
103
|
-
|
|
104
|
-
## Вывод
|
|
105
|
-
Проблема фундаментальная: Vue Router beforeEach блокирует рендеринг, а мы обязаны загружать модули именно там из-за динамической регистрации роутов. Единственное рабочее решение - создавать лоадер в обход Vue (прямой DOM манипуляцией).
|
|
10
|
+
сюда же потом пойдет
|
|
11
|
+
-нотификейшен менеджер
|
|
12
|
+
-алерт менеджер
|
|
@@ -23,9 +23,6 @@ import ru from './locales/ru.js';
|
|
|
23
23
|
|
|
24
24
|
// Пример функции инициализации для модуля заказов
|
|
25
25
|
function initializeGlobals(app, store, router, config, options = {}) {
|
|
26
|
-
console.log('[initializeGlobals] START');
|
|
27
|
-
console.log('[initializeGlobals] Store before addStore:', store);
|
|
28
|
-
|
|
29
26
|
const route = options.route || 'Home';
|
|
30
27
|
|
|
31
28
|
const locales = {
|
|
@@ -74,11 +71,7 @@ function initializeGlobals(app, store, router, config, options = {}) {
|
|
|
74
71
|
|
|
75
72
|
if (config && config.modules) storeGlobals.state.options = config.modules;
|
|
76
73
|
|
|
77
|
-
console.log('[initializeGlobals] Adding globals store with state:', storeGlobals.state);
|
|
78
74
|
store.addStore('globals', storeGlobals);
|
|
79
|
-
console.log('[initializeGlobals] Store after addStore:', store);
|
|
80
|
-
console.log('[initializeGlobals] Store.globals exists:', !!store.globals);
|
|
81
|
-
console.log('[initializeGlobals] END');
|
|
82
75
|
|
|
83
76
|
router.addRoute(route, {
|
|
84
77
|
path: '404',
|
|
@@ -39,108 +39,8 @@ const props = defineProps({
|
|
|
39
39
|
const router = useRouter()
|
|
40
40
|
const route = useRoute()
|
|
41
41
|
|
|
42
|
-
// Localization
|
|
43
|
-
const text = {
|
|
44
|
-
locale: 'en',
|
|
45
|
-
messages: {
|
|
46
|
-
en: {
|
|
47
|
-
linkAppStore: 'https://play.google.com/store/apps/details?id=com.threestepsrental.app',
|
|
48
|
-
linkGooglePlay: 'https://play.google.com/store/apps/details?id=com.threestepsrental.app',
|
|
49
|
-
// Contact
|
|
50
|
-
description: "3SR – Premium Video Gear Rentals for Filmmakers and Content Creators",
|
|
51
|
-
contact: 'Contact',
|
|
52
|
-
phone: 'Phone / WhatsApp',
|
|
53
|
-
email: 'Email',
|
|
54
|
-
hours: 'Hours',
|
|
55
|
-
hours_text: 'Mon–Sun, 10:00–19:00',
|
|
56
|
-
app: 'Get Our App',
|
|
57
|
-
|
|
58
|
-
// Subscribe
|
|
59
|
-
subscribe: 'Subscribe',
|
|
60
|
-
subscribe_text: 'Get updates on new equipment and special offers',
|
|
61
|
-
email_placeholder: 'Enter your email',
|
|
62
|
-
follow: 'Follow Us',
|
|
63
|
-
|
|
64
|
-
// Footer
|
|
65
|
-
year: '2025 ',
|
|
66
|
-
heart: "❤",
|
|
67
|
-
copyright: 'Three Steps Studio Ltd. All Rights Reserved.',
|
|
68
|
-
ozdao: 'Builded in OZ DAO',
|
|
69
|
-
|
|
70
|
-
// Contact info
|
|
71
|
-
phoneNumber: '+44 77 7878 4893',
|
|
72
|
-
emailAddress: "info{'@'}3stepsprod.com",
|
|
73
|
-
|
|
74
|
-
// Navigation columns
|
|
75
|
-
navigationColumns: [
|
|
76
|
-
{
|
|
77
|
-
sections: [
|
|
78
|
-
{
|
|
79
|
-
title: 'Equipment',
|
|
80
|
-
items: [
|
|
81
|
-
{ name: 'Cameras', url: 'products/categories/cameras' },
|
|
82
|
-
{ name: 'Lighting', url: 'products/categories/lighting-kits' },
|
|
83
|
-
{ name: 'Stabilizers', url: 'products/categories/stabilization-motion' },
|
|
84
|
-
{ name: 'Accessories', url: 'products/categories/accessories' }
|
|
85
|
-
]
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
title: 'Services',
|
|
89
|
-
items: [
|
|
90
|
-
{ name: 'Kits & Packages', url: 'products/categories/kits-packages' },
|
|
91
|
-
{ name: 'Studio Hire', url: 'products/categories/studio-hire' },
|
|
92
|
-
{ name: 'Delivery', url: 'products/categories/delivery' },
|
|
93
|
-
{ name: 'Production Help', url: 'products/categories/production-help' }
|
|
94
|
-
]
|
|
95
|
-
}
|
|
96
|
-
]
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
sections: [
|
|
100
|
-
{
|
|
101
|
-
title: 'Company',
|
|
102
|
-
items: [
|
|
103
|
-
{ name: 'About Us', url: 'pages/about' },
|
|
104
|
-
{ name: 'Contact', url: 'pages/contact' },
|
|
105
|
-
{ name: 'FAQ', url: 'pages/faq' },
|
|
106
|
-
{ name: 'Blog', url: '/community' }
|
|
107
|
-
]
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
title: 'Legal',
|
|
111
|
-
items: [
|
|
112
|
-
{ name: 'Privacy Policy', url: 'pages/privacy-policy' },
|
|
113
|
-
{ name: 'Cookie Policy', url: 'pages/cookie-policy' },
|
|
114
|
-
{ name: 'Terms of Use', url: 'pages/terms-of-use' },
|
|
115
|
-
{ name: 'EULA', url: 'pages/eula' }
|
|
116
|
-
]
|
|
117
|
-
}
|
|
118
|
-
]
|
|
119
|
-
}
|
|
120
|
-
],
|
|
121
|
-
|
|
122
|
-
// Social links
|
|
123
|
-
socialLinks: [
|
|
124
|
-
{
|
|
125
|
-
name: 'IconInstagram',
|
|
126
|
-
url: 'https://www.instagram.com/3stepsprod'
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
name: 'IconYoutube',
|
|
130
|
-
url: 'https://www.youtube.com/@threestepsproduction'
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
name: 'IconWhatsapp',
|
|
134
|
-
url: 'https://api.whatsapp.com/send/?phone=447778784893&text&type=phone_number&app_absent=0'
|
|
135
|
-
}
|
|
136
|
-
]
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
42
|
const { t, te, tm } = useI18n({
|
|
142
|
-
useScope: 'global'
|
|
143
|
-
messages: text.messages
|
|
43
|
+
useScope: 'global'
|
|
144
44
|
})
|
|
145
45
|
|
|
146
46
|
// Component mapping for social icons
|
|
@@ -178,61 +78,61 @@ const iconComponents = {
|
|
|
178
78
|
|
|
179
79
|
<!-- Contact Block -->
|
|
180
80
|
<div class="col w-max-15r">
|
|
181
|
-
<p class="p-semi t-medium mn-b-semi">{{ t('description') }}</p>
|
|
81
|
+
<p class="p-semi t-medium mn-b-semi">{{ t('footer.description') }}</p>
|
|
182
82
|
|
|
183
83
|
<div class="mn-b-semi flex flex-column gap-small">
|
|
184
84
|
<a
|
|
185
|
-
:href="`tel:${t('phoneNumber').replace(/\s/g, '')}`"
|
|
85
|
+
:href="`tel:${t('footer.phoneNumber').replace(/\s/g, '')}`"
|
|
186
86
|
class="flex mn-b-micro gap-micro flex-v-center transition-opacity hover-opacity-70"
|
|
187
87
|
:class="theme === 'light' ? 't-black' : 't-white'"
|
|
188
88
|
>
|
|
189
89
|
<IconPhone class="i-regular" :fill="theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'" />
|
|
190
|
-
<span class="t-small">{{ t('phoneNumber') }}</span>
|
|
90
|
+
<span class="t-small">{{ t('footer.phoneNumber') }}</span>
|
|
191
91
|
</a>
|
|
192
92
|
|
|
193
93
|
<a
|
|
194
|
-
:href="`mailto:${t('emailAddress')}`"
|
|
94
|
+
:href="`mailto:${t('footer.emailAddress')}`"
|
|
195
95
|
class="flex mn-b-micro gap-micro flex-v-center transition-opacity hover-opacity-70"
|
|
196
96
|
:class="theme === 'light' ? 't-black' : 't-white'"
|
|
197
97
|
>
|
|
198
98
|
<IconEmail class="i-regular" :fill="theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'" />
|
|
199
|
-
<span class="t-small">{{ t('emailAddress') }}</span>
|
|
99
|
+
<span class="t-small">{{ t('footer.emailAddress') }}</span>
|
|
200
100
|
</a>
|
|
201
101
|
|
|
202
102
|
<div class="flex mn-b-micro gap-micro flex-v-center">
|
|
203
103
|
<IconTime class="i-regular" :fill="theme === 'light' ? 'rgb(var(--black))' : 'rgb(var(--white))'" />
|
|
204
|
-
<span class="t-small">{{ t('hours_text') }}</span>
|
|
104
|
+
<span class="t-small">{{ t('footer.hours_text') }}</span>
|
|
205
105
|
</div>
|
|
206
106
|
</div>
|
|
207
107
|
|
|
208
|
-
<h4 class="h5 t-medium mn-b-regular">{{ t('app') }}</h4>
|
|
108
|
+
<h4 class="h5 t-medium mn-b-regular">{{ t('footer.app') }}</h4>
|
|
209
109
|
<div class="w-100 flex-nowrap flex gap-thin">
|
|
210
110
|
<a
|
|
211
|
-
v-if="te('linkAppStore') || te('label')"
|
|
212
|
-
:href="te('linkAppStore') ? t('linkAppStore') : null"
|
|
213
|
-
:target="te('linkAppStore') ? '_blank' : null"
|
|
111
|
+
v-if="te('footer.linkAppStore') || te('footer.label')"
|
|
112
|
+
:href="te('footer.linkAppStore') ? t('footer.linkAppStore') : null"
|
|
113
|
+
:target="te('footer.linkAppStore') ? '_blank' : null"
|
|
214
114
|
class="pos-relative w-100 h-100"
|
|
215
115
|
>
|
|
216
116
|
<span
|
|
217
|
-
v-if="te('label')"
|
|
117
|
+
v-if="te('footer.label')"
|
|
218
118
|
class="z-index-2 radius-medium bg-main t-medium uppercase pd-thin pos-absolute pos-r-10-negative pos-t-10-negative"
|
|
219
119
|
>
|
|
220
|
-
{{ t('label') }}
|
|
120
|
+
{{ t('footer.label') }}
|
|
221
121
|
</span>
|
|
222
122
|
<LabelAppStore class="w-100 h-max" alt="Download on App Store"/>
|
|
223
123
|
</a>
|
|
224
124
|
|
|
225
125
|
<a
|
|
226
|
-
v-if="te('linkGooglePlay') || te('label')"
|
|
227
|
-
:href="te('linkGooglePlay') ? t('linkGooglePlay') : null"
|
|
228
|
-
:target="te('linkGooglePlay') ? '_blank' : null"
|
|
126
|
+
v-if="te('footer.linkGooglePlay') || te('footer.label')"
|
|
127
|
+
:href="te('footer.linkGooglePlay') ? t('footer.linkGooglePlay') : null"
|
|
128
|
+
:target="te('footer.linkGooglePlay') ? '_blank' : null"
|
|
229
129
|
class="pos-relative w-100 h-100"
|
|
230
130
|
>
|
|
231
131
|
<span
|
|
232
|
-
v-if="te('label')"
|
|
132
|
+
v-if="te('footer.label')"
|
|
233
133
|
class="z-index-2 pd-thin radius-medium bg-main t-medium uppercase pos-absolute pos-r-10-negative pos-t-10-negative"
|
|
234
134
|
>
|
|
235
|
-
{{ t('label') }}
|
|
135
|
+
{{ t('footer.label') }}
|
|
236
136
|
</span>
|
|
237
137
|
<LabelGooglePlay class="w-100 h-max" alt="Download on Google Play"/>
|
|
238
138
|
</a>
|
|
@@ -241,7 +141,7 @@ const iconComponents = {
|
|
|
241
141
|
|
|
242
142
|
<!-- Navigation Columns -->
|
|
243
143
|
<div class="cols-2 gap-big">
|
|
244
|
-
<div v-for="(column, colIndex) in tm('navigationColumns')" :key="colIndex" class="flex flex-column gap-medium">
|
|
144
|
+
<div v-for="(column, colIndex) in tm('footer.navigationColumns')" :key="colIndex" class="flex flex-column gap-medium">
|
|
245
145
|
<div v-for="(section, sectionIndex) in column.sections" :key="sectionIndex" class="">
|
|
246
146
|
<h4 class="h5 t-medium mn-b-regular">{{ section.title }}</h4>
|
|
247
147
|
<nav>
|
|
@@ -263,8 +163,8 @@ const iconComponents = {
|
|
|
263
163
|
|
|
264
164
|
<!-- Subscribe Block -->
|
|
265
165
|
<div class="col">
|
|
266
|
-
<h4 class="h5 t-medium mn-b-regular">{{ t('subscribe') }}</h4>
|
|
267
|
-
<p class="t-small mn-b-small t-transp">{{ t('subscribe_text') }}</p>
|
|
166
|
+
<h4 class="h5 t-medium mn-b-regular">{{ t('footer.subscribe') }}</h4>
|
|
167
|
+
<p class="t-small mn-b-small t-transp">{{ t('footer.subscribe_text') }}</p>
|
|
268
168
|
|
|
269
169
|
<FieldSubscribeNewsletter
|
|
270
170
|
:action="''"
|
|
@@ -273,11 +173,11 @@ const iconComponents = {
|
|
|
273
173
|
class="d-inline-flex mn-b-medium bg-light t-black w-100"
|
|
274
174
|
/>
|
|
275
175
|
|
|
276
|
-
<h4 class="h5 t-medium mn-b-regular">{{ t('follow') }}</h4>
|
|
176
|
+
<h4 class="h5 t-medium mn-b-regular">{{ t('footer.follow') }}</h4>
|
|
277
177
|
<!-- Social Links -->
|
|
278
178
|
<div class="flex gap-thin">
|
|
279
179
|
<a
|
|
280
|
-
v-for="social in tm('socialLinks')"
|
|
180
|
+
v-for="social in tm('footer.socialLinks')"
|
|
281
181
|
:key="social.name"
|
|
282
182
|
:href="social.url"
|
|
283
183
|
target="_blank"
|
|
@@ -321,14 +221,14 @@ const iconComponents = {
|
|
|
321
221
|
>
|
|
322
222
|
<!-- Copyright -->
|
|
323
223
|
<p class="t-small t-medium uppercase">
|
|
324
|
-
{{ t('year') }}
|
|
325
|
-
<span class="t-main copyleft">{{ t('heart') }}</span>
|
|
326
|
-
{{ t('copyright') }}
|
|
224
|
+
{{ t('footer.year') }}
|
|
225
|
+
<span class="t-main copyleft">{{ t('footer.heart') }}</span>
|
|
226
|
+
{{ t('footer.copyright') }}
|
|
327
227
|
</p>
|
|
328
228
|
|
|
329
229
|
<a href="https://ozdao.dev" target="_blank" rel="noopener" class="flex-nowrap flex-v-center flex t-medium gap-thin br-1px br-light pd-thin radius-thin">
|
|
330
230
|
<Logotype class="h-1r w-auto"/>
|
|
331
|
-
<span>{{ t('ozdao') }}</span>
|
|
231
|
+
<span>{{ t('footer.ozdao') }}</span>
|
|
332
232
|
</a>
|
|
333
233
|
</div>
|
|
334
234
|
</footer>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.vue.js","sources":["../../../../../src/components/Dropdown/Dropdown.vue"],"sourcesContent":["<template>\n <div class=\"dropdown pos-relative\" v-click-outside=\"clickedOutside\" @click.stop=\"isOpen = !isOpen\">\n <div v-if=\"isComponentLabel\" class=\"w-100 h-100 flex-center flex\">\n <component :is=\"label.component\" v-bind=\"label.props\" :class=\"label.class\"></component>\n </div>\n <div v-else>\n {{ label }}\n </div>\n <transition name=\"TransitionTranslateY\" mode=\"out-in\">\n <div \n v-show=\"isOpen\" \n :style=\"{ left: align === 'left' ? '0' : 'auto', right: align === 'right' ? '0' : 'auto' }\" \n class=\"dropdown-content radius-big\" \n >\n <slot></slot>\n </div>\n </transition>\n </div>\n</template>\n\n<script setup>\nimport { ref, computed } from 'vue';\nimport clickOutside from '../FieldPhone/click-outside.js';\n\nlet vClickOutside = clickOutside\n\nconst props = defineProps({\n label: {\n type: [String, Object],\n default: 'Open'\n },\n align: {\n type: String,\n default: 'left'\n }\n})\n\nconst isOpen = ref(false);\nconst isComponentLabel = computed(() => typeof props.label === 'object');\n\nfunction clickedOutside () {\n isOpen.value = false\n}\n</script>\n\n<style >\n.dropdown-content {\n display: block;\n position: absolute;\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n z-index: 1;\n}\n\n/*.dropdown:hover .dropdown-content {\n display: block;\n}*/\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAwBA,QAAI,gBAAgB;AAEpB,UAAM,QAAQ;AAWd,UAAM,SAAS,IAAI,KAAK;AACxB,UAAM,mBAAmB,SAAS,MAAM,OAAO,MAAM,UAAU,QAAQ;AAEvE,aAAS,iBAAkB;AACzB,aAAO,QAAQ;AAAA,IACjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Field.vue2.cjs","sources":["../../../../../src/components/Field/Field.vue"],"sourcesContent":["<script setup>\nimport { ref, onMounted, nextTick, watch } from 'vue'\nimport IconShow from '@martyrs/src/modules/icons/actions/IconShow.vue';\nconst emit = defineEmits(['update:field', 'focus', 'blur']);\nconst props = defineProps({\n label: null,\n symbol: null,\n type: 'text',\n placeholder: 'Enter something here',\n field: null,\n value: null,\n validation: false,\n disabled: null,\n tabindex: -1,\n autofocus: false,\n icon: null, // Добавлен пропс для иконки\n name: null, // Имя поля для автозаполнения\n id: null // ID поля\n});\nif (props.value) {\n emit('update:field', props.value)\n}\nconst textarea = ref(null);\nconst input = ref(null);\nconst showPassword = ref(false);\n\nfunction resize() {\n if (!textarea.value) {\n return;\n }\n const el = textarea.value;\n el.style.height = '';\n const scrollHeight = el.scrollHeight;\n if (scrollHeight > 33) {\n el.style.height = scrollHeight + 'px';\n } else {\n el.style.height = '';\n }\n}\nfunction focus() {\n if (props.autofocus) {\n if (props.type === 'textarea' && textarea.value) {\n textarea.value.focus();\n } else if (input.value) {\n input.value.focus();\n }\n }\n}\nwatch(() => props.field, () => {\n if (props.type === 'textarea') {\n nextTick(resize);\n }\n});\nwatch(() => props.autofocus, (newVal) => {\n if (newVal) {\n nextTick(focus);\n }\n});\nonMounted(() => {\n nextTick(focus);\n nextTick(resize);\n});\nconst text = ref(props.field);\n</script>\n<template>\n <div\n :class=\"[\n $attrs.class,\n { 'bg-fourth-nano': validation }\n ]\"\n class=\"field-wrapper flex-center flex-nowrap flex\"\n >\n <!-- Слот для иконки -->\n <slot name=\"icon\" v-if=\"$slots.icon\" />\n <!-- Или компонент иконки через пропс -->\n <component :is=\"icon\" v-else-if=\"icon\" class=\"i-medium t-transp mn-r-thin\" />\n \n <div\n v-if=\"label\"\n class=\"t-transp mn-r-small\"\n >\n <span class=\"t-nowrap\">\n {{label}}\n </span>\n </div>\n <div class=\"w-100 pos-relative\">\n <input\n v-if=\"type !== 'textarea'\"\n ref=\"input\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n :type=\"type === 'password' && !showPassword ? 'password' : type === 'password' ? 'text' : type\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n :autofocus=\"autofocus\"\n :name=\"name\"\n :id=\"id\"\n />\n <textarea\n v-else\n ref=\"textarea\"\n @input=\"event => text = emit('update:field', event.target.value)\"\n @focus=\"event => emit('focus', event)\"\n @blur=\"event => emit('blur', event)\"\n class=\"w-100\"\n :value=\"field\"\n :placeholder=\"placeholder\"\n :tabindex=\"tabindex\"\n :disabled=\"disabled\"\n :name=\"name\"\n :id=\"id\"\n />\n </div>\n <IconShow\n v-if=\"type === 'password'\"\n :show=\"!showPassword\"\n @click=\"showPassword = !showPassword\"\n class=\"i-medium cursor-pointer\"\n />\n <slot></slot>\n <div\n v-if=\"symbol\"\n class=\"t-transp mn-l-small\"\n >\n <span>\n {{symbol}}\n </span>\n </div>\n </div>\n <!-- Validation -->\n <transition name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin mn-b-thin mn-b-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n<style scoped>\ninput,\ntextarea,\nspan {\n color: inherit;\n line-height: 1;\n}\ntextarea {\n resize: none;\n overflow: hidden; \n height: 1rem;\n}\n\ninput {\n height: 1rem;\n}\n\ninput[type=\"date\"]::-webkit-calendar-picker-indicator,\ninput[type=\"time\"]::-webkit-calendar-picker-indicator {\n filter: invert(1);\n opacity: 1;\n color: inherit;\n}\n</style>"],"names":["ref","watch","nextTick","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,UAAM,OAAO;AACb,UAAM,QAAQ;AAed,QAAI,MAAM,OAAO;AACf,WAAK,gBAAgB,MAAM,KAAK;AAAA,IAClC;AACA,UAAM,WAAWA,IAAAA,IAAI,IAAI;AACzB,UAAM,QAAQA,IAAAA,IAAI,IAAI;AACtB,UAAM,eAAeA,IAAAA,IAAI,KAAK;AAE9B,aAAS,SAAS;AAChB,UAAI,CAAC,SAAS,OAAO;AACnB;AAAA,MACF;AACA,YAAM,KAAK,SAAS;AACpB,SAAG,MAAM,SAAS;AAClB,YAAM,eAAe,GAAG;AACxB,UAAI,eAAe,IAAI;AACrB,WAAG,MAAM,SAAS,eAAe;AAAA,MACnC,OAAO;AACL,WAAG,MAAM,SAAS;AAAA,MACpB;AAAA,IACF;AACA,aAAS,QAAQ;AACf,UAAI,MAAM,WAAW;AACnB,YAAI,MAAM,SAAS,cAAc,SAAS,OAAO;AAC/C,mBAAS,MAAM,MAAK;AAAA,QACtB,WAAW,MAAM,OAAO;AACtB,gBAAM,MAAM,MAAK;AAAA,QACnB;AAAA,MACF;AAAA,IACF;AACAC,QAAAA,MAAM,MAAM,MAAM,OAAO,MAAM;AAC7B,UAAI,MAAM,SAAS,YAAY;AAC7BC,YAAAA,SAAS,MAAM;AAAA,MACjB;AAAA,IACF,CAAC;AACDD,QAAAA,MAAM,MAAM,MAAM,WAAW,CAAC,WAAW;AACvC,UAAI,QAAQ;AACVC,YAAAA,SAAS,KAAK;AAAA,MAChB;AAAA,IACF,CAAC;AACDC,QAAAA,UAAU,MAAM;AACdD,UAAAA,SAAS,KAAK;AACdA,UAAAA,SAAS,MAAM;AAAA,IACjB,CAAC;AACD,UAAM,OAAOF,IAAAA,IAAI,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.vue.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Select.vue.js","sources":["../../../../../src/components/Select/Select.vue"],"sourcesContent":["<template>\n <!-- Input Wrapper -->\n <div \n ref=\"fieldWrapper\"\n tabindex=\"0\"\n @click.stop=\"toggleMenu\" \n v-click-outside=\"clickedOutside\" \n :class=\"$attrs.class\" \n class=\"cursor-pointer field-wrapper flex-v-center flex-nowrap flex pos-relative\"\n >\n <!-- Label -->\n <span v-if=\"label\" class=\"t-transp mn-r-small\">{{label}}</span>\n \n <!-- Input -->\n <span>\n {{ optionsSelected ? (optionsSelected.name || optionsSelected[props.value] || optionsSelected) : placeholder }}\n </span>\n <!-- Dropdown menu -->\n <transition mode=\"out-in\" name=\"TransitionTranslateY\">\n <ul \n v-show=\"showMenu\" \n class=\"bs-black pos-absolute pos-t-100 pos-l-0 z-index-5 pd-small radius-small bg-white mn-t-thin w-100\"\n style=\"min-width: max-content;\"\n >\n <li @click.stop=\"selectOption(option)\" v-for=\"option in optionsListed\" class=\"radius-thin hover-bg-light pd-thin text-box-trim\">\n <span v-if=\"option\" class=\"w-100\">\n {{ option.name || option[props.value] || option }}\n </span>\n </li>\n </ul>\n </transition>\n </div>\n <!-- Validation -->\n <transition mode=\"out-in\" name=\"fade\">\n <div v-if=\"validation\" class=\"mn-t-thin invalid-feedback\">\n * {{validation.message}}\n </div>\n </transition>\n</template>\n<script setup>\nimport { ref, computed, watch, nextTick } from 'vue'\nimport clickOutside from '../FieldPhone/click-outside.js';\nlet vClickOutside = clickOutside\nconst emit = defineEmits([\n 'update:select', \n 'focus', \n 'blur'\n])\nconst props = defineProps({\n label: String,\n placeholder: { type: String, default: 'Please select an item' },\n select: [String, Object],\n property: String,\n value: String,\n options: { type: Array, default: () => [] },\n validation: Boolean,\n})\nconst showMenu = ref(false)\nconst fieldWrapper = ref(null)\nconst optionsSelected = ref(\n props.property \n ? findObjectByValue(props.select, props.property, props.options) \n : props.select\n)\nconst optionsListed = computed(() => {\n return props.select \n ? props.options.filter(option => option !== props.select) \n : props.options\n})\nwatch(() => props.select, (newSelect) => {\n optionsSelected.value = \n props.property \n ? findObjectByValue(props.select, props.property, props.options) \n : props.select;\n});\nconst toggleMenu = async () => {\n showMenu.value = !showMenu.value\n \n if (showMenu.value) {\n await nextTick()\n fieldWrapper.value?.focus()\n emit('focus')\n } else {\n emit('blur')\n }\n}\nfunction clickedOutside () {\n showMenu.value = false\n}\nconst selectOption = option => {\n optionsSelected.value = option\n \n toggleMenu()\n if (props.property) { \n emit('update:select', optionsSelected.value[props.property])\n } else {\n emit('update:select', optionsSelected.value)\n }\n}\nfunction findObjectByValue (value, property, objects) {\n for (const object of objects) {\n if (object[property] === value || object === value) {\n return object;\n }\n }\n return null;\n}\n</script>\n<style lang=\"scss\" scoped>\n li {\n list-style-type: none;\n }\n ul li {\n line-height: 2;\n }\n .field-wrapper:focus {\n outline: none;\n }\n</style>"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,QAAI,gBAAgB;AACpB,UAAM,OAAO;AAKb,UAAM,QAAQ;AASd,UAAM,WAAW,IAAI,KAAK;AAC1B,UAAM,eAAe,IAAI,IAAI;AAC7B,UAAM,kBAAkB;AAAA,MACtB,MAAM,WACJ,kBAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,IAC7D,MAAM;AAAA,IACV;AACA,UAAM,gBAAgB,SAAS,MAAM;AACnC,aAAO,MAAM,SACX,MAAM,QAAQ,OAAO,YAAU,WAAW,MAAM,MAAM,IACtD,MAAM;AAAA,IACV,CAAC;AACD,UAAM,MAAM,MAAM,QAAQ,CAAC,cAAc;AACvC,sBAAgB,QAChB,MAAM,WACJ,kBAAkB,MAAM,QAAQ,MAAM,UAAU,MAAM,OAAO,IAC7D,MAAM;AAAA,IACV,CAAC;AACD,UAAM,aAAa,YAAY;AAC7B,eAAS,QAAQ,CAAC,SAAS;AAE3B,UAAI,SAAS,OAAO;AAClB,cAAM,SAAQ;AACd,qBAAa,OAAO,MAAK;AACzB,aAAK,OAAO;AAAA,MACd,OAAO;AACL,aAAK,MAAM;AAAA,MACb;AAAA,IACF;AACA,aAAS,iBAAkB;AACzB,eAAS,QAAQ;AAAA,IACnB;AACA,UAAM,eAAe,YAAU;AAC7B,sBAAgB,QAAQ;AAExB,iBAAU;AACV,UAAI,MAAM,UAAU;AAClB,aAAK,iBAAiB,gBAAgB,MAAM,MAAM,QAAQ,CAAC;AAAA,MAC7D,OAAO;AACL,aAAK,iBAAiB,gBAAgB,KAAK;AAAA,MAC7C;AAAA,IACF;AACA,aAAS,kBAAmB,OAAO,UAAU,SAAS;AACpD,iBAAW,UAAU,SAAS;AAC5B,YAAI,OAAO,QAAQ,MAAM,SAAS,WAAW,OAAO;AAClD,iBAAO;AAAA,QACT;AAAA,MACF;AACA,aAAO;AAAA,IACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Spoiler.vue.js","sources":["../../../../../src/components/Spoiler/Spoiler.vue"],"sourcesContent":["<template>\n <div>\n <div @click=\"toggleSpoiler\" class=\"flex-v-center flex-nowrap flex\">\n <slot name=\"header\" :isOpen=\"showSpoiler\"></slot>\n </div>\n <transition\n name=\"collapse\"\n @enter=\"onEnter\"\n @after-enter=\"onAfterEnter\"\n @leave=\"onLeave\"\n >\n <div v-show=\"showSpoiler\" class=\"spoiler\" ref=\"spoilerContent\">\n <slot name=\"content\"></slot>\n </div>\n </transition>\n </div>\n</template>\n<script setup>\nimport { ref, onMounted } from 'vue';\n\nconst props = defineProps({\n status: {\n type: Boolean,\n default: false\n }\n});\n\nconst showSpoiler = ref(false);\nconst spoilerContent = ref(null);\n\nonMounted(() => {\n if (props.status) {\n showSpoiler.value = props.status;\n }\n});\n\nconst toggleSpoiler = () => {\n showSpoiler.value = !showSpoiler.value;\n};\n\n// Анимация открытия\nconst onEnter = (el) => {\n el.style.height = '0';\n void el.offsetHeight; // force reflow\n el.style.height = el.scrollHeight + 'px';\n};\n\nconst onAfterEnter = (el) => {\n el.style.height = 'auto';\n};\n\n// Анимация закрытия\nconst onLeave = (el) => {\n el.style.height = el.scrollHeight + 'px';\n void el.offsetHeight; // force reflow\n el.style.height = '0';\n};\n\ndefineExpose({\n showSpoiler\n});\n</script>\n<style lang=\"scss\">\n.spoiler {\n overflow: hidden;\n transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n</style>"],"names":[],"mappings":";;;;;;;;;;;AAoBA,UAAM,QAAQ;AAOd,UAAM,cAAc,IAAI,KAAK;AAC7B,UAAM,iBAAiB,IAAI,IAAI;AAE/B,cAAU,MAAM;AACd,UAAI,MAAM,QAAQ;AAChB,oBAAY,QAAQ,MAAM;AAAA,MAC5B;AAAA,IACF,CAAC;AAED,UAAM,gBAAgB,MAAM;AAC1B,kBAAY,QAAQ,CAAC,YAAY;AAAA,IACnC;AAGA,UAAM,UAAU,CAAC,OAAO;AACtB,SAAG,MAAM,SAAS;AAClB,WAAK,GAAG;AACR,SAAG,MAAM,SAAS,GAAG,eAAe;AAAA,IACtC;AAEA,UAAM,eAAe,CAAC,OAAO;AAC3B,SAAG,MAAM,SAAS;AAAA,IACpB;AAGA,UAAM,UAAU,CAAC,OAAO;AACtB,SAAG,MAAM,SAAS,GAAG,eAAe;AACpC,WAAK,GAAG;AACR,SAAG,MAAM,SAAS;AAAA,IACpB;AAEA,aAAa;AAAA,MACX;AAAA,IACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"THC.vue.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"THC.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|