@iamproperty/components 7.5.1--beta10 → 7.5.1--beta11
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/assets/css/components/actionbar.component.css +1 -1
- package/assets/css/components/actionbar.component.css.map +1 -1
- package/assets/css/components/address-lookup.component.css +1 -1
- package/assets/css/components/address-lookup.component.css.map +1 -1
- package/assets/css/components/barchart.component.css +1 -1
- package/assets/css/components/barchart.component.css.map +1 -1
- package/assets/css/components/calendar.component.css +1 -1
- package/assets/css/components/calendar.component.css.map +1 -1
- package/assets/css/components/card.component.css +1 -1
- package/assets/css/components/card.component.css.map +1 -1
- package/assets/css/components/carousel.component.css +1 -1
- package/assets/css/components/carousel.component.css.map +1 -1
- package/assets/css/components/collapsible-side.css +1 -1
- package/assets/css/components/collapsible-side.css.map +1 -1
- package/assets/css/components/content.component.css +1 -1
- package/assets/css/components/content.component.css.map +1 -1
- package/assets/css/components/doughnutchart.component.css +1 -1
- package/assets/css/components/doughnutchart.component.css.map +1 -1
- package/assets/css/components/fileupload.css +1 -1
- package/assets/css/components/fileupload.css.map +1 -1
- package/assets/css/components/menu.component.css +1 -1
- package/assets/css/components/menu.component.css.map +1 -1
- package/assets/css/components/modal.component.css +1 -1
- package/assets/css/components/modal.component.css.map +1 -1
- package/assets/css/components/multi-step-modal.component.css +1 -1
- package/assets/css/components/multi-step-modal.component.css.map +1 -1
- package/assets/css/components/multiselect.css +1 -1
- package/assets/css/components/multiselect.css.map +1 -1
- package/assets/css/components/nav.component.css +1 -1
- package/assets/css/components/nav.component.css.map +1 -1
- package/assets/css/components/pagination.css +1 -1
- package/assets/css/components/pagination.css.map +1 -1
- package/assets/css/components/popover.component.css +1 -0
- package/assets/css/components/popover.component.css.map +1 -0
- package/assets/css/components/split-button.component.css +1 -1
- package/assets/css/components/split-button.component.css.map +1 -1
- package/assets/css/components/table-basic.global.css +1 -1
- package/assets/css/components/table-basic.global.css.map +1 -1
- package/assets/css/components/table.global.css +1 -1
- package/assets/css/components/table.global.css.map +1 -1
- package/assets/css/components/tabs.component.css +1 -1
- package/assets/css/components/tabs.component.css.map +1 -1
- package/assets/css/components/tooltip.component.css +1 -0
- package/assets/css/components/tooltip.component.css.map +1 -0
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.min.css.map +1 -1
- package/assets/css/mobile-core.min.css +1 -1
- package/assets/css/mobile-core.min.css.map +1 -1
- package/assets/css/mobile.min.css +1 -1
- package/assets/css/mobile.min.css.map +1 -1
- package/assets/css/style.min.css +1 -1
- package/assets/css/style.min.css.map +1 -1
- package/assets/js/components/accordion/accordion.component.min.js +1 -1
- package/assets/js/components/actionbar/actionbar.component.min.js +4 -4
- package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
- package/assets/js/components/address-lookup/address-lookup.component.min.js +2 -2
- package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.min.js +4 -4
- package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -1
- package/assets/js/components/barchart/barchart.component.min.js +2 -2
- package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
- package/assets/js/components/calendar/calendar.component.min.js +4 -4
- package/assets/js/components/card/card.component.min.js +6 -6
- package/assets/js/components/card/card.component.min.js.map +1 -1
- package/assets/js/components/carousel/carousel.component.min.js +4 -4
- package/assets/js/components/collapsible-side/collapsible-side.component.min.js +2 -2
- package/assets/js/components/content/content.component.min.js +2 -2
- package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
- package/assets/js/components/doughnutchart/doughnutchart.component.min.js +7 -7
- package/assets/js/components/fileupload/fileupload.component.min.js +2 -2
- package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
- package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
- package/assets/js/components/header/header.component.min.js +1 -1
- package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
- package/assets/js/components/input/input.component.min.js +1 -1
- package/assets/js/components/input-range/input-range.component.min.js +1 -1
- package/assets/js/components/marketing/marketing.component.min.js +1 -1
- package/assets/js/components/menu/menu.component.js +1 -0
- package/assets/js/components/menu/menu.component.min.js +4 -4
- package/assets/js/components/menu/menu.component.min.js.map +1 -1
- package/assets/js/components/milestone/milestone.component.min.js +1 -1
- package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
- package/assets/js/components/modal/modal.component.min.js +4 -4
- package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
- package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +4 -4
- package/assets/js/components/multiselect/multiselect.component.min.js +4 -4
- package/assets/js/components/nav/nav.component.min.js +2 -2
- package/assets/js/components/notification/notification.component.min.js +1 -1
- package/assets/js/components/pagination/pagination.component.min.js +2 -2
- package/assets/js/components/password/password.component.min.js +1 -1
- package/assets/js/components/popover/popover.component.js +36 -0
- package/assets/js/components/popover/popover.component.min.js +13 -0
- package/assets/js/components/popover/popover.component.min.js.map +1 -0
- package/assets/js/components/rank/rank.component.min.js +1 -1
- package/assets/js/components/rankings/rankings.component.min.js +1 -1
- package/assets/js/components/record-card/record-card.component.min.js +1 -1
- package/assets/js/components/search/search.component.min.js +1 -1
- package/assets/js/components/slider/slider.component.min.js +1 -1
- package/assets/js/components/split-button/split-button.component.min.js +4 -4
- package/assets/js/components/split-button/split-button.component.min.js.map +1 -1
- package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +2 -2
- package/assets/js/components/table/table.component.min.js +6 -6
- package/assets/js/components/table/table.component.min.js.map +1 -1
- package/assets/js/components/table-ajax/table-ajax.component.min.js +6 -6
- package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -1
- package/assets/js/components/table-basic/table-basic.component.js +1 -1
- package/assets/js/components/table-basic/table-basic.component.min.js +3 -3
- package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -1
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js +6 -6
- package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -1
- package/assets/js/components/table-submit/table-submit.component.min.js +4 -4
- package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -1
- package/assets/js/components/tabs/tabs.component.min.js +2 -2
- package/assets/js/components/tooltip/tooltip.component.js +68 -0
- package/assets/js/components/tooltip/tooltip.component.min.js +14 -0
- package/assets/js/components/tooltip/tooltip.component.min.js.map +1 -0
- package/assets/js/components/video-card/video-card.component.min.js +1 -1
- package/assets/js/components/word-count/word-count.component.min.js +1 -1
- package/assets/js/modules/applied-filters.js +8 -2
- package/assets/js/modules/table.js +1 -1
- package/assets/js/scripts.bundle.js +1 -1
- package/assets/js/scripts.bundle.min.js +1 -1
- package/assets/sass/components/menu.component.scss +7 -5
- package/assets/sass/components/popover.component.scss +28 -0
- package/assets/sass/components/table-basic.global.scss +5 -1
- package/assets/sass/components/tooltip.component.scss +120 -0
- package/assets/sass/elements/buttons--special.scss +45 -0
- package/assets/sass/elements/buttons.scss +6 -0
- package/assets/sass/elements/dialog.scss +8 -7
- package/assets/sass/elements/forms.scss +1 -1
- package/assets/sass/elements/popover.scss +3 -2
- package/assets/ts/components/menu/menu.component.ts +1 -0
- package/assets/ts/components/popover/popover.component.ts +50 -0
- package/assets/ts/components/table-basic/table-basic.component.ts +1 -1
- package/assets/ts/components/tooltip/tooltip.component.ts +98 -0
- package/assets/ts/modules/applied-filters.ts +12 -1
- package/assets/ts/modules/table.ts +1 -1
- package/dist/components.es.js +493 -563
- package/dist/components.umd.js +211 -188
- package/package.json +3 -3
- package/src/components/Filterlist/Filterlist.vue +0 -12
- package/src/components/Popover/Popover.vue +22 -0
- package/src/components/Tooltip/Tooltip.vue +22 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
@use '../_func.scss' as *;
|
|
2
|
+
|
|
3
|
+
*,
|
|
4
|
+
*::before,
|
|
5
|
+
*::after {
|
|
6
|
+
box-sizing: border-box;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
@layer components {
|
|
10
|
+
|
|
11
|
+
:host {
|
|
12
|
+
display: inline;
|
|
13
|
+
position: relative;
|
|
14
|
+
text-decoration: underline;
|
|
15
|
+
text-decoration-style: dashed;
|
|
16
|
+
text-underline-offset: 0.2em;
|
|
17
|
+
overflow-anchor: none;
|
|
18
|
+
cursor: pointer;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.tooltip__anchor {
|
|
22
|
+
|
|
23
|
+
anchor-name: --anchor;
|
|
24
|
+
position: absolute;
|
|
25
|
+
display: block;
|
|
26
|
+
inset: 0;
|
|
27
|
+
height: 100%;
|
|
28
|
+
width: 100%;
|
|
29
|
+
min-width: 1rem;
|
|
30
|
+
left: auto;
|
|
31
|
+
right: 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
:host(:empty) .tooltip__anchor{
|
|
35
|
+
|
|
36
|
+
height: 1rem;
|
|
37
|
+
width: 1rem;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
:host(:empty) .tooltip__anchor:after {
|
|
41
|
+
font-family: "Font Awesome 6 Pro";
|
|
42
|
+
font-weight: 900;
|
|
43
|
+
content: "\f059";
|
|
44
|
+
display: block;
|
|
45
|
+
margin: 0;
|
|
46
|
+
line-height: 1;
|
|
47
|
+
color: var(--colour-primary);
|
|
48
|
+
position: absolute;
|
|
49
|
+
top: 50%;
|
|
50
|
+
left: 50%;
|
|
51
|
+
translate: -50% -50%;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.tooltip__content {
|
|
55
|
+
position: fixed;
|
|
56
|
+
position-anchor: --anchor;
|
|
57
|
+
position-area: center end;
|
|
58
|
+
position-try-fallbacks: bottom span-all, top span-all, start;
|
|
59
|
+
|
|
60
|
+
container-type: anchored;
|
|
61
|
+
max-width: #{rem(270)};
|
|
62
|
+
background: var(--colour-primary);
|
|
63
|
+
color: var(--colour-white);
|
|
64
|
+
padding: rem(24);
|
|
65
|
+
border: none;
|
|
66
|
+
border-radius: 0.5rem;
|
|
67
|
+
box-shadow: 0px 2px 9px rgba(0, 0, 0, 0.11);
|
|
68
|
+
margin: 0.75rem;
|
|
69
|
+
overflow: visible;
|
|
70
|
+
|
|
71
|
+
> strong:first-child {
|
|
72
|
+
display: block;
|
|
73
|
+
padding-bottom: 1rem;
|
|
74
|
+
color: inherit;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
@include media-breakpoint-up(sm, $mobileOnly) {
|
|
78
|
+
max-width: #{rem(335)};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
@include media-breakpoint-up(md, $mobileOnly) {
|
|
82
|
+
max-width: #{rem(360)};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
&::after {
|
|
86
|
+
content: '';
|
|
87
|
+
position: absolute;
|
|
88
|
+
bottom: 50%;
|
|
89
|
+
left: -0.45rem;
|
|
90
|
+
transform: translate(-50%, 0);
|
|
91
|
+
border-width: 0.5rem;
|
|
92
|
+
border-style: solid;
|
|
93
|
+
border-color: transparent var(--colour-primary) transparent transparent;
|
|
94
|
+
margin-bottom: -0.5rem;
|
|
95
|
+
|
|
96
|
+
@container anchored(fallback: top span-all) {
|
|
97
|
+
|
|
98
|
+
left: 50%;
|
|
99
|
+
bottom: auto;
|
|
100
|
+
top: 100%;
|
|
101
|
+
border-color: var(--colour-primary) transparent transparent transparent;
|
|
102
|
+
margin-bottom: -1px;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@container anchored(fallback: bottom span-all) {
|
|
106
|
+
|
|
107
|
+
top: auto;
|
|
108
|
+
bottom: 100%;
|
|
109
|
+
left: 50%;
|
|
110
|
+
border-color: transparent transparent var(--colour-primary) transparent;
|
|
111
|
+
margin-bottom: -1px;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
@container anchored(fallback: start) {
|
|
115
|
+
|
|
116
|
+
display: none;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
@use '../_func' as *;
|
|
2
|
+
|
|
3
|
+
$layers: 'true' !default;
|
|
4
|
+
$mobileOnly: 'false' !default;
|
|
5
|
+
$darkMode: 'true' !default;
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
// #region btn compact
|
|
9
|
+
.btn[popovertarget] {
|
|
10
|
+
|
|
11
|
+
position: relative;
|
|
12
|
+
anchor-name: --button2;
|
|
13
|
+
|
|
14
|
+
> .fa-chevron-down {
|
|
15
|
+
display: none;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
&:after {
|
|
19
|
+
content: '';
|
|
20
|
+
|
|
21
|
+
display: inline-block;
|
|
22
|
+
margin-left: 1em;
|
|
23
|
+
|
|
24
|
+
height: 0.8em;
|
|
25
|
+
width: 0.8em;
|
|
26
|
+
z-index: var(--index-focus);
|
|
27
|
+
background: currentColor;
|
|
28
|
+
mask-image: var(--icon-arrow);
|
|
29
|
+
mask-size: 100%;
|
|
30
|
+
mask-repeat: no-repeat;
|
|
31
|
+
mask-position: 50% 50%;
|
|
32
|
+
-webkit-mask-image: var(--icon-arrow);
|
|
33
|
+
-webkit-mask-size: 100%;
|
|
34
|
+
-webkit-mask-repeat: no-repeat;
|
|
35
|
+
-webkit-mask-position: 50% 50%;
|
|
36
|
+
|
|
37
|
+
transform: rotate(90deg);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
&[aria-pressed]:after {
|
|
41
|
+
transform: rotate(270deg);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// #endregion
|
|
@@ -12,7 +12,8 @@ $darkMode: 'true' !default;
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
// #region Default styling of both modals
|
|
15
|
-
dialog
|
|
15
|
+
dialog,
|
|
16
|
+
[popover] {
|
|
16
17
|
--dialog-padding: #{rem(24)};
|
|
17
18
|
|
|
18
19
|
--mh-padding-inline: var(--dialog-padding);
|
|
@@ -42,13 +43,15 @@ $darkMode: 'true' !default;
|
|
|
42
43
|
overscroll-behavior: contain;
|
|
43
44
|
}
|
|
44
45
|
|
|
45
|
-
dialog[open]
|
|
46
|
+
dialog[open],
|
|
47
|
+
[popover]:popover-open {
|
|
46
48
|
display: flex;
|
|
47
49
|
flex-direction: column;
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
// TODO: when the old modals are depreciated this selector can be simplified
|
|
51
|
-
*:not(.dialog__wrapper) > dialog[open]
|
|
53
|
+
*:not(.dialog__wrapper) > dialog[open],
|
|
54
|
+
*:not(.dialog__wrapper) > [popover]:popover-open {
|
|
52
55
|
|
|
53
56
|
overflow-y: auto;
|
|
54
57
|
width: 90vw;
|
|
@@ -59,8 +62,8 @@ $darkMode: 'true' !default;
|
|
|
59
62
|
overscroll-behavior: contain;
|
|
60
63
|
|
|
61
64
|
@include media-breakpoint-up(sm, $mobileOnly) {
|
|
62
|
-
|
|
63
|
-
padding: var(--dialog-padding);
|
|
65
|
+
//--dialog-padding: #{rem(32)};
|
|
66
|
+
//padding: var(--dialog-padding);
|
|
64
67
|
min-width: rem(335);
|
|
65
68
|
width: fit-content;
|
|
66
69
|
max-width: rem(686);
|
|
@@ -75,11 +78,9 @@ $darkMode: 'true' !default;
|
|
|
75
78
|
}
|
|
76
79
|
// #endregion
|
|
77
80
|
|
|
78
|
-
|
|
79
81
|
details.bg-light {
|
|
80
82
|
margin-inline: calc(var(--dialog-padding) * -1);
|
|
81
83
|
padding-inline: var(--dialog-padding);
|
|
82
84
|
}
|
|
83
85
|
|
|
84
86
|
}
|
|
85
|
-
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
@use '../_func' as *;
|
|
5
5
|
|
|
6
|
-
@use 'input' as *;
|
|
6
|
+
@use './input' as *;
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
$icon-error: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d='M256 32a224 224 0 1 1 0 448 224 224 0 1 1 0-448zm0 480A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c-8.8 0-16 7.2-16 16V272c0 8.8 7.2 16 16 16s16-7.2 16-16V144c0-8.8-7.2-16-16-16zm24 224a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z' fill='#dc3545'/></svg>");
|
|
@@ -71,7 +71,8 @@ $darkMode: 'true' !default;
|
|
|
71
71
|
|
|
72
72
|
//right: auto;
|
|
73
73
|
margin: 0 0 0 #{rem(4)};
|
|
74
|
-
padding: rem(16);
|
|
74
|
+
//padding: rem(16);
|
|
75
|
+
padding: rem(24);
|
|
75
76
|
|
|
76
77
|
&::backdrop {
|
|
77
78
|
display: none;
|
|
@@ -94,7 +95,6 @@ $darkMode: 'true' !default;
|
|
|
94
95
|
min-width: rem(320);
|
|
95
96
|
border-radius: rem(16);
|
|
96
97
|
width: rem(320);
|
|
97
|
-
padding: rem(24);
|
|
98
98
|
|
|
99
99
|
@include media-breakpoint-up(sm, $mobileOnly) {
|
|
100
100
|
width: rem(335);
|
|
@@ -256,3 +256,4 @@ $darkMode: 'true' !default;
|
|
|
256
256
|
}
|
|
257
257
|
// #endregion
|
|
258
258
|
}
|
|
259
|
+
|
|
@@ -40,6 +40,7 @@ class iamMenu extends HTMLElement {
|
|
|
40
40
|
// Set the needed CSS styles to connect the ID attribute to the anchor name
|
|
41
41
|
if (menuID && menuButton) {
|
|
42
42
|
this.setAttribute('role', 'menu');
|
|
43
|
+
this.setAttribute('popover', 'auto');
|
|
43
44
|
this.style['position-anchor'] = `--${menuID}`;
|
|
44
45
|
|
|
45
46
|
menuButton?.setAttribute('aria-haspopup', 'true');
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { trackComponent, trackComponentRegistered } from '../_global';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
trackComponentRegistered('iam-popover');
|
|
5
|
+
|
|
6
|
+
class iamPopover extends HTMLElement {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.attachShadow({ mode: 'open' });
|
|
10
|
+
|
|
11
|
+
const assetLocation = document.body.hasAttribute('data-assets-location')
|
|
12
|
+
? document.body.getAttribute('data-assets-location')
|
|
13
|
+
: '/assets';
|
|
14
|
+
const loadCSS = `@import "${assetLocation}/css/components/popover.component.css";`;
|
|
15
|
+
|
|
16
|
+
const template = document.createElement('template');
|
|
17
|
+
template.innerHTML = `
|
|
18
|
+
<style>
|
|
19
|
+
${loadCSS}
|
|
20
|
+
</style>
|
|
21
|
+
<div>
|
|
22
|
+
<slot></slot>
|
|
23
|
+
</div>
|
|
24
|
+
`;
|
|
25
|
+
|
|
26
|
+
this.shadowRoot.appendChild(template.content.cloneNode(true));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
connectedCallback(): void {
|
|
30
|
+
|
|
31
|
+
const id = this.getAttribute('id');
|
|
32
|
+
const button = document.querySelector(`[popovertarget="${id}"]`);
|
|
33
|
+
|
|
34
|
+
this.setAttribute('popover','auto');
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
button?.addEventListener('click',() => {
|
|
38
|
+
|
|
39
|
+
if(this.matches(':popover-open')){
|
|
40
|
+
button.removeAttribute('aria-pressed');
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
|
|
44
|
+
button.setAttribute('aria-pressed','true');
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export default iamPopover;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { trackComponent, trackComponentRegistered } from '../_global';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
trackComponentRegistered('iam-tooltip');
|
|
5
|
+
|
|
6
|
+
class iamTooltip extends HTMLElement {
|
|
7
|
+
constructor() {
|
|
8
|
+
super();
|
|
9
|
+
this.attachShadow({ mode: 'open' });
|
|
10
|
+
|
|
11
|
+
const assetLocation = document.body.hasAttribute('data-assets-location')
|
|
12
|
+
? document.body.getAttribute('data-assets-location')
|
|
13
|
+
: '/assets';
|
|
14
|
+
const loadCSS = `@import "${assetLocation}/css/components/popover.component.css";`;
|
|
15
|
+
|
|
16
|
+
const template = document.createElement('template');
|
|
17
|
+
template.innerHTML = `
|
|
18
|
+
<style>
|
|
19
|
+
${loadCSS}
|
|
20
|
+
</style>
|
|
21
|
+
<slot></slot>
|
|
22
|
+
<div class="tooltip__anchor">
|
|
23
|
+
</div>
|
|
24
|
+
<div class="tooltip__content" id="tooltip"></div>
|
|
25
|
+
`;
|
|
26
|
+
|
|
27
|
+
this.shadowRoot.appendChild(template.content.cloneNode(true));
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
connectedCallback(): void {
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
const contentWrapper = this.shadowRoot?.querySelector('.tooltip__content');
|
|
34
|
+
const anchor = this.shadowRoot?.querySelector('.tooltip__anchor');
|
|
35
|
+
|
|
36
|
+
if(this.hasAttribute('data-heading'))
|
|
37
|
+
contentWrapper?.innerHTML += `<strong>${this.getAttribute('data-heading')}</strong>`;
|
|
38
|
+
|
|
39
|
+
contentWrapper?.innerHTML += this.getAttribute('title');
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
this.removeAttribute('title');
|
|
43
|
+
|
|
44
|
+
contentWrapper?.setAttribute('popover', 'auto');
|
|
45
|
+
|
|
46
|
+
this?.addEventListener('mouseenter', (event) => {
|
|
47
|
+
|
|
48
|
+
contentWrapper.showPopover();
|
|
49
|
+
});
|
|
50
|
+
this?.addEventListener('mouseleave', (event) => {
|
|
51
|
+
|
|
52
|
+
if(!contentWrapper?.classList.contains('show-popover'))
|
|
53
|
+
contentWrapper.hidePopover();
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
// Check if th component sets the tooltip open by default
|
|
58
|
+
if(this.classList.contains('show-popover')){
|
|
59
|
+
contentWrapper?.classList.add('show-popover');
|
|
60
|
+
|
|
61
|
+
contentWrapper?.setAttribute('popover', 'manual'); // Switch popover type first before showing popover
|
|
62
|
+
contentWrapper.showPopover();
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
this?.addEventListener('click', (event) => {
|
|
66
|
+
|
|
67
|
+
contentWrapper?.classList.toggle('show-popover');
|
|
68
|
+
|
|
69
|
+
if(contentWrapper?.classList.contains('show-popover')){
|
|
70
|
+
|
|
71
|
+
contentWrapper?.setAttribute('popover', 'manual'); // Switch popover type first before showing popover
|
|
72
|
+
contentWrapper.showPopover();
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
|
|
76
|
+
contentWrapper?.setAttribute('popover', 'auto');
|
|
77
|
+
contentWrapper.hidePopover();
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
// Used for documentation
|
|
82
|
+
this?.parentNode?.addEventListener('update', (event) => {
|
|
83
|
+
contentWrapper?.setAttribute('popover', 'auto');
|
|
84
|
+
contentWrapper.hidePopover();
|
|
85
|
+
|
|
86
|
+
setTimeout(() => {
|
|
87
|
+
|
|
88
|
+
contentWrapper?.classList.add('show-popover');
|
|
89
|
+
|
|
90
|
+
contentWrapper?.setAttribute('popover', 'manual'); // Switch popover type first before showing popover
|
|
91
|
+
contentWrapper.showPopover();
|
|
92
|
+
|
|
93
|
+
}, 100);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export default iamTooltip;
|
|
@@ -127,6 +127,10 @@ function createAppliedFilters(container, filters): void {
|
|
|
127
127
|
|
|
128
128
|
|
|
129
129
|
const filterClicked = (filter) => {
|
|
130
|
+
|
|
131
|
+
if(!filter?.hasAttribute('data-name'))
|
|
132
|
+
return false;
|
|
133
|
+
|
|
130
134
|
const names = filter.getAttribute('data-name').split(',');
|
|
131
135
|
|
|
132
136
|
for (let t = 0; t < names.length; t++) {
|
|
@@ -172,6 +176,9 @@ function createAppliedFilters(container, filters): void {
|
|
|
172
176
|
|
|
173
177
|
filterClicked(filter);
|
|
174
178
|
|
|
179
|
+
const clickedEvent = new CustomEvent('filter-clicked',{'detail':filterName });
|
|
180
|
+
container.dispatchEvent(clickedEvent);
|
|
181
|
+
|
|
175
182
|
// If you clicked on the filter on the parent component we want to tell the child component which filter to copy
|
|
176
183
|
if(container.querySelector('dialog iam-applied-filters')) {
|
|
177
184
|
const event = new CustomEvent('filter',{'detail':filterName });
|
|
@@ -196,10 +203,14 @@ function createAppliedFilters(container, filters): void {
|
|
|
196
203
|
});
|
|
197
204
|
|
|
198
205
|
if(dialog){
|
|
206
|
+
const primaryButton = container.querySelector('.btn-primary') ? container.querySelector('.btn-primary') : container.shadowRoot.querySelector('.btn-primary');
|
|
199
207
|
// Force the filters inside of the dialog to effect the filters above
|
|
200
|
-
|
|
208
|
+
primaryButton?.addEventListener('click', (e) => {
|
|
201
209
|
|
|
202
210
|
const event = new CustomEvent('update');
|
|
211
|
+
const submitEvent = new CustomEvent('submit');
|
|
212
|
+
|
|
213
|
+
container.dispatchEvent(submitEvent);
|
|
203
214
|
|
|
204
215
|
if(container.parentElement.closest('iam-applied-filters'))
|
|
205
216
|
container.parentElement.closest('iam-applied-filters').dispatchEvent(event);
|
|
@@ -1396,7 +1396,7 @@ export const loadAjaxTable = async function (component, table, form, pagination)
|
|
|
1396
1396
|
tbody.appendChild(table_row);
|
|
1397
1397
|
});
|
|
1398
1398
|
|
|
1399
|
-
|
|
1399
|
+
component.setAttribute('data-total', parseInt(totalNumber));
|
|
1400
1400
|
//component.setAttribute('data-page', parseInt(currentPage));
|
|
1401
1401
|
|
|
1402
1402
|
//pagination.setAttribute('data-total', totalNumber);
|