apprun 3.28.3 → 3.28.8

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 (51) hide show
  1. package/CHANGELOG.md +5 -2
  2. package/README.md +21 -8
  3. package/WHATSNEW.md +7 -5
  4. package/apprun-cli.js +93 -29
  5. package/cli-templates/_build.js +27 -0
  6. package/cli-templates/_eslintrc.js +40 -0
  7. package/cli-templates/index.html +1 -1
  8. package/cli-templates/spa_index.html +1 -1
  9. package/cli-templates/webpack.config.js +3 -2
  10. package/dist/apprun-dev-tools.js +1 -2
  11. package/dist/apprun-dev-tools.js.map +1 -1
  12. package/dist/apprun-html.esm.js +10 -112
  13. package/dist/apprun-html.esm.js.map +1 -1
  14. package/dist/apprun-html.js +1 -1
  15. package/dist/apprun-html.js.LICENSE.txt +2 -24
  16. package/dist/apprun-html.js.map +1 -1
  17. package/dist/apprun-play.js +2 -0
  18. package/dist/apprun-play.js.map +1 -0
  19. package/dist/apprun.esm.js +1 -1
  20. package/dist/apprun.esm.js.map +1 -1
  21. package/dist/apprun.js +1 -1
  22. package/dist/apprun.js.map +1 -1
  23. package/error.log +0 -0
  24. package/esm/app.js +1 -1
  25. package/esm/apprun-dev-tools.js +2 -1
  26. package/esm/apprun-dev-tools.js.map +1 -1
  27. package/esm/apprun-play.js +209 -0
  28. package/esm/apprun-play.js.map +1 -0
  29. package/esm/apprun.js +1 -1
  30. package/esm/apprun.js.map +1 -1
  31. package/esm/component.js +1 -1
  32. package/esm/component.js.map +1 -1
  33. package/esm/vdom-html.js +2 -0
  34. package/esm/vdom-html.js.map +1 -1
  35. package/esm/vdom-lit-html.js +40 -21
  36. package/esm/vdom-lit-html.js.map +1 -1
  37. package/esm/vdom-to-html.js +1 -2
  38. package/esm/vdom-to-html.js.map +1 -1
  39. package/index-apprun-play.html +46 -0
  40. package/index.html +2 -2
  41. package/package.json +18 -16
  42. package/react.js +13 -0
  43. package/src/app.ts +1 -1
  44. package/src/apprun-play.tsx +212 -0
  45. package/src/apprun.ts +1 -1
  46. package/src/component.ts +1 -1
  47. package/src/vdom-html.ts_ +1 -0
  48. package/src/vdom-lit-html.ts +42 -20
  49. package/src/vdom-to-html.tsx +2 -2
  50. package/webpack.config.js +3 -1
  51. package/index-wc.html +0 -36
package/esm/component.js CHANGED
@@ -34,7 +34,7 @@ export class Component {
34
34
  }
35
35
  };
36
36
  this.start = (element = null, options) => {
37
- return this.mount(element, Object.assign(Object.assign({}, options), { render: true }));
37
+ return this.mount(element, Object.assign({ render: true }, options));
38
38
  };
39
39
  }
40
40
  renderState(state, vdom = null) {
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../src/component.ts"],"names":[],"mappings":"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"}
package/esm/vdom-html.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import { createElement, updateElement, Fragment } from './vdom-my';
2
2
  import morphdom from 'morphdom';
3
3
  export function render(element, html, parent) {
4
+ if (!element)
5
+ return;
4
6
  if (typeof html === 'string') {
5
7
  html = html.trim();
6
8
  if (element.firstChild) {
@@ -1 +1 @@
1
- {"version":3,"file":"vdom-html.js","sourceRoot":"","sources":["../src/vdom-html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,UAAU,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAO;IAC3C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACpC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC;YACpB,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;SACvB;aAAM;YACL,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;SAC1B;KACF;SAAM;QACL,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;KACtC;AACH,CAAC;AACD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC"}
1
+ {"version":3,"file":"vdom-html.js","sourceRoot":"","sources":["../src/vdom-html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,UAAU,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,MAAO;IAC3C,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,OAAO,CAAC,UAAU,EAAE;YACtB,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACpC,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC;YACpB,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;SACvB;aAAM;YACL,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;SAC1B;KACF;SAAM;QACL,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;KACtC;AACH,CAAC;AACD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,38 +1,57 @@
1
1
  import { createElement, updateElement, Fragment } from './vdom-my';
2
- import { html, render, TemplateResult, svg, directive, EventPart, parts } from 'lit-html';
3
- import { unsafeHTML } from "lit-html/directives/unsafe-html";
2
+ import { render, svg, html, noChange } from 'lit-html';
3
+ import { directive, Directive, PartType } from 'lit-html/directive.js';
4
+ import { unsafeHTML } from 'lit-html/directives/unsafe-html.js';
4
5
  function _render(element, vdom, parent) {
6
+ if (!vdom)
7
+ return;
5
8
  if (typeof vdom === 'string') {
6
9
  render(html `${unsafeHTML(vdom)}`, element);
7
10
  }
8
- else if (vdom instanceof TemplateResult) {
11
+ else if ('_$litType$' in vdom) {
12
+ if (!element['_$litPart$'])
13
+ element.replaceChildren();
9
14
  render(vdom, element);
10
15
  }
11
16
  else {
12
17
  updateElement(element, vdom, parent);
13
- parts.delete(element);
18
+ element['_$litPart$'] = undefined;
14
19
  }
15
20
  }
16
- const run = directive((event, ...args) => (part) => {
17
- if (!(part instanceof EventPart)) {
18
- throw new Error('${run} can only be used in event handlers');
21
+ export class RunDirective extends Directive {
22
+ constructor(partInfo) {
23
+ super(partInfo);
24
+ // When necessary, validate part in constructor using `part.type`
25
+ if (partInfo.type !== PartType.EVENT) {
26
+ throw new Error('${run} can only be used in event handlers');
27
+ }
19
28
  }
20
- let { element, eventName } = part;
21
- const getComponent = () => {
22
- let component = element['_component'];
23
- while (!component && element) {
24
- element = element.parentElement;
25
- component = element && element['_component'];
29
+ // Optional: override update to perform any direct DOM manipulation
30
+ update(part, params) {
31
+ /* Any imperative updates to DOM/parts would go here */
32
+ let { element, name } = part;
33
+ const getComponent = () => {
34
+ let component = element['_component'];
35
+ while (!component && element) {
36
+ element = element.parentElement;
37
+ component = element && element['_component'];
38
+ }
39
+ console.assert(!!component, 'Component not found.');
40
+ return component;
41
+ };
42
+ const [event, ...args] = params;
43
+ if (typeof event === 'string') {
44
+ element[`on${name}`] = e => getComponent().run(event, ...args, e);
45
+ }
46
+ else if (typeof event === 'function') {
47
+ element[`on${name}`] = e => getComponent().setState(event(getComponent().state, ...args, e));
26
48
  }
27
- console.assert(!!component, 'Component not found.');
28
- return component;
29
- };
30
- if (typeof event === 'string') {
31
- element[`on${eventName}`] = e => getComponent().run(event, ...args, e);
49
+ return this.render();
32
50
  }
33
- else if (typeof event === 'function') {
34
- element[`on${eventName}`] = e => getComponent().setState(event(getComponent().state, ...args, e));
51
+ render() {
52
+ return noChange;
35
53
  }
36
- });
54
+ }
55
+ const run = directive(RunDirective);
37
56
  export { createElement, Fragment, html, svg, _render as render, run };
38
57
  //# sourceMappingURL=vdom-lit-html.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vdom-lit-html.js","sourceRoot":"","sources":["../src/vdom-lit-html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,SAAS,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,MAAO;IACrC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,MAAM,CAAC,IAAI,CAAA,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;KAC5C;SAAM,IAAI,IAAI,YAAY,cAAc,EAAE;QACzC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACvB;SAAM;QACL,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACrC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACvB;AACH,CAAC;AAED,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE;IACjD,IAAI,CAAC,CAAC,IAAI,YAAY,SAAS,CAAC,EAAE;QAChC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;KAC9D;IACD,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAClC,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QACtC,OAAO,CAAC,SAAS,IAAI,OAAO,EAAE;YAC5B,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;YAChC,SAAS,GAAG,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;SAC9C;QACD,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;QACpD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAA;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;KACxE;SAAM,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;QACtC,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;KACnG;AACH,CAAC,CAAC,CAAC;AAEH,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"vdom-lit-html.js","sourceRoot":"","sources":["../src/vdom-lit-html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGnE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAW,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAkB,QAAQ,EAAa,MAAM,uBAAuB,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAEhE,SAAS,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,MAAO;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO;IAClB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,MAAM,CAAC,IAAI,CAAA,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;KAC5C;SAAM,IAAI,YAAY,IAAI,IAAI,EAAE;QAC/B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YAAE,OAAO,CAAC,eAAe,EAAE,CAAC;QACtD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KACvB;SAAM;QACL,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACrC,OAAO,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC;KACnC;AACH,CAAC;AAED,MAAM,OAAO,YAAa,SAAQ,SAAS;IAGzC,YAAY,QAAkB;QAC5B,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,iEAAiE;QACjE,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,EAAE;YACpC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;SAC9D;IACH,CAAC;IACD,mEAAmE;IACnE,MAAM,CAAC,IAAU,EAAE,MAAM;QACvB,uDAAuD;QAEvD,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAiB,CAAC;QAC1C,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,IAAI,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;YACtC,OAAO,CAAC,SAAS,IAAI,OAAO,EAAE;gBAC5B,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;gBAChC,SAAS,GAAG,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;aAC9C;YACD,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;YACpD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAA;QACD,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC;QAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;SACnE;aAAM,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;YACtC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;SAC9F;QACD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IACD,MAAM;QACJ,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAED,MAAM,GAAG,GAAG,SAAS,CAAC,YAAY,CAAQ,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC"}
@@ -1,4 +1,3 @@
1
- import { TemplateResult } from 'lit-html';
2
1
  function getProp(prop) {
3
2
  if (typeof prop === 'object') {
4
3
  return Object.keys(prop).map(name => `${name}:${prop[name]}`).join(';');
@@ -27,7 +26,7 @@ function clean(obj) {
27
26
  function toHTML(vdom) {
28
27
  if (!vdom)
29
28
  return '';
30
- if (vdom instanceof TemplateResult) {
29
+ if ('_$litType$' in vdom) {
31
30
  return vdom.toString();
32
31
  }
33
32
  clean(vdom);
@@ -1 +1 @@
1
- {"version":3,"file":"vdom-to-html.js","sourceRoot":"","sources":["../src/vdom-to-html.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,SAAS,OAAO,CAAC,IAAI;IACnB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACzE;;QACI,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,OAAO,CAAC,KAAK;IACpB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SACtB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;SAClF,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,KAAK;IACxB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,KAAK,CAAC,GAAG;IAChB,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;QACjB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;YAClB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;SACf;aAAM,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YACrC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACf;KACF;AACH,CAAC;AAED,SAAS,MAAM,CAAE,IAAU;IACzB,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,IAAI,IAAI,YAAY,cAAc,EAAE;QAClC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;KACxB;IACD,KAAK,CAAC,IAAI,CAAC,CAAC;IACZ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KAC7D;SAAM,IAAI,IAAI,CAAC,GAAG,EAAE;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,OAAO,IAAI,IAAI,CAAC,GAAG,GAAG,KAAK,IAAI,QAAQ,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC;KACzD;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5D,CAAC;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"vdom-to-html.js","sourceRoot":"","sources":["../src/vdom-to-html.tsx"],"names":[],"mappings":"AAIA,SAAS,OAAO,CAAC,IAAI;IACnB,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACzE;;QACI,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,OAAO,CAAC,KAAK;IACpB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SACtB,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;SAClF,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,KAAK;IACxB,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,KAAK,CAAC,GAAG;IAChB,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE;QACjB,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;YAClB,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;SACf;aAAM,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;YACrC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACf;KACF;AACH,CAAC;AAED,SAAS,MAAM,CAAE,IAAI;IACnB,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,IAAI,YAAY,IAAI,IAAI,EAAE;QACxB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;KACxB;IACD,KAAK,CAAC,IAAI,CAAC,CAAC;IACZ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KAC7D;SAAM,IAAI,IAAI,CAAC,GAAG,EAAE;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,OAAO,IAAI,IAAI,CAAC,GAAG,GAAG,KAAK,IAAI,QAAQ,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC;KACzD;IACD,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC5D,CAAC;AAED,eAAe,MAAM,CAAC"}
@@ -0,0 +1,46 @@
1
+ <!doctype html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>AppRun Play</title>
6
+ <link rel="stylesheet" href="demo/lib/codemirror.css">
7
+ <script src="demo/lib/codemirror.js"></script>
8
+ <script src="demo/mode/javascript/javascript.js"></script>
9
+ <script src="demo/mode/xml/xml.js"></script>
10
+ <script src="demo/mode/jsx/jsx.js"></script>
11
+ <script src="dist/apprun-play.js"></script>
12
+ </head>
13
+ <body>
14
+ <textarea style="width:100%; height:300px">
15
+ const state = 0;
16
+ const view = state => {
17
+ return `<div>
18
+ <h1>${state}</h1>
19
+ <button onclick='app.run("-1")'>-1</button>
20
+ <button onclick='app.run("+1")'>+1</button>
21
+ </div>`;
22
+ };
23
+ const update = {
24
+ '+1': state => state + 1,
25
+ '-1': state => state - 1
26
+ };
27
+ app.start(document.body, state, view, update);
28
+ </textarea>
29
+ <apprun-play></apprun-play>
30
+
31
+ <textarea>
32
+ <html>
33
+ <body>
34
+ <script src="https://unpkg.com/apprun/dist/apprun-html.js"></script>
35
+ <script>
36
+ const view = state => `<div>${state}</div>`;
37
+ app.start(document.body, 'hello world', view);
38
+ </script>
39
+ </body>
40
+ </html>
41
+ </textarea>
42
+ <p>
43
+ <apprun-play></apprun-play>
44
+ </p>
45
+ </body>
46
+ </html>
package/index.html CHANGED
@@ -14,7 +14,7 @@
14
14
  <script src="demo/mode/jsx/jsx.js"></script>
15
15
  <link rel="stylesheet" type="text/css" href="demo/styles.css">
16
16
  </head>
17
- <body>
17
+ <body apprun-no-init>
18
18
  <!-- navbar -->
19
19
  <nav class="navbar navbar-default">
20
20
  <div class="container">
@@ -85,4 +85,4 @@
85
85
  <script src="dist/apprun-dev-tools.js"></script>
86
86
  <script src="demo/app.js"></script>
87
87
  </body>
88
- </html>
88
+ </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apprun",
3
- "version": "3.28.3",
3
+ "version": "3.28.8",
4
4
  "description": "JavaScript library that has Elm inspired architecture, event pub-sub and components",
5
5
  "main": "dist/apprun.js",
6
6
  "module": "dist/apprun.esm.js",
@@ -41,26 +41,27 @@
41
41
  "commander": "^7.2.0"
42
42
  },
43
43
  "devDependencies": {
44
- "@rollup/plugin-commonjs": "^19.0.0",
45
- "@rollup/plugin-node-resolve": "^13.0.0",
46
- "@types/jest": "^26.0.23",
47
- "jest": "^26.6.3",
44
+ "@rollup/plugin-commonjs": "^21.0.1",
45
+ "@rollup/plugin-node-resolve": "^13.1.3",
46
+ "@types/jest": "^27.4.0",
47
+ "jest": "^27.5.1",
48
48
  "json-loader": "^0.5.7",
49
- "lit-html": "1.4.1",
50
- "marked": "^2.0.3",
51
- "rollup": "^2.48.0",
52
- "rollup-plugin-filesize": "^9.1.1",
49
+ "lit-html": "^2.1.3",
50
+ "marked": "^4.0.12",
51
+ "rollup": "^2.67.2",
52
+ "rollup-plugin-filesize": "^9.1.2",
53
53
  "rollup-plugin-node-resolve": "^5.2.0",
54
54
  "rollup-plugin-sourcemaps": "^0.6.3",
55
55
  "rollup-plugin-terser": "^7.0.2",
56
- "ts-jest": "^26.5.6",
57
- "ts-loader": "^9.1.2",
58
- "typescript": "^4.2.4",
59
- "webpack": "^5.37.0",
60
- "webpack-cli": "^4.7.0",
61
- "webpack-dev-server": "^3.11.2"
56
+ "ts-jest": "^27.1.3",
57
+ "ts-loader": "^9.2.6",
58
+ "typescript": "^4.5.5",
59
+ "webpack": "^5.68.0",
60
+ "webpack-cli": "^4.9.2",
61
+ "webpack-dev-server": "^4.7.4"
62
62
  },
63
63
  "jest": {
64
+ "testEnvironment": "jsdom",
64
65
  "transformIgnorePatterns": [
65
66
  "/node_modules/(?!lit-html).+\\.js"
66
67
  ],
@@ -81,6 +82,7 @@
81
82
  "diagnostics": true,
82
83
  "tsconfig": "tsconfig.jest.json"
83
84
  }
84
- }
85
+ },
86
+ "testRunner": "jest-jasmine2"
85
87
  }
86
88
  }
package/react.js ADDED
@@ -0,0 +1,13 @@
1
+ import { useState } from 'react';
2
+
3
+ const toReact = (componentClass) => {
4
+ const component = new componentClass().mount();
5
+ const { state, view } = component;
6
+ return () => {
7
+ const [_state, setState] = useState(state);
8
+ component.view = setState;
9
+ return view(_state);
10
+ }
11
+ }
12
+
13
+ export default toReact;
package/src/app.ts CHANGED
@@ -86,7 +86,7 @@ export class App {
86
86
  }
87
87
  }
88
88
 
89
- const AppRunVersions = 'AppRun-2';
89
+ const AppRunVersions = 'AppRun-3';
90
90
  let app: App;
91
91
  const root = (typeof self === 'object' && self.self === self && self) ||
92
92
  (typeof global === 'object' && global.global === global && global)
@@ -0,0 +1,212 @@
1
+ import { app, Component } from './apprun';
2
+
3
+ const popup_div = `<div id="play-popup" class="overlay">
4
+ <style id="apprun-play-style">
5
+ .apprun-play .col {
6
+ display: inline-block;
7
+ width: calc(50% - 3px);
8
+ height: 100%;
9
+ }
10
+ .apprun-preview {
11
+ width: 100%
12
+ }
13
+ .apprun-play .editor, .apprun-play .preview {
14
+ display: inline-block;
15
+ width: calc(100% - 20px);
16
+ height: calc(100% - 10px);
17
+ }
18
+
19
+ a.button {
20
+ font-size: .8em;
21
+ padding: 10px;
22
+ cursor: pointer;
23
+ color: var(--md-primary-bg-color);
24
+ background: var(--md-primary-fg-color)
25
+ }
26
+ a.button:hover {
27
+ color: var(--md-primary-fg-color);
28
+ background: var(--md-primary-bg-color)
29
+ }
30
+
31
+ .overlay {
32
+ position: fixed;
33
+ top: 0;
34
+ bottom: 0;
35
+ left: 0;
36
+ right: 0;
37
+ background: rgba(0, 0, 0, 0.7);
38
+ visibility: hidden;
39
+ opacity: 0;
40
+ z-index: 999;
41
+ }
42
+ .overlay.show {
43
+ visibility: visible;
44
+ opacity: 1;
45
+ }
46
+
47
+ .popup {
48
+ margin: 80px auto;
49
+ padding: 20px;
50
+ background: #fff;
51
+ border-radius: 3px;
52
+ position: relative;
53
+ width: 90%;
54
+ height: calc(100% - 150px);
55
+ }
56
+
57
+ .popup .close {
58
+ position: absolute;
59
+ top: 10px;
60
+ right: 20px;
61
+ font-size: 20px;
62
+ font-weight: bold;
63
+ text-decoration: none;
64
+ color: #333;
65
+ }
66
+ .popup .close:hover {
67
+ color: #06D85F;
68
+ }
69
+ .popup .content {
70
+ height: 100%;
71
+ overflow: hidden;
72
+ }
73
+
74
+ .cm-s-default {
75
+ height: 100%;
76
+ font-size: small;
77
+ line-height: 1.5em;
78
+ z-index: 0;
79
+ }
80
+ </style>
81
+
82
+ <div class="popup apprun-play">
83
+ <a class="close" href="javascript:app.run('@close-popup')">&times;</a>
84
+ <div class="content">
85
+ <div class="col">
86
+ <textarea class="editor"></textarea>
87
+ </div>
88
+ <div class="col">
89
+ <iframe class="preview"/>
90
+ </div>
91
+ </div>
92
+ </div>
93
+ </div>`;
94
+
95
+ const code_html = code => `<!DOCTYPE html>
96
+ <html lang="en">
97
+ <head>
98
+ <meta charset="UTF-8">
99
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
100
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
101
+ <script src="https://cdnjs.cloudflare.com/ajax/libs/custom-elements/1.1.2/custom-elements.min.js"></script>
102
+ <title>AppRun Playground</title>
103
+ <style>
104
+ body {
105
+ font-family: "Benton Sans", "Helvetica Neue", helvetica, arial, sans-serif;
106
+ margin: 2em;
107
+ }
108
+ </style>
109
+ <script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
110
+ <script src="https://unpkg.com/apprun/dist/apprun-html.js"></script>
111
+ </head>
112
+ <body>
113
+ <script>
114
+ Babel.registerPlugin("d", [Babel.availablePlugins["proposal-decorators"], {legacy: true}]);
115
+ Babel.registerPlugin("c", [Babel.availablePlugins["proposal-class-properties"], {loose: true}]);
116
+ Babel.registerPlugin("b", [Babel.availablePlugins["proposal-private-methods"], {loose: true}]);
117
+ </script>
118
+ <script type="text/babel" data-plugins="d, c, b">
119
+ ${code}
120
+ </script>
121
+ </body>
122
+ </html>`;
123
+
124
+ declare var CodeMirror;
125
+
126
+ const setup_editor = (textarea, iframe, code, hide_src) => {
127
+
128
+ if (!iframe || !code) return;
129
+
130
+ const run_code = code => {
131
+ const iframe_clone = iframe.cloneNode();
132
+ iframe.parentNode?.replaceChild(iframe_clone, iframe);
133
+ iframe = iframe_clone;
134
+ const doc = iframe.contentWindow?.document;
135
+ if (!doc) return;
136
+ doc.open();
137
+ if (code.indexOf('<html') >= 0)
138
+ doc.write(code);
139
+ else
140
+ doc.write(code_html(code));
141
+ doc.close();
142
+ }
143
+
144
+ run_code(code);
145
+
146
+ if (hide_src || !textarea || textarea.nodeName !== 'TEXTAREA') return;
147
+ if (typeof CodeMirror === 'undefined') {
148
+ textarea.onkeyup = () => run_code(textarea.value);
149
+ } else {
150
+ if (!textarea.editor) {
151
+ textarea.editor = CodeMirror.fromTextArea(textarea, {
152
+ lineNumbers: true,
153
+ mode: 'jsx'
154
+ });
155
+ textarea.editor.on('change', (cm) => run_code(cm.getValue()));
156
+ }
157
+ }
158
+ }
159
+
160
+ class Play extends Component {
161
+ view = (state) => {
162
+ const code_id = state['code-element-id'];
163
+ const element = this.element;
164
+ let code_area, code;
165
+ if (code_id) {
166
+ code_area = document.getElementById(code_id);
167
+ } else {
168
+ code_area = element.previousElementSibling ||
169
+ element.parentElement.previousElementSibling;
170
+ }
171
+ code = code_area?.innerText // from div-code
172
+ || code_area?.value // from textarea
173
+ || state['code']; // from code attr
174
+
175
+ this.state.code_area = code_area;
176
+ this.state.code = code;
177
+
178
+ return code ? <>
179
+ <div class="toolbox">
180
+ {!state.hide_button && <a class="button" $onclick="show-popup">Try the Code</a>}
181
+ </div></>
182
+ : <div>AppRun Play cannot find code to run, please set code-element-id or code.</div>
183
+ };
184
+
185
+ rendered = ({ style, hide_src, code_area, code }) => {
186
+ if (!code) return;
187
+ if (!document.getElementById('play-popup')) {
188
+ document.body.insertAdjacentHTML('beforeend', popup_div);
189
+ const textarea = document.querySelector(".apprun-play .editor") as any;
190
+ const iframe = document.querySelector('.apprun-play .preview');
191
+ textarea.value = code;
192
+ setup_editor(textarea, iframe, code, false);
193
+ }
194
+ const iframe = document.createElement('iframe');
195
+ iframe.classList.add('apprun-preview');
196
+ iframe.style.cssText = style;
197
+ this.element.before(iframe);
198
+ if (hide_src) code_area.style.display = 'none';
199
+ setup_editor(code_area, iframe, code, hide_src);
200
+ }
201
+
202
+ update = {
203
+ 'show-popup': ({ code }) => {
204
+ const textarea = document.querySelector(".apprun-play .editor") as any;
205
+ textarea.editor?.setValue(code);
206
+ document.getElementById('play-popup').classList.add('show');
207
+ },
208
+ '@close-popup': () => { document.getElementById('play-popup').classList.remove('show') },
209
+ }
210
+ }
211
+
212
+ app.webComponent('apprun-play', Play);
package/src/apprun.ts CHANGED
@@ -27,7 +27,7 @@ app.webComponent = webComponent;
27
27
 
28
28
  app.start = <T, E = any>(element?: Element, model?: T, view?: View<T>, update?: Update<T, E>,
29
29
  options?: AppStartOptions<T>): Component<T, E> => {
30
- const opts = { ...options, render: true, global_event: true };
30
+ const opts = { render: true, global_event: true, ...options };
31
31
  const component = new Component<T, E>(model, view, update);
32
32
  if (options && options.rendered) component.rendered = options.rendered;
33
33
  component.mount(element, opts);
package/src/component.ts CHANGED
@@ -127,7 +127,7 @@ export class Component<T = any, E = any> {
127
127
  }
128
128
 
129
129
  start = (element = null, options?: MountOptions): Component<T, E> => {
130
- return this.mount(element, { ...options, render: true });
130
+ return this.mount(element, { render: true, ...options });
131
131
  }
132
132
 
133
133
  public mount(element = null, options?: MountOptions): Component<T, E> {
package/src/vdom-html.ts_ CHANGED
@@ -2,6 +2,7 @@ import { createElement, updateElement, Fragment } from './vdom-my';
2
2
  import morphdom from 'morphdom';
3
3
 
4
4
  export function render(element, html, parent?) {
5
+ if (!element) return;
5
6
  if (typeof html === 'string') {
6
7
  html = html.trim();
7
8
  if (element.firstChild) {