@iamproperty/components 7.8.2--beta6 → 7.8.2--beta8

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 (244) 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/address-lookup.component.css +1 -1
  4. package/assets/css/components/address-lookup.component.css.map +1 -1
  5. package/assets/css/components/advanced-select.component.css +1 -1
  6. package/assets/css/components/advanced-select.component.css.map +1 -1
  7. package/assets/css/components/banner.component.css +1 -1
  8. package/assets/css/components/banner.component.css.map +1 -1
  9. package/assets/css/components/barchart.component.css +1 -1
  10. package/assets/css/components/barchart.component.css.map +1 -1
  11. package/assets/css/components/branch-selector.css +1 -0
  12. package/assets/css/components/branch-selector.css.map +1 -0
  13. package/assets/css/components/calendar.component.css +1 -1
  14. package/assets/css/components/calendar.component.css.map +1 -1
  15. package/assets/css/components/card.component.css +1 -1
  16. package/assets/css/components/card.component.css.map +1 -1
  17. package/assets/css/components/card.module.css +1 -1
  18. package/assets/css/components/card.module.css.map +1 -1
  19. package/assets/css/components/card.preload.css +1 -1
  20. package/assets/css/components/card.preload.css.map +1 -1
  21. package/assets/css/components/carousel.component.css +1 -1
  22. package/assets/css/components/carousel.component.css.map +1 -1
  23. package/assets/css/components/charts.config.css +1 -1
  24. package/assets/css/components/charts.config.css.map +1 -1
  25. package/assets/css/components/collapsible-side.css +1 -1
  26. package/assets/css/components/collapsible-side.css.map +1 -1
  27. package/assets/css/components/config.component.css +1 -1
  28. package/assets/css/components/config.component.css.map +1 -1
  29. package/assets/css/components/doughnutchart.component.css +1 -1
  30. package/assets/css/components/doughnutchart.component.css.map +1 -1
  31. package/assets/css/components/fileupload.css +1 -1
  32. package/assets/css/components/fileupload.css.map +1 -1
  33. package/assets/css/components/filter-card.component.css +1 -1
  34. package/assets/css/components/filter-card.component.css.map +1 -1
  35. package/assets/css/components/inline-edit.css +1 -1
  36. package/assets/css/components/inline-edit.css.map +1 -1
  37. package/assets/css/components/menu.component.css +1 -1
  38. package/assets/css/components/menu.component.css.map +1 -1
  39. package/assets/css/components/modal.component.css +1 -1
  40. package/assets/css/components/modal.component.css.map +1 -1
  41. package/assets/css/components/multi-step-modal.component.css +1 -1
  42. package/assets/css/components/multi-step-modal.component.css.map +1 -1
  43. package/assets/css/components/multiselect.css +1 -1
  44. package/assets/css/components/multiselect.css.map +1 -1
  45. package/assets/css/components/nav-standalone.component.css +1 -0
  46. package/assets/css/components/nav-standalone.component.css.map +1 -0
  47. package/assets/css/components/nav.component.css +1 -1
  48. package/assets/css/components/nav.component.css.map +1 -1
  49. package/assets/css/components/nav.global.css +1 -1
  50. package/assets/css/components/nav.global.css.map +1 -1
  51. package/assets/css/components/nav.preload.css +1 -1
  52. package/assets/css/components/nav.preload.css.map +1 -1
  53. package/assets/css/components/notification.css +1 -1
  54. package/assets/css/components/notification.css.map +1 -1
  55. package/assets/css/components/pagination.css +1 -1
  56. package/assets/css/components/pagination.css.map +1 -1
  57. package/assets/css/components/record-card.component.css +1 -1
  58. package/assets/css/components/record-card.component.css.map +1 -1
  59. package/assets/css/components/search.component.css +1 -1
  60. package/assets/css/components/search.component.css.map +1 -1
  61. package/assets/css/components/skeleton.global.css +1 -1
  62. package/assets/css/components/skeleton.global.css.map +1 -1
  63. package/assets/css/components/slider.css +1 -1
  64. package/assets/css/components/slider.css.map +1 -1
  65. package/assets/css/components/split-button.component.css +1 -1
  66. package/assets/css/components/split-button.component.css.map +1 -1
  67. package/assets/css/components/tabs.component.css +1 -1
  68. package/assets/css/components/tabs.component.css.map +1 -1
  69. package/assets/css/components/tag.component.css +1 -1
  70. package/assets/css/components/tag.component.css.map +1 -1
  71. package/assets/css/components/video-card.component.css +1 -1
  72. package/assets/css/components/video-card.component.css.map +1 -1
  73. package/assets/css/components/video-modal.component.css +1 -1
  74. package/assets/css/components/video-modal.component.css.map +1 -1
  75. package/assets/css/components/video.component.css +1 -1
  76. package/assets/css/components/video.component.css.map +1 -1
  77. package/assets/css/core.min.css +1 -1
  78. package/assets/css/core.min.css.map +1 -1
  79. package/assets/css/elements/buttons--action.css +1 -1
  80. package/assets/css/elements/buttons--action.css.map +1 -1
  81. package/assets/css/elements/buttons--compact.css +1 -1
  82. package/assets/css/elements/buttons--compact.css.map +1 -1
  83. package/assets/css/elements/buttons--global.css +1 -1
  84. package/assets/css/elements/buttons--global.css.map +1 -1
  85. package/assets/css/elements/buttons--secondary.css +1 -1
  86. package/assets/css/elements/buttons--secondary.css.map +1 -1
  87. package/assets/css/elements/buttons--tertiary.css +1 -1
  88. package/assets/css/elements/buttons--tertiary.css.map +1 -1
  89. package/assets/css/elements/buttons.css +1 -1
  90. package/assets/css/elements/buttons.css.map +1 -1
  91. package/assets/css/elements/dropdown.css +1 -1
  92. package/assets/css/elements/dropdown.css.map +1 -1
  93. package/assets/css/elements/forms.css +1 -1
  94. package/assets/css/elements/forms.css.map +1 -1
  95. package/assets/css/elements/links--global.css +1 -1
  96. package/assets/css/elements/links--global.css.map +1 -1
  97. package/assets/css/elements/links.css +1 -1
  98. package/assets/css/elements/links.css.map +1 -1
  99. package/assets/css/elements/popover.css +1 -1
  100. package/assets/css/elements/popover.css.map +1 -1
  101. package/assets/css/elements/select.css +1 -1
  102. package/assets/css/elements/select.css.map +1 -1
  103. package/assets/css/elements/tooltips.css +1 -1
  104. package/assets/css/elements/tooltips.css.map +1 -1
  105. package/assets/css/style.min.css +1 -1
  106. package/assets/css/style.min.css.map +1 -1
  107. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  108. package/assets/js/components/actionbar/actionbar.component.min.js +3 -3
  109. package/assets/js/components/address-lookup/address-lookup.component.js +1 -1
  110. package/assets/js/components/address-lookup/address-lookup.component.min.js +5 -5
  111. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  112. package/assets/js/components/advanced-select/advanced-select.component.min.js +4 -4
  113. package/assets/js/components/advanced-select/advanced-select.component.min.js.map +1 -1
  114. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  115. package/assets/js/components/banner/banner.component.min.js +2 -2
  116. package/assets/js/components/barchart/barchart.component.min.js +2 -2
  117. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  118. package/assets/js/components/bone/bone.component.js +0 -1
  119. package/assets/js/components/bone/bone.component.min.js +3 -3
  120. package/assets/js/components/bone/bone.component.min.js.map +1 -1
  121. package/assets/js/components/branch-selector/branch-selector.component.js +69 -0
  122. package/assets/js/components/branch-selector/branch-selector.component.min.js +22 -0
  123. package/assets/js/components/branch-selector/branch-selector.component.min.js.map +1 -0
  124. package/assets/js/components/button/button.component.min.js +1 -1
  125. package/assets/js/components/calendar/calendar.component.min.js +2 -2
  126. package/assets/js/components/card/card.component.min.js +3 -3
  127. package/assets/js/components/carousel/carousel.component.min.js +3 -3
  128. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +2 -2
  129. package/assets/js/components/config/config.component.min.js +3 -3
  130. package/assets/js/components/config/config.component.min.js.map +1 -1
  131. package/assets/js/components/content/content.component.min.js +1 -1
  132. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  133. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +4 -4
  134. package/assets/js/components/fileupload/fileupload.component.min.js +4 -4
  135. package/assets/js/components/filter-card/filter-card.component.min.js +5 -5
  136. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  137. package/assets/js/components/form/form.component.min.js +1 -1
  138. package/assets/js/components/header/header.component.min.js +1 -1
  139. package/assets/js/components/inline-edit/inline-edit.component.min.js +2 -2
  140. package/assets/js/components/input/input.component.min.js +1 -1
  141. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  142. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  143. package/assets/js/components/menu/menu.component.min.js +2 -2
  144. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  145. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  146. package/assets/js/components/modal/modal.component.js +2 -0
  147. package/assets/js/components/modal/modal.component.min.js +4 -4
  148. package/assets/js/components/modal/modal.component.min.js.map +1 -1
  149. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  150. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +4 -4
  151. package/assets/js/components/multiselect/multiselect.component.js +14 -18
  152. package/assets/js/components/multiselect/multiselect.component.min.js +14 -14
  153. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  154. package/assets/js/components/nav/nav.component.js +30 -255
  155. package/assets/js/components/nav/nav.component.min.js +46 -30
  156. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  157. package/assets/js/components/nav-standalone/nav-standalone.component.js +51 -0
  158. package/assets/js/components/nav-standalone/nav-standalone.component.min.js +80 -0
  159. package/assets/js/components/nav-standalone/nav-standalone.component.min.js.map +1 -0
  160. package/assets/js/components/notification/notification.component.min.js +2 -2
  161. package/assets/js/components/pagination/pagination.component.min.js +2 -2
  162. package/assets/js/components/password/password.component.min.js +1 -1
  163. package/assets/js/components/popover/popover.component.min.js +1 -1
  164. package/assets/js/components/rank/rank.component.min.js +1 -1
  165. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  166. package/assets/js/components/rating/rating.component.min.js +1 -1
  167. package/assets/js/components/record-card/record-card.component.min.js +6 -6
  168. package/assets/js/components/search/search.component.min.js +2 -2
  169. package/assets/js/components/skeleton/skeleton.component.min.js +1 -1
  170. package/assets/js/components/slider/slider.component.min.js +2 -2
  171. package/assets/js/components/split-button/split-button.component.min.js +4 -4
  172. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +5 -5
  173. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js.map +1 -1
  174. package/assets/js/components/std-nav/std-nav.component.js +32 -58
  175. package/assets/js/components/std-nav/std-nav.component.min.js +9 -54
  176. package/assets/js/components/std-nav/std-nav.component.min.js.map +1 -1
  177. package/assets/js/components/table/table.component.min.js +2 -2
  178. package/assets/js/components/table-ajax/table-ajax.component.min.js +2 -2
  179. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  180. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +2 -2
  181. package/assets/js/components/table-submit/table-submit.component.min.js +2 -2
  182. package/assets/js/components/tabs/tabs.component.min.js +2 -2
  183. package/assets/js/components/tag/tag.component.min.js +4 -4
  184. package/assets/js/components/tag/tag.component.min.js.map +1 -1
  185. package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
  186. package/assets/js/components/video/video.component.min.js +2 -2
  187. package/assets/js/components/video-card/video-card.component.min.js +6 -6
  188. package/assets/js/components/video-modal/video-modal.component.min.js +5 -5
  189. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  190. package/assets/js/modules/advanced-select.js +13 -5
  191. package/assets/js/modules/nav.js +183 -64
  192. package/assets/js/modules/nav.test.js +4 -1
  193. package/assets/js/scripts.bundle.js +1 -1
  194. package/assets/js/scripts.bundle.min.js +1 -1
  195. package/assets/sass/components/branch-selector.scss +112 -0
  196. package/assets/sass/components/card.module.scss +11 -1
  197. package/assets/sass/components/card.preload.scss +0 -15
  198. package/assets/sass/components/charts.config.scss +3 -3
  199. package/assets/sass/components/menu.component.scss +2 -1
  200. package/assets/sass/components/multiselect.scss +0 -1
  201. package/assets/sass/components/nav-standalone.component.scss +50 -0
  202. package/assets/sass/components/nav.component.scss +142 -116
  203. package/assets/sass/components/nav.global.scss +27 -216
  204. package/assets/sass/components/nav.preload.scss +1 -7
  205. package/assets/sass/components/skeleton.global.scss +1 -2
  206. package/assets/sass/elements/buttons--action.css +1 -1
  207. package/assets/sass/elements/buttons--compact.css +8 -4
  208. package/assets/sass/elements/buttons--global.css +3 -6
  209. package/assets/sass/elements/buttons--secondary.css +1 -1
  210. package/assets/sass/elements/buttons--tertiary.css +1 -1
  211. package/assets/sass/elements/dropdown.css +19 -2
  212. package/assets/sass/elements/links--global.scss +29 -3
  213. package/assets/sass/elements/popover.scss +1 -0
  214. package/assets/sass/elements/select.scss +1 -1
  215. package/assets/sass/elements/tooltips.scss +54 -0
  216. package/assets/sass/foundations/root.scss +4 -0
  217. package/assets/sass/templates/form.scss +26 -3
  218. package/assets/ts/components/address-lookup/address-lookup.component.ts +2 -1
  219. package/assets/ts/components/bone/bone.component.ts +0 -1
  220. package/assets/ts/components/branch-selector/branch-selector.component.ts +93 -0
  221. package/assets/ts/components/modal/modal.component.ts +3 -0
  222. package/assets/ts/components/multiselect/multiselect.component.ts +20 -23
  223. package/assets/ts/components/nav/nav.component.ts +30 -285
  224. package/assets/ts/components/nav-standalone/nav-standalone.component.ts +69 -0
  225. package/assets/ts/components/std-nav/std-nav.component.ts +38 -81
  226. package/assets/ts/modules/advanced-select.ts +12 -11
  227. package/assets/ts/modules/nav.test.ts +4 -1
  228. package/assets/ts/modules/nav.ts +221 -78
  229. package/dist/components.es.js +1154 -1119
  230. package/dist/components.umd.js +290 -242
  231. package/package.json +2 -2
  232. package/src/components/BranchSelector/BranchSelector.vue +20 -0
  233. package/src/components/{STDNavStandalone/STDNavStandalone.vue → NavStandalone/NavStandalone.vue} +3 -3
  234. package/src/index.js +1 -0
  235. package/assets/css/components/nav.docs.css +0 -1
  236. package/assets/css/components/nav.docs.css.map +0 -1
  237. package/assets/css/components/std-nav-standalone.component.css +0 -1
  238. package/assets/css/components/std-nav-standalone.component.css.map +0 -1
  239. package/assets/js/components/std-nav-standalone/std-nav-standalone.component.js +0 -70
  240. package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js +0 -20
  241. package/assets/js/components/std-nav-standalone/std-nav-standalone.component.min.js.map +0 -1
  242. package/assets/sass/components/nav.docs.scss +0 -54
  243. package/assets/sass/components/std-nav-standalone.component.scss +0 -229
  244. package/assets/ts/components/std-nav-standalone/std-nav-standalone.component.ts +0 -94
@@ -0,0 +1,69 @@
1
+ import iamNav from "../nav/nav.component";
2
+
3
+ class iamNavStandalone extends HTMLElement {
4
+ constructor() {
5
+ super();
6
+ const shadowRoot = this.attachShadow({ mode: 'open' });
7
+
8
+ const assetLocation = document.body.hasAttribute('data-assets-location')
9
+ ? document.body.getAttribute('data-assets-location')
10
+ : '/assets';
11
+ const loadCSS = `@import "${assetLocation}/css/components/nav-standalone.component.css";`;
12
+ //const loadExtraCSS = `@import "${assetLocation}/css/components/nav.global.css";`;
13
+
14
+ const template = document.createElement('template');
15
+ template.innerHTML = /* HTML */`
16
+ <style class="styles">
17
+ ${loadCSS}
18
+ </style>
19
+
20
+ <link rel="stylesheet" href="https://kit.fontawesome.com/8bd0fca975.css" crossorigin="anonymous">
21
+ <div class="wrapper">
22
+ <iam-nav class="iam-nav">
23
+ <slot></slot>
24
+ <slot name="account"></slot>
25
+ <slot name="secondary"></slot>
26
+ </iam-nav>
27
+ </div>
28
+ `;
29
+
30
+ shadowRoot.appendChild(template.content.cloneNode(true));
31
+
32
+ // insert extra CSS
33
+ if (!document.getElementById('navGlobal'))
34
+ document.head.insertAdjacentHTML('beforeend', `<style id="navGlobal">${loadExtraCSS}</style>`);
35
+ }
36
+
37
+ connectedCallback(): void {
38
+
39
+ if (!window.customElements.get(`iam-nav`))
40
+ window.customElements.define(`iam-nav`, iamNav);
41
+
42
+
43
+ const wrapper = this.shadowRoot.querySelector('.wrapper');
44
+
45
+ wrapper?.innerHTML = `<iam-nav class="iam-nav">${this.innerHTML}</iam-nav>`;
46
+
47
+ const iamNavElement = wrapper?.querySelector(':scope > iam-nav');
48
+
49
+ if (iamNavElement.querySelector('[slot="secondary"]')) {
50
+ iamNavElement.classList.add('has-secondary');
51
+ }
52
+
53
+ wrapper?.addEventListener('change', (e) => {
54
+
55
+ const event = new CustomEvent("change", e);
56
+ this.dispatchEvent(event)
57
+ });
58
+
59
+ wrapper?.addEventListener('click', (e) => {
60
+
61
+ console.log(e);
62
+ const event = new CustomEvent("click", e);
63
+ this.dispatchEvent(event)
64
+ });
65
+ }
66
+ }
67
+
68
+
69
+ export default iamNavStandalone;
@@ -1,91 +1,34 @@
1
- import Cookies from '../../../../node_modules/js-cookie/dist/js.cookie.mjs';
2
1
  import {populateNav,loadNavData,loadUserData,setEnabledLinks} from '../../modules/nav';
3
- import iamNav from '../nav/nav.component';
4
-
5
- // Data layer Web component created
6
- declare global {
7
- interface Window {
8
- dataLayer: Array<object>;
9
- }
10
- }
11
2
 
12
3
  class iamSTDNav extends HTMLElement {
13
4
  constructor() {
14
5
  super();
15
6
  }
16
7
 
17
- defaultToNav = ():void => {
18
-
19
- const defaultContent = this.innerHTML;
20
- this.innerHTML = `<iam-nav ${(this.hasAttribute('class') ? `class="${this.getAttribute('class')}"`:'')}>
21
- ${defaultContent}
22
- </iam-nav>`;
23
- }
24
-
25
- transformToNav = (data):void => {
26
-
27
- const navElement = this.querySelector('iam-nav') ?? this;
28
-
29
- // Remove current links
30
- navElement.querySelectorAll(`:scope > *`).forEach((element) => {
31
-
32
- if(!element.hasAttribute('slot'))
33
- element.remove();
34
- });
35
-
36
- const defaultContent = navElement.innerHTML;
37
-
38
- navElement.innerHTML = `${defaultContent}${populateNav(data)}`;
39
-
40
- const customEvent = new CustomEvent('rebuilt');
41
- navElement.dispatchEvent(customEvent);
42
- }
43
-
44
- defaultToSecondary = (): void => {
45
-
46
- // Set links and details to secondary slot
47
- Array.from(this.querySelectorAll(':scope > a, :scope > details')).forEach((element) => {
48
-
49
- element.setAttribute('slot','secondary');
50
- });
51
-
52
- const defaultContent = this.innerHTML;
53
- this.outerHTML = `${defaultContent}`;
54
- }
55
-
56
- transformToSecondary = (data):void => {
8
+ async connectedCallback(): void {
57
9
 
58
- this.innerHTML = populateNav(data);
59
10
 
60
- // Set links and details to secondary slot
61
- Array.from(this.querySelectorAll(':scope > a, :scope > details')).forEach((element) => {
11
+ const nav = this.closest('iam-nav');
12
+ const mode = this.hasAttribute('data-mode') ? this.getAttribute('data-mode') : 'dev';
62
13
 
63
- element.setAttribute('slot','secondary');
64
- });
14
+ // if not an sso use load default from component
65
15
 
66
- const defaultContent = this.innerHTML;
67
- this.outerHTML = `${defaultContent}`;
68
- }
16
+ if(!this.hasAttribute('data-sso-subject') || this.getAttribute('data-sso-subject') == 'false' || this.getAttribute('data-sso-subject') == false || this.getAttribute('data-sso-subject') == null){
69
17
 
70
- async connectedCallback(): void {
18
+ if(this.hasAttribute('slot') && this.getAttribute('slot') == "secondary"){
71
19
 
72
- const component = this;
73
- this.wrapper = this.shadowRoot?.querySelector('.wrapper');
20
+ this.outerHTML = `<a href="https://my.iamproperty.com" slot="secondary">iamproperty</a>
21
+ <a href="https://crm.iamproperty.com/MyDay" slot="secondary">CRM</a>
22
+ <a href="https://my.iamproperty.com/ic/dashboard" slot="secondary">movebutler</a>
23
+ <a href="https://my.iamproperty.com/auction" slot="secondary">iamsold</a>`;
74
24
 
75
- if (!window.customElements.get(`iam-nav`))
76
- window.customElements.define(`iam-nav`, iamNav);
77
-
78
- if(this.hasAttribute('data-hub')){
79
- this.defaultToNav();
80
-
81
- this.querySelector('.nav--menu.js-show')?.classList.remove('js-show');
82
- }
83
- else {
84
- //this.defaultToSecondary(); TODO: change this to show default content but still be able to update
25
+ document.querySelector(`a[href*='${window.location.hostname}'][slot="secondary"]`)?.classList.add('selected');
26
+ }
27
+ return;
85
28
  }
86
29
 
30
+ const data = await loadNavData(mode).then(
87
31
 
88
- const data = await loadNavData(Cookies).then(
89
32
  (data) => {
90
33
 
91
34
  if(typeof data == 'string'){
@@ -93,26 +36,41 @@ class iamSTDNav extends HTMLElement {
93
36
  return data;
94
37
  }
95
38
 
96
- //console.log(data);
97
- if(this.hasAttribute('data-hub')){
39
+ if(!this.hasAttribute('slot')){ // This is the nav on the hub page
98
40
 
99
- const filteredData = data.filter(section => section.attributes.title != "Learning and support");
41
+ const filteredData = data.filter(section => section.attributes.title != "Learning and support"); // Not needed for the hub page
42
+ this.closest('iam-nav').querySelectorAll(`:scope > *:not([slot]):not(iam-std-nav)`).forEach((element) => {
43
+ element.remove(); // Remove the default links
44
+ });
100
45
 
101
- this.transformToNav(filteredData);
46
+ this.outerHTML = populateNav(filteredData);
102
47
  }
103
48
  else {
104
- this.transformToSecondary(data);
49
+
50
+ this.closest('iam-nav').querySelectorAll(`:scope > *[slot="secondary"]:not(iam-std-nav):not(iam-branch-selector)`).forEach((element) => {
51
+ element.remove(); // Remove the default links
52
+ });
53
+
54
+ this.outerHTML = populateNav(data, 'secondary');
105
55
  }
106
56
 
107
57
  return true;
108
58
  }
109
59
  );
110
60
 
61
+ if(!this.hasAttribute('data-sso-subject') && !this.hasAttribute('data-product'))
62
+ return;
111
63
 
112
- const userData = await loadUserData(Cookies).then(
64
+ const subject = this.getAttribute('data-sso-subject');
65
+ const product = this.getAttribute('data-product');
66
+
67
+ const userData = await loadUserData(mode, subject, product).then(
113
68
  (data) => {
114
69
 
115
- setEnabledLinks(component,data);
70
+ if(!data.attributes)
71
+ return false;
72
+
73
+ setEnabledLinks(nav,data);
116
74
 
117
75
  Array.from(document.querySelectorAll('[data-variable]')).forEach((element) => {
118
76
 
@@ -122,7 +80,6 @@ class iamSTDNav extends HTMLElement {
122
80
 
123
81
  Array.from(document.querySelectorAll('[data-save-variable]')).forEach((element) => {
124
82
 
125
- //console.log(element);
126
83
  if(data.attributes[element.getAttribute('data-save-variable')])
127
84
  element.setAttribute('data-variable-value', data.attributes[element.getAttribute('data-save-variable')]);
128
85
  });
@@ -131,9 +88,9 @@ class iamSTDNav extends HTMLElement {
131
88
  }
132
89
  );
133
90
 
134
-
135
91
  }
136
-
137
92
  }
138
93
 
94
+
95
+
139
96
  export default iamSTDNav;
@@ -26,7 +26,7 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
26
26
  if(displayInputField.hasAttribute('placeholder'))
27
27
  displayInputField.setAttribute('data-original-placeholder', displayInputField.getAttribute('placeholder'));
28
28
 
29
-
29
+
30
30
 
31
31
  const checkIfEmpty = (): void => {
32
32
 
@@ -40,13 +40,13 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
40
40
  }
41
41
 
42
42
  };
43
-
43
+
44
44
  checkIfEmpty();
45
45
 
46
46
  displayInputField.addEventListener('focus', function () {
47
-
47
+
48
48
  if(displayInputField.value != ""){
49
-
49
+
50
50
  displayInputField.setAttribute('placeholder', displayInputField.value);
51
51
  displayInputField.setAttribute('data-value', displayInputField.value);
52
52
  }
@@ -91,7 +91,7 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
91
91
  }
92
92
 
93
93
  option.classList.add('active');
94
-
94
+
95
95
  checkIfEmpty();
96
96
  setTimeout(() => {
97
97
  advancedSelect.dispatchEvent(new CustomEvent('update-value', {
@@ -108,7 +108,7 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
108
108
  displayInputField.addEventListener('input', function () {
109
109
  displayInputField.removeAttribute('data-value');
110
110
  currentFocus = -1;
111
-
111
+
112
112
  checkIfEmpty();
113
113
 
114
114
  if (advancedSelect.tagName != "IAM-ADDRESS-LOOKUP") {
@@ -129,7 +129,7 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
129
129
  });
130
130
 
131
131
  advancedSelect.addEventListener('keydown', function (e) {
132
-
132
+
133
133
  if (e.keyCode == 40) {
134
134
  currentFocus++;
135
135
  addActive(datalist.options);
@@ -161,6 +161,7 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
161
161
  }
162
162
 
163
163
  // Add the empty button
164
+ /*
164
165
  if(displayInputField.closest('.input__wrapper')){
165
166
  displayInputField.closest('.input__wrapper').insertAdjacentHTML(
166
167
  'beforeend',
@@ -174,7 +175,7 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
174
175
  '<button class="clear-search btn btn-action" type="button"><i class="fa-light fa-times me-0"></i></button>'
175
176
  );
176
177
  }
177
-
178
+ */
178
179
  const emptyField = (): void => {
179
180
  const originalInput = advancedSelect.querySelector('input[type="hidden"]') as HTMLInputElement | null;
180
181
 
@@ -187,8 +188,8 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
187
188
 
188
189
  if(displayInputField.hasAttribute('data-original-placeholder'))
189
190
  displayInputField.setAttribute('placeholder', displayInputField.getAttribute('data-original-placeholder'));
190
-
191
-
191
+
192
+
192
193
  displayInputField.removeAttribute('data-value');
193
194
  displayInputField.value = '';
194
195
  displayInputField.classList.add('empty');
@@ -210,7 +211,7 @@ function advancedSelect(advancedSelect, displayInputField, datalist, isSearch =
210
211
  },
211
212
  }));
212
213
 
213
-
214
+
214
215
  checkIfEmpty();
215
216
  }
216
217
 
@@ -26,16 +26,19 @@ describe('Navigation module', () => {
26
26
  dataFeature: 'dashboard',
27
27
  dataEnabled: '/linked',
28
28
  href: '/sales',
29
+ title: 'Learn more',
29
30
  target: '_blank',
30
31
  });
31
32
  append(component, link);
32
33
 
33
34
  setEnabledLinks(component, {
34
- attributes: { products: { sales: { features: { dashboard: true } } } },
35
+ attributes: { features: { sales: ['dashboard'] } },
35
36
  });
36
37
 
37
38
  expect(populateLinks(links).includes('data-product="sales"'));
39
+ expect(link.getAttribute('data-is-enabled') === 'true');
38
40
  expect(link.getAttribute('href') === '/linked');
39
41
  expect(!link.hasAttribute('target'));
42
+ expect(!link.hasAttribute('title'));
40
43
  });
41
44
  });