@digipair/skill-html 0.42.0

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/index.cjs.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./src/index";
package/index.cjs.js ADDED
@@ -0,0 +1,81 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var jsdom = require('jsdom');
6
+
7
+ function _extends() {
8
+ _extends = Object.assign || function assign(target) {
9
+ for(var i = 1; i < arguments.length; i++){
10
+ var source = arguments[i];
11
+ for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
12
+ }
13
+ return target;
14
+ };
15
+ return _extends.apply(this, arguments);
16
+ }
17
+
18
+ let HtmlService = class HtmlService {
19
+ async html2pins(params, _pinsSettingsList, _context) {
20
+ const { html, library = 'web' } = params;
21
+ const dom = new jsdom.JSDOM(html);
22
+ const pins = this.generatePinsFromElements(Array.from(dom.window.document.querySelectorAll('body > *')), library);
23
+ return pins;
24
+ }
25
+ generatePinsFromElements(elements, library) {
26
+ const pinsList = elements.map((element)=>this.generatePinsFromElement(element, library));
27
+ return pinsList;
28
+ }
29
+ generatePinsFromElement(element, library) {
30
+ const attributes = element.getAttributeNames().reduce((obj, name)=>_extends({}, obj, {
31
+ [name]: element.getAttribute(name)
32
+ }), {});
33
+ if (element.children.length === 0 && element.textContent) {
34
+ attributes.textContent = element.textContent;
35
+ }
36
+ const pins = {
37
+ library,
38
+ element: element.tagName.toLowerCase(),
39
+ properties: attributes,
40
+ pins: this.generatePinsFromElements(Array.from(element.children), library)
41
+ };
42
+ return pins;
43
+ }
44
+ async pins2html(params, _pinsSettingsList, _context) {
45
+ const { pins } = params;
46
+ const dom = new jsdom.JSDOM();
47
+ const element = dom.window.document.createElement('section');
48
+ await this.generateElementsFromPins(pins, element, dom);
49
+ return element.innerHTML;
50
+ }
51
+ async generateElementsFromPins(pinsList, parent, dom) {
52
+ for(let i = 0; i < pinsList.length; i++){
53
+ const item = pinsList[i];
54
+ await this.generateElementFromPins(item, parent, dom);
55
+ }
56
+ }
57
+ async generateElementFromPins(pinsSettings, parent, dom) {
58
+ const element = dom.window.document.createElement(pinsSettings.element);
59
+ // const settings = await preparePinsSettings(pinsSettings, context);
60
+ const settings = pinsSettings;
61
+ Object.entries(settings.properties || {}).forEach(([key, value])=>{
62
+ if (key === 'textContent') {
63
+ element.textContent = value;
64
+ } else if (key === 'innerHTML') {
65
+ element.innerHTML = value;
66
+ } else if (typeof value === 'string') {
67
+ element.setAttribute(key, value);
68
+ } else {
69
+ element[key] = value;
70
+ }
71
+ });
72
+ const pinsList = settings.pins || [];
73
+ await this.generateElementsFromPins(pinsList, element, dom);
74
+ parent.appendChild(element);
75
+ }
76
+ };
77
+ const html2pins = (params, pinsSettingsList, context)=>new HtmlService().html2pins(params, pinsSettingsList, context);
78
+ const pins2html = (params, pinsSettingsList, context)=>new HtmlService().pins2html(params, pinsSettingsList, context);
79
+
80
+ exports.html2pins = html2pins;
81
+ exports.pins2html = pins2html;
package/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './libs/skill-heygen/src/index';
package/index.esm.js ADDED
@@ -0,0 +1,76 @@
1
+ import { JSDOM } from 'jsdom';
2
+
3
+ function _extends() {
4
+ _extends = Object.assign || function assign(target) {
5
+ for(var i = 1; i < arguments.length; i++){
6
+ var source = arguments[i];
7
+ for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
8
+ }
9
+ return target;
10
+ };
11
+ return _extends.apply(this, arguments);
12
+ }
13
+
14
+ let HtmlService = class HtmlService {
15
+ async html2pins(params, _pinsSettingsList, _context) {
16
+ const { html, library = 'web' } = params;
17
+ const dom = new JSDOM(html);
18
+ const pins = this.generatePinsFromElements(Array.from(dom.window.document.querySelectorAll('body > *')), library);
19
+ return pins;
20
+ }
21
+ generatePinsFromElements(elements, library) {
22
+ const pinsList = elements.map((element)=>this.generatePinsFromElement(element, library));
23
+ return pinsList;
24
+ }
25
+ generatePinsFromElement(element, library) {
26
+ const attributes = element.getAttributeNames().reduce((obj, name)=>_extends({}, obj, {
27
+ [name]: element.getAttribute(name)
28
+ }), {});
29
+ if (element.children.length === 0 && element.textContent) {
30
+ attributes.textContent = element.textContent;
31
+ }
32
+ const pins = {
33
+ library,
34
+ element: element.tagName.toLowerCase(),
35
+ properties: attributes,
36
+ pins: this.generatePinsFromElements(Array.from(element.children), library)
37
+ };
38
+ return pins;
39
+ }
40
+ async pins2html(params, _pinsSettingsList, _context) {
41
+ const { pins } = params;
42
+ const dom = new JSDOM();
43
+ const element = dom.window.document.createElement('section');
44
+ await this.generateElementsFromPins(pins, element, dom);
45
+ return element.innerHTML;
46
+ }
47
+ async generateElementsFromPins(pinsList, parent, dom) {
48
+ for(let i = 0; i < pinsList.length; i++){
49
+ const item = pinsList[i];
50
+ await this.generateElementFromPins(item, parent, dom);
51
+ }
52
+ }
53
+ async generateElementFromPins(pinsSettings, parent, dom) {
54
+ const element = dom.window.document.createElement(pinsSettings.element);
55
+ // const settings = await preparePinsSettings(pinsSettings, context);
56
+ const settings = pinsSettings;
57
+ Object.entries(settings.properties || {}).forEach(([key, value])=>{
58
+ if (key === 'textContent') {
59
+ element.textContent = value;
60
+ } else if (key === 'innerHTML') {
61
+ element.innerHTML = value;
62
+ } else if (typeof value === 'string') {
63
+ element.setAttribute(key, value);
64
+ } else {
65
+ element[key] = value;
66
+ }
67
+ });
68
+ const pinsList = settings.pins || [];
69
+ await this.generateElementsFromPins(pinsList, element, dom);
70
+ parent.appendChild(element);
71
+ }
72
+ };
73
+ const html2pins = (params, pinsSettingsList, context)=>new HtmlService().html2pins(params, pinsSettingsList, context);
74
+ const pins2html = (params, pinsSettingsList, context)=>new HtmlService().pins2html(params, pinsSettingsList, context);
75
+
76
+ export { html2pins, pins2html };
@@ -0,0 +1 @@
1
+ export * from './lib/skill-html';
@@ -0,0 +1,3 @@
1
+ import { PinsSettings } from '@digipair/engine';
2
+ export declare const html2pins: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
3
+ export declare const pins2html: (params: any, pinsSettingsList: PinsSettings[], context: any) => Promise<any>;
package/package.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "@digipair/skill-html",
3
+ "version": "0.42.0",
4
+ "dependencies": {},
5
+ "main": "./index.cjs.js",
6
+ "module": "./index.esm.js"
7
+ }
package/schema.fr.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "openapi": "3.0.0",
3
+ "info": {
4
+ "title": "@digipair/skill-html",
5
+ "summary": "Gestion du code HTML",
6
+ "description": "Cette compétence permet de gérer du code HTML",
7
+ "version": "0.1.0",
8
+ "x-icon": "🌐"
9
+ },
10
+ "paths": {
11
+ "/html2pins": {
12
+ "post": {
13
+ "tags": ["service"],
14
+ "summary": "Convertir du HTML en Pin's",
15
+ "parameters": [
16
+ {
17
+ "name": "html",
18
+ "summary": "HTML",
19
+ "required": true,
20
+ "description": "Code HTML",
21
+ "schema": {
22
+ "type": "string"
23
+ }
24
+ },
25
+ {
26
+ "name": "library",
27
+ "summary": "Librarie des Pin's",
28
+ "required": false,
29
+ "description": "Librarie des Pin's",
30
+ "schema": {
31
+ "type": "string"
32
+ }
33
+ }
34
+ ],
35
+ "x-events": []
36
+ }
37
+ },
38
+ "/pins2html": {
39
+ "post": {
40
+ "tags": ["service"],
41
+ "summary": "Convertir des Pin's en HTML",
42
+ "parameters": [
43
+ {
44
+ "name": "pins",
45
+ "summary": "Pin's",
46
+ "required": true,
47
+ "description": "Liste des Pin's",
48
+ "schema": {
49
+ "type": "string"
50
+ }
51
+ }
52
+ ],
53
+ "x-events": []
54
+ }
55
+ }
56
+ },
57
+ "components": {
58
+ "schemas": {}
59
+ },
60
+ "x-scene-blocks": {}
61
+ }
package/schema.json ADDED
@@ -0,0 +1,61 @@
1
+ {
2
+ "openapi": "3.0.0",
3
+ "info": {
4
+ "title": "@digipair/skill-html",
5
+ "summary": "HTML code management",
6
+ "description": "This skill allows to manage HTML code",
7
+ "version": "0.1.0",
8
+ "x-icon": "🌐"
9
+ },
10
+ "paths": {
11
+ "/html2pins": {
12
+ "post": {
13
+ "tags": ["service"],
14
+ "summary": "Convert HTML to Pin's",
15
+ "parameters": [
16
+ {
17
+ "name": "html",
18
+ "summary": "HTML",
19
+ "required": true,
20
+ "description": "HTML code",
21
+ "schema": {
22
+ "type": "string"
23
+ }
24
+ },
25
+ {
26
+ "name": "library",
27
+ "summary": "Pin's library",
28
+ "required": false,
29
+ "description": "Pin's library",
30
+ "schema": {
31
+ "type": "string"
32
+ }
33
+ }
34
+ ],
35
+ "x-events": []
36
+ }
37
+ },
38
+ "/pins2html": {
39
+ "post": {
40
+ "tags": ["service"],
41
+ "summary": "Convert Pin's to HTML",
42
+ "parameters": [
43
+ {
44
+ "name": "pins",
45
+ "summary": "Pin's",
46
+ "required": true,
47
+ "description": "List of Pin's",
48
+ "schema": {
49
+ "type": "string"
50
+ }
51
+ }
52
+ ],
53
+ "x-events": []
54
+ }
55
+ }
56
+ },
57
+ "components": {
58
+ "schemas": {}
59
+ },
60
+ "x-scene-blocks": {}
61
+ }