@iamproperty/components 3.7.2 → 3.7.4
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/card.css +1 -1
- package/assets/css/components/card.css.map +1 -1
- package/assets/css/components/dialog.css +1 -1
- package/assets/css/components/dialog.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/table.css +1 -1
- package/assets/css/components/table.css.map +1 -1
- package/assets/css/components/tooltips.css +1 -1
- package/assets/css/components/tooltips.css.map +1 -1
- package/assets/css/core.min.css +1 -1
- package/assets/css/core.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.js +5 -5
- package/assets/js/components/accordion/accordion.component.min.js +6 -5
- package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
- package/assets/js/components/applied-filters/applied-filters.component.js +10 -3
- package/assets/js/components/applied-filters/applied-filters.component.min.js +14 -0
- package/assets/js/components/applied-filters/applied-filters.component.min.js.map +1 -0
- package/assets/js/components/card/card.component.js +11 -3
- 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/filterlist/filterlist.component.js +2 -1
- package/assets/js/components/filterlist/filterlist.component.min.js +4 -4
- package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
- package/assets/js/components/header/header.component.js +3 -5
- package/assets/js/components/header/header.component.min.js +4 -8
- package/assets/js/components/header/header.component.min.js.map +1 -1
- package/assets/js/components/pagination/pagination.component.js +4 -1
- package/assets/js/components/pagination/pagination.component.min.js +20 -0
- package/assets/js/components/pagination/pagination.component.min.js.map +1 -0
- package/assets/js/components/table/table.component.js +5 -1
- package/assets/js/components/table/table.component.min.js +14 -12
- package/assets/js/components/table/table.component.min.js.map +1 -1
- package/assets/js/components/tabs/tabs.component.js +2 -1
- package/assets/js/components/tabs/tabs.component.min.js +3 -3
- package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
- package/assets/js/dynamic.min.js +2 -2
- package/assets/js/dynamic.min.js.map +1 -1
- package/assets/js/modules/dialogs.js +8 -1
- package/assets/js/modules/table.js +19 -6
- package/assets/js/scripts.bundle.js +37 -37
- package/assets/js/scripts.bundle.js.map +1 -1
- package/assets/js/scripts.bundle.min.js +2 -2
- package/assets/js/scripts.bundle.min.js.map +1 -1
- package/assets/sass/_corefiles.scss +1 -0
- package/assets/sass/components/card.scss +2 -3
- package/assets/sass/components/dialog.scss +49 -4
- package/assets/sass/components/pagination.scss +2 -1
- package/assets/sass/components/table.scss +26 -12
- package/assets/sass/components/tooltips.scss +137 -49
- package/assets/sass/foundations/buttons.scss +1 -1
- package/assets/sass/foundations/reboot.scss +32 -2
- package/assets/ts/components/accordion/accordion.component.ts +6 -8
- package/assets/ts/components/applied-filters/applied-filters.component.ts +12 -3
- package/assets/ts/components/card/card.component.ts +16 -4
- package/assets/ts/components/filterlist/filterlist.component.ts +4 -2
- package/assets/ts/components/header/header.component.ts +4 -5
- package/assets/ts/components/pagination/pagination.component.ts +4 -1
- package/assets/ts/components/table/table.component.ts +5 -1
- package/assets/ts/components/tabs/tabs.component.ts +3 -1
- package/assets/ts/modules/dialogs.ts +11 -4
- package/assets/ts/modules/table.ts +25 -8
- package/dist/components.es.js +1179 -1148
- package/dist/components.umd.js +55 -36
- package/package.json +1 -1
- package/src/components/Accordion/Accordion.vue +1 -1
- package/src/components/AppliedFilters/AppliedFilters.vue +1 -1
- package/src/components/Filterlist/Filterlist.vue +1 -1
- package/src/components/Header/Header.vue +9 -5
- package/src/components/Pagination/Pagination.vue +1 -1
- package/src/components/Table/Table.vue +1 -1
- package/src/components/Tabs/Tabs.vue +1 -1
- package/src/components/Header/Header.spec.js +0 -34
|
@@ -14,18 +14,15 @@ class iamHeader extends HTMLElement {
|
|
|
14
14
|
this.attachShadow({ mode: 'open'});
|
|
15
15
|
|
|
16
16
|
const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
|
|
17
|
+
const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
|
|
17
18
|
const loadCSS = `@import "${assetLocation}/css/components/header.css";`;
|
|
18
19
|
|
|
19
20
|
const template = document.createElement('template');
|
|
20
21
|
template.innerHTML = `
|
|
21
22
|
<style>
|
|
22
|
-
@import "${
|
|
23
|
+
@import "${coreCSS}";
|
|
23
24
|
${loadCSS}
|
|
24
25
|
${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
|
|
25
|
-
:host {
|
|
26
|
-
max-width:100%!important;
|
|
27
|
-
padding:0!important;
|
|
28
|
-
}
|
|
29
26
|
</style>
|
|
30
27
|
<div class="header-banner">
|
|
31
28
|
<div class="container" part="container">
|
|
@@ -47,6 +44,8 @@ class iamHeader extends HTMLElement {
|
|
|
47
44
|
|
|
48
45
|
connectedCallback() {
|
|
49
46
|
|
|
47
|
+
this.classList.add('loaded');
|
|
48
|
+
|
|
50
49
|
const picture = this.shadowRoot.querySelector('picture');
|
|
51
50
|
const source = this.shadowRoot.querySelector('picture source');
|
|
52
51
|
|
|
@@ -7,11 +7,14 @@ class iamPagination extends HTMLElement {
|
|
|
7
7
|
super();
|
|
8
8
|
this.attachShadow({ mode: 'open'});
|
|
9
9
|
const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
|
|
10
|
+
const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
|
|
10
11
|
|
|
11
12
|
const template = document.createElement('template');
|
|
12
13
|
template.innerHTML = `
|
|
13
14
|
<style>
|
|
14
|
-
@import "${
|
|
15
|
+
@import "${coreCSS}";
|
|
16
|
+
|
|
17
|
+
${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
|
|
15
18
|
</style>
|
|
16
19
|
<div class="pagination__wrapper d-none">
|
|
17
20
|
</div>
|
|
@@ -8,6 +8,7 @@ class iamTable extends HTMLElement {
|
|
|
8
8
|
super();
|
|
9
9
|
this.attachShadow({ mode: 'open'});
|
|
10
10
|
const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
|
|
11
|
+
const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
|
|
11
12
|
|
|
12
13
|
const isCTA = this.classList.contains('table--cta');
|
|
13
14
|
const isExportable = this.classList.contains('table--export');
|
|
@@ -15,11 +16,12 @@ class iamTable extends HTMLElement {
|
|
|
15
16
|
let classList = this.classList.toString();
|
|
16
17
|
|
|
17
18
|
classList = classList.replace('table--cta','');
|
|
19
|
+
classList = classList.replace('table--loading','');
|
|
18
20
|
|
|
19
21
|
const template = document.createElement('template');
|
|
20
22
|
template.innerHTML = `
|
|
21
23
|
<style>
|
|
22
|
-
@import "${
|
|
24
|
+
@import "${coreCSS}";
|
|
23
25
|
|
|
24
26
|
:host(.mh-sm){
|
|
25
27
|
max-height: none!important;
|
|
@@ -30,6 +32,8 @@ class iamTable extends HTMLElement {
|
|
|
30
32
|
:host(.mh-lg){
|
|
31
33
|
max-height: none!important;
|
|
32
34
|
}
|
|
35
|
+
|
|
36
|
+
${this.hasAttribute('css') ? `@import "${this.getAttribute('css')}";` : ``}
|
|
33
37
|
</style>
|
|
34
38
|
${isCTA ? '<div class="table--cta">' : ''}
|
|
35
39
|
<div class="table__wrapper ${classList}">
|
|
@@ -15,10 +15,12 @@ class iamTabs extends HTMLElement {
|
|
|
15
15
|
this.attachShadow({ mode: 'open'});
|
|
16
16
|
|
|
17
17
|
const assetLocation = document.body.hasAttribute('data-assets-location') ? document.body.getAttribute('data-assets-location') : '/assets';
|
|
18
|
+
const coreCSS = document.body.hasAttribute('data-core-css') ? document.body.getAttribute('data-core-css') : `${assetLocation}/css/core.min.css`;
|
|
19
|
+
|
|
18
20
|
const template = document.createElement('template');
|
|
19
21
|
template.innerHTML = `
|
|
20
22
|
<style>
|
|
21
|
-
@import "${
|
|
23
|
+
@import "${coreCSS}";
|
|
22
24
|
|
|
23
25
|
:host(.admin-panel){
|
|
24
26
|
display: contents!important;
|
|
@@ -100,18 +100,14 @@ const extendDialogs = (body) => {
|
|
|
100
100
|
// Popover
|
|
101
101
|
if (event && event.target instanceof HTMLElement && event.target.closest('.dialog__wrapper > button')){
|
|
102
102
|
|
|
103
|
-
// Close existing open popover
|
|
104
|
-
|
|
105
103
|
let btn = event.target.closest('.dialog__wrapper > button');
|
|
106
104
|
let parent = event.target.closest('.dialog__wrapper > button').parentNode;
|
|
107
105
|
let dataEvent = "openPopover"
|
|
108
106
|
let popover = parent.querySelector(':scope > dialog');
|
|
109
107
|
|
|
110
|
-
|
|
111
108
|
if(document.querySelector('dialog[open]') && document.querySelector('dialog[open]') != popover)
|
|
112
109
|
document.querySelector('dialog[open]').close();
|
|
113
110
|
|
|
114
|
-
|
|
115
111
|
// Remove active class from exiting active buttons
|
|
116
112
|
Array.from(document.querySelectorAll('.dialog__wrapper > button')).forEach((btnElement,index) => {
|
|
117
113
|
btnElement.classList.remove('active');
|
|
@@ -166,6 +162,17 @@ const extendDialogs = (body) => {
|
|
|
166
162
|
"id": btn.textContent
|
|
167
163
|
});
|
|
168
164
|
};
|
|
165
|
+
|
|
166
|
+
// Close popovers when clicked away
|
|
167
|
+
if (event && event.target instanceof HTMLElement && !event.target.closest('dialog[open]') && !event.target.closest('.dialog__wrapper > button')){
|
|
168
|
+
|
|
169
|
+
if(document.querySelector('.dialog__wrapper:not([data-keep-open]) > dialog[open]'))
|
|
170
|
+
document.querySelector('.dialog__wrapper:not([data-keep-open]) > dialog[open]').close();
|
|
171
|
+
|
|
172
|
+
Array.from(document.querySelectorAll('.dialog__wrapper:not([data-keep-open]) > button')).forEach((btnElement,index) => {
|
|
173
|
+
btnElement.classList.remove('active');
|
|
174
|
+
});
|
|
175
|
+
}
|
|
169
176
|
});
|
|
170
177
|
|
|
171
178
|
return null
|
|
@@ -43,20 +43,18 @@ export const getLargestLastColWidth = (table) => {
|
|
|
43
43
|
|
|
44
44
|
let largestWidth = 0;
|
|
45
45
|
|
|
46
|
-
Array.from(table.querySelectorAll('tr')).forEach((row, index) => {
|
|
46
|
+
Array.from(table.querySelectorAll('tbody tr')).forEach((row, index) => {
|
|
47
47
|
|
|
48
48
|
let htmlStyles = window.getComputedStyle(document.querySelector('html'));
|
|
49
49
|
let lastColChild = row.querySelector(':scope > *:last-child > *:first-child');
|
|
50
50
|
|
|
51
51
|
if(lastColChild){
|
|
52
52
|
|
|
53
|
+
lastColChild.classList.add('text-nowrap');
|
|
53
54
|
let responsiveWidth = lastColChild.offsetWidth/parseFloat(htmlStyles.fontSize);
|
|
54
|
-
responsiveWidth += 1.
|
|
55
|
+
responsiveWidth += 1.7;
|
|
55
56
|
largestWidth = largestWidth > responsiveWidth ? largestWidth : responsiveWidth;
|
|
56
57
|
}
|
|
57
|
-
|
|
58
|
-
let rowHeight = row.offsetHeight/parseFloat(htmlStyles.fontSize);
|
|
59
|
-
row.style.setProperty("--row-height", `${rowHeight}rem`);
|
|
60
58
|
});
|
|
61
59
|
|
|
62
60
|
return largestWidth;
|
|
@@ -698,6 +696,11 @@ export const addPaginationEventListeners = function(table, form, pagination, wra
|
|
|
698
696
|
url.searchParams.set("page", newPage);
|
|
699
697
|
history.pushState({'type':'pagination','form':form.getAttribute('id'),'page':newPage}, "", url)
|
|
700
698
|
}
|
|
699
|
+
|
|
700
|
+
// scroll back to the top of the table
|
|
701
|
+
const yOffset = -250;
|
|
702
|
+
const y = table.getBoundingClientRect().top + window.pageYOffset + yOffset;
|
|
703
|
+
window.scrollTo({top: y, behavior: 'smooth'});
|
|
701
704
|
}
|
|
702
705
|
|
|
703
706
|
if (event && event.target instanceof HTMLElement && event.target.closest('[data-show]')){
|
|
@@ -778,8 +781,22 @@ export const makeTableFunctional = function(table, form, pagination, wrapper){
|
|
|
778
781
|
// Work out the largest width of the CTA's in the last column
|
|
779
782
|
if(wrapper && wrapper.classList.contains('table--cta')){
|
|
780
783
|
|
|
781
|
-
|
|
782
|
-
|
|
784
|
+
if(!wrapper.hasAttribute('data-cta-width')){
|
|
785
|
+
|
|
786
|
+
const largestWidth = getLargestLastColWidth(table);
|
|
787
|
+
wrapper.style.setProperty("--cta-width", `${largestWidth}rem`);
|
|
788
|
+
wrapper.setAttribute("data-cta-width", `${largestWidth}rem`);
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
function outputsize() {
|
|
792
|
+
|
|
793
|
+
Array.from(table.querySelectorAll('tr')).forEach((row, index) => {
|
|
794
|
+
let rowHeight = row.offsetHeight;
|
|
795
|
+
row.style.setProperty("--row-height", `${rowHeight}px`);
|
|
796
|
+
});
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
new ResizeObserver(outputsize).observe(table)
|
|
783
800
|
}
|
|
784
801
|
}
|
|
785
802
|
|
|
@@ -902,7 +919,7 @@ export const loadAjaxTable = async function (table, form, pagination, wrapper){
|
|
|
902
919
|
wrapper.setAttribute('data-page', parseInt(currentPage));
|
|
903
920
|
wrapper.setAttribute('data-pages', Math.ceil(wrapper.getAttribute('data-total') / wrapper.getAttribute('data-show')));
|
|
904
921
|
|
|
905
|
-
makeTableFunctional(table, form, pagination, wrapper);
|
|
922
|
+
makeTableFunctional(table, form, pagination, wrapper);
|
|
906
923
|
createPaginationButttons(wrapper, pagination);
|
|
907
924
|
|
|
908
925
|
if(parseInt(totalNumber) == 0){
|