@telia-ace/widget-components-grid 1.0.13 → 1.0.14
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/dist/grid.c9cced26.js +68 -0
- package/dist/grid.c9cced26.js.map +1 -0
- package/dist/index.cfc936fb.js +65 -0
- package/dist/index.cfc936fb.js.map +1 -0
- package/dist/index.js +5 -1
- package/package.json +10 -7
- package/dist/grid.js +0 -82
- package/dist/grid.js.map +0 -1
- package/dist/index2.js +0 -94
- package/dist/index2.js.map +0 -1
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { useChildren as c, useProperties as d } from "@telia-ace/widget-ui";
|
|
2
|
+
import i, { useMemo as p } from "react";
|
|
3
|
+
import { Component as l } from "@telia-ace/widget-types-grid";
|
|
4
|
+
import { appendClassNames as g } from "@telia-ace/widget-utilities";
|
|
5
|
+
import u, { css as s } from "styled-components";
|
|
6
|
+
import { i as f } from "./index.cfc936fb.js";
|
|
7
|
+
import "@telia-ace/widget-core";
|
|
8
|
+
const $ = (e) => {
|
|
9
|
+
const r = e.map((t) => "min-content").join(" "), n = e[0].split(" ").map((t) => "1fr").join(" "), a = e.map((t) => `'${t}'`).join(" ");
|
|
10
|
+
return s`
|
|
11
|
+
grid-template-columns: ${n};
|
|
12
|
+
grid-template-rows: ${r};
|
|
13
|
+
grid-template-areas: ${a};
|
|
14
|
+
`;
|
|
15
|
+
}, x = (e) => {
|
|
16
|
+
const r = c(), n = p(() => Object.entries(e.areas).map(([a, t]) => {
|
|
17
|
+
const m = r.find((o) => o.name === a);
|
|
18
|
+
return f(t) ? {
|
|
19
|
+
name: a,
|
|
20
|
+
componentDef: m,
|
|
21
|
+
context: t.context,
|
|
22
|
+
areaSettings: t.areaSettings,
|
|
23
|
+
template: t.template,
|
|
24
|
+
areas: t.areas,
|
|
25
|
+
gap: t.gap
|
|
26
|
+
} : {
|
|
27
|
+
name: a,
|
|
28
|
+
componentDef: m,
|
|
29
|
+
areaSettings: t.areaSettings,
|
|
30
|
+
child: t.child,
|
|
31
|
+
context: t.context
|
|
32
|
+
};
|
|
33
|
+
}), [e, r]);
|
|
34
|
+
return /* @__PURE__ */ i.createElement(A, {
|
|
35
|
+
"data-grid-area": e.gridArea,
|
|
36
|
+
gridArea: e.gridArea,
|
|
37
|
+
gap: e.gap,
|
|
38
|
+
template: e.template,
|
|
39
|
+
className: g(e.className, "humany-grid")
|
|
40
|
+
}, n.map((a) => a.componentDef ? /* @__PURE__ */ i.createElement(l, {
|
|
41
|
+
key: a.componentDef.id,
|
|
42
|
+
id: a.componentDef.id,
|
|
43
|
+
branch: "default",
|
|
44
|
+
context: {}
|
|
45
|
+
}) : null));
|
|
46
|
+
}, A = u.div`
|
|
47
|
+
display: grid;
|
|
48
|
+
${(e) => e.gridArea && s`
|
|
49
|
+
grid-area: ${e.gridArea};
|
|
50
|
+
`}
|
|
51
|
+
${(e) => $(e.template)}
|
|
52
|
+
${(e) => e.gap && s`
|
|
53
|
+
grid-gap: ${e.gap}rem;
|
|
54
|
+
`}
|
|
55
|
+
`, E = ({ className: e }) => {
|
|
56
|
+
const r = d();
|
|
57
|
+
return /* @__PURE__ */ i.createElement(x, {
|
|
58
|
+
template: r.template,
|
|
59
|
+
areas: r.areas,
|
|
60
|
+
gap: r.gap,
|
|
61
|
+
areaSettings: r.areaSettings,
|
|
62
|
+
context: r.context
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
export {
|
|
66
|
+
E as default
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=grid.c9cced26.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grid.c9cced26.js","sources":["../src/utils.ts","../src/nested-grid-area.tsx","../src/grid.tsx"],"sourcesContent":["import { css } from 'styled-components';\r\n\r\nexport const generateGridTemplateAreasValue = (template: string[]) => {\r\n const rows = template.map((_) => 'min-content').join(' ');\r\n const columns = template[0]\r\n .split(' ')\r\n .map((_) => '1fr')\r\n .join(' ');\r\n const areas = template.map((value) => `'${value}'`).join(' ');\r\n\r\n return css`\r\n grid-template-columns: ${columns};\r\n grid-template-rows: ${rows};\r\n grid-template-areas: ${areas};\r\n `;\r\n};\r\n","import { Component } from '@telia-ace/widget-types-grid';\r\nimport { useChildren } from '@telia-ace/widget-ui';\r\nimport { appendClassNames } from '@telia-ace/widget-utilities';\r\nimport React, { useMemo } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { GridAreaProps, isNestedGrid, NestedArea } from './grid-component';\r\nimport { generateGridTemplateAreasValue } from './utils';\r\n\r\ntype Props = {\r\n className?: string;\r\n gridArea?: string;\r\n} & NestedArea;\r\nconst NestedGridArea: React.FC<Props> = (props) => {\r\n const children = useChildren();\r\n\r\n const areas = useMemo<(GridAreaProps & { name: string })[]>(() => {\r\n return Object.entries(props.areas).map(([key, area]) => {\r\n const componentDef = children.find((child) => child.name === key);\r\n\r\n if (!isNestedGrid(area)) {\r\n return {\r\n name: key,\r\n componentDef,\r\n areaSettings: area.areaSettings,\r\n child: area.child,\r\n context: area.context,\r\n };\r\n }\r\n return {\r\n name: key,\r\n componentDef,\r\n context: area.context,\r\n areaSettings: area.areaSettings,\r\n template: area.template,\r\n areas: area.areas,\r\n gap: area.gap,\r\n };\r\n });\r\n }, [props, children]);\r\n\r\n return (\r\n <Wrapper\r\n data-grid-area={props.gridArea}\r\n gridArea={props.gridArea}\r\n gap={props.gap}\r\n template={props.template}\r\n className={appendClassNames(props.className, 'humany-grid')}\r\n >\r\n {areas.map((area) => {\r\n if (!(area as any).componentDef) {\r\n return null;\r\n }\r\n return (\r\n <Component\r\n key={(area as any).componentDef.id}\r\n id={(area as any).componentDef.id}\r\n branch=\"default\"\r\n context={{}}\r\n />\r\n );\r\n })}\r\n </Wrapper>\r\n );\r\n};\r\n\r\nexport default NestedGridArea;\r\n\r\nconst Wrapper = styled.div<{\r\n template: string[];\r\n gridArea?: string;\r\n gap?: number;\r\n}>`\r\n display: grid;\r\n ${(p) =>\r\n p.gridArea &&\r\n css`\r\n grid-area: ${p.gridArea};\r\n `}\r\n ${(p) => generateGridTemplateAreasValue(p.template)}\r\n ${(p) =>\r\n p.gap &&\r\n css`\r\n grid-gap: ${p.gap}rem;\r\n `}\r\n`;\r\n","import { useProperties } from '@telia-ace/widget-ui';\r\nimport React from 'react';\r\nimport { GridComponentProps } from './grid-component';\r\nimport NestedGridArea from './nested-grid-area';\r\n\r\ntype Props = { className?: string };\r\nconst Grid: React.FC<Props> = ({ className }) => {\r\n const properties = useProperties<GridComponentProps>();\r\n return (\r\n <NestedGridArea\r\n template={properties.template}\r\n areas={properties.areas}\r\n gap={properties.gap}\r\n areaSettings={properties.areaSettings}\r\n context={properties.context}\r\n />\r\n );\r\n};\r\n\r\nexport default Grid;\r\n"],"names":[],"mappings":";;;;;;;AAEa,MAAA,IAAiC,CAAC,MAAuB;AAC5D,QAAA,IAAO,EAAS,IAAI,CAAC,MAAM,aAAa,EAAE,KAAK,GAAG,GAClD,IAAU,EAAS,GACpB,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,KAAK,EAChB,KAAK,GAAG,GACP,IAAQ,EAAS,IAAI,CAAC,MAAU,IAAI,IAAQ,EAAE,KAAK,GAAG;AAErD,SAAA;AAAA,iCACsB;AAAA,8BACH;AAAA,+BACC;AAAA;AAE/B,GCHM,IAAkC,CAAC,MAAU;AAC/C,QAAM,IAAW,KAEX,IAAQ,EAA8C,MACjD,OAAO,QAAQ,EAAM,KAAK,EAAE,IAAI,CAAC,CAAC,GAAK,OAAU;AACpD,UAAM,IAAe,EAAS,KAAK,CAAC,MAAU,EAAM,SAAS,CAAG;AAE5D,WAAC,EAAa,CAAI,IASf;AAAA,MACH,MAAM;AAAA,MACN;AAAA,MACA,SAAS,EAAK;AAAA,MACd,cAAc,EAAK;AAAA,MACnB,UAAU,EAAK;AAAA,MACf,OAAO,EAAK;AAAA,MACZ,KAAK,EAAK;AAAA,IAAA,IAfH;AAAA,MACH,MAAM;AAAA,MACN;AAAA,MACA,cAAc,EAAK;AAAA,MACnB,OAAO,EAAK;AAAA,MACZ,SAAS,EAAK;AAAA,IAAA;AAAA,EAWtB,CACH,GACF,CAAC,GAAO,CAAQ,CAAC;AAEpB,SACK,kBAAA,cAAA,GAAA;AAAA,IACG,kBAAgB,EAAM;AAAA,IACtB,UAAU,EAAM;AAAA,IAChB,KAAK,EAAM;AAAA,IACX,UAAU,EAAM;AAAA,IAChB,WAAW,EAAiB,EAAM,WAAW,aAAa;AAAA,EAAA,GAEzD,EAAM,IAAI,CAAC,MACF,EAAa,eAId,kBAAA,cAAA,GAAA;AAAA,IACG,KAAM,EAAa,aAAa;AAAA,IAChC,IAAK,EAAa,aAAa;AAAA,IAC/B,QAAO;AAAA,IACP,SAAS,CAAC;AAAA,EAAA,CACd,IARO,IAUd,CACL;AAER,GAIM,IAAU,EAAO;AAAA;AAAA,MAMjB,CAAC,MACC,EAAE,YACF;AAAA,yBACiB,EAAE;AAAA;AAAA,MAErB,CAAC,MAAM,EAA+B,EAAE,QAAQ;AAAA,IAClD,CAAC,MACG,EAAE,OACF;AAAA,wBACgB,EAAE;AAAA;AAAA,GC5EpB,IAAwB,CAAC,EAAE,mBAAgB;AAC7C,QAAM,IAAa;AACnB,SACK,kBAAA,cAAA,GAAA;AAAA,IACG,UAAU,EAAW;AAAA,IACrB,OAAO,EAAW;AAAA,IAClB,KAAK,EAAW;AAAA,IAChB,cAAc,EAAW;AAAA,IACzB,SAAS,EAAW;AAAA,EAAA,CACxB;AAER;"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
var D = Object.defineProperty;
|
|
2
|
+
var h = Object.getOwnPropertySymbols;
|
|
3
|
+
var E = Object.prototype.hasOwnProperty, G = Object.prototype.propertyIsEnumerable;
|
|
4
|
+
var u = (e, o, r) => o in e ? D(e, o, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[o] = r, b = (e, o) => {
|
|
5
|
+
for (var r in o || (o = {}))
|
|
6
|
+
E.call(o, r) && u(e, r, o[r]);
|
|
7
|
+
if (h)
|
|
8
|
+
for (var r of h(o))
|
|
9
|
+
G.call(o, r) && u(e, r, o[r]);
|
|
10
|
+
return e;
|
|
11
|
+
};
|
|
12
|
+
import { createReactComponent as I } from "@telia-ace/widget-ui";
|
|
13
|
+
import { createChildren as w } from "@telia-ace/widget-core";
|
|
14
|
+
import { Logger as L } from "@telia-ace/widget-utilities";
|
|
15
|
+
const H = (e) => !!e.template, V = (e) => I(e, "grid", import("./grid.c9cced26.js"), (o) => {
|
|
16
|
+
}), _ = (e, o) => {
|
|
17
|
+
var m, g, x, l;
|
|
18
|
+
const { platform: r, node: C, references: P, definitions: a, views: f, branch: N } = o, t = a[e.definitionId];
|
|
19
|
+
if (process.env.NODE_ENV !== "production" && !t) {
|
|
20
|
+
L.error(`No definition found for component type '${e.definitionId}'.`);
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
const i = r.createNode(t.type);
|
|
24
|
+
if (i.name = e.definitionId, i.tags = t.tags || [], t.properties && i.writeProperties(t.properties), t.context && i.writeContext(t.context), t.layout && i.writeLayout(t.layout), C.appendChild(i, N), e.overrides.forEach((n) => {
|
|
25
|
+
const p = { breakpoints: n.breakpoints };
|
|
26
|
+
n.properties && i.writeProperties(n.properties, p), n.context && i.writeContext(n.context, p), n.layout && i.writeLayout(n.layout, p);
|
|
27
|
+
}), ((m = t.properties) == null ? void 0 : m.areas) && !!((g = t.properties) != null && g.areas)) {
|
|
28
|
+
const n = Object.entries(t.properties.areas).reduce((p, [c, s]) => {
|
|
29
|
+
if (s.child) {
|
|
30
|
+
const d = Object.entries(s.areaSettings || {}).reduce((y, [O, j]) => (y[`css-${O}`] = j, y), {});
|
|
31
|
+
p[c] = {
|
|
32
|
+
type: "area",
|
|
33
|
+
context: s.context || {},
|
|
34
|
+
children: [s.child],
|
|
35
|
+
properties: b({
|
|
36
|
+
"css-grid-area": c
|
|
37
|
+
}, d)
|
|
38
|
+
};
|
|
39
|
+
} else {
|
|
40
|
+
const d = {
|
|
41
|
+
type: "grid",
|
|
42
|
+
context: {},
|
|
43
|
+
properties: {
|
|
44
|
+
areaSettings: {},
|
|
45
|
+
areas: s.areas,
|
|
46
|
+
context: s.context,
|
|
47
|
+
gap: s.gap,
|
|
48
|
+
gridArea: s.gridArea,
|
|
49
|
+
template: s.template
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
p[c] = d;
|
|
53
|
+
}
|
|
54
|
+
return p;
|
|
55
|
+
}, a);
|
|
56
|
+
w(r, i, Object.keys(t.properties.areas), n, f);
|
|
57
|
+
} else
|
|
58
|
+
(x = t.properties) != null && x.child && w(r, i, [(l = t.properties) == null ? void 0 : l.child], a, f);
|
|
59
|
+
};
|
|
60
|
+
export {
|
|
61
|
+
V as G,
|
|
62
|
+
_ as g,
|
|
63
|
+
H as i
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=index.cfc936fb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cfc936fb.js","sources":["../src/grid-component.ts","../src/handler.ts"],"sourcesContent":["import { createReactComponent } from '@telia-ace/widget-ui';\r\nimport { Container } from '@webprovisions/platform';\r\n\r\ntype AreaWithChild = {\r\n child: string;\r\n areaSettings: { [key: string]: string };\r\n context: { [key: string]: any };\r\n};\r\n\r\nexport type NestedArea = {\r\n context: { [key: string]: any };\r\n template: string[];\r\n areaSettings: { [key: string]: string };\r\n gap: number;\r\n areas: {\r\n [key: string]: GridAreaProps;\r\n };\r\n};\r\n\r\nexport type GridAreaProps = NestedArea | AreaWithChild;\r\n\r\nexport const isNestedGrid = (area: GridAreaProps): area is NestedArea => {\r\n return !!(area as NestedArea).template;\r\n};\r\n\r\nexport type GridComponentProps = {\r\n gap: number;\r\n template: string[];\r\n areaSettings: { [key: string]: string };\r\n areas: {\r\n [key: string]: GridAreaProps;\r\n };\r\n child: string;\r\n context: { [key: string]: any };\r\n};\r\n\r\nexport const GridComponent = (container: Container) => {\r\n return createReactComponent(container, 'grid', import('./grid'), (component) => {});\r\n};\r\n\r\nexport default GridComponent;\r\n","import {\r\n ComponentHandlerOptions,\r\n createChildren,\r\n NormalizedComponentReference,\r\n} from '@telia-ace/widget-core';\r\nimport { Logger } from '@telia-ace/widget-utilities';\r\n\r\nexport const gridComponentHandler = (\r\n childRef: NormalizedComponentReference,\r\n options: ComponentHandlerOptions\r\n) => {\r\n const { platform, node, references, definitions, views, branch } = options;\r\n\r\n const childDef = definitions[childRef.definitionId];\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!childDef) {\r\n Logger.error(`No definition found for component type '${childRef.definitionId}'.`);\r\n return;\r\n }\r\n }\r\n const childNode = platform.createNode(childDef.type);\r\n childNode.name = childRef.definitionId;\r\n childNode.tags = childDef.tags || [];\r\n if (childDef.properties) {\r\n childNode.writeProperties(childDef.properties);\r\n }\r\n if (childDef.context) {\r\n childNode.writeContext(childDef.context);\r\n }\r\n if (childDef.layout) {\r\n childNode.writeLayout(childDef.layout);\r\n }\r\n node.appendChild(childNode, branch);\r\n\r\n childRef.overrides.forEach((override) => {\r\n const options = { breakpoints: override.breakpoints };\r\n if (override.properties) {\r\n childNode.writeProperties(override.properties, options);\r\n }\r\n if (override.context) {\r\n childNode.writeContext(override.context, options);\r\n }\r\n if (override.layout) {\r\n childNode.writeLayout(override.layout, options);\r\n }\r\n });\r\n\r\n if (childDef.properties?.areas && !!childDef.properties?.areas) {\r\n const mergedDefinitons: any = Object.entries(childDef.properties.areas).reduce<any>(\r\n (acc, [key, value]: any) => {\r\n if (value.child) {\r\n const cssProps = Object.entries<string>(value.areaSettings || {}).reduce<{\r\n [key: string]: string;\r\n }>((acc, [key, value]) => {\r\n acc[`css-${key}`] = value;\r\n\r\n return acc;\r\n }, {});\r\n acc[key] = {\r\n type: 'area',\r\n context: value.context || {},\r\n children: [value.child],\r\n properties: {\r\n 'css-grid-area': key,\r\n ...cssProps,\r\n },\r\n };\r\n } else {\r\n const subgrid = {\r\n type: 'grid',\r\n context: {},\r\n properties: {\r\n areaSettings: {},\r\n areas: value.areas,\r\n context: value.context,\r\n gap: value.gap,\r\n gridArea: value.gridArea,\r\n template: value.template,\r\n },\r\n };\r\n acc[key] = subgrid;\r\n }\r\n return acc;\r\n },\r\n definitions\r\n );\r\n createChildren(\r\n platform,\r\n childNode,\r\n Object.keys(childDef.properties.areas),\r\n mergedDefinitons,\r\n views\r\n );\r\n } else if (childDef.properties?.child) {\r\n createChildren(platform, childNode, [childDef.properties?.child], definitions, views);\r\n }\r\n};\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAqBa,MAAA,IAAe,CAAC,MAClB,CAAC,CAAE,EAAoB,UAcrB,IAAgB,CAAC,MACnB,EAAqB,GAAW,QAAQ,OAAO,uBAAW,CAAC,MAAc;AAAA,CAAE,GC9BzE,IAAuB,CAChC,GACA,MACC;;AACD,QAAM,EAAE,aAAU,SAAM,eAAY,gBAAa,UAAO,cAAW,GAE7D,IAAW,EAAY,EAAS;AAClC,MAAA,QAAQ,IAAI,aAAa,gBACrB,CAAC,GAAU;AACJ,MAAA,MAAM,2CAA2C,EAAS,gBAAgB;AACjF;AAAA,EACJ;AAEJ,QAAM,IAAY,EAAS,WAAW,EAAS,IAAI;AA2BnD,MA1BA,EAAU,OAAO,EAAS,cAChB,EAAA,OAAO,EAAS,QAAQ,CAAA,GAC9B,EAAS,cACC,EAAA,gBAAgB,EAAS,UAAU,GAE7C,EAAS,WACC,EAAA,aAAa,EAAS,OAAO,GAEvC,EAAS,UACC,EAAA,YAAY,EAAS,MAAM,GAEpC,EAAA,YAAY,GAAW,CAAM,GAEzB,EAAA,UAAU,QAAQ,CAAC,MAAa;AACrC,UAAM,IAAU,EAAE,aAAa,EAAS,YAAY;AACpD,IAAI,EAAS,cACC,EAAA,gBAAgB,EAAS,YAAY,CAAO,GAEtD,EAAS,WACC,EAAA,aAAa,EAAS,SAAS,CAAO,GAEhD,EAAS,UACC,EAAA,YAAY,EAAS,QAAQ,CAAO;AAAA,EAClD,CACH,GAEG,QAAS,eAAT,kBAAqB,UAAS,CAAC,CAAC,QAAS,eAAT,UAAqB,QAAO;AAC5D,UAAM,IAAwB,OAAO,QAAQ,EAAS,WAAW,KAAK,EAAE,OACpE,CAAC,GAAK,CAAC,GAAK,OAAgB;AACxB,UAAI,EAAM,OAAO;AACb,cAAM,IAAW,OAAO,QAAgB,EAAM,gBAAgB,CAAA,CAAE,EAAE,OAE/D,CAAC,GAAK,CAAC,GAAK,OACX,GAAI,OAAO,OAAS,GAEb,IACR,CAAE,CAAA;AACL,UAAI,KAAO;AAAA,UACP,MAAM;AAAA,UACN,SAAS,EAAM,WAAW,CAAC;AAAA,UAC3B,UAAU,CAAC,EAAM,KAAK;AAAA,UACtB,YAAY;AAAA,YACR,iBAAiB;AAAA,aACd;AAAA,QACP;AAAA,MACJ,OACG;AACH,cAAM,IAAU;AAAA,UACZ,MAAM;AAAA,UACN,SAAS,CAAC;AAAA,UACV,YAAY;AAAA,YACR,cAAc,CAAC;AAAA,YACf,OAAO,EAAM;AAAA,YACb,SAAS,EAAM;AAAA,YACf,KAAK,EAAM;AAAA,YACX,UAAU,EAAM;AAAA,YAChB,UAAU,EAAM;AAAA,UACpB;AAAA,QAAA;AAEJ,UAAI,KAAO;AAAA,MACf;AACO,aAAA;AAAA,OAEX,CACJ;AAEI,MAAA,GACA,GACA,OAAO,KAAK,EAAS,WAAW,KAAK,GACrC,GACA,CACJ;AAAA,EAAA;AACJ,IAAW,OAAS,eAAT,UAAqB,SACb,EAAA,GAAU,GAAW,CAAC,OAAS,eAAT,kBAAqB,KAAK,GAAG,GAAa,CAAK;AAE5F;"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
import { G as a, g as e } from "./index.cfc936fb.js";
|
|
2
2
|
import "@telia-ace/widget-ui";
|
|
3
3
|
import "@telia-ace/widget-core";
|
|
4
4
|
import "@telia-ace/widget-utilities";
|
|
5
|
+
export {
|
|
6
|
+
a as default,
|
|
7
|
+
e as gridComponentHandler
|
|
8
|
+
};
|
|
5
9
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@telia-ace/widget-components-grid",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.14",
|
|
4
4
|
"description": "Grid component for ACE Widgets.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"author": "Telia Company AB",
|
|
7
7
|
"keywords": [
|
|
8
8
|
"telia"
|
|
9
9
|
],
|
|
10
|
-
"
|
|
11
|
-
|
|
10
|
+
"exports": {
|
|
11
|
+
"development": "./src/index.ts",
|
|
12
|
+
"default": "./dist/index.js"
|
|
13
|
+
},
|
|
14
|
+
"type": "module",
|
|
12
15
|
"types": "dist/index.d.ts",
|
|
13
16
|
"files": [
|
|
14
17
|
"LICENSE.txt",
|
|
@@ -25,9 +28,9 @@
|
|
|
25
28
|
},
|
|
26
29
|
"sideEffects": false,
|
|
27
30
|
"dependencies": {
|
|
28
|
-
"@telia-ace/widget-core": "^1.0.
|
|
29
|
-
"@telia-ace/widget-types-grid": "^1.0.
|
|
30
|
-
"@telia-ace/widget-ui": "^1.0.
|
|
31
|
+
"@telia-ace/widget-core": "^1.0.11",
|
|
32
|
+
"@telia-ace/widget-types-grid": "^1.0.18",
|
|
33
|
+
"@telia-ace/widget-ui": "^1.0.18",
|
|
31
34
|
"@telia-ace/widget-utilities": "^1.0.2",
|
|
32
35
|
"@webprovisions/platform": "^1.1.2"
|
|
33
36
|
},
|
|
@@ -41,5 +44,5 @@
|
|
|
41
44
|
"@types/react-dom": "^16.8.0",
|
|
42
45
|
"@types/styled-components": "^5.1.7"
|
|
43
46
|
},
|
|
44
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "4006655a78d8f0379c021e4362536dcdf881b3d0"
|
|
45
48
|
}
|
package/dist/grid.js
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { useChildren, useProperties } from "@telia-ace/widget-ui";
|
|
2
|
-
import React, { useMemo } from "react";
|
|
3
|
-
import { Component } from "@telia-ace/widget-types-grid";
|
|
4
|
-
import { appendClassNames } from "@telia-ace/widget-utilities";
|
|
5
|
-
import styled, { css } from "styled-components";
|
|
6
|
-
import { i as isNestedGrid } from "./index2.js";
|
|
7
|
-
import "@telia-ace/widget-core";
|
|
8
|
-
const generateGridTemplateAreasValue = (template) => {
|
|
9
|
-
const rows = template.map((_) => "min-content").join(" ");
|
|
10
|
-
const columns = template[0].split(" ").map((_) => "1fr").join(" ");
|
|
11
|
-
const areas = template.map((value) => `'${value}'`).join(" ");
|
|
12
|
-
return css`
|
|
13
|
-
grid-template-columns: ${columns};
|
|
14
|
-
grid-template-rows: ${rows};
|
|
15
|
-
grid-template-areas: ${areas};
|
|
16
|
-
`;
|
|
17
|
-
};
|
|
18
|
-
const NestedGridArea = (props) => {
|
|
19
|
-
const children = useChildren();
|
|
20
|
-
const areas = useMemo(() => {
|
|
21
|
-
return Object.entries(props.areas).map(([key, area]) => {
|
|
22
|
-
const componentDef = children.find((child) => child.name === key);
|
|
23
|
-
if (!isNestedGrid(area)) {
|
|
24
|
-
return {
|
|
25
|
-
name: key,
|
|
26
|
-
componentDef,
|
|
27
|
-
areaSettings: area.areaSettings,
|
|
28
|
-
child: area.child,
|
|
29
|
-
context: area.context
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
return {
|
|
33
|
-
name: key,
|
|
34
|
-
componentDef,
|
|
35
|
-
context: area.context,
|
|
36
|
-
areaSettings: area.areaSettings,
|
|
37
|
-
template: area.template,
|
|
38
|
-
areas: area.areas,
|
|
39
|
-
gap: area.gap
|
|
40
|
-
};
|
|
41
|
-
});
|
|
42
|
-
}, [props, children]);
|
|
43
|
-
return /* @__PURE__ */ React.createElement(Wrapper, {
|
|
44
|
-
"data-grid-area": props.gridArea,
|
|
45
|
-
gridArea: props.gridArea,
|
|
46
|
-
gap: props.gap,
|
|
47
|
-
template: props.template,
|
|
48
|
-
className: appendClassNames(props.className, "humany-grid")
|
|
49
|
-
}, areas.map((area) => {
|
|
50
|
-
if (!area.componentDef) {
|
|
51
|
-
return null;
|
|
52
|
-
}
|
|
53
|
-
return /* @__PURE__ */ React.createElement(Component, {
|
|
54
|
-
key: area.componentDef.id,
|
|
55
|
-
id: area.componentDef.id,
|
|
56
|
-
branch: "default",
|
|
57
|
-
context: {}
|
|
58
|
-
});
|
|
59
|
-
}));
|
|
60
|
-
};
|
|
61
|
-
const Wrapper = styled.div`
|
|
62
|
-
display: grid;
|
|
63
|
-
${(p) => p.gridArea && css`
|
|
64
|
-
grid-area: ${p.gridArea};
|
|
65
|
-
`}
|
|
66
|
-
${(p) => generateGridTemplateAreasValue(p.template)}
|
|
67
|
-
${(p) => p.gap && css`
|
|
68
|
-
grid-gap: ${p.gap}rem;
|
|
69
|
-
`}
|
|
70
|
-
`;
|
|
71
|
-
const Grid = ({ className }) => {
|
|
72
|
-
const properties = useProperties();
|
|
73
|
-
return /* @__PURE__ */ React.createElement(NestedGridArea, {
|
|
74
|
-
template: properties.template,
|
|
75
|
-
areas: properties.areas,
|
|
76
|
-
gap: properties.gap,
|
|
77
|
-
areaSettings: properties.areaSettings,
|
|
78
|
-
context: properties.context
|
|
79
|
-
});
|
|
80
|
-
};
|
|
81
|
-
export { Grid as default };
|
|
82
|
-
//# sourceMappingURL=grid.js.map
|
package/dist/grid.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grid.js","sources":["../src/utils.ts","../src/nested-grid-area.tsx","../src/grid.tsx"],"sourcesContent":["import { css } from 'styled-components';\r\n\r\nexport const generateGridTemplateAreasValue = (template: string[]) => {\r\n const rows = template.map((_) => 'min-content').join(' ');\r\n const columns = template[0]\r\n .split(' ')\r\n .map((_) => '1fr')\r\n .join(' ');\r\n const areas = template.map((value) => `'${value}'`).join(' ');\r\n\r\n return css`\r\n grid-template-columns: ${columns};\r\n grid-template-rows: ${rows};\r\n grid-template-areas: ${areas};\r\n `;\r\n};\r\n","import { Component } from '@telia-ace/widget-types-grid';\r\nimport { useChildren } from '@telia-ace/widget-ui';\r\nimport { appendClassNames } from '@telia-ace/widget-utilities';\r\nimport React, { useMemo } from 'react';\r\nimport styled, { css } from 'styled-components';\r\nimport { GridAreaProps, isNestedGrid, NestedArea } from './grid-component';\r\nimport { generateGridTemplateAreasValue } from './utils';\r\n\r\ntype Props = {\r\n className?: string;\r\n gridArea?: string;\r\n} & NestedArea;\r\nconst NestedGridArea: React.FC<Props> = (props) => {\r\n const children = useChildren();\r\n\r\n const areas = useMemo<(GridAreaProps & { name: string })[]>(() => {\r\n return Object.entries(props.areas).map(([key, area]) => {\r\n const componentDef = children.find((child) => child.name === key);\r\n\r\n if (!isNestedGrid(area)) {\r\n return {\r\n name: key,\r\n componentDef,\r\n areaSettings: area.areaSettings,\r\n child: area.child,\r\n context: area.context,\r\n };\r\n }\r\n return {\r\n name: key,\r\n componentDef,\r\n context: area.context,\r\n areaSettings: area.areaSettings,\r\n template: area.template,\r\n areas: area.areas,\r\n gap: area.gap,\r\n };\r\n });\r\n }, [props, children]);\r\n\r\n return (\r\n <Wrapper\r\n data-grid-area={props.gridArea}\r\n gridArea={props.gridArea}\r\n gap={props.gap}\r\n template={props.template}\r\n className={appendClassNames(props.className, 'humany-grid')}\r\n >\r\n {areas.map((area) => {\r\n if (!(area as any).componentDef) {\r\n return null;\r\n }\r\n return (\r\n <Component\r\n key={(area as any).componentDef.id}\r\n id={(area as any).componentDef.id}\r\n branch=\"default\"\r\n context={{}}\r\n />\r\n );\r\n })}\r\n </Wrapper>\r\n );\r\n};\r\n\r\nexport default NestedGridArea;\r\n\r\nconst Wrapper = styled.div<{\r\n template: string[];\r\n gridArea?: string;\r\n gap?: number;\r\n}>`\r\n display: grid;\r\n ${(p) =>\r\n p.gridArea &&\r\n css`\r\n grid-area: ${p.gridArea};\r\n `}\r\n ${(p) => generateGridTemplateAreasValue(p.template)}\r\n ${(p) =>\r\n p.gap &&\r\n css`\r\n grid-gap: ${p.gap}rem;\r\n `}\r\n`;\r\n","import { useProperties } from '@telia-ace/widget-ui';\r\nimport React from 'react';\r\nimport { GridComponentProps } from './grid-component';\r\nimport NestedGridArea from './nested-grid-area';\r\n\r\ntype Props = { className?: string };\r\nconst Grid: React.FC<Props> = ({ className }) => {\r\n const properties = useProperties<GridComponentProps>();\r\n return (\r\n <NestedGridArea\r\n template={properties.template}\r\n areas={properties.areas}\r\n gap={properties.gap}\r\n areaSettings={properties.areaSettings}\r\n context={properties.context}\r\n />\r\n );\r\n};\r\n\r\nexport default Grid;\r\n"],"names":[],"mappings":";;;;;;;AAEa,MAAA,iCAAiC,CAAC,aAAuB;AAC5D,QAAA,OAAO,SAAS,IAAI,CAAC,MAAM,aAAa,EAAE,KAAK,GAAG;AACxD,QAAM,UAAU,SAAS,GACpB,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,KAAK,EAChB,KAAK,GAAG;AACP,QAAA,QAAQ,SAAS,IAAI,CAAC,UAAU,IAAI,QAAQ,EAAE,KAAK,GAAG;AAErD,SAAA;AAAA,iCACsB;AAAA,8BACH;AAAA,+BACC;AAAA;AAE/B;ACHA,MAAM,iBAAkC,CAAC,UAAU;AAC/C,QAAM,WAAW;AAEX,QAAA,QAAQ,QAA8C,MAAM;AACvD,WAAA,OAAO,QAAQ,MAAM,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,UAAU;AACpD,YAAM,eAAe,SAAS,KAAK,CAAC,UAAU,MAAM,SAAS,GAAG;AAE5D,UAAA,CAAC,aAAa,IAAI,GAAG;AACd,eAAA;AAAA,UACH,MAAM;AAAA,UACN;AAAA,UACA,cAAc,KAAK;AAAA,UACnB,OAAO,KAAK;AAAA,UACZ,SAAS,KAAK;AAAA,QAAA;AAAA,MAEtB;AACO,aAAA;AAAA,QACH,MAAM;AAAA,QACN;AAAA,QACA,SAAS,KAAK;AAAA,QACd,cAAc,KAAK;AAAA,QACnB,UAAU,KAAK;AAAA,QACf,OAAO,KAAK;AAAA,QACZ,KAAK,KAAK;AAAA,MAAA;AAAA,IACd,CACH;AAAA,EAAA,GACF,CAAC,OAAO,QAAQ,CAAC;AAEpB,SACK,sBAAA,cAAA,SAAA;AAAA,IACG,kBAAgB,MAAM;AAAA,IACtB,UAAU,MAAM;AAAA,IAChB,KAAK,MAAM;AAAA,IACX,UAAU,MAAM;AAAA,IAChB,WAAW,iBAAiB,MAAM,WAAW,aAAa;AAAA,EAAA,GAEzD,MAAM,IAAI,CAAC,SAAS;AACb,QAAA,CAAE,KAAa,cAAc;AACtB,aAAA;AAAA,IACX;AACA,WACK,sBAAA,cAAA,WAAA;AAAA,MACG,KAAM,KAAa,aAAa;AAAA,MAChC,IAAK,KAAa,aAAa;AAAA,MAC/B,QAAO;AAAA,MACP,SAAS,CAAC;AAAA,IAAA,CACd;AAAA,EAEP,CAAA,CACL;AAER;AAIA,MAAM,UAAU,OAAO;AAAA;AAAA,MAMjB,CAAC,MACC,EAAE,YACF;AAAA,yBACiB,EAAE;AAAA;AAAA,MAErB,CAAC,MAAM,+BAA+B,EAAE,QAAQ;AAAA,IAClD,CAAC,MACG,EAAE,OACF;AAAA,wBACgB,EAAE;AAAA;AAAA;AC5EpB,MAAA,OAAwB,CAAC,EAAE,gBAAgB;AAC7C,QAAM,aAAa;AACnB,SACK,sBAAA,cAAA,gBAAA;AAAA,IACG,UAAU,WAAW;AAAA,IACrB,OAAO,WAAW;AAAA,IAClB,KAAK,WAAW;AAAA,IAChB,cAAc,WAAW;AAAA,IACzB,SAAS,WAAW;AAAA,EAAA,CACxB;AAER;;"}
|
package/dist/index2.js
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
-
var __spreadValues = (a, b) => {
|
|
7
|
-
for (var prop in b || (b = {}))
|
|
8
|
-
if (__hasOwnProp.call(b, prop))
|
|
9
|
-
__defNormalProp(a, prop, b[prop]);
|
|
10
|
-
if (__getOwnPropSymbols)
|
|
11
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
-
if (__propIsEnum.call(b, prop))
|
|
13
|
-
__defNormalProp(a, prop, b[prop]);
|
|
14
|
-
}
|
|
15
|
-
return a;
|
|
16
|
-
};
|
|
17
|
-
import { createReactComponent } from "@telia-ace/widget-ui";
|
|
18
|
-
import { createChildren } from "@telia-ace/widget-core";
|
|
19
|
-
import "@telia-ace/widget-utilities";
|
|
20
|
-
const isNestedGrid = (area) => {
|
|
21
|
-
return !!area.template;
|
|
22
|
-
};
|
|
23
|
-
const GridComponent = (container) => {
|
|
24
|
-
return createReactComponent(container, "grid", import("./grid.js"), (component) => {
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
|
-
const gridComponentHandler = (childRef, options) => {
|
|
28
|
-
var _a, _b, _c, _d;
|
|
29
|
-
const { platform, node, references, definitions, views, branch } = options;
|
|
30
|
-
const childDef = definitions[childRef.definitionId];
|
|
31
|
-
const childNode = platform.createNode(childDef.type);
|
|
32
|
-
childNode.name = childRef.definitionId;
|
|
33
|
-
childNode.tags = childDef.tags || [];
|
|
34
|
-
if (childDef.properties) {
|
|
35
|
-
childNode.writeProperties(childDef.properties);
|
|
36
|
-
}
|
|
37
|
-
if (childDef.context) {
|
|
38
|
-
childNode.writeContext(childDef.context);
|
|
39
|
-
}
|
|
40
|
-
if (childDef.layout) {
|
|
41
|
-
childNode.writeLayout(childDef.layout);
|
|
42
|
-
}
|
|
43
|
-
node.appendChild(childNode, branch);
|
|
44
|
-
childRef.overrides.forEach((override) => {
|
|
45
|
-
const options2 = { breakpoints: override.breakpoints };
|
|
46
|
-
if (override.properties) {
|
|
47
|
-
childNode.writeProperties(override.properties, options2);
|
|
48
|
-
}
|
|
49
|
-
if (override.context) {
|
|
50
|
-
childNode.writeContext(override.context, options2);
|
|
51
|
-
}
|
|
52
|
-
if (override.layout) {
|
|
53
|
-
childNode.writeLayout(override.layout, options2);
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
if (((_a = childDef.properties) == null ? void 0 : _a.areas) && !!((_b = childDef.properties) == null ? void 0 : _b.areas)) {
|
|
57
|
-
const mergedDefinitons = Object.entries(childDef.properties.areas).reduce((acc, [key, value]) => {
|
|
58
|
-
if (value.child) {
|
|
59
|
-
const cssProps = Object.entries(value.areaSettings || {}).reduce((acc2, [key2, value2]) => {
|
|
60
|
-
acc2[`css-${key2}`] = value2;
|
|
61
|
-
return acc2;
|
|
62
|
-
}, {});
|
|
63
|
-
acc[key] = {
|
|
64
|
-
type: "area",
|
|
65
|
-
context: value.context || {},
|
|
66
|
-
children: [value.child],
|
|
67
|
-
properties: __spreadValues({
|
|
68
|
-
"css-grid-area": key
|
|
69
|
-
}, cssProps)
|
|
70
|
-
};
|
|
71
|
-
} else {
|
|
72
|
-
const subgrid = {
|
|
73
|
-
type: "grid",
|
|
74
|
-
context: {},
|
|
75
|
-
properties: {
|
|
76
|
-
areaSettings: {},
|
|
77
|
-
areas: value.areas,
|
|
78
|
-
context: value.context,
|
|
79
|
-
gap: value.gap,
|
|
80
|
-
gridArea: value.gridArea,
|
|
81
|
-
template: value.template
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
acc[key] = subgrid;
|
|
85
|
-
}
|
|
86
|
-
return acc;
|
|
87
|
-
}, definitions);
|
|
88
|
-
createChildren(platform, childNode, Object.keys(childDef.properties.areas), mergedDefinitons, views);
|
|
89
|
-
} else if ((_c = childDef.properties) == null ? void 0 : _c.child) {
|
|
90
|
-
createChildren(platform, childNode, [(_d = childDef.properties) == null ? void 0 : _d.child], definitions, views);
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
export { GridComponent as G, gridComponentHandler as g, isNestedGrid as i };
|
|
94
|
-
//# sourceMappingURL=index2.js.map
|
package/dist/index2.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index2.js","sources":["../src/grid-component.ts","../src/handler.ts"],"sourcesContent":["import { createReactComponent } from '@telia-ace/widget-ui';\r\nimport { Container } from '@webprovisions/platform';\r\n\r\ntype AreaWithChild = {\r\n child: string;\r\n areaSettings: { [key: string]: string };\r\n context: { [key: string]: any };\r\n};\r\n\r\nexport type NestedArea = {\r\n context: { [key: string]: any };\r\n template: string[];\r\n areaSettings: { [key: string]: string };\r\n gap: number;\r\n areas: {\r\n [key: string]: GridAreaProps;\r\n };\r\n};\r\n\r\nexport type GridAreaProps = NestedArea | AreaWithChild;\r\n\r\nexport const isNestedGrid = (area: GridAreaProps): area is NestedArea => {\r\n return !!(area as NestedArea).template;\r\n};\r\n\r\nexport type GridComponentProps = {\r\n gap: number;\r\n template: string[];\r\n areaSettings: { [key: string]: string };\r\n areas: {\r\n [key: string]: GridAreaProps;\r\n };\r\n child: string;\r\n context: { [key: string]: any };\r\n};\r\n\r\nexport const GridComponent = (container: Container) => {\r\n return createReactComponent(container, 'grid', import('./grid'), (component) => {});\r\n};\r\n\r\nexport default GridComponent;\r\n","import {\r\n ComponentHandlerOptions,\r\n createChildren,\r\n NormalizedComponentReference,\r\n} from '@telia-ace/widget-core';\r\nimport { Logger } from '@telia-ace/widget-utilities';\r\n\r\nexport const gridComponentHandler = (\r\n childRef: NormalizedComponentReference,\r\n options: ComponentHandlerOptions\r\n) => {\r\n const { platform, node, references, definitions, views, branch } = options;\r\n\r\n const childDef = definitions[childRef.definitionId];\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!childDef) {\r\n Logger.error(`No definition found for component type '${childRef.definitionId}'.`);\r\n return;\r\n }\r\n }\r\n const childNode = platform.createNode(childDef.type);\r\n childNode.name = childRef.definitionId;\r\n childNode.tags = childDef.tags || [];\r\n if (childDef.properties) {\r\n childNode.writeProperties(childDef.properties);\r\n }\r\n if (childDef.context) {\r\n childNode.writeContext(childDef.context);\r\n }\r\n if (childDef.layout) {\r\n childNode.writeLayout(childDef.layout);\r\n }\r\n node.appendChild(childNode, branch);\r\n\r\n childRef.overrides.forEach((override) => {\r\n const options = { breakpoints: override.breakpoints };\r\n if (override.properties) {\r\n childNode.writeProperties(override.properties, options);\r\n }\r\n if (override.context) {\r\n childNode.writeContext(override.context, options);\r\n }\r\n if (override.layout) {\r\n childNode.writeLayout(override.layout, options);\r\n }\r\n });\r\n\r\n if (childDef.properties?.areas && !!childDef.properties?.areas) {\r\n const mergedDefinitons: any = Object.entries(childDef.properties.areas).reduce<any>(\r\n (acc, [key, value]: any) => {\r\n if (value.child) {\r\n const cssProps = Object.entries<string>(value.areaSettings || {}).reduce<{\r\n [key: string]: string;\r\n }>((acc, [key, value]) => {\r\n acc[`css-${key}`] = value;\r\n\r\n return acc;\r\n }, {});\r\n acc[key] = {\r\n type: 'area',\r\n context: value.context || {},\r\n children: [value.child],\r\n properties: {\r\n 'css-grid-area': key,\r\n ...cssProps,\r\n },\r\n };\r\n } else {\r\n const subgrid = {\r\n type: 'grid',\r\n context: {},\r\n properties: {\r\n areaSettings: {},\r\n areas: value.areas,\r\n context: value.context,\r\n gap: value.gap,\r\n gridArea: value.gridArea,\r\n template: value.template,\r\n },\r\n };\r\n acc[key] = subgrid;\r\n }\r\n return acc;\r\n },\r\n definitions\r\n );\r\n createChildren(\r\n platform,\r\n childNode,\r\n Object.keys(childDef.properties.areas),\r\n mergedDefinitons,\r\n views\r\n );\r\n } else if (childDef.properties?.child) {\r\n createChildren(platform, childNode, [childDef.properties?.child], definitions, views);\r\n }\r\n};\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAqBa,MAAA,eAAe,CAAC,SAA4C;AAC9D,SAAA,CAAC,CAAE,KAAoB;AAClC;AAaa,MAAA,gBAAgB,CAAC,cAAyB;AACnD,SAAO,qBAAqB,WAAW,QAAQ,OAAO,cAAW,CAAC,cAAc;AAAA,EAAA,CAAE;AACtF;AC/Ba,MAAA,uBAAuB,CAChC,UACA,YACC;;AACD,QAAM,EAAE,UAAU,MAAM,YAAY,aAAa,OAAO,WAAW;AAE7D,QAAA,WAAW,YAAY,SAAS;AAOtC,QAAM,YAAY,SAAS,WAAW,SAAS,IAAI;AACnD,YAAU,OAAO,SAAS;AAChB,YAAA,OAAO,SAAS,QAAQ,CAAA;AAClC,MAAI,SAAS,YAAY;AACX,cAAA,gBAAgB,SAAS,UAAU;AAAA,EACjD;AACA,MAAI,SAAS,SAAS;AACR,cAAA,aAAa,SAAS,OAAO;AAAA,EAC3C;AACA,MAAI,SAAS,QAAQ;AACP,cAAA,YAAY,SAAS,MAAM;AAAA,EACzC;AACK,OAAA,YAAY,WAAW,MAAM;AAEzB,WAAA,UAAU,QAAQ,CAAC,aAAa;AACrC,UAAM,WAAU,EAAE,aAAa,SAAS,YAAY;AACpD,QAAI,SAAS,YAAY;AACX,gBAAA,gBAAgB,SAAS,YAAY,QAAO;AAAA,IAC1D;AACA,QAAI,SAAS,SAAS;AACR,gBAAA,aAAa,SAAS,SAAS,QAAO;AAAA,IACpD;AACA,QAAI,SAAS,QAAQ;AACP,gBAAA,YAAY,SAAS,QAAQ,QAAO;AAAA,IAClD;AAAA,EAAA,CACH;AAED,MAAI,gBAAS,eAAT,mBAAqB,UAAS,CAAC,CAAC,gBAAS,eAAT,mBAAqB,QAAO;AAC5D,UAAM,mBAAwB,OAAO,QAAQ,SAAS,WAAW,KAAK,EAAE,OACpE,CAAC,KAAK,CAAC,KAAK,WAAgB;AACxB,UAAI,MAAM,OAAO;AACb,cAAM,WAAW,OAAO,QAAgB,MAAM,gBAAgB,CAAA,CAAE,EAAE,OAE/D,CAAC,MAAK,CAAC,MAAK,YAAW;AACtB,eAAI,OAAO,UAAS;AAEb,iBAAA;AAAA,QACX,GAAG,CAAE,CAAA;AACL,YAAI,OAAO;AAAA,UACP,MAAM;AAAA,UACN,SAAS,MAAM,WAAW,CAAC;AAAA,UAC3B,UAAU,CAAC,MAAM,KAAK;AAAA,UACtB,YAAY;AAAA,YACR,iBAAiB;AAAA,aACd;AAAA,QACP;AAAA,MACJ,OACG;AACH,cAAM,UAAU;AAAA,UACZ,MAAM;AAAA,UACN,SAAS,CAAC;AAAA,UACV,YAAY;AAAA,YACR,cAAc,CAAC;AAAA,YACf,OAAO,MAAM;AAAA,YACb,SAAS,MAAM;AAAA,YACf,KAAK,MAAM;AAAA,YACX,UAAU,MAAM;AAAA,YAChB,UAAU,MAAM;AAAA,UACpB;AAAA,QAAA;AAEJ,YAAI,OAAO;AAAA,MACf;AACO,aAAA;AAAA,OAEX,WACJ;AAEI,mBAAA,UACA,WACA,OAAO,KAAK,SAAS,WAAW,KAAK,GACrC,kBACA,KACJ;AAAA,EAAA,WACO,eAAS,eAAT,mBAAqB,OAAO;AACpB,mBAAA,UAAU,WAAW,CAAC,eAAS,eAAT,mBAAqB,KAAK,GAAG,aAAa,KAAK;AAAA,EACxF;AACJ;;"}
|