dom-render 1.0.85 → 1.0.88

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 });