@iamproperty/components 5.6.1-beta1 → 5.6.1-beta11

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 (106) hide show
  1. package/assets/css/components/card.css +1 -1
  2. package/assets/css/components/card.css.map +1 -1
  3. package/assets/css/components/collapsible-side.css +1 -1
  4. package/assets/css/components/collapsible-side.css.map +1 -1
  5. package/assets/css/components/fileupload.css +1 -1
  6. package/assets/css/components/fileupload.css.map +1 -1
  7. package/assets/css/components/inline-edit.preload.css +1 -1
  8. package/assets/css/components/inline-edit.preload.css.map +1 -1
  9. package/assets/css/components/multiselect.css +1 -1
  10. package/assets/css/components/multiselect.css.map +1 -1
  11. package/assets/css/components/table.global.css +1 -1
  12. package/assets/css/components/table.global.css.map +1 -1
  13. package/assets/css/components/tabs.css +1 -1
  14. package/assets/css/components/tabs.css.map +1 -1
  15. package/assets/css/core.min.css +1 -1
  16. package/assets/css/core.min.css.map +1 -1
  17. package/assets/css/style.min.css +1 -1
  18. package/assets/css/style.min.css.map +1 -1
  19. package/assets/js/components/accordion/accordion.component.min.js +1 -1
  20. package/assets/js/components/actionbar/actionbar.component.js +7 -7
  21. package/assets/js/components/actionbar/actionbar.component.min.js +10 -10
  22. package/assets/js/components/actionbar/actionbar.component.min.js.map +1 -1
  23. package/assets/js/components/address-lookup/address-lookup.component.js +3 -3
  24. package/assets/js/components/address-lookup/address-lookup.component.min.js +6 -6
  25. package/assets/js/components/address-lookup/address-lookup.component.min.js.map +1 -1
  26. package/assets/js/components/applied-filters/applied-filters.component.min.js +1 -1
  27. package/assets/js/components/card/card.component.js +5 -4
  28. package/assets/js/components/card/card.component.min.js +9 -9
  29. package/assets/js/components/card/card.component.min.js.map +1 -1
  30. package/assets/js/components/carousel/carousel.component.js +3 -3
  31. package/assets/js/components/carousel/carousel.component.min.js +5 -5
  32. package/assets/js/components/carousel/carousel.component.min.js.map +1 -1
  33. package/assets/js/components/collapsible-side/collapsible-side.component.js +14 -10
  34. package/assets/js/components/collapsible-side/collapsible-side.component.min.js +14 -14
  35. package/assets/js/components/collapsible-side/collapsible-side.component.min.js.map +1 -1
  36. package/assets/js/components/fileupload/fileupload.component.js +19 -3
  37. package/assets/js/components/fileupload/fileupload.component.min.js +10 -8
  38. package/assets/js/components/fileupload/fileupload.component.min.js.map +1 -1
  39. package/assets/js/components/filterlist/filterlist.component.js +2 -2
  40. package/assets/js/components/filterlist/filterlist.component.min.js +5 -5
  41. package/assets/js/components/filterlist/filterlist.component.min.js.map +1 -1
  42. package/assets/js/components/header/header.component.min.js +1 -1
  43. package/assets/js/components/inline-edit/inline-edit.component.js +11 -3
  44. package/assets/js/components/inline-edit/inline-edit.component.min.js +7 -7
  45. package/assets/js/components/inline-edit/inline-edit.component.min.js.map +1 -1
  46. package/assets/js/components/marketing/marketing.component.min.js +1 -1
  47. package/assets/js/components/multiselect/multiselect.component.js +4 -3
  48. package/assets/js/components/multiselect/multiselect.component.min.js +6 -6
  49. package/assets/js/components/multiselect/multiselect.component.min.js.map +1 -1
  50. package/assets/js/components/nav/nav.component.min.js +1 -1
  51. package/assets/js/components/notification/notification.component.js +1 -1
  52. package/assets/js/components/notification/notification.component.min.js +2 -2
  53. package/assets/js/components/notification/notification.component.min.js.map +1 -1
  54. package/assets/js/components/pagination/pagination.component.min.js +1 -1
  55. package/assets/js/components/search/search.component.min.js +1 -1
  56. package/assets/js/components/search/search.component.min.js.map +1 -1
  57. package/assets/js/components/slider/slider.component.min.js +1 -1
  58. package/assets/js/components/table/table.component.min.js +5 -5
  59. package/assets/js/components/table/table.component.min.js.map +1 -1
  60. package/assets/js/components/tabs/tabs.component.min.js +2 -2
  61. package/assets/js/dynamic.min.js +5 -5
  62. package/assets/js/dynamic.min.js.map +1 -1
  63. package/assets/js/modules/dialogs.js +10 -5
  64. package/assets/js/modules/dynamicEvents.js +3 -0
  65. package/assets/js/modules/fileupload.js +32 -24
  66. package/assets/js/modules/helpers.js +4 -0
  67. package/assets/js/scripts.bundle.js +17 -17
  68. package/assets/js/scripts.bundle.js.map +1 -1
  69. package/assets/js/scripts.bundle.min.js +2 -2
  70. package/assets/js/scripts.bundle.min.js.map +1 -1
  71. package/assets/sass/_components.scss +47 -0
  72. package/assets/sass/_functions/variables.scss +1 -1
  73. package/assets/sass/components/card.scss +88 -1
  74. package/assets/sass/components/collapsible-side.scss +63 -48
  75. package/assets/sass/components/fileupload.scss +1 -0
  76. package/assets/sass/components/inline-edit.preload.scss +57 -3
  77. package/assets/sass/components/multiselect.scss +5 -1
  78. package/assets/sass/components/table.global.scss +4 -19
  79. package/assets/sass/components/tabs.scss +1 -6
  80. package/assets/sass/elements/buttons.scss +1 -1
  81. package/assets/sass/elements/dialog.scss +30 -2
  82. package/assets/sass/elements/forms.scss +36 -8
  83. package/assets/sass/elements/progress.scss +159 -17
  84. package/assets/sass/foundations/reboot.scss +3 -3
  85. package/assets/sass/foundations/root.scss +2 -2
  86. package/assets/ts/components/actionbar/actionbar.component.ts +7 -7
  87. package/assets/ts/components/address-lookup/address-lookup.component.ts +3 -3
  88. package/assets/ts/components/card/card.component.ts +6 -4
  89. package/assets/ts/components/carousel/carousel.component.ts +3 -3
  90. package/assets/ts/components/collapsible-side/collapsible-side.component.ts +17 -11
  91. package/assets/ts/components/fileupload/fileupload.component.ts +29 -3
  92. package/assets/ts/components/filterlist/filterlist.component.ts +2 -2
  93. package/assets/ts/components/inline-edit/inline-edit.component.ts +15 -4
  94. package/assets/ts/components/multiselect/multiselect.component.ts +4 -3
  95. package/assets/ts/components/notification/notification.component.ts +1 -1
  96. package/assets/ts/modules/dialogs.ts +13 -5
  97. package/assets/ts/modules/dynamicEvents.ts +3 -0
  98. package/assets/ts/modules/fileupload.ts +45 -31
  99. package/assets/ts/modules/helpers.ts +6 -0
  100. package/dist/components.es.js +550 -621
  101. package/dist/components.umd.js +92 -90
  102. package/dist/style.css +1 -1
  103. package/package.json +4 -4
  104. package/src/components/Card/README.md +1 -0
  105. package/src/components/CollapsibleSideMenu/CollapsibleSideMenu.vue +1 -1
  106. package/src/components/FileUpload/FileUpload.vue +29 -6
@@ -5,6 +5,8 @@ function fileupload(fileupload: Element, wrapper: Element) {
5
5
  const dropArea = wrapper.querySelector('.drop-area');
6
6
  const input = fileupload.querySelector('input');
7
7
  const maxSize = fileupload.hasAttribute('data-maxsize') ? fileupload.getAttribute('data-maxsize') : 0;
8
+ const errorMsgSize = wrapper.querySelector('.invalid-feedback.size');
9
+ const errorMsgExt = wrapper.querySelector('.invalid-feedback.ext');
8
10
 
9
11
  // We clone the input field to work as a buffer input field, this allows us to add new files without losing the old ones
10
12
  const cloneInput = input.cloneNode();
@@ -17,7 +19,7 @@ function fileupload(fileupload: Element, wrapper: Element) {
17
19
  const button = event.target.closest('.btn-primary');
18
20
 
19
21
  // If the input allows multiples then use the buffer clone input
20
- const inputTrigger = input.hasAttribute('multiple') ? cloneInput : input;
22
+ const inputTrigger = cloneInput;
21
23
 
22
24
  inputTrigger.click();
23
25
  }
@@ -50,36 +52,60 @@ function fileupload(fileupload: Element, wrapper: Element) {
50
52
 
51
53
  const changeEvent = new Event('change');
52
54
  input.dispatchEvent(changeEvent);
55
+
56
+ const elementChangeEvent = new Event('elementChange');
57
+ fileupload.dispatchEvent(elementChangeEvent);
53
58
  }
54
59
  });
55
60
 
61
+
62
+ let checkFileExt = function(filename){
63
+
64
+ if(!input.hasAttribute('accept'))
65
+ return true;
66
+
67
+ const nameExtension = filename.split('.').pop();
68
+ const acceptedTypes = input.getAttribute('accept');
69
+
70
+ if(acceptedTypes.includes(nameExtension))
71
+ return true;
72
+
73
+ return false;
74
+ }
75
+
56
76
  // Buffer input change event
57
77
  cloneInput.addEventListener('change', (event) => {
58
78
 
59
- if(input.hasAttribute('multiple')){
60
- const filesArray = [...input.files, ...cloneInput.files];
61
-
62
- let fileNames = [];
79
+ errorMsgExt.classList.remove('d-block');
80
+ errorMsgSize.classList.remove('d-block');
81
+ const filesArray = [...input.files, ...cloneInput.files];
82
+
83
+ let fileNames = [];
63
84
 
64
- const dt = new DataTransfer();
85
+ const dt = new DataTransfer();
65
86
 
66
- for (let i = 0; i < filesArray.length; i++) {
67
- const file = filesArray[i]
87
+ for (let i = 0; i < filesArray.length; i++) {
88
+ const file = filesArray[i]
68
89
 
69
- const size = file.size/1000;
90
+ const size = file.size/1000;
91
+
92
+ if(!fileNames.includes(file.name) && (maxSize == 0 || size < maxSize) && checkFileExt(file.name))
93
+ dt.items.add(file) // here you exclude the file. thus removing it.
70
94
 
71
- if(!fileNames.includes(file.name) && (maxSize == 0 || size < maxSize))
72
- dt.items.add(file) // here you exclude the file. thus removing it.
73
95
 
74
- fileNames.push(file.name);
96
+ if(!checkFileExt(file.name)){
97
+ errorMsgExt.classList.add('d-block');
75
98
  }
76
99
 
77
- input.files = dt.files;
78
- }
79
- else {
80
-
81
- input.files = cloneInput.files;
100
+ if(size > maxSize){
101
+ errorMsgSize.classList.add('d-block');
102
+ }
103
+
104
+
105
+ fileNames.push(file.name);
82
106
  }
107
+
108
+ input.files = dt.files;
83
109
 
84
110
  const changeEvent = new Event('change');
85
111
  input.dispatchEvent(changeEvent);
@@ -115,26 +141,14 @@ function fileupload(fileupload: Element, wrapper: Element) {
115
141
 
116
142
  if(fileupload.hasAttribute('data-filename')){
117
143
 
144
+ filesWrapper.innerHTML = '';
145
+
118
146
  let filename = fileupload.getAttribute('data-filename');
119
147
 
120
148
  if(filename)
121
149
  filesWrapper.innerHTML += `<span class="file">${filename} <button data-file="${filename}">Remove</button></span>`;
122
150
  }
123
151
 
124
-
125
- // Change the filename
126
- wrapper.addEventListener('click', (event) => {
127
-
128
- if (event && event.target instanceof HTMLElement && event.target.closest('.btn-primary')){
129
-
130
- const button = event.target.closest('.btn-primary');
131
-
132
- // If the input allows multiples then use the buffer clone input
133
- const inputTrigger = input.hasAttribute('multiple') ? cloneInput : input;
134
-
135
- inputTrigger.click();
136
- }
137
- });
138
152
  }
139
153
 
140
154
  export default fileupload;
@@ -100,6 +100,12 @@ export const addGlobalEvents = (body) => {
100
100
  }
101
101
  });
102
102
 
103
+ Array.from(document.querySelectorAll('label progress')).forEach((progress,index) => {
104
+ let label = progress.closest('label');
105
+
106
+ label.setAttribute('data-percent',progress.getAttribute('value'));
107
+ });
108
+
103
109
  return null
104
110
  }
105
111