@iamproperty/components 4.1.1-beta-7 → 5.1.0-beta

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 (205) hide show
  1. package/assets/css/components/accordion.css +1 -1
  2. package/assets/css/components/accordion.css.map +1 -1
  3. package/assets/css/components/accordion.global.css +1 -0
  4. package/assets/css/components/accordion.global.css.map +1 -0
  5. package/assets/css/components/actionbar.css +1 -1
  6. package/assets/css/components/actionbar.css.map +1 -1
  7. package/assets/css/components/actionbar.global.css +1 -0
  8. package/assets/css/components/actionbar.global.css.map +1 -0
  9. package/assets/css/components/card.css +1 -1
  10. package/assets/css/components/card.css.map +1 -1
  11. package/assets/css/components/card.global.css +1 -0
  12. package/assets/css/components/card.global.css.map +1 -0
  13. package/assets/css/components/collapsible-side.css +1 -1
  14. package/assets/css/components/collapsible-side.css.map +1 -1
  15. package/assets/css/components/component.native.css +1 -0
  16. package/assets/css/components/component.native.css.map +1 -0
  17. package/assets/css/components/component.reset.css +1 -1
  18. package/assets/css/components/component.reset.css.map +1 -1
  19. package/assets/css/components/header.css +1 -1
  20. package/assets/css/components/header.css.map +1 -1
  21. package/assets/css/components/nav.css +1 -1
  22. package/assets/css/components/nav.css.map +1 -1
  23. package/assets/css/components/nav.global.css +1 -0
  24. package/assets/css/components/{nav-global.css.map → nav.global.css.map} +1 -1
  25. package/assets/css/components/notification.global.css +1 -0
  26. package/assets/css/components/notification.global.css.map +1 -0
  27. package/assets/css/components/slider.css +1 -0
  28. package/assets/css/components/slider.css.map +1 -0
  29. package/assets/css/components/stepper.css +1 -1
  30. package/assets/css/components/stepper.css.map +1 -1
  31. package/assets/css/components/table.css +1 -1
  32. package/assets/css/components/table.css.map +1 -1
  33. package/assets/css/components/table.global.css +1 -1
  34. package/assets/css/components/table.global.css.map +1 -1
  35. package/assets/css/components/tabs.css +1 -1
  36. package/assets/css/components/tabs.css.map +1 -1
  37. package/assets/css/core.min.css +1 -1
  38. package/assets/css/core.min.css.map +1 -1
  39. package/assets/css/style.min.css +1 -1
  40. package/assets/css/style.min.css.map +1 -1
  41. package/assets/favicons/manifest.json +1 -1
  42. package/assets/fonts/qanelas-semibold-webfont.woff +0 -0
  43. package/assets/fonts/qanelas-semibold-webfont.woff2 +0 -0
  44. package/assets/img/illustrations/add-new-property.png +0 -0
  45. package/assets/img/illustrations/auctioneer.png +0 -0
  46. package/assets/img/illustrations/branch.png +0 -0
  47. package/assets/img/illustrations/company-level.png +0 -0
  48. package/assets/img/illustrations/contractors.png +0 -0
  49. package/assets/img/illustrations/find-existing-property.png +0 -0
  50. package/assets/img/illustrations/green/add-new-property.png +0 -0
  51. package/assets/img/illustrations/green/auctioneer.png +0 -0
  52. package/assets/img/illustrations/green/branch.png +0 -0
  53. package/assets/img/illustrations/green/buyer.png +0 -0
  54. package/assets/img/illustrations/green/company-level.png +0 -0
  55. package/assets/img/illustrations/green/contractors.png +0 -0
  56. package/assets/img/illustrations/green/estate-agents.png +0 -0
  57. package/assets/img/illustrations/green/find-existing-property.png +0 -0
  58. package/assets/img/illustrations/green/landlords.png +0 -0
  59. package/assets/img/illustrations/green/seller.png +0 -0
  60. package/assets/img/illustrations/green/whats-new-2.png +0 -0
  61. package/assets/img/illustrations/green/whats-new.png +0 -0
  62. package/assets/img/illustrations/information-works.png +0 -0
  63. package/assets/img/illustrations/landlords.png +0 -0
  64. package/assets/img/illustrations/whats-new-2.png +0 -0
  65. package/assets/img/illustrations/whats-new.png +0 -0
  66. package/assets/js/components/accordion/accordion.component.js +4 -0
  67. package/assets/js/components/accordion/accordion.component.min.js +6 -5
  68. package/assets/js/components/accordion/accordion.component.min.js.map +1 -1
  69. package/assets/js/components/actionbar/actionbar.component.js +6 -0
  70. package/assets/js/components/actionbar/actionbar.component.min.js +6 -5
  71. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  72. package/assets/js/components/address-lookup/address-lookup.component.js +1 -1
  73. package/assets/js/components/address-lookup/address-lookup.component.min.js +2 -2
  74. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  75. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  76. package/assets/js/components/card/card.component.js +4 -0
  77. package/assets/js/components/card/card.component.min.js +4 -3
  78. package/assets/js/components/card/card.component.min.js.map +1 -1
  79. package/assets/js/components/collapsible-side/collapsible-side.component.js +2 -0
  80. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +4 -4
  81. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  82. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  83. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  84. package/assets/js/components/header/header.component.min.js +2 -2
  85. package/assets/js/components/nav/nav.component.js +22 -15
  86. package/assets/js/components/nav/nav.component.min.js +6 -5
  87. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  88. package/assets/js/components/notification/notification.component.js +4 -0
  89. package/assets/js/components/notification/notification.component.min.js +4 -3
  90. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  91. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  92. package/assets/js/components/slider/slider.component.js +143 -0
  93. package/assets/js/components/table/table.component.js +1 -1
  94. package/assets/js/components/table/table.component.min.js +5 -5
  95. package/assets/js/components/table/table.component.min.js.map +1 -1
  96. package/assets/js/components/tabs/tabs.component.js +2 -0
  97. package/assets/js/components/tabs/tabs.component.min.js +5 -3
  98. package/assets/js/components/tabs/tabs.component.min.js.map +1 -1
  99. package/assets/js/dynamic.min.js +5 -5
  100. package/assets/js/dynamic.min.js.map +1 -1
  101. package/assets/js/modules/carousel.js +5 -5
  102. package/assets/js/modules/dialogs.js +4 -4
  103. package/assets/js/modules/helpers.js +1 -1
  104. package/assets/js/modules/inputs.js +44 -3
  105. package/assets/js/modules/table.js +3 -1
  106. package/assets/js/modules/tabs.js +29 -31
  107. package/assets/js/scripts.bundle.js +22 -21
  108. package/assets/js/scripts.bundle.js.map +1 -1
  109. package/assets/js/scripts.bundle.min.js +2 -2
  110. package/assets/js/scripts.bundle.min.js.map +1 -1
  111. package/assets/js/tests/slider.spec.js +20 -0
  112. package/assets/sass/_components.scss +0 -6
  113. package/assets/sass/_corefiles.scss +9 -90
  114. package/assets/sass/_elements.scss +15 -15
  115. package/assets/sass/_fonts.scss +9 -1
  116. package/assets/sass/components/accordion.global.scss +135 -0
  117. package/assets/sass/components/accordion.scss +6 -192
  118. package/assets/sass/components/{actionbar-global.scss → actionbar.global.scss} +3 -1
  119. package/assets/sass/components/actionbar.scss +2 -2
  120. package/assets/sass/components/{card-global.scss → card.global.scss} +2 -23
  121. package/assets/sass/components/card.scss +21 -0
  122. package/assets/sass/components/collapsible-side.scss +18 -16
  123. package/assets/sass/components/component.native.scss +37 -0
  124. package/assets/sass/components/component.reset.scss +1 -3
  125. package/assets/sass/components/header.scss +6 -1
  126. package/assets/sass/components/{nav-global.scss → nav.global.scss} +6 -5
  127. package/assets/sass/components/nav.scss +4 -4
  128. package/assets/sass/components/notification.global.scss +41 -0
  129. package/assets/sass/components/slider.scss +121 -0
  130. package/assets/sass/components/stepper.scss +1 -1
  131. package/assets/sass/components/table.global.scss +618 -65
  132. package/assets/sass/components/table.scss +1 -1
  133. package/assets/sass/components/tabs.scss +2 -5
  134. package/assets/sass/core.scss +1 -3
  135. package/assets/sass/{components → elements}/admin-panel.scss +5 -1
  136. package/assets/sass/{foundations → elements}/buttons.scss +1 -1
  137. package/assets/sass/{components → elements}/container.scss +17 -0
  138. package/assets/sass/{components → elements}/dialog.scss +2 -7
  139. package/assets/sass/{components → elements}/forms.scss +142 -14
  140. package/assets/sass/elements/table.element.scss +102 -0
  141. package/assets/sass/{foundations → elements}/type.scss +7 -5
  142. package/assets/sass/error.scss +1 -1
  143. package/assets/sass/foundations/reboot.scss +48 -0
  144. package/assets/sass/foundations/root.scss +6 -0
  145. package/assets/sass/main.scss +0 -2
  146. package/assets/sass/templates/form.scss +1 -0
  147. package/assets/ts/components/accordion/accordion.component.ts +5 -0
  148. package/assets/ts/components/actionbar/actionbar.component.ts +8 -0
  149. package/assets/ts/components/address-lookup/address-lookup.component.ts +1 -1
  150. package/assets/ts/components/card/card.component.ts +5 -0
  151. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +3 -1
  152. package/assets/ts/components/nav/nav.component.ts +26 -15
  153. package/assets/ts/components/notification/notification.component.ts +4 -0
  154. package/assets/ts/components/slider/README.md +26 -0
  155. package/assets/ts/components/slider/slider.component.ts +189 -0
  156. package/assets/ts/components/table/table.component.ts +1 -1
  157. package/assets/ts/components/tabs/tabs.component.ts +2 -0
  158. package/assets/ts/modules/carousel.ts +5 -5
  159. package/assets/ts/modules/dialogs.ts +5 -5
  160. package/assets/ts/modules/helpers.ts +1 -1
  161. package/assets/ts/modules/inputs.ts +61 -4
  162. package/assets/ts/modules/table.ts +5 -3
  163. package/assets/ts/modules/tabs.ts +38 -41
  164. package/assets/ts/tests/slider.spec.ts +33 -0
  165. package/dist/components.es.js +974 -1415
  166. package/dist/components.umd.js +294 -133
  167. package/dist/style.css +1 -1
  168. package/package.json +5 -4
  169. package/src/components/Accordion/Accordion.vue +12 -5
  170. package/src/components/Actionbar/Actionbar.vue +12 -5
  171. package/src/components/Card/Card.vue +1 -1
  172. package/src/components/Header/Header.vue +9 -3
  173. package/src/components/Nav/Nav.vue +1 -1
  174. package/src/components/Slider/README.md +11 -0
  175. package/src/components/Slider/Slider.vue +25 -0
  176. package/src/components/Stepper/Step.vue +1 -1
  177. package/src/components/Tabs/Tabs.vue +14 -5
  178. package/assets/css/components/actionbar-global.css +0 -1
  179. package/assets/css/components/actionbar-global.css.map +0 -1
  180. package/assets/css/components/admin-panel.css +0 -1
  181. package/assets/css/components/admin-panel.css.map +0 -1
  182. package/assets/css/components/card-global.css +0 -1
  183. package/assets/css/components/card-global.css.map +0 -1
  184. package/assets/css/components/container.css +0 -1
  185. package/assets/css/components/container.css.map +0 -1
  186. package/assets/css/components/dialog.css +0 -1
  187. package/assets/css/components/dialog.css.map +0 -1
  188. package/assets/css/components/forms.css +0 -1
  189. package/assets/css/components/forms.css.map +0 -1
  190. package/assets/css/components/lists.css +0 -1
  191. package/assets/css/components/lists.css.map +0 -1
  192. package/assets/css/components/nav-global.css +0 -1
  193. package/assets/css/components/table.extras.css +0 -1
  194. package/assets/css/components/table.extras.css.map +0 -1
  195. package/assets/css/components/tooltips.css +0 -1
  196. package/assets/css/components/tooltips.css.map +0 -1
  197. package/assets/sass/_forms.scss +0 -10
  198. package/assets/sass/components/table.extras.scss +0 -650
  199. package/assets/sass/foundations/circles.scss +0 -75
  200. /package/assets/sass/{foundations → elements}/brand.scss +0 -0
  201. /package/assets/sass/{foundations → elements}/icons.scss +0 -0
  202. /package/assets/sass/{foundations → elements}/links.scss +0 -0
  203. /package/assets/sass/{components → elements}/lists.scss +0 -0
  204. /package/assets/sass/{foundations → elements}/media.scss +0 -0
  205. /package/assets/sass/{components → elements}/tooltips.scss +0 -0
@@ -2,6 +2,7 @@
2
2
  export const createTabsLinks = function(tabsElement: Element) {
3
3
 
4
4
  const details = tabsElement.querySelectorAll(':scope > details');
5
+ const detailsORLinks = tabsElement.querySelectorAll(':scope > details, :scope > a');
5
6
  let summaries = tabsElement.querySelectorAll(':scope > details > summary');
6
7
  let tabLinks = tabsElement.querySelector(':scope > .tabs__links');
7
8
 
@@ -20,33 +21,41 @@ export const createTabsLinks = function(tabsElement: Element) {
20
21
  }
21
22
 
22
23
  // Create the tab buttons from the summary titles
23
- details.forEach((detail, index) => {
24
+ let tabindex = 0;
25
+ detailsORLinks.forEach((element, index) => {
26
+
27
+ let button = document.createElement('button');
24
28
 
25
- let summary = detail.querySelector(':scope > summary');
26
- let isDisabled = summary.classList.contains('disabled')
29
+ if(element.matches('details')){
27
30
 
28
- summary.classList.add('visually-hidden');
29
-
30
- let button = document.createElement('button');
31
+ let summary = element.querySelector(':scope > summary');
32
+ let isDisabled = summary.classList.contains('disabled')
31
33
 
32
- if (detail.hasAttribute('id')) {
33
- button = document.createElement('a');
34
- button.setAttribute('href',`#${detail.getAttribute('id')}`);
35
- }
34
+ summary.classList.add('visually-hidden');
35
+
36
+ if (element.hasAttribute('id'))
37
+ button.setAttribute('data-id',`${element.getAttribute('id')}`);
36
38
 
37
- if (detail.hasAttribute('open')) {
38
- button.setAttribute('aria-pressed',true);
39
+ if (element.hasAttribute('open')) {
40
+ button.setAttribute('aria-pressed',true);
41
+ }
42
+ button.innerHTML = `${summary.innerText}`;
43
+ button.classList.add('link');
44
+ button.setAttribute('data-index',tabindex);
45
+ element.setAttribute('tabindex','-1');
46
+
47
+ if (isDisabled) {
48
+ button.classList.add('disabled')
49
+ }
50
+
51
+ tabindex++;
39
52
  }
40
-
41
- button.innerHTML = `${summary.innerText}`;
42
- button.classList.add('link');
43
- button.setAttribute('data-index',index);
44
- button.setAttribute('tabindex','-1');
53
+ else if(element.matches('a')){
45
54
 
46
- if (isDisabled) {
47
- button.classList.add('disabled')
55
+ button = element;
48
56
  }
49
57
 
58
+ button.classList.add('link');
50
59
  tabLinks.appendChild(button);
51
60
  });
52
61
 
@@ -56,10 +65,10 @@ export const setTabsEventHandlers = function(tabsElement: Element){
56
65
 
57
66
  let details = tabsElement.querySelectorAll(':scope > details');
58
67
  let summaries = tabsElement.querySelectorAll(':scope > details > summary');
59
- let buttons = tabsElement.querySelectorAll(':scope .tabs__links > .link');
68
+ let buttons = tabsElement.querySelectorAll(':scope .tabs__links > button');
60
69
 
61
70
  if(tabsElement.shadowRoot)
62
- buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > .link');
71
+ buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');
63
72
 
64
73
  // Set the on click for the tab buttons, these will open the details box it matches too
65
74
  buttons.forEach((button) => {
@@ -83,9 +92,6 @@ export const setTabsEventHandlers = function(tabsElement: Element){
83
92
  else
84
93
  detail.removeAttribute('open')
85
94
  });
86
-
87
- if(button.hasAttribute('href'))
88
- history.pushState(undefined, undefined, button.getAttribute('href'));
89
95
 
90
96
  // Data layer Open Event
91
97
  window.dataLayer = window.dataLayer || [];
@@ -99,18 +105,8 @@ export const setTabsEventHandlers = function(tabsElement: Element){
99
105
 
100
106
  // Make sure we dont loose existing summary functionality
101
107
  summaries.forEach((summary, index) => {
102
-
103
- // Maintain the focus on the summary element but visually highlight the tab button
104
- summary.addEventListener("focus", (e) => {
105
- buttons.forEach((button) => {
106
-
107
- button.classList.remove('focus');
108
- });
109
-
110
- buttons[index].classList.add('focus');
111
- });
112
-
113
108
  summary.addEventListener("click", (e) => {
109
+
114
110
  e.preventDefault();
115
111
  buttons[index].click();
116
112
  });
@@ -120,15 +116,16 @@ export const setTabsEventHandlers = function(tabsElement: Element){
120
116
 
121
117
  export const openFirstTab = function(tabsElement: Element){
122
118
 
119
+ if(!tabsElement.querySelector(':scope > details'))
120
+ return false;
121
+
123
122
  let details = tabsElement.querySelectorAll(':scope > details');
124
- let buttons = tabsElement.querySelectorAll(':scope > .tabs__links > button, .tabs__links > a');
123
+ let buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button');
125
124
 
126
- if(tabsElement.shadowRoot)
127
- buttons = tabsElement.shadowRoot.querySelectorAll('.tabs__links > button, .tabs__links > a');
128
125
 
129
- if(location.hash && tabsElement.querySelector(`.tabs__links [href="${location.hash}"]`)){
130
-
131
- tabsElement.querySelector(`[href="${location.hash}"]`).setAttribute('open',true);
126
+ if(location.hash && tabsElement.shadowRoot.querySelector(`.tabs__links [data-id="${location.hash.replace('#','')}"]`)){
127
+
128
+ tabsElement.shadowRoot.querySelector(`[data-id="${location.hash.replace('#','')}"]`).setAttribute('aria-pressed',true);
132
129
  tabsElement.querySelector(`details[id="${location.hash.replace('#','')}"]`).setAttribute('open',true);
133
130
  }
134
131
  else if(!tabsElement.querySelector(`details[open]`)) {
@@ -0,0 +1,33 @@
1
+ // @ts-nocheck
2
+ import '@testing-library/jest-dom'
3
+ import * as tableModule from "../modules/table";
4
+ import puppeteer from 'puppeteer';
5
+ import "expect-puppeteer";
6
+
7
+
8
+ import iamSlider from "../components/slider/slider.component";
9
+
10
+ describe('The slider component', () => {
11
+
12
+ if (!window.customElements.get(`iam-slider`))
13
+ window.customElements.define(`iam-slider`, iamSlider);
14
+
15
+ test('should always show the minimum and maximum values that it can be set', () => {
16
+
17
+ document.body.innerHTML = `<label>Input field label <iam-slider><input type="number" name="percent" min="0" max="100" value="15" step="1" /></iam-slider></label>`;
18
+ let component = document.querySelector('iam-slider');
19
+
20
+ expect(component.shadowRoot.innerHTML).toContain('<div class="col min pe-2">0</div>')
21
+ expect(component.shadowRoot.innerHTML).toContain('<div class="col max ps-2">100</div>')
22
+ });
23
+
24
+ test('should always have a secondary way of inputing the value i.e. a number input field', () => {
25
+
26
+ document.body.innerHTML = `<label>Input field label <iam-slider><input type="number" name="percent" min="0" max="100" value="15" step="1" /></iam-slider></label>`;
27
+ let component = document.querySelector('iam-slider');
28
+
29
+ expect(component.querySelectorAll('input[type="number"]').length).toEqual(1)
30
+ expect(component.shadowRoot.querySelectorAll('input[type="range"]').length).toEqual(1)
31
+ });
32
+
33
+ });