@iamproperty/components 7.7.1--beta10 → 7.7.1--beta12

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 (67) hide show
  1. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  2. package/assets/js/components/actionbar/actionbar.component.min.js +1 -1
  3. package/assets/js/components/address-lookup/address-lookup.component.min.js +1 -1
  4. package/assets/js/components/advanced-select/advanced-select.component.min.js +1 -1
  5. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  6. package/assets/js/components/barchart/barchart.component.min.js +1 -1
  7. package/assets/js/components/bento-grid/bento-grid.component.min.js +1 -1
  8. package/assets/js/components/calendar/calendar.component.min.js +1 -1
  9. package/assets/js/components/card/card.component.min.js +1 -1
  10. package/assets/js/components/carousel/carousel.component.min.js +1 -1
  11. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +1 -1
  12. package/assets/js/components/config/config.component.min.js +1 -1
  13. package/assets/js/components/content/content.component.min.js +1 -1
  14. package/assets/js/components/darkmode/darkmode.component.min.js +1 -1
  15. package/assets/js/components/doughnutchart/doughnutchart.component.min.js +1 -1
  16. package/assets/js/components/fileupload/fileupload.component.min.js +1 -1
  17. package/assets/js/components/filter-card/filter-card.component.min.js +1 -1
  18. package/assets/js/components/filterlist/filterlist.component.min.js +1 -1
  19. package/assets/js/components/form/form.component.js +70 -3
  20. package/assets/js/components/form/form.component.min.js +3 -3
  21. package/assets/js/components/form/form.component.min.js.map +1 -1
  22. package/assets/js/components/header/header.component.min.js +1 -1
  23. package/assets/js/components/inline-edit/inline-edit.component.min.js +1 -1
  24. package/assets/js/components/input/input.component.min.js +1 -1
  25. package/assets/js/components/input-range/input-range.component.min.js +1 -1
  26. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  27. package/assets/js/components/menu/menu.component.min.js +1 -1
  28. package/assets/js/components/milestone/milestone.component.min.js +1 -1
  29. package/assets/js/components/milestone-group/milestone-group.component.min.js +1 -1
  30. package/assets/js/components/modal/modal.component.js +2 -1
  31. package/assets/js/components/modal/modal.component.min.js +3 -3
  32. package/assets/js/components/modal/modal.component.min.js.map +1 -1
  33. package/assets/js/components/multi-step/multi-step.component.min.js +1 -1
  34. package/assets/js/components/multi-step-modal/multi-step-modal.component.min.js +1 -1
  35. package/assets/js/components/multiselect/multiselect.component.min.js +1 -1
  36. package/assets/js/components/nav/nav.component.min.js +1 -1
  37. package/assets/js/components/notification/notification.component.min.js +1 -1
  38. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  39. package/assets/js/components/password/password.component.min.js +1 -1
  40. package/assets/js/components/popover/popover.component.min.js +1 -1
  41. package/assets/js/components/rank/rank.component.min.js +1 -1
  42. package/assets/js/components/rankings/rankings.component.min.js +1 -1
  43. package/assets/js/components/rating/rating.component.min.js +1 -1
  44. package/assets/js/components/record-card/record-card.component.min.js +1 -1
  45. package/assets/js/components/search/search.component.min.js +1 -1
  46. package/assets/js/components/slider/slider.component.min.js +1 -1
  47. package/assets/js/components/split-button/split-button.component.min.js +1 -1
  48. package/assets/js/components/std-address-lookup/std-address-lookup.component.min.js +1 -1
  49. package/assets/js/components/table/table.component.min.js +1 -1
  50. package/assets/js/components/table-ajax/table-ajax.component.min.js +1 -1
  51. package/assets/js/components/table-basic/table-basic.component.min.js +1 -1
  52. package/assets/js/components/table-no-submit/table-no-submit.component.min.js +1 -1
  53. package/assets/js/components/table-submit/table-submit.component.min.js +1 -1
  54. package/assets/js/components/tabs/tabs.component.min.js +1 -1
  55. package/assets/js/components/tag/tag.component.min.js +1 -1
  56. package/assets/js/components/tooltip/tooltip.component.min.js +1 -1
  57. package/assets/js/components/video/video.component.min.js +1 -1
  58. package/assets/js/components/video-card/video-card.component.min.js +1 -1
  59. package/assets/js/components/video-modal/video-modal.component.min.js +1 -1
  60. package/assets/js/components/word-count/word-count.component.min.js +1 -1
  61. package/assets/js/scripts.bundle.js +1 -1
  62. package/assets/js/scripts.bundle.min.js +1 -1
  63. package/assets/ts/components/form/form.component.ts +100 -5
  64. package/assets/ts/components/modal/modal.component.ts +2 -1
  65. package/dist/components.es.js +24 -24
  66. package/dist/components.umd.js +98 -98
  67. package/package.json +1 -1
@@ -3,7 +3,7 @@ import { searchAjax, filterList, setTag } from '../../modules/dropdown';
3
3
 
4
4
  trackComponentRegistered('iam-tag');
5
5
 
6
- class iamTag extends HTMLElement {
6
+ class iamForm extends HTMLElement {
7
7
  constructor() {
8
8
  super();
9
9
  this.attachShadow({ mode: 'open' });
@@ -32,6 +32,90 @@ class iamTag extends HTMLElement {
32
32
  return true;
33
33
  };
34
34
 
35
+ checkConditions = (conditions):boolean => {
36
+
37
+ let meetsCondition = true;
38
+
39
+ JSON.parse(conditions).forEach((condition) => {
40
+ if(this.querySelector(`#${condition['if']}`).value != condition['equals'])
41
+ meetsCondition = false;
42
+ });
43
+
44
+ return meetsCondition;
45
+ }
46
+
47
+ showIf = ():void => {
48
+
49
+ Array.from(this.querySelectorAll('[data-show-if]')).forEach((element) => {
50
+
51
+ if(!this.checkConditions(element.getAttribute('data-show-if')))
52
+ element.classList.add('d-none');
53
+ else
54
+ element.classList.remove('d-none');
55
+
56
+ });
57
+ }
58
+
59
+ hideIf = ():void => {
60
+
61
+ Array.from(this.querySelectorAll('[data-hide-if]')).forEach((element) => {
62
+
63
+ if(this.checkConditions(element.getAttribute('data-hide-if')))
64
+ element.classList.add('d-none');
65
+ else
66
+ element.classList.remove('d-none');
67
+
68
+ });
69
+ }
70
+
71
+ disabledIf = ():void => {
72
+
73
+ Array.from(this.querySelectorAll('[data-disabled-if]')).forEach((element) => {
74
+
75
+ if(this.checkConditions(element.getAttribute('data-disabled-if')))
76
+ element.setAttribute('disabled','disabled');
77
+ else
78
+ element.removeAttribute('disabled');
79
+
80
+ });
81
+ }
82
+
83
+ enabledIf = ():void => {
84
+
85
+ Array.from(this.querySelectorAll('[data-enabled-if]')).forEach((element) => {
86
+
87
+ if(!this.checkConditions(element.getAttribute('data-enabled-if')))
88
+ element.setAttribute('disabled','disabled');
89
+ else
90
+ element.removeAttribute('disabled');
91
+
92
+ });
93
+ }
94
+
95
+ requiredIf = ():void => {
96
+
97
+ Array.from(this.querySelectorAll('[data-required-if]')).forEach((element) => {
98
+
99
+ if(this.checkConditions(element.getAttribute('data-required-if')))
100
+ element.setAttribute('required','required');
101
+ else
102
+ element.removeAttribute('required');
103
+
104
+ });
105
+ }
106
+
107
+ readonlyIf = ():void => {
108
+
109
+ Array.from(this.querySelectorAll('[data-readonly-if]')).forEach((element) => {
110
+
111
+ if(this.checkConditions(element.getAttribute('data-readonly-if')))
112
+ element.setAttribute('readonly','readonly');
113
+ else
114
+ element.removeAttribute('readonly');
115
+
116
+ });
117
+ }
118
+
35
119
  connectedCallback(): void {
36
120
 
37
121
  const form = this.querySelector('form');
@@ -48,14 +132,11 @@ class iamTag extends HTMLElement {
48
132
 
49
133
  if (!this.isFormValid(form)) {
50
134
 
51
- console.log('hey2');
52
-
53
135
  e.preventDefault();
54
136
  form?.querySelector('input:invalid')?.scrollIntoView();
55
137
  }
56
138
  });
57
139
 
58
-
59
140
  // conditional reveal required fields
60
141
  Array.from(form.querySelectorAll('.conditional [required]')).forEach((input) => {
61
142
 
@@ -70,8 +151,22 @@ class iamTag extends HTMLElement {
70
151
  input.removeAttribute('data-required');
71
152
  });
72
153
 
154
+ this.showIf();
155
+ this.hideIf();
156
+ this.disabledIf();
157
+ this.enabledIf();
158
+ this.requiredIf();
159
+ this.readonlyIf();
160
+
161
+
73
162
  form.addEventListener('change', () => {
74
163
 
164
+ this.showIf();
165
+ this.hideIf();
166
+ this.disabledIf();
167
+ this.enabledIf();
168
+ this.requiredIf();
169
+ this.readonlyIf();
75
170
 
76
171
  Array.from(form.querySelectorAll('.conditional [data-conditional-required], .conditional [data-conditional-data-required]')).forEach((input) => {
77
172
 
@@ -99,4 +194,4 @@ class iamTag extends HTMLElement {
99
194
  }
100
195
  }
101
196
 
102
- export default iamTag;
197
+ export default iamForm;
@@ -56,7 +56,8 @@ class iamModal extends HTMLElement {
56
56
 
57
57
  this.dispatchEvent(agreedEvent);
58
58
 
59
- closeModal(this);
59
+ if(!this.querySelector(':invalid'))
60
+ closeModal(this);
60
61
  }
61
62
 
62
63
  document.addEventListener('click', (e) => {