@roomle/web-sdk 3.7.0-alpha.2 → 3.7.0-alpha.3
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/lib/ConfiguratorKernel.wasm +0 -0
- package/lib/RoomleCore.js +2 -2
- package/lib/RoomleCore.wasm +0 -0
- package/lib/RoomleToolsCore.wasm +0 -0
- package/lib/{api-oYzhcs_W.mjs → api-DgXsyN04.mjs} +2 -2
- package/lib/{api-oYzhcs_W.mjs.map → api-DgXsyN04.mjs.map} +1 -1
- package/lib/asset-loader.worker-A7nEeQB4.mjs.map +1 -1
- package/lib/banana-for-scale-D8t2dmc7.mjs.map +1 -1
- package/lib/budgeteer.sw-CQWYbQSc.mjs.map +1 -1
- package/lib/{configurator-CRMunIq7.mjs → configurator-CmMBHkyd.mjs} +3 -3
- package/lib/{configurator-CRMunIq7.mjs.map → configurator-CmMBHkyd.mjs.map} +1 -1
- package/lib/configurator-DtvX4JqP.mjs +2 -0
- package/lib/{glb-viewer-CXEoIw1b.mjs → glb-viewer-Cs3i0yb8.mjs} +3 -3
- package/lib/{glb-viewer-CXEoIw1b.mjs.map → glb-viewer-Cs3i0yb8.mjs.map} +1 -1
- package/lib/glb-viewer-Dcllu_oG.mjs +2 -0
- package/lib/{homag-intelligence-gb9MqBrz.mjs → homag-intelligence-CBZujG1I.mjs} +3 -3
- package/lib/{homag-intelligence-gb9MqBrz.mjs.map → homag-intelligence-CBZujG1I.mjs.map} +1 -1
- package/lib/kernel-C7YDLxq8.mjs.map +1 -1
- package/lib/{main-BJZ9-cDk.mjs → main-_HtiLIhS.mjs} +52 -39
- package/lib/main-_HtiLIhS.mjs.map +1 -0
- package/lib/{material-viewer-D8Nmpwg0.mjs → material-viewer-BCjg687R.mjs} +3 -3
- package/lib/{material-viewer-D8Nmpwg0.mjs.map → material-viewer-BCjg687R.mjs.map} +1 -1
- package/lib/packages-BhrPUb9k.mjs +4 -0
- package/lib/planner-CDJtTG3g.mjs +2 -0
- package/lib/{planner-5VarJrpy.mjs → planner-OYwMFSWo.mjs} +3 -3
- package/lib/{planner-5VarJrpy.mjs.map → planner-OYwMFSWo.mjs.map} +1 -1
- package/lib/roomle-headless.d.ts +67 -43
- package/lib/roomle-headless.js +18 -15
- package/lib/roomle-headless.js.map +1 -1
- package/lib/roomle-sdk.d.ts +67 -43
- package/lib/roomle-sdk.js +6 -6
- package/lib/{script-loader-gpkcl1h-.mjs → script-loader-X4I-gQl2.mjs} +2 -2
- package/lib/{script-loader-gpkcl1h-.mjs.map → script-loader-X4I-gQl2.mjs.map} +1 -1
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/package.json +1 -1
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCallback.d.ts +3 -3
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCallback.js +6 -6
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCallback.js.map +1 -1
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorCoreInterface.d.ts +10 -2
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorUtils.js +12 -0
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/configuratorUtils.js.map +1 -1
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.d.ts +27 -1
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.js +6 -1
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.js.map +1 -1
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/loader/planElementManager.d.ts +4 -0
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/loader/planElementManager.js +15 -0
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/src/loader/planElementManager.js.map +1 -1
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/ConfiguratorKernel.wasm +0 -0
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.js +2 -2
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleCore.wasm +0 -0
- package/lib/static/roomle-core-hsc/node_modules/roomle-core-hsc/wasm_modern/RoomleToolsCore.wasm +0 -0
- package/lib/threejs-utils-Bq4pVWBA.mjs.map +1 -1
- package/lib/{tools-core-DqnhFefF.mjs → tools-core-BRzDdhLJ.mjs} +3 -3
- package/lib/{tools-core-DqnhFefF.mjs.map → tools-core-BRzDdhLJ.mjs.map} +1 -1
- package/package.json +1 -1
- package/lib/configurator-DqiW717d.mjs +0 -2
- package/lib/glb-viewer-IDXgmONx.mjs +0 -2
- package/lib/main-BJZ9-cDk.mjs.map +0 -1
- package/lib/packages-Uv53SHfb.mjs +0 -4
- package/lib/planner-DJcn-iih.mjs +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"homag-intelligence-gb9MqBrz.mjs","names":["native"],"sources":["../../../../node_modules/uuid/dist/esm-browser/stringify.js","../../../../node_modules/uuid/dist/esm-browser/rng.js","../../../../node_modules/uuid/dist/esm-browser/native.js","../../../../node_modules/uuid/dist/esm-browser/v4.js","../../packages/homag-intelligence/src/callbacks.ts","../../packages/homag-intelligence/src/orders.ts","../../packages/homag-intelligence/src/debug-logging.ts","../../packages/homag-intelligence/src/homag-intelligence.ts"],"sourcesContent":["import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5naWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmluZ2lmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFNckMsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDO0FBRS9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUM3QixTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFlLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFNekQsT0FBTyxDQUNMLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLEdBQUc7UUFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQixHQUFHO1FBQ0gsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUIsR0FBRztRQUNILFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLEdBQUc7UUFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUM1QixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxHQUFlLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFDNUMsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQU8xQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEIsTUFBTSxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsZUFBZSxTQUFTLENBQUMifQ==","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm5nLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm5nLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsSUFBSSxlQUEwRCxDQUFDO0FBRS9ELE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRWpDLE1BQU0sQ0FBQyxPQUFPLFVBQVUsR0FBRztJQUV6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckIsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FDYiwwR0FBMEcsQ0FDM0csQ0FBQztRQUNKLENBQUM7UUFFRCxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMifQ==","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLEdBQ2QsT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFdkYsZUFBZSxFQUFFLFVBQVUsRUFBRSxDQUFDIn0=","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random || (options.rng || rng)();\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQztBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJakQsU0FBUyxFQUFFLENBQUMsT0FBeUIsRUFBRSxHQUFnQixFQUFFLE1BQWU7SUFDdEUsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0lBRXhCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFHdEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNsQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBR2xDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUVyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDNUIsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRCxlQUFlLEVBQUUsQ0FBQyJ9","import type { GlueLogic } from './glue-logic';\nimport { type RoomlePlanner } from '../../planner-core/src/roomle-planner';\nimport type { BASE_CONTEXT } from '../../common-core/src/main';\nimport type { SELECTION_MODE } from '../../configurator-core/src/utils/selection-handler';\nimport type { CallbackObjectType } from '../../planner-core/src/utils/planner-scene-utils';\nimport type { SelectionPayload } from '../../planner-core/src/roomle-planner-ui-callback';\nimport { type PlanElementViewModel } from '../../common-core/src/view-model/plan-element-view-model';\nimport type { CancelSelectionReasons } from '../../typings/planner';\n\nexport const initCallbacks = (\n roomlePlanner: RoomlePlanner,\n gluLogic: GlueLogic,\n) => {\n roomlePlanner.callbacks.onCompletelyLoaded = () => {\n gluLogic.groupsCompletelyLoaded();\n };\n\n roomlePlanner.callbacks.onExternalObjectModuleSelected = (\n groupId: string,\n rootModuleId: string | null,\n subModuleId: string | null,\n ) => {\n gluLogic.hiObjectSelection.groupOrModuleSelected(\n groupId,\n rootModuleId,\n subModuleId,\n );\n };\n\n roomlePlanner.callbacks.onContextChanged = (context: BASE_CONTEXT): void => {\n gluLogic.hiObjectSelection.contextChanged(context);\n };\n\n roomlePlanner.callbacks.onSelectionChange = (\n selectionMode: SELECTION_MODE,\n objectType: CallbackObjectType,\n payload: SelectionPayload,\n payloadPromise: Promise<SelectionPayload>,\n planElementViewModel: PlanElementViewModel,\n ): void => {\n gluLogic.hiObjectSelection.selectionChanged(\n selectionMode,\n objectType,\n payload,\n payloadPromise,\n planElementViewModel,\n );\n };\n\n roomlePlanner.callbacks.onSelectionCancel = (\n reason: CancelSelectionReasons,\n ): void => {\n gluLogic.hiObjectSelection.selectionCancel(reason);\n };\n};\n","import { type RoomlePlanner } from '../../planner-core/src/roomle-planner';\nimport type { GlueLogic } from './glue-logic';\nimport type { KernelPlanObject } from '../../typings/kernel';\nimport type { ExternalObjectSnapshotSaveResult } from './external-object-api';\nimport type {\n HiOrder,\n HiOrderData,\n HiOrderHeader,\n} from '#/common/src/hi/hi-types';\n\nconst getISO8601Date = (date = new Date()) => {\n // Get the ISO string (in UTC)\n let isoString = date.toISOString();\n\n // Remove the 'Z' at the end which indicates UTC\n isoString = isoString.slice(0, -1);\n\n // Find the position of milliseconds\n const msPosition = isoString.lastIndexOf('.');\n\n // Get the base timestamp with 3 digits of milliseconds and extend with zeros\n let baseTimestamp = isoString;\n\n if (msPosition !== -1) {\n // Add 4 zeros to extend from 3 to 7 digits of precision\n baseTimestamp = isoString.substring(0, msPosition + 4) + '0000';\n }\n\n // Get timezone offset in minutes and convert to hours and minutes\n const offsetMinutes = date.getTimezoneOffset();\n const offsetHours = Math.abs(Math.floor(offsetMinutes / 60));\n const offsetMins = Math.abs(offsetMinutes % 60);\n\n // Format the offset as +HH:MM or -HH:MM\n const offsetSign = offsetMinutes <= 0 ? '+' : '-';\n const offsetString = `${offsetSign}${String(offsetHours).padStart(\n 2,\n '0',\n )}:${String(offsetMins).padStart(2, '0')}`;\n\n return baseTimestamp + offsetString;\n};\n\nexport const createEmptyOrder = (): HiOrder => {\n return {\n id: (window as any).uuidv4\n ? (window as any).uuidv4()\n : '00000000-0000-0000-0000-000000000000',\n state: 'New',\n orderNumber: '736362',\n orderName: 'Bedroom & bathroom 01',\n orderDescription: 'Lorem ipsum dolor sit amet...',\n project: 'Single family house Müller John',\n personInCharge: 'Joe',\n orderDate: getISO8601Date(),\n deliveryDatePlanned: getISO8601Date(\n new Date(Date.now() + 14 * 24 * 60 * 60 * 1000),\n ),\n addresses: [\n {\n type: 'Delivery, Billing',\n street: 'Musterstraße',\n houseNumber: '1',\n postalCode: '12345',\n city: 'Musterstadt',\n country: 'Deutschland',\n },\n ],\n customerName: 'Müller & Co.',\n customerNumber: '462642',\n createdAt: getISO8601Date(),\n changedAt: getISO8601Date(),\n changedBy: 'Selfish',\n items: [] as any[],\n };\n};\n\nconst _addMerchantPositions = async (\n roomlePlanner: RoomlePlanner,\n groupData: any,\n) => {\n const planOverview = await roomlePlanner.getPlanOverview();\n const count: Record<string, number> = {}; // key is id and value is count\n const itemIds = (\n planOverview.objects as unknown as KernelPlanObject[]\n ).reduce((acc: string[], item: any) => {\n if (item.catalogItemId) {\n if (!count[item.catalogItemId]) {\n count[item.catalogItemId] = 0;\n acc.push(item.catalogItemId);\n }\n count[item.catalogItemId]++;\n }\n return acc;\n }, []);\n const items =\n Array.isArray(itemIds) && itemIds.length > 0\n ? await roomlePlanner.getRapiAccess().getItems(itemIds)\n : [];\n const merchantItems = items.filter((item: any) => {\n if (item.manufacturerSKU !== undefined) {\n item.count = count[item.id];\n return true;\n }\n return false;\n });\n if (Array.isArray(merchantItems) && merchantItems.length > 0) {\n if (!groupData.items) {\n groupData.items = [];\n }\n let posNo = groupData.items.reduce((acc: number, item: any) => {\n if (item.items?.length) {\n return acc + item.items.length;\n }\n return acc;\n }, 0);\n merchantItems.forEach((item) => {\n const pos = {} as any;\n pos.type = 'Position';\n pos.name = (++posNo).toString();\n pos.articleNumber = item.manufacturerSKU;\n pos.articleName = item.label;\n pos.catalog = item.catalog;\n pos.quantity = item.count;\n pos.height = item.displayedHeight;\n pos.width = item.displayedWidth;\n pos.depth = item.displayedDepth;\n pos.color = item.basecolor;\n pos.procurementType = 'PTO';\n pos.additionalData = [];\n if (item.perspectiveImage) {\n pos.additionalData.push({\n category: 'ArticleImage',\n downloadUri: item.perspectiveImage,\n type: 'Image',\n });\n }\n groupData.items.push(pos);\n });\n }\n};\n\nexport default class Orders {\n private _roomlePlanner: RoomlePlanner;\n private _glueLogic: GlueLogic;\n\n constructor(roomlePlanner: RoomlePlanner, glueLogic: GlueLogic) {\n this._roomlePlanner = roomlePlanner;\n this._glueLogic = glueLogic;\n }\n\n public async fetchPrice(planId?: string, orderHeader?: HiOrderHeader) {\n let orderData = await this._glueLogic.getGroupDataForOrder(planId);\n if (!orderData) {\n return null;\n }\n return await this._fetchOrderDataWithPrice(orderData, orderHeader);\n }\n\n public async placeOrder(\n withPrice: boolean = true,\n orderHeader?: HiOrderHeader,\n ) {\n const planData = await this._roomlePlanner.saveExternalObjectSnapshot();\n if (!planData) {\n console.error('Could not save plan snapshot before placing order');\n return;\n }\n\n let priceData = withPrice\n ? await this._fetchOrderDataWithPrice(planData.orderData, orderHeader)\n : null;\n\n let order;\n if (priceData) {\n order = priceData.orderData;\n } else {\n order = this._createOrder(orderHeader);\n order.items.push(planData.orderData as never);\n await _addMerchantPositions(this._roomlePlanner, planData.orderData);\n }\n\n // The first item in the order is the one created from the HI objects in the plan\n this._addAdditionalDataToOrder(order.items[0], planData);\n\n await this._glueLogic.hiCallbacks?.onPlaceOrder?.(order);\n }\n\n private _addAdditionalDataToOrder(\n orderData: HiOrderData,\n planData: ExternalObjectSnapshotSaveResult,\n ) {\n if (!Array.isArray(orderData.additionalData)) {\n orderData.additionalData = [];\n }\n if (planData.perspectiveImageLink) {\n orderData.additionalData.push({\n type: 'Image',\n category: 'OverviewImage',\n downloadUri: planData.perspectiveImageLink,\n });\n }\n if (planData.topImageLink) {\n orderData.additionalData.push({\n type: 'Image',\n category: 'AboveImage',\n downloadUri: planData.topImageLink,\n });\n }\n if (planData.objectGlbLink) {\n orderData.additionalData.push({\n type: 'ThreeD',\n category: 'ThreeDModel',\n downloadUri: planData.objectGlbLink,\n });\n }\n }\n\n private async _fetchOrderDataWithPrice(\n orderData: HiOrderData,\n orderHeader?: HiOrderHeader,\n ): Promise<any> {\n let order = this._createOrder(orderHeader);\n order.items.push(orderData as never);\n return this._glueLogic.hiCallbacks?.onFetchPrice?.(order) ?? null;\n }\n\n private _createOrder(orderHeader?: HiOrderHeader): HiOrder {\n return orderHeader\n ? {\n ...orderHeader,\n items: [],\n }\n : createEmptyOrder();\n }\n}\n","import type { HiCallbacks, HiOrderData } from '#/common/src/hi/hi-types';\nimport type {\n GlueLogic,\n LibraryData,\n RoomDesignerRequests,\n} from './glue-logic';\nimport type { ExternalObjectGroup } from 'roomle-core-hsc/src/embind/plannerCoreInterface';\nimport type { ExternalModuleInformation } from '../../typings/kernel';\nimport type {\n CheckDropDownResult,\n PosArticle,\n PosGroup,\n PosSaveData,\n} from './model/oc-scripts-domain.model';\nimport type { HiObjectSelectionApi } from './hi-object-selection';\nimport type {\n ExternalObjectSnapshotSaveResult,\n ExternalRoomInformation,\n LoadExternalObjectOptions,\n} from './external-object-api';\nimport type { ExternalObjectValidContainerModules } from './external-object-api-callbacks';\n\nexport class GlueLayerRequestDebugLogging implements GlueLogic {\n private _glueLogic: GlueLogic;\n private _hiCallbacks: HiCallbacks;\n\n constructor(glueLogic: GlueLogic, hiCallbacks: HiCallbacks) {\n this._glueLogic = glueLogic;\n this._hiCallbacks = hiCallbacks;\n }\n\n public get hiCallbacks(): HiCallbacks | null {\n return this._hiCallbacks;\n }\n\n public get hiObjectSelection(): HiObjectSelectionApi {\n return this._glueLogic.hiObjectSelection;\n }\n\n private _logRequest(\n message: string,\n ...args: Array<string | null | undefined>\n ) {\n let messageAndArgs = message;\n if (args) {\n args.forEach((item) => {\n messageAndArgs += ' ' + item;\n });\n }\n this._hiCallbacks.onLogMessage?.('HI REQUEST', messageAndArgs);\n }\n\n public isLibraryLoaded(libraryId: string): boolean {\n return this._glueLogic.isLibraryLoaded(libraryId);\n }\n\n public getLibraryData(libraryId: string): LibraryData | null {\n return this._glueLogic.getLibraryData(libraryId);\n }\n\n public addLibrary(libraryData: LibraryData): Promise<void> {\n this._logRequest('addLibrary', libraryData.libraryId);\n return this._glueLogic.addLibrary(libraryData);\n }\n\n public setPosDataForLoading(posData: PosSaveData | null): Promise<void> {\n this._logRequest('setPosDataForLoading', posData ? 'set' : 'null');\n return this._glueLogic.setPosDataForLoading(posData);\n }\n\n public loadPosData(articleCatalogJson: any, libraryId: string): void {\n this._logRequest('loadPosData', libraryId);\n this._glueLogic.loadPosData(articleCatalogJson, libraryId);\n }\n\n public async mergeGroups(\n targetGroup: ExternalObjectGroup,\n idsOfGroupsMerged: string | string[],\n idOfTargetRootModule: string,\n mergedWithDragging: boolean,\n ): Promise<void> {\n this._logRequest(\n 'mergeGroups',\n targetGroup.groupId,\n JSON.stringify(idsOfGroupsMerged),\n idOfTargetRootModule,\n );\n return this._glueLogic.mergeGroups(\n targetGroup,\n idsOfGroupsMerged,\n idOfTargetRootModule,\n mergedWithDragging,\n );\n }\n\n public deleteRootModule(\n remainingGroup: ExternalObjectGroup,\n rootModuleIdToDelete: string,\n splitOffGroups: ExternalObjectGroup[],\n ): Promise<void> {\n this._logRequest(\n 'deleteRootModule',\n JSON.stringify(remainingGroup),\n rootModuleIdToDelete,\n JSON.stringify(splitOffGroups),\n );\n return this._glueLogic.deleteRootModule(\n remainingGroup,\n rootModuleIdToDelete,\n splitOffGroups,\n );\n }\n\n public splitRootModuleFromGroup(\n splitGroup: ExternalObjectGroup,\n newGroupedRootModules: ExternalObjectGroup[],\n ): Promise<void> {\n this._logRequest(\n 'splitRootModuleFromGroup',\n JSON.stringify(splitGroup),\n JSON.stringify(newGroupedRootModules),\n );\n return this._glueLogic.splitRootModuleFromGroup(\n splitGroup,\n newGroupedRootModules,\n );\n }\n\n public async duplicateGroup(\n duplicatedGroup: ExternalObjectGroup,\n ): Promise<void> {\n this._logRequest('duplicateGroup', duplicatedGroup.groupId);\n return this._glueLogic.duplicateGroup(duplicatedGroup);\n }\n\n public modifyAttribute(\n groupId: string,\n moduleIdObjects: ExternalModuleInformation[],\n attributeName: string,\n value: string,\n ): Promise<void> {\n this._logRequest(\n 'modifyAttribute',\n groupId,\n JSON.stringify(moduleIdObjects),\n attributeName,\n value,\n );\n return this._glueLogic.modifyAttribute(\n groupId,\n moduleIdObjects,\n attributeName,\n value,\n );\n }\n\n public updateAttribute(\n rootModuleId: string,\n moduleId: string | null,\n attributeId: string,\n attributeValue: string | boolean,\n ): Promise<void> {\n this._logRequest(\n 'updateAttribute',\n rootModuleId,\n moduleId,\n attributeId,\n attributeValue.toString(),\n );\n return this._glueLogic.updateAttribute(\n rootModuleId,\n moduleId,\n attributeId,\n attributeValue,\n );\n }\n\n public getVerifiedAttributeOptions(\n moduleId: string,\n attributeIds?: string | string[],\n ): Promise<Record<string, CheckDropDownResult> | undefined> {\n this._logRequest(\n 'getVerifiedAttributeOptions',\n moduleId,\n attributeIds ? JSON.stringify(attributeIds) : '[]',\n );\n return this._glueLogic.getVerifiedAttributeOptions(moduleId, attributeIds);\n }\n\n public getVerifiedGroupAttributeOptions(\n groupId: string,\n attributeIds?: string | string[],\n ): Promise<Record<string, CheckDropDownResult> | undefined> {\n this._logRequest(\n 'getVerifiedGroupAttributeOptions',\n groupId,\n attributeIds ? JSON.stringify(attributeIds) : '[]',\n );\n return this._glueLogic.getVerifiedGroupAttributeOptions(\n groupId,\n attributeIds,\n );\n }\n\n public updateProperty(\n rootModuleId?: string,\n propertyName?: string,\n propertyValue?: string | number | boolean,\n ): void {\n this._logRequest(\n 'updateProperty',\n rootModuleId ?? 'undefined',\n propertyName ?? 'undefined',\n propertyValue?.toString() ?? 'undefined',\n );\n this._glueLogic.updateProperty(rootModuleId, propertyName, propertyValue);\n }\n\n public findValidSubArticles(posGroupIds: string[] | string): PosArticle[] {\n this._logRequest(\n 'findValidSubArticles',\n Array.isArray(posGroupIds) ? JSON.stringify(posGroupIds) : posGroupIds,\n );\n return this._glueLogic.findValidSubArticles(posGroupIds);\n }\n\n public getValidContainerModulesForSubArticle(\n posGroupIds: string[] | string,\n subArticleId: string,\n ): ExternalObjectValidContainerModules[] {\n this._logRequest(\n 'getValidContainerModulesForSubArticle',\n Array.isArray(posGroupIds) ? JSON.stringify(posGroupIds) : posGroupIds,\n subArticleId,\n );\n return this._glueLogic.getValidContainerModulesForSubArticle(\n posGroupIds,\n subArticleId,\n );\n }\n\n public addSubArticle(\n articleId: string,\n rootModuleId: string,\n parentModuleId: string,\n ): void {\n this._logRequest('addSubArticle', articleId, rootModuleId, parentModuleId);\n return this._glueLogic.addSubArticle(\n articleId,\n rootModuleId,\n parentModuleId,\n );\n }\n\n public deleteSubArticles(\n groupId: string,\n subModuleIds: string[] | string,\n ): Promise<void> {\n this._logRequest(\n 'deleteSubArticles',\n groupId,\n Array.isArray(subModuleIds) ? JSON.stringify(subModuleIds) : subModuleIds,\n );\n return this._glueLogic.deleteSubArticles(groupId, subModuleIds);\n }\n\n public swapRootModule(\n groupId: string,\n rootModuleId: string,\n articleId: string,\n ): Promise<void> {\n this._logRequest('swapRootModule', groupId, rootModuleId, articleId);\n return this._glueLogic.swapRootModule(groupId, rootModuleId, articleId);\n }\n\n public arrangeRootModulesOfGroup(\n changedGroup: ExternalObjectGroup,\n ): Promise<void> {\n this._logRequest('arrangeRootModulesOfGroup', JSON.stringify(changedGroup));\n return this._glueLogic.arrangeRootModulesOfGroup(changedGroup);\n }\n\n public changedGroupPlanningSituation(\n changedGroup: ExternalObjectGroup,\n objectPositionChanged: boolean,\n ): Promise<void> {\n this._logRequest(\n 'changedGroupPlanningSituation',\n changedGroup.groupId,\n objectPositionChanged.toString(),\n );\n return this._glueLogic.changedGroupPlanningSituation(\n changedGroup,\n objectPositionChanged,\n );\n }\n\n public changedGroupFromHistory(\n posDataJson: PosGroup,\n reloadGroup: boolean,\n ): void {\n this._logRequest(\n 'changedGroupFromHistory',\n posDataJson.id,\n reloadGroup.toString(),\n );\n this._glueLogic.changedGroupFromHistory(posDataJson, reloadGroup);\n }\n\n public loadedGroup(posDataJson: PosGroup): Promise<void> {\n this._logRequest('loadedGroup', posDataJson.id);\n return this._glueLogic.loadedGroup(posDataJson);\n }\n\n public groupsCompletelyLoaded(): void {\n this._logRequest('groupsCompletelyLoaded');\n this._glueLogic.groupsCompletelyLoaded();\n }\n\n public removedGroup(groupId: string): void {\n this._logRequest('removedGroup', groupId);\n this._glueLogic.removedGroup(groupId);\n }\n\n public openCloseGroup(groupId: string): void {\n this._logRequest('openCloseGroup', groupId);\n this._glueLogic.openCloseGroup(groupId);\n }\n\n public getSaveDataGroups(): Promise<PosGroup[] | null> {\n this._logRequest('getSaveDataGroups');\n return this._glueLogic.getSaveDataGroups();\n }\n\n public getSubArticleId(id: string): string | undefined {\n this._logRequest('getSubArticleId', id);\n return this._glueLogic.getSubArticleId(id);\n }\n\n public async newPosDataFromId(id: string): Promise<PosGroup | undefined> {\n this._logRequest('newPosDataFromId', id);\n return this._glueLogic.newPosDataFromId(id);\n }\n\n public async newPosDataFromGroup(posDataJson: PosGroup): Promise<PosGroup> {\n this._logRequest('newPosDataFromId', JSON.stringify(posDataJson));\n return this._glueLogic.newPosDataFromGroup(posDataJson);\n }\n\n public getGroupDataForOrder(\n roomlePlannerId?: string,\n ): Promise<HiOrderData | null> {\n this._logRequest('getGroupDataForOrder', roomlePlannerId);\n return this._glueLogic.getGroupDataForOrder(roomlePlannerId);\n }\n\n public getMaterialUrl(\n materialId: string,\n groupOrModuleId?: string,\n ): string | null {\n this._logRequest('getMaterialUrl', materialId, groupOrModuleId);\n return this._glueLogic.getMaterialUrl(materialId, groupOrModuleId);\n }\n}\n\nexport class GlueLayerResponseDebugLogging implements RoomDesignerRequests {\n private _roomDesignerRequests: RoomDesignerRequests;\n private _hiCallbacks: HiCallbacks;\n\n constructor(\n roomDesignerRequests: RoomDesignerRequests,\n hiCallbacks: HiCallbacks,\n ) {\n this._roomDesignerRequests = roomDesignerRequests;\n this._hiCallbacks = hiCallbacks;\n }\n\n private _logResponse(message: string, ...args: Array<string | null>) {\n let messageAndArgs = message;\n if (args) {\n args.forEach((item) => {\n messageAndArgs += ' ' + item;\n });\n }\n this._hiCallbacks.onLogMessage?.('HI RESPONSE', messageAndArgs);\n }\n\n public loadMasterData(masterData: any): void {\n this._logResponse('loadMasterData');\n this._roomDesignerRequests.loadMasterData(masterData);\n }\n\n public async loadPosGroups(\n posDataJson: PosGroup | PosGroup[],\n options: LoadExternalObjectOptions,\n ): Promise<void> {\n const groupIds = Array.isArray(posDataJson)\n ? posDataJson.map((group) => group.id).join(',')\n : posDataJson.id;\n this._logResponse(\n 'loadPosGroups',\n groupIds,\n options.reason ?? 'undefined',\n options.findFreeSpaceInPlan?.toString() ?? 'false',\n options.moduleIdMap ? JSON.stringify(options.moduleIdMap) : '[]',\n options.mergedGroups ? JSON.stringify(options.mergedGroups) : '[]',\n );\n return this._roomDesignerRequests.loadPosGroups(posDataJson, options);\n }\n\n public completelyLoaded(): void {\n this._logResponse('completelyLoaded');\n this._roomDesignerRequests.completelyLoaded();\n }\n\n public async selectGroup(groupId: string): Promise<void> {\n this._logResponse('selectGroup', groupId);\n return this._roomDesignerRequests.selectGroup(groupId);\n }\n\n public async selectRoot(rootModuleId: string): Promise<void> {\n this._logResponse('selectRoot', rootModuleId);\n return this._roomDesignerRequests.selectRoot(rootModuleId);\n }\n\n public async selectModule(\n rootModuleId: string,\n subModuleId: string,\n ): Promise<void> {\n this._logResponse('selectModule', rootModuleId, subModuleId);\n return this._roomDesignerRequests.selectModule(rootModuleId, subModuleId);\n }\n\n public openCloseGroup(\n groupOrRootModuleId: string,\n subModuleId: string | null,\n open: boolean,\n animate: boolean,\n ) {\n this._logResponse(\n 'openCloseGroup',\n groupOrRootModuleId,\n subModuleId,\n open.toString(),\n animate.toString(),\n );\n this._roomDesignerRequests.openCloseGroup(\n groupOrRootModuleId,\n subModuleId,\n open,\n animate,\n );\n return Promise.resolve();\n }\n\n public deleteGroup(groupId: string): void {\n this._logResponse('deleteGroup', groupId);\n return this._roomDesignerRequests.deleteGroup(groupId);\n }\n\n public deleteRootModule(rootModuleId: string): void {\n this._logResponse('deleteRootModule', rootModuleId);\n return this._roomDesignerRequests.deleteRootModule(rootModuleId);\n }\n\n public getPosDataOfAllGroups(): Promise<PosGroup[]> {\n this._logResponse('getPosDataOfAllGroups');\n return this._roomDesignerRequests.getPosDataOfAllGroups();\n }\n\n public getRoomInformation(): Promise<ExternalRoomInformation> {\n this._logResponse('getRoomInformation');\n return this._roomDesignerRequests.getRoomInformation();\n }\n\n public saveExternalObjectSnapshot(): Promise<ExternalObjectSnapshotSaveResult | null> {\n this._logResponse('saveExternalObjectSnapshot');\n return this._roomDesignerRequests.saveExternalObjectSnapshot();\n }\n}\n","import { RoomDesignerApi } from './api';\nimport type { GlueLogic, HiAttributeOptionsResult } from './glue-logic';\nimport { GlueLogicImplementation, type LibraryData } from './glue-logic';\nimport { type HomagIntelligenceInitData } from './hi-api-types';\nimport { v4 as uuidv4 } from 'uuid';\nimport type {\n MasterData,\n PosArticle,\n PosContour,\n PosGroup,\n PosModuleAttribute,\n PosModuleData,\n} from './model/oc-scripts-domain.model';\nimport { initCallbacks } from './callbacks';\nimport { type RoomlePlanner } from '../../planner-core/src/roomle-planner';\nimport Orders from './orders';\nimport type {\n ExternalConfiguration,\n ExternalItem,\n} from '../../typings/external-objects';\nimport type { HiTagCatalogCallbacks } from './hi-tag-catalog-callbacks';\nimport type { HiCallbacks, HiOrderHeader } from '#/common/src/hi/hi-types';\nimport {\n GlueLayerRequestDebugLogging,\n GlueLayerResponseDebugLogging,\n} from './debug-logging';\nimport type { ExternalObjectValidContainerModules } from './external-object-api-callbacks';\n\ndeclare global {\n interface Window {\n uuidv4: () => string;\n }\n}\n\nconsole.warn('Homag Intelligence plugin is loaded.');\n\n// export const HOMAG_INTELLIGENCE_ENDPOINT = 'http://localhost:8080/proxy_request?url=';\n// export const HOMAG_INTELLIGENCE_ENDPOINT =\n// 'https://europe-west3-rml-showcases.cloudfunctions.net/proxy_request?url=';\n\nexport type ExternalObjects = Map<\n string,\n { id: string; label: string; items: any[] }\n>;\nexport type ExternalItems = Map<string, ExternalItem>;\nexport type ExternalConfigurations = Map<string, ExternalConfiguration>;\n\nexport class HomagIntelligence {\n private _roomlePlanner: RoomlePlanner;\n private _api: RoomDesignerApi;\n private _glueLogic: GlueLogic;\n private _orders: Orders;\n private _hiCallbacks: HiCallbacks;\n\n constructor(\n roomlePlanner: RoomlePlanner,\n hiOptions: HomagIntelligenceInitData,\n hiCallbacks: HiCallbacks,\n ) {\n if (!window.uuidv4) {\n window.uuidv4 = uuidv4; // Ensure uuidv4 is available globally\n }\n\n this._roomlePlanner = roomlePlanner;\n this._roomlePlanner.setHomagIntelligence(this);\n this._hiCallbacks = hiCallbacks;\n this._api = new RoomDesignerApi(this._roomlePlanner);\n\n if (hiOptions?.debugLogging) {\n const api = new GlueLayerResponseDebugLogging(this._api, hiCallbacks);\n const glueLogic = new GlueLogicImplementation(api, hiCallbacks);\n this._glueLogic = new GlueLayerRequestDebugLogging(\n glueLogic,\n hiCallbacks,\n );\n } else {\n this._glueLogic = new GlueLogicImplementation(this._api, hiCallbacks);\n }\n initCallbacks(this._roomlePlanner, this._glueLogic);\n this._orders = new Orders(roomlePlanner, this._glueLogic);\n }\n\n /**\n * Loads previously saved PosGroup data via hiCallbacks.\n * Must be called after construction to restore saved state.\n */\n public async loadSavedPosData(): Promise<void> {\n const savedPosGroupData =\n (await this._hiCallbacks.onGetSavedPosGroupData?.()) ?? null;\n await this._glueLogic.setPosDataForLoading(savedPosGroupData);\n }\n\n public async loadLibrary(libraryId: string) {\n const libraryData = await this._loadLibraryData(libraryId);\n await this._glueLogic.addLibrary(libraryData);\n }\n\n public async loadCatalog(\n libraryId: string,\n articles: any,\n catalogCallbacks: HiTagCatalogCallbacks,\n ) {\n catalogCallbacks?.setEmulator(this._glueLogic);\n this._glueLogic.loadPosData(await articles, libraryId);\n }\n\n private async _loadLibraryData(libraryId: string): Promise<LibraryData> {\n if (this._glueLogic.isLibraryLoaded(libraryId)) {\n const data = this._glueLogic.getLibraryData(libraryId);\n if (data !== null) {\n return data;\n }\n }\n const hiCallbacks = this._glueLogic.hiCallbacks;\n if (hiCallbacks === null) {\n throw new Error('HiCallbacks not initialized');\n }\n const { masterData, libraryExports } = await this._requestHiLibrary(\n libraryId,\n hiCallbacks,\n );\n this._loadMasterData(masterData);\n const libraryData: LibraryData = {\n libraryId,\n masterData,\n posGroupVersion: 1,\n calculateGroup: (groupData: PosGroup): PosGroup => {\n return libraryExports.calc(groupData);\n },\n getOrderData: (\n groupData: PosGroup[],\n roomlePlannerId?: string,\n rooms?: PosContour[],\n ): any => {\n return libraryExports.getOrderData(groupData, roomlePlannerId, rooms);\n },\n getAttributesDropDownValues: async (\n module: PosModuleData,\n attributeIds?: string | string[],\n ): Promise<Record<string, HiAttributeOptionsResult>> => {\n const ids = attributeIds\n ? Array.isArray(attributeIds)\n ? attributeIds\n : [attributeIds]\n : (module.attributes ?? []).map((attribute) => attribute.id);\n const attributeOptions: Record<string, any[]> = {};\n for (const attributeId of ids) {\n try {\n const attributeDropDownApi =\n libraryExports.getAttributesDropDownValuesV2 ??\n libraryExports.getAttributesDropDownValues;\n const options = await attributeDropDownApi(module, attributeId);\n attributeOptions[attributeId] = options;\n } catch (error) {\n console.error(error);\n attributeOptions[attributeId] = [];\n }\n }\n return attributeOptions;\n },\n solveModuleAttributeConflict: (\n module: PosModuleData,\n attributeName: string,\n value: string | number | boolean,\n ): PosModuleAttribute[] | undefined => {\n if (!libraryExports.solveModuleAttributeConflict) {\n return undefined;\n }\n const results = libraryExports.solveModuleAttributeConflict(\n module,\n attributeName,\n value,\n );\n return results;\n },\n getValidSubArticles(\n calculatedPosGroup: PosGroup,\n articles: PosArticle[],\n masterData: MasterData,\n ): PosArticle[] {\n if (!libraryExports.getValidSubArticles) {\n return [];\n }\n const results = libraryExports.getValidSubArticles(\n calculatedPosGroup,\n articles,\n masterData,\n );\n return results;\n },\n getValidContainerModulesForSubArticle(\n calculatedPosGroup: PosGroup,\n subArticle: PosArticle,\n masterData: MasterData,\n ): ExternalObjectValidContainerModules[] {\n if (!libraryExports.getValidContainerModulesForSubArticle) {\n return [];\n }\n const results = libraryExports.getValidContainerModulesForSubArticle(\n calculatedPosGroup,\n subArticle,\n masterData,\n );\n return results;\n },\n addSubArticle(\n targetPosGroup: PosGroup,\n article: PosArticle,\n rootId: string,\n parentModuleId: string,\n ): PosGroup {\n if (!libraryExports.addSubArticle) {\n return targetPosGroup;\n }\n const results = libraryExports.addSubArticle(\n targetPosGroup,\n article,\n rootId,\n parentModuleId,\n );\n return results;\n },\n deleteSubArticle(\n targetPosGroup: PosGroup,\n rootId: string,\n articleModuleId: string,\n ): PosGroup {\n if (!libraryExports.deleteSubArticle) {\n return targetPosGroup;\n }\n const results = libraryExports.deleteSubArticle(\n targetPosGroup,\n rootId,\n articleModuleId,\n );\n return results;\n },\n };\n return libraryData;\n }\n\n public async _requestHiLibrary(\n libraryId: string,\n hiCallbacks: HiCallbacks,\n ): Promise<{\n masterData: MasterData;\n libraryExports: any;\n }> {\n const [masterData, calcScriptString] = await Promise.all([\n hiCallbacks.onLoadMasterData(libraryId),\n hiCallbacks.onLoadJavascript(libraryId),\n ]);\n const libraryExports = await this._initCalcScript(calcScriptString);\n return {\n masterData,\n libraryExports,\n };\n }\n\n private _loadMasterData(masterData: MasterData): void {\n return this._api.loadMasterData(masterData);\n }\n\n private async _initCalcScript(scriptText: string): Promise<any> {\n try {\n window.exports = {};\n const blob = new Blob([scriptText], { type: 'text/javascript' });\n const blobUrl = URL.createObjectURL(blob);\n await import(blobUrl);\n URL.revokeObjectURL(blobUrl); // dispose of it when done\n return window.exports;\n } catch (e) {\n console.error(e);\n throw new Error('Failed to load calc.js!');\n }\n }\n\n public getGlueLogic(): GlueLogic {\n return this._glueLogic;\n }\n\n public async placeOrder(\n withPrice: boolean = true,\n orderHeader?: HiOrderHeader,\n ) {\n await this._orders.placeOrder(withPrice, orderHeader);\n }\n\n public async fetchPrice(planId?: string, orderHeader?: HiOrderHeader) {\n return this._orders.fetchPrice(planId, orderHeader);\n }\n}\n"],"x_google_ignoreList":[0,1,2,3],"mappings":";;;AACA,IAAM,IAAY,EAAE;AACpB,KAAK,IAAI,IAAI,GAAG,IAAI,KAAK,EAAE,EACvB,GAAU,MAAM,IAAI,KAAO,SAAS,GAAG,CAAC,MAAM,EAAE,CAAC;AAErD,SAAgB,EAAgB,GAAK,IAAS,GAAG;AAC7C,SAAQ,EAAU,EAAI,IAAS,MAC3B,EAAU,EAAI,IAAS,MACvB,EAAU,EAAI,IAAS,MACvB,EAAU,EAAI,IAAS,MACvB,MACA,EAAU,EAAI,IAAS,MACvB,EAAU,EAAI,IAAS,MACvB,MACA,EAAU,EAAI,IAAS,MACvB,EAAU,EAAI,IAAS,MACvB,MACA,EAAU,EAAI,IAAS,MACvB,EAAU,EAAI,IAAS,MACvB,MACA,EAAU,EAAI,IAAS,OACvB,EAAU,EAAI,IAAS,OACvB,EAAU,EAAI,IAAS,OACvB,EAAU,EAAI,IAAS,OACvB,EAAU,EAAI,IAAS,OACvB,EAAU,EAAI,IAAS,MAAM,aAAa;;;;ACzBlD,IAAI,GACE,IAAQ,IAAI,WAAW,GAAG;AAChC,SAAwB,IAAM;AAC1B,KAAI,CAAC,GAAiB;AAClB,MAAI,OAAO,SAAW,OAAe,CAAC,OAAO,gBACzC,OAAU,MAAM,2GAA2G;AAE/H,MAAkB,OAAO,gBAAgB,KAAK,OAAO;;AAEzD,QAAO,EAAgB,EAAM;;ACRjC,IAAA,IAAe,EAAE,YADE,OAAO,SAAW,OAAe,OAAO,cAAc,OAAO,WAAW,KAAK,OAAO,EAC1E;;;ACE7B,SAAS,EAAG,GAAS,GAAK,GAAQ;AAC9B,KAAIA,EAAO,cAAc,CAAC,KAAO,CAAC,EAC9B,QAAOA,EAAO,YAAY;AAE9B,OAAqB,EAAE;CACvB,IAAM,IAAO,EAAQ,WAAW,EAAQ,OAAO,IAAM;AAGrD,KAFA,EAAK,KAAM,EAAK,KAAK,KAAQ,IAC7B,EAAK,KAAM,EAAK,KAAK,KAAQ,KACzB,GAAK;AACL,QAAmB;AACnB,OAAK,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,EACtB,GAAI,IAAS,KAAK,EAAK;AAE3B,SAAO;;AAEX,QAAO,EAAgB,EAAK;;;;ACThC,IAAa,KACX,GACA,MACG;AAqCH,CApCA,EAAc,UAAU,2BAA2B;AACjD,IAAS,wBAAwB;IAGnC,EAAc,UAAU,kCACtB,GACA,GACA,MACG;AACH,IAAS,kBAAkB,sBACzB,GACA,GACA,EACD;IAGH,EAAc,UAAU,oBAAoB,MAAgC;AAC1E,IAAS,kBAAkB,eAAe,EAAQ;IAGpD,EAAc,UAAU,qBACtB,GACA,GACA,GACA,GACA,MACS;AACT,IAAS,kBAAkB,iBACzB,GACA,GACA,GACA,GACA,EACD;IAGH,EAAc,UAAU,qBACtB,MACS;AACT,IAAS,kBAAkB,gBAAgB,EAAO;;GC1ChD,KAAkB,oBAAO,IAAI,MAAM,KAAK;CAE5C,IAAI,IAAY,EAAK,aAAa;AAGlC,KAAY,EAAU,MAAM,GAAG,GAAG;CAGlC,IAAM,IAAa,EAAU,YAAY,IAAI,EAGzC,IAAgB;AAEpB,CAAI,MAAe,OAEjB,IAAgB,EAAU,UAAU,GAAG,IAAa,EAAE,GAAG;CAI3D,IAAM,IAAgB,EAAK,mBAAmB,EACxC,IAAc,KAAK,IAAI,KAAK,MAAM,IAAgB,GAAG,CAAC,EACtD,IAAa,KAAK,IAAI,IAAgB,GAAG,EAIzC,IAAe,GADF,KAAiB,IAAI,MAAM,MACT,OAAO,EAAY,CAAC,SACvD,GACA,IACD,CAAC,GAAG,OAAO,EAAW,CAAC,SAAS,GAAG,IAAI;AAExC,QAAO,IAAgB;GAGZ,WACJ;CACL,IAAK,OAAe,SACf,OAAe,QAAQ,GACxB;CACJ,OAAO;CACP,aAAa;CACb,WAAW;CACX,kBAAkB;CAClB,SAAS;CACT,gBAAgB;CAChB,WAAW,GAAgB;CAC3B,qBAAqB,EACnB,IAAI,KAAK,KAAK,KAAK,GAAG,MAAU,KAAK,KAAK,IAAK,CAChD;CACD,WAAW,CACT;EACE,MAAM;EACN,QAAQ;EACR,aAAa;EACb,YAAY;EACZ,MAAM;EACN,SAAS;EACV,CACF;CACD,cAAc;CACd,gBAAgB;CAChB,WAAW,GAAgB;CAC3B,WAAW,GAAgB;CAC3B,WAAW;CACX,OAAO,EAAE;CACV,GAGG,IAAwB,OAC5B,GACA,MACG;CACH,IAAM,IAAe,MAAM,EAAc,iBAAiB,EACpD,IAAgC,EAAE,EAClC,IACJ,EAAa,QACb,QAAQ,GAAe,OACnB,EAAK,kBACF,EAAM,EAAK,mBACd,EAAM,EAAK,iBAAiB,GAC5B,EAAI,KAAK,EAAK,cAAc,GAE9B,EAAM,EAAK,mBAEN,IACN,EAAE,CAAC,EAKA,KAHJ,MAAM,QAAQ,EAAQ,IAAI,EAAQ,SAAS,IACvC,MAAM,EAAc,eAAe,CAAC,SAAS,EAAQ,GACrD,EAAE,EACoB,QAAQ,MAC9B,EAAK,oBAAoB,KAAA,IAItB,MAHL,EAAK,QAAQ,EAAM,EAAK,KACjB,IAGT;AACF,KAAI,MAAM,QAAQ,EAAc,IAAI,EAAc,SAAS,GAAG;AAC5D,EACE,EAAU,UAAQ,EAAE;EAEtB,IAAI,IAAQ,EAAU,MAAM,QAAQ,GAAa,MAC3C,EAAK,OAAO,SACP,IAAM,EAAK,MAAM,SAEnB,GACN,EAAE;AACL,IAAc,SAAS,MAAS;GAC9B,IAAM,IAAM,EAAE;AAoBd,GAnBA,EAAI,OAAO,YACX,EAAI,QAAQ,EAAE,GAAO,UAAU,EAC/B,EAAI,gBAAgB,EAAK,iBACzB,EAAI,cAAc,EAAK,OACvB,EAAI,UAAU,EAAK,SACnB,EAAI,WAAW,EAAK,OACpB,EAAI,SAAS,EAAK,iBAClB,EAAI,QAAQ,EAAK,gBACjB,EAAI,QAAQ,EAAK,gBACjB,EAAI,QAAQ,EAAK,WACjB,EAAI,kBAAkB,OACtB,EAAI,iBAAiB,EAAE,EACnB,EAAK,oBACP,EAAI,eAAe,KAAK;IACtB,UAAU;IACV,aAAa,EAAK;IAClB,MAAM;IACP,CAAC,EAEJ,EAAU,MAAM,KAAK,EAAI;IACzB;;GAIe,IAArB,MAA4B;CAI1B,YAAY,GAA8B,GAAsB;AAE9D,EADA,KAAK,iBAAiB,GACtB,KAAK,aAAa;;CAGpB,MAAa,WAAW,GAAiB,GAA6B;EACpE,IAAI,IAAY,MAAM,KAAK,WAAW,qBAAqB,EAAO;AAIlE,SAHK,IAGE,MAAM,KAAK,yBAAyB,GAAW,EAAY,GAFzD;;CAKX,MAAa,WACX,IAAqB,IACrB,GACA;EACA,IAAM,IAAW,MAAM,KAAK,eAAe,4BAA4B;AACvE,MAAI,CAAC,GAAU;AACb,WAAQ,MAAM,oDAAoD;AAClE;;EAGF,IAAI,IAAY,IACZ,MAAM,KAAK,yBAAyB,EAAS,WAAW,EAAY,GACpE,MAEA;AAYJ,EAXI,IACF,IAAQ,EAAU,aAElB,IAAQ,KAAK,aAAa,EAAY,EACtC,EAAM,MAAM,KAAK,EAAS,UAAmB,EAC7C,MAAM,EAAsB,KAAK,gBAAgB,EAAS,UAAU,GAItE,KAAK,0BAA0B,EAAM,MAAM,IAAI,EAAS,EAExD,MAAM,KAAK,WAAW,aAAa,eAAe,EAAM;;CAG1D,0BACE,GACA,GACA;AAkBA,EAjBK,MAAM,QAAQ,EAAU,eAAe,KAC1C,EAAU,iBAAiB,EAAE,GAE3B,EAAS,wBACX,EAAU,eAAe,KAAK;GAC5B,MAAM;GACN,UAAU;GACV,aAAa,EAAS;GACvB,CAAC,EAEA,EAAS,gBACX,EAAU,eAAe,KAAK;GAC5B,MAAM;GACN,UAAU;GACV,aAAa,EAAS;GACvB,CAAC,EAEA,EAAS,iBACX,EAAU,eAAe,KAAK;GAC5B,MAAM;GACN,UAAU;GACV,aAAa,EAAS;GACvB,CAAC;;CAIN,MAAc,yBACZ,GACA,GACc;EACd,IAAI,IAAQ,KAAK,aAAa,EAAY;AAE1C,SADA,EAAM,MAAM,KAAK,EAAmB,EAC7B,KAAK,WAAW,aAAa,eAAe,EAAM,IAAI;;CAG/D,aAAqB,GAAsC;AACzD,SAAO,IACH;GACE,GAAG;GACH,OAAO,EAAE;GACV,GACD,GAAkB;;GCnNb,IAAb,MAA+D;CAI7D,YAAY,GAAsB,GAA0B;AAE1D,EADA,KAAK,aAAa,GAClB,KAAK,eAAe;;CAGtB,IAAW,cAAkC;AAC3C,SAAO,KAAK;;CAGd,IAAW,oBAA0C;AACnD,SAAO,KAAK,WAAW;;CAGzB,YACE,GACA,GAAG,GACH;EACA,IAAI,IAAiB;AAMrB,EALI,KACF,EAAK,SAAS,MAAS;AACrB,QAAkB,MAAM;IACxB,EAEJ,KAAK,aAAa,eAAe,cAAc,EAAe;;CAGhE,gBAAuB,GAA4B;AACjD,SAAO,KAAK,WAAW,gBAAgB,EAAU;;CAGnD,eAAsB,GAAuC;AAC3D,SAAO,KAAK,WAAW,eAAe,EAAU;;CAGlD,WAAkB,GAAyC;AAEzD,SADA,KAAK,YAAY,cAAc,EAAY,UAAU,EAC9C,KAAK,WAAW,WAAW,EAAY;;CAGhD,qBAA4B,GAA4C;AAEtE,SADA,KAAK,YAAY,wBAAwB,IAAU,QAAQ,OAAO,EAC3D,KAAK,WAAW,qBAAqB,EAAQ;;CAGtD,YAAmB,GAAyB,GAAyB;AAEnE,EADA,KAAK,YAAY,eAAe,EAAU,EAC1C,KAAK,WAAW,YAAY,GAAoB,EAAU;;CAG5D,MAAa,YACX,GACA,GACA,GACA,GACe;AAOf,SANA,KAAK,YACH,eACA,EAAY,SACZ,KAAK,UAAU,EAAkB,EACjC,EACD,EACM,KAAK,WAAW,YACrB,GACA,GACA,GACA,EACD;;CAGH,iBACE,GACA,GACA,GACe;AAOf,SANA,KAAK,YACH,oBACA,KAAK,UAAU,EAAe,EAC9B,GACA,KAAK,UAAU,EAAe,CAC/B,EACM,KAAK,WAAW,iBACrB,GACA,GACA,EACD;;CAGH,yBACE,GACA,GACe;AAMf,SALA,KAAK,YACH,4BACA,KAAK,UAAU,EAAW,EAC1B,KAAK,UAAU,EAAsB,CACtC,EACM,KAAK,WAAW,yBACrB,GACA,EACD;;CAGH,MAAa,eACX,GACe;AAEf,SADA,KAAK,YAAY,kBAAkB,EAAgB,QAAQ,EACpD,KAAK,WAAW,eAAe,EAAgB;;CAGxD,gBACE,GACA,GACA,GACA,GACe;AAQf,SAPA,KAAK,YACH,mBACA,GACA,KAAK,UAAU,EAAgB,EAC/B,GACA,EACD,EACM,KAAK,WAAW,gBACrB,GACA,GACA,GACA,EACD;;CAGH,gBACE,GACA,GACA,GACA,GACe;AAQf,SAPA,KAAK,YACH,mBACA,GACA,GACA,GACA,EAAe,UAAU,CAC1B,EACM,KAAK,WAAW,gBACrB,GACA,GACA,GACA,EACD;;CAGH,4BACE,GACA,GAC0D;AAM1D,SALA,KAAK,YACH,+BACA,GACA,IAAe,KAAK,UAAU,EAAa,GAAG,KAC/C,EACM,KAAK,WAAW,4BAA4B,GAAU,EAAa;;CAG5E,iCACE,GACA,GAC0D;AAM1D,SALA,KAAK,YACH,oCACA,GACA,IAAe,KAAK,UAAU,EAAa,GAAG,KAC/C,EACM,KAAK,WAAW,iCACrB,GACA,EACD;;CAGH,eACE,GACA,GACA,GACM;AAON,EANA,KAAK,YACH,kBACA,KAAgB,aAChB,KAAgB,aAChB,GAAe,UAAU,IAAI,YAC9B,EACD,KAAK,WAAW,eAAe,GAAc,GAAc,EAAc;;CAG3E,qBAA4B,GAA8C;AAKxE,SAJA,KAAK,YACH,wBACA,MAAM,QAAQ,EAAY,GAAG,KAAK,UAAU,EAAY,GAAG,EAC5D,EACM,KAAK,WAAW,qBAAqB,EAAY;;CAG1D,sCACE,GACA,GACuC;AAMvC,SALA,KAAK,YACH,yCACA,MAAM,QAAQ,EAAY,GAAG,KAAK,UAAU,EAAY,GAAG,GAC3D,EACD,EACM,KAAK,WAAW,sCACrB,GACA,EACD;;CAGH,cACE,GACA,GACA,GACM;AAEN,SADA,KAAK,YAAY,iBAAiB,GAAW,GAAc,EAAe,EACnE,KAAK,WAAW,cACrB,GACA,GACA,EACD;;CAGH,kBACE,GACA,GACe;AAMf,SALA,KAAK,YACH,qBACA,GACA,MAAM,QAAQ,EAAa,GAAG,KAAK,UAAU,EAAa,GAAG,EAC9D,EACM,KAAK,WAAW,kBAAkB,GAAS,EAAa;;CAGjE,eACE,GACA,GACA,GACe;AAEf,SADA,KAAK,YAAY,kBAAkB,GAAS,GAAc,EAAU,EAC7D,KAAK,WAAW,eAAe,GAAS,GAAc,EAAU;;CAGzE,0BACE,GACe;AAEf,SADA,KAAK,YAAY,6BAA6B,KAAK,UAAU,EAAa,CAAC,EACpE,KAAK,WAAW,0BAA0B,EAAa;;CAGhE,8BACE,GACA,GACe;AAMf,SALA,KAAK,YACH,iCACA,EAAa,SACb,EAAsB,UAAU,CACjC,EACM,KAAK,WAAW,8BACrB,GACA,EACD;;CAGH,wBACE,GACA,GACM;AAMN,EALA,KAAK,YACH,2BACA,EAAY,IACZ,EAAY,UAAU,CACvB,EACD,KAAK,WAAW,wBAAwB,GAAa,EAAY;;CAGnE,YAAmB,GAAsC;AAEvD,SADA,KAAK,YAAY,eAAe,EAAY,GAAG,EACxC,KAAK,WAAW,YAAY,EAAY;;CAGjD,yBAAsC;AAEpC,EADA,KAAK,YAAY,yBAAyB,EAC1C,KAAK,WAAW,wBAAwB;;CAG1C,aAAoB,GAAuB;AAEzC,EADA,KAAK,YAAY,gBAAgB,EAAQ,EACzC,KAAK,WAAW,aAAa,EAAQ;;CAGvC,eAAsB,GAAuB;AAE3C,EADA,KAAK,YAAY,kBAAkB,EAAQ,EAC3C,KAAK,WAAW,eAAe,EAAQ;;CAGzC,oBAAuD;AAErD,SADA,KAAK,YAAY,oBAAoB,EAC9B,KAAK,WAAW,mBAAmB;;CAG5C,gBAAuB,GAAgC;AAErD,SADA,KAAK,YAAY,mBAAmB,EAAG,EAChC,KAAK,WAAW,gBAAgB,EAAG;;CAG5C,MAAa,iBAAiB,GAA2C;AAEvE,SADA,KAAK,YAAY,oBAAoB,EAAG,EACjC,KAAK,WAAW,iBAAiB,EAAG;;CAG7C,MAAa,oBAAoB,GAA0C;AAEzE,SADA,KAAK,YAAY,oBAAoB,KAAK,UAAU,EAAY,CAAC,EAC1D,KAAK,WAAW,oBAAoB,EAAY;;CAGzD,qBACE,GAC6B;AAE7B,SADA,KAAK,YAAY,wBAAwB,EAAgB,EAClD,KAAK,WAAW,qBAAqB,EAAgB;;CAG9D,eACE,GACA,GACe;AAEf,SADA,KAAK,YAAY,kBAAkB,GAAY,EAAgB,EACxD,KAAK,WAAW,eAAe,GAAY,EAAgB;;GAIzD,IAAb,MAA2E;CAIzE,YACE,GACA,GACA;AAEA,EADA,KAAK,wBAAwB,GAC7B,KAAK,eAAe;;CAGtB,aAAqB,GAAiB,GAAG,GAA4B;EACnE,IAAI,IAAiB;AAMrB,EALI,KACF,EAAK,SAAS,MAAS;AACrB,QAAkB,MAAM;IACxB,EAEJ,KAAK,aAAa,eAAe,eAAe,EAAe;;CAGjE,eAAsB,GAAuB;AAE3C,EADA,KAAK,aAAa,iBAAiB,EACnC,KAAK,sBAAsB,eAAe,EAAW;;CAGvD,MAAa,cACX,GACA,GACe;EACf,IAAM,IAAW,MAAM,QAAQ,EAAY,GACvC,EAAY,KAAK,MAAU,EAAM,GAAG,CAAC,KAAK,IAAI,GAC9C,EAAY;AAShB,SARA,KAAK,aACH,iBACA,GACA,EAAQ,UAAU,aAClB,EAAQ,qBAAqB,UAAU,IAAI,SAC3C,EAAQ,cAAc,KAAK,UAAU,EAAQ,YAAY,GAAG,MAC5D,EAAQ,eAAe,KAAK,UAAU,EAAQ,aAAa,GAAG,KAC/D,EACM,KAAK,sBAAsB,cAAc,GAAa,EAAQ;;CAGvE,mBAAgC;AAE9B,EADA,KAAK,aAAa,mBAAmB,EACrC,KAAK,sBAAsB,kBAAkB;;CAG/C,MAAa,YAAY,GAAgC;AAEvD,SADA,KAAK,aAAa,eAAe,EAAQ,EAClC,KAAK,sBAAsB,YAAY,EAAQ;;CAGxD,MAAa,WAAW,GAAqC;AAE3D,SADA,KAAK,aAAa,cAAc,EAAa,EACtC,KAAK,sBAAsB,WAAW,EAAa;;CAG5D,MAAa,aACX,GACA,GACe;AAEf,SADA,KAAK,aAAa,gBAAgB,GAAc,EAAY,EACrD,KAAK,sBAAsB,aAAa,GAAc,EAAY;;CAG3E,eACE,GACA,GACA,GACA,GACA;AAcA,SAbA,KAAK,aACH,kBACA,GACA,GACA,EAAK,UAAU,EACf,EAAQ,UAAU,CACnB,EACD,KAAK,sBAAsB,eACzB,GACA,GACA,GACA,EACD,EACM,QAAQ,SAAS;;CAG1B,YAAmB,GAAuB;AAExC,SADA,KAAK,aAAa,eAAe,EAAQ,EAClC,KAAK,sBAAsB,YAAY,EAAQ;;CAGxD,iBAAwB,GAA4B;AAElD,SADA,KAAK,aAAa,oBAAoB,EAAa,EAC5C,KAAK,sBAAsB,iBAAiB,EAAa;;CAGlE,wBAAoD;AAElD,SADA,KAAK,aAAa,wBAAwB,EACnC,KAAK,sBAAsB,uBAAuB;;CAG3D,qBAA8D;AAE5D,SADA,KAAK,aAAa,qBAAqB,EAChC,KAAK,sBAAsB,oBAAoB;;CAGxD,6BAAsF;AAEpF,SADA,KAAK,aAAa,6BAA6B,EACxC,KAAK,sBAAsB,4BAA4B;;;;;AC3blE,QAAQ,KAAK,uCAAuC;AAapD,IAAa,IAAb,MAA+B;CAO7B,YACE,GACA,GACA,GACA;AAqBA,EApBK,OAAO,WACV,OAAO,SAAS,IAGlB,KAAK,iBAAiB,GACtB,KAAK,eAAe,qBAAqB,KAAK,EAC9C,KAAK,eAAe,GACpB,KAAK,OAAO,IAAI,EAAgB,KAAK,eAAe,EAEhD,GAAW,eAGb,KAAK,aAAa,IAAI,EADJ,IAAI,EADV,IAAI,EAA8B,KAAK,MAAM,EAAY,EAClB,EAAY,EAG7D,EACD,GAED,KAAK,aAAa,IAAI,EAAwB,KAAK,MAAM,EAAY,EAEvE,EAAc,KAAK,gBAAgB,KAAK,WAAW,EACnD,KAAK,UAAU,IAAI,EAAO,GAAe,KAAK,WAAW;;CAO3D,MAAa,mBAAkC;EAC7C,IAAM,IACH,MAAM,KAAK,aAAa,0BAA0B,IAAK;AAC1D,QAAM,KAAK,WAAW,qBAAqB,EAAkB;;CAG/D,MAAa,YAAY,GAAmB;EAC1C,IAAM,IAAc,MAAM,KAAK,iBAAiB,EAAU;AAC1D,QAAM,KAAK,WAAW,WAAW,EAAY;;CAG/C,MAAa,YACX,GACA,GACA,GACA;AAEA,EADA,GAAkB,YAAY,KAAK,WAAW,EAC9C,KAAK,WAAW,YAAY,MAAM,GAAU,EAAU;;CAGxD,MAAc,iBAAiB,GAAyC;AACtE,MAAI,KAAK,WAAW,gBAAgB,EAAU,EAAE;GAC9C,IAAM,IAAO,KAAK,WAAW,eAAe,EAAU;AACtD,OAAI,MAAS,KACX,QAAO;;EAGX,IAAM,IAAc,KAAK,WAAW;AACpC,MAAI,MAAgB,KAClB,OAAU,MAAM,8BAA8B;EAEhD,IAAM,EAAE,eAAY,sBAAmB,MAAM,KAAK,kBAChD,GACA,EACD;AAsHD,SArHA,KAAK,gBAAgB,EAAW,EACC;GAC/B;GACA;GACA,iBAAiB;GACjB,iBAAiB,MACR,EAAe,KAAK,EAAU;GAEvC,eACE,GACA,GACA,MAEO,EAAe,aAAa,GAAW,GAAiB,EAAM;GAEvE,6BAA6B,OAC3B,GACA,MACsD;IACtD,IAAM,IAAM,IACR,MAAM,QAAQ,EAAa,GACzB,IACA,CAAC,EAAa,IACf,EAAO,cAAc,EAAE,EAAE,KAAK,MAAc,EAAU,GAAG,EACxD,IAA0C,EAAE;AAClD,SAAK,IAAM,KAAe,EACxB,KAAI;AAKF,OAAiB,KADD,OAFd,EAAe,iCACf,EAAe,6BAC0B,GAAQ,EAAY;aAExD,GAAO;AAEd,KADA,QAAQ,MAAM,EAAM,EACpB,EAAiB,KAAe,EAAE;;AAGtC,WAAO;;GAET,+BACE,GACA,GACA,MACqC;AAChC,UAAe,6BAQpB,QALgB,EAAe,6BAC7B,GACA,GACA,EACD;;GAGH,oBACE,GACA,GACA,GACc;AASd,WARK,EAAe,sBAGJ,EAAe,oBAC7B,GACA,GACA,EACD,GANQ,EAAE;;GASb,sCACE,GACA,GACA,GACuC;AASvC,WARK,EAAe,wCAGJ,EAAe,sCAC7B,GACA,GACA,EACD,GANQ,EAAE;;GASb,cACE,GACA,GACA,GACA,GACU;AAUV,WATK,EAAe,gBAGJ,EAAe,cAC7B,GACA,GACA,GACA,EACD,GAPQ;;GAUX,iBACE,GACA,GACA,GACU;AASV,WARK,EAAe,mBAGJ,EAAe,iBAC7B,GACA,GACA,EACD,GANQ;;GASZ;;CAIH,MAAa,kBACX,GACA,GAIC;EACD,IAAM,CAAC,GAAY,KAAoB,MAAM,QAAQ,IAAI,CACvD,EAAY,iBAAiB,EAAU,EACvC,EAAY,iBAAiB,EAAU,CACxC,CAAC;AAEF,SAAO;GACL;GACA,gBAHqB,MAAM,KAAK,gBAAgB,EAAiB;GAIlE;;CAGH,gBAAwB,GAA8B;AACpD,SAAO,KAAK,KAAK,eAAe,EAAW;;CAG7C,MAAc,gBAAgB,GAAkC;AAC9D,MAAI;AACF,UAAO,UAAU,EAAE;GACnB,IAAM,IAAO,IAAI,KAAK,CAAC,EAAW,EAAE,EAAE,MAAM,mBAAmB,CAAC,EAC1D,IAAU,IAAI,gBAAgB,EAAK;AAGzC,UAFA,MAAM,OAAO,IACb,IAAI,gBAAgB,EAAQ,EACrB,OAAO;WACP,GAAG;AAEV,SADA,QAAQ,MAAM,EAAE,EACN,MAAM,0BAA0B;;;CAI9C,eAAiC;AAC/B,SAAO,KAAK;;CAGd,MAAa,WACX,IAAqB,IACrB,GACA;AACA,QAAM,KAAK,QAAQ,WAAW,GAAW,EAAY;;CAGvD,MAAa,WAAW,GAAiB,GAA6B;AACpE,SAAO,KAAK,QAAQ,WAAW,GAAQ,EAAY"}
|
|
1
|
+
{"version":3,"file":"homag-intelligence-CBZujG1I.mjs","names":["native"],"sources":["../../../../node_modules/uuid/dist/esm-browser/stringify.js","../../../../node_modules/uuid/dist/esm-browser/rng.js","../../../../node_modules/uuid/dist/esm-browser/native.js","../../../../node_modules/uuid/dist/esm-browser/v4.js","../../packages/homag-intelligence/src/callbacks.ts","../../packages/homag-intelligence/src/orders.ts","../../packages/homag-intelligence/src/debug-logging.ts","../../packages/homag-intelligence/src/homag-intelligence.ts"],"sourcesContent":["import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5naWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N0cmluZ2lmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFNckMsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFDO0FBRS9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUM3QixTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFlLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFNekQsT0FBTyxDQUNMLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLEdBQUc7UUFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMxQixHQUFHO1FBQ0gsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDMUIsR0FBRztRQUNILFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzFCLEdBQUc7UUFDSCxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUM1QixDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2xCLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxHQUFlLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFDNUMsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQU8xQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDcEIsTUFBTSxTQUFTLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsZUFBZSxTQUFTLENBQUMifQ==","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm5nLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcm5nLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsSUFBSSxlQUEwRCxDQUFDO0FBRS9ELE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRWpDLE1BQU0sQ0FBQyxPQUFPLFVBQVUsR0FBRztJQUV6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckIsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FDYiwwR0FBMEcsQ0FDM0csQ0FBQztRQUNKLENBQUM7UUFFRCxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2hDLENBQUMifQ==","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlLWJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLEdBQ2QsT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFdkYsZUFBZSxFQUFFLFVBQVUsRUFBRSxDQUFDIn0=","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random || (options.rng || rng)();\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ2pDLE9BQU8sR0FBRyxNQUFNLFVBQVUsQ0FBQztBQUMzQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJakQsU0FBUyxFQUFFLENBQUMsT0FBeUIsRUFBRSxHQUFnQixFQUFFLE1BQWU7SUFDdEUsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDMUMsT0FBTyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO0lBRXhCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFHdEQsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztJQUNsQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO0lBR2xDLElBQUksR0FBRyxFQUFFLENBQUM7UUFDUixNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUVyQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDNUIsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFFRCxlQUFlLEVBQUUsQ0FBQyJ9","import type { GlueLogic } from './glue-logic';\nimport { type RoomlePlanner } from '../../planner-core/src/roomle-planner';\nimport type { BASE_CONTEXT } from '../../common-core/src/main';\nimport type { SELECTION_MODE } from '../../configurator-core/src/utils/selection-handler';\nimport type { CallbackObjectType } from '../../planner-core/src/utils/planner-scene-utils';\nimport type { SelectionPayload } from '../../planner-core/src/roomle-planner-ui-callback';\nimport { type PlanElementViewModel } from '../../common-core/src/view-model/plan-element-view-model';\nimport type { CancelSelectionReasons } from '../../typings/planner';\n\nexport const initCallbacks = (\n roomlePlanner: RoomlePlanner,\n gluLogic: GlueLogic,\n) => {\n roomlePlanner.callbacks.onCompletelyLoaded = () => {\n gluLogic.groupsCompletelyLoaded();\n };\n\n roomlePlanner.callbacks.onExternalObjectModuleSelected = (\n groupId: string,\n rootModuleId: string | null,\n subModuleId: string | null,\n ) => {\n gluLogic.hiObjectSelection.groupOrModuleSelected(\n groupId,\n rootModuleId,\n subModuleId,\n );\n };\n\n roomlePlanner.callbacks.onContextChanged = (context: BASE_CONTEXT): void => {\n gluLogic.hiObjectSelection.contextChanged(context);\n };\n\n roomlePlanner.callbacks.onSelectionChange = (\n selectionMode: SELECTION_MODE,\n objectType: CallbackObjectType,\n payload: SelectionPayload,\n payloadPromise: Promise<SelectionPayload>,\n planElementViewModel: PlanElementViewModel,\n ): void => {\n gluLogic.hiObjectSelection.selectionChanged(\n selectionMode,\n objectType,\n payload,\n payloadPromise,\n planElementViewModel,\n );\n };\n\n roomlePlanner.callbacks.onSelectionCancel = (\n reason: CancelSelectionReasons,\n ): void => {\n gluLogic.hiObjectSelection.selectionCancel(reason);\n };\n};\n","import { type RoomlePlanner } from '../../planner-core/src/roomle-planner';\nimport type { GlueLogic } from './glue-logic';\nimport type { KernelPlanObject } from '../../typings/kernel';\nimport type { ExternalObjectSnapshotSaveResult } from './external-object-api';\nimport type {\n HiOrder,\n HiOrderData,\n HiOrderHeader,\n} from '#/common/src/hi/hi-types';\n\nconst getISO8601Date = (date = new Date()) => {\n // Get the ISO string (in UTC)\n let isoString = date.toISOString();\n\n // Remove the 'Z' at the end which indicates UTC\n isoString = isoString.slice(0, -1);\n\n // Find the position of milliseconds\n const msPosition = isoString.lastIndexOf('.');\n\n // Get the base timestamp with 3 digits of milliseconds and extend with zeros\n let baseTimestamp = isoString;\n\n if (msPosition !== -1) {\n // Add 4 zeros to extend from 3 to 7 digits of precision\n baseTimestamp = isoString.substring(0, msPosition + 4) + '0000';\n }\n\n // Get timezone offset in minutes and convert to hours and minutes\n const offsetMinutes = date.getTimezoneOffset();\n const offsetHours = Math.abs(Math.floor(offsetMinutes / 60));\n const offsetMins = Math.abs(offsetMinutes % 60);\n\n // Format the offset as +HH:MM or -HH:MM\n const offsetSign = offsetMinutes <= 0 ? '+' : '-';\n const offsetString = `${offsetSign}${String(offsetHours).padStart(\n 2,\n '0',\n )}:${String(offsetMins).padStart(2, '0')}`;\n\n return baseTimestamp + offsetString;\n};\n\nexport const createEmptyOrder = (): HiOrder => {\n return {\n id: (window as any).uuidv4\n ? (window as any).uuidv4()\n : '00000000-0000-0000-0000-000000000000',\n state: 'New',\n orderNumber: '736362',\n orderName: 'Bedroom & bathroom 01',\n orderDescription: 'Lorem ipsum dolor sit amet...',\n project: 'Single family house Müller John',\n personInCharge: 'Joe',\n orderDate: getISO8601Date(),\n deliveryDatePlanned: getISO8601Date(\n new Date(Date.now() + 14 * 24 * 60 * 60 * 1000),\n ),\n addresses: [\n {\n type: 'Delivery, Billing',\n street: 'Musterstraße',\n houseNumber: '1',\n postalCode: '12345',\n city: 'Musterstadt',\n country: 'Deutschland',\n },\n ],\n customerName: 'Müller & Co.',\n customerNumber: '462642',\n createdAt: getISO8601Date(),\n changedAt: getISO8601Date(),\n changedBy: 'Selfish',\n items: [] as any[],\n };\n};\n\nconst _addMerchantPositions = async (\n roomlePlanner: RoomlePlanner,\n groupData: any,\n) => {\n const planOverview = await roomlePlanner.getPlanOverview();\n const count: Record<string, number> = {}; // key is id and value is count\n const itemIds = (\n planOverview.objects as unknown as KernelPlanObject[]\n ).reduce((acc: string[], item: any) => {\n if (item.catalogItemId) {\n if (!count[item.catalogItemId]) {\n count[item.catalogItemId] = 0;\n acc.push(item.catalogItemId);\n }\n count[item.catalogItemId]++;\n }\n return acc;\n }, []);\n const items =\n Array.isArray(itemIds) && itemIds.length > 0\n ? await roomlePlanner.getRapiAccess().getItems(itemIds)\n : [];\n const merchantItems = items.filter((item: any) => {\n if (item.manufacturerSKU !== undefined) {\n item.count = count[item.id];\n return true;\n }\n return false;\n });\n if (Array.isArray(merchantItems) && merchantItems.length > 0) {\n if (!groupData.items) {\n groupData.items = [];\n }\n let posNo = groupData.items.reduce((acc: number, item: any) => {\n if (item.items?.length) {\n return acc + item.items.length;\n }\n return acc;\n }, 0);\n merchantItems.forEach((item) => {\n const pos = {} as any;\n pos.type = 'Position';\n pos.name = (++posNo).toString();\n pos.articleNumber = item.manufacturerSKU;\n pos.articleName = item.label;\n pos.catalog = item.catalog;\n pos.quantity = item.count;\n pos.height = item.displayedHeight;\n pos.width = item.displayedWidth;\n pos.depth = item.displayedDepth;\n pos.color = item.basecolor;\n pos.procurementType = 'PTO';\n pos.additionalData = [];\n if (item.perspectiveImage) {\n pos.additionalData.push({\n category: 'ArticleImage',\n downloadUri: item.perspectiveImage,\n type: 'Image',\n });\n }\n groupData.items.push(pos);\n });\n }\n};\n\nexport default class Orders {\n private _roomlePlanner: RoomlePlanner;\n private _glueLogic: GlueLogic;\n\n constructor(roomlePlanner: RoomlePlanner, glueLogic: GlueLogic) {\n this._roomlePlanner = roomlePlanner;\n this._glueLogic = glueLogic;\n }\n\n public async fetchPrice(planId?: string, orderHeader?: HiOrderHeader) {\n let orderData = await this._glueLogic.getGroupDataForOrder(planId);\n if (!orderData) {\n return null;\n }\n return await this._fetchOrderDataWithPrice(orderData, orderHeader);\n }\n\n public async placeOrder(\n withPrice: boolean = true,\n orderHeader?: HiOrderHeader,\n ) {\n const planData = await this._roomlePlanner.saveExternalObjectSnapshot();\n if (!planData) {\n console.error('Could not save plan snapshot before placing order');\n return;\n }\n\n let priceData = withPrice\n ? await this._fetchOrderDataWithPrice(planData.orderData, orderHeader)\n : null;\n\n let order;\n if (priceData) {\n order = priceData.orderData;\n } else {\n order = this._createOrder(orderHeader);\n order.items.push(planData.orderData as never);\n await _addMerchantPositions(this._roomlePlanner, planData.orderData);\n }\n\n // The first item in the order is the one created from the HI objects in the plan\n this._addAdditionalDataToOrder(order.items[0], planData);\n\n await this._glueLogic.hiCallbacks?.onPlaceOrder?.(order);\n }\n\n private _addAdditionalDataToOrder(\n orderData: HiOrderData,\n planData: ExternalObjectSnapshotSaveResult,\n ) {\n if (!Array.isArray(orderData.additionalData)) {\n orderData.additionalData = [];\n }\n if (planData.perspectiveImageLink) {\n orderData.additionalData.push({\n type: 'Image',\n category: 'OverviewImage',\n downloadUri: planData.perspectiveImageLink,\n });\n }\n if (planData.topImageLink) {\n orderData.additionalData.push({\n type: 'Image',\n category: 'AboveImage',\n downloadUri: planData.topImageLink,\n });\n }\n if (planData.objectGlbLink) {\n orderData.additionalData.push({\n type: 'ThreeD',\n category: 'ThreeDModel',\n downloadUri: planData.objectGlbLink,\n });\n }\n }\n\n private async _fetchOrderDataWithPrice(\n orderData: HiOrderData,\n orderHeader?: HiOrderHeader,\n ): Promise<any> {\n let order = this._createOrder(orderHeader);\n order.items.push(orderData as never);\n return this._glueLogic.hiCallbacks?.onFetchPrice?.(order) ?? null;\n }\n\n private _createOrder(orderHeader?: HiOrderHeader): HiOrder {\n return orderHeader\n ? {\n ...orderHeader,\n items: [],\n }\n : createEmptyOrder();\n }\n}\n","import type { HiCallbacks, HiOrderData } from '#/common/src/hi/hi-types';\nimport type {\n GlueLogic,\n LibraryData,\n RoomDesignerRequests,\n} from './glue-logic';\nimport type { ExternalObjectGroup } from 'roomle-core-hsc/src/embind/plannerCoreInterface';\nimport type { ExternalModuleInformation } from '../../typings/kernel';\nimport type {\n CheckDropDownResult,\n PosArticle,\n PosGroup,\n PosSaveData,\n} from './model/oc-scripts-domain.model';\nimport type { HiObjectSelectionApi } from './hi-object-selection';\nimport type {\n ExternalObjectSnapshotSaveResult,\n ExternalRoomInformation,\n LoadExternalObjectOptions,\n} from './external-object-api';\nimport type { ExternalObjectValidContainerModules } from './external-object-api-callbacks';\n\nexport class GlueLayerRequestDebugLogging implements GlueLogic {\n private _glueLogic: GlueLogic;\n private _hiCallbacks: HiCallbacks;\n\n constructor(glueLogic: GlueLogic, hiCallbacks: HiCallbacks) {\n this._glueLogic = glueLogic;\n this._hiCallbacks = hiCallbacks;\n }\n\n public get hiCallbacks(): HiCallbacks | null {\n return this._hiCallbacks;\n }\n\n public get hiObjectSelection(): HiObjectSelectionApi {\n return this._glueLogic.hiObjectSelection;\n }\n\n private _logRequest(\n message: string,\n ...args: Array<string | null | undefined>\n ) {\n let messageAndArgs = message;\n if (args) {\n args.forEach((item) => {\n messageAndArgs += ' ' + item;\n });\n }\n this._hiCallbacks.onLogMessage?.('HI REQUEST', messageAndArgs);\n }\n\n public isLibraryLoaded(libraryId: string): boolean {\n return this._glueLogic.isLibraryLoaded(libraryId);\n }\n\n public getLibraryData(libraryId: string): LibraryData | null {\n return this._glueLogic.getLibraryData(libraryId);\n }\n\n public addLibrary(libraryData: LibraryData): Promise<void> {\n this._logRequest('addLibrary', libraryData.libraryId);\n return this._glueLogic.addLibrary(libraryData);\n }\n\n public setPosDataForLoading(posData: PosSaveData | null): Promise<void> {\n this._logRequest('setPosDataForLoading', posData ? 'set' : 'null');\n return this._glueLogic.setPosDataForLoading(posData);\n }\n\n public loadPosData(articleCatalogJson: any, libraryId: string): void {\n this._logRequest('loadPosData', libraryId);\n this._glueLogic.loadPosData(articleCatalogJson, libraryId);\n }\n\n public async mergeGroups(\n targetGroup: ExternalObjectGroup,\n idsOfGroupsMerged: string | string[],\n idOfTargetRootModule: string,\n mergedWithDragging: boolean,\n ): Promise<void> {\n this._logRequest(\n 'mergeGroups',\n targetGroup.groupId,\n JSON.stringify(idsOfGroupsMerged),\n idOfTargetRootModule,\n );\n return this._glueLogic.mergeGroups(\n targetGroup,\n idsOfGroupsMerged,\n idOfTargetRootModule,\n mergedWithDragging,\n );\n }\n\n public deleteRootModule(\n remainingGroup: ExternalObjectGroup,\n rootModuleIdToDelete: string,\n splitOffGroups: ExternalObjectGroup[],\n ): Promise<void> {\n this._logRequest(\n 'deleteRootModule',\n JSON.stringify(remainingGroup),\n rootModuleIdToDelete,\n JSON.stringify(splitOffGroups),\n );\n return this._glueLogic.deleteRootModule(\n remainingGroup,\n rootModuleIdToDelete,\n splitOffGroups,\n );\n }\n\n public splitRootModuleFromGroup(\n splitGroup: ExternalObjectGroup,\n newGroupedRootModules: ExternalObjectGroup[],\n ): Promise<void> {\n this._logRequest(\n 'splitRootModuleFromGroup',\n JSON.stringify(splitGroup),\n JSON.stringify(newGroupedRootModules),\n );\n return this._glueLogic.splitRootModuleFromGroup(\n splitGroup,\n newGroupedRootModules,\n );\n }\n\n public async duplicateGroup(\n duplicatedGroup: ExternalObjectGroup,\n ): Promise<void> {\n this._logRequest('duplicateGroup', duplicatedGroup.groupId);\n return this._glueLogic.duplicateGroup(duplicatedGroup);\n }\n\n public modifyAttribute(\n groupId: string,\n moduleIdObjects: ExternalModuleInformation[],\n attributeName: string,\n value: string,\n ): Promise<void> {\n this._logRequest(\n 'modifyAttribute',\n groupId,\n JSON.stringify(moduleIdObjects),\n attributeName,\n value,\n );\n return this._glueLogic.modifyAttribute(\n groupId,\n moduleIdObjects,\n attributeName,\n value,\n );\n }\n\n public updateAttribute(\n rootModuleId: string,\n moduleId: string | null,\n attributeId: string,\n attributeValue: string | boolean,\n ): Promise<void> {\n this._logRequest(\n 'updateAttribute',\n rootModuleId,\n moduleId,\n attributeId,\n attributeValue.toString(),\n );\n return this._glueLogic.updateAttribute(\n rootModuleId,\n moduleId,\n attributeId,\n attributeValue,\n );\n }\n\n public getVerifiedAttributeOptions(\n moduleId: string,\n attributeIds?: string | string[],\n ): Promise<Record<string, CheckDropDownResult> | undefined> {\n this._logRequest(\n 'getVerifiedAttributeOptions',\n moduleId,\n attributeIds ? JSON.stringify(attributeIds) : '[]',\n );\n return this._glueLogic.getVerifiedAttributeOptions(moduleId, attributeIds);\n }\n\n public getVerifiedGroupAttributeOptions(\n groupId: string,\n attributeIds?: string | string[],\n ): Promise<Record<string, CheckDropDownResult> | undefined> {\n this._logRequest(\n 'getVerifiedGroupAttributeOptions',\n groupId,\n attributeIds ? JSON.stringify(attributeIds) : '[]',\n );\n return this._glueLogic.getVerifiedGroupAttributeOptions(\n groupId,\n attributeIds,\n );\n }\n\n public updateProperty(\n rootModuleId?: string,\n propertyName?: string,\n propertyValue?: string | number | boolean,\n ): void {\n this._logRequest(\n 'updateProperty',\n rootModuleId ?? 'undefined',\n propertyName ?? 'undefined',\n propertyValue?.toString() ?? 'undefined',\n );\n this._glueLogic.updateProperty(rootModuleId, propertyName, propertyValue);\n }\n\n public findValidSubArticles(posGroupIds: string[] | string): PosArticle[] {\n this._logRequest(\n 'findValidSubArticles',\n Array.isArray(posGroupIds) ? JSON.stringify(posGroupIds) : posGroupIds,\n );\n return this._glueLogic.findValidSubArticles(posGroupIds);\n }\n\n public getValidContainerModulesForSubArticle(\n posGroupIds: string[] | string,\n subArticleId: string,\n ): ExternalObjectValidContainerModules[] {\n this._logRequest(\n 'getValidContainerModulesForSubArticle',\n Array.isArray(posGroupIds) ? JSON.stringify(posGroupIds) : posGroupIds,\n subArticleId,\n );\n return this._glueLogic.getValidContainerModulesForSubArticle(\n posGroupIds,\n subArticleId,\n );\n }\n\n public addSubArticle(\n articleId: string,\n rootModuleId: string,\n parentModuleId: string,\n ): void {\n this._logRequest('addSubArticle', articleId, rootModuleId, parentModuleId);\n return this._glueLogic.addSubArticle(\n articleId,\n rootModuleId,\n parentModuleId,\n );\n }\n\n public deleteSubArticles(\n groupId: string,\n subModuleIds: string[] | string,\n ): Promise<void> {\n this._logRequest(\n 'deleteSubArticles',\n groupId,\n Array.isArray(subModuleIds) ? JSON.stringify(subModuleIds) : subModuleIds,\n );\n return this._glueLogic.deleteSubArticles(groupId, subModuleIds);\n }\n\n public swapRootModule(\n groupId: string,\n rootModuleId: string,\n articleId: string,\n ): Promise<void> {\n this._logRequest('swapRootModule', groupId, rootModuleId, articleId);\n return this._glueLogic.swapRootModule(groupId, rootModuleId, articleId);\n }\n\n public arrangeRootModulesOfGroup(\n changedGroup: ExternalObjectGroup,\n ): Promise<void> {\n this._logRequest('arrangeRootModulesOfGroup', JSON.stringify(changedGroup));\n return this._glueLogic.arrangeRootModulesOfGroup(changedGroup);\n }\n\n public changedGroupPlanningSituation(\n changedGroup: ExternalObjectGroup,\n objectPositionChanged: boolean,\n ): Promise<void> {\n this._logRequest(\n 'changedGroupPlanningSituation',\n changedGroup.groupId,\n objectPositionChanged.toString(),\n );\n return this._glueLogic.changedGroupPlanningSituation(\n changedGroup,\n objectPositionChanged,\n );\n }\n\n public changedGroupFromHistory(\n posDataJson: PosGroup,\n reloadGroup: boolean,\n ): void {\n this._logRequest(\n 'changedGroupFromHistory',\n posDataJson.id,\n reloadGroup.toString(),\n );\n this._glueLogic.changedGroupFromHistory(posDataJson, reloadGroup);\n }\n\n public loadedGroup(posDataJson: PosGroup): Promise<void> {\n this._logRequest('loadedGroup', posDataJson.id);\n return this._glueLogic.loadedGroup(posDataJson);\n }\n\n public groupsCompletelyLoaded(): void {\n this._logRequest('groupsCompletelyLoaded');\n this._glueLogic.groupsCompletelyLoaded();\n }\n\n public removedGroup(groupId: string): void {\n this._logRequest('removedGroup', groupId);\n this._glueLogic.removedGroup(groupId);\n }\n\n public openCloseGroup(groupId: string): void {\n this._logRequest('openCloseGroup', groupId);\n this._glueLogic.openCloseGroup(groupId);\n }\n\n public getSaveDataGroups(): Promise<PosGroup[] | null> {\n this._logRequest('getSaveDataGroups');\n return this._glueLogic.getSaveDataGroups();\n }\n\n public getSubArticleId(id: string): string | undefined {\n this._logRequest('getSubArticleId', id);\n return this._glueLogic.getSubArticleId(id);\n }\n\n public async newPosDataFromId(id: string): Promise<PosGroup | undefined> {\n this._logRequest('newPosDataFromId', id);\n return this._glueLogic.newPosDataFromId(id);\n }\n\n public async newPosDataFromGroup(posDataJson: PosGroup): Promise<PosGroup> {\n this._logRequest('newPosDataFromId', JSON.stringify(posDataJson));\n return this._glueLogic.newPosDataFromGroup(posDataJson);\n }\n\n public getGroupDataForOrder(\n roomlePlannerId?: string,\n ): Promise<HiOrderData | null> {\n this._logRequest('getGroupDataForOrder', roomlePlannerId);\n return this._glueLogic.getGroupDataForOrder(roomlePlannerId);\n }\n\n public getMaterialUrl(\n materialId: string,\n groupOrModuleId?: string,\n ): string | null {\n this._logRequest('getMaterialUrl', materialId, groupOrModuleId);\n return this._glueLogic.getMaterialUrl(materialId, groupOrModuleId);\n }\n}\n\nexport class GlueLayerResponseDebugLogging implements RoomDesignerRequests {\n private _roomDesignerRequests: RoomDesignerRequests;\n private _hiCallbacks: HiCallbacks;\n\n constructor(\n roomDesignerRequests: RoomDesignerRequests,\n hiCallbacks: HiCallbacks,\n ) {\n this._roomDesignerRequests = roomDesignerRequests;\n this._hiCallbacks = hiCallbacks;\n }\n\n private _logResponse(message: string, ...args: Array<string | null>) {\n let messageAndArgs = message;\n if (args) {\n args.forEach((item) => {\n messageAndArgs += ' ' + item;\n });\n }\n this._hiCallbacks.onLogMessage?.('HI RESPONSE', messageAndArgs);\n }\n\n public loadMasterData(masterData: any): void {\n this._logResponse('loadMasterData');\n this._roomDesignerRequests.loadMasterData(masterData);\n }\n\n public async loadPosGroups(\n posDataJson: PosGroup | PosGroup[],\n options: LoadExternalObjectOptions,\n ): Promise<void> {\n const groupIds = Array.isArray(posDataJson)\n ? posDataJson.map((group) => group.id).join(',')\n : posDataJson.id;\n this._logResponse(\n 'loadPosGroups',\n groupIds,\n options.reason ?? 'undefined',\n options.findFreeSpaceInPlan?.toString() ?? 'false',\n options.moduleIdMap ? JSON.stringify(options.moduleIdMap) : '[]',\n options.mergedGroups ? JSON.stringify(options.mergedGroups) : '[]',\n );\n return this._roomDesignerRequests.loadPosGroups(posDataJson, options);\n }\n\n public completelyLoaded(): void {\n this._logResponse('completelyLoaded');\n this._roomDesignerRequests.completelyLoaded();\n }\n\n public async selectGroup(groupId: string): Promise<void> {\n this._logResponse('selectGroup', groupId);\n return this._roomDesignerRequests.selectGroup(groupId);\n }\n\n public async selectRoot(rootModuleId: string): Promise<void> {\n this._logResponse('selectRoot', rootModuleId);\n return this._roomDesignerRequests.selectRoot(rootModuleId);\n }\n\n public async selectModule(\n rootModuleId: string,\n subModuleId: string,\n ): Promise<void> {\n this._logResponse('selectModule', rootModuleId, subModuleId);\n return this._roomDesignerRequests.selectModule(rootModuleId, subModuleId);\n }\n\n public openCloseGroup(\n groupOrRootModuleId: string,\n subModuleId: string | null,\n open: boolean,\n animate: boolean,\n ) {\n this._logResponse(\n 'openCloseGroup',\n groupOrRootModuleId,\n subModuleId,\n open.toString(),\n animate.toString(),\n );\n this._roomDesignerRequests.openCloseGroup(\n groupOrRootModuleId,\n subModuleId,\n open,\n animate,\n );\n return Promise.resolve();\n }\n\n public deleteGroup(groupId: string): void {\n this._logResponse('deleteGroup', groupId);\n return this._roomDesignerRequests.deleteGroup(groupId);\n }\n\n public deleteRootModule(rootModuleId: string): void {\n this._logResponse('deleteRootModule', rootModuleId);\n return this._roomDesignerRequests.deleteRootModule(rootModuleId);\n }\n\n public getPosDataOfAllGroups(): Promise<PosGroup[]> {\n this._logResponse('getPosDataOfAllGroups');\n return this._roomDesignerRequests.getPosDataOfAllGroups();\n }\n\n public getRoomInformation(): Promise<ExternalRoomInformation> {\n this._logResponse('getRoomInformation');\n return this._roomDesignerRequests.getRoomInformation();\n }\n\n public saveExternalObjectSnapshot(): Promise<ExternalObjectSnapshotSaveResult | null> {\n this._logResponse('saveExternalObjectSnapshot');\n return this._roomDesignerRequests.saveExternalObjectSnapshot();\n }\n}\n","import { RoomDesignerApi } from './api';\nimport type { GlueLogic, HiAttributeOptionsResult } from './glue-logic';\nimport { GlueLogicImplementation, type LibraryData } from './glue-logic';\nimport { type HomagIntelligenceInitData } from './hi-api-types';\nimport { v4 as uuidv4 } from 'uuid';\nimport type {\n MasterData,\n PosArticle,\n PosContour,\n PosGroup,\n PosModuleAttribute,\n PosModuleData,\n} from './model/oc-scripts-domain.model';\nimport { initCallbacks } from './callbacks';\nimport { type RoomlePlanner } from '../../planner-core/src/roomle-planner';\nimport Orders from './orders';\nimport type {\n ExternalConfiguration,\n ExternalItem,\n} from '../../typings/external-objects';\nimport type { HiTagCatalogCallbacks } from './hi-tag-catalog-callbacks';\nimport type { HiCallbacks, HiOrderHeader } from '#/common/src/hi/hi-types';\nimport {\n GlueLayerRequestDebugLogging,\n GlueLayerResponseDebugLogging,\n} from './debug-logging';\nimport type { ExternalObjectValidContainerModules } from './external-object-api-callbacks';\n\ndeclare global {\n interface Window {\n uuidv4: () => string;\n }\n}\n\nconsole.warn('Homag Intelligence plugin is loaded.');\n\n// export const HOMAG_INTELLIGENCE_ENDPOINT = 'http://localhost:8080/proxy_request?url=';\n// export const HOMAG_INTELLIGENCE_ENDPOINT =\n// 'https://europe-west3-rml-showcases.cloudfunctions.net/proxy_request?url=';\n\nexport type ExternalObjects = Map<\n string,\n { id: string; label: string; items: any[] }\n>;\nexport type ExternalItems = Map<string, ExternalItem>;\nexport type ExternalConfigurations = Map<string, ExternalConfiguration>;\n\nexport class HomagIntelligence {\n private _roomlePlanner: RoomlePlanner;\n private _api: RoomDesignerApi;\n private _glueLogic: GlueLogic;\n private _orders: Orders;\n private _hiCallbacks: HiCallbacks;\n\n constructor(\n roomlePlanner: RoomlePlanner,\n hiOptions: HomagIntelligenceInitData,\n hiCallbacks: HiCallbacks,\n ) {\n if (!window.uuidv4) {\n window.uuidv4 = uuidv4; // Ensure uuidv4 is available globally\n }\n\n this._roomlePlanner = roomlePlanner;\n this._roomlePlanner.setHomagIntelligence(this);\n this._hiCallbacks = hiCallbacks;\n this._api = new RoomDesignerApi(this._roomlePlanner);\n\n if (hiOptions?.debugLogging) {\n const api = new GlueLayerResponseDebugLogging(this._api, hiCallbacks);\n const glueLogic = new GlueLogicImplementation(api, hiCallbacks);\n this._glueLogic = new GlueLayerRequestDebugLogging(\n glueLogic,\n hiCallbacks,\n );\n } else {\n this._glueLogic = new GlueLogicImplementation(this._api, hiCallbacks);\n }\n initCallbacks(this._roomlePlanner, this._glueLogic);\n this._orders = new Orders(roomlePlanner, this._glueLogic);\n }\n\n /**\n * Loads previously saved PosGroup data via hiCallbacks.\n * Must be called after construction to restore saved state.\n */\n public async loadSavedPosData(): Promise<void> {\n const savedPosGroupData =\n (await this._hiCallbacks.onGetSavedPosGroupData?.()) ?? null;\n await this._glueLogic.setPosDataForLoading(savedPosGroupData);\n }\n\n public async loadLibrary(libraryId: string) {\n const libraryData = await this._loadLibraryData(libraryId);\n await this._glueLogic.addLibrary(libraryData);\n }\n\n public async loadCatalog(\n libraryId: string,\n articles: any,\n catalogCallbacks: HiTagCatalogCallbacks,\n ) {\n catalogCallbacks?.setEmulator(this._glueLogic);\n this._glueLogic.loadPosData(await articles, libraryId);\n }\n\n private async _loadLibraryData(libraryId: string): Promise<LibraryData> {\n if (this._glueLogic.isLibraryLoaded(libraryId)) {\n const data = this._glueLogic.getLibraryData(libraryId);\n if (data !== null) {\n return data;\n }\n }\n const hiCallbacks = this._glueLogic.hiCallbacks;\n if (hiCallbacks === null) {\n throw new Error('HiCallbacks not initialized');\n }\n const { masterData, libraryExports } = await this._requestHiLibrary(\n libraryId,\n hiCallbacks,\n );\n this._loadMasterData(masterData);\n const libraryData: LibraryData = {\n libraryId,\n masterData,\n posGroupVersion: 1,\n calculateGroup: (groupData: PosGroup): PosGroup => {\n return libraryExports.calc(groupData);\n },\n getOrderData: (\n groupData: PosGroup[],\n roomlePlannerId?: string,\n rooms?: PosContour[],\n ): any => {\n return libraryExports.getOrderData(groupData, roomlePlannerId, rooms);\n },\n getAttributesDropDownValues: async (\n module: PosModuleData,\n attributeIds?: string | string[],\n ): Promise<Record<string, HiAttributeOptionsResult>> => {\n const ids = attributeIds\n ? Array.isArray(attributeIds)\n ? attributeIds\n : [attributeIds]\n : (module.attributes ?? []).map((attribute) => attribute.id);\n const attributeOptions: Record<string, any[]> = {};\n for (const attributeId of ids) {\n try {\n const attributeDropDownApi =\n libraryExports.getAttributesDropDownValuesV2 ??\n libraryExports.getAttributesDropDownValues;\n const options = await attributeDropDownApi(module, attributeId);\n attributeOptions[attributeId] = options;\n } catch (error) {\n console.error(error);\n attributeOptions[attributeId] = [];\n }\n }\n return attributeOptions;\n },\n solveModuleAttributeConflict: (\n module: PosModuleData,\n attributeName: string,\n value: string | number | boolean,\n ): PosModuleAttribute[] | undefined => {\n if (!libraryExports.solveModuleAttributeConflict) {\n return undefined;\n }\n const results = libraryExports.solveModuleAttributeConflict(\n module,\n attributeName,\n value,\n );\n return results;\n },\n getValidSubArticles(\n calculatedPosGroup: PosGroup,\n articles: PosArticle[],\n masterData: MasterData,\n ): PosArticle[] {\n if (!libraryExports.getValidSubArticles) {\n return [];\n }\n const results = libraryExports.getValidSubArticles(\n calculatedPosGroup,\n articles,\n masterData,\n );\n return results;\n },\n getValidContainerModulesForSubArticle(\n calculatedPosGroup: PosGroup,\n subArticle: PosArticle,\n masterData: MasterData,\n ): ExternalObjectValidContainerModules[] {\n if (!libraryExports.getValidContainerModulesForSubArticle) {\n return [];\n }\n const results = libraryExports.getValidContainerModulesForSubArticle(\n calculatedPosGroup,\n subArticle,\n masterData,\n );\n return results;\n },\n addSubArticle(\n targetPosGroup: PosGroup,\n article: PosArticle,\n rootId: string,\n parentModuleId: string,\n ): PosGroup {\n if (!libraryExports.addSubArticle) {\n return targetPosGroup;\n }\n const results = libraryExports.addSubArticle(\n targetPosGroup,\n article,\n rootId,\n parentModuleId,\n );\n return results;\n },\n deleteSubArticle(\n targetPosGroup: PosGroup,\n rootId: string,\n articleModuleId: string,\n ): PosGroup {\n if (!libraryExports.deleteSubArticle) {\n return targetPosGroup;\n }\n const results = libraryExports.deleteSubArticle(\n targetPosGroup,\n rootId,\n articleModuleId,\n );\n return results;\n },\n };\n return libraryData;\n }\n\n public async _requestHiLibrary(\n libraryId: string,\n hiCallbacks: HiCallbacks,\n ): Promise<{\n masterData: MasterData;\n libraryExports: any;\n }> {\n const [masterData, calcScriptString] = await Promise.all([\n hiCallbacks.onLoadMasterData(libraryId),\n hiCallbacks.onLoadJavascript(libraryId),\n ]);\n const libraryExports = await this._initCalcScript(calcScriptString);\n return {\n masterData,\n libraryExports,\n };\n }\n\n private _loadMasterData(masterData: MasterData): void {\n return this._api.loadMasterData(masterData);\n }\n\n private async _initCalcScript(scriptText: string): Promise<any> {\n try {\n window.exports = {};\n const blob = new Blob([scriptText], { type: 'text/javascript' });\n const blobUrl = URL.createObjectURL(blob);\n await import(blobUrl);\n URL.revokeObjectURL(blobUrl); // dispose of it when done\n return window.exports;\n } catch (e) {\n console.error(e);\n throw new Error('Failed to load calc.js!');\n }\n }\n\n public getGlueLogic(): GlueLogic {\n return this._glueLogic;\n }\n\n public async placeOrder(\n withPrice: boolean = true,\n orderHeader?: HiOrderHeader,\n ) {\n await this._orders.placeOrder(withPrice, orderHeader);\n }\n\n public async fetchPrice(planId?: string, orderHeader?: HiOrderHeader) {\n return this._orders.fetchPrice(planId, orderHeader);\n }\n}\n"],"x_google_ignoreList":[0,1,2,3],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kernel-C7YDLxq8.mjs","names":[],"sources":["../../packages/typings/kernel.ts"],"sourcesContent":["import type {\n PARAMETER_KERNEL_TYPE,\n PARAMETER_UNIT_TYPES,\n} from '../common-core/src/utils/parameter-types';\nimport type {\n AdditionalInfo,\n ConfigurationHash,\n ConfigurationString,\n PriceId,\n RapiConfiguration,\n RapiElement,\n RapiId,\n RapiItem,\n RapiJson,\n RapiTag,\n} from './rapi-types';\nimport type { KernelObject } from './planner';\nimport type { Enumify } from '#/common/src/utils/types';\nimport type {\n EmsArray,\n BindingError,\n InternalError,\n UnboundTypeError,\n} from './ems';\n\nexport interface WasmDbEntry {\n key: string;\n wasmVersion: string;\n wasmModule: any;\n}\n\n/* eslint-disable */\ndeclare namespace Module {\n function setStatus(str: string): void;\n\n let memoryInitializerPrefixURL: string;\n let Kernel: ConfiguratorKernelClass;\n}\n\n/* eslint:enable */\n\nexport interface KernelVector3 {\n x: number;\n y: number;\n z: number;\n}\n\nexport interface KernelMatrix4 {\n m: number[];\n}\n\nexport interface KernelValue {\n value: string;\n label: string;\n thumbnail: string | null;\n}\n\nexport interface KernelActionValue extends KernelValue {\n value: string;\n label: string;\n type: string;\n}\n\nexport interface KernelRange {\n valueFrom: number;\n valueTo: number;\n step: number;\n type: string;\n}\n\nexport interface UiKernelRange {\n valueFrom: string | null;\n valueTo: string | null;\n type: string;\n}\n\nexport interface KernelCatalogItem extends KernelObject {\n configuration: string;\n flipable: boolean;\n layer: number;\n orderable: boolean;\n scaleable: boolean;\n size: KernelVector3;\n type: string;\n detailType: string;\n}\n\nexport interface ConfigurationObject extends Object {\n componentId: RapiId;\n configuration: ConfigurationString;\n\n [key: string]: any;\n}\n\nexport interface KernelPossibleChild {\n componentId?: RapiId;\n itemId?: RapiId;\n isDefault?: boolean;\n possible: boolean;\n group: string | null;\n}\n\nexport interface KernelPartList {\n originPart: KernelComponent;\n fullList: KernelPart[];\n perMainComponent: Array<KernelPartList>;\n}\n\nexport interface KernelPart {\n articleNr: string;\n componentId: string;\n isModule: boolean;\n count: number;\n currencySymbol: string | null;\n permissionToDelete: KernelPermissionToDelete;\n permissionToDeleteInIsolation: KernelPermissionToDelete;\n label: string;\n parameters: KernelPartListParameter[];\n price: number | null;\n retailerPrice: number;\n\n [key: string]: any;\n}\n\nexport interface KernelPartListParameter {\n label: string;\n type: string;\n unitType: string;\n value: string;\n valueLabel: string | null;\n valueThumbnail: string;\n sort: number;\n}\n\nexport interface KernelPartListPrice {\n totalSum: number;\n partMap: Map<PriceId, KernelPart>;\n}\n\nexport const PARAMETER_VIEW_TYPE = {\n EMPTY: 0,\n TOGGLE: 1,\n IMAGELIST: 2,\n IMAGEBIG: 3,\n IMAGESMALL: 4,\n INPUTFIELD: 5,\n DROPDOWN: 6,\n SLIDER: 7,\n BUTTON: 8,\n} as const;\n\nexport interface KernelViewType {\n value: Enumify<typeof PARAMETER_VIEW_TYPE>;\n}\n\nexport interface KernelParameter {\n enabled: boolean;\n key: string;\n label: string;\n type: PARAMETER_KERNEL_TYPE;\n value: string;\n sort: number;\n unitType: PARAMETER_UNIT_TYPES;\n validGroups: [RapiId];\n validRange: KernelRange | null;\n validValues: KernelValue[];\n group: string;\n visibleInPlanner?: boolean;\n viewType: KernelViewType;\n source: 'external' | 'internal';\n level?: number;\n}\n\nexport interface KernelParameterGroup {\n key: string;\n label: string;\n sort: number;\n collapsed: boolean;\n}\n\nexport interface KernelEnum {\n value: number;\n}\n\nexport interface UiKernelParameter extends KernelParameter {\n uiType: string | null;\n validRangeLabels?: UiKernelRange;\n groups: Promise<RapiJson[]>;\n valueLabel: string | null;\n grouping: KernelParameterGroup;\n tooltip?: {\n [key: string]: string;\n };\n additionalInfos?: AdditionalInfo[];\n}\n\nexport interface PossibleChildPreviewElement {\n id: string;\n configuration?: ConfigurationString;\n articleId?: string;\n isItem: boolean;\n isComponent: boolean;\n}\n\nexport interface UiPossibleChild\n extends RapiElement,\n PossibleChildPreviewElement {\n group: string;\n possible: boolean;\n subTags: UiPossibleChild[];\n}\n\nexport interface UiPossibleChildTag extends RapiTag {\n possibleChildren: UiPossibleChild[];\n}\n\nexport interface DockPair {\n parentId: number;\n parentDockId: number;\n childId: number;\n childDockId: number;\n position: KernelVector3;\n rotation: KernelVector3;\n insertInBetween: boolean;\n displacedComponents: number[];\n displacementRotation: KernelVector3;\n displacementVector: KernelVector3;\n\n [key: string]: any;\n}\n\nexport interface DockingLineSegment {\n from: number;\n to: number;\n}\n\nexport interface DockLine {\n parentId: number;\n parentDockId: number;\n childId: number;\n childDockId: number;\n position: KernelVector3;\n rotation: KernelVector3;\n lineFrom: KernelVector3;\n lineTo: KernelVector3;\n lineSegments: DockingLineSegment[];\n positionFrom: KernelVector3;\n positionTo: KernelVector3;\n insertInBetween: boolean;\n displacedComponents: number[];\n displacementRotation: KernelVector3;\n displacementVector: KernelVector3;\n\n [key: string]: any;\n}\n\nexport interface KernelCube {\n origin: KernelVector3;\n size: KernelVector3;\n}\n\nexport interface KernelAnimation {\n actions: KernelAnimationAction[];\n enabled: boolean;\n key: string;\n label: string;\n group: string;\n sort: number;\n visibleInPlanner: boolean;\n level?: number;\n applyToChildren?: boolean;\n animate?: boolean;\n}\n\nexport interface KernelAnimationAction {\n key: string;\n label: string;\n type: string;\n}\n\nexport interface PlanObjectKernel {\n bounds: KernelVector3;\n boxForMeasurement: KernelCube;\n boxOfGeometry: KernelCube;\n id: number;\n rootPlanComponentId: number;\n externalId: string;\n externalObject: boolean;\n dimensioningAxes?: DimensioningAxis[];\n dimensionings?: Dimensioning[];\n animations?: KernelAnimation[];\n [key: string]: any;\n}\n\nexport const CONFIGURATION_TYPE = {\n STATIC: 0,\n INTERNAL: 1,\n EXTERNAL: 2,\n} as const;\n\nexport interface ObjectConfigurationType {\n value: Enumify<typeof CONFIGURATION_TYPE>;\n}\n\nexport interface KernelPlanObjectBase {\n dimensions: KernelVector3;\n center: KernelVector3;\n rootComponentCenter: KernelVector3;\n rotation: number;\n rgbValue: number;\n useCustomColor?: boolean;\n customLabel: string;\n customThumbnail: string;\n catalogItemId: string;\n articleId: string;\n runtimeId: number;\n configurationType: ObjectConfigurationType;\n configurationHash: string;\n configuration: string;\n configurationRuntimeId: number;\n componentRuntimeId: number;\n childObjectLevel: number;\n isAGeneratedModule: boolean;\n}\n\nexport interface KernelPlanObject extends KernelPlanObjectBase {\n partsConfigurationRuntimeId: number;\n parts: KernelPartList;\n parameters: KernelParameter[];\n animations?: KernelAnimation[];\n}\n\nexport const CORE_PLAN_COMPONENT_TYPE = {\n ROOT_COMPONENT: 0,\n COMPONENT: 1,\n ROOT_MODULE: 2,\n SUB_MODULE: 3,\n SUB_ARTICLE: 4,\n} as const;\n\nexport const CORE_PERMISSION_TO_DELETE = {\n NEVER: 0,\n REDOCK_CHILDREN: 1,\n ALWAYS: 2,\n} as const;\n\nexport interface KernelPlanObjectComponent extends KernelPlanObjectBase {\n isExternalObject: boolean;\n type: KernelComponentType;\n componentId: string;\n parentObjectId: number;\n childObjectIds: EmsArray<number>;\n externalObjectGroupId: string;\n externalRootModuleId: string;\n externalSubModuleId: string;\n isAGeneratedModule: boolean;\n permissionToDelete: KernelPermissionToDelete;\n permissionToDeleteInIsolation: KernelPermissionToDelete;\n isExchangeable: boolean;\n animations?: KernelAnimation[];\n}\n\nexport interface UiPlanObject extends KernelPlanObject {\n data: RapiItem | RapiConfiguration | null;\n}\n\nexport interface EmscriptenList {\n size: () => number;\n length: number;\n}\n\nexport type EmscriptenString = any;\n\nexport interface EmscriptenMap<K, V> {\n set: (key: K, value: V) => void;\n size: () => number;\n}\n\nexport interface KernelComponentType {\n value: Enumify<typeof CORE_PLAN_COMPONENT_TYPE>;\n}\n\nexport interface KernelPermissionToDelete {\n value: Enumify<typeof CORE_PERMISSION_TO_DELETE>;\n}\n\nexport interface AnimationTransformation {\n animationMatrix: KernelMatrix4;\n key: string;\n}\n\nexport interface ComponentAnimationTransformation {\n animations: AnimationTransformation[];\n componentRuntimeId: number;\n}\n\nexport interface KernelComponent {\n [key: string]: any;\n externalComponent: boolean;\n type: KernelComponentType;\n id: number;\n valid: boolean;\n permissionToDelete: KernelPermissionToDelete;\n permissionToDeleteInIsolation: KernelPermissionToDelete;\n objectId: number;\n rootId: number;\n rootSiblingIds: number[];\n roomModuleIds: number[];\n parentId: number;\n childIds: EmscriptenList;\n label: string;\n labelIsCalculated: boolean;\n componentId: string;\n hash: string;\n position: KernelVector3;\n rotation: KernelVector3;\n globalTransform: KernelMatrix4;\n boxForMeasurement: KernelCube;\n geometryBounds: KernelCube[];\n parameters: KernelParameter[];\n parameterGroups: KernelParameterGroup[];\n possibleChildren: KernelPossibleChild[];\n addOnSpots: AddOnSpot[];\n dimensioningAxes: DimensioningAxis[];\n dimensionings: Dimensioning[];\n animations: KernelAnimation[];\n childAnimationTransformations: ComponentAnimationTransformation[];\n}\n\nexport interface Dimensioning {\n axis: string;\n from: number;\n to: number;\n label: string;\n level: number;\n visible: boolean;\n maxLevel: number;\n interactionKey?: string;\n}\n\nexport interface DimensioningAxis {\n direction: KernelVector3;\n key: string;\n labelDirection: KernelVector3;\n origin: KernelVector3;\n alternativeOrigin?: KernelVector3;\n}\n\nexport interface AddOnSpot {\n position: KernelVector3;\n mask: string;\n}\n\nexport const CORE_ASSET_TYPE = {\n ITEM: 0,\n COMPONENT: 1,\n EXTERNAL_MESH: 2,\n MATERIAL_PROPERTIES: 3,\n MATERIAL_GROUP: 4,\n EXTERNAL_OBJ_URL: 5,\n EXTERNAL_SVG_URL: 6,\n} as const;\n\nexport interface AssetType {\n value: Enumify<typeof CORE_ASSET_TYPE>;\n}\n\nexport interface AssetRequest {\n id: string;\n value: number;\n type: AssetType;\n}\n\nexport interface AssetResponse {\n data: any;\n id: string;\n type: AssetType;\n value?: number;\n}\n\nexport interface KernelContainer {\n wasmBinaryFile: string;\n print: (msg: string) => void;\n printErr: (msg: string) => void;\n quit: (msg: string) => void;\n thisProgram: string;\n reallocBuffer: (size: string) => void;\n InternalError: typeof InternalError;\n BindingError: typeof BindingError;\n UnboundTypeError: typeof UnboundTypeError;\n wasmTableSize: number;\n wasmMaxTableSize: number;\n run: (a: any) => void;\n abort: (msg: string) => void;\n noExitRuntime: boolean;\n usingWasm: boolean;\n calledRun: boolean;\n setExternalHelpers: (kernelIo: any, utils: any) => void;\n registerConfiguratorCallback: (callbacksObject: any) => void;\n unregisterConfiguratorCallback: (callbacksObject: any) => void;\n}\n\nexport const CORE_DOCK_PAIR_TYPE = {\n POINT: 0,\n LINE: 1,\n} as const;\n\nexport interface DockPairType {\n value: Enumify<typeof CORE_DOCK_PAIR_TYPE>;\n}\n\nexport interface KernelDockPairPreview {\n parentId: number;\n parentDockId: number;\n childId: number;\n childDockId: number;\n type: DockPairType;\n position: KernelVector3f;\n rotation: KernelVector3f;\n insertInBetween: boolean;\n displacedChildId: number;\n displacedChildTransform: KernelMatrix4;\n displacedComponents: number[];\n displacementRotation: KernelVector3f;\n displacementVector: KernelVector3f;\n positionFrom?: KernelVector3f;\n positionTo?: KernelVector3f;\n lineFrom?: KernelVector3f;\n lineTo?: KernelVector3f;\n lineSegments: DockingLineSegment[];\n areaWidth?: number;\n}\n\nexport interface KernelVector2f {\n x: number;\n y: number;\n\n vectorInRoomleSpace(): KernelVector2f;\n\n vectorInKernelSpace(): KernelVector2f;\n\n convertToRoomleSpace(): void;\n\n convertToKernelSpace(): void;\n}\n\nexport interface KernelVector3f {\n x: number;\n y: number;\n z: number;\n}\n\nexport interface KernelDockingLineSegment {\n from: number;\n to: number;\n}\n\nexport interface KernelVariable {\n key: string;\n type: string;\n value: string;\n}\n\nexport interface KernelParameterValue {\n value: string;\n label: string;\n thumbnail: string;\n}\n\nexport interface KernelConfiguration {\n componentId: string;\n parameters: Map<string, string>;\n dockParent: string;\n dockPosition: string;\n children: KernelConfiguration[];\n}\n\nexport interface KernelAddOnSpot {\n mask: string;\n position: KernelVector3f;\n}\n\nexport interface KernelParamKeyValuePair {\n parameterKey: string;\n parameterValue: string;\n}\n\nexport interface ConfigurationUniqueIdAndHash {\n hash: ConfigurationHash;\n uniqueId: ConfigurationString;\n libraryId: string;\n}\n\nexport interface ExternalModuleInformation {\n groupId: string;\n rootModuleId: string;\n subModuleId: string;\n}\n\nexport interface KernelObjectInformation {\n componentId: string;\n configurationRuntimeId: number;\n externalModule: ExternalModuleInformation;\n name: string;\n runtimeId: number;\n source: string;\n type: KernelComponentType;\n permissionToDelete: KernelPermissionToDelete;\n permissionToDeleteInIsolation: KernelPermissionToDelete;\n}\n\nexport interface ExternalAttributeInformation {\n groupId: string;\n moduleIds: ExternalModuleInformation[];\n attributeId: string;\n value: string;\n}\n\nexport const enum ExportType {\n TC = 0,\n IMOSiX = 1,\n HOMAGiX = 2,\n}\n\nexport interface HomagIxArticleData {\n name: string;\n count: number;\n position: { x: number; y: number; z: number };\n rotation: { x: number; y: number; z: number };\n attributes: string;\n}\n\nexport interface ConfigurationExporter {\n new (): ConfigurationExporter;\n\n init(): void;\n\n setDefaultExportDataDefinition(\n serializedDefaultExportDefinition: string,\n ): void;\n\n generateExport(\n exportType: number,\n planObjectId: number,\n kernel: ConfiguratorKernelClass,\n ): string;\n}\n\nexport interface ConfiguratorKernelClass {\n setUpdateCallbacksOnlyIfGeometryIsReady(onlyUpdateIfReady: boolean): void;\n\n useHDGeometry(requestUseHDGeometry: boolean): void;\n\n useEnvironmentGeometry(requestEnvironmentGeometry: boolean): void;\n\n setEnvironmentVariable(key: string, value: any): void;\n\n setLevel(restrictionLevel: number): void;\n\n setDockInsertPreviewBoxParameters(\n thickness: number,\n protruding: number,\n intruding: number,\n bevelSize: number,\n ): void;\n\n clearScene(): void;\n\n clearAll(): void;\n\n loadConfiguration(\n kernelConversationId: number,\n configurationObject: ConfigurationString,\n position: KernelVector3,\n ): void;\n\n updateConfiguration(\n kernelConversationId: number,\n objectOrComponentId: number,\n serializedConfiguration: string,\n ): void;\n\n loadPlainComponent(\n conversationId: number,\n componentId: RapiId,\n configuration: ConfigurationString,\n ): void;\n\n loadFreeFlyingConfiguration(\n conversationId: number,\n configuration: ConfigurationString,\n ): void;\n\n loadFreeFlyingExternalObject(\n conversationId: number,\n targetObjectId: number,\n serializedConfiguration: string,\n ): void;\n\n requestComponentDockPreview(\n targetObjectId: number,\n componentId: string,\n serializedComponent: string,\n dragIn: boolean,\n allowInsertInBetween: boolean,\n ): void;\n\n requestItemDockPreview(\n targetObjectId: number,\n serializedConfiguration: string,\n dragIn: boolean,\n allowInsertInBetween: boolean,\n ): void;\n\n requestExternalObjectDockPreview(\n targetObjectId: number,\n articleId: string,\n dragIn: boolean,\n allowInsertInBetween: boolean,\n ): void;\n\n assetsLoaded(assets: AssetResponse | AssetResponse[]): void;\n\n deleteComponent(componentId: number, redockChildrenToParent: boolean): void;\n\n deleteMultipleComponents(componentIds: any): void;\n\n resetPriceListIds(): void;\n\n addPriceList(newLocale: string): void;\n\n requestPlanObjectConstruction(planObjectId: number): void;\n\n requestPlanComponentConstruction(componentId: number): void;\n\n requestDeltaPlanComponentConstruction(componentId: number): void;\n\n requestPlanComponentConstructionRecursive(componentId: number): void;\n\n requestPreviewGeometry(\n dockingObjectOrComponentId: number,\n targetObjectRuntimeId: number,\n allowInsertInBetween: boolean,\n ): void;\n\n cancelDocking(componentId: number, undoDrag: boolean): void;\n\n getComponentParameters(componentId: number): KernelParameter[];\n\n getPlanComponentAnimations(planComponentId: number): KernelAnimation[];\n\n setComponentParameter(\n componentId: number,\n parameterKey: string,\n value: string,\n ): void;\n\n setPlanComponentParameters(\n componentIds: any,\n parameterKey: string,\n value: string,\n ): void;\n\n getPlanObjectParameters(planObjectId: number): KernelParameter[];\n\n getPlanObjectAnimations(planObjectId: number): KernelAnimation[];\n\n setPlanObjectParameter(\n planObjectId: number,\n parameterKey: string,\n value: string,\n ): void;\n\n dockComponent(\n childId: number,\n childDockId: number,\n parentId: number,\n parentDockId: number,\n ): void;\n\n dockComponentWithPosition(\n childId: number,\n childDockId: number,\n parentId: number,\n parentDockId: number,\n position: KernelVector3,\n ): void;\n\n getComponent(componentId: number): KernelComponent;\n\n getComponentId(componentId: number): RapiId;\n\n isExternalPlanObject(objectOrPlanComponentId: number): boolean;\n\n getComponentOrModuleInformation(\n objectOrPlanComponentId: number,\n ): KernelObjectInformation;\n\n getExternalObjectAttribute(\n objectOrPlanComponentId: number,\n attributeKey: string,\n value: string,\n ): ExternalAttributeInformation;\n\n getPlanObject(planObjectId: number): PlanObjectKernel;\n\n getPlanObjectFromPlanComponent(componentId: number): PlanObjectKernel;\n\n getPlanComponentPossibleChildren(componentId: number): KernelPossibleChild[];\n\n getChildrenOfPlanComponent(\n componentId: number,\n onlyPossible: boolean,\n onlyVisible: boolean,\n ): KernelPossibleChild[];\n\n getChildrenOfPlanObject(\n planObjectId: number,\n onlyPossible: boolean,\n onlyVisible: boolean,\n ): KernelPossibleChild[];\n\n getPlanObjectPossibleChildren(componentId: number): KernelPossibleChild[];\n\n getPlanObjectChildren(\n planObjectId: number,\n onlyPossible: boolean,\n onlyVisible: boolean,\n ): KernelPossibleChild[];\n\n getRootPlanComponentIdFromObjectId(planObjectId: number): number;\n\n getFullPartList(): KernelPartList;\n\n getSerializedConfiguration(\n planObjectOrComponentId: number,\n ): ConfigurationString;\n\n createNewSerializedConfiguration(\n configurationRuntimeId: number,\n ): ConfigurationString;\n\n retrieveConfigurationId(\n aPlanObjectOrComponentId: number,\n ): ConfigurationUniqueIdAndHash;\n\n getHashOfSerializedConfiguration(\n serializedConfiguration: string,\n ): ConfigurationHash;\n\n getPartList(getPartList: number): KernelPartList;\n\n getCommonPlanComponentParameters(componentIds: any): {\n parameters: KernelParameter[];\n parameterGroups: KernelParameterGroup[];\n animations: KernelAnimation[];\n };\n\n loadComponentDefinition(conversationId: number, component: string): void;\n\n syncPlanObjectToView(conversationId: number, planObjectId: number): void;\n\n setAssetInvalid(assetType: AssetType, idOrUrl: string, quality: number): void;\n\n setActiveGroupInView(groupId: string): void;\n\n setActiveGroupInViewForPlanObject(groupId: string, runtimeId: number): void;\n\n setUpdateCallbacksOnlyIfGeometryIsReady(\n updateCallbacksOnlyIfGeometryIsReady: boolean,\n ): void;\n\n loadExternalAttributeDefinition(serializedDefinition: string): void;\n\n setExternalObjectConstructionProperties(serializedProperties: string): void;\n\n registerDebugClient(debugClient: DebugClient): void;\n}\n\nexport interface KernelObjectPtrList {\n size(): void;\n\n push_back(object: KernelObject): void;\n}\n\nexport interface ObjectGroupPtr {}\n\nexport interface ParamterKeyValue {\n parameterKey: string;\n parameterValue: string;\n}\n\nexport interface VariantsList {\n componentId: string;\n parameterValues: ParamterKeyValue[];\n parts: KernelPart[];\n}\n\nexport interface KernelConfigurationLoadedData {\n conversationId: number;\n objectId: number;\n componentId: number;\n hash: string;\n errors: string[];\n}\n\nexport type RuntimeId = number;\n\nexport interface KernelMeshBuffer {\n indices: Int32Array;\n vertices: Float32Array;\n normals: Float32Array;\n uvCoords: Float32Array;\n}\n\nexport interface KernelMeshAnimation {\n matrix: Float32Array;\n visibility: boolean;\n initial: boolean;\n}\n\nexport interface KernelMeshAttributes {\n materialId: string;\n materialAttributes: Record<string, string> | null;\n transform: Float32Array;\n uvTransform: Float32Array | null;\n animations: Record<string, KernelMeshAnimation> | null;\n}\n\nexport const LIGHT_SOURCE_TYPE = {\n SPOT: 0,\n POINT: 1,\n AREA: 2,\n} as const;\n\nexport interface KernelLightSourceType {\n value: Enumify<typeof LIGHT_SOURCE_TYPE>;\n}\n\nexport interface KernelLightSourceAttributes {\n type: KernelLightSourceType;\n position: KernelVector3f;\n direction?: KernelVector3f;\n angle?: number;\n color?: string;\n intensity?: number;\n distance?: number;\n penumbra?: number;\n decay?: number;\n width?: number;\n height?: number;\n}\n\nexport interface DebugValueMapDump {\n type: string;\n componentId: string;\n internalId: string;\n id: number;\n parentId: number;\n values: Record<string, string>;\n}\n\nexport interface DebugValueMapChange {\n sourceId: number;\n sourceInfo: string;\n valueMaps: Record<string, DebugValueMapDump>;\n}\n\nexport interface DebugClient {\n debugValueMapChange(changes: DebugValueMapChange): void;\n}\n"],"mappings":";AA2IA,IAAa,IAAsB;CACjC,OAAO;CACP,QAAQ;CACR,WAAW;CACX,UAAU;CACV,YAAY;CACZ,YAAY;CACZ,UAAU;CACV,QAAQ;CACR,QAAQ;CACT,EAiJY,IAAqB;CAChC,QAAQ;CACR,UAAU;CACV,UAAU;CACX,EAkCY,IAA2B;CACtC,gBAAgB;CAChB,WAAW;CACX,aAAa;CACb,YAAY;CACZ,aAAa;CACd,EAEY,IAA4B;CACvC,OAAO;CACP,iBAAiB;CACjB,QAAQ;CACT,EA6GY,IAAkB;CAC7B,MAAM;CACN,WAAW;CACX,eAAe;CACf,qBAAqB;CACrB,gBAAgB;CAChB,kBAAkB;CAClB,kBAAkB;CACnB,EAyCY,IAAsB;CACjC,OAAO;CACP,MAAM;CACP,EAiHiB,IAAX,yBAAA,GAAA;QACL,EAAA,EAAA,KAAA,KAAA,MACA,EAAA,EAAA,SAAA,KAAA,UACA,EAAA,EAAA,UAAA,KAAA;KACD,EAmTY,IAAoB;CAC/B,MAAM;CACN,OAAO;CACP,MAAM;CACP"}
|
|
1
|
+
{"version":3,"file":"kernel-C7YDLxq8.mjs","names":[],"sources":["../../packages/typings/kernel.ts"],"sourcesContent":["import type {\n PARAMETER_KERNEL_TYPE,\n PARAMETER_UNIT_TYPES,\n} from '../common-core/src/utils/parameter-types';\nimport type {\n AdditionalInfo,\n ConfigurationHash,\n ConfigurationString,\n PriceId,\n RapiConfiguration,\n RapiElement,\n RapiId,\n RapiItem,\n RapiJson,\n RapiTag,\n} from './rapi-types';\nimport type { KernelObject } from './planner';\nimport type { Enumify } from '#/common/src/utils/types';\nimport type {\n EmsArray,\n BindingError,\n InternalError,\n UnboundTypeError,\n} from './ems';\n\nexport interface WasmDbEntry {\n key: string;\n wasmVersion: string;\n wasmModule: any;\n}\n\n/* eslint-disable */\ndeclare namespace Module {\n function setStatus(str: string): void;\n\n let memoryInitializerPrefixURL: string;\n let Kernel: ConfiguratorKernelClass;\n}\n\n/* eslint:enable */\n\nexport interface KernelVector3 {\n x: number;\n y: number;\n z: number;\n}\n\nexport interface KernelMatrix4 {\n m: number[];\n}\n\nexport interface KernelValue {\n value: string;\n label: string;\n thumbnail: string | null;\n}\n\nexport interface KernelActionValue extends KernelValue {\n value: string;\n label: string;\n type: string;\n}\n\nexport interface KernelRange {\n valueFrom: number;\n valueTo: number;\n step: number;\n type: string;\n}\n\nexport interface UiKernelRange {\n valueFrom: string | null;\n valueTo: string | null;\n type: string;\n}\n\nexport interface KernelCatalogItem extends KernelObject {\n configuration: string;\n flipable: boolean;\n layer: number;\n orderable: boolean;\n scaleable: boolean;\n size: KernelVector3;\n type: string;\n detailType: string;\n}\n\nexport interface ConfigurationObject extends Object {\n componentId: RapiId;\n configuration: ConfigurationString;\n\n [key: string]: any;\n}\n\nexport interface KernelPossibleChild {\n componentId?: RapiId;\n itemId?: RapiId;\n isDefault?: boolean;\n possible: boolean;\n group: string | null;\n}\n\nexport interface KernelPartList {\n originPart: KernelComponent;\n fullList: KernelPart[];\n perMainComponent: Array<KernelPartList>;\n}\n\nexport interface KernelPart {\n articleNr: string;\n componentId: string;\n isModule: boolean;\n count: number;\n currencySymbol: string | null;\n permissionToDelete: KernelPermissionToDelete;\n permissionToDeleteInIsolation: KernelPermissionToDelete;\n label: string;\n parameters: KernelPartListParameter[];\n price: number | null;\n retailerPrice: number;\n\n [key: string]: any;\n}\n\nexport interface KernelPartListParameter {\n label: string;\n type: string;\n unitType: string;\n value: string;\n valueLabel: string | null;\n valueThumbnail: string;\n sort: number;\n}\n\nexport interface KernelPartListPrice {\n totalSum: number;\n partMap: Map<PriceId, KernelPart>;\n}\n\nexport const PARAMETER_VIEW_TYPE = {\n EMPTY: 0,\n TOGGLE: 1,\n IMAGELIST: 2,\n IMAGEBIG: 3,\n IMAGESMALL: 4,\n INPUTFIELD: 5,\n DROPDOWN: 6,\n SLIDER: 7,\n BUTTON: 8,\n} as const;\n\nexport interface KernelViewType {\n value: Enumify<typeof PARAMETER_VIEW_TYPE>;\n}\n\nexport interface KernelParameter {\n enabled: boolean;\n key: string;\n label: string;\n type: PARAMETER_KERNEL_TYPE;\n value: string;\n sort: number;\n unitType: PARAMETER_UNIT_TYPES;\n validGroups: [RapiId];\n validRange: KernelRange | null;\n validValues: KernelValue[];\n group: string;\n visibleInPlanner?: boolean;\n viewType: KernelViewType;\n source: 'external' | 'internal';\n level?: number;\n}\n\nexport interface KernelParameterGroup {\n key: string;\n label: string;\n sort: number;\n collapsed: boolean;\n}\n\nexport interface KernelEnum {\n value: number;\n}\n\nexport interface UiKernelParameter extends KernelParameter {\n uiType: string | null;\n validRangeLabels?: UiKernelRange;\n groups: Promise<RapiJson[]>;\n valueLabel: string | null;\n grouping: KernelParameterGroup;\n tooltip?: {\n [key: string]: string;\n };\n additionalInfos?: AdditionalInfo[];\n}\n\nexport interface PossibleChildPreviewElement {\n id: string;\n configuration?: ConfigurationString;\n articleId?: string;\n isItem: boolean;\n isComponent: boolean;\n}\n\nexport interface UiPossibleChild\n extends RapiElement,\n PossibleChildPreviewElement {\n group: string;\n possible: boolean;\n subTags: UiPossibleChild[];\n}\n\nexport interface UiPossibleChildTag extends RapiTag {\n possibleChildren: UiPossibleChild[];\n}\n\nexport interface DockPair {\n parentId: number;\n parentDockId: number;\n childId: number;\n childDockId: number;\n position: KernelVector3;\n rotation: KernelVector3;\n insertInBetween: boolean;\n displacedComponents: number[];\n displacementRotation: KernelVector3;\n displacementVector: KernelVector3;\n\n [key: string]: any;\n}\n\nexport interface DockingLineSegment {\n from: number;\n to: number;\n}\n\nexport interface DockLine {\n parentId: number;\n parentDockId: number;\n childId: number;\n childDockId: number;\n position: KernelVector3;\n rotation: KernelVector3;\n lineFrom: KernelVector3;\n lineTo: KernelVector3;\n lineSegments: DockingLineSegment[];\n positionFrom: KernelVector3;\n positionTo: KernelVector3;\n insertInBetween: boolean;\n displacedComponents: number[];\n displacementRotation: KernelVector3;\n displacementVector: KernelVector3;\n\n [key: string]: any;\n}\n\nexport interface KernelCube {\n origin: KernelVector3;\n size: KernelVector3;\n}\n\nexport interface KernelAnimation {\n actions: KernelAnimationAction[];\n enabled: boolean;\n key: string;\n label: string;\n group: string;\n sort: number;\n visibleInPlanner: boolean;\n level?: number;\n applyToChildren?: boolean;\n animate?: boolean;\n}\n\nexport interface KernelAnimationAction {\n key: string;\n label: string;\n type: string;\n}\n\nexport interface PlanObjectKernel {\n bounds: KernelVector3;\n boxForMeasurement: KernelCube;\n boxOfGeometry: KernelCube;\n id: number;\n rootPlanComponentId: number;\n externalId: string;\n externalObject: boolean;\n dimensioningAxes?: DimensioningAxis[];\n dimensionings?: Dimensioning[];\n animations?: KernelAnimation[];\n [key: string]: any;\n}\n\nexport const CONFIGURATION_TYPE = {\n STATIC: 0,\n INTERNAL: 1,\n EXTERNAL: 2,\n} as const;\n\nexport interface ObjectConfigurationType {\n value: Enumify<typeof CONFIGURATION_TYPE>;\n}\n\nexport interface KernelPlanObjectBase {\n dimensions: KernelVector3;\n center: KernelVector3;\n rootComponentCenter: KernelVector3;\n rotation: number;\n rgbValue: number;\n useCustomColor?: boolean;\n customLabel: string;\n customThumbnail: string;\n catalogItemId: string;\n articleId: string;\n runtimeId: number;\n configurationType: ObjectConfigurationType;\n configurationHash: string;\n configuration: string;\n configurationRuntimeId: number;\n componentRuntimeId: number;\n childObjectLevel: number;\n isAGeneratedModule: boolean;\n}\n\nexport interface KernelPlanObject extends KernelPlanObjectBase {\n partsConfigurationRuntimeId: number;\n parts: KernelPartList;\n parameters: KernelParameter[];\n animations?: KernelAnimation[];\n}\n\nexport const CORE_PLAN_COMPONENT_TYPE = {\n ROOT_COMPONENT: 0,\n COMPONENT: 1,\n ROOT_MODULE: 2,\n SUB_MODULE: 3,\n SUB_ARTICLE: 4,\n} as const;\n\nexport const CORE_PERMISSION_TO_DELETE = {\n NEVER: 0,\n REDOCK_CHILDREN: 1,\n ALWAYS: 2,\n} as const;\n\nexport interface KernelPlanObjectComponent extends KernelPlanObjectBase {\n isExternalObject: boolean;\n type: KernelComponentType;\n componentId: string;\n parentObjectId: number;\n childObjectIds: EmsArray<number>;\n externalObjectGroupId: string;\n externalRootModuleId: string;\n externalSubModuleId: string;\n isAGeneratedModule: boolean;\n permissionToDelete: KernelPermissionToDelete;\n permissionToDeleteInIsolation: KernelPermissionToDelete;\n isExchangeable: boolean;\n animations?: KernelAnimation[];\n}\n\nexport interface UiPlanObject extends KernelPlanObject {\n data: RapiItem | RapiConfiguration | null;\n}\n\nexport interface EmscriptenList {\n size: () => number;\n length: number;\n}\n\nexport type EmscriptenString = any;\n\nexport interface EmscriptenMap<K, V> {\n set: (key: K, value: V) => void;\n size: () => number;\n}\n\nexport interface KernelComponentType {\n value: Enumify<typeof CORE_PLAN_COMPONENT_TYPE>;\n}\n\nexport interface KernelPermissionToDelete {\n value: Enumify<typeof CORE_PERMISSION_TO_DELETE>;\n}\n\nexport interface AnimationTransformation {\n animationMatrix: KernelMatrix4;\n key: string;\n}\n\nexport interface ComponentAnimationTransformation {\n animations: AnimationTransformation[];\n componentRuntimeId: number;\n}\n\nexport interface KernelComponent {\n [key: string]: any;\n externalComponent: boolean;\n type: KernelComponentType;\n id: number;\n valid: boolean;\n permissionToDelete: KernelPermissionToDelete;\n permissionToDeleteInIsolation: KernelPermissionToDelete;\n objectId: number;\n rootId: number;\n rootSiblingIds: number[];\n roomModuleIds: number[];\n parentId: number;\n childIds: EmscriptenList;\n label: string;\n labelIsCalculated: boolean;\n componentId: string;\n hash: string;\n position: KernelVector3;\n rotation: KernelVector3;\n globalTransform: KernelMatrix4;\n boxForMeasurement: KernelCube;\n geometryBounds: KernelCube[];\n parameters: KernelParameter[];\n parameterGroups: KernelParameterGroup[];\n possibleChildren: KernelPossibleChild[];\n addOnSpots: AddOnSpot[];\n dimensioningAxes: DimensioningAxis[];\n dimensionings: Dimensioning[];\n animations: KernelAnimation[];\n childAnimationTransformations: ComponentAnimationTransformation[];\n}\n\nexport interface Dimensioning {\n axis: string;\n from: number;\n to: number;\n label: string;\n level: number;\n visible: boolean;\n maxLevel: number;\n interactionKey?: string;\n}\n\nexport interface DimensioningAxis {\n direction: KernelVector3;\n key: string;\n labelDirection: KernelVector3;\n origin: KernelVector3;\n alternativeOrigin?: KernelVector3;\n}\n\nexport interface AddOnSpot {\n position: KernelVector3;\n mask: string;\n}\n\nexport const CORE_ASSET_TYPE = {\n ITEM: 0,\n COMPONENT: 1,\n EXTERNAL_MESH: 2,\n MATERIAL_PROPERTIES: 3,\n MATERIAL_GROUP: 4,\n EXTERNAL_OBJ_URL: 5,\n EXTERNAL_SVG_URL: 6,\n} as const;\n\nexport interface AssetType {\n value: Enumify<typeof CORE_ASSET_TYPE>;\n}\n\nexport interface AssetRequest {\n id: string;\n value: number;\n type: AssetType;\n}\n\nexport interface AssetResponse {\n data: any;\n id: string;\n type: AssetType;\n value?: number;\n}\n\nexport interface KernelComponentDocking {\n componentId: number;\n isRootComponent: boolean;\n parentId: number;\n position: KernelVector3;\n rotation: KernelVector3;\n type: KernelComponentType;\n}\n\nexport interface KernelContainer {\n wasmBinaryFile: string;\n print: (msg: string) => void;\n printErr: (msg: string) => void;\n quit: (msg: string) => void;\n thisProgram: string;\n reallocBuffer: (size: string) => void;\n InternalError: typeof InternalError;\n BindingError: typeof BindingError;\n UnboundTypeError: typeof UnboundTypeError;\n wasmTableSize: number;\n wasmMaxTableSize: number;\n run: (a: any) => void;\n abort: (msg: string) => void;\n noExitRuntime: boolean;\n usingWasm: boolean;\n calledRun: boolean;\n setExternalHelpers: (kernelIo: any, utils: any) => void;\n registerConfiguratorCallback: (callbacksObject: any) => void;\n unregisterConfiguratorCallback: (callbacksObject: any) => void;\n}\n\nexport const CORE_DOCK_PAIR_TYPE = {\n POINT: 0,\n LINE: 1,\n} as const;\n\nexport interface DockPairType {\n value: Enumify<typeof CORE_DOCK_PAIR_TYPE>;\n}\n\nexport interface KernelDockPairPreview {\n parentId: number;\n parentDockId: number;\n childId: number;\n childDockId: number;\n type: DockPairType;\n position: KernelVector3f;\n rotation: KernelVector3f;\n insertInBetween: boolean;\n displacedChildId: number;\n displacedChildTransform: KernelMatrix4;\n displacedComponents: number[];\n displacementRotation: KernelVector3f;\n displacementVector: KernelVector3f;\n positionFrom?: KernelVector3f;\n positionTo?: KernelVector3f;\n lineFrom?: KernelVector3f;\n lineTo?: KernelVector3f;\n lineSegments: DockingLineSegment[];\n areaWidth?: number;\n}\n\nexport interface KernelVector2f {\n x: number;\n y: number;\n\n vectorInRoomleSpace(): KernelVector2f;\n\n vectorInKernelSpace(): KernelVector2f;\n\n convertToRoomleSpace(): void;\n\n convertToKernelSpace(): void;\n}\n\nexport interface KernelVector3f {\n x: number;\n y: number;\n z: number;\n}\n\nexport interface KernelDockingLineSegment {\n from: number;\n to: number;\n}\n\nexport interface KernelVariable {\n key: string;\n type: string;\n value: string;\n}\n\nexport interface KernelParameterValue {\n value: string;\n label: string;\n thumbnail: string;\n}\n\nexport interface KernelConfiguration {\n componentId: string;\n parameters: Map<string, string>;\n dockParent: string;\n dockPosition: string;\n children: KernelConfiguration[];\n}\n\nexport interface KernelAddOnSpot {\n mask: string;\n position: KernelVector3f;\n}\n\nexport interface KernelParamKeyValuePair {\n parameterKey: string;\n parameterValue: string;\n}\n\nexport interface ConfigurationUniqueIdAndHash {\n hash: ConfigurationHash;\n uniqueId: ConfigurationString;\n libraryId: string;\n}\n\nexport interface ExternalModuleInformation {\n groupId: string;\n rootModuleId: string;\n subModuleId: string;\n}\n\nexport interface KernelObjectInformation {\n componentId: string;\n configurationRuntimeId: number;\n externalModule: ExternalModuleInformation;\n name: string;\n runtimeId: number;\n source: string;\n type: KernelComponentType;\n permissionToDelete: KernelPermissionToDelete;\n permissionToDeleteInIsolation: KernelPermissionToDelete;\n}\n\nexport interface ExternalAttributeInformation {\n groupId: string;\n moduleIds: ExternalModuleInformation[];\n attributeId: string;\n value: string;\n}\n\nexport const enum ExportType {\n TC = 0,\n IMOSiX = 1,\n HOMAGiX = 2,\n}\n\nexport interface HomagIxArticleData {\n name: string;\n count: number;\n position: { x: number; y: number; z: number };\n rotation: { x: number; y: number; z: number };\n attributes: string;\n}\n\nexport interface ConfigurationExporter {\n new (): ConfigurationExporter;\n\n init(): void;\n\n setDefaultExportDataDefinition(\n serializedDefaultExportDefinition: string,\n ): void;\n\n generateExport(\n exportType: number,\n planObjectId: number,\n kernel: ConfiguratorKernelClass,\n ): string;\n}\n\nexport interface ConfiguratorKernelClass {\n setUpdateCallbacksOnlyIfGeometryIsReady(onlyUpdateIfReady: boolean): void;\n\n useHDGeometry(requestUseHDGeometry: boolean): void;\n\n useEnvironmentGeometry(requestEnvironmentGeometry: boolean): void;\n\n setEnvironmentVariable(key: string, value: any): void;\n\n setLevel(restrictionLevel: number): void;\n\n setDockInsertPreviewBoxParameters(\n thickness: number,\n protruding: number,\n intruding: number,\n bevelSize: number,\n ): void;\n\n clearScene(): void;\n\n clearAll(): void;\n\n loadConfiguration(\n kernelConversationId: number,\n configurationObject: ConfigurationString,\n position: KernelVector3,\n ): void;\n\n updateConfiguration(\n kernelConversationId: number,\n objectOrComponentId: number,\n serializedConfiguration: string,\n ): void;\n\n loadPlainComponent(\n conversationId: number,\n componentId: RapiId,\n configuration: ConfigurationString,\n ): void;\n\n loadFreeFlyingConfiguration(\n conversationId: number,\n configuration: ConfigurationString,\n ): void;\n\n loadFreeFlyingExternalObject(\n conversationId: number,\n targetObjectId: number,\n serializedConfiguration: string,\n ): void;\n\n requestComponentDockPreview(\n targetObjectId: number,\n componentId: string,\n serializedComponent: string,\n dragIn: boolean,\n allowInsertInBetween: boolean,\n ): void;\n\n requestItemDockPreview(\n targetObjectId: number,\n serializedConfiguration: string,\n dragIn: boolean,\n allowInsertInBetween: boolean,\n ): void;\n\n requestExternalObjectDockPreview(\n targetObjectId: number,\n articleId: string,\n dragIn: boolean,\n allowInsertInBetween: boolean,\n ): void;\n\n assetsLoaded(assets: AssetResponse | AssetResponse[]): void;\n\n deleteComponent(componentId: number, redockChildrenToParent: boolean): void;\n\n deleteMultipleComponents(componentIds: any): void;\n\n resetPriceListIds(): void;\n\n addPriceList(newLocale: string): void;\n\n requestPlanObjectConstruction(planObjectId: number): void;\n\n requestPlanComponentConstruction(componentId: number): void;\n\n requestDeltaPlanComponentConstruction(componentId: number): void;\n\n requestPlanComponentConstructionRecursive(componentId: number): void;\n\n requestPreviewGeometry(\n dockingObjectOrComponentId: number,\n targetObjectRuntimeId: number,\n allowInsertInBetween: boolean,\n ): void;\n\n cancelDocking(componentId: number, undoDrag: boolean): void;\n\n getComponentParameters(componentId: number): KernelParameter[];\n\n getPlanComponentAnimations(planComponentId: number): KernelAnimation[];\n\n setComponentParameter(\n componentId: number,\n parameterKey: string,\n value: string,\n ): void;\n\n setPlanComponentParameters(\n componentIds: any,\n parameterKey: string,\n value: string,\n ): void;\n\n getPlanObjectParameters(planObjectId: number): KernelParameter[];\n\n getPlanObjectAnimations(planObjectId: number): KernelAnimation[];\n\n setPlanObjectParameter(\n planObjectId: number,\n parameterKey: string,\n value: string,\n ): void;\n\n dockComponent(\n childId: number,\n childDockId: number,\n parentId: number,\n parentDockId: number,\n ): void;\n\n dockComponentWithPosition(\n childId: number,\n childDockId: number,\n parentId: number,\n parentDockId: number,\n position: KernelVector3,\n ): void;\n\n getComponent(componentId: number): KernelComponent;\n\n getComponentId(componentId: number): RapiId;\n\n isExternalPlanObject(objectOrPlanComponentId: number): boolean;\n\n getComponentOrModuleInformation(\n objectOrPlanComponentId: number,\n ): KernelObjectInformation;\n\n getExternalObjectAttribute(\n objectOrPlanComponentId: number,\n attributeKey: string,\n value: string,\n ): ExternalAttributeInformation;\n\n getPlanObject(planObjectId: number): PlanObjectKernel;\n\n getPlanObjectFromPlanComponent(componentId: number): PlanObjectKernel;\n\n getPlanComponentPossibleChildren(componentId: number): KernelPossibleChild[];\n\n getChildrenOfPlanComponent(\n componentId: number,\n onlyPossible: boolean,\n onlyVisible: boolean,\n ): KernelPossibleChild[];\n\n getChildrenOfPlanObject(\n planObjectId: number,\n onlyPossible: boolean,\n onlyVisible: boolean,\n ): KernelPossibleChild[];\n\n getPlanObjectPossibleChildren(componentId: number): KernelPossibleChild[];\n\n getPlanObjectChildren(\n planObjectId: number,\n onlyPossible: boolean,\n onlyVisible: boolean,\n ): KernelPossibleChild[];\n\n getRootPlanComponentIdFromObjectId(planObjectId: number): number;\n\n getFullPartList(): KernelPartList;\n\n getSerializedConfiguration(\n planObjectOrComponentId: number,\n ): ConfigurationString;\n\n createNewSerializedConfiguration(\n configurationRuntimeId: number,\n ): ConfigurationString;\n\n retrieveConfigurationId(\n aPlanObjectOrComponentId: number,\n ): ConfigurationUniqueIdAndHash;\n\n getHashOfSerializedConfiguration(\n serializedConfiguration: string,\n ): ConfigurationHash;\n\n getPartList(getPartList: number): KernelPartList;\n\n getCommonPlanComponentParameters(componentIds: any): {\n parameters: KernelParameter[];\n parameterGroups: KernelParameterGroup[];\n animations: KernelAnimation[];\n };\n\n loadComponentDefinition(conversationId: number, component: string): void;\n\n syncPlanObjectToView(conversationId: number, planObjectId: number): void;\n\n setAssetInvalid(assetType: AssetType, idOrUrl: string, quality: number): void;\n\n setActiveGroupInView(groupId: string): void;\n\n setActiveGroupInViewForPlanObject(groupId: string, runtimeId: number): void;\n\n setUpdateCallbacksOnlyIfGeometryIsReady(\n updateCallbacksOnlyIfGeometryIsReady: boolean,\n ): void;\n\n loadExternalAttributeDefinition(serializedDefinition: string): void;\n\n setExternalObjectConstructionProperties(serializedProperties: string): void;\n\n registerDebugClient(debugClient: DebugClient): void;\n}\n\nexport interface KernelObjectPtrList {\n size(): void;\n\n push_back(object: KernelObject): void;\n}\n\nexport interface ObjectGroupPtr {}\n\nexport interface ParamterKeyValue {\n parameterKey: string;\n parameterValue: string;\n}\n\nexport interface VariantsList {\n componentId: string;\n parameterValues: ParamterKeyValue[];\n parts: KernelPart[];\n}\n\nexport interface KernelConfigurationLoadedData {\n conversationId: number;\n objectId: number;\n componentId: number;\n hash: string;\n errors: string[];\n}\n\nexport type RuntimeId = number;\n\nexport interface KernelMeshBuffer {\n indices: Int32Array;\n vertices: Float32Array;\n normals: Float32Array;\n uvCoords: Float32Array;\n}\n\nexport interface KernelMeshAnimation {\n matrix: Float32Array;\n visibility: boolean;\n initial: boolean;\n}\n\nexport interface KernelMeshAttributes {\n materialId: string;\n materialAttributes: Record<string, string> | null;\n transform: Float32Array;\n uvTransform: Float32Array | null;\n animations: Record<string, KernelMeshAnimation> | null;\n}\n\nexport const LIGHT_SOURCE_TYPE = {\n SPOT: 0,\n POINT: 1,\n AREA: 2,\n} as const;\n\nexport interface KernelLightSourceType {\n value: Enumify<typeof LIGHT_SOURCE_TYPE>;\n}\n\nexport interface KernelLightSourceAttributes {\n type: KernelLightSourceType;\n position: KernelVector3f;\n direction?: KernelVector3f;\n angle?: number;\n color?: string;\n intensity?: number;\n distance?: number;\n penumbra?: number;\n decay?: number;\n width?: number;\n height?: number;\n}\n\nexport interface DebugValueMapDump {\n type: string;\n componentId: string;\n internalId: string;\n id: number;\n parentId: number;\n values: Record<string, string>;\n}\n\nexport interface DebugValueMapChange {\n sourceId: number;\n sourceInfo: string;\n valueMaps: Record<string, DebugValueMapDump>;\n}\n\nexport interface DebugClient {\n debugValueMapChange(changes: DebugValueMapChange): void;\n}\n"],"mappings":";AA2IA,IAAa,IAAsB;CACjC,OAAO;CACP,QAAQ;CACR,WAAW;CACX,UAAU;CACV,YAAY;CACZ,YAAY;CACZ,UAAU;CACV,QAAQ;CACR,QAAQ;CACT,EAiJY,IAAqB;CAChC,QAAQ;CACR,UAAU;CACV,UAAU;CACX,EAkCY,IAA2B;CACtC,gBAAgB;CAChB,WAAW;CACX,aAAa;CACb,YAAY;CACZ,aAAa;CACd,EAEY,IAA4B;CACvC,OAAO;CACP,iBAAiB;CACjB,QAAQ;CACT,EA6GY,IAAkB;CAC7B,MAAM;CACN,WAAW;CACX,eAAe;CACf,qBAAqB;CACrB,gBAAgB;CAChB,kBAAkB;CAClB,kBAAkB;CACnB,EAkDY,IAAsB;CACjC,OAAO;CACP,MAAM;CACP,EAiHiB,IAAX,yBAAA,GAAA;QACL,EAAA,EAAA,KAAA,KAAA,MACA,EAAA,EAAA,SAAA,KAAA,UACA,EAAA,EAAA,UAAA,KAAA;KACD,EAmTY,IAAoB;CAC/B,MAAM;CACN,OAAO;CACP,MAAM;CACP"}
|
|
@@ -4236,6 +4236,9 @@ var ws = 16, Ts = 6, Es = class {
|
|
|
4236
4236
|
hasSelection() {
|
|
4237
4237
|
return this._selectedComponents.size > 0;
|
|
4238
4238
|
}
|
|
4239
|
+
get selectedComponents() {
|
|
4240
|
+
return Array.from(this._selectedComponents.values());
|
|
4241
|
+
}
|
|
4239
4242
|
getSelectedRuntimeComponentIds() {
|
|
4240
4243
|
let e = [];
|
|
4241
4244
|
return this._selectedComponents.forEach((t) => e.push(t.runtimeId)), e;
|
|
@@ -4849,8 +4852,8 @@ var Qs = () => {
|
|
|
4849
4852
|
e.additionalText = "Additional Text " + n++;
|
|
4850
4853
|
});
|
|
4851
4854
|
});
|
|
4852
|
-
let r = await this._designerRequests.getRoomInformation();
|
|
4853
|
-
return this.getLibraryData(
|
|
4855
|
+
let r = await this._designerRequests.getRoomInformation(), i = this._getLibraryIdForPosData(t[0]);
|
|
4856
|
+
return this.getLibraryData(i)?.getOrderData(t, e, r?.rooms ?? []) || null;
|
|
4854
4857
|
} catch (e) {
|
|
4855
4858
|
return console.error(e), null;
|
|
4856
4859
|
}
|
|
@@ -7065,11 +7068,11 @@ var Jc = .05, Yc = .02, Xc = Jc + Yc, Zc = class extends gt {
|
|
|
7065
7068
|
Editor3dEndConstruction(e) {
|
|
7066
7069
|
this._configuratorKernelCallbackListener.forEach((t) => t.Editor3dEndConstruction(e));
|
|
7067
7070
|
}
|
|
7068
|
-
Editor3dComponentCreated(e
|
|
7069
|
-
this._configuratorKernelCallbackListener.forEach((
|
|
7071
|
+
Editor3dComponentCreated(e) {
|
|
7072
|
+
this._configuratorKernelCallbackListener.forEach((t) => t.Editor3dComponentCreated(e));
|
|
7070
7073
|
}
|
|
7071
|
-
Editor3dComponentDocked(e
|
|
7072
|
-
this._configuratorKernelCallbackListener.forEach((
|
|
7074
|
+
Editor3dComponentDocked(e) {
|
|
7075
|
+
this._configuratorKernelCallbackListener.forEach((t) => t.Editor3dComponentDocked(e));
|
|
7073
7076
|
}
|
|
7074
7077
|
Editor3dGeometryReady(e) {
|
|
7075
7078
|
this._configuratorKernelCallbackListener.forEach((t) => t.Editor3dGeometryReady(e)), this.requestPlanComponentConstruction(e), this._configuratorUiCallbacks.onGeometryReady(e);
|
|
@@ -8201,7 +8204,7 @@ L([I, F("design:type", Object)], Hl.prototype, "_rapiAccess", void 0), L([I, F("
|
|
|
8201
8204
|
//#endregion
|
|
8202
8205
|
//#region ../../node_modules/roomle-core-hsc/src/embind/plannerCoreInterface.js
|
|
8203
8206
|
var Ul = /* @__PURE__ */ e(((e) => {
|
|
8204
|
-
Object.defineProperty(e, "__esModule", { value: !0 }), e.CORE_WALL_TYPE = e.CORE_WALL_SIDE = e.CORE_WALL_EXTENSION_TYPE = e.CORE_TYPE_OF_CORE_ID = e.CORE_SNAP_MODE = e.CORE_RESIZING_ANCHOR = e.CORE_PLAN_OBJECT_SIDE = e.CORE_PLAN_ELEMENT_TYPE = e.CORE_OPENING_DIRECTION = e.CORE_OBSTACLE_TYPE = e.CORE_OBJECT_CONFIGURATION_TYPE = e.CORE_MATERIAL_SOURCE_TYPE = e.CORE_HELP_LINE_TYPE = e.CORE_DRAWING_TYPE = void 0, e.CORE_DRAWING_TYPE = {
|
|
8207
|
+
Object.defineProperty(e, "__esModule", { value: !0 }), e.CORE_WALL_TYPE = e.CORE_WALL_SIDE = e.CORE_WALL_EXTENSION_TYPE = e.CORE_TYPE_OF_CORE_ID = e.CORE_SNAP_STATE = e.CORE_SNAP_MODE = e.CORE_RESIZING_ANCHOR = e.CORE_PLAN_OBJECT_SIDE = e.CORE_PLAN_ELEMENT_TYPE = e.CORE_OPENING_DIRECTION = e.CORE_OBSTACLE_TYPE = e.CORE_OBJECT_CONFIGURATION_TYPE = e.CORE_MATERIAL_SOURCE_TYPE = e.CORE_HELP_LINE_TYPE = e.CORE_DRAWING_TYPE = void 0, e.CORE_DRAWING_TYPE = {
|
|
8205
8208
|
CONTINOUS: 0,
|
|
8206
8209
|
CLICK_PER_CLICK: 1
|
|
8207
8210
|
}, e.CORE_HELP_LINE_TYPE = {
|
|
@@ -8260,6 +8263,10 @@ var Ul = /* @__PURE__ */ e(((e) => {
|
|
|
8260
8263
|
ON_COLLISION: 1,
|
|
8261
8264
|
ON_COLLISION_ROTATE_WITHIN_DISTANCE: 2,
|
|
8262
8265
|
WITHIN_SNAP_DISTANCE: 3
|
|
8266
|
+
}, e.CORE_SNAP_STATE = {
|
|
8267
|
+
DEFAULT: 0,
|
|
8268
|
+
DOCKING: 1,
|
|
8269
|
+
COLLISION: 2
|
|
8263
8270
|
}, e.CORE_TYPE_OF_CORE_ID = {
|
|
8264
8271
|
CONFIGURATOR: 0,
|
|
8265
8272
|
PLANNER: 1
|
|
@@ -9868,13 +9875,13 @@ var vu = class {
|
|
|
9868
9875
|
}
|
|
9869
9876
|
this._subPartGuard && e === this._subPartGuard.info && (this._subPartObject = new gt());
|
|
9870
9877
|
}
|
|
9871
|
-
Editor3dComponentCreated(e
|
|
9872
|
-
|
|
9873
|
-
let
|
|
9874
|
-
|
|
9878
|
+
Editor3dComponentCreated(e) {
|
|
9879
|
+
e.isRootComponent && (this._configuratorContext.rootComponentId = e.componentId);
|
|
9880
|
+
let t = this._components.get(e.componentId);
|
|
9881
|
+
t ? t.removeAllMeshes() : (t = this._componentFactory.create(this._creator_, e.componentId, e.position, e.rotation, e.parentId, e.isRootComponent), t.layers.set(R.OBJECT)), this._components.set(e.componentId, t), this._addComponent(t);
|
|
9875
9882
|
}
|
|
9876
|
-
Editor3dComponentDocked(e
|
|
9877
|
-
this.dockComponent(e,
|
|
9883
|
+
Editor3dComponentDocked(e) {
|
|
9884
|
+
this.dockComponent(e.componentId, e.isRootComponent, e.parentId, e.position, e.rotation);
|
|
9878
9885
|
}
|
|
9879
9886
|
Editor3dEndConstruction(e) {
|
|
9880
9887
|
if (this._subPartGuard && this._subPartGuard.info === e) {
|
|
@@ -11098,8 +11105,8 @@ var xu = class extends Map {
|
|
|
11098
11105
|
_setMaterial(e, t, n, r) {
|
|
11099
11106
|
this._plannerMeshGenerator.setMaterial(e, t, n, r);
|
|
11100
11107
|
}
|
|
11101
|
-
Editor3dComponentCreated(e
|
|
11102
|
-
super.Editor3dComponentCreated(e
|
|
11108
|
+
Editor3dComponentCreated(e) {
|
|
11109
|
+
super.Editor3dComponentCreated(e), this._getKernelAccess() instanceof Rm && this.dockComponent(e.componentId, e.isRootComponent, e.parentId, e.position, e.rotation);
|
|
11103
11110
|
}
|
|
11104
11111
|
addPlanObjectToScene(e) {}
|
|
11105
11112
|
handlerSwitchedPlans(e, t) {
|
|
@@ -12465,17 +12472,18 @@ var Ed = Math.PI / 4, Dd = 1, Od = 1, kd = .1, Ad = 1.5, jd = .2, Md = -60, Nd =
|
|
|
12465
12472
|
}
|
|
12466
12473
|
_findComponentToBeSelected(e) {
|
|
12467
12474
|
if (!this._plannerKernelAccess?.isExternalObjectOrComponent(e.runtimeId)) return e;
|
|
12475
|
+
let t = this.getRootComponent(e);
|
|
12476
|
+
return this._selectionHandler.isSelected(e) ? t : this._selectionHandler.isSelected(t) || this._selectionHandler.selectedComponents.some((e) => this.getRootComponent(e).runtimeId === t.runtimeId) ? e : t;
|
|
12477
|
+
}
|
|
12478
|
+
getRootComponent(e) {
|
|
12468
12479
|
let n = e;
|
|
12469
|
-
for (; n.parentComponent
|
|
12480
|
+
for (; n.parentComponent;) {
|
|
12470
12481
|
let e = this._plannerKernelAccess?.getComponentOrModuleInformation(n.runtimeId);
|
|
12471
12482
|
if (!e || e.type.value === t.ROOT_MODULE) break;
|
|
12472
12483
|
n = n.parentComponent;
|
|
12473
12484
|
}
|
|
12474
12485
|
return n;
|
|
12475
12486
|
}
|
|
12476
|
-
isSiblingSelected(e) {
|
|
12477
|
-
return e.parentComponent?.childComponents.some((n) => (this._plannerKernelAccess?.getComponentOrModuleInformation(n.runtimeId))?.type.value !== t.ROOT_MODULE && n.runtimeId !== e.runtimeId && this._selectionHandler.isSelected(n)) ?? !1;
|
|
12478
|
-
}
|
|
12479
12487
|
};
|
|
12480
12488
|
L([I, F("design:type", Object)], Hd.prototype, "_selectionHandler", void 0), L([I, F("design:type", Object)], Hd.prototype, "_configuratorUiCallbacks", void 0), L([I, F("design:type", Object)], Hd.prototype, "_plannerKernelAccess", void 0), L([I, F("design:type", Object)], Hd.prototype, "_initData", void 0);
|
|
12481
12489
|
//#endregion
|
|
@@ -13351,7 +13359,7 @@ var uf = {
|
|
|
13351
13359
|
}
|
|
13352
13360
|
showGUI(e) {
|
|
13353
13361
|
let t = At();
|
|
13354
|
-
this.SceneRendererGUI.addGUI(t, e);
|
|
13362
|
+
t && this.SceneRendererGUI.addGUI(t, e);
|
|
13355
13363
|
}
|
|
13356
13364
|
setOnQualityLevelChangeCallback(e) {
|
|
13357
13365
|
this._onQualityLevelChange = e, this._onQualityLevelChange(this._sceneRenderer.getQualityLevel());
|
|
@@ -15532,7 +15540,10 @@ var Dp = class {
|
|
|
15532
15540
|
Ap(e);
|
|
15533
15541
|
}, Ap = (e) => {
|
|
15534
15542
|
e.children.forEach((e) => rn(e)), e.clear();
|
|
15535
|
-
}, jp = (e) => e instanceof Wc ? e.getPlanObject() : null, Mp = (e, t) =>
|
|
15543
|
+
}, jp = (e) => e instanceof Wc ? e.getPlanObject() : null, Mp = (e, t) => {
|
|
15544
|
+
let n = e.getObjectSnapInformation(t, !0).geometryHelpLines;
|
|
15545
|
+
return br(n);
|
|
15546
|
+
}, Np = (e) => {
|
|
15536
15547
|
let t = new E();
|
|
15537
15548
|
return e.forEach((e) => {
|
|
15538
15549
|
let { color: n, radius: r } = Pp(e), i = A.createMeshStandardMaterial({
|
|
@@ -16851,7 +16862,7 @@ var Hp = class {
|
|
|
16851
16862
|
static getConfigurator(e, t) {
|
|
16852
16863
|
t = this._setupDI($.CONFIGURATOR, e, t);
|
|
16853
16864
|
let n = sh.lookup("global-init-data");
|
|
16854
|
-
return n === null ? Promise.reject(/* @__PURE__ */ Error("global-init-data is not available")) : n.configuratorId ? new Promise((e, n) => import("./configurator-
|
|
16865
|
+
return n === null ? Promise.reject(/* @__PURE__ */ Error("global-init-data is not available")) : n.configuratorId ? new Promise((e, n) => import("./configurator-DtvX4JqP.mjs").then(({ Configurator: n }) => e(new n(t)), n)) : Promise.reject(/* @__PURE__ */ Error("configuratorId is not set"));
|
|
16855
16866
|
}
|
|
16856
16867
|
static getPlanner(e, t) {
|
|
16857
16868
|
return this._getPlanner(e, t);
|
|
@@ -16862,15 +16873,15 @@ var Hp = class {
|
|
|
16862
16873
|
static async getGlbViewer(e, t) {
|
|
16863
16874
|
t = this._setupDI($.GLB_VIEWER, e, t);
|
|
16864
16875
|
let n = sh.lookup("global-init-data");
|
|
16865
|
-
return n === null ? Promise.reject(/* @__PURE__ */ Error("global-init-data is not available")) : n.configuratorId ? new Promise((e, n) => import("./glb-viewer-
|
|
16876
|
+
return n === null ? Promise.reject(/* @__PURE__ */ Error("global-init-data is not available")) : n.configuratorId ? new Promise((e, n) => import("./glb-viewer-Dcllu_oG.mjs").then(({ GlbViewer: n }) => e(new n(t)), n)) : Promise.reject(/* @__PURE__ */ Error("configuratorId is not set"));
|
|
16866
16877
|
}
|
|
16867
16878
|
static getMaterialViewer(e, t) {
|
|
16868
16879
|
t = this._setupDI($.CONFIGURATOR, e, t);
|
|
16869
16880
|
let n = sh.lookup("global-init-data");
|
|
16870
|
-
return n === null ? Promise.reject(/* @__PURE__ */ Error("global-init-data is not available")) : n.configuratorId ? new Promise((e, n) => import("./material-viewer-
|
|
16881
|
+
return n === null ? Promise.reject(/* @__PURE__ */ Error("global-init-data is not available")) : n.configuratorId ? new Promise((e, n) => import("./material-viewer-BCjg687R.mjs").then(({ MaterialViewer: n }) => e(new n(t)), n)) : Promise.reject(/* @__PURE__ */ Error("configuratorId is not set"));
|
|
16871
16882
|
}
|
|
16872
16883
|
static getCoreTools(e, t) {
|
|
16873
|
-
return t = this._setupDI($.TOOLS_CORE, e, t), new Promise((e, n) => import("./tools-core-
|
|
16884
|
+
return t = this._setupDI($.TOOLS_CORE, e, t), new Promise((e, n) => import("./tools-core-BRzDdhLJ.mjs").then(({ ToolsCore: n }) => {
|
|
16874
16885
|
let r = new n(t);
|
|
16875
16886
|
r.boot(), e(r);
|
|
16876
16887
|
}, n));
|
|
@@ -16898,7 +16909,7 @@ var Hp = class {
|
|
|
16898
16909
|
}
|
|
16899
16910
|
static _getPlanner(e, t, n) {
|
|
16900
16911
|
let r = this._setupDI($.PLANNER, e, t), i = sh.lookup("global-init-data");
|
|
16901
|
-
return i === null ? Promise.reject(/* @__PURE__ */ Error("global-init-data is not available")) : i.configuratorId ? new Promise((e, t) => import("./planner-
|
|
16912
|
+
return i === null ? Promise.reject(/* @__PURE__ */ Error("global-init-data is not available")) : i.configuratorId ? new Promise((e, t) => import("./planner-CDJtTG3g.mjs").then(({ Planner: t }) => {
|
|
16902
16913
|
e(n ? new t(r, n) : new t(r));
|
|
16903
16914
|
}, t)) : Promise.reject(/* @__PURE__ */ Error("configuratorId is not set"));
|
|
16904
16915
|
}
|
|
@@ -17345,7 +17356,7 @@ var ym = "<plan version=\"2\"><walls><nodes/><edges/></walls><planobjects/><text
|
|
|
17345
17356
|
async switchToConfigurator() {
|
|
17346
17357
|
let e = await this._singlePromiseFactory.create(Ca.START_HSC, "startHSC", (e) => {
|
|
17347
17358
|
if (this._hscInstance) return e(this._hscInstance);
|
|
17348
|
-
import("./configurator-
|
|
17359
|
+
import("./configurator-DtvX4JqP.mjs").then(({ Configurator: t }) => {
|
|
17349
17360
|
let n = new t(this._creator_);
|
|
17350
17361
|
n.boot({
|
|
17351
17362
|
kernelInstance: this._planInteractionHandler.getConfiguratorKernel(),
|
|
@@ -17363,7 +17374,7 @@ var ym = "<plan version=\"2\"><walls><nodes/><edges/></walls><planobjects/><text
|
|
|
17363
17374
|
async switchToViewer() {
|
|
17364
17375
|
let e = await this._singlePromiseFactory.create(Ca.START_GLB, "startGLB", (e) => {
|
|
17365
17376
|
if (this._glbInstance) return e(this._glbInstance);
|
|
17366
|
-
import("./glb-viewer-
|
|
17377
|
+
import("./glb-viewer-Dcllu_oG.mjs").then((t) => {
|
|
17367
17378
|
let n = new t.GlbViewer(this._creator_);
|
|
17368
17379
|
n.boot(), n.getApi().setOverrides(this._initData);
|
|
17369
17380
|
let r = this._domHelper.element;
|
|
@@ -17683,14 +17694,16 @@ var ym = "<plan version=\"2\"><walls><nodes/><edges/></walls><planobjects/><text
|
|
|
17683
17694
|
async saveExternalObjectSnapshot(e) {
|
|
17684
17695
|
let t = await this._getExternalObjectGroupsInPlan();
|
|
17685
17696
|
if (!t || !t.externalObjects || t.externalObjects.length === 0) return null;
|
|
17686
|
-
let n = await this._savePlanSnapshotExternalObjects(e, t.externalObjects), r = await this.saveCurrentPlanSnapshot(), i =
|
|
17687
|
-
if (
|
|
17688
|
-
let a =
|
|
17689
|
-
if (a
|
|
17690
|
-
let
|
|
17697
|
+
let n = await this._savePlanSnapshotExternalObjects(e, t.externalObjects), r = await this.saveCurrentPlanSnapshot(), i = r.id;
|
|
17698
|
+
if (i == null) return null;
|
|
17699
|
+
let a = await this.getOrderManagerGroupData(i.toString());
|
|
17700
|
+
if (!a) return null;
|
|
17701
|
+
let o = n.id;
|
|
17702
|
+
if (i == null || o == null) return null;
|
|
17703
|
+
let s = `https://api.roomle.com/v2/planSnapshots/${i}/3dAssets/glTF/plan.glb`, c = `https://api.roomle.com/v2/planSnapshots/${o}/3dAssets/glTF/plan.glb`;
|
|
17691
17704
|
return {
|
|
17692
|
-
orderData:
|
|
17693
|
-
planSnapshotId:
|
|
17705
|
+
orderData: a,
|
|
17706
|
+
planSnapshotId: i.toString(),
|
|
17694
17707
|
perspectiveImageLink: r.perspectiveImage,
|
|
17695
17708
|
topImageLink: r.topImage,
|
|
17696
17709
|
fullPlanGlbLink: s,
|
|
@@ -18250,7 +18263,7 @@ var ym = "<plan version=\"2\"><walls><nodes/><edges/></walls><planobjects/><text
|
|
|
18250
18263
|
globalInitData: JSON.parse(JSON.stringify(this._globalInitData))
|
|
18251
18264
|
}, "*", [t.port2]);
|
|
18252
18265
|
let n = em(t.port1), r = null;
|
|
18253
|
-
this._initData.hi?.libraryId && (r = n.onLoadArticleCatalog(this._initData.hi.libraryId), this._earlyHiTagCatalogCallbacks = new vm(this._creator_, r)), await new (await (import("./homag-intelligence-
|
|
18266
|
+
this._initData.hi?.libraryId && (r = n.onLoadArticleCatalog(this._initData.hi.libraryId), this._earlyHiTagCatalogCallbacks = new vm(this._creator_, r)), await new (await (import("./homag-intelligence-CBZujG1I.mjs"))).HomagIntelligence(this, e, n).loadSavedPosData(), this._initData.hi?.libraryId && await this.loadExternalObjectLibrary(this._initData.hi.libraryId, r ?? void 0);
|
|
18254
18267
|
}
|
|
18255
18268
|
async _loadHomagIntelligenceArticles(e, t) {
|
|
18256
18269
|
let n = this._homagIntelligence;
|
|
@@ -18663,8 +18676,8 @@ var Tm = Ul(), Em = {
|
|
|
18663
18676
|
}
|
|
18664
18677
|
}
|
|
18665
18678
|
}
|
|
18666
|
-
Editor3dComponentCreated(e
|
|
18667
|
-
this._configuratorKernelCallbackListener.forEach((
|
|
18679
|
+
Editor3dComponentCreated(e) {
|
|
18680
|
+
this._configuratorKernelCallbackListener.forEach((t) => t.Editor3dComponentCreated(e)), !e.isRootComponent && e.parentId > 0 && this._configuratorKernelCallbackListener.forEach((t) => t.Editor3dComponentDocked(e));
|
|
18668
18681
|
}
|
|
18669
18682
|
Editor3dPlanObjectConstructionDone(e) {
|
|
18670
18683
|
this._configuratorKernelCallbackListener.forEach((t) => t.Editor3dPlanObjectConstructionDone(e)), this.updatePlanObjectDependencies(e), this._updateConfigurationHasChildren(e), J.end(ol.UI_LOAD_CONFIGURATION), !this._initData.moc && this._calcPrice();
|
|
@@ -20738,4 +20751,4 @@ var oh = [
|
|
|
20738
20751
|
//#endregion
|
|
20739
20752
|
export { Sa as $, rl as A, ic as B, Y as C, Ml as D, Hl as E, Dc as F, Js as G, rc as H, _c as I, ro as J, qs as K, hc as L, qc as M, Wc as N, Tl as O, Hc as P, Ca as Q, fc as R, ru as S, Wl as T, nc as U, ac as V, Ys as W, Ba as X, Ua as Y, Ra as Z, Id as _, Zm as a, Oi as at, bu as b, Hp as c, pi as ct, rp as d, V as et, $f as f, Fd as g, zd as h, oh as i, ki as it, tl as j, J as k, xp as l, Jd as m, ch as n, B as nt, Vm as o, bi as ot, Qf as p, Ws as q, sh as r, _a as rt, wm as s, mi as st, $ as t, H as tt, ap as u, Cd as v, Jl as w, pu as x, Fu as y, oc as z };
|
|
20740
20753
|
|
|
20741
|
-
//# sourceMappingURL=main-
|
|
20754
|
+
//# sourceMappingURL=main-_HtiLIhS.mjs.map
|