@telia-ace/widget-components-widget-header 1.0.24-experimental.2 → 1.0.24-experimental.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/avatar.d.ts CHANGED
@@ -1,7 +1 @@
1
- import React from 'react';
2
- import { ActionNode } from './widget-header-component';
3
- type Props = {
4
- node: ActionNode;
5
- };
6
- declare const Avatar: React.FC<Props>;
7
- export default Avatar;
1
+ export declare const test: {};
package/dist/back.d.ts CHANGED
@@ -1,7 +1 @@
1
- import React from 'react';
2
- import { ActionNode } from './widget-header-component';
3
- type Props = {
4
- node: ActionNode;
5
- };
6
- declare const Back: React.FC<Props>;
7
- export default Back;
1
+ export declare const test: {};
package/dist/close.d.ts CHANGED
@@ -1,7 +1 @@
1
- import React from 'react';
2
- import { ActionNode } from './widget-header-component';
3
- type Props = {
4
- node: ActionNode;
5
- };
6
- declare const Close: React.FC<Props>;
7
- export default Close;
1
+ export declare const test: {};
package/dist/index.js CHANGED
@@ -1,8 +1,10 @@
1
- import { W as i } from "./index.74fb7b76.js";
2
- import "@telia-ace/widget-core";
3
- import "@telia-ace/widget-ui";
4
- import "@telia-ace/widget-utilities";
1
+ import { createWebComponent as t } from "@telia-ace/widget-ui";
2
+ const o = (e) => t(
3
+ e,
4
+ "widget-header",
5
+ import("./widget-header-wrapper.c1e324d2.js")
6
+ ), n = o;
5
7
  export {
6
- i as default
8
+ n as default
7
9
  };
8
10
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/widget-header-component.ts"],"sourcesContent":["// import { createEventSubscriber } from '@telia-ace/widget-core';\n// import { RoutingService } from '@telia-ace/widget-routing';\n// import { createReactComponent } from '@telia-ace/widget-ui';\n// import { Container } from '@webprovisions/platform';\n// import { isOnInitialRoute } from './utils';\n\n// export type Symbol = {\n// type: 'Uri' | 'Svg' | 'FontAwesome' | 'Text' | string;\n// content: string;\n// };\n\n// export type ActionNode = {\n// type: string;\n// label?: string;\n// position?: 'right' | 'left';\n// symbol?: Symbol;\n// size: string;\n// padding: string;\n// tooltip?: string;\n// order?: number;\n// show?: boolean;\n// };\n\n// export type WidgetHeaderComponentProps = {\n// header: string;\n// tagline: string;\n// textAlign?: string;\n// actions?: { [key: string]: ActionNode };\n// tooltip?: string;\n// route?: string;\n// };\n\n// const WidgetHeaderComponent = (container: Container) => {\n// return createReactComponent(\n// container,\n// 'widget-header',\n// import('./widget-header'),\n// (component) => {\n// const { events } = container.get('$widget');\n// const [subscribe, unsubscribe] = createEventSubscriber(events);\n\n// const { actions = {} } = component.properties<WidgetHeaderComponentProps>();\n\n// component.actions.create('close', (data, options) => {\n// if (options.preventDefault) {\n// return;\n// }\n\n// const widget = container.get('$widget');\n// return widget.invoke('close');\n// });\n// component.actions.create('back', (data, options) => {\n// if (options.preventDefault) {\n// return;\n// }\n\n// return container.getAsync('router').then((router: RoutingService) => {\n// router.goBack();\n// });\n// });\n\n// component.properties((properties) => {\n// const { actions = {} } = properties;\n\n// if (!actions.back) {\n// return;\n// }\n\n// Object.keys(actions).forEach((key) => {\n// const node = actions[key];\n// if (key === 'back') {\n// node.show = properties.showBack;\n// }\n// });\n\n// return { actions };\n// });\n\n// component.actions.create('show-back', (showBack) => {\n// component.writeProperties({ showBack });\n// });\n\n// if (actions.back) {\n// const showBack = () =>\n// isOnInitialRoute(container).then((onInitialRoute) =>\n// component.actions.dispatch('show-back', !onInitialRoute)\n// );\n\n// showBack();\n// subscribe('router:changed', showBack);\n// }\n\n// component.actions.create('minimize', (data, options) => {\n// if (options.preventDefault) {\n// return;\n// }\n\n// const widget = container.get('$widget');\n// return widget.invoke('hide');\n// });\n\n// return () => {\n// unsubscribe();\n// };\n// }\n// );\n// };\n\n// export default WidgetHeaderComponent;\n\nimport { createWebComponent } from '@telia-ace/widget-ui';\nimport { Container } from '@webprovisions/platform';\n\nconst WidgetHeaderComponent = (container: Container) => {\n return createWebComponent(\n container,\n 'widget-header',\n // import('./widget-header')\n import('./widget-header-wrapper')\n );\n};\nexport default WidgetHeaderComponent;\n"],"names":["WidgetHeaderComponent","container","createWebComponent","WidgetHeaderComponent$1"],"mappings":";AAiHA,MAAMA,IAAwB,CAACC,MACpBC;AAAA,EACHD;AAAA,EACA;AAAA,EAEA,OAAO;AAAA,GAGfE,IAAeH;"}
@@ -1,7 +1 @@
1
- import React from 'react';
2
- import { ActionNode } from './widget-header-component';
3
- type Props = {
4
- node: ActionNode;
5
- };
6
- declare const Minimize: React.FC<Props>;
7
- export default Minimize;
1
+ export declare const test: {};
package/dist/node.d.ts CHANGED
@@ -1,7 +1 @@
1
- import React from 'react';
2
- import { ActionNode } from './widget-header-component';
3
- type Props = Merge<ActionNode, {
4
- className?: string;
5
- }>;
6
- declare const Node: React.FC<Props>;
7
- export default Node;
1
+ export declare const test: {};
package/dist/utils.d.ts CHANGED
@@ -1,9 +1 @@
1
- import { Container } from '@webprovisions/platform';
2
- import { ActionNode } from './widget-header-component';
3
- export declare const calculateMargin: (leftNodes: ActionNode[], rightNodes: ActionNode[], textAlign: string) => {
4
- [x: string]: string;
5
- };
6
- export declare const createNodes: (actions: {
7
- [key: string]: ActionNode;
8
- }) => [ActionNode[], ActionNode[]];
9
- export declare const isOnInitialRoute: (container: Container) => Promise<boolean>;
1
+ export declare const test: {};
@@ -1,28 +1,3 @@
1
1
  import { Container } from '@webprovisions/platform';
2
- export type Symbol = {
3
- type: 'Uri' | 'Svg' | 'FontAwesome' | 'Text' | string;
4
- content: string;
5
- };
6
- export type ActionNode = {
7
- type: string;
8
- label?: string;
9
- position?: 'right' | 'left';
10
- symbol?: Symbol;
11
- size: string;
12
- padding: string;
13
- tooltip?: string;
14
- order?: number;
15
- show?: boolean;
16
- };
17
- export type WidgetHeaderComponentProps = {
18
- header: string;
19
- tagline: string;
20
- textAlign?: string;
21
- actions?: {
22
- [key: string]: ActionNode;
23
- };
24
- tooltip?: string;
25
- route?: string;
26
- };
27
2
  declare const WidgetHeaderComponent: (container: Container) => Promise<void>;
28
3
  export default WidgetHeaderComponent;
@@ -0,0 +1,115 @@
1
+ import { WidgetComponentMixin as h, NodeConnector as c } from "@telia-ace/widget-ui";
2
+ import { LitElement as y, html as s, nothing as d, css as f } from "lit";
3
+ import { property as r } from "lit/decorators.js";
4
+ import { classMap as m } from "lit/directives/class-map.js";
5
+ import { when as v } from "lit/directives/when.js";
6
+ var _ = Object.defineProperty, x = Object.getOwnPropertyDescriptor, i = (o, n, p, a) => {
7
+ for (var t = a > 1 ? void 0 : a ? x(n, p) : n, l = o.length - 1, g; l >= 0; l--)
8
+ (g = o[l]) && (t = (a ? g(n, p, t) : g(t)) || t);
9
+ return a && t && _(n, p, t), t;
10
+ };
11
+ class e extends y {
12
+ constructor() {
13
+ super(), this._header = "", this._tagline = "", this._role = "", this._textAlign = "center";
14
+ }
15
+ render() {
16
+ return s` <div class="container">
17
+ <div
18
+ class=${m({
19
+ "main-node": !0,
20
+ center: this._textAlign === "center",
21
+ left: this._textAlign === "left",
22
+ right: this._textAlign === "right"
23
+ })}
24
+ >
25
+ ${v(
26
+ this._route,
27
+ () => s`<div>Routes not supported yet: TODO:</div>`,
28
+ () => s`
29
+ <ui-typography variant="h1" class="header" part="header">
30
+ ${this._header}
31
+ </ui-typography>
32
+ `
33
+ )}
34
+ ${this._tagline ? s`<p class="tagline" part="tagline">${this._tagline}</p>` : d}
35
+ </div>
36
+ </div>`;
37
+ }
38
+ }
39
+ e.styles = [
40
+ f`
41
+ ui-typography {
42
+ --typography-font-size: var(--size-huge, 2rem);
43
+ --typography-margin: 0;
44
+ --typography-font-weight: 300;
45
+ --typography-color: var(--colors-text);
46
+ }
47
+
48
+ h1 {
49
+ font-size: var(--fonts-huge);
50
+ margin: 0;
51
+ font-weight: 300;
52
+ color: var(--colors-text);
53
+ }
54
+
55
+ p {
56
+ color: var(--colors-text);
57
+ margin: 0;
58
+ }
59
+
60
+ svg line,
61
+ svg path,
62
+ svg circle {
63
+ stroke: var(--colors-text);
64
+ }
65
+
66
+ .container {
67
+ display: flex;
68
+ flex-direction: row;
69
+ align-items: center;
70
+ }
71
+
72
+ .tagline {
73
+ font-size: var(--fonts-normal);
74
+ font-weight: 300;
75
+ }
76
+
77
+ .main-node {
78
+ flex: 1;
79
+ }
80
+
81
+ .main-node.center {
82
+ text-align: center;
83
+ }
84
+ .main-node.left {
85
+ text-align: left;
86
+ }
87
+ .main-node.right {
88
+ text-align: right;
89
+ }
90
+ `
91
+ ];
92
+ i([
93
+ r({ type: String })
94
+ ], e.prototype, "_header", 2);
95
+ i([
96
+ r({ type: String })
97
+ ], e.prototype, "_tagline", 2);
98
+ i([
99
+ r({ type: String })
100
+ ], e.prototype, "_role", 2);
101
+ i([
102
+ r({ type: String })
103
+ ], e.prototype, "_textAlign", 2);
104
+ i([
105
+ r({ type: String })
106
+ ], e.prototype, "_route", 2);
107
+ class $ extends h(e) {
108
+ constructor() {
109
+ super(), this.connector = new c(this);
110
+ }
111
+ }
112
+ export {
113
+ $ as default
114
+ };
115
+ //# sourceMappingURL=widget-header-wrapper.c1e324d2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-header-wrapper.c1e324d2.js","sources":["../src/widget-header.ts","../src/widget-header-wrapper.ts"],"sourcesContent":["import { css, html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { when } from 'lit/directives/when.js';\n\nexport default class WidgetHeader extends LitElement {\n // ${(p) => TODO: missing\n // headingElement(p)(\n // 'h1',\n // css`\n // font-size: ${p.theme.fonts?.huge};\n // margin: 0;\n // font-weight: 300;\n // color: ${p.theme.colors?.text};\n // `\n // )}\n // const MainNode = styled.div<{\n // textAlign: string;\n // margin: { left?: string; right?: string };\n // }>`\n // margin-right: ${(p) => p.margin.right || 0};\n // margin-left: ${(p) => p.margin.left || 0};\n // `;\n\n static styles = [\n css`\n ui-typography {\n --typography-font-size: var(--size-huge, 2rem);\n --typography-margin: 0;\n --typography-font-weight: 300;\n --typography-color: var(--colors-text);\n }\n\n h1 {\n font-size: var(--fonts-huge);\n margin: 0;\n font-weight: 300;\n color: var(--colors-text);\n }\n\n p {\n color: var(--colors-text);\n margin: 0;\n }\n\n svg line,\n svg path,\n svg circle {\n stroke: var(--colors-text);\n }\n\n .container {\n display: flex;\n flex-direction: row;\n align-items: center;\n }\n\n .tagline {\n font-size: var(--fonts-normal);\n font-weight: 300;\n }\n\n .main-node {\n flex: 1;\n }\n\n .main-node.center {\n text-align: center;\n }\n .main-node.left {\n text-align: left;\n }\n .main-node.right {\n text-align: right;\n }\n `,\n ];\n\n @property({ type: String })\n declare _header;\n\n @property({ type: String })\n declare _tagline;\n\n @property({ type: String })\n declare _role;\n\n @property({ type: String })\n declare _textAlign;\n\n @property({ type: String })\n declare _route: string | undefined;\n\n constructor() {\n super();\n this._header = '';\n this._tagline = '';\n this._role = '';\n this._textAlign = 'center';\n }\n\n // render() {\n // return html`<div>WidgetHeader</div>`;\n // }\n\n render() {\n // this.style.setProperty('--width', '2');\n // <style>\n // :host {\n // --width: var(--columns);\n // }\n // </style>\n return html` <div class=\"container\">\n <div\n class=${classMap({\n 'main-node': true,\n center: this._textAlign === 'center',\n left: this._textAlign === 'left',\n right: this._textAlign === 'right',\n })}\n >\n ${when(\n this._route,\n () => html`<div>Routes not supported yet: TODO:</div>`,\n () => html`\n <ui-typography variant=\"h1\" class=\"header\" part=\"header\">\n ${this._header}\n </ui-typography>\n `\n )}\n ${this._tagline\n ? html`<p class=\"tagline\" part=\"tagline\">${this._tagline}</p>`\n : nothing}\n </div>\n </div>`;\n }\n}\n","import { NodeConnector, WidgetComponentMixin } from '@telia-ace/widget-ui';\nimport WidgetHeader from './widget-header';\n\nexport default class WidgetHeaderWrapper extends WidgetComponentMixin(WidgetHeader) {\n connector = new NodeConnector(this);\n\n constructor() {\n super();\n }\n}\n"],"names":["WidgetHeader","LitElement","html","classMap","when","nothing","css","__decorateClass","property","WidgetHeaderWrapper","WidgetComponentMixin","NodeConnector"],"mappings":";;;;;;;;;;AAKA,MAAqBA,UAAqBC,EAAW;AAAA,EAwFjD,cAAc;AACJ,aACN,KAAK,UAAU,IACf,KAAK,WAAW,IAChB,KAAK,QAAQ,IACb,KAAK,aAAa;AAAA,EACtB;AAAA,EAMA,SAAS;AAOE,WAAAC;AAAA;AAAA,wBAESC,EAAS;AAAA,MACb,aAAa;AAAA,MACb,QAAQ,KAAK,eAAe;AAAA,MAC5B,MAAM,KAAK,eAAe;AAAA,MAC1B,OAAO,KAAK,eAAe;AAAA,IAAA,CAC9B;AAAA;AAAA,kBAECC;AAAA,MACE,KAAK;AAAA,MACL,MAAMF;AAAA,MACN,MAAMA;AAAA;AAAA,8BAEI,KAAK;AAAA;AAAA;AAAA,IAAA;AAAA,kBAIjB,KAAK,WACDA,sCAAyC,KAAK,iBAC9CG;AAAA;AAAA;AAAA,EAGlB;AACJ;AAnIqBL,EAmBV,SAAS;AAAA,EACZM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmDJ;AAGQC,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAzETR,EA0ET,WAAA,WAAA,CAAA;AAGAO,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,QAAQ;AAAA,GA5ETR,EA6ET,WAAA,YAAA,CAAA;AAGAO,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,QAAQ;AAAA,GA/ETR,EAgFT,WAAA,SAAA,CAAA;AAGAO,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,QAAQ;AAAA,GAlFTR,EAmFT,WAAA,cAAA,CAAA;AAGAO,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,QAAQ;AAAA,GArFTR,EAsFT,WAAA,UAAA,CAAA;ACxFS,MAAAS,UAA4BC,EAAqBV,CAAY,EAAE;AAAA,EAGhF,cAAc;AACJ,aAHE,KAAA,YAAA,IAAIW,EAAc,IAAI;AAAA,EAIlC;AACJ;"}
@@ -0,0 +1,8 @@
1
+ import { NodeConnector } from '@telia-ace/widget-ui';
2
+ import WidgetHeader from './widget-header';
3
+ declare const WidgetHeaderWrapper_base: import("@telia-ace/widget-ui").WidgetComponentConstructor<import("@telia-ace/widget-ui/dist/mixins/widget-component").WidgetComponentInterface> & typeof WidgetHeader;
4
+ export default class WidgetHeaderWrapper extends WidgetHeaderWrapper_base {
5
+ connector: NodeConnector;
6
+ constructor();
7
+ }
8
+ export {};
@@ -1,7 +1,11 @@
1
- import React from 'react';
2
- type Props = {
3
- className: string;
4
- role?: string;
5
- };
6
- declare const WidgetHeader: React.FC<Props>;
7
- export default WidgetHeader;
1
+ import { LitElement } from 'lit';
2
+ export default class WidgetHeader extends LitElement {
3
+ static styles: import("lit").CSSResult[];
4
+ _header: string;
5
+ _tagline: string;
6
+ _role: string;
7
+ _textAlign: string;
8
+ _route: string | undefined;
9
+ constructor();
10
+ render(): import("lit").TemplateResult<1>;
11
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@telia-ace/widget-components-widget-header",
3
- "version": "1.0.24-experimental.2",
3
+ "version": "1.0.24-experimental.20",
4
4
  "description": "Widget header component for ACE Widgets.",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "Telia Company AB",
@@ -21,24 +21,26 @@
21
21
  },
22
22
  "sideEffects": false,
23
23
  "dependencies": {
24
- "@telia-ace/widget-core": "1.0.21-experimental.2",
25
- "@telia-ace/widget-routing": "1.0.22-experimental.2",
26
- "@telia-ace/widget-ui": "1.0.28-experimental.2",
27
- "@telia-ace/widget-utilities": "1.0.10-experimental.2",
24
+ "@telia-ace/widget-core": "1.0.21-experimental.20",
25
+ "@telia-ace/widget-routing": "1.0.22-experimental.20",
26
+ "@telia-ace/widget-ui": "1.0.28-experimental.20",
27
+ "@telia-ace/widget-utilities": "1.0.10-experimental.20",
28
28
  "@webprovisions/platform": "^1.1.2"
29
29
  },
30
30
  "peerDependencies": {
31
31
  "@emotion/react": "^11.10.5",
32
32
  "@emotion/styled": "^11.10.5",
33
+ "lit": "^2.6.0",
33
34
  "react": "^18.2.0",
34
35
  "react-dom": "^18.2.0"
35
36
  },
36
37
  "devDependencies": {
37
38
  "@emotion/react": "^11.10.5",
38
39
  "@emotion/styled": "^11.10.5",
39
- "@telia-ace/widget-developer-tools": "1.0.16-experimental.2",
40
+ "@telia-ace/widget-developer-tools": "1.0.16-experimental.20",
40
41
  "@types/react": "^18.0.26",
41
42
  "@types/react-dom": "^18.0.10",
43
+ "lit": "^2.6.0",
42
44
  "react": "^18.2.0",
43
45
  "react-dom": "^18.2.0"
44
46
  },
@@ -1,73 +0,0 @@
1
- import { createEventSubscriber as p } from "@telia-ace/widget-core";
2
- import { createReactComponent as f } from "@telia-ace/widget-ui";
3
- import { removeNullAndUndefinedValues as b } from "@telia-ace/widget-utilities";
4
- const v = (s, e, i) => {
5
- if (i !== "center")
6
- return {};
7
- const t = (a) => a.reduce((u, d) => {
8
- const [l] = d.padding.split("px"), [g] = d.size.split("px");
9
- return u + (+g + +l * 2);
10
- }, 0), o = t(s), c = t(e), r = o - c;
11
- return r === 0 ? {} : {
12
- [o > c ? "right" : "left"]: `${Math.abs(r)}px`
13
- };
14
- }, z = (s) => Object.keys(s).reduce(
15
- (e, i) => {
16
- const t = s[i];
17
- if (!t)
18
- return e;
19
- const [o, c] = e, r = t.position === "left" ? o : c;
20
- return s[i].symbol, r.push({
21
- symbol: t.symbol && typeof t.symbol == "string" ? { type: "Uri", content: t.symbol } : t.symbol,
22
- type: i,
23
- padding: t.padding || "10px",
24
- label: t.label,
25
- size: t.size || "64px",
26
- tooltip: t.tooltip,
27
- order: t.order || 0,
28
- show: t.show
29
- }), e;
30
- },
31
- [[], []]
32
- ), h = (s) => s.getAsync("router").then((e) => {
33
- if (!e)
34
- return !0;
35
- const i = e.getInitialRoute(), { name: t, params: o } = e.getRouteData();
36
- return b(o), !((i == null ? void 0 : i.name) !== t || Object.keys(o).length > 0);
37
- }), w = (s) => f(
38
- s,
39
- "widget-header",
40
- import("./widget-header.58e6e7e9.js"),
41
- (e) => {
42
- const { events: i } = s.get("$widget"), [t, o] = p(i), { actions: c = {} } = e.properties();
43
- if (e.actions.create("close", (r, n) => n.preventDefault ? void 0 : s.get("$widget").invoke("close")), e.actions.create("back", (r, n) => {
44
- if (!n.preventDefault)
45
- return s.getAsync("router").then((a) => {
46
- a.goBack();
47
- });
48
- }), e.properties((r) => {
49
- const { actions: n = {} } = r;
50
- if (!!n.back)
51
- return Object.keys(n).forEach((a) => {
52
- const u = n[a];
53
- a === "back" && (u.show = r.showBack);
54
- }), { actions: n };
55
- }), e.actions.create("show-back", (r) => {
56
- e.writeProperties({ showBack: r });
57
- }), c.back) {
58
- const r = () => h(s).then(
59
- (n) => e.actions.dispatch("show-back", !n)
60
- );
61
- r(), t("router:changed", r);
62
- }
63
- return e.actions.create("minimize", (r, n) => n.preventDefault ? void 0 : s.get("$widget").invoke("hide")), () => {
64
- o();
65
- };
66
- }
67
- ), x = w;
68
- export {
69
- x as W,
70
- v as a,
71
- z as c
72
- };
73
- //# sourceMappingURL=index.74fb7b76.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.74fb7b76.js","sources":["../src/utils.ts","../src/widget-header-component.ts"],"sourcesContent":["import { RoutingService } from '@telia-ace/widget-routing';\nimport { removeNullAndUndefinedValues } from '@telia-ace/widget-utilities';\nimport { Container } from '@webprovisions/platform';\nimport { ActionNode, Symbol } from './widget-header-component';\n\nexport const calculateMargin = (\n leftNodes: ActionNode[],\n rightNodes: ActionNode[],\n textAlign: string\n) => {\n if (textAlign !== 'center') {\n return {};\n }\n\n const calculate = (nodes: ActionNode[]) => {\n return nodes.reduce<number>((acc, node) => {\n const [padding] = node.padding.split('px');\n const [size] = node.size.split('px');\n return acc + (+size + +padding * 2);\n }, 0);\n };\n const leftSize = calculate(leftNodes);\n const rightSize = calculate(rightNodes);\n\n const total = leftSize - rightSize;\n\n if (total === 0) {\n return {};\n }\n\n const direction = leftSize > rightSize ? 'right' : 'left';\n return {\n [direction]: `${Math.abs(total)}px`,\n };\n};\n\nexport const createNodes = (actions: { [key: string]: ActionNode }) => {\n return Object.keys(actions).reduce<[ActionNode[], ActionNode[]]>(\n (acc, key) => {\n const node = actions[key];\n if (!node) {\n return acc;\n }\n const [left, right] = acc;\n const arr = node.position === 'left' ? left : right;\n\n let symbol = actions[key].symbol;\n if (symbol && typeof symbol === 'string') {\n symbol = {\n type: 'Uri',\n content: symbol,\n };\n }\n\n arr.push({\n symbol:\n node.symbol && typeof node.symbol === 'string'\n ? { type: 'Uri', content: node.symbol }\n : (node.symbol as Symbol),\n type: key,\n padding: node.padding || '10px',\n label: node.label,\n size: node.size || '64px',\n tooltip: node.tooltip,\n order: node.order || 0,\n show: node.show,\n });\n\n return acc;\n },\n [[], []]\n );\n};\n\nexport const isOnInitialRoute = (container: Container) =>\n container.getAsync('router').then((router: RoutingService) => {\n if (!router) {\n return true;\n }\n const initialRoute = router.getInitialRoute();\n const { name, params } = router.getRouteData();\n\n removeNullAndUndefinedValues(params);\n\n if (initialRoute?.name !== name || Object.keys(params).length > 0) {\n return false;\n }\n\n return true;\n });\n","import { createEventSubscriber } from '@telia-ace/widget-core';\nimport { RoutingService } from '@telia-ace/widget-routing';\nimport { createReactComponent } from '@telia-ace/widget-ui';\nimport { Container } from '@webprovisions/platform';\nimport { isOnInitialRoute } from './utils';\n\nexport type Symbol = {\n type: 'Uri' | 'Svg' | 'FontAwesome' | 'Text' | string;\n content: string;\n};\n\nexport type ActionNode = {\n type: string;\n label?: string;\n position?: 'right' | 'left';\n symbol?: Symbol;\n size: string;\n padding: string;\n tooltip?: string;\n order?: number;\n show?: boolean;\n};\n\nexport type WidgetHeaderComponentProps = {\n header: string;\n tagline: string;\n textAlign?: string;\n actions?: { [key: string]: ActionNode };\n tooltip?: string;\n route?: string;\n};\n\nconst WidgetHeaderComponent = (container: Container) => {\n return createReactComponent(\n container,\n 'widget-header',\n import('./widget-header'),\n (component) => {\n const { events } = container.get('$widget');\n const [subscribe, unsubscribe] = createEventSubscriber(events);\n\n const { actions = {} } = component.properties<WidgetHeaderComponentProps>();\n\n component.actions.create('close', (data, options) => {\n if (options.preventDefault) {\n return;\n }\n\n const widget = container.get('$widget');\n return widget.invoke('close');\n });\n component.actions.create('back', (data, options) => {\n if (options.preventDefault) {\n return;\n }\n\n return container.getAsync('router').then((router: RoutingService) => {\n router.goBack();\n });\n });\n\n component.properties((properties) => {\n const { actions = {} } = properties;\n\n if (!actions.back) {\n return;\n }\n\n Object.keys(actions).forEach((key) => {\n const node = actions[key];\n if (key === 'back') {\n node.show = properties.showBack;\n }\n });\n\n return { actions };\n });\n\n component.actions.create('show-back', (showBack) => {\n component.writeProperties({ showBack });\n });\n\n if (actions.back) {\n const showBack = () =>\n isOnInitialRoute(container).then((onInitialRoute) =>\n component.actions.dispatch('show-back', !onInitialRoute)\n );\n\n showBack();\n subscribe('router:changed', showBack);\n }\n\n component.actions.create('minimize', (data, options) => {\n if (options.preventDefault) {\n return;\n }\n\n const widget = container.get('$widget');\n return widget.invoke('hide');\n });\n\n return () => {\n unsubscribe();\n };\n }\n );\n};\n\nexport default WidgetHeaderComponent;\n"],"names":["calculateMargin","leftNodes","rightNodes","textAlign","calculate","nodes","acc","node","padding","size","leftSize","rightSize","total","createNodes","actions","key","left","right","arr","isOnInitialRoute","container","router","initialRoute","name","params","removeNullAndUndefinedValues","WidgetHeaderComponent","createReactComponent","component","events","subscribe","unsubscribe","createEventSubscriber","data","options","properties","showBack","onInitialRoute","WidgetHeaderComponent$1"],"mappings":"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"}
@@ -1,241 +0,0 @@
1
- var A = Object.defineProperty, B = Object.defineProperties;
2
- var M = Object.getOwnPropertyDescriptors;
3
- var h = Object.getOwnPropertySymbols;
4
- var E = Object.prototype.hasOwnProperty, k = Object.prototype.propertyIsEnumerable;
5
- var z = (e, t, i) => t in e ? A(e, t, { enumerable: !0, configurable: !0, writable: !0, value: i }) : e[t] = i, u = (e, t) => {
6
- for (var i in t || (t = {}))
7
- E.call(t, i) && z(e, i, t[i]);
8
- if (h)
9
- for (var i of h(t))
10
- k.call(t, i) && z(e, i, t[i]);
11
- return e;
12
- }, N = (e, t) => B(e, M(t));
13
- var $ = (e, t) => {
14
- var i = {};
15
- for (var n in e)
16
- E.call(e, n) && t.indexOf(n) < 0 && (i[n] = e[n]);
17
- if (e != null && h)
18
- for (var n of h(e))
19
- t.indexOf(n) < 0 && k.call(e, n) && (i[n] = e[n]);
20
- return i;
21
- };
22
- import { css as x } from "@emotion/react";
23
- import c from "@emotion/styled";
24
- import { SymbolBadge as f, useDispatch as W, TransitionComponent as I, borderTabStyle as R, useProperties as q, Typography as S, headingElement as T, Link as L, linkTabStyle as _ } from "@telia-ace/widget-ui";
25
- import { appendClassNames as D } from "@telia-ace/widget-utilities";
26
- import r from "react";
27
- import { c as H, a as P } from "./index.74fb7b76.js";
28
- import "@telia-ace/widget-core";
29
- const j = ({ node: e }) => {
30
- if (!e.symbol)
31
- return null;
32
- let t;
33
- const i = e.symbol.type === "Svg";
34
- if (e.symbol.type === "Svg") {
35
- const n = parseInt(e.size, 10);
36
- isNaN(n) || (t = n);
37
- }
38
- return /* @__PURE__ */ r.createElement(G, { symbol: e.symbol, svg: i, size: t, backgroundSize: "cover" });
39
- }, F = j, G = c((i) => {
40
- var n = i, { svg: e } = n, t = $(n, ["svg"]);
41
- return /* @__PURE__ */ r.createElement(f, u({}, t));
42
- })`
43
- color: ${(e) => {
44
- var t;
45
- return (t = e.theme.colors) == null ? void 0 : t.text;
46
- }};
47
- ${(e) => !e.svg && x`
48
- border-radius: 50%;
49
- overflow: hidden;
50
- `}
51
- `, J = ({ node: e }) => {
52
- const t = e.symbol || { type: "Svg", content: "back" };
53
- return /* @__PURE__ */ r.createElement(f, { size: 20, symbol: t });
54
- }, K = J, O = ({ node: e }) => {
55
- const t = e.symbol || { type: "Svg", content: "close" }, i = parseInt(e == null ? void 0 : e.size, 10) || 14;
56
- return /* @__PURE__ */ r.createElement(f, { size: i, symbol: t });
57
- }, Q = O, U = ({ node: e }) => {
58
- const t = e.symbol || { type: "Svg", content: "minimize" }, i = parseInt(e == null ? void 0 : e.size, 10) || 20;
59
- return /* @__PURE__ */ r.createElement(f, { size: i, symbol: t });
60
- }, V = U, X = (i) => {
61
- var n = i, { className: e = "" } = n, t = $(n, ["className"]);
62
- const m = W(), { size: g, padding: p, type: o, tooltip: s, show: b = !0 } = t;
63
- return o === "back" ? /* @__PURE__ */ r.createElement(w, { size: g || "64px", padding: p || "10px" }, /* @__PURE__ */ r.createElement(
64
- I,
65
- {
66
- in: b,
67
- timeout: 300,
68
- transitions: {
69
- enter: {
70
- type: "scale",
71
- easing: "cubic-bezier(.08,.84,.74,1.84)"
72
- },
73
- exit: {
74
- type: "scale",
75
- easing: "ease-out"
76
- }
77
- }
78
- },
79
- (y, d) => /* @__PURE__ */ r.createElement(
80
- v,
81
- {
82
- title: s,
83
- "aria-label": s,
84
- animationCss: d,
85
- onClick: () => {
86
- m("back");
87
- }
88
- },
89
- /* @__PURE__ */ r.createElement(K, { node: t })
90
- )
91
- )) : b ? /* @__PURE__ */ r.createElement(
92
- w,
93
- {
94
- size: g || "64px",
95
- padding: p || "10px",
96
- squareRatio: o === "avatar"
97
- },
98
- o === "avatar" && /* @__PURE__ */ r.createElement(F, { node: t }),
99
- o === "close" && /* @__PURE__ */ r.createElement(
100
- v,
101
- {
102
- title: s,
103
- "aria-label": s,
104
- onClick: () => {
105
- m("close");
106
- }
107
- },
108
- /* @__PURE__ */ r.createElement(Q, { node: t })
109
- ),
110
- o === "minimize" && /* @__PURE__ */ r.createElement(
111
- v,
112
- {
113
- title: s,
114
- "aria-label": s,
115
- onClick: () => {
116
- m("minimize");
117
- }
118
- },
119
- /* @__PURE__ */ r.createElement(V, { node: t })
120
- )
121
- ) : null;
122
- }, C = X, w = c.div`
123
- flex: 1;
124
- max-width: ${(e) => e.size};
125
- ${(e) => e.squareRatio && `max-height: ${e.size};`}
126
- text-align: center;
127
- padding: 0 ${(e) => e.padding};
128
- && {
129
- box-sizing: content-box;
130
- }
131
-
132
- svg {
133
- vertical-align: middle;
134
- }
135
-
136
- i {
137
- color: ${(e) => {
138
- var t;
139
- return (t = e.theme.colors) == null ? void 0 : t.text;
140
- }};
141
- font-size: ${(e) => e.size};
142
- min-width: 1em;
143
- min-height: 1em;
144
- display: inline-block;
145
- }
146
- `, v = c.button`
147
- ${(e) => !!e.animationCss && e.animationCss};
148
- background: none;
149
- border: none;
150
- cursor: pointer;
151
- padding: 0;
152
- &:focus-visible {
153
- ${R};
154
- border-color: ${(e) => {
155
- var t, i;
156
- return (i = (t = e.theme.accessibility) == null ? void 0 : t.colors) == null ? void 0 : i.inactiveText;
157
- }};
158
- }
159
- `, me = (i) => {
160
- var n = i, { className: e } = n, t = $(n, ["className"]);
161
- const {
162
- header: m,
163
- tagline: g,
164
- route: p,
165
- tooltip: o = "",
166
- actions: s = {},
167
- textAlign: b = "center"
168
- } = q(), [y, d] = H(s);
169
- return y.sort((a, l) => (a.order || 0) - (l.order || 0)), d.sort((a, l) => (a.order || 0) - (l.order || 0)), /* @__PURE__ */ r.createElement(Y, N(u({}, t), { className: D(e, "humany-widget-header") }), y.map((a, l) => /* @__PURE__ */ r.createElement(C, u({ key: `${a.type}+_${l}` }, a))), /* @__PURE__ */ r.createElement(
170
- ee,
171
- {
172
- textAlign: b,
173
- margin: P(y, d, b)
174
- },
175
- p ? /* @__PURE__ */ r.createElement(te, { routeName: p, title: o, "aria-label": o }, /* @__PURE__ */ r.createElement(S, { variant: "h1" }, m)) : /* @__PURE__ */ r.createElement(S, { variant: "h1" }, m),
176
- g && /* @__PURE__ */ r.createElement(Z, null, g)
177
- ), d.map((a, l) => /* @__PURE__ */ r.createElement(C, u({ key: `${a.type}+_${l}` }, a))));
178
- }, Y = c.div`
179
- display: flex;
180
- flex-direction: row;
181
- align-items: center;
182
-
183
- ${(e) => {
184
- var t, i;
185
- return T(e)(
186
- "h1",
187
- x`
188
- font-size: ${(t = e.theme.fonts) == null ? void 0 : t.huge};
189
- margin: 0;
190
- font-weight: 300;
191
- color: ${(i = e.theme.colors) == null ? void 0 : i.text};
192
- `
193
- );
194
- }}
195
-
196
- p {
197
- color: ${(e) => {
198
- var t;
199
- return (t = e.theme.colors) == null ? void 0 : t.text;
200
- }};
201
- margin: 0;
202
- }
203
-
204
- svg {
205
- line,
206
- path,
207
- circle {
208
- stroke: ${(e) => {
209
- var t;
210
- return (t = e.theme.colors) == null ? void 0 : t.text;
211
- }};
212
- }
213
- }
214
- `, Z = c.p`
215
- font-size: ${(e) => {
216
- var t;
217
- return (t = e.theme.fonts) == null ? void 0 : t.normal;
218
- }};
219
- font-weight: 300;
220
- `, ee = c.div`
221
- flex: 1;
222
- text-align: ${(e) => e.textAlign};
223
-
224
- margin-right: ${(e) => e.margin.right || 0};
225
- margin-left: ${(e) => e.margin.left || 0};
226
- `, te = c(L)`
227
- text-decoration: none;
228
- &:focus-visible {
229
- ${(e) => T(e)(
230
- "h1",
231
- x`
232
- ${_(e)}
233
- display: inline-block;
234
- `
235
- )}
236
- }
237
- `;
238
- export {
239
- me as default
240
- };
241
- //# sourceMappingURL=widget-header.58e6e7e9.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"widget-header.58e6e7e9.js","sources":["../src/avatar.tsx","../src/back.tsx","../src/close.tsx","../src/minimize.tsx","../src/node.tsx","../src/widget-header.tsx"],"sourcesContent":["import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport { SymbolBadge } from '@telia-ace/widget-ui';\nimport React from 'react';\nimport { ActionNode } from './widget-header-component';\n\ntype Props = { node: ActionNode };\nconst Avatar: React.FC<Props> = ({ node }) => {\n if (!node.symbol) {\n return null;\n }\n\n let size;\n const isSvg = node.symbol.type === 'Svg';\n if (node.symbol.type === 'Svg') {\n const sizeNumber = parseInt(node.size, 10);\n\n if (!isNaN(sizeNumber)) {\n size = sizeNumber;\n }\n }\n\n return <Wrapper symbol={node.symbol} svg={isSvg} size={size} backgroundSize=\"cover\" />;\n};\n\nexport default Avatar;\n\nconst Wrapper = styled(({ svg, ...other }: any) => <SymbolBadge {...other} />)`\n color: ${(p) => p.theme.colors?.text};\n ${(p) =>\n !p.svg &&\n css`\n border-radius: 50%;\n overflow: hidden;\n `}\n`;\n","import { SymbolBadge } from '@telia-ace/widget-ui';\nimport React from 'react';\nimport { ActionNode } from './widget-header-component';\n\ntype Props = {\n node: ActionNode;\n};\nconst Back: React.FC<Props> = ({ node }) => {\n const symbol = node.symbol || { type: 'Svg', content: 'back' };\n return <SymbolBadge size={20} symbol={symbol} />;\n};\n\nexport default Back;\n","import { SymbolBadge } from '@telia-ace/widget-ui';\nimport React from 'react';\nimport { ActionNode } from './widget-header-component';\n\ntype Props = {\n node: ActionNode;\n};\nconst Close: React.FC<Props> = ({ node }) => {\n const symbol = node.symbol || { type: 'Svg', content: 'close' };\n const size = parseInt(node?.size, 10) || 14;\n return <SymbolBadge size={size} symbol={symbol} />;\n};\n\nexport default Close;\n","import { SymbolBadge } from '@telia-ace/widget-ui';\nimport React from 'react';\nimport { ActionNode } from './widget-header-component';\n\ntype Props = {\n node: ActionNode;\n};\nconst Minimize: React.FC<Props> = ({ node }) => {\n const symbol = node.symbol || { type: 'Svg', content: 'minimize' };\n const size = parseInt(node?.size, 10) || 20;\n return <SymbolBadge size={size} symbol={symbol} />;\n};\n\nexport default Minimize;\n","import styled from '@emotion/styled';\nimport { borderTabStyle, TransitionComponent, useDispatch } from '@telia-ace/widget-ui';\nimport React from 'react';\nimport Avatar from './avatar';\nimport Back from './back';\nimport Close from './close';\nimport Minimize from './minimize';\nimport { ActionNode } from './widget-header-component';\n\ntype Props = Merge<\n ActionNode,\n {\n className?: string;\n }\n>;\n\nconst Node: React.FC<Props> = ({ className = '', ...node }) => {\n const dispatch = useDispatch();\n\n const { size, padding, type, tooltip, show = true } = node;\n\n if (type === 'back') {\n return (\n <NodeWrapper size={size || '64px'} padding={padding || '10px'}>\n <TransitionComponent\n in={show}\n timeout={300}\n transitions={{\n enter: {\n type: 'scale',\n easing: 'cubic-bezier(.08,.84,.74,1.84)',\n },\n exit: {\n type: 'scale',\n easing: 'ease-out',\n },\n }}\n >\n {(state: any, css: any) => (\n <ActionButton\n title={tooltip}\n aria-label={tooltip}\n animationCss={css}\n onClick={() => {\n dispatch('back');\n }}\n >\n <Back node={node} />\n </ActionButton>\n )}\n </TransitionComponent>\n </NodeWrapper>\n );\n }\n\n if (!show) {\n return null;\n }\n\n return (\n <NodeWrapper\n size={size || '64px'}\n padding={padding || '10px'}\n squareRatio={type === 'avatar'}\n >\n {type === 'avatar' && <Avatar node={node} />}\n {type === 'close' && (\n <ActionButton\n title={tooltip}\n aria-label={tooltip}\n onClick={() => {\n dispatch('close');\n }}\n >\n <Close node={node} />\n </ActionButton>\n )}\n {type === 'minimize' && (\n <ActionButton\n title={tooltip}\n aria-label={tooltip}\n onClick={() => {\n dispatch('minimize');\n }}\n >\n <Minimize node={node} />\n </ActionButton>\n )}\n </NodeWrapper>\n );\n};\n\nexport default Node;\n\nconst NodeWrapper = styled.div<{ size: string; padding: string; squareRatio?: boolean }>`\n flex: 1;\n max-width: ${(p) => p.size};\n ${(p) => p.squareRatio && `max-height: ${p.size};`}\n text-align: center;\n padding: 0 ${(p) => p.padding};\n && {\n box-sizing: content-box;\n }\n\n svg {\n vertical-align: middle;\n }\n\n i {\n color: ${(p) => p.theme.colors?.text};\n font-size: ${(p) => p.size};\n min-width: 1em;\n min-height: 1em;\n display: inline-block;\n }\n`;\nconst ActionButton = styled.button<any>`\n ${(p) => !!p.animationCss && p.animationCss};\n background: none;\n border: none;\n cursor: pointer;\n padding: 0;\n &:focus-visible {\n ${borderTabStyle};\n border-color: ${(p) => p.theme.accessibility?.colors?.inactiveText};\n }\n`;\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport {\n headingElement,\n Link,\n linkTabStyle,\n Typography,\n useProperties,\n} from '@telia-ace/widget-ui';\nimport { appendClassNames } from '@telia-ace/widget-utilities';\nimport React from 'react';\nimport Node from './node';\nimport { calculateMargin, createNodes } from './utils';\nimport { WidgetHeaderComponentProps } from './widget-header-component';\n\ntype Props = {\n className: string;\n role?: string;\n};\n\nconst WidgetHeader: React.FC<Props> = ({ className, ...other }) => {\n const {\n header,\n tagline,\n route,\n tooltip = '',\n actions = {},\n textAlign = 'center',\n } = useProperties<WidgetHeaderComponentProps>();\n\n const [leftNodes, rightNodes] = createNodes(actions);\n leftNodes.sort((a, b) => (a.order || 0) - (b.order || 0));\n rightNodes.sort((a, b) => (a.order || 0) - (b.order || 0));\n return (\n <Wrapper {...other} className={appendClassNames(className, 'humany-widget-header')}>\n {leftNodes.map((node, key) => (\n <Node key={`${node.type}+_${key}`} {...node} />\n ))}\n\n <MainNode\n textAlign={textAlign}\n margin={calculateMargin(leftNodes, rightNodes, textAlign)}\n >\n {route ? (\n <StyledLink routeName={route} title={tooltip} aria-label={tooltip}>\n <Typography variant=\"h1\">{header}</Typography>\n </StyledLink>\n ) : (\n <Typography variant=\"h1\">{header}</Typography>\n )}\n {tagline && <Tagline>{tagline}</Tagline>}\n </MainNode>\n\n {rightNodes.map((node, key) => (\n <Node key={`${node.type}+_${key}`} {...node} />\n ))}\n </Wrapper>\n );\n};\n\nexport default WidgetHeader;\n\nconst Wrapper = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n\n ${(p) =>\n headingElement(p)(\n 'h1',\n css`\n font-size: ${p.theme.fonts?.huge};\n margin: 0;\n font-weight: 300;\n color: ${p.theme.colors?.text};\n `\n )}\n\n p {\n color: ${(p) => p.theme.colors?.text};\n margin: 0;\n }\n\n svg {\n line,\n path,\n circle {\n stroke: ${(p) => p.theme.colors?.text};\n }\n }\n`;\n\nconst Tagline = styled.p`\n font-size: ${(p) => p.theme.fonts?.normal};\n font-weight: 300;\n`;\n\nconst MainNode = styled.div<{\n textAlign: string;\n margin: { left?: string; right?: string };\n}>`\n flex: 1;\n text-align: ${(p) => p.textAlign};\n\n margin-right: ${(p) => p.margin.right || 0};\n margin-left: ${(p) => p.margin.left || 0};\n`;\n\nconst StyledLink = styled(Link)<any>`\n text-decoration: none;\n &:focus-visible {\n ${(p) =>\n headingElement(p)(\n 'h1',\n css`\n ${linkTabStyle(p)}\n display: inline-block;\n `\n )}\n }\n`;\n"],"names":["Avatar","node","size","isSvg","sizeNumber","React","Wrapper","Avatar$1","styled","_a","_b","svg","other","__objRest","SymbolBadge","__spreadValues","p","css","Back","symbol","Back$1","Close","Close$1","Minimize","Minimize$1","Node","className","dispatch","useDispatch","padding","type","tooltip","show","NodeWrapper","TransitionComponent","state","ActionButton","Node$1","borderTabStyle","WidgetHeader","header","tagline","route","actions","textAlign","useProperties","leftNodes","rightNodes","createNodes","b","__spreadProps","appendClassNames","key","MainNode","calculateMargin","StyledLink","Typography","Tagline","headingElement","Link","linkTabStyle"],"mappings":"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"}