@ozdao/martyrs 0.2.450 → 0.2.451
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/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
- package/package.json +1 -1
- package/src/modules/globals/views/components/blocks/PopupDateSelector.vue +1 -1
- package/src/modules/globals/views/components/layouts/Client.vue +1 -1
|
@@ -136,7 +136,7 @@ const _sfc_main = {
|
|
|
136
136
|
availabilityError.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, vue.toDisplayString(availabilityError.value), 1)) : vue.createCommentVNode("", true),
|
|
137
137
|
vue.createVNode(PriceTotal.default, {
|
|
138
138
|
totalPrice: totalAmount.value,
|
|
139
|
-
currency:
|
|
139
|
+
currency: _ctx.returnCurrency(),
|
|
140
140
|
showFees: __props.showFees,
|
|
141
141
|
feesRate: __props.feesRate,
|
|
142
142
|
showVat: __props.showVat,
|
package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopupDateSelector.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/blocks/PopupDateSelector.vue"],"sourcesContent":["<template>\n <Popup @close-popup=\"closePopup\" :isPopupOpen=\"isOpen\" class=\"radius-medium tablet:w-min-30r pd-medium bg-white o-hidden\">\n <h5 class=\"w-100 t-center mn-b-small\">Select Rent Period</h5>\n <Calendar\n v-model:date=\"selectedDates\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n :availabilityData=\"availabilityData\"\n :showAvailability=\"true\"\n :lowAvailabilityThreshold=\"3\"\n class=\"bg-light radius-small\"\n :disabled=\"isLoading\"\n />\n <div v-if=\"isLoading\" class=\"flex w-100 mn-t-thin bg-light radius-small flex-center pd-thin mn-b-thin\">\n <Loader :centered=\"false\" />\n <span>Loading availability data...</span>\n </div>\n\n <div v-if=\"availabilityError\" class=\"pd-small t-error\">\n {{ availabilityError }}\n </div>\n \n <PriceTotal\n :totalPrice=\"totalAmount\"\n :currency=\"
|
|
1
|
+
{"version":3,"file":"PopupDateSelector.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/blocks/PopupDateSelector.vue"],"sourcesContent":["<template>\n <Popup @close-popup=\"closePopup\" :isPopupOpen=\"isOpen\" class=\"radius-medium tablet:w-min-30r pd-medium bg-white o-hidden\">\n <h5 class=\"w-100 t-center mn-b-small\">Select Rent Period</h5>\n <Calendar\n v-model:date=\"selectedDates\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n :availabilityData=\"availabilityData\"\n :showAvailability=\"true\"\n :lowAvailabilityThreshold=\"3\"\n class=\"bg-light radius-small\"\n :disabled=\"isLoading\"\n />\n <div v-if=\"isLoading\" class=\"flex w-100 mn-t-thin bg-light radius-small flex-center pd-thin mn-b-thin\">\n <Loader :centered=\"false\" />\n <span>Loading availability data...</span>\n </div>\n\n <div v-if=\"availabilityError\" class=\"pd-small t-error\">\n {{ availabilityError }}\n </div>\n \n <PriceTotal\n :totalPrice=\"totalAmount\"\n :currency=\"returnCurrency()\"\n :showFees=\"showFees\"\n :feesRate=\"feesRate\"\n :showVat=\"showVat\"\n :vatRate=\"vatRate\"\n />\n <Button\n @click=\"confirmSelection\"\n :disabled=\"!selectedDates.start || !selectedDates.end || isLoading || !isAvailable\"\n class=\"h-3r w-100 bg-main button\"\n >\n <div class=\"gap-thin flex flex-center flex-nowrap\">\n <IconShopcartAdd class=\"i-semi icon-button-main\" />\n <span>{{t('addtoorder')}}</span>\n </div>\n </Button>\n <Button\n v-if=\"showCancelButton\"\n @click=\"cancelSelection\"\n class=\"mn-t-thin h-3r w-100 t-white bg-red button\"\n >\n <span>{{ t('remove') }}</span>\n </Button>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, computed, watch, onMounted } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Loader from '@martyrs/src/components/Loader/Loader.vue'\nimport Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\nimport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue'\n// Import the store actions\nimport * as rents from '@martyrs/src/modules/rents/views/store/rents.store.js'\n\nconst props = defineProps({\n product: { type: Object, required: true },\n isOpen: { type: Boolean, required: true },\n showFees: { type: Boolean, default: false },\n showVat: { type: Boolean, default: false },\n feesRate: { type: Number, default: 0 },\n vatRate: { type: Number, default: 0 },\n onConfirm: { type: Function, required: true },\n onCancel: { type: Function, default: null },\n showCancelButton: { type: Boolean, default: false }\n})\n\nconst emit = defineEmits(['close'])\nconst { t } = useI18n({\n messages: {\n en: {\n addtoorder: 'Add to Shopcart'\n }\n }\n})\n\nconst selectedDates = ref({ start: null, end: null })\nconst availabilityData = ref([])\nconst isLoading = ref(false)\nconst availabilityError = ref(null)\nconst isAvailable = ref(true)\n\n// Load availability data for the current month and next month\nasync function loadAvailabilityData() {\n if (!props.product || !props.product._id) return;\n \n isLoading.value = true;\n availabilityError.value = null;\n \n try {\n const today = new Date();\n const start = new Date(today.getFullYear(), today.getMonth(), 1);\n const end = new Date(today.getFullYear(), today.getMonth() + 2, 0);\n \n const data = await rents.loadAvailability({\n productId: props.product._id,\n startDate: start.toISOString().split('T')[0],\n endDate: end.toISOString().split('T')[0]\n });\n \n if (data && data.availability) {\n availabilityData.value = data.availability;\n }\n } catch (error) {\n console.error('Error loading availability data:', error);\n availabilityError.value = 'Failed to load availability data. Please try again.';\n } finally {\n isLoading.value = false;\n }\n}\n\n// Check availability for selected date range\nasync function checkAvailability() {\n if (!selectedDates.value.start || !selectedDates.value.end || !props.product || !props.product._id) {\n isAvailable.value = false;\n return;\n }\n \n isLoading.value = true;\n availabilityError.value = null;\n \n try {\n const data = await rents.loadAvailability({\n productId: props.product._id,\n startDate: selectedDates.value.start.split('T')[0],\n endDate: selectedDates.value.end.split('T')[0]\n });\n \n isAvailable.value = data.available > 0;\n \n if (!isAvailable.value) {\n availabilityError.value = 'Product is not available for the selected dates.';\n }\n } catch (error) {\n console.error('Error checking availability:', error);\n availabilityError.value = 'Failed to check availability. Please try again.';\n isAvailable.value = false;\n } finally {\n isLoading.value = false;\n }\n}\n\nfunction calculateDays(start, end) {\n if (!start || !end) return 0\n const startDate = new Date(start)\n const endDate = new Date(end)\n const diffTime = endDate - startDate\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + 1\n return diffDays > 0 ? diffDays : 0\n}\n\nconst numberOfDays = computed(() => calculateDays(selectedDates.value.start, selectedDates.value.end))\nconst totalAmount = computed(() => props.product.price * numberOfDays.value)\n\nfunction closePopup() {\n emit('close')\n}\n\nfunction confirmSelection() {\n if (selectedDates.value.start && selectedDates.value.end && isAvailable.value) {\n props.onConfirm(selectedDates.value)\n closePopup()\n }\n}\n\nfunction cancelSelection() {\n if (props.onCancel) {\n props.onCancel()\n }\n closePopup()\n}\n\nwatch([() => selectedDates.value.start, () => selectedDates.value.end], ([newStart, newEnd]) => {\n if (newStart && newEnd) {\n // checkAvailability();\n }\n}, { immediate: false });\n\nwatch(() => props.isOpen, (newVal) => {\n if (newVal) {\n loadAvailabilityData();\n } else {\n selectedDates.value = { start: null, end: null };\n availabilityError.value = null;\n }\n}, { immediate: true });\n\nonMounted(() => {\n if (props.isOpen) {\n loadAvailabilityData();\n }\n});\n</script>"],"names":["useI18n","ref","rents.loadAvailability","computed","watch","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,UAAM,QAAQ;AAYd,UAAM,OAAO;AACb,UAAM,EAAE,EAAG,IAAGA,gBAAQ;AAAA,MACpB,UAAU;AAAA,QACR,IAAI;AAAA,UACF,YAAY;AAAA,QAClB;AAAA,MACA;AAAA,IACA,CAAC;AAED,UAAM,gBAAgBC,IAAG,IAAC,EAAE,OAAO,MAAM,KAAK,KAAM,CAAA;AACpD,UAAM,mBAAmBA,IAAG,IAAC,CAAE,CAAA;AAC/B,UAAM,YAAYA,IAAG,IAAC,KAAK;AAC3B,UAAM,oBAAoBA,IAAG,IAAC,IAAI;AAClC,UAAM,cAAcA,IAAG,IAAC,IAAI;AAG5B,mBAAe,uBAAuB;AACpC,UAAI,CAAC,MAAM,WAAW,CAAC,MAAM,QAAQ,IAAK;AAE1C,gBAAU,QAAQ;AAClB,wBAAkB,QAAQ;AAE1B,UAAI;AACF,cAAM,QAAQ,oBAAI,KAAM;AACxB,cAAM,QAAQ,IAAI,KAAK,MAAM,YAAW,GAAI,MAAM,SAAU,GAAE,CAAC;AAC/D,cAAM,MAAM,IAAI,KAAK,MAAM,eAAe,MAAM,SAAQ,IAAK,GAAG,CAAC;AAEjE,cAAM,OAAO,MAAMC,6BAAuB;AAAA,UACxC,WAAW,MAAM,QAAQ;AAAA,UACzB,WAAW,MAAM,YAAW,EAAG,MAAM,GAAG,EAAE,CAAC;AAAA,UAC3C,SAAS,IAAI,YAAW,EAAG,MAAM,GAAG,EAAE,CAAC;AAAA,QAC7C,CAAK;AAED,YAAI,QAAQ,KAAK,cAAc;AAC7B,2BAAiB,QAAQ,KAAK;AAAA,QACpC;AAAA,MACG,SAAQ,OAAO;AACd,gBAAQ,MAAM,oCAAoC,KAAK;AACvD,0BAAkB,QAAQ;AAAA,MAC9B,UAAY;AACR,kBAAU,QAAQ;AAAA,MACtB;AAAA,IACA;AAiCA,aAAS,cAAc,OAAO,KAAK;AACjC,UAAI,CAAC,SAAS,CAAC,IAAK,QAAO;AAC3B,YAAM,YAAY,IAAI,KAAK,KAAK;AAChC,YAAM,UAAU,IAAI,KAAK,GAAG;AAC5B,YAAM,WAAW,UAAU;AAC3B,YAAM,WAAW,KAAK,KAAK,YAAY,MAAO,KAAK,KAAK,GAAG,IAAI;AAC/D,aAAO,WAAW,IAAI,WAAW;AAAA,IACnC;AAEA,UAAM,eAAeC,IAAAA,SAAS,MAAM,cAAc,cAAc,MAAM,OAAO,cAAc,MAAM,GAAG,CAAC;AACrG,UAAM,cAAcA,IAAQ,SAAC,MAAM,MAAM,QAAQ,QAAQ,aAAa,KAAK;AAE3E,aAAS,aAAa;AACpB,WAAK,OAAO;AAAA,IACd;AAEA,aAAS,mBAAmB;AAC1B,UAAI,cAAc,MAAM,SAAS,cAAc,MAAM,OAAO,YAAY,OAAO;AAC7E,cAAM,UAAU,cAAc,KAAK;AACnC,mBAAU;AAAA,MACd;AAAA,IACA;AAEA,aAAS,kBAAkB;AACzB,UAAI,MAAM,UAAU;AAClB,cAAM,SAAQ;AAAA,MAClB;AACE,iBAAU;AAAA,IACZ;AAEAC,QAAK,MAAC,CAAC,MAAM,cAAc,MAAM,OAAO,MAAM,cAAc,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,MAAM,MAAM;AAAA,IAIhG,GAAG,EAAE,WAAW,OAAO;AAEvBA,QAAK,MAAC,MAAM,MAAM,QAAQ,CAAC,WAAW;AACpC,UAAI,QAAQ;AACV,6BAAsB;AAAA,MAC1B,OAAS;AACL,sBAAc,QAAQ,EAAE,OAAO,MAAM,KAAK,KAAM;AAChD,0BAAkB,QAAQ;AAAA,MAC9B;AAAA,IACA,GAAG,EAAE,WAAW,MAAM;AAEtBC,QAAAA,UAAU,MAAM;AACd,UAAI,MAAM,QAAQ;AAChB,6BAAsB;AAAA,MAC1B;AAAA,IACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -134,7 +134,7 @@ const _sfc_main = {
|
|
|
134
134
|
availabilityError.value ? (openBlock(), createElementBlock("div", _hoisted_2, toDisplayString(availabilityError.value), 1)) : createCommentVNode("", true),
|
|
135
135
|
createVNode(_sfc_main$2, {
|
|
136
136
|
totalPrice: totalAmount.value,
|
|
137
|
-
currency:
|
|
137
|
+
currency: _ctx.returnCurrency(),
|
|
138
138
|
showFees: __props.showFees,
|
|
139
139
|
feesRate: __props.feesRate,
|
|
140
140
|
showVat: __props.showVat,
|
package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PopupDateSelector.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/blocks/PopupDateSelector.vue"],"sourcesContent":["<template>\n <Popup @close-popup=\"closePopup\" :isPopupOpen=\"isOpen\" class=\"radius-medium tablet:w-min-30r pd-medium bg-white o-hidden\">\n <h5 class=\"w-100 t-center mn-b-small\">Select Rent Period</h5>\n <Calendar\n v-model:date=\"selectedDates\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n :availabilityData=\"availabilityData\"\n :showAvailability=\"true\"\n :lowAvailabilityThreshold=\"3\"\n class=\"bg-light radius-small\"\n :disabled=\"isLoading\"\n />\n <div v-if=\"isLoading\" class=\"flex w-100 mn-t-thin bg-light radius-small flex-center pd-thin mn-b-thin\">\n <Loader :centered=\"false\" />\n <span>Loading availability data...</span>\n </div>\n\n <div v-if=\"availabilityError\" class=\"pd-small t-error\">\n {{ availabilityError }}\n </div>\n \n <PriceTotal\n :totalPrice=\"totalAmount\"\n :currency=\"
|
|
1
|
+
{"version":3,"file":"PopupDateSelector.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/blocks/PopupDateSelector.vue"],"sourcesContent":["<template>\n <Popup @close-popup=\"closePopup\" :isPopupOpen=\"isOpen\" class=\"radius-medium tablet:w-min-30r pd-medium bg-white o-hidden\">\n <h5 class=\"w-100 t-center mn-b-small\">Select Rent Period</h5>\n <Calendar\n v-model:date=\"selectedDates\"\n :allowRange=\"true\"\n :disablePastDates=\"true\"\n :availabilityData=\"availabilityData\"\n :showAvailability=\"true\"\n :lowAvailabilityThreshold=\"3\"\n class=\"bg-light radius-small\"\n :disabled=\"isLoading\"\n />\n <div v-if=\"isLoading\" class=\"flex w-100 mn-t-thin bg-light radius-small flex-center pd-thin mn-b-thin\">\n <Loader :centered=\"false\" />\n <span>Loading availability data...</span>\n </div>\n\n <div v-if=\"availabilityError\" class=\"pd-small t-error\">\n {{ availabilityError }}\n </div>\n \n <PriceTotal\n :totalPrice=\"totalAmount\"\n :currency=\"returnCurrency()\"\n :showFees=\"showFees\"\n :feesRate=\"feesRate\"\n :showVat=\"showVat\"\n :vatRate=\"vatRate\"\n />\n <Button\n @click=\"confirmSelection\"\n :disabled=\"!selectedDates.start || !selectedDates.end || isLoading || !isAvailable\"\n class=\"h-3r w-100 bg-main button\"\n >\n <div class=\"gap-thin flex flex-center flex-nowrap\">\n <IconShopcartAdd class=\"i-semi icon-button-main\" />\n <span>{{t('addtoorder')}}</span>\n </div>\n </Button>\n <Button\n v-if=\"showCancelButton\"\n @click=\"cancelSelection\"\n class=\"mn-t-thin h-3r w-100 t-white bg-red button\"\n >\n <span>{{ t('remove') }}</span>\n </Button>\n </Popup>\n</template>\n\n<script setup>\nimport { ref, computed, watch, onMounted } from 'vue'\nimport { useI18n } from 'vue-i18n'\nimport Popup from '@martyrs/src/components/Popup/Popup.vue'\nimport Loader from '@martyrs/src/components/Loader/Loader.vue'\nimport Calendar from '@martyrs/src/components/DatePicker/Calendar.vue'\nimport Button from '@martyrs/src/components/Button/Button.vue'\nimport IconShopcartAdd from '@martyrs/src/modules/icons/actions/IconShopcartAdd.vue'\nimport PriceTotal from '@martyrs/src/modules/orders/components/elements/PriceTotal.vue'\n// Import the store actions\nimport * as rents from '@martyrs/src/modules/rents/views/store/rents.store.js'\n\nconst props = defineProps({\n product: { type: Object, required: true },\n isOpen: { type: Boolean, required: true },\n showFees: { type: Boolean, default: false },\n showVat: { type: Boolean, default: false },\n feesRate: { type: Number, default: 0 },\n vatRate: { type: Number, default: 0 },\n onConfirm: { type: Function, required: true },\n onCancel: { type: Function, default: null },\n showCancelButton: { type: Boolean, default: false }\n})\n\nconst emit = defineEmits(['close'])\nconst { t } = useI18n({\n messages: {\n en: {\n addtoorder: 'Add to Shopcart'\n }\n }\n})\n\nconst selectedDates = ref({ start: null, end: null })\nconst availabilityData = ref([])\nconst isLoading = ref(false)\nconst availabilityError = ref(null)\nconst isAvailable = ref(true)\n\n// Load availability data for the current month and next month\nasync function loadAvailabilityData() {\n if (!props.product || !props.product._id) return;\n \n isLoading.value = true;\n availabilityError.value = null;\n \n try {\n const today = new Date();\n const start = new Date(today.getFullYear(), today.getMonth(), 1);\n const end = new Date(today.getFullYear(), today.getMonth() + 2, 0);\n \n const data = await rents.loadAvailability({\n productId: props.product._id,\n startDate: start.toISOString().split('T')[0],\n endDate: end.toISOString().split('T')[0]\n });\n \n if (data && data.availability) {\n availabilityData.value = data.availability;\n }\n } catch (error) {\n console.error('Error loading availability data:', error);\n availabilityError.value = 'Failed to load availability data. Please try again.';\n } finally {\n isLoading.value = false;\n }\n}\n\n// Check availability for selected date range\nasync function checkAvailability() {\n if (!selectedDates.value.start || !selectedDates.value.end || !props.product || !props.product._id) {\n isAvailable.value = false;\n return;\n }\n \n isLoading.value = true;\n availabilityError.value = null;\n \n try {\n const data = await rents.loadAvailability({\n productId: props.product._id,\n startDate: selectedDates.value.start.split('T')[0],\n endDate: selectedDates.value.end.split('T')[0]\n });\n \n isAvailable.value = data.available > 0;\n \n if (!isAvailable.value) {\n availabilityError.value = 'Product is not available for the selected dates.';\n }\n } catch (error) {\n console.error('Error checking availability:', error);\n availabilityError.value = 'Failed to check availability. Please try again.';\n isAvailable.value = false;\n } finally {\n isLoading.value = false;\n }\n}\n\nfunction calculateDays(start, end) {\n if (!start || !end) return 0\n const startDate = new Date(start)\n const endDate = new Date(end)\n const diffTime = endDate - startDate\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)) + 1\n return diffDays > 0 ? diffDays : 0\n}\n\nconst numberOfDays = computed(() => calculateDays(selectedDates.value.start, selectedDates.value.end))\nconst totalAmount = computed(() => props.product.price * numberOfDays.value)\n\nfunction closePopup() {\n emit('close')\n}\n\nfunction confirmSelection() {\n if (selectedDates.value.start && selectedDates.value.end && isAvailable.value) {\n props.onConfirm(selectedDates.value)\n closePopup()\n }\n}\n\nfunction cancelSelection() {\n if (props.onCancel) {\n props.onCancel()\n }\n closePopup()\n}\n\nwatch([() => selectedDates.value.start, () => selectedDates.value.end], ([newStart, newEnd]) => {\n if (newStart && newEnd) {\n // checkAvailability();\n }\n}, { immediate: false });\n\nwatch(() => props.isOpen, (newVal) => {\n if (newVal) {\n loadAvailabilityData();\n } else {\n selectedDates.value = { start: null, end: null };\n availabilityError.value = null;\n }\n}, { immediate: true });\n\nonMounted(() => {\n if (props.isOpen) {\n loadAvailabilityData();\n }\n});\n</script>"],"names":["rents.loadAvailability"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,UAAM,QAAQ;AAYd,UAAM,OAAO;AACb,UAAM,EAAE,EAAG,IAAG,QAAQ;AAAA,MACpB,UAAU;AAAA,QACR,IAAI;AAAA,UACF,YAAY;AAAA,QAClB;AAAA,MACA;AAAA,IACA,CAAC;AAED,UAAM,gBAAgB,IAAI,EAAE,OAAO,MAAM,KAAK,KAAM,CAAA;AACpD,UAAM,mBAAmB,IAAI,CAAE,CAAA;AAC/B,UAAM,YAAY,IAAI,KAAK;AAC3B,UAAM,oBAAoB,IAAI,IAAI;AAClC,UAAM,cAAc,IAAI,IAAI;AAG5B,mBAAe,uBAAuB;AACpC,UAAI,CAAC,MAAM,WAAW,CAAC,MAAM,QAAQ,IAAK;AAE1C,gBAAU,QAAQ;AAClB,wBAAkB,QAAQ;AAE1B,UAAI;AACF,cAAM,QAAQ,oBAAI,KAAM;AACxB,cAAM,QAAQ,IAAI,KAAK,MAAM,YAAW,GAAI,MAAM,SAAU,GAAE,CAAC;AAC/D,cAAM,MAAM,IAAI,KAAK,MAAM,eAAe,MAAM,SAAQ,IAAK,GAAG,CAAC;AAEjE,cAAM,OAAO,MAAMA,iBAAuB;AAAA,UACxC,WAAW,MAAM,QAAQ;AAAA,UACzB,WAAW,MAAM,YAAW,EAAG,MAAM,GAAG,EAAE,CAAC;AAAA,UAC3C,SAAS,IAAI,YAAW,EAAG,MAAM,GAAG,EAAE,CAAC;AAAA,QAC7C,CAAK;AAED,YAAI,QAAQ,KAAK,cAAc;AAC7B,2BAAiB,QAAQ,KAAK;AAAA,QACpC;AAAA,MACG,SAAQ,OAAO;AACd,gBAAQ,MAAM,oCAAoC,KAAK;AACvD,0BAAkB,QAAQ;AAAA,MAC9B,UAAY;AACR,kBAAU,QAAQ;AAAA,MACtB;AAAA,IACA;AAiCA,aAAS,cAAc,OAAO,KAAK;AACjC,UAAI,CAAC,SAAS,CAAC,IAAK,QAAO;AAC3B,YAAM,YAAY,IAAI,KAAK,KAAK;AAChC,YAAM,UAAU,IAAI,KAAK,GAAG;AAC5B,YAAM,WAAW,UAAU;AAC3B,YAAM,WAAW,KAAK,KAAK,YAAY,MAAO,KAAK,KAAK,GAAG,IAAI;AAC/D,aAAO,WAAW,IAAI,WAAW;AAAA,IACnC;AAEA,UAAM,eAAe,SAAS,MAAM,cAAc,cAAc,MAAM,OAAO,cAAc,MAAM,GAAG,CAAC;AACrG,UAAM,cAAc,SAAS,MAAM,MAAM,QAAQ,QAAQ,aAAa,KAAK;AAE3E,aAAS,aAAa;AACpB,WAAK,OAAO;AAAA,IACd;AAEA,aAAS,mBAAmB;AAC1B,UAAI,cAAc,MAAM,SAAS,cAAc,MAAM,OAAO,YAAY,OAAO;AAC7E,cAAM,UAAU,cAAc,KAAK;AACnC,mBAAU;AAAA,MACd;AAAA,IACA;AAEA,aAAS,kBAAkB;AACzB,UAAI,MAAM,UAAU;AAClB,cAAM,SAAQ;AAAA,MAClB;AACE,iBAAU;AAAA,IACZ;AAEA,UAAM,CAAC,MAAM,cAAc,MAAM,OAAO,MAAM,cAAc,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,MAAM,MAAM;AAAA,IAIhG,GAAG,EAAE,WAAW,OAAO;AAEvB,UAAM,MAAM,MAAM,QAAQ,CAAC,WAAW;AACpC,UAAI,QAAQ;AACV,6BAAsB;AAAA,MAC1B,OAAS;AACL,sBAAc,QAAQ,EAAE,OAAO,MAAM,KAAK,KAAM;AAChD,0BAAkB,QAAQ;AAAA,MAC9B;AAAA,IACA,GAAG,EAAE,WAAW,MAAM;AAEtB,cAAU,MAAM;AACd,UAAI,MAAM,QAAQ;AAChB,6BAAsB;AAAA,MAC1B;AAAA,IACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -162,7 +162,7 @@ const _sfc_main = {
|
|
|
162
162
|
widthHidden: (_b = vue.unref(route).meta) == null ? void 0 : _b.sidebar_width_hidden,
|
|
163
163
|
width: (_c = vue.unref(route).meta) == null ? void 0 : _c.sidebar_width,
|
|
164
164
|
theme: headerTheme.value,
|
|
165
|
-
onCloseSidebar: _cache[0] || (_cache[0] = () => globals.state.isOpenSidebar =
|
|
165
|
+
onCloseSidebar: _cache[0] || (_cache[0] = () => globals.state.isOpenSidebar = false)
|
|
166
166
|
}, {
|
|
167
167
|
default: vue.withCtx(({ Component }) => [
|
|
168
168
|
vue.createVNode(vue.Transition, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/layouts/Client.vue"],"sourcesContent":["<template>\n\t<div \n\t\tid=\"app-wrapper\"\n\t\tclass=\"pos-relative o-hidden\"\n\t\t:class=\"{\n \t\t'pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t'bg-white': headerTheme === 'light',\n\t\t\t'bg-black': headerTheme === 'dark' \n \t}\"\n\t>\n\t\t<transition name=\"moveFromTop\" appear>\n\t\t\t<Loader v-if=\"!page || isPageLoading\" class=\"pos-fixed\"/>\n\t\t</transition>\n\t\n <component\n\t\t\tv-if=\"!MOBILE_APP && route.meta.header\"\n ref=\"header\" \n :is=\"route.meta.header\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.logotype\"\n :location=\"route.meta.location\"\n >\n \t<component\n\t\t v-if=\"route.meta?.header_navigation\"\n\t\t :is=\"route.meta.header_navigation\"\n\t\t :horizontal=\"true\"\n\t\t\t\t:navigationItems=\"route.meta.sidebar_navigation_items\"\n\t\t\t\t:stateSidebar=\"globals.state.isOpenSidebar\" \n\t\t\t\t:theme=\"headerTheme\"\n\t\t />\n \t</component>\n\n\t\t<transition name=\"moveFromTop\" mode=\"out-in\" appear>\n\t\t\t<component\n \tv-if=\"MOBILE_APP && !route.meta.hideNavigationBar\"\n :is=\"route.meta.navigationbar\"\n :logotype=\"route.meta.logotype\"\n :navigationItems=\"route.meta.sidebar_navigation_items\"\n\t :stateSidebar=\"globals.state.isOpenSidebar\" \n />\n\t\t</transition>\n\n\t <Popup \n\t \t@close-popup=\"closeLocationPopup\" \n\t \t:isPopupOpen=\"globals.state.isOpenLocationPopup\"\n\t \tclass=\"bg-white pd-semi w-m-33r radius-big\"\n\t >\t\n\t \t<LocationSelection />\n\t </Popup>\n\n\t\t<section \n\t\t\tid=\"screen\" \n\t\t\tref=\"screen\"\n\t\t\t@scroll=\"handleScroll\"\n\t\t\tclass=\"flex flex-nowrap transition-ease-in-out o-hidden pos-relative\"\n\t\t\t:class=\"{\n\t\t\t\t'': MOBILE_APP === 'ios',\n }\"\n\t\t>\n\t\t\t<ShopCart \n\t\t\t\t:class=\"{\n\t\t\t\t\t'mobile:pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t\t}\"\n\t\t\t/>\n\n\t\t\t<!-- <section v-if=\"!route.meta?.breadcrumbs?.hide\" class=\"pd-thin pd-b-zero\">\n\t\t\t\t<Breadcrumbs \n\t\t\t\t\tv-if=\"!MOBILE_APP\"\n\t\t\t\t\tclass=\"bg-light pd-small radius-big\"\n\t\t\t\t/>\n\t\t\t</section> -->\n\n\t <component\n\t v-if=\"route.meta?.sidebar && !MOBILE_APP\"\n\t v-slot=\"{ Component }\"\n\t :is=\"route.meta.sidebar\"\n\t :stateSidebar=\"globals.state.isOpenSidebar\" \n\t :widthHidden='route.meta?.sidebar_width_hidden'\n\t :width=\"route.meta?.sidebar_width\"\n\t :theme=\"headerTheme\"\n\t @closeSidebar=\"() => globals.state.isOpenSidebar = !globals.state.isOpenSidebar\"\n\t >\n\t \t<transition name=\"moveFromTop\" mode=\"out-in\" appear>\n\t\t <component\n\t\t v-if=\"route.meta?.sidebar_navigation\"\n\t\t :is=\"route.meta.sidebar_navigation\"\n\t\t :key=\"route.meta.sidebar_navigation\"\n\t\t :navigationItems=\"route.meta.sidebar_navigation_items\"\n\t\t\t :stateSidebar=\"globals.state.isOpenSidebar\" \n\t\t\t\t\t\t:theme=\"headerTheme\"\n\t\t />\n\t </transition>\n\t </component>\n\t\t \n\t\t <div class=\"rows-1-min0_max1 z-index-1 pos-relative w-100 h-100\">\n \t\t\t<Status \n\t\t\t\t\tv-if=\"globals.state.error.show\" \n\t\t\t\t\t:data=\"globals.state.error\"\n\t\t\t\t\t@close=\"globals.state.error.show = false\"\n\t\t\t\t\tclass=\"z-index-7\" \n\t\t\t\t/>\n\t\t\t\t <Suspense @resolve=\"onSuspenseResolved\">\n\t\t\t\t\t<router-view \n\t\t\t\t\t\tv-slot=\"{ Component, route }\" \n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'scroll-hide': MOBILE_APP,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\tclass=\"o-y-scroll o-x-hidden flex flex-column pos-relative h-100\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<transition @before-enter=\"scrollTop\" name=\"scaleTransition\" mode=\"out-in\" appear>\n\t\t\t \t<component \n\t\t\t \t\tref=\"page\" \n\t\t\t \t\t:is=\"Component\" \n\t\t\t \t\t:key=\"route.path\"\n\t\t\t \t\tclass=\"w-100 h-min-100\"\n\t\t \t\t \t@page-loading=\"handlePageLoading\"\n\t @page-loaded=\"handlePageLoaded\"\n\t\t\t \t/>\n\t\t\t \t<!-- Key пока выключил непонятно какие проблемы это вызовет -->\n\t\t\t \t<!-- -->\n\t\t\t </transition>\n\n\t\t\t <!-- <Footer /> -->\n\t\t\t\t\t</router-view>\n\t\t\t\t</Suspense>\n\t\t\t</div>\n\t\t</section>\n\n\t\t<router-view \n\t\t\tname=\"defaultBottom\"\n\t\t\tv-slot=\"{ Component, route }\" \n\t\t>\n\t\t\t<component \n \t\t:is=\"Component\" \n \t/>\n\t\t</router-view>\n\n\t <component\n\t\t\tv-if=\"!MOBILE_APP && route.meta.footer?.component && !route.meta.hideFooter\"\n ref=\"footer\" \n :is=\"route.meta.footer.component\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.footer.logotype\"\n :location=\"route.meta.footer.location\"\n />\n\n <component \n v-if=\"MOBILE_APP && route.meta.title_hide\"\n class=\"z-index-2\"\n \t:is=\"route.meta.bottombar\"\n />\n\t</div>\n</template>\n\n\n\n<script setup>\n\timport { computed, ref, onMounted, watch } from 'vue';\n\t// Router\n\timport { useRoute } from 'vue-router';\n\t// Store\n\timport * as globals from '@martyrs/src/modules/globals/views/store/globals';\n\t// Partials\n\timport Status from '@martyrs/src/components/Status/Status.vue';\n\timport Popup from '@martyrs/src/components/Popup/Popup.vue';\n\t// import Breadcrumbs from '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Loader from '@martyrs/src/components/Loader/Loader.vue';\n\n\timport NavigationBar from '@martyrs/src/modules/globals/views/components/partials/NavigationBar.vue';\n\timport LocationSelection from '@martyrs/src/modules/globals/views/components/partials/LocationSelection.vue';\n\t// import Footer from '@martyrs/src/modules/globals/views/components/partials/Footer.vue'\n\n\timport ShopCart from '@martyrs/src/modules/orders/components/partials/ShopCart.vue';\n\t/////////////////////////////\n // LOADING\n /////////////////////////////\n // State\n let show = ref(false)\n // Preloader\n const page = ref(null)\n\n const isPageLoading = ref(true);\n \n // Обработчики событий загрузки\n function handlePageLoading() {\n isPageLoading.value = true;\n }\n \n function handlePageLoaded() {\n isPageLoading.value = false;\n }\n \n // Обработка события разрешения Suspense (когда async setup компонента завершается)\n function onSuspenseResolved() {\n // Если страница не отправляет событие page-loaded, этот обработчик \n // может служить запасным вариантом для отключения лоадера\n // Можно оставить закомментированным, если все страницы будут явно вызывать handlePageLoaded\n isPageLoading.value = false;\n }\n\t/////////////////////////////\n\t// CREATED\n\t/////////////////////////////\n\tconst route = useRoute()\n\t// const router = useRouter()\n\t// Ref Code\n\tconst referalCode = ref(route.query.referalCode);\n\t/////////////////////////////\n\t// Methods\n\t/////////////////////////////\n\tfunction closeLocationPopup() {\n\t globals.state.isOpenLocationPopup = false;\n\t}\n\tfunction scrollTop(){\n\t\tdocument.getElementById('app').scrollIntoView();\n\t}\n\t// Scrolling header\n\tconst scrollOffset = ref(0)\n\tlet isScrolled = false\n\tconst header = ref(null)\n\n\tconst headerTheme = computed(() => {\n\t\tif (scrollOffset.value > 50) {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t} else {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t}\n\t})\n\n\tconst handleScroll = () => {\n\t scrollOffset.value = event.target.scrollTop\n\t};\n\n\tonMounted(async () => {\n\t\t \n\t\tif ('serviceWorker' in navigator) {\n\t \twindow.addEventListener('load', () => {\n\t \tnavigator.serviceWorker.register('/service-worker.js').then(registration => {\n\t \tconsole.log('SW registered: ', registration);\n\t \t}).catch(registrationError => {\n\t \tconsole.log('SW registration failed: ', registrationError);\n\t \t});\n\t });\n\t \t}\n\t\t\n\t\tconst savedPosition = localStorage.getItem('position');\n\n\t if (savedPosition) {\n\t globals.state.position = JSON.parse(savedPosition);\n\t } else if (route.meta.location) {\n \t\tglobals.state.isOpenLocationPopup = true;\n\t } else {\n\t \tglobals.state.isOpenLocationPopup = false;\n\t }\n\n\t\tif (referalCode.value) {\n\t\t localStorage.setItem('referalCode', referalCode.value);\n\t\t}\n\n\t\tif (page.value) show.value = true\n\t});\n</script>\n\n<style lang=\"scss\">\n\t.fade-enter-active, .fade-leave-active {\n\t transition: opacity .5s;\n\t}\n\t.fade-enter, .fade-leave-to /* .fade-leave-active в версии 2.1.8+ */ {\n\t opacity: 0;\n\t}\n\n\t\n .fade-move,\n .fade-enter-active,\n .fade-leave-active {\n transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);\n }\n\n /* 2. declare enter from and leave to state */\n .fade-enter-from,\n .fade-leave-to {\n opacity: 0;\n transform: translate(30px, 0);\n }\n\n /* 3. ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n .fade-leave-active {\n position: absolute;\n }\n\n.moveFromTop-enter-active,\n.moveFromTop-leave-active {\n transition: all 0.3s ease, max-height 0.2s ease;\n overflow: hidden;\n}\n\n.moveFromTop-enter-from,\n.moveFromTop-leave-to {\n transform: translateY(-1rem);\n opacity: 0;\n // max-height: 0;\n}\n\n.moveFromTop-enter-to,\n.moveFromTop-leave-from {\n // max-height: 100vh; \n}\n\n\t.moveFromTopAbsolute-enter-active,\n\t.moveFromTopAbsolute-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.moveFromTopAbsolute-enter-from,\n\t.moveFromTopAbsolute-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\t.ScaleOut-enter-active,\n\t.ScaleOut-leave-active {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t\ttransition: all 0.3s ease; \n\t\t\n\t}\n\t.ScaleOut-enter-from,\n\t.ScaleOut-leave-to {\n\t\topacity: 0;\n\t\ttransform: scale(0.9);\n\t\ttransition: all 0.3s ease;\n\t}\n\t.slide-fade-enter-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-leave-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-enter-from,\n\t.slide-fade-leave-to {\n\t\tmin-height: 0;\n\t transform: translateX(20px);\n\t opacity: 0;\n\t left: 0;\n\t top: 0;\n\t}\n\n\t.scaleTransition-5px-enter-active,\n .scaleTransition-5px-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.2s ease;\n }\n\n .scaleTransition-5px-enter-from,\n .scaleTransition-5px-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n transform: translateY(-30px); \n transition: all 0.2s ease;\n }\n\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleTransition-enter-active,\n .scaleTransition-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.5s ease;\n }\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleIn-enter-active,\n .scaleIn-leave-active {\n // background: red;\n transition: all 0.5s ease;\n > section,div { transform-origin: 0 0; transform: translateZ(0px); transition: all 0.5s ease; }\n }\n .scaleIn-enter-from,\n .scaleIn-leave-to {\n opacity: 0;\n transform: scale(0.95);\n > section,div { transform: translateZ(-30px); transition: all 0.5s ease; }\n }\n</style>"],"names":["ref","useRoute","globals.state","computed","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;AAiLE,QAAI,OAAOA,IAAAA,IAAI,KAAK;AAEpB,UAAM,OAAOA,IAAAA,IAAI,IAAI;AAErB,UAAM,gBAAgBA,IAAG,IAAC,IAAI;AAG9B,aAAS,oBAAoB;AAC3B,oBAAc,QAAQ;AAAA,IAC1B;AAEE,aAAS,mBAAmB;AAC1B,oBAAc,QAAQ;AAAA,IAC1B;AAGE,aAAS,qBAAqB;AAI5B,oBAAc,QAAQ;AAAA,IAC1B;AAIC,UAAM,QAAQC,UAAQ,SAAA;AAGtB,UAAM,cAAcD,IAAG,IAAC,MAAM,MAAM,WAAW;AAI/C,aAAS,qBAAqB;AAC5BE,cAAa,MAAC,sBAAsB;AAAA,IACvC;AACC,aAAS,YAAW;AACnB,eAAS,eAAe,KAAK,EAAE,eAAgB;AAAA,IACjD;AAEC,UAAM,eAAeF,IAAAA,IAAI,CAAC;AAE1B,UAAM,SAASA,IAAAA,IAAI,IAAI;AAEvB,UAAM,cAAcG,IAAAA,SAAS,MAAM;AAClC,UAAI,aAAa,QAAQ,IAAI;AAC5B,eAAO,MAAM,KAAK,gBAAiB;AAAA,MACtC,OAAS;AACN,eAAO,MAAM,KAAK,gBAAgB;AAAA,MACrC;AAAA,IACE,CAAA;AAED,UAAM,eAAe,MAAM;AACzB,mBAAa,QAAQ,MAAM,OAAO;AAAA,IACnC;AAEDC,QAAAA,UAAU,YAAY;AAErB,UAAI,mBAAmB,WAAW;AAC/B,eAAO,iBAAiB,QAAQ,MAAM;AACpC,oBAAU,cAAc,SAAS,oBAAoB,EAAE,KAAK,kBAAgB;AAC1E,oBAAQ,IAAI,mBAAmB,YAAY;AAAA,UACpD,CAAQ,EAAE,MAAM,uBAAqB;AAC5B,oBAAQ,IAAI,4BAA4B,iBAAiB;AAAA,UAClE,CAAQ;AAAA,QACR,CAAK;AAAA,MACL;AAEE,YAAM,gBAAgB,aAAa,QAAQ,UAAU;AAEpD,UAAI,eAAe;AACjBF,gBAAAA,MAAc,WAAW,KAAK,MAAM,aAAa;AAAA,MACtD,WAAc,MAAM,KAAK,UAAU;AAC/BA,gBAAa,MAAC,sBAAsB;AAAA,MACxC,OAAU;AACNA,gBAAa,MAAC,sBAAsB;AAAA,MACxC;AAEE,UAAI,YAAY,OAAO;AACrB,qBAAa,QAAQ,eAAe,YAAY,KAAK;AAAA,MACzD;AAEE,UAAI,KAAK,MAAO,MAAK,QAAQ;AAAA,IAC/B,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"Client.vue.cjs","sources":["../../../../../../../../src/modules/globals/views/components/layouts/Client.vue"],"sourcesContent":["<template>\n\t<div \n\t\tid=\"app-wrapper\"\n\t\tclass=\"pos-relative o-hidden\"\n\t\t:class=\"{\n \t\t'pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t'bg-white': headerTheme === 'light',\n\t\t\t'bg-black': headerTheme === 'dark' \n \t}\"\n\t>\n\t\t<transition name=\"moveFromTop\" appear>\n\t\t\t<Loader v-if=\"!page || isPageLoading\" class=\"pos-fixed\"/>\n\t\t</transition>\n\t\n <component\n\t\t\tv-if=\"!MOBILE_APP && route.meta.header\"\n ref=\"header\" \n :is=\"route.meta.header\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.logotype\"\n :location=\"route.meta.location\"\n >\n \t<component\n\t\t v-if=\"route.meta?.header_navigation\"\n\t\t :is=\"route.meta.header_navigation\"\n\t\t :horizontal=\"true\"\n\t\t\t\t:navigationItems=\"route.meta.sidebar_navigation_items\"\n\t\t\t\t:stateSidebar=\"globals.state.isOpenSidebar\" \n\t\t\t\t:theme=\"headerTheme\"\n\t\t />\n \t</component>\n\n\t\t<transition name=\"moveFromTop\" mode=\"out-in\" appear>\n\t\t\t<component\n \tv-if=\"MOBILE_APP && !route.meta.hideNavigationBar\"\n :is=\"route.meta.navigationbar\"\n :logotype=\"route.meta.logotype\"\n :navigationItems=\"route.meta.sidebar_navigation_items\"\n\t :stateSidebar=\"globals.state.isOpenSidebar\" \n />\n\t\t</transition>\n\n\t <Popup \n\t \t@close-popup=\"closeLocationPopup\" \n\t \t:isPopupOpen=\"globals.state.isOpenLocationPopup\"\n\t \tclass=\"bg-white pd-semi w-m-33r radius-big\"\n\t >\t\n\t \t<LocationSelection />\n\t </Popup>\n\n\t\t<section \n\t\t\tid=\"screen\" \n\t\t\tref=\"screen\"\n\t\t\t@scroll=\"handleScroll\"\n\t\t\tclass=\"flex flex-nowrap transition-ease-in-out o-hidden pos-relative\"\n\t\t\t:class=\"{\n\t\t\t\t'': MOBILE_APP === 'ios',\n }\"\n\t\t>\n\t\t\t<ShopCart \n\t\t\t\t:class=\"{\n\t\t\t\t\t'mobile:pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t\t}\"\n\t\t\t/>\n\n\t\t\t<!-- <section v-if=\"!route.meta?.breadcrumbs?.hide\" class=\"pd-thin pd-b-zero\">\n\t\t\t\t<Breadcrumbs \n\t\t\t\t\tv-if=\"!MOBILE_APP\"\n\t\t\t\t\tclass=\"bg-light pd-small radius-big\"\n\t\t\t\t/>\n\t\t\t</section> -->\n\n\t <component\n\t v-if=\"route.meta?.sidebar && !MOBILE_APP\"\n\t v-slot=\"{ Component }\"\n\t :is=\"route.meta.sidebar\"\n\t :stateSidebar=\"globals.state.isOpenSidebar\" \n\t :widthHidden='route.meta?.sidebar_width_hidden'\n\t :width=\"route.meta?.sidebar_width\"\n\t :theme=\"headerTheme\"\n\t @closeSidebar=\"() => globals.state.isOpenSidebar = false\"\n\t >\n\t \t<transition name=\"moveFromTop\" mode=\"out-in\" appear>\n\t\t <component\n\t\t v-if=\"route.meta?.sidebar_navigation\"\n\t\t :is=\"route.meta.sidebar_navigation\"\n\t\t :key=\"route.meta.sidebar_navigation\"\n\t\t :navigationItems=\"route.meta.sidebar_navigation_items\"\n\t\t\t :stateSidebar=\"globals.state.isOpenSidebar\" \n\t\t\t\t\t\t:theme=\"headerTheme\"\n\t\t />\n\t </transition>\n\t </component>\n\t\t \n\t\t <div class=\"rows-1-min0_max1 z-index-1 pos-relative w-100 h-100\">\n \t\t\t<Status \n\t\t\t\t\tv-if=\"globals.state.error.show\" \n\t\t\t\t\t:data=\"globals.state.error\"\n\t\t\t\t\t@close=\"globals.state.error.show = false\"\n\t\t\t\t\tclass=\"z-index-7\" \n\t\t\t\t/>\n\t\t\t\t <Suspense @resolve=\"onSuspenseResolved\">\n\t\t\t\t\t<router-view \n\t\t\t\t\t\tv-slot=\"{ Component, route }\" \n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'scroll-hide': MOBILE_APP,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\tclass=\"o-y-scroll o-x-hidden flex flex-column pos-relative h-100\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<transition @before-enter=\"scrollTop\" name=\"scaleTransition\" mode=\"out-in\" appear>\n\t\t\t \t<component \n\t\t\t \t\tref=\"page\" \n\t\t\t \t\t:is=\"Component\" \n\t\t\t \t\t:key=\"route.path\"\n\t\t\t \t\tclass=\"w-100 h-min-100\"\n\t\t \t\t \t@page-loading=\"handlePageLoading\"\n\t @page-loaded=\"handlePageLoaded\"\n\t\t\t \t/>\n\t\t\t \t<!-- Key пока выключил непонятно какие проблемы это вызовет -->\n\t\t\t \t<!-- -->\n\t\t\t </transition>\n\n\t\t\t <!-- <Footer /> -->\n\t\t\t\t\t</router-view>\n\t\t\t\t</Suspense>\n\t\t\t</div>\n\t\t</section>\n\n\t\t<router-view \n\t\t\tname=\"defaultBottom\"\n\t\t\tv-slot=\"{ Component, route }\" \n\t\t>\n\t\t\t<component \n \t\t:is=\"Component\" \n \t/>\n\t\t</router-view>\n\n\t <component\n\t\t\tv-if=\"!MOBILE_APP && route.meta.footer?.component && !route.meta.hideFooter\"\n ref=\"footer\" \n :is=\"route.meta.footer.component\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.footer.logotype\"\n :location=\"route.meta.footer.location\"\n />\n\n <component \n v-if=\"MOBILE_APP && route.meta.title_hide\"\n class=\"z-index-2\"\n \t:is=\"route.meta.bottombar\"\n />\n\t</div>\n</template>\n\n\n\n<script setup>\n\timport { computed, ref, onMounted, watch } from 'vue';\n\t// Router\n\timport { useRoute } from 'vue-router';\n\t// Store\n\timport * as globals from '@martyrs/src/modules/globals/views/store/globals';\n\t// Partials\n\timport Status from '@martyrs/src/components/Status/Status.vue';\n\timport Popup from '@martyrs/src/components/Popup/Popup.vue';\n\t// import Breadcrumbs from '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Loader from '@martyrs/src/components/Loader/Loader.vue';\n\n\timport NavigationBar from '@martyrs/src/modules/globals/views/components/partials/NavigationBar.vue';\n\timport LocationSelection from '@martyrs/src/modules/globals/views/components/partials/LocationSelection.vue';\n\t// import Footer from '@martyrs/src/modules/globals/views/components/partials/Footer.vue'\n\n\timport ShopCart from '@martyrs/src/modules/orders/components/partials/ShopCart.vue';\n\t/////////////////////////////\n // LOADING\n /////////////////////////////\n // State\n let show = ref(false)\n // Preloader\n const page = ref(null)\n\n const isPageLoading = ref(true);\n \n // Обработчики событий загрузки\n function handlePageLoading() {\n isPageLoading.value = true;\n }\n \n function handlePageLoaded() {\n isPageLoading.value = false;\n }\n \n // Обработка события разрешения Suspense (когда async setup компонента завершается)\n function onSuspenseResolved() {\n // Если страница не отправляет событие page-loaded, этот обработчик \n // может служить запасным вариантом для отключения лоадера\n // Можно оставить закомментированным, если все страницы будут явно вызывать handlePageLoaded\n isPageLoading.value = false;\n }\n\t/////////////////////////////\n\t// CREATED\n\t/////////////////////////////\n\tconst route = useRoute()\n\t// const router = useRouter()\n\t// Ref Code\n\tconst referalCode = ref(route.query.referalCode);\n\t/////////////////////////////\n\t// Methods\n\t/////////////////////////////\n\tfunction closeLocationPopup() {\n\t globals.state.isOpenLocationPopup = false;\n\t}\n\tfunction scrollTop(){\n\t\tdocument.getElementById('app').scrollIntoView();\n\t}\n\t// Scrolling header\n\tconst scrollOffset = ref(0)\n\tlet isScrolled = false\n\tconst header = ref(null)\n\n\tconst headerTheme = computed(() => {\n\t\tif (scrollOffset.value > 50) {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t} else {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t}\n\t})\n\n\tconst handleScroll = () => {\n\t scrollOffset.value = event.target.scrollTop\n\t};\n\n\tonMounted(async () => {\n\t\t \n\t\tif ('serviceWorker' in navigator) {\n\t \twindow.addEventListener('load', () => {\n\t \tnavigator.serviceWorker.register('/service-worker.js').then(registration => {\n\t \tconsole.log('SW registered: ', registration);\n\t \t}).catch(registrationError => {\n\t \tconsole.log('SW registration failed: ', registrationError);\n\t \t});\n\t });\n\t \t}\n\t\t\n\t\tconst savedPosition = localStorage.getItem('position');\n\n\t if (savedPosition) {\n\t globals.state.position = JSON.parse(savedPosition);\n\t } else if (route.meta.location) {\n \t\tglobals.state.isOpenLocationPopup = true;\n\t } else {\n\t \tglobals.state.isOpenLocationPopup = false;\n\t }\n\n\t\tif (referalCode.value) {\n\t\t localStorage.setItem('referalCode', referalCode.value);\n\t\t}\n\n\t\tif (page.value) show.value = true\n\t});\n</script>\n\n<style lang=\"scss\">\n\t.fade-enter-active, .fade-leave-active {\n\t transition: opacity .5s;\n\t}\n\t.fade-enter, .fade-leave-to /* .fade-leave-active в версии 2.1.8+ */ {\n\t opacity: 0;\n\t}\n\n\t\n .fade-move,\n .fade-enter-active,\n .fade-leave-active {\n transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);\n }\n\n /* 2. declare enter from and leave to state */\n .fade-enter-from,\n .fade-leave-to {\n opacity: 0;\n transform: translate(30px, 0);\n }\n\n /* 3. ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n .fade-leave-active {\n position: absolute;\n }\n\n.moveFromTop-enter-active,\n.moveFromTop-leave-active {\n transition: all 0.3s ease, max-height 0.2s ease;\n overflow: hidden;\n}\n\n.moveFromTop-enter-from,\n.moveFromTop-leave-to {\n transform: translateY(-1rem);\n opacity: 0;\n // max-height: 0;\n}\n\n.moveFromTop-enter-to,\n.moveFromTop-leave-from {\n // max-height: 100vh; \n}\n\n\t.moveFromTopAbsolute-enter-active,\n\t.moveFromTopAbsolute-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.moveFromTopAbsolute-enter-from,\n\t.moveFromTopAbsolute-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\t.ScaleOut-enter-active,\n\t.ScaleOut-leave-active {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t\ttransition: all 0.3s ease; \n\t\t\n\t}\n\t.ScaleOut-enter-from,\n\t.ScaleOut-leave-to {\n\t\topacity: 0;\n\t\ttransform: scale(0.9);\n\t\ttransition: all 0.3s ease;\n\t}\n\t.slide-fade-enter-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-leave-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-enter-from,\n\t.slide-fade-leave-to {\n\t\tmin-height: 0;\n\t transform: translateX(20px);\n\t opacity: 0;\n\t left: 0;\n\t top: 0;\n\t}\n\n\t.scaleTransition-5px-enter-active,\n .scaleTransition-5px-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.2s ease;\n }\n\n .scaleTransition-5px-enter-from,\n .scaleTransition-5px-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n transform: translateY(-30px); \n transition: all 0.2s ease;\n }\n\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleTransition-enter-active,\n .scaleTransition-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.5s ease;\n }\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleIn-enter-active,\n .scaleIn-leave-active {\n // background: red;\n transition: all 0.5s ease;\n > section,div { transform-origin: 0 0; transform: translateZ(0px); transition: all 0.5s ease; }\n }\n .scaleIn-enter-from,\n .scaleIn-leave-to {\n opacity: 0;\n transform: scale(0.95);\n > section,div { transform: translateZ(-30px); transition: all 0.5s ease; }\n }\n</style>"],"names":["ref","useRoute","globals.state","computed","onMounted"],"mappings":";;;;;;;;;;;;;;;;;;;;AAiLE,QAAI,OAAOA,IAAAA,IAAI,KAAK;AAEpB,UAAM,OAAOA,IAAAA,IAAI,IAAI;AAErB,UAAM,gBAAgBA,IAAG,IAAC,IAAI;AAG9B,aAAS,oBAAoB;AAC3B,oBAAc,QAAQ;AAAA,IAC1B;AAEE,aAAS,mBAAmB;AAC1B,oBAAc,QAAQ;AAAA,IAC1B;AAGE,aAAS,qBAAqB;AAI5B,oBAAc,QAAQ;AAAA,IAC1B;AAIC,UAAM,QAAQC,UAAQ,SAAA;AAGtB,UAAM,cAAcD,IAAG,IAAC,MAAM,MAAM,WAAW;AAI/C,aAAS,qBAAqB;AAC5BE,cAAa,MAAC,sBAAsB;AAAA,IACvC;AACC,aAAS,YAAW;AACnB,eAAS,eAAe,KAAK,EAAE,eAAgB;AAAA,IACjD;AAEC,UAAM,eAAeF,IAAAA,IAAI,CAAC;AAE1B,UAAM,SAASA,IAAAA,IAAI,IAAI;AAEvB,UAAM,cAAcG,IAAAA,SAAS,MAAM;AAClC,UAAI,aAAa,QAAQ,IAAI;AAC5B,eAAO,MAAM,KAAK,gBAAiB;AAAA,MACtC,OAAS;AACN,eAAO,MAAM,KAAK,gBAAgB;AAAA,MACrC;AAAA,IACE,CAAA;AAED,UAAM,eAAe,MAAM;AACzB,mBAAa,QAAQ,MAAM,OAAO;AAAA,IACnC;AAEDC,QAAAA,UAAU,YAAY;AAErB,UAAI,mBAAmB,WAAW;AAC/B,eAAO,iBAAiB,QAAQ,MAAM;AACpC,oBAAU,cAAc,SAAS,oBAAoB,EAAE,KAAK,kBAAgB;AAC1E,oBAAQ,IAAI,mBAAmB,YAAY;AAAA,UACpD,CAAQ,EAAE,MAAM,uBAAqB;AAC5B,oBAAQ,IAAI,4BAA4B,iBAAiB;AAAA,UAClE,CAAQ;AAAA,QACR,CAAK;AAAA,MACL;AAEE,YAAM,gBAAgB,aAAa,QAAQ,UAAU;AAEpD,UAAI,eAAe;AACjBF,gBAAAA,MAAc,WAAW,KAAK,MAAM,aAAa;AAAA,MACtD,WAAc,MAAM,KAAK,UAAU;AAC/BA,gBAAa,MAAC,sBAAsB;AAAA,MACxC,OAAU;AACNA,gBAAa,MAAC,sBAAsB;AAAA,MACxC;AAEE,UAAI,YAAY,OAAO;AACrB,qBAAa,QAAQ,eAAe,YAAY,KAAK;AAAA,MACzD;AAEE,UAAI,KAAK,MAAO,MAAK,QAAQ;AAAA,IAC/B,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -160,7 +160,7 @@ const _sfc_main = {
|
|
|
160
160
|
widthHidden: (_b = unref(route).meta) == null ? void 0 : _b.sidebar_width_hidden,
|
|
161
161
|
width: (_c = unref(route).meta) == null ? void 0 : _c.sidebar_width,
|
|
162
162
|
theme: headerTheme.value,
|
|
163
|
-
onCloseSidebar: _cache[0] || (_cache[0] = () => state.isOpenSidebar =
|
|
163
|
+
onCloseSidebar: _cache[0] || (_cache[0] = () => state.isOpenSidebar = false)
|
|
164
164
|
}, {
|
|
165
165
|
default: withCtx(({ Component }) => [
|
|
166
166
|
createVNode(Transition, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/layouts/Client.vue"],"sourcesContent":["<template>\n\t<div \n\t\tid=\"app-wrapper\"\n\t\tclass=\"pos-relative o-hidden\"\n\t\t:class=\"{\n \t\t'pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t'bg-white': headerTheme === 'light',\n\t\t\t'bg-black': headerTheme === 'dark' \n \t}\"\n\t>\n\t\t<transition name=\"moveFromTop\" appear>\n\t\t\t<Loader v-if=\"!page || isPageLoading\" class=\"pos-fixed\"/>\n\t\t</transition>\n\t\n <component\n\t\t\tv-if=\"!MOBILE_APP && route.meta.header\"\n ref=\"header\" \n :is=\"route.meta.header\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.logotype\"\n :location=\"route.meta.location\"\n >\n \t<component\n\t\t v-if=\"route.meta?.header_navigation\"\n\t\t :is=\"route.meta.header_navigation\"\n\t\t :horizontal=\"true\"\n\t\t\t\t:navigationItems=\"route.meta.sidebar_navigation_items\"\n\t\t\t\t:stateSidebar=\"globals.state.isOpenSidebar\" \n\t\t\t\t:theme=\"headerTheme\"\n\t\t />\n \t</component>\n\n\t\t<transition name=\"moveFromTop\" mode=\"out-in\" appear>\n\t\t\t<component\n \tv-if=\"MOBILE_APP && !route.meta.hideNavigationBar\"\n :is=\"route.meta.navigationbar\"\n :logotype=\"route.meta.logotype\"\n :navigationItems=\"route.meta.sidebar_navigation_items\"\n\t :stateSidebar=\"globals.state.isOpenSidebar\" \n />\n\t\t</transition>\n\n\t <Popup \n\t \t@close-popup=\"closeLocationPopup\" \n\t \t:isPopupOpen=\"globals.state.isOpenLocationPopup\"\n\t \tclass=\"bg-white pd-semi w-m-33r radius-big\"\n\t >\t\n\t \t<LocationSelection />\n\t </Popup>\n\n\t\t<section \n\t\t\tid=\"screen\" \n\t\t\tref=\"screen\"\n\t\t\t@scroll=\"handleScroll\"\n\t\t\tclass=\"flex flex-nowrap transition-ease-in-out o-hidden pos-relative\"\n\t\t\t:class=\"{\n\t\t\t\t'': MOBILE_APP === 'ios',\n }\"\n\t\t>\n\t\t\t<ShopCart \n\t\t\t\t:class=\"{\n\t\t\t\t\t'mobile:pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t\t}\"\n\t\t\t/>\n\n\t\t\t<!-- <section v-if=\"!route.meta?.breadcrumbs?.hide\" class=\"pd-thin pd-b-zero\">\n\t\t\t\t<Breadcrumbs \n\t\t\t\t\tv-if=\"!MOBILE_APP\"\n\t\t\t\t\tclass=\"bg-light pd-small radius-big\"\n\t\t\t\t/>\n\t\t\t</section> -->\n\n\t <component\n\t v-if=\"route.meta?.sidebar && !MOBILE_APP\"\n\t v-slot=\"{ Component }\"\n\t :is=\"route.meta.sidebar\"\n\t :stateSidebar=\"globals.state.isOpenSidebar\" \n\t :widthHidden='route.meta?.sidebar_width_hidden'\n\t :width=\"route.meta?.sidebar_width\"\n\t :theme=\"headerTheme\"\n\t @closeSidebar=\"() => globals.state.isOpenSidebar = !globals.state.isOpenSidebar\"\n\t >\n\t \t<transition name=\"moveFromTop\" mode=\"out-in\" appear>\n\t\t <component\n\t\t v-if=\"route.meta?.sidebar_navigation\"\n\t\t :is=\"route.meta.sidebar_navigation\"\n\t\t :key=\"route.meta.sidebar_navigation\"\n\t\t :navigationItems=\"route.meta.sidebar_navigation_items\"\n\t\t\t :stateSidebar=\"globals.state.isOpenSidebar\" \n\t\t\t\t\t\t:theme=\"headerTheme\"\n\t\t />\n\t </transition>\n\t </component>\n\t\t \n\t\t <div class=\"rows-1-min0_max1 z-index-1 pos-relative w-100 h-100\">\n \t\t\t<Status \n\t\t\t\t\tv-if=\"globals.state.error.show\" \n\t\t\t\t\t:data=\"globals.state.error\"\n\t\t\t\t\t@close=\"globals.state.error.show = false\"\n\t\t\t\t\tclass=\"z-index-7\" \n\t\t\t\t/>\n\t\t\t\t <Suspense @resolve=\"onSuspenseResolved\">\n\t\t\t\t\t<router-view \n\t\t\t\t\t\tv-slot=\"{ Component, route }\" \n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'scroll-hide': MOBILE_APP,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\tclass=\"o-y-scroll o-x-hidden flex flex-column pos-relative h-100\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<transition @before-enter=\"scrollTop\" name=\"scaleTransition\" mode=\"out-in\" appear>\n\t\t\t \t<component \n\t\t\t \t\tref=\"page\" \n\t\t\t \t\t:is=\"Component\" \n\t\t\t \t\t:key=\"route.path\"\n\t\t\t \t\tclass=\"w-100 h-min-100\"\n\t\t \t\t \t@page-loading=\"handlePageLoading\"\n\t @page-loaded=\"handlePageLoaded\"\n\t\t\t \t/>\n\t\t\t \t<!-- Key пока выключил непонятно какие проблемы это вызовет -->\n\t\t\t \t<!-- -->\n\t\t\t </transition>\n\n\t\t\t <!-- <Footer /> -->\n\t\t\t\t\t</router-view>\n\t\t\t\t</Suspense>\n\t\t\t</div>\n\t\t</section>\n\n\t\t<router-view \n\t\t\tname=\"defaultBottom\"\n\t\t\tv-slot=\"{ Component, route }\" \n\t\t>\n\t\t\t<component \n \t\t:is=\"Component\" \n \t/>\n\t\t</router-view>\n\n\t <component\n\t\t\tv-if=\"!MOBILE_APP && route.meta.footer?.component && !route.meta.hideFooter\"\n ref=\"footer\" \n :is=\"route.meta.footer.component\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.footer.logotype\"\n :location=\"route.meta.footer.location\"\n />\n\n <component \n v-if=\"MOBILE_APP && route.meta.title_hide\"\n class=\"z-index-2\"\n \t:is=\"route.meta.bottombar\"\n />\n\t</div>\n</template>\n\n\n\n<script setup>\n\timport { computed, ref, onMounted, watch } from 'vue';\n\t// Router\n\timport { useRoute } from 'vue-router';\n\t// Store\n\timport * as globals from '@martyrs/src/modules/globals/views/store/globals';\n\t// Partials\n\timport Status from '@martyrs/src/components/Status/Status.vue';\n\timport Popup from '@martyrs/src/components/Popup/Popup.vue';\n\t// import Breadcrumbs from '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Loader from '@martyrs/src/components/Loader/Loader.vue';\n\n\timport NavigationBar from '@martyrs/src/modules/globals/views/components/partials/NavigationBar.vue';\n\timport LocationSelection from '@martyrs/src/modules/globals/views/components/partials/LocationSelection.vue';\n\t// import Footer from '@martyrs/src/modules/globals/views/components/partials/Footer.vue'\n\n\timport ShopCart from '@martyrs/src/modules/orders/components/partials/ShopCart.vue';\n\t/////////////////////////////\n // LOADING\n /////////////////////////////\n // State\n let show = ref(false)\n // Preloader\n const page = ref(null)\n\n const isPageLoading = ref(true);\n \n // Обработчики событий загрузки\n function handlePageLoading() {\n isPageLoading.value = true;\n }\n \n function handlePageLoaded() {\n isPageLoading.value = false;\n }\n \n // Обработка события разрешения Suspense (когда async setup компонента завершается)\n function onSuspenseResolved() {\n // Если страница не отправляет событие page-loaded, этот обработчик \n // может служить запасным вариантом для отключения лоадера\n // Можно оставить закомментированным, если все страницы будут явно вызывать handlePageLoaded\n isPageLoading.value = false;\n }\n\t/////////////////////////////\n\t// CREATED\n\t/////////////////////////////\n\tconst route = useRoute()\n\t// const router = useRouter()\n\t// Ref Code\n\tconst referalCode = ref(route.query.referalCode);\n\t/////////////////////////////\n\t// Methods\n\t/////////////////////////////\n\tfunction closeLocationPopup() {\n\t globals.state.isOpenLocationPopup = false;\n\t}\n\tfunction scrollTop(){\n\t\tdocument.getElementById('app').scrollIntoView();\n\t}\n\t// Scrolling header\n\tconst scrollOffset = ref(0)\n\tlet isScrolled = false\n\tconst header = ref(null)\n\n\tconst headerTheme = computed(() => {\n\t\tif (scrollOffset.value > 50) {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t} else {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t}\n\t})\n\n\tconst handleScroll = () => {\n\t scrollOffset.value = event.target.scrollTop\n\t};\n\n\tonMounted(async () => {\n\t\t \n\t\tif ('serviceWorker' in navigator) {\n\t \twindow.addEventListener('load', () => {\n\t \tnavigator.serviceWorker.register('/service-worker.js').then(registration => {\n\t \tconsole.log('SW registered: ', registration);\n\t \t}).catch(registrationError => {\n\t \tconsole.log('SW registration failed: ', registrationError);\n\t \t});\n\t });\n\t \t}\n\t\t\n\t\tconst savedPosition = localStorage.getItem('position');\n\n\t if (savedPosition) {\n\t globals.state.position = JSON.parse(savedPosition);\n\t } else if (route.meta.location) {\n \t\tglobals.state.isOpenLocationPopup = true;\n\t } else {\n\t \tglobals.state.isOpenLocationPopup = false;\n\t }\n\n\t\tif (referalCode.value) {\n\t\t localStorage.setItem('referalCode', referalCode.value);\n\t\t}\n\n\t\tif (page.value) show.value = true\n\t});\n</script>\n\n<style lang=\"scss\">\n\t.fade-enter-active, .fade-leave-active {\n\t transition: opacity .5s;\n\t}\n\t.fade-enter, .fade-leave-to /* .fade-leave-active в версии 2.1.8+ */ {\n\t opacity: 0;\n\t}\n\n\t\n .fade-move,\n .fade-enter-active,\n .fade-leave-active {\n transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);\n }\n\n /* 2. declare enter from and leave to state */\n .fade-enter-from,\n .fade-leave-to {\n opacity: 0;\n transform: translate(30px, 0);\n }\n\n /* 3. ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n .fade-leave-active {\n position: absolute;\n }\n\n.moveFromTop-enter-active,\n.moveFromTop-leave-active {\n transition: all 0.3s ease, max-height 0.2s ease;\n overflow: hidden;\n}\n\n.moveFromTop-enter-from,\n.moveFromTop-leave-to {\n transform: translateY(-1rem);\n opacity: 0;\n // max-height: 0;\n}\n\n.moveFromTop-enter-to,\n.moveFromTop-leave-from {\n // max-height: 100vh; \n}\n\n\t.moveFromTopAbsolute-enter-active,\n\t.moveFromTopAbsolute-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.moveFromTopAbsolute-enter-from,\n\t.moveFromTopAbsolute-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\t.ScaleOut-enter-active,\n\t.ScaleOut-leave-active {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t\ttransition: all 0.3s ease; \n\t\t\n\t}\n\t.ScaleOut-enter-from,\n\t.ScaleOut-leave-to {\n\t\topacity: 0;\n\t\ttransform: scale(0.9);\n\t\ttransition: all 0.3s ease;\n\t}\n\t.slide-fade-enter-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-leave-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-enter-from,\n\t.slide-fade-leave-to {\n\t\tmin-height: 0;\n\t transform: translateX(20px);\n\t opacity: 0;\n\t left: 0;\n\t top: 0;\n\t}\n\n\t.scaleTransition-5px-enter-active,\n .scaleTransition-5px-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.2s ease;\n }\n\n .scaleTransition-5px-enter-from,\n .scaleTransition-5px-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n transform: translateY(-30px); \n transition: all 0.2s ease;\n }\n\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleTransition-enter-active,\n .scaleTransition-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.5s ease;\n }\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleIn-enter-active,\n .scaleIn-leave-active {\n // background: red;\n transition: all 0.5s ease;\n > section,div { transform-origin: 0 0; transform: translateZ(0px); transition: all 0.5s ease; }\n }\n .scaleIn-enter-from,\n .scaleIn-leave-to {\n opacity: 0;\n transform: scale(0.95);\n > section,div { transform: translateZ(-30px); transition: all 0.5s ease; }\n }\n</style>"],"names":["globals.state"],"mappings":";;;;;;;;;;;;;;;;;;AAiLE,QAAI,OAAO,IAAI,KAAK;AAEpB,UAAM,OAAO,IAAI,IAAI;AAErB,UAAM,gBAAgB,IAAI,IAAI;AAG9B,aAAS,oBAAoB;AAC3B,oBAAc,QAAQ;AAAA,IAC1B;AAEE,aAAS,mBAAmB;AAC1B,oBAAc,QAAQ;AAAA,IAC1B;AAGE,aAAS,qBAAqB;AAI5B,oBAAc,QAAQ;AAAA,IAC1B;AAIC,UAAM,QAAQ,SAAQ;AAGtB,UAAM,cAAc,IAAI,MAAM,MAAM,WAAW;AAI/C,aAAS,qBAAqB;AAC5BA,YAAc,sBAAsB;AAAA,IACvC;AACC,aAAS,YAAW;AACnB,eAAS,eAAe,KAAK,EAAE,eAAgB;AAAA,IACjD;AAEC,UAAM,eAAe,IAAI,CAAC;AAE1B,UAAM,SAAS,IAAI,IAAI;AAEvB,UAAM,cAAc,SAAS,MAAM;AAClC,UAAI,aAAa,QAAQ,IAAI;AAC5B,eAAO,MAAM,KAAK,gBAAiB;AAAA,MACtC,OAAS;AACN,eAAO,MAAM,KAAK,gBAAgB;AAAA,MACrC;AAAA,IACE,CAAA;AAED,UAAM,eAAe,MAAM;AACzB,mBAAa,QAAQ,MAAM,OAAO;AAAA,IACnC;AAED,cAAU,YAAY;AAErB,UAAI,mBAAmB,WAAW;AAC/B,eAAO,iBAAiB,QAAQ,MAAM;AACpC,oBAAU,cAAc,SAAS,oBAAoB,EAAE,KAAK,kBAAgB;AAC1E,oBAAQ,IAAI,mBAAmB,YAAY;AAAA,UACpD,CAAQ,EAAE,MAAM,uBAAqB;AAC5B,oBAAQ,IAAI,4BAA4B,iBAAiB;AAAA,UAClE,CAAQ;AAAA,QACR,CAAK;AAAA,MACL;AAEE,YAAM,gBAAgB,aAAa,QAAQ,UAAU;AAEpD,UAAI,eAAe;AACjBA,cAAc,WAAW,KAAK,MAAM,aAAa;AAAA,MACtD,WAAc,MAAM,KAAK,UAAU;AAC/BA,cAAc,sBAAsB;AAAA,MACxC,OAAU;AACNA,cAAc,sBAAsB;AAAA,MACxC;AAEE,UAAI,YAAY,OAAO;AACrB,qBAAa,QAAQ,eAAe,YAAY,KAAK;AAAA,MACzD;AAEE,UAAI,KAAK,MAAO,MAAK,QAAQ;AAAA,IAC/B,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"Client.vue.js","sources":["../../../../../../../../src/modules/globals/views/components/layouts/Client.vue"],"sourcesContent":["<template>\n\t<div \n\t\tid=\"app-wrapper\"\n\t\tclass=\"pos-relative o-hidden\"\n\t\t:class=\"{\n \t\t'pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t'bg-white': headerTheme === 'light',\n\t\t\t'bg-black': headerTheme === 'dark' \n \t}\"\n\t>\n\t\t<transition name=\"moveFromTop\" appear>\n\t\t\t<Loader v-if=\"!page || isPageLoading\" class=\"pos-fixed\"/>\n\t\t</transition>\n\t\n <component\n\t\t\tv-if=\"!MOBILE_APP && route.meta.header\"\n ref=\"header\" \n :is=\"route.meta.header\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.logotype\"\n :location=\"route.meta.location\"\n >\n \t<component\n\t\t v-if=\"route.meta?.header_navigation\"\n\t\t :is=\"route.meta.header_navigation\"\n\t\t :horizontal=\"true\"\n\t\t\t\t:navigationItems=\"route.meta.sidebar_navigation_items\"\n\t\t\t\t:stateSidebar=\"globals.state.isOpenSidebar\" \n\t\t\t\t:theme=\"headerTheme\"\n\t\t />\n \t</component>\n\n\t\t<transition name=\"moveFromTop\" mode=\"out-in\" appear>\n\t\t\t<component\n \tv-if=\"MOBILE_APP && !route.meta.hideNavigationBar\"\n :is=\"route.meta.navigationbar\"\n :logotype=\"route.meta.logotype\"\n :navigationItems=\"route.meta.sidebar_navigation_items\"\n\t :stateSidebar=\"globals.state.isOpenSidebar\" \n />\n\t\t</transition>\n\n\t <Popup \n\t \t@close-popup=\"closeLocationPopup\" \n\t \t:isPopupOpen=\"globals.state.isOpenLocationPopup\"\n\t \tclass=\"bg-white pd-semi w-m-33r radius-big\"\n\t >\t\n\t \t<LocationSelection />\n\t </Popup>\n\n\t\t<section \n\t\t\tid=\"screen\" \n\t\t\tref=\"screen\"\n\t\t\t@scroll=\"handleScroll\"\n\t\t\tclass=\"flex flex-nowrap transition-ease-in-out o-hidden pos-relative\"\n\t\t\t:class=\"{\n\t\t\t\t'': MOBILE_APP === 'ios',\n }\"\n\t\t>\n\t\t\t<ShopCart \n\t\t\t\t:class=\"{\n\t\t\t\t\t'mobile:pd-t-extra': MOBILE_APP === 'ios', \n\t\t\t\t}\"\n\t\t\t/>\n\n\t\t\t<!-- <section v-if=\"!route.meta?.breadcrumbs?.hide\" class=\"pd-thin pd-b-zero\">\n\t\t\t\t<Breadcrumbs \n\t\t\t\t\tv-if=\"!MOBILE_APP\"\n\t\t\t\t\tclass=\"bg-light pd-small radius-big\"\n\t\t\t\t/>\n\t\t\t</section> -->\n\n\t <component\n\t v-if=\"route.meta?.sidebar && !MOBILE_APP\"\n\t v-slot=\"{ Component }\"\n\t :is=\"route.meta.sidebar\"\n\t :stateSidebar=\"globals.state.isOpenSidebar\" \n\t :widthHidden='route.meta?.sidebar_width_hidden'\n\t :width=\"route.meta?.sidebar_width\"\n\t :theme=\"headerTheme\"\n\t @closeSidebar=\"() => globals.state.isOpenSidebar = false\"\n\t >\n\t \t<transition name=\"moveFromTop\" mode=\"out-in\" appear>\n\t\t <component\n\t\t v-if=\"route.meta?.sidebar_navigation\"\n\t\t :is=\"route.meta.sidebar_navigation\"\n\t\t :key=\"route.meta.sidebar_navigation\"\n\t\t :navigationItems=\"route.meta.sidebar_navigation_items\"\n\t\t\t :stateSidebar=\"globals.state.isOpenSidebar\" \n\t\t\t\t\t\t:theme=\"headerTheme\"\n\t\t />\n\t </transition>\n\t </component>\n\t\t \n\t\t <div class=\"rows-1-min0_max1 z-index-1 pos-relative w-100 h-100\">\n \t\t\t<Status \n\t\t\t\t\tv-if=\"globals.state.error.show\" \n\t\t\t\t\t:data=\"globals.state.error\"\n\t\t\t\t\t@close=\"globals.state.error.show = false\"\n\t\t\t\t\tclass=\"z-index-7\" \n\t\t\t\t/>\n\t\t\t\t <Suspense @resolve=\"onSuspenseResolved\">\n\t\t\t\t\t<router-view \n\t\t\t\t\t\tv-slot=\"{ Component, route }\" \n\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t'scroll-hide': MOBILE_APP,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t\tclass=\"o-y-scroll o-x-hidden flex flex-column pos-relative h-100\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<transition @before-enter=\"scrollTop\" name=\"scaleTransition\" mode=\"out-in\" appear>\n\t\t\t \t<component \n\t\t\t \t\tref=\"page\" \n\t\t\t \t\t:is=\"Component\" \n\t\t\t \t\t:key=\"route.path\"\n\t\t\t \t\tclass=\"w-100 h-min-100\"\n\t\t \t\t \t@page-loading=\"handlePageLoading\"\n\t @page-loaded=\"handlePageLoaded\"\n\t\t\t \t/>\n\t\t\t \t<!-- Key пока выключил непонятно какие проблемы это вызовет -->\n\t\t\t \t<!-- -->\n\t\t\t </transition>\n\n\t\t\t <!-- <Footer /> -->\n\t\t\t\t\t</router-view>\n\t\t\t\t</Suspense>\n\t\t\t</div>\n\t\t</section>\n\n\t\t<router-view \n\t\t\tname=\"defaultBottom\"\n\t\t\tv-slot=\"{ Component, route }\" \n\t\t>\n\t\t\t<component \n \t\t:is=\"Component\" \n \t/>\n\t\t</router-view>\n\n\t <component\n\t\t\tv-if=\"!MOBILE_APP && route.meta.footer?.component && !route.meta.hideFooter\"\n ref=\"footer\" \n :is=\"route.meta.footer.component\"\n :theme=\"headerTheme\"\n :logotype=\"route.meta.footer.logotype\"\n :location=\"route.meta.footer.location\"\n />\n\n <component \n v-if=\"MOBILE_APP && route.meta.title_hide\"\n class=\"z-index-2\"\n \t:is=\"route.meta.bottombar\"\n />\n\t</div>\n</template>\n\n\n\n<script setup>\n\timport { computed, ref, onMounted, watch } from 'vue';\n\t// Router\n\timport { useRoute } from 'vue-router';\n\t// Store\n\timport * as globals from '@martyrs/src/modules/globals/views/store/globals';\n\t// Partials\n\timport Status from '@martyrs/src/components/Status/Status.vue';\n\timport Popup from '@martyrs/src/components/Popup/Popup.vue';\n\t// import Breadcrumbs from '@martyrs/src/components/Breadcrumbs/Breadcrumbs.vue'\n\timport Loader from '@martyrs/src/components/Loader/Loader.vue';\n\n\timport NavigationBar from '@martyrs/src/modules/globals/views/components/partials/NavigationBar.vue';\n\timport LocationSelection from '@martyrs/src/modules/globals/views/components/partials/LocationSelection.vue';\n\t// import Footer from '@martyrs/src/modules/globals/views/components/partials/Footer.vue'\n\n\timport ShopCart from '@martyrs/src/modules/orders/components/partials/ShopCart.vue';\n\t/////////////////////////////\n // LOADING\n /////////////////////////////\n // State\n let show = ref(false)\n // Preloader\n const page = ref(null)\n\n const isPageLoading = ref(true);\n \n // Обработчики событий загрузки\n function handlePageLoading() {\n isPageLoading.value = true;\n }\n \n function handlePageLoaded() {\n isPageLoading.value = false;\n }\n \n // Обработка события разрешения Suspense (когда async setup компонента завершается)\n function onSuspenseResolved() {\n // Если страница не отправляет событие page-loaded, этот обработчик \n // может служить запасным вариантом для отключения лоадера\n // Можно оставить закомментированным, если все страницы будут явно вызывать handlePageLoaded\n isPageLoading.value = false;\n }\n\t/////////////////////////////\n\t// CREATED\n\t/////////////////////////////\n\tconst route = useRoute()\n\t// const router = useRouter()\n\t// Ref Code\n\tconst referalCode = ref(route.query.referalCode);\n\t/////////////////////////////\n\t// Methods\n\t/////////////////////////////\n\tfunction closeLocationPopup() {\n\t globals.state.isOpenLocationPopup = false;\n\t}\n\tfunction scrollTop(){\n\t\tdocument.getElementById('app').scrollIntoView();\n\t}\n\t// Scrolling header\n\tconst scrollOffset = ref(0)\n\tlet isScrolled = false\n\tconst header = ref(null)\n\n\tconst headerTheme = computed(() => {\n\t\tif (scrollOffset.value > 50) {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t} else {\n\t\t\treturn route.meta.header_theme || 'light'\n\t\t}\n\t})\n\n\tconst handleScroll = () => {\n\t scrollOffset.value = event.target.scrollTop\n\t};\n\n\tonMounted(async () => {\n\t\t \n\t\tif ('serviceWorker' in navigator) {\n\t \twindow.addEventListener('load', () => {\n\t \tnavigator.serviceWorker.register('/service-worker.js').then(registration => {\n\t \tconsole.log('SW registered: ', registration);\n\t \t}).catch(registrationError => {\n\t \tconsole.log('SW registration failed: ', registrationError);\n\t \t});\n\t });\n\t \t}\n\t\t\n\t\tconst savedPosition = localStorage.getItem('position');\n\n\t if (savedPosition) {\n\t globals.state.position = JSON.parse(savedPosition);\n\t } else if (route.meta.location) {\n \t\tglobals.state.isOpenLocationPopup = true;\n\t } else {\n\t \tglobals.state.isOpenLocationPopup = false;\n\t }\n\n\t\tif (referalCode.value) {\n\t\t localStorage.setItem('referalCode', referalCode.value);\n\t\t}\n\n\t\tif (page.value) show.value = true\n\t});\n</script>\n\n<style lang=\"scss\">\n\t.fade-enter-active, .fade-leave-active {\n\t transition: opacity .5s;\n\t}\n\t.fade-enter, .fade-leave-to /* .fade-leave-active в версии 2.1.8+ */ {\n\t opacity: 0;\n\t}\n\n\t\n .fade-move,\n .fade-enter-active,\n .fade-leave-active {\n transition: all 0.5s cubic-bezier(0.55, 0, 0.1, 1);\n }\n\n /* 2. declare enter from and leave to state */\n .fade-enter-from,\n .fade-leave-to {\n opacity: 0;\n transform: translate(30px, 0);\n }\n\n /* 3. ensure leaving items are taken out of layout flow so that moving\n animations can be calculated correctly. */\n .fade-leave-active {\n position: absolute;\n }\n\n.moveFromTop-enter-active,\n.moveFromTop-leave-active {\n transition: all 0.3s ease, max-height 0.2s ease;\n overflow: hidden;\n}\n\n.moveFromTop-enter-from,\n.moveFromTop-leave-to {\n transform: translateY(-1rem);\n opacity: 0;\n // max-height: 0;\n}\n\n.moveFromTop-enter-to,\n.moveFromTop-leave-from {\n // max-height: 100vh; \n}\n\n\t.moveFromTopAbsolute-enter-active,\n\t.moveFromTopAbsolute-leave-active {\n\t\ttransform: translateY(0);\n\t\topacity: 1;\n\t\ttransition: all 0.5s ease; \n\t\t\n\t}\n\t.moveFromTopAbsolute-enter-from,\n\t.moveFromTopAbsolute-leave-to {\n\t\tposition: absolute;\n\t\ttransform: translateY(-1rem);\n\t\topacity: 0;\n\t\ttransition: all 0.5s ease;\n\t}\n\t.ScaleOut-enter-active,\n\t.ScaleOut-leave-active {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t\ttransition: all 0.3s ease; \n\t\t\n\t}\n\t.ScaleOut-enter-from,\n\t.ScaleOut-leave-to {\n\t\topacity: 0;\n\t\ttransform: scale(0.9);\n\t\ttransition: all 0.3s ease;\n\t}\n\t.slide-fade-enter-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-leave-active {\n\t\t// min-height: 100vh;\n\t transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n\t}\n\n\t.slide-fade-enter-from,\n\t.slide-fade-leave-to {\n\t\tmin-height: 0;\n\t transform: translateX(20px);\n\t opacity: 0;\n\t left: 0;\n\t top: 0;\n\t}\n\n\t.scaleTransition-5px-enter-active,\n .scaleTransition-5px-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.2s ease;\n }\n\n .scaleTransition-5px-enter-from,\n .scaleTransition-5px-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n transform: translateY(-30px); \n transition: all 0.2s ease;\n }\n\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleTransition-enter-active,\n .scaleTransition-leave-active {\n transform: translateY(0px); \n opacity: 1;\n z-index: 1;\n transition: all 0.5s ease;\n }\n .scaleTransition-enter-from,\n .scaleTransition-leave-to {\n opacity: 0;\n z-index: 0;\n position: absolute;\n width: inherit;\n height: inherit;\n display: block;\n transform: translateY(30px); \n transition: all 0.5s ease;\n }\n\n .scaleIn-enter-active,\n .scaleIn-leave-active {\n // background: red;\n transition: all 0.5s ease;\n > section,div { transform-origin: 0 0; transform: translateZ(0px); transition: all 0.5s ease; }\n }\n .scaleIn-enter-from,\n .scaleIn-leave-to {\n opacity: 0;\n transform: scale(0.95);\n > section,div { transform: translateZ(-30px); transition: all 0.5s ease; }\n }\n</style>"],"names":["globals.state"],"mappings":";;;;;;;;;;;;;;;;;;AAiLE,QAAI,OAAO,IAAI,KAAK;AAEpB,UAAM,OAAO,IAAI,IAAI;AAErB,UAAM,gBAAgB,IAAI,IAAI;AAG9B,aAAS,oBAAoB;AAC3B,oBAAc,QAAQ;AAAA,IAC1B;AAEE,aAAS,mBAAmB;AAC1B,oBAAc,QAAQ;AAAA,IAC1B;AAGE,aAAS,qBAAqB;AAI5B,oBAAc,QAAQ;AAAA,IAC1B;AAIC,UAAM,QAAQ,SAAQ;AAGtB,UAAM,cAAc,IAAI,MAAM,MAAM,WAAW;AAI/C,aAAS,qBAAqB;AAC5BA,YAAc,sBAAsB;AAAA,IACvC;AACC,aAAS,YAAW;AACnB,eAAS,eAAe,KAAK,EAAE,eAAgB;AAAA,IACjD;AAEC,UAAM,eAAe,IAAI,CAAC;AAE1B,UAAM,SAAS,IAAI,IAAI;AAEvB,UAAM,cAAc,SAAS,MAAM;AAClC,UAAI,aAAa,QAAQ,IAAI;AAC5B,eAAO,MAAM,KAAK,gBAAiB;AAAA,MACtC,OAAS;AACN,eAAO,MAAM,KAAK,gBAAgB;AAAA,MACrC;AAAA,IACE,CAAA;AAED,UAAM,eAAe,MAAM;AACzB,mBAAa,QAAQ,MAAM,OAAO;AAAA,IACnC;AAED,cAAU,YAAY;AAErB,UAAI,mBAAmB,WAAW;AAC/B,eAAO,iBAAiB,QAAQ,MAAM;AACpC,oBAAU,cAAc,SAAS,oBAAoB,EAAE,KAAK,kBAAgB;AAC1E,oBAAQ,IAAI,mBAAmB,YAAY;AAAA,UACpD,CAAQ,EAAE,MAAM,uBAAqB;AAC5B,oBAAQ,IAAI,4BAA4B,iBAAiB;AAAA,UAClE,CAAQ;AAAA,QACR,CAAK;AAAA,MACL;AAEE,YAAM,gBAAgB,aAAa,QAAQ,UAAU;AAEpD,UAAI,eAAe;AACjBA,cAAc,WAAW,KAAK,MAAM,aAAa;AAAA,MACtD,WAAc,MAAM,KAAK,UAAU;AAC/BA,cAAc,sBAAsB;AAAA,MACxC,OAAU;AACNA,cAAc,sBAAsB;AAAA,MACxC;AAEE,UAAI,YAAY,OAAO;AACrB,qBAAa,QAAQ,eAAe,YAAY,KAAK;AAAA,MACzD;AAEE,UAAI,KAAK,MAAO,MAAK,QAAQ;AAAA,IAC/B,CAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
:widthHidden='route.meta?.sidebar_width_hidden'
|
|
79
79
|
:width="route.meta?.sidebar_width"
|
|
80
80
|
:theme="headerTheme"
|
|
81
|
-
@closeSidebar="() => globals.state.isOpenSidebar =
|
|
81
|
+
@closeSidebar="() => globals.state.isOpenSidebar = false"
|
|
82
82
|
>
|
|
83
83
|
<transition name="moveFromTop" mode="out-in" appear>
|
|
84
84
|
<component
|