@iamproperty/components 7.2.0 → 7.2.1--beta2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/assets/css/components/actionbar.component.css +1 -1
  2. package/assets/css/components/actionbar.component.css.map +1 -1
  3. package/assets/css/components/actionbar.global.css +1 -1
  4. package/assets/css/components/actionbar.global.css.map +1 -1
  5. package/assets/css/components/barchart.component.css +1 -1
  6. package/assets/css/components/barchart.component.css.map +1 -1
  7. package/assets/css/components/card.component.css +1 -1
  8. package/assets/css/components/card.component.css.map +1 -1
  9. package/assets/css/components/carousel.component.css +1 -1
  10. package/assets/css/components/carousel.component.css.map +1 -1
  11. package/assets/css/components/doughnutchart.component.css +1 -1
  12. package/assets/css/components/doughnutchart.component.css.map +1 -1
  13. package/assets/css/components/pagination.css +1 -1
  14. package/assets/css/components/pagination.css.map +1 -1
  15. package/assets/css/components/table-basic.component.css +1 -0
  16. package/assets/css/components/table-basic.component.css.map +1 -0
  17. package/assets/css/components/table-basic.global.css +1 -0
  18. package/assets/css/components/table-basic.global.css.map +1 -0
  19. package/assets/css/components/table.component.css +1 -1
  20. package/assets/css/components/table.component.css.map +1 -1
  21. package/assets/css/components/table.global.css +1 -1
  22. package/assets/css/components/table.global.css.map +1 -1
  23. package/assets/css/components/tabs.config.css +1 -0
  24. package/assets/css/components/tabs.config.css.map +1 -0
  25. package/assets/css/components/tabs.css +1 -1
  26. package/assets/css/components/tabs.css.map +1 -1
  27. package/assets/css/core.min.css +1 -1
  28. package/assets/css/core.min.css.map +1 -1
  29. package/assets/css/mobile-core.min.css +1 -1
  30. package/assets/css/mobile-core.min.css.map +1 -1
  31. package/assets/css/mobile.min.css +1 -1
  32. package/assets/css/mobile.min.css.map +1 -1
  33. package/assets/css/style.min.css +1 -1
  34. package/assets/css/style.min.css.map +1 -1
  35. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  36. package/assets/js/components/actionbar/actionbar.component.min.js +4 -4
  37. package/assets/js/components/address-lookup/address-lookup.component.min.js +1 -1
  38. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  39. package/assets/js/components/barchart/barchart.component.min.js +2 -2
  40. package/assets/js/components/barchart/barchart.component.min.js.map +1 -1
  41. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  42. package/assets/js/components/card/card.component.min.js +2 -2
  43. package/assets/js/components/carousel/carousel.component.min.js +2 -2
  44. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  45. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +2 -2
  46. package/assets/js/components/doughnutchart/doughnutchart.component.min.js.map +1 -1
  47. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  48. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  49. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  50. package/assets/js/components/header/header.component.min.js +1 -1
  51. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  52. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  53. package/assets/js/components/menu/menu.component.min.js +1 -1
  54. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  55. package/assets/js/components/multiselect/multiselect.component.min.js +1 -1
  56. package/assets/js/components/nav/nav.component.min.js +1 -1
  57. package/assets/js/components/notification/notification.component.min.js +1 -1
  58. package/assets/js/components/pagination/pagination.component.js +11 -4
  59. package/assets/js/components/pagination/pagination.component.min.js +5 -5
  60. package/assets/js/components/pagination/pagination.component.min.js.map +1 -1
  61. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  62. package/assets/js/components/search/search.component.min.js +1 -1
  63. package/assets/js/components/search/search.component.min.js.map +1 -1
  64. package/assets/js/components/slider/slider.component.min.js +1 -1
  65. package/assets/js/components/table/table.component.js +36 -198
  66. package/assets/js/components/table/table.component.min.js +13 -23
  67. package/assets/js/components/table/table.component.min.js.map +1 -1
  68. package/assets/js/components/table-ajax/table-ajax.component.js +46 -0
  69. package/assets/js/components/table-ajax/table-ajax.component.min.js +22 -0
  70. package/assets/js/components/table-ajax/table-ajax.component.min.js.map +1 -0
  71. package/assets/js/components/table-basic/table-basic.component.js +46 -0
  72. package/assets/js/components/table-basic/table-basic.component.min.js +22 -0
  73. package/assets/js/components/table-basic/table-basic.component.min.js.map +1 -0
  74. package/assets/js/components/table-no-submit/table-no-submit.component.js +77 -0
  75. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +22 -0
  76. package/assets/js/components/table-no-submit/table-no-submit.component.min.js.map +1 -0
  77. package/assets/js/components/table-submit/table-submit.component.js +55 -0
  78. package/assets/js/components/table-submit/table-submit.component.min.js +22 -0
  79. package/assets/js/components/table-submit/table-submit.component.min.js.map +1 -0
  80. package/assets/js/components/tabs/tabs.component.js +2 -0
  81. package/assets/js/components/tabs/tabs.component.min.js +6 -4
  82. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  83. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  84. package/assets/js/modules/helpers.js +4 -0
  85. package/assets/js/modules/table.js +544 -294
  86. package/assets/js/modules/tabs.js +43 -13
  87. package/assets/js/scripts.bundle.js +3 -3
  88. package/assets/js/scripts.bundle.js.map +1 -1
  89. package/assets/js/scripts.bundle.min.js +2 -2
  90. package/assets/js/scripts.bundle.min.js.map +1 -1
  91. package/assets/js/scripts.js +31 -24
  92. package/assets/js/tests/table.spec.js +0 -31
  93. package/assets/sass/_components.scss +3 -0
  94. package/assets/sass/components/actionbar.component.scss +1 -0
  95. package/assets/sass/components/actionbar.global.scss +0 -70
  96. package/assets/sass/components/pagination.scss +2 -1
  97. package/assets/sass/components/table-basic.component.scss +132 -0
  98. package/assets/sass/components/table-basic.global.scss +365 -0
  99. package/assets/sass/components/table.component.scss +2 -133
  100. package/assets/sass/components/table.global.scss +175 -434
  101. package/assets/sass/components/tabs.config.scss +27 -0
  102. package/assets/sass/components/tabs.scss +33 -1
  103. package/assets/sass/elements/buttons--global.scss +2 -1
  104. package/assets/sass/elements/table.element.scss +9 -7
  105. package/assets/sass/foundations/root.scss +1 -1
  106. package/assets/ts/components/pagination/pagination.component.ts +17 -4
  107. package/assets/ts/components/table/table.component.ts +49 -243
  108. package/assets/ts/components/table-ajax/table-ajax.component.ts +64 -0
  109. package/assets/ts/components/table-basic/README.md +40 -0
  110. package/assets/ts/components/table-basic/table-basic.component.ts +56 -0
  111. package/assets/ts/components/table-no-submit/table-no-submit.component.ts +134 -0
  112. package/assets/ts/components/table-submit/table-submit.component.ts +64 -0
  113. package/assets/ts/components/tabs/tabs.component.ts +2 -0
  114. package/assets/ts/modules/helpers.ts +6 -0
  115. package/assets/ts/modules/table.ts +656 -328
  116. package/assets/ts/modules/tabs.ts +54 -12
  117. package/assets/ts/scripts.ts +5 -3
  118. package/assets/ts/tests/table.spec.ts +0 -38
  119. package/dist/components.es.js +138 -136
  120. package/dist/components.umd.js +108 -116
  121. package/package.json +1 -1
  122. package/src/components/Table/TableAjax.vue +34 -0
  123. package/src/components/Table/TableBasic.vue +34 -0
  124. package/src/components/Table/TableNoSubmit.vue +34 -0
  125. package/src/components/Table/TableSubmit.vue +34 -0
  126. package/src/components/Table/Table.spec.js +0 -47
@@ -3,6 +3,7 @@ import { getSwipeDirection } from './helpers';
3
3
  export const createTabsLinks = function (tabsElement: Element): void {
4
4
  const detailsORLinks = tabsElement.querySelectorAll(':scope > details, :scope > a');
5
5
  let tabLinks = tabsElement.querySelector(':scope > .tabs__links');
6
+ let tabDropdown = tabsElement.querySelector(':scope .tabs__dropdown');
6
7
 
7
8
  if (tabsElement.shadowRoot && tabsElement.shadowRoot.querySelector('.tabs__links'))
8
9
  tabLinks = tabsElement.shadowRoot.querySelector('.tabs__links');
@@ -18,10 +19,19 @@ export const createTabsLinks = function (tabsElement: Element): void {
18
19
  tabsElement.prepend(tabLinksWrapper);
19
20
  }
20
21
 
22
+ if (!tabDropdown) {
23
+ tabDropdown = document.createElement('select');
24
+
25
+ tabDropdown.classList.add('tabs__dropdown');
26
+
27
+ tabsElement.prepend(tabDropdown);
28
+ }
29
+
21
30
  // Create the tab buttons from the summary titles
22
31
  let tabindex = 0;
23
32
  detailsORLinks.forEach((element) => {
24
33
  let button = document.createElement('button');
34
+ const dropdownOpt = document.createElement('option');
25
35
 
26
36
  if (element.matches('details')) {
27
37
  const summary = element.querySelector(':scope > summary');
@@ -38,6 +48,11 @@ export const createTabsLinks = function (tabsElement: Element): void {
38
48
  button.classList.add('link');
39
49
  button.setAttribute('data-index', tabindex);
40
50
  button.setAttribute('part', 'tab-link');
51
+
52
+ dropdownOpt.innerHTML = `${summary.innerText}`;
53
+ dropdownOpt.value = summary.innerText.replace(/\s+/g, '-').toLowerCase();
54
+ dropdownOpt.setAttribute('data-index', tabindex);
55
+
41
56
  element.setAttribute('tabindex', '-1');
42
57
 
43
58
  if (isDisabled) {
@@ -51,6 +66,8 @@ export const createTabsLinks = function (tabsElement: Element): void {
51
66
 
52
67
  button.classList.add('link');
53
68
  tabLinks.appendChild(button);
69
+
70
+ tabDropdown.appendChild(dropdownOpt);
54
71
  });
55
72
  };
56
73
 
@@ -59,6 +76,7 @@ export const setTabsEventHandlers = function (tabsElement: Element): void {
59
76
  const summaries = tabsElement.querySelectorAll(':scope > details > summary');
60
77
  let buttonWrapper = tabsElement.querySelector(':scope .tabs__links');
61
78
  let buttons = tabsElement.querySelectorAll(':scope .tabs__links > button');
79
+ const tabDropdown = tabsElement.querySelector(':scope .tabs__dropdown');
62
80
 
63
81
  let nextButton = tabsElement.querySelector(':scope .tabs__next');
64
82
 
@@ -69,7 +87,7 @@ export const setTabsEventHandlers = function (tabsElement: Element): void {
69
87
  if (tabsElement.shadowRoot) {
70
88
  buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');
71
89
  buttonWrapper = tabsElement.shadowRoot.querySelector('.tabs__links');
72
- nextButton = tabsElement.shadowRoot.querySelector(':scope .tabs__next');
90
+ nextButton = tabsElement.shadowRoot.querySelector('.tabs__next');
73
91
  }
74
92
 
75
93
  // Set the on click for the tab buttons, these will open the details box it matches too
@@ -92,11 +110,14 @@ export const setTabsEventHandlers = function (tabsElement: Element): void {
92
110
  behavior: 'smooth',
93
111
  });
94
112
 
95
- details.forEach((detail, detailsIndex) => {
96
- const detailsOpen = button.getAttribute('data-index') == detailsIndex ? true : false;
113
+ //Handles showing correct content
114
+ toggleTab(details, button);
97
115
 
98
- if (detailsOpen) detail.setAttribute('open', detailsOpen);
99
- else detail.removeAttribute('open');
116
+ // Data layer Open Event
117
+ window.dataLayer = window.dataLayer || [];
118
+ window.dataLayer.push({
119
+ event: 'openTab',
120
+ tabTitle: button.textContent,
100
121
  });
101
122
 
102
123
  if (button.matches(':last-child')) {
@@ -104,14 +125,9 @@ export const setTabsEventHandlers = function (tabsElement: Element): void {
104
125
  } else {
105
126
  nextButton?.removeAttribute('disabled');
106
127
  }
107
-
108
- // Data layer Open Event
109
- window.dataLayer = window.dataLayer || [];
110
- window.dataLayer.push({
111
- event: 'openTab',
112
- tabTitle: button.textContent,
113
- });
114
128
  });
129
+
130
+ dropdownTabSelector(details, tabDropdown);
115
131
  });
116
132
 
117
133
  buttonWrapper.addEventListener('scrollend', () => {
@@ -151,6 +167,7 @@ export const setTabsEventHandlers = function (tabsElement: Element): void {
151
167
 
152
168
  const currentTab = buttonWrapper.querySelector('[aria-pressed="true"]');
153
169
  const nextTab = currentTab.nextSibling;
170
+
154
171
  if (nextTab) nextTab.click();
155
172
  });
156
173
 
@@ -192,6 +209,31 @@ export const setTabsEventHandlers = function (tabsElement: Element): void {
192
209
  }
193
210
  };
194
211
 
212
+ export const toggleTab = function (details: Array, button: Element): boolean | void {
213
+ details.forEach((detail, detailsIndex) => {
214
+ const detailsOpen = button.getAttribute('data-index') == detailsIndex ? true : false;
215
+
216
+ if (detailsOpen) detail.setAttribute('open', detailsOpen);
217
+ else detail.removeAttribute('open');
218
+ });
219
+ };
220
+
221
+ export const dropdownTabSelector = function (details: Array, dropdown: Element): boolean | void {
222
+ dropdown.addEventListener('change', (e) => {
223
+ e.preventDefault();
224
+ const selected = dropdown.options[dropdown.selectedIndex];
225
+
226
+ toggleTab(details, selected);
227
+
228
+ // Data layer Open Event
229
+ window.dataLayer = window.dataLayer || [];
230
+ window.dataLayer.push({
231
+ event: 'openTab',
232
+ tabTitle: selected.innerText,
233
+ });
234
+ });
235
+ };
236
+
195
237
  export const openFirstTab = function (tabsElement: Element): boolean | void {
196
238
  if (!tabsElement.querySelector(':scope > details')) return false;
197
239
 
@@ -9,6 +9,8 @@ const components = [
9
9
  'accordion',
10
10
  'header',
11
11
  'table',
12
+ 'table-basic',
13
+ 'table-no-submit',
12
14
  'tabs',
13
15
  'card',
14
16
  'filter-card',
@@ -47,7 +49,7 @@ document.addEventListener('DOMContentLoaded', function () {
47
49
 
48
50
  extendDialogs(document.body);
49
51
  extendInputs(document.body);
50
-
52
+ /*
51
53
  const prefix = 'iam';
52
54
  const options = {
53
55
  rootMargin: '50px',
@@ -62,9 +64,8 @@ document.addEventListener('DOMContentLoaded', function () {
62
64
  const callback = (entries: any): void => {
63
65
  entries.forEach((entry: any) => {
64
66
  if (entry.intersectionRatio > 0) {
65
- console.log(component);
66
67
 
67
- import(/* @vite-ignore */ `../js/components/${component}/${component}${componentExt}`)
68
+ import(`../js/components/${component}/${component}${componentExt}`)
68
69
  .then((module) => {
69
70
  if (!window.customElements.get(`${prefix}-${component}`))
70
71
  window.customElements.define(`${prefix}-${component}`, module.default);
@@ -81,4 +82,5 @@ document.addEventListener('DOMContentLoaded', function () {
81
82
  const intObserver = new IntersectionObserver(callback, options);
82
83
  intObserver.observe(document.getElementsByTagName(`${prefix}-${component}`)[0]);
83
84
  });
85
+ */
84
86
  });
@@ -66,30 +66,6 @@ describe('addDataAttributes', () => {
66
66
  });
67
67
  });
68
68
 
69
- describe('createSearchDataList', () => {
70
- const table = document.createElement('table');
71
- table.innerHTML = basicTable;
72
- const form = document.createElement('form');
73
- form.innerHTML += `<div><input name="search" id="search" type="text" class="form-control" data-search="Heading 1"></div>`;
74
-
75
- tableModule.addDataAttributes(table);
76
- tableModule.createSearchDataList(table, form);
77
-
78
- test('should create a datalist populated by the defined columns in the data-search ', () => {
79
- expect(form.querySelectorAll('datalist').length).toEqual(1);
80
- expect(form.querySelectorAll('datalist option').length).toEqual(2);
81
- expect(form.querySelector('datalist option:nth-child(1)').value).toEqual('Cell 1');
82
- expect(form.querySelector('datalist option:nth-child(2)').value).toEqual('Different Cell 1');
83
- });
84
-
85
- test('should set the autocomplete attribute to off', () => {
86
- expect(form.querySelectorAll('datalist').length).toEqual(1);
87
- expect(form.querySelectorAll('datalist option').length).toEqual(2);
88
- expect(form.querySelector('datalist option:nth-child(1)').value).toEqual('Cell 1');
89
- expect(form.querySelector('input').getAttribute('autocomplete')).toEqual('off');
90
- });
91
- });
92
-
93
69
  describe('sortTable', () => {
94
70
  const table = document.createElement('table');
95
71
  table.innerHTML = basicTable;
@@ -107,20 +83,6 @@ describe('sortTable', () => {
107
83
  });
108
84
  });
109
85
 
110
- describe('filterTable', () => {
111
- const table = document.createElement('table');
112
- table.innerHTML = basicTable;
113
- const form = document.createElement('form');
114
- form.innerHTML += `<div><input type="text" name="filter" id="filter" data-filter="Heading 2" value="High" /></div>`;
115
-
116
- tableModule.addDataAttributes(table);
117
- tableModule.filterTable(table, form, document.createElement('div'));
118
-
119
- test('should filter the table to only show high values', () => {
120
- expect(table.querySelectorAll('tbody tr.filtered--matched').length).toEqual(1);
121
- });
122
- });
123
-
124
86
  describe('formatCell', () => {
125
87
  test('should format the text correctly', () => {
126
88
  expect(tableModule.formatCell('date', '2023-05-15 12:10:45.000000')).toEqual('15 May 23');