@@ -0,0 +1,22 | |||
|
1 | import { djbase, djclass, bind, prototype } from "../declare"; | |
|
2 | ||
|
3 | import { DjxWidgetBase } from "../tsx/DjxWidgetBase"; | |
|
4 | import { createElement } from "../tsx"; | |
|
5 | ||
|
6 | ||
|
7 | @djclass | |
|
8 | export class MyWidget extends djbase(DjxWidgetBase) { | |
|
9 | ||
|
10 | @bind({node: "titleNode", type:"innerHTML"}) | |
|
11 | title = ""; | |
|
12 | ||
|
13 | @prototype() | |
|
14 | counter = 0; | |
|
15 | ||
|
16 | render() { | |
|
17 | return <div> | |
|
18 | <h1 data-dojo-attach-point="titleNode"></h1> | |
|
19 | </div>; | |
|
20 | } | |
|
21 | ||
|
22 | } |
@@ -43,12 +43,8 configureTsMain { | |||
|
43 | 43 | |
|
44 | 44 | configureTsTest { |
|
45 | 45 | compilerOptions { |
|
46 | baseUrl = "." | |
|
47 | paths = [ | |
|
48 | "@implab/djx" : [ sources.main.output.typingsDir.get().toString() ], | |
|
49 | "@implab/djx/*" : [ "${sources.main.output.typingsDir.get().toString()}/*" ] | |
|
50 | ] | |
|
51 | types = ["requirejs", sources.main.output.typingsDir.get().toString()] | |
|
46 | typeRoots = [] | |
|
47 | types = ["requirejs", sources.main.output.typingsDir.get().toString() ] | |
|
52 | 48 | } |
|
53 | 49 | } |
|
54 | 50 |
@@ -80,11 +80,11 export function djbase<T0, T1, T2, T3, T | |||
|
80 | 80 | /** Создает конструктор-заглушку из списка базовых классов, используется |
|
81 | 81 | * для объявления классов при помощи `dojo/_base/declare`. |
|
82 | 82 | * |
|
83 | * Создает пустой конструтор, с пустым стандартным прототипом, это нужно, | |
|
83 | * Создает пустой конструктор, с пустым стандартным прототипом, это нужно, | |
|
84 | 84 | * поскольку в унаследованном классе конструктор обязательно должен вызвать |
|
85 | 85 | * `super(...)`, таким образом он вызовет пустую функцию. |
|
86 | 86 | * |
|
87 | * Созданный конструтор хранит в себе список базовых классов, который будет | |
|
87 | * Созданный конструктор хранит в себе список базовых классов, который будет | |
|
88 | 88 | * использован декоратором `djclass`, который вернет класс, объявленный при |
|
89 | 89 | * помощи `dojo/_base/declare`. |
|
90 | 90 | * |
@@ -215,21 +215,17 function isNodeBindSpec(v: any): v is No | |||
|
215 | 215 | return "node" in v; |
|
216 | 216 | } |
|
217 | 217 | |
|
218 | function isMemberBindSpec(v: any): v is MemberBindSpec { | |
|
219 | return "member" in v; | |
|
220 | } | |
|
221 | ||
|
222 | 218 | /** Декорирует свойства виджета для привязки их к внутренним членам, либо DOM |
|
223 | 219 | * элементам, либо свойству внутреннего объекта. |
|
224 | 220 | * |
|
225 | 221 | * @param {NodeBindSpec | MemberBindSpec} params Параметры связывания. |
|
226 | 222 | */ |
|
227 | 223 | export function bind(params: NodeBindSpec | MemberBindSpec) { |
|
228 | if (isNodeBindSpec(params)) | |
|
224 | if (isNodeBindSpec(params)) { | |
|
229 | 225 | return (target: any, name: string) => { |
|
230 | 226 | target[makeSetterName(name)] = params; |
|
231 | 227 | }; |
|
232 | else if (isMemberBindSpec(params)) { | |
|
228 | } else { | |
|
233 | 229 | return (target: any, name: string) => { |
|
234 | 230 | target[name] = null; |
|
235 | 231 | target[makeSetterName(name)] = function (v: any) { |
@@ -7,7 +7,7 | |||
|
7 | 7 | "typings" |
|
8 | 8 | ], |
|
9 | 9 | "types": [ |
|
10 |
"requirejs", "./typings |
|
|
10 | "requirejs", "./typings", "dojo-typings" | |
|
11 | 11 | ] |
|
12 | 12 | } |
|
13 | } No newline at end of file | |
|
13 | } |
@@ -2,3 +2,9 declare module "@implab/djx/css!*" { | |||
|
2 | 2 | const result: { url: string }; |
|
3 | 3 | export = result; |
|
4 | 4 | } |
|
5 | ||
|
6 | declare namespace JSX { | |
|
7 | interface IntrinsicElements { | |
|
8 | [name: string]: any; | |
|
9 | } | |
|
10 | } |
@@ -1,8 +1,7 | |||
|
1 | 1 | import { test } from "./TestTraits"; |
|
2 | 2 | import { delay } from "@implab/core-amd/safe"; |
|
3 | 3 | import { assert } from "chai"; |
|
4 |
import css = require("@implab/djx/css!my |
|
|
5 | import {} from "@implab/djx/i18n"; | |
|
4 | import css = require("@implab/djx/css!my.css"); | |
|
6 | 5 | |
|
7 | 6 | test("simple", (ok, fail, log) => { |
|
8 | 7 | setTimeout(() => { |
@@ -1,7 +1,6 | |||
|
1 | 1 | { |
|
2 | 2 | "extends": "../tsconfig", |
|
3 | 3 | "compilerOptions": { |
|
4 | "baseUrl": ".", | |
|
5 | 4 | //"rootDir": "ts", |
|
6 | 5 | "rootDirs": [ |
|
7 | 6 | "ts", |
@@ -9,10 +8,6 | |||
|
9 | 8 | "../main/ts", |
|
10 | 9 | "../main/typings" |
|
11 | 10 | ], |
|
12 | "paths": { | |
|
13 | "@implab/djx" : ["../main/ts", "../main/typings"], | |
|
14 | "@implab/djx/*" : ["../main/ts/*", "../main/typings/*" ] | |
|
15 | }, | |
|
16 | "types": ["requirejs", "../main/typings"] | |
|
11 | "types": ["requirejs", "../main/typings", "dojo-typings"] | |
|
17 | 12 | } |
|
18 | 13 | } No newline at end of file |
General Comments 0
You need to be logged in to leave comments.
Login now