@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,87 @@
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 __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ var desc = Object.getOwnPropertyDescriptor(m, k);
20
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
+ desc = { enumerable: true, get: function() { return m[k]; } };
22
+ }
23
+ Object.defineProperty(o, k2, desc);
24
+ }) : (function(o, m, k, k2) {
25
+ if (k2 === undefined) k2 = k;
26
+ o[k2] = m[k];
27
+ }));
28
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
30
+ }) : function(o, v) {
31
+ o["default"] = v;
32
+ });
33
+ var __importStar = (this && this.__importStar) || function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ var __rest = (this && this.__rest) || function (s, e) {
41
+ var t = {};
42
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
43
+ t[p] = s[p];
44
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
45
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
46
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
47
+ t[p[i]] = s[p[i]];
48
+ }
49
+ return t;
50
+ };
51
+ Object.defineProperty(exports, "__esModule", { value: true });
52
+ var widget_ui_1 = require("@telia-ace/widget-ui");
53
+ var widget_utilities_1 = require("@telia-ace/widget-utilities");
54
+ var react_1 = __importStar(require("react"));
55
+ var styled_components_1 = __importStar(require("styled-components"));
56
+ var component_1 = require("./component");
57
+ var NonResolvedComponentWrapper = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n text-align: center;\n ", "\n ", "\n ", "\n"], ["\n text-align: center;\n ", "\n ", "\n ", "\n"])), function (p) {
58
+ var _a, _b, _c;
59
+ return typeof ((_a = p.theme.colors) === null || _a === void 0 ? void 0 : _a.warning) !== 'undefined' && (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n color: ", ";\n border: 2px dashed ", ";\n "], ["\n color: ", ";\n border: 2px dashed ", ";\n "])), (_b = p.theme.colors) === null || _b === void 0 ? void 0 : _b.warning, (_c = p.theme.colors) === null || _c === void 0 ? void 0 : _c.warning);
60
+ }, function (p) {
61
+ return typeof p.theme.borderRadius !== 'undefined' && "border-radius: ".concat(p.theme.borderRadius, ";");
62
+ }, component_1.styling);
63
+ var ResolvableComponent = (0, react_1.forwardRef)(function (_a, ref) {
64
+ var _b = _a.className, className = _b === void 0 ? '' : _b, children = _a.children, other = __rest(_a, ["className", "children"]);
65
+ var ResolvedComponent = (0, widget_ui_1.useComponent)();
66
+ var _c = (0, widget_ui_1.useComponentDescriptor)(), name = _c.name, type = _c.type, id = _c.id;
67
+ var StyledResolvableComponent = (0, react_1.useMemo)(function () {
68
+ if (ResolvedComponent) {
69
+ return (0, styled_components_1.default)(ResolvedComponent)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n ", "\n ", "\n "], ["\n ", "\n ", "\n "])), component_1.styling, widget_ui_1.filterCssPropsStyle);
70
+ }
71
+ return null;
72
+ }, [ResolvedComponent]);
73
+ if (typeof ResolvedComponent === 'undefined') {
74
+ return null;
75
+ }
76
+ if (ResolvedComponent === null || StyledResolvableComponent === null) {
77
+ if (process.env.NODE_ENV !== 'production') {
78
+ return (react_1.default.createElement(NonResolvedComponentWrapper, __assign({}, other, { title: "type: ".concat(type, ", definition-id: ").concat(name, ", instance-id: ").concat(id), className: (0, widget_utilities_1.appendClassNames)(className, 'humany-non-resolved-component') }),
79
+ react_1.default.createElement(widget_ui_1.Typography, { variant: "h5" }, "Non Resolved Component Type")));
80
+ }
81
+ return null;
82
+ }
83
+ return (react_1.default.createElement(react_1.Suspense, { fallback: null },
84
+ react_1.default.createElement(StyledResolvableComponent, __assign({ ref: ref }, other, { className: (0, widget_utilities_1.appendClassNames)(className, 'humany-component', "humany-component-".concat(name)) }), children)));
85
+ });
86
+ exports.default = ResolvableComponent;
87
+ var templateObject_1, templateObject_2, templateObject_3;
@@ -0,0 +1,11 @@
1
+ import { ViewDefinition } from '@telia-ace/widget-core';
2
+ import React from 'react';
3
+ declare type Props = {
4
+ location?: any;
5
+ views: {
6
+ [key: string]: ViewDefinition;
7
+ };
8
+ render: (viewName: string) => JSX.Element | null;
9
+ };
10
+ declare const Switch: React.FC<Props>;
11
+ export default Switch;
@@ -0,0 +1,58 @@
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 __read = (this && this.__read) || function (o, n) {
14
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
15
+ if (!m) return o;
16
+ var i = m.call(o), r, ar = [], e;
17
+ try {
18
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
19
+ }
20
+ catch (error) { e = { error: error }; }
21
+ finally {
22
+ try {
23
+ if (r && !r.done && (m = i["return"])) m.call(i);
24
+ }
25
+ finally { if (e) throw e.error; }
26
+ }
27
+ return ar;
28
+ };
29
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
30
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
31
+ if (ar || !(i in from)) {
32
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
33
+ ar[i] = from[i];
34
+ }
35
+ }
36
+ return to.concat(ar || Array.prototype.slice.call(from));
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ var react_1 = __importDefault(require("react"));
43
+ var react_router_1 = require("react-router");
44
+ var Switch = function (_a) {
45
+ var views = _a.views, location = _a.location, render = _a.render;
46
+ return (react_1.default.createElement(react_router_1.Switch, { location: location
47
+ ? __assign(__assign({}, location), { pathname: location.pathname.split('?')[0] }) : location }, __spreadArray(__spreadArray([], __read(Object.keys(views).filter(function (key) { return !!views[key].path; })), false), __read(Object.keys(views).filter(function (key) { return !views[key].path; })), false).map(function (name) {
48
+ var path = views[name].path;
49
+ if (!path) {
50
+ return react_1.default.createElement(react_router_1.Route, { key: name, render: function () { return render(name); } });
51
+ }
52
+ if (Array.isArray(path)) {
53
+ return path.map(function (path) { return (react_1.default.createElement(react_router_1.Route, { key: name, exact: true, path: path, render: function () { return render(name); } })); });
54
+ }
55
+ return react_1.default.createElement(react_router_1.Route, { key: name, exact: true, path: path, render: function () { return render(name); } });
56
+ })));
57
+ };
58
+ exports.default = Switch;
@@ -0,0 +1,2 @@
1
+ declare const _default: (element: HTMLElement) => boolean;
2
+ export default _default;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var react_dom_1 = require("react-dom");
4
+ exports.default = (function (element) { return (0, react_dom_1.unmountComponentAtNode)(element); });
@@ -0,0 +1,3 @@
1
+ import { ComponentNodeProperties } from '@telia-ace/widget-core';
2
+ declare const _default: (id: string) => ComponentNodeProperties;
3
+ export default _default;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ var widget_ui_1 = require("@telia-ace/widget-ui");
20
+ var react_1 = require("react");
21
+ exports.default = (function (id) {
22
+ var node = (0, widget_ui_1.useComponentNode)(id);
23
+ var components = (0, widget_ui_1.useComponentPlatform)();
24
+ var _a = __read((0, react_1.useState)({}), 2), properties = _a[0], setProperties = _a[1];
25
+ var isMounted = (0, widget_ui_1.useIsMounted)();
26
+ (0, react_1.useEffect)(function () {
27
+ if (node && isMounted.current) {
28
+ setProperties(node.attributes.properties);
29
+ }
30
+ }, [node, id, isMounted]);
31
+ (0, react_1.useEffect)(function () {
32
+ if (components) {
33
+ var unsubscribe_1 = components.events.subscribe('components:properties-changed', function (event, data) {
34
+ if (node === data.node && isMounted.current) {
35
+ setProperties(data.node.attributes.properties);
36
+ }
37
+ });
38
+ return function () {
39
+ unsubscribe_1();
40
+ };
41
+ }
42
+ }, [components, isMounted, id, node]);
43
+ return properties;
44
+ });
@@ -0,0 +1,4 @@
1
+ import { RoutingService } from '@telia-ace/widget-routing';
2
+ import { Container } from '@webprovisions/platform';
3
+ declare const _default: (container: Container) => RoutingService | null;
4
+ export default _default;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ var widget_ui_1 = require("@telia-ace/widget-ui");
20
+ var react_1 = require("react");
21
+ exports.default = (function (container) {
22
+ var _a = __read((0, react_1.useState)(null), 2), router = _a[0], setRouter = _a[1];
23
+ var isMounted = (0, widget_ui_1.useIsMounted)();
24
+ (0, react_1.useEffect)(function () {
25
+ container.getAsync('router').then(function (router) {
26
+ if (isMounted.current) {
27
+ setRouter(router);
28
+ }
29
+ });
30
+ }, [container, isMounted]);
31
+ return router;
32
+ });
@@ -0,0 +1,32 @@
1
+ import { Symbol } from '@telia-ace/widget-ui';
2
+ import { Container } from '@webprovisions/platform';
3
+ import { TriggerType } from './prepare-dom';
4
+ export declare type BadgeOptions = {
5
+ symbol?: Symbol;
6
+ label?: string;
7
+ ariaLabel?: string;
8
+ openTooltip?: string;
9
+ closedTooltip?: string;
10
+ };
11
+ export declare type ViewOutletOptions = {
12
+ widgetDOMElement: HTMLElement;
13
+ triggerDOMElement?: HTMLElement;
14
+ triggerOptions?: BadgeOptions | boolean;
15
+ triggerType: TriggerType;
16
+ cachedOriginals: {
17
+ widgetDOMElement?: Node;
18
+ triggerDOMElement?: Node;
19
+ };
20
+ };
21
+ export declare class ViewOutlet {
22
+ options: ViewOutletOptions;
23
+ container: Container;
24
+ private unsubscribe;
25
+ constructor(container: Container, options: ViewOutletOptions);
26
+ /**
27
+ * Renders the view outlet to the DOM.
28
+ */
29
+ render(): Promise<void>;
30
+ renderBadge(options: BadgeOptions): void;
31
+ dispose(): Promise<void>;
32
+ }
@@ -0,0 +1,151 @@
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 __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
42
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
43
+ if (ar || !(i in from)) {
44
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
45
+ ar[i] = from[i];
46
+ }
47
+ }
48
+ return to.concat(ar || Array.prototype.slice.call(from));
49
+ };
50
+ Object.defineProperty(exports, "__esModule", { value: true });
51
+ exports.ViewOutlet = void 0;
52
+ var widget_services_1 = require("@telia-ace/widget-services");
53
+ var widget_utilities_1 = require("@telia-ace/widget-utilities");
54
+ var html_element_handlers_1 = require("./html-element-handlers");
55
+ var prepare_dom_1 = require("./prepare-dom");
56
+ var MODALS_STORAGE_KEY = 'modals';
57
+ var ViewOutlet = /** @class */ (function () {
58
+ function ViewOutlet(container, options) {
59
+ this.options = options;
60
+ this.unsubscribe = [];
61
+ this.container = container.createChild(this);
62
+ this.container.register('widgetDOMElement', this.options.widgetDOMElement);
63
+ this.container.register('triggerDOMElement', this.options.triggerDOMElement);
64
+ var widget = this.container.get('$widget');
65
+ this.options.widgetDOMElement.classList.add('humany-widget');
66
+ this.options.widgetDOMElement.classList.add("humany_".concat(widget.name));
67
+ var widgetDOMElements = container.get('widgetDOMElements') || [];
68
+ container.register('widgetDOMElements', __spreadArray(__spreadArray([], __read(widgetDOMElements), false), [
69
+ this.options.widgetDOMElement,
70
+ ], false));
71
+ }
72
+ /**
73
+ * Renders the view outlet to the DOM.
74
+ */
75
+ ViewOutlet.prototype.render = function () {
76
+ var _this = this;
77
+ var _a = this.options, widgetDOMElement = _a.widgetDOMElement, triggerDOMElement = _a.triggerDOMElement;
78
+ var widget = this.container.get('$widget');
79
+ if (widgetDOMElement.getAttribute('data-rendered') === 'true') {
80
+ return Promise.resolve();
81
+ }
82
+ if (triggerDOMElement && this.options.triggerType === prepare_dom_1.TriggerType.Badge) {
83
+ (0, html_element_handlers_1.setLoading)(triggerDOMElement);
84
+ }
85
+ return Promise.resolve().then(function () { return __importStar(require('./render')); }).then(function (module) { return module.default(_this.container, widgetDOMElement); })
86
+ .then(function () {
87
+ widgetDOMElement.setAttribute('data-rendered', 'true');
88
+ if (triggerDOMElement && _this.options.triggerType === prepare_dom_1.TriggerType.Badge) {
89
+ var tooltip = _this.options.triggerOptions.openTooltip;
90
+ (0, html_element_handlers_1.setActive)(triggerDOMElement, tooltip);
91
+ }
92
+ (0, widget_utilities_1.notifyDataLoaded)(_this.container, widgetDOMElement);
93
+ var widgets = _this.container.get('$environment').widgets.all();
94
+ (0, widget_services_1.readStorage)(_this.container, MODALS_STORAGE_KEY, widget_services_1.StorageMedium.Session).then(function (modals) {
95
+ if (modals) {
96
+ modals.forEach(function (modal) {
97
+ if (widgets.find(function (w) { return w.name === modal.name && w.state === 'activated'; })) {
98
+ widget.events.dispatch('widget:modal-opened', modal);
99
+ }
100
+ });
101
+ }
102
+ });
103
+ });
104
+ };
105
+ ViewOutlet.prototype.renderBadge = function (options) {
106
+ var triggerDOMElement = this.options.triggerDOMElement;
107
+ if (!triggerDOMElement) {
108
+ return;
109
+ }
110
+ if (!triggerDOMElement.getAttribute('role')) {
111
+ triggerDOMElement.setAttribute('role', 'button');
112
+ }
113
+ var name = this.container.get('$widget').name;
114
+ var label = options.label, symbol = options.symbol, ariaLabel = options.ariaLabel, closedTooltip = options.closedTooltip, openTooltip = options.openTooltip;
115
+ var triggerOptions = { closedTooltip: closedTooltip, openTooltip: openTooltip };
116
+ this.options.triggerOptions = triggerOptions;
117
+ var removeTriggerListeners = (0, html_element_handlers_1.createTriggerElement)(triggerDOMElement, {
118
+ label: label,
119
+ symbol: symbol,
120
+ ariaLabel: ariaLabel,
121
+ widgetName: name,
122
+ tooltip: closedTooltip,
123
+ });
124
+ this.unsubscribe.push(removeTriggerListeners);
125
+ };
126
+ ViewOutlet.prototype.dispose = function () {
127
+ var _this = this;
128
+ return Promise.resolve().then(function () { return __importStar(require('./unmount')); }).then(function (module) {
129
+ var _a, _b, _c, _d;
130
+ var _e = _this.options, triggerDOMElement = _e.triggerDOMElement, widgetDOMElement = _e.widgetDOMElement;
131
+ module.default(widgetDOMElement);
132
+ if (_this.options.cachedOriginals.widgetDOMElement) {
133
+ if (widgetDOMElement) {
134
+ (_a = widgetDOMElement.parentNode) === null || _a === void 0 ? void 0 : _a.replaceChild(_this.options.cachedOriginals.widgetDOMElement, widgetDOMElement);
135
+ }
136
+ }
137
+ if (_this.options.cachedOriginals.triggerDOMElement) {
138
+ if (triggerDOMElement) {
139
+ (_b = triggerDOMElement.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(_this.options.cachedOriginals.triggerDOMElement, triggerDOMElement);
140
+ }
141
+ }
142
+ _this.unsubscribe.forEach(function (unsubscribe) {
143
+ unsubscribe();
144
+ });
145
+ (_c = widgetDOMElement.parentNode) === null || _c === void 0 ? void 0 : _c.removeChild(widgetDOMElement);
146
+ (_d = triggerDOMElement === null || triggerDOMElement === void 0 ? void 0 : triggerDOMElement.parentNode) === null || _d === void 0 ? void 0 : _d.removeChild(triggerDOMElement);
147
+ });
148
+ };
149
+ return ViewOutlet;
150
+ }());
151
+ exports.ViewOutlet = ViewOutlet;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ declare type Props = {
3
+ className?: string;
4
+ };
5
+ declare const View: React.FC<Props>;
6
+ export default View;
package/lib/ui/view.js ADDED
@@ -0,0 +1,75 @@
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 __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __rest = (this && this.__rest) || function (s, e) {
18
+ var t = {};
19
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
20
+ t[p] = s[p];
21
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
22
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
23
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
24
+ t[p[i]] = s[p[i]];
25
+ }
26
+ return t;
27
+ };
28
+ var __read = (this && this.__read) || function (o, n) {
29
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
30
+ if (!m) return o;
31
+ var i = m.call(o), r, ar = [], e;
32
+ try {
33
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
34
+ }
35
+ catch (error) { e = { error: error }; }
36
+ finally {
37
+ try {
38
+ if (r && !r.done && (m = i["return"])) m.call(i);
39
+ }
40
+ finally { if (e) throw e.error; }
41
+ }
42
+ return ar;
43
+ };
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ var widget_ui_1 = require("@telia-ace/widget-ui");
49
+ var widget_utilities_1 = require("@telia-ace/widget-utilities");
50
+ var react_1 = __importDefault(require("react"));
51
+ var styled_components_1 = __importDefault(require("styled-components"));
52
+ var component_1 = __importDefault(require("./component"));
53
+ var switch_1 = __importDefault(require("./switch"));
54
+ var StyledView = (0, styled_components_1.default)(widget_ui_1.Grid)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n"], ["\n ", "\n"])), function (p) { return !!p.scrollableCss && p.scrollableCss; });
55
+ var View = function (_a) {
56
+ var _b = _a.className, className = _b === void 0 ? '' : _b, other = __rest(_a, ["className"]);
57
+ var properties = (0, widget_ui_1.useProperties)();
58
+ var context = (0, widget_ui_1.useContext)();
59
+ var container = (0, widget_ui_1.useContainer)();
60
+ var node = (0, widget_ui_1.useComponentNode)();
61
+ var views = container.get('$settings').views;
62
+ var _c = context.gap, gap = _c === void 0 ? '0' : _c;
63
+ var _d = properties.columns, columns = _d === void 0 ? 1 : _d, _e = properties.animation, animation = _e === void 0 ? 'none' : _e, _f = properties.scrollable, scrollable = _f === void 0 ? false : _f, areaProperties = __rest(properties, ["columns", "animation", "scrollable"]);
64
+ var _g = __read((0, widget_ui_1.useScroll)(scrollable), 2), scrollableCss = _g[0], elem = _g[1];
65
+ if (!node) {
66
+ return null;
67
+ }
68
+ return (react_1.default.createElement(StyledView, __assign({}, other, areaProperties, { scrollableCss: scrollableCss, ref: elem, columns: columns, gap: gap, className: (0, widget_utilities_1.appendClassNames)(className, 'humany-view') }),
69
+ react_1.default.createElement(switch_1.default, { views: views, render: function (name) {
70
+ var childNode = node.getChildren(name)[0];
71
+ return react_1.default.createElement(component_1.default, { id: childNode.id, node: childNode, branch: "default" });
72
+ } })));
73
+ };
74
+ exports.default = View;
75
+ var templateObject_1;
@@ -0,0 +1,7 @@
1
+ import { Container } from '@webprovisions/platform';
2
+ import React from 'react';
3
+ declare type Props = {
4
+ container: Container;
5
+ };
6
+ declare const Wrapper: React.SFC<Props>;
7
+ export default Wrapper;
@@ -0,0 +1,108 @@
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 widget_utilities_1 = require("@telia-ace/widget-utilities");
47
+ var react_1 = __importStar(require("react"));
48
+ var react_router_dom_1 = require("react-router-dom");
49
+ var component_1 = __importDefault(require("./component"));
50
+ var use_router_1 = __importDefault(require("./use-router"));
51
+ var keyNavigationKeys = ['Tab', 'ArrowDown', 'ArrowUp', 'ArrowRight', 'ArrowLeft'];
52
+ var Wrapper = function (_a) {
53
+ var container = _a.container;
54
+ var components = (0, widget_ui_1.useComponentPlatform)(container);
55
+ var router = (0, use_router_1.default)(container);
56
+ var env = container.get('$environment');
57
+ var _b = __read((0, react_1.useState)((env === null || env === void 0 ? void 0 : env.container.get('isTabbing')) || false), 2), isTabbing = _b[0], setIsTabbing = _b[1];
58
+ var _c = __read((0, react_1.useState)(null), 2), entry = _c[0], setEntry = _c[1];
59
+ (0, react_1.useEffect)(function () {
60
+ var keydown = function (event) {
61
+ if (keyNavigationKeys.indexOf(event.key) > -1) {
62
+ if (!isTabbing) {
63
+ env === null || env === void 0 ? void 0 : env.container.register('isTabbing', true);
64
+ }
65
+ setIsTabbing(true);
66
+ }
67
+ };
68
+ var click = function (event) {
69
+ if (event.screenX === 0 && event.screenY === 0) {
70
+ return;
71
+ }
72
+ if (isTabbing) {
73
+ env === null || env === void 0 ? void 0 : env.container.register('isTabbing', false);
74
+ }
75
+ setIsTabbing(false);
76
+ };
77
+ window.addEventListener('keydown', keydown);
78
+ window.addEventListener('click', click);
79
+ return function () {
80
+ window.removeEventListener('keydown', keydown);
81
+ window.removeEventListener('click', click);
82
+ };
83
+ }, []);
84
+ (0, react_1.useEffect)(function () {
85
+ if (components) {
86
+ setEntry(components.nodes.root.children.default[0].id || null);
87
+ var unsubscribe = components.events.subscribe('components:root-children-changed', function (event, _a) {
88
+ var node = _a.node;
89
+ if (node.parent && node.parent.type === 'root') {
90
+ var entry_1 = node.parent.children.default[0].id;
91
+ setEntry(entry_1);
92
+ }
93
+ });
94
+ return unsubscribe;
95
+ }
96
+ }, [components]);
97
+ if (!router || !router.history || !components) {
98
+ return null;
99
+ }
100
+ if (!entry) {
101
+ return null;
102
+ }
103
+ return (react_1.default.createElement(react_router_dom_1.Router, { history: router.history },
104
+ react_1.default.createElement(widget_ui_1.ContainerContext.Provider, { value: container },
105
+ react_1.default.createElement(widget_ui_1.RoutingContext.Provider, { value: router },
106
+ react_1.default.createElement(component_1.default, { className: (0, widget_utilities_1.appendClassNames)([isTabbing, 'humany-is-tabbing']), isTabbing: isTabbing, id: entry, branch: "default" })))));
107
+ };
108
+ exports.default = Wrapper;