@iamproperty/components 2.7.7 → 2.9.0

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 (138) hide show
  1. package/README.md +136 -136
  2. package/assets/css/core.min.css +1 -1
  3. package/assets/css/core.min.css.map +1 -1
  4. package/assets/css/email.min.css +1 -1
  5. package/assets/css/email.min.css.map +1 -1
  6. package/assets/css/error.min.css +1 -1
  7. package/assets/css/error.min.css.map +1 -1
  8. package/assets/css/style.min.css +1 -1
  9. package/assets/css/style.min.css.map +1 -1
  10. package/assets/js/modules/accordion.js +32 -36
  11. package/assets/js/modules/alert.js +56 -56
  12. package/assets/js/modules/carousel.js +101 -101
  13. package/assets/js/modules/chart.js +216 -216
  14. package/assets/js/modules/drawer.js +15 -15
  15. package/assets/js/modules/form.js +158 -158
  16. package/assets/js/modules/helpers.js +119 -97
  17. package/assets/js/modules/modal.js +89 -89
  18. package/assets/js/modules/nav.js +26 -26
  19. package/assets/js/modules/table.js +584 -584
  20. package/assets/js/modules/testimonial.js +82 -82
  21. package/assets/js/modules/youtubevideo.js +145 -145
  22. package/assets/js/scripts.bundle.js +174 -85
  23. package/assets/js/scripts.bundle.js.map +1 -1
  24. package/assets/js/scripts.bundle.min.js +2 -2
  25. package/assets/js/scripts.bundle.min.js.map +1 -1
  26. package/assets/sass/_components.scss +14 -14
  27. package/assets/sass/_corefiles.scss +40 -40
  28. package/assets/sass/_fonts.scss +16 -16
  29. package/assets/sass/_forms.scss +9 -9
  30. package/assets/sass/_func.scss +12 -10
  31. package/assets/sass/_functions/functions.scss +141 -141
  32. package/assets/sass/_functions/mixins.scss +170 -170
  33. package/assets/sass/_functions/utilities.scss +250 -250
  34. package/assets/sass/_functions/variables.scss +466 -462
  35. package/assets/sass/_print.scss +61 -61
  36. package/assets/sass/components/accordion.scss +197 -197
  37. package/assets/sass/components/alert.scss +98 -98
  38. package/assets/sass/components/cardDeck.scss +107 -107
  39. package/assets/sass/components/carousel.scss +234 -234
  40. package/assets/sass/components/charts.scss +569 -569
  41. package/assets/sass/components/drawer.scss +46 -46
  42. package/assets/sass/components/header.scss +63 -63
  43. package/assets/sass/components/modal.scss +136 -136
  44. package/assets/sass/components/nav.scss +916 -820
  45. package/assets/sass/components/property-searchbar.scss +143 -143
  46. package/assets/sass/components/snapshot.scss +70 -70
  47. package/assets/sass/components/stepper.scss +164 -164
  48. package/assets/sass/components/tabs.scss +87 -74
  49. package/assets/sass/components/testimonial.scss +132 -132
  50. package/assets/sass/components/timeline.scss +95 -95
  51. package/assets/sass/core.scss +6 -6
  52. package/assets/sass/elements/buttons.scss +209 -209
  53. package/assets/sass/elements/card.scss +177 -177
  54. package/assets/sass/elements/container.scss +225 -225
  55. package/assets/sass/elements/forms.scss +194 -194
  56. package/assets/sass/elements/links.scss +96 -96
  57. package/assets/sass/elements/lists.scss +112 -112
  58. package/assets/sass/elements/panel.scss +161 -161
  59. package/assets/sass/elements/tables.scss +290 -290
  60. package/assets/sass/elements/tooltips.scss +84 -84
  61. package/assets/sass/elements/type.scss +136 -136
  62. package/assets/sass/email.scss +65 -65
  63. package/assets/sass/error.scss +4 -4
  64. package/assets/sass/foundations/brand.scss +72 -72
  65. package/assets/sass/foundations/circles.scss +74 -74
  66. package/assets/sass/foundations/icons.scss +72 -72
  67. package/assets/sass/foundations/media.scss +50 -50
  68. package/assets/sass/foundations/reboot.scss +130 -129
  69. package/assets/sass/foundations/root.scss +106 -104
  70. package/assets/sass/main.scss +7 -7
  71. package/assets/svg/icons.svg +598 -588
  72. package/assets/svg/logo.svg +42 -42
  73. package/assets/{js/main.js → ts/main.ts} +68 -67
  74. package/assets/ts/modules/accordion.ts +43 -0
  75. package/dist/components.common.js +148 -98
  76. package/dist/components.common.js.map +1 -1
  77. package/dist/components.css +1 -1
  78. package/dist/components.css.map +1 -1
  79. package/dist/components.umd.js +182 -132
  80. package/dist/components.umd.js.map +1 -1
  81. package/dist/components.umd.min.js +1 -1
  82. package/dist/components.umd.min.js.map +1 -1
  83. package/package.json +108 -103
  84. package/src/components/Accordion/Accordion.vue +22 -22
  85. package/src/components/Accordion/AccordionItem.vue +52 -52
  86. package/src/components/Accordion/README.md +34 -34
  87. package/src/components/Alert/Alert.vue +39 -39
  88. package/src/components/Alert/README.md +28 -28
  89. package/src/components/Banner/Banner.vue +38 -38
  90. package/src/components/Banner/README.md +23 -23
  91. package/src/components/CardDeck/CardDeck.vue +77 -77
  92. package/src/components/CardDeck/README.md +24 -24
  93. package/src/components/Carousel/Carousel.vue +85 -85
  94. package/src/components/Carousel/README.md +19 -19
  95. package/src/components/Chart/Chart.vue +88 -88
  96. package/src/components/Chart/README.md +17 -17
  97. package/src/components/Drawer/Drawer.vue +53 -53
  98. package/src/components/Drawer/README.md +22 -22
  99. package/src/components/Header/Header.vue +38 -38
  100. package/src/components/Header/README.md +27 -27
  101. package/src/components/Modal/Modal.vue +43 -43
  102. package/src/components/Modal/README.md +19 -19
  103. package/src/components/Nav/Nav.vue +212 -189
  104. package/src/components/Nav/README.md +22 -22
  105. package/src/components/NoteFeed/NoteFeed.vue +79 -79
  106. package/src/components/NoteFeed/README.md +16 -16
  107. package/src/components/PropertySearchbar/PropertySearchbar.vue +204 -204
  108. package/src/components/PropertySearchbar/README.md +25 -25
  109. package/src/components/Snapshot/README.md +20 -20
  110. package/src/components/Snapshot/Snapshot.vue +32 -32
  111. package/src/components/Stepper/README.md +32 -32
  112. package/src/components/Stepper/Step.vue +28 -28
  113. package/src/components/Stepper/Stepper.vue +33 -33
  114. package/src/components/Tabs/README.md +27 -27
  115. package/src/components/Tabs/Tab.vue +26 -26
  116. package/src/components/Tabs/Tabs.vue +75 -75
  117. package/src/components/Testimonial/README.md +25 -25
  118. package/src/components/Testimonial/Testimonial.vue +60 -60
  119. package/src/components/Timeline/README.md +18 -18
  120. package/src/components/Timeline/Timeline.vue +24 -24
  121. package/src/elements/Card/Card.vue +113 -113
  122. package/src/elements/Card/README.md +24 -24
  123. package/src/elements/FileUploads/FileUploads.vue +48 -48
  124. package/src/elements/FileUploads/README.md +24 -24
  125. package/src/elements/Input/Input.vue +268 -268
  126. package/src/elements/Input/README.md +19 -19
  127. package/src/elements/Table/README.md +62 -62
  128. package/src/elements/Table/Table.vue +126 -116
  129. package/src/foundations/Icon/Icon.vue +24 -24
  130. package/src/foundations/Icon/README.md +11 -11
  131. package/src/foundations/Logo/Logo.vue +39 -39
  132. package/src/foundations/Logo/README.md +20 -20
  133. package/src/foundations/YoutubeVideo/README.md +11 -11
  134. package/src/foundations/YoutubeVideo/YoutubeVideo.vue +24 -24
  135. package/src/helpers/strings.js +12 -12
  136. package/src/index.js +27 -27
  137. package/assets/.DS_Store +0 -0
  138. package/src/.DS_Store +0 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap v2.7.6
2
+ * Bootstrap v3.0.0
3
3
  * Copyright 2011-2022 [object Object]
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
@@ -8,14 +8,14 @@
8
8
  factory();
9
9
  })((function () { 'use strict';
10
10
 
11
- /**
12
- * Global helper functions to help maintain and enhance framework elements.
13
- * @module Helpers
11
+ /**
12
+ * Global helper functions to help maintain and enhance framework elements.
13
+ * @module Helpers
14
14
  */
15
15
 
16
- /**
17
- * Add global classes used by the CSS and later JavaScript.
18
- * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.
16
+ /**
17
+ * Add global classes used by the CSS and later JavaScript.
18
+ * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.
19
19
  */
20
20
  var addBodyClasses = body => {
21
21
  body.classList.add("js-enabled");
@@ -26,9 +26,23 @@
26
26
 
27
27
  return null;
28
28
  };
29
- /**
30
- * Check if an element contains certain elements that needs enhancing with the JavaScript helpers, it is recommended to do this on the page body after the dom is loaded. Elements that are loaded via ajax should also run this function.
31
- * @param {HTMLElement} element Dom element, this doesn't have to be the body but it is recommended.
29
+ /**
30
+ * Add global events.
31
+ * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.
32
+ */
33
+
34
+ var addGlobalEvents = body => {
35
+ window.addEventListener('hashchange', function () {
36
+ var hash = location.hash.replace('#', '');
37
+ var label = document.querySelector("label[for=\"".concat(hash, "\"]"));
38
+ var detail = document.querySelector("details[id=\"".concat(hash, "\"]:not([open])"));
39
+ if (label) label.click();else if (detail) detail.setAttribute('open', 'open');
40
+ }, false);
41
+ return null;
42
+ };
43
+ /**
44
+ * Check if an element contains certain elements that needs enhancing with the JavaScript helpers, it is recommended to do this on the page body after the dom is loaded. Elements that are loaded via ajax should also run this function.
45
+ * @param {HTMLElement} element Dom element, this doesn't have to be the body but it is recommended.
32
46
  */
33
47
 
34
48
  var checkElements = element => {
@@ -38,9 +52,9 @@
38
52
  tableWrap(table);
39
53
  });
40
54
  };
41
- /**
42
- * Wrap tables with a table wrapper div to help maintain its responsive design.
43
- * @param {HTMLElement} table Dom table element
55
+ /**
56
+ * Wrap tables with a table wrapper div to help maintain its responsive design.
57
+ * @param {HTMLElement} table Dom table element
44
58
  */
45
59
 
46
60
  var tableWrap = table => {
@@ -49,9 +63,9 @@
49
63
  table.outerHTML = "<div class=\"table__wrapper\">".concat(tableHTML, "</div>");
50
64
  }
51
65
  };
52
- /**
53
- * Creates data attributes to be used by the CSS for mobile views.
54
- * @param {HTMLElement} table Dom table element
66
+ /**
67
+ * Creates data attributes to be used by the CSS for mobile views.
68
+ * @param {HTMLElement} table Dom table element
55
69
  */
56
70
 
57
71
  var tableStacked = table => {
@@ -515,35 +529,36 @@
515
529
  }
516
530
  };
517
531
 
518
- function accordion(accordionElement) {
519
- // Fetch all the details element.
520
- if (!accordionElement.classList.contains('accordion--keep-open')) {
521
- var details = accordionElement.querySelectorAll(":scope > details"); // Add the onclick listeners.
522
-
523
- details.forEach(targetDetail => {
524
- targetDetail.addEventListener("click", () => {
525
- // Close all the details that are not targetDetail.
526
- details.forEach(detail => {
527
- if (detail !== targetDetail) {
528
- detail.removeAttribute("open");
529
- }
530
- });
531
- });
532
- });
533
- }
534
-
535
- if (window.location.hash && document.querySelector(window.location.hash + ':not([open]) summary')) {
536
- var detail = document.querySelector(window.location.hash + ' summary');
537
- detail.click();
538
- }
539
-
540
- window.addEventListener('hashchange', function () {
541
- if (window.location.hash && document.querySelector(window.location.hash + ' summary')) {
542
- var _detail = document.querySelector(window.location.hash + ' summary');
543
-
544
- _detail.click();
545
- }
546
- });
532
+ function accordion(accordionElement) {
533
+ // Fetch all the details element.
534
+ if (!accordionElement.classList.contains('accordion--keep-open')) {
535
+ var details_1 = accordionElement.querySelectorAll(":scope > details");
536
+ // Add the onclick listeners.
537
+ details_1.forEach(function (targetDetail) {
538
+ targetDetail.addEventListener("click", function () {
539
+ // Close all the details that are not targetDetail.
540
+ details_1.forEach(function (detail) {
541
+ if (detail !== targetDetail) {
542
+ detail.removeAttribute("open");
543
+ }
544
+ });
545
+ });
546
+ });
547
+ }
548
+ if (window.location.hash && document.querySelector(window.location.hash + ':not([open]) summary')) {
549
+ var detail = document.querySelector(window.location.hash + ' summary');
550
+ if (detail instanceof HTMLElement) {
551
+ detail.click();
552
+ }
553
+ }
554
+ window.addEventListener('hashchange', function () {
555
+ if (window.location.hash && document.querySelector(window.location.hash + ' summary')) {
556
+ var detail = document.querySelector(window.location.hash + ' summary');
557
+ if (detail instanceof HTMLElement) {
558
+ detail.click();
559
+ }
560
+ }
561
+ });
547
562
  }
548
563
 
549
564
  function testimonial(testimonialElement) {
@@ -781,11 +796,11 @@
781
796
  }, false);
782
797
  }
783
798
 
784
- /**
785
- * Integrate YouTube videos as a way of hosting videos without the overhead and worry surrounding hosting vides. i.e. file sizes, performance and accessibility.
799
+ /**
800
+ * Integrate YouTube videos as a way of hosting videos without the overhead and worry surrounding hosting vides. i.e. file sizes, performance and accessibility.
786
801
  */
787
802
  class youtubeVideo {
788
- /** @param {HTMLElement} embed dom element */
803
+ /** @param {Element} embed dom element */
789
804
  constructor(embed) {
790
805
  var createEmbed = this.createEmbed; // If the scripts is already loaded then lets just create the embed
791
806
 
@@ -804,10 +819,10 @@
804
819
  this.loadScripts(embed, this.createEmbed);
805
820
  }
806
821
  }
807
- /**
808
- * Load the YouTube scripts before trying to create the embed
809
- * @param {HTMLElement} embed dom element
810
- * @param {Function} createEmbed function to create the embed after script loaded.
822
+ /**
823
+ * Load the YouTube scripts before trying to create the embed
824
+ * @param {HTMLElement} embed dom element
825
+ * @param {Function} createEmbed function to create the embed after script loaded.
811
826
  */
812
827
 
813
828
 
@@ -845,9 +860,9 @@
845
860
  image.src = "https://youtube.com/favicon.ico";
846
861
  });
847
862
  }
848
- /**
849
- * Create the YouTube embed after the user has clicked on it.
850
- * @param {HTMLElement} embed dom element
863
+ /**
864
+ * Create the YouTube embed after the user has clicked on it.
865
+ * @param {HTMLElement} embed dom element
851
866
  */
852
867
 
853
868
 
@@ -861,7 +876,7 @@
861
876
  var randLetter = String.fromCharCode(65 + Math.floor(Math.random() * 26));
862
877
  link_id = randLetter + Date.now();
863
878
  target.setAttribute('id', link_id);
864
- } // This function creates an <iframe> (and YouTube player) after the API code downloads.
879
+ } // This function creates an <iframe> (and YouTube player) after the API code downloads.
865
880
 
866
881
 
867
882
  function onYouTubeIframeAPIReady() {
@@ -904,44 +919,118 @@
904
919
 
905
920
  }
906
921
 
907
- // Bootstrap modules
922
+ var modal = element => {
923
+ var links = element.querySelectorAll('.modal__outer a, .modal__outer button');
924
+ var firstLink = links[0];
925
+ var lastLink = links[links.length - 1];
926
+ var modalID = element.getAttribute('id');
908
927
 
909
- document.addEventListener("DOMContentLoaded", function () {
910
- addBodyClasses(document.body);
911
- checkElements(document.body);
912
- console.log('test.js'); // ANav
928
+ var closeModal = function closeModal() {
929
+ var button = document.querySelector('[href="' + window.location.hash + '"]');
930
+ button.focus();
931
+ window.location.hash = "close";
932
+ history.replaceState("", document.title, window.location.pathname + window.location.search); // If there is more than one video lets make sure there is only one playing at a time.
913
933
 
914
- Array.from(document.querySelectorAll('.nav')).forEach((arrayElement, index) => {
915
- navbar(arrayElement);
916
- }); // Advanced tables
934
+ if (typeof window.player != "undefined" && typeof window.player.pauseVideo == "function") window.player.pauseVideo();
935
+ }; // Trap the tab focus inside
917
936
 
918
- Array.from(document.querySelectorAll('.table__wrapper')).forEach((arrayElement, index) => {
919
- table(arrayElement);
920
- }); // Accordions
921
937
 
922
- Array.from(document.querySelectorAll('.accordion')).forEach((arrayElement, index) => {
923
- accordion(arrayElement);
924
- }); // Testimonial
938
+ element.addEventListener('keydown', function (e) {
939
+ if (e.key === "Tab" && e.shiftKey && document.activeElement == firstLink) {
940
+ e.preventDefault();
941
+ lastLink.focus();
942
+ } else if (e.key === "Tab" && !e.shiftKey && document.activeElement == lastLink) {
943
+ e.preventDefault();
944
+ firstLink.focus();
945
+ }
946
+ }); // ESC will close the open modal
925
947
 
926
- Array.from(document.querySelectorAll('.testimonial')).forEach((arrayElement, index) => {
927
- testimonial(arrayElement);
928
- }); // Carousel
948
+ document.addEventListener("keydown", function (e) {
949
+ if (e.key === "Escape" && document.querySelector('.modal:target')) closeModal();
950
+ });
951
+ element.addEventListener('click', function (e) {
952
+ for (var target = e.target; target && target != this; target = target.parentNode) {
953
+ // Close links will close the model by default but we want to remove the hash link also
954
+ if (target.matches('[href="#close"]')) {
955
+ e.preventDefault();
956
+ closeModal();
957
+ break;
958
+ } // Dock the modal to the right or left to make the content behind readable
959
+ else if (target.matches('.modal__dock--right')) {
960
+ e.preventDefault();
961
+ if (!element.classList.contains('modal--left')) element.classList.add('modal--right');
962
+ element.classList.remove('modal--left');
963
+ break;
964
+ } else if (target.matches('.modal__dock--left')) {
965
+ e.preventDefault();
966
+ if (!element.classList.contains('modal--right')) element.classList.add('modal--left');
967
+ element.classList.remove('modal--right');
968
+ break;
969
+ }
970
+ }
971
+ });
929
972
 
930
- Array.from(document.querySelectorAll('.carousel')).forEach((arrayElement, index) => {
931
- carousel(arrayElement);
932
- }); // Form
973
+ function locationHashChanged() {
974
+ if (location.hash === '#' + modalID) {
975
+ console.log("Modal is now open");
976
+ var videoButton = document.querySelector('.modal:target .modal__inner > .youtube-embed:first-child:last-child a');
977
+ console.log(videoButton);
933
978
 
934
- Array.from(document.querySelectorAll('form')).forEach((arrayElement, index) => {
935
- form(arrayElement);
936
- }); // Modal
979
+ if (videoButton) {
980
+ videoButton.click();
981
+ }
982
+ }
983
+ }
937
984
 
938
- Array.from(document.querySelectorAll('.modal')).forEach((arrayElement, index) => {
939
- modal(arrayElement);
940
- }); // YouTube videos
985
+ window.onhashchange = locationHashChanged;
986
+ };
941
987
 
942
- Array.from(document.querySelectorAll('.youtube-embed')).forEach((arrayElement, index) => {
943
- new youtubeVideo(arrayElement);
944
- });
988
+ // Modules
989
+ // Attach classes to dom elements
990
+ document.addEventListener("DOMContentLoaded", function () {
991
+ addBodyClasses(document.body);
992
+ addGlobalEvents();
993
+ checkElements(document.body);
994
+ console.log('test.js');
995
+ // ANav
996
+ Array.from(document.querySelectorAll('.nav')).forEach(function (arrayElement, index) {
997
+ navbar(arrayElement);
998
+ });
999
+ // Advanced tables
1000
+ Array.from(document.querySelectorAll('.table__wrapper')).forEach(function (arrayElement, index) {
1001
+ table(arrayElement);
1002
+ });
1003
+ // Accordions
1004
+ Array.from(document.querySelectorAll('.accordion')).forEach(function (arrayElement, index) {
1005
+ accordion(arrayElement);
1006
+ });
1007
+ // Testimonial
1008
+ Array.from(document.querySelectorAll('.testimonial')).forEach(function (arrayElement, index) {
1009
+ testimonial(arrayElement);
1010
+ });
1011
+ // Carousel
1012
+ Array.from(document.querySelectorAll('.carousel')).forEach(function (arrayElement, index) {
1013
+ carousel(arrayElement);
1014
+ });
1015
+ // Form
1016
+ Array.from(document.querySelectorAll('form')).forEach(function (arrayElement, index) {
1017
+ form(arrayElement);
1018
+ });
1019
+ // Modal
1020
+ Array.from(document.querySelectorAll('.modal')).forEach(function (arrayElement, index) {
1021
+ modal(arrayElement);
1022
+ });
1023
+ // YouTube videos
1024
+ Array.from(document.querySelectorAll('.youtube-embed')).forEach(function (arrayElement, index) {
1025
+ new youtubeVideo(arrayElement);
1026
+ });
1027
+ window.addEventListener('hashchange', function () {
1028
+ var hash = location.hash.replace('#', '');
1029
+ var label = document.querySelector("label[for=\"".concat(hash, "\"]"));
1030
+ if (label instanceof HTMLElement) {
1031
+ label.click();
1032
+ }
1033
+ }, false);
945
1034
  });
946
1035
 
947
1036
  }));