/
solj
/
Bitrixvue3jsApplication
Обзор
Документация
Войти
/
solj
/
Bitrixvue3jsApplication
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
dist/app.bundle.js
217 строк
9 KB
AEGabrielyan
Закоммитить текущее состояние
25 июл 2025, 14:04
25 июл 2025, 14:04
9b8e5de
Код
Авторство
О чём код?
/* eslint-disable */ (function (exports,ui_vue3_pinia,ui_vue3_router,ui_vue3) { 'use strict'; var useAppStore = ui_vue3_pinia.defineStore("app", { state: function state() { return { arResult: ui_vue3.reactive({}) }; }, actions: { setArResult: function setArResult(data) { var _this = this; Object.keys(this.arResult).forEach(function (key) { return delete _this.arResult[key]; }); Object.assign(this.arResult, data); console.log("Текущее состояние arResult:", this.arResult); }, updateField: function updateField(key, value) { this.arResult[key] = value; }, getField: function getField(key) { return this.arResult[key]; } } }); var useModalStore = ui_vue3_pinia.defineStore('modal', { state: function state() { return { isOpen: false, component: null, props: {} }; }, actions: { open: function open(component) { var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; this.component = component; this.props = props; this.isOpen = true; }, close: function close() { this.isOpen = false; this.component = null; this.props = {}; } } }); var useLoaderStore = ui_vue3_pinia.defineStore('loader', { state: function state() { return { isVisible: false }; }, actions: { show: function show() { this.isVisible = true; }, hide: function hide() { this.isVisible = false; } } }); var Modal = ui_vue3.defineComponent({ name: 'Modal', setup: function setup() { var modal = useModalStore(); return { modal: modal }; }, template: "\n <transition name=\"fade\">\n <div v-if=\"modal.isOpen\" class=\"modal-overlay\" @click.self=\"modal.close\">\n <div class=\"modal-content position-relative\">\n <button\n class=\"btn btn-close position-absolute top-0 end-0 m-3\"\n @click=\"modal.close\"\n aria-label=\"\u0417\u0430\u043A\u0440\u044B\u0442\u044C\">\n \u0417\u0430\u043A\u0440\u044B\u0442\u044C\n </button>\n <!-- \u0422\u0443\u0442 \u0431\u0443\u0434\u0435\u0442 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u0441\u044C\u044F \u043B\u044E\u0431\u043E\u0439 \u0434\u0438\u043D\u0430\u043C\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u043A\u043E\u043C\u043F\u043E\u043D\u0435\u043D\u0442 -->\n <component :is=\"modal.component\" v-bind=\"modal.props\" /> \n </div> \n </div>\n </transition>\n " }); var Loader = ui_vue3.defineComponent({ name: "Loader", setup: function setup() { var loader = useLoaderStore(); return { loader: loader }; }, template: "\n <transition name=\"fade\">\n <div v-if=\"loader.isVisible\" class=\"loader-overlay\">\n <div class=\"loader-spinner\"></div>\n </div>\n </transition>\n " }); var Breadcrumbs = ui_vue3.defineComponent({ name: "Breadcrumbs", setup: function setup() { var route = ui_vue3_router.useRoute(); var router = ui_vue3_router.useRouter(); var breadcrumbs = ui_vue3.computed(function () { var matched = route.matched.filter(function (r) { return r.meta && r.meta.breadcrumb; }); return matched.map(function (r) { return { path: r.path, label: r.meta.breadcrumb }; }); }); return { breadcrumbs: breadcrumbs }; }, template: "\n <nav class=\"breadcrumbs\">\n <div class=\"breadcrumb-list\">\n <span v-for=\"(crumb, index) in breadcrumbs\" :key=\"index\">\n <router-link :to=\"crumb.path\">\n {{ crumb.label }} \n </router-link>\n <span v-if=\"index < breadcrumbs.length -1\"> / </span> \n </span>\n </div>\n </nav> \n " }); var Home = ui_vue3.defineComponent({ name: 'Home', setup: function setup() { var message = ui_vue3.ref("Добро пожаловать на главную страницу компонента"); var appStore = useAppStore(); var arResult = appStore.arResult; return { message: message, arResult: arResult }; }, template: "\n <div>\n <h1>{{ message }}</h1>\n <div><b>{{ arResult.test }}</b></div>\n <router-link to=\"/test\">\u041F\u0435\u0440\u0435\u0439\u0442\u0438 \u043D\u0430 \u0442\u0435\u0441\u0442\u043E\u0432\u0443\u044E \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0443</router-link>\n </div>\n " }); var Test = ui_vue3.defineComponent({ name: 'Test', setup: function setup() { var testMessage = ui_vue3.ref("Это тестовый компонент по маршруту /tests/test/"); return { testMessage: testMessage }; }, template: "\n <div>\n <h2>{{ testMessage }}</h2>\n </div>\n " }); function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } var _application = /*#__PURE__*/new WeakMap(); var App = /*#__PURE__*/function () { function App(rootNode) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; babelHelpers.classCallCheck(this, App); _classPrivateFieldInitSpec(this, _application, { writable: true, value: void 0 }); this.rootNode = document.querySelector(rootNode); this.options = options; } babelHelpers.createClass(App, [{ key: "start", value: function start() { this.getTemplate(); } }, { key: "getTemplate", value: function getTemplate() { var _context$options$arPa; var context = this; var routes = [{ path: '/', component: Home, meta: { breadcrumb: 'Главная' } }, { path: '/test/', component: Test, meta: { breadcrumb: 'Тест' } }]; var sefFolder = (_context$options$arPa = context.options.arParams) === null || _context$options$arPa === void 0 ? void 0 : _context$options$arPa.SEF_FOLDER; if (!sefFolder) { alert('Ошибка: в методе createWebHistory не указан SEF_FOLDER раздела'); throw new Error('SEF_FOLDER is not defined in arParams'); } var router = ui_vue3_router.createRouter({ history: ui_vue3_router.createWebHistory(sefFolder), routes: routes }); var pinia = ui_vue3_pinia.createPinia(); babelHelpers.classPrivateFieldSet(this, _application, ui_vue3.BitrixVue.createApp({ data: function data() { return { arResult: context.options.arResult || {}, arParams: context.options.arParams || {} }; }, components: { Home: Home, Modal: Modal, Loader: Loader, Breadcrumbs: Breadcrumbs, Test: Test }, beforeCreate: function beforeCreate() { this.$bitrix.Application.set(context); var appStore = useAppStore(); appStore.setArResult(context.options.arResult); }, template: "\n <div class=\"container\">\n <Breadcrumbs />\n <router-view />\n <Modal />\n <Loader /> \n </div> \n " })); babelHelpers.classPrivateFieldGet(this, _application).use(router); babelHelpers.classPrivateFieldGet(this, _application).use(pinia); babelHelpers.classPrivateFieldGet(this, _application).mount(this.rootNode); } }]); return App; }(); BX.namespace("BX.devconsult.shmolotilka.myapp"); BX.devconsult.shmolotilka.myapp.App = App; }((this.BX = this.BX || {}),BX.Vue3.Pinia,BX.Vue3.VueRouter,BX.Vue3)); //# sourceMappingURL=app.bundle.js.map