@qverse-ui/lit-components 1.0.3 → 1.0.5
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/dist/components/base/index.d.ts.map +1 -1
- package/dist/components/base/index.js.map +1 -1
- package/dist/components/common/lit-switch-dollhouse-view/constants.d.ts +2 -1
- package/dist/components/common/lit-switch-dollhouse-view/constants.d.ts.map +1 -1
- package/dist/components/common/lit-switch-dollhouse-view/constants.js +2 -1
- package/dist/components/common/lit-switch-dollhouse-view/constants.js.map +1 -1
- package/dist/components/common/lit-switch-dollhouse-view/events.js.map +1 -1
- package/dist/components/common/lit-switch-dollhouse-view/index.d.ts +49 -5
- package/dist/components/common/lit-switch-dollhouse-view/index.d.ts.map +1 -1
- package/dist/components/common/lit-switch-dollhouse-view/index.js +66 -12
- package/dist/components/common/lit-switch-dollhouse-view/index.js.map +1 -1
- package/dist/components/common/lit-switch-dollhouse-view/interaction.d.ts +6 -2
- package/dist/components/common/lit-switch-dollhouse-view/interaction.d.ts.map +1 -1
- package/dist/components/common/lit-switch-dollhouse-view/interaction.js +26 -2
- package/dist/components/common/lit-switch-dollhouse-view/interaction.js.map +1 -1
- package/dist/components/common/lit-switch-dollhouse-view/styles.d.ts.map +1 -1
- package/dist/components/common/lit-switch-dollhouse-view/styles.js +2 -8
- package/dist/components/common/lit-switch-dollhouse-view/styles.js.map +1 -1
- package/dist/components/common/lit-switch-floorplan-view/constants.js.map +1 -1
- package/dist/components/common/lit-switch-floorplan-view/index.d.ts +34 -5
- package/dist/components/common/lit-switch-floorplan-view/index.d.ts.map +1 -1
- package/dist/components/common/lit-switch-floorplan-view/index.js +54 -12
- package/dist/components/common/lit-switch-floorplan-view/index.js.map +1 -1
- package/dist/components/common/lit-switch-floorplan-view/interaction.d.ts +6 -2
- package/dist/components/common/lit-switch-floorplan-view/interaction.d.ts.map +1 -1
- package/dist/components/common/lit-switch-floorplan-view/interaction.js +26 -2
- package/dist/components/common/lit-switch-floorplan-view/interaction.js.map +1 -1
- package/dist/components/common/lit-switch-floorplan-view/logic.js.map +1 -1
- package/dist/components/common/lit-switch-floorplan-view/styles.d.ts.map +1 -1
- package/dist/components/common/lit-switch-floorplan-view/styles.js +2 -8
- package/dist/components/common/lit-switch-floorplan-view/styles.js.map +1 -1
- package/dist/components/common/lit-switch-panorama-view/constants.js.map +1 -1
- package/dist/components/common/lit-switch-panorama-view/index.d.ts +58 -5
- package/dist/components/common/lit-switch-panorama-view/index.d.ts.map +1 -1
- package/dist/components/common/lit-switch-panorama-view/index.js +69 -11
- package/dist/components/common/lit-switch-panorama-view/index.js.map +1 -1
- package/dist/components/common/lit-switch-panorama-view/interaction.d.ts +8 -2
- package/dist/components/common/lit-switch-panorama-view/interaction.d.ts.map +1 -1
- package/dist/components/common/lit-switch-panorama-view/interaction.js +27 -3
- package/dist/components/common/lit-switch-panorama-view/interaction.js.map +1 -1
- package/dist/components/common/lit-switch-panorama-view/logic.d.ts +2 -1
- package/dist/components/common/lit-switch-panorama-view/logic.d.ts.map +1 -1
- package/dist/components/common/lit-switch-panorama-view/logic.js +8 -5
- package/dist/components/common/lit-switch-panorama-view/logic.js.map +1 -1
- package/dist/components/common/lit-switch-panorama-view/properties.d.ts +11 -0
- package/dist/components/common/lit-switch-panorama-view/properties.d.ts.map +1 -1
- package/dist/components/common/lit-switch-panorama-view/properties.js.map +1 -1
- package/dist/components/common/lit-switch-panorama-view/styles.d.ts.map +1 -1
- package/dist/components/common/lit-switch-panorama-view/styles.js +2 -8
- package/dist/components/common/lit-switch-panorama-view/styles.js.map +1 -1
- package/dist/enum/view.mode.d.ts +7 -0
- package/dist/enum/view.mode.d.ts.map +1 -0
- package/dist/enum/view.mode.js +11 -0
- package/dist/enum/view.mode.js.map +1 -0
- package/dist/utils/define-lit-element.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/base/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/base/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,iBAAiB,CAAA;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACtE,eAAO,MAAM,aAAa,yBAA0B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/base/index.ts"],"sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/base/index.ts"],"sourcesContent":["/**\n * @qverse-ui/lit-components/base — 基础组件\n */\nimport './lit-button.js'\nexport { LitButton } from './lit-button.js'\nexport type { LitButtonVariant, LitButtonSize } from './lit-button.js'\nexport const LIT_BASE_TAGS = ['lit-button'] as const\n"],"names":[],"mappings":";AAMO,MAAM,gBAAgB,CAAC,YAAY;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { ViewMode } from '@/enum/view.mode';
|
|
1
2
|
export declare const TAG: "lit-switch-dollhouse-view";
|
|
2
|
-
export declare const VIEW:
|
|
3
|
+
export declare const VIEW: ViewMode.Dollhouse;
|
|
3
4
|
export declare const ICON_CSS_VAR: "--lit-mode-dollhouse-icon";
|
|
4
5
|
export declare const CLICK_EVENT: "lit-switch-dollhouse-click";
|
|
5
6
|
export declare const COMPLETE_EVENT: "lit-switch-dollhouse-complete";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-dollhouse-view/constants.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,GAAG,EAAG,2BAAoC,CAAA;AAEvD,eAAO,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-dollhouse-view/constants.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,eAAO,MAAM,GAAG,EAAG,2BAAoC,CAAA;AAEvD,eAAO,MAAM,IAAI,oBAA8B,CAAA;AAE/C,eAAO,MAAM,YAAY,EAAG,2BAAoC,CAAA;AAEhE,eAAO,MAAM,WAAW,EAAG,4BAAqC,CAAA;AAEhE,eAAO,MAAM,cAAc,EAAG,+BAAwC,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { ViewMode } from "../../../enum/view.mode.js";
|
|
1
2
|
const TAG = "lit-switch-dollhouse-view";
|
|
2
|
-
const VIEW =
|
|
3
|
+
const VIEW = ViewMode.Dollhouse;
|
|
3
4
|
const CLICK_EVENT = "lit-switch-dollhouse-click";
|
|
4
5
|
const COMPLETE_EVENT = "lit-switch-dollhouse-complete";
|
|
5
6
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../../src/components/common/lit-switch-dollhouse-view/constants.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-dollhouse-view 常量(标签、事件名、CSS 变量)\n */\n\nexport const TAG = 'lit-switch-dollhouse-view' as const\
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/components/common/lit-switch-dollhouse-view/constants.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-dollhouse-view 常量(标签、事件名、CSS 变量)\n */\n\nimport { ViewMode } from '@/enum/view.mode'\n\nexport const TAG = 'lit-switch-dollhouse-view' as const\n\nexport const VIEW = ViewMode.Dollhouse as const\n\nexport const ICON_CSS_VAR = '--lit-mode-dollhouse-icon' as const\n\nexport const CLICK_EVENT = 'lit-switch-dollhouse-click' as const\n\nexport const COMPLETE_EVENT = 'lit-switch-dollhouse-complete' as const\n"],"names":[],"mappings":";AAQO,MAAM,MAAM;AAEZ,MAAM,OAAO,SAAS;AAItB,MAAM,cAAc;AAEpB,MAAM,iBAAiB;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sources":["../../../../src/components/common/lit-switch-dollhouse-view/events.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-dollhouse-view 自定义事件派发\n */\n\nimport { CLICK_EVENT, COMPLETE_EVENT, VIEW } from './constants.js'\r\n\r\nexport function dispatchClick(host: HTMLElement, originalEvent: Event) {\r\n\r\n host.dispatchEvent(new CustomEvent(CLICK_EVENT, {\r\n bubbles: true,\r\n composed: true,\r\n detail: {\r\n view: VIEW,\r\n originalEvent,\r\n },\r\n }))\r\n\r\n}\r\n\r\nexport function dispatchComplete(host: HTMLElement, originalEvent: Event) {\r\n\r\n host.dispatchEvent(new CustomEvent(COMPLETE_EVENT, {\r\n bubbles: true,\r\n composed: true,\r\n detail: {\r\n view: VIEW,\r\n originalEvent,\r\n },\r\n }))\r\n\r\n}
|
|
1
|
+
{"version":3,"file":"events.js","sources":["../../../../src/components/common/lit-switch-dollhouse-view/events.ts"],"sourcesContent":["/*\r\n * @Author: ncz\r\n * @Date: 2026-05-30\r\n * @Description: lit-switch-dollhouse-view 自定义事件派发\r\n */\r\n\r\nimport { CLICK_EVENT, COMPLETE_EVENT, VIEW } from './constants.js'\r\n\r\nexport function dispatchClick(host: HTMLElement, originalEvent: Event) {\r\n\r\n host.dispatchEvent(new CustomEvent(CLICK_EVENT, {\r\n bubbles: true,\r\n composed: true,\r\n detail: {\r\n view: VIEW,\r\n originalEvent,\r\n },\r\n }))\r\n\r\n}\r\n\r\nexport function dispatchComplete(host: HTMLElement, originalEvent: Event) {\r\n\r\n host.dispatchEvent(new CustomEvent(COMPLETE_EVENT, {\r\n bubbles: true,\r\n composed: true,\r\n detail: {\r\n view: VIEW,\r\n originalEvent,\r\n },\r\n }))\r\n\r\n}"],"names":[],"mappings":";AAQO,SAAS,cAAc,MAAmB,eAAsB;AAErE,OAAK,cAAc,IAAI,YAAY,aAAa;AAAA,IAC9C,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,MACN,MAAM;AAAA,MACN;AAAA,IAAA;AAAA,EACF,CACD,CAAC;AAEJ;AAEO,SAAS,iBAAiB,MAAmB,eAAsB;AAExE,OAAK,cAAc,IAAI,YAAY,gBAAgB;AAAA,IACjD,SAAS;AAAA,IACT,UAAU;AAAA,IACV,QAAQ;AAAA,MACN,MAAM;AAAA,MACN;AAAA,IAAA;AAAA,EACF,CACD,CAAC;AAEJ;"}
|
|
@@ -1,14 +1,58 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
1
|
+
import { LitElement, PropertyValues } from 'lit';
|
|
2
2
|
import { TAG } from './constants.js';
|
|
3
|
-
/** 切换到 dollhouse 视图;qspace 须由宿主通过 :qspace
|
|
3
|
+
/** 切换到 dollhouse 视图;qspace 须由宿主通过 :qspace 传入 */
|
|
4
4
|
export declare class LitSwitchDollhouseView extends LitElement {
|
|
5
|
+
/** qspace SDK 实例;仅 JS 属性绑定,不映射 HTML attribute(对象无法序列化) */
|
|
5
6
|
qspace: any;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
/**
|
|
8
|
+
|
|
9
|
+
* 是否可点击;由 core.loaded / mode.change 自动同步,宿主亦可覆盖
|
|
10
|
+
|
|
11
|
+
* HTML: enabled / Vue: :enabled
|
|
12
|
+
|
|
13
|
+
*/
|
|
14
|
+
enabled: boolean;
|
|
15
|
+
setEnabled(value: boolean): void;
|
|
9
16
|
static styles: import("lit").CSSResult;
|
|
10
17
|
private _onClick;
|
|
18
|
+
private _onCoreLoaded;
|
|
19
|
+
private _onViewModeChange;
|
|
20
|
+
/**
|
|
21
|
+
|
|
22
|
+
* 渲染模板
|
|
23
|
+
|
|
24
|
+
*/
|
|
11
25
|
render(): import("lit-html").TemplateResult;
|
|
26
|
+
/**
|
|
27
|
+
|
|
28
|
+
* 组件连接生命周期
|
|
29
|
+
|
|
30
|
+
*/
|
|
31
|
+
connectedCallback(): void;
|
|
32
|
+
/**
|
|
33
|
+
|
|
34
|
+
* 组件断开生命周期
|
|
35
|
+
|
|
36
|
+
*/
|
|
37
|
+
disconnectedCallback(): void;
|
|
38
|
+
/**
|
|
39
|
+
|
|
40
|
+
* 第一次更新
|
|
41
|
+
|
|
42
|
+
*/
|
|
43
|
+
firstUpdated(changed: Map<string, unknown>): void;
|
|
44
|
+
/**
|
|
45
|
+
|
|
46
|
+
* 组件更新
|
|
47
|
+
|
|
48
|
+
*/
|
|
49
|
+
updated(changed: Map<string, unknown>): void;
|
|
50
|
+
/**
|
|
51
|
+
|
|
52
|
+
* 将要更新
|
|
53
|
+
|
|
54
|
+
*/
|
|
55
|
+
protected willUpdate(_changedProperties: PropertyValues): void;
|
|
12
56
|
}
|
|
13
57
|
declare global {
|
|
14
58
|
interface HTMLElementTagNameMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-dollhouse-view/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-dollhouse-view/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAMhD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAYpC,gDAAgD;AAEhD,qBAEa,sBAAuB,SAAQ,UAAU;IAIpD,0DAA0D;IAI1D,MAAM,EAAE,GAAG,CAAO;IAIlB;;;;;;OAMG;IAcH,OAAO,UAAQ;IAIf,UAAU,CAAC,KAAK,EAAE,OAAO;IAgBzB,MAAM,CAAC,MAAM,0BAAS;IAItB,OAAO,CAAC,QAAQ,CAQf;IAID,OAAO,CAAC,aAAa,CAQpB;IAID,OAAO,CAAC,iBAAiB,CAQxB;IAID;;;;OAIG;IAEH,MAAM;IAYN;;;;OAIG;IAEH,iBAAiB;IA4BjB;;;;OAIG;IAEH,oBAAoB;IA4BpB;;;;OAIG;IAEH,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAY1C;;;;OAIG;IAEH,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAYrC;;;;OAIG;IAEH,SAAS,CAAC,UAAU,CAAC,kBAAkB,EAAE,cAAc,GAAG,IAAI;CAQ/D;AAID,OAAO,CAAC,MAAM,CAAC;IAIb,UAAU,qBAAqB;QAI7B,CAAC,GAAG,CAAC,EAAE,sBAAsB,CAAA;KAI9B;CAIF"}
|
|
@@ -2,7 +2,7 @@ import { LitElement } from "lit";
|
|
|
2
2
|
import { property } from "lit/decorators.js";
|
|
3
3
|
import { safeCustomElement } from "../../../utils/define-lit-element.js";
|
|
4
4
|
import { TAG } from "./constants.js";
|
|
5
|
-
import { handleDollhouseClick } from "./interaction.js";
|
|
5
|
+
import { handleDollhouseClick, handelCoreLoaded, handelViewModeChange } from "./interaction.js";
|
|
6
6
|
import { booleanAttr } from "./properties.js";
|
|
7
7
|
import { styles } from "./styles.js";
|
|
8
8
|
import { renderDollhouseView } from "./template.js";
|
|
@@ -20,16 +20,76 @@ let LitSwitchDollhouseView = class extends LitElement {
|
|
|
20
20
|
constructor() {
|
|
21
21
|
super(...arguments);
|
|
22
22
|
this.qspace = null;
|
|
23
|
-
this.
|
|
24
|
-
this.active = false;
|
|
25
|
-
this.switching = false;
|
|
23
|
+
this.enabled = false;
|
|
26
24
|
this._onClick = (e) => {
|
|
27
25
|
handleDollhouseClick(this, e);
|
|
28
26
|
};
|
|
27
|
+
this._onCoreLoaded = () => {
|
|
28
|
+
handelCoreLoaded(this);
|
|
29
|
+
};
|
|
30
|
+
this._onViewModeChange = (mode) => {
|
|
31
|
+
handelViewModeChange(this, mode);
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
setEnabled(value) {
|
|
35
|
+
this.enabled = value;
|
|
36
|
+
this.toggleAttribute("enabled", value);
|
|
29
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
|
|
40
|
+
* 渲染模板
|
|
41
|
+
|
|
42
|
+
*/
|
|
30
43
|
render() {
|
|
31
44
|
return renderDollhouseView(this._onClick);
|
|
32
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
|
|
48
|
+
* 组件连接生命周期
|
|
49
|
+
|
|
50
|
+
*/
|
|
51
|
+
connectedCallback() {
|
|
52
|
+
super.connectedCallback();
|
|
53
|
+
if (this.qspace) {
|
|
54
|
+
this.qspace.core.addEventListener("loaded", this._onCoreLoaded);
|
|
55
|
+
this.qspace.view.addEventListener("mode.change", this._onViewModeChange);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
|
|
60
|
+
* 组件断开生命周期
|
|
61
|
+
|
|
62
|
+
*/
|
|
63
|
+
disconnectedCallback() {
|
|
64
|
+
if (this.qspace) {
|
|
65
|
+
this.qspace.core.removeEventListener("loaded", this._onCoreLoaded);
|
|
66
|
+
this.qspace.view.removeEventListener("mode.change", this._onViewModeChange);
|
|
67
|
+
}
|
|
68
|
+
super.disconnectedCallback();
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
|
|
72
|
+
* 第一次更新
|
|
73
|
+
|
|
74
|
+
*/
|
|
75
|
+
firstUpdated(changed) {
|
|
76
|
+
super.firstUpdated(changed);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
|
|
80
|
+
* 组件更新
|
|
81
|
+
|
|
82
|
+
*/
|
|
83
|
+
updated(changed) {
|
|
84
|
+
super.updated(changed);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
|
|
88
|
+
* 将要更新
|
|
89
|
+
|
|
90
|
+
*/
|
|
91
|
+
willUpdate(_changedProperties) {
|
|
92
|
+
}
|
|
33
93
|
};
|
|
34
94
|
LitSwitchDollhouseView.styles = styles;
|
|
35
95
|
__decorateClass([
|
|
@@ -38,17 +98,11 @@ __decorateClass([
|
|
|
38
98
|
__decorateClass([
|
|
39
99
|
property({
|
|
40
100
|
type: Boolean,
|
|
41
|
-
attribute: "
|
|
101
|
+
attribute: "enabled",
|
|
42
102
|
reflect: true,
|
|
43
103
|
converter: booleanAttr
|
|
44
104
|
})
|
|
45
|
-
], LitSwitchDollhouseView.prototype, "
|
|
46
|
-
__decorateClass([
|
|
47
|
-
property({ type: Boolean, reflect: true })
|
|
48
|
-
], LitSwitchDollhouseView.prototype, "active", 2);
|
|
49
|
-
__decorateClass([
|
|
50
|
-
property({ type: Boolean, reflect: true })
|
|
51
|
-
], LitSwitchDollhouseView.prototype, "switching", 2);
|
|
105
|
+
], LitSwitchDollhouseView.prototype, "enabled", 2);
|
|
52
106
|
LitSwitchDollhouseView = __decorateClass([
|
|
53
107
|
safeCustomElement(TAG)
|
|
54
108
|
], LitSwitchDollhouseView);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/common/lit-switch-dollhouse-view/index.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-dollhouse-view 组件注册与属性声明\n */\n\nimport { LitElement } from 'lit'\r\nimport { property } from 'lit/decorators.js'\r\nimport { safeCustomElement } from '../../../utils/define-lit-element.js'\r\nimport { TAG } from './constants.js'\r\nimport { handleDollhouseClick } from './interaction.js'\r\nimport { booleanAttr } from './properties.js'\r\nimport { styles } from './styles.js'\r\nimport { renderDollhouseView } from './template.js'\r\n\r\n/** 切换到 dollhouse 视图;qspace 须由宿主通过 :qspace
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/common/lit-switch-dollhouse-view/index.ts"],"sourcesContent":["/*\r\r\n * @Author: ncz\r\r\n * @Date: 2026-05-30\r\r\n * @Description: lit-switch-dollhouse-view 组件注册与属性声明\r\r\n */\r\r\n\r\r\nimport { LitElement, PropertyValues } from 'lit'\r\r\nimport { property } from 'lit/decorators.js'\r\r\nimport { safeCustomElement } from '../../../utils/define-lit-element.js'\r\r\nimport { TAG } from './constants.js'\r\r\nimport { handleDollhouseClick, handelViewModeChange, handelCoreLoaded } from './interaction.js'\r\r\nimport { booleanAttr } from './properties.js'\r\r\nimport { styles } from './styles.js'\r\r\nimport { renderDollhouseView } from './template.js'\r\r\n\r\r\n/** 切换到 dollhouse 视图;qspace 须由宿主通过 :qspace 传入 */\r\r\n@safeCustomElement(TAG)\r\r\nexport class LitSwitchDollhouseView extends LitElement {\r\r\n\r\r\n /** qspace SDK 实例;仅 JS 属性绑定,不映射 HTML attribute(对象无法序列化) */\r\r\n @property({ attribute: false })\r\r\n qspace: any = null\r\r\n\r\r\n /**\r\r\n * 是否可点击;由 core.loaded / mode.change 自动同步,宿主亦可覆盖\r\r\n * HTML: enabled / Vue: :enabled\r\r\n */\r\r\n @property({\r\r\n type: Boolean,\r\r\n attribute: 'enabled',\r\r\n reflect: true,\r\r\n converter: booleanAttr,\r\r\n })\r\r\n enabled = false\r\r\n\r\r\n setEnabled(value: boolean) {\r\r\n\r\r\n this.enabled = value\r\r\n\r\r\n this.toggleAttribute('enabled', value)\r\r\n\r\r\n }\r\r\n\r\r\n static styles = styles\r\r\n\r\r\n private _onClick = (e: Event) => {\r\r\n\r\r\n handleDollhouseClick(this, e)\r\r\n\r\r\n }\r\r\n\r\r\n private _onCoreLoaded = () => {\r\r\n\r\r\n handelCoreLoaded(this);\r\r\n\r\r\n }\r\r\n\r\r\n private _onViewModeChange = (mode: string) => {\r\r\n\r\r\n handelViewModeChange(this, mode);\r\r\n\r\r\n }\r\r\n\r\r\n /**\r\r\n * 渲染模板\r\r\n */\r\r\n render() {\r\r\n\r\r\n return renderDollhouseView(this._onClick)\r\r\n\r\r\n }\r\r\n\r\r\n /**\r\r\n * 组件连接生命周期\r\r\n */\r\r\n connectedCallback() {\r\r\n\r\r\n super.connectedCallback()\r\r\n\r\r\n if (this.qspace) {\r\r\n\r\r\n this.qspace.core.addEventListener('loaded', this._onCoreLoaded);\r\r\n\r\r\n this.qspace.view.addEventListener('mode.change', this._onViewModeChange);\r\r\n\r\r\n }\r\r\n\r\r\n }\r\r\n\r\r\n /**\r\r\n * 组件断开生命周期\r\r\n */\r\r\n disconnectedCallback() {\r\r\n\r\r\n if (this.qspace) {\r\r\n\r\r\n this.qspace.core.removeEventListener('loaded', this._onCoreLoaded);\r\r\n\r\r\n this.qspace.view.removeEventListener('mode.change', this._onViewModeChange);\r\r\n\r\r\n }\r\r\n\r\r\n super.disconnectedCallback()\r\r\n\r\r\n }\r\r\n\r\r\n /**\r\r\n * 第一次更新\r\r\n */\r\r\n firstUpdated(changed: Map<string, unknown>) {\r\r\n\r\r\n super.firstUpdated(changed)\r\r\n\r\r\n }\r\r\n\r\r\n /**\r\r\n * 组件更新\r\r\n */\r\r\n updated(changed: Map<string, unknown>) {\r\r\n\r\r\n super.updated(changed)\r\r\n\r\r\n }\r\r\n\r\r\n /**\r\r\n * 将要更新\r\r\n */\r\r\n protected willUpdate(_changedProperties: PropertyValues): void {\r\r\n\r\r\n }\r\r\n\r\r\n}\r\r\n\r\r\ndeclare global {\r\r\n\r\r\n interface HTMLElementTagNameMap {\r\r\n\r\r\n [TAG]: LitSwitchDollhouseView\r\r\n\r\r\n }\r\r\n\r\r\n}\r\r\n\r"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAkCO,IAAM,yBAAN,cAAqC,WAAW;AAAA,EAAhD,cAAA;AAAA,UAAA,GAAA,SAAA;AAQL,SAAA,SAAc;AAwBd,SAAA,UAAU;AAwBV,SAAQ,WAAW,CAAC,MAAa;AAI/B,2BAAqB,MAAM,CAAC;AAAA,IAI9B;AAIA,SAAQ,gBAAgB,MAAM;AAI5B,uBAAiB,IAAI;AAAA,IAIvB;AAIA,SAAQ,oBAAoB,CAAC,SAAiB;AAI5C,2BAAqB,MAAM,IAAI;AAAA,IAIjC;AAAA,EAAA;AAAA,EApDA,WAAW,OAAgB;AAIzB,SAAK,UAAU;AAIf,SAAK,gBAAgB,WAAW,KAAK;AAAA,EAIvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkDA,SAAS;AAIP,WAAO,oBAAoB,KAAK,QAAQ;AAAA,EAI1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,oBAAoB;AAIlB,UAAM,kBAAA;AAIN,QAAI,KAAK,QAAQ;AAIf,WAAK,OAAO,KAAK,iBAAiB,UAAU,KAAK,aAAa;AAI9D,WAAK,OAAO,KAAK,iBAAiB,eAAe,KAAK,iBAAiB;AAAA,IAIzE;AAAA,EAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,uBAAuB;AAIrB,QAAI,KAAK,QAAQ;AAIf,WAAK,OAAO,KAAK,oBAAoB,UAAU,KAAK,aAAa;AAIjE,WAAK,OAAO,KAAK,oBAAoB,eAAe,KAAK,iBAAiB;AAAA,IAI5E;AAIA,UAAM,qBAAA;AAAA,EAIR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,aAAa,SAA+B;AAI1C,UAAM,aAAa,OAAO;AAAA,EAI5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,QAAQ,SAA+B;AAIrC,UAAM,QAAQ,OAAO;AAAA,EAIvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUU,WAAW,oBAA0C;AAAA,EAI/D;AAIF;AApOa,uBAoDJ,SAAS;AA5ChB,gBAAA;AAAA,EAFC,SAAS,EAAE,WAAW,MAAA,CAAO;AAAA,GANnB,uBAQX,WAAA,UAAA,CAAA;AAwBA,gBAAA;AAAA,EAZC,SAAS;AAAA,IAER,MAAM;AAAA,IAEN,WAAW;AAAA,IAEX,SAAS;AAAA,IAET,WAAW;AAAA,EAAA,CAEZ;AAAA,GA9BU,uBAgCX,WAAA,WAAA,CAAA;AAhCW,yBAAN,gBAAA;AAAA,EAFN,kBAAkB,GAAG;AAAA,GAET,sBAAA;"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
export type DollhouseViewHost = HTMLElement & {
|
|
2
2
|
qspace: any;
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
enabled: boolean;
|
|
4
|
+
setEnabled: (value: boolean) => void;
|
|
5
5
|
};
|
|
6
|
+
/** 根据 qspace.view.mode 同步 enabled:当前视图或过渡中不可点 */
|
|
7
|
+
export declare function syncEnabledFromMode(host: DollhouseViewHost, mode: string | undefined): void;
|
|
6
8
|
export declare function handleDollhouseClick(host: DollhouseViewHost, e: Event): void;
|
|
9
|
+
export declare function handelCoreLoaded(host: DollhouseViewHost): void;
|
|
10
|
+
export declare function handelViewModeChange(host: DollhouseViewHost, mode: string): void;
|
|
7
11
|
//# sourceMappingURL=interaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-dollhouse-view/interaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-dollhouse-view/interaction.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG;IAE5C,MAAM,EAAE,GAAG,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAErC,CAAA;AAED,iDAAiD;AACjD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,QAmBpF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,KAAK,QA2BrE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,QAIvD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,QAIzE"}
|
|
@@ -1,7 +1,20 @@
|
|
|
1
|
+
import { ViewMode } from "../../../enum/view.mode.js";
|
|
1
2
|
import { dispatchClick, dispatchComplete } from "./events.js";
|
|
2
3
|
import { turnToDollhouseView } from "./logic.js";
|
|
4
|
+
function syncEnabledFromMode(host, mode) {
|
|
5
|
+
switch (mode) {
|
|
6
|
+
case ViewMode.Transitioning:
|
|
7
|
+
case ViewMode.Dollhouse:
|
|
8
|
+
host.setEnabled(false);
|
|
9
|
+
break;
|
|
10
|
+
case ViewMode.Floorplan:
|
|
11
|
+
case ViewMode.Panorama:
|
|
12
|
+
host.setEnabled(true);
|
|
13
|
+
break;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
3
16
|
function handleDollhouseClick(host, e) {
|
|
4
|
-
if (!host.
|
|
17
|
+
if (!host.enabled) {
|
|
5
18
|
e.preventDefault();
|
|
6
19
|
e.stopPropagation();
|
|
7
20
|
return;
|
|
@@ -10,11 +23,22 @@ function handleDollhouseClick(host, e) {
|
|
|
10
23
|
if (!host.qspace) {
|
|
11
24
|
return;
|
|
12
25
|
}
|
|
26
|
+
host.setEnabled(false);
|
|
13
27
|
turnToDollhouseView(host.qspace, () => {
|
|
14
28
|
dispatchComplete(host, e);
|
|
15
29
|
});
|
|
16
30
|
}
|
|
31
|
+
function handelCoreLoaded(host) {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
syncEnabledFromMode(host, (_b = (_a = host.qspace) == null ? void 0 : _a.view) == null ? void 0 : _b.mode);
|
|
34
|
+
}
|
|
35
|
+
function handelViewModeChange(host, mode) {
|
|
36
|
+
syncEnabledFromMode(host, mode);
|
|
37
|
+
}
|
|
17
38
|
export {
|
|
18
|
-
|
|
39
|
+
handelCoreLoaded,
|
|
40
|
+
handelViewModeChange,
|
|
41
|
+
handleDollhouseClick,
|
|
42
|
+
syncEnabledFromMode
|
|
19
43
|
};
|
|
20
44
|
//# sourceMappingURL=interaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.js","sources":["../../../../src/components/common/lit-switch-dollhouse-view/interaction.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-dollhouse-view 点击交互流程\n */\n\nimport { dispatchClick, dispatchComplete } from './events.js'\
|
|
1
|
+
{"version":3,"file":"interaction.js","sources":["../../../../src/components/common/lit-switch-dollhouse-view/interaction.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-dollhouse-view 点击交互流程\n */\n\nimport { ViewMode } from '@/enum/view.mode'\nimport { dispatchClick, dispatchComplete } from './events.js'\nimport { turnToDollhouseView } from './logic.js'\n\nexport type DollhouseViewHost = HTMLElement & {\n\n qspace: any\n enabled: boolean\n setEnabled: (value: boolean) => void\n\n}\n\n/** 根据 qspace.view.mode 同步 enabled:当前视图或过渡中不可点 */\nexport function syncEnabledFromMode(host: DollhouseViewHost, mode: string | undefined) {\n\n switch (mode) {\n\n case ViewMode.Transitioning:\n case ViewMode.Dollhouse:\n host.setEnabled(false)\n break\n\n case ViewMode.Floorplan:\n case ViewMode.Panorama:\n host.setEnabled(true)\n break\n\n default:\n break\n\n }\n\n}\n\nexport function handleDollhouseClick(host: DollhouseViewHost, e: Event) {\n\n if (!host.enabled) {\n\n e.preventDefault()\n e.stopPropagation()\n\n return\n\n }\n\n dispatchClick(host, e)\n\n if (!host.qspace) {\n\n return\n\n }\n\n host.setEnabled(false)\n\n turnToDollhouseView(host.qspace, () => {\n\n dispatchComplete(host, e)\n\n })\n\n}\n\nexport function handelCoreLoaded(host: DollhouseViewHost) {\n\n syncEnabledFromMode(host, host.qspace?.view?.mode)\n\n}\n\nexport function handelViewModeChange(host: DollhouseViewHost, mode: string) {\n\n syncEnabledFromMode(host, mode)\n\n}\n"],"names":[],"mappings":";;;AAmBO,SAAS,oBAAoB,MAAyB,MAA0B;AAErF,UAAQ,MAAA;AAAA,IAEN,KAAK,SAAS;AAAA,IACd,KAAK,SAAS;AACZ,WAAK,WAAW,KAAK;AACrB;AAAA,IAEF,KAAK,SAAS;AAAA,IACd,KAAK,SAAS;AACZ,WAAK,WAAW,IAAI;AACpB;AAAA,EAGA;AAIN;AAEO,SAAS,qBAAqB,MAAyB,GAAU;AAEtE,MAAI,CAAC,KAAK,SAAS;AAEjB,MAAE,eAAA;AACF,MAAE,gBAAA;AAEF;AAAA,EAEF;AAEA,gBAAc,MAAM,CAAC;AAErB,MAAI,CAAC,KAAK,QAAQ;AAEhB;AAAA,EAEF;AAEA,OAAK,WAAW,KAAK;AAErB,sBAAoB,KAAK,QAAQ,MAAM;AAErC,qBAAiB,MAAM,CAAC;AAAA,EAE1B,CAAC;AAEH;AAEO,SAAS,iBAAiB,MAAyB;;AAExD,sBAAoB,OAAM,gBAAK,WAAL,mBAAa,SAAb,mBAAmB,IAAI;AAEnD;AAEO,SAAS,qBAAqB,MAAyB,MAAc;AAE1E,sBAAoB,MAAM,IAAI;AAEhC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-dollhouse-view/styles.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-dollhouse-view/styles.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,MAAM,yBA4BlB,CAAA"}
|
|
@@ -5,10 +5,6 @@ const styles = css`
|
|
|
5
5
|
display: inline-block;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
:host([active]) {
|
|
9
|
-
display: none;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
8
|
.mode-item {
|
|
13
9
|
box-sizing: border-box;
|
|
14
10
|
width: 26px;
|
|
@@ -24,14 +20,12 @@ const styles = css`
|
|
|
24
20
|
background-image: var(--lit-mode-dollhouse-icon, url(${unsafeCSS(iconUrl)}));
|
|
25
21
|
}
|
|
26
22
|
|
|
27
|
-
:host(:not([
|
|
28
|
-
:host([switching]) {
|
|
23
|
+
:host(:not([enabled])) {
|
|
29
24
|
pointer-events: none;
|
|
30
25
|
opacity: 0.5;
|
|
31
26
|
}
|
|
32
27
|
|
|
33
|
-
:host(:not([
|
|
34
|
-
:host([switching]) .mode-item {
|
|
28
|
+
:host(:not([enabled])) .mode-item {
|
|
35
29
|
cursor: not-allowed;
|
|
36
30
|
}
|
|
37
31
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sources":["../../../../src/components/common/lit-switch-dollhouse-view/styles.ts"],"sourcesContent":["/*\r\n * @Author: ncz\r\n * @Date: 2026-05-30\r\n * @Description: lit-switch-dollhouse-view 样式\r\n */\r\n\r\nimport { css, unsafeCSS } from 'lit'\r\nimport iconUrl from './assets/icon.png?url'\r\n\r\nexport const styles = css`\r\n :host {\r\n display: inline-block;\r\n }\r\n\r\n
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../../../src/components/common/lit-switch-dollhouse-view/styles.ts"],"sourcesContent":["/*\r\n * @Author: ncz\r\n * @Date: 2026-05-30\r\n * @Description: lit-switch-dollhouse-view 样式\r\n */\r\n\r\nimport { css, unsafeCSS } from 'lit'\r\nimport iconUrl from './assets/icon.png?url'\r\n\r\nexport const styles = css`\r\n :host {\r\n display: inline-block;\r\n }\r\n\r\n .mode-item {\r\n box-sizing: border-box;\r\n width: 26px;\r\n height: 26px;\r\n background-repeat: no-repeat;\r\n background-size: 26px 26px;\r\n background-position: center;\r\n cursor: pointer;\r\n }\r\n\r\n .mode-item.dollhouse {\r\n background-color: rgba(255, 0, 0, 0.4);\r\n background-image: var(--lit-mode-dollhouse-icon, url(${unsafeCSS(iconUrl)}));\r\n }\r\n\r\n :host(:not([enabled])) {\r\n pointer-events: none;\r\n opacity: 0.5;\r\n }\r\n\r\n :host(:not([enabled])) .mode-item {\r\n cursor: not-allowed;\r\n }\r\n`\r\n"],"names":[],"mappings":";;AASO,MAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2DAiBqC,UAAU,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../../src/components/common/lit-switch-floorplan-view/constants.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-floorplan-view 常量(标签、事件名、CSS 变量)\n */\n\nexport const TAG = 'lit-switch-floorplan-view' as const\
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/components/common/lit-switch-floorplan-view/constants.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-floorplan-view 常量(标签、事件名、CSS 变量)\n */\n\nexport const TAG = 'lit-switch-floorplan-view' as const\n\nexport const VIEW = 'floorplan' as const\n\nexport const ICON_CSS_VAR = '--lit-mode-floorplan-icon' as const\n\nexport const CLICK_EVENT = 'lit-switch-floorplan-click' as const\n\nexport const COMPLETE_EVENT = 'lit-switch-floorplan-complete' as const\n"],"names":[],"mappings":"AAMO,MAAM,MAAM;AAEZ,MAAM,OAAO;AAIb,MAAM,cAAc;AAEpB,MAAM,iBAAiB;"}
|
|
@@ -1,14 +1,43 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
1
|
+
import { LitElement, PropertyValues } from 'lit';
|
|
2
2
|
import { TAG } from './constants.js';
|
|
3
|
-
/** 切换到 floorplan 视图;qspace 须由宿主通过 :qspace
|
|
3
|
+
/** 切换到 floorplan 视图;qspace 须由宿主通过 :qspace 传入 */
|
|
4
4
|
export declare class LitSwitchFloorplanView extends LitElement {
|
|
5
|
+
/** qspace SDK 实例;仅 JS 属性绑定,不映射 HTML attribute(对象无法序列化) */
|
|
5
6
|
qspace: any;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
/**
|
|
8
|
+
* 是否可点击;由 core.loaded / mode.change 自动同步,宿主亦可覆盖
|
|
9
|
+
* HTML: enabled / Vue: :enabled
|
|
10
|
+
*/
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
setEnabled(value: boolean): void;
|
|
9
13
|
static styles: import("lit").CSSResult;
|
|
10
14
|
private _onClick;
|
|
15
|
+
private _onCoreLoaded;
|
|
16
|
+
private _onViewModeChange;
|
|
17
|
+
/**
|
|
18
|
+
* 渲染模板
|
|
19
|
+
*/
|
|
11
20
|
render(): import("lit-html").TemplateResult;
|
|
21
|
+
/**
|
|
22
|
+
* 组件连接生命周期
|
|
23
|
+
*/
|
|
24
|
+
connectedCallback(): void;
|
|
25
|
+
/**
|
|
26
|
+
* 组件断开生命周期
|
|
27
|
+
*/
|
|
28
|
+
disconnectedCallback(): void;
|
|
29
|
+
/**
|
|
30
|
+
* 第一次更新
|
|
31
|
+
*/
|
|
32
|
+
firstUpdated(changed: Map<string, unknown>): void;
|
|
33
|
+
/**
|
|
34
|
+
* 组件更新
|
|
35
|
+
*/
|
|
36
|
+
updated(changed: Map<string, unknown>): void;
|
|
37
|
+
/**
|
|
38
|
+
* 将要更新
|
|
39
|
+
*/
|
|
40
|
+
protected willUpdate(_changedProperties: PropertyValues): void;
|
|
12
41
|
}
|
|
13
42
|
declare global {
|
|
14
43
|
interface HTMLElementTagNameMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-floorplan-view/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-floorplan-view/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAGhD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAMpC,gDAAgD;AAChD,qBACa,sBAAuB,SAAQ,UAAU;IAEpD,0DAA0D;IAE1D,MAAM,EAAE,GAAG,CAAO;IAElB;;;OAGG;IAOH,OAAO,UAAQ;IAEf,UAAU,CAAC,KAAK,EAAE,OAAO;IAQzB,MAAM,CAAC,MAAM,0BAAS;IAEtB,OAAO,CAAC,QAAQ,CAIf;IAED,OAAO,CAAC,aAAa,CAIpB;IAED,OAAO,CAAC,iBAAiB,CAIxB;IAED;;OAEG;IACH,MAAM;IAMN;;OAEG;IACH,iBAAiB;IAcjB;;OAEG;IACH,oBAAoB;IAcpB;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAM1C;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAMrC;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,kBAAkB,EAAE,cAAc,GAAG,IAAI;CAI/D;AAED,OAAO,CAAC,MAAM,CAAC;IAEb,UAAU,qBAAqB;QAE7B,CAAC,GAAG,CAAC,EAAE,sBAAsB,CAAA;KAE9B;CAEF"}
|
|
@@ -2,7 +2,7 @@ import { LitElement } from "lit";
|
|
|
2
2
|
import { property } from "lit/decorators.js";
|
|
3
3
|
import { safeCustomElement } from "../../../utils/define-lit-element.js";
|
|
4
4
|
import { TAG } from "./constants.js";
|
|
5
|
-
import { handleFloorplanClick } from "./interaction.js";
|
|
5
|
+
import { handleFloorplanClick, handelCoreLoaded, handelViewModeChange } from "./interaction.js";
|
|
6
6
|
import { booleanAttr } from "./properties.js";
|
|
7
7
|
import { styles } from "./styles.js";
|
|
8
8
|
import { renderFloorplanView } from "./template.js";
|
|
@@ -20,16 +20,64 @@ let LitSwitchFloorplanView = class extends LitElement {
|
|
|
20
20
|
constructor() {
|
|
21
21
|
super(...arguments);
|
|
22
22
|
this.qspace = null;
|
|
23
|
-
this.
|
|
24
|
-
this.active = false;
|
|
25
|
-
this.switching = false;
|
|
23
|
+
this.enabled = false;
|
|
26
24
|
this._onClick = (e) => {
|
|
27
25
|
handleFloorplanClick(this, e);
|
|
28
26
|
};
|
|
27
|
+
this._onCoreLoaded = () => {
|
|
28
|
+
handelCoreLoaded(this);
|
|
29
|
+
};
|
|
30
|
+
this._onViewModeChange = (mode) => {
|
|
31
|
+
handelViewModeChange(this, mode);
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
setEnabled(value) {
|
|
35
|
+
this.enabled = value;
|
|
36
|
+
this.toggleAttribute("enabled", value);
|
|
29
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* 渲染模板
|
|
40
|
+
*/
|
|
30
41
|
render() {
|
|
31
42
|
return renderFloorplanView(this._onClick);
|
|
32
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* 组件连接生命周期
|
|
46
|
+
*/
|
|
47
|
+
connectedCallback() {
|
|
48
|
+
super.connectedCallback();
|
|
49
|
+
if (this.qspace) {
|
|
50
|
+
this.qspace.core.addEventListener("loaded", this._onCoreLoaded);
|
|
51
|
+
this.qspace.view.addEventListener("mode.change", this._onViewModeChange);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 组件断开生命周期
|
|
56
|
+
*/
|
|
57
|
+
disconnectedCallback() {
|
|
58
|
+
if (this.qspace) {
|
|
59
|
+
this.qspace.core.removeEventListener("loaded", this._onCoreLoaded);
|
|
60
|
+
this.qspace.view.removeEventListener("mode.change", this._onViewModeChange);
|
|
61
|
+
}
|
|
62
|
+
super.disconnectedCallback();
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 第一次更新
|
|
66
|
+
*/
|
|
67
|
+
firstUpdated(changed) {
|
|
68
|
+
super.firstUpdated(changed);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* 组件更新
|
|
72
|
+
*/
|
|
73
|
+
updated(changed) {
|
|
74
|
+
super.updated(changed);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* 将要更新
|
|
78
|
+
*/
|
|
79
|
+
willUpdate(_changedProperties) {
|
|
80
|
+
}
|
|
33
81
|
};
|
|
34
82
|
LitSwitchFloorplanView.styles = styles;
|
|
35
83
|
__decorateClass([
|
|
@@ -38,17 +86,11 @@ __decorateClass([
|
|
|
38
86
|
__decorateClass([
|
|
39
87
|
property({
|
|
40
88
|
type: Boolean,
|
|
41
|
-
attribute: "
|
|
89
|
+
attribute: "enabled",
|
|
42
90
|
reflect: true,
|
|
43
91
|
converter: booleanAttr
|
|
44
92
|
})
|
|
45
|
-
], LitSwitchFloorplanView.prototype, "
|
|
46
|
-
__decorateClass([
|
|
47
|
-
property({ type: Boolean, reflect: true })
|
|
48
|
-
], LitSwitchFloorplanView.prototype, "active", 2);
|
|
49
|
-
__decorateClass([
|
|
50
|
-
property({ type: Boolean, reflect: true })
|
|
51
|
-
], LitSwitchFloorplanView.prototype, "switching", 2);
|
|
93
|
+
], LitSwitchFloorplanView.prototype, "enabled", 2);
|
|
52
94
|
LitSwitchFloorplanView = __decorateClass([
|
|
53
95
|
safeCustomElement(TAG)
|
|
54
96
|
], LitSwitchFloorplanView);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/common/lit-switch-floorplan-view/index.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-floorplan-view 组件注册与属性声明\n */\n\nimport { LitElement } from 'lit'\
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/common/lit-switch-floorplan-view/index.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-floorplan-view 组件注册与属性声明\n */\n\nimport { LitElement, PropertyValues } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { safeCustomElement } from '../../../utils/define-lit-element.js'\nimport { TAG } from './constants.js'\nimport { handleFloorplanClick, handelViewModeChange, handelCoreLoaded } from './interaction.js'\nimport { booleanAttr } from './properties.js'\nimport { styles } from './styles.js'\nimport { renderFloorplanView } from './template.js'\n\n/** 切换到 floorplan 视图;qspace 须由宿主通过 :qspace 传入 */\n@safeCustomElement(TAG)\nexport class LitSwitchFloorplanView extends LitElement {\n\n /** qspace SDK 实例;仅 JS 属性绑定,不映射 HTML attribute(对象无法序列化) */\n @property({ attribute: false })\n qspace: any = null\n\n /**\n * 是否可点击;由 core.loaded / mode.change 自动同步,宿主亦可覆盖\n * HTML: enabled / Vue: :enabled\n */\n @property({\n type: Boolean,\n attribute: 'enabled',\n reflect: true,\n converter: booleanAttr,\n })\n enabled = false\n\n setEnabled(value: boolean) {\n\n this.enabled = value\n\n this.toggleAttribute('enabled', value)\n\n }\n\n static styles = styles\n\n private _onClick = (e: Event) => {\n\n handleFloorplanClick(this, e)\n\n }\n\n private _onCoreLoaded = () => {\n\n handelCoreLoaded(this);\n\n }\n\n private _onViewModeChange = (mode: string) => {\n\n handelViewModeChange(this, mode);\n\n }\n\n /**\n * 渲染模板\n */\n render() {\n\n return renderFloorplanView(this._onClick)\n\n }\n\n /**\n * 组件连接生命周期\n */\n connectedCallback() {\n\n super.connectedCallback()\n\n if (this.qspace) {\n\n this.qspace.core.addEventListener('loaded', this._onCoreLoaded);\n\n this.qspace.view.addEventListener('mode.change', this._onViewModeChange);\n\n }\n\n }\n\n /**\n * 组件断开生命周期\n */\n disconnectedCallback() {\n\n if (this.qspace) {\n\n this.qspace.core.removeEventListener('loaded', this._onCoreLoaded);\n\n this.qspace.view.removeEventListener('mode.change', this._onViewModeChange);\n\n }\n\n super.disconnectedCallback()\n\n }\n\n /**\n * 第一次更新\n */\n firstUpdated(changed: Map<string, unknown>) {\n\n super.firstUpdated(changed)\n\n }\n\n /**\n * 组件更新\n */\n updated(changed: Map<string, unknown>) {\n\n super.updated(changed)\n\n }\n\n /**\n * 将要更新\n */\n protected willUpdate(_changedProperties: PropertyValues): void {\n\n }\n\n}\n\ndeclare global {\n\n interface HTMLElementTagNameMap {\n\n [TAG]: LitSwitchFloorplanView\n\n }\n\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAiBO,IAAM,yBAAN,cAAqC,WAAW;AAAA,EAAhD,cAAA;AAAA,UAAA,GAAA,SAAA;AAIL,SAAA,SAAc;AAYd,SAAA,UAAU;AAYV,SAAQ,WAAW,CAAC,MAAa;AAE/B,2BAAqB,MAAM,CAAC;AAAA,IAE9B;AAEA,SAAQ,gBAAgB,MAAM;AAE5B,uBAAiB,IAAI;AAAA,IAEvB;AAEA,SAAQ,oBAAoB,CAAC,SAAiB;AAE5C,2BAAqB,MAAM,IAAI;AAAA,IAEjC;AAAA,EAAA;AAAA,EA1BA,WAAW,OAAgB;AAEzB,SAAK,UAAU;AAEf,SAAK,gBAAgB,WAAW,KAAK;AAAA,EAEvC;AAAA;AAAA;AAAA;AAAA,EAyBA,SAAS;AAEP,WAAO,oBAAoB,KAAK,QAAQ;AAAA,EAE1C;AAAA;AAAA;AAAA;AAAA,EAKA,oBAAoB;AAElB,UAAM,kBAAA;AAEN,QAAI,KAAK,QAAQ;AAEf,WAAK,OAAO,KAAK,iBAAiB,UAAU,KAAK,aAAa;AAE9D,WAAK,OAAO,KAAK,iBAAiB,eAAe,KAAK,iBAAiB;AAAA,IAEzE;AAAA,EAEF;AAAA;AAAA;AAAA;AAAA,EAKA,uBAAuB;AAErB,QAAI,KAAK,QAAQ;AAEf,WAAK,OAAO,KAAK,oBAAoB,UAAU,KAAK,aAAa;AAEjE,WAAK,OAAO,KAAK,oBAAoB,eAAe,KAAK,iBAAiB;AAAA,IAE5E;AAEA,UAAM,qBAAA;AAAA,EAER;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,SAA+B;AAE1C,UAAM,aAAa,OAAO;AAAA,EAE5B;AAAA;AAAA;AAAA;AAAA,EAKA,QAAQ,SAA+B;AAErC,UAAM,QAAQ,OAAO;AAAA,EAEvB;AAAA;AAAA;AAAA;AAAA,EAKU,WAAW,oBAA0C;AAAA,EAE/D;AAEF;AAlHa,uBA0BJ,SAAS;AAtBhB,gBAAA;AAAA,EADC,SAAS,EAAE,WAAW,MAAA,CAAO;AAAA,GAHnB,uBAIX,WAAA,UAAA,CAAA;AAYA,gBAAA;AAAA,EANC,SAAS;AAAA,IACR,MAAM;AAAA,IACN,WAAW;AAAA,IACX,SAAS;AAAA,IACT,WAAW;AAAA,EAAA,CACZ;AAAA,GAfU,uBAgBX,WAAA,WAAA,CAAA;AAhBW,yBAAN,gBAAA;AAAA,EADN,kBAAkB,GAAG;AAAA,GACT,sBAAA;"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
export type FloorplanViewHost = HTMLElement & {
|
|
2
2
|
qspace: any;
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
enabled: boolean;
|
|
4
|
+
setEnabled: (value: boolean) => void;
|
|
5
5
|
};
|
|
6
|
+
/** 根据 qspace.view.mode 同步 enabled:当前视图或过渡中不可点 */
|
|
7
|
+
export declare function syncEnabledFromMode(host: FloorplanViewHost, mode: string | undefined): void;
|
|
6
8
|
export declare function handleFloorplanClick(host: FloorplanViewHost, e: Event): void;
|
|
9
|
+
export declare function handelCoreLoaded(host: FloorplanViewHost): void;
|
|
10
|
+
export declare function handelViewModeChange(host: FloorplanViewHost, mode: string): void;
|
|
7
11
|
//# sourceMappingURL=interaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-floorplan-view/interaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-floorplan-view/interaction.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,iBAAiB,GAAG,WAAW,GAAG;IAE5C,MAAM,EAAE,GAAG,CAAA;IACX,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAErC,CAAA;AAED,iDAAiD;AACjD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,QAmBpF;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC,EAAE,KAAK,QA2BrE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,iBAAiB,QAIvD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,QAIzE"}
|
|
@@ -1,7 +1,20 @@
|
|
|
1
|
+
import { ViewMode } from "../../../enum/view.mode.js";
|
|
1
2
|
import { dispatchClick, dispatchComplete } from "./events.js";
|
|
2
3
|
import { turnToFloorplanView } from "./logic.js";
|
|
4
|
+
function syncEnabledFromMode(host, mode) {
|
|
5
|
+
switch (mode) {
|
|
6
|
+
case ViewMode.Transitioning:
|
|
7
|
+
case ViewMode.Floorplan:
|
|
8
|
+
host.setEnabled(false);
|
|
9
|
+
break;
|
|
10
|
+
case ViewMode.Dollhouse:
|
|
11
|
+
case ViewMode.Panorama:
|
|
12
|
+
host.setEnabled(true);
|
|
13
|
+
break;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
3
16
|
function handleFloorplanClick(host, e) {
|
|
4
|
-
if (!host.
|
|
17
|
+
if (!host.enabled) {
|
|
5
18
|
e.preventDefault();
|
|
6
19
|
e.stopPropagation();
|
|
7
20
|
return;
|
|
@@ -10,11 +23,22 @@ function handleFloorplanClick(host, e) {
|
|
|
10
23
|
if (!host.qspace) {
|
|
11
24
|
return;
|
|
12
25
|
}
|
|
26
|
+
host.setEnabled(false);
|
|
13
27
|
turnToFloorplanView(host.qspace, () => {
|
|
14
28
|
dispatchComplete(host, e);
|
|
15
29
|
});
|
|
16
30
|
}
|
|
31
|
+
function handelCoreLoaded(host) {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
syncEnabledFromMode(host, (_b = (_a = host.qspace) == null ? void 0 : _a.view) == null ? void 0 : _b.mode);
|
|
34
|
+
}
|
|
35
|
+
function handelViewModeChange(host, mode) {
|
|
36
|
+
syncEnabledFromMode(host, mode);
|
|
37
|
+
}
|
|
17
38
|
export {
|
|
18
|
-
|
|
39
|
+
handelCoreLoaded,
|
|
40
|
+
handelViewModeChange,
|
|
41
|
+
handleFloorplanClick,
|
|
42
|
+
syncEnabledFromMode
|
|
19
43
|
};
|
|
20
44
|
//# sourceMappingURL=interaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.js","sources":["../../../../src/components/common/lit-switch-floorplan-view/interaction.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-floorplan-view 点击交互流程\n */\n\nimport { dispatchClick, dispatchComplete } from './events.js'\
|
|
1
|
+
{"version":3,"file":"interaction.js","sources":["../../../../src/components/common/lit-switch-floorplan-view/interaction.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-floorplan-view 点击交互流程\n */\n\nimport { ViewMode } from '@/enum/view.mode'\nimport { dispatchClick, dispatchComplete } from './events.js'\nimport { turnToFloorplanView } from './logic.js'\n\nexport type FloorplanViewHost = HTMLElement & {\n\n qspace: any\n enabled: boolean\n setEnabled: (value: boolean) => void\n\n}\n\n/** 根据 qspace.view.mode 同步 enabled:当前视图或过渡中不可点 */\nexport function syncEnabledFromMode(host: FloorplanViewHost, mode: string | undefined) {\n\n switch (mode) {\n\n case ViewMode.Transitioning:\n case ViewMode.Floorplan:\n host.setEnabled(false)\n break\n\n case ViewMode.Dollhouse:\n case ViewMode.Panorama:\n host.setEnabled(true)\n break\n\n default:\n break\n\n }\n\n}\n\nexport function handleFloorplanClick(host: FloorplanViewHost, e: Event) {\n\n if (!host.enabled) {\n\n e.preventDefault()\n e.stopPropagation()\n\n return\n\n }\n\n dispatchClick(host, e)\n\n if (!host.qspace) {\n\n return\n\n }\n\n host.setEnabled(false)\n\n turnToFloorplanView(host.qspace, () => {\n\n dispatchComplete(host, e)\n\n })\n\n}\n\nexport function handelCoreLoaded(host: FloorplanViewHost) {\n\n syncEnabledFromMode(host, host.qspace?.view?.mode)\n\n}\n\nexport function handelViewModeChange(host: FloorplanViewHost, mode: string) {\n\n syncEnabledFromMode(host, mode)\n\n}\n"],"names":[],"mappings":";;;AAmBO,SAAS,oBAAoB,MAAyB,MAA0B;AAErF,UAAQ,MAAA;AAAA,IAEN,KAAK,SAAS;AAAA,IACd,KAAK,SAAS;AACZ,WAAK,WAAW,KAAK;AACrB;AAAA,IAEF,KAAK,SAAS;AAAA,IACd,KAAK,SAAS;AACZ,WAAK,WAAW,IAAI;AACpB;AAAA,EAGA;AAIN;AAEO,SAAS,qBAAqB,MAAyB,GAAU;AAEtE,MAAI,CAAC,KAAK,SAAS;AAEjB,MAAE,eAAA;AACF,MAAE,gBAAA;AAEF;AAAA,EAEF;AAEA,gBAAc,MAAM,CAAC;AAErB,MAAI,CAAC,KAAK,QAAQ;AAEhB;AAAA,EAEF;AAEA,OAAK,WAAW,KAAK;AAErB,sBAAoB,KAAK,QAAQ,MAAM;AAErC,qBAAiB,MAAM,CAAC;AAAA,EAE1B,CAAC;AAEH;AAEO,SAAS,iBAAiB,MAAyB;;AAExD,sBAAoB,OAAM,gBAAK,WAAL,mBAAa,SAAb,mBAAmB,IAAI;AAEnD;AAEO,SAAS,qBAAqB,MAAyB,MAAc;AAE1E,sBAAoB,MAAM,IAAI;AAEhC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic.js","sources":["../../../../src/components/common/lit-switch-floorplan-view/logic.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-floorplan-view qspace 视图切换逻辑\n */\n\nexport function turnToFloorplanView(qspace: any, complete: () => void) {\
|
|
1
|
+
{"version":3,"file":"logic.js","sources":["../../../../src/components/common/lit-switch-floorplan-view/logic.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-floorplan-view qspace 视图切换逻辑\n */\n\nexport function turnToFloorplanView(qspace: any, complete: () => void) {\n\n qspace.view.turnToFloorplan({ complete })\n\n}\n"],"names":[],"mappings":"AAMO,SAAS,oBAAoB,QAAa,UAAsB;AAErE,SAAO,KAAK,gBAAgB,EAAE,SAAA,CAAU;AAE1C;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-floorplan-view/styles.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-floorplan-view/styles.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,MAAM,yBA4BlB,CAAA"}
|
|
@@ -5,10 +5,6 @@ const styles = css`
|
|
|
5
5
|
display: inline-block;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
:host([active]) {
|
|
9
|
-
display: none;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
8
|
.mode-item {
|
|
13
9
|
box-sizing: border-box;
|
|
14
10
|
width: 26px;
|
|
@@ -24,14 +20,12 @@ const styles = css`
|
|
|
24
20
|
background-image: var(--lit-mode-floorplan-icon, url(${unsafeCSS(iconUrl)}));
|
|
25
21
|
}
|
|
26
22
|
|
|
27
|
-
:host(:not([
|
|
28
|
-
:host([switching]) {
|
|
23
|
+
:host(:not([enabled])) {
|
|
29
24
|
pointer-events: none;
|
|
30
25
|
opacity: 0.5;
|
|
31
26
|
}
|
|
32
27
|
|
|
33
|
-
:host(:not([
|
|
34
|
-
:host([switching]) .mode-item {
|
|
28
|
+
:host(:not([enabled])) .mode-item {
|
|
35
29
|
cursor: not-allowed;
|
|
36
30
|
}
|
|
37
31
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sources":["../../../../src/components/common/lit-switch-floorplan-view/styles.ts"],"sourcesContent":["/*\r\n * @Author: ncz\r\n * @Date: 2026-05-30\r\n * @Description: lit-switch-floorplan-view 样式\r\n */\r\n\r\nimport { css, unsafeCSS } from 'lit'\r\nimport iconUrl from './assets/icon.png?url'\r\n\r\nexport const styles = css`\r\n :host {\r\n display: inline-block;\r\n }\r\n\r\n
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../../../src/components/common/lit-switch-floorplan-view/styles.ts"],"sourcesContent":["/*\r\n * @Author: ncz\r\n * @Date: 2026-05-30\r\n * @Description: lit-switch-floorplan-view 样式\r\n */\r\n\r\nimport { css, unsafeCSS } from 'lit'\r\nimport iconUrl from './assets/icon.png?url'\r\n\r\nexport const styles = css`\r\n :host {\r\n display: inline-block;\r\n }\r\n\r\n .mode-item {\r\n box-sizing: border-box;\r\n width: 26px;\r\n height: 26px;\r\n background-repeat: no-repeat;\r\n background-size: 26px 26px;\r\n background-position: center;\r\n cursor: pointer;\r\n }\r\n\r\n .mode-item.floorplan {\r\n background-color: rgba(255, 0, 0, 0.4);\r\n background-image: var(--lit-mode-floorplan-icon, url(${unsafeCSS(iconUrl)}));\r\n }\r\n\r\n :host(:not([enabled])) {\r\n pointer-events: none;\r\n opacity: 0.5;\r\n }\r\n\r\n :host(:not([enabled])) .mode-item {\r\n cursor: not-allowed;\r\n }\r\n`\r\n"],"names":[],"mappings":";;AASO,MAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2DAiBqC,UAAU,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../../src/components/common/lit-switch-panorama-view/constants.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-panorama-view 常量(标签、事件名、CSS 变量)\n */\n\nexport const TAG = 'lit-switch-panorama-view' as const\
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../src/components/common/lit-switch-panorama-view/constants.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-panorama-view 常量(标签、事件名、CSS 变量)\n */\n\nexport const TAG = 'lit-switch-panorama-view' as const\n\nexport const VIEW = 'panorama' as const\n\nexport const ICON_CSS_VAR = '--lit-mode-panorama-icon' as const\n\nexport const CLICK_EVENT = 'lit-switch-panorama-click' as const\n\nexport const COMPLETE_EVENT = 'lit-switch-panorama-complete' as const\n"],"names":[],"mappings":"AAMO,MAAM,MAAM;AAEZ,MAAM,OAAO;AAIb,MAAM,cAAc;AAEpB,MAAM,iBAAiB;"}
|
|
@@ -1,14 +1,67 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
1
|
+
import { LitElement, PropertyValues } from 'lit';
|
|
2
2
|
import { TAG } from './constants.js';
|
|
3
|
-
|
|
3
|
+
import { type PanoramaSwitchOption } from './properties.js';
|
|
4
|
+
/** 切换到 panorama 视图;qspace 须由宿主通过 :qspace 传入 */
|
|
4
5
|
export declare class LitSwitchPanoramaView extends LitElement {
|
|
6
|
+
/** qspace SDK 实例;仅 JS 属性绑定,不映射 HTML attribute(对象无法序列化) */
|
|
5
7
|
qspace: any;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
|
|
10
|
+
* 是否可点击;由 core.loaded / mode.change 自动同步,宿主亦可覆盖
|
|
11
|
+
|
|
12
|
+
* HTML: enabled / Vue: :enabled
|
|
13
|
+
|
|
14
|
+
*/
|
|
15
|
+
enabled: boolean;
|
|
16
|
+
/**
|
|
17
|
+
|
|
18
|
+
* 切换全景视图参数;仅 JS 属性绑定
|
|
19
|
+
|
|
20
|
+
* Vue: :option="{ locationId, quaternion }"
|
|
21
|
+
|
|
22
|
+
*/
|
|
23
|
+
option: PanoramaSwitchOption | null;
|
|
24
|
+
setEnabled(value: boolean): void;
|
|
9
25
|
static styles: import("lit").CSSResult;
|
|
10
26
|
private _onClick;
|
|
27
|
+
private _onCoreLoaded;
|
|
28
|
+
private _onViewModeChange;
|
|
29
|
+
/**
|
|
30
|
+
|
|
31
|
+
* 渲染模板
|
|
32
|
+
|
|
33
|
+
*/
|
|
11
34
|
render(): import("lit-html").TemplateResult;
|
|
35
|
+
/**
|
|
36
|
+
|
|
37
|
+
* 组件连接生命周期
|
|
38
|
+
|
|
39
|
+
*/
|
|
40
|
+
connectedCallback(): void;
|
|
41
|
+
/**
|
|
42
|
+
|
|
43
|
+
* 组件断开生命周期
|
|
44
|
+
|
|
45
|
+
*/
|
|
46
|
+
disconnectedCallback(): void;
|
|
47
|
+
/**
|
|
48
|
+
|
|
49
|
+
* 第一次更新
|
|
50
|
+
|
|
51
|
+
*/
|
|
52
|
+
firstUpdated(changed: Map<string, unknown>): void;
|
|
53
|
+
/**
|
|
54
|
+
|
|
55
|
+
* 组件更新
|
|
56
|
+
|
|
57
|
+
*/
|
|
58
|
+
updated(changed: Map<string, unknown>): void;
|
|
59
|
+
/**
|
|
60
|
+
|
|
61
|
+
* 将要更新
|
|
62
|
+
|
|
63
|
+
*/
|
|
64
|
+
protected willUpdate(_changedProperties: PropertyValues): void;
|
|
12
65
|
}
|
|
13
66
|
declare global {
|
|
14
67
|
interface HTMLElementTagNameMap {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-panorama-view/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-panorama-view/index.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAA;AAMhD,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AAIpC,OAAO,EAAe,KAAK,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAQxE,+CAA+C;AAE/C,qBAEa,qBAAsB,SAAQ,UAAU;IAInD,0DAA0D;IAI1D,MAAM,EAAE,GAAG,CAAO;IAIlB;;;;;;OAMG;IAcH,OAAO,UAAQ;IAIf;;;;;;OAMG;IAIH,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAO;IAI1C,UAAU,CAAC,KAAK,EAAE,OAAO;IAgBzB,MAAM,CAAC,MAAM,0BAAS;IAItB,OAAO,CAAC,QAAQ,CAQf;IAID,OAAO,CAAC,aAAa,CAQpB;IAID,OAAO,CAAC,iBAAiB,CAQxB;IAID;;;;OAIG;IAEH,MAAM;IAYN;;;;OAIG;IAEH,iBAAiB;IA4BjB;;;;OAIG;IAEH,oBAAoB;IA4BpB;;;;OAIG;IAEH,YAAY,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAY1C;;;;OAIG;IAEH,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAYrC;;;;OAIG;IAEH,SAAS,CAAC,UAAU,CAAC,kBAAkB,EAAE,cAAc,GAAG,IAAI;CAQ/D;AAID,OAAO,CAAC,MAAM,CAAC;IAIb,UAAU,qBAAqB;QAI7B,CAAC,GAAG,CAAC,EAAE,qBAAqB,CAAA;KAI7B;CAIF"}
|
|
@@ -2,7 +2,7 @@ import { LitElement } from "lit";
|
|
|
2
2
|
import { property } from "lit/decorators.js";
|
|
3
3
|
import { safeCustomElement } from "../../../utils/define-lit-element.js";
|
|
4
4
|
import { TAG } from "./constants.js";
|
|
5
|
-
import { handlePanoramaClick } from "./interaction.js";
|
|
5
|
+
import { handlePanoramaClick, handelCoreLoaded, handelViewModeChange } from "./interaction.js";
|
|
6
6
|
import { booleanAttr } from "./properties.js";
|
|
7
7
|
import { styles } from "./styles.js";
|
|
8
8
|
import { renderPanoramaView } from "./template.js";
|
|
@@ -20,16 +20,77 @@ let LitSwitchPanoramaView = class extends LitElement {
|
|
|
20
20
|
constructor() {
|
|
21
21
|
super(...arguments);
|
|
22
22
|
this.qspace = null;
|
|
23
|
-
this.
|
|
24
|
-
this.
|
|
25
|
-
this.switching = false;
|
|
23
|
+
this.enabled = false;
|
|
24
|
+
this.option = null;
|
|
26
25
|
this._onClick = (e) => {
|
|
27
26
|
handlePanoramaClick(this, e);
|
|
28
27
|
};
|
|
28
|
+
this._onCoreLoaded = () => {
|
|
29
|
+
handelCoreLoaded(this);
|
|
30
|
+
};
|
|
31
|
+
this._onViewModeChange = (mode) => {
|
|
32
|
+
handelViewModeChange(this, mode);
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
setEnabled(value) {
|
|
36
|
+
this.enabled = value;
|
|
37
|
+
this.toggleAttribute("enabled", value);
|
|
29
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
|
|
41
|
+
* 渲染模板
|
|
42
|
+
|
|
43
|
+
*/
|
|
30
44
|
render() {
|
|
31
45
|
return renderPanoramaView(this._onClick);
|
|
32
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
|
|
49
|
+
* 组件连接生命周期
|
|
50
|
+
|
|
51
|
+
*/
|
|
52
|
+
connectedCallback() {
|
|
53
|
+
super.connectedCallback();
|
|
54
|
+
if (this.qspace) {
|
|
55
|
+
this.qspace.core.addEventListener("loaded", this._onCoreLoaded);
|
|
56
|
+
this.qspace.view.addEventListener("mode.change", this._onViewModeChange);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
|
|
61
|
+
* 组件断开生命周期
|
|
62
|
+
|
|
63
|
+
*/
|
|
64
|
+
disconnectedCallback() {
|
|
65
|
+
if (this.qspace) {
|
|
66
|
+
this.qspace.core.removeEventListener("loaded", this._onCoreLoaded);
|
|
67
|
+
this.qspace.view.removeEventListener("mode.change", this._onViewModeChange);
|
|
68
|
+
}
|
|
69
|
+
super.disconnectedCallback();
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
|
|
73
|
+
* 第一次更新
|
|
74
|
+
|
|
75
|
+
*/
|
|
76
|
+
firstUpdated(changed) {
|
|
77
|
+
super.firstUpdated(changed);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
|
|
81
|
+
* 组件更新
|
|
82
|
+
|
|
83
|
+
*/
|
|
84
|
+
updated(changed) {
|
|
85
|
+
super.updated(changed);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
|
|
89
|
+
* 将要更新
|
|
90
|
+
|
|
91
|
+
*/
|
|
92
|
+
willUpdate(_changedProperties) {
|
|
93
|
+
}
|
|
33
94
|
};
|
|
34
95
|
LitSwitchPanoramaView.styles = styles;
|
|
35
96
|
__decorateClass([
|
|
@@ -38,17 +99,14 @@ __decorateClass([
|
|
|
38
99
|
__decorateClass([
|
|
39
100
|
property({
|
|
40
101
|
type: Boolean,
|
|
41
|
-
attribute: "
|
|
102
|
+
attribute: "enabled",
|
|
42
103
|
reflect: true,
|
|
43
104
|
converter: booleanAttr
|
|
44
105
|
})
|
|
45
|
-
], LitSwitchPanoramaView.prototype, "
|
|
106
|
+
], LitSwitchPanoramaView.prototype, "enabled", 2);
|
|
46
107
|
__decorateClass([
|
|
47
|
-
property({
|
|
48
|
-
], LitSwitchPanoramaView.prototype, "
|
|
49
|
-
__decorateClass([
|
|
50
|
-
property({ type: Boolean, reflect: true })
|
|
51
|
-
], LitSwitchPanoramaView.prototype, "switching", 2);
|
|
108
|
+
property({ attribute: false })
|
|
109
|
+
], LitSwitchPanoramaView.prototype, "option", 2);
|
|
52
110
|
LitSwitchPanoramaView = __decorateClass([
|
|
53
111
|
safeCustomElement(TAG)
|
|
54
112
|
], LitSwitchPanoramaView);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/common/lit-switch-panorama-view/index.ts"],"sourcesContent":["/*\r\n * @Author: ncz\r\n * @Date: 2026-05-30\r\n * @Description: lit-switch-panorama-view 组件注册与属性声明\r\n */\r\n\r\nimport { LitElement } from 'lit'\r\nimport { property } from 'lit/decorators.js'\r\nimport { safeCustomElement } from '../../../utils/define-lit-element.js'\r\nimport { TAG } from './constants.js'\r\nimport { handlePanoramaClick } from './interaction.js'\r\nimport { booleanAttr } from './properties.js'\r\nimport { styles } from './styles.js'\r\nimport { renderPanoramaView } from './template.js'\r\n\r\n/** 切换到 panorama 视图;qspace 须由宿主通过 :qspace
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/common/lit-switch-panorama-view/index.ts"],"sourcesContent":["/*\r\r\n * @Author: ncz\r\r\n * @Date: 2026-05-30\r\r\n * @Description: lit-switch-panorama-view 组件注册与属性声明\r\r\n */\r\r\n\r\r\nimport { LitElement, PropertyValues } from 'lit'\r\r\nimport { property } from 'lit/decorators.js'\r\r\nimport { safeCustomElement } from '../../../utils/define-lit-element.js'\r\r\nimport { TAG } from './constants.js'\r\r\nimport { handlePanoramaClick, handelViewModeChange, handelCoreLoaded } from './interaction.js'\r\r\nimport { booleanAttr, type PanoramaSwitchOption } from './properties.js'\r\r\nimport { styles } from './styles.js'\r\r\nimport { renderPanoramaView } from './template.js'\r\r\n\r\r\n/** 切换到 panorama 视图;qspace 须由宿主通过 :qspace 传入 */\r\r\n@safeCustomElement(TAG)\r\r\nexport class LitSwitchPanoramaView extends LitElement {\r\r\n\r\r\n /** qspace SDK 实例;仅 JS 属性绑定,不映射 HTML attribute(对象无法序列化) */\r\r\n @property({ attribute: false })\r\r\n qspace: any = null\r\r\n\r\r\n /**\r\r\n * 是否可点击;由 core.loaded / mode.change 自动同步,宿主亦可覆盖\r\r\n * HTML: enabled / Vue: :enabled\r\r\n */\r\r\n @property({\r\r\n type: Boolean,\r\r\n attribute: 'enabled',\r\r\n reflect: true,\r\r\n converter: booleanAttr,\r\r\n })\r\r\n enabled = false\r\r\n\r\r\n /**\r\r\n * 切换全景视图参数;仅 JS 属性绑定\r\r\n * Vue: :option=\"{ locationId, quaternion }\"\r\r\n */\r\r\n @property({ attribute: false })\r\r\n option: PanoramaSwitchOption | null = null\r\r\n\r\r\n setEnabled(value: boolean) {\r\r\n\r\r\n this.enabled = value\r\r\n\r\r\n this.toggleAttribute('enabled', value)\r\r\n\r\r\n }\r\r\n\r\r\n static styles = styles\r\r\n\r\r\n private _onClick = (e: Event) => {\r\r\n\r\r\n handlePanoramaClick(this, e)\r\r\n\r\r\n }\r\r\n\r\r\n private _onCoreLoaded = () => {\r\r\n\r\r\n handelCoreLoaded(this);\r\r\n\r\r\n }\r\r\n\r\r\n private _onViewModeChange = (mode: string) => {\r\r\n\r\r\n handelViewModeChange(this, mode);\r\r\n\r\r\n }\r\r\n\r\r\n /**\r\r\n * 渲染模板\r\r\n */\r\r\n render() {\r\r\n\r\r\n return renderPanoramaView(this._onClick)\r\r\n\r\r\n }\r\r\n\r\r\n /**\r\r\n * 组件连接生命周期\r\r\n */\r\r\n connectedCallback() {\r\r\n\r\r\n super.connectedCallback()\r\r\n\r\r\n if (this.qspace) {\r\r\n\r\r\n this.qspace.core.addEventListener('loaded', this._onCoreLoaded);\r\r\n\r\r\n this.qspace.view.addEventListener('mode.change', this._onViewModeChange);\r\r\n\r\r\n }\r\r\n\r\r\n }\r\r\n\r\r\n /**\r\r\n * 组件断开生命周期\r\r\n */\r\r\n disconnectedCallback() {\r\r\n\r\r\n if (this.qspace) {\r\r\n\r\r\n this.qspace.core.removeEventListener('loaded', this._onCoreLoaded);\r\r\n\r\r\n this.qspace.view.removeEventListener('mode.change', this._onViewModeChange);\r\r\n\r\r\n }\r\r\n\r\r\n super.disconnectedCallback()\r\r\n\r\r\n }\r\r\n\r\r\n /**\r\r\n * 第一次更新\r\r\n */\r\r\n firstUpdated(changed: Map<string, unknown>) {\r\r\n\r\r\n super.firstUpdated(changed)\r\r\n\r\r\n }\r\r\n\r\r\n /**\r\r\n * 组件更新\r\r\n */\r\r\n updated(changed: Map<string, unknown>) {\r\r\n\r\r\n super.updated(changed)\r\r\n\r\r\n }\r\r\n\r\r\n /**\r\r\n * 将要更新\r\r\n */\r\r\n protected willUpdate(_changedProperties: PropertyValues): void {\r\r\n\r\r\n }\r\r\n\r\r\n}\r\r\n\r\r\ndeclare global {\r\r\n\r\r\n interface HTMLElementTagNameMap {\r\r\n\r\r\n [TAG]: LitSwitchPanoramaView\r\r\n\r\r\n }\r\r\n\r\r\n}\r\r\n\r"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAkCO,IAAM,wBAAN,cAAoC,WAAW;AAAA,EAA/C,cAAA;AAAA,UAAA,GAAA,SAAA;AAQL,SAAA,SAAc;AAwBd,SAAA,UAAU;AAcV,SAAA,SAAsC;AAwBtC,SAAQ,WAAW,CAAC,MAAa;AAI/B,0BAAoB,MAAM,CAAC;AAAA,IAI7B;AAIA,SAAQ,gBAAgB,MAAM;AAI5B,uBAAiB,IAAI;AAAA,IAIvB;AAIA,SAAQ,oBAAoB,CAAC,SAAiB;AAI5C,2BAAqB,MAAM,IAAI;AAAA,IAIjC;AAAA,EAAA;AAAA,EApDA,WAAW,OAAgB;AAIzB,SAAK,UAAU;AAIf,SAAK,gBAAgB,WAAW,KAAK;AAAA,EAIvC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAkDA,SAAS;AAIP,WAAO,mBAAmB,KAAK,QAAQ;AAAA,EAIzC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,oBAAoB;AAIlB,UAAM,kBAAA;AAIN,QAAI,KAAK,QAAQ;AAIf,WAAK,OAAO,KAAK,iBAAiB,UAAU,KAAK,aAAa;AAI9D,WAAK,OAAO,KAAK,iBAAiB,eAAe,KAAK,iBAAiB;AAAA,IAIzE;AAAA,EAIF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,uBAAuB;AAIrB,QAAI,KAAK,QAAQ;AAIf,WAAK,OAAO,KAAK,oBAAoB,UAAU,KAAK,aAAa;AAIjE,WAAK,OAAO,KAAK,oBAAoB,eAAe,KAAK,iBAAiB;AAAA,IAI5E;AAIA,UAAM,qBAAA;AAAA,EAIR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,aAAa,SAA+B;AAI1C,UAAM,aAAa,OAAO;AAAA,EAI5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,QAAQ,SAA+B;AAIrC,UAAM,QAAQ,OAAO;AAAA,EAIvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUU,WAAW,oBAA0C;AAAA,EAI/D;AAIF;AAlPa,sBAkEJ,SAAS;AA1DhB,gBAAA;AAAA,EAFC,SAAS,EAAE,WAAW,MAAA,CAAO;AAAA,GANnB,sBAQX,WAAA,UAAA,CAAA;AAwBA,gBAAA;AAAA,EAZC,SAAS;AAAA,IAER,MAAM;AAAA,IAEN,WAAW;AAAA,IAEX,SAAS;AAAA,IAET,WAAW;AAAA,EAAA,CAEZ;AAAA,GA9BU,sBAgCX,WAAA,WAAA,CAAA;AAcA,gBAAA;AAAA,EAFC,SAAS,EAAE,WAAW,MAAA,CAAO;AAAA,GA5CnB,sBA8CX,WAAA,UAAA,CAAA;AA9CW,wBAAN,gBAAA;AAAA,EAFN,kBAAkB,GAAG;AAAA,GAET,qBAAA;"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
import type { PanoramaSwitchOption } from './properties.js';
|
|
1
2
|
export type PanoramaViewHost = HTMLElement & {
|
|
2
3
|
qspace: any;
|
|
3
|
-
|
|
4
|
-
|
|
4
|
+
option: PanoramaSwitchOption | null;
|
|
5
|
+
enabled: boolean;
|
|
6
|
+
setEnabled: (value: boolean) => void;
|
|
5
7
|
};
|
|
8
|
+
/** 根据 qspace.view.mode 同步 enabled:当前视图或过渡中不可点 */
|
|
9
|
+
export declare function syncEnabledFromMode(host: PanoramaViewHost, mode: string | undefined): void;
|
|
6
10
|
/** 点击交互:校验 → 派发 click → 执行 qspace 切换 → 派发 complete */
|
|
7
11
|
export declare function handlePanoramaClick(host: PanoramaViewHost, e: Event): void;
|
|
12
|
+
export declare function handelCoreLoaded(host: PanoramaViewHost): void;
|
|
13
|
+
export declare function handelViewModeChange(host: PanoramaViewHost, mode: string): void;
|
|
8
14
|
//# sourceMappingURL=interaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-panorama-view/interaction.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG;IAE3C,MAAM,EAAE,GAAG,CAAA;IACX,
|
|
1
|
+
{"version":3,"file":"interaction.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-panorama-view/interaction.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAE3D,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG;IAE3C,MAAM,EAAE,GAAG,CAAA;IACX,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAA;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;CAErC,CAAA;AAED,iDAAiD;AACjD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,QAmBnF;AAED,sDAAsD;AACtD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,KAAK,QA2BnE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,QAItD;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,QAIxE"}
|
|
@@ -1,7 +1,20 @@
|
|
|
1
|
+
import { ViewMode } from "../../../enum/view.mode.js";
|
|
1
2
|
import { dispatchClick, dispatchComplete } from "./events.js";
|
|
2
3
|
import { turnToPanoramaView } from "./logic.js";
|
|
4
|
+
function syncEnabledFromMode(host, mode) {
|
|
5
|
+
switch (mode) {
|
|
6
|
+
case ViewMode.Transitioning:
|
|
7
|
+
case ViewMode.Panorama:
|
|
8
|
+
host.setEnabled(false);
|
|
9
|
+
break;
|
|
10
|
+
case ViewMode.Dollhouse:
|
|
11
|
+
case ViewMode.Floorplan:
|
|
12
|
+
host.setEnabled(true);
|
|
13
|
+
break;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
3
16
|
function handlePanoramaClick(host, e) {
|
|
4
|
-
if (!host.
|
|
17
|
+
if (!host.enabled) {
|
|
5
18
|
e.preventDefault();
|
|
6
19
|
e.stopPropagation();
|
|
7
20
|
return;
|
|
@@ -10,11 +23,22 @@ function handlePanoramaClick(host, e) {
|
|
|
10
23
|
if (!host.qspace) {
|
|
11
24
|
return;
|
|
12
25
|
}
|
|
13
|
-
|
|
26
|
+
host.setEnabled(false);
|
|
27
|
+
turnToPanoramaView(host.qspace, host.option, () => {
|
|
14
28
|
dispatchComplete(host, e);
|
|
15
29
|
});
|
|
16
30
|
}
|
|
31
|
+
function handelCoreLoaded(host) {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
syncEnabledFromMode(host, (_b = (_a = host.qspace) == null ? void 0 : _a.view) == null ? void 0 : _b.mode);
|
|
34
|
+
}
|
|
35
|
+
function handelViewModeChange(host, mode) {
|
|
36
|
+
syncEnabledFromMode(host, mode);
|
|
37
|
+
}
|
|
17
38
|
export {
|
|
18
|
-
|
|
39
|
+
handelCoreLoaded,
|
|
40
|
+
handelViewModeChange,
|
|
41
|
+
handlePanoramaClick,
|
|
42
|
+
syncEnabledFromMode
|
|
19
43
|
};
|
|
20
44
|
//# sourceMappingURL=interaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interaction.js","sources":["../../../../src/components/common/lit-switch-panorama-view/interaction.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-panorama-view 点击交互流程\n */\n\nimport { dispatchClick, dispatchComplete } from './events.js'\
|
|
1
|
+
{"version":3,"file":"interaction.js","sources":["../../../../src/components/common/lit-switch-panorama-view/interaction.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-panorama-view 点击交互流程\n */\n\nimport { ViewMode } from '@/enum/view.mode'\nimport { dispatchClick, dispatchComplete } from './events.js'\nimport { turnToPanoramaView } from './logic.js'\nimport type { PanoramaSwitchOption } from './properties.js'\n\nexport type PanoramaViewHost = HTMLElement & {\n\n qspace: any\n option: PanoramaSwitchOption | null\n enabled: boolean\n setEnabled: (value: boolean) => void\n\n}\n\n/** 根据 qspace.view.mode 同步 enabled:当前视图或过渡中不可点 */\nexport function syncEnabledFromMode(host: PanoramaViewHost, mode: string | undefined) {\n\n switch (mode) {\n\n case ViewMode.Transitioning:\n case ViewMode.Panorama:\n host.setEnabled(false)\n break\n\n case ViewMode.Dollhouse:\n case ViewMode.Floorplan:\n host.setEnabled(true)\n break\n\n default:\n break\n\n }\n\n}\n\n/** 点击交互:校验 → 派发 click → 执行 qspace 切换 → 派发 complete */\nexport function handlePanoramaClick(host: PanoramaViewHost, e: Event) {\n\n if (!host.enabled) {\n\n e.preventDefault()\n e.stopPropagation()\n\n return\n\n }\n\n dispatchClick(host, e)\n\n if (!host.qspace) {\n\n return\n\n }\n\n host.setEnabled(false)\n\n turnToPanoramaView(host.qspace, host.option, () => {\n\n dispatchComplete(host, e)\n\n })\n\n}\n\nexport function handelCoreLoaded(host: PanoramaViewHost) {\n\n syncEnabledFromMode(host, host.qspace?.view?.mode)\n\n}\n\nexport function handelViewModeChange(host: PanoramaViewHost, mode: string) {\n\n syncEnabledFromMode(host, mode)\n\n}\n"],"names":[],"mappings":";;;AAqBO,SAAS,oBAAoB,MAAwB,MAA0B;AAEpF,UAAQ,MAAA;AAAA,IAEN,KAAK,SAAS;AAAA,IACd,KAAK,SAAS;AACZ,WAAK,WAAW,KAAK;AACrB;AAAA,IAEF,KAAK,SAAS;AAAA,IACd,KAAK,SAAS;AACZ,WAAK,WAAW,IAAI;AACpB;AAAA,EAGA;AAIN;AAGO,SAAS,oBAAoB,MAAwB,GAAU;AAEpE,MAAI,CAAC,KAAK,SAAS;AAEjB,MAAE,eAAA;AACF,MAAE,gBAAA;AAEF;AAAA,EAEF;AAEA,gBAAc,MAAM,CAAC;AAErB,MAAI,CAAC,KAAK,QAAQ;AAEhB;AAAA,EAEF;AAEA,OAAK,WAAW,KAAK;AAErB,qBAAmB,KAAK,QAAQ,KAAK,QAAQ,MAAM;AAEjD,qBAAiB,MAAM,CAAC;AAAA,EAE1B,CAAC;AAEH;AAEO,SAAS,iBAAiB,MAAwB;;AAEvD,sBAAoB,OAAM,gBAAK,WAAL,mBAAa,SAAb,mBAAmB,IAAI;AAEnD;AAEO,SAAS,qBAAqB,MAAwB,MAAc;AAEzE,sBAAoB,MAAM,IAAI;AAEhC;"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
|
|
1
|
+
import type { PanoramaSwitchOption } from './properties.js';
|
|
2
|
+
export declare function turnToPanoramaView(qspace: any, option: PanoramaSwitchOption | null, complete: () => void): void;
|
|
2
3
|
//# sourceMappingURL=logic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-panorama-view/logic.ts"],"names":[],"mappings":"AAMA,wBAAgB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"logic.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-panorama-view/logic.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAE3D,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,GAAG,EACX,MAAM,EAAE,oBAAoB,GAAG,IAAI,EACnC,QAAQ,EAAE,MAAM,IAAI,QAkBrB"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
function turnToPanoramaView(qspace, complete) {
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
qspace.view.turnToPanorama({
|
|
1
|
+
function turnToPanoramaView(qspace, option, complete) {
|
|
2
|
+
const locationId = option == null ? void 0 : option.locationId;
|
|
3
|
+
const params = {
|
|
5
4
|
location_id: locationId,
|
|
6
5
|
complete
|
|
7
|
-
}
|
|
6
|
+
};
|
|
7
|
+
if (option == null ? void 0 : option.quaternion) {
|
|
8
|
+
params.quaternion = option.quaternion;
|
|
9
|
+
}
|
|
10
|
+
qspace.view.turnToPanorama(params);
|
|
8
11
|
}
|
|
9
12
|
export {
|
|
10
13
|
turnToPanoramaView
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logic.js","sources":["../../../../src/components/common/lit-switch-panorama-view/logic.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-panorama-view qspace 视图切换逻辑\n */\n\nexport function turnToPanoramaView(qspace: any
|
|
1
|
+
{"version":3,"file":"logic.js","sources":["../../../../src/components/common/lit-switch-panorama-view/logic.ts"],"sourcesContent":["/*\r\n * @Author: ncz\r\n * @Date: 2026-05-30\r\n * @Description: lit-switch-panorama-view qspace 视图切换逻辑\r\n */\r\n\r\nimport type { PanoramaSwitchOption } from './properties.js'\r\n\r\nexport function turnToPanoramaView(\r\n qspace: any,\r\n option: PanoramaSwitchOption | null,\r\n complete: () => void,\r\n) {\r\n\r\n const locationId = option?.locationId;\r\n\r\n const params: Record<string, unknown> = {\r\n location_id: locationId,\r\n complete,\r\n }\r\n\r\n if (option?.quaternion) {\r\n\r\n params.quaternion = option.quaternion\r\n\r\n }\r\n\r\n qspace.view.turnToPanorama(params)\r\n\r\n}\r\n"],"names":[],"mappings":"AAQO,SAAS,mBACd,QACA,QACA,UACA;AAEA,QAAM,aAAa,iCAAQ;AAE3B,QAAM,SAAkC;AAAA,IACtC,aAAa;AAAA,IACb;AAAA,EAAA;AAGF,MAAI,iCAAQ,YAAY;AAEtB,WAAO,aAAa,OAAO;AAAA,EAE7B;AAEA,SAAO,KAAK,eAAe,MAAM;AAEnC;"}
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
export type PanoramaSwitchQuaternion = {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
z: number;
|
|
5
|
+
w: number;
|
|
6
|
+
};
|
|
7
|
+
/** 切换全景视图参数;由宿主通过 :option 传入 */
|
|
8
|
+
export type PanoramaSwitchOption = {
|
|
9
|
+
locationId?: string;
|
|
10
|
+
quaternion?: PanoramaSwitchQuaternion;
|
|
11
|
+
};
|
|
1
12
|
export declare const booleanAttr: {
|
|
2
13
|
fromAttribute(value: string | null): boolean;
|
|
3
14
|
toAttribute(value: boolean): string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-panorama-view/properties.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,WAAW;yBACD,MAAM,GAAG,IAAI,GAAG,OAAO;uBAQzB,OAAO,GAAG,MAAM,GAAG,IAAI;CAK3C,CAAA"}
|
|
1
|
+
{"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-panorama-view/properties.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,wBAAwB,GAAG;IAErC,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CAEV,CAAA;AAED,gCAAgC;AAChC,MAAM,MAAM,oBAAoB,GAAG;IAEjC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,wBAAwB,CAAA;CAEtC,CAAA;AAED,eAAO,MAAM,WAAW;yBACD,MAAM,GAAG,IAAI,GAAG,OAAO;uBAQzB,OAAO,GAAG,MAAM,GAAG,IAAI;CAK3C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"properties.js","sources":["../../../../src/components/common/lit-switch-panorama-view/properties.ts"],"sourcesContent":["/*\n * @Author: ncz\n * @Date: 2026-05-30\n * @Description: lit-switch-panorama-view
|
|
1
|
+
{"version":3,"file":"properties.js","sources":["../../../../src/components/common/lit-switch-panorama-view/properties.ts"],"sourcesContent":["/*\r\n * @Author: ncz\r\n * @Date: 2026-05-30\r\n * @Description: lit-switch-panorama-view 属性转换器与类型\r\n */\r\n\r\nexport type PanoramaSwitchQuaternion = {\r\n\r\n x: number\r\n y: number\r\n z: number\r\n w: number\r\n\r\n}\r\n\r\n/** 切换全景视图参数;由宿主通过 :option 传入 */\r\nexport type PanoramaSwitchOption = {\r\n\r\n locationId?: string\r\n quaternion?: PanoramaSwitchQuaternion\r\n\r\n}\r\n\r\nexport const booleanAttr = {\r\n fromAttribute(value: string | null): boolean {\r\n\r\n if (value === null) return false\r\n if (value === 'false' || value === '0') return false\r\n\r\n return true\r\n\r\n },\r\n toAttribute(value: boolean): string | null {\r\n\r\n return value ? '' : null\r\n\r\n },\r\n}\r\n"],"names":[],"mappings":"AAuBO,MAAM,cAAc;AAAA,EACzB,cAAc,OAA+B;AAE3C,QAAI,UAAU,KAAM,QAAO;AAC3B,QAAI,UAAU,WAAW,UAAU,IAAK,QAAO;AAE/C,WAAO;AAAA,EAET;AAAA,EACA,YAAY,OAA+B;AAEzC,WAAO,QAAQ,KAAK;AAAA,EAEtB;AACF;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-panorama-view/styles.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../src/components/common/lit-switch-panorama-view/styles.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,MAAM,yBA4BlB,CAAA"}
|
|
@@ -5,10 +5,6 @@ const styles = css`
|
|
|
5
5
|
display: inline-block;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
:host([active]) {
|
|
9
|
-
display: none;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
8
|
.mode-item {
|
|
13
9
|
box-sizing: border-box;
|
|
14
10
|
width: 26px;
|
|
@@ -24,14 +20,12 @@ const styles = css`
|
|
|
24
20
|
background-image: var(--lit-mode-panorama-icon, url(${unsafeCSS(iconUrl)}));
|
|
25
21
|
}
|
|
26
22
|
|
|
27
|
-
:host(:not([
|
|
28
|
-
:host([switching]) {
|
|
23
|
+
:host(:not([enabled])) {
|
|
29
24
|
pointer-events: none;
|
|
30
25
|
opacity: 0.5;
|
|
31
26
|
}
|
|
32
27
|
|
|
33
|
-
:host(:not([
|
|
34
|
-
:host([switching]) .mode-item {
|
|
28
|
+
:host(:not([enabled])) .mode-item {
|
|
35
29
|
cursor: not-allowed;
|
|
36
30
|
}
|
|
37
31
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sources":["../../../../src/components/common/lit-switch-panorama-view/styles.ts"],"sourcesContent":["/*\r\n * @Author: ncz\r\n * @Date: 2026-05-30\r\n * @Description: lit-switch-panorama-view 样式\r\n */\r\n\r\nimport { css, unsafeCSS } from 'lit'\r\nimport iconUrl from './assets/icon.png?url'\r\n\r\nexport const styles = css`\r\n :host {\r\n display: inline-block;\r\n }\r\n\r\n
|
|
1
|
+
{"version":3,"file":"styles.js","sources":["../../../../src/components/common/lit-switch-panorama-view/styles.ts"],"sourcesContent":["/*\r\n * @Author: ncz\r\n * @Date: 2026-05-30\r\n * @Description: lit-switch-panorama-view 样式\r\n */\r\n\r\nimport { css, unsafeCSS } from 'lit'\r\nimport iconUrl from './assets/icon.png?url'\r\n\r\nexport const styles = css`\r\n :host {\r\n display: inline-block;\r\n }\r\n\r\n .mode-item {\r\n box-sizing: border-box;\r\n width: 26px;\r\n height: 26px;\r\n background-repeat: no-repeat;\r\n background-size: 26px 26px;\r\n background-position: center;\r\n cursor: pointer;\r\n }\r\n\r\n .mode-item.panorama {\r\n background-color: rgba(255, 0, 0, 0.4);\r\n background-image: var(--lit-mode-panorama-icon, url(${unsafeCSS(iconUrl)}));\r\n }\r\n\r\n :host(:not([enabled])) {\r\n pointer-events: none;\r\n opacity: 0.5;\r\n }\r\n\r\n :host(:not([enabled])) .mode-item {\r\n cursor: not-allowed;\r\n }\r\n`\r\n"],"names":[],"mappings":";;AASO,MAAM,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0DAiBoC,UAAU,OAAO,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.mode.d.ts","sourceRoot":"","sources":["../../src/enum/view.mode.ts"],"names":[],"mappings":"AAKA,oBAAY,QAAQ;IAClB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,aAAa,kBAAkB;CAChC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
var ViewMode = /* @__PURE__ */ ((ViewMode2) => {
|
|
2
|
+
ViewMode2["Dollhouse"] = "dollhouse";
|
|
3
|
+
ViewMode2["Floorplan"] = "floorplan";
|
|
4
|
+
ViewMode2["Panorama"] = "panorama";
|
|
5
|
+
ViewMode2["Transitioning"] = "transitioning";
|
|
6
|
+
return ViewMode2;
|
|
7
|
+
})(ViewMode || {});
|
|
8
|
+
export {
|
|
9
|
+
ViewMode
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=view.mode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"view.mode.js","sources":["../../src/enum/view.mode.ts"],"sourcesContent":["/*\r\n * @Author: ncz\r\n * @Date: 2026-06-02 11:04:43\r\n * @Description: 视图模式枚举\r\n */\r\nexport enum ViewMode {\r\n Dollhouse = 'dollhouse',\r\n Floorplan = 'floorplan',\r\n Panorama = 'panorama',\r\n Transitioning = 'transitioning'\r\n}"],"names":["ViewMode"],"mappings":"AAKO,IAAK,6BAAAA,cAAL;AACLA,YAAA,WAAA,IAAY;AACZA,YAAA,WAAA,IAAY;AACZA,YAAA,UAAA,IAAW;AACXA,YAAA,eAAA,IAAgB;AAJN,SAAAA;AAAA,GAAA,YAAA,CAAA,CAAA;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-lit-element.js","sources":["../../src/utils/define-lit-element.ts"],"sourcesContent":["/**\
|
|
1
|
+
{"version":3,"file":"define-lit-element.js","sources":["../../src/utils/define-lit-element.ts"],"sourcesContent":["/**\n * 安全注册自定义元素:微前端多应用 / HMR 重复加载同一模块时跳过已注册标签\n */\nexport function safeCustomElement(tag: string) {\n\n return <T extends CustomElementConstructor>(\n cls: T,\n _context?: ClassDecoratorContext,\n ): T => {\n\n if (!customElements.get(tag)) {\n\n customElements.define(tag, cls)\n\n }\n\n return cls\n\n }\n\n}\n"],"names":[],"mappings":"AAGO,SAAS,kBAAkB,KAAa;AAE7C,SAAO,CACL,KACA,aACM;AAEN,QAAI,CAAC,eAAe,IAAI,GAAG,GAAG;AAE5B,qBAAe,OAAO,KAAK,GAAG;AAAA,IAEhC;AAEA,WAAO;AAAA,EAET;AAEF;"}
|