@aquera/nile-elements 0.1.67-beta-1.9 → 0.1.67-beta-2.1

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 (213) hide show
  1. package/README.md +1 -23
  2. package/demo/index.html +61 -1
  3. package/dist/index.cjs.js +1 -1
  4. package/dist/index.esm.js +1 -1
  5. package/dist/index.js +5640 -7857
  6. package/dist/internal/form.cjs.js +1 -1
  7. package/dist/internal/form.cjs.js.map +1 -1
  8. package/dist/internal/form.esm.js +1 -1
  9. package/dist/internal/resizable-table-styles.cjs.js +1 -1
  10. package/dist/internal/resizable-table-styles.cjs.js.map +1 -1
  11. package/dist/internal/resizable-table-styles.esm.js +3 -15
  12. package/dist/nile-accordion/nile-accordian.test.cjs.js +1 -1
  13. package/dist/nile-accordion/nile-accordian.test.esm.js +1 -1
  14. package/dist/nile-auto-complete/index.cjs.js +1 -1
  15. package/dist/nile-auto-complete/index.esm.js +1 -1
  16. package/dist/nile-auto-complete/nile-auto-complete.cjs.js +17 -1
  17. package/dist/nile-auto-complete/nile-auto-complete.cjs.js.map +1 -1
  18. package/dist/nile-auto-complete/nile-auto-complete.esm.js +29 -8
  19. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js +1 -1
  20. package/dist/nile-auto-complete/nile-auto-complete.test.cjs.js.map +1 -1
  21. package/dist/nile-auto-complete/nile-auto-complete.test.esm.js +1 -1
  22. package/dist/nile-avatar/nile-avatar.test.cjs.js +1 -1
  23. package/dist/nile-avatar/nile-avatar.test.esm.js +1 -1
  24. package/dist/nile-badge/nile-badge.test.cjs.js +1 -1
  25. package/dist/nile-badge/nile-badge.test.esm.js +1 -1
  26. package/dist/nile-button/nile-button.test.cjs.js +1 -1
  27. package/dist/nile-button/nile-button.test.esm.js +1 -1
  28. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.cjs.js +1 -1
  29. package/dist/nile-button-toggle-group/nile-button-toggle-group.test.esm.js +1 -1
  30. package/dist/nile-calendar/nile-calendar.test.cjs.js +1 -1
  31. package/dist/nile-calendar/nile-calendar.test.cjs.js.map +1 -1
  32. package/dist/nile-calendar/nile-calendar.test.esm.js +1 -1
  33. package/dist/nile-card/nile-card.test.cjs.js +1 -1
  34. package/dist/nile-card/nile-card.test.esm.js +1 -1
  35. package/dist/nile-checkbox/nile-checkbox.test.cjs.js +1 -1
  36. package/dist/nile-checkbox/nile-checkbox.test.esm.js +1 -1
  37. package/dist/nile-chip/nile-chip.cjs.js +1 -1
  38. package/dist/nile-chip/nile-chip.cjs.js.map +1 -1
  39. package/dist/nile-chip/nile-chip.esm.js +1 -1
  40. package/dist/nile-chip/nile-chip.test.cjs.js +1 -1
  41. package/dist/nile-chip/nile-chip.test.cjs.js.map +1 -1
  42. package/dist/nile-chip/nile-chip.test.esm.js +1 -1
  43. package/dist/nile-code-editor/extensionSetup.cjs.js +5 -5
  44. package/dist/nile-code-editor/extensionSetup.cjs.js.map +1 -1
  45. package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
  46. package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
  47. package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
  48. package/dist/nile-code-editor/nile-code-editor.esm.js +3 -3
  49. package/dist/nile-code-editor/theme.cjs.js +1 -1
  50. package/dist/nile-code-editor/theme.cjs.js.map +1 -1
  51. package/dist/nile-code-editor/theme.esm.js +1 -1
  52. package/dist/nile-dialog/nile-dialog.test.cjs.js +1 -1
  53. package/dist/nile-dialog/nile-dialog.test.esm.js +1 -1
  54. package/dist/nile-drawer/nile-drawer.test.cjs.js +1 -1
  55. package/dist/nile-drawer/nile-drawer.test.esm.js +1 -1
  56. package/dist/nile-dropdown/nile-dropdown.test.cjs.js +1 -1
  57. package/dist/nile-dropdown/nile-dropdown.test.esm.js +1 -1
  58. package/dist/nile-empty-state/nile-empty-state.test.cjs.js +1 -1
  59. package/dist/nile-empty-state/nile-empty-state.test.esm.js +1 -1
  60. package/dist/nile-error-message/nile-error-message.test.cjs.js +1 -1
  61. package/dist/nile-error-message/nile-error-message.test.esm.js +1 -1
  62. package/dist/nile-filter-chip/nile-filter-chip.test.cjs.js +1 -1
  63. package/dist/nile-filter-chip/nile-filter-chip.test.esm.js +1 -1
  64. package/dist/nile-form-group/nile-form-group.test.cjs.js +1 -1
  65. package/dist/nile-form-group/nile-form-group.test.esm.js +1 -1
  66. package/dist/nile-form-help-text/nile-form-help-text.test.cjs.js +1 -1
  67. package/dist/nile-form-help-text/nile-form-help-text.test.esm.js +1 -1
  68. package/dist/nile-hero/nile-hero.test.cjs.js +1 -1
  69. package/dist/nile-hero/nile-hero.test.esm.js +1 -1
  70. package/dist/nile-icon/nile-icon.test.cjs.js +1 -1
  71. package/dist/nile-icon/nile-icon.test.esm.js +1 -1
  72. package/dist/nile-input/nile-input.test.cjs.js +1 -1
  73. package/dist/nile-input/nile-input.test.esm.js +1 -1
  74. package/dist/nile-link/nile-link.test.cjs.js +1 -1
  75. package/dist/nile-link/nile-link.test.esm.js +1 -1
  76. package/dist/nile-loader/nile-loader.test.cjs.js +1 -1
  77. package/dist/nile-loader/nile-loader.test.esm.js +1 -1
  78. package/dist/nile-option/nile-option.cjs.js +1 -1
  79. package/dist/nile-option/nile-option.cjs.js.map +1 -1
  80. package/dist/nile-option/nile-option.esm.js +3 -3
  81. package/dist/nile-popover/index.cjs.js +1 -1
  82. package/dist/nile-popover/index.esm.js +1 -1
  83. package/dist/nile-popover/nile-popover.cjs.js +11 -3
  84. package/dist/nile-popover/nile-popover.cjs.js.map +1 -1
  85. package/dist/nile-popover/nile-popover.esm.js +13 -7
  86. package/dist/nile-popover/nile-popover.test.cjs.js +1 -1
  87. package/dist/nile-popover/nile-popover.test.cjs.js.map +1 -1
  88. package/dist/nile-popover/nile-popover.test.esm.js +3 -3
  89. package/dist/nile-popup/nile-popup.test.cjs.js +1 -1
  90. package/dist/nile-popup/nile-popup.test.esm.js +1 -1
  91. package/dist/nile-progress-bar/nile-progress-bar.test.cjs.js +1 -1
  92. package/dist/nile-progress-bar/nile-progress-bar.test.esm.js +1 -1
  93. package/dist/nile-radio/nile-radio.test.cjs.js +1 -1
  94. package/dist/nile-radio/nile-radio.test.esm.js +1 -1
  95. package/dist/nile-radio-group/nile-radio-group.test.cjs.js +1 -1
  96. package/dist/nile-radio-group/nile-radio-group.test.esm.js +1 -1
  97. package/dist/nile-select/index.cjs.js +1 -1
  98. package/dist/nile-select/index.esm.js +1 -1
  99. package/dist/nile-select/nile-select.cjs.js +1 -1
  100. package/dist/nile-select/nile-select.cjs.js.map +1 -1
  101. package/dist/nile-select/nile-select.esm.js +9 -9
  102. package/dist/nile-select/nile-select.test.cjs.js +1 -1
  103. package/dist/nile-select/nile-select.test.cjs.js.map +1 -1
  104. package/dist/nile-select/nile-select.test.esm.js +2 -2
  105. package/dist/nile-slide-toggle/nile-slide-toggle.test.cjs.js +1 -1
  106. package/dist/nile-slide-toggle/nile-slide-toggle.test.esm.js +1 -1
  107. package/dist/nile-tab-group/nile-tab-group.test.cjs.js +1 -1
  108. package/dist/nile-tab-group/nile-tab-group.test.esm.js +1 -1
  109. package/dist/nile-table-cell-item/nile-table-cell-item.css.cjs.js +1 -1
  110. package/dist/nile-table-cell-item/nile-table-cell-item.css.cjs.js.map +1 -1
  111. package/dist/nile-table-cell-item/nile-table-cell-item.css.esm.js +6 -2
  112. package/dist/nile-table-header-item/nile-table-header-item.css.cjs.js +1 -1
  113. package/dist/nile-table-header-item/nile-table-header-item.css.cjs.js.map +1 -1
  114. package/dist/nile-table-header-item/nile-table-header-item.css.esm.js +4 -2
  115. package/dist/nile-table-row/nile-table-row.cjs.js +1 -1
  116. package/dist/nile-table-row/nile-table-row.cjs.js.map +1 -1
  117. package/dist/nile-table-row/nile-table-row.css.cjs.js +1 -1
  118. package/dist/nile-table-row/nile-table-row.css.cjs.js.map +1 -1
  119. package/dist/nile-table-row/nile-table-row.css.esm.js +51 -0
  120. package/dist/nile-table-row/nile-table-row.esm.js +26 -6
  121. package/dist/nile-textarea/nile-textarea.test.cjs.js +1 -1
  122. package/dist/nile-textarea/nile-textarea.test.esm.js +1 -1
  123. package/dist/src/index.d.ts +0 -4
  124. package/dist/src/index.js +0 -4
  125. package/dist/src/index.js.map +1 -1
  126. package/dist/src/internal/form.js +3 -3
  127. package/dist/src/internal/form.js.map +1 -1
  128. package/dist/src/internal/resizable-table-styles.js +0 -12
  129. package/dist/src/internal/resizable-table-styles.js.map +1 -1
  130. package/dist/src/nile-chip/nile-chip.js +1 -10
  131. package/dist/src/nile-chip/nile-chip.js.map +1 -1
  132. package/dist/src/nile-code-editor/nile-code-editor.d.ts +0 -3
  133. package/dist/src/nile-code-editor/nile-code-editor.js +3 -23
  134. package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
  135. package/dist/src/nile-code-editor/theme.d.ts +0 -6
  136. package/dist/src/nile-code-editor/theme.js +2 -8
  137. package/dist/src/nile-code-editor/theme.js.map +1 -1
  138. package/dist/src/nile-option/nile-option.d.ts +1 -4
  139. package/dist/src/nile-option/nile-option.js +15 -27
  140. package/dist/src/nile-option/nile-option.js.map +1 -1
  141. package/dist/src/nile-select/nile-select.d.ts +3 -20
  142. package/dist/src/nile-select/nile-select.js +22 -123
  143. package/dist/src/nile-select/nile-select.js.map +1 -1
  144. package/dist/src/nile-table-cell-item/nile-table-cell-item.css.js +4 -0
  145. package/dist/src/nile-table-cell-item/nile-table-cell-item.css.js.map +1 -1
  146. package/dist/src/nile-table-header-item/nile-table-header-item.css.js +2 -0
  147. package/dist/src/nile-table-header-item/nile-table-header-item.css.js.map +1 -1
  148. package/dist/src/nile-table-row/nile-table-row-expandable.d.ts +37 -0
  149. package/dist/src/nile-table-row/nile-table-row-expandable.js +105 -0
  150. package/dist/src/nile-table-row/nile-table-row-expandable.js.map +1 -0
  151. package/dist/src/nile-table-row/nile-table-row.css.js +51 -0
  152. package/dist/src/nile-table-row/nile-table-row.css.js.map +1 -1
  153. package/dist/src/nile-table-row/nile-table-row.d.ts +4 -0
  154. package/dist/src/nile-table-row/nile-table-row.js +58 -11
  155. package/dist/src/nile-table-row/nile-table-row.js.map +1 -1
  156. package/dist/src/nile-table-row-expandable/index.d.ts +1 -0
  157. package/dist/src/nile-table-row-expandable/index.js +2 -0
  158. package/dist/src/nile-table-row-expandable/index.js.map +1 -0
  159. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.css.d.ts +12 -0
  160. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.css.js +17 -0
  161. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.css.js.map +1 -0
  162. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.d.ts +37 -0
  163. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.js +103 -0
  164. package/dist/src/nile-table-row-expandable/nile-table-row-expandable.js.map +1 -0
  165. package/dist/tsconfig.tsbuildinfo +1 -1
  166. package/package.json +3 -4
  167. package/src/index.ts +1 -5
  168. package/src/internal/form.ts +3 -3
  169. package/src/internal/resizable-table-styles.ts +0 -12
  170. package/src/nile-chip/nile-chip.ts +1 -9
  171. package/src/nile-code-editor/nile-code-editor.ts +4 -25
  172. package/src/nile-code-editor/theme.ts +2 -8
  173. package/src/nile-option/nile-option.ts +12 -22
  174. package/src/nile-select/nile-select.ts +15 -139
  175. package/src/nile-table-cell-item/nile-table-cell-item.css.ts +4 -0
  176. package/src/nile-table-header-item/nile-table-header-item.css.ts +2 -0
  177. package/src/nile-table-row/nile-table-row.css.ts +51 -0
  178. package/src/nile-table-row/nile-table-row.ts +50 -7
  179. package/vscode-html-custom-data.json +23 -400
  180. package/src/nile-file-preview/index.ts +0 -1
  181. package/src/nile-file-preview/nile-file-preview.css.ts +0 -589
  182. package/src/nile-file-preview/nile-file-preview.template.ts +0 -259
  183. package/src/nile-file-preview/nile-file-preview.test.ts +0 -38
  184. package/src/nile-file-preview/nile-file-preview.ts +0 -205
  185. package/src/nile-file-preview/types/index.ts +0 -2
  186. package/src/nile-file-preview/types/nile-file-preview.enums.ts +0 -32
  187. package/src/nile-file-preview/types/nile-file-preview.interface.ts +0 -4
  188. package/src/nile-file-preview/utils/index.ts +0 -1
  189. package/src/nile-file-preview/utils/nile-file-preview.util.ts +0 -72
  190. package/src/nile-file-upload/index.ts +0 -1
  191. package/src/nile-file-upload/nile-file-upload.css.ts +0 -624
  192. package/src/nile-file-upload/nile-file-upload.template.ts +0 -217
  193. package/src/nile-file-upload/nile-file-upload.test.ts +0 -38
  194. package/src/nile-file-upload/nile-file-upload.ts +0 -161
  195. package/src/nile-file-upload/types/file-upload.enums.ts +0 -46
  196. package/src/nile-file-upload/types/file-upload.type.ts +0 -5
  197. package/src/nile-file-upload/types/index.ts +0 -2
  198. package/src/nile-file-upload/utils/drag-drop.util.ts +0 -106
  199. package/src/nile-file-upload/utils/file-validation.util.ts +0 -216
  200. package/src/nile-option-group/index.ts +0 -1
  201. package/src/nile-option-group/nile-option-group.css.ts +0 -60
  202. package/src/nile-option-group/nile-option-group.interface.ts +0 -24
  203. package/src/nile-option-group/nile-option-group.ts +0 -84
  204. package/src/nile-select/nile-select.interface.ts +0 -5
  205. package/src/nile-select/virtual-scroll-helper.ts +0 -56
  206. package/src/nile-virtual-select/index.ts +0 -1
  207. package/src/nile-virtual-select/nile-virtual-select.css.ts +0 -491
  208. package/src/nile-virtual-select/nile-virtual-select.test.ts +0 -774
  209. package/src/nile-virtual-select/nile-virtual-select.ts +0 -1314
  210. package/src/nile-virtual-select/renderer.ts +0 -102
  211. package/src/nile-virtual-select/search-manager.ts +0 -50
  212. package/src/nile-virtual-select/selection-manager.ts +0 -75
  213. package/src/nile-virtual-select/types.ts +0 -54
@@ -1,217 +0,0 @@
1
- import { html, TemplateResult } from 'lit';
2
- import './nile-file-upload.css';
3
- import { DragHandler } from './utils/drag-drop.util';
4
- import { classMap } from 'lit-html/directives/class-map.js';
5
- import { FileUploadDefaults, FileUploadState } from './types/file-upload.enums';
6
- import { truncateString } from './utils/file-validation.util';
7
- import { NileFileUpload } from './nile-file-upload';
8
-
9
- const baseHorizontalState = (
10
- browseFiles: Function,
11
- title: string,
12
- subtitle: string,
13
- disabled: boolean,
14
- dragHandler: DragHandler,
15
- state: FileUploadState,
16
- errorMessage: string,
17
- allowedTypes: string[],
18
- nileFileUpload: NileFileUpload
19
- ): TemplateResult => {
20
- truncateString(nileFileUpload);
21
- return html`
22
- <div class="wrapper" part="horizontal-wrapper">
23
- <div part="horizontal-div" class=${classMap({ 'hover-border': state === "hover", 'horizontal-div': true, 'disable': disabled })}>
24
- <div part="inner-div" class="inner-div">
25
- <slot class="upload-icon-slot" name="upload-icon">
26
- <nile-icon name="upload" size="24"></nile-icon>
27
- </slot>
28
- <div part="content" class="content">
29
- <div class="title">${title}</div>
30
- <div class="subtitle">${subtitle}</div>
31
- </div>
32
- </div>
33
- <input
34
- type="file"
35
- ?disabled=${disabled}
36
- @change=${(e: Event | DragEvent) => { dragHandler.handleFiles(e) }}
37
- multiple
38
- accept=${allowedTypes.join(',')}
39
- />
40
- <slot class="browse-file-button" @click=${disabled ? undefined : browseFiles} name="browse-file-button">
41
- <nile-button variant="tertiary" ?disabled=${disabled}>
42
- Browse File
43
- </nile-button>
44
- </slot>
45
- </div>
46
- ${errorMessage || nileFileUpload.state === FileUploadState.ERROR ?
47
- html`<div class="upload-error">
48
- <nile-icon name="warning" size="12" color="var(--nile-colors-red-700)"></nile-icon>
49
- ${
50
- nileFileUpload.isStringTruncated
51
- ? html`<nile-tooltip content=${errorMessage || FileUploadDefaults.CUSTOM_ERROR}>
52
- <span>${errorMessage || FileUploadDefaults.CUSTOM_ERROR}</span>
53
- </nile-tooltip>`
54
- : html`<span>${errorMessage || FileUploadDefaults.CUSTOM_ERROR}</span>`
55
- }
56
- </div>` :
57
- html``
58
- }
59
- </div>
60
- `;
61
- }
62
-
63
- export const getHorizontalDefaultState = (
64
- browseFiles: Function,
65
- title: string,
66
- subtitle: string,
67
- dragHandler: DragHandler,
68
- state: FileUploadState,
69
- errorMessage: string,
70
- allowedTypes: string[],
71
- nileFileUpload: NileFileUpload
72
- ): TemplateResult => baseHorizontalState(browseFiles, title, subtitle, false, dragHandler, state, errorMessage, allowedTypes, nileFileUpload);
73
-
74
- export const getHorizontalDisabledState = (
75
- browseFiles: Function,
76
- title: string,
77
- subtitle: string,
78
- dragHandler: DragHandler,
79
- state: FileUploadState,
80
- errorMessage: string,
81
- allowedTypes: string[],
82
- nileFileUpload: NileFileUpload
83
- ): TemplateResult => baseHorizontalState(browseFiles, title, subtitle, true, dragHandler, state, errorMessage, allowedTypes, nileFileUpload);
84
-
85
- export const getHorizontalErrorState = (
86
- browseFiles: Function,
87
- title: string,
88
- subtitle: string,
89
- dragHandler: DragHandler,
90
- state: FileUploadState,
91
- errorMessage: string,
92
- allowedTypes: string[],
93
- nileFileUpload: NileFileUpload
94
- ): TemplateResult => baseHorizontalState(browseFiles, title, subtitle, false, dragHandler, state, errorMessage, allowedTypes, nileFileUpload);
95
-
96
- export const getHorizontalDragState = (): TemplateResult => html`
97
- <div part="horizontal-drag-state" class="horizontal-div dragging">
98
- <div class="icons-container">
99
- <nile-icon
100
- color="var(--nile-colors-blue-500)"
101
- name="general"
102
- size="20"
103
- class="general-icon"
104
- ></nile-icon>
105
- <nile-icon
106
- color="var(--nile-colors-blue-500)"
107
- name="image"
108
- size="24"
109
- class="image-icon"
110
- ></nile-icon>
111
- </div>
112
- <p>${FileUploadDefaults.DRAG_STATE_DEFAULT}</p>
113
- </div>
114
- `;
115
-
116
- // Vertical States
117
- const baseVerticalState = (
118
- browseFiles: Function,
119
- title: string,
120
- subtitle: string,
121
- disabled: boolean,
122
- dragHandler: DragHandler,
123
- errorMessage: string,
124
- allowedTypes: string[],
125
- nileFileUpload: NileFileUpload
126
- ): TemplateResult => {
127
- truncateString(nileFileUpload);
128
- return html`
129
- <div part="vertical-wrapper" class="wrapper">
130
- <div part="vertical-default" class="vertical-default vertical-div ${disabled ? 'disable' : ''}">
131
- <slot name="upload-icon">
132
- <nile-icon name="upload" size="24"></nile-icon>
133
- </slot>
134
- <div part="vertical-content-container" class="content-container">
135
- <div class="title">${title}</div>
136
- <div class="subtitle">${subtitle}</div>
137
- </div>
138
- <input
139
- type="file"
140
- ?disabled=${disabled}
141
- @change=${(e: Event | DragEvent) => dragHandler.handleFiles(e)}
142
- multiple
143
- accept=${allowedTypes.join(',')}
144
- />
145
- <slot @click=${disabled ? undefined : browseFiles} name="browse-file-button">
146
- <nile-button variant="tertiary" ?disabled=${disabled}>
147
- Browse File
148
- </nile-button>
149
- </slot>
150
- </div>
151
- ${errorMessage || nileFileUpload.state === FileUploadState.ERROR ?
152
- html`<div class="vertical-upload-error">
153
- <nile-icon name="warning" size="12" color="var(--nile-colors-red-700)"></nile-icon>
154
- ${
155
- nileFileUpload.isStringTruncated
156
- ? html`<nile-tooltip content=${errorMessage || FileUploadDefaults.CUSTOM_ERROR}>
157
- <span>${errorMessage || FileUploadDefaults.CUSTOM_ERROR}</span>
158
- </nile-tooltip>`
159
- : html`<span>${errorMessage || FileUploadDefaults.CUSTOM_ERROR}</span>`
160
- }
161
- </div>` :
162
- html``
163
- }
164
- </div>
165
- `;
166
- }
167
-
168
- export const getVerticalDefaultState = (
169
- browseFiles: Function,
170
- title: string,
171
- subtitle: string,
172
- dragHandler: DragHandler,
173
- errorMessage: string,
174
- allowedTypes: string[],
175
- nileFileUpload: NileFileUpload
176
- ): TemplateResult => baseVerticalState(browseFiles, title, subtitle, false, dragHandler, errorMessage, allowedTypes, nileFileUpload);
177
-
178
- export const getVerticalDisabledState = (
179
- browseFiles: Function,
180
- title: string,
181
- subtitle: string,
182
- dragHandler: DragHandler,
183
- errorMessage: string,
184
- allowedTypes: string[],
185
- nileFileUpload: NileFileUpload
186
- ): TemplateResult => baseVerticalState(browseFiles, title, subtitle, true, dragHandler, errorMessage, allowedTypes, nileFileUpload);
187
-
188
- export const getVerticalErrorState = (
189
- browseFiles: Function,
190
- title: string,
191
- subtitle: string,
192
- dragHandler: DragHandler,
193
- errorMessage: string,
194
- allowedTypes: string[],
195
- nileFileUpload: NileFileUpload
196
- ): TemplateResult => baseVerticalState(browseFiles, title, subtitle, false, dragHandler, errorMessage, allowedTypes, nileFileUpload);
197
-
198
-
199
- export const getVerticalDragState = (): TemplateResult => html`
200
- <div part="vertical-drag-state" class="vertical-div vertical-drag">
201
- <div class="icons-container">
202
- <nile-icon
203
- color="var(--nile-colors-blue-500)"
204
- name="general"
205
- size="20"
206
- class="general-icon"
207
- ></nile-icon>
208
- <nile-icon
209
- color="var(--nile-colors-blue-500)"
210
- name="image"
211
- size="24"
212
- class="image-icon"
213
- ></nile-icon>
214
- </div>
215
- <p>${FileUploadDefaults.DRAG_STATE_DEFAULT}</p>
216
- </div>
217
- `;
@@ -1,38 +0,0 @@
1
- /**
2
- * Copyright Aquera Inc 2025
3
- *
4
- * This source code is licensed under the BSD-3-Clause license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
-
9
- import { fixture, assert, expect, html } from '@open-wc/testing';
10
- import './nile-file-upload'; // Just import to register the element
11
-
12
- describe('<nile-file-upload>', () => {
13
- let element: HTMLElement;
14
-
15
- beforeEach(async () => {
16
- element = await fixture(html`<nile-file-upload></nile-file-upload>`);
17
- });
18
-
19
- it('passes accessibility test', async () => {
20
- await expect(element).to.be.accessible();
21
- });
22
-
23
- it('renders with the correct tag name', () => {
24
- expect(element.tagName.toLowerCase()).to.equal('nile-file-upload');
25
- });
26
-
27
- it('renders with slot content when provided', async () => {
28
- const testContent = 'Test Content';
29
- element = await fixture(html`<nile-file-upload>${testContent}</nile-file-upload>`);
30
-
31
- const slot = (element.shadowRoot!.querySelector('slot') as HTMLSlotElement);
32
- assert.exists(slot, 'Slot should exist');
33
-
34
- const assignedNodes = slot.assignedNodes({ flatten: true });
35
- expect(assignedNodes.length).to.be.greaterThan(0);
36
- expect(assignedNodes[0].textContent?.trim()).to.equal(testContent);
37
- });
38
- });
@@ -1,161 +0,0 @@
1
- /**
2
- * Copyright Aquera Inc 2025
3
- *
4
- * This source code is licensed under the BSD-3-Clause license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
- import { styles } from './nile-file-upload.css';
9
- import { ChangedPropsInterface } from './types/file-upload.type'
10
- import NileElement from '../internal/nile-element';
11
- import { DragHandler } from './utils/drag-drop.util';
12
- import { FileUploadDefaults } from './types/file-upload.enums';
13
- import { LitElement, html, CSSResultArray, TemplateResult } from 'lit';
14
- import { customElement, property, query, state } from 'lit/decorators.js';
15
- import { FileUploadState, FileUploadVariant, FileUploadError, FileUploadEvent } from './types/file-upload.enums';
16
- import { setUpDragHandler, addGlobalListeners, addInternalListeners, uploadFiles, cancelFileUpload } from './utils/file-validation.util';
17
- import {
18
- getHorizontalDefaultState,
19
- getHorizontalDragState,
20
- getVerticalDefaultState,
21
- getVerticalDisabledState,
22
- getVerticalDragState,
23
- getHorizontalErrorState,
24
- getVerticalErrorState,
25
- getHorizontalDisabledState
26
- } from './nile-file-upload.template';
27
-
28
- /**
29
- * Nile file-upload component.
30
- *
31
- * @tag nile-file-upload
32
- *
33
- */
34
- @customElement('nile-file-upload')
35
- export class NileFileUpload extends NileElement {
36
- /**
37
- * The styles for nile-file-upload
38
- * @remarks If you are extending this class you can extend the base styles with super. Eg `return [super(), myCustomStyles]`
39
- */
40
- public static get styles(): CSSResultArray {
41
- return [styles];
42
- }
43
-
44
- @property({ type: String }) size: string = "10MB";
45
- @property({ type: Boolean}) error: boolean = false;
46
- @property({ type: String }) errorMessage: string = "";
47
- @property({ type: Boolean}) allowMultiple: boolean = false;
48
- @property({ type: Boolean}) allowDuplicates: boolean = false;
49
- @property({ type: Array }) allowedTypes: string[] = [];
50
- @property({ type: Array }) uploadedFiles: File[] = [];
51
- @property({ type: String }) title: string = FileUploadDefaults.TITLE;
52
- @property({ type: String }) subtitle: string = FileUploadDefaults.SUBTITLE;
53
- @property({ type: String }) state: FileUploadState = FileUploadState.DEFAULT;
54
- @property({ type: String }) variant: FileUploadVariant = FileUploadVariant.HORIZONTAL;
55
- @property({ type: String }) fileUploadUrl: string = "";
56
- @property({ type: Boolean}) autoUpload: boolean = true;
57
- @query('input') input!: HTMLInputElement;
58
- public uploadRequests = new Map<File, XMLHttpRequest>();
59
- public fileSizeExceededFilesNumber: number = 0;
60
- public isStringTruncated: boolean = false;
61
-
62
- private dragHandler!: DragHandler;
63
-
64
- connectedCallback(): void {
65
- super.connectedCallback();
66
- this.emit(FileUploadEvent.NILE_INIT);
67
- }
68
-
69
- firstUpdated(changedProps: ChangedPropsInterface): void {
70
- super.firstUpdated(changedProps);
71
-
72
- this.dragHandler = new DragHandler();
73
- setUpDragHandler(this, this.dragHandler);
74
- addInternalListeners(this, this.dragHandler, this.uploadRequests);
75
- addGlobalListeners(this.dragHandler);
76
- }
77
-
78
- updated(changedProps: ChangedPropsInterface): void {
79
- super.updated(changedProps);
80
-
81
- if (changedProps.has('uploadedFiles')) {
82
- if(this.fileUploadUrl && this.autoUpload) {
83
- uploadFiles(this);
84
- }
85
- this.emit(FileUploadEvent.NILE_CHANGE, { files: this.uploadedFiles });
86
- } else if (changedProps.has('state')) {
87
- this.dragHandler.setValuesInDragHandler(this.state);
88
- }
89
-
90
- if(changedProps.has('autoUpload') && this.autoUpload) {
91
- if(this.fileUploadUrl && this.autoUpload) {
92
- uploadFiles(this);
93
- }
94
- this.emit(FileUploadEvent.NILE_CHANGE, { files: this.uploadedFiles });
95
- }
96
- }
97
-
98
- private browseFiles(): void {
99
- this.emit(FileUploadEvent.NILE_BROWSE);
100
- this.errorMessage = "";
101
- this.input.click();
102
- }
103
-
104
- public setState = (newState: FileUploadState): void => {
105
- this.state = newState;
106
- }
107
-
108
- render(): TemplateResult {
109
- return html`
110
- ${this.getState()}
111
- `;
112
- }
113
-
114
- private getState(): TemplateResult {
115
- return this.variant === FileUploadVariant.HORIZONTAL
116
- ? this.getHorizontalState()
117
- : this.getVerticalState();
118
- }
119
-
120
- private getHorizontalState(): TemplateResult {
121
- switch(this.state) {
122
- case FileUploadState.DEFAULT:
123
- return getHorizontalDefaultState(this.browseFiles, this.title, this.subtitle, this.dragHandler, this.state, this.errorMessage, this.allowedTypes, this);
124
-
125
- case FileUploadState.DISABLED:
126
- return getHorizontalDisabledState(this.browseFiles, this.title, this.subtitle, this.dragHandler, this.state, this.errorMessage, this.allowedTypes, this);
127
-
128
- case FileUploadState.DRAG:
129
- return getHorizontalDragState();
130
-
131
- case FileUploadState.ERROR:
132
- return getHorizontalErrorState(this.browseFiles, this.title, this.subtitle, this.dragHandler, this.state, this.errorMessage, this.allowedTypes, this);
133
-
134
- default:
135
- return getHorizontalDefaultState(this.browseFiles, this.title, this.subtitle, this.dragHandler, this.state, this.errorMessage, this.allowedTypes, this);
136
- }
137
- }
138
-
139
- private getVerticalState(): TemplateResult {
140
- switch(this.state) {
141
- case FileUploadState.DEFAULT:
142
- return getVerticalDefaultState(this.browseFiles, this.title, this.subtitle, this.dragHandler, this.errorMessage, this.allowedTypes, this);
143
-
144
- case FileUploadState.DISABLED:
145
- return getVerticalDisabledState(this.browseFiles, this.title, this.subtitle, this.dragHandler, this.errorMessage, this.allowedTypes, this);
146
-
147
- case FileUploadState.DRAG:
148
- return getVerticalDragState();
149
-
150
- case FileUploadState.ERROR:
151
- return getVerticalErrorState(this.browseFiles, this.title, this.subtitle, this.dragHandler, this.errorMessage, this.allowedTypes, this);
152
-
153
- default:
154
- return getVerticalDefaultState(this.browseFiles, this.title, this.subtitle, this.dragHandler, this.errorMessage, this.allowedTypes, this);
155
- }
156
- }
157
-
158
- disconnectedCallback(): void {
159
- this.emit(FileUploadEvent.NILE_DESTROY);
160
- }
161
- }
@@ -1,46 +0,0 @@
1
- export enum FileUploadState {
2
- DEFAULT = 'default',
3
- DISABLED = 'disabled',
4
- HOVER = 'hover',
5
- DRAG = 'drag',
6
- ERROR = 'error'
7
- }
8
-
9
- export enum FileUploadVariant {
10
- HORIZONTAL = 'horizontal',
11
- VERTICAL = 'vertical'
12
- }
13
-
14
- export enum FileUploadError {
15
- INVALID_FORMAT = "Invalid file format! Upload valid file.",
16
- SIZE_LIMIT_EXCEEDED = "File exceeds size limit! Upload smaller file.",
17
- MULTIPLE_NOT_ALLOWED = "Please Upload Single File!",
18
- DUPLICATES_NOT_ALLOWED = "Duplicate Files Are Not Allowed!",
19
- UPLOAD_URL_REQUIRED = "Upload URL is required!",
20
- SERVER_SIDE_ERROR = "Error from server! Please try again later.",
21
- NETWORK_ERROR = "Network error! Please try again later."
22
- }
23
-
24
- export enum FileUploadEvent {
25
- NILE_INIT = "nile-init",
26
- NILE_BROWSE = "nile-browse",
27
- NILE_DRAG = "nile-drag",
28
- NILE_CHANGE = "nile-change",
29
- NILE_UPLOADING = "nile-uploading",
30
- NILE_UPLOAD_PROGRESS = "nile-upload-progress",
31
- NILE_UPLOAD_SUCCESS = "nile-upload-success",
32
- NILE_UPLOAD_CANCELLED = "nile-upload-cancelled",
33
- NILE_SIZE_EXCEED_FILES = "nile-size-exceed-files",
34
- NILE_CANCEL_UPLOAD = "nile-cancel-upload",
35
- NILE_NETWORK_ERROR = "nile-network-error",
36
- SERVER_SIDE_ERROR = "nile-server-error",
37
- NILE_DESTROY = "nile-destroy"
38
- }
39
-
40
- export enum FileUploadDefaults {
41
- TITLE = 'Drag and drop to upload',
42
- SUBTITLE = 'PNG, JPG or SVG (upto 1MB) | 1:1 ratio',
43
- ERROR_MESSAGE = 'Invalid File Format.',
44
- DRAG_STATE_DEFAULT = 'Drop files here to upload',
45
- CUSTOM_ERROR = 'Error Occured!'
46
- };
@@ -1,5 +0,0 @@
1
- import { PropertyValueMap } from 'lit';
2
-
3
- export interface ChangedPropsInterface extends PropertyValueMap<any> {
4
- [key: string]: unknown;
5
- }
@@ -1,2 +0,0 @@
1
- export * from './file-upload.enums';
2
- export * from './file-upload.type'
@@ -1,106 +0,0 @@
1
- import { preventDefaultAndStopPropagation } from "./file-validation.util";
2
- import { FileUploadState } from "../types";
3
-
4
- export class DragHandler {
5
- private currentState: FileUploadState = FileUploadState.DEFAULT;
6
-
7
- private stateChangeCallback?: (state: FileUploadState) => void;
8
- private fileDropCallback?: (files: File[]) => void;
9
- private errorMessageCallback?: (errorMessage: string) => void;
10
-
11
- constructor() {}
12
-
13
- public setErrorMessage(callback: (errorMessage: string) => void): void {
14
- this.errorMessageCallback = callback;
15
- }
16
-
17
- public setValuesInDragHandler(state: FileUploadState): void {
18
- this.currentState = state;
19
- }
20
-
21
- public onFileDrop(callback: (files: File[]) => void): void {
22
- this.fileDropCallback = callback;
23
- }
24
-
25
- public onStateChange(callback: (state: FileUploadState) => void): void {
26
- this.stateChangeCallback = callback;
27
- }
28
-
29
- private setState(state: FileUploadState): void {
30
- if (this.currentState === FileUploadState.DISABLED) return;
31
-
32
- this.currentState = state;
33
- this.stateChangeCallback?.(state);
34
- }
35
-
36
- public dragEnter(e: DragEvent): void {
37
- preventDefaultAndStopPropagation(e);
38
-
39
- if (this.currentState === FileUploadState.DISABLED) return;
40
- this.errorMessageCallback?.("");
41
- this.setState(FileUploadState.DRAG);
42
- }
43
-
44
- public dragLeave(e: DragEvent): void {
45
- preventDefaultAndStopPropagation(e);
46
-
47
- if (this.currentState === FileUploadState.DISABLED) return;
48
-
49
- this.setState(FileUploadState.DEFAULT);
50
- }
51
-
52
- public dragOver(e: DragEvent): void {
53
- preventDefaultAndStopPropagation(e);
54
-
55
- if (this.currentState === FileUploadState.DISABLED) return;
56
- }
57
-
58
- public drop(e: DragEvent): void {
59
- preventDefaultAndStopPropagation(e);
60
-
61
- if (this.currentState === FileUploadState.DISABLED) return;
62
- this.setState(FileUploadState.DEFAULT);
63
- this.handleFiles(e);
64
- }
65
-
66
- public handleDocumentDrop(e: DragEvent): void {
67
- if (this.currentState === FileUploadState.DISABLED) return;
68
-
69
- preventDefaultAndStopPropagation(e);
70
-
71
- this.setState(FileUploadState.DEFAULT);
72
- }
73
-
74
- public preventDragOver(e: DragEvent): void {
75
- preventDefaultAndStopPropagation(e);
76
- }
77
-
78
- public preventDrop(e: DragEvent): void {
79
- preventDefaultAndStopPropagation(e);
80
- }
81
-
82
- public handleFiles(e: Event | DragEvent): void {
83
- preventDefaultAndStopPropagation(e);
84
- if (this.currentState === FileUploadState.DISABLED) return;
85
-
86
- let files: FileList | null = null;
87
-
88
- if ('dataTransfer' in e && e.dataTransfer) {
89
- files = e.dataTransfer.files;
90
- }
91
-
92
- if (!files && e.target instanceof HTMLInputElement) {
93
- files = e.target.files;
94
- }
95
-
96
- if (files && files.length > 0) {
97
- const newFiles = Array.from(files);
98
-
99
- this.fileDropCallback?.(newFiles);
100
- }
101
-
102
- if(e.target instanceof HTMLInputElement) {
103
- e.target.value = "";
104
- }
105
- }
106
- }