@aquera/nile-elements 1.0.1-beta-1.4 → 1.0.1-beta-1.6
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.
- package/README.md +31 -0
- package/demo/index.html +8 -15
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +689 -620
- package/dist/internal/resizable-table-helper.cjs.js +1 -1
- package/dist/internal/resizable-table-helper.cjs.js.map +1 -1
- package/dist/internal/resizable-table-helper.esm.js +1 -1
- package/dist/nile-code-editor/extensionSetup.cjs.js +5 -5
- package/dist/nile-code-editor/extensionSetup.cjs.js.map +1 -1
- package/dist/nile-code-editor/extensionSetup.esm.js +1 -1
- package/dist/nile-code-editor/nile-code-editor.cjs.js +2 -2
- package/dist/nile-code-editor/nile-code-editor.cjs.js.map +1 -1
- package/dist/nile-code-editor/nile-code-editor.esm.js +3 -3
- package/dist/nile-code-editor/theme.cjs.js +1 -1
- package/dist/nile-code-editor/theme.cjs.js.map +1 -1
- package/dist/nile-code-editor/theme.esm.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.cjs.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.cjs.js.map +1 -1
- package/dist/nile-file-preview/nile-file-preview.css.cjs.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.css.cjs.js.map +1 -1
- package/dist/nile-file-preview/nile-file-preview.css.esm.js +203 -184
- package/dist/nile-file-preview/nile-file-preview.esm.js +1 -3
- package/dist/nile-file-preview/nile-file-preview.template.cjs.js +1 -1
- package/dist/nile-file-preview/nile-file-preview.template.cjs.js.map +1 -1
- package/dist/nile-file-preview/nile-file-preview.template.esm.js +66 -77
- package/dist/nile-file-preview/types/nile-file-preview.enums.cjs.js +1 -1
- package/dist/nile-file-preview/types/nile-file-preview.enums.cjs.js.map +1 -1
- package/dist/nile-file-preview/types/nile-file-preview.enums.esm.js +1 -1
- package/dist/nile-file-preview/utils/index.cjs.js +1 -1
- package/dist/nile-file-preview/utils/index.esm.js +1 -1
- package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js +1 -1
- package/dist/nile-file-preview/utils/nile-file-preview.util.cjs.js.map +1 -1
- package/dist/nile-file-preview/utils/nile-file-preview.util.esm.js +1 -1
- package/dist/nile-file-upload/index.cjs.js +1 -1
- package/dist/nile-file-upload/index.esm.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.cjs.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.cjs.js.map +1 -1
- package/dist/nile-file-upload/nile-file-upload.css.cjs.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.css.cjs.js.map +1 -1
- package/dist/nile-file-upload/nile-file-upload.css.esm.js +142 -89
- package/dist/nile-file-upload/nile-file-upload.esm.js +2 -2
- package/dist/nile-file-upload/nile-file-upload.template.cjs.js +3 -3
- package/dist/nile-file-upload/nile-file-upload.template.cjs.js.map +1 -1
- package/dist/nile-file-upload/nile-file-upload.template.esm.js +50 -108
- package/dist/nile-file-upload/nile-file-upload.test.cjs.js +1 -1
- package/dist/nile-file-upload/nile-file-upload.test.esm.js +1 -1
- package/dist/nile-file-upload/types/file-upload.enums.cjs.js +1 -1
- package/dist/nile-file-upload/types/file-upload.enums.cjs.js.map +1 -1
- package/dist/nile-file-upload/types/file-upload.enums.esm.js +1 -1
- package/dist/nile-file-upload/utils/drag-drop.util.cjs.js +1 -1
- package/dist/nile-file-upload/utils/drag-drop.util.cjs.js.map +1 -1
- package/dist/nile-file-upload/utils/drag-drop.util.esm.js +1 -1
- package/dist/nile-file-upload/utils/file-validation.util.cjs.js +2 -1
- package/dist/nile-file-upload/utils/file-validation.util.cjs.js.map +1 -1
- package/dist/nile-file-upload/utils/file-validation.util.esm.js +1 -1
- package/dist/nile-input/nile-input.css.cjs.js +1 -1
- package/dist/nile-input/nile-input.css.cjs.js.map +1 -1
- package/dist/nile-input/nile-input.css.esm.js +0 -1
- package/dist/nile-option/nile-option.cjs.js +1 -1
- package/dist/nile-option/nile-option.cjs.js.map +1 -1
- package/dist/nile-option/nile-option.esm.js +3 -3
- package/dist/nile-option-group/index.cjs.js +2 -0
- package/dist/nile-option-group/index.cjs.js.map +1 -0
- package/dist/nile-option-group/index.esm.js +1 -0
- package/dist/nile-option-group/nile-option-group.cjs.js +2 -0
- package/dist/nile-option-group/nile-option-group.cjs.js.map +1 -0
- package/dist/nile-option-group/nile-option-group.css.cjs.js +2 -0
- package/dist/nile-option-group/nile-option-group.css.cjs.js.map +1 -0
- package/dist/nile-option-group/nile-option-group.css.esm.js +46 -0
- package/dist/nile-option-group/nile-option-group.esm.js +14 -0
- package/dist/nile-option-group/nile-option-group.interface.cjs.js +2 -0
- package/dist/nile-option-group/nile-option-group.interface.cjs.js.map +1 -0
- package/dist/nile-option-group/nile-option-group.interface.esm.js +1 -0
- package/dist/nile-pagination/nile-pagination.cjs.js +1 -1
- package/dist/nile-pagination/nile-pagination.cjs.js.map +1 -1
- package/dist/nile-pagination/nile-pagination.css.cjs.js +1 -1
- package/dist/nile-pagination/nile-pagination.css.cjs.js.map +1 -1
- package/dist/nile-pagination/nile-pagination.css.esm.js +9 -2
- package/dist/nile-pagination/nile-pagination.esm.js +3 -1
- package/dist/nile-select/nile-select.cjs.js +1 -1
- package/dist/nile-select/nile-select.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.esm.js +2 -2
- package/dist/nile-select/nile-select.interface.cjs.js +2 -0
- package/dist/nile-select/nile-select.interface.cjs.js.map +1 -0
- package/dist/nile-select/nile-select.interface.esm.js +1 -0
- package/dist/nile-table-body/nile-table-body.cjs.js +1 -1
- package/dist/nile-table-body/nile-table-body.cjs.js.map +1 -1
- package/dist/nile-table-body/nile-table-body.esm.js +2 -1
- package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js +1 -1
- package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js.map +1 -1
- package/dist/nile-table-cell-item/nile-table-cell-item.esm.js +1 -1
- package/dist/nile-table-header-item/nile-table-header-item.cjs.js +1 -1
- package/dist/nile-table-header-item/nile-table-header-item.cjs.js.map +1 -1
- package/dist/nile-table-header-item/nile-table-header-item.esm.js +2 -2
- package/dist/nile-virtual-select/renderer.cjs.js +1 -1
- package/dist/nile-virtual-select/renderer.cjs.js.map +1 -1
- package/dist/nile-virtual-select/renderer.esm.js +13 -12
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal/resizable-table-helper.d.ts +5 -0
- package/dist/src/internal/resizable-table-helper.js +27 -4
- package/dist/src/internal/resizable-table-helper.js.map +1 -1
- package/dist/src/nile-code-editor/nile-code-editor.d.ts +5 -0
- package/dist/src/nile-code-editor/nile-code-editor.js +44 -7
- package/dist/src/nile-code-editor/nile-code-editor.js.map +1 -1
- package/dist/src/nile-code-editor/theme.d.ts +15 -0
- package/dist/src/nile-code-editor/theme.js +17 -2
- package/dist/src/nile-code-editor/theme.js.map +1 -1
- package/dist/src/nile-file-preview/nile-file-preview.css.js +201 -182
- package/dist/src/nile-file-preview/nile-file-preview.css.js.map +1 -1
- package/dist/src/nile-file-preview/nile-file-preview.d.ts +6 -2
- package/dist/src/nile-file-preview/nile-file-preview.js +49 -20
- package/dist/src/nile-file-preview/nile-file-preview.js.map +1 -1
- package/dist/src/nile-file-preview/nile-file-preview.template.d.ts +3 -2
- package/dist/src/nile-file-preview/nile-file-preview.template.js +58 -62
- package/dist/src/nile-file-preview/nile-file-preview.template.js.map +1 -1
- package/dist/src/nile-file-preview/types/nile-file-preview.enums.d.ts +4 -3
- package/dist/src/nile-file-preview/types/nile-file-preview.enums.js +3 -2
- package/dist/src/nile-file-preview/types/nile-file-preview.enums.js.map +1 -1
- package/dist/src/nile-file-preview/utils/nile-file-preview.util.d.ts +4 -0
- package/dist/src/nile-file-preview/utils/nile-file-preview.util.js +25 -0
- package/dist/src/nile-file-preview/utils/nile-file-preview.util.js.map +1 -1
- package/dist/src/nile-file-upload/nile-file-upload.css.js +140 -87
- package/dist/src/nile-file-upload/nile-file-upload.css.js.map +1 -1
- package/dist/src/nile-file-upload/nile-file-upload.d.ts +4 -1
- package/dist/src/nile-file-upload/nile-file-upload.js +30 -20
- package/dist/src/nile-file-upload/nile-file-upload.js.map +1 -1
- package/dist/src/nile-file-upload/nile-file-upload.template.d.ts +7 -5
- package/dist/src/nile-file-upload/nile-file-upload.template.js +69 -115
- package/dist/src/nile-file-upload/nile-file-upload.template.js.map +1 -1
- package/dist/src/nile-file-upload/types/file-upload.enums.d.ts +11 -4
- package/dist/src/nile-file-upload/types/file-upload.enums.js +8 -1
- package/dist/src/nile-file-upload/types/file-upload.enums.js.map +1 -1
- package/dist/src/nile-file-upload/utils/drag-drop.util.d.ts +2 -4
- package/dist/src/nile-file-upload/utils/drag-drop.util.js +18 -21
- package/dist/src/nile-file-upload/utils/drag-drop.util.js.map +1 -1
- package/dist/src/nile-file-upload/utils/file-validation.util.d.ts +3 -1
- package/dist/src/nile-file-upload/utils/file-validation.util.js +82 -32
- package/dist/src/nile-file-upload/utils/file-validation.util.js.map +1 -1
- package/dist/src/nile-input/nile-input.css.js +0 -1
- package/dist/src/nile-input/nile-input.css.js.map +1 -1
- package/dist/src/nile-option/nile-option.d.ts +1 -0
- package/dist/src/nile-option/nile-option.js +6 -1
- package/dist/src/nile-option/nile-option.js.map +1 -1
- package/dist/src/nile-option-group/index.d.ts +1 -0
- package/dist/src/nile-option-group/index.js +2 -0
- package/dist/src/nile-option-group/index.js.map +1 -0
- package/dist/src/nile-option-group/nile-option-group.css.d.ts +12 -0
- package/dist/src/nile-option-group/nile-option-group.css.js +58 -0
- package/dist/src/nile-option-group/nile-option-group.css.js.map +1 -0
- package/dist/src/nile-option-group/nile-option-group.d.ts +23 -0
- package/dist/src/nile-option-group/nile-option-group.interface.d.ts +22 -0
- package/dist/src/nile-option-group/nile-option-group.interface.js +2 -0
- package/dist/src/nile-option-group/nile-option-group.interface.js.map +1 -0
- package/dist/src/nile-option-group/nile-option-group.js +76 -0
- package/dist/src/nile-option-group/nile-option-group.js.map +1 -0
- package/dist/src/nile-pagination/nile-pagination.css.js +7 -0
- package/dist/src/nile-pagination/nile-pagination.css.js.map +1 -1
- package/dist/src/nile-pagination/nile-pagination.js +3 -1
- package/dist/src/nile-pagination/nile-pagination.js.map +1 -1
- package/dist/src/nile-select/nile-select.d.ts +6 -0
- package/dist/src/nile-select/nile-select.interface.d.ts +5 -0
- package/dist/src/nile-select/nile-select.interface.js +2 -0
- package/dist/src/nile-select/nile-select.interface.js.map +1 -0
- package/dist/src/nile-select/nile-select.js +59 -1
- package/dist/src/nile-select/nile-select.js.map +1 -1
- package/dist/src/nile-table-body/nile-table-body.d.ts +1 -0
- package/dist/src/nile-table-body/nile-table-body.js +4 -0
- package/dist/src/nile-table-body/nile-table-body.js.map +1 -1
- package/dist/src/nile-table-cell-item/nile-table-cell-item.d.ts +2 -1
- package/dist/src/nile-table-cell-item/nile-table-cell-item.js +12 -1
- package/dist/src/nile-table-cell-item/nile-table-cell-item.js.map +1 -1
- package/dist/src/nile-table-header-item/nile-table-header-item.d.ts +2 -1
- package/dist/src/nile-table-header-item/nile-table-header-item.js +12 -1
- package/dist/src/nile-table-header-item/nile-table-header-item.js.map +1 -1
- package/dist/src/nile-virtual-select/renderer.js +3 -0
- package/dist/src/nile-virtual-select/renderer.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/src/index.ts +1 -1
- package/src/internal/resizable-table-helper.ts +31 -8
- package/src/nile-code-editor/nile-code-editor.ts +49 -9
- package/src/nile-code-editor/theme.ts +19 -3
- package/src/nile-file-preview/nile-file-preview.css.ts +202 -183
- package/src/nile-file-preview/nile-file-preview.template.ts +66 -63
- package/src/nile-file-preview/nile-file-preview.ts +54 -22
- package/src/nile-file-preview/types/nile-file-preview.enums.ts +4 -3
- package/src/nile-file-preview/utils/nile-file-preview.util.ts +25 -0
- package/src/nile-file-upload/nile-file-upload.css.ts +141 -88
- package/src/nile-file-upload/nile-file-upload.template.ts +133 -121
- package/src/nile-file-upload/nile-file-upload.ts +30 -18
- package/src/nile-file-upload/types/file-upload.enums.ts +9 -2
- package/src/nile-file-upload/utils/drag-drop.util.ts +25 -25
- package/src/nile-file-upload/utils/file-validation.util.ts +98 -45
- package/src/nile-input/nile-input.css.ts +0 -1
- package/src/nile-option/nile-option.ts +4 -1
- package/src/nile-option-group/index.ts +1 -0
- package/src/nile-option-group/nile-option-group.css.ts +60 -0
- package/src/nile-option-group/nile-option-group.interface.ts +25 -0
- package/src/nile-option-group/nile-option-group.ts +84 -0
- package/src/nile-pagination/nile-pagination.css.ts +7 -0
- package/src/nile-pagination/nile-pagination.ts +3 -1
- package/src/nile-select/nile-select.interface.ts +5 -0
- package/src/nile-select/nile-select.ts +74 -2
- package/src/nile-table-body/nile-table-body.ts +2 -0
- package/src/nile-table-cell-item/nile-table-cell-item.ts +15 -1
- package/src/nile-table-header-item/nile-table-header-item.ts +15 -1
- package/src/nile-virtual-select/renderer.ts +3 -0
- package/vscode-html-custom-data.json +49 -13
@@ -6,13 +6,15 @@ import './nile-file-preview.css';
|
|
6
6
|
import { html, TemplateResult } from 'lit';
|
7
7
|
import { FilePreviewErrorMessages, RemoveFileDetail } from './types';
|
8
8
|
import { removeFile, cancelFileUpload } from './utils';
|
9
|
+
import { formatFileSize, truncateString, getFileType } from './utils/nile-file-preview.util';
|
10
|
+
import { NileFilePreview } from './nile-file-preview';
|
9
11
|
|
10
12
|
export function getHorizontalUploadingState(
|
11
13
|
file: File,
|
12
14
|
uploadStatus: number
|
13
15
|
): TemplateResult {
|
14
16
|
return html`
|
15
|
-
<div class="uploading">
|
17
|
+
<div class="uploading" part="horizontal-uploading-state">
|
16
18
|
<nile-loader width="24" height="24"></nile-loader>
|
17
19
|
<div class="progress-bar-container">
|
18
20
|
<div class="progress-bar-percent">
|
@@ -20,14 +22,14 @@ import { removeFile, cancelFileUpload } from './utils';
|
|
20
22
|
<p>${uploadStatus}%</p>
|
21
23
|
</div>
|
22
24
|
<nile-progress-bar
|
25
|
+
part="horizontal-progress-bar"
|
23
26
|
value="${uploadStatus}"
|
24
27
|
></nile-progress-bar>
|
25
|
-
<p>${file.name}</p>
|
28
|
+
<p class="horizontal-file-name">${file.name}</p>
|
26
29
|
</div>
|
27
30
|
<slot @click=${(e: CustomEvent<RemoveFileDetail>) => cancelFileUpload(file, e)} name="cancelIcon">
|
28
31
|
<nile-icon
|
29
|
-
name="
|
30
|
-
method="var(--nile-svg-method-fill, var(--ng-svg-method-stroke))"
|
32
|
+
name="close"
|
31
33
|
size="14"
|
32
34
|
class="icon"
|
33
35
|
></nile-icon>
|
@@ -42,7 +44,7 @@ export function getHorizontalPreviewState(
|
|
42
44
|
originalUrl: string
|
43
45
|
): TemplateResult {
|
44
46
|
return html`
|
45
|
-
<div class="preview horizontal-div">
|
47
|
+
<div class="preview horizontal-div" part="horizontal-preview-state">
|
46
48
|
<div class="preview-inner">
|
47
49
|
<div class="preview-image-container">
|
48
50
|
<img
|
@@ -53,18 +55,18 @@ export function getHorizontalPreviewState(
|
|
53
55
|
</div>
|
54
56
|
<div class="preview-file-info">
|
55
57
|
<p>${file.name}</p>
|
56
|
-
<p>${(file.type
|
58
|
+
<p>${getFileType(file.type)} • ${formatFileSize(Number(file.size))}</p>
|
57
59
|
</div>
|
58
60
|
</div>
|
59
|
-
<
|
60
|
-
<
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
</
|
61
|
+
<div class="preview-actions">
|
62
|
+
<slot @click=${(e: CustomEvent<RemoveFileDetail>) => removeFile(file, e, originalUrl)} name="cancel-icon">
|
63
|
+
<nile-icon
|
64
|
+
name="trash"
|
65
|
+
size="14"
|
66
|
+
class="icon"
|
67
|
+
></nile-icon>
|
68
|
+
</slot>
|
69
|
+
</div>
|
68
70
|
</div>
|
69
71
|
`;
|
70
72
|
}
|
@@ -74,22 +76,20 @@ export function getHorizontalNoPreviewState(
|
|
74
76
|
originalUrl: string
|
75
77
|
): TemplateResult {
|
76
78
|
return html`
|
77
|
-
<div class="no-preview horizontal-div">
|
79
|
+
<div class="no-preview horizontal-div" part="horizontal-no-preview-state">
|
78
80
|
<div class="no-preview-container">
|
79
81
|
<div class="document-icon">
|
80
|
-
<nile-icon name="
|
82
|
+
<nile-icon name="general" size="20" color="var(--nile-colors-blue-500)"></nile-icon>
|
81
83
|
</div>
|
82
84
|
<div class="preview-file-info">
|
83
85
|
<p>${file.name}</p>
|
84
|
-
<p>${(file.type
|
86
|
+
<p>${getFileType(file.type)} • ${formatFileSize(Number(file.size))}</p>
|
85
87
|
</div>
|
86
88
|
</div>
|
87
89
|
<div>
|
88
|
-
<slot name="cancelIcon">
|
90
|
+
<slot @click=${(e: CustomEvent<RemoveFileDetail>) => removeFile(file, e, originalUrl)} name="cancelIcon">
|
89
91
|
<nile-icon
|
90
|
-
|
91
|
-
name="var(--nile-icon-trash, var(--ng-icon-trash-01))"
|
92
|
-
method="var(--nile-svg-method-fill, var(--ng-svg-method-stroke))"
|
92
|
+
name="trash"
|
93
93
|
size="14"
|
94
94
|
class="icon"
|
95
95
|
></nile-icon>
|
@@ -102,26 +102,30 @@ export function getHorizontalNoPreviewState(
|
|
102
102
|
export function getHorizontalErrorState(
|
103
103
|
file: File,
|
104
104
|
errorMessage: string,
|
105
|
-
originalUrl: string
|
105
|
+
originalUrl: string,
|
106
|
+
nileFilePreview: NileFilePreview
|
106
107
|
): TemplateResult {
|
108
|
+
truncateString(nileFilePreview);
|
107
109
|
return html`
|
108
|
-
<div class="error horizontal-div">
|
110
|
+
<div class="error horizontal-div" part="horizontal-error-state">
|
109
111
|
<div class="error-container">
|
110
112
|
<div class="error-icon">
|
111
|
-
<nile-icon name="
|
113
|
+
<nile-icon name="info-icon" size="20" color="var(--nile-colors-red-700)"></nile-icon>
|
112
114
|
</div>
|
113
115
|
<div class="file-info">
|
114
|
-
<p>${file.name}</p>
|
115
|
-
|
116
|
-
|
117
|
-
|
116
|
+
<p class="horizontal-file-name">${file.name}</p>
|
117
|
+
${
|
118
|
+
nileFilePreview.isStringTruncated
|
119
|
+
? html`<nile-tooltip content=${errorMessage}>
|
120
|
+
<span>${errorMessage}</span>
|
121
|
+
</nile-tooltip>`
|
122
|
+
: html`<span>${errorMessage}</span>`
|
123
|
+
}
|
118
124
|
</div>
|
119
125
|
</div>
|
120
|
-
<slot name="cancelIcon">
|
126
|
+
<slot @click=${(e: CustomEvent<RemoveFileDetail>) => removeFile(file, e, originalUrl)} name="cancelIcon">
|
121
127
|
<nile-icon
|
122
|
-
|
123
|
-
name="var(--nile-icon-close, var(--ng-icon-x-close))"
|
124
|
-
method="var(--nile-svg-method-fill, var(--ng-svg-method-stroke))"
|
128
|
+
name="close"
|
125
129
|
size="14"
|
126
130
|
class="icon"
|
127
131
|
></nile-icon>
|
@@ -136,7 +140,7 @@ export function getVerticalUploadingState(
|
|
136
140
|
uploadStatus: number
|
137
141
|
): TemplateResult {
|
138
142
|
return html`
|
139
|
-
<div class="vertical-div vertical-uploading">
|
143
|
+
<div class="vertical-div vertical-uploading" part="vertical-uploading-state">
|
140
144
|
<div class="loading">
|
141
145
|
<nile-loader width="24" height="24"></nile-loader>
|
142
146
|
</div>
|
@@ -147,14 +151,12 @@ export function getVerticalUploadingState(
|
|
147
151
|
<p>${uploadStatus}%</p>
|
148
152
|
</div>
|
149
153
|
<nile-progress-bar value=${uploadStatus}></nile-progress-bar>
|
150
|
-
<p>${file.name}</p>
|
154
|
+
<p class="vertical-file-name">${file.name}</p>
|
151
155
|
</div>
|
152
156
|
|
153
|
-
<slot name="cancelIcon">
|
157
|
+
<slot @click=${(e: CustomEvent<RemoveFileDetail>) => cancelFileUpload(file, e)} name="cancelIcon">
|
154
158
|
<nile-icon
|
155
|
-
|
156
|
-
name="var(--nile-icon-close, var(--ng-icon-x-close))"
|
157
|
-
method="var(--nile-svg-method-fill, var(--ng-svg-method-stroke))"
|
159
|
+
name="close"
|
158
160
|
size="14"
|
159
161
|
class="icon corner-icon"
|
160
162
|
></nile-icon>
|
@@ -170,7 +172,7 @@ export function getVerticalPreviewState(
|
|
170
172
|
originalUrl: string
|
171
173
|
): TemplateResult {
|
172
174
|
return html`
|
173
|
-
<div class="vertical-div vertical-preview">
|
175
|
+
<div class="vertical-div vertical-preview" part="vertical-preview-state">
|
174
176
|
<div>
|
175
177
|
<img
|
176
178
|
class="image-preview"
|
@@ -181,14 +183,12 @@ export function getVerticalPreviewState(
|
|
181
183
|
|
182
184
|
<div class="content-container">
|
183
185
|
<p>${file.name}</p>
|
184
|
-
<p>${(file.type
|
186
|
+
<p>${getFileType(file.type)} • ${formatFileSize(Number(file.size))}</p>
|
185
187
|
</div>
|
186
188
|
|
187
|
-
<slot name="cancelIcon">
|
189
|
+
<slot @click=${(e: CustomEvent<RemoveFileDetail>) => removeFile(file, e, originalUrl)} name="cancelIcon">
|
188
190
|
<nile-icon
|
189
|
-
|
190
|
-
name="var(--nile-icon-trash, var(--ng-icon-trash-01))"
|
191
|
-
method="var(--nile-svg-method-fill, var(--ng-svg-method-stroke))"
|
191
|
+
name="trash"
|
192
192
|
size="14"
|
193
193
|
class="icon corner-icon"
|
194
194
|
></nile-icon>
|
@@ -202,21 +202,19 @@ export function getVerticalNoPreviewState(
|
|
202
202
|
originalUrl: string
|
203
203
|
): TemplateResult {
|
204
204
|
return html`
|
205
|
-
<div class="vertical-div vertical-no-preview">
|
205
|
+
<div class="vertical-div vertical-no-preview" part="vertical-no-preview-state">
|
206
206
|
<div class="vertical-document-icon">
|
207
|
-
<nile-icon name="
|
207
|
+
<nile-icon name="general" size="20" color="var(--nile-colors-blue-500)"></nile-icon>
|
208
208
|
</div>
|
209
209
|
|
210
210
|
<div class="content-container">
|
211
211
|
<p>${file.name}</p>
|
212
|
-
<p>${file.type} • ${(Number(file.size)
|
212
|
+
<p>${getFileType(file.type)} • ${formatFileSize(Number(file.size))}</p>
|
213
213
|
</div>
|
214
214
|
|
215
|
-
<slot name="cancelIcon">
|
215
|
+
<slot @click=${(e: CustomEvent<RemoveFileDetail>) => removeFile(file, e, originalUrl)} name="cancelIcon">
|
216
216
|
<nile-icon
|
217
|
-
|
218
|
-
name="var(--nile-icon-trash, var(--ng-icon-trash-01))"
|
219
|
-
method="var(--nile-svg-method-fill, var(--ng-svg-method-stroke))"
|
217
|
+
name="trash"
|
220
218
|
size="14"
|
221
219
|
class="icon corner-icon"
|
222
220
|
></nile-icon>
|
@@ -228,29 +226,34 @@ export function getVerticalNoPreviewState(
|
|
228
226
|
export function getVerticalErrorState(
|
229
227
|
file: File,
|
230
228
|
errorMessage: string,
|
231
|
-
originalUrl: string
|
229
|
+
originalUrl: string,
|
230
|
+
nileFilePreview: NileFilePreview
|
232
231
|
): TemplateResult {
|
232
|
+
truncateString(nileFilePreview);
|
233
233
|
return html`
|
234
|
-
<div class="vertical-div vertical-error">
|
234
|
+
<div class="vertical-div vertical-error" part="vertical-error-state">
|
235
235
|
<div class="vertical-document-icon error-bg">
|
236
|
-
<nile-icon name="
|
236
|
+
<nile-icon name="info-icon" size="20" color="var(--nile-colors-red-700)"></nile-icon>
|
237
237
|
</div>
|
238
238
|
|
239
239
|
<div class="file-info-vertical-state">
|
240
|
-
<p>${file.name}</p>
|
241
|
-
|
242
|
-
|
243
|
-
|
240
|
+
<p class="vertical-file-name">${file.name}</p>
|
241
|
+
${
|
242
|
+
nileFilePreview.isStringTruncated
|
243
|
+
? html`<nile-tooltip content=${errorMessage}>
|
244
|
+
<span>${errorMessage}</span>
|
245
|
+
</nile-tooltip>`
|
246
|
+
: html`<span>${errorMessage}</span>`
|
247
|
+
}
|
244
248
|
</div>
|
245
249
|
|
246
|
-
<slot
|
250
|
+
<slot @click=${(e: CustomEvent<RemoveFileDetail>) => removeFile(file, e, originalUrl)} name="cancelIcon">
|
247
251
|
<nile-icon
|
248
|
-
name="
|
249
|
-
method="var(--nile-svg-method-fill, var(--ng-svg-method-stroke))"
|
252
|
+
name="close"
|
250
253
|
size="14"
|
251
254
|
class="icon corner-icon"
|
252
255
|
></nile-icon>
|
253
256
|
</slot>
|
254
257
|
</div>
|
255
258
|
`;
|
256
|
-
}
|
259
|
+
}
|
@@ -43,12 +43,12 @@ export class NileFilePreview extends NileElement {
|
|
43
43
|
@property({ type: Object }) inputFile: File;
|
44
44
|
@property({ type: String }) fileUrl: string = "";
|
45
45
|
@property({ type: Number }) uploadStatus: number = 0;
|
46
|
-
@property({ type: Array }) allowedTypes: string[] = [];
|
47
46
|
@property({ type: String }) state: FilePreviewState = FilePreviewState.DEFAULT;
|
48
47
|
@property({ type: String }) variant: FilePreviewVariant = FilePreviewVariant.HORIZONTAL;
|
49
48
|
@property({ type: String }) inputFileName: string = "";
|
50
49
|
private inputFileHtml: TemplateResult | null = null;
|
51
50
|
private originalUrl: string = "";
|
51
|
+
public isStringTruncated: boolean = false;
|
52
52
|
|
53
53
|
/**
|
54
54
|
* Render method
|
@@ -60,18 +60,19 @@ export class NileFilePreview extends NileElement {
|
|
60
60
|
this.emit(FilePreviewEvent.NILE_INIT);
|
61
61
|
}
|
62
62
|
|
63
|
+
protected firstUpdated(_changedProperties: PropertyValues): void {
|
64
|
+
super.firstUpdated(_changedProperties);
|
65
|
+
}
|
66
|
+
|
63
67
|
protected updated(changedProperties: PropertyValues): void {
|
64
68
|
if(changedProperties.has('uploadStatus') && this.uploadStatus) {
|
65
69
|
if(this.uploadStatus < 100) {
|
66
70
|
this.createUploadState(this.inputFile, this.uploadStatus);
|
67
|
-
this.emit(FilePreviewEvent.NILE_UPLOADING);
|
68
|
-
|
69
71
|
} else {
|
70
72
|
this.createState(this.inputFile);
|
71
73
|
}
|
72
|
-
|
73
74
|
} else if (changedProperties.has('inputFile') && this.inputFile) {
|
74
|
-
this.createState(this.inputFile);
|
75
|
+
this.createState(this.inputFile);
|
75
76
|
this.emit(FilePreviewEvent.NILE_RECEIVE);
|
76
77
|
|
77
78
|
} else if (changedProperties.has('fileUrl') && this.fileUrl) {
|
@@ -105,10 +106,11 @@ export class NileFilePreview extends NileElement {
|
|
105
106
|
} catch (error) {
|
106
107
|
const dummyFile = new File([], this.inputFileName || FilePreviewErrorMessages.UNKNOWN_FILE_NAME, { type: 'application/octet-stream' });
|
107
108
|
this.errorMessage = FilePreviewErrorMessages.FAILED_TO_LOAD;
|
109
|
+
console.error(this.errorMessage);
|
108
110
|
|
109
111
|
this.inputFileHtml = this.variant === FilePreviewVariant.HORIZONTAL
|
110
|
-
? getHorizontalErrorState(dummyFile, this.errorMessage, this.originalUrl)
|
111
|
-
: getVerticalErrorState(dummyFile, this.errorMessage, this.originalUrl);
|
112
|
+
? getHorizontalErrorState(dummyFile, this.errorMessage, this.originalUrl, this)
|
113
|
+
: getVerticalErrorState(dummyFile, this.errorMessage, this.originalUrl, this);
|
112
114
|
this.requestUpdate();
|
113
115
|
}
|
114
116
|
}
|
@@ -116,8 +118,8 @@ export class NileFilePreview extends NileElement {
|
|
116
118
|
public async createState(file: File): Promise<void> {
|
117
119
|
const isHorizontal = this.variant === FilePreviewVariant.HORIZONTAL;
|
118
120
|
|
119
|
-
if (
|
120
|
-
if (file.type.startsWith('image/')) {
|
121
|
+
if (!this.errorMessage) {
|
122
|
+
if (file && file.type.startsWith('image/')) {
|
121
123
|
try {
|
122
124
|
const url = await generatePreviewUrl(file);
|
123
125
|
this.inputFileHtml = isHorizontal
|
@@ -134,27 +136,57 @@ export class NileFilePreview extends NileElement {
|
|
134
136
|
: getVerticalNoPreviewState(file, this.originalUrl);
|
135
137
|
}
|
136
138
|
} else {
|
137
|
-
this.errorMessage = !this.errorMessage
|
138
|
-
? FilePreviewErrorMessages.INVALID_FORMAT
|
139
|
-
: FilePreviewErrorMessages.UPLOAD_CANCEL;
|
140
|
-
|
141
139
|
this.inputFileHtml = isHorizontal
|
142
|
-
? getHorizontalErrorState(file, this.errorMessage, this.originalUrl)
|
143
|
-
: getVerticalErrorState(file, this.errorMessage, this.originalUrl);
|
140
|
+
? getHorizontalErrorState(file, this.errorMessage, this.originalUrl, this)
|
141
|
+
: getVerticalErrorState(file, this.errorMessage, this.originalUrl, this);
|
144
142
|
}
|
145
143
|
this.requestUpdate();
|
146
144
|
}
|
147
145
|
|
148
|
-
private
|
146
|
+
private customFile = new File([], "Harsh", { type: "image/png" })
|
147
|
+
|
148
|
+
getState(): TemplateResult {
|
149
|
+
if(this.variant === "horizontal") return this.getHorizontalStates();
|
150
|
+
return this.getVerticalStates();
|
151
|
+
}
|
152
|
+
|
153
|
+
getHorizontalStates(): TemplateResult {
|
154
|
+
switch(this.state) {
|
155
|
+
case FilePreviewState.UPLOADING:
|
156
|
+
return getHorizontalUploadingState(this.customFile, 2);
|
157
|
+
case FilePreviewState.PREVIEW:
|
158
|
+
return getHorizontalPreviewState("https://s6.imgcdn.dev/YINe6a.jpg", this.customFile, this.originalUrl);
|
159
|
+
case FilePreviewState.NO_PREVIEW:
|
160
|
+
return getHorizontalNoPreviewState(this.customFile, this.originalUrl);
|
161
|
+
case FilePreviewState.ERROR:
|
162
|
+
return getHorizontalErrorState(this.customFile, FilePreviewErrorMessages.CUSTOM_ERROR, this.originalUrl, this);
|
163
|
+
default:
|
164
|
+
return this.inputFileHtml || html``;
|
165
|
+
}
|
166
|
+
}
|
167
|
+
|
168
|
+
getVerticalStates(): TemplateResult {
|
169
|
+
switch(this.state) {
|
170
|
+
case FilePreviewState.UPLOADING:
|
171
|
+
return getVerticalUploadingState(this.customFile, 2);
|
172
|
+
case FilePreviewState.PREVIEW:
|
173
|
+
return getVerticalPreviewState("https://s6.imgcdn.dev/YINe6a.jpg", this.customFile, this.originalUrl);
|
174
|
+
case FilePreviewState.NO_PREVIEW:
|
175
|
+
return getVerticalNoPreviewState(this.customFile, this.originalUrl);
|
176
|
+
case FilePreviewState.ERROR:
|
177
|
+
return getVerticalErrorState(this.customFile, FilePreviewErrorMessages.CUSTOM_ERROR, this.originalUrl, this);
|
178
|
+
default:
|
179
|
+
return this.inputFileHtml || html``;
|
180
|
+
}
|
181
|
+
}
|
149
182
|
|
150
183
|
public render(): TemplateResult {
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
}
|
156
|
-
`;
|
184
|
+
if (this.state) {
|
185
|
+
return this.getState();
|
186
|
+
}
|
187
|
+
return html`${this.inputFileHtml ?? html``}`;
|
157
188
|
}
|
189
|
+
|
158
190
|
|
159
191
|
disconnectedCallback(): void {
|
160
192
|
super.disconnectedCallback();
|
@@ -13,18 +13,19 @@ export enum FilePreviewVariant {
|
|
13
13
|
|
14
14
|
export enum FilePreviewErrorMessages {
|
15
15
|
INVALID_FORMAT = "Invalid File Format. Please try again.",
|
16
|
-
SIZE_LIMIT = "
|
16
|
+
SIZE_LIMIT = "File exceeds size limit.",
|
17
17
|
FAILED_TO_LOAD = "Failed to load file from URL",
|
18
18
|
UNKNOWN_FILE_NAME = 'unknown-file',
|
19
19
|
UPLOAD_CANCEL = "File upload cancelled.",
|
20
20
|
NO_FILE_SELECTED = "No file selected.",
|
21
|
-
UNABLE_TO_GENEARTE_URL = "Unable to generate the url."
|
21
|
+
UNABLE_TO_GENEARTE_URL = "Unable to generate the url.",
|
22
|
+
NETWORK_ERROR = "Network error! Please try again later.",
|
23
|
+
CUSTOM_ERROR = "Error Occured!"
|
22
24
|
}
|
23
25
|
|
24
26
|
export enum FilePreviewEvent {
|
25
27
|
NILE_INIT = "nile-init",
|
26
28
|
NILE_RECEIVE = "nile-receive",
|
27
|
-
NILE_UPLOADING = "nile-uploding",
|
28
29
|
NILE_REMOVE = "nile-remove",
|
29
30
|
NILE_CANCEL_UPLOAD = "nile-cancel-upload",
|
30
31
|
NILE_DESTROY = "nile-destroy"
|
@@ -44,4 +44,29 @@ export const cancelFileUpload = (file: File, e: CustomEvent<RemoveFileDetail>) =
|
|
44
44
|
})
|
45
45
|
);
|
46
46
|
}
|
47
|
+
}
|
48
|
+
|
49
|
+
export const formatFileSize = (bytes: number): string => {
|
50
|
+
const kb = bytes / 1024;
|
51
|
+
const mb = kb / 1024;
|
52
|
+
const gb = mb / 1024;
|
53
|
+
|
54
|
+
if (gb >= 1) return gb.toFixed(2) + ' GB';
|
55
|
+
if (mb >= 1) return mb.toFixed(2) + ' MB';
|
56
|
+
if (kb >= 1) return kb.toFixed(2) + ' KB';
|
57
|
+
return bytes + ' B';
|
58
|
+
}
|
59
|
+
|
60
|
+
export const getFileType = (type: string): string => {
|
61
|
+
return type.split('/')[1].toUpperCase();
|
62
|
+
}
|
63
|
+
|
64
|
+
export const truncateString = (nileFilePreview: NileFilePreview): void => {
|
65
|
+
if(nileFilePreview.variant === 'vertical' && nileFilePreview.errorMessage.length > 34) {
|
66
|
+
nileFilePreview.isStringTruncated = true;
|
67
|
+
nileFilePreview.requestUpdate();
|
68
|
+
} else if(nileFilePreview.variant === 'horizontal' && nileFilePreview.errorMessage.length > 96) {
|
69
|
+
nileFilePreview.isStringTruncated = true;
|
70
|
+
nileFilePreview.requestUpdate();
|
71
|
+
}
|
47
72
|
}
|