@roomle/embedding-lib 5.11.0-alpha.2 → 5.12.0-alpha.1
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/docs/md/web/embedding/CHANGELOG.md +116 -9
- package/package.json +2 -2
- package/packages/build-tools/src/vite-translations-plugin.d.ts +6 -0
- package/packages/common/src/utils/init-data.d.ts +1 -0
- package/roomle-embedding-lib.es.js +2 -1
- package/roomle-embedding-lib.es.min.js +1 -1
- package/roomle-embedding-lib.umd.js +2 -2
- package/roomle-embedding-lib.umd.min.js +1 -1
- package/src/common/components/SelectionButtons.vue.d.ts +4 -1
- package/src/common/composables/use-configurator-actions-visibility.d.ts +5 -0
- package/src/common/composables/use-shared-sidebar-setup.d.ts +1 -0
- package/src/common/translations/local-translation-source.d.ts +1 -2
- package/src/configurator/business-logic/sdk-connector.d.ts +1 -0
- package/src/configurator/embedding/helper.d.ts +1 -1
- package/src/configurator/embedding/types.d.ts +20 -2
- package/src/planner/business-logic/sdk-connector-planner.d.ts +8 -2
- package/src/planner/utils/planner-sidebar.d.ts +0 -1
|
@@ -1,17 +1,124 @@
|
|
|
1
|
-
## [5.
|
|
1
|
+
## [5.12.0-alpha.1](https://github.com/roomle-dev/roomle-ui/compare/embedding-lib-v5.11.0...embedding-lib-v5.12.0-alpha.1) (2025-02-14)
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
### Features
|
|
5
5
|
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
6
|
+
* 2.87.0-bo-mvp.1 ([02098de](https://github.com/roomle-dev/roomle-ui/commit/02098deb584a74a0896f02316ab99958cb83776e))
|
|
7
|
+
* BO - TC-PoC ([88a17e5](https://github.com/roomle-dev/roomle-ui/commit/88a17e5b5de688931fba6b4780fbc47fb5c59a20))
|
|
8
|
+
* BO - TC-PoC ([ffb902c](https://github.com/roomle-dev/roomle-ui/commit/ffb902cd97bb582ccf90613400b8da28c0007cfe))
|
|
9
|
+
* call postProductManagerExportPoC on add-to-card while prodmanager is enabled ([8f2cdca](https://github.com/roomle-dev/roomle-ui/commit/8f2cdca05d0081f5795ec682ed5e53f1a6956cd9))
|
|
10
|
+
* create plan xml from external object group ([5df4946](https://github.com/roomle-dev/roomle-ui/commit/5df4946be5f445e3b836242b971c1416d2dd92a1))
|
|
11
|
+
* enable autoStart to be false for desktop view only mode ([4db0bb4](https://github.com/roomle-dev/roomle-ui/commit/4db0bb40f4e861347caab0a9767f05fef32e9d00))
|
|
12
|
+
* external catalog callback "onExternalUi" ([91865e2](https://github.com/roomle-dev/roomle-ui/commit/91865e2fb9625c229e58167fb4646d51f0e554cb))
|
|
13
|
+
* HomagIx export ([51db342](https://github.com/roomle-dev/roomle-ui/commit/51db3423124e2a1e1bacea6fcd8c6c6f0b25d729))
|
|
14
|
+
* Override request product if imosix flag is set ([01d6dd7](https://github.com/roomle-dev/roomle-ui/commit/01d6dd7bfc05efa82c0cd92f4286953be054e9a0))
|
|
15
|
+
* poc - production manager export ([3c0903c](https://github.com/roomle-dev/roomle-ui/commit/3c0903cb288530afc4303fd7f89ae0e9e8084e76))
|
|
16
|
+
* poc - production manager export ([e982b39](https://github.com/roomle-dev/roomle-ui/commit/e982b391d52c732120b50fb468eacba772aac73a))
|
|
17
|
+
* remove onExternalUi callback ([02e6cba](https://github.com/roomle-dev/roomle-ui/commit/02e6cba829e17476e86111cf0b81fe8d74236d4e))
|
|
18
|
+
* RML-11645 Override request product if imosix flag is set [#1182](https://github.com/roomle-dev/roomle-ui/issues/1182) ([4ef036e](https://github.com/roomle-dev/roomle-ui/commit/4ef036eb3ae377d5f927c53a95f586b79f9883cc))
|
|
19
|
+
* **SDK:** upgrade to version 2.59.0-bo-mvp.1 ([7e288b8](https://github.com/roomle-dev/roomle-ui/commit/7e288b8df38094a94a49809de1e2c20fe4656872))
|
|
20
|
+
* **SDK:** upgrade to version 2.59.0-bo-mvp.2 ([7de75a1](https://github.com/roomle-dev/roomle-ui/commit/7de75a1d76011b3ee6a910514b0c50cdb88ad8c5))
|
|
21
|
+
* **SDK:** upgrade to version 2.59.0-bo-mvp.3 ([4d6ddfe](https://github.com/roomle-dev/roomle-ui/commit/4d6ddfe1f7d8f02870d8ad8c3667789c74c2d2aa))
|
|
22
|
+
* **SDK:** upgrade to version 2.60.0-bo-mvp.1 ([be41f7e](https://github.com/roomle-dev/roomle-ui/commit/be41f7ee8be449bd6fda7b83aad3bcf21d198725))
|
|
23
|
+
* **SDK:** upgrade to version 2.61.0-bo-mvp.1 ([e631d4f](https://github.com/roomle-dev/roomle-ui/commit/e631d4f28a3ad63b95f8e0772c932a2ccb0d4d60))
|
|
24
|
+
* **SDK:** upgrade to version 2.61.0-bo-mvp.2 ([2371db1](https://github.com/roomle-dev/roomle-ui/commit/2371db1fa1591448e08edce0cf77bec327160c65))
|
|
25
|
+
* **SDK:** upgrade to version 2.61.0-bo-mvp.3 ([742e515](https://github.com/roomle-dev/roomle-ui/commit/742e5152247d4407daef413c11a509a610716b31))
|
|
26
|
+
* **SDK:** upgrade to version 2.82.0-bo-mvp.15 ([e3c4b77](https://github.com/roomle-dev/roomle-ui/commit/e3c4b777059034675db54fc00bab5e1d34337a0f))
|
|
27
|
+
* **SDK:** upgrade to version 2.83.0-bo-mvp.1 ([c8bf41c](https://github.com/roomle-dev/roomle-ui/commit/c8bf41c58ec4d5e3104d94cf7feaddfcd9346f19))
|
|
28
|
+
* **SDK:** upgrade to version 2.83.0-bo-mvp.2 ([3d63733](https://github.com/roomle-dev/roomle-ui/commit/3d637339af340417116720f9210edb39060138e8))
|
|
29
|
+
* **SDK:** upgrade to version 2.83.0-bo-mvp.3 ([8aeece8](https://github.com/roomle-dev/roomle-ui/commit/8aeece8464ccdff39da08db3e34918450b099184))
|
|
30
|
+
* **SDK:** upgrade to version 2.83.0-bo-mvp.5 ([724b4d7](https://github.com/roomle-dev/roomle-ui/commit/724b4d7340abff13418cafb6bb0fe9d4cd6203a9))
|
|
31
|
+
* **SDK:** upgrade to version 2.83.0-bo-mvp.6 ([bb4d270](https://github.com/roomle-dev/roomle-ui/commit/bb4d270922ec26d23dfe6cafab4bf2182a77674e))
|
|
32
|
+
* **SDK:** upgrade to version 2.86.0-bo-mvp.2 ([8f796cf](https://github.com/roomle-dev/roomle-ui/commit/8f796cf7b10e9a7033b274106065dc1fef6c96db))
|
|
33
|
+
* **SDK:** upgrade to version 2.86.0-bo-mvp.3 ([dcfc2fd](https://github.com/roomle-dev/roomle-ui/commit/dcfc2fd750be5e3b68c546401aaec3a1e5691384))
|
|
34
|
+
* **SDK:** upgrade to version 2.86.0-bo-mvp.3 ([712a869](https://github.com/roomle-dev/roomle-ui/commit/712a869c01c92fe87bfcbf511073432602f26115))
|
|
35
|
+
* **SDK:** upgrade to version 2.86.0-bo-mvp.4 ([a2ab256](https://github.com/roomle-dev/roomle-ui/commit/a2ab256416e939111da501e8d24be0946d1a879d))
|
|
36
|
+
* **SDK:** upgrade to version 2.86.0-bo-mvp.5 ([3e4294e](https://github.com/roomle-dev/roomle-ui/commit/3e4294ead2aebb4f690ed27e79ab6ace635ca0e1))
|
|
37
|
+
* **SDK:** upgrade to version 2.86.0-bo-mvp.6 ([fc65ea0](https://github.com/roomle-dev/roomle-ui/commit/fc65ea08f74bb15cd284e4c2771833dd07836b36))
|
|
38
|
+
* **SDK:** upgrade to version 2.86.0-bo-mvp.7 ([109fbf7](https://github.com/roomle-dev/roomle-ui/commit/109fbf7384f1557a7411b69a8c042791d7451da9))
|
|
39
|
+
* **SDK:** upgrade to version 2.86.0-bo-mvp.8 ([94c258c](https://github.com/roomle-dev/roomle-ui/commit/94c258c9e17392c15236b9ddf2898e9c83e3d557))
|
|
40
|
+
* **SDK:** upgrade to version 2.86.0-bo-mvp.9 ([daf4831](https://github.com/roomle-dev/roomle-ui/commit/daf4831d763794188548502e085a8abe848a906b))
|
|
41
|
+
* **SDK:** upgrade to version 2.87.0-bo-mvp.2 ([7b13314](https://github.com/roomle-dev/roomle-ui/commit/7b13314265f271ff07b3af76f61c235ca303e454))
|
|
42
|
+
* **SDK:** upgrade to version 2.87.0-bo-mvp.3 ([decd9af](https://github.com/roomle-dev/roomle-ui/commit/decd9aff516ce689e01b44a21ea3158585be1963))
|
|
43
|
+
* **SDK:** upgrade to version 2.87.0-bo-mvp.5 ([525dd92](https://github.com/roomle-dev/roomle-ui/commit/525dd92daa30a73b53510e526368d5e80474cad5))
|
|
44
|
+
* **SDK:** upgrade to version 2.87.0-bo-mvp.6 ([b9e4af0](https://github.com/roomle-dev/roomle-ui/commit/b9e4af0e3bfe2e8991a688ea651538afbda46a62))
|
|
45
|
+
* **SDK:** upgrade to version 2.87.0-bo-mvp.7 ([038df72](https://github.com/roomle-dev/roomle-ui/commit/038df72f446ec97eec22c484f7c2a1a9f6d943d0))
|
|
46
|
+
* **SDK:** upgrade to version 2.88.0-bo-mvp.1 ([20bbb5f](https://github.com/roomle-dev/roomle-ui/commit/20bbb5f2048c804f0c633b002ee53fb3e5e6dd00))
|
|
47
|
+
* **SDK:** upgrade to version 2.88.0-bo-mvp.2 ([127c089](https://github.com/roomle-dev/roomle-ui/commit/127c089f93183363b517fcf9242ca4b8b7c8e4df))
|
|
48
|
+
* **SDK:** upgrade to version 2.88.0-bo-mvp.3 ([5a87903](https://github.com/roomle-dev/roomle-ui/commit/5a8790300475ee472772dacb4547aec5793675a8))
|
|
49
|
+
* **SDK:** upgrade to version 2.88.0-bo-mvp.4 ([bc3e0bb](https://github.com/roomle-dev/roomle-ui/commit/bc3e0bba1e78e23b2cf3851c155169a8e05d4154))
|
|
50
|
+
* **SDK:** upgrade to version 2.88.0-bo-mvp.5 ([4348dd5](https://github.com/roomle-dev/roomle-ui/commit/4348dd5d9a017a708ebc932fe1460c91ab54991c))
|
|
51
|
+
* **SDK:** upgrade to version 2.88.0-bo-mvp.6 ([7f05ab9](https://github.com/roomle-dev/roomle-ui/commit/7f05ab90e1ebe07aa89958cd1e2feced7ce5748f))
|
|
52
|
+
* **SDK:** upgrade to version 2.88.0-bo-mvp.7 ([92c82c8](https://github.com/roomle-dev/roomle-ui/commit/92c82c8eadaaa3ad168fd84365d0193f21df97ba))
|
|
53
|
+
* **SDK:** upgrade to version 2.89.0-bo-mvp.1 ([50530ee](https://github.com/roomle-dev/roomle-ui/commit/50530ee47c74cbc07066e4ac12407bbdb4a922af))
|
|
54
|
+
* **SDK:** upgrade to version 2.89.0-bo-mvp.2 ([fa51364](https://github.com/roomle-dev/roomle-ui/commit/fa51364d8740ac14c8c859c2ef6e5e9ab7836751))
|
|
55
|
+
* **SDK:** upgrade to version 2.89.0-bo-mvp.3 ([6a32c28](https://github.com/roomle-dev/roomle-ui/commit/6a32c28ff0c1c7d481a47f1fb596c13a711a2f13))
|
|
56
|
+
* **SDK:** upgrade to version 2.89.0-bo-mvp.4 ([efacce6](https://github.com/roomle-dev/roomle-ui/commit/efacce6458ce7a312af0be42f51118d5b5706a0f))
|
|
57
|
+
* **SDK:** upgrade to version 2.89.0-bo-mvp.5 ([627aa84](https://github.com/roomle-dev/roomle-ui/commit/627aa846a4fd241e6e1ddadf68ae67fddd5d34f1))
|
|
58
|
+
* **SDK:** upgrade to version 2.89.0-bo-mvp.6 ([cb144a0](https://github.com/roomle-dev/roomle-ui/commit/cb144a075c32185e297a70fd481680b1222d8ff2))
|
|
59
|
+
* **SDK:** upgrade to version 2.89.0-bo-mvp.7 ([7b72ead](https://github.com/roomle-dev/roomle-ui/commit/7b72ead3da70c4af06509bc86b16c2f87805bdf1))
|
|
60
|
+
* **SDK:** upgrade to version 2.89.0-bo-mvp.8 ([76b9d8d](https://github.com/roomle-dev/roomle-ui/commit/76b9d8d77a8f945f36f66899a5778e45528cdbf4))
|
|
61
|
+
* **SDK:** upgrade to version 2.89.0-bo-mvp.9 ([8114faf](https://github.com/roomle-dev/roomle-ui/commit/8114faf9ff5a64a213f27f687723b2282500ebad))
|
|
62
|
+
* **SDK:** upgrade to version 2.90.0-bo-mvp.1 ([827cccb](https://github.com/roomle-dev/roomle-ui/commit/827cccbe86c264f2ec1f0472c7a0dc23e7ace438))
|
|
63
|
+
* **SDK:** upgrade to version 2.90.0-bo-mvp.2 ([1cb3d28](https://github.com/roomle-dev/roomle-ui/commit/1cb3d2859a75c5b8e83ba1814e620cd8bf17da9f))
|
|
64
|
+
* **SDK:** upgrade to version 2.90.0-bo-mvp.3 ([c56a919](https://github.com/roomle-dev/roomle-ui/commit/c56a9197f68bf5a2b066ae552cb1fb9e4c9924f6))
|
|
65
|
+
* **SDK:** upgrade to version 2.90.0-bo-mvp.4 ([930b971](https://github.com/roomle-dev/roomle-ui/commit/930b9712d7a51963bab232a44706fd6e2329d7f2))
|
|
66
|
+
* **SDK:** upgrade to version 2.90.0-bo-mvp.5 ([604f0f2](https://github.com/roomle-dev/roomle-ui/commit/604f0f2518de81a7ae1e7b6c22d0b0f59f187086))
|
|
67
|
+
* **SDK:** upgrade to version 2.90.0-bo-mvp.6 ([1d551d5](https://github.com/roomle-dev/roomle-ui/commit/1d551d52bc302ae6e3ce12c44aeb5c06953d975a))
|
|
68
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.11 ([b2d6d15](https://github.com/roomle-dev/roomle-ui/commit/b2d6d15a18c004693c8f1a09889f5c6fb2a9418a))
|
|
69
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.12 ([89816b6](https://github.com/roomle-dev/roomle-ui/commit/89816b6cdddebce9366b6e792e6bd352086542d9))
|
|
70
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.13 ([3ae415c](https://github.com/roomle-dev/roomle-ui/commit/3ae415cc373b39295f01204d97560089ee906b48))
|
|
71
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.14 ([1b90685](https://github.com/roomle-dev/roomle-ui/commit/1b90685da907c99c247a7fca4b748904e5ea0105))
|
|
72
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.15 ([dea312a](https://github.com/roomle-dev/roomle-ui/commit/dea312aa822fb95f407b369dea27955041e1c68f))
|
|
73
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.16 ([385309a](https://github.com/roomle-dev/roomle-ui/commit/385309a365414a1f2cc44225b057dd397f28a8d5))
|
|
74
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.17 ([69c3dcc](https://github.com/roomle-dev/roomle-ui/commit/69c3dcc8a31251c824b0020e34c3f7dd3579a131))
|
|
75
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.19 ([01f5a98](https://github.com/roomle-dev/roomle-ui/commit/01f5a9896db99c60f6c016e8efc8050718ee26c5))
|
|
76
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.1 ([93a9fab](https://github.com/roomle-dev/roomle-ui/commit/93a9fab798b58c5ec3d4e992d433eba66c97a8a5))
|
|
77
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.20 ([44c0d72](https://github.com/roomle-dev/roomle-ui/commit/44c0d727d5cc8ea8ba32496d345b8be2c97d63a4))
|
|
78
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.2 ([57976a4](https://github.com/roomle-dev/roomle-ui/commit/57976a4834c78ec8db9b7b999ce6a104e4ffad7e))
|
|
79
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.3 ([0669d16](https://github.com/roomle-dev/roomle-ui/commit/0669d16d1107dc17d73861bb25ad2569a747f7fc))
|
|
80
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.4 ([8bf2d6d](https://github.com/roomle-dev/roomle-ui/commit/8bf2d6d00941e6f341c12ec4dfcf0c28087ccd84))
|
|
81
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.5 ([f703cfb](https://github.com/roomle-dev/roomle-ui/commit/f703cfb093bfda8366573fa6fd335ae1037791ec))
|
|
82
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.6 ([a89bda9](https://github.com/roomle-dev/roomle-ui/commit/a89bda970ac0fc42d6d1825eba696d083901aa00))
|
|
83
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.7 ([fad76b5](https://github.com/roomle-dev/roomle-ui/commit/fad76b5d850211e7825adbc437e7c160b3dec2f8))
|
|
84
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.8 ([98b5188](https://github.com/roomle-dev/roomle-ui/commit/98b5188f964a9f97cc5620666954adc18e6d9e00))
|
|
85
|
+
* **SDK:** upgrade to version 2.91.0-bo-mvp.9 ([a634de2](https://github.com/roomle-dev/roomle-ui/commit/a634de25fe4d406866bff73549c81d3e65d85ba1))
|
|
86
|
+
* **SDK:** upgrade to version 2.92.0-bo-mvp.1 ([b5da218](https://github.com/roomle-dev/roomle-ui/commit/b5da2189fa8a74622c4c6d12f0d2cd4a70d49c71))
|
|
87
|
+
* **SDK:** upgrade to version 2.92.0-bo-mvp.2 ([e6e9bdf](https://github.com/roomle-dev/roomle-ui/commit/e6e9bdff55da55e35c28f38e6fff2383036e6a6c))
|
|
88
|
+
* **SDK:** upgrade to version 2.92.0-bo-mvp.3 ([43a59ab](https://github.com/roomle-dev/roomle-ui/commit/43a59ab96c214007aafa47d20ef198738a533495))
|
|
89
|
+
* **SDK:** upgrade to version 2.92.0-bo-mvp.4 ([e40d00a](https://github.com/roomle-dev/roomle-ui/commit/e40d00a051d6ea7ee013bbf83cd6a2e41880640d))
|
|
90
|
+
* **SDK:** upgrade to version 2.92.0-bo-mvp.5 ([92892a7](https://github.com/roomle-dev/roomle-ui/commit/92892a75b7b22861faba2abee5e3f0d40ebffda2))
|
|
91
|
+
* **SDK:** upgrade to version 2.92.0-bo-mvp.6 ([7994d9d](https://github.com/roomle-dev/roomle-ui/commit/7994d9d4b51ecb858fc63390e944430e2adced05))
|
|
92
|
+
* **SDK:** upgrade to version 2.92.0-bo-mvp.7 ([837390b](https://github.com/roomle-dev/roomle-ui/commit/837390b679eb9546d0e772c6f10fffc51d684f70))
|
|
93
|
+
* **SDK:** upgrade to version 2.93.0 ([#1472](https://github.com/roomle-dev/roomle-ui/issues/1472)) ([ad46ae5](https://github.com/roomle-dev/roomle-ui/commit/ad46ae52627ce259ff69b6787913eeccdcaac75e))
|
|
94
|
+
* **SDK:** upgrade to version 2.93.0-bo-mvp.1 ([706e24a](https://github.com/roomle-dev/roomle-ui/commit/706e24ac4c5522993a79bdb9e531510e7dc11551))
|
|
95
|
+
* **SDK:** upgrade to version 2.93.0-bo-mvp.2 ([2d7d0fe](https://github.com/roomle-dev/roomle-ui/commit/2d7d0fef2df9142a7fd2b0246a38479b9c10df14))
|
|
96
|
+
* **SDK:** upgrade to version 2.93.0-bo-mvp.4 ([31a1f79](https://github.com/roomle-dev/roomle-ui/commit/31a1f79388c467be77229bbfed7cf90636833eb6))
|
|
97
|
+
* **SDK:** upgrade to version 2.93.0-bo-mvp.5 ([5c610cf](https://github.com/roomle-dev/roomle-ui/commit/5c610cfc3a10689676ff75505ebb0a8287749a80))
|
|
98
|
+
* **SDK:** upgrade to version 2.93.0-bo-mvp.6 ([3a8ebe2](https://github.com/roomle-dev/roomle-ui/commit/3a8ebe297d46f7f501256f02d2bfc3dca06538a3))
|
|
99
|
+
* **SDK:** upgrade to version 2.93.0-bo-mvp.7 ([5582367](https://github.com/roomle-dev/roomle-ui/commit/55823672c00c4fdea4ab4769be1cd3dcfb860e8a))
|
|
100
|
+
* **SDK:** upgrade to version 2.93.0-bo-mvp.8 ([a38d37e](https://github.com/roomle-dev/roomle-ui/commit/a38d37e2b72f45ac87c3b5e83a96d282518b089d))
|
|
101
|
+
* **SDK:** upgrade to version 2.94.0-alpha.1 ([#1478](https://github.com/roomle-dev/roomle-ui/issues/1478)) ([589518e](https://github.com/roomle-dev/roomle-ui/commit/589518efb5197eb6f4b6dc033850b09368cb58db))
|
|
12
102
|
|
|
13
103
|
|
|
14
104
|
### Bug Fixes
|
|
15
105
|
|
|
16
|
-
*
|
|
17
|
-
*
|
|
106
|
+
* add base url as well ([089f854](https://github.com/roomle-dev/roomle-ui/commit/089f85479b86bc300be88b31eebddcc9f57e031e))
|
|
107
|
+
* add separate vite plugin to handle translations properly ([175abc6](https://github.com/roomle-dev/roomle-ui/commit/175abc61e86fc381d1884f33067bc5a8966222be))
|
|
108
|
+
* Added else-if to not post to production manager export on IMOSiX ([7632fd1](https://github.com/roomle-dev/roomle-ui/commit/7632fd105502b8ef7e267f3b537846e18a1b5288))
|
|
109
|
+
* Change to frontal view menu not visible on small mobile screens ([159b1ab](https://github.com/roomle-dev/roomle-ui/commit/159b1ab6cc5204a72d204761b787e1039768dba7))
|
|
110
|
+
* failing tests ([17b3d8f](https://github.com/roomle-dev/roomle-ui/commit/17b3d8f9c6a9f89fb29cb8a7442ee28f911ebfd5))
|
|
111
|
+
* hack production manger request ([5a4b006](https://github.com/roomle-dev/roomle-ui/commit/5a4b006648a04e6521b0abc4727a14e846eaedf0))
|
|
112
|
+
* hide merge product button for all elements but objects ([fb28873](https://github.com/roomle-dev/roomle-ui/commit/fb2887385bee8bf8c27b72261e9a52ceec9d55d4))
|
|
113
|
+
* package lock ([200df68](https://github.com/roomle-dev/roomle-ui/commit/200df68f866203c32a1cfedc439dfe0e709b6c09))
|
|
114
|
+
* playwright failing test ([10d1381](https://github.com/roomle-dev/roomle-ui/commit/10d13814e652eea2fdc19ba64810914bc3e66606))
|
|
115
|
+
* playwright tests on bo-mvp branch ([948e05a](https://github.com/roomle-dev/roomle-ui/commit/948e05a39081600215baf73d6cf0daeeee525b52))
|
|
116
|
+
* property '_actualMeasurementString' is private and only accessible within class 'UnitFormatter'. (temp fix) ([9074d27](https://github.com/roomle-dev/roomle-ui/commit/9074d273be58b9980c9e11152f56384300c78ce4))
|
|
117
|
+
* removed "debugger" ([ad1b1ac](https://github.com/roomle-dev/roomle-ui/commit/ad1b1ac53410024c2d5bbf0d1429e39def377488))
|
|
118
|
+
* rollback bo-mvp ([43cf32c](https://github.com/roomle-dev/roomle-ui/commit/43cf32c957ac20230ccdad3fa2508e01b2f28c49))
|
|
119
|
+
* rollback bo-mvp ([a37ddf3](https://github.com/roomle-dev/roomle-ui/commit/a37ddf32f582a246d49b3d58165c67ad83a73235))
|
|
120
|
+
* Translations files (e.g. de.json) has no fingerprint ([6be02ca](https://github.com/roomle-dev/roomle-ui/commit/6be02caf8221154c4429a0ade4f681f60efefe1d))
|
|
121
|
+
* ts errors ([dc02614](https://github.com/roomle-dev/roomle-ui/commit/dc02614088c448979361d5c30664dd637a425089))
|
|
122
|
+
* ts errors ([d1434c1](https://github.com/roomle-dev/roomle-ui/commit/d1434c1698b4f4d090af02c353c01f8060dfd8dc))
|
|
123
|
+
* use correct package.json ([b5bfc75](https://github.com/roomle-dev/roomle-ui/commit/b5bfc75e8de7627b8a43681ae03f4ca24ccdbf6a))
|
|
124
|
+
* use correct path ([307c20d](https://github.com/roomle-dev/roomle-ui/commit/307c20d949adc507a6506c21c1aa73e34a42f80f))
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@roomle/embedding-lib",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.12.0-alpha.1",
|
|
4
4
|
"description": "This is a small library which can be used to communicate with the Roomle Configurator",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./roomle-embedding-lib.umd.js",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"npm": "8.3.1"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@roomle/web-sdk": "2.
|
|
32
|
+
"@roomle/web-sdk": "2.94.0-alpha.1"
|
|
33
33
|
},
|
|
34
34
|
"repository": {
|
|
35
35
|
"type": "git",
|
|
@@ -30,6 +30,7 @@ export declare const FALLBACK_INIT_DATA: {
|
|
|
30
30
|
wallAutoHeight: boolean;
|
|
31
31
|
};
|
|
32
32
|
rotationSnapDegrees: number;
|
|
33
|
+
interactionsCollapsed: boolean;
|
|
33
34
|
};
|
|
34
35
|
export declare const CONFIGURATOR_IDLE = "(idle)";
|
|
35
36
|
export declare const getInitData: (useFallbackId?: boolean) => UiInitData;
|
|
@@ -208,7 +208,8 @@ const z = {
|
|
|
208
208
|
mocAr: !0,
|
|
209
209
|
wallAutoHeight: !1
|
|
210
210
|
},
|
|
211
|
-
rotationSnapDegrees: 10
|
|
211
|
+
rotationSnapDegrees: 10,
|
|
212
|
+
interactionsCollapsed: !1
|
|
212
213
|
}, Y = "(idle)", q = (e) => (O(e), e != null && e.customApiUrl && (e.customApiUrl = decodeURIComponent(e.customApiUrl)), e.shareUrl && (e.deeplink = e.shareUrl.replace(
|
|
213
214
|
X,
|
|
214
215
|
Z
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var H=Object.defineProperty,U=(s,e,t)=>e in s?H(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,c=(s,e,t)=>U(s,typeof e!="symbol"?e+"":e,t);class I{constructor(e,t,r,i){c(this,"_side"),c(this,"_incomingMessageBus",null),c(this,"_outgoingMessageBus",null),c(this,"_execMessage",null),this._side=e,this._incomingMessageBus=t,this._outgoingMessageBus=r,this._execMessage=i,this._incomingMessageBus&&this._incomingMessageBus.addEventListener("message",this._handleMessage.bind(this))}setOutgoingMessageBus(e){this._outgoingMessageBus=e}setMessageExecution(e){this._execMessage=e}sendMessage(e,t=[]){return new Promise((r,i)=>{if(this._incomingMessageBus===this._outgoingMessageBus)return r(void 0);const o=new MessageChannel;o.port1.onmessage=n=>{if(!n||!n.data)return o.port1.close(),o.port2.close(),i(new Error(this._side+" received message but response can not be interpreted"));let l;try{l=JSON.parse(n.data)}catch(u){return o.port1.close(),o.port2.close(),this._prepareError(u),i(u)}l.error?i(l.error):l.result!==void 0?r(l.result):r(void 0),o.port1.close(),o.port2.close()};let a="";try{a=JSON.stringify({message:e,args:t})}catch{return i(new Error(this._side+": can not create command because it is not JSON.stringify able"))}if(!this._outgoingMessageBus)return i(new Error(this._side+": outgoing bus not set yet"));this._outgoingMessageBus.postMessage(a,"*",[o.port2])})}_handleMessage(e){const t=e.ports&&Array.isArray(e.ports)&&e.ports.length>0?e.ports[0]:null;if(e.data&&t)try{const r=JSON.parse(e.data);if(!this._execMessage)return t.postMessage(JSON.stringify({error:this._side+" is not ready to handle messages"}));Array.isArray(r.args)||(r.args=[r.args]);const i=this._execMessage(r,e);if(i===void 0)return;i.then((o={})=>{let a,n;typeof o=="object"&&o!==null&&(a=o.error,n=o.result),a?t.postMessage(JSON.stringify({error:a})):n!==void 0?t.postMessage(JSON.stringify({result:n})):t.postMessage(JSON.stringify({result:o}))},o=>{t.postMessage(JSON.stringify({error:this._prepareError(o)}))})}catch(r){t.postMessage(JSON.stringify({error:this._prepareError(r)}))}}_prepareError(e){if(typeof e=="string"){const t=this._side+": "+e;return console.error(t),t}return e.message=this._side+": "+e.message,console.error(e),e.message}}const p=".",f={REQUEST_BOOT:"requestBoot",SETUP:"setup",WEBSITE_READY:"websiteReady"},_={GET_METHODS:"getMethods",RETURN_METHODS:"returnMethods",REGISTER_CUSTOM_VIEW:"registerCustomView",REGISTER_CUSTOM_VIEW_DONE:"registerCustomViewDone"},B=async(s,e)=>{if(typeof s!="string")throw new Error('Configurator ID is not a string type: "'+typeof s+'"');const t=e.customApiUrl?e.customApiUrl:"https://api.roomle.com/v2",r=e.overrideTenant||9,i=t+"/configurators/"+s,o="roomle_portal_v2",a="03-"+window.btoa(new Date().toISOString()+";anonymous;"+o),n=()=>{const d={apiKey:o,currentTenant:r,locale:"en",language:"en",device:1,token:a,platform:"web"};return new Headers(d)},l=new Request(i,{method:"GET",headers:n(),mode:"cors",cache:"default"}),u=await fetch(l),{configurator:h}=await u.json();return h},F=()=>{try{return window.self!==window.top}catch{return!0}},C=["127.0.0.1","localhost","0.0.0.0"],k=()=>{const s=F();let e=window.location.href;if(s){if(!document.referrer)return null;e=document.referrer}const{hostname:t}=new URL(e);return t},x=s=>!!(C.includes(s)||s.endsWith("roomle.com")||s.endsWith("gitlab.io")||s.endsWith("gitlab.com")),y=["language","browserLanguage","userLanguage","systemLanguage"],W=(s=null)=>{const e=window.navigator;if(s)return s.substr(0,2);if(Array.isArray(e.languages)&&e.languages.length>0)return e.languages[0].substr(0,2);for(let t=0,r=y.length;t<r;t++){const i=e[y[t]];if(i)return i.substr(0,2)}return"en"},V=(s,e)=>{const t=JSON.parse(JSON.stringify(s));return w(t,e)},w=(s,e)=>{for(const t in e)try{e[t].constructor===Object?s[t]=w(s[t],e[t]):s[t]=e[t]}catch{s[t]=e[t]}return s};var T=(s=>(s.BOTTOM_BAR="bottom_bar",s.PARTLIST_BOUNDS="partlist_bounds",s.INTERACTION_NOTES="interaction_notes",s))(T||{}),G={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};const J={mobileLandscape:!0,floorMaterialRootTag:"materials_root",buttons:{renderimage:!0,requestproduct:!0,requestplan:!0,load_product:!0,partlist_print:!0},elements:{[T.INTERACTION_NOTES]:!0},helpcenter:{roomdesigner:!0,configurator:!1,disable:!1},firstPersonView:!0,saveToIdb:!0,featureFlags:{mocAr:!0,wallAutoHeight:!1},rotationSnapDegrees:10},$="(idle)",j=s=>(E(s),s!=null&&s.customApiUrl&&(s.customApiUrl=decodeURIComponent(s.customApiUrl)),s.shareUrl&&(s.deeplink=s.shareUrl.replace(Y,Q)),s),E=s=>{if(!s)return;const e=Object.keys(s);for(const t of e){const r=s[t];if(!Array.isArray(r)&&typeof r=="object"&&r!==null&&E(r),Array.isArray(r))for(const i of r)E(i);(r==="true"||r==="false")&&(s[t]=r==="true")}},z=(s,e)=>{e.configuratorId=s.id;const t=s.settings||{};return!e.overrideTenant&&s.tenant&&(e.overrideTenant=s.tenant),V(t,e)},q=()=>{const s={...J};s.locale||(s.locale=W()),s.id===$&&delete s.id;const e=k();return e&&x(e)&&(s.configuratorId="demoConfigurator"),s.customApiUrl=G.VITE_RAPI_URL,s.emails=!1,s},Y="<CONF_ID>",Q="#CONFIGURATIONID#",K=s=>{s.featureFlags||(s.featureFlags={}),typeof s.featureFlags.realPartList!="boolean"&&(s.featureFlags.realPartList=!0),typeof s.featureFlags.globalCallbacks!="boolean"&&(s.featureFlags.globalCallbacks=!0),typeof s.featureFlags.mocAr!="boolean"&&(s.featureFlags.mocAr=!1)},M=()=>/(android)/i.test(navigator.userAgent);class v{constructor(){c(this,"_messageHandler",null),c(this,"isSetupDone",!1),c(this,"viewName","main"),c(this,"plugins",{}),c(this,"pluginsLoaded",[]),c(this,"ui",{callbacks:null}),c(this,"extended",{callbacks:null}),c(this,"configurator",{callbacks:null}),c(this,"analytics",{callbacks:{}}),c(this,"global",{callbacks:{}})}setMessageHandler(e){this._messageHandler=e}handleSetup(e){const{methods:t,callbacks:r}=e;t.forEach(i=>{const o=i.split(p),a=o[0],n=o[1];this[a]||(this[a]={}),this[a][n]=function(){if(!this._messageHandler){console.error("MessageHandler not set");return}return this._messageHandler.sendMessage(i,[...arguments])}.bind(this)}),r.forEach(i=>{const o=i.split(p),a=o[0],n=o[1],l=o[2];this[a]||(this[a]={}),this[a][n]||(this[a][n]={}),this[a][n][l]=()=>{}}),this.isSetupDone=!0}executeMessage({message:e,args:t}){const r=e.split(p),i=r[0],o=r[1],a=r.length===3?r[2]:null;if(a&&this[i][o][a]){const n=this[i][o][a](...t);return n instanceof Promise?n.then(l=>({result:l})):n!==void 0?Promise.resolve({result:n}):Promise.resolve({result:null})}return Promise.reject('Message "'+e+'" is unkown')}setupPlugins(e,t,r="website"){for(const i of e)typeof i=="string"&&i==="dragIn"?this.pluginsLoaded.push(new Promise((o,a)=>{try{import("./drag-in-CYmR1HFI.mjs").then(n=>n.l).then(({DragIn:n})=>{const l=new n(this.ui,t,r,this.viewName);l.init().then(()=>{this.plugins.dragIn=l,o()},a)})}catch(n){a(n)}})):i.name&&i.loader&&this.pluginsLoaded.push(new Promise((o,a)=>{try{i.loader().then(n=>{const l=new n(this.ui,t,r,this.viewName);l.init().then(()=>{this.plugins[i.name]=l,o()},a)})}catch(n){a(n)}}))}}const S=()=>{let s,e;return{promise:new Promise((t,r)=>{s=t,e=r}),resolve:s,reject:e}},N=(s,e,t)=>{let r=null;Object.defineProperty(s,e,{get(){return r||t},set(i){i!=null&&i.mute?r=i.value:(console.warn("You override Roomle defined behaviour. To disalbe this warning pass in an object with the following properties"),console.warn("{ mute: true, value: () => void }"),r=i)}})},R=()=>window.innerHeight*.01+"px",D=s=>{s&&setTimeout(()=>s.style.setProperty(O,R()),0)},L="rml-styles",X=450,O="--rml-full-height",g={CONTAINER:"rml-container",FILL:"rml-fill",POSITION:"rml-pos",TRANSITION:"rml-transition",ANDROID_HEIGHT:"rml-android-height",OVERFLOW_HIDDEN:"rml-overflow-hidden"},b=new Map;class Z extends v{constructor(e,t,r,i,o){if(super(),c(this,"_waitForIframe"),c(this,"_container"),c(this,"_configuratorSettings"),c(this,"_initData",{}),c(this,"_iframe"),!e||typeof e.id!="string")throw new Error("Please provide a correct configuratorId, you get the correct ID from your Roomle Contact Person");if(b.has(t))throw new Error("There is already an instance on this DOM element");if(!document.getElementById(L)){const l=r.zIndex||9999999,u=document.createElement("style");u.type="text/css",u.id=L;const h="transition:all ease-in-out "+X+"ms;",d=["-webkit-","-o-"].reduce((P,A)=>P+=A+h,"")+h,m=R();u.innerHTML=`
|
|
1
|
+
var H=Object.defineProperty,U=(s,e,t)=>e in s?H(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,c=(s,e,t)=>U(s,typeof e!="symbol"?e+"":e,t);class I{constructor(e,t,r,i){c(this,"_side"),c(this,"_incomingMessageBus",null),c(this,"_outgoingMessageBus",null),c(this,"_execMessage",null),this._side=e,this._incomingMessageBus=t,this._outgoingMessageBus=r,this._execMessage=i,this._incomingMessageBus&&this._incomingMessageBus.addEventListener("message",this._handleMessage.bind(this))}setOutgoingMessageBus(e){this._outgoingMessageBus=e}setMessageExecution(e){this._execMessage=e}sendMessage(e,t=[]){return new Promise((r,i)=>{if(this._incomingMessageBus===this._outgoingMessageBus)return r(void 0);const o=new MessageChannel;o.port1.onmessage=n=>{if(!n||!n.data)return o.port1.close(),o.port2.close(),i(new Error(this._side+" received message but response can not be interpreted"));let l;try{l=JSON.parse(n.data)}catch(u){return o.port1.close(),o.port2.close(),this._prepareError(u),i(u)}l.error?i(l.error):l.result!==void 0?r(l.result):r(void 0),o.port1.close(),o.port2.close()};let a="";try{a=JSON.stringify({message:e,args:t})}catch{return i(new Error(this._side+": can not create command because it is not JSON.stringify able"))}if(!this._outgoingMessageBus)return i(new Error(this._side+": outgoing bus not set yet"));this._outgoingMessageBus.postMessage(a,"*",[o.port2])})}_handleMessage(e){const t=e.ports&&Array.isArray(e.ports)&&e.ports.length>0?e.ports[0]:null;if(e.data&&t)try{const r=JSON.parse(e.data);if(!this._execMessage)return t.postMessage(JSON.stringify({error:this._side+" is not ready to handle messages"}));Array.isArray(r.args)||(r.args=[r.args]);const i=this._execMessage(r,e);if(i===void 0)return;i.then((o={})=>{let a,n;typeof o=="object"&&o!==null&&(a=o.error,n=o.result),a?t.postMessage(JSON.stringify({error:a})):n!==void 0?t.postMessage(JSON.stringify({result:n})):t.postMessage(JSON.stringify({result:o}))},o=>{t.postMessage(JSON.stringify({error:this._prepareError(o)}))})}catch(r){t.postMessage(JSON.stringify({error:this._prepareError(r)}))}}_prepareError(e){if(typeof e=="string"){const t=this._side+": "+e;return console.error(t),t}return e.message=this._side+": "+e.message,console.error(e),e.message}}const p=".",f={REQUEST_BOOT:"requestBoot",SETUP:"setup",WEBSITE_READY:"websiteReady"},_={GET_METHODS:"getMethods",RETURN_METHODS:"returnMethods",REGISTER_CUSTOM_VIEW:"registerCustomView",REGISTER_CUSTOM_VIEW_DONE:"registerCustomViewDone"},B=async(s,e)=>{if(typeof s!="string")throw new Error('Configurator ID is not a string type: "'+typeof s+'"');const t=e.customApiUrl?e.customApiUrl:"https://api.roomle.com/v2",r=e.overrideTenant||9,i=t+"/configurators/"+s,o="roomle_portal_v2",a="03-"+window.btoa(new Date().toISOString()+";anonymous;"+o),n=()=>{const d={apiKey:o,currentTenant:r,locale:"en",language:"en",device:1,token:a,platform:"web"};return new Headers(d)},l=new Request(i,{method:"GET",headers:n(),mode:"cors",cache:"default"}),u=await fetch(l),{configurator:h}=await u.json();return h},F=()=>{try{return window.self!==window.top}catch{return!0}},C=["127.0.0.1","localhost","0.0.0.0"],k=()=>{const s=F();let e=window.location.href;if(s){if(!document.referrer)return null;e=document.referrer}const{hostname:t}=new URL(e);return t},x=s=>!!(C.includes(s)||s.endsWith("roomle.com")||s.endsWith("gitlab.io")||s.endsWith("gitlab.com")),y=["language","browserLanguage","userLanguage","systemLanguage"],W=(s=null)=>{const e=window.navigator;if(s)return s.substr(0,2);if(Array.isArray(e.languages)&&e.languages.length>0)return e.languages[0].substr(0,2);for(let t=0,r=y.length;t<r;t++){const i=e[y[t]];if(i)return i.substr(0,2)}return"en"},V=(s,e)=>{const t=JSON.parse(JSON.stringify(s));return w(t,e)},w=(s,e)=>{for(const t in e)try{e[t].constructor===Object?s[t]=w(s[t],e[t]):s[t]=e[t]}catch{s[t]=e[t]}return s};var T=(s=>(s.BOTTOM_BAR="bottom_bar",s.PARTLIST_BOUNDS="partlist_bounds",s.INTERACTION_NOTES="interaction_notes",s))(T||{}),G={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};const J={mobileLandscape:!0,floorMaterialRootTag:"materials_root",buttons:{renderimage:!0,requestproduct:!0,requestplan:!0,load_product:!0,partlist_print:!0},elements:{[T.INTERACTION_NOTES]:!0},helpcenter:{roomdesigner:!0,configurator:!1,disable:!1},firstPersonView:!0,saveToIdb:!0,featureFlags:{mocAr:!0,wallAutoHeight:!1},rotationSnapDegrees:10,interactionsCollapsed:!1},$="(idle)",j=s=>(E(s),s!=null&&s.customApiUrl&&(s.customApiUrl=decodeURIComponent(s.customApiUrl)),s.shareUrl&&(s.deeplink=s.shareUrl.replace(Y,Q)),s),E=s=>{if(!s)return;const e=Object.keys(s);for(const t of e){const r=s[t];if(!Array.isArray(r)&&typeof r=="object"&&r!==null&&E(r),Array.isArray(r))for(const i of r)E(i);(r==="true"||r==="false")&&(s[t]=r==="true")}},z=(s,e)=>{e.configuratorId=s.id;const t=s.settings||{};return!e.overrideTenant&&s.tenant&&(e.overrideTenant=s.tenant),V(t,e)},q=()=>{const s={...J};s.locale||(s.locale=W()),s.id===$&&delete s.id;const e=k();return e&&x(e)&&(s.configuratorId="demoConfigurator"),s.customApiUrl=G.VITE_RAPI_URL,s.emails=!1,s},Y="<CONF_ID>",Q="#CONFIGURATIONID#",K=s=>{s.featureFlags||(s.featureFlags={}),typeof s.featureFlags.realPartList!="boolean"&&(s.featureFlags.realPartList=!0),typeof s.featureFlags.globalCallbacks!="boolean"&&(s.featureFlags.globalCallbacks=!0),typeof s.featureFlags.mocAr!="boolean"&&(s.featureFlags.mocAr=!1)},M=()=>/(android)/i.test(navigator.userAgent);class v{constructor(){c(this,"_messageHandler",null),c(this,"isSetupDone",!1),c(this,"viewName","main"),c(this,"plugins",{}),c(this,"pluginsLoaded",[]),c(this,"ui",{callbacks:null}),c(this,"extended",{callbacks:null}),c(this,"configurator",{callbacks:null}),c(this,"analytics",{callbacks:{}}),c(this,"global",{callbacks:{}})}setMessageHandler(e){this._messageHandler=e}handleSetup(e){const{methods:t,callbacks:r}=e;t.forEach(i=>{const o=i.split(p),a=o[0],n=o[1];this[a]||(this[a]={}),this[a][n]=function(){if(!this._messageHandler){console.error("MessageHandler not set");return}return this._messageHandler.sendMessage(i,[...arguments])}.bind(this)}),r.forEach(i=>{const o=i.split(p),a=o[0],n=o[1],l=o[2];this[a]||(this[a]={}),this[a][n]||(this[a][n]={}),this[a][n][l]=()=>{}}),this.isSetupDone=!0}executeMessage({message:e,args:t}){const r=e.split(p),i=r[0],o=r[1],a=r.length===3?r[2]:null;if(a&&this[i][o][a]){const n=this[i][o][a](...t);return n instanceof Promise?n.then(l=>({result:l})):n!==void 0?Promise.resolve({result:n}):Promise.resolve({result:null})}return Promise.reject('Message "'+e+'" is unkown')}setupPlugins(e,t,r="website"){for(const i of e)typeof i=="string"&&i==="dragIn"?this.pluginsLoaded.push(new Promise((o,a)=>{try{import("./drag-in-CYmR1HFI.mjs").then(n=>n.l).then(({DragIn:n})=>{const l=new n(this.ui,t,r,this.viewName);l.init().then(()=>{this.plugins.dragIn=l,o()},a)})}catch(n){a(n)}})):i.name&&i.loader&&this.pluginsLoaded.push(new Promise((o,a)=>{try{i.loader().then(n=>{const l=new n(this.ui,t,r,this.viewName);l.init().then(()=>{this.plugins[i.name]=l,o()},a)})}catch(n){a(n)}}))}}const S=()=>{let s,e;return{promise:new Promise((t,r)=>{s=t,e=r}),resolve:s,reject:e}},N=(s,e,t)=>{let r=null;Object.defineProperty(s,e,{get(){return r||t},set(i){i!=null&&i.mute?r=i.value:(console.warn("You override Roomle defined behaviour. To disalbe this warning pass in an object with the following properties"),console.warn("{ mute: true, value: () => void }"),r=i)}})},R=()=>window.innerHeight*.01+"px",D=s=>{s&&setTimeout(()=>s.style.setProperty(O,R()),0)},L="rml-styles",X=450,O="--rml-full-height",g={CONTAINER:"rml-container",FILL:"rml-fill",POSITION:"rml-pos",TRANSITION:"rml-transition",ANDROID_HEIGHT:"rml-android-height",OVERFLOW_HIDDEN:"rml-overflow-hidden"},b=new Map;class Z extends v{constructor(e,t,r,i,o){if(super(),c(this,"_waitForIframe"),c(this,"_container"),c(this,"_configuratorSettings"),c(this,"_initData",{}),c(this,"_iframe"),!e||typeof e.id!="string")throw new Error("Please provide a correct configuratorId, you get the correct ID from your Roomle Contact Person");if(b.has(t))throw new Error("There is already an instance on this DOM element");if(!document.getElementById(L)){const l=r.zIndex||9999999,u=document.createElement("style");u.type="text/css",u.id=L;const h="transition:all ease-in-out "+X+"ms;",d=["-webkit-","-o-"].reduce((P,A)=>P+=A+h,"")+h,m=R();u.innerHTML=`
|
|
2
2
|
.${g.CONTAINER}{${O}:${m};}
|
|
3
3
|
.${g.POSITION}{position:fixed;top:0;left:0;z-index:${l};opacity:0}
|
|
4
4
|
.${g.TRANSITION}{${d}}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
(function(_,p){typeof exports=="object"&&typeof module<"u"?module.exports=p():typeof define=="function"&&define.amd?define(p):(_=typeof globalThis<"u"?globalThis:_||self,_["roomle-embedding-lib"]=_["roomle-embedding-lib"]||{},_["roomle-embedding-lib"].umd=_["roomle-embedding-lib"].umd||{},_["roomle-embedding-lib"].umd.js=p())})(this,function(){"use strict";var te=Object.defineProperty;var ee=(_,p,E)=>p in _?te(_,p,{enumerable:!0,configurable:!0,writable:!0,value:E}):_[p]=E;var c=(_,p,E)=>ee(_,typeof p!="symbol"?p+"":p,E);class _{constructor(e,t,s,n){c(this,"_side");c(this,"_incomingMessageBus",null);c(this,"_outgoingMessageBus",null);c(this,"_execMessage",null);this._side=e,this._incomingMessageBus=t,this._outgoingMessageBus=s,this._execMessage=n,this._incomingMessageBus&&this._incomingMessageBus.addEventListener("message",this._handleMessage.bind(this))}setOutgoingMessageBus(e){this._outgoingMessageBus=e}setMessageExecution(e){this._execMessage=e}sendMessage(e,t=[]){return new Promise((s,n)=>{if(this._incomingMessageBus===this._outgoingMessageBus)return s(void 0);const i=new MessageChannel;i.port1.onmessage=a=>{if(!a||!a.data)return i.port1.close(),i.port2.close(),n(new Error(this._side+" received message but response can not be interpreted"));let l;try{l=JSON.parse(a.data)}catch(d){return i.port1.close(),i.port2.close(),this._prepareError(d),n(d)}l.error?n(l.error):l.result!==void 0?s(l.result):s(void 0),i.port1.close(),i.port2.close()};let o="";try{o=JSON.stringify({message:e,args:t})}catch{return n(new Error(this._side+": can not create command because it is not JSON.stringify able"))}if(!this._outgoingMessageBus)return n(new Error(this._side+": outgoing bus not set yet"));this._outgoingMessageBus.postMessage(o,"*",[i.port2])})}_handleMessage(e){const t=e.ports&&Array.isArray(e.ports)&&e.ports.length>0?e.ports[0]:null;if(e.data&&t)try{const s=JSON.parse(e.data);if(!this._execMessage)return t.postMessage(JSON.stringify({error:this._side+" is not ready to handle messages"}));Array.isArray(s.args)||(s.args=[s.args]);const n=this._execMessage(s,e);if(n===void 0)return;n.then((i={})=>{let o,a;typeof i=="object"&&i!==null&&(o=i.error,a=i.result),o?t.postMessage(JSON.stringify({error:o})):a!==void 0?t.postMessage(JSON.stringify({result:a})):t.postMessage(JSON.stringify({result:i}))},i=>{t.postMessage(JSON.stringify({error:this._prepareError(i)}))})}catch(s){t.postMessage(JSON.stringify({error:this._prepareError(s)}))}}_prepareError(e){if(typeof e=="string"){const t=this._side+": "+e;return console.error(t),t}return e.message=this._side+": "+e.message,console.error(e),e.message}}const p=".",E={REQUEST_BOOT:"requestBoot",SETUP:"setup",WEBSITE_READY:"websiteReady"},w={GET_METHODS:"getMethods",RETURN_METHODS:"returnMethods",REGISTER_CUSTOM_VIEW:"registerCustomView",REGISTER_CUSTOM_VIEW_DONE:"registerCustomViewDone"},pt=async(r,e)=>{if(typeof r!="string")throw new Error('Configurator ID is not a string type: "'+typeof r+'"');const t=e.customApiUrl?e.customApiUrl:"https://api.roomle.com/v2",s=e.overrideTenant||9,n=t+"/configurators/"+r,i="roomle_portal_v2",o="03-"+window.btoa(new Date().toISOString()+";anonymous;"+i),a=()=>{const u={apiKey:i,currentTenant:s,locale:"en",language:"en",device:1,token:o,platform:"web"};return new Headers(u)},l=new Request(n,{method:"GET",headers:a(),mode:"cors",cache:"default"}),d=await fetch(l),{configurator:h}=await d.json();return h},yt=()=>{try{return window.self!==window.top}catch{return!0}},Et=["127.0.0.1","localhost","0.0.0.0"],Dt=()=>{const r=yt();let e=window.location.href;if(r){if(!document.referrer)return null;e=document.referrer}const{hostname:t}=new URL(e);return t},Tt=r=>!!(Et.includes(r)||r.endsWith("roomle.com")||r.endsWith("gitlab.io")||r.endsWith("gitlab.com")),k=["language","browserLanguage","userLanguage","systemLanguage"],St=(r=null)=>{const e=window.navigator;if(r)return r.substr(0,2);if(Array.isArray(e.languages)&&e.languages.length>0)return e.languages[0].substr(0,2);for(let t=0,s=k.length;t<s;t++){const n=e[k[t]];if(n)return n.substr(0,2)}return"en"},It=(r,e)=>{const t=JSON.parse(JSON.stringify(r));return
|
|
1
|
+
(function(_,p){typeof exports=="object"&&typeof module<"u"?module.exports=p():typeof define=="function"&&define.amd?define(p):(_=typeof globalThis<"u"?globalThis:_||self,_["roomle-embedding-lib"]=_["roomle-embedding-lib"]||{},_["roomle-embedding-lib"].umd=_["roomle-embedding-lib"].umd||{},_["roomle-embedding-lib"].umd.js=p())})(this,function(){"use strict";var te=Object.defineProperty;var ee=(_,p,E)=>p in _?te(_,p,{enumerable:!0,configurable:!0,writable:!0,value:E}):_[p]=E;var c=(_,p,E)=>ee(_,typeof p!="symbol"?p+"":p,E);class _{constructor(e,t,s,n){c(this,"_side");c(this,"_incomingMessageBus",null);c(this,"_outgoingMessageBus",null);c(this,"_execMessage",null);this._side=e,this._incomingMessageBus=t,this._outgoingMessageBus=s,this._execMessage=n,this._incomingMessageBus&&this._incomingMessageBus.addEventListener("message",this._handleMessage.bind(this))}setOutgoingMessageBus(e){this._outgoingMessageBus=e}setMessageExecution(e){this._execMessage=e}sendMessage(e,t=[]){return new Promise((s,n)=>{if(this._incomingMessageBus===this._outgoingMessageBus)return s(void 0);const i=new MessageChannel;i.port1.onmessage=a=>{if(!a||!a.data)return i.port1.close(),i.port2.close(),n(new Error(this._side+" received message but response can not be interpreted"));let l;try{l=JSON.parse(a.data)}catch(d){return i.port1.close(),i.port2.close(),this._prepareError(d),n(d)}l.error?n(l.error):l.result!==void 0?s(l.result):s(void 0),i.port1.close(),i.port2.close()};let o="";try{o=JSON.stringify({message:e,args:t})}catch{return n(new Error(this._side+": can not create command because it is not JSON.stringify able"))}if(!this._outgoingMessageBus)return n(new Error(this._side+": outgoing bus not set yet"));this._outgoingMessageBus.postMessage(o,"*",[i.port2])})}_handleMessage(e){const t=e.ports&&Array.isArray(e.ports)&&e.ports.length>0?e.ports[0]:null;if(e.data&&t)try{const s=JSON.parse(e.data);if(!this._execMessage)return t.postMessage(JSON.stringify({error:this._side+" is not ready to handle messages"}));Array.isArray(s.args)||(s.args=[s.args]);const n=this._execMessage(s,e);if(n===void 0)return;n.then((i={})=>{let o,a;typeof i=="object"&&i!==null&&(o=i.error,a=i.result),o?t.postMessage(JSON.stringify({error:o})):a!==void 0?t.postMessage(JSON.stringify({result:a})):t.postMessage(JSON.stringify({result:i}))},i=>{t.postMessage(JSON.stringify({error:this._prepareError(i)}))})}catch(s){t.postMessage(JSON.stringify({error:this._prepareError(s)}))}}_prepareError(e){if(typeof e=="string"){const t=this._side+": "+e;return console.error(t),t}return e.message=this._side+": "+e.message,console.error(e),e.message}}const p=".",E={REQUEST_BOOT:"requestBoot",SETUP:"setup",WEBSITE_READY:"websiteReady"},w={GET_METHODS:"getMethods",RETURN_METHODS:"returnMethods",REGISTER_CUSTOM_VIEW:"registerCustomView",REGISTER_CUSTOM_VIEW_DONE:"registerCustomViewDone"},pt=async(r,e)=>{if(typeof r!="string")throw new Error('Configurator ID is not a string type: "'+typeof r+'"');const t=e.customApiUrl?e.customApiUrl:"https://api.roomle.com/v2",s=e.overrideTenant||9,n=t+"/configurators/"+r,i="roomle_portal_v2",o="03-"+window.btoa(new Date().toISOString()+";anonymous;"+i),a=()=>{const u={apiKey:i,currentTenant:s,locale:"en",language:"en",device:1,token:o,platform:"web"};return new Headers(u)},l=new Request(n,{method:"GET",headers:a(),mode:"cors",cache:"default"}),d=await fetch(l),{configurator:h}=await d.json();return h},yt=()=>{try{return window.self!==window.top}catch{return!0}},Et=["127.0.0.1","localhost","0.0.0.0"],Dt=()=>{const r=yt();let e=window.location.href;if(r){if(!document.referrer)return null;e=document.referrer}const{hostname:t}=new URL(e);return t},Tt=r=>!!(Et.includes(r)||r.endsWith("roomle.com")||r.endsWith("gitlab.io")||r.endsWith("gitlab.com")),k=["language","browserLanguage","userLanguage","systemLanguage"],St=(r=null)=>{const e=window.navigator;if(r)return r.substr(0,2);if(Array.isArray(e.languages)&&e.languages.length>0)return e.languages[0].substr(0,2);for(let t=0,s=k.length;t<s;t++){const n=e[k[t]];if(n)return n.substr(0,2)}return"en"},It=(r,e)=>{const t=JSON.parse(JSON.stringify(r));return C(t,e)},C=(r,e)=>{for(const t in e)try{e[t].constructor===Object?r[t]=C(r[t],e[t]):r[t]=e[t]}catch{r[t]=e[t]}return r};var z=(r=>(r.BOTTOM_BAR="bottom_bar",r.PARTLIST_BOUNDS="partlist_bounds",r.INTERACTION_NOTES="interaction_notes",r))(z||{}),wt={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};const At={mobileLandscape:!0,floorMaterialRootTag:"materials_root",buttons:{renderimage:!0,requestproduct:!0,requestplan:!0,load_product:!0,partlist_print:!0},elements:{[z.INTERACTION_NOTES]:!0},helpcenter:{roomdesigner:!0,configurator:!1,disable:!1},firstPersonView:!0,saveToIdb:!0,featureFlags:{mocAr:!0,wallAutoHeight:!1},rotationSnapDegrees:10,interactionsCollapsed:!1},bt="(idle)",Ot=r=>(L(r),r!=null&&r.customApiUrl&&(r.customApiUrl=decodeURIComponent(r.customApiUrl)),r.shareUrl&&(r.deeplink=r.shareUrl.replace(Mt,Ct)),r),L=r=>{if(!r)return;const e=Object.keys(r);for(const t of e){const s=r[t];if(!Array.isArray(s)&&typeof s=="object"&&s!==null&&L(s),Array.isArray(s))for(const n of s)L(n);(s==="true"||s==="false")&&(r[t]=s==="true")}},vt=(r,e)=>{e.configuratorId=r.id;const t=r.settings||{};return!e.overrideTenant&&r.tenant&&(e.overrideTenant=r.tenant),It(t,e)},Rt=()=>{const r={...At};r.locale||(r.locale=St()),r.id===bt&&delete r.id;const e=Dt();return e&&Tt(e)&&(r.configuratorId="demoConfigurator"),r.customApiUrl=wt.VITE_RAPI_URL,r.emails=!1,r},Mt="<CONF_ID>",Ct="#CONFIGURATIONID#",Lt=r=>{r.featureFlags||(r.featureFlags={}),typeof r.featureFlags.realPartList!="boolean"&&(r.featureFlags.realPartList=!0),typeof r.featureFlags.globalCallbacks!="boolean"&&(r.featureFlags.globalCallbacks=!0),typeof r.featureFlags.mocAr!="boolean"&&(r.featureFlags.mocAr=!1)},V=()=>/(android)/i.test(navigator.userAgent);class q{constructor(){c(this,"_messageHandler",null);c(this,"isSetupDone",!1);c(this,"viewName","main");c(this,"plugins",{});c(this,"pluginsLoaded",[]);c(this,"ui",{callbacks:null});c(this,"extended",{callbacks:null});c(this,"configurator",{callbacks:null});c(this,"analytics",{callbacks:{}});c(this,"global",{callbacks:{}})}setMessageHandler(e){this._messageHandler=e}handleSetup(e){const{methods:t,callbacks:s}=e;t.forEach(n=>{const i=n.split(p),o=i[0],a=i[1];this[o]||(this[o]={}),this[o][a]=(function(){if(!this._messageHandler){console.error("MessageHandler not set");return}return this._messageHandler.sendMessage(n,[...arguments])}).bind(this)}),s.forEach(n=>{const i=n.split(p),o=i[0],a=i[1],l=i[2];this[o]||(this[o]={}),this[o][a]||(this[o][a]={}),this[o][a][l]=()=>{}}),this.isSetupDone=!0}executeMessage({message:e,args:t}){const s=e.split(p),n=s[0],i=s[1],o=s.length===3?s[2]:null;if(o&&this[n][i][o]){const a=this[n][i][o](...t);return a instanceof Promise?a.then(l=>({result:l})):a!==void 0?Promise.resolve({result:a}):Promise.resolve({result:null})}return Promise.reject('Message "'+e+'" is unkown')}setupPlugins(e,t,s="website"){for(const n of e)typeof n=="string"&&n==="dragIn"?this.pluginsLoaded.push(new Promise((i,o)=>{try{Promise.resolve().then(()=>Pt).then(({DragIn:a})=>{const l=new a(this.ui,t,s,this.viewName);l.init().then(()=>{this.plugins.dragIn=l,i()},o)})}catch(a){o(a)}})):n.name&&n.loader&&this.pluginsLoaded.push(new Promise((i,o)=>{try{n.loader().then(a=>{const l=new a(this.ui,t,s,this.viewName);l.init().then(()=>{this.plugins[n.name]=l,i()},o)})}catch(a){o(a)}}))}}const K=()=>{let r,e;return{promise:new Promise((s,n)=>{r=s,e=n}),resolve:r,reject:e}},J=(r,e,t)=>{let s=null;Object.defineProperty(r,e,{get(){return s||t},set(n){n!=null&&n.mute?s=n.value:(console.warn("You override Roomle defined behaviour. To disalbe this warning pass in an object with the following properties"),console.warn("{ mute: true, value: () => void }"),s=n)}})},j=()=>window.innerHeight*.01+"px",Q=r=>{r&&setTimeout(()=>r.style.setProperty(N,j()),0)},Z="rml-styles",Nt=450,N="--rml-full-height",m={CONTAINER:"rml-container",FILL:"rml-fill",POSITION:"rml-pos",TRANSITION:"rml-transition",ANDROID_HEIGHT:"rml-android-height",OVERFLOW_HIDDEN:"rml-overflow-hidden"},x=new Map;class xt extends q{constructor(t,s,n,i,o){super();c(this,"_waitForIframe");c(this,"_container");c(this,"_configuratorSettings");c(this,"_initData",{});c(this,"_iframe");if(!t||typeof t.id!="string")throw new Error("Please provide a correct configuratorId, you get the correct ID from your Roomle Contact Person");if(x.has(s))throw new Error("There is already an instance on this DOM element");if(!!!document.getElementById(Z)){const h=n.zIndex||9999999,u=document.createElement("style");u.type="text/css",u.id=Z;const g="transition:all ease-in-out "+Nt+"ms;",f=["-webkit-","-o-"].reduce((D,y)=>D+=y+g,"")+g,S=j();u.innerHTML=`
|
|
2
2
|
.${m.CONTAINER}{${N}:${S};}
|
|
3
3
|
.${m.POSITION}{position:fixed;top:0;left:0;z-index:${h};opacity:0}
|
|
4
4
|
.${m.TRANSITION}{${f}}
|
|
5
5
|
.${m.FILL}{width:100%;height:100%;opacity:1}
|
|
6
6
|
.${m.ANDROID_HEIGHT}{height:calc(var(${N},1vh)*100)}
|
|
7
7
|
.${m.OVERFLOW_HIDDEN}{overflow:hidden}
|
|
8
|
-
`,document.head.appendChild(u)}this._executeMessage=this._executeMessage.bind(this);const l=new _("website",window,null,this._executeMessage);this.setMessageHandler(l),this._onResize=this._onResize.bind(this),V()&&window.addEventListener("resize",this._onResize),this._container=s,this._initData=n,this._configuratorSettings=t;const d=this._createIframe();this._onUseFullPage=this._onUseFullPage.bind(this),this._onBackToWebsite=this._onBackToWebsite.bind(this),this._waitForIframe=o,this._container.appendChild(d),this._iframe=d,this.setupPlugins(i,this._iframe),x.set(s,!0)}static createPlanner(t,s,n,i=[]){return this._create(t,s,n,i)}static async connect(t,s=[]){const n=new q;n.viewName=t;const{resolve:i,promise:o}=K(),{resolve:a,promise:l}=K(),d=({message:g,args:f})=>{switch(g){case w.REGISTER_CUSTOM_VIEW_DONE:i();break;case w.RETURN_METHODS:n.handleSetup(f[0]),a();break;default:if(n.isSetupDone)return n.executeMessage({message:g,args:f})}},h=new _("custom-view-"+t,window,window.parent,d);n.setMessageHandler(h);const u=[t];return h.sendMessage(w.REGISTER_CUSTOM_VIEW,u),await o,h.sendMessage(w.GET_METHODS,u),await l,n.setupPlugins(s,document.body,"custom-view"),await Promise.allSettled(n.pluginsLoaded),n}static createConfigurator(t,s,n,i=[]){return this._create(t,s,n,i)}static create(t,s,n,i){return this._create(t,s,n,i)}static createViewer(t,s,n,i=[]){return this._create(t,s,n,i)}static async _create(t,s,n,i){return new Promise(async(o,a)=>{try{const l=
|
|
8
|
+
`,document.head.appendChild(u)}this._executeMessage=this._executeMessage.bind(this);const l=new _("website",window,null,this._executeMessage);this.setMessageHandler(l),this._onResize=this._onResize.bind(this),V()&&window.addEventListener("resize",this._onResize),this._container=s,this._initData=n,this._configuratorSettings=t;const d=this._createIframe();this._onUseFullPage=this._onUseFullPage.bind(this),this._onBackToWebsite=this._onBackToWebsite.bind(this),this._waitForIframe=o,this._container.appendChild(d),this._iframe=d,this.setupPlugins(i,this._iframe),x.set(s,!0)}static createPlanner(t,s,n,i=[]){return this._create(t,s,n,i)}static async connect(t,s=[]){const n=new q;n.viewName=t;const{resolve:i,promise:o}=K(),{resolve:a,promise:l}=K(),d=({message:g,args:f})=>{switch(g){case w.REGISTER_CUSTOM_VIEW_DONE:i();break;case w.RETURN_METHODS:n.handleSetup(f[0]),a();break;default:if(n.isSetupDone)return n.executeMessage({message:g,args:f})}},h=new _("custom-view-"+t,window,window.parent,d);n.setMessageHandler(h);const u=[t];return h.sendMessage(w.REGISTER_CUSTOM_VIEW,u),await o,h.sendMessage(w.GET_METHODS,u),await l,n.setupPlugins(s,document.body,"custom-view"),await Promise.allSettled(n.pluginsLoaded),n}static createConfigurator(t,s,n,i=[]){return this._create(t,s,n,i)}static create(t,s,n,i){return this._create(t,s,n,i)}static createViewer(t,s,n,i=[]){return this._create(t,s,n,i)}static async _create(t,s,n,i){return new Promise(async(o,a)=>{try{const l=C(Rt(),Ot(n));Lt(l);const d=await pt(t,l);n=vt(d,l);const h=new this(d,s,n,i,o);return await Promise.allSettled(h.pluginsLoaded),h}catch(l){return a(l)}})}teardown(){this._container&&x.delete(this._container);const t=this._container.querySelector("iframe");t&&this._container.removeChild(t),window.removeEventListener("resize",this._onResize)}_createIframe(){var n;const t=document.createElement("iframe");let s=((n=this._configuratorSettings)==null?void 0:n.url)||"https://www.roomle.com/t/cp/";return this._initData.useLocalRoomle&&(s=location.href.replace("embedding.html","")),location.href.includes("roomle.gitlab.io")&&(s=location.href.replace("embedding.html","index.html")),this._initData.overrideServerUrl&&(s=this._initData.overrideServerUrl),t.src=s,t.classList.add(m.CONTAINER),t.classList.add(m.FILL),t}_onResize(){Q(this._iframe)}_onUseFullPage(){this._iframe.classList.add(m.POSITION),document.documentElement.classList.add(m.OVERFLOW_HIDDEN),window.document.body.classList.add(m.OVERFLOW_HIDDEN),V()&&(Q(this._iframe),this._iframe.classList.add(m.ANDROID_HEIGHT))}_onBackToWebsite(){this._iframe.classList.remove(m.POSITION),this._iframe.classList.remove(m.ANDROID_HEIGHT),document.documentElement.classList.remove(m.OVERFLOW_HIDDEN),window.document.body.classList.remove(m.OVERFLOW_HIDDEN)}_executeMessage({message:t,args:s},n){var i;if(n.source&&n.source===((i=this._iframe)==null?void 0:i.contentWindow))return t===E.REQUEST_BOOT?this._messageHandler?(this._messageHandler.setOutgoingMessageBus(n.source),Promise.resolve({result:this._initData})):(console.error("MessageHandler not set"),Promise.resolve({error:"MessageHandler not set"})):t===E.SETUP?(this.handleSetup(s[0]),J(this.ui.callbacks,"onUseFullPage",this._onUseFullPage),J(this.ui.callbacks,"onBackToWebsite",this._onBackToWebsite),this._waitForIframe(this),setTimeout(()=>{if(!this._messageHandler){console.error("MessageHandler not set");return}this._messageHandler.sendMessage(E.WEBSITE_READY)},0),Promise.resolve({result:null})):this.executeMessage({message:t,args:s})}}class Gt{constructor(e,t,s,n){c(this,"_mainDomElement");c(this,"_instance");c(this,"_mode","website");c(this,"_viewName","main");this._instance=e,this._mainDomElement=t,this._mode=s,this._viewName=n}async init(){return Promise.resolve()}}const A="rml-drag-in-styles",b="rml-drag-in-drag-element",O="rml-drag-in-overlay",v="rml-drag-in-drag-ghost",tt="rml-drag-in-fade-in",et="rml-drag-in-fade-out",G={DISPLAY_NONE:"rml-display-none"},st=.5,rt="250ms",nt="forwards",it=`@keyframes ${tt} {from{opacity: 0;}to {opacity: ${st};}}`,ot=`@keyframes ${et} {from{opacity: ${st};}to {opacity: 0;}}`,at=`${tt} ${rt} ${nt}`,ct=`${et} ${rt} ${nt}`,R="https://res.cloudinary.com/roomle/image/upload/v1729679975/fallback_afpyqr.jpg",F=112,P=112;class Ft extends Gt{constructor(t,s,n,i){super(t,s,n,i);c(this,"options",{});c(this,"_customDragSignal",new AbortController);this._mainDomElement=s,this._injectStyles(),this._initializeDragGhost()}_injectStyles(){if(!!!document.getElementById(A)){const s=document.createElement("style");s.type="text/css",s.id=A,s.innerHTML=`
|
|
9
9
|
.${G.DISPLAY_NONE}{display:none}
|
|
10
10
|
.${O}{position:absolute;top:0;left:0;width:100%;height:100%;z-index:999;}
|
|
11
11
|
.${v}{position:absolute;top:0;left:0;width:1px;height:1px;z-index:999;pointer-events:none;background-color:transparent;}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(p,D){typeof exports=="object"&&typeof module<"u"?module.exports=D():typeof define=="function"&&define.amd?define(D):(p=typeof globalThis<"u"?globalThis:p||self,p["roomle-embedding-lib"]=p["roomle-embedding-lib"]||{},p["roomle-embedding-lib"].umd=p["roomle-embedding-lib"].umd||{},p["roomle-embedding-lib"].umd.min=p["roomle-embedding-lib"].umd.min||{},p["roomle-embedding-lib"].umd.min.js=D())})(this,function(){"use strict";var p=Object.defineProperty,D=(i,t,e)=>t in i?p(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,h=(i,t,e)=>D(i,typeof t!="symbol"?t+"":t,e);class ${constructor(t,e,s,n){h(this,"_side"),h(this,"_incomingMessageBus",null),h(this,"_outgoingMessageBus",null),h(this,"_execMessage",null),this._side=t,this._incomingMessageBus=e,this._outgoingMessageBus=s,this._execMessage=n,this._incomingMessageBus&&this._incomingMessageBus.addEventListener("message",this._handleMessage.bind(this))}setOutgoingMessageBus(t){this._outgoingMessageBus=t}setMessageExecution(t){this._execMessage=t}sendMessage(t,e=[]){return new Promise((s,n)=>{if(this._incomingMessageBus===this._outgoingMessageBus)return s(void 0);const r=new MessageChannel;r.port1.onmessage=a=>{if(!a||!a.data)return r.port1.close(),r.port2.close(),n(new Error(this._side+" received message but response can not be interpreted"));let c;try{c=JSON.parse(a.data)}catch(l){return r.port1.close(),r.port2.close(),this._prepareError(l),n(l)}c.error?n(c.error):c.result!==void 0?s(c.result):s(void 0),r.port1.close(),r.port2.close()};let o="";try{o=JSON.stringify({message:t,args:e})}catch{return n(new Error(this._side+": can not create command because it is not JSON.stringify able"))}if(!this._outgoingMessageBus)return n(new Error(this._side+": outgoing bus not set yet"));this._outgoingMessageBus.postMessage(o,"*",[r.port2])})}_handleMessage(t){const e=t.ports&&Array.isArray(t.ports)&&t.ports.length>0?t.ports[0]:null;if(t.data&&e)try{const s=JSON.parse(t.data);if(!this._execMessage)return e.postMessage(JSON.stringify({error:this._side+" is not ready to handle messages"}));Array.isArray(s.args)||(s.args=[s.args]);const n=this._execMessage(s,t);if(n===void 0)return;n.then((r={})=>{let o,a;typeof r=="object"&&r!==null&&(o=r.error,a=r.result),o?e.postMessage(JSON.stringify({error:o})):a!==void 0?e.postMessage(JSON.stringify({result:a})):e.postMessage(JSON.stringify({result:r}))},r=>{e.postMessage(JSON.stringify({error:this._prepareError(r)}))})}catch(s){e.postMessage(JSON.stringify({error:this._prepareError(s)}))}}_prepareError(t){if(typeof t=="string"){const e=this._side+": "+t;return console.error(e),e}return t.message=this._side+": "+t.message,console.error(t),t.message}}const C=".",N={REQUEST_BOOT:"requestBoot",SETUP:"setup",WEBSITE_READY:"websiteReady"},E={GET_METHODS:"getMethods",RETURN_METHODS:"returnMethods",REGISTER_CUSTOM_VIEW:"registerCustomView",REGISTER_CUSTOM_VIEW_DONE:"registerCustomViewDone"},yt=async(i,t)=>{if(typeof i!="string")throw new Error('Configurator ID is not a string type: "'+typeof i+'"');const e=t.customApiUrl?t.customApiUrl:"https://api.roomle.com/v2",s=t.overrideTenant||9,n=e+"/configurators/"+i,r="roomle_portal_v2",o="03-"+window.btoa(new Date().toISOString()+";anonymous;"+r),a=()=>{const u={apiKey:r,currentTenant:s,locale:"en",language:"en",device:1,token:o,platform:"web"};return new Headers(u)},c=new Request(n,{method:"GET",headers:a(),mode:"cors",cache:"default"}),l=await fetch(c),{configurator:d}=await l.json();return d},vt=()=>{try{return window.self!==window.top}catch{return!0}},Dt=["127.0.0.1","localhost","0.0.0.0"],bt=()=>{const i=vt();let t=window.location.href;if(i){if(!document.referrer)return null;t=document.referrer}const{hostname:e}=new URL(t);return e},wt=i=>!!(Dt.includes(i)||i.endsWith("roomle.com")||i.endsWith("gitlab.io")||i.endsWith("gitlab.com")),j=["language","browserLanguage","userLanguage","systemLanguage"],Et=(i=null)=>{const t=window.navigator;if(i)return i.substr(0,2);if(Array.isArray(t.languages)&&t.languages.length>0)return t.languages[0].substr(0,2);for(let e=0,s=j.length;e<s;e++){const n=t[j[e]];if(n)return n.substr(0,2)}return"en"},Tt=(i,t)=>{const e=JSON.parse(JSON.stringify(i));return A(e,t)},A=(i,t)=>{for(const e in t)try{t[e].constructor===Object?i[e]=A(i[e],t[e]):i[e]=t[e]}catch{i[e]=t[e]}return i};var z=(i=>(i.BOTTOM_BAR="bottom_bar",i.PARTLIST_BOUNDS="partlist_bounds",i.INTERACTION_NOTES="interaction_notes",i))(z||{}),It={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};const St={mobileLandscape:!0,floorMaterialRootTag:"materials_root",buttons:{renderimage:!0,requestproduct:!0,requestplan:!0,load_product:!0,partlist_print:!0},elements:{[z.INTERACTION_NOTES]:!0},helpcenter:{roomdesigner:!0,configurator:!1,disable:!1},firstPersonView:!0,saveToIdb:!0,featureFlags:{mocAr:!0,wallAutoHeight:!1},rotationSnapDegrees:10},Ot="(idle)",xt=i=>(L(i),i!=null&&i.customApiUrl&&(i.customApiUrl=decodeURIComponent(i.customApiUrl)),i.shareUrl&&(i.deeplink=i.shareUrl.replace(Nt,At)),i),L=i=>{if(!i)return;const t=Object.keys(i);for(const e of t){const s=i[e];if(!Array.isArray(s)&&typeof s=="object"&&s!==null&&L(s),Array.isArray(s))for(const n of s)L(n);(s==="true"||s==="false")&&(i[e]=s==="true")}},Mt=(i,t)=>{t.configuratorId=i.id;const e=i.settings||{};return!t.overrideTenant&&i.tenant&&(t.overrideTenant=i.tenant),Tt(e,t)},Ct=()=>{const i={...St};i.locale||(i.locale=Et()),i.id===Ot&&delete i.id;const t=bt();return t&&wt(t)&&(i.configuratorId="demoConfigurator"),i.customApiUrl=It.VITE_RAPI_URL,i.emails=!1,i},Nt="<CONF_ID>",At="#CONFIGURATIONID#",Lt=i=>{i.featureFlags||(i.featureFlags={}),typeof i.featureFlags.realPartList!="boolean"&&(i.featureFlags.realPartList=!0),typeof i.featureFlags.globalCallbacks!="boolean"&&(i.featureFlags.globalCallbacks=!0),typeof i.featureFlags.mocAr!="boolean"&&(i.featureFlags.mocAr=!1)},V=()=>/(android)/i.test(navigator.userAgent);class q{constructor(){h(this,"_messageHandler",null),h(this,"isSetupDone",!1),h(this,"viewName","main"),h(this,"plugins",{}),h(this,"pluginsLoaded",[]),h(this,"ui",{callbacks:null}),h(this,"extended",{callbacks:null}),h(this,"configurator",{callbacks:null}),h(this,"analytics",{callbacks:{}}),h(this,"global",{callbacks:{}})}setMessageHandler(t){this._messageHandler=t}handleSetup(t){const{methods:e,callbacks:s}=t;e.forEach(n=>{const r=n.split(C),o=r[0],a=r[1];this[o]||(this[o]={}),this[o][a]=function(){if(!this._messageHandler){console.error("MessageHandler not set");return}return this._messageHandler.sendMessage(n,[...arguments])}.bind(this)}),s.forEach(n=>{const r=n.split(C),o=r[0],a=r[1],c=r[2];this[o]||(this[o]={}),this[o][a]||(this[o][a]={}),this[o][a][c]=()=>{}}),this.isSetupDone=!0}executeMessage({message:t,args:e}){const s=t.split(C),n=s[0],r=s[1],o=s.length===3?s[2]:null;if(o&&this[n][r][o]){const a=this[n][r][o](...e);return a instanceof Promise?a.then(c=>({result:c})):a!==void 0?Promise.resolve({result:a}):Promise.resolve({result:null})}return Promise.reject('Message "'+t+'" is unkown')}setupPlugins(t,e,s="website"){for(const n of t)typeof n=="string"&&n==="dragIn"?this.pluginsLoaded.push(new Promise((r,o)=>{try{Promise.resolve().then(()=>Ut).then(({DragIn:a})=>{const c=new a(this.ui,e,s,this.viewName);c.init().then(()=>{this.plugins.dragIn=c,r()},o)})}catch(a){o(a)}})):n.name&&n.loader&&this.pluginsLoaded.push(new Promise((r,o)=>{try{n.loader().then(a=>{const c=new a(this.ui,e,s,this.viewName);c.init().then(()=>{this.plugins[n.name]=c,r()},o)})}catch(a){o(a)}}))}}const J=()=>{let i,t;return{promise:new Promise((e,s)=>{i=e,t=s}),resolve:i,reject:t}},K=(i,t,e)=>{let s=null;Object.defineProperty(i,t,{get(){return s||e},set(n){n!=null&&n.mute?s=n.value:(console.warn("You override Roomle defined behaviour. To disalbe this warning pass in an object with the following properties"),console.warn("{ mute: true, value: () => void }"),s=n)}})},Q=()=>window.innerHeight*.01+"px",Z=i=>{i&&setTimeout(()=>i.style.setProperty(R,Q()),0)},tt="rml-styles",Rt=450,R="--rml-full-height",m={CONTAINER:"rml-container",FILL:"rml-fill",POSITION:"rml-pos",TRANSITION:"rml-transition",ANDROID_HEIGHT:"rml-android-height",OVERFLOW_HIDDEN:"rml-overflow-hidden"},P=new Map;class Pt extends q{constructor(t,e,s,n,r){if(super(),h(this,"_waitForIframe"),h(this,"_container"),h(this,"_configuratorSettings"),h(this,"_initData",{}),h(this,"_iframe"),!t||typeof t.id!="string")throw new Error("Please provide a correct configuratorId, you get the correct ID from your Roomle Contact Person");if(P.has(e))throw new Error("There is already an instance on this DOM element");if(!document.getElementById(tt)){const c=s.zIndex||9999999,l=document.createElement("style");l.type="text/css",l.id=tt;const d="transition:all ease-in-out "+Rt+"ms;",u=["-webkit-","-o-"].reduce((_,y)=>_+=y+d,"")+d,g=Q();l.innerHTML=`
|
|
1
|
+
(function(p,D){typeof exports=="object"&&typeof module<"u"?module.exports=D():typeof define=="function"&&define.amd?define(D):(p=typeof globalThis<"u"?globalThis:p||self,p["roomle-embedding-lib"]=p["roomle-embedding-lib"]||{},p["roomle-embedding-lib"].umd=p["roomle-embedding-lib"].umd||{},p["roomle-embedding-lib"].umd.min=p["roomle-embedding-lib"].umd.min||{},p["roomle-embedding-lib"].umd.min.js=D())})(this,function(){"use strict";var p=Object.defineProperty,D=(i,t,e)=>t in i?p(i,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[t]=e,h=(i,t,e)=>D(i,typeof t!="symbol"?t+"":t,e);class ${constructor(t,e,s,n){h(this,"_side"),h(this,"_incomingMessageBus",null),h(this,"_outgoingMessageBus",null),h(this,"_execMessage",null),this._side=t,this._incomingMessageBus=e,this._outgoingMessageBus=s,this._execMessage=n,this._incomingMessageBus&&this._incomingMessageBus.addEventListener("message",this._handleMessage.bind(this))}setOutgoingMessageBus(t){this._outgoingMessageBus=t}setMessageExecution(t){this._execMessage=t}sendMessage(t,e=[]){return new Promise((s,n)=>{if(this._incomingMessageBus===this._outgoingMessageBus)return s(void 0);const r=new MessageChannel;r.port1.onmessage=a=>{if(!a||!a.data)return r.port1.close(),r.port2.close(),n(new Error(this._side+" received message but response can not be interpreted"));let c;try{c=JSON.parse(a.data)}catch(l){return r.port1.close(),r.port2.close(),this._prepareError(l),n(l)}c.error?n(c.error):c.result!==void 0?s(c.result):s(void 0),r.port1.close(),r.port2.close()};let o="";try{o=JSON.stringify({message:t,args:e})}catch{return n(new Error(this._side+": can not create command because it is not JSON.stringify able"))}if(!this._outgoingMessageBus)return n(new Error(this._side+": outgoing bus not set yet"));this._outgoingMessageBus.postMessage(o,"*",[r.port2])})}_handleMessage(t){const e=t.ports&&Array.isArray(t.ports)&&t.ports.length>0?t.ports[0]:null;if(t.data&&e)try{const s=JSON.parse(t.data);if(!this._execMessage)return e.postMessage(JSON.stringify({error:this._side+" is not ready to handle messages"}));Array.isArray(s.args)||(s.args=[s.args]);const n=this._execMessage(s,t);if(n===void 0)return;n.then((r={})=>{let o,a;typeof r=="object"&&r!==null&&(o=r.error,a=r.result),o?e.postMessage(JSON.stringify({error:o})):a!==void 0?e.postMessage(JSON.stringify({result:a})):e.postMessage(JSON.stringify({result:r}))},r=>{e.postMessage(JSON.stringify({error:this._prepareError(r)}))})}catch(s){e.postMessage(JSON.stringify({error:this._prepareError(s)}))}}_prepareError(t){if(typeof t=="string"){const e=this._side+": "+t;return console.error(e),e}return t.message=this._side+": "+t.message,console.error(t),t.message}}const C=".",N={REQUEST_BOOT:"requestBoot",SETUP:"setup",WEBSITE_READY:"websiteReady"},E={GET_METHODS:"getMethods",RETURN_METHODS:"returnMethods",REGISTER_CUSTOM_VIEW:"registerCustomView",REGISTER_CUSTOM_VIEW_DONE:"registerCustomViewDone"},yt=async(i,t)=>{if(typeof i!="string")throw new Error('Configurator ID is not a string type: "'+typeof i+'"');const e=t.customApiUrl?t.customApiUrl:"https://api.roomle.com/v2",s=t.overrideTenant||9,n=e+"/configurators/"+i,r="roomle_portal_v2",o="03-"+window.btoa(new Date().toISOString()+";anonymous;"+r),a=()=>{const u={apiKey:r,currentTenant:s,locale:"en",language:"en",device:1,token:o,platform:"web"};return new Headers(u)},c=new Request(n,{method:"GET",headers:a(),mode:"cors",cache:"default"}),l=await fetch(c),{configurator:d}=await l.json();return d},vt=()=>{try{return window.self!==window.top}catch{return!0}},Dt=["127.0.0.1","localhost","0.0.0.0"],bt=()=>{const i=vt();let t=window.location.href;if(i){if(!document.referrer)return null;t=document.referrer}const{hostname:e}=new URL(t);return e},wt=i=>!!(Dt.includes(i)||i.endsWith("roomle.com")||i.endsWith("gitlab.io")||i.endsWith("gitlab.com")),j=["language","browserLanguage","userLanguage","systemLanguage"],Et=(i=null)=>{const t=window.navigator;if(i)return i.substr(0,2);if(Array.isArray(t.languages)&&t.languages.length>0)return t.languages[0].substr(0,2);for(let e=0,s=j.length;e<s;e++){const n=t[j[e]];if(n)return n.substr(0,2)}return"en"},Tt=(i,t)=>{const e=JSON.parse(JSON.stringify(i));return A(e,t)},A=(i,t)=>{for(const e in t)try{t[e].constructor===Object?i[e]=A(i[e],t[e]):i[e]=t[e]}catch{i[e]=t[e]}return i};var z=(i=>(i.BOTTOM_BAR="bottom_bar",i.PARTLIST_BOUNDS="partlist_bounds",i.INTERACTION_NOTES="interaction_notes",i))(z||{}),It={BASE_URL:"/",DEV:!1,MODE:"production",PROD:!0,SSR:!1};const St={mobileLandscape:!0,floorMaterialRootTag:"materials_root",buttons:{renderimage:!0,requestproduct:!0,requestplan:!0,load_product:!0,partlist_print:!0},elements:{[z.INTERACTION_NOTES]:!0},helpcenter:{roomdesigner:!0,configurator:!1,disable:!1},firstPersonView:!0,saveToIdb:!0,featureFlags:{mocAr:!0,wallAutoHeight:!1},rotationSnapDegrees:10,interactionsCollapsed:!1},Ot="(idle)",xt=i=>(L(i),i!=null&&i.customApiUrl&&(i.customApiUrl=decodeURIComponent(i.customApiUrl)),i.shareUrl&&(i.deeplink=i.shareUrl.replace(Nt,At)),i),L=i=>{if(!i)return;const t=Object.keys(i);for(const e of t){const s=i[e];if(!Array.isArray(s)&&typeof s=="object"&&s!==null&&L(s),Array.isArray(s))for(const n of s)L(n);(s==="true"||s==="false")&&(i[e]=s==="true")}},Mt=(i,t)=>{t.configuratorId=i.id;const e=i.settings||{};return!t.overrideTenant&&i.tenant&&(t.overrideTenant=i.tenant),Tt(e,t)},Ct=()=>{const i={...St};i.locale||(i.locale=Et()),i.id===Ot&&delete i.id;const t=bt();return t&&wt(t)&&(i.configuratorId="demoConfigurator"),i.customApiUrl=It.VITE_RAPI_URL,i.emails=!1,i},Nt="<CONF_ID>",At="#CONFIGURATIONID#",Lt=i=>{i.featureFlags||(i.featureFlags={}),typeof i.featureFlags.realPartList!="boolean"&&(i.featureFlags.realPartList=!0),typeof i.featureFlags.globalCallbacks!="boolean"&&(i.featureFlags.globalCallbacks=!0),typeof i.featureFlags.mocAr!="boolean"&&(i.featureFlags.mocAr=!1)},V=()=>/(android)/i.test(navigator.userAgent);class q{constructor(){h(this,"_messageHandler",null),h(this,"isSetupDone",!1),h(this,"viewName","main"),h(this,"plugins",{}),h(this,"pluginsLoaded",[]),h(this,"ui",{callbacks:null}),h(this,"extended",{callbacks:null}),h(this,"configurator",{callbacks:null}),h(this,"analytics",{callbacks:{}}),h(this,"global",{callbacks:{}})}setMessageHandler(t){this._messageHandler=t}handleSetup(t){const{methods:e,callbacks:s}=t;e.forEach(n=>{const r=n.split(C),o=r[0],a=r[1];this[o]||(this[o]={}),this[o][a]=function(){if(!this._messageHandler){console.error("MessageHandler not set");return}return this._messageHandler.sendMessage(n,[...arguments])}.bind(this)}),s.forEach(n=>{const r=n.split(C),o=r[0],a=r[1],c=r[2];this[o]||(this[o]={}),this[o][a]||(this[o][a]={}),this[o][a][c]=()=>{}}),this.isSetupDone=!0}executeMessage({message:t,args:e}){const s=t.split(C),n=s[0],r=s[1],o=s.length===3?s[2]:null;if(o&&this[n][r][o]){const a=this[n][r][o](...e);return a instanceof Promise?a.then(c=>({result:c})):a!==void 0?Promise.resolve({result:a}):Promise.resolve({result:null})}return Promise.reject('Message "'+t+'" is unkown')}setupPlugins(t,e,s="website"){for(const n of t)typeof n=="string"&&n==="dragIn"?this.pluginsLoaded.push(new Promise((r,o)=>{try{Promise.resolve().then(()=>Ut).then(({DragIn:a})=>{const c=new a(this.ui,e,s,this.viewName);c.init().then(()=>{this.plugins.dragIn=c,r()},o)})}catch(a){o(a)}})):n.name&&n.loader&&this.pluginsLoaded.push(new Promise((r,o)=>{try{n.loader().then(a=>{const c=new a(this.ui,e,s,this.viewName);c.init().then(()=>{this.plugins[n.name]=c,r()},o)})}catch(a){o(a)}}))}}const J=()=>{let i,t;return{promise:new Promise((e,s)=>{i=e,t=s}),resolve:i,reject:t}},K=(i,t,e)=>{let s=null;Object.defineProperty(i,t,{get(){return s||e},set(n){n!=null&&n.mute?s=n.value:(console.warn("You override Roomle defined behaviour. To disalbe this warning pass in an object with the following properties"),console.warn("{ mute: true, value: () => void }"),s=n)}})},Q=()=>window.innerHeight*.01+"px",Z=i=>{i&&setTimeout(()=>i.style.setProperty(R,Q()),0)},tt="rml-styles",Rt=450,R="--rml-full-height",m={CONTAINER:"rml-container",FILL:"rml-fill",POSITION:"rml-pos",TRANSITION:"rml-transition",ANDROID_HEIGHT:"rml-android-height",OVERFLOW_HIDDEN:"rml-overflow-hidden"},P=new Map;class Pt extends q{constructor(t,e,s,n,r){if(super(),h(this,"_waitForIframe"),h(this,"_container"),h(this,"_configuratorSettings"),h(this,"_initData",{}),h(this,"_iframe"),!t||typeof t.id!="string")throw new Error("Please provide a correct configuratorId, you get the correct ID from your Roomle Contact Person");if(P.has(e))throw new Error("There is already an instance on this DOM element");if(!document.getElementById(tt)){const c=s.zIndex||9999999,l=document.createElement("style");l.type="text/css",l.id=tt;const d="transition:all ease-in-out "+Rt+"ms;",u=["-webkit-","-o-"].reduce((_,y)=>_+=y+d,"")+d,g=Q();l.innerHTML=`
|
|
2
2
|
.${m.CONTAINER}{${R}:${g};}
|
|
3
3
|
.${m.POSITION}{position:fixed;top:0;left:0;z-index:${c};opacity:0}
|
|
4
4
|
.${m.TRANSITION}{${u}}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { SharedUiState } from '../store';
|
|
2
|
+
|
|
1
3
|
declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
2
4
|
rise: BooleanConstructor;
|
|
3
5
|
}>, {}, {}, {
|
|
4
|
-
|
|
6
|
+
sharedUiState(): SharedUiState;
|
|
7
|
+
isExpanded(): boolean;
|
|
5
8
|
}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
6
9
|
rise: BooleanConstructor;
|
|
7
10
|
}>> & Readonly<{}>, {
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import { SceneSelection } from '../../configurator/store/ui-state';
|
|
2
|
+
import { Nullable } from '../utils/types';
|
|
3
|
+
|
|
4
|
+
export declare const isExternalModuleSelection: (currentSelection: Nullable<SceneSelection>) => boolean;
|
|
5
|
+
export declare const isDeletePossible: (currentSelection: Nullable<SceneSelection>) => boolean;
|
|
1
6
|
export declare const useConfiguratorActionsVisibility: () => {
|
|
2
7
|
showStartConfiguring: import('vue').ComputedRef<boolean>;
|
|
3
8
|
showDelete: import('vue').ComputedRef<any>;
|
|
@@ -34,6 +34,7 @@ export declare const useSharedSidebarSetup: (topBar: Ref<HTMLElement> | null) =>
|
|
|
34
34
|
tooltip: string;
|
|
35
35
|
}[];
|
|
36
36
|
checkboxToggle: Ref<HTMLInputElement, HTMLInputElement>;
|
|
37
|
+
isLandscape: import('vue').ComputedRef<any>;
|
|
37
38
|
currentViewMode: import('vue').ComputedRef<any>;
|
|
38
39
|
isPartlistShown: import('vue').ComputedRef<any>;
|
|
39
40
|
areDimensionsVisible: import('vue').ComputedRef<any>;
|
|
@@ -2,8 +2,7 @@ import { TranslationSource } from '../composables/use-intl';
|
|
|
2
2
|
|
|
3
3
|
export default class LocalTranslationSource implements TranslationSource {
|
|
4
4
|
private _locale;
|
|
5
|
-
private _overrideTranslation
|
|
5
|
+
private _overrideTranslation?;
|
|
6
6
|
constructor(locale: string, overrideTranslation?: any);
|
|
7
7
|
getTranslations(): Promise<any>;
|
|
8
|
-
private _getFallbackTranslations;
|
|
9
8
|
}
|
|
@@ -122,6 +122,7 @@ export declare class SdkConnector {
|
|
|
122
122
|
initConfigurator(): Promise<void>;
|
|
123
123
|
getTenant(): Promise<import('@roomle/web-sdk/lib/definitions/typings/rapi-types').RapiTenant>;
|
|
124
124
|
saveCurrentConfiguration(): Promise<RapiConfigurationEnhanced>;
|
|
125
|
+
saveCurrentPlanOrConfiguration(): Promise<RapiConfigurationEnhanced | RapiPlanSnapshotGetData>;
|
|
125
126
|
giveGaConsent(): void;
|
|
126
127
|
get hasPlanner(): boolean;
|
|
127
128
|
saveCurrentObject(): Promise<RapiPlan | RapiPlanSnapshotGetData | RapiConfigurationEnhanced>;
|
|
@@ -14,7 +14,7 @@ import { SelectionPayload } from '@roomle/web-sdk/lib/definitions/planner-core/s
|
|
|
14
14
|
|
|
15
15
|
export declare const startConfiguring: (store: Store<StoreState>, exposedCallbacks: ExposedCallbacks) => void;
|
|
16
16
|
export declare const resetCollectionViewStates: (store: Store<StoreState>) => void;
|
|
17
|
-
export declare const stopConfiguring: (store: Store<StoreState>, sdkConnector: SdkConnector, embeddingCallbacks
|
|
17
|
+
export declare const stopConfiguring: (store: Store<StoreState>, sdkConnector: SdkConnector, embeddingCallbacks?: ExposedCallbacks) => Promise<void>;
|
|
18
18
|
export declare const triggerRequestProduct: (embeddingCallbacks: ExposedCallbacks, sdkConnector: SdkConnector, store: Store<StoreState>, analytics: Analytics) => Promise<void>;
|
|
19
19
|
export declare const sendSaveDraft: (sdkConnector: SdkConnector, store: Store<StoreState>, currentConfiguration: RapiConfigurationEnhanced | Nullable<RapiPlanSnapshotGetData | RapiPlan>) => Promise<import('@roomle/web-sdk/lib/definitions/typings/rapi-types').RapiJson>;
|
|
20
20
|
export declare function handleSave(embeddingCallbacks: ExposedCallbacks, sdkConnector: SdkConnector, store: Store<StoreState>, analytics: Analytics, email?: string): Promise<SaveDraft>;
|
|
@@ -65,6 +65,16 @@ interface UiFeatureFlags extends FeatureFlags {
|
|
|
65
65
|
globalCallbacks?: boolean;
|
|
66
66
|
mocAr?: boolean;
|
|
67
67
|
wallAutoHeight?: boolean;
|
|
68
|
+
/**
|
|
69
|
+
* @hidden
|
|
70
|
+
* @description ...
|
|
71
|
+
*/
|
|
72
|
+
imosix?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* @hidden
|
|
75
|
+
* @description ...
|
|
76
|
+
*/
|
|
77
|
+
prodmanager?: boolean;
|
|
68
78
|
}
|
|
69
79
|
export interface VariantsMap {
|
|
70
80
|
[key: string]: RapiId;
|
|
@@ -409,8 +419,10 @@ export interface UiInitData extends InitDataDefinition, GlobalInitDataDefinition
|
|
|
409
419
|
/**
|
|
410
420
|
* @description when the configurator/Room Designer is embedded into a too small space we start it in view
|
|
411
421
|
* only mode, then the user has to click the "start" button and the configurator/Room Designer expands over
|
|
412
|
-
* the whole window. This is great for UX but it's not always ideal in every use case. Therefore you can
|
|
413
|
-
*
|
|
422
|
+
* the whole window. This is great for UX, but it's not always ideal in every use case. Therefore, you can
|
|
423
|
+
* force either behaviour by setting autoStart to true or false.
|
|
424
|
+
*
|
|
425
|
+
* default: true if screen with is bigger than 1024px otherwise false
|
|
414
426
|
*/
|
|
415
427
|
autoStart?: boolean;
|
|
416
428
|
/**
|
|
@@ -422,6 +434,12 @@ export interface UiInitData extends InitDataDefinition, GlobalInitDataDefinition
|
|
|
422
434
|
* @description For use with planner only, if set to true the room will be shown while configuring a configurable object.
|
|
423
435
|
*/
|
|
424
436
|
configureInRoom?: boolean;
|
|
437
|
+
/**
|
|
438
|
+
* @internal
|
|
439
|
+
* @description Keeps the interaction container collapsed.
|
|
440
|
+
* This is only used if the room designer is embedded in the technical configurator. (BO PoC 2)
|
|
441
|
+
*/
|
|
442
|
+
interactionsCollapsed?: boolean;
|
|
425
443
|
/**
|
|
426
444
|
* @description define when you want to show the search bar, currently we hide the search bar until there are more than 10 elements.
|
|
427
445
|
* since it is a query param the value is a string. Please only provide a string that can be parseInt(x,10) otherwise it will be
|
|
@@ -6,12 +6,13 @@ import { RoomleSdkWrapper } from '../../configurator/business-logic/roomle-sdk-w
|
|
|
6
6
|
import { UiInitData } from '../../configurator/embedding/types';
|
|
7
7
|
import { default as RoomlePlanner } from '@roomle/web-sdk/lib/definitions/planner-core/src/roomle-planner';
|
|
8
8
|
import { PLAN_ELEMENT_CHANGE_TYPES, SelectionPayload } from '@roomle/web-sdk/lib/definitions/planner-core/src/roomle-planner-ui-callback';
|
|
9
|
-
import { RapiId, RapiPlan, RapiPlanSnapshotGetData } from '@roomle/web-sdk/lib/definitions/typings/rapi-types';
|
|
9
|
+
import { RapiConfigurationEnhanced, RapiId, RapiPlan, RapiPlanSnapshotGetData } from '@roomle/web-sdk/lib/definitions/typings/rapi-types';
|
|
10
10
|
import { CancelSelectionReasons } from '@roomle/web-sdk/lib/definitions/typings/planner';
|
|
11
11
|
import { Connector } from '../../common/business-logic/connector';
|
|
12
12
|
import { default as PlanElementViewModel } from '@roomle/web-sdk/lib/definitions/common-core/src/view-model/plan-element-view-model';
|
|
13
13
|
import { RuntimeId } from '@roomle/web-sdk/lib/definitions/typings/kernel';
|
|
14
14
|
import { default as EventEmitter } from '../../common/business-logic/event-emitter';
|
|
15
|
+
import { SdkConnector } from '../../configurator/business-logic/sdk-connector';
|
|
15
16
|
|
|
16
17
|
export declare const getConstructionWallAngle: (selectionElement: Nullable<PlanElementViewModel>) => Nullable<number>;
|
|
17
18
|
export declare class SdkConnectorPlanner extends Connector {
|
|
@@ -22,10 +23,13 @@ export declare class SdkConnectorPlanner extends Connector {
|
|
|
22
23
|
private _analytics;
|
|
23
24
|
private _eventEmitter;
|
|
24
25
|
private _lastPlanId;
|
|
26
|
+
private _lastPlanWithSingleObjectId;
|
|
25
27
|
private _currentPlan;
|
|
28
|
+
private _currentPlanWithSingleObject;
|
|
26
29
|
private _loadedLocalPlan;
|
|
27
30
|
private _initData;
|
|
28
|
-
|
|
31
|
+
private _sdkConnector;
|
|
32
|
+
constructor(store: Store<StoreState>, analytics?: Nullable<Analytics>, eventEmitter?: Nullable<EventEmitter>, sdkConnector?: Nullable<SdkConnector>);
|
|
29
33
|
get api(): Promise<RoomlePlanner>;
|
|
30
34
|
init(sdkWrapper: RoomleSdkWrapper, element: HTMLElement, initData: UiInitData): Promise<void>;
|
|
31
35
|
initPlanner(planner: RoomlePlanner): Promise<void>;
|
|
@@ -36,6 +40,7 @@ export declare class SdkConnectorPlanner extends Connector {
|
|
|
36
40
|
onSelectionCancel(reason: CancelSelectionReasons): Promise<void>;
|
|
37
41
|
private _checkForVisibleDrawer;
|
|
38
42
|
saveCurrentPlan(): Promise<Nullable<RapiPlanSnapshotGetData | RapiPlan>>;
|
|
43
|
+
saveCurrentConfigurationInPlanSnapshot(configuration: RapiConfigurationEnhanced): Promise<Nullable<RapiPlanSnapshotGetData | RapiPlan>>;
|
|
39
44
|
private _disableWallDrawingState;
|
|
40
45
|
private _enableWallDrawingState;
|
|
41
46
|
switch2D(): Promise<void>;
|
|
@@ -62,6 +67,7 @@ export declare class SdkConnectorPlanner extends Connector {
|
|
|
62
67
|
private _setSidebarViewNameState;
|
|
63
68
|
preparePartListData(selectedItemPayload: SelectionPayload): Promise<void>;
|
|
64
69
|
private _getCurrentPlanXML;
|
|
70
|
+
private _getPlanXmlWithSingleObject;
|
|
65
71
|
onPlanElementChanged(changeType: Enumify<typeof PLAN_ELEMENT_CHANGE_TYPES>): Promise<void>;
|
|
66
72
|
private _emitConstructionAttachedWallAngle;
|
|
67
73
|
}
|