@telia-ace/alliance-ui 1.0.14 → 1.0.15-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -2
- package/components/alliance-link.d.ts +2 -0
- package/components/alliance-link.js +4 -150
- package/components/alliance-link.js.map +1 -1
- package/components/alliance-modal.d.ts +12 -0
- package/components/alliance-modal.js +7 -237
- package/components/alliance-modal.js.map +1 -1
- package/components/alliance-paginator.d.ts +13 -0
- package/components/alliance-paginator.js +6 -308
- package/components/alliance-paginator.js.map +1 -1
- package/components/alliance-table.d.ts +2 -0
- package/components/alliance-table.js +6 -144
- package/components/alliance-table.js.map +1 -1
- package/components/alliance-view.d.ts +32 -0
- package/components/alliance-view.js +291 -0
- package/components/alliance-view.js.map +1 -0
- package/components/chunk-ADFC4JKF.js +315 -0
- package/components/chunk-ADFC4JKF.js.map +1 -0
- package/components/chunk-B6YHD7BN.js +4 -0
- package/components/chunk-B6YHD7BN.js.map +1 -0
- package/components/chunk-JQ76TOQT.js +4 -0
- package/components/chunk-JQ76TOQT.js.map +1 -0
- package/components/chunk-LYU2K33W.js +464 -0
- package/components/chunk-LYU2K33W.js.map +1 -0
- package/components/chunk-NB6ODBZJ.js +13 -0
- package/components/chunk-NB6ODBZJ.js.map +1 -0
- package/components/chunk-P2AWWJPH.js +3 -0
- package/components/chunk-P2AWWJPH.js.map +1 -0
- package/components/chunk-WYQTL7R3.js +167 -0
- package/components/chunk-WYQTL7R3.js.map +1 -0
- package/components/chunk-XPHFAKEI.js +164 -0
- package/components/chunk-XPHFAKEI.js.map +1 -0
- package/components/index.d.ts +2 -6
- package/components/index.js +10 -18
- package/components/index.js.map +1 -1
- package/package.json +9 -13
- package/voca/components/telia-accordion-item.d.ts +1 -1
- package/voca/components/telia-accordion-item.js +3 -70
- package/voca/components/telia-accordion-item.js.map +1 -1
- package/voca/components/telia-accordion.d.ts +2 -1
- package/voca/components/telia-accordion.js +3 -104
- package/voca/components/telia-accordion.js.map +1 -1
- package/voca/components/telia-badge.d.ts +2 -1
- package/voca/components/telia-badge.js +3 -83
- package/voca/components/telia-badge.js.map +1 -1
- package/voca/components/telia-button.d.ts +2 -1
- package/voca/components/telia-button.js +3 -6
- package/voca/components/telia-button.js.map +1 -1
- package/voca/components/telia-card-frame-link.d.ts +2 -1
- package/voca/components/telia-card-frame-link.js +3 -46
- package/voca/components/telia-card-frame-link.js.map +1 -1
- package/voca/components/telia-card-frame.d.ts +2 -1
- package/voca/components/telia-card-frame.js +3 -4
- package/voca/components/telia-card-frame.js.map +1 -1
- package/voca/components/telia-checkbox.d.ts +2 -1
- package/voca/components/telia-checkbox.js +3 -102
- package/voca/components/telia-checkbox.js.map +1 -1
- package/voca/components/telia-chip-choice.d.ts +2 -1
- package/voca/components/telia-chip-choice.js +3 -70
- package/voca/components/telia-chip-choice.js.map +1 -1
- package/voca/components/telia-chip-filter.d.ts +2 -1
- package/voca/components/telia-chip-filter.js +3 -50
- package/voca/components/telia-chip-filter.js.map +1 -1
- package/voca/components/telia-col.d.ts +2 -1
- package/voca/components/telia-col.js +3 -47
- package/voca/components/telia-col.js.map +1 -1
- package/voca/components/telia-color-dot.d.ts +2 -1
- package/voca/components/telia-color-dot.js +3 -39
- package/voca/components/telia-color-dot.js.map +1 -1
- package/voca/components/telia-counter-badge.d.ts +2 -1
- package/voca/components/telia-counter-badge.js +3 -45
- package/voca/components/telia-counter-badge.js.map +1 -1
- package/voca/components/telia-cta-link.d.ts +2 -1
- package/voca/components/telia-cta-link.js +3 -58
- package/voca/components/telia-cta-link.js.map +1 -1
- package/voca/components/telia-date-picker.d.ts +2 -1
- package/voca/components/telia-date-picker.js +3 -591
- package/voca/components/telia-date-picker.js.map +1 -1
- package/voca/components/telia-divider.d.ts +2 -1
- package/voca/components/telia-divider.js +3 -46
- package/voca/components/telia-divider.js.map +1 -1
- package/voca/components/telia-field-assistive-text.d.ts +2 -1
- package/voca/components/telia-field-assistive-text.js +3 -4
- package/voca/components/telia-field-assistive-text.js.map +1 -1
- package/voca/components/telia-field-error.d.ts +2 -1
- package/voca/components/telia-field-error.js +3 -7
- package/voca/components/telia-field-error.js.map +1 -1
- package/voca/components/telia-field-valid.d.ts +2 -1
- package/voca/components/telia-field-valid.js +3 -7
- package/voca/components/telia-field-valid.js.map +1 -1
- package/voca/components/telia-fieldset.d.ts +2 -1
- package/voca/components/telia-fieldset.js +3 -56
- package/voca/components/telia-fieldset.js.map +1 -1
- package/voca/components/telia-focus-trap.d.ts +2 -1
- package/voca/components/telia-focus-trap.js +3 -78
- package/voca/components/telia-focus-trap.js.map +1 -1
- package/voca/components/telia-form.d.ts +2 -1
- package/voca/components/telia-form.js +3 -59
- package/voca/components/telia-form.js.map +1 -1
- package/voca/components/telia-grid.d.ts +2 -1
- package/voca/components/telia-grid.js +3 -29
- package/voca/components/telia-grid.js.map +1 -1
- package/voca/components/telia-heading.d.ts +2 -1
- package/voca/components/telia-heading.js +3 -4
- package/voca/components/telia-heading.js.map +1 -1
- package/voca/components/telia-icon.d.ts +2 -1
- package/voca/components/telia-icon.js +3 -5
- package/voca/components/telia-icon.js.map +1 -1
- package/voca/components/telia-image.d.ts +2 -1
- package/voca/components/telia-image.js +3 -42
- package/voca/components/telia-image.js.map +1 -1
- package/voca/components/telia-label.d.ts +2 -1
- package/voca/components/telia-label.js +3 -4
- package/voca/components/telia-label.js.map +1 -1
- package/voca/components/telia-link-image.d.ts +2 -1
- package/voca/components/telia-link-image.js +3 -55
- package/voca/components/telia-link-image.js.map +1 -1
- package/voca/components/telia-link.d.ts +2 -1
- package/voca/components/telia-link.js +3 -5
- package/voca/components/telia-link.js.map +1 -1
- package/voca/components/telia-list.d.ts +2 -1
- package/voca/components/telia-list.js +3 -69
- package/voca/components/telia-list.js.map +1 -1
- package/voca/components/telia-logo.d.ts +2 -1
- package/voca/components/telia-logo.js +3 -54
- package/voca/components/telia-logo.js.map +1 -1
- package/voca/components/telia-notification.d.ts +2 -1
- package/voca/components/telia-notification.js +3 -87
- package/voca/components/telia-notification.js.map +1 -1
- package/voca/components/telia-overlay.d.ts +2 -1
- package/voca/components/telia-overlay.js +3 -31
- package/voca/components/telia-overlay.js.map +1 -1
- package/voca/components/telia-p.d.ts +2 -1
- package/voca/components/telia-p.js +3 -51
- package/voca/components/telia-p.js.map +1 -1
- package/voca/components/telia-pictogram.d.ts +2 -1
- package/voca/components/telia-pictogram.js +3 -112
- package/voca/components/telia-pictogram.js.map +1 -1
- package/voca/components/telia-radio-button.d.ts +2 -1
- package/voca/components/telia-radio-button.js +3 -54
- package/voca/components/telia-radio-button.js.map +1 -1
- package/voca/components/telia-row.d.ts +2 -1
- package/voca/components/telia-row.js +3 -37
- package/voca/components/telia-row.js.map +1 -1
- package/voca/components/telia-search-input.d.ts +2 -1
- package/voca/components/telia-search-input.js +3 -134
- package/voca/components/telia-search-input.js.map +1 -1
- package/voca/components/telia-select.d.ts +2 -1
- package/voca/components/telia-select.js +3 -114
- package/voca/components/telia-select.js.map +1 -1
- package/voca/components/telia-skeleton.d.ts +2 -1
- package/voca/components/telia-skeleton.js +3 -32
- package/voca/components/telia-skeleton.js.map +1 -1
- package/voca/components/telia-status-badge.d.ts +2 -1
- package/voca/components/telia-status-badge.js +3 -58
- package/voca/components/telia-status-badge.js.map +1 -1
- package/voca/components/telia-style-link.d.ts +2 -1
- package/voca/components/telia-style-link.js +3 -4
- package/voca/components/telia-style-link.js.map +1 -1
- package/voca/components/telia-tab-content.d.ts +2 -1
- package/voca/components/telia-tab-content.js +3 -44
- package/voca/components/telia-tab-content.js.map +1 -1
- package/voca/components/telia-tab-header.d.ts +2 -1
- package/voca/components/telia-tab-header.js +3 -6
- package/voca/components/telia-tab-header.js.map +1 -1
- package/voca/components/telia-tab.d.ts +2 -1
- package/voca/components/telia-tab.js +3 -160
- package/voca/components/telia-tab.js.map +1 -1
- package/voca/components/telia-text-input.d.ts +2 -1
- package/voca/components/telia-text-input.js +3 -14
- package/voca/components/telia-text-input.js.map +1 -1
- package/voca/components/telia-text-spacing.d.ts +2 -1
- package/voca/components/telia-text-spacing.js +3 -29
- package/voca/components/telia-text-spacing.js.map +1 -1
- package/voca/components/telia-textarea.d.ts +2 -1
- package/voca/components/telia-textarea.js +3 -111
- package/voca/components/telia-textarea.js.map +1 -1
- package/voca/components/telia-toggle.d.ts +2 -1
- package/voca/components/telia-toggle.js +3 -143
- package/voca/components/telia-toggle.js.map +1 -1
- package/voca/components/telia-visually-hidden.d.ts +2 -1
- package/voca/components/telia-visually-hidden.js +3 -4
- package/voca/components/telia-visually-hidden.js.map +1 -1
- package/voca/foundations/component-library-styling.d.ts +2 -1
- package/voca/foundations/component-library-styling.js +3 -3
- package/voca/foundations/component-library-styling.js.map +1 -1
- package/voca/foundations/index.d.ts +6 -4
- package/voca/foundations/index.js +161 -162
- package/voca/foundations/index.js.map +1 -1
- package/voca/icons/index.js +3 -338
- package/voca/icons/index.js.map +1 -1
- package/chunks/check-circle-filled-42095247.js +0 -5
- package/chunks/check-circle-filled-42095247.js.map +0 -1
- package/chunks/chevron-down-50d47dd6.js +0 -5
- package/chunks/chevron-down-50d47dd6.js.map +0 -1
- package/chunks/chevron-right-788ce8a9.js +0 -6
- package/chunks/chevron-right-788ce8a9.js.map +0 -1
- package/chunks/close-7d423291.js +0 -5
- package/chunks/close-7d423291.js.map +0 -1
- package/chunks/close-ac6e4f1c.js +0 -5
- package/chunks/close-ac6e4f1c.js.map +0 -1
- package/chunks/error-9925a844.js +0 -7
- package/chunks/error-9925a844.js.map +0 -1
- package/chunks/error-filled-8de50bdd.js +0 -5
- package/chunks/error-filled-8de50bdd.js.map +0 -1
- package/chunks/getSvgContent-f2389ce0.js +0 -14
- package/chunks/getSvgContent-f2389ce0.js.map +0 -1
- package/chunks/index-514c4fef.js +0 -213
- package/chunks/index-514c4fef.js.map +0 -1
- package/chunks/index-eef143db.js +0 -531
- package/chunks/index-eef143db.js.map +0 -1
- package/chunks/query-assigned-elements-6cda07f5.js +0 -856
- package/chunks/query-assigned-elements-6cda07f5.js.map +0 -1
- package/chunks/repeat-aaedbe31.js +0 -143
- package/chunks/repeat-aaedbe31.js.map +0 -1
- package/chunks/stringCombiner-10b57054.js +0 -50
- package/chunks/stringCombiner-10b57054.js.map +0 -1
- package/chunks/telia-button-c9ba09a9.js +0 -86
- package/chunks/telia-button-c9ba09a9.js.map +0 -1
- package/chunks/telia-card-frame-340f3315.js +0 -39
- package/chunks/telia-card-frame-340f3315.js.map +0 -1
- package/chunks/telia-field-assistive-text-173ba2fb.js +0 -32
- package/chunks/telia-field-assistive-text-173ba2fb.js.map +0 -1
- package/chunks/telia-field-error-f978aeb3.js +0 -40
- package/chunks/telia-field-error-f978aeb3.js.map +0 -1
- package/chunks/telia-field-valid-5d8f121e.js +0 -39
- package/chunks/telia-field-valid-5d8f121e.js.map +0 -1
- package/chunks/telia-heading-38ae44ae.js +0 -104
- package/chunks/telia-heading-38ae44ae.js.map +0 -1
- package/chunks/telia-icon-d0e7c715.js +0 -73
- package/chunks/telia-icon-d0e7c715.js.map +0 -1
- package/chunks/telia-label-f4c1eb47.js +0 -36
- package/chunks/telia-label-f4c1eb47.js.map +0 -1
- package/chunks/telia-link-42cb2e68.js +0 -51
- package/chunks/telia-link-42cb2e68.js.map +0 -1
- package/chunks/telia-style-link-bb7bfd94.js +0 -56
- package/chunks/telia-style-link-bb7bfd94.js.map +0 -1
- package/chunks/telia-tab-header-890fc7c8.js +0 -98
- package/chunks/telia-tab-header-890fc7c8.js.map +0 -1
- package/chunks/telia-text-input-289394d8.js +0 -169
- package/chunks/telia-text-input-289394d8.js.map +0 -1
- package/chunks/telia-visually-hidden-9015e8cd.js +0 -34
- package/chunks/telia-visually-hidden-9015e8cd.js.map +0 -1
- package/chunks/telia-vst2-dfb33a56.js +0 -41
- package/chunks/telia-vst2-dfb33a56.js.map +0 -1
- package/chunks/uniqueId-0daf01ec.js +0 -5
- package/chunks/uniqueId-0daf01ec.js.map +0 -1
- package/chunks/variables-ecb680f0.js +0 -8
- package/chunks/variables-ecb680f0.js.map +0 -1
- package/components/alliance-link/alliance-link.d.ts +0 -27
- package/components/alliance-link/index.d.ts +0 -1
- package/components/alliance-modal/alliance-modal.d.ts +0 -43
- package/components/alliance-modal/index.d.ts +0 -2
- package/components/alliance-paginator/alliance-page-selector.d.ts +0 -22
- package/components/alliance-paginator/alliance-paginator-button.d.ts +0 -17
- package/components/alliance-paginator/alliance-paginator.d.ts +0 -32
- package/components/alliance-paginator/index.d.ts +0 -4
- package/components/alliance-paginator/utils.d.ts +0 -13
- package/components/alliance-table/alliance-table-body.d.ts +0 -5
- package/components/alliance-table/alliance-table-data.d.ts +0 -5
- package/components/alliance-table/alliance-table-head.d.ts +0 -7
- package/components/alliance-table/alliance-table-row.d.ts +0 -6
- package/components/alliance-table/alliance-table.d.ts +0 -5
- package/components/alliance-table/index.d.ts +0 -5
- package/style.css +0 -1
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
import { __name, define } from './chunk-NB6ODBZJ.js';
|
|
2
|
+
import { LitElement, css, html } from 'lit';
|
|
3
|
+
import { property } from 'lit/decorators.js';
|
|
4
|
+
|
|
5
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
6
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
7
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
8
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
9
|
+
else
|
|
10
|
+
for (var i = decorators.length - 1; i >= 0; i--)
|
|
11
|
+
if (d = decorators[i])
|
|
12
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
13
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
14
|
+
}
|
|
15
|
+
__name(_ts_decorate, "_ts_decorate");
|
|
16
|
+
function _ts_metadata(k, v) {
|
|
17
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
18
|
+
return Reflect.metadata(k, v);
|
|
19
|
+
}
|
|
20
|
+
__name(_ts_metadata, "_ts_metadata");
|
|
21
|
+
var viewElementPrefix = "alliance-view-";
|
|
22
|
+
var viewElementSelector = "app-view";
|
|
23
|
+
var ViewElementType;
|
|
24
|
+
(function(ViewElementType2) {
|
|
25
|
+
ViewElementType2["Main"] = "main";
|
|
26
|
+
ViewElementType2["Aside"] = "aside";
|
|
27
|
+
ViewElementType2["Body"] = "body";
|
|
28
|
+
})(ViewElementType || (ViewElementType = {}));
|
|
29
|
+
function viewElementTag(appName) {
|
|
30
|
+
return `${viewElementPrefix}${appName}`;
|
|
31
|
+
}
|
|
32
|
+
__name(viewElementTag, "viewElementTag");
|
|
33
|
+
function registerViewElement(appName, onRender) {
|
|
34
|
+
let ViewElement = class ViewElement extends LitElement {
|
|
35
|
+
static {
|
|
36
|
+
__name(this, "ViewElement");
|
|
37
|
+
}
|
|
38
|
+
static styles = css`
|
|
39
|
+
.loader {
|
|
40
|
+
background-color: rgba(255, 255, 255, 0.4);
|
|
41
|
+
z-index: var(--layer-modal);
|
|
42
|
+
position: absolute;
|
|
43
|
+
inset: 0;
|
|
44
|
+
display: flex;
|
|
45
|
+
justify-content: center;
|
|
46
|
+
align-items: center;
|
|
47
|
+
|
|
48
|
+
> div {
|
|
49
|
+
display: inline-block;
|
|
50
|
+
position: relative;
|
|
51
|
+
width: 80px;
|
|
52
|
+
height: 80px;
|
|
53
|
+
|
|
54
|
+
> div {
|
|
55
|
+
animation: alliance-app-loader 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
|
|
56
|
+
transform-origin: 40px 40px;
|
|
57
|
+
|
|
58
|
+
&:after {
|
|
59
|
+
content: ' ';
|
|
60
|
+
display: block;
|
|
61
|
+
position: absolute;
|
|
62
|
+
width: 7px;
|
|
63
|
+
height: 7px;
|
|
64
|
+
border-radius: 50%;
|
|
65
|
+
background: var(--purple-850);
|
|
66
|
+
margin: -4px 0 0 -4px;
|
|
67
|
+
}
|
|
68
|
+
&:nth-child(1) {
|
|
69
|
+
animation-delay: -0.036s;
|
|
70
|
+
}
|
|
71
|
+
&:nth-child(1):after {
|
|
72
|
+
top: 63px;
|
|
73
|
+
left: 63px;
|
|
74
|
+
}
|
|
75
|
+
&:nth-child(2) {
|
|
76
|
+
animation-delay: -0.072s;
|
|
77
|
+
}
|
|
78
|
+
&:nth-child(2):after {
|
|
79
|
+
top: 68px;
|
|
80
|
+
left: 56px;
|
|
81
|
+
}
|
|
82
|
+
&:nth-child(3) {
|
|
83
|
+
animation-delay: -0.108s;
|
|
84
|
+
}
|
|
85
|
+
&:nth-child(3):after {
|
|
86
|
+
top: 71px;
|
|
87
|
+
left: 48px;
|
|
88
|
+
}
|
|
89
|
+
&:nth-child(4) {
|
|
90
|
+
animation-delay: -0.144s;
|
|
91
|
+
}
|
|
92
|
+
&:nth-child(4):after {
|
|
93
|
+
top: 72px;
|
|
94
|
+
left: 40px;
|
|
95
|
+
}
|
|
96
|
+
&:nth-child(5) {
|
|
97
|
+
animation-delay: -0.18s;
|
|
98
|
+
}
|
|
99
|
+
&:nth-child(5):after {
|
|
100
|
+
top: 71px;
|
|
101
|
+
left: 32px;
|
|
102
|
+
}
|
|
103
|
+
&:nth-child(6) {
|
|
104
|
+
animation-delay: -0.216s;
|
|
105
|
+
}
|
|
106
|
+
&:nth-child(6):after {
|
|
107
|
+
top: 68px;
|
|
108
|
+
left: 24px;
|
|
109
|
+
}
|
|
110
|
+
&:nth-child(7) {
|
|
111
|
+
animation-delay: -0.252s;
|
|
112
|
+
}
|
|
113
|
+
&:nth-child(7):after {
|
|
114
|
+
top: 63px;
|
|
115
|
+
left: 17px;
|
|
116
|
+
}
|
|
117
|
+
&:nth-child(8) {
|
|
118
|
+
animation-delay: -0.288s;
|
|
119
|
+
}
|
|
120
|
+
&:nth-child(8):after {
|
|
121
|
+
top: 56px;
|
|
122
|
+
left: 12px;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
@keyframes alliance-app-loader {
|
|
128
|
+
0% {
|
|
129
|
+
transform: rotate(0deg);
|
|
130
|
+
}
|
|
131
|
+
100% {
|
|
132
|
+
transform: rotate(360deg);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
`;
|
|
136
|
+
constructor() {
|
|
137
|
+
super();
|
|
138
|
+
this.appView = true;
|
|
139
|
+
this.loading = true;
|
|
140
|
+
this.mounted = false;
|
|
141
|
+
this.args = {};
|
|
142
|
+
this.app = appName;
|
|
143
|
+
this.capability = "launch";
|
|
144
|
+
this.complete = (result) => {
|
|
145
|
+
this.dispatchEvent(new CustomEvent("complete", {
|
|
146
|
+
detail: result
|
|
147
|
+
}));
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
init(props) {
|
|
151
|
+
for (const [key, value] of Object.entries(props)) {
|
|
152
|
+
if (value) {
|
|
153
|
+
this[key] = value;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
async connectedCallback() {
|
|
158
|
+
super.connectedCallback();
|
|
159
|
+
if (!this.id) {
|
|
160
|
+
this.id = crypto.randomUUID();
|
|
161
|
+
}
|
|
162
|
+
await onRender(this);
|
|
163
|
+
this.loading = false;
|
|
164
|
+
this.mounted = true;
|
|
165
|
+
}
|
|
166
|
+
renderLoader() {
|
|
167
|
+
return html`
|
|
168
|
+
<div class="loader">
|
|
169
|
+
<div>
|
|
170
|
+
<div></div>
|
|
171
|
+
<div></div>
|
|
172
|
+
<div></div>
|
|
173
|
+
<div></div>
|
|
174
|
+
<div></div>
|
|
175
|
+
<div></div>
|
|
176
|
+
<div></div>
|
|
177
|
+
<div></div>
|
|
178
|
+
</div>
|
|
179
|
+
</div>
|
|
180
|
+
`;
|
|
181
|
+
}
|
|
182
|
+
renderTypeStyling() {
|
|
183
|
+
switch (this.type) {
|
|
184
|
+
case "body":
|
|
185
|
+
return html`
|
|
186
|
+
<style>
|
|
187
|
+
:host .app-loader {
|
|
188
|
+
display: none;
|
|
189
|
+
}
|
|
190
|
+
</style>
|
|
191
|
+
`;
|
|
192
|
+
case "aside":
|
|
193
|
+
return html`
|
|
194
|
+
<style>
|
|
195
|
+
:host {
|
|
196
|
+
height: 100vh;
|
|
197
|
+
width: auto;
|
|
198
|
+
z-index: 3;
|
|
199
|
+
position: fixed;
|
|
200
|
+
top: 0;
|
|
201
|
+
left: 0;
|
|
202
|
+
}
|
|
203
|
+
:host .app-loader {
|
|
204
|
+
display: none;
|
|
205
|
+
}
|
|
206
|
+
</style>
|
|
207
|
+
`;
|
|
208
|
+
default:
|
|
209
|
+
case "main":
|
|
210
|
+
return html`
|
|
211
|
+
<style>
|
|
212
|
+
:host {
|
|
213
|
+
position: relative;
|
|
214
|
+
display: block;
|
|
215
|
+
height: 100%;
|
|
216
|
+
width: 100%;
|
|
217
|
+
}
|
|
218
|
+
</style>
|
|
219
|
+
`;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
render() {
|
|
223
|
+
return html`
|
|
224
|
+
${this.renderTypeStyling()} ${this.loading ? this.renderLoader() : ""}
|
|
225
|
+
<slot></slot>
|
|
226
|
+
`;
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
_ts_decorate([
|
|
230
|
+
property({
|
|
231
|
+
type: Boolean,
|
|
232
|
+
attribute: viewElementSelector,
|
|
233
|
+
reflect: true
|
|
234
|
+
}),
|
|
235
|
+
_ts_metadata("design:type", Boolean)
|
|
236
|
+
], ViewElement.prototype, "appView", void 0);
|
|
237
|
+
_ts_decorate([
|
|
238
|
+
property({
|
|
239
|
+
type: Boolean,
|
|
240
|
+
attribute: true,
|
|
241
|
+
reflect: true
|
|
242
|
+
}),
|
|
243
|
+
_ts_metadata("design:type", Object)
|
|
244
|
+
], ViewElement.prototype, "mounted", void 0);
|
|
245
|
+
_ts_decorate([
|
|
246
|
+
property({
|
|
247
|
+
type: Boolean,
|
|
248
|
+
attribute: true,
|
|
249
|
+
reflect: true
|
|
250
|
+
}),
|
|
251
|
+
_ts_metadata("design:type", Object)
|
|
252
|
+
], ViewElement.prototype, "loading", void 0);
|
|
253
|
+
_ts_decorate([
|
|
254
|
+
property({
|
|
255
|
+
type: String,
|
|
256
|
+
attribute: false,
|
|
257
|
+
reflect: true
|
|
258
|
+
}),
|
|
259
|
+
_ts_metadata("design:type", Object)
|
|
260
|
+
], ViewElement.prototype, "app", void 0);
|
|
261
|
+
_ts_decorate([
|
|
262
|
+
property({
|
|
263
|
+
type: String,
|
|
264
|
+
attribute: true,
|
|
265
|
+
reflect: true
|
|
266
|
+
}),
|
|
267
|
+
_ts_metadata("design:type", Object)
|
|
268
|
+
], ViewElement.prototype, "type", void 0);
|
|
269
|
+
_ts_decorate([
|
|
270
|
+
property({
|
|
271
|
+
type: String,
|
|
272
|
+
attribute: true,
|
|
273
|
+
reflect: true
|
|
274
|
+
}),
|
|
275
|
+
_ts_metadata("design:type", Object)
|
|
276
|
+
], ViewElement.prototype, "capability", void 0);
|
|
277
|
+
_ts_decorate([
|
|
278
|
+
property({
|
|
279
|
+
type: Object,
|
|
280
|
+
attribute: true,
|
|
281
|
+
reflect: true
|
|
282
|
+
}),
|
|
283
|
+
_ts_metadata("design:type", Object)
|
|
284
|
+
], ViewElement.prototype, "args", void 0);
|
|
285
|
+
define(viewElementTag(appName), ViewElement);
|
|
286
|
+
}
|
|
287
|
+
__name(registerViewElement, "registerViewElement");
|
|
288
|
+
|
|
289
|
+
export { ViewElementType, registerViewElement, viewElementPrefix, viewElementSelector, viewElementTag };
|
|
290
|
+
//# sourceMappingURL=out.js.map
|
|
291
|
+
//# sourceMappingURL=alliance-view.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/alliance-view/alliance-view.ts"],"names":["LitElement","css","html","property","viewElementPrefix","viewElementSelector","ViewElementType","viewElementTag","appName","registerViewElement","onRender","ViewElement","styles","constructor","appView","loading","mounted","args","app","capability","complete","result","dispatchEvent","CustomEvent","detail","init","props","key","value","Object","entries","connectedCallback","id","crypto","randomUUID","renderLoader","renderTypeStyling","type","render","Boolean","attribute","reflect","String","define"],"mappings":";;;;;;AAIA,SAASA,YAAYC,KAAKC,YAAY;AACtC,SAASC,gBAAgB;;;;;;;;;;;;;;;;;AAIlB,IAAMC,oBAAoB;AAE1B,IAAMC,sBAAsB;;UAEvBC,kBAAAA;;;;GAAAA,oBAAAA,kBAAAA,CAAAA,EAAAA;AAML,SAASC,eAAeC,SAAe;AAC1C,SAAO,GAAGJ,iBAAAA,GAAoBI,OAAAA;AAClC;AAFgBD;AAwBT,SAASE,oBACZD,SACAE,UAAqD;AAErD,MAAMC,cAAN,MAAMA,oBAAoBX,WAAAA;WAAAA;;;IACtB,OAAOY,SAASX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmGhBY,cAAc;AACV,YAAK;AACL,WAAKC,UAAU;AACf,WAAKC,UAAU;AACf,WAAKC,UAAU;AACf,WAAKC,OAAO,CAAC;AACb,WAAKC,MAAMV;AACX,WAAKW,aAAa;AAClB,WAAKC,WAAW,CAACC,WAAAA;AACb,aAAKC,cAAc,IAAIC,YAAY,YAAY;UAAEC,QAAQH;QAAO,CAAA,CAAA;MACpE;IACJ;IAEAI,KAAKC,OAAsB;AACvB,iBAAW,CAACC,KAAKC,KAAAA,KAAUC,OAAOC,QAAQJ,KAAAA,GAAQ;AAC9C,YAAIE,OAAO;AAEP,eAAKD,GAAAA,IAAOC;QAChB;MACJ;IACJ;IAyBA,MAAMG,oBAAoB;AACtB,YAAMA,kBAAAA;AACN,UAAI,CAAC,KAAKC,IAAI;AACV,aAAKA,KAAKC,OAAOC,WAAU;MAC/B;AACA,YAAMxB,SAAS,IAAI;AACnB,WAAKK,UAAU;AACf,WAAKC,UAAU;IACnB;IAEQmB,eAAe;AACnB,aAAOjC;;;;;;;;;;;;;;IAcX;IAEQkC,oBAAoB;AACxB,cAAQ,KAAKC,MAAI;QACb,KAAA;AACI,iBAAOnC;;;;;;;QAOX,KAAA;AACI,iBAAOA;;;;;;;;;;;;;;;QAeX;QACA,KAAA;AACI,iBAAOA;;;;;;;;;;MAUf;IACJ;IAEUoC,SAAS;AACf,aAAOpC;kBACD,KAAKkC,kBAAiB,CAAA,IAAM,KAAKrB,UAAU,KAAKoB,aAAY,IAAK,EAAA;;;IAG3E;EACJ;;IAjGKhC,SAAS;MAAEkC,MAAME;MAASC,WAAWnC;MAAqBoC,SAAS;IAAK,CAAA;;KA1HvE9B,YAAAA,WAAAA,WAAAA,MAAAA;;IA6HDR,SAAS;MAAEkC,MAAME;MAASC,WAAW;MAAMC,SAAS;IAAK,CAAA;;KA7HxD9B,YAAAA,WAAAA,WAAAA,MAAAA;;IAgIDR,SAAS;MAAEkC,MAAME;MAASC,WAAW;MAAMC,SAAS;IAAK,CAAA;;KAhIxD9B,YAAAA,WAAAA,WAAAA,MAAAA;;IAmIDR,SAAS;MAAEkC,MAAMK;MAAQF,WAAW;MAAOC,SAAS;IAAK,CAAA;;KAnIxD9B,YAAAA,WAAAA,OAAAA,MAAAA;;IAsIDR,SAAS;MAAEkC,MAAMK;MAAQF,WAAW;MAAMC,SAAS;IAAK,CAAA;;KAtIvD9B,YAAAA,WAAAA,QAAAA,MAAAA;;IAyIDR,SAAS;MAAEkC,MAAMK;MAAQF,WAAW;MAAMC,SAAS;IAAK,CAAA;;KAzIvD9B,YAAAA,WAAAA,cAAAA,MAAAA;;IA4IDR,SAAS;MAAEkC,MAAMR;MAAQW,WAAW;MAAMC,SAAS;IAAK,CAAA;;KA5IvD9B,YAAAA,WAAAA,QAAAA,MAAAA;AA6NNgC,SAAOpC,eAAeC,OAAAA,GAAUG,WAAAA;AACpC;AAlOgBF","sourcesContent":["import type {\n Promisable,\n SerializeableObject,\n} from '@telia-ace/alliance-internal-client-utilities';\nimport { LitElement, css, html } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { define } from '@/utils';\n\nexport const viewElementPrefix = 'alliance-view-';\n\nexport const viewElementSelector = 'app-view';\n\nexport enum ViewElementType {\n Main = 'main',\n Aside = 'aside',\n Body = 'body',\n}\n\nexport function viewElementTag(appName: string) {\n return `${viewElementPrefix}${appName}`;\n}\n\nexport type ViewInitProps = {\n app?: IViewElement['app'];\n capability?: IViewElement['capability'];\n id?: IViewElement['id'];\n args?: IViewElement['args'];\n type?: IViewElement['type'];\n complete?: IViewElement['complete'];\n};\n\nexport interface IViewElement extends LitElement {\n init: (props: ViewInitProps) => void;\n complete: (result: SerializeableObject | null) => void;\n app: string;\n capability: string;\n args: SerializeableObject;\n mounted: boolean;\n loading: boolean;\n type?: ViewElementType;\n}\n\nexport function registerViewElement(\n appName: string,\n onRender: (element: IViewElement) => Promisable<void>,\n) {\n class ViewElement extends LitElement implements IViewElement {\n static styles = css`\n .loader {\n background-color: rgba(255, 255, 255, 0.4);\n z-index: var(--layer-modal);\n position: absolute;\n inset: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n\n > div {\n display: inline-block;\n position: relative;\n width: 80px;\n height: 80px;\n\n > div {\n animation: alliance-app-loader 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n transform-origin: 40px 40px;\n\n &:after {\n content: ' ';\n display: block;\n position: absolute;\n width: 7px;\n height: 7px;\n border-radius: 50%;\n background: var(--purple-850);\n margin: -4px 0 0 -4px;\n }\n &:nth-child(1) {\n animation-delay: -0.036s;\n }\n &:nth-child(1):after {\n top: 63px;\n left: 63px;\n }\n &:nth-child(2) {\n animation-delay: -0.072s;\n }\n &:nth-child(2):after {\n top: 68px;\n left: 56px;\n }\n &:nth-child(3) {\n animation-delay: -0.108s;\n }\n &:nth-child(3):after {\n top: 71px;\n left: 48px;\n }\n &:nth-child(4) {\n animation-delay: -0.144s;\n }\n &:nth-child(4):after {\n top: 72px;\n left: 40px;\n }\n &:nth-child(5) {\n animation-delay: -0.18s;\n }\n &:nth-child(5):after {\n top: 71px;\n left: 32px;\n }\n &:nth-child(6) {\n animation-delay: -0.216s;\n }\n &:nth-child(6):after {\n top: 68px;\n left: 24px;\n }\n &:nth-child(7) {\n animation-delay: -0.252s;\n }\n &:nth-child(7):after {\n top: 63px;\n left: 17px;\n }\n &:nth-child(8) {\n animation-delay: -0.288s;\n }\n &:nth-child(8):after {\n top: 56px;\n left: 12px;\n }\n }\n }\n }\n @keyframes alliance-app-loader {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n `;\n\n constructor() {\n super();\n this.appView = true;\n this.loading = true;\n this.mounted = false;\n this.args = {};\n this.app = appName;\n this.capability = 'launch';\n this.complete = (result) => {\n this.dispatchEvent(new CustomEvent('complete', { detail: result }));\n };\n }\n\n init(props: ViewInitProps) {\n for (const [key, value] of Object.entries(props)) {\n if (value) {\n // @ts-ignore\n this[key] = value;\n }\n }\n }\n\n @property({ type: Boolean, attribute: viewElementSelector, reflect: true })\n private declare appView: boolean;\n\n @property({ type: Boolean, attribute: true, reflect: true })\n declare mounted: IViewElement['mounted'];\n\n @property({ type: Boolean, attribute: true, reflect: true })\n declare loading: IViewElement['loading'];\n\n @property({ type: String, attribute: false, reflect: true })\n declare app: IViewElement['app'];\n\n @property({ type: String, attribute: true, reflect: true })\n declare type: IViewElement['type'];\n\n @property({ type: String, attribute: true, reflect: true })\n declare capability: IViewElement['capability'];\n\n @property({ type: Object, attribute: true, reflect: true })\n declare args: IViewElement['args'];\n\n declare complete: IViewElement['complete'];\n\n async connectedCallback() {\n super.connectedCallback();\n if (!this.id) {\n this.id = crypto.randomUUID();\n }\n await onRender(this);\n this.loading = false;\n this.mounted = true;\n }\n\n private renderLoader() {\n return html`\n <div class=\"loader\">\n <div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n <div></div>\n </div>\n </div>\n `;\n }\n\n private renderTypeStyling() {\n switch (this.type) {\n case ViewElementType.Body:\n return html`\n <style>\n :host .app-loader {\n display: none;\n }\n </style>\n `;\n case ViewElementType.Aside:\n return html`\n <style>\n :host {\n height: 100vh;\n width: auto;\n z-index: 3;\n position: fixed;\n top: 0;\n left: 0;\n }\n :host .app-loader {\n display: none;\n }\n </style>\n `;\n default:\n case ViewElementType.Main:\n return html`\n <style>\n :host {\n position: relative;\n display: block;\n height: 100%;\n width: 100%;\n }\n </style>\n `;\n }\n }\n\n protected render() {\n return html`\n ${this.renderTypeStyling()} ${this.loading ? this.renderLoader() : ''}\n <slot></slot>\n `;\n }\n }\n\n define(viewElementTag(appName), ViewElement);\n}\n"]}
|
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
import { layers, colors, borders, shadows, breakpoints, spacing } from './chunk-B6YHD7BN.js';
|
|
2
|
+
import { __name, define } from './chunk-NB6ODBZJ.js';
|
|
3
|
+
import { close } from '@teliads/components/icons';
|
|
4
|
+
import { LitElement, css, unsafeCSS, html } from 'lit';
|
|
5
|
+
import { property, state } from 'lit/decorators.js';
|
|
6
|
+
import { repeat } from 'lit/directives/repeat.js';
|
|
7
|
+
|
|
8
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
9
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
10
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
|
|
11
|
+
r = Reflect.decorate(decorators, target, key, desc);
|
|
12
|
+
else
|
|
13
|
+
for (var i = decorators.length - 1; i >= 0; i--)
|
|
14
|
+
if (d = decorators[i])
|
|
15
|
+
r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
16
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
17
|
+
}
|
|
18
|
+
__name(_ts_decorate, "_ts_decorate");
|
|
19
|
+
function _ts_metadata(k, v) {
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
|
|
21
|
+
return Reflect.metadata(k, v);
|
|
22
|
+
}
|
|
23
|
+
__name(_ts_metadata, "_ts_metadata");
|
|
24
|
+
var Modal = class extends LitElement {
|
|
25
|
+
static {
|
|
26
|
+
__name(this, "Modal");
|
|
27
|
+
}
|
|
28
|
+
constructor() {
|
|
29
|
+
super();
|
|
30
|
+
this.header = "";
|
|
31
|
+
this.actions = [];
|
|
32
|
+
this.required = false;
|
|
33
|
+
this.scrollMode = "outside";
|
|
34
|
+
this.hasSubHeader = false;
|
|
35
|
+
}
|
|
36
|
+
static styles = css`
|
|
37
|
+
:host {
|
|
38
|
+
display: block;
|
|
39
|
+
inset: 0;
|
|
40
|
+
z-index: ${unsafeCSS(parseInt(layers.modal) - 2)};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.backdrop {
|
|
44
|
+
inset: 0;
|
|
45
|
+
z-index: ${unsafeCSS(parseInt(layers.modal) - 1)};
|
|
46
|
+
background-color: ${unsafeCSS(colors.black)};
|
|
47
|
+
opacity: 0.3;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.container {
|
|
51
|
+
margin: 0 auto;
|
|
52
|
+
display: flex;
|
|
53
|
+
justify-content: center;
|
|
54
|
+
height: 100%;
|
|
55
|
+
width: 100%;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
dialog {
|
|
59
|
+
background-color: ${unsafeCSS(colors.white)};
|
|
60
|
+
border-radius: ${unsafeCSS(borders.radiusLg)};
|
|
61
|
+
box-shadow: ${unsafeCSS(shadows.md)};
|
|
62
|
+
z-index: ${unsafeCSS(parseInt(layers.modal))};
|
|
63
|
+
max-width: ${unsafeCSS(breakpoints.breakpointLg)};
|
|
64
|
+
position: static;
|
|
65
|
+
padding: 0;
|
|
66
|
+
border: none;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.header {
|
|
70
|
+
position: relative;
|
|
71
|
+
display: flex;
|
|
72
|
+
align-items: center;
|
|
73
|
+
padding: ${unsafeCSS(spacing.spacing24)} ${unsafeCSS(spacing.spacing32)};
|
|
74
|
+
border-bottom: ${unsafeCSS(borders.widthXs)} solid ${unsafeCSS(colors.gray200)};
|
|
75
|
+
min-height: 40px;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.header telia-button {
|
|
79
|
+
position: absolute;
|
|
80
|
+
top: ${unsafeCSS(spacing.spacing20)};
|
|
81
|
+
right: ${unsafeCSS(spacing.spacing24)};
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.sub-header {
|
|
85
|
+
padding: ${unsafeCSS(spacing.spacing24)} ${unsafeCSS(spacing.spacing32)};
|
|
86
|
+
border-bottom: ${unsafeCSS(borders.widthXs)} solid ${unsafeCSS(colors.gray200)};
|
|
87
|
+
display: none;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.body {
|
|
91
|
+
min-width: calc(${unsafeCSS(spacing.spacing128)} * 2);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.footer {
|
|
95
|
+
display: flex;
|
|
96
|
+
justify-content: flex-end;
|
|
97
|
+
gap: ${unsafeCSS(spacing.spacing16)};
|
|
98
|
+
}
|
|
99
|
+
`;
|
|
100
|
+
containStyling = () => {
|
|
101
|
+
if (!this.contain) {
|
|
102
|
+
return html`<style>
|
|
103
|
+
:host {
|
|
104
|
+
position: fixed;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.backdrop {
|
|
108
|
+
position: absolute;
|
|
109
|
+
}
|
|
110
|
+
</style>`;
|
|
111
|
+
}
|
|
112
|
+
return html`<style>
|
|
113
|
+
:host {
|
|
114
|
+
height: 500px;
|
|
115
|
+
position: static;
|
|
116
|
+
}
|
|
117
|
+
.backdrop {
|
|
118
|
+
position: absolute;
|
|
119
|
+
}
|
|
120
|
+
</style>`;
|
|
121
|
+
};
|
|
122
|
+
scrollStyling = () => {
|
|
123
|
+
if (this.scrollMode === "inside") {
|
|
124
|
+
return html`<style>
|
|
125
|
+
.container {
|
|
126
|
+
align-items: center;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
dialog {
|
|
130
|
+
max-height: 80%;
|
|
131
|
+
display: flex;
|
|
132
|
+
flex-direction: column;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.body {
|
|
136
|
+
flex: 1;
|
|
137
|
+
padding: ${unsafeCSS(spacing.spacing24)} ${unsafeCSS(spacing.spacing32)};
|
|
138
|
+
height: 80%;
|
|
139
|
+
overflow-x: hidden;
|
|
140
|
+
overflow-y: auto;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.footer {
|
|
144
|
+
border-top: ${unsafeCSS(borders.widthXs)} solid ${unsafeCSS(colors.gray200)};
|
|
145
|
+
padding: ${unsafeCSS(spacing.spacing24)} ${unsafeCSS(spacing.spacing32)};
|
|
146
|
+
}
|
|
147
|
+
</style>`;
|
|
148
|
+
}
|
|
149
|
+
return html`<style>
|
|
150
|
+
.container {
|
|
151
|
+
overflow-x: hidden;
|
|
152
|
+
overflow-y: overlay;
|
|
153
|
+
align-items: flex-start;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
dialog {
|
|
157
|
+
display: block;
|
|
158
|
+
margin: ${unsafeCSS(spacing.spacing128)} ${unsafeCSS(spacing.spacing24)};
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.footer,
|
|
162
|
+
.body {
|
|
163
|
+
margin: ${unsafeCSS(spacing.spacing24)} 0;
|
|
164
|
+
padding: 0 ${unsafeCSS(spacing.spacing32)};
|
|
165
|
+
}
|
|
166
|
+
</style>`;
|
|
167
|
+
};
|
|
168
|
+
subHeaderStyling = () => {
|
|
169
|
+
if (this.hasSubHeader) {
|
|
170
|
+
return html`<style>
|
|
171
|
+
div.sub-header {
|
|
172
|
+
display: block;
|
|
173
|
+
}
|
|
174
|
+
</style>`;
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
closeButton = () => {
|
|
178
|
+
if (this.required) {
|
|
179
|
+
return "";
|
|
180
|
+
}
|
|
181
|
+
return html`<telia-button
|
|
182
|
+
size="sm"
|
|
183
|
+
variant="text"
|
|
184
|
+
data-testid="close-modal-button"
|
|
185
|
+
@click=${this.onCloseClick}
|
|
186
|
+
><telia-icon size="md" svg="${close.svg}"
|
|
187
|
+
/></telia-button>`;
|
|
188
|
+
};
|
|
189
|
+
footer = () => {
|
|
190
|
+
if (!this.actions.length) {
|
|
191
|
+
return "";
|
|
192
|
+
}
|
|
193
|
+
return html`
|
|
194
|
+
<div class="footer">
|
|
195
|
+
${repeat(this.actions, ({ disabled, variant, action, label }) => html`
|
|
196
|
+
<telia-button
|
|
197
|
+
disabled="${disabled ? "true" : "false"}"
|
|
198
|
+
variant="${variant || "primary"}"
|
|
199
|
+
size="sm"
|
|
200
|
+
@click=${() => this.action(action)}
|
|
201
|
+
data-testid="${action}-action-button"
|
|
202
|
+
>
|
|
203
|
+
${label}
|
|
204
|
+
</telia-button>
|
|
205
|
+
`)}
|
|
206
|
+
</div>
|
|
207
|
+
`;
|
|
208
|
+
};
|
|
209
|
+
onBackdropClick = () => {
|
|
210
|
+
if (this.required) {
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
return this.action("close");
|
|
214
|
+
};
|
|
215
|
+
onCloseClick = () => {
|
|
216
|
+
if (this.required) {
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
return this.action("close");
|
|
220
|
+
};
|
|
221
|
+
onKeyDown = (event) => {
|
|
222
|
+
if (event.defaultPrevented) {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
if (!this.required && event.key === "Escape") {
|
|
226
|
+
this.action("close");
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
// The slotchange event is only triggered if slot changes content
|
|
230
|
+
// So if event is triggered, that means sub-header is populated and should be shown
|
|
231
|
+
onSubHeaderSlotChange = () => {
|
|
232
|
+
this.hasSubHeader = true;
|
|
233
|
+
};
|
|
234
|
+
connectedCallback() {
|
|
235
|
+
super.connectedCallback();
|
|
236
|
+
window.addEventListener("keydown", this.onKeyDown);
|
|
237
|
+
}
|
|
238
|
+
disconnectedCallback() {
|
|
239
|
+
window.removeEventListener("keydown", this.onKeyDown);
|
|
240
|
+
super.disconnectedCallback();
|
|
241
|
+
}
|
|
242
|
+
action = (action) => {
|
|
243
|
+
const event = new CustomEvent("action", {
|
|
244
|
+
bubbles: true,
|
|
245
|
+
composed: true,
|
|
246
|
+
detail: {
|
|
247
|
+
action
|
|
248
|
+
},
|
|
249
|
+
cancelable: true
|
|
250
|
+
});
|
|
251
|
+
return this.dispatchEvent(event);
|
|
252
|
+
};
|
|
253
|
+
render() {
|
|
254
|
+
return html`
|
|
255
|
+
${this.containStyling()} ${this.scrollStyling()} ${this.subHeaderStyling()}
|
|
256
|
+
<div class="backdrop" @click=${this.onBackdropClick}></div>
|
|
257
|
+
<div class="container">
|
|
258
|
+
<dialog open>
|
|
259
|
+
<div class="header">
|
|
260
|
+
<telia-heading tag="h3" variant="title-100">${this.header}</telia-heading>
|
|
261
|
+
${this.closeButton()}
|
|
262
|
+
</div>
|
|
263
|
+
<div class="sub-header">
|
|
264
|
+
<slot name="sub-header" @slotchange=${this.onSubHeaderSlotChange}></slot>
|
|
265
|
+
</div>
|
|
266
|
+
<div class="body">
|
|
267
|
+
<slot></slot>
|
|
268
|
+
</div>
|
|
269
|
+
${this.footer()}
|
|
270
|
+
</dialog>
|
|
271
|
+
</div>
|
|
272
|
+
`;
|
|
273
|
+
}
|
|
274
|
+
};
|
|
275
|
+
_ts_decorate([
|
|
276
|
+
property({
|
|
277
|
+
type: String,
|
|
278
|
+
attribute: "header"
|
|
279
|
+
}),
|
|
280
|
+
_ts_metadata("design:type", String)
|
|
281
|
+
], Modal.prototype, "header", void 0);
|
|
282
|
+
_ts_decorate([
|
|
283
|
+
property({
|
|
284
|
+
type: Array
|
|
285
|
+
}),
|
|
286
|
+
_ts_metadata("design:type", Array)
|
|
287
|
+
], Modal.prototype, "actions", void 0);
|
|
288
|
+
_ts_decorate([
|
|
289
|
+
property({
|
|
290
|
+
type: Boolean,
|
|
291
|
+
attribute: "required"
|
|
292
|
+
}),
|
|
293
|
+
_ts_metadata("design:type", Boolean)
|
|
294
|
+
], Modal.prototype, "required", void 0);
|
|
295
|
+
_ts_decorate([
|
|
296
|
+
property({
|
|
297
|
+
type: String,
|
|
298
|
+
attribute: "scroll-mode"
|
|
299
|
+
}),
|
|
300
|
+
_ts_metadata("design:type", String)
|
|
301
|
+
], Modal.prototype, "scrollMode", void 0);
|
|
302
|
+
_ts_decorate([
|
|
303
|
+
state(),
|
|
304
|
+
_ts_metadata("design:type", Boolean)
|
|
305
|
+
], Modal.prototype, "hasSubHeader", void 0);
|
|
306
|
+
_ts_decorate([
|
|
307
|
+
property({
|
|
308
|
+
type: Boolean,
|
|
309
|
+
attribute: "contain"
|
|
310
|
+
}),
|
|
311
|
+
_ts_metadata("design:type", Boolean)
|
|
312
|
+
], Modal.prototype, "contain", void 0);
|
|
313
|
+
define("alliance-modal", Modal);
|
|
314
|
+
//# sourceMappingURL=out.js.map
|
|
315
|
+
//# sourceMappingURL=chunk-ADFC4JKF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/alliance-modal/alliance-modal.ts"],"names":["close","LitElement","css","html","unsafeCSS","property","state","repeat","Modal","constructor","header","actions","required","scrollMode","hasSubHeader","styles","parseInt","layers","modal","colors","black","white","borders","radiusLg","shadows","md","breakpoints","breakpointLg","spacing","spacing24","spacing32","widthXs","gray200","spacing20","spacing128","spacing16","containStyling","contain","scrollStyling","subHeaderStyling","closeButton","onCloseClick","svg","footer","length","disabled","variant","action","label","onBackdropClick","onKeyDown","event","defaultPrevented","key","onSubHeaderSlotChange","connectedCallback","window","addEventListener","disconnectedCallback","removeEventListener","CustomEvent","bubbles","composed","detail","cancelable","dispatchEvent","render","type","String","attribute","Array","Boolean","define"],"mappings":"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","sourcesContent":["import type { ButtonVariantType } from '@teliads/components/dist/types/types/ButtonVariant';\nimport { close } from '@teliads/components/icons';\nimport { LitElement, css, html, unsafeCSS } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { repeat } from 'lit/directives/repeat.js';\n\nimport { define } from '@/utils';\nimport '@/voca/components/telia-button';\nimport '@/voca/components/telia-heading';\nimport '@/voca/components/telia-icon';\nimport { borders, breakpoints, colors, layers, shadows, spacing } from '@/voca/foundations';\n\nexport type Action = {\n variant: ButtonVariantType;\n label: string;\n action: string;\n disabled?: boolean;\n};\n\n/**\n * Event dispatched when clicking the close button, the backdrop, an action button or pressing escape.\n *\n * Event: `action`\n *\n * Detail: Object containing the property `action`.\n */\nexport type ActionEvent = CustomEvent<{ action: string }>;\n\nexport class Modal extends LitElement {\n constructor() {\n super();\n this.header = '';\n this.actions = [];\n this.required = false;\n this.scrollMode = 'outside';\n this.hasSubHeader = false;\n }\n\n static styles = css`\n :host {\n display: block;\n inset: 0;\n z-index: ${unsafeCSS(parseInt(layers.modal) - 2)};\n }\n\n .backdrop {\n inset: 0;\n z-index: ${unsafeCSS(parseInt(layers.modal) - 1)};\n background-color: ${unsafeCSS(colors.black)};\n opacity: 0.3;\n }\n\n .container {\n margin: 0 auto;\n display: flex;\n justify-content: center;\n height: 100%;\n width: 100%;\n }\n\n dialog {\n background-color: ${unsafeCSS(colors.white)};\n border-radius: ${unsafeCSS(borders.radiusLg)};\n box-shadow: ${unsafeCSS(shadows.md)};\n z-index: ${unsafeCSS(parseInt(layers.modal))};\n max-width: ${unsafeCSS(breakpoints.breakpointLg)};\n position: static;\n padding: 0;\n border: none;\n }\n\n .header {\n position: relative;\n display: flex;\n align-items: center;\n padding: ${unsafeCSS(spacing.spacing24)} ${unsafeCSS(spacing.spacing32)};\n border-bottom: ${unsafeCSS(borders.widthXs)} solid ${unsafeCSS(colors.gray200)};\n min-height: 40px;\n }\n\n .header telia-button {\n position: absolute;\n top: ${unsafeCSS(spacing.spacing20)};\n right: ${unsafeCSS(spacing.spacing24)};\n }\n\n .sub-header {\n padding: ${unsafeCSS(spacing.spacing24)} ${unsafeCSS(spacing.spacing32)};\n border-bottom: ${unsafeCSS(borders.widthXs)} solid ${unsafeCSS(colors.gray200)};\n display: none;\n }\n\n .body {\n min-width: calc(${unsafeCSS(spacing.spacing128)} * 2);\n }\n\n .footer {\n display: flex;\n justify-content: flex-end;\n gap: ${unsafeCSS(spacing.spacing16)};\n }\n `;\n\n @property({ type: String, attribute: 'header' })\n declare header: string;\n\n @property({ type: Array })\n declare actions: Action[];\n\n @property({ type: Boolean, attribute: 'required' })\n declare required: boolean;\n\n @property({ type: String, attribute: 'scroll-mode' })\n declare scrollMode: 'outside' | 'inside';\n\n @state()\n declare hasSubHeader: boolean;\n\n // Internal usage only\n // Used in Storybook to contain modal in story\n @property({ type: Boolean, attribute: 'contain' })\n declare contain?: boolean;\n\n containStyling = () => {\n if (!this.contain) {\n return html`<style>\n :host {\n position: fixed;\n }\n\n .backdrop {\n position: absolute;\n }\n </style>`;\n }\n\n return html`<style>\n :host {\n height: 500px;\n position: static;\n }\n .backdrop {\n position: absolute;\n }\n </style>`;\n };\n\n scrollStyling = () => {\n if (this.scrollMode === 'inside') {\n return html`<style>\n .container {\n align-items: center;\n }\n\n dialog {\n max-height: 80%;\n display: flex;\n flex-direction: column;\n }\n\n .body {\n flex: 1;\n padding: ${unsafeCSS(spacing.spacing24)} ${unsafeCSS(spacing.spacing32)};\n height: 80%;\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n .footer {\n border-top: ${unsafeCSS(borders.widthXs)} solid ${unsafeCSS(colors.gray200)};\n padding: ${unsafeCSS(spacing.spacing24)} ${unsafeCSS(spacing.spacing32)};\n }\n </style>`;\n }\n\n return html`<style>\n .container {\n overflow-x: hidden;\n overflow-y: overlay;\n align-items: flex-start;\n }\n\n dialog {\n display: block;\n margin: ${unsafeCSS(spacing.spacing128)} ${unsafeCSS(spacing.spacing24)};\n }\n\n .footer,\n .body {\n margin: ${unsafeCSS(spacing.spacing24)} 0;\n padding: 0 ${unsafeCSS(spacing.spacing32)};\n }\n </style>`;\n };\n\n subHeaderStyling = () => {\n if (this.hasSubHeader) {\n return html`<style>\n div.sub-header {\n display: block;\n }\n </style>`;\n }\n };\n\n closeButton = () => {\n if (this.required) {\n return '';\n }\n\n return html`<telia-button\n size=\"sm\"\n variant=\"text\"\n data-testid=\"close-modal-button\"\n @click=${this.onCloseClick}\n ><telia-icon size=\"md\" svg=\"${close.svg}\"\n /></telia-button>`;\n };\n\n footer = () => {\n if (!this.actions.length) {\n return '';\n }\n\n return html`\n <div class=\"footer\">\n ${repeat(\n this.actions,\n ({ disabled, variant, action, label }) => html`\n <telia-button\n disabled=\"${disabled ? 'true' : 'false'}\"\n variant=\"${variant || 'primary'}\"\n size=\"sm\"\n @click=${() => this.action(action)}\n data-testid=\"${action}-action-button\"\n >\n ${label}\n </telia-button>\n `,\n )}\n </div>\n `;\n };\n\n onBackdropClick = () => {\n if (this.required) {\n return;\n }\n\n return this.action('close');\n };\n\n onCloseClick = () => {\n if (this.required) {\n return;\n }\n\n return this.action('close');\n };\n\n onKeyDown = (event: KeyboardEvent) => {\n if (event.defaultPrevented) {\n return;\n }\n\n if (!this.required && event.key === 'Escape') {\n this.action('close');\n }\n };\n\n // The slotchange event is only triggered if slot changes content\n // So if event is triggered, that means sub-header is populated and should be shown\n onSubHeaderSlotChange = () => {\n this.hasSubHeader = true;\n };\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener('keydown', this.onKeyDown);\n }\n\n disconnectedCallback() {\n window.removeEventListener('keydown', this.onKeyDown);\n super.disconnectedCallback();\n }\n\n action = (action: string) => {\n const event: ActionEvent = new CustomEvent('action', {\n bubbles: true,\n composed: true,\n detail: { action },\n cancelable: true,\n });\n return this.dispatchEvent(event);\n };\n\n render() {\n return html`\n ${this.containStyling()} ${this.scrollStyling()} ${this.subHeaderStyling()}\n <div class=\"backdrop\" @click=${this.onBackdropClick}></div>\n <div class=\"container\">\n <dialog open>\n <div class=\"header\">\n <telia-heading tag=\"h3\" variant=\"title-100\">${this.header}</telia-heading>\n ${this.closeButton()}\n </div>\n <div class=\"sub-header\">\n <slot name=\"sub-header\" @slotchange=${this.onSubHeaderSlotChange}></slot>\n </div>\n <div class=\"body\">\n <slot></slot>\n </div>\n ${this.footer()}\n </dialog>\n </div>\n `;\n }\n}\n\ndefine('alliance-modal', Modal);\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { borders, breakpoints, colors, layers, motion, shadows, spacing } from '@teliads/components/foundations';
|
|
2
|
+
export { default as focus } from '@teliads/components/foundations/focus/variables.json';
|
|
3
|
+
//# sourceMappingURL=out.js.map
|
|
4
|
+
//# sourceMappingURL=chunk-B6YHD7BN.js.map
|