piral-solid 0.15.0-alpha.4122 → 0.15.0-alpha.4231

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.
package/esm/converter.js CHANGED
@@ -1,15 +1,27 @@
1
+ import { onCleanup } from 'solid-js';
1
2
  import { render, createComponent } from 'solid-js/dom';
2
3
  import { createExtension } from './extension';
3
4
  export function createConverter(config = {}) {
4
5
  const { rootName = 'slot' } = config;
5
6
  const Extension = createExtension(rootName);
6
7
  const convert = (root) => ({
7
- mount(el, props, context) {
8
- render(() => createComponent(root, Object.assign({ context }, props)), el);
8
+ mount(el, props, context, locals) {
9
+ locals.update = (props, context) => {
10
+ locals.destroy = render(() => {
11
+ onCleanup(() => {
12
+ el.innerHTML = '';
13
+ });
14
+ return createComponent(root, Object.assign({ context }, props));
15
+ }, el);
16
+ };
17
+ locals.update(props, context);
9
18
  },
10
- unmount(el) {
11
- render(() => undefined, el);
12
- el.innerHTML = '';
19
+ update(el, props, context, locals) {
20
+ locals.destroy();
21
+ locals.update(props, context);
22
+ },
23
+ unmount(el, locals) {
24
+ locals.destroy();
13
25
  },
14
26
  });
15
27
  convert.Extension = Extension;
@@ -1 +1 @@
1
- {"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAU9C,MAAM,UAAU,eAAe,CAAC,SAAgC,EAAE;IAChE,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;IACrC,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,CAAoC,IAAuB,EAA4B,EAAE,CAAC,CAAC;QACzG,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO;YACtB,MAAM,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,kBAAI,OAAO,IAAK,KAAK,EAAG,EAAE,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,CAAC,EAAE;YACR,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC5B,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,CAAC;KACF,CAAC,CAAC;IACH,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,SAAS,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAU9C,MAAM,UAAU,eAAe,CAAC,SAAgC,EAAE;IAChE,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;IACrC,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,CAAoC,IAAuB,EAA4B,EAAE,CAAC,CAAC;QACzG,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM;YAC9B,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACjC,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE;oBAC3B,SAAS,CAAC,GAAG,EAAE;wBACb,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC;oBACpB,CAAC,CAAC,CAAC;oBACH,OAAO,eAAe,CAAC,IAAI,kBAAI,OAAO,IAAK,KAAK,EAAG,CAAC;gBACtD,CAAC,EAAE,EAAE,CAAC,CAAC;YACT,CAAC,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM;YAC/B,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,CAAC,EAAE,EAAE,MAAM;YAChB,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IACH,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/esm/extension.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { createEffect } from 'solid-js';
1
2
  export function createExtension(rootName) {
2
3
  return (props) => {
3
4
  const element = document.createElement(rootName);
@@ -10,6 +11,16 @@ export function createExtension(rootName) {
10
11
  },
11
12
  }));
12
13
  }, 0);
14
+ createEffect(() => {
15
+ element.dispatchEvent(new CustomEvent('extension-props-changed', {
16
+ detail: {
17
+ name: props.name,
18
+ empty: props.empty,
19
+ params: props.params,
20
+ render: props.render,
21
+ },
22
+ }));
23
+ });
13
24
  return element;
14
25
  };
15
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,aAAa,CACnB,IAAI,WAAW,CAAC,aAAa,EAAE;gBAC7B,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACN,MAAM,EAAE,OAAO;oBACf,KAAK;iBACN;aACF,CAAC,CACH,CAAC;QACJ,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,OAAO,OAAc,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,aAAa,CACnB,IAAI,WAAW,CAAC,aAAa,EAAE;gBAC7B,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACN,MAAM,EAAE,OAAO;oBACf,KAAK;iBACN;aACF,CAAC,CACH,CAAC;QACJ,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,YAAY,CAAC,GAAG,EAAE;YAChB,OAAO,CAAC,aAAa,CACnB,IAAI,WAAW,CAAC,yBAAyB,EAAE;gBACzC,MAAM,EAAE;oBACN,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB;aACF,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,OAAc,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC"}
package/lib/converter.js CHANGED
@@ -1,18 +1,30 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createConverter = void 0;
4
+ const solid_js_1 = require("solid-js");
4
5
  const dom_1 = require("solid-js/dom");
5
6
  const extension_1 = require("./extension");
6
7
  function createConverter(config = {}) {
7
8
  const { rootName = 'slot' } = config;
8
9
  const Extension = (0, extension_1.createExtension)(rootName);
9
10
  const convert = (root) => ({
10
- mount(el, props, context) {
11
- (0, dom_1.render)(() => (0, dom_1.createComponent)(root, Object.assign({ context }, props)), el);
11
+ mount(el, props, context, locals) {
12
+ locals.update = (props, context) => {
13
+ locals.destroy = (0, dom_1.render)(() => {
14
+ (0, solid_js_1.onCleanup)(() => {
15
+ el.innerHTML = '';
16
+ });
17
+ return (0, dom_1.createComponent)(root, Object.assign({ context }, props));
18
+ }, el);
19
+ };
20
+ locals.update(props, context);
12
21
  },
13
- unmount(el) {
14
- (0, dom_1.render)(() => undefined, el);
15
- el.innerHTML = '';
22
+ update(el, props, context, locals) {
23
+ locals.destroy();
24
+ locals.update(props, context);
25
+ },
26
+ unmount(el, locals) {
27
+ locals.destroy();
16
28
  },
17
29
  });
18
30
  convert.Extension = Extension;
@@ -1 +1 @@
1
- {"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":";;;AAEA,sCAAuD;AACvD,2CAA8C;AAU9C,SAAgB,eAAe,CAAC,SAAgC,EAAE;IAChE,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;IACrC,MAAM,SAAS,GAAG,IAAA,2BAAe,EAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,CAAoC,IAAuB,EAA4B,EAAE,CAAC,CAAC;QACzG,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO;YACtB,IAAA,YAAM,EAAC,GAAG,EAAE,CAAC,IAAA,qBAAe,EAAC,IAAI,kBAAI,OAAO,IAAK,KAAK,EAAG,EAAE,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,CAAC,EAAE;YACR,IAAA,YAAM,EAAC,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC5B,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,CAAC;KACF,CAAC,CAAC;IACH,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC;AAdD,0CAcC"}
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":";;;AACA,uCAAgD;AAChD,sCAAuD;AACvD,2CAA8C;AAU9C,SAAgB,eAAe,CAAC,SAAgC,EAAE;IAChE,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;IACrC,MAAM,SAAS,GAAG,IAAA,2BAAe,EAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,CAAoC,IAAuB,EAA4B,EAAE,CAAC,CAAC;QACzG,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM;YAC9B,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;gBACjC,MAAM,CAAC,OAAO,GAAG,IAAA,YAAM,EAAC,GAAG,EAAE;oBAC3B,IAAA,oBAAS,EAAC,GAAG,EAAE;wBACb,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC;oBACpB,CAAC,CAAC,CAAC;oBACH,OAAO,IAAA,qBAAe,EAAC,IAAI,kBAAI,OAAO,IAAK,KAAK,EAAG,CAAC;gBACtD,CAAC,EAAE,EAAE,CAAC,CAAC;YACT,CAAC,CAAC;YAEF,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM;YAC/B,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,CAAC,EAAE,EAAE,MAAM;YAChB,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;KACF,CAAC,CAAC;IACH,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAC9B,OAAO,OAAO,CAAC;AACjB,CAAC;AA1BD,0CA0BC"}
package/lib/extension.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createExtension = void 0;
4
+ const solid_js_1 = require("solid-js");
4
5
  function createExtension(rootName) {
5
6
  return (props) => {
6
7
  const element = document.createElement(rootName);
@@ -13,6 +14,16 @@ function createExtension(rootName) {
13
14
  },
14
15
  }));
15
16
  }, 0);
17
+ (0, solid_js_1.createEffect)(() => {
18
+ element.dispatchEvent(new CustomEvent('extension-props-changed', {
19
+ detail: {
20
+ name: props.name,
21
+ empty: props.empty,
22
+ params: props.params,
23
+ render: props.render,
24
+ },
25
+ }));
26
+ });
16
27
  return element;
17
28
  };
18
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":";;;AAGA,SAAgB,eAAe,CAAC,QAAgB;IAC9C,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,aAAa,CACnB,IAAI,WAAW,CAAC,aAAa,EAAE;gBAC7B,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACN,MAAM,EAAE,OAAO;oBACf,KAAK;iBACN;aACF,CAAC,CACH,CAAC;QACJ,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,OAAO,OAAc,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC;AAhBD,0CAgBC"}
1
+ {"version":3,"file":"extension.js","sourceRoot":"","sources":["../src/extension.ts"],"names":[],"mappings":";;;AAEA,uCAAwC;AAExC,SAAgB,eAAe,CAAC,QAAgB;IAC9C,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,aAAa,CACnB,IAAI,WAAW,CAAC,aAAa,EAAE;gBAC7B,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE;oBACN,MAAM,EAAE,OAAO;oBACf,KAAK;iBACN;aACF,CAAC,CACH,CAAC;QACJ,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,IAAA,uBAAY,EAAC,GAAG,EAAE;YAChB,OAAO,CAAC,aAAa,CACnB,IAAI,WAAW,CAAC,yBAAyB,EAAE;gBACzC,MAAM,EAAE;oBACN,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,MAAM,EAAE,KAAK,CAAC,MAAM;iBACrB;aACF,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO,OAAc,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC;AA9BD,0CA8BC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "piral-solid",
3
- "version": "0.15.0-alpha.4122",
3
+ "version": "0.15.0-alpha.4231",
4
4
  "description": "Plugin for integrating Solid components in Piral.",
5
5
  "keywords": [
6
6
  "piral",
@@ -27,11 +27,11 @@
27
27
  "./convert": {
28
28
  "import": "./convert.js"
29
29
  },
30
- "./esm/": {
31
- "import": "./esm/"
30
+ "./esm/*": {
31
+ "import": "./esm/*"
32
32
  },
33
- "./lib/": {
34
- "require": "./lib/"
33
+ "./lib/*": {
34
+ "require": "./lib/*"
35
35
  },
36
36
  "./package.json": "./package.json"
37
37
  },
@@ -60,11 +60,11 @@
60
60
  "test": "echo \"Error: run tests from root\" && exit 1"
61
61
  },
62
62
  "devDependencies": {
63
- "piral-core": "0.15.0-alpha.4122",
63
+ "piral-core": "0.15.0-alpha.4231",
64
64
  "solid-js": "^0.18.7"
65
65
  },
66
66
  "peerDependencies": {
67
67
  "solid-js": "^0.18.0"
68
68
  },
69
- "gitHead": "fa0957fe7dedebbbd97a530e518c1a2b7754d475"
69
+ "gitHead": "4e7f158bd276d82c5bf2c19d47ccfb3604f38e38"
70
70
  }
package/src/converter.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { ForeignComponent, BaseComponentProps } from 'piral-core';
2
- import { Component } from 'solid-js';
2
+ import { Component, onCleanup } from 'solid-js';
3
3
  import { render, createComponent } from 'solid-js/dom';
4
4
  import { createExtension } from './extension';
5
5
 
@@ -15,12 +15,24 @@ export function createConverter(config: SolidConverterOptions = {}) {
15
15
  const { rootName = 'slot' } = config;
16
16
  const Extension = createExtension(rootName);
17
17
  const convert = <TProps extends BaseComponentProps>(root: Component<TProps>): ForeignComponent<TProps> => ({
18
- mount(el, props, context) {
19
- render(() => createComponent(root, { context, ...props }), el);
18
+ mount(el, props, context, locals) {
19
+ locals.update = (props, context) => {
20
+ locals.destroy = render(() => {
21
+ onCleanup(() => {
22
+ el.innerHTML = '';
23
+ });
24
+ return createComponent(root, { context, ...props });
25
+ }, el);
26
+ };
27
+
28
+ locals.update(props, context);
29
+ },
30
+ update(el, props, context, locals) {
31
+ locals.destroy();
32
+ locals.update(props, context);
20
33
  },
21
- unmount(el) {
22
- render(() => undefined, el);
23
- el.innerHTML = '';
34
+ unmount(el, locals) {
35
+ locals.destroy();
24
36
  },
25
37
  });
26
38
  convert.Extension = Extension;
package/src/extension.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { ExtensionSlotProps } from 'piral-core';
2
2
  import type { Component } from 'solid-js';
3
+ import { createEffect } from 'solid-js';
3
4
 
4
5
  export function createExtension(rootName: string): Component<ExtensionSlotProps> {
5
6
  return (props) => {
@@ -15,6 +16,20 @@ export function createExtension(rootName: string): Component<ExtensionSlotProps>
15
16
  }),
16
17
  );
17
18
  }, 0);
19
+
20
+ createEffect(() => {
21
+ element.dispatchEvent(
22
+ new CustomEvent('extension-props-changed', {
23
+ detail: {
24
+ name: props.name,
25
+ empty: props.empty,
26
+ params: props.params,
27
+ render: props.render,
28
+ },
29
+ }),
30
+ );
31
+ });
32
+
18
33
  return element as any;
19
34
  };
20
35
  }