@telia-ace/widget-components-grid 1.0.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/LICENSE.txt +6 -0
- package/README.md +3 -0
- package/lib/grid-area.d.ts +10 -0
- package/lib/grid-area.js +53 -0
- package/lib/grid-component.d.ts +32 -0
- package/lib/grid-component.js +36 -0
- package/lib/grid.d.ts +6 -0
- package/lib/grid.js +14 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +7 -0
- package/lib/nested-grid-area.d.ts +8 -0
- package/lib/nested-grid-area.js +90 -0
- package/lib/utils.d.ts +1 -0
- package/lib/utils.js +19 -0
- package/lib-esm/grid-area.d.ts +10 -0
- package/lib-esm/grid-area.js +28 -0
- package/lib-esm/grid-component.d.ts +32 -0
- package/lib-esm/grid-component.js +8 -0
- package/lib-esm/grid.d.ts +6 -0
- package/lib-esm/grid.js +9 -0
- package/lib-esm/index.d.ts +2 -0
- package/lib-esm/index.js +2 -0
- package/lib-esm/nested-grid-area.d.ts +8 -0
- package/lib-esm/nested-grid-area.js +62 -0
- package/lib-esm/utils.d.ts +1 -0
- package/lib-esm/utils.js +15 -0
- package/package.json +42 -0
package/LICENSE.txt
ADDED
package/README.md
ADDED
package/lib/grid-area.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
+
if (mod && mod.__esModule) return mod;
|
|
24
|
+
var result = {};
|
|
25
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
+
__setModuleDefault(result, mod);
|
|
27
|
+
return result;
|
|
28
|
+
};
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
var widget_types_grid_1 = require("@telia-ace/widget-types-grid");
|
|
31
|
+
var widget_ui_1 = require("@telia-ace/widget-ui");
|
|
32
|
+
var react_1 = __importStar(require("react"));
|
|
33
|
+
var styled_components_1 = __importStar(require("styled-components"));
|
|
34
|
+
var toCSSProps = (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), function (p) {
|
|
35
|
+
return Object.entries(p.settings).reduce(function (acc, entry) {
|
|
36
|
+
return acc + "".concat(entry[0], ": ").concat(entry[1], ";");
|
|
37
|
+
}, '');
|
|
38
|
+
});
|
|
39
|
+
var GridArea = function (_a) {
|
|
40
|
+
var gridArea = _a.gridArea, areaSettings = _a.areaSettings, componentName = _a.componentName;
|
|
41
|
+
var children = (0, widget_ui_1.useChildren)();
|
|
42
|
+
var child = (0, react_1.useMemo)(function () {
|
|
43
|
+
return children.find(function (i) { return i.name === componentName; });
|
|
44
|
+
}, [children]);
|
|
45
|
+
if (!child) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
return (react_1.default.createElement(StyledGridArea, { "data-grid-area": gridArea, gridArea: gridArea, settings: areaSettings },
|
|
49
|
+
react_1.default.createElement(widget_types_grid_1.Component, { key: child.id, id: child.id, branch: "default" })));
|
|
50
|
+
};
|
|
51
|
+
exports.default = GridArea;
|
|
52
|
+
var StyledGridArea = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n grid-area: ", ";\n ", "\n"], ["\n grid-area: ", ";\n ", "\n"])), function (p) { return p.gridArea; }, toCSSProps);
|
|
53
|
+
var templateObject_1, templateObject_2;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Container } from '@webprovisions/platform';
|
|
2
|
+
declare type AreaWithChild = {
|
|
3
|
+
child: string;
|
|
4
|
+
areaSettings: {
|
|
5
|
+
[key: string]: string;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
export declare type NestedArea = {
|
|
9
|
+
template: string[];
|
|
10
|
+
areaSettings: {
|
|
11
|
+
[key: string]: string;
|
|
12
|
+
};
|
|
13
|
+
gap: number;
|
|
14
|
+
areas: {
|
|
15
|
+
[key: string]: GridAreaProps;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export declare type GridAreaProps = NestedArea | AreaWithChild;
|
|
19
|
+
export declare const isNestedGrid: (area: GridAreaProps) => area is NestedArea;
|
|
20
|
+
export declare type GridComponentProps = {
|
|
21
|
+
gap: number;
|
|
22
|
+
template: string[];
|
|
23
|
+
areaSettings: {
|
|
24
|
+
[key: string]: string;
|
|
25
|
+
};
|
|
26
|
+
areas: {
|
|
27
|
+
[key: string]: GridAreaProps;
|
|
28
|
+
};
|
|
29
|
+
child: string;
|
|
30
|
+
};
|
|
31
|
+
export declare const GridComponent: (container: Container) => Promise<void>;
|
|
32
|
+
export default GridComponent;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.GridComponent = exports.isNestedGrid = void 0;
|
|
27
|
+
var widget_ui_1 = require("@telia-ace/widget-ui");
|
|
28
|
+
var isNestedGrid = function (area) {
|
|
29
|
+
return !!area.template;
|
|
30
|
+
};
|
|
31
|
+
exports.isNestedGrid = isNestedGrid;
|
|
32
|
+
var GridComponent = function (container) {
|
|
33
|
+
return (0, widget_ui_1.createReactComponent)(container, 'grid', Promise.resolve().then(function () { return __importStar(require('./grid')); }), function (component) { });
|
|
34
|
+
};
|
|
35
|
+
exports.GridComponent = GridComponent;
|
|
36
|
+
exports.default = exports.GridComponent;
|
package/lib/grid.d.ts
ADDED
package/lib/grid.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var widget_ui_1 = require("@telia-ace/widget-ui");
|
|
7
|
+
var react_1 = __importDefault(require("react"));
|
|
8
|
+
var nested_grid_area_1 = __importDefault(require("./nested-grid-area"));
|
|
9
|
+
var Grid = function (_a) {
|
|
10
|
+
var className = _a.className;
|
|
11
|
+
var properties = (0, widget_ui_1.useProperties)();
|
|
12
|
+
return (react_1.default.createElement(nested_grid_area_1.default, { template: properties.template, areas: properties.areas, gap: properties.gap, areaSettings: properties.areaSettings }));
|
|
13
|
+
};
|
|
14
|
+
exports.default = Grid;
|
package/lib/index.d.ts
ADDED
package/lib/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
var grid_component_1 = __importDefault(require("./grid-component"));
|
|
7
|
+
exports.default = grid_component_1.default;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
23
|
+
if (mod && mod.__esModule) return mod;
|
|
24
|
+
var result = {};
|
|
25
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
26
|
+
__setModuleDefault(result, mod);
|
|
27
|
+
return result;
|
|
28
|
+
};
|
|
29
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
30
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
31
|
+
if (!m) return o;
|
|
32
|
+
var i = m.call(o), r, ar = [], e;
|
|
33
|
+
try {
|
|
34
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
35
|
+
}
|
|
36
|
+
catch (error) { e = { error: error }; }
|
|
37
|
+
finally {
|
|
38
|
+
try {
|
|
39
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
40
|
+
}
|
|
41
|
+
finally { if (e) throw e.error; }
|
|
42
|
+
}
|
|
43
|
+
return ar;
|
|
44
|
+
};
|
|
45
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
46
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
47
|
+
};
|
|
48
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
49
|
+
var widget_ui_1 = require("@telia-ace/widget-ui");
|
|
50
|
+
var widget_utilities_1 = require("@telia-ace/widget-utilities");
|
|
51
|
+
var react_1 = __importStar(require("react"));
|
|
52
|
+
var styled_components_1 = __importStar(require("styled-components"));
|
|
53
|
+
var grid_area_1 = __importDefault(require("./grid-area"));
|
|
54
|
+
var grid_component_1 = require("./grid-component");
|
|
55
|
+
var utils_1 = require("./utils");
|
|
56
|
+
var NestedGridArea = function (props) {
|
|
57
|
+
var children = (0, widget_ui_1.useChildren)();
|
|
58
|
+
var areas = (0, react_1.useMemo)(function () {
|
|
59
|
+
return Object.entries(props.areas).map(function (_a) {
|
|
60
|
+
var _b = __read(_a, 2), key = _b[0], area = _b[1];
|
|
61
|
+
if (!(0, grid_component_1.isNestedGrid)(area)) {
|
|
62
|
+
return {
|
|
63
|
+
name: key,
|
|
64
|
+
areaSettings: area.areaSettings,
|
|
65
|
+
child: area.child,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
name: key,
|
|
70
|
+
areaSettings: area.areaSettings,
|
|
71
|
+
template: area.template,
|
|
72
|
+
areas: area.areas,
|
|
73
|
+
gap: area.gap,
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
}, [props, children]);
|
|
77
|
+
return (react_1.default.createElement(Wrapper, { "data-grid-area": props.gridArea, gridArea: props.gridArea, gap: props.gap, template: props.template, className: (0, widget_utilities_1.appendClassNames)(props.className, 'humany-grid') }, areas.map(function (area) {
|
|
78
|
+
if ((0, grid_component_1.isNestedGrid)(area)) {
|
|
79
|
+
return (react_1.default.createElement(NestedGridArea, { gridArea: area.name, key: area.name, gap: area.gap, template: area.template, areas: area.areas, areaSettings: area.areaSettings }));
|
|
80
|
+
}
|
|
81
|
+
return (react_1.default.createElement(grid_area_1.default, { gridArea: area.name, key: area.name, componentName: area.child, areaSettings: area.areaSettings }));
|
|
82
|
+
})));
|
|
83
|
+
};
|
|
84
|
+
exports.default = NestedGridArea;
|
|
85
|
+
var Wrapper = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: grid;\n ", "\n ", "\n ", "\n"], ["\n display: grid;\n ", "\n ", "\n ", "\n"])), function (p) {
|
|
86
|
+
return p.gridArea && (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n grid-area: ", ";\n "], ["\n grid-area: ", ";\n "])), p.gridArea);
|
|
87
|
+
}, function (p) { return (0, utils_1.generateGridTemplateAreasValue)(p.template); }, function (p) {
|
|
88
|
+
return p.gap && (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n grid-gap: ", "rem;\n "], ["\n grid-gap: ", "rem;\n "])), p.gap);
|
|
89
|
+
});
|
|
90
|
+
var templateObject_1, templateObject_2, templateObject_3;
|
package/lib/utils.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const generateGridTemplateAreasValue: (template: string[]) => import("styled-components").FlattenSimpleInterpolation;
|
package/lib/utils.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.generateGridTemplateAreasValue = void 0;
|
|
8
|
+
var styled_components_1 = require("styled-components");
|
|
9
|
+
var generateGridTemplateAreasValue = function (template) {
|
|
10
|
+
var rows = template.map(function (_) { return 'min-content'; }).join(' ');
|
|
11
|
+
var columns = template[0]
|
|
12
|
+
.split(' ')
|
|
13
|
+
.map(function (_) { return '1fr'; })
|
|
14
|
+
.join(' ');
|
|
15
|
+
var areas = template.map(function (value) { return "'".concat(value, "'"); }).join(' ');
|
|
16
|
+
return (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n grid-template-columns: ", ";\n grid-template-rows: ", ";\n grid-template-areas: ", ";\n "], ["\n grid-template-columns: ", ";\n grid-template-rows: ", ";\n grid-template-areas: ", ";\n "])), columns, rows, areas);
|
|
17
|
+
};
|
|
18
|
+
exports.generateGridTemplateAreasValue = generateGridTemplateAreasValue;
|
|
19
|
+
var templateObject_1;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
4
|
+
};
|
|
5
|
+
import { Component } from '@telia-ace/widget-types-grid';
|
|
6
|
+
import { useChildren } from '@telia-ace/widget-ui';
|
|
7
|
+
import React, { useMemo } from 'react';
|
|
8
|
+
import styled, { css } from 'styled-components';
|
|
9
|
+
var toCSSProps = css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), function (p) {
|
|
10
|
+
return Object.entries(p.settings).reduce(function (acc, entry) {
|
|
11
|
+
return acc + "".concat(entry[0], ": ").concat(entry[1], ";");
|
|
12
|
+
}, '');
|
|
13
|
+
});
|
|
14
|
+
var GridArea = function (_a) {
|
|
15
|
+
var gridArea = _a.gridArea, areaSettings = _a.areaSettings, componentName = _a.componentName;
|
|
16
|
+
var children = useChildren();
|
|
17
|
+
var child = useMemo(function () {
|
|
18
|
+
return children.find(function (i) { return i.name === componentName; });
|
|
19
|
+
}, [children]);
|
|
20
|
+
if (!child) {
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
return (React.createElement(StyledGridArea, { "data-grid-area": gridArea, gridArea: gridArea, settings: areaSettings },
|
|
24
|
+
React.createElement(Component, { key: child.id, id: child.id, branch: "default" })));
|
|
25
|
+
};
|
|
26
|
+
export default GridArea;
|
|
27
|
+
var StyledGridArea = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n grid-area: ", ";\n ", "\n"], ["\n grid-area: ", ";\n ", "\n"])), function (p) { return p.gridArea; }, toCSSProps);
|
|
28
|
+
var templateObject_1, templateObject_2;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Container } from '@webprovisions/platform';
|
|
2
|
+
declare type AreaWithChild = {
|
|
3
|
+
child: string;
|
|
4
|
+
areaSettings: {
|
|
5
|
+
[key: string]: string;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
export declare type NestedArea = {
|
|
9
|
+
template: string[];
|
|
10
|
+
areaSettings: {
|
|
11
|
+
[key: string]: string;
|
|
12
|
+
};
|
|
13
|
+
gap: number;
|
|
14
|
+
areas: {
|
|
15
|
+
[key: string]: GridAreaProps;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export declare type GridAreaProps = NestedArea | AreaWithChild;
|
|
19
|
+
export declare const isNestedGrid: (area: GridAreaProps) => area is NestedArea;
|
|
20
|
+
export declare type GridComponentProps = {
|
|
21
|
+
gap: number;
|
|
22
|
+
template: string[];
|
|
23
|
+
areaSettings: {
|
|
24
|
+
[key: string]: string;
|
|
25
|
+
};
|
|
26
|
+
areas: {
|
|
27
|
+
[key: string]: GridAreaProps;
|
|
28
|
+
};
|
|
29
|
+
child: string;
|
|
30
|
+
};
|
|
31
|
+
export declare const GridComponent: (container: Container) => Promise<void>;
|
|
32
|
+
export default GridComponent;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createReactComponent } from '@telia-ace/widget-ui';
|
|
2
|
+
export var isNestedGrid = function (area) {
|
|
3
|
+
return !!area.template;
|
|
4
|
+
};
|
|
5
|
+
export var GridComponent = function (container) {
|
|
6
|
+
return createReactComponent(container, 'grid', import('./grid'), function (component) { });
|
|
7
|
+
};
|
|
8
|
+
export default GridComponent;
|
package/lib-esm/grid.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { useProperties } from '@telia-ace/widget-ui';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import NestedGridArea from './nested-grid-area';
|
|
4
|
+
var Grid = function (_a) {
|
|
5
|
+
var className = _a.className;
|
|
6
|
+
var properties = useProperties();
|
|
7
|
+
return (React.createElement(NestedGridArea, { template: properties.template, areas: properties.areas, gap: properties.gap, areaSettings: properties.areaSettings }));
|
|
8
|
+
};
|
|
9
|
+
export default Grid;
|
package/lib-esm/index.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
4
|
+
};
|
|
5
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
6
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
7
|
+
if (!m) return o;
|
|
8
|
+
var i = m.call(o), r, ar = [], e;
|
|
9
|
+
try {
|
|
10
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
11
|
+
}
|
|
12
|
+
catch (error) { e = { error: error }; }
|
|
13
|
+
finally {
|
|
14
|
+
try {
|
|
15
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
16
|
+
}
|
|
17
|
+
finally { if (e) throw e.error; }
|
|
18
|
+
}
|
|
19
|
+
return ar;
|
|
20
|
+
};
|
|
21
|
+
import { useChildren } from '@telia-ace/widget-ui';
|
|
22
|
+
import { appendClassNames } from '@telia-ace/widget-utilities';
|
|
23
|
+
import React, { useMemo } from 'react';
|
|
24
|
+
import styled, { css } from 'styled-components';
|
|
25
|
+
import GridArea from './grid-area';
|
|
26
|
+
import { isNestedGrid } from './grid-component';
|
|
27
|
+
import { generateGridTemplateAreasValue } from './utils';
|
|
28
|
+
var NestedGridArea = function (props) {
|
|
29
|
+
var children = useChildren();
|
|
30
|
+
var areas = useMemo(function () {
|
|
31
|
+
return Object.entries(props.areas).map(function (_a) {
|
|
32
|
+
var _b = __read(_a, 2), key = _b[0], area = _b[1];
|
|
33
|
+
if (!isNestedGrid(area)) {
|
|
34
|
+
return {
|
|
35
|
+
name: key,
|
|
36
|
+
areaSettings: area.areaSettings,
|
|
37
|
+
child: area.child,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
name: key,
|
|
42
|
+
areaSettings: area.areaSettings,
|
|
43
|
+
template: area.template,
|
|
44
|
+
areas: area.areas,
|
|
45
|
+
gap: area.gap,
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
}, [props, children]);
|
|
49
|
+
return (React.createElement(Wrapper, { "data-grid-area": props.gridArea, gridArea: props.gridArea, gap: props.gap, template: props.template, className: appendClassNames(props.className, 'humany-grid') }, areas.map(function (area) {
|
|
50
|
+
if (isNestedGrid(area)) {
|
|
51
|
+
return (React.createElement(NestedGridArea, { gridArea: area.name, key: area.name, gap: area.gap, template: area.template, areas: area.areas, areaSettings: area.areaSettings }));
|
|
52
|
+
}
|
|
53
|
+
return (React.createElement(GridArea, { gridArea: area.name, key: area.name, componentName: area.child, areaSettings: area.areaSettings }));
|
|
54
|
+
})));
|
|
55
|
+
};
|
|
56
|
+
export default NestedGridArea;
|
|
57
|
+
var Wrapper = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: grid;\n ", "\n ", "\n ", "\n"], ["\n display: grid;\n ", "\n ", "\n ", "\n"])), function (p) {
|
|
58
|
+
return p.gridArea && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n grid-area: ", ";\n "], ["\n grid-area: ", ";\n "])), p.gridArea);
|
|
59
|
+
}, function (p) { return generateGridTemplateAreasValue(p.template); }, function (p) {
|
|
60
|
+
return p.gap && css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n grid-gap: ", "rem;\n "], ["\n grid-gap: ", "rem;\n "])), p.gap);
|
|
61
|
+
});
|
|
62
|
+
var templateObject_1, templateObject_2, templateObject_3;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const generateGridTemplateAreasValue: (template: string[]) => import("styled-components").FlattenSimpleInterpolation;
|
package/lib-esm/utils.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
2
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
3
|
+
return cooked;
|
|
4
|
+
};
|
|
5
|
+
import { css } from 'styled-components';
|
|
6
|
+
export var generateGridTemplateAreasValue = function (template) {
|
|
7
|
+
var rows = template.map(function (_) { return 'min-content'; }).join(' ');
|
|
8
|
+
var columns = template[0]
|
|
9
|
+
.split(' ')
|
|
10
|
+
.map(function (_) { return '1fr'; })
|
|
11
|
+
.join(' ');
|
|
12
|
+
var areas = template.map(function (value) { return "'".concat(value, "'"); }).join(' ');
|
|
13
|
+
return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n grid-template-columns: ", ";\n grid-template-rows: ", ";\n grid-template-areas: ", ";\n "], ["\n grid-template-columns: ", ";\n grid-template-rows: ", ";\n grid-template-areas: ", ";\n "])), columns, rows, areas);
|
|
14
|
+
};
|
|
15
|
+
var templateObject_1;
|
package/package.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@telia-ace/widget-components-grid",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Grid component for ACE Widgets.",
|
|
5
|
+
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
|
+
"author": "Telia Company AB",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"telia"
|
|
9
|
+
],
|
|
10
|
+
"main": "lib/index.js",
|
|
11
|
+
"module": "lib-esm/index.js",
|
|
12
|
+
"files": [
|
|
13
|
+
"LICENSE.txt",
|
|
14
|
+
"README.md",
|
|
15
|
+
"lib/",
|
|
16
|
+
"lib-esm/"
|
|
17
|
+
],
|
|
18
|
+
"publishConfig": {
|
|
19
|
+
"access": "public"
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"clean": "cleandir lib && cleandir lib-esm",
|
|
23
|
+
"compile": "tsc -p tsconfig.cjs.json && tsc -p tsconfig.esm.json"
|
|
24
|
+
},
|
|
25
|
+
"sideEffects": false,
|
|
26
|
+
"typings": "lib/index.d.ts",
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@telia-ace/widget-types-grid": "^1.0.0",
|
|
29
|
+
"@telia-ace/widget-ui": "^1.0.0",
|
|
30
|
+
"@telia-ace/widget-utilities": "^1.0.1",
|
|
31
|
+
"@webprovisions/platform": "^1.1.2",
|
|
32
|
+
"react": "^17.0.2",
|
|
33
|
+
"react-dom": "^17.0.2",
|
|
34
|
+
"styled-components": "^4.3.2"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/react": "^17.0.39",
|
|
38
|
+
"@types/react-dom": "^17.0.13",
|
|
39
|
+
"@types/styled-components": "^5.1.7"
|
|
40
|
+
},
|
|
41
|
+
"gitHead": "26a4f73e6b1811cf60ca62a274b54b15127a83f6"
|
|
42
|
+
}
|