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.
Files changed (48) hide show
  1. package/DomRender.d.ts +6 -6
  2. package/DomRender.js +11 -6
  3. package/DomRenderProxy.d.ts +3 -3
  4. package/DomRenderProxy.js +3 -2
  5. package/README.MD +46 -16
  6. package/configs/Config.d.ts +26 -0
  7. package/{Config.js → configs/Config.js} +0 -0
  8. package/configs/TargetAttr.d.ts +6 -0
  9. package/configs/TargetAttr.js +2 -0
  10. package/configs/TargetElement.d.ts +14 -0
  11. package/configs/TargetElement.js +2 -0
  12. package/dist/bundle.js +275 -255
  13. package/events/EventManager.d.ts +1 -1
  14. package/lifecycle/OnDestroyRender.d.ts +1 -1
  15. package/lifecycle/OnInitRender.d.ts +2 -1
  16. package/lifecycle/OnProxyDomRender.d.ts +1 -1
  17. package/messenger/Messenger.d.ts +1 -1
  18. package/operators/Dr.js +1 -1
  19. package/operators/DrAppender.js +1 -1
  20. package/operators/DrFor.js +1 -1
  21. package/operators/DrForOf.js +1 -1
  22. package/operators/DrForm.js +1 -1
  23. package/operators/DrIf.js +1 -1
  24. package/operators/DrInnerHTML.js +1 -1
  25. package/operators/DrInnerText.js +1 -1
  26. package/operators/DrRepeat.js +1 -1
  27. package/operators/DrTargetAttr.js +1 -1
  28. package/operators/DrTargetElement.js +2 -2
  29. package/operators/DrThis.js +5 -2
  30. package/operators/OperatorRender.d.ts +6 -2
  31. package/package.json +6 -2
  32. package/rawsets/AttrInitCallBack.d.ts +5 -0
  33. package/rawsets/AttrInitCallBack.js +2 -0
  34. package/rawsets/Attrs.d.ts +21 -0
  35. package/rawsets/Attrs.js +2 -0
  36. package/rawsets/CreatorMetaData.d.ts +18 -0
  37. package/rawsets/CreatorMetaData.js +2 -0
  38. package/rawsets/DestroyOptionType.d.ts +4 -0
  39. package/rawsets/DestroyOptionType.js +8 -0
  40. package/rawsets/ElementInitCallBack.d.ts +8 -0
  41. package/rawsets/ElementInitCallBack.js +2 -0
  42. package/{RawSet.d.ts → rawsets/RawSet.d.ts} +18 -73
  43. package/{RawSet.js → rawsets/RawSet.js} +108 -109
  44. package/rawsets/RawSetType.d.ts +7 -0
  45. package/rawsets/RawSetType.js +11 -0
  46. package/rawsets/Render.d.ts +17 -0
  47. package/rawsets/Render.js +2 -0
  48. 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, config?: Config): T;
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
- }, config: Config): import("./Config").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("./Config").TargetAttr;
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, config) {
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, config) {
53
+ DomRender.createComponent = function (param) {
50
54
  var _a, _b;
51
- var component = RawSet_1.RawSet.createComponentTargetElement((_a = param.tagName) !== null && _a !== void 0 ? _a : param.type.name, function (e, o, r2, counstructorParam) {
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), config);
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) {
@@ -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 === RawSet_1.RawSetType.TARGET_ELEMENT && it.data && fullPathStr && targetAttrMap && it.fragment.render) {
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.85/dist/bundle.js"></script>
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.85/dist/bundle.js"></script>
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}, config),
408
- DomRender.createComponent({type: Second, tagName: 'page-second', template: SecondTemplate}, config),
409
- DomRender.createComponent({type: Detail, tagName: 'page-detail', template: DetailTemplate}, config)
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
- <button dr-event-click="$router.go('/')">main</button>
417
- <button dr-event-click="$router.go('/second', {secondata: 555})">second</button>
418
- <button dr-event-click="$router.go('/detail/25?name=zzz')">detail</button>
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')"></page-second>
424
- <page-detail url='/detail/{id:[0-9]+}' dr-if="$router.test($attribute.url)" dr-on-create="$router.getRouteData($attribute.url)"></page-detail>
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
- name = 'Detail';
458
+ name = 'Detail';
434
459
 
435
- onCreateRender(routeData: RouteData) {
436
- console.log('routeData->', routeData);
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}, config),
648
- DomRender.createComponent({type: Home, template: HomeTemplate, styles: HomeStyle}, config)
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,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -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
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });