@aquera/nile-elements 0.1.37 → 0.1.38-beta-1.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 (244) hide show
  1. package/README.md +9 -0
  2. package/demo/index.html +9 -9
  3. package/dist/{fixture-372df3b0.esm.js → fixture-add72f26.esm.js} +1 -1
  4. package/dist/{fixture-161dee0b.cjs.js → fixture-cb376a7f.cjs.js} +3 -3
  5. package/dist/fixture-cb376a7f.cjs.js.map +1 -0
  6. package/dist/index.cjs.js +1 -1
  7. package/dist/index.esm.js +1 -1
  8. package/dist/lit-html-39a6718c.esm.js +6 -0
  9. package/dist/lit-html-9b3af046.cjs.js +6 -0
  10. package/dist/lit-html-9b3af046.cjs.js.map +1 -0
  11. package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
  12. package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
  13. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
  14. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js.map +1 -1
  15. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
  16. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  17. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  18. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  19. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  20. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  21. package/dist/nile-button/nile-button.test.esm.js +1 -1
  22. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
  23. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
  24. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  25. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  26. package/dist/nile-card/nile-card.test.cjs.js +1 -1
  27. package/dist/nile-card/nile-card.test.esm.js +1 -1
  28. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  29. package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
  30. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  31. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  32. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  33. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  34. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  35. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  36. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  37. package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
  38. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  39. package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
  40. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  41. package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
  42. package/dist/nile-file-preview/index.cjs.js +2 -0
  43. package/dist/nile-file-preview/index.cjs.js.map +1 -0
  44. package/dist/nile-file-preview/index.esm.js +1 -0
  45. package/dist/nile-file-preview/nile-file-preview.cjs.js +2 -0
  46. package/dist/nile-file-preview/nile-file-preview.cjs.js.map +1 -0
  47. package/dist/nile-file-preview/nile-file-preview.css.cjs.js +2 -0
  48. package/dist/nile-file-preview/nile-file-preview.css.cjs.js.map +1 -0
  49. package/dist/nile-file-preview/nile-file-preview.css.esm.js +510 -0
  50. package/dist/nile-file-preview/nile-file-preview.esm.js +3 -0
  51. package/dist/nile-file-preview/nile-file-preview.template.cjs.js +2 -0
  52. package/dist/nile-file-preview/nile-file-preview.template.cjs.js.map +1 -0
  53. package/dist/nile-file-preview/nile-file-preview.template.esm.js +179 -0
  54. package/dist/nile-file-preview/nile-file-preview.test.cjs.js +2 -0
  55. package/dist/nile-file-preview/nile-file-preview.test.cjs.js.map +1 -0
  56. package/dist/nile-file-preview/nile-file-preview.test.esm.js +1 -0
  57. package/dist/nile-file-preview/types/index.cjs.js +2 -0
  58. package/dist/nile-file-preview/types/index.cjs.js.map +1 -0
  59. package/dist/nile-file-preview/types/index.esm.js +1 -0
  60. package/dist/nile-file-preview/types/nile-file-preview.enums.cjs.js +2 -0
  61. package/dist/nile-file-preview/types/nile-file-preview.enums.cjs.js.map +1 -0
  62. package/dist/nile-file-preview/types/nile-file-preview.enums.esm.js +1 -0
  63. package/dist/nile-file-preview/types/nile-file-preview.interface.cjs.js +2 -0
  64. package/dist/nile-file-preview/types/nile-file-preview.interface.cjs.js.map +1 -0
  65. package/dist/nile-file-preview/types/nile-file-preview.interface.esm.js +1 -0
  66. package/dist/nile-file-preview/utils/index.cjs.js +2 -0
  67. package/dist/nile-file-preview/utils/index.cjs.js.map +1 -0
  68. package/dist/nile-file-preview/utils/index.esm.js +1 -0
  69. package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js +2 -0
  70. package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js.map +1 -0
  71. package/dist/nile-file-preview/utils/nile-file-preview.util.esm.js +1 -0
  72. package/dist/nile-file-upload/index.cjs.js +2 -0
  73. package/dist/nile-file-upload/index.cjs.js.map +1 -0
  74. package/dist/nile-file-upload/index.esm.js +1 -0
  75. package/dist/nile-file-upload/nile-file-upload.cjs.js +2 -0
  76. package/dist/nile-file-upload/nile-file-upload.cjs.js.map +1 -0
  77. package/dist/nile-file-upload/nile-file-upload.css.cjs.js +2 -0
  78. package/dist/nile-file-upload/nile-file-upload.css.cjs.js.map +1 -0
  79. package/dist/nile-file-upload/nile-file-upload.css.esm.js +536 -0
  80. package/dist/nile-file-upload/nile-file-upload.esm.js +3 -0
  81. package/dist/nile-file-upload/nile-file-upload.template.cjs.js +10 -0
  82. package/dist/nile-file-upload/nile-file-upload.template.cjs.js.map +1 -0
  83. package/dist/nile-file-upload/nile-file-upload.template.esm.js +163 -0
  84. package/dist/nile-file-upload/nile-file-upload.test.cjs.js +2 -0
  85. package/dist/nile-file-upload/nile-file-upload.test.cjs.js.map +1 -0
  86. package/dist/nile-file-upload/nile-file-upload.test.esm.js +1 -0
  87. package/dist/nile-file-upload/types/file-upload.enums.cjs.js +2 -0
  88. package/dist/nile-file-upload/types/file-upload.enums.cjs.js.map +1 -0
  89. package/dist/nile-file-upload/types/file-upload.enums.esm.js +1 -0
  90. package/dist/nile-file-upload/types/file-upload.type.cjs.js +2 -0
  91. package/dist/nile-file-upload/types/file-upload.type.cjs.js.map +1 -0
  92. package/dist/nile-file-upload/types/file-upload.type.esm.js +1 -0
  93. package/dist/nile-file-upload/types/index.cjs.js +2 -0
  94. package/dist/nile-file-upload/types/index.cjs.js.map +1 -0
  95. package/dist/nile-file-upload/types/index.esm.js +1 -0
  96. package/dist/nile-file-upload/utils/drag-drop.util.cjs.js +2 -0
  97. package/dist/nile-file-upload/utils/drag-drop.util.cjs.js.map +1 -0
  98. package/dist/nile-file-upload/utils/drag-drop.util.esm.js +1 -0
  99. package/dist/nile-file-upload/utils/file-validation.util.cjs.js +2 -0
  100. package/dist/nile-file-upload/utils/file-validation.util.cjs.js.map +1 -0
  101. package/dist/nile-file-upload/utils/file-validation.util.esm.js +1 -0
  102. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
  103. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +1 -1
  104. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  105. package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
  106. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  107. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
  108. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  109. package/dist/nile-hero/nile-hero.test.esm.js +1 -1
  110. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  111. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  112. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  113. package/dist/nile-input/nile-input.test.esm.js +1 -1
  114. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  115. package/dist/nile-link/nile-link.test.esm.js +1 -1
  116. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  117. package/dist/nile-loader/nile-loader.test.esm.js +1 -1
  118. package/dist/nile-popover/index.cjs.js +1 -1
  119. package/dist/nile-popover/index.esm.js +1 -1
  120. package/dist/nile-popover/nile-popover.cjs.js +3 -11
  121. package/dist/nile-popover/nile-popover.cjs.js.map +1 -1
  122. package/dist/nile-popover/nile-popover.esm.js +7 -13
  123. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  124. package/dist/nile-popover/nile-popover.test.cjs.js.map +1 -1
  125. package/dist/nile-popover/nile-popover.test.esm.js +3 -3
  126. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  127. package/dist/nile-popup/nile-popup.test.esm.js +1 -1
  128. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  129. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
  130. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  131. package/dist/nile-radio/nile-radio.test.esm.js +1 -1
  132. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  133. package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
  134. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  135. package/dist/nile-select/nile-select.test.esm.js +1 -1
  136. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  137. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
  138. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  139. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  140. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  141. package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
  142. package/dist/src/index.d.ts +2 -0
  143. package/dist/src/index.js +2 -0
  144. package/dist/src/index.js.map +1 -1
  145. package/dist/src/nile-file-preview/index.d.ts +1 -0
  146. package/dist/src/nile-file-preview/index.js +2 -0
  147. package/dist/src/nile-file-preview/index.js.map +1 -0
  148. package/dist/src/nile-file-preview/nile-file-preview.css.d.ts +12 -0
  149. package/dist/src/nile-file-preview/nile-file-preview.css.js +522 -0
  150. package/dist/src/nile-file-preview/nile-file-preview.css.js.map +1 -0
  151. package/dist/src/nile-file-preview/nile-file-preview.d.ts +50 -0
  152. package/dist/src/nile-file-preview/nile-file-preview.js +171 -0
  153. package/dist/src/nile-file-preview/nile-file-preview.js.map +1 -0
  154. package/dist/src/nile-file-preview/nile-file-preview.template.d.ts +13 -0
  155. package/dist/src/nile-file-preview/nile-file-preview.template.js +210 -0
  156. package/dist/src/nile-file-preview/nile-file-preview.template.js.map +1 -0
  157. package/dist/src/nile-file-preview/nile-file-preview.test.d.ts +7 -0
  158. package/dist/src/nile-file-preview/nile-file-preview.test.js +30 -0
  159. package/dist/src/nile-file-preview/nile-file-preview.test.js.map +1 -0
  160. package/dist/src/nile-file-preview/types/file-preview.enums.d.ts +23 -0
  161. package/dist/src/nile-file-preview/types/file-preview.enums.js +28 -0
  162. package/dist/src/nile-file-preview/types/file-preview.enums.js.map +1 -0
  163. package/dist/src/nile-file-preview/types/file-preview.interface.d.ts +4 -0
  164. package/dist/src/nile-file-preview/types/file-preview.interface.js +2 -0
  165. package/dist/src/nile-file-preview/types/file-preview.interface.js.map +1 -0
  166. package/dist/src/nile-file-preview/types/index.d.ts +2 -0
  167. package/dist/src/nile-file-preview/types/index.js +3 -0
  168. package/dist/src/nile-file-preview/types/index.js.map +1 -0
  169. package/dist/src/nile-file-preview/types/nile-file-preview.enums.d.ts +28 -0
  170. package/dist/src/nile-file-preview/types/nile-file-preview.enums.js +33 -0
  171. package/dist/src/nile-file-preview/types/nile-file-preview.enums.js.map +1 -0
  172. package/dist/src/nile-file-preview/types/nile-file-preview.interface.d.ts +4 -0
  173. package/dist/src/nile-file-preview/types/nile-file-preview.interface.js +2 -0
  174. package/dist/src/nile-file-preview/types/nile-file-preview.interface.js.map +1 -0
  175. package/dist/src/nile-file-preview/utils/file-preview.util.d.ts +3 -0
  176. package/dist/src/nile-file-preview/utils/file-preview.util.js +29 -0
  177. package/dist/src/nile-file-preview/utils/file-preview.util.js.map +1 -0
  178. package/dist/src/nile-file-preview/utils/index.d.ts +1 -0
  179. package/dist/src/nile-file-preview/utils/index.js +2 -0
  180. package/dist/src/nile-file-preview/utils/index.js.map +1 -0
  181. package/dist/src/nile-file-preview/utils/nile-file-preview.util.d.ts +4 -0
  182. package/dist/src/nile-file-preview/utils/nile-file-preview.util.js +38 -0
  183. package/dist/src/nile-file-preview/utils/nile-file-preview.util.js.map +1 -0
  184. package/dist/src/nile-file-upload/index.d.ts +1 -0
  185. package/dist/src/nile-file-upload/index.js +2 -0
  186. package/dist/src/nile-file-upload/index.js.map +1 -0
  187. package/dist/src/nile-file-upload/nile-file-upload.css.d.ts +12 -0
  188. package/dist/src/nile-file-upload/nile-file-upload.css.js +548 -0
  189. package/dist/src/nile-file-upload/nile-file-upload.css.js.map +1 -0
  190. package/dist/src/nile-file-upload/nile-file-upload.d.ts +48 -0
  191. package/dist/src/nile-file-upload/nile-file-upload.js +165 -0
  192. package/dist/src/nile-file-upload/nile-file-upload.js.map +1 -0
  193. package/dist/src/nile-file-upload/nile-file-upload.template.d.ts +11 -0
  194. package/dist/src/nile-file-upload/nile-file-upload.template.js +171 -0
  195. package/dist/src/nile-file-upload/nile-file-upload.template.js.map +1 -0
  196. package/dist/src/nile-file-upload/nile-file-upload.test.d.ts +7 -0
  197. package/dist/src/nile-file-upload/nile-file-upload.test.js +30 -0
  198. package/dist/src/nile-file-upload/nile-file-upload.test.js.map +1 -0
  199. package/dist/src/nile-file-upload/types/file-upload.enums.d.ts +35 -0
  200. package/dist/src/nile-file-upload/types/file-upload.enums.js +42 -0
  201. package/dist/src/nile-file-upload/types/file-upload.enums.js.map +1 -0
  202. package/dist/src/nile-file-upload/types/file-upload.type.d.ts +4 -0
  203. package/dist/src/nile-file-upload/types/file-upload.type.js +2 -0
  204. package/dist/src/nile-file-upload/types/file-upload.type.js.map +1 -0
  205. package/dist/src/nile-file-upload/types/index.d.ts +2 -0
  206. package/dist/src/nile-file-upload/types/index.js +3 -0
  207. package/dist/src/nile-file-upload/types/index.js.map +1 -0
  208. package/dist/src/nile-file-upload/utils/drag-drop.util.d.ts +23 -0
  209. package/dist/src/nile-file-upload/utils/drag-drop.util.js +85 -0
  210. package/dist/src/nile-file-upload/utils/drag-drop.util.js.map +1 -0
  211. package/dist/src/nile-file-upload/utils/file-validation.util.d.ts +11 -0
  212. package/dist/src/nile-file-upload/utils/file-validation.util.js +120 -0
  213. package/dist/src/nile-file-upload/utils/file-validation.util.js.map +1 -0
  214. package/dist/src/nile-tooltip/nile-tooltip-utils.d.ts +18 -0
  215. package/dist/src/nile-tooltip/nile-tooltip-utils.js +216 -0
  216. package/dist/src/nile-tooltip/nile-tooltip-utils.js.map +1 -0
  217. package/dist/src/nile-tooltip/nile-tooltip.test.d.ts +1 -0
  218. package/dist/src/nile-tooltip/nile-tooltip.test.js +148 -0
  219. package/dist/src/nile-tooltip/nile-tooltip.test.js.map +1 -0
  220. package/dist/tsconfig.tsbuildinfo +1 -1
  221. package/package.json +1 -1
  222. package/src/index.ts +3 -1
  223. package/src/nile-file-preview/index.ts +1 -0
  224. package/src/nile-file-preview/nile-file-preview.css.ts +524 -0
  225. package/src/nile-file-preview/nile-file-preview.template.ts +248 -0
  226. package/src/nile-file-preview/nile-file-preview.test.ts +38 -0
  227. package/src/nile-file-preview/nile-file-preview.ts +173 -0
  228. package/src/nile-file-preview/types/index.ts +2 -0
  229. package/src/nile-file-preview/types/nile-file-preview.enums.ts +31 -0
  230. package/src/nile-file-preview/types/nile-file-preview.interface.ts +4 -0
  231. package/src/nile-file-preview/utils/index.ts +1 -0
  232. package/src/nile-file-preview/utils/nile-file-preview.util.ts +47 -0
  233. package/src/nile-file-upload/index.ts +1 -0
  234. package/src/nile-file-upload/nile-file-upload.css.ts +550 -0
  235. package/src/nile-file-upload/nile-file-upload.template.ts +201 -0
  236. package/src/nile-file-upload/nile-file-upload.test.ts +38 -0
  237. package/src/nile-file-upload/nile-file-upload.ts +149 -0
  238. package/src/nile-file-upload/types/file-upload.enums.ts +39 -0
  239. package/src/nile-file-upload/types/file-upload.type.ts +5 -0
  240. package/src/nile-file-upload/types/index.ts +2 -0
  241. package/src/nile-file-upload/utils/drag-drop.util.ts +106 -0
  242. package/src/nile-file-upload/utils/file-validation.util.ts +163 -0
  243. package/vscode-html-custom-data.json +143 -0
  244. package/dist/fixture-161dee0b.cjs.js.map +0 -1
@@ -0,0 +1,163 @@
1
+ import { DragHandler } from "./drag-drop.util";
2
+ import { FileUploadState, FileUploadError, FileUploadEvent } from "../types";
3
+ import { NileFileUpload } from "../nile-file-upload";
4
+
5
+ // write a function to check for duplicatse in the files name it as areDuplicates
6
+ export const areDuplicates = (files: File[], uploadedFiles: File[]): boolean => {
7
+ return files.some(file =>
8
+ uploadedFiles.some(existing =>
9
+ file.name === existing.name &&
10
+ file.size === existing.size &&
11
+ file.lastModified === existing.lastModified
12
+ )
13
+ );
14
+ };
15
+
16
+ // set up the drag handler
17
+ export const setUpDragHandler = (
18
+ nileFileUpload: NileFileUpload,
19
+ dragHandler: DragHandler
20
+ ): void => {
21
+ dragHandler.onStateChange((newState: FileUploadState) => {
22
+ nileFileUpload.state = newState;
23
+ });
24
+
25
+ dragHandler.onFileDrop((files: File[]) => {
26
+ let { allowMultiple, uploadedFiles, errorMessage, requestUpdate } = nileFileUpload;
27
+
28
+ if (!allowMultiple) {
29
+ const total = uploadedFiles.length + files.length;
30
+ if (total > 1) {
31
+ errorMessage = FileUploadError.MULTIPLE_NOT_ALLOWED;
32
+ requestUpdate();
33
+ return;
34
+ }
35
+ }
36
+
37
+ let newFiles = files;
38
+
39
+ if (!nileFileUpload.allowDuplicates) {
40
+ newFiles = files.filter(file =>
41
+ !nileFileUpload.uploadedFiles.some(
42
+ uploaded =>
43
+ uploaded.name === file.name &&
44
+ uploaded.size === file.size &&
45
+ uploaded.type === file.type
46
+ )
47
+ );
48
+
49
+ if (newFiles.length === 0) {
50
+ nileFileUpload.errorMessage = FileUploadError.DUPLICATES_NOT_ALLOWED;
51
+ nileFileUpload.requestUpdate();
52
+ return;
53
+ }
54
+ }
55
+
56
+ nileFileUpload.uploadedFiles = [...nileFileUpload.uploadedFiles, ...newFiles];
57
+ nileFileUpload.requestUpdate();
58
+ });
59
+
60
+ dragHandler.setErrorMessage((errorMessage: string) => {
61
+ nileFileUpload.errorMessage = errorMessage;
62
+ });
63
+ };
64
+
65
+
66
+ // global listenrers
67
+ export const addGlobalListeners = (dragHandler: DragHandler): void => {
68
+ document.addEventListener('dragover', dragHandler.preventDragOver, { passive: false });
69
+ document.addEventListener('drop', dragHandler.preventDrop, { passive: false });
70
+ }
71
+
72
+ // for hover & dragging functionality
73
+ export const addInternalListeners = (nileFileUpload: NileFileUpload, dragHandler: DragHandler, uploadRequests: any): void => {
74
+ nileFileUpload.addEventListener('mouseenter', (e) => handleHoverIn(nileFileUpload.setState, nileFileUpload.state));
75
+ nileFileUpload.addEventListener('mouseleave', (e) => handleHoverOut(nileFileUpload.setState, nileFileUpload.state));
76
+ nileFileUpload.addEventListener('dragenter', (e) => dragHandler.dragEnter(e));
77
+ nileFileUpload.addEventListener('dragleave', (e) => dragHandler.dragLeave(e));
78
+ nileFileUpload.addEventListener('dragover', (e) => dragHandler.dragOver(e));
79
+ nileFileUpload.addEventListener('drop', (e) => dragHandler.drop(e));
80
+
81
+ cancelFileUpload(nileFileUpload, uploadRequests);
82
+ }
83
+
84
+ export function handleHoverIn(
85
+ setState: (state: FileUploadState) => void,
86
+ currentState: FileUploadState
87
+ ): void {
88
+ if (currentState === FileUploadState.DEFAULT) {
89
+ setState(FileUploadState.HOVER);
90
+ }
91
+ }
92
+
93
+ export function handleHoverOut(
94
+ setState: (state: FileUploadState) => void,
95
+ currentState: FileUploadState
96
+ ): void {
97
+ if (currentState === FileUploadState.HOVER) {
98
+ setState(FileUploadState.DEFAULT);
99
+ }
100
+ }
101
+
102
+ export function uploadFiles(nileFileUpload: NileFileUpload) {
103
+ const { uploadedFiles, fileUploadUrl, uploadRequests } = nileFileUpload;
104
+ if (!fileUploadUrl || !uploadedFiles?.length) return;
105
+
106
+ for (const file of uploadedFiles) {
107
+ const formData = new FormData();
108
+ formData.append('file', file);
109
+
110
+ const xhr = new XMLHttpRequest();
111
+ uploadRequests.set(file, xhr);
112
+
113
+ xhr.upload.onprogress = (e) => {
114
+ const percent = Math.floor((e.loaded / e.total) * 100);
115
+ nileFileUpload.dispatchEvent(new CustomEvent(FileUploadEvent.NILE_UPLOAD_PROGRESS, {
116
+ detail: { file, progress: percent }
117
+ }));
118
+ };
119
+
120
+ xhr.onload = () => {
121
+ uploadRequests.delete(file);
122
+ if (xhr.status === 201) {
123
+ // Remove the successfully uploaded file
124
+ nileFileUpload.uploadedFiles = nileFileUpload.uploadedFiles.filter(f => f !== file);
125
+
126
+ nileFileUpload.dispatchEvent(new CustomEvent(FileUploadEvent.NILE_UPLOAD_SUCCESS, {
127
+ detail: { file, response: xhr.response }
128
+ }));
129
+ } else {
130
+ nileFileUpload.dispatchEvent(new CustomEvent(FileUploadEvent.SERVER_SIDE_ERROR, {
131
+ detail: { file, status: xhr.status, response: xhr.response }
132
+ }));
133
+ }
134
+ };
135
+
136
+ xhr.onerror = () => {
137
+ uploadRequests.delete(file);
138
+ nileFileUpload.dispatchEvent(new CustomEvent(FileUploadEvent.NILE_NETWORK_ERROR, {
139
+ detail: { file, status: xhr.status, response: xhr.response }
140
+ }));
141
+ };
142
+
143
+ xhr.open('POST', fileUploadUrl);
144
+ xhr.send(formData);
145
+ }
146
+ }
147
+
148
+ export const cancelFileUpload = (nileFileUpload: NileFileUpload, uploadRequests: Map<File, XMLHttpRequest>) => {
149
+ document.addEventListener(FileUploadEvent.NILE_CANCEL_UPLOAD, (e: CustomEvent) => {
150
+ const fileToCancel = e.detail.file;
151
+ const xhr = uploadRequests.get(fileToCancel);
152
+
153
+ if (xhr) {
154
+ xhr.abort();
155
+ }
156
+ uploadRequests.delete(fileToCancel);
157
+ nileFileUpload.uploadedFiles = nileFileUpload.uploadedFiles.filter(file => file !== fileToCancel);
158
+
159
+ nileFileUpload.dispatchEvent(new CustomEvent(FileUploadEvent.NILE_UPLOAD_CANCELLED, {
160
+ detail: { file: fileToCancel }
161
+ }));
162
+ });
163
+ };
@@ -1393,6 +1393,149 @@
1393
1393
  }
1394
1394
  ]
1395
1395
  },
1396
+ {
1397
+ "name": "nile-file-preview",
1398
+ "description": "Nile preview component.\n\nAttributes:\n\n * `errorMessage` {`string`} - \n\n * `inputFile` {`File`} - \n\n * `fileUrl` {`string`} - \n\n * `uploadStatus` {`number`} - \n\n * `allowedTypes` {`string[]`} - \n\n * `state` {`FilePreviewState`} - \n\n * `variant` {`FilePreviewVariant`} - \n\n * `inputFileName` {`string`} - \n\nProperties:\n\n * `errorMessage` {`string`} - \n\n * `inputFile` {`File`} - \n\n * `fileUrl` {`string`} - \n\n * `uploadStatus` {`number`} - \n\n * `allowedTypes` {`string[]`} - \n\n * `state` {`FilePreviewState`} - \n\n * `variant` {`FilePreviewVariant`} - \n\n * `inputFileName` {`string`} - \n\n * `inputFileHtml` {`UncompiledTemplateResult<ResultType> | null`} - \n\n * `originalUrl` {`string`} - \n\n * `dummyFile` {`File`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
1399
+ "attributes": [
1400
+ {
1401
+ "name": "errorMessage",
1402
+ "description": "`errorMessage` {`string`} - \n\nProperty: errorMessage\n\nDefault: "
1403
+ },
1404
+ {
1405
+ "name": "inputFile",
1406
+ "description": "`inputFile` {`File`} - \n\nProperty: inputFile"
1407
+ },
1408
+ {
1409
+ "name": "fileUrl",
1410
+ "description": "`fileUrl` {`string`} - \n\nProperty: fileUrl\n\nDefault: "
1411
+ },
1412
+ {
1413
+ "name": "uploadStatus",
1414
+ "description": "`uploadStatus` {`number`} - \n\nProperty: uploadStatus\n\nDefault: 0"
1415
+ },
1416
+ {
1417
+ "name": "allowedTypes",
1418
+ "description": "`allowedTypes` {`string[]`} - \n\nProperty: allowedTypes\n\nDefault: "
1419
+ },
1420
+ {
1421
+ "name": "state",
1422
+ "description": "`state` {`FilePreviewState`} - \n\nProperty: state\n\nDefault: default",
1423
+ "values": [
1424
+ {
1425
+ "name": "default"
1426
+ },
1427
+ {
1428
+ "name": "uploading"
1429
+ },
1430
+ {
1431
+ "name": "preview"
1432
+ },
1433
+ {
1434
+ "name": "no-preview"
1435
+ },
1436
+ {
1437
+ "name": "error"
1438
+ }
1439
+ ]
1440
+ },
1441
+ {
1442
+ "name": "variant",
1443
+ "description": "`variant` {`FilePreviewVariant`} - \n\nProperty: variant\n\nDefault: horizontal",
1444
+ "values": [
1445
+ {
1446
+ "name": "horizontal"
1447
+ },
1448
+ {
1449
+ "name": "vertical"
1450
+ }
1451
+ ]
1452
+ },
1453
+ {
1454
+ "name": "inputFileName",
1455
+ "description": "`inputFileName` {`string`} - \n\nProperty: inputFileName\n\nDefault: "
1456
+ }
1457
+ ]
1458
+ },
1459
+ {
1460
+ "name": "nile-file-upload",
1461
+ "description": "Nile file-upload component.\n\nAttributes:\n\n * `size` {`number`} - \n\n * `error` {`boolean`} - \n\n * `errorMessage` {`string`} - \n\n * `allowMultiple` {`boolean`} - \n\n * `allowDuplicates` {`boolean`} - \n\n * `uploadedFiles` {`File[]`} - \n\n * `title` {`string`} - \n\n * `subtitle` {`string`} - \n\n * `state` {`FileUploadState`} - \n\n * `variant` {`FileUploadVariant`} - \n\n * `fileUploadUrl` {`string`} - \n\n * `autoUpload` {`boolean`} - \n\nProperties:\n\n * `size` {`number`} - \n\n * `error` {`boolean`} - \n\n * `errorMessage` {`string`} - \n\n * `allowMultiple` {`boolean`} - \n\n * `allowDuplicates` {`boolean`} - \n\n * `uploadedFiles` {`File[]`} - \n\n * `title` {`string`} - \n\n * `subtitle` {`string`} - \n\n * `state` {`FileUploadState`} - \n\n * `variant` {`FileUploadVariant`} - \n\n * `fileUploadUrl` {`string`} - \n\n * `autoUpload` {`boolean`} - \n\n * `input` {`HTMLInputElement`} - \n\n * `uploadRequests` {`Map<File, XMLHttpRequest>`} - \n\n * `dragHandler` - \n\n * `setState` - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
1462
+ "attributes": [
1463
+ {
1464
+ "name": "size",
1465
+ "description": "`size` {`number`} - \n\nProperty: size\n\nDefault: 0"
1466
+ },
1467
+ {
1468
+ "name": "error",
1469
+ "description": "`error` {`boolean`} - \n\nProperty: error\n\nDefault: false",
1470
+ "valueSet": "v"
1471
+ },
1472
+ {
1473
+ "name": "errorMessage",
1474
+ "description": "`errorMessage` {`string`} - \n\nProperty: errorMessage\n\nDefault: "
1475
+ },
1476
+ {
1477
+ "name": "allowMultiple",
1478
+ "description": "`allowMultiple` {`boolean`} - \n\nProperty: allowMultiple\n\nDefault: true",
1479
+ "valueSet": "v"
1480
+ },
1481
+ {
1482
+ "name": "allowDuplicates",
1483
+ "description": "`allowDuplicates` {`boolean`} - \n\nProperty: allowDuplicates\n\nDefault: false",
1484
+ "valueSet": "v"
1485
+ },
1486
+ {
1487
+ "name": "uploadedFiles",
1488
+ "description": "`uploadedFiles` {`File[]`} - \n\nProperty: uploadedFiles\n\nDefault: "
1489
+ },
1490
+ {
1491
+ "name": "title",
1492
+ "description": "`title` {`string`} - \n\nProperty: title\n\nDefault: Drag and drop to upload"
1493
+ },
1494
+ {
1495
+ "name": "subtitle",
1496
+ "description": "`subtitle` {`string`} - \n\nProperty: subtitle\n\nDefault: PNG, JPG or SVG (upto 1MB) | 1:1 ratio"
1497
+ },
1498
+ {
1499
+ "name": "state",
1500
+ "description": "`state` {`FileUploadState`} - \n\nProperty: state\n\nDefault: default",
1501
+ "values": [
1502
+ {
1503
+ "name": "default"
1504
+ },
1505
+ {
1506
+ "name": "disabled"
1507
+ },
1508
+ {
1509
+ "name": "hover"
1510
+ },
1511
+ {
1512
+ "name": "drag"
1513
+ }
1514
+ ]
1515
+ },
1516
+ {
1517
+ "name": "variant",
1518
+ "description": "`variant` {`FileUploadVariant`} - \n\nProperty: variant\n\nDefault: horizontal",
1519
+ "values": [
1520
+ {
1521
+ "name": "horizontal"
1522
+ },
1523
+ {
1524
+ "name": "vertical"
1525
+ }
1526
+ ]
1527
+ },
1528
+ {
1529
+ "name": "fileUploadUrl",
1530
+ "description": "`fileUploadUrl` {`string`} - \n\nProperty: fileUploadUrl\n\nDefault: "
1531
+ },
1532
+ {
1533
+ "name": "autoUpload",
1534
+ "description": "`autoUpload` {`boolean`} - \n\nProperty: autoUpload\n\nDefault: true",
1535
+ "valueSet": "v"
1536
+ }
1537
+ ]
1538
+ },
1396
1539
  {
1397
1540
  "name": "nile-filter-chip",
1398
1541
  "description": "Nile filter-chip component.\n\nEvents:\n\n * `nile-close` {`CustomEvent<{ value: string; viewMoreCount: number; }>`} - \n\n * `nile-click` {`CustomEvent<{ value: string; viewMoreCount: number; }>`} - \n\nAttributes:\n\n * `label` {`string`} - \n\n * `value` {`string`} - \n\n * `viewMoreCount` {`number`} - \n\n * `editable` {`boolean`} - \n\n * `closable` {`boolean`} - \n\n * `icon` {`string`} - \n\n * `removeIcon` {`string`} - \n\n * `active` {`boolean`} - \n\nProperties:\n\n * `label` {`string`} - \n\n * `value` {`string`} - \n\n * `viewMoreCount` {`number`} - \n\n * `editable` {`boolean`} - \n\n * `closable` {`boolean`} - \n\n * `icon` {`string`} - \n\n * `removeIcon` {`string`} - \n\n * `active` {`boolean`} - \n\n * `activeChips` {`NileFilterChip[]`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",