peryl 1.4.44 → 1.4.47

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 (44) hide show
  1. package/README.md +18 -15
  2. package/dist/hsml-app.d.ts +2 -3
  3. package/dist/hsml-app.js +3 -7
  4. package/dist/hsml-app.js.map +1 -1
  5. package/dist/hsml.d.ts +1 -0
  6. package/dist/hsml.js +3 -2
  7. package/dist/hsml.js.map +1 -1
  8. package/dist/umd/hsml-app.js +1 -1
  9. package/dist/umd/hsml-app.js.map +1 -1
  10. package/dist/umd/hsml-dom.js +1 -1
  11. package/dist/umd/hsml-dom.js.map +1 -1
  12. package/dist/umd/hsml-html.js +1 -1
  13. package/dist/umd/hsml-html.js.map +1 -1
  14. package/dist/umd/hsml-idom.js +1 -1
  15. package/dist/umd/hsml-idom.js.map +1 -1
  16. package/dist/umd/hsml-svac-ctrl.js +1 -1
  17. package/dist/umd/hsml-svac-ctrl.js.map +1 -1
  18. package/dist/umd/hsml-svac-html.js +1 -1
  19. package/dist/umd/hsml-svac-html.js.map +1 -1
  20. package/dist/umd/hsml-widget.js +1 -1
  21. package/dist/umd/hsml-widget.js.map +1 -1
  22. package/dist/umd/hsml.js +1 -1
  23. package/dist/umd/hsml.js.map +1 -1
  24. package/dist/umd/index.js +1 -1
  25. package/dist/umd/index.js.map +1 -1
  26. package/dist/umd/validators-moment.js +1 -1
  27. package/dist/umd/validators-moment.js.map +1 -1
  28. package/dist/umd/validators-numeral.js +1 -1
  29. package/dist/umd/validators-numeral.js.map +1 -1
  30. package/dist/umd/validators.js +1 -1
  31. package/dist/umd/validators.js.map +1 -1
  32. package/dist/validators-moment.js +4 -4
  33. package/dist/validators-moment.js.map +1 -1
  34. package/dist/validators-numeral.js +4 -4
  35. package/dist/validators-numeral.js.map +1 -1
  36. package/dist/validators.d.ts +1 -0
  37. package/dist/validators.js +15 -8
  38. package/dist/validators.js.map +1 -1
  39. package/package.json +1 -1
  40. package/src/hsml-app.ts +9 -9
  41. package/src/hsml.ts +3 -1
  42. package/src/validators-moment.ts +4 -4
  43. package/src/validators-numeral.ts +4 -4
  44. package/src/validators.ts +20 -12
package/README.md CHANGED
@@ -17,7 +17,7 @@ HSML App [demo](https://peryl.gitlab.io/peryl/demo/hsml-app-js_demo.html), sourc
17
17
  <head>
18
18
  <meta charset="UTF-8">
19
19
  <meta name="viewport" content="width=device-width, initial-scale=1">
20
- <title>PeRyL HSML App demo</title>
20
+ <title>PeRyL hsml app demo</title>
21
21
  <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
22
22
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Raleway">
23
23
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
@@ -25,11 +25,18 @@ HSML App [demo](https://peryl.gitlab.io/peryl/demo/hsml-app-js_demo.html), sourc
25
25
 
26
26
  <body>
27
27
  <div class="w3-container">
28
- <h1>PeRyL HSML App demo</h1>
28
+ <h1>PeRyL hsml app demo</h1>
29
29
  <div id="app"></div>
30
30
  </div>
31
- <script src="https://unpkg.com/peryl@1.4.41/incremental-dom/dist/umd/incremental-dom.js"></script>
32
- <script src="https://unpkg.com/peryl@1.4.41/dist/umd/hsml-app.js"></script>
31
+ <script src="../incremental-dom/dist/umd/incremental-dom.js"></script>
32
+ <script src="../dist/umd/hsml-app.js"></script>
33
+
34
+ <!-- <script src="https://peryl.gitlab.io/peryl/incremental-dom/dist/umd/incremental-dom.js"></script> -->
35
+ <!-- <script src="https://peryl.gitlab.io/peryl/dist/umd/hsml-app.js"></script> -->
36
+
37
+ <!-- <script src="https://unpkg.com/peryl@1.4.45/incremental-dom/dist/umd/incremental-dom.js"></script> -->
38
+ <!-- <script src="https://unpkg.com/peryl@1.4.45/dist/umd/hsml-app.js"></script> -->
39
+
33
40
  <script>
34
41
 
35
42
  const state = {
@@ -92,7 +99,7 @@ HSML App [demo](https://peryl.gitlab.io/peryl/demo/hsml-app-js_demo.html), sourc
92
99
  ]
93
100
  };
94
101
 
95
- function dispatcher(app, action) {
102
+ async function dispatcher(action, state, dispatch) {
96
103
  console.log("action:", action);
97
104
 
98
105
  switch (action.type) {
@@ -102,25 +109,21 @@ HSML App [demo](https://peryl.gitlab.io/peryl/demo/hsml-app-js_demo.html), sourc
102
109
  break;
103
110
 
104
111
  case Action.title:
105
- app.state.title = action.data.title;
106
- app.update();
112
+ state.title = action.data.title;
107
113
  break;
108
114
 
109
115
  case Action.inc:
110
- app.state.count = app.state.count + action.data;
111
- app.update();
116
+ state.count = state.count + action.data;
112
117
  // async action call
113
- setTimeout(() => app.dispatch(Action.dec, 1), 1e3);
118
+ setTimeout(() => dispatch(Action.dec, 1), 1e3);
114
119
  break;
115
120
 
116
121
  case Action.dec:
117
- app.state.count = app.state.count - action.data;
118
- app.update();
122
+ state.count = state.count - action.data;
119
123
  break;
120
124
 
121
125
  case Action.clear:
122
- app.state.title = "";
123
- app.update();
126
+ state.title = "";
124
127
  break;
125
128
 
126
129
  default:
@@ -130,7 +133,7 @@ HSML App [demo](https://peryl.gitlab.io/peryl/demo/hsml-app-js_demo.html), sourc
130
133
 
131
134
  // HApp.debug = true;
132
135
 
133
- new HApp(state, view, dispatcher).mount(document.getElementById("app"));
136
+ new HApp(state, view, dispatcher, document.getElementById("app"));
134
137
 
135
138
  </script>
136
139
  </body>
@@ -6,10 +6,9 @@ export interface HAction {
6
6
  data?: any;
7
7
  event?: Event;
8
8
  }
9
- export declare type HDispatch = (type: HAction["type"], data?: HAction["data"], event?: HAction["event"]) => void;
9
+ export declare type HDispatch = (type: HAction["type"], data?: HAction["data"], event?: HAction["event"]) => Promise<void>;
10
10
  export declare type HUpdate = () => void;
11
11
  export declare type HDispatcher<STATE> = (action: HAction, state: STATE, dispatch: HDispatch) => Promise<void>;
12
- export declare function happ<STATE>(state: STATE, view: HView<STATE>, dispatcher?: HDispatcher<STATE>, element?: Element | string | null): HApp<STATE>;
13
12
  export declare enum HAppAction {
14
13
  _init = "_init",
15
14
  _mount = "_mount",
@@ -26,7 +25,7 @@ export declare class HApp<STATE> implements HHandlerCtx {
26
25
  };
27
26
  private _updateSched?;
28
27
  private _onUpdate?;
29
- constructor(state: STATE, view: HView<STATE>, dispatcher?: HDispatcher<STATE>);
28
+ constructor(state: STATE, view: HView<STATE>, dispatcher?: HDispatcher<STATE>, e?: Element | string | null);
30
29
  dispatch: HDispatch;
31
30
  render: () => HElements;
32
31
  actionCb: (action: string, data: HAttrOnData, event: Event) => void;
package/dist/hsml-app.js CHANGED
@@ -9,14 +9,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.HApp = exports.HAppAction = exports.happ = void 0;
12
+ exports.HApp = exports.HAppAction = void 0;
13
13
  const hsml_idom_1 = require("./hsml-idom");
14
14
  const log = console.log;
15
15
  const err = console.error;
16
- function happ(state, view, dispatcher, element = document.body) {
17
- return new HApp(state, view, dispatcher).mount(element);
18
- }
19
- exports.happ = happ;
20
16
  var HAppAction;
21
17
  (function (HAppAction) {
22
18
  HAppAction["_init"] = "_init";
@@ -32,7 +28,7 @@ const msgDispatch = "HApp dispatch:";
32
28
  const msgRender = "HApp render:";
33
29
  const msgUpdate = "HApp update:";
34
30
  class HApp {
35
- constructor(state, view, dispatcher) {
31
+ constructor(state, view, dispatcher, e = document.body) {
36
32
  this.refs = {};
37
33
  this.dispatch = (type, data, event) => __awaiter(this, void 0, void 0, function* () {
38
34
  if (HApp.debug) {
@@ -172,7 +168,7 @@ class HApp {
172
168
  this.state = state;
173
169
  this.view = view;
174
170
  this.dispatcher = dispatcher || ((a) => __awaiter(this, void 0, void 0, function* () { return log(msgAction, a.type, a.data); }));
175
- this.dispatch(HAppAction._init);
171
+ this.dispatch(HAppAction._init).then(() => this.mount(e));
176
172
  }
177
173
  }
178
174
  exports.HApp = HApp;
@@ -1 +1 @@
1
- {"version":3,"file":"hsml-app.js","sourceRoot":"","sources":["../src/hsml-app.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,2CAA8C;AAE9C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AACxB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;AAqB1B,SAAgB,IAAI,CAAQ,KAAY,EACZ,IAAkB,EAClB,UAA+B,EAC/B,UAAmC,QAAQ,CAAC,IAAI;IACxE,OAAO,IAAI,IAAI,CAAQ,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACnE,CAAC;AALD,oBAKC;AAED,IAAY,UAIX;AAJD,WAAY,UAAU;IAClB,6BAAe,CAAA;IACf,+BAAiB,CAAA;IACjB,iCAAmB,CAAA;AACvB,CAAC,EAJW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAIrB;AAED,MAAM,QAAQ,GAAG,MAAM,CAAC,qBAAqB;IAKzC,UAAU,QAAkB,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9E,MAAM,UAAU,GAAG,MAAM,CAAC,oBAAoB;IAK1C,UAAU,MAAc,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/D,MAAM,SAAS,GAAG,cAAc,CAAC;AACjC,MAAM,WAAW,GAAG,gBAAgB,CAAC;AACrC,MAAM,SAAS,GAAG,cAAc,CAAC;AACjC,MAAM,SAAS,GAAG,cAAc,CAAC;AAEjC,MAAa,IAAI;IAeb,YAAY,KAAY,EAAE,IAAkB,EAAE,UAA+B;QANpE,SAAI,GAAmC,EAAE,CAAC;QAanD,aAAQ,GAAe,CAAO,IAAY,EAAE,IAAU,EAAE,KAAa,EAAiB,EAAE;YACpF,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,GAAG,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBACtC,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC7B,IAAI;oBACA,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACxE,IAAI,CAAC,MAAM,EAAE,CAAC;iBACjB;gBAAC,OAAO,CAAC,EAAE;oBACR,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;iBACvB;gBACD,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC7B,GAAG,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;aACjD;iBAAM;gBACH,IAAI;oBACA,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACxE,IAAI,CAAC,MAAM,EAAE,CAAC;iBACjB;gBAAC,OAAO,CAAC,EAAE;oBACR,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;iBACvB;aACJ;QACL,CAAC,CAAA,CAAA;QAED,WAAM,GAAG,GAAc,EAAE;YACrB,IAAI,IAAI,CAAC,KAAK,EAAE;gBACZ,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC7B,IAAI,KAAK,CAAC;gBACV,IAAI;oBACA,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACjC;gBAAC,OAAO,CAAC,EAAE;oBACR,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;iBACrB;gBACD,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBAC7B,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;gBACvC,OAAO,KAAK,IAAI,EAAE,CAAC;aACtB;iBAAM;gBACH,IAAI,KAAK,CAAC;gBACV,IAAI;oBACA,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACjC;gBAAC,OAAO,CAAC,EAAE;oBACR,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;iBACrB;gBACD,OAAO,KAAK,IAAI,EAAE,CAAC;aACtB;QACL,CAAC,CAAA;QAED,aAAQ,GAAG,CAAC,MAAc,EAAE,IAAiB,EAAE,KAAY,EAAQ,EAAE;YACjE,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC;gBAC1C,CAAC,CAAE,IAAuB,CAAC,KAAK,CAAC;gBACjC,CAAC,CAAC,IAAI,CAAC;YACX,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK,EAAE;gBAC7B,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;aAC1B;YACD,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC,CAAA;QAED,UAAK,GAAG,CAAC,IAA6B,QAAQ,CAAC,IAAI,EAAQ,EAAE;YACzD,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;gBAC9B,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI;gBAC7C,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC;YACzB,IAAK,EAAU,CAAC,GAAG,EAAE;gBACjB,MAAM,CAAC,GAAI,EAAU,CAAC,GAAkB,CAAC;gBACzC,CAAC,CAAC,MAAM,EAAE,CAAC;aACd;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACV,IAAY,CAAC,GAAG,GAAG,EAAE,CAAC;gBACtB,EAAU,CAAC,GAAG,GAAG,IAAI,CAAC;gBACvB,MAAM,KAAK,GAAI,IAAY,CAAC,MAAM,EAAE,CAAC;gBACrC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC3B,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;aAC9C;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAA;QAED,WAAM,GAAG,GAAS,EAAE;YAChB,IAAI,IAAI,CAAC,GAAG,EAAE;gBACV,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5C,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;oBAC9B,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;iBACnC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACpC,MAAM,CAAC,GAAI,MAAM,CAAC,CAAC,CAAS,CAAC,GAAkB,CAAC;oBAChD,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;iBACnB;gBACD,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAuB;oBAC7C,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;iBAC7C;gBACD,OAAQ,IAAI,CAAC,GAAW,CAAC,GAAG,CAAC;gBAC5B,IAAY,CAAC,GAAG,GAAG,SAAS,CAAC;aACjC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAA;QAED,WAAM,GAAG,GAAS,EAAE;YAChB,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBAChC,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,GAAG,EAAE;oBAC9B,IAAI,IAAI,CAAC,GAAG,EAAE;wBACV,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC5B,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;qBACpC;oBACD,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;oBAC9B,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;aACN;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAA;QAED,aAAQ,GAAG,CAAC,EAA8B,EAAQ,EAAE;YAChD,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QAChB,CAAC,CAAA;QAED,WAAM,GAAG,GAAa,EAAE;YACpB,IAAI,IAAI,CAAC,GAAG,EAAE;gBACV,IAAI,IAAI,CAAC,YAAY,EAAE;oBACnB,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBAC9B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;iBACjC;qBAAM;oBACH,OAAO,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;iBACnC;aACJ;YACD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CACN,CAAC,CAAU,EAAE,EAAE;gBACX,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;oBACV,IAAY,CAAC,GAAG,GAAG,CAAC,CAAC;oBACrB,CAAS,CAAC,GAAG,GAAG,IAAI,CAAC;oBACtB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;iBAC9C;YACL,CAAC,CAAC,CAAC;YACP,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAA;QAED,WAAM,GAAG,GAAW,EAAE;YAClB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,CAAC,CAAA;QA9IG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,CAAC,CAAO,CAAC,EAAE,EAAE,gDAAC,OAAA,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAA,GAAA,CAAC,CAAC;QAC9E,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;;AApBL,oBAgKC;AA9JU,UAAK,GAAG,KAAK,CAAC;AAgKzB,SAAS,SAAS,CAAC,EAAW,EAAE,IAAe,EAAE,GAAgB;IAC7D,IAAI,IAAI,CAAC,KAAK,EAAE;QACZ,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC7B,2BAAe,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/B,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC7B,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;KACvC;SAAM;QACH,2BAAe,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;KAClC;AACL,CAAC;AAED,SAAS,QAAQ,CAAC,CAAQ;IACtB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAqB,CAAC;IACnC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACjB,KAAK,MAAM;YACN,CAAW,CAAC,cAAc,EAAE,CAAC;YAC9B,MAAM,GAAG,GAAI,EAAsB,CAAC,QAAQ,CAAC;YAC7C,MAAM,IAAI,GAAG,EAA2D,CAAC;YACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjC,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;oBACvB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAW,CAAC,CAAC;oBACvC,IAAI,KAAK,CAAC,MAAM,EAAE;wBACd,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;wBACtB,MAAM,KAAK,GAAI,CAAS,CAAC,IAAI,CAAC,CAAC;wBAC/B,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;4BAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;yBACtB;6BAAM,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,MAAM,EAAE;4BACvE,IAAI,KAAK,YAAY,KAAK,EAAE;gCACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAW,EAAE,GAAG,KAAK,CAAC,CAAC;6BACjD;iCAAM;gCACH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAW,EAAE,KAAe,CAAC,CAAC;6BACxD;yBACJ;6BAAM,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,EAAE;4BACpC,IAAI,KAAK,YAAY,KAAK,EAAE;gCACxB,IAAI,CAAC,IAAI,CAAC,GAAI,IAAI,CAAC,IAAI,CAA0B,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;6BACnE;iCAAM;gCACF,IAAI,CAAC,IAAI,CAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;6BACpD;yBACJ;6BAAM;4BACH,IAAI,KAAK,YAAY,KAAK,EAAE;gCACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAW,EAAE,GAAG,KAAK,CAAC,CAAC;6BACjD;iCAAM;gCACH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAW,EAAE,KAAK,CAAC,CAAC;6BAC9C;yBACJ;wBACD,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,KAAK,EAAE;4BAC7B,IAAI,CAAC,IAAI,CAAC,GAAI,IAAI,CAAC,IAAI,CAA0B;iCAC5C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;4BAC7B,IAAK,GAAG,CAAC,CAAC,CAAsB,CAAC,IAAI,KAAK,OAAO,EAAE;gCAC/C,IAAI,CAAC,IAAI,CAAC,GAAI,IAAI,CAAC,IAAI,CAA0B,CAAC,MAAM;oCACpD,CAAC,CAAE,IAAI,CAAC,IAAI,CAA0B,CAAC,CAAC,CAAC;oCACzC,CAAC,CAAC,IAAI,CAAC;6BACd;yBACJ;qBACJ;iBACJ;aACJ;YACD,OAAO,IAAI,CAAC;QAChB;YACI,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC;KAChC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,EAAW;IAC9B,IAAI,IAAI,GAA6F,IAAI,CAAC;IAC1G,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACjB,KAAK,OAAO;YACR,MAAM,GAAG,GAAG,EAAsB,CAAC;YACnC,QAAQ,GAAG,CAAC,IAAI,EAAE;gBACd,KAAK,MAAM,CAAC;gBACZ,KAAK,QAAQ,CAAC;gBACd,KAAK,UAAU,CAAC;gBAChB,KAAK,OAAO,CAAC;gBACb,KAAK,QAAQ,CAAC;gBACd,KAAK,QAAQ,CAAC;gBACd,KAAK,KAAK,CAAC;gBACX,KAAK,KAAK,CAAC;gBACX,KAAK,OAAO,CAAC;gBACb,KAAK,MAAM,CAAC;gBACZ,KAAK,gBAAgB,CAAC;gBACtB,KAAK,OAAO,CAAC;gBACb,KAAK,OAAO,CAAC;gBACb,KAAK,MAAM,CAAC;gBACZ,KAAK,MAAM,CAAC;gBACZ,KAAK,QAAQ,CAAC;gBACd,KAAK,QAAQ;oBACT,IAAI,GAAG,CAAC,IAAI,EAAE;wBACV,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;qBACpC;yBAAM;wBACH,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;qBACpB;oBACD,MAAM;gBACV,KAAK,OAAO;oBACR,IAAI,GAAG,CAAC,IAAI,EAAE;wBACV,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;qBACzD;yBAAM;wBACH,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;qBACzC;oBACD,MAAM;gBACV,KAAK,UAAU;oBACX,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE;wBACpB,IAAI,GAAG,CAAC,IAAI,EAAE;4BACV,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;yBAC9C;6BAAM;4BACH,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;yBAC9B;qBACJ;yBAAM;wBACH,IAAI,GAAG,CAAC,IAAI,EAAE;4BACV,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO;oCAC5B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;oCACnB,CAAC,CAAC,IAAI,EAAE,CAAC;yBAChB;6BAAM;4BACH,IAAI,GAAG,GAAG,CAAC,OAAO;gCACd,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;gCACnB,CAAC,CAAC,IAAI,CAAC;yBACd;qBACJ;oBACD,MAAM;aACb;YACD,MAAM;QACV,KAAK,QAAQ;YACT,MAAM,GAAG,GAAG,EAAuB,CAAC;YACpC,IAAI,GAAG,CAAC,QAAQ,EAAE;gBACd,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACjE,IAAI,GAAG,CAAC,IAAI,EAAE;oBACV,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;iBACjC;qBAAM;oBACH,IAAI,GAAG,MAAM,CAAC;iBACjB;aACJ;iBAAM;gBACH,IAAI,GAAG,CAAC,IAAI,EAAE;oBACV,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;iBACpC;qBAAM;oBACH,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;iBACpB;aACJ;YACD,MAAM;QACV,KAAK,UAAU;YACX,MAAM,GAAG,GAAG,EAAyB,CAAC;YACtC,IAAI,GAAG,CAAC,IAAI,EAAE;gBACV,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;aACpC;iBAAM;gBACH,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;aACpB;YACD,MAAM;QACV,KAAK,QAAQ;YACT,MAAM,GAAG,GAAG,EAAuB,CAAC;YACpC,IAAI,GAAG,CAAC,IAAI,EAAE;gBACV,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;aACpC;iBAAM;gBACH,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;aACpB;YACD,MAAM;KACb;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"hsml-app.js","sourceRoot":"","sources":["../src/hsml-app.ts"],"names":[],"mappings":"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"}
package/dist/hsml.d.ts CHANGED
@@ -49,5 +49,6 @@ export interface HHandler<C extends HHandlerCtx> {
49
49
  fnc(fnc: HFnc, ctx?: C): void;
50
50
  obj(obj: HObj, ctx?: C): void;
51
51
  }
52
+ export declare const NBSP = "\u00A0 ";
52
53
  export declare function hsml<C extends HHandlerCtx>(hml: HElement, handler: HHandler<C>, ctx?: C): void;
53
54
  export declare function hjoin(hsmls: HElements, sep: string | HElement): HElements;
package/dist/hsml.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hjoin = exports.hsml = void 0;
3
+ exports.hjoin = exports.hsml = exports.NBSP = void 0;
4
+ exports.NBSP = "\u00a0 ";
4
5
  function hsml(hml, handler, ctx) {
5
6
  if (hml === undefined || hml === null) {
6
7
  return;
@@ -44,7 +45,7 @@ function hsml(hml, handler, ctx) {
44
45
  let hFnc;
45
46
  let hObj;
46
47
  const htc = hmlTag[childIdx];
47
- switch (htc && htc.constructor) {
48
+ switch (htc != null && htc.constructor) {
48
49
  case Array:
49
50
  children = htc;
50
51
  break;
package/dist/hsml.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"hsml.js","sourceRoot":"","sources":["../src/hsml.ts"],"names":[],"mappings":";;;AAmIA,SAAgB,IAAI,CAAwB,GAAa,EACb,OAAoB,EACpB,GAAO;IAE/C,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;QACnC,OAAO;KACV;IACD,QAAQ,GAAG,CAAC,WAAW,EAAE;QACrB,KAAK,KAAK;YA+BN,OAAO,CAAC,GAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;YACnC,MAAM;QACV,KAAK,QAAQ;YACT,OAAO,CAAC,GAAG,CAAC,GAAW,EAAE,GAAG,CAAC,CAAC;YAC9B,MAAM;QACV,KAAK,MAAM;YACP,OAAO,CAAC,IAAI,CAAC,GAAa,EAAE,GAAG,CAAC,CAAC;YACjC,MAAM;QACV,KAAK,OAAO;YACR,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;YAC5B,MAAM;QACV,KAAK,MAAM;YACP,MAAM,CAAC,GAAG,GAAa,CAAC;YACxB,MAAM,EAAE,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACtB,MAAM;QACV,KAAK,IAAI;YACL,MAAM,CAAC,GAAG,GAAW,CAAC;YACtB,MAAM,EAAE,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YACtB,MAAM;QACV;YACI,OAAO,CAAC,GAAG,CAAC,GAAW,EAAE,GAAG,CAAC,CAAC;KACrC;IAED,SAAS,OAAO,CAAC,MAAY,EAAE,OAAoB,EAAE,GAAO;QAGxD,IAAI,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YAC/B,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC;YACnD,OAAO;SACV;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAU,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAQ,CAAC;QAClC,MAAM,QAAQ,GAAG,QAAQ,IAAI,QAAQ,CAAC,WAAW,KAAK,MAAM,CAAC;QAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAElC,IAAI,QAAQ,GAAc,EAAE,CAAC;QAC7B,IAAI,IAAsB,CAAC;QAC3B,IAAI,IAAsB,CAAC;QAE3B,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7B,QAAQ,GAAG,IAAI,GAAG,CAAC,WAAW,EAAE;YAC5B,KAAK,KAAK;gBACN,QAAQ,GAAG,GAAgB,CAAC;gBAC5B,MAAM;YACV,KAAK,QAAQ;gBACT,IAAI,GAAG,GAAW,CAAC;gBACnB,MAAM;YACV,KAAK,MAAM,CAAC;YACZ,KAAK,OAAO,CAAC;YACb,KAAK,MAAM,CAAC;YACZ,KAAK,IAAI;gBACL,QAAQ,GAAG,CAAC,GAAuC,CAAC,CAAC;gBACrD,MAAM;YACV;gBACI,IAAI,GAAG,GAAW,CAAC;gBACnB,MAAM;SACb;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;QAClC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAElC,IAAI,KAAa,CAAC;QAClB,IAAI,QAAQ,EAAE;YACV,KAAK,GAAG,QAAkB,CAAC;SAC9B;aAAM;YACH,KAAK,GAAG,EAAY,CAAC;SACxB;QAED,IAAI,EAAE,EAAE;YACH,KAAa,CAAC,GAAG,GAAG,EAAE,CAAC;SAC3B;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;YACf,KAAa,CAAC,QAAQ,GAAG,OAAO,CAAC;SACrC;QACD,IAAI,GAAG,EAAE;YACJ,KAAa,CAAC,IAAI,GAAG,GAAG,CAAC;SAC7B;QACD,IAAI,IAAI,EAAE;YACL,KAAa,CAAC,KAAK,GAAG,IAAI,CAAC;SAC/B;QAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAErD,IAAI,IAAI,EAAE;YACN,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SAC1B;QAED,IAAI,CAAC,IAAI,EAAE;YACP,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;SACpD;QAED,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;AACL,CAAC;AA5ID,oBA4IC;AAED,SAAgB,KAAK,CAAC,KAAgB,EAAE,GAAsB;IAC1D,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAClB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAC7B,EAAe,CAClB,CAAC;IACF,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACb,OAAO,CAAC,CAAC;AACb,CAAC;AAPD,sBAOC"}
1
+ {"version":3,"file":"hsml.js","sourceRoot":"","sources":["../src/hsml.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- !function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e(require("IncrementalDOM"));else if("function"==typeof define&&define.amd)define(["IncrementalDOM"],e);else{var n="object"==typeof exports?e(require("IncrementalDOM")):e(t.IncrementalDOM);for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(window,(function(t){return function(t){var e={};function n(o){if(e[o])return e[o].exports;var s=e[o]={i:o,l:!1,exports:{}};return t[o].call(s.exports,s,s.exports,n),s.l=!0,s.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)n.d(o,s,function(e){return t[e]}.bind(null,s));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=12)}({0:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.hjoin=e.hsml=void 0,e.hsml=function t(e,n,o){if(null!=e)switch(e.constructor){case Array:!function(e,n,o){if("string"!=typeof e[0])return void console.error("HSML tag head not string:",e);const s=e[0],i=e[1],c=i&&i.constructor===Object;let a,r,u=[];const h=e[c?2:1];switch(h&&h.constructor){case Array:u=h;break;case Function:a=h;break;case String:case Boolean:case Number:case Date:u=[h];break;default:r=h}const d=s.split("~"),l=d[1],p=d[0].split("."),f=p[0].split("#"),m=f[0]||"div",b=f[1],y=p.slice(1);let v;v=c?i:{};b&&(v._id=b);y.length&&(v._classes=y);l&&(v._ref=l);r&&(v._hObj=r);const _=n.open(m,v,u,o);a&&n.fnc(a,o);_||u.forEach(e=>t(e,n,o));n.close(m,u,o)}(e,n,o);break;case Function:n.fnc(e,o);break;case String:n.text(e,o);break;case Boolean:n.text(""+e,o);break;case Number:const s=e,i=s.toLocaleString?s.toLocaleString():s.toString();n.text(i,o);break;case Date:const c=e,a=c.toLocaleString?c.toLocaleString():c.toString();n.text(a,o);break;default:n.obj(e,o)}},e.hjoin=function(t,e){const n=t.reduce((t,n)=>(t.push(n,e),t),[]);return n.splice(-1),n}},1:function(e,n){e.exports=t},12:function(t,e,n){"use strict";var o=this&&this.__awaiter||function(t,e,n,o){return new(n||(n=Promise))((function(s,i){function c(t){try{r(o.next(t))}catch(t){i(t)}}function a(t){try{r(o.throw(t))}catch(t){i(t)}}function r(t){var e;t.done?s(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(c,a)}r((o=o.apply(t,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0}),e.HApp=e.HAppAction=e.happ=void 0;const s=n(2),i=console.log,c=console.error;var a;e.happ=function(t,e,n,o=document.body){return new h(t,e,n).mount(o)},function(t){t._init="_init",t._mount="_mount",t._umount="_umount"}(a=e.HAppAction||(e.HAppAction={}));const r=window.requestAnimationFrame||function(t){window.setTimeout(t,1e3/60)},u=window.cancelAnimationFrame||function(t){window.clearTimeout(t)};class h{constructor(t,e,n){this.refs={},this.dispatch=(t,e,n)=>o(this,void 0,void 0,(function*(){if(h.debug){i("HApp action:",{type:t,data:e,event:n});const o=performance.now();try{yield this.dispatcher({type:t,data:e,event:n},this.state,this.dispatch),this.update()}catch(t){c("HApp dispatch:",t)}const s=performance.now();i("HApp dispatch:",s-o+" ms",this.state)}else try{yield this.dispatcher({type:t,data:e,event:n},this.state,this.dispatch),this.update()}catch(t){c("HApp dispatch:",t)}})),this.render=()=>{if(h.debug){const t=performance.now();let e;try{e=this.view(this.state)}catch(t){c("HApp render:",t)}const n=performance.now();return i("HApp render:",n-t+" ms",e),e||[]}{let t;try{t=this.view(this.state)}catch(t){c("HApp render:",t)}return t||[]}},this.actionCb=(t,e,n)=>{void 0===(e=e&&e.constructor===Function?e(n):e)&&n&&(e=function(t){const e=t.target;switch(e.nodeName){case"FORM":t.preventDefault();const n=e.elements,o={};for(let t=0;t<n.length;t++){const e=l(n[t]);if("object"==typeof e){const s=Object.keys(e);if(s.length){const i=s[0],c=e[i];void 0===o[i]?o[i]=c:"string"==typeof o[i]||o[i]instanceof String?o[i]=c instanceof Array?[o[i],...c]:[o[i],c]:o[i]instanceof Array?c instanceof Array?o[i]=o[i].concat(c):o[i].push(c):o[i]=c instanceof Array?[o[i],...c]:[o[i],c],o[i]instanceof Array&&(o[i]=o[i].filter(t=>null!==t),"radio"===n[t].type&&(o[i]=o[i].length?o[i][0]:null))}}}return o;default:return l(e)}}(n)),this.dispatch(t,e,n)},this.mount=(t=document.body)=>{const e="string"==typeof t?document.getElementById(t)||document.body:t||document.body;if(e.app){e.app.umount()}if(!this.dom){this.dom=e,e.app=this;d(e,this.render(),this),this._onUpdate&&this._onUpdate(this),this.dispatch(a._mount,this.dom)}return this},this.umount=()=>{if(this.dom){this.dispatch(a._umount,this.dom),this.dom.hasAttribute("app")&&this.dom.removeAttribute("app");const t=this.dom.querySelectorAll("[app]");for(let e=0;e<t.length;e++){const n=t[e].app;n&&n.umount()}for(;this.dom.firstChild;)this.dom.removeChild(this.dom.firstChild);delete this.dom.app,this.dom=void 0}return this},this.update=()=>(this.dom&&!this._updateSched&&(this._updateSched=r(()=>{if(this.dom){const t=this.render();d(this.dom,t,this)}this._updateSched=void 0,this._onUpdate&&this._onUpdate(this)})),this),this.onUpdate=t=>(this._onUpdate=t,this),this.toHsml=()=>{if(this.dom){if(!this._updateSched)return["div",{_skip:!0}];u(this._updateSched),this._updateSched=void 0}const t=this.render();return t.push(t=>{this.dom||(this.dom=t,t.app=this,this.dispatch(a._mount,this.dom))}),["div",t]},this.toHtml=()=>this.dom?this.dom.outerHTML:"",this.state=t,this.view=e,this.dispatcher=n||(t=>o(this,void 0,void 0,(function*(){return i("HApp action:",t.type,t.data)}))),this.dispatch(a._init)}}function d(t,e,n){if(h.debug){const o=performance.now();s.hsmls2idomPatch(t,e,n);const c=performance.now();i("HApp update:",c-o+" ms",t)}else s.hsmls2idomPatch(t,e,n)}function l(t){let e=null;switch(t.nodeName){case"INPUT":const n=t;switch(n.type){case"text":case"hidden":case"password":case"email":case"number":case"search":case"url":case"tel":case"color":case"date":case"datetime-local":case"month":case"range":case"time":case"week":case"submit":case"button":e=n.name?{[n.name]:n.value}:n.value;break;case"radio":e=n.name?{[n.name]:n.checked?n.value:null}:n.checked?n.value:null;break;case"checkbox":e="on"===n.value?n.name?{[n.name]:String(n.checked)}:String(n.checked):n.name?{[n.name]:n.checked?String(n.value):null}:n.checked?String(n.value):null}break;case"SELECT":const o=t;if(o.multiple){const t=Array.from(o.selectedOptions).map(t=>t.value);e=o.name?{[o.name]:t}:t}else e=o.name?{[o.name]:o.value}:o.value;break;case"TEXTAREA":const s=t;e=s.name?{[s.name]:s.value}:s.value;break;case"BUTTON":const i=t;e=i.name?{[i.name]:i.value}:i.value}return e}e.HApp=h,h.debug=!1},2:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.hsmls2idomPatch=e.hsml2idomPatch=void 0;const o=n(0),s=n(1);class i{open(t,e,n,o){const i=[];let c=e._id,a=e._classes?e._classes:[],r=e._ref,u=e._hObj;for(const t in e)if(e.hasOwnProperty(t))switch(t){case"_id":case"_classes":case"_ref":case"_key":case"_skip":case"_hObj":break;case"id":c=e[t];break;case"classes":const n=e[t];a=a.concat(n?n.map(t=>t.constructor===String?t:t[1]?t[0]:void 0).filter(t=>void 0!==t):[]);break;case"class":a=a.concat(e[t].split(" "));break;case"data":const s=e[t];for(const t in s)s.hasOwnProperty(t)&&(s[t].constructor===String?i.push("data-"+t,s[t]):i.push("data-"+t,JSON.stringify(s[t])));break;case"styles":i.push("style",e[t]);break;case"on":const r=e[t];"string"==typeof r[0]?"function"==typeof r[1]?i.push("on"+r[0],r[1]):i.push("on"+r[0],t=>{o&&o.actionCb&&"function"==typeof o.actionCb&&o.actionCb(r[1],r[2],t)}):r.forEach(t=>{"function"==typeof t[1]?i.push("on"+t[0],t[1]):i.push("on"+t[0],e=>{o&&o.actionCb&&"function"==typeof o.actionCb&&o.actionCb(t[1],t[2],e)})});break;default:switch(typeof e[t]){case"function":i.push("on"+t,e[t]);break;case"object":i.push(t,e[t]);break;case"boolean":e[t]&&i.push(t,t);break;default:i.push(t,e[t])}}return a.length&&i.unshift("class",a.join(" ")),c&&i.unshift("id",c),s.elementOpen(t,e._key,void 0,...i),e._skip&&s.skip(),o&&r&&(o.refs[r]=s.currentElement()),u&&u.mount&&u.mount.constructor===Function&&(u.mount(s.currentElement()),s.skip()),!!e._skip}close(t,e,n){s.elementClose(t)}text(t,e){s.text(t)}fnc(t,e){t(s.currentElement())&&s.skip()}obj(t,e){"toHsml"in t?t.toHsml&&o.hsml(t.toHsml(),this,t):this.text(""+t,e)}}function c(t,e){o.hsml(t,new i,e)}e.hsml2idomPatch=function(t,e,n){s.patch(t,t=>t&&c(t,n),e)},e.hsmls2idomPatch=function(t,e,n){s.patch(t,t=>t&&function(t,e){for(const n of t)if(null!=n)if(n.constructor===String)s.text(n);else if("toHsml"in n){const t=n;t.toHsml&&c(t.toHsml(),t)}else c(n,e)}(t,n),e)}}})}));
1
+ !function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e(require("IncrementalDOM"));else if("function"==typeof define&&define.amd)define(["IncrementalDOM"],e);else{var n="object"==typeof exports?e(require("IncrementalDOM")):e(t.IncrementalDOM);for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(window,(function(t){return function(t){var e={};function n(o){if(e[o])return e[o].exports;var s=e[o]={i:o,l:!1,exports:{}};return t[o].call(s.exports,s,s.exports,n),s.l=!0,s.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var s in t)n.d(o,s,function(e){return t[e]}.bind(null,s));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=12)}({0:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.hjoin=e.hsml=e.NBSP=void 0,e.NBSP="  ",e.hsml=function t(e,n,o){if(null!=e)switch(e.constructor){case Array:!function(e,n,o){if("string"!=typeof e[0])return void console.error("HSML tag head not string:",e);const s=e[0],i=e[1],c=i&&i.constructor===Object;let a,r,u=[];const h=e[c?2:1];switch(null!=h&&h.constructor){case Array:u=h;break;case Function:a=h;break;case String:case Boolean:case Number:case Date:u=[h];break;default:r=h}const d=s.split("~"),l=d[1],p=d[0].split("."),f=p[0].split("#"),m=f[0]||"div",b=f[1],y=p.slice(1);let v;v=c?i:{};b&&(v._id=b);y.length&&(v._classes=y);l&&(v._ref=l);r&&(v._hObj=r);const _=n.open(m,v,u,o);a&&n.fnc(a,o);_||u.forEach(e=>t(e,n,o));n.close(m,u,o)}(e,n,o);break;case Function:n.fnc(e,o);break;case String:n.text(e,o);break;case Boolean:n.text(""+e,o);break;case Number:const s=e,i=s.toLocaleString?s.toLocaleString():s.toString();n.text(i,o);break;case Date:const c=e,a=c.toLocaleString?c.toLocaleString():c.toString();n.text(a,o);break;default:n.obj(e,o)}},e.hjoin=function(t,e){const n=t.reduce((t,n)=>(t.push(n,e),t),[]);return n.splice(-1),n}},1:function(e,n){e.exports=t},12:function(t,e,n){"use strict";var o=this&&this.__awaiter||function(t,e,n,o){return new(n||(n=Promise))((function(s,i){function c(t){try{r(o.next(t))}catch(t){i(t)}}function a(t){try{r(o.throw(t))}catch(t){i(t)}}function r(t){var e;t.done?s(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(c,a)}r((o=o.apply(t,e||[])).next())}))};Object.defineProperty(e,"__esModule",{value:!0}),e.HApp=e.HAppAction=void 0;const s=n(2),i=console.log,c=console.error;var a;!function(t){t._init="_init",t._mount="_mount",t._umount="_umount"}(a=e.HAppAction||(e.HAppAction={}));const r=window.requestAnimationFrame||function(t){window.setTimeout(t,1e3/60)},u=window.cancelAnimationFrame||function(t){window.clearTimeout(t)};class h{constructor(t,e,n,s=document.body){this.refs={},this.dispatch=(t,e,n)=>o(this,void 0,void 0,(function*(){if(h.debug){i("HApp action:",{type:t,data:e,event:n});const o=performance.now();try{yield this.dispatcher({type:t,data:e,event:n},this.state,this.dispatch),this.update()}catch(t){c("HApp dispatch:",t)}const s=performance.now();i("HApp dispatch:",s-o+" ms",this.state)}else try{yield this.dispatcher({type:t,data:e,event:n},this.state,this.dispatch),this.update()}catch(t){c("HApp dispatch:",t)}})),this.render=()=>{if(h.debug){const t=performance.now();let e;try{e=this.view(this.state)}catch(t){c("HApp render:",t)}const n=performance.now();return i("HApp render:",n-t+" ms",e),e||[]}{let t;try{t=this.view(this.state)}catch(t){c("HApp render:",t)}return t||[]}},this.actionCb=(t,e,n)=>{void 0===(e=e&&e.constructor===Function?e(n):e)&&n&&(e=function(t){const e=t.target;switch(e.nodeName){case"FORM":t.preventDefault();const n=e.elements,o={};for(let t=0;t<n.length;t++){const e=l(n[t]);if("object"==typeof e){const s=Object.keys(e);if(s.length){const i=s[0],c=e[i];void 0===o[i]?o[i]=c:"string"==typeof o[i]||o[i]instanceof String?o[i]=c instanceof Array?[o[i],...c]:[o[i],c]:o[i]instanceof Array?c instanceof Array?o[i]=o[i].concat(c):o[i].push(c):o[i]=c instanceof Array?[o[i],...c]:[o[i],c],o[i]instanceof Array&&(o[i]=o[i].filter(t=>null!==t),"radio"===n[t].type&&(o[i]=o[i].length?o[i][0]:null))}}}return o;default:return l(e)}}(n)),this.dispatch(t,e,n)},this.mount=(t=document.body)=>{const e="string"==typeof t?document.getElementById(t)||document.body:t||document.body;if(e.app){e.app.umount()}if(!this.dom){this.dom=e,e.app=this;d(e,this.render(),this),this._onUpdate&&this._onUpdate(this),this.dispatch(a._mount,this.dom)}return this},this.umount=()=>{if(this.dom){this.dispatch(a._umount,this.dom),this.dom.hasAttribute("app")&&this.dom.removeAttribute("app");const t=this.dom.querySelectorAll("[app]");for(let e=0;e<t.length;e++){const n=t[e].app;n&&n.umount()}for(;this.dom.firstChild;)this.dom.removeChild(this.dom.firstChild);delete this.dom.app,this.dom=void 0}return this},this.update=()=>(this.dom&&!this._updateSched&&(this._updateSched=r(()=>{if(this.dom){const t=this.render();d(this.dom,t,this)}this._updateSched=void 0,this._onUpdate&&this._onUpdate(this)})),this),this.onUpdate=t=>(this._onUpdate=t,this),this.toHsml=()=>{if(this.dom){if(!this._updateSched)return["div",{_skip:!0}];u(this._updateSched),this._updateSched=void 0}const t=this.render();return t.push(t=>{this.dom||(this.dom=t,t.app=this,this.dispatch(a._mount,this.dom))}),["div",t]},this.toHtml=()=>this.dom?this.dom.outerHTML:"",this.state=t,this.view=e,this.dispatcher=n||(t=>o(this,void 0,void 0,(function*(){return i("HApp action:",t.type,t.data)}))),this.dispatch(a._init).then(()=>this.mount(s))}}function d(t,e,n){if(h.debug){const o=performance.now();s.hsmls2idomPatch(t,e,n);const c=performance.now();i("HApp update:",c-o+" ms",t)}else s.hsmls2idomPatch(t,e,n)}function l(t){let e=null;switch(t.nodeName){case"INPUT":const n=t;switch(n.type){case"text":case"hidden":case"password":case"email":case"number":case"search":case"url":case"tel":case"color":case"date":case"datetime-local":case"month":case"range":case"time":case"week":case"submit":case"button":e=n.name?{[n.name]:n.value}:n.value;break;case"radio":e=n.name?{[n.name]:n.checked?n.value:null}:n.checked?n.value:null;break;case"checkbox":e="on"===n.value?n.name?{[n.name]:String(n.checked)}:String(n.checked):n.name?{[n.name]:n.checked?String(n.value):null}:n.checked?String(n.value):null}break;case"SELECT":const o=t;if(o.multiple){const t=Array.from(o.selectedOptions).map(t=>t.value);e=o.name?{[o.name]:t}:t}else e=o.name?{[o.name]:o.value}:o.value;break;case"TEXTAREA":const s=t;e=s.name?{[s.name]:s.value}:s.value;break;case"BUTTON":const i=t;e=i.name?{[i.name]:i.value}:i.value}return e}e.HApp=h,h.debug=!1},2:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.hsmls2idomPatch=e.hsml2idomPatch=void 0;const o=n(0),s=n(1);class i{open(t,e,n,o){const i=[];let c=e._id,a=e._classes?e._classes:[],r=e._ref,u=e._hObj;for(const t in e)if(e.hasOwnProperty(t))switch(t){case"_id":case"_classes":case"_ref":case"_key":case"_skip":case"_hObj":break;case"id":c=e[t];break;case"classes":const n=e[t];a=a.concat(n?n.map(t=>t.constructor===String?t:t[1]?t[0]:void 0).filter(t=>void 0!==t):[]);break;case"class":a=a.concat(e[t].split(" "));break;case"data":const s=e[t];for(const t in s)s.hasOwnProperty(t)&&(s[t].constructor===String?i.push("data-"+t,s[t]):i.push("data-"+t,JSON.stringify(s[t])));break;case"styles":i.push("style",e[t]);break;case"on":const r=e[t];"string"==typeof r[0]?"function"==typeof r[1]?i.push("on"+r[0],r[1]):i.push("on"+r[0],t=>{o&&o.actionCb&&"function"==typeof o.actionCb&&o.actionCb(r[1],r[2],t)}):r.forEach(t=>{"function"==typeof t[1]?i.push("on"+t[0],t[1]):i.push("on"+t[0],e=>{o&&o.actionCb&&"function"==typeof o.actionCb&&o.actionCb(t[1],t[2],e)})});break;default:switch(typeof e[t]){case"function":i.push("on"+t,e[t]);break;case"object":i.push(t,e[t]);break;case"boolean":e[t]&&i.push(t,t);break;default:i.push(t,e[t])}}return a.length&&i.unshift("class",a.join(" ")),c&&i.unshift("id",c),s.elementOpen(t,e._key,void 0,...i),e._skip&&s.skip(),o&&r&&(o.refs[r]=s.currentElement()),u&&u.mount&&u.mount.constructor===Function&&(u.mount(s.currentElement()),s.skip()),!!e._skip}close(t,e,n){s.elementClose(t)}text(t,e){s.text(t)}fnc(t,e){t(s.currentElement())&&s.skip()}obj(t,e){"toHsml"in t?t.toHsml&&o.hsml(t.toHsml(),this,t):this.text(""+t,e)}}function c(t,e){o.hsml(t,new i,e)}e.hsml2idomPatch=function(t,e,n){s.patch(t,t=>t&&c(t,n),e)},e.hsmls2idomPatch=function(t,e,n){s.patch(t,t=>t&&function(t,e){for(const n of t)if(null!=n)if(n.constructor===String)s.text(n);else if("toHsml"in n){const t=n;t.toHsml&&c(t.toHsml(),t)}else c(n,e)}(t,n),e)}}})}));
2
2
  //# sourceMappingURL=hsml-app.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./src/hsml.ts","webpack:///external \"IncrementalDOM\"","webpack:///./src/hsml-app.ts","webpack:///./src/hsml-idom.ts"],"names":["root","factory","exports","module","require","define","amd","a","i","window","__WEBPACK_EXTERNAL_MODULE__1__","installedModules","__webpack_require__","moduleId","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","hsml","hml","handler","ctx","constructor","Array","hmlTag","console","error","head","attrsObj","hasAttrs","hFnc","hObj","children","htc","Function","String","Boolean","Number","Date","refSplit","split","ref","dotSplit","hashSplit","tag","id","classes","slice","attrs","_id","length","_classes","_ref","_hObj","skip","open","fnc","forEach","jml","close","hsmlTag","text","toLocaleString","toString","ds","obj","hsmls","sep","reduce","push","splice","log","err","HAppAction","state","view","dispatcher","element","document","body","HApp","mount","schedule","requestAnimationFrame","callback","setTimeout","unschedule","cancelAnimationFrame","handle","clearTimeout","refs","dispatch","type","data","event","debug","t0","performance","now","this","update","e","t1","render","actionCb","action","undefined","el","target","nodeName","preventDefault","els","elements","formInputData","names","keys","concat","filter","formData","getElementById","app","umount","dom","updateDom","_onUpdate","_mount","_umount","hasAttribute","removeAttribute","aNodes","querySelectorAll","firstChild","removeChild","_updateSched","onUpdate","cb","toHsml","_skip","toHtml","outerHTML","_init","hsmls2idomPatch","iel","checked","sel","multiple","values","from","selectedOptions","map","tel","bel","HsmlIDomHandler","props","attrClasses","attrData","JSON","stringify","attrOn","attr","unshift","join","idom","elementOpen","_key","currentElement","elementClose","hsml2idom","node","hsmlEl","patch","hsmlFr","hmls","hsmls2idom"],"mappings":"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","file":"hsml-app.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"IncrementalDOM\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"IncrementalDOM\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"IncrementalDOM\")) : factory(root[\"IncrementalDOM\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function(__WEBPACK_EXTERNAL_MODULE__1__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n","\nexport type HHead = keyof HTMLElementTagNameMap | string; // \"tag#id.class1.class2~handler\"\n\nexport type HAttrClasses = Array<string | [string, boolean]>;\n\nexport type HAttrStyles = { [key: string]: string };\n\nexport type HAttrData = {\n [key: string]:\n | string\n | String\n | number\n | Number\n | boolean\n | Boolean\n | Date\n | Array<any>\n | Object;\n};\n\nexport type HAttrOnAction = string;\n\nexport type HAttrOnDataFnc = (e: Event) => any;\n\nexport type HAttrOnData =\n | string\n | String\n | number\n | Number\n | boolean\n | Boolean\n | Date\n | Array<any>\n | Object\n | HAttrOnDataFnc\n | null;\n\nexport type HAttrOnCb = [keyof HTMLElementEventMap, EventListener];\n\nexport type HAttrOnAct = [\n keyof HTMLElementEventMap,\n HAttrOnAction,\n HAttrOnData?\n];\n\nexport type HAttrOn = HAttrOnCb | HAttrOnAct | Array<HAttrOnCb | HAttrOnAct>;\n\nexport interface HAttrs {\n readonly _id?: string;\n readonly _classes?: string[];\n readonly _ref?: string;\n readonly _key?: string;\n readonly _skip?: boolean;\n readonly _hObj?: HObj;\n readonly classes?: HAttrClasses;\n readonly styles?: HAttrStyles;\n readonly data?: HAttrData;\n readonly on?: HAttrOn;\n readonly [key: string]:\n | string\n | String\n | string[]\n | String[]\n | number\n | Number\n | boolean\n | Boolean\n | Date\n | HAttrClasses\n | HAttrStyles\n // | HsmlAttrData\n | HAttrOn\n | EventListener\n | HObj\n | undefined;\n}\n\nexport type HFnc = (e: Element) => boolean | void;\n\nexport interface HObj {\n toHsml?(): HElement;\n}\n\nexport interface HElements extends Array<HElement> {}\n\nexport type HChildren =\n | HElements\n | HFnc\n | HObj\n | string\n | String\n | boolean\n | Boolean\n | number\n | Number\n | Date\n | undefined\n | null;\n\nexport type HTagNoAttr = [HHead, HChildren?];\nexport type HTagAttr = [HHead, HAttrs, HChildren?];\n\nexport type HTag = HTagNoAttr | HTagAttr;\n\nexport type HElement =\n | HFnc\n | HObj\n | HTag\n | string\n | String\n | boolean\n | Boolean\n | number\n | Number\n | Date\n | undefined\n | null;\n\nexport interface HHandlerCtx extends HObj {\n refs: { [name: string]: Element };\n actionCb(action: HAttrOnAction, data: HAttrOnData, e: Event): void;\n}\n\nexport interface HHandler<C extends HHandlerCtx> {\n open(tag: HHead, attrs: HAttrs, children: HElements, ctx?: C): boolean;\n close(tag: HHead, children: HElements, ctx?: C): void;\n text(text: string, ctx?: C): void;\n fnc(fnc: HFnc, ctx?: C): void;\n obj(obj: HObj, ctx?: C): void;\n}\n\nexport function hsml<C extends HHandlerCtx>(hml: HElement,\n handler: HHandler<C>,\n ctx?: C): void {\n // console.log(\"hsml\", hsml);\n if (hml === undefined || hml === null) {\n return;\n }\n switch (hml.constructor) {\n case Array:\n // const tag = hml as HTag;\n // if (\n // (\n // tag.length === 1 &&\n // tag[0].constructor === String\n // ) ||\n // (\n // tag.length === 2 &&\n // (\n // tag[0].constructor === String &&\n // (tag[1]!.constructor === Array || tag[1]!.constructor === Function)\n // ) ||\n // (\n // tag[0].constructor === String &&\n // tag[1]!.constructor === Object\n // )\n // ) ||\n // (\n // tag.length === 3 &&\n // tag[0].constructor === String &&\n // tag[1].constructor === Object &&\n // tag[2]!.constructor === Array\n // )\n // ) {\n // hsmlTag(hml as HTag, handler, ctx);\n // } else {\n // console.error(\"hsml parse error:\", hml);\n // // console.error(\"hsml parse error:\", JSON.stringify(hml, null, 4));\n // // throw Error(`hsml parse error: ${JSON.stringify(hml)}`);\n // }\n hsmlTag(hml as HTag, handler, ctx);\n break;\n case Function:\n handler.fnc(hml as HFnc, ctx);\n break;\n case String:\n handler.text(hml as string, ctx);\n break;\n case Boolean:\n handler.text(\"\" + hml, ctx);\n break;\n case Number:\n const n = hml as number;\n const ns = n.toLocaleString ? n.toLocaleString() : n.toString();\n handler.text(ns, ctx);\n break;\n case Date:\n const d = hml as Date;\n const ds = d.toLocaleString ? d.toLocaleString() : d.toString();\n handler.text(ds, ctx);\n break;\n default: // HObj\n handler.obj(hml as HObj, ctx);\n }\n\n function hsmlTag(hmlTag: HTag, handler: HHandler<C>, ctx?: C): void {\n // console.log(\"hsml tag\", hmlTag);\n\n if (typeof hmlTag[0] !== \"string\") {\n console.error(\"HSML tag head not string:\", hmlTag);\n return;\n }\n\n const head = hmlTag[0] as HHead;\n const attrsObj = hmlTag[1] as any;\n const hasAttrs = attrsObj && attrsObj.constructor === Object;\n const childIdx = hasAttrs ? 2 : 1;\n\n let children: HElements = [];\n let hFnc: HFnc | undefined;\n let hObj: HObj | undefined;\n\n const htc = hmlTag[childIdx];\n switch (htc && htc.constructor) {\n case Array:\n children = htc as HElements;\n break;\n case Function:\n hFnc = htc as HFnc;\n break;\n case String:\n case Boolean:\n case Number:\n case Date:\n children = [htc as string | boolean | number | Date];\n break;\n default: // HObj\n hObj = htc as HObj;\n break;\n }\n\n const refSplit = head.split(\"~\");\n const ref = refSplit[1];\n const dotSplit = refSplit[0].split(\".\");\n const hashSplit = dotSplit[0].split(\"#\");\n const tag = hashSplit[0] || \"div\";\n const id = hashSplit[1];\n const classes = dotSplit.slice(1);\n\n let attrs: HAttrs;\n if (hasAttrs) {\n attrs = attrsObj as HAttrs;\n } else {\n attrs = {} as HAttrs;\n }\n\n if (id) {\n (attrs as any)._id = id;\n }\n if (classes.length) {\n (attrs as any)._classes = classes;\n }\n if (ref) {\n (attrs as any)._ref = ref;\n }\n if (hObj) {\n (attrs as any)._hObj = hObj;\n }\n\n const skip = handler.open(tag, attrs, children, ctx);\n\n if (hFnc) {\n handler.fnc(hFnc, ctx);\n }\n\n if (!skip) {\n children.forEach(jml => hsml(jml, handler, ctx));\n }\n\n handler.close(tag, children, ctx);\n }\n}\n\nexport function hjoin(hsmls: HElements, sep: string | HElement): HElements {\n const r = hsmls.reduce<HElements>(\n (p, c) => (p.push(c, sep), p),\n [] as HElements\n );\n r.splice(-1);\n return r;\n}\n\n// Test\n\n// const hsmls: Hsmls = [\n// \"text\",\n// [\"tag\", [\n// \"d\",\n// [\"\"]\n// ]],\n// [\"taga\", { attr: \"attr\", classes: [\"class\"] }, [\n// \"text\",\n// 123,\n// true\n// ]]\n// ];\n\n// const hml: Hsml = [\"xxx\", {}, [\n// \"types\", \" \", 1235.456, \" \", new Date(), \" \",\n// ...hsmls,\n// [\"t\", [\"t\", \"a\", \"\"]],\n// [\"t\", {}, [\"t\", \"a\", \"\"]],\n// [\"t\"]\n// ]];\n\n// console.log(hsmls, hml);\n\n// const hml1: Hsml = [\"div\", null, [\n// [\"span\", null, [\n// [\"a\",\n// {\n// href: \"https://gitlab.com/peter-rybar/diasheet\",\n// title: \"GitLab\",\n// target: \"_blank\"\n// },\n// [[\"i.fa.fa-gitlab\"]]\n// ]\n// ]],\n// [\"span\"]\n// ]];\n// console.log(hml1);\n\n// const hml2: Hsml = [\"div\", [\n// [\"h2\", [\"title\"]],\n// [\"div.w3-card-12\", [\n// [\"header.w3-container w3-light-grey\", [\n// [\"h3\", [\"Account: \", \"User\"]]\n// ]],\n// [\"div.w3-container.w3-light-grey\", [\n// [\"p\", [\"Balance: 4 DCT\"]],\n// [\"br\"]\n// ]],\n// [\"h4\", [\"Your account spending\"]],\n// [\"div#piechart\"],\n// [\"h4\", [\"Your account balance\"]],\n// [\"div#linechart\"],\n// [\"button.w3-button.w3-block.w3-dark-grey\", [\"Refresh\"]]\n// ]],\n// [\"br\"]\n// ]];\n// console.log(hml2);\n\n// TEST\n\n// import { hsmls2htmls } from \"./hsml-html\";\n// import { HDispatch } from \"./hsml-app\";\n\n// const dispatch: HDispatch = (type: string, data?: any, event?: Event): void => {\n// console.log(\"action:\", type, data, event);\n// };\n\n// const data = { attr: \"action-data\" };\n\n// const hmls: HElements = [\n// [\"button\", { on: [\"click\", \"action\", data] }, \"send\"],\n// [\"h1\", \"aaa\"],\n// [\"input\",\n// {\n// type: \"text\",\n// on: [\n// [\"mouseover\", \"hover-action\", data],\n// [\"change\", \"click-action\", e => (e.target as HTMLInputElement).value],\n// [\"click\", e => dispatch(\"action\", data, e)],\n// ],\n// click: e => dispatch(\"action\", data, e)\n// }\n// ],\n// [\"button\",\n// {\n// on: [\"click\", e => dispatch(\"action\", data, e)],\n// click: e => dispatch(\"action\", data, e)\n// },\n// [\"Send\"]\n// ]\n// ];\n\n// console.log(hsmls2htmls(hmls, true).join(\"\"));\n","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","import { HElement, HElements, HAttrOnData, HAttrOnDataFnc, HHandlerCtx } from \"./hsml\";\nimport { hsmls2idomPatch } from \"./hsml-idom\";\n\nconst log = console.log;\nconst err = console.error;\n\nexport type HView<STATE> = (state: STATE) => HElements;\nexport type HView1<STATE> = (state: STATE) => HElement;\n\nexport interface HAction {\n type: string;\n data?: any;\n event?: Event;\n}\n\nexport type HDispatch = (type: HAction[\"type\"],\n data?: HAction[\"data\"],\n event?: HAction[\"event\"]) => void;\n\nexport type HUpdate = () => void;\n\nexport type HDispatcher<STATE> = (action: HAction, state: STATE, dispatch: HDispatch) => Promise<void>;\n\n// export type Class<T = object> = new (...args: any[]) => T;\n\nexport function happ<STATE>(state: STATE,\n view: HView<STATE>,\n dispatcher?: HDispatcher<STATE>,\n element: Element | string | null = document.body) {\n return new HApp<STATE>(state, view, dispatcher).mount(element);\n}\n\nexport enum HAppAction {\n _init = \"_init\",\n _mount = \"_mount\",\n _umount = \"_umount\",\n}\n\nconst schedule = window.requestAnimationFrame ||\n // window.webkitRequestAnimationFrame ||\n // (window as any).mozRequestAnimationFrame ||\n // (window as any).oRequestAnimationFrame ||\n // (window as any).msRequestAnimationFrame ||\n function (callback: Function) { window.setTimeout(callback, 1000 / 60); };\n\nconst unschedule = window.cancelAnimationFrame ||\n // window.webkitCancelAnimationFrame ||\n // (window as any).mozCancelAnimationFrame ||\n // (window as any).oCancelAnimationFrame ||\n // (window as any).msCancelAnimationFrame ||\n function (handle: number) { window.clearTimeout(handle); };\n\nconst msgAction = \"HApp action:\";\nconst msgDispatch = \"HApp dispatch:\";\nconst msgRender = \"HApp render:\";\nconst msgUpdate = \"HApp update:\";\n\nexport class HApp<STATE> implements HHandlerCtx {\n\n static debug = false;\n\n readonly state: STATE;\n readonly view: HView<STATE>;\n readonly dispatcher: HDispatcher<STATE>;\n\n readonly dom?: Element;\n readonly refs: { [key: string]: HTMLElement } = {};\n\n private _updateSched?: number;\n\n private _onUpdate?: (app: HApp<STATE>) => void;\n\n constructor(state: STATE, view: HView<STATE>, dispatcher?: HDispatcher<STATE>) {\n this.state = state;\n this.view = view;\n this.dispatcher = dispatcher || (async (a) => log(msgAction, a.type, a.data));\n this.dispatch(HAppAction._init);\n }\n\n dispatch: HDispatch = async (type: string, data?: any, event?: Event): Promise<void> => {\n if (HApp.debug) {\n log(msgAction, { type, data, event });\n const t0 = performance.now();\n try {\n await this.dispatcher({ type, data, event }, this.state, this.dispatch);\n this.update();\n } catch (e) {\n err(msgDispatch, e);\n }\n const t1 = performance.now();\n log(msgDispatch, `${t1 - t0} ms`, this.state);\n } else {\n try {\n await this.dispatcher({ type, data, event }, this.state, this.dispatch);\n this.update();\n } catch (e) {\n err(msgDispatch, e);\n }\n }\n }\n\n render = (): HElements => {\n if (HApp.debug) {\n const t0 = performance.now();\n let hsmls;\n try {\n hsmls = this.view(this.state);\n } catch (e) {\n err(msgRender, e);\n }\n const t1 = performance.now();\n log(msgRender, `${t1 - t0} ms`, hsmls);\n return hsmls || [];\n } else {\n let hsmls;\n try {\n hsmls = this.view(this.state);\n } catch (e) {\n err(msgRender, e);\n }\n return hsmls || [];\n }\n }\n\n actionCb = (action: string, data: HAttrOnData, event: Event): void => {\n data = (data && data.constructor === Function)\n ? (data as HAttrOnDataFnc)(event)\n : data;\n if (data === undefined && event) {\n data = formData(event);\n }\n this.dispatch(action, data, event);\n }\n\n mount = (e: Element | string | null = document.body): this => {\n const el = (typeof e === \"string\")\n ? document.getElementById(e) || document.body\n : e || document.body;\n if ((el as any).app) {\n const a = (el as any).app as HApp<STATE>;\n a.umount();\n }\n if (!this.dom) {\n (this as any).dom = el;\n (el as any).app = this;\n const hsmls = (this as any).render();\n updateDom(el, hsmls, this);\n this._onUpdate && this._onUpdate(this);\n this.dispatch(HAppAction._mount, this.dom);\n }\n return this;\n }\n\n umount = (): this => {\n if (this.dom) {\n this.dispatch(HAppAction._umount, this.dom);\n if (this.dom.hasAttribute(\"app\")) {\n this.dom.removeAttribute(\"app\");\n }\n const aNodes = this.dom.querySelectorAll(\"[app]\");\n for (let i = 0; i < aNodes.length; i++) {\n const a = (aNodes[i] as any).app as HApp<STATE>;\n a && a.umount();\n }\n while (this.dom.firstChild /*.hasChildNodes()*/) {\n this.dom.removeChild(this.dom.firstChild);\n }\n delete (this.dom as any).app;\n (this as any).dom = undefined;\n }\n return this;\n }\n\n update = (): this => {\n if (this.dom && !this._updateSched) {\n this._updateSched = schedule(() => {\n if (this.dom) {\n const hsmls = this.render();\n updateDom(this.dom, hsmls, this);\n }\n this._updateSched = undefined;\n this._onUpdate && this._onUpdate(this);\n });\n }\n return this;\n }\n\n onUpdate = (cb: (app: HApp<STATE>) => void): this => {\n this._onUpdate = cb;\n return this;\n }\n\n toHsml = (): HElement => {\n if (this.dom) {\n if (this._updateSched) {\n unschedule(this._updateSched);\n this._updateSched = undefined;\n } else {\n return [\"div\", { _skip: true }];\n }\n }\n const hsmls = this.render();\n hsmls.push(\n (e: Element) => {\n if (!this.dom) {\n (this as any).dom = e;\n (e as any).app = this;\n this.dispatch(HAppAction._mount, this.dom);\n }\n });\n return [\"div\", hsmls];\n }\n\n toHtml = (): string => {\n return this.dom ? this.dom.outerHTML : \"\";\n }\n\n}\n\nfunction updateDom(el: Element, hsml: HElements, ctx: HHandlerCtx): void {\n if (HApp.debug) {\n const t0 = performance.now();\n hsmls2idomPatch(el, hsml, ctx);\n const t1 = performance.now();\n log(msgUpdate, `${t1 - t0} ms`, el);\n } else {\n hsmls2idomPatch(el, hsml, ctx);\n }\n}\n\nfunction formData(e: Event): { [k: string]: string | number | boolean | null | Array<string | null> } | string | number | boolean | null | Array<string | null> {\n const el = e.target as HTMLElement;\n switch (el.nodeName) {\n case \"FORM\":\n (e as Event).preventDefault();\n const els = (el as HTMLFormElement).elements;\n const data = {} as { [k: string]: string | null | Array<string | null> };\n for (let i = 0; i < els.length; i++) {\n const d = formInputData(els[i]);\n if (typeof d === \"object\") {\n const names = Object.keys(d as object);\n if (names.length) {\n const name = names[0];\n const value = (d as any)[name];\n if (data[name] === undefined) {\n data[name] = value;\n } else if (typeof data[name] === \"string\" || data[name] instanceof String) {\n if (value instanceof Array) {\n data[name] = [data[name] as string, ...value];\n } else {\n data[name] = [data[name] as string, value as string];\n }\n } else if (data[name] instanceof Array) {\n if (value instanceof Array) {\n data[name] = (data[name] as Array<string | null>).concat(value);\n } else {\n (data[name] as Array<string | null>).push(value);\n }\n } else {\n if (value instanceof Array) {\n data[name] = [data[name] as string, ...value];\n } else {\n data[name] = [data[name] as string, value];\n }\n }\n if (data[name] instanceof Array) {\n data[name] = (data[name] as Array<string | null>)\n .filter(d => d !== null);\n if ((els[i] as HTMLInputElement).type === \"radio\") {\n data[name] = (data[name] as Array<string | null>).length\n ? (data[name] as Array<string | null>)[0]\n : null;\n }\n }\n }\n }\n }\n return data;\n default:\n return formInputData(el);\n }\n}\n\nfunction formInputData(el: Element): { [k: string]: string | string[] | null } | string | string[] | number | boolean | null {\n let data: { [k: string]: string | string[] | null } | string | string[] | number | boolean | null = null;\n switch (el.nodeName) {\n case \"INPUT\":\n const iel = el as HTMLInputElement;\n switch (iel.type) {\n case \"text\":\n case \"hidden\":\n case \"password\":\n case \"email\":\n case \"number\":\n case \"search\":\n case \"url\":\n case \"tel\":\n case \"color\":\n case \"date\":\n case \"datetime-local\":\n case \"month\":\n case \"range\":\n case \"time\":\n case \"week\":\n case \"submit\":\n case \"button\":\n if (iel.name) {\n data = { [iel.name]: iel.value };\n } else {\n data = iel.value;\n }\n break;\n case \"radio\":\n if (iel.name) {\n data = { [iel.name]: iel.checked ? iel.value : null };\n } else {\n data = iel.checked ? iel.value : null;\n }\n break;\n case \"checkbox\":\n if (iel.value === \"on\") { // value not set in element\n if (iel.name) {\n data = { [iel.name]: String(iel.checked) };\n } else {\n data = String(iel.checked);\n }\n } else {\n if (iel.name) {\n data = { [iel.name]: iel.checked\n ? String(iel.value)\n : null };\n } else {\n data = iel.checked\n ? String(iel.value)\n : null;\n }\n }\n break;\n }\n break;\n case \"SELECT\":\n const sel = el as HTMLSelectElement;\n if (sel.multiple) {\n const values = Array.from(sel.selectedOptions).map(o => o.value);\n if (sel.name) {\n data = { [sel.name]: values };\n } else {\n data = values;\n }\n } else {\n if (sel.name) {\n data = { [sel.name]: sel.value };\n } else {\n data = sel.value;\n }\n }\n break;\n case \"TEXTAREA\":\n const tel = el as HTMLTextAreaElement;\n if (tel.name) {\n data = { [tel.name]: tel.value };\n } else {\n data = tel.value;\n }\n break;\n case \"BUTTON\":\n const bel = el as HTMLButtonElement;\n if (bel.name) {\n data = { [bel.name]: bel.value };\n } else {\n data = bel.value;\n }\n break;\n }\n return data;\n}\n\n// export const formInputData = <STATE>(dispatcher: Actions<STATE>): Actions<STATE> =>\n// (app: App<STATE>, action: string | number, data?: any, event?: Event): void => {\n// if (data === undefined && event) {\n// data = inputEventData(event);\n// }\n// dispatcher(app, action, data, event);\n// };\n\n// // Decorator\n// export function FormInputData() {\n// return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n// const method = descriptor.value;\n// descriptor.value = formInputData(method);\n// return descriptor;\n// };\n// }\n","import {\n hsml,\n HElement,\n HElements,\n HHead,\n HAttrs,\n HAttrClasses,\n HAttrData,\n HAttrStyles,\n HAttrOn,\n HAttrOnCb,\n HAttrOnAct,\n HAttrOnAction,\n HAttrOnData,\n HFnc,\n HObj,\n HHandler,\n HHandlerCtx\n} from \"./hsml\";\nimport * as idom from \"incremental-dom\";\n\n// function setBoolAttrProp(el: any, attr: string, value: any) {\n// // console.log(\"idom.attributes\", attr, value, typeof value, el);\n// if (typeof value === \"string\") {\n// let b;\n// switch (value) {\n// case \"true\":\n// case \"1\":\n// case \"on\":\n// case \"yes\":\n// b = true;\n// break;\n// default:\n// b = false;\n// }\n// if (b) {\n// el.setAttribute(attr, value);\n// } else {\n// el.removeAttribute(attr);\n// }\n// el[attr] = b;\n// } else if (typeof value === \"boolean\") {\n// if (value) {\n// el.setAttribute(attr, \"\");\n// } else {\n// el.removeAttribute(attr);\n// }\n// el[attr] = value;\n// } else {\n// if (value) {\n// el.setAttribute(attr, value ? value : \"\");\n// } else {\n// el.removeAttribute(attr);\n// }\n// }\n// }\n\n// const boolAttrProps = [\n// \"readonly\",\n// \"disabled\",\n// \"checked\",\n// \"value\"\n// ];\n\n// boolAttrProps.forEach(a => idom.attributes[a] = setBoolAttrProp);\n\nclass HsmlIDomHandler implements HHandler<HHandlerCtx> {\n\n open(tag: HHead, attrs: HAttrs, children: HElements, ctx?: HHandlerCtx): boolean {\n const props: any[] = [];\n let id = attrs._id;\n let classes: string[] = attrs._classes ? attrs._classes : [];\n let ref = attrs._ref;\n let hObj: any = attrs._hObj;\n for (const a in attrs) {\n if (attrs.hasOwnProperty(a)) {\n switch (a) {\n case \"_id\":\n case \"_classes\":\n case \"_ref\":\n case \"_key\":\n case \"_skip\":\n case \"_hObj\":\n break;\n case \"id\":\n id = attrs[a] as string;\n break;\n case \"classes\":\n const attrClasses = attrs[a] as HAttrClasses;\n classes = classes.concat(attrClasses\n ? attrClasses\n .map(c =>\n c.constructor === String\n ? c as string\n : (c[1] ? c[0] as string : undefined))\n .filter((c): c is string => c !== undefined)\n : [] as string[]);\n break;\n case \"class\":\n classes = classes.concat((attrs[a] as string).split(\" \"));\n break;\n case \"data\":\n const attrData = attrs[a] as HAttrData;\n for (const d in attrData) {\n if (attrData.hasOwnProperty(d)) {\n if (attrData[d].constructor === String) {\n props.push(\"data-\" + d, attrData[d]);\n } else {\n props.push(\"data-\" + d, JSON.stringify(attrData[d]));\n }\n }\n }\n break;\n case \"styles\":\n props.push(\"style\", attrs[a] as HAttrStyles);\n break;\n case \"on\":\n const attrOn = attrs[a] as HAttrOn;\n if (typeof attrOn[0] === \"string\") {\n if (typeof attrOn[1] === \"function\") {\n props.push(\"on\" + attrOn[0], attrOn[1]);\n } else {\n props.push(\"on\" + attrOn[0], (e: Event) => {\n ctx && ctx.actionCb &&\n typeof ctx.actionCb === \"function\" &&\n ctx.actionCb(attrOn[1] as HAttrOnAction,\n attrOn[2] as HAttrOnData,\n e);\n });\n }\n } else {\n (attrOn as Array<HAttrOnCb | HAttrOnAct>)\n .forEach(attr => {\n if (typeof attr[1] === \"function\") {\n props.push(\"on\" + attr[0], attr[1]);\n } else {\n props.push(\"on\" + attr[0], (e: Event) => {\n ctx && ctx.actionCb &&\n typeof ctx.actionCb === \"function\" &&\n ctx.actionCb(attr[1] as HAttrOnAction,\n attr[2] as HAttrOnData,\n e);\n });\n }\n });\n }\n break;\n default:\n // http://google.github.io/incremental-dom/#attributes-and-properties\n switch (typeof attrs[a]) {\n case \"function\":\n props.push(\"on\" + a, attrs[a]);\n break;\n case \"object\":\n // console.log(\"---\", a, typeof attrs[a], attrs[a]);\n // console.log(\"---String \", attrs[a] instanceof String);\n // console.log(\"---Boolean\", attrs[a] instanceof Boolean);\n // console.log(\"---Number \", attrs[a] instanceof Number);\n props.push(a, attrs[a]);\n break;\n // case \"boolean\":\n // if (boolAttrProps.includes(a)) {\n // props.push(a, attrs[a]);\n // } else {\n // attrs[a] && props.push(a, a);\n // }\n // break;\n case \"boolean\":\n attrs[a] && props.push(a, a);\n break;\n default:\n props.push(a, attrs[a]);\n break;\n }\n }\n }\n }\n if (classes.length) {\n props.unshift(\"class\", classes.join(\" \"));\n }\n if (id) {\n props.unshift(\"id\", id);\n }\n idom.elementOpen(tag, attrs._key, undefined, ...props);\n if (attrs._skip) {\n idom.skip();\n }\n if (ctx && ref) {\n ctx.refs[ref] = idom.currentElement();\n }\n if (hObj && hObj.mount && hObj.mount.constructor === Function) {\n hObj.mount(idom.currentElement());\n idom.skip();\n }\n return attrs._skip ? true : false;\n }\n\n close(tag: HHead, children: HElements, ctx?: HHandlerCtx): void {\n idom.elementClose(tag);\n }\n\n text(text: string, ctx?: HHandlerCtx): void {\n idom.text(text);\n }\n\n fnc(fnc: HFnc, ctx?: HHandlerCtx): void {\n const skip = fnc(idom.currentElement());\n skip && idom.skip();\n }\n\n obj(obj: HObj, ctx?: HHandlerCtx): void {\n if (\"toHsml\" in obj) {\n obj.toHsml && hsml(obj.toHsml(), this, obj as HHandlerCtx);\n } else {\n this.text(\"\" + obj, ctx);\n }\n }\n\n}\n\nfunction hsml2idom(hml: HElement, ctx?: HHandlerCtx): void {\n hsml(hml, new HsmlIDomHandler(), ctx);\n}\n\nfunction hsmls2idom(hmls: HElements, ctx?: HHandlerCtx): void {\n for (const hml of hmls) {\n if (hml === undefined || hml === null) {\n continue;\n }\n if (hml.constructor === String) {\n idom.text(hml as string);\n } else if (\"toHsml\" in (hml as any)) {\n const obj = hml as HHandlerCtx;\n obj.toHsml && hsml2idom(obj.toHsml(), obj);\n } else {\n hsml2idom(hml as HElement, ctx);\n }\n }\n}\n\nexport function hsml2idomPatch(node: Element, hsmlEl: HElement, ctx?: HHandlerCtx): void {\n idom.patch(node,\n (data?: HElement) => (data && hsml2idom(data, ctx)), hsmlEl);\n}\n\nexport function hsmls2idomPatch(node: Element, hsmlFr: HElements, ctx?: HHandlerCtx): void {\n idom.patch(node,\n (data?: HElements) => (data && hsmls2idom(data, ctx)), hsmlFr);\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap","webpack:///./src/hsml.ts","webpack:///external \"IncrementalDOM\"","webpack:///./src/hsml-app.ts","webpack:///./src/hsml-idom.ts"],"names":["root","factory","exports","module","require","define","amd","a","i","window","__WEBPACK_EXTERNAL_MODULE__1__","installedModules","__webpack_require__","moduleId","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","NBSP","hsml","hml","handler","ctx","constructor","Array","hmlTag","console","error","head","attrsObj","hasAttrs","hFnc","hObj","children","htc","Function","String","Boolean","Number","Date","refSplit","split","ref","dotSplit","hashSplit","tag","id","classes","slice","attrs","_id","length","_classes","_ref","_hObj","skip","open","fnc","forEach","jml","close","hsmlTag","text","toLocaleString","toString","ds","obj","hsmls","sep","reduce","push","splice","log","err","HAppAction","schedule","requestAnimationFrame","callback","setTimeout","unschedule","cancelAnimationFrame","handle","clearTimeout","HApp","state","view","dispatcher","e","document","body","refs","dispatch","type","data","event","debug","t0","performance","now","this","update","t1","render","actionCb","action","undefined","el","target","nodeName","preventDefault","els","elements","formInputData","names","keys","concat","filter","formData","mount","getElementById","app","umount","dom","updateDom","_onUpdate","_mount","_umount","hasAttribute","removeAttribute","aNodes","querySelectorAll","firstChild","removeChild","_updateSched","onUpdate","cb","toHsml","_skip","toHtml","outerHTML","_init","then","hsmls2idomPatch","iel","checked","sel","multiple","values","from","selectedOptions","map","tel","bel","HsmlIDomHandler","props","attrClasses","attrData","JSON","stringify","attrOn","attr","unshift","join","idom","elementOpen","_key","currentElement","elementClose","hsml2idom","node","hsmlEl","patch","hsmlFr","hmls","hsmls2idom"],"mappings":"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","file":"hsml-app.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"IncrementalDOM\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"IncrementalDOM\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"IncrementalDOM\")) : factory(root[\"IncrementalDOM\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(window, function(__WEBPACK_EXTERNAL_MODULE__1__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 12);\n","\nexport type HHead = keyof HTMLElementTagNameMap | string; // \"tag#id.class1.class2~handler\"\n\nexport type HAttrClasses = Array<string | [string, boolean]>;\n\nexport type HAttrStyles = { [key: string]: string };\n\nexport type HAttrData = {\n [key: string]:\n | string\n | String\n | number\n | Number\n | boolean\n | Boolean\n | Date\n | Array<any>\n | Object;\n};\n\nexport type HAttrOnAction = string;\n\nexport type HAttrOnDataFnc = (e: Event) => any;\n\nexport type HAttrOnData =\n | string\n | String\n | number\n | Number\n | boolean\n | Boolean\n | Date\n | Array<any>\n | Object\n | HAttrOnDataFnc\n | null;\n\nexport type HAttrOnCb = [keyof HTMLElementEventMap, EventListener];\n\nexport type HAttrOnAct = [\n keyof HTMLElementEventMap,\n HAttrOnAction,\n HAttrOnData?\n];\n\nexport type HAttrOn = HAttrOnCb | HAttrOnAct | Array<HAttrOnCb | HAttrOnAct>;\n\nexport interface HAttrs {\n readonly _id?: string;\n readonly _classes?: string[];\n readonly _ref?: string;\n readonly _key?: string;\n readonly _skip?: boolean;\n readonly _hObj?: HObj;\n readonly classes?: HAttrClasses;\n readonly styles?: HAttrStyles;\n readonly data?: HAttrData;\n readonly on?: HAttrOn;\n readonly [key: string]:\n | string\n | String\n | string[]\n | String[]\n | number\n | Number\n | boolean\n | Boolean\n | Date\n | HAttrClasses\n | HAttrStyles\n // | HsmlAttrData\n | HAttrOn\n | EventListener\n | HObj\n | undefined;\n}\n\nexport type HFnc = (e: Element) => boolean | void;\n\nexport interface HObj {\n toHsml?(): HElement;\n}\n\nexport interface HElements extends Array<HElement> {}\n\nexport type HChildren =\n | HElements\n | HFnc\n | HObj\n | string\n | String\n | boolean\n | Boolean\n | number\n | Number\n | Date\n | undefined\n | null;\n\nexport type HTagNoAttr = [HHead, HChildren?];\nexport type HTagAttr = [HHead, HAttrs, HChildren?];\n\nexport type HTag = HTagNoAttr | HTagAttr;\n\nexport type HElement =\n | HFnc\n | HObj\n | HTag\n | string\n | String\n | boolean\n | Boolean\n | number\n | Number\n | Date\n | undefined\n | null;\n\nexport interface HHandlerCtx extends HObj {\n refs: { [name: string]: Element };\n actionCb(action: HAttrOnAction, data: HAttrOnData, e: Event): void;\n}\n\nexport interface HHandler<C extends HHandlerCtx> {\n open(tag: HHead, attrs: HAttrs, children: HElements, ctx?: C): boolean;\n close(tag: HHead, children: HElements, ctx?: C): void;\n text(text: string, ctx?: C): void;\n fnc(fnc: HFnc, ctx?: C): void;\n obj(obj: HObj, ctx?: C): void;\n}\n\nexport const NBSP = \"\\u00a0 \";\n\nexport function hsml<C extends HHandlerCtx>(hml: HElement,\n handler: HHandler<C>,\n ctx?: C): void {\n // console.log(\"hsml\", hsml);\n if (hml === undefined || hml === null) {\n return;\n }\n switch (hml.constructor) {\n case Array:\n // const tag = hml as HTag;\n // if (\n // (\n // tag.length === 1 &&\n // tag[0].constructor === String\n // ) ||\n // (\n // tag.length === 2 &&\n // (\n // tag[0].constructor === String &&\n // (tag[1]!.constructor === Array || tag[1]!.constructor === Function)\n // ) ||\n // (\n // tag[0].constructor === String &&\n // tag[1]!.constructor === Object\n // )\n // ) ||\n // (\n // tag.length === 3 &&\n // tag[0].constructor === String &&\n // tag[1].constructor === Object &&\n // tag[2]!.constructor === Array\n // )\n // ) {\n // hsmlTag(hml as HTag, handler, ctx);\n // } else {\n // console.error(\"hsml parse error:\", hml);\n // // console.error(\"hsml parse error:\", JSON.stringify(hml, null, 4));\n // // throw Error(`hsml parse error: ${JSON.stringify(hml)}`);\n // }\n hsmlTag(hml as HTag, handler, ctx);\n break;\n case Function:\n handler.fnc(hml as HFnc, ctx);\n break;\n case String:\n handler.text(hml as string, ctx);\n break;\n case Boolean:\n handler.text(\"\" + hml, ctx);\n break;\n case Number:\n const n = hml as number;\n const ns = n.toLocaleString ? n.toLocaleString() : n.toString();\n handler.text(ns, ctx);\n break;\n case Date:\n const d = hml as Date;\n const ds = d.toLocaleString ? d.toLocaleString() : d.toString();\n handler.text(ds, ctx);\n break;\n default: // HObj\n handler.obj(hml as HObj, ctx);\n }\n\n function hsmlTag(hmlTag: HTag, handler: HHandler<C>, ctx?: C): void {\n // console.log(\"hsml tag\", hmlTag);\n\n if (typeof hmlTag[0] !== \"string\") {\n console.error(\"HSML tag head not string:\", hmlTag);\n return;\n }\n\n const head = hmlTag[0] as HHead;\n const attrsObj = hmlTag[1] as any;\n const hasAttrs = attrsObj && attrsObj.constructor === Object;\n const childIdx = hasAttrs ? 2 : 1;\n\n let children: HElements = [];\n let hFnc: HFnc | undefined;\n let hObj: HObj | undefined;\n\n const htc = hmlTag[childIdx];\n switch (htc != null && htc.constructor) { // switch ((typeof htc !== \"undefined\" || htc !== null) && htc.constructor) {\n case Array:\n children = htc as HElements;\n break;\n case Function:\n hFnc = htc as HFnc;\n break;\n case String:\n case Boolean:\n case Number:\n case Date:\n children = [htc as string | boolean | number | Date];\n break;\n default: // HObj\n hObj = htc as HObj;\n break;\n }\n\n const refSplit = head.split(\"~\");\n const ref = refSplit[1];\n const dotSplit = refSplit[0].split(\".\");\n const hashSplit = dotSplit[0].split(\"#\");\n const tag = hashSplit[0] || \"div\";\n const id = hashSplit[1];\n const classes = dotSplit.slice(1);\n\n let attrs: HAttrs;\n if (hasAttrs) {\n attrs = attrsObj as HAttrs;\n } else {\n attrs = {} as HAttrs;\n }\n\n if (id) {\n (attrs as any)._id = id;\n }\n if (classes.length) {\n (attrs as any)._classes = classes;\n }\n if (ref) {\n (attrs as any)._ref = ref;\n }\n if (hObj) {\n (attrs as any)._hObj = hObj;\n }\n\n const skip = handler.open(tag, attrs, children, ctx);\n\n if (hFnc) {\n handler.fnc(hFnc, ctx);\n }\n\n if (!skip) {\n children.forEach(jml => hsml(jml, handler, ctx));\n }\n\n handler.close(tag, children, ctx);\n }\n}\n\nexport function hjoin(hsmls: HElements, sep: string | HElement): HElements {\n const r = hsmls.reduce<HElements>(\n (p, c) => (p.push(c, sep), p),\n [] as HElements\n );\n r.splice(-1);\n return r;\n}\n\n// Test\n\n// const hsmls: Hsmls = [\n// \"text\",\n// [\"tag\", [\n// \"d\",\n// [\"\"]\n// ]],\n// [\"taga\", { attr: \"attr\", classes: [\"class\"] }, [\n// \"text\",\n// 123,\n// true\n// ]]\n// ];\n\n// const hml: Hsml = [\"xxx\", {}, [\n// \"types\", \" \", 1235.456, \" \", new Date(), \" \",\n// ...hsmls,\n// [\"t\", [\"t\", \"a\", \"\"]],\n// [\"t\", {}, [\"t\", \"a\", \"\"]],\n// [\"t\"]\n// ]];\n\n// console.log(hsmls, hml);\n\n// const hml1: Hsml = [\"div\", null, [\n// [\"span\", null, [\n// [\"a\",\n// {\n// href: \"https://gitlab.com/peter-rybar/diasheet\",\n// title: \"GitLab\",\n// target: \"_blank\"\n// },\n// [[\"i.fa.fa-gitlab\"]]\n// ]\n// ]],\n// [\"span\"]\n// ]];\n// console.log(hml1);\n\n// const hml2: Hsml = [\"div\", [\n// [\"h2\", [\"title\"]],\n// [\"div.w3-card-12\", [\n// [\"header.w3-container w3-light-grey\", [\n// [\"h3\", [\"Account: \", \"User\"]]\n// ]],\n// [\"div.w3-container.w3-light-grey\", [\n// [\"p\", [\"Balance: 4 DCT\"]],\n// [\"br\"]\n// ]],\n// [\"h4\", [\"Your account spending\"]],\n// [\"div#piechart\"],\n// [\"h4\", [\"Your account balance\"]],\n// [\"div#linechart\"],\n// [\"button.w3-button.w3-block.w3-dark-grey\", [\"Refresh\"]]\n// ]],\n// [\"br\"]\n// ]];\n// console.log(hml2);\n\n// TEST\n\n// import { hsmls2htmls } from \"./hsml-html\";\n// import { HDispatch } from \"./hsml-app\";\n\n// const dispatch: HDispatch = (type: string, data?: any, event?: Event): void => {\n// console.log(\"action:\", type, data, event);\n// };\n\n// const data = { attr: \"action-data\" };\n\n// const hmls: HElements = [\n// [\"button\", { on: [\"click\", \"action\", data] }, \"send\"],\n// [\"h1\", \"aaa\"],\n// [\"input\",\n// {\n// type: \"text\",\n// on: [\n// [\"mouseover\", \"hover-action\", data],\n// [\"change\", \"click-action\", e => (e.target as HTMLInputElement).value],\n// [\"click\", e => dispatch(\"action\", data, e)],\n// ],\n// click: e => dispatch(\"action\", data, e)\n// }\n// ],\n// [\"button\",\n// {\n// on: [\"click\", e => dispatch(\"action\", data, e)],\n// click: e => dispatch(\"action\", data, e)\n// },\n// [\"Send\"]\n// ]\n// ];\n\n// console.log(hsmls2htmls(hmls, true).join(\"\"));\n","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","import { HElement, HElements, HAttrOnData, HAttrOnDataFnc, HHandlerCtx } from \"./hsml\";\nimport { hsmls2idomPatch } from \"./hsml-idom\";\n\nconst log = console.log;\nconst err = console.error;\n\nexport type HView<STATE> = (state: STATE) => HElements;\nexport type HView1<STATE> = (state: STATE) => HElement;\n\nexport interface HAction {\n type: string;\n data?: any;\n event?: Event;\n}\n\nexport type HDispatch = (type: HAction[\"type\"],\n data?: HAction[\"data\"],\n event?: HAction[\"event\"]) => Promise<void>;\n\nexport type HUpdate = () => void;\n\nexport type HDispatcher<STATE> = (action: HAction, state: STATE, dispatch: HDispatch) => Promise<void>;\n\n// export type Class<T = object> = new (...args: any[]) => T;\n\n// export function happ<STATE>(state: STATE,\n// view: HView<STATE>,\n// dispatcher?: HDispatcher<STATE>,\n// element: Element | string | null = document.body) {\n// return new HApp<STATE>(state, view, dispatcher, element);\n// }\n\nexport enum HAppAction {\n _init = \"_init\",\n _mount = \"_mount\",\n _umount = \"_umount\",\n}\n\nconst schedule = window.requestAnimationFrame ||\n // window.webkitRequestAnimationFrame ||\n // (window as any).mozRequestAnimationFrame ||\n // (window as any).oRequestAnimationFrame ||\n // (window as any).msRequestAnimationFrame ||\n function (callback: Function) { window.setTimeout(callback, 1000 / 60); };\n\nconst unschedule = window.cancelAnimationFrame ||\n // window.webkitCancelAnimationFrame ||\n // (window as any).mozCancelAnimationFrame ||\n // (window as any).oCancelAnimationFrame ||\n // (window as any).msCancelAnimationFrame ||\n function (handle: number) { window.clearTimeout(handle); };\n\nconst msgAction = \"HApp action:\";\nconst msgDispatch = \"HApp dispatch:\";\nconst msgRender = \"HApp render:\";\nconst msgUpdate = \"HApp update:\";\n\nexport class HApp<STATE> implements HHandlerCtx {\n\n static debug = false;\n\n readonly state: STATE;\n readonly view: HView<STATE>;\n readonly dispatcher: HDispatcher<STATE>;\n\n readonly dom?: Element;\n readonly refs: { [key: string]: HTMLElement } = {};\n\n private _updateSched?: number;\n\n private _onUpdate?: (app: HApp<STATE>) => void;\n\n constructor(state: STATE, view: HView<STATE>, dispatcher?: HDispatcher<STATE>, e: Element | string | null = document.body) {\n this.state = state;\n this.view = view;\n this.dispatcher = dispatcher || (async (a) => log(msgAction, a.type, a.data));\n this.dispatch(HAppAction._init).then(() => this.mount(e));\n }\n\n dispatch: HDispatch = async (type: string, data?: any, event?: Event): Promise<void> => {\n if (HApp.debug) {\n log(msgAction, { type, data, event });\n const t0 = performance.now();\n try {\n await this.dispatcher({ type, data, event }, this.state, this.dispatch);\n this.update();\n } catch (e) {\n err(msgDispatch, e);\n }\n const t1 = performance.now();\n log(msgDispatch, `${t1 - t0} ms`, this.state);\n } else {\n try {\n await this.dispatcher({ type, data, event }, this.state, this.dispatch);\n this.update();\n } catch (e) {\n err(msgDispatch, e);\n }\n }\n }\n\n render = (): HElements => {\n if (HApp.debug) {\n const t0 = performance.now();\n let hsmls;\n try {\n hsmls = this.view(this.state);\n } catch (e) {\n err(msgRender, e);\n }\n const t1 = performance.now();\n log(msgRender, `${t1 - t0} ms`, hsmls);\n return hsmls || [];\n } else {\n let hsmls;\n try {\n hsmls = this.view(this.state);\n } catch (e) {\n err(msgRender, e);\n }\n return hsmls || [];\n }\n }\n\n actionCb = (action: string, data: HAttrOnData, event: Event): void => {\n data = (data && data.constructor === Function)\n ? (data as HAttrOnDataFnc)(event)\n : data;\n if (data === undefined && event) {\n data = formData(event);\n }\n this.dispatch(action, data, event);\n }\n\n mount = (e: Element | string | null = document.body): this => {\n const el = (typeof e === \"string\")\n ? document.getElementById(e) || document.body\n : e || document.body;\n if ((el as any).app) {\n const a = (el as any).app as HApp<STATE>;\n a.umount();\n }\n if (!this.dom) {\n (this as any).dom = el;\n (el as any).app = this;\n const hsmls = (this as any).render();\n updateDom(el, hsmls, this);\n this._onUpdate && this._onUpdate(this);\n this.dispatch(HAppAction._mount, this.dom);\n }\n return this;\n }\n\n umount = (): this => {\n if (this.dom) {\n this.dispatch(HAppAction._umount, this.dom);\n if (this.dom.hasAttribute(\"app\")) {\n this.dom.removeAttribute(\"app\");\n }\n const aNodes = this.dom.querySelectorAll(\"[app]\");\n for (let i = 0; i < aNodes.length; i++) {\n const a = (aNodes[i] as any).app as HApp<STATE>;\n a && a.umount();\n }\n while (this.dom.firstChild /*.hasChildNodes()*/) {\n this.dom.removeChild(this.dom.firstChild);\n }\n delete (this.dom as any).app;\n (this as any).dom = undefined;\n }\n return this;\n }\n\n update = (): this => {\n if (this.dom && !this._updateSched) {\n this._updateSched = schedule(() => {\n if (this.dom) {\n const hsmls = this.render();\n updateDom(this.dom, hsmls, this);\n }\n this._updateSched = undefined;\n this._onUpdate && this._onUpdate(this);\n });\n }\n return this;\n }\n\n onUpdate = (cb: (app: HApp<STATE>) => void): this => {\n this._onUpdate = cb;\n return this;\n }\n\n toHsml = (): HElement => {\n if (this.dom) {\n if (this._updateSched) {\n unschedule(this._updateSched);\n this._updateSched = undefined;\n } else {\n return [\"div\", { _skip: true }];\n }\n }\n const hsmls = this.render();\n hsmls.push(\n (e: Element) => {\n if (!this.dom) {\n (this as any).dom = e;\n (e as any).app = this;\n this.dispatch(HAppAction._mount, this.dom);\n }\n });\n return [\"div\", hsmls];\n }\n\n toHtml = (): string => {\n return this.dom ? this.dom.outerHTML : \"\";\n }\n\n}\n\nfunction updateDom(el: Element, hsml: HElements, ctx: HHandlerCtx): void {\n if (HApp.debug) {\n const t0 = performance.now();\n hsmls2idomPatch(el, hsml, ctx);\n const t1 = performance.now();\n log(msgUpdate, `${t1 - t0} ms`, el);\n } else {\n hsmls2idomPatch(el, hsml, ctx);\n }\n}\n\nfunction formData(e: Event): { [k: string]: string | number | boolean | null | Array<string | null> } | string | number | boolean | null | Array<string | null> {\n const el = e.target as HTMLElement;\n switch (el.nodeName) {\n case \"FORM\":\n (e as Event).preventDefault();\n const els = (el as HTMLFormElement).elements;\n const data = {} as { [k: string]: string | null | Array<string | null> };\n for (let i = 0; i < els.length; i++) {\n const d = formInputData(els[i]);\n if (typeof d === \"object\") {\n const names = Object.keys(d as object);\n if (names.length) {\n const name = names[0];\n const value = (d as any)[name];\n if (data[name] === undefined) {\n data[name] = value;\n } else if (typeof data[name] === \"string\" || data[name] instanceof String) {\n if (value instanceof Array) {\n data[name] = [data[name] as string, ...value];\n } else {\n data[name] = [data[name] as string, value as string];\n }\n } else if (data[name] instanceof Array) {\n if (value instanceof Array) {\n data[name] = (data[name] as Array<string | null>).concat(value);\n } else {\n (data[name] as Array<string | null>).push(value);\n }\n } else {\n if (value instanceof Array) {\n data[name] = [data[name] as string, ...value];\n } else {\n data[name] = [data[name] as string, value];\n }\n }\n if (data[name] instanceof Array) {\n data[name] = (data[name] as Array<string | null>)\n .filter(d => d !== null);\n if ((els[i] as HTMLInputElement).type === \"radio\") {\n data[name] = (data[name] as Array<string | null>).length\n ? (data[name] as Array<string | null>)[0]\n : null;\n }\n }\n }\n }\n }\n return data;\n default:\n return formInputData(el);\n }\n}\n\nfunction formInputData(el: Element): { [k: string]: string | string[] | null } | string | string[] | number | boolean | null {\n let data: { [k: string]: string | string[] | null } | string | string[] | number | boolean | null = null;\n switch (el.nodeName) {\n case \"INPUT\":\n const iel = el as HTMLInputElement;\n switch (iel.type) {\n case \"text\":\n case \"hidden\":\n case \"password\":\n case \"email\":\n case \"number\":\n case \"search\":\n case \"url\":\n case \"tel\":\n case \"color\":\n case \"date\":\n case \"datetime-local\":\n case \"month\":\n case \"range\":\n case \"time\":\n case \"week\":\n case \"submit\":\n case \"button\":\n if (iel.name) {\n data = { [iel.name]: iel.value };\n } else {\n data = iel.value;\n }\n break;\n case \"radio\":\n if (iel.name) {\n data = { [iel.name]: iel.checked ? iel.value : null };\n } else {\n data = iel.checked ? iel.value : null;\n }\n break;\n case \"checkbox\":\n if (iel.value === \"on\") { // value not set in element\n if (iel.name) {\n data = { [iel.name]: String(iel.checked) };\n } else {\n data = String(iel.checked);\n }\n } else {\n if (iel.name) {\n data = { [iel.name]: iel.checked\n ? String(iel.value)\n : null };\n } else {\n data = iel.checked\n ? String(iel.value)\n : null;\n }\n }\n break;\n }\n break;\n case \"SELECT\":\n const sel = el as HTMLSelectElement;\n if (sel.multiple) {\n const values = Array.from(sel.selectedOptions).map(o => o.value);\n if (sel.name) {\n data = { [sel.name]: values };\n } else {\n data = values;\n }\n } else {\n if (sel.name) {\n data = { [sel.name]: sel.value };\n } else {\n data = sel.value;\n }\n }\n break;\n case \"TEXTAREA\":\n const tel = el as HTMLTextAreaElement;\n if (tel.name) {\n data = { [tel.name]: tel.value };\n } else {\n data = tel.value;\n }\n break;\n case \"BUTTON\":\n const bel = el as HTMLButtonElement;\n if (bel.name) {\n data = { [bel.name]: bel.value };\n } else {\n data = bel.value;\n }\n break;\n }\n return data;\n}\n\n// export const formInputData = <STATE>(dispatcher: Actions<STATE>): Actions<STATE> =>\n// (app: App<STATE>, action: string | number, data?: any, event?: Event): void => {\n// if (data === undefined && event) {\n// data = inputEventData(event);\n// }\n// dispatcher(app, action, data, event);\n// };\n\n// // Decorator\n// export function FormInputData() {\n// return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n// const method = descriptor.value;\n// descriptor.value = formInputData(method);\n// return descriptor;\n// };\n// }\n","import {\n hsml,\n HElement,\n HElements,\n HHead,\n HAttrs,\n HAttrClasses,\n HAttrData,\n HAttrStyles,\n HAttrOn,\n HAttrOnCb,\n HAttrOnAct,\n HAttrOnAction,\n HAttrOnData,\n HFnc,\n HObj,\n HHandler,\n HHandlerCtx\n} from \"./hsml\";\nimport * as idom from \"incremental-dom\";\n\n// function setBoolAttrProp(el: any, attr: string, value: any) {\n// // console.log(\"idom.attributes\", attr, value, typeof value, el);\n// if (typeof value === \"string\") {\n// let b;\n// switch (value) {\n// case \"true\":\n// case \"1\":\n// case \"on\":\n// case \"yes\":\n// b = true;\n// break;\n// default:\n// b = false;\n// }\n// if (b) {\n// el.setAttribute(attr, value);\n// } else {\n// el.removeAttribute(attr);\n// }\n// el[attr] = b;\n// } else if (typeof value === \"boolean\") {\n// if (value) {\n// el.setAttribute(attr, \"\");\n// } else {\n// el.removeAttribute(attr);\n// }\n// el[attr] = value;\n// } else {\n// if (value) {\n// el.setAttribute(attr, value ? value : \"\");\n// } else {\n// el.removeAttribute(attr);\n// }\n// }\n// }\n\n// const boolAttrProps = [\n// \"readonly\",\n// \"disabled\",\n// \"checked\",\n// \"value\"\n// ];\n\n// boolAttrProps.forEach(a => idom.attributes[a] = setBoolAttrProp);\n\nclass HsmlIDomHandler implements HHandler<HHandlerCtx> {\n\n open(tag: HHead, attrs: HAttrs, children: HElements, ctx?: HHandlerCtx): boolean {\n const props: any[] = [];\n let id = attrs._id;\n let classes: string[] = attrs._classes ? attrs._classes : [];\n let ref = attrs._ref;\n let hObj: any = attrs._hObj;\n for (const a in attrs) {\n if (attrs.hasOwnProperty(a)) {\n switch (a) {\n case \"_id\":\n case \"_classes\":\n case \"_ref\":\n case \"_key\":\n case \"_skip\":\n case \"_hObj\":\n break;\n case \"id\":\n id = attrs[a] as string;\n break;\n case \"classes\":\n const attrClasses = attrs[a] as HAttrClasses;\n classes = classes.concat(attrClasses\n ? attrClasses\n .map(c =>\n c.constructor === String\n ? c as string\n : (c[1] ? c[0] as string : undefined))\n .filter((c): c is string => c !== undefined)\n : [] as string[]);\n break;\n case \"class\":\n classes = classes.concat((attrs[a] as string).split(\" \"));\n break;\n case \"data\":\n const attrData = attrs[a] as HAttrData;\n for (const d in attrData) {\n if (attrData.hasOwnProperty(d)) {\n if (attrData[d].constructor === String) {\n props.push(\"data-\" + d, attrData[d]);\n } else {\n props.push(\"data-\" + d, JSON.stringify(attrData[d]));\n }\n }\n }\n break;\n case \"styles\":\n props.push(\"style\", attrs[a] as HAttrStyles);\n break;\n case \"on\":\n const attrOn = attrs[a] as HAttrOn;\n if (typeof attrOn[0] === \"string\") {\n if (typeof attrOn[1] === \"function\") {\n props.push(\"on\" + attrOn[0], attrOn[1]);\n } else {\n props.push(\"on\" + attrOn[0], (e: Event) => {\n ctx && ctx.actionCb &&\n typeof ctx.actionCb === \"function\" &&\n ctx.actionCb(attrOn[1] as HAttrOnAction,\n attrOn[2] as HAttrOnData,\n e);\n });\n }\n } else {\n (attrOn as Array<HAttrOnCb | HAttrOnAct>)\n .forEach(attr => {\n if (typeof attr[1] === \"function\") {\n props.push(\"on\" + attr[0], attr[1]);\n } else {\n props.push(\"on\" + attr[0], (e: Event) => {\n ctx && ctx.actionCb &&\n typeof ctx.actionCb === \"function\" &&\n ctx.actionCb(attr[1] as HAttrOnAction,\n attr[2] as HAttrOnData,\n e);\n });\n }\n });\n }\n break;\n default:\n // http://google.github.io/incremental-dom/#attributes-and-properties\n switch (typeof attrs[a]) {\n case \"function\":\n props.push(\"on\" + a, attrs[a]);\n break;\n case \"object\":\n // console.log(\"---\", a, typeof attrs[a], attrs[a]);\n // console.log(\"---String \", attrs[a] instanceof String);\n // console.log(\"---Boolean\", attrs[a] instanceof Boolean);\n // console.log(\"---Number \", attrs[a] instanceof Number);\n props.push(a, attrs[a]);\n break;\n // case \"boolean\":\n // if (boolAttrProps.includes(a)) {\n // props.push(a, attrs[a]);\n // } else {\n // attrs[a] && props.push(a, a);\n // }\n // break;\n case \"boolean\":\n attrs[a] && props.push(a, a);\n break;\n default:\n props.push(a, attrs[a]);\n break;\n }\n }\n }\n }\n if (classes.length) {\n props.unshift(\"class\", classes.join(\" \"));\n }\n if (id) {\n props.unshift(\"id\", id);\n }\n idom.elementOpen(tag, attrs._key, undefined, ...props);\n if (attrs._skip) {\n idom.skip();\n }\n if (ctx && ref) {\n ctx.refs[ref] = idom.currentElement();\n }\n if (hObj && hObj.mount && hObj.mount.constructor === Function) {\n hObj.mount(idom.currentElement());\n idom.skip();\n }\n return attrs._skip ? true : false;\n }\n\n close(tag: HHead, children: HElements, ctx?: HHandlerCtx): void {\n idom.elementClose(tag);\n }\n\n text(text: string, ctx?: HHandlerCtx): void {\n idom.text(text);\n }\n\n fnc(fnc: HFnc, ctx?: HHandlerCtx): void {\n const skip = fnc(idom.currentElement());\n skip && idom.skip();\n }\n\n obj(obj: HObj, ctx?: HHandlerCtx): void {\n if (\"toHsml\" in obj) {\n obj.toHsml && hsml(obj.toHsml(), this, obj as HHandlerCtx);\n } else {\n this.text(\"\" + obj, ctx);\n }\n }\n\n}\n\nfunction hsml2idom(hml: HElement, ctx?: HHandlerCtx): void {\n hsml(hml, new HsmlIDomHandler(), ctx);\n}\n\nfunction hsmls2idom(hmls: HElements, ctx?: HHandlerCtx): void {\n for (const hml of hmls) {\n if (hml === undefined || hml === null) {\n continue;\n }\n if (hml.constructor === String) {\n idom.text(hml as string);\n } else if (\"toHsml\" in (hml as any)) {\n const obj = hml as HHandlerCtx;\n obj.toHsml && hsml2idom(obj.toHsml(), obj);\n } else {\n hsml2idom(hml as HElement, ctx);\n }\n }\n}\n\nexport function hsml2idomPatch(node: Element, hsmlEl: HElement, ctx?: HHandlerCtx): void {\n idom.patch(node,\n (data?: HElement) => (data && hsml2idom(data, ctx)), hsmlEl);\n}\n\nexport function hsmls2idomPatch(node: Element, hsmlFr: HElements, ctx?: HHandlerCtx): void {\n idom.patch(node,\n (data?: HElements) => (data && hsmls2idom(data, ctx)), hsmlFr);\n}\n"],"sourceRoot":""}
@@ -1,2 +1,2 @@
1
- !function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(window,(function(){return function(t){var e={};function n(o){if(e[o])return e[o].exports;var r=e[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(o,r,function(e){return t[e]}.bind(null,r));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=13)}({0:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.hjoin=e.hsml=void 0,e.hsml=function t(e,n,o){if(null!=e)switch(e.constructor){case Array:!function(e,n,o){if("string"!=typeof e[0])return void console.error("HSML tag head not string:",e);const r=e[0],s=e[1],c=s&&s.constructor===Object;let i,a,u=[];const l=e[c?2:1];switch(l&&l.constructor){case Array:u=l;break;case Function:i=l;break;case String:case Boolean:case Number:case Date:u=[l];break;default:a=l}const f=r.split("~"),d=f[1],p=f[0].split("."),b=p[0].split("#"),h=b[0]||"div",m=b[1],_=p.slice(1);let y;y=c?s:{};m&&(y._id=m);_.length&&(y._classes=_);d&&(y._ref=d);a&&(y._hObj=a);const g=n.open(h,y,u,o);i&&n.fnc(i,o);g||u.forEach(e=>t(e,n,o));n.close(h,u,o)}(e,n,o);break;case Function:n.fnc(e,o);break;case String:n.text(e,o);break;case Boolean:n.text(""+e,o);break;case Number:const r=e,s=r.toLocaleString?r.toLocaleString():r.toString();n.text(s,o);break;case Date:const c=e,i=c.toLocaleString?c.toLocaleString():c.toString();n.text(i,o);break;default:n.obj(e,o)}},e.hjoin=function(t,e){const n=t.reduce((t,n)=>(t.push(n,e),t),[]);return n.splice(-1),n}},13:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.hsmls2dom=e.hsml2dom=void 0;const o=n(0);class r{open(t,e,n,o){const r=document.createElement(t);let s=e._id,c=e._classes?e._classes:[],i=e._ref,a=e._hObj;for(const t in e)if(e.hasOwnProperty(t))switch(t){case"_id":case"_classes":case"_ref":case"_key":case"_skip":case"_hObj":break;case"id":s=e[t];break;case"classes":const n=e[t];c=c.concat(n?n.map(t=>t.constructor===String?t:t[1]?t[0]:void 0).filter(t=>void 0!==t):[]);break;case"class":c=c.concat(e[t].split(" "));break;case"data":const i=e[t];for(const t in i)i.hasOwnProperty(t)&&(i[t].constructor===String?r.dataset[t]=i[t]:r.dataset[t]=JSON.stringify(i[t]));break;case"styles":const a=e[t];for(const t in a)a.hasOwnProperty(t)&&(r.style[t]=a[t]);break;case"on":const u=e[t];"string"==typeof u[0]?"function"==typeof u[1]?r.addEventListener(u[0],u[1]):r.addEventListener(u[0],t=>{o&&o.actionCb&&"function"==typeof o.actionCb&&o.actionCb(u[1],u[2],t)}):u.forEach(t=>{"function"==typeof u[1]?r.addEventListener(u[0],u[1]):r.addEventListener(u[0],t=>{o&&o.actionCb&&"function"==typeof o.actionCb&&o.actionCb(u[1],u[2],t)})});break;default:"function"==typeof e[t]?r.addEventListener(t,e[t]):"boolean"==typeof e[t]?e[t]&&r.setAttribute(t,""):r.setAttribute(t,e[t])}return s&&r.setAttribute("id",s),c.length&&r.classList.add(...c),this._current?(this._current.appendChild(r),this._current=r):(this.element=r,this._current=r),o&&i&&(o.refs[i]=this._current),a&&a.mount&&a.mount.constructor===Function&&a.mount(r),!!e._skip}close(t,e,n){this._current!==this.element&&this._current&&(this._current=this._current.parentElement||void 0)}text(t,e){this._current&&this._current.appendChild(document.createTextNode(t))}fnc(t,e){this._current&&t(this._current)}obj(t,e){"toHsml"in t?t.toHsml&&o.hsml(t.toHsml(),this,t):this.text(""+t,e)}}function s(t,e){const n=new r;return o.hsml(t,n,e),n.element}e.hsml2dom=s,e.hsmls2dom=function(t,e){const n=[];for(const o of t)if(null!=o)if(o.constructor===String)n.push(document.createTextNode(o));else if("toHsml"in o){const t=o;t.toHsml&&n.push(s(t.toHsml(),t))}else n.push(s(o,e));return n}}})}));
1
+ !function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var o in n)("object"==typeof exports?exports:t)[o]=n[o]}}(window,(function(){return function(t){var e={};function n(o){if(e[o])return e[o].exports;var r=e[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:o})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)n.d(o,r,function(e){return t[e]}.bind(null,r));return o},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=13)}({0:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.hjoin=e.hsml=e.NBSP=void 0,e.NBSP="  ",e.hsml=function t(e,n,o){if(null!=e)switch(e.constructor){case Array:!function(e,n,o){if("string"!=typeof e[0])return void console.error("HSML tag head not string:",e);const r=e[0],s=e[1],c=s&&s.constructor===Object;let i,a,u=[];const l=e[c?2:1];switch(null!=l&&l.constructor){case Array:u=l;break;case Function:i=l;break;case String:case Boolean:case Number:case Date:u=[l];break;default:a=l}const f=r.split("~"),d=f[1],p=f[0].split("."),b=p[0].split("#"),h=b[0]||"div",m=b[1],_=p.slice(1);let y;y=c?s:{};m&&(y._id=m);_.length&&(y._classes=_);d&&(y._ref=d);a&&(y._hObj=a);const g=n.open(h,y,u,o);i&&n.fnc(i,o);g||u.forEach(e=>t(e,n,o));n.close(h,u,o)}(e,n,o);break;case Function:n.fnc(e,o);break;case String:n.text(e,o);break;case Boolean:n.text(""+e,o);break;case Number:const r=e,s=r.toLocaleString?r.toLocaleString():r.toString();n.text(s,o);break;case Date:const c=e,i=c.toLocaleString?c.toLocaleString():c.toString();n.text(i,o);break;default:n.obj(e,o)}},e.hjoin=function(t,e){const n=t.reduce((t,n)=>(t.push(n,e),t),[]);return n.splice(-1),n}},13:function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.hsmls2dom=e.hsml2dom=void 0;const o=n(0);class r{open(t,e,n,o){const r=document.createElement(t);let s=e._id,c=e._classes?e._classes:[],i=e._ref,a=e._hObj;for(const t in e)if(e.hasOwnProperty(t))switch(t){case"_id":case"_classes":case"_ref":case"_key":case"_skip":case"_hObj":break;case"id":s=e[t];break;case"classes":const n=e[t];c=c.concat(n?n.map(t=>t.constructor===String?t:t[1]?t[0]:void 0).filter(t=>void 0!==t):[]);break;case"class":c=c.concat(e[t].split(" "));break;case"data":const i=e[t];for(const t in i)i.hasOwnProperty(t)&&(i[t].constructor===String?r.dataset[t]=i[t]:r.dataset[t]=JSON.stringify(i[t]));break;case"styles":const a=e[t];for(const t in a)a.hasOwnProperty(t)&&(r.style[t]=a[t]);break;case"on":const u=e[t];"string"==typeof u[0]?"function"==typeof u[1]?r.addEventListener(u[0],u[1]):r.addEventListener(u[0],t=>{o&&o.actionCb&&"function"==typeof o.actionCb&&o.actionCb(u[1],u[2],t)}):u.forEach(t=>{"function"==typeof u[1]?r.addEventListener(u[0],u[1]):r.addEventListener(u[0],t=>{o&&o.actionCb&&"function"==typeof o.actionCb&&o.actionCb(u[1],u[2],t)})});break;default:"function"==typeof e[t]?r.addEventListener(t,e[t]):"boolean"==typeof e[t]?e[t]&&r.setAttribute(t,""):r.setAttribute(t,e[t])}return s&&r.setAttribute("id",s),c.length&&r.classList.add(...c),this._current?(this._current.appendChild(r),this._current=r):(this.element=r,this._current=r),o&&i&&(o.refs[i]=this._current),a&&a.mount&&a.mount.constructor===Function&&a.mount(r),!!e._skip}close(t,e,n){this._current!==this.element&&this._current&&(this._current=this._current.parentElement||void 0)}text(t,e){this._current&&this._current.appendChild(document.createTextNode(t))}fnc(t,e){this._current&&t(this._current)}obj(t,e){"toHsml"in t?t.toHsml&&o.hsml(t.toHsml(),this,t):this.text(""+t,e)}}function s(t,e){const n=new r;return o.hsml(t,n,e),n.element}e.hsml2dom=s,e.hsmls2dom=function(t,e){const n=[];for(const o of t)if(null!=o)if(o.constructor===String)n.push(document.createTextNode(o));else if("toHsml"in o){const t=o;t.toHsml&&n.push(s(t.toHsml(),t))}else n.push(s(o,e));return n}}})}));
2
2
  //# sourceMappingURL=hsml-dom.js.map