@iamproperty/components 5.1.0-beta → 5.1.0-beta10

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 (114) hide show
  1. package/assets/css/components/accordion.global.css.map +1 -1
  2. package/assets/css/components/card.css +1 -1
  3. package/assets/css/components/card.css.map +1 -1
  4. package/assets/css/components/carousel.css +1 -1
  5. package/assets/css/components/carousel.css.map +1 -1
  6. package/assets/css/components/component.native.css +1 -1
  7. package/assets/css/components/component.native.css.map +1 -1
  8. package/assets/css/components/component.reset.css +1 -1
  9. package/assets/css/components/component.reset.css.map +1 -1
  10. package/assets/css/components/fileupload.css +1 -1
  11. package/assets/css/components/fileupload.css.map +1 -1
  12. package/assets/css/components/header.css +1 -1
  13. package/assets/css/components/header.css.map +1 -1
  14. package/assets/css/components/marketing.css +1 -0
  15. package/assets/css/components/marketing.css.map +1 -0
  16. package/assets/css/components/nav.css +1 -1
  17. package/assets/css/components/nav.css.map +1 -1
  18. package/assets/css/components/nav.global.css +1 -1
  19. package/assets/css/components/nav.global.css.map +1 -1
  20. package/assets/css/components/pagination.css +1 -1
  21. package/assets/css/components/pagination.css.map +1 -1
  22. package/assets/css/components/slider.css.map +1 -1
  23. package/assets/css/core.min.css +1 -1
  24. package/assets/css/core.min.css.map +1 -1
  25. package/assets/css/style.min.css +1 -1
  26. package/assets/css/style.min.css.map +1 -1
  27. package/assets/img/signin-bg.png +0 -0
  28. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  29. package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
  30. package/assets/js/components/address-lookup/address-lookup.component.js +17 -3
  31. package/assets/js/components/address-lookup/address-lookup.component.min.js +4 -4
  32. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  33. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  34. package/assets/js/components/card/card.component.js +2 -1
  35. package/assets/js/components/card/card.component.min.js +4 -3
  36. package/assets/js/components/card/card.component.min.js.map +1 -1
  37. package/assets/js/components/carousel/carousel.component.js +61 -0
  38. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  39. package/assets/js/components/fileupload/fileupload.component.min.js +2 -2
  40. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  41. package/assets/js/components/header/header.component.js +6 -12
  42. package/assets/js/components/header/header.component.min.js +8 -14
  43. package/assets/js/components/header/header.component.min.js.map +1 -1
  44. package/assets/js/components/marketing/marketing.component.js +37 -0
  45. package/assets/js/components/nav/nav.component.js +4 -36
  46. package/assets/js/components/nav/nav.component.min.js +10 -13
  47. package/assets/js/components/nav/nav.component.min.js.map +1 -1
  48. package/assets/js/components/notification/notification.component.min.js +1 -1
  49. package/assets/js/components/pagination/pagination.component.min.js +2 -2
  50. package/assets/js/components/search/search.component.js +148 -0
  51. package/assets/js/components/search/search.component.min.js +14 -0
  52. package/assets/js/components/search/search.component.min.js.map +1 -0
  53. package/assets/js/components/table/table.component.min.js +5 -5
  54. package/assets/js/components/table/table.component.min.js.map +1 -1
  55. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  56. package/assets/js/dynamic.js +1 -1
  57. package/assets/js/dynamic.min.js +3 -3
  58. package/assets/js/dynamic.min.js.map +1 -1
  59. package/assets/js/modules/carousel.js +15 -23
  60. package/assets/js/modules/dynamicEvents.js +28 -13
  61. package/assets/js/modules/helpers.js +3 -0
  62. package/assets/js/modules/table.js +8 -6
  63. package/assets/js/scripts.bundle.js +20 -25
  64. package/assets/js/scripts.bundle.js.map +1 -1
  65. package/assets/js/scripts.bundle.min.js +2 -2
  66. package/assets/js/scripts.bundle.min.js.map +1 -1
  67. package/assets/sass/_corefiles.scss +1 -0
  68. package/assets/sass/_elements.scss +1 -1
  69. package/assets/sass/_functions/mixins.scss +16 -0
  70. package/assets/sass/_functions/utilities.scss +0 -17
  71. package/assets/sass/_functions/variables.scss +1 -0
  72. package/assets/sass/components/card.scss +23 -3
  73. package/assets/sass/components/carousel.scss +86 -159
  74. package/assets/sass/components/component.native.scss +86 -3
  75. package/assets/sass/components/fileupload.scss +1 -1
  76. package/assets/sass/components/header.scss +53 -55
  77. package/assets/sass/components/marketing.scss +64 -0
  78. package/assets/sass/components/nav.global.scss +2 -1
  79. package/assets/sass/components/nav.scss +7 -1
  80. package/assets/sass/components/pagination.scss +4 -0
  81. package/assets/sass/elements/admin-panel.scss +9 -7
  82. package/assets/sass/elements/badge.scss +29 -0
  83. package/assets/sass/elements/dialog.scss +4 -4
  84. package/assets/sass/elements/forms.scss +4 -4
  85. package/assets/sass/elements/links.scss +2 -1
  86. package/assets/sass/foundations/reboot.scss +12 -13
  87. package/assets/sass/foundations/root.scss +11 -3
  88. package/assets/sass/helpers/max-height.scss +78 -4
  89. package/assets/sass/templates/auth.scss +112 -0
  90. package/assets/ts/components/address-lookup/address-lookup.component.ts +23 -4
  91. package/assets/ts/components/card/card.component.ts +2 -1
  92. package/assets/ts/components/carousel/README.md +39 -0
  93. package/assets/ts/components/carousel/carousel.component.ts +75 -0
  94. package/assets/ts/components/header/header.component.ts +6 -12
  95. package/assets/ts/components/marketing/marketing.component.ts +49 -0
  96. package/assets/ts/components/nav/README.md +2 -13
  97. package/assets/ts/components/nav/nav.component.ts +4 -47
  98. package/assets/ts/components/search/search.component.ts +177 -0
  99. package/assets/ts/dynamic.ts +1 -1
  100. package/assets/ts/modules/carousel.ts +21 -33
  101. package/assets/ts/modules/dynamicEvents.ts +44 -24
  102. package/assets/ts/modules/helpers.ts +7 -1
  103. package/assets/ts/modules/table.ts +11 -14
  104. package/dist/components.es.js +744 -949
  105. package/dist/components.umd.js +107 -101
  106. package/dist/style.css +1 -1
  107. package/package.json +1 -1
  108. package/src/components/Carousel/Carousel.vue +18 -103
  109. package/src/components/Header/Header.vue +1 -3
  110. package/src/components/Marketing/Marketing.vue +39 -0
  111. package/src/components/Marketing/README.md +20 -0
  112. package/src/components/Nav/README.md +1 -12
  113. package/src/components/Search/Search.vue +25 -0
  114. package/src/components/Carousel/Carousel.spec.js +0 -45
@@ -1,12 +1,9 @@
1
1
  // @ts-nocheck
2
- function carousel(carouselElement) {
2
+ function carousel(carouselElement, row) {
3
3
  var scrollTimeout;
4
4
  let carouselInner = carouselElement.querySelector('.carousel__inner');
5
- let itemCount = carouselElement.querySelectorAll('.carousel__item').length;
6
- let cols = carouselElement.getAttribute('data-cols');
7
- let smCols = carouselElement.getAttribute('data-sm-cols');
8
- let mdCols = carouselElement.getAttribute('data-md-cols');
9
- carouselElement.querySelector('.carousel__controls a').setAttribute('aria-current', true);
5
+ let carouselControls = carouselElement.querySelector('.carousel__controls');
6
+ let itemCount = row.querySelectorAll('.col').length;
10
7
  // On scroll we need to make sure the buttons get corrected and the next testimonial is shown
11
8
  carouselInner.addEventListener('scroll', function (e) {
12
9
  clearTimeout(scrollTimeout);
@@ -15,9 +12,11 @@ function carousel(carouselElement) {
15
12
  let scrollWidth = carouselInner.scrollWidth;
16
13
  let scrollLeft = carouselInner.scrollLeft;
17
14
  let targetSlide = Math.round((scrollLeft / scrollWidth) * itemCount) + 1;
18
- let lastItemOffset = carouselElement.querySelector('.carousel__item:last-child').offsetLeft;
19
- Array.from(carouselElement.querySelectorAll('.carousel__controls a')).forEach((link, index) => {
20
- link.removeAttribute('aria-current');
15
+ let lastItemOffset = row.querySelector('.col:last-child').offsetLeft + 50;
16
+ if (carouselInner.scrollLeft + scrollArea >= lastItemOffset)
17
+ targetSlide = itemCount;
18
+ Array.from(carouselElement.querySelectorAll('.carousel__controls button')).forEach((button, index) => {
19
+ button.removeAttribute('aria-current');
21
20
  });
22
21
  carouselElement.querySelector('.control-' + targetSlide).setAttribute('aria-current', true);
23
22
  // Disable the previous button
@@ -26,22 +25,22 @@ function carousel(carouselElement) {
26
25
  else
27
26
  carouselElement.querySelector('.btn-prev').removeAttribute('disabled');
28
27
  // Disable the next button if the last item is in view
29
- if (carouselInner.scrollLeft + scrollArea > lastItemOffset)
28
+ if (targetSlide == itemCount)
30
29
  carouselElement.querySelector('.btn-next').setAttribute('disabled', 'disabled');
31
30
  else
32
31
  carouselElement.querySelector('.btn-next').removeAttribute('disabled');
33
32
  }, 100);
34
33
  }, false);
35
34
  // when the buttons are used we need to make sure the carousel scrolls to the correct place
36
- carouselElement.addEventListener('click', function (e) {
35
+ carouselControls.addEventListener('click', function (e) {
37
36
  for (var target = e.target; target && target != this; target = target.parentNode) {
38
- if (target.matches('.carousel__controls a')) {
37
+ if (typeof target.matches == "function" && target.matches('button')) {
39
38
  e.preventDefault();
40
- Array.from(carouselElement.querySelectorAll('.carousel__controls a')).forEach((link, index) => {
41
- link.removeAttribute('aria-current');
39
+ Array.from(carouselControls.querySelectorAll('button')).forEach((button, index) => {
40
+ button.removeAttribute('aria-current');
42
41
  });
43
42
  target.setAttribute('aria-current', true);
44
- const el = document.querySelector(target.getAttribute('href'));
43
+ const el = row.querySelector(`*:nth-child(${target.getAttribute('data-slide')})`);
45
44
  carouselInner.scroll({
46
45
  top: 0,
47
46
  left: el.offsetLeft,
@@ -53,7 +52,7 @@ function carousel(carouselElement) {
53
52
  }, false);
54
53
  carouselElement.addEventListener('click', function (e) {
55
54
  for (var target = e.target; target && target != this; target = target.parentNode) {
56
- if (target.matches('.btn-next, .btn-prev')) {
55
+ if (typeof target.matches == "function" && target.matches('.btn-next, .btn-prev')) {
57
56
  e.preventDefault();
58
57
  let scrollTo = target.classList.contains('btn-prev') ? carouselInner.scrollLeft - carouselInner.clientWidth : carouselInner.scrollLeft + carouselInner.clientWidth;
59
58
  carouselInner.scroll({
@@ -65,12 +64,5 @@ function carousel(carouselElement) {
65
64
  }
66
65
  }
67
66
  }, false);
68
- // Add responsive hide button classes
69
- if (itemCount == 1)
70
- carouselElement.classList.add('hide-btns');
71
- if (smCols >= itemCount)
72
- carouselElement.classList.add('hide-sm-btns');
73
- if (mdCols >= itemCount)
74
- carouselElement.classList.add('hide-md-btns');
75
67
  }
76
68
  export default carousel;
@@ -59,19 +59,23 @@ const runEvent = (element, event, eventType) => {
59
59
  return false;
60
60
  switch (event[eventType]) {
61
61
  case "hide":
62
- let hideElement = document.querySelector(event['target']);
63
- hideElement.classList.add('js-hide');
64
- Array.from(hideElement.querySelectorAll('[data-required]')).forEach((input, index) => {
65
- input.removeAttribute('required');
66
- });
62
+ if (document.querySelector(event['target'])) {
63
+ let hideElement = document.querySelector(event['target']);
64
+ hideElement.classList.add('js-hide');
65
+ Array.from(hideElement.querySelectorAll('[data-required]')).forEach((input, index) => {
66
+ input.removeAttribute('required');
67
+ });
68
+ }
67
69
  break;
68
70
  case "show":
69
- let showElement = document.querySelector(event['target']);
70
- showElement.classList.remove('js-hide');
71
- Array.from(showElement.querySelectorAll('[data-required]')).forEach((input, index) => {
72
- if (!input.closest('.js-hide'))
73
- input.setAttribute('required', 'true');
74
- });
71
+ if (document.querySelector(event['target'])) {
72
+ let showElement = document.querySelector(event['target']);
73
+ showElement.classList.remove('js-hide');
74
+ Array.from(showElement.querySelectorAll('[data-required]')).forEach((input, index) => {
75
+ if (!input.closest('.js-hide'))
76
+ input.setAttribute('required', 'true');
77
+ });
78
+ }
75
79
  break;
76
80
  case "populate-form":
77
81
  populateForm(element, event);
@@ -81,16 +85,27 @@ const runEvent = (element, event, eventType) => {
81
85
  document.querySelector(`${event['target']}`).dispatchEvent(theEvent);
82
86
  break;
83
87
  case "setAttribute":
84
- document.querySelector(`${event['target']}`).setAttribute(event['attribute'], event['value']);
88
+ Array.from(document.querySelectorAll(`${event['target']}`)).forEach(function (element, index) {
89
+ element.setAttribute(event['attribute'], event['value']);
90
+ });
85
91
  break;
86
92
  case "removeAttribute":
87
- document.querySelector(`${event['target']}`).removeAttribute(event['attribute']);
93
+ Array.from(document.querySelectorAll(`${event['target']}`)).forEach(function (element, index) {
94
+ element.removeAttribute(event['attribute']);
95
+ });
88
96
  break;
89
97
  case "updateValue":
90
98
  document.querySelector(`${event['target']}`).value = event['value'] ? event['value'] : "";
91
99
  let changeEvent = new Event('change');
92
100
  document.querySelector(`${event['target']}`).dispatchEvent(changeEvent);
93
101
  break;
102
+ case "submitForm":
103
+ document.querySelector(`${event['target']}`).submit();
104
+ break;
105
+ case "openLink":
106
+ if (document.querySelector(`${event['target']}`).value)
107
+ window.location.href = document.querySelector(`${event['target']}`).value;
108
+ break;
94
109
  default:
95
110
  break;
96
111
  }
@@ -72,3 +72,6 @@ export const safeID = function (str) {
72
72
  str = str.replace(/\W/g, '');
73
73
  return str;
74
74
  };
75
+ // Used to get values from nested json objects
76
+ export const resolvePath = (object, path, defaultValue) => path.split(/[\.\[\]\'\"]/).filter(p => p).reduce((o, p) => o ? o[p] : defaultValue, object);
77
+ export const isTraversable = o => Array.isArray(o) || o !== null && ['function', 'object'].includes(typeof o);
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  });
9
9
  };
10
10
  // @ts-nocheck
11
- import { zeroPad, isNumeric, ucfirst } from "./helpers.js";
11
+ import { zeroPad, isNumeric, ucfirst, resolvePath } from "./helpers.js";
12
12
  // Basic functionality needed
13
13
  export const addDataAttributes = (table) => {
14
14
  const colHeadings = Array.from(table.querySelectorAll('thead th'));
@@ -51,12 +51,15 @@ export const getLargestLastColWidth = (table) => {
51
51
  return largestWidth;
52
52
  };
53
53
  export const createMobileButton = (table, wrapper) => {
54
- if (wrapper.classList.contains('.table--fullwidth') && !wrapper.hasAttribute('data-expandable'))
54
+ if (wrapper.classList.contains('table--fullwidth') && !wrapper.hasAttribute('data-expandable'))
55
55
  return false;
56
56
  if (table.querySelectorAll('thead tr th').length < 4 && !wrapper.hasAttribute('data-expandable'))
57
57
  return false;
58
+ //If the expand column already exists we don't need to add a new one.
58
59
  Array.from(table.querySelectorAll('thead tr')).forEach((row, index) => {
59
- row.insertAdjacentHTML('afterbegin', `<th class="th--fixed expand-button-heading"></th>`);
60
+ if (!table.querySelectorAll('thead tr th.expand-button-heading').length) {
61
+ row.insertAdjacentHTML('afterbegin', `<th class="th--fixed expand-button-heading"></th>`);
62
+ }
60
63
  });
61
64
  Array.from(table.querySelectorAll('tbody tr')).forEach((row, index) => {
62
65
  const preExpanded = row.getAttribute('data-view') === 'full' ? 'aria-expanded' : '';
@@ -493,7 +496,7 @@ export const populateDataQueries = (table, form, wrapper) => {
493
496
  const dataQueries = Array.from(form.querySelectorAll('[data-query]'));
494
497
  dataQueries.forEach((queryElement, index) => {
495
498
  let query = queryElement.getAttribute('data-query');
496
- let numberOfMatchedRows;
499
+ let numberOfMatchedRows = 0;
497
500
  if (query == 'total') {
498
501
  if (wrapper.hasAttribute('data-total'))
499
502
  numberOfMatchedRows = wrapper.getAttribute('data-total');
@@ -648,10 +651,9 @@ const filterFilters = function (form) {
648
651
  };
649
652
  export const loadAjaxTable = function (table, form, pagination, wrapper) {
650
653
  return __awaiter(this, void 0, void 0, function* () {
651
- const resolvePath = (object, path, defaultValue) => path.split(/[\.\[\]\'\"]/).filter(p => p).reduce((o, p) => o ? o[p] : defaultValue, object);
652
654
  let formData = new FormData(form);
653
655
  let queryString = new URLSearchParams(formData).toString();
654
- let columns = table.querySelectorAll('thead tr th');
656
+ let columns = table.querySelectorAll('thead tr th:not(.expand-button-heading)');
655
657
  let tbody = table.querySelector('tbody');
656
658
  let ajaxURL = form.getAttribute('data-ajax');
657
659
  wrapper.classList.add('table--loading');