@telia-ace/widget-types-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/component-platform-factory.d.ts +13 -0
- package/lib/component-platform-factory.js +105 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +16 -0
- package/lib/services.d.ts +7 -0
- package/lib/services.js +99 -0
- package/lib/site-provider.d.ts +5 -0
- package/lib/site-provider.js +18 -0
- package/lib/ui/animated-view.d.ts +6 -0
- package/lib/ui/animated-view.js +142 -0
- package/lib/ui/component.d.ts +18 -0
- package/lib/ui/component.js +179 -0
- package/lib/ui/detached-component.d.ts +7 -0
- package/lib/ui/detached-component.js +73 -0
- package/lib/ui/determine-slide-direction.d.ts +26 -0
- package/lib/ui/determine-slide-direction.js +51 -0
- package/lib/ui/html-element-handlers.d.ts +18 -0
- package/lib/ui/html-element-handlers.js +128 -0
- package/lib/ui/index.d.ts +6 -0
- package/lib/ui/index.js +19 -0
- package/lib/ui/not-found.d.ts +6 -0
- package/lib/ui/not-found.js +83 -0
- package/lib/ui/prepare-dom.d.ts +20 -0
- package/lib/ui/prepare-dom.js +122 -0
- package/lib/ui/render.d.ts +3 -0
- package/lib/ui/render.js +11 -0
- package/lib/ui/resolvable-component.d.ts +7 -0
- package/lib/ui/resolvable-component.js +87 -0
- package/lib/ui/switch.d.ts +11 -0
- package/lib/ui/switch.js +58 -0
- package/lib/ui/unmount.d.ts +2 -0
- package/lib/ui/unmount.js +4 -0
- package/lib/ui/use-component-node-properties.d.ts +3 -0
- package/lib/ui/use-component-node-properties.js +44 -0
- package/lib/ui/use-router.d.ts +4 -0
- package/lib/ui/use-router.js +32 -0
- package/lib/ui/view-outlet.d.ts +32 -0
- package/lib/ui/view-outlet.js +151 -0
- package/lib/ui/view.d.ts +6 -0
- package/lib/ui/view.js +75 -0
- package/lib/ui/wrapper.d.ts +7 -0
- package/lib/ui/wrapper.js +108 -0
- package/lib/widget.d.ts +54 -0
- package/lib/widget.js +554 -0
- package/lib-esm/component-platform-factory.d.ts +13 -0
- package/lib-esm/component-platform-factory.js +101 -0
- package/lib-esm/index.d.ts +4 -0
- package/lib-esm/index.js +4 -0
- package/lib-esm/services.d.ts +7 -0
- package/lib-esm/services.js +67 -0
- package/lib-esm/site-provider.d.ts +5 -0
- package/lib-esm/site-provider.js +14 -0
- package/lib-esm/ui/animated-view.d.ts +6 -0
- package/lib-esm/ui/animated-view.js +114 -0
- package/lib-esm/ui/component.d.ts +18 -0
- package/lib-esm/ui/component.js +150 -0
- package/lib-esm/ui/detached-component.d.ts +7 -0
- package/lib-esm/ui/detached-component.js +45 -0
- package/lib-esm/ui/determine-slide-direction.d.ts +26 -0
- package/lib-esm/ui/determine-slide-direction.js +46 -0
- package/lib-esm/ui/html-element-handlers.d.ts +18 -0
- package/lib-esm/ui/html-element-handlers.js +120 -0
- package/lib-esm/ui/index.d.ts +6 -0
- package/lib-esm/ui/index.js +6 -0
- package/lib-esm/ui/not-found.d.ts +6 -0
- package/lib-esm/ui/not-found.js +58 -0
- package/lib-esm/ui/prepare-dom.d.ts +20 -0
- package/lib-esm/ui/prepare-dom.js +116 -0
- package/lib-esm/ui/render.d.ts +3 -0
- package/lib-esm/ui/render.js +6 -0
- package/lib-esm/ui/resolvable-component.d.ts +7 -0
- package/lib-esm/ui/resolvable-component.js +62 -0
- package/lib-esm/ui/switch.d.ts +11 -0
- package/lib-esm/ui/switch.js +53 -0
- package/lib-esm/ui/unmount.d.ts +2 -0
- package/lib-esm/ui/unmount.js +2 -0
- package/lib-esm/ui/use-component-node-properties.d.ts +3 -0
- package/lib-esm/ui/use-component-node-properties.js +42 -0
- package/lib-esm/ui/use-router.d.ts +4 -0
- package/lib-esm/ui/use-router.js +30 -0
- package/lib-esm/ui/view-outlet.d.ts +32 -0
- package/lib-esm/ui/view-outlet.js +126 -0
- package/lib-esm/ui/view.d.ts +6 -0
- package/lib-esm/ui/view.js +70 -0
- package/lib-esm/ui/wrapper.d.ts +7 -0
- package/lib-esm/ui/wrapper.js +80 -0
- package/lib-esm/widget.d.ts +54 -0
- package/lib-esm/widget.js +551 -0
- package/package.json +52 -0
|
@@ -0,0 +1,73 @@
|
|
|
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
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
26
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
27
|
+
if (!m) return o;
|
|
28
|
+
var i = m.call(o), r, ar = [], e;
|
|
29
|
+
try {
|
|
30
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
31
|
+
}
|
|
32
|
+
catch (error) { e = { error: error }; }
|
|
33
|
+
finally {
|
|
34
|
+
try {
|
|
35
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
36
|
+
}
|
|
37
|
+
finally { if (e) throw e.error; }
|
|
38
|
+
}
|
|
39
|
+
return ar;
|
|
40
|
+
};
|
|
41
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
42
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
var widget_ui_1 = require("@telia-ace/widget-ui");
|
|
46
|
+
var react_1 = __importStar(require("react"));
|
|
47
|
+
var component_1 = __importDefault(require("./component"));
|
|
48
|
+
var DetachedComponent = function (_a) {
|
|
49
|
+
var builder = _a.builder;
|
|
50
|
+
var container = (0, widget_ui_1.useContainer)();
|
|
51
|
+
var _b = __read((0, react_1.useState)(null), 2), node = _b[0], setNode = _b[1];
|
|
52
|
+
(0, react_1.useEffect)(function () {
|
|
53
|
+
container.getAsync('components').then(function (components) {
|
|
54
|
+
return builder(components).then(function (createdNode) {
|
|
55
|
+
setNode(createdNode);
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
}, []);
|
|
59
|
+
(0, react_1.useEffect)(function () {
|
|
60
|
+
return function () {
|
|
61
|
+
if (node) {
|
|
62
|
+
container.getAsync('components').then(function (components) {
|
|
63
|
+
components.nodes.detached = components.nodes.detached.filter(function (n) { return n.id !== node.id; });
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}, [node]);
|
|
68
|
+
if (!node) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
return react_1.default.createElement(component_1.default, { id: node.id, node: node, branch: "default" });
|
|
72
|
+
};
|
|
73
|
+
exports.default = DetachedComponent;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare enum SlideDirection {
|
|
2
|
+
back = "back",
|
|
3
|
+
forth = "forth"
|
|
4
|
+
}
|
|
5
|
+
export interface RouteStructure {
|
|
6
|
+
name: string;
|
|
7
|
+
children: RouteStructure[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Recursively find the parents of a nested route
|
|
11
|
+
* @param routeName Name of route to find
|
|
12
|
+
* @param routes Routes to look in
|
|
13
|
+
* @param trail Trail of parents
|
|
14
|
+
* @param level Level of the array currently looking in
|
|
15
|
+
*/
|
|
16
|
+
export declare const findParentRoutes: (routeName: string, routes: RouteStructure[], trail?: string[], level?: number) => string[] | null;
|
|
17
|
+
/**
|
|
18
|
+
* Determine if the sliding animation should back or forth
|
|
19
|
+
* @param currentRouteName Name of current route
|
|
20
|
+
* @param nextRouteName Name of route to transition to
|
|
21
|
+
* @param routeRanking Hierarchical route ranking for the widget
|
|
22
|
+
*/
|
|
23
|
+
export declare const determineSlideDirection: (currentRouteName: string, nextRouteName: string, routeRanking: RouteRanking) => SlideDirection;
|
|
24
|
+
export declare type RouteRanking = {
|
|
25
|
+
[key: string]: number;
|
|
26
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.determineSlideDirection = exports.findParentRoutes = exports.SlideDirection = void 0;
|
|
4
|
+
var SlideDirection;
|
|
5
|
+
(function (SlideDirection) {
|
|
6
|
+
SlideDirection["back"] = "back";
|
|
7
|
+
SlideDirection["forth"] = "forth";
|
|
8
|
+
})(SlideDirection = exports.SlideDirection || (exports.SlideDirection = {}));
|
|
9
|
+
/**
|
|
10
|
+
* Recursively find the parents of a nested route
|
|
11
|
+
* @param routeName Name of route to find
|
|
12
|
+
* @param routes Routes to look in
|
|
13
|
+
* @param trail Trail of parents
|
|
14
|
+
* @param level Level of the array currently looking in
|
|
15
|
+
*/
|
|
16
|
+
var findParentRoutes = function (routeName, routes, trail, level) {
|
|
17
|
+
if (trail === void 0) { trail = []; }
|
|
18
|
+
if (level === void 0) { level = 0; }
|
|
19
|
+
var found = null;
|
|
20
|
+
routes.forEach(function (route, index) {
|
|
21
|
+
if (!found) {
|
|
22
|
+
if (route.name === routeName) {
|
|
23
|
+
found = route;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
trail[level] = route.name;
|
|
27
|
+
found = (0, exports.findParentRoutes)(routeName, route.children, trail, level + 1);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
if (!found) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
return trail;
|
|
35
|
+
};
|
|
36
|
+
exports.findParentRoutes = findParentRoutes;
|
|
37
|
+
/**
|
|
38
|
+
* Determine if the sliding animation should back or forth
|
|
39
|
+
* @param currentRouteName Name of current route
|
|
40
|
+
* @param nextRouteName Name of route to transition to
|
|
41
|
+
* @param routeRanking Hierarchical route ranking for the widget
|
|
42
|
+
*/
|
|
43
|
+
var determineSlideDirection = function (currentRouteName, nextRouteName, routeRanking) {
|
|
44
|
+
if (typeof routeRanking[currentRouteName] === 'number' &&
|
|
45
|
+
typeof routeRanking[nextRouteName] === 'number' &&
|
|
46
|
+
routeRanking[currentRouteName] > routeRanking[nextRouteName]) {
|
|
47
|
+
return SlideDirection.back;
|
|
48
|
+
}
|
|
49
|
+
return SlideDirection.forth;
|
|
50
|
+
};
|
|
51
|
+
exports.determineSlideDirection = determineSlideDirection;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const renderSymbol: (symbol?: {
|
|
2
|
+
type: string;
|
|
3
|
+
content: string;
|
|
4
|
+
} | undefined) => string | undefined;
|
|
5
|
+
export declare type TriggerElementOptions = {
|
|
6
|
+
symbol?: {
|
|
7
|
+
type: string;
|
|
8
|
+
content: string;
|
|
9
|
+
};
|
|
10
|
+
widgetName: string;
|
|
11
|
+
label?: string;
|
|
12
|
+
ariaLabel?: string;
|
|
13
|
+
tooltip?: string;
|
|
14
|
+
};
|
|
15
|
+
export declare function createTriggerElement(element: HTMLElement, options: TriggerElementOptions): () => void;
|
|
16
|
+
export declare function setInactive(elements: HTMLElement | HTMLElement[], title?: string): void;
|
|
17
|
+
export declare function setLoading(elements: HTMLElement | HTMLElement[]): void;
|
|
18
|
+
export declare function setActive(elements: HTMLElement | HTMLElement[], title?: string): void;
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setActive = exports.setLoading = exports.setInactive = exports.createTriggerElement = exports.renderSymbol = void 0;
|
|
4
|
+
// tslint:disable max-line-length
|
|
5
|
+
var renderSymbol = function (symbol) {
|
|
6
|
+
if (symbol) {
|
|
7
|
+
var type = symbol.type, content = symbol.content;
|
|
8
|
+
switch (type) {
|
|
9
|
+
case 'FontAwesome':
|
|
10
|
+
return "<i class=\"humany-icon fa fa-".concat(content, "\"></i>");
|
|
11
|
+
case 'Uri':
|
|
12
|
+
return "<i class=\"humany-icon humany-custom-icon\" style=\"background: url(".concat(content, ") no-repeat center center;background-size: contain;\"></i>");
|
|
13
|
+
default:
|
|
14
|
+
return '';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
exports.renderSymbol = renderSymbol;
|
|
19
|
+
var triggerTabHandler = function (triggerDOMElement) {
|
|
20
|
+
var toggleTabbing = function (element, tabbing) {
|
|
21
|
+
if (!element) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (tabbing) {
|
|
25
|
+
element.classList.add('humany-tabbing');
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
element.classList.remove('humany-tabbing');
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
var handleKeydown = function (e) {
|
|
32
|
+
if (e.key === 'Tab') {
|
|
33
|
+
toggleTabbing(triggerDOMElement, true);
|
|
34
|
+
}
|
|
35
|
+
else if (!(e.key === 'Enter' &&
|
|
36
|
+
document.activeElement &&
|
|
37
|
+
document.activeElement.classList.contains('humany-trigger'))) {
|
|
38
|
+
toggleTabbing(triggerDOMElement, false);
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
var handleClick = function (e) {
|
|
42
|
+
if (document.activeElement &&
|
|
43
|
+
document.activeElement.classList.contains('humany-trigger') &&
|
|
44
|
+
document.activeElement.classList.contains('humany-tabbing')) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
toggleTabbing(triggerDOMElement, false);
|
|
48
|
+
};
|
|
49
|
+
document.addEventListener('keydown', handleKeydown);
|
|
50
|
+
document.addEventListener('click', handleClick);
|
|
51
|
+
return function () {
|
|
52
|
+
document.removeEventListener('keydown', handleKeydown);
|
|
53
|
+
document.removeEventListener('click', handleClick);
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
function createTriggerElement(element, options) {
|
|
57
|
+
var symbol = options.symbol, widgetName = options.widgetName, _a = options.label, label = _a === void 0 ? '' : _a, _b = options.ariaLabel, ariaLabel = _b === void 0 ? '' : _b, _c = options.tooltip, tooltip = _c === void 0 ? '' : _c;
|
|
58
|
+
element.classList.add('humany-trigger');
|
|
59
|
+
element.classList.add("humany_".concat(widgetName));
|
|
60
|
+
if (label.length) {
|
|
61
|
+
element.classList.add('humany-has-text');
|
|
62
|
+
}
|
|
63
|
+
if (ariaLabel.length && !element.getAttribute('aria-label')) {
|
|
64
|
+
element.setAttribute('aria-label', ariaLabel);
|
|
65
|
+
}
|
|
66
|
+
if (ariaLabel.length && !element.getAttribute('tabindex')) {
|
|
67
|
+
element.setAttribute('tabindex', '0');
|
|
68
|
+
}
|
|
69
|
+
if (tooltip.length && !element.getAttribute('title')) {
|
|
70
|
+
element.setAttribute('title', tooltip);
|
|
71
|
+
}
|
|
72
|
+
var symbolHtml = (0, exports.renderSymbol)(symbol) || '';
|
|
73
|
+
element.innerHTML = "".concat(symbolHtml, "\n <span class=\"humany-close\">\n <svg width=\"18\" height=\"9\" viewBox=\"0 0 18 9\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9 9C8.81794 9.00045 8.63759 8.96634 8.46939 8.89965C8.3012 8.83295 8.14851 8.735 8.02015 8.61145L0.194523 1.12367C0.068294 0.99862 -0.00155266 0.831133 2.61958e-05 0.657285C0.00160506 0.483436 0.0744832 0.317136 0.202964 0.194202C0.331445 0.0712675 0.505249 0.00153576 0.686941 2.50649e-05C0.868634 -0.00148563 1.04368 0.0653456 1.17437 0.186125L9 7.6739L16.8256 0.186125C16.9563 0.0653456 17.1314 -0.00148563 17.3131 2.50649e-05C17.4948 0.00153576 17.6686 0.0712675 17.797 0.194202C17.9255 0.317136 17.9984 0.483436 18 0.657285C18.0016 0.831133 17.9317 0.99862 17.8055 1.12367L9.97985 8.61145C9.85149 8.735 9.6988 8.83295 9.53061 8.89965C9.36241 8.96634 9.18206 9.00045 9 9Z\" fill=\"white\"/>\n </svg>\n </span>\n <span class=\"humany-loader\">\n <svg viewBox=\"25 25 50 50\">\n <circle\n cx=\"50\"\n cy=\"50\"\n r=\"20\"\n fill=\"none\"\n stroke=\"#000\"\n stroke-width=\"2\"\n stroke-miterlimit=\"10\" />\n </svg>\n </span>\n ").concat(label.length ? "<span>".concat(label, "</span>") : '');
|
|
74
|
+
setTimeout(function () { return element && element.classList.add('humany-rendered'); });
|
|
75
|
+
return triggerTabHandler(element);
|
|
76
|
+
}
|
|
77
|
+
exports.createTriggerElement = createTriggerElement;
|
|
78
|
+
function setInactive(elements, title) {
|
|
79
|
+
if (elements instanceof HTMLElement) {
|
|
80
|
+
if (title) {
|
|
81
|
+
elements.setAttribute('title', title);
|
|
82
|
+
}
|
|
83
|
+
elements.classList.remove('humany-active');
|
|
84
|
+
elements.classList.remove('humany-loading');
|
|
85
|
+
}
|
|
86
|
+
else if (elements instanceof Array) {
|
|
87
|
+
elements.forEach(function (e) {
|
|
88
|
+
if (title) {
|
|
89
|
+
e.setAttribute('title', title);
|
|
90
|
+
}
|
|
91
|
+
e.classList.remove('humany-active');
|
|
92
|
+
e.classList.remove('humany-loading');
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.setInactive = setInactive;
|
|
97
|
+
function setLoading(elements) {
|
|
98
|
+
if (elements instanceof HTMLElement) {
|
|
99
|
+
elements.classList.remove('humany-active');
|
|
100
|
+
elements.classList.add('humany-loading');
|
|
101
|
+
}
|
|
102
|
+
else if (elements instanceof Array) {
|
|
103
|
+
elements.forEach(function (e) {
|
|
104
|
+
e.classList.remove('humany-active');
|
|
105
|
+
e.classList.add('humany-loading');
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.setLoading = setLoading;
|
|
110
|
+
function setActive(elements, title) {
|
|
111
|
+
if (elements instanceof HTMLElement) {
|
|
112
|
+
if (title) {
|
|
113
|
+
elements.setAttribute('title', title);
|
|
114
|
+
}
|
|
115
|
+
elements.classList.add('humany-active');
|
|
116
|
+
elements.classList.remove('humany-loading');
|
|
117
|
+
}
|
|
118
|
+
else if (elements instanceof Array) {
|
|
119
|
+
elements.forEach(function (e) {
|
|
120
|
+
if (title) {
|
|
121
|
+
e.setAttribute('title', title);
|
|
122
|
+
}
|
|
123
|
+
e.classList.add('humany-active');
|
|
124
|
+
e.classList.remove('humany-loading');
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
exports.setActive = setActive;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default as AnimatedView } from './animated-view';
|
|
2
|
+
export { default as Component } from './component';
|
|
3
|
+
export { prepareDOMElements, TriggerType } from './prepare-dom';
|
|
4
|
+
export { default as ResolvableComponent } from './resolvable-component';
|
|
5
|
+
export { default as View } from './view';
|
|
6
|
+
export { default as Wrapper } from './wrapper';
|
package/lib/ui/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
exports.Wrapper = exports.View = exports.ResolvableComponent = exports.TriggerType = exports.prepareDOMElements = exports.Component = exports.AnimatedView = void 0;
|
|
7
|
+
var animated_view_1 = require("./animated-view");
|
|
8
|
+
Object.defineProperty(exports, "AnimatedView", { enumerable: true, get: function () { return __importDefault(animated_view_1).default; } });
|
|
9
|
+
var component_1 = require("./component");
|
|
10
|
+
Object.defineProperty(exports, "Component", { enumerable: true, get: function () { return __importDefault(component_1).default; } });
|
|
11
|
+
var prepare_dom_1 = require("./prepare-dom");
|
|
12
|
+
Object.defineProperty(exports, "prepareDOMElements", { enumerable: true, get: function () { return prepare_dom_1.prepareDOMElements; } });
|
|
13
|
+
Object.defineProperty(exports, "TriggerType", { enumerable: true, get: function () { return prepare_dom_1.TriggerType; } });
|
|
14
|
+
var resolvable_component_1 = require("./resolvable-component");
|
|
15
|
+
Object.defineProperty(exports, "ResolvableComponent", { enumerable: true, get: function () { return __importDefault(resolvable_component_1).default; } });
|
|
16
|
+
var view_1 = require("./view");
|
|
17
|
+
Object.defineProperty(exports, "View", { enumerable: true, get: function () { return __importDefault(view_1).default; } });
|
|
18
|
+
var wrapper_1 = require("./wrapper");
|
|
19
|
+
Object.defineProperty(exports, "Wrapper", { enumerable: true, get: function () { return __importDefault(wrapper_1).default; } });
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
+
}) : function(o, v) {
|
|
27
|
+
o["default"] = v;
|
|
28
|
+
});
|
|
29
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
30
|
+
if (mod && mod.__esModule) return mod;
|
|
31
|
+
var result = {};
|
|
32
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
33
|
+
__setModuleDefault(result, mod);
|
|
34
|
+
return result;
|
|
35
|
+
};
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
var widget_ui_1 = require("@telia-ace/widget-ui");
|
|
38
|
+
var react_1 = __importStar(require("react"));
|
|
39
|
+
var styled_components_1 = require("styled-components");
|
|
40
|
+
var DetachedComponent = react_1.default.lazy(function () { return Promise.resolve().then(function () { return __importStar(require('./detached-component')); }); });
|
|
41
|
+
var NotFound = function (_a) {
|
|
42
|
+
var _b = _a.showSearch, showSearch = _b === void 0 ? false : _b;
|
|
43
|
+
var themeContext = (0, react_1.useContext)(styled_components_1.ThemeContext);
|
|
44
|
+
var container = (0, widget_ui_1.useContainer)();
|
|
45
|
+
return (react_1.default.createElement(react_1.default.Suspense, { fallback: null },
|
|
46
|
+
react_1.default.createElement(DetachedComponent, { builder: function (components) {
|
|
47
|
+
return container.get('settings').then(function (settings) {
|
|
48
|
+
var _a;
|
|
49
|
+
var _b = Object.keys(settings.components).reduce(function (acc, key) {
|
|
50
|
+
if (settings.components[key].type === 'not-found') {
|
|
51
|
+
acc.properties = settings.components[key].properties;
|
|
52
|
+
acc.context = settings.components[key].context;
|
|
53
|
+
}
|
|
54
|
+
return acc;
|
|
55
|
+
}, { properties: {}, context: {} }), properties = _b.properties, context = _b.context;
|
|
56
|
+
properties.showSearch = showSearch;
|
|
57
|
+
var node = components.createNode('area', { detached: true });
|
|
58
|
+
node.name = 'not-found-area';
|
|
59
|
+
node.writeLayout({
|
|
60
|
+
size: 'full',
|
|
61
|
+
});
|
|
62
|
+
if (showSearch) {
|
|
63
|
+
var searchComponentProps = Object.keys(settings.components).reduce(function (acc, key) {
|
|
64
|
+
if (settings.components[key].type === 'search') {
|
|
65
|
+
return settings.components[key].properties;
|
|
66
|
+
}
|
|
67
|
+
return acc;
|
|
68
|
+
}, {});
|
|
69
|
+
var searchNode = components.createNode('search', { detached: true });
|
|
70
|
+
searchNode.writeLayout({ size: 'full' });
|
|
71
|
+
searchNode.writeProperties(__assign({ 'css-margin-bottom': ((_a = themeContext === null || themeContext === void 0 ? void 0 : themeContext.sizes) === null || _a === void 0 ? void 0 : _a.normal) || '15px' }, searchComponentProps));
|
|
72
|
+
node.appendChild(searchNode);
|
|
73
|
+
}
|
|
74
|
+
var notFoundNode = components.createNode('not-found', { detached: true });
|
|
75
|
+
notFoundNode.writeLayout({ size: 'full' });
|
|
76
|
+
notFoundNode.writeProperties(properties);
|
|
77
|
+
notFoundNode.writeContext(context);
|
|
78
|
+
node.appendChild(notFoundNode);
|
|
79
|
+
return node;
|
|
80
|
+
});
|
|
81
|
+
} })));
|
|
82
|
+
};
|
|
83
|
+
exports.default = NotFound;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ViewOutletOptions } from './view-outlet';
|
|
2
|
+
declare enum ProvidedElements {
|
|
3
|
+
None = "none",
|
|
4
|
+
WidgetDOM = "widgetDOM",
|
|
5
|
+
TriggerDOM = "triggerDOM",
|
|
6
|
+
Both = "both"
|
|
7
|
+
}
|
|
8
|
+
export declare enum TriggerType {
|
|
9
|
+
Inline = "inline",
|
|
10
|
+
Link = "link",
|
|
11
|
+
Badge = "badge",
|
|
12
|
+
Unsupported = "unsupported"
|
|
13
|
+
}
|
|
14
|
+
export declare const determineProvidedElements: (widgetDOMElement?: HTMLElement | undefined, triggerDOMElement?: HTMLElement | undefined) => ProvidedElements;
|
|
15
|
+
export declare const determineTriggerType: (triggerDefinition?: any) => TriggerType;
|
|
16
|
+
declare type PrepareDOMElementsOutput = ViewOutletOptions & {
|
|
17
|
+
callback?: () => void;
|
|
18
|
+
};
|
|
19
|
+
export declare const prepareDOMElements: (name: string, providedWidgetElement?: HTMLElement | undefined, providedTriggerElement?: HTMLElement | undefined, triggerDefinition?: any, waitWithReplace?: boolean) => PrepareDOMElementsOutput;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.prepareDOMElements = exports.determineTriggerType = exports.determineProvidedElements = exports.TriggerType = void 0;
|
|
4
|
+
var ProvidedElements;
|
|
5
|
+
(function (ProvidedElements) {
|
|
6
|
+
ProvidedElements["None"] = "none";
|
|
7
|
+
ProvidedElements["WidgetDOM"] = "widgetDOM";
|
|
8
|
+
ProvidedElements["TriggerDOM"] = "triggerDOM";
|
|
9
|
+
ProvidedElements["Both"] = "both";
|
|
10
|
+
})(ProvidedElements || (ProvidedElements = {}));
|
|
11
|
+
var TriggerType;
|
|
12
|
+
(function (TriggerType) {
|
|
13
|
+
TriggerType["Inline"] = "inline";
|
|
14
|
+
TriggerType["Link"] = "link";
|
|
15
|
+
TriggerType["Badge"] = "badge";
|
|
16
|
+
TriggerType["Unsupported"] = "unsupported";
|
|
17
|
+
})(TriggerType = exports.TriggerType || (exports.TriggerType = {}));
|
|
18
|
+
var determineProvidedElements = function (widgetDOMElement, triggerDOMElement) {
|
|
19
|
+
if (widgetDOMElement && triggerDOMElement) {
|
|
20
|
+
return ProvidedElements.Both;
|
|
21
|
+
}
|
|
22
|
+
if (widgetDOMElement) {
|
|
23
|
+
return ProvidedElements.WidgetDOM;
|
|
24
|
+
}
|
|
25
|
+
if (triggerDOMElement) {
|
|
26
|
+
return ProvidedElements.TriggerDOM;
|
|
27
|
+
}
|
|
28
|
+
return ProvidedElements.None;
|
|
29
|
+
};
|
|
30
|
+
exports.determineProvidedElements = determineProvidedElements;
|
|
31
|
+
var determineTriggerType = function (triggerDefinition) {
|
|
32
|
+
if (!triggerDefinition) {
|
|
33
|
+
return TriggerType.Inline;
|
|
34
|
+
}
|
|
35
|
+
if (typeof triggerDefinition === 'boolean' && triggerDefinition) {
|
|
36
|
+
return TriggerType.Link;
|
|
37
|
+
}
|
|
38
|
+
if (typeof triggerDefinition === 'object' && !Array.isArray(triggerDefinition)) {
|
|
39
|
+
return TriggerType.Badge;
|
|
40
|
+
}
|
|
41
|
+
return TriggerType.Unsupported;
|
|
42
|
+
};
|
|
43
|
+
exports.determineTriggerType = determineTriggerType;
|
|
44
|
+
var prepareDOMElements = function (name, providedWidgetElement, providedTriggerElement, triggerDefinition, waitWithReplace) {
|
|
45
|
+
var _a, _b;
|
|
46
|
+
if (waitWithReplace === void 0) { waitWithReplace = false; }
|
|
47
|
+
var providedElements = (0, exports.determineProvidedElements)(providedWidgetElement, providedTriggerElement);
|
|
48
|
+
var triggerType = (0, exports.determineTriggerType)(triggerDefinition);
|
|
49
|
+
var cachedOriginals = {
|
|
50
|
+
widgetDOMElement: providedWidgetElement ? providedWidgetElement.cloneNode(true) : undefined,
|
|
51
|
+
triggerDOMElement: providedTriggerElement
|
|
52
|
+
? providedTriggerElement.cloneNode(true)
|
|
53
|
+
: undefined,
|
|
54
|
+
};
|
|
55
|
+
var output = {
|
|
56
|
+
triggerType: triggerType,
|
|
57
|
+
cachedOriginals: cachedOriginals,
|
|
58
|
+
widgetDOMElement: document.createElement('div'),
|
|
59
|
+
};
|
|
60
|
+
switch (providedElements) {
|
|
61
|
+
case ProvidedElements.Both: {
|
|
62
|
+
output.widgetDOMElement = providedWidgetElement || document.createElement('div');
|
|
63
|
+
if (triggerType !== TriggerType.Inline) {
|
|
64
|
+
output.triggerDOMElement = providedTriggerElement;
|
|
65
|
+
}
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
case ProvidedElements.WidgetDOM: {
|
|
69
|
+
output.widgetDOMElement = providedWidgetElement || document.createElement('div');
|
|
70
|
+
if (triggerType !== TriggerType.Inline) {
|
|
71
|
+
var triggerElement = document.body.appendChild(document.createElement('a'));
|
|
72
|
+
if (triggerType === TriggerType.Link) {
|
|
73
|
+
triggerElement.innerText = name;
|
|
74
|
+
}
|
|
75
|
+
output.triggerDOMElement = triggerElement;
|
|
76
|
+
}
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
case ProvidedElements.TriggerDOM: {
|
|
80
|
+
var widgetElement_1 = document.createElement('div');
|
|
81
|
+
output.widgetDOMElement = widgetElement_1;
|
|
82
|
+
if (triggerType === TriggerType.Inline) {
|
|
83
|
+
// replace with widgetDOMElement in the DOM
|
|
84
|
+
widgetElement_1.id = (providedTriggerElement === null || providedTriggerElement === void 0 ? void 0 : providedTriggerElement.id) || '';
|
|
85
|
+
if (waitWithReplace) {
|
|
86
|
+
widgetElement_1.style.display = 'none';
|
|
87
|
+
(_a = providedTriggerElement === null || providedTriggerElement === void 0 ? void 0 : providedTriggerElement.parentNode) === null || _a === void 0 ? void 0 : _a.appendChild(widgetElement_1);
|
|
88
|
+
output.callback = function () {
|
|
89
|
+
var _a;
|
|
90
|
+
(_a = providedTriggerElement === null || providedTriggerElement === void 0 ? void 0 : providedTriggerElement.parentNode) === null || _a === void 0 ? void 0 : _a.replaceChild(widgetElement_1, providedTriggerElement);
|
|
91
|
+
widgetElement_1.style.display =
|
|
92
|
+
(providedTriggerElement === null || providedTriggerElement === void 0 ? void 0 : providedTriggerElement.style.display) || 'block';
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
(_b = providedTriggerElement === null || providedTriggerElement === void 0 ? void 0 : providedTriggerElement.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(widgetElement_1, providedTriggerElement);
|
|
97
|
+
}
|
|
98
|
+
output.cachedOriginals.widgetDOMElement = providedTriggerElement;
|
|
99
|
+
output.cachedOriginals.triggerDOMElement = undefined;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
output.widgetDOMElement = document.body.appendChild(widgetElement_1);
|
|
103
|
+
output.triggerDOMElement = providedTriggerElement;
|
|
104
|
+
}
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
case ProvidedElements.None: {
|
|
108
|
+
var widgetElement = document.body.appendChild(document.createElement('div'));
|
|
109
|
+
output.widgetDOMElement = widgetElement;
|
|
110
|
+
if (triggerType !== TriggerType.Inline) {
|
|
111
|
+
var triggerElement = document.body.appendChild(document.createElement('a'));
|
|
112
|
+
if (triggerType === TriggerType.Link) {
|
|
113
|
+
triggerElement.innerText = name;
|
|
114
|
+
}
|
|
115
|
+
output.triggerDOMElement = triggerElement;
|
|
116
|
+
}
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return output;
|
|
121
|
+
};
|
|
122
|
+
exports.prepareDOMElements = prepareDOMElements;
|
package/lib/ui/render.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
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 react_1 = __importDefault(require("react"));
|
|
7
|
+
var react_dom_1 = require("react-dom");
|
|
8
|
+
var wrapper_1 = __importDefault(require("./wrapper"));
|
|
9
|
+
exports.default = (function (container, element) {
|
|
10
|
+
return (0, react_dom_1.render)(react_1.default.createElement(wrapper_1.default, { container: container }), element);
|
|
11
|
+
});
|