mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
fix: keep wall-hosted passages open in static view
Issue: #282 User-Visible: yes
This commit is contained in:
File diff suppressed because one or more lines are too long
@@ -160,7 +160,12 @@ const out = await page.evaluate(async () => {
|
||||
await staticCard.updateComplete;
|
||||
await new Promise((resolve) => requestAnimationFrame(() => requestAnimationFrame(resolve)));
|
||||
const staticRoot = staticCard.shadowRoot || staticCard.renderRoot;
|
||||
result.staticCutsAndFillsPassage = !!staticRoot.querySelector('.wallbodies')
|
||||
const staticWallBodyPaths = [...staticRoot.querySelectorAll('.wallbodies path')];
|
||||
const passagePoint = new DOMPoint(500, 450);
|
||||
const solidWallPoint = new DOMPoint(500, 260);
|
||||
result.staticCutsAndFillsPassage = staticWallBodyPaths.length > 0
|
||||
&& staticWallBodyPaths.every((path) => !path.isPointInFill(passagePoint))
|
||||
&& staticWallBodyPaths.some((path) => path.isPointInFill(solidWallPoint))
|
||||
&& !!staticRoot.querySelector('.static-opening-tunnels [data-kind="passage"]');
|
||||
result.staticDoesNotInventPassageSymbol = staticRoot.querySelectorAll('[data-hp="opening"]').length === 0;
|
||||
staticCard.remove();
|
||||
|
||||
Vendored
+2
-2
File diff suppressed because one or more lines are too long
+2
-1
@@ -25,7 +25,8 @@
|
||||
An invalid open passage also retains its specific actionable error instead
|
||||
of being masked by the generic wall-model migration blocker. The compact
|
||||
space card keeps wall-hosted doors, windows, gates and passages visible after
|
||||
the migration as well. Wall-hosted windows keep casting sunlight after an
|
||||
the migration as well, including the physical gap in masonry for a passage.
|
||||
Wall-hosted windows keep casting sunlight after an
|
||||
edit, partial open boundaries remain writable on migrated plans, and clearing
|
||||
wall thickness no longer restores its previous value.
|
||||
Ambiguous legacy geometry is
|
||||
|
||||
@@ -29,7 +29,8 @@
|
||||
частичный результат и не показывает ложное сообщение об успехе. Невалидный
|
||||
открытый проход по-прежнему получает своё точное сообщение об ошибке, а не
|
||||
общий блокер миграции стен. Компактная карточка пространства также не теряет
|
||||
после миграции двери, окна, ворота и проходы, привязанные к стенам.
|
||||
после миграции двери, окна, ворота и проходы, привязанные к стенам, включая
|
||||
физический разрыв кладки в месте прохода.
|
||||
Окна на стенах продолжают пропускать солнечные лучи после правки, частичные
|
||||
открытые границы сохраняются и на уже мигрированных планах, а удалённая
|
||||
толщина стены больше не восстанавливается в прежнее значение.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"version": 1,
|
||||
"fixture": "synthetic-only",
|
||||
"chromium": "151.0.7922.34",
|
||||
"sourceFingerprint": "a3ac1e8df9e4563f16295cbd4ca9cbbdc643839622c3b92effbc346c6fcec818",
|
||||
"sourceFingerprint": "eb044c22b9a5d03dd9c66c1bc8ace5e8a2637da2b0078ba5782eb0e056a8cc23",
|
||||
"captureScriptSha256": "ce2e9542fed9dade3085be87d16f69adb2ac8262893ad78ad966b1b9673f2983",
|
||||
"command": "npm run build && node demo/docs/capture.mjs",
|
||||
"scenarios": {
|
||||
@@ -14,7 +14,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "a3ac1e8df9e4563f16295cbd4ca9cbbdc643839622c3b92effbc346c6fcec818",
|
||||
"sourceSha256": "eb044c22b9a5d03dd9c66c1bc8ace5e8a2637da2b0078ba5782eb0e056a8cc23",
|
||||
"imageSha256": "36223106c073f07d8cc3ecf8eaab37192ebb2687daba65c5c21047d0b7890de0"
|
||||
},
|
||||
"view-touch": {
|
||||
@@ -25,7 +25,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "a3ac1e8df9e4563f16295cbd4ca9cbbdc643839622c3b92effbc346c6fcec818",
|
||||
"sourceSha256": "eb044c22b9a5d03dd9c66c1bc8ace5e8a2637da2b0078ba5782eb0e056a8cc23",
|
||||
"imageSha256": "41e3ba67f8db0e98f26f484293af83ef937c369ca5ca6a59a3350d8954c906f4"
|
||||
},
|
||||
"space-create": {
|
||||
@@ -36,7 +36,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "a3ac1e8df9e4563f16295cbd4ca9cbbdc643839622c3b92effbc346c6fcec818",
|
||||
"sourceSha256": "eb044c22b9a5d03dd9c66c1bc8ace5e8a2637da2b0078ba5782eb0e056a8cc23",
|
||||
"imageSha256": "c33a7279165a4cec6fa6fadb6fd08cd967e082a17fe101ef442d27d36ae59b6b"
|
||||
},
|
||||
"room-contour-close": {
|
||||
@@ -47,7 +47,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "a3ac1e8df9e4563f16295cbd4ca9cbbdc643839622c3b92effbc346c6fcec818",
|
||||
"sourceSha256": "eb044c22b9a5d03dd9c66c1bc8ace5e8a2637da2b0078ba5782eb0e056a8cc23",
|
||||
"imageSha256": "b4777162eae89e0d95801721330bcd74ba761624b82b3362069d7e2d38317e08"
|
||||
},
|
||||
"plan-context-tray": {
|
||||
@@ -58,7 +58,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "a3ac1e8df9e4563f16295cbd4ca9cbbdc643839622c3b92effbc346c6fcec818",
|
||||
"sourceSha256": "eb044c22b9a5d03dd9c66c1bc8ace5e8a2637da2b0078ba5782eb0e056a8cc23",
|
||||
"imageSha256": "c0e28edf82f45ccc6df568d3023b681e9e4394262ad34c1605fe9eacdb57a390"
|
||||
},
|
||||
"device-editor": {
|
||||
@@ -69,7 +69,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "a3ac1e8df9e4563f16295cbd4ca9cbbdc643839622c3b92effbc346c6fcec818",
|
||||
"sourceSha256": "eb044c22b9a5d03dd9c66c1bc8ace5e8a2637da2b0078ba5782eb0e056a8cc23",
|
||||
"imageSha256": "d0ffd31ce80bfde21ab75da356a5fc1af38246f2b301030880320620c228d89d"
|
||||
},
|
||||
"device-display-preview": {
|
||||
@@ -80,7 +80,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "a3ac1e8df9e4563f16295cbd4ca9cbbdc643839622c3b92effbc346c6fcec818",
|
||||
"sourceSha256": "eb044c22b9a5d03dd9c66c1bc8ace5e8a2637da2b0078ba5782eb0e056a8cc23",
|
||||
"imageSha256": "2cdabae1f89c3286e4fac0ce30f757ee1690b707ab8a5488748b7cd420626160"
|
||||
},
|
||||
"background-editor": {
|
||||
@@ -91,7 +91,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "a3ac1e8df9e4563f16295cbd4ca9cbbdc643839622c3b92effbc346c6fcec818",
|
||||
"sourceSha256": "eb044c22b9a5d03dd9c66c1bc8ace5e8a2637da2b0078ba5782eb0e056a8cc23",
|
||||
"imageSha256": "30147bb00a90eea7136b4cee30995f6e6a9217b5132f3e8d3ad7471413b1af8a"
|
||||
},
|
||||
"room-card": {
|
||||
@@ -102,7 +102,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "a3ac1e8df9e4563f16295cbd4ca9cbbdc643839622c3b92effbc346c6fcec818",
|
||||
"sourceSha256": "eb044c22b9a5d03dd9c66c1bc8ace5e8a2637da2b0078ba5782eb0e056a8cc23",
|
||||
"imageSha256": "029a3e69ec647a8a370d99e6bb7f9225833c526739076022f6b52ba54bff30ea"
|
||||
},
|
||||
"device-info": {
|
||||
@@ -113,7 +113,7 @@
|
||||
},
|
||||
"theme": "dark",
|
||||
"language": "en",
|
||||
"sourceSha256": "a3ac1e8df9e4563f16295cbd4ca9cbbdc643839622c3b92effbc346c6fcec818",
|
||||
"sourceSha256": "eb044c22b9a5d03dd9c66c1bc8ace5e8a2637da2b0078ba5782eb0e056a8cc23",
|
||||
"imageSha256": "dd492f53150b7149085daada5cce9eeae9bde9e7ea1d86679a54b3041f72f517"
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -434,7 +434,7 @@ export function renderSpaceStatic(o: StaticRenderOpts): TemplateResult | null {
|
||||
const canonicalWallGeometry = needsCanonicalWallGeometry
|
||||
? cachedStaticWallGeometry(o.cfg, space.id, wallGeometryFingerprint, () => wallBodiesUnionPath(
|
||||
space.rooms, walls, [], [
|
||||
...staticPassages.filter((opening) => !opening.host).map((opening) => ({
|
||||
...staticPassages.filter((opening) => opening.host?.kind !== 'partition').map((opening) => ({
|
||||
x: opening.rx, y: opening.ry, angle: opening.angle, length: opening.rlen,
|
||||
})),
|
||||
...hostedCompositeOpenings,
|
||||
|
||||
Reference in New Issue
Block a user