_WidgetTests.ts
59 lines
| 1.1 KiB
| video/mp2t
|
TypeScriptLexer
cin
|
r2 | import * as _WidgetBase from "dijit/_WidgetBase"; | ||
import { watch } from "./traits"; | ||||
cin
|
r1 | |||
interface ScheduleWidgetAttrs { | ||||
data: string[]; | ||||
} | ||||
cin
|
r2 | interface ScheduleWidgetEvents { | ||
"scheduled": Event & { | ||||
detail: { | ||||
startDate: Date, | ||||
endDate: Date | ||||
} | ||||
}; | ||||
} | ||||
cin
|
r1 | |||
cin
|
r5 | class ScheduleWidget extends _WidgetBase<ScheduleWidgetAttrs, ScheduleWidgetEvents> { | ||
cin
|
r1 | data: string[]; | ||
cin
|
r5 | |||
_onClick() { | ||||
cin
|
r18 | this.set("data", ["", ""]); | ||
cin
|
r5 | |||
const t = this.get("title"); | ||||
this.set({ | ||||
data: ["",""] | ||||
}); | ||||
} | ||||
render(){ | ||||
watch(this, "title", v => String(v) ); | ||||
} | ||||
cin
|
r1 | } | ||
const w = new ScheduleWidget({title: "Year schedule", data: ["a", "b"] }); | ||||
cin
|
r2 | w.get("data"); | ||
cin
|
r18 | w.set("data", ["a","b"]); | ||
cin
|
r5 | w.set({ | ||
data: ["a", "b"] | ||||
}); | ||||
cin
|
r2 | w.watch((p, o, n) => [p,o,n]); | ||
w.watch("data", (p, o, n) => [p,o,n]); | ||||
watch(w, "title", v => String(v) ); | ||||
watch(w, "data", v => String(v) ); | ||||
w.emit("scheduled", { detail: { startDate: new Date(), endDate: new Date()} }); | ||||
w.emit("click", {} ); | ||||
w.emit("click", {} ); | ||||
cin
|
r10 | w.emit<any>("some-extra-event", {}); | ||
cin
|
r2 | |||
w.on("click", e => e); | ||||
cin
|
r10 | w.on<any>("some-extra-event", e => e); | ||