)]}'
{"version": 3, "sources": ["/web_enterprise/static/src/main.js", "/web/static/src/start.js", "/web/static/src/legacy/legacy_setup.js", "/mail/static/src/main.js", "/web_studio/static/src/client_action/studio_action_loader.js", "/web_studio/static/src/client_action/app_creator/app_creator_shortcut.js"], "mappings": "AAAA;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACZA;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACxDA;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtDA;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACjBA;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC5CA;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA", "sourcesContent": ["/** @odoo-module **/\n\nimport { startWebClient } from \"@web/start\";\nimport { WebClientEnterprise } from \"./webclient/webclient\";\n\n/**\n * This file starts the enterprise webclient. In the manifest, it replaces\n * the community main.js to load a different webclient class\n * (WebClientEnterprise instead of WebClient)\n */\n\nstartWebClient(WebClientEnterprise);\n", "/** @odoo-module **/\n\nimport { makeEnv, startServices } from \"./env\";\nimport { legacySetupProm } from \"./legacy/legacy_setup\";\nimport { mapLegacyEnvToWowlEnv } from \"./legacy/utils\";\nimport { processTemplates } from \"./core/assets\";\nimport { session } from \"@web/session\";\n\nconst { mount, utils } = owl;\nconst { whenReady } = utils;\n\n/**\n * Function to start a webclient.\n * It is used both in community and enterprise in main.js.\n * It's meant to be webclient flexible so we can have a subclass of\n * webclient in enterprise with added features.\n *\n * @param {owl.Component} Webclient\n */\nexport async function startWebClient(Webclient) {\n    odoo.info = {\n        db: session.db,\n        server_version: session.server_version,\n        server_version_info: session.server_version_info,\n        isEnterprise: session.server_version_info.slice(-1)[0] === \"e\",\n    };\n    odoo.isReady = false;\n\n    // setup environment\n    const env = makeEnv();\n    const [, templates] = await Promise.all([\n        startServices(env),\n        odoo.loadTemplatesPromise.then(processTemplates),\n    ]);\n    env.qweb.addTemplates(templates);\n\n    // start web client\n    await whenReady();\n    const legacyEnv = await legacySetupProm;\n    mapLegacyEnvToWowlEnv(legacyEnv, env);\n    const root = await mount(Webclient, { env, target: document.body, position: \"self\" });\n    // delete odoo.debug; // FIXME: some legacy code rely on this\n    odoo.__WOWL_DEBUG__ = { root };\n    odoo.isReady = true;\n\n    // Update Favicons\n    const favicon = `/web/image/res.company/${env.services.company.currentCompany.id}/favicon`;\n    const icons = document.querySelectorAll(\"link[rel*='icon']\");\n    const msIcon = document.querySelector(\"meta[name='msapplication-TileImage']\");\n    for (const icon of icons) {\n        icon.href = favicon;\n    }\n    if (msIcon) {\n        msIcon.content = favicon;\n    }\n}\n", "/** @odoo-module alias=web.legacySetup **/\n\nimport { registry } from \"../core/registry\";\nimport {\n    makeLegacyNotificationService,\n    makeLegacyRpcService,\n    makeLegacySessionService,\n    makeLegacyDialogMappingService,\n    makeLegacyCrashManagerService,\n    makeLegacyCommandService,\n    makeLegacyDropdownService,\n} from \"./utils\";\nimport { makeLegacyActionManagerService } from \"./backend_utils\";\nimport * as AbstractService from \"web.AbstractService\";\nimport * as legacyEnv from \"web.env\";\nimport * as session from \"web.session\";\nimport * as makeLegacyWebClientService from \"web.pseudo_web_client\";\n\nconst { Component, config, utils } = owl;\nconst { whenReady } = utils;\n\nlet legacySetupResolver;\nexport const legacySetupProm = new Promise((resolve) => {\n    legacySetupResolver = resolve;\n});\n\n// build the legacy env and set it on owl.Component (this was done in main.js,\n// with the starting of the webclient)\n(async () => {\n    config.mode = legacyEnv.isDebug() ? \"dev\" : \"prod\";\n    AbstractService.prototype.deployServices(legacyEnv);\n    Component.env = legacyEnv;\n    const legacyActionManagerService = makeLegacyActionManagerService(legacyEnv);\n    const serviceRegistry = registry.category(\"services\");\n    serviceRegistry.add(\"legacy_action_manager\", legacyActionManagerService);\n    // add a service to redirect rpc events triggered on the bus in the\n    // legacy env on the bus in the wowl env\n    const legacyRpcService = makeLegacyRpcService(legacyEnv);\n    serviceRegistry.add(\"legacy_rpc\", legacyRpcService);\n    const legacySessionService = makeLegacySessionService(legacyEnv, session);\n    serviceRegistry.add(\"legacy_session\", legacySessionService);\n    const legacyWebClientService = makeLegacyWebClientService(legacyEnv);\n    serviceRegistry.add(\"legacy_web_client\", legacyWebClientService);\n    serviceRegistry.add(\"legacy_notification\", makeLegacyNotificationService(legacyEnv));\n    serviceRegistry.add(\"legacy_crash_manager\", makeLegacyCrashManagerService(legacyEnv));\n    const legacyDialogMappingService = makeLegacyDialogMappingService(legacyEnv);\n    serviceRegistry.add(\"legacy_dialog_mapping\", legacyDialogMappingService);\n    const legacyCommandService = makeLegacyCommandService(legacyEnv);\n    serviceRegistry.add(\"legacy_command\", legacyCommandService);\n    serviceRegistry.add(\"legacy_dropdown\", makeLegacyDropdownService(legacyEnv));\n    await Promise.all([whenReady(), session.is_bound]);\n    legacyEnv.qweb.addTemplates(session.owlTemplates);\n    legacySetupResolver(legacyEnv);\n})();\n", "/** @odoo-module **/\n\nimport { ChatWindowService } from '@mail/services/chat_window_service/chat_window_service';\nimport { DialogService } from '@mail/services/dialog_service/dialog_service';\nimport { MessagingService } from '@mail/services/messaging/messaging';\nimport { SystrayService } from '@mail/services/systray_service/systray_service';\nimport { DiscussWidget } from '@mail/widgets/discuss/discuss';\n\nimport { action_registry } from 'web.core';\nimport { serviceRegistry } from 'web.core';\n\nserviceRegistry.add('chat_window', ChatWindowService);\nserviceRegistry.add('dialog', DialogService);\nserviceRegistry.add('messaging', MessagingService);\nserviceRegistry.add('systray_service', SystrayService);\n\naction_registry.add('mail.widgets.discuss', DiscussWidget);\n", "/** @odoo-module **/\n\nimport { memoize } from \"@web/core/utils/functions\";\nimport { registry } from \"@web/core/registry\";\nimport { loadPublicAsset } from \"@web/core/assets\";\nimport { loadLegacyViews } from \"@web/legacy/legacy_views\";\nimport { loadWysiwyg } from \"web_editor.loader\";\n\nconst actionRegistry = registry.category(\"actions\");\n\nconst loadStudioAction = memoize(async (env) => {\n    // some parts of the studio client action depend on the wysiwyg widgets, so load them first\n    await loadWysiwyg();\n    const orm = env.services.orm;\n    await Promise.all([\n        loadPublicAsset(\"web_studio.compiled_assets_studio\", orm),\n        loadLegacyViews({ orm }),\n    ]);\n\n    if (actionRegistry.get(\"studio\") === loadStudioAction) {\n        // At this point, the real studio client action should be loaded and have\n        // replaced this function in the action registry. If it's not the case,\n        // it probably means that there was a crash in the bundle (e.g. syntax\n        // error). In this case, this action will remain in the registry, which\n        // will lead to an infinite loop. To prevent that, we push another action\n        // in the registry.\n        actionRegistry.add(\n            \"studio\",\n            () => {\n                const msg = env._t(\"Studio couldn't be loaded\");\n                env.services.notification.add(msg, { type: \"danger\" });\n            },\n            { force: true }\n        );\n    }\n\n    return {\n        target: \"current\",\n        tag: \"studio\",\n        type: \"ir.actions.client\",\n    };\n});\n\nactionRegistry.add(\"studio\", loadStudioAction);\n", "/** @odoo-module **/\n\nimport { registry } from \"@web/core/registry\";\n\nconst actionRegistry = registry.category(\"actions\");\n\nactionRegistry.add(\"action_web_studio_app_creator\",\n    (env) => env.services.studio.open(env.services.studio.MODES.APP_CREATOR)\n);\n"], "file": "/web/assets/4193-5bbe0a6/web.assets_backend_prod_only.js", "sourceRoot": "../../../"}