diff --git a/src/core/BaseDialog.ts b/src/core/BaseDialog.ts index 5a1b167..e074bd9 100644 --- a/src/core/BaseDialog.ts +++ b/src/core/BaseDialog.ts @@ -35,7 +35,7 @@ namespace OS { */ export abstract class SubWindow extends BaseModel { modal: false; - parent: BaseModel; + parent: BaseModel | typeof GUI; /** *Creates an instance of SubWindow. @@ -91,8 +91,9 @@ namespace OS { * @memberof SubWindow */ meta(): API.PackageMetaType { - if (this.parent && this.parent.meta) { - return this.parent.meta(); + const p = this.parent as BaseModel; + if (p && p.meta) { + return p.meta(); } } diff --git a/src/core/gui.ts b/src/core/gui.ts index 892a87b..b1b30a4 100644 --- a/src/core/gui.ts +++ b/src/core/gui.ts @@ -165,7 +165,7 @@ namespace OS { dialog = d as GUI.BaseDialog; } - dialog.parent = undefined; + dialog.parent = GUI; dialog.handle = resolve; dialog.pid = -1; dialog.data = data; diff --git a/src/core/tags/ButtonTag.ts b/src/core/tags/ButtonTag.ts index 4419b57..e72cdcc 100644 --- a/src/core/tags/ButtonTag.ts +++ b/src/core/tags/ButtonTag.ts @@ -60,7 +60,6 @@ namespace OS { } protected mount() { - this._onbtclick = (e) => {}; $(this.refs.button).click((e) => { const evt: TagEventType = { id: this.aid, @@ -76,6 +75,7 @@ namespace OS { protected init(): void { this.enable = true; this.toggle = false; + this._onbtclick = (e) => {}; } protected calibrate(): void {} reload(d?: any): void {} diff --git a/src/core/tags/tag.ts b/src/core/tags/tag.ts index b6c1963..a95573f 100644 --- a/src/core/tags/tag.ts +++ b/src/core/tags/tag.ts @@ -57,7 +57,10 @@ namespace OS { set(v: GenericObject) { for (let k in v) { let descriptor = this.descriptor_of(k); - if (descriptor && descriptor.set) this[k] = v[k]; + if (descriptor && descriptor.set) + { + this[k] = v[k]; + } } } diff --git a/tests/testTag.ts b/tests/testTag.ts index 2003ec2..d8ab74d 100644 --- a/tests/testTag.ts +++ b/tests/testTag.ts @@ -95,6 +95,13 @@ test("Test button tag behavior", () =>{ bt.onbtclick = cb $("button",bt).trigger("click"); expect(cb).toBeCalledTimes(1); + const data = { + text: "name", + onbtclick: jest.fn() + }; + bt.set(data); + $("button",bt).trigger("click"); + expect(data.onbtclick).toBeCalledTimes(1); }); // Label test