@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.
Files changed (91) hide show
  1. package/LICENSE.txt +6 -0
  2. package/README.md +3 -0
  3. package/lib/component-platform-factory.d.ts +13 -0
  4. package/lib/component-platform-factory.js +105 -0
  5. package/lib/index.d.ts +4 -0
  6. package/lib/index.js +16 -0
  7. package/lib/services.d.ts +7 -0
  8. package/lib/services.js +99 -0
  9. package/lib/site-provider.d.ts +5 -0
  10. package/lib/site-provider.js +18 -0
  11. package/lib/ui/animated-view.d.ts +6 -0
  12. package/lib/ui/animated-view.js +142 -0
  13. package/lib/ui/component.d.ts +18 -0
  14. package/lib/ui/component.js +179 -0
  15. package/lib/ui/detached-component.d.ts +7 -0
  16. package/lib/ui/detached-component.js +73 -0
  17. package/lib/ui/determine-slide-direction.d.ts +26 -0
  18. package/lib/ui/determine-slide-direction.js +51 -0
  19. package/lib/ui/html-element-handlers.d.ts +18 -0
  20. package/lib/ui/html-element-handlers.js +128 -0
  21. package/lib/ui/index.d.ts +6 -0
  22. package/lib/ui/index.js +19 -0
  23. package/lib/ui/not-found.d.ts +6 -0
  24. package/lib/ui/not-found.js +83 -0
  25. package/lib/ui/prepare-dom.d.ts +20 -0
  26. package/lib/ui/prepare-dom.js +122 -0
  27. package/lib/ui/render.d.ts +3 -0
  28. package/lib/ui/render.js +11 -0
  29. package/lib/ui/resolvable-component.d.ts +7 -0
  30. package/lib/ui/resolvable-component.js +87 -0
  31. package/lib/ui/switch.d.ts +11 -0
  32. package/lib/ui/switch.js +58 -0
  33. package/lib/ui/unmount.d.ts +2 -0
  34. package/lib/ui/unmount.js +4 -0
  35. package/lib/ui/use-component-node-properties.d.ts +3 -0
  36. package/lib/ui/use-component-node-properties.js +44 -0
  37. package/lib/ui/use-router.d.ts +4 -0
  38. package/lib/ui/use-router.js +32 -0
  39. package/lib/ui/view-outlet.d.ts +32 -0
  40. package/lib/ui/view-outlet.js +151 -0
  41. package/lib/ui/view.d.ts +6 -0
  42. package/lib/ui/view.js +75 -0
  43. package/lib/ui/wrapper.d.ts +7 -0
  44. package/lib/ui/wrapper.js +108 -0
  45. package/lib/widget.d.ts +54 -0
  46. package/lib/widget.js +554 -0
  47. package/lib-esm/component-platform-factory.d.ts +13 -0
  48. package/lib-esm/component-platform-factory.js +101 -0
  49. package/lib-esm/index.d.ts +4 -0
  50. package/lib-esm/index.js +4 -0
  51. package/lib-esm/services.d.ts +7 -0
  52. package/lib-esm/services.js +67 -0
  53. package/lib-esm/site-provider.d.ts +5 -0
  54. package/lib-esm/site-provider.js +14 -0
  55. package/lib-esm/ui/animated-view.d.ts +6 -0
  56. package/lib-esm/ui/animated-view.js +114 -0
  57. package/lib-esm/ui/component.d.ts +18 -0
  58. package/lib-esm/ui/component.js +150 -0
  59. package/lib-esm/ui/detached-component.d.ts +7 -0
  60. package/lib-esm/ui/detached-component.js +45 -0
  61. package/lib-esm/ui/determine-slide-direction.d.ts +26 -0
  62. package/lib-esm/ui/determine-slide-direction.js +46 -0
  63. package/lib-esm/ui/html-element-handlers.d.ts +18 -0
  64. package/lib-esm/ui/html-element-handlers.js +120 -0
  65. package/lib-esm/ui/index.d.ts +6 -0
  66. package/lib-esm/ui/index.js +6 -0
  67. package/lib-esm/ui/not-found.d.ts +6 -0
  68. package/lib-esm/ui/not-found.js +58 -0
  69. package/lib-esm/ui/prepare-dom.d.ts +20 -0
  70. package/lib-esm/ui/prepare-dom.js +116 -0
  71. package/lib-esm/ui/render.d.ts +3 -0
  72. package/lib-esm/ui/render.js +6 -0
  73. package/lib-esm/ui/resolvable-component.d.ts +7 -0
  74. package/lib-esm/ui/resolvable-component.js +62 -0
  75. package/lib-esm/ui/switch.d.ts +11 -0
  76. package/lib-esm/ui/switch.js +53 -0
  77. package/lib-esm/ui/unmount.d.ts +2 -0
  78. package/lib-esm/ui/unmount.js +2 -0
  79. package/lib-esm/ui/use-component-node-properties.d.ts +3 -0
  80. package/lib-esm/ui/use-component-node-properties.js +42 -0
  81. package/lib-esm/ui/use-router.d.ts +4 -0
  82. package/lib-esm/ui/use-router.js +30 -0
  83. package/lib-esm/ui/view-outlet.d.ts +32 -0
  84. package/lib-esm/ui/view-outlet.js +126 -0
  85. package/lib-esm/ui/view.d.ts +6 -0
  86. package/lib-esm/ui/view.js +70 -0
  87. package/lib-esm/ui/wrapper.d.ts +7 -0
  88. package/lib-esm/ui/wrapper.js +80 -0
  89. package/lib-esm/widget.d.ts +54 -0
  90. package/lib-esm/widget.js +551 -0
  91. 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';
@@ -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,6 @@
1
+ import React from 'react';
2
+ declare type Props = {
3
+ showSearch?: boolean;
4
+ };
5
+ declare const NotFound: React.FC<Props>;
6
+ export default NotFound;
@@ -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;
@@ -0,0 +1,3 @@
1
+ import { Container } from '@webprovisions/platform';
2
+ declare const _default: (container: Container, element: HTMLElement) => void;
3
+ export default _default;
@@ -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
+ });
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ declare type Props = {
3
+ role?: string;
4
+ className?: string;
5
+ };
6
+ declare const ResolvableComponent: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLElement>>;
7
+ export default ResolvableComponent;