| @@ -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
                    
                