dom-render 1.0.85 → 1.0.88
Sign up to get free protection for your applications and to get access to all the features.
- package/DomRender.d.ts +6 -6
- package/DomRender.js +11 -6
- package/DomRenderProxy.d.ts +3 -3
- package/DomRenderProxy.js +3 -2
- package/README.MD +46 -16
- package/configs/Config.d.ts +26 -0
- package/{Config.js → configs/Config.js} +0 -0
- package/configs/TargetAttr.d.ts +6 -0
- package/configs/TargetAttr.js +2 -0
- package/configs/TargetElement.d.ts +14 -0
- package/configs/TargetElement.js +2 -0
- package/dist/bundle.js +275 -255
- package/events/EventManager.d.ts +1 -1
- package/lifecycle/OnDestroyRender.d.ts +1 -1
- package/lifecycle/OnInitRender.d.ts +2 -1
- package/lifecycle/OnProxyDomRender.d.ts +1 -1
- package/messenger/Messenger.d.ts +1 -1
- package/operators/Dr.js +1 -1
- package/operators/DrAppender.js +1 -1
- package/operators/DrFor.js +1 -1
- package/operators/DrForOf.js +1 -1
- package/operators/DrForm.js +1 -1
- package/operators/DrIf.js +1 -1
- package/operators/DrInnerHTML.js +1 -1
- package/operators/DrInnerText.js +1 -1
- package/operators/DrRepeat.js +1 -1
- package/operators/DrTargetAttr.js +1 -1
- package/operators/DrTargetElement.js +2 -2
- package/operators/DrThis.js +5 -2
- package/operators/OperatorRender.d.ts +6 -2
- package/package.json +6 -2
- package/rawsets/AttrInitCallBack.d.ts +5 -0
- package/rawsets/AttrInitCallBack.js +2 -0
- package/rawsets/Attrs.d.ts +21 -0
- package/rawsets/Attrs.js +2 -0
- package/rawsets/CreatorMetaData.d.ts +18 -0
- package/rawsets/CreatorMetaData.js +2 -0
- package/rawsets/DestroyOptionType.d.ts +4 -0
- package/rawsets/DestroyOptionType.js +8 -0
- package/rawsets/ElementInitCallBack.d.ts +8 -0
- package/rawsets/ElementInitCallBack.js +2 -0
- package/{RawSet.d.ts → rawsets/RawSet.d.ts} +18 -73
- package/{RawSet.js → rawsets/RawSet.js} +108 -109
- package/rawsets/RawSetType.d.ts +7 -0
- package/rawsets/RawSetType.js +11 -0
- package/rawsets/Render.d.ts +17 -0
- package/rawsets/Render.js +2 -0
- package/Config.d.ts +0 -38
package/DomRender.d.ts
CHANGED
@@ -1,13 +1,13 @@
|
|
1
|
-
import { Config } from './Config';
|
1
|
+
import { Config } from './configs/Config';
|
2
2
|
import { ConstructorType } from './types/Types';
|
3
|
-
import { RawSet } from './RawSet';
|
3
|
+
import { RawSet } from './rawsets/RawSet';
|
4
4
|
export declare class DomRender {
|
5
|
-
static run<T extends object>(obj: T, target?: Node,
|
5
|
+
static run<T extends object>(obj: T, target?: Node | null, oConfig?: Omit<Config, 'window'>): T;
|
6
6
|
static createComponent(param: {
|
7
|
-
type: ConstructorType<any
|
7
|
+
type: ConstructorType<any> | any;
|
8
8
|
tagName?: string;
|
9
9
|
template?: string;
|
10
10
|
styles?: string[] | string;
|
11
|
-
}
|
12
|
-
static createAttribute(attrName: string, getThisObj: (element: Element, attrValue: string, obj: any, rawSet: RawSet) => any, factory: (element: Element, attrValue: string, obj: any, rawSet: RawSet) => DocumentFragment): import("./
|
11
|
+
}): import("./configs/TargetElement").TargetElement;
|
12
|
+
static createAttribute(attrName: string, getThisObj: (element: Element, attrValue: string, obj: any, rawSet: RawSet) => any, factory: (element: Element, attrValue: string, obj: any, rawSet: RawSet) => DocumentFragment): import("./configs/TargetAttr").TargetAttr;
|
13
13
|
}
|
package/DomRender.js
CHANGED
@@ -14,12 +14,12 @@ var DomRenderProxy_1 = require("./DomRenderProxy");
|
|
14
14
|
var PathRouter_1 = require("./routers/PathRouter");
|
15
15
|
var HashRouter_1 = require("./routers/HashRouter");
|
16
16
|
var Types_1 = require("./types/Types");
|
17
|
-
var RawSet_1 = require("./RawSet");
|
17
|
+
var RawSet_1 = require("./rawsets/RawSet");
|
18
18
|
var DefaultMessenger_1 = require("./messenger/DefaultMessenger");
|
19
19
|
var DomRender = /** @class */ (function () {
|
20
20
|
function DomRender() {
|
21
21
|
}
|
22
|
-
DomRender.run = function (obj, target,
|
22
|
+
DomRender.run = function (obj, target, oConfig) {
|
23
23
|
var _a, _b, _c;
|
24
24
|
var robj = obj;
|
25
25
|
if ('_DomRender_isProxy' in obj) {
|
@@ -29,9 +29,13 @@ var DomRender = /** @class */ (function () {
|
|
29
29
|
robj = obj;
|
30
30
|
return robj;
|
31
31
|
}
|
32
|
+
var config = oConfig;
|
32
33
|
if (!config) {
|
33
34
|
config = { window: window };
|
34
35
|
}
|
36
|
+
if (config && !config.window) {
|
37
|
+
config.window = window;
|
38
|
+
}
|
35
39
|
config.routerType = config.routerType || 'none';
|
36
40
|
config.messenger = Types_1.DomRenderFinalProxy.final((_a = config.messenger) !== null && _a !== void 0 ? _a : new DefaultMessenger_1.DefaultMessenger(config));
|
37
41
|
var domRender = new DomRenderProxy_1.DomRenderProxy(obj, target, config);
|
@@ -46,12 +50,13 @@ var DomRender = /** @class */ (function () {
|
|
46
50
|
domRender.run(robj);
|
47
51
|
return robj;
|
48
52
|
};
|
49
|
-
DomRender.createComponent = function (param
|
53
|
+
DomRender.createComponent = function (param) {
|
50
54
|
var _a, _b;
|
51
|
-
|
55
|
+
// console.log('===>', typeof param.type, param.type.name, param.type.constructor.name)
|
56
|
+
var component = RawSet_1.RawSet.createComponentTargetElement((_a = param.tagName) !== null && _a !== void 0 ? _a : (typeof param.type === 'function' ? param.type.name : param.type.constructor.name), function (e, o, r2, counstructorParam) {
|
52
57
|
var _a;
|
53
|
-
return new ((_a = param.type).bind.apply(_a, __spreadArray([void 0], counstructorParam, false)))();
|
54
|
-
}, (_b = param.template) !== null && _b !== void 0 ? _b : '', Array.isArray(param.styles) ? param.styles : (param.styles ? [param.styles] : undefined)
|
58
|
+
return typeof param.type === 'function' ? new ((_a = param.type).bind.apply(_a, __spreadArray([void 0], counstructorParam, false)))() : param.type;
|
59
|
+
}, (_b = param.template) !== null && _b !== void 0 ? _b : '', Array.isArray(param.styles) ? param.styles : (param.styles ? [param.styles] : undefined));
|
55
60
|
return component;
|
56
61
|
};
|
57
62
|
DomRender.createAttribute = function (attrName, getThisObj, factory) {
|
package/DomRenderProxy.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
import { RawSet } from './RawSet';
|
2
|
-
import { Config } from './Config';
|
1
|
+
import { RawSet } from './rawsets/RawSet';
|
2
|
+
import { Config } from './configs/Config';
|
3
3
|
export declare class DomRenderProxy<T extends object> implements ProxyHandler<T> {
|
4
4
|
_domRender_origin: T;
|
5
5
|
config: Config;
|
@@ -7,7 +7,7 @@ export declare class DomRenderProxy<T extends object> implements ProxyHandler<T>
|
|
7
7
|
_rawSets: Map<string, Set<RawSet>>;
|
8
8
|
_domRender_proxy?: T;
|
9
9
|
_targets: Set<Node>;
|
10
|
-
constructor(_domRender_origin: T, target: Node | undefined, config: Config);
|
10
|
+
constructor(_domRender_origin: T, target: Node | null | undefined, config: Config);
|
11
11
|
static unFinal<T = any>(obj: T): T;
|
12
12
|
static final<T = any>(obj: T): T;
|
13
13
|
static isFinal<T = any>(obj: T): boolean;
|
package/DomRenderProxy.js
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.DomRenderProxy = void 0;
|
4
|
-
var RawSet_1 = require("./RawSet");
|
4
|
+
var RawSet_1 = require("./rawsets/RawSet");
|
5
5
|
var EventManager_1 = require("./events/EventManager");
|
6
6
|
var ScriptUtils_1 = require("./utils/script/ScriptUtils");
|
7
7
|
var Types_1 = require("./types/Types");
|
8
|
+
var RawSetType_1 = require("./rawsets/RawSetType");
|
8
9
|
var excludeGetSetPropertys = ['onBeforeReturnGet', 'onBeforeReturnSet', '__domrender_components', '__render', '_DomRender_isFinal', '_domRender_ref', '_rawSets', '_domRender_proxy', '_targets', '_DomRender_origin', '_DomRender_ref', '_DomRender_proxy'];
|
9
10
|
var DomRenderProxy = /** @class */ (function () {
|
10
11
|
function DomRenderProxy(_domRender_origin, target, config) {
|
@@ -118,7 +119,7 @@ var DomRenderProxy = /** @class */ (function () {
|
|
118
119
|
if ((_c = it.detect) === null || _c === void 0 ? void 0 : _c.action) {
|
119
120
|
it.detect.action();
|
120
121
|
}
|
121
|
-
else if (it.type ===
|
122
|
+
else if (it.type === RawSetType_1.RawSetType.TARGET_ELEMENT && it.data && fullPathStr && targetAttrMap && it.fragment.render) {
|
122
123
|
new Map(JSON.parse(targetAttrMap)).forEach(function (v, k) {
|
123
124
|
// it?.data.onChangeAttrRender(k, null, v);
|
124
125
|
var isUsing = EventManager_1.EventManager.isUsingThisVar(v, "this.".concat(fullPathStr));
|
package/README.MD
CHANGED
@@ -7,7 +7,7 @@ DOM-RENDER
|
|
7
7
|
|
8
8
|
# 🚀 Quick start
|
9
9
|
```html
|
10
|
-
<script src="https://cdn.jsdelivr.net/npm/dom-render@1.0.
|
10
|
+
<script src="https://cdn.jsdelivr.net/npm/dom-render@1.0.86/dist/bundle.js"></script>
|
11
11
|
```
|
12
12
|
```html
|
13
13
|
<!DOCTYPE html>
|
@@ -18,7 +18,7 @@ DOM-RENDER
|
|
18
18
|
</head>
|
19
19
|
<body id="app">
|
20
20
|
${this.name}$
|
21
|
-
<script src="https://cdn.jsdelivr.net/npm/dom-render@1.0.
|
21
|
+
<script src="https://cdn.jsdelivr.net/npm/dom-render@1.0.86/dist/bundle.js"></script>
|
22
22
|
<script>
|
23
23
|
let data = {
|
24
24
|
name: 'my name is dom-render'
|
@@ -303,6 +303,8 @@ dr-value-link: <input type="text" dr-value-link="this.office.addr.street"> <br>
|
|
303
303
|
* event: change
|
304
304
|
* modify change: dr-form:event="input"
|
305
305
|
|
306
|
+
- [examples](./examples/forms)
|
307
|
+
|
306
308
|
```html
|
307
309
|
<body id="app">
|
308
310
|
<form dr-form="this.form" dr-event-submit="this.submit(); $event.preventDefault();">
|
@@ -404,39 +406,67 @@ const config: Config = {
|
|
404
406
|
window
|
405
407
|
};
|
406
408
|
config.targetElements = [
|
407
|
-
DomRender.createComponent({type: Main, tagName: 'page-main', template: MainTemplate}
|
408
|
-
DomRender.createComponent({type: Second, tagName: 'page-second', template: SecondTemplate}
|
409
|
-
DomRender.createComponent({type: Detail, tagName: 'page-detail', template: DetailTemplate}
|
409
|
+
DomRender.createComponent({type: Main, tagName: 'page-main', template: MainTemplate}),
|
410
|
+
DomRender.createComponent({type: Second, tagName: 'page-second', template: SecondTemplate}),
|
411
|
+
DomRender.createComponent({type: Detail, tagName: 'page-detail', template: DetailTemplate})
|
410
412
|
]
|
411
413
|
config.routerType = 'hash'; // 'hash' | 'path' | 'none';
|
412
414
|
const data = DomRender.run(new Data(), document.querySelector('#app')!, config);
|
413
415
|
```
|
414
416
|
```html
|
415
417
|
<header>
|
416
|
-
|
417
|
-
|
418
|
-
|
418
|
+
<h1>examples header</h1>
|
419
|
+
<h2>${this.name}$</h2>
|
420
|
+
<div>
|
421
|
+
<div><button dr-event-click="$router.go('/')">main</button></div>
|
422
|
+
<div>
|
423
|
+
<button dr-event-click="$router.go('/second', {secondata: 555})">second</button>
|
424
|
+
<button dr-event-click="$router.go('/second/5')">second/1</button>
|
425
|
+
<button dr-event-click="$router.go('/second/wow')">second/2</button>
|
426
|
+
</div>
|
427
|
+
<div><button dr-event-click="$router.go('/detail/25?name=zzz')">detail</button></div>
|
419
428
|
</div>
|
420
429
|
</header>
|
430
|
+
<hr>
|
421
431
|
<main>
|
422
432
|
<page-main dr-if="$router.test('/')"></page-main>
|
423
|
-
<page-second dr-if="$router.test('/second')"
|
424
|
-
<page-
|
433
|
+
<page-second dr-if="$router.test('/second')">1</page-second>
|
434
|
+
<page-second dr-if="$router.testRegexp('/second/[0-9]?$')">2</page-second>
|
435
|
+
<page-second dr-if="$router.testRegexp('/second/wow$')">wow</page-second>
|
436
|
+
<page-detail url='/detail/{id:[0-9]+}' dr-if="$router.test($attribute.url)" dr-on-component-init="$component.routerData($router.getRouteData($attribute.url))" ></page-detail>
|
437
|
+
<div>
|
438
|
+
<button dr-event-click="this.plusCount()">${this.count}$ count pluse++</button>
|
439
|
+
</div>
|
425
440
|
</main>
|
441
|
+
<hr>
|
442
|
+
<footer>footer</footer>
|
426
443
|
```
|
444
|
+
```typescript
|
445
|
+
export class Second implements OnCreateRender {
|
446
|
+
name = 'Second'
|
427
447
|
|
448
|
+
onCreateRender(data: CreatorMetaData): void {
|
449
|
+
console.log('----->', data.router)
|
450
|
+
}
|
451
|
+
}
|
452
|
+
```
|
428
453
|
```typescript
|
429
454
|
import {RouteData} from 'dom-render/routers/Router';
|
430
455
|
import {OnCreateRender} from 'dom-render/lifecycle/OnCreateRender';
|
431
456
|
|
432
457
|
export class Detail implements OnCreateRender {
|
433
|
-
|
458
|
+
name = 'Detail';
|
434
459
|
|
435
|
-
|
436
|
-
|
437
|
-
|
460
|
+
onCreateRender(data: CreatorMetaData) {
|
461
|
+
console.log('routeData->', data);
|
462
|
+
}
|
463
|
+
|
464
|
+
routerData(routeData: RouteData) {
|
465
|
+
console.log('--------', routeData);
|
466
|
+
}
|
438
467
|
}
|
439
468
|
```
|
469
|
+
|
440
470
|
```typescript
|
441
471
|
// RouteData type
|
442
472
|
type RouteData = {
|
@@ -644,8 +674,8 @@ link attribute
|
|
644
674
|
```
|
645
675
|
```typescript
|
646
676
|
config.targetElements = [
|
647
|
-
DomRender.createComponent({type: Profile, template: ProfileTemplate}
|
648
|
-
DomRender.createComponent({type: Home, template: HomeTemplate, styles: HomeStyle}
|
677
|
+
DomRender.createComponent({type: Profile, template: ProfileTemplate}),
|
678
|
+
DomRender.createComponent({type: Home, template: HomeTemplate, styles: HomeStyle})
|
649
679
|
]
|
650
680
|
|
651
681
|
config.targetAttrs = [
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { ConstructorType } from '../types/Types';
|
2
|
+
import { RawSet } from '../rawsets/RawSet';
|
3
|
+
import { Router } from '../routers/Router';
|
4
|
+
import { Messenger } from '../messenger/Messenger';
|
5
|
+
import { TargetElement } from './TargetElement';
|
6
|
+
import { TargetAttr } from './TargetAttr';
|
7
|
+
export declare type Config = {
|
8
|
+
window: Window;
|
9
|
+
targetElements?: TargetElement[];
|
10
|
+
targetAttrs?: TargetAttr[];
|
11
|
+
onElementInit?: (name: string, obj: any, rawSet: RawSet, targetElement: TargetElement) => any;
|
12
|
+
onAttrInit?: (name: string, attrValue: string, obj: any, rawSet: RawSet) => any;
|
13
|
+
proxyExcludeTyps?: ConstructorType<any>[];
|
14
|
+
proxyExcludeOnBeforeReturnSets?: string[];
|
15
|
+
proxyExcludeOnBeforeReturnGets?: string[];
|
16
|
+
scripts?: {
|
17
|
+
[n: string]: any;
|
18
|
+
};
|
19
|
+
routerType?: 'hash' | 'path' | 'none';
|
20
|
+
router?: Router;
|
21
|
+
messenger?: Messenger;
|
22
|
+
applyEvents?: {
|
23
|
+
attrName: string;
|
24
|
+
callBack: (elements: Element, attrValue: string, obj: any) => void;
|
25
|
+
}[];
|
26
|
+
};
|
File without changes
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { RawSet } from '../rawsets/RawSet';
|
2
|
+
export declare type TargetAttr = {
|
3
|
+
name: string;
|
4
|
+
callBack: (target: Element, attrValue: string, obj: any, rawSet: RawSet) => DocumentFragment;
|
5
|
+
complete?: (target: Element, attrValue: string, obj: any, rawSet: RawSet) => void;
|
6
|
+
};
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { RawSet } from '../rawsets/RawSet';
|
2
|
+
import { Config } from './Config';
|
3
|
+
import { Attrs } from '../rawsets/Attrs';
|
4
|
+
import { CreatorMetaData } from '../rawsets/CreatorMetaData';
|
5
|
+
import { Render } from '../rawsets/Render';
|
6
|
+
export declare type TargetElement = {
|
7
|
+
name: string;
|
8
|
+
template?: string;
|
9
|
+
styles?: string[];
|
10
|
+
callBack: (target: Element, obj: any, rawSet: RawSet, attrs: Attrs, config: Config) => DocumentFragment;
|
11
|
+
complete?: (target: Element, obj: any, rawSet: RawSet) => void;
|
12
|
+
__render?: Render;
|
13
|
+
__creatorMetaData?: CreatorMetaData;
|
14
|
+
};
|