@limetech/lime-elements 37.9.0 → 37.10.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 (127) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/cjs/{_arrayIncludesWith-29083f83.js → _arrayIncludesWith-8705cfc6.js} +4 -4
  3. package/dist/cjs/{_arrayIncludesWith-29083f83.js.map → _arrayIncludesWith-8705cfc6.js.map} +1 -1
  4. package/dist/cjs/_baseForOwn-fc9c8906.js +56 -0
  5. package/dist/cjs/_baseForOwn-fc9c8906.js.map +1 -0
  6. package/dist/cjs/{isEqual-d2a13a24.js → _baseIsEqual-2b4442b5.js} +1 -34
  7. package/dist/cjs/_baseIsEqual-2b4442b5.js.map +1 -0
  8. package/dist/cjs/{pickBy-3ef47bf2.js → _baseIteratee-5f8a72f6.js} +16 -313
  9. package/dist/cjs/_baseIteratee-5f8a72f6.js.map +1 -0
  10. package/dist/cjs/file-metadata-f259bba5.js +396 -0
  11. package/dist/cjs/file-metadata-f259bba5.js.map +1 -0
  12. package/dist/cjs/isEqual-a3bb68c4.js +39 -0
  13. package/dist/cjs/isEqual-a3bb68c4.js.map +1 -0
  14. package/dist/cjs/lime-elements.cjs.js +1 -1
  15. package/dist/cjs/limel-chip_2.cjs.entry.js +2 -1
  16. package/dist/cjs/limel-chip_2.cjs.entry.js.map +1 -1
  17. package/dist/cjs/limel-dialog.cjs.entry.js +2 -1
  18. package/dist/cjs/limel-dialog.cjs.entry.js.map +1 -1
  19. package/dist/cjs/limel-file-dropzone.cjs.entry.js +255 -0
  20. package/dist/cjs/limel-file-dropzone.cjs.entry.js.map +1 -0
  21. package/dist/cjs/limel-file.cjs.entry.js +6 -391
  22. package/dist/cjs/limel-file.cjs.entry.js.map +1 -1
  23. package/dist/cjs/limel-form.cjs.entry.js +27 -73
  24. package/dist/cjs/limel-form.cjs.entry.js.map +1 -1
  25. package/dist/cjs/limel-tab-bar.cjs.entry.js +6 -5
  26. package/dist/cjs/limel-tab-bar.cjs.entry.js.map +1 -1
  27. package/dist/cjs/limel-table.cjs.entry.js +8 -6
  28. package/dist/cjs/limel-table.cjs.entry.js.map +1 -1
  29. package/dist/cjs/loader.cjs.js +1 -1
  30. package/dist/cjs/pickBy-1e9455c7.js +311 -0
  31. package/dist/cjs/pickBy-1e9455c7.js.map +1 -0
  32. package/dist/collection/collection-manifest.json +1 -0
  33. package/dist/collection/components/file/file.js +3 -3
  34. package/dist/collection/components/file/file.js.map +1 -1
  35. package/dist/collection/components/file-dropzone/file-dropzone.css +59 -0
  36. package/dist/collection/components/file-dropzone/file-dropzone.js +217 -0
  37. package/dist/collection/components/file-dropzone/file-dropzone.js.map +1 -0
  38. package/dist/collection/global/shared-types/file.types.js.map +1 -0
  39. package/dist/collection/interface.js +1 -1
  40. package/dist/collection/interface.js.map +1 -1
  41. package/dist/collection/{components/file → util}/file-metadata.js +4 -4
  42. package/dist/collection/util/file-metadata.js.map +1 -0
  43. package/dist/collection/util/files.js +37 -0
  44. package/dist/collection/util/files.js.map +1 -0
  45. package/dist/esm/{_arrayIncludesWith-969bccda.js → _arrayIncludesWith-8b8a8b46.js} +2 -2
  46. package/dist/esm/{_arrayIncludesWith-969bccda.js.map → _arrayIncludesWith-8b8a8b46.js.map} +1 -1
  47. package/dist/esm/_baseForOwn-3dd6837f.js +54 -0
  48. package/dist/esm/_baseForOwn-3dd6837f.js.map +1 -0
  49. package/dist/esm/{isEqual-c5a636a4.js → _baseIsEqual-633b7929.js} +2 -34
  50. package/dist/esm/_baseIsEqual-633b7929.js.map +1 -0
  51. package/dist/esm/{pickBy-d359eb12.js → _baseIteratee-2b2723f9.js} +7 -304
  52. package/dist/esm/_baseIteratee-2b2723f9.js.map +1 -0
  53. package/dist/esm/file-metadata-9a4780e2.js +391 -0
  54. package/dist/esm/file-metadata-9a4780e2.js.map +1 -0
  55. package/dist/esm/isEqual-d8fb9edc.js +37 -0
  56. package/dist/esm/isEqual-d8fb9edc.js.map +1 -0
  57. package/dist/esm/lime-elements.js +1 -1
  58. package/dist/esm/limel-chip_2.entry.js +2 -1
  59. package/dist/esm/limel-chip_2.entry.js.map +1 -1
  60. package/dist/esm/limel-dialog.entry.js +2 -1
  61. package/dist/esm/limel-dialog.entry.js.map +1 -1
  62. package/dist/esm/limel-file-dropzone.entry.js +251 -0
  63. package/dist/esm/limel-file-dropzone.entry.js.map +1 -0
  64. package/dist/esm/limel-file.entry.js +2 -387
  65. package/dist/esm/limel-file.entry.js.map +1 -1
  66. package/dist/esm/limel-form.entry.js +6 -52
  67. package/dist/esm/limel-form.entry.js.map +1 -1
  68. package/dist/esm/limel-tab-bar.entry.js +3 -2
  69. package/dist/esm/limel-tab-bar.entry.js.map +1 -1
  70. package/dist/esm/limel-table.entry.js +8 -6
  71. package/dist/esm/limel-table.entry.js.map +1 -1
  72. package/dist/esm/loader.js +1 -1
  73. package/dist/esm/pickBy-240917e2.js +306 -0
  74. package/dist/esm/pickBy-240917e2.js.map +1 -0
  75. package/dist/lime-elements/lime-elements.esm.js +1 -1
  76. package/dist/lime-elements/lime-elements.esm.js.map +1 -1
  77. package/dist/lime-elements/p-0c24c682.entry.js +2 -0
  78. package/dist/lime-elements/p-0c24c682.entry.js.map +1 -0
  79. package/dist/lime-elements/p-2e9fe8fd.js +2 -0
  80. package/dist/lime-elements/p-2e9fe8fd.js.map +1 -0
  81. package/dist/lime-elements/p-4cd3360b.entry.js +2 -0
  82. package/dist/lime-elements/p-4cd3360b.entry.js.map +1 -0
  83. package/dist/lime-elements/p-51ec4f02.js +2 -0
  84. package/dist/lime-elements/p-51ec4f02.js.map +1 -0
  85. package/dist/lime-elements/p-5def744e.js +2 -0
  86. package/dist/lime-elements/p-5def744e.js.map +1 -0
  87. package/dist/lime-elements/{p-b51fd0c7.entry.js → p-862f048d.entry.js} +15 -15
  88. package/dist/lime-elements/{p-b51fd0c7.entry.js.map → p-862f048d.entry.js.map} +1 -1
  89. package/dist/lime-elements/p-8bc1584b.js +2 -0
  90. package/dist/lime-elements/p-8bc1584b.js.map +1 -0
  91. package/dist/lime-elements/{p-a88039bf.entry.js → p-a20848fc.entry.js} +5 -5
  92. package/dist/lime-elements/p-a20848fc.entry.js.map +1 -0
  93. package/dist/lime-elements/p-aaf6dada.entry.js +2 -0
  94. package/dist/lime-elements/{p-1c67a941.entry.js.map → p-aaf6dada.entry.js.map} +1 -1
  95. package/dist/lime-elements/{p-82077942.entry.js → p-b2439774.entry.js} +2 -2
  96. package/dist/lime-elements/p-c5db5254.entry.js +2 -0
  97. package/dist/lime-elements/{p-fb54539a.entry.js.map → p-c5db5254.entry.js.map} +1 -1
  98. package/dist/lime-elements/{p-ade76f1d.js → p-cb91d37d.js} +2 -2
  99. package/dist/lime-elements/p-cb91d37d.js.map +1 -0
  100. package/dist/lime-elements/p-ce1c1f74.js +2 -0
  101. package/dist/lime-elements/p-ce1c1f74.js.map +1 -0
  102. package/dist/lime-elements/{p-fa607ed3.js → p-f4d83226.js} +2 -2
  103. package/dist/types/components/file/file.d.ts +1 -1
  104. package/dist/types/components/file-dropzone/file-dropzone.d.ts +71 -0
  105. package/dist/types/components.d.ts +114 -2
  106. package/dist/types/interface.d.ts +1 -1
  107. package/dist/types/{components/file → util}/file-metadata.d.ts +1 -1
  108. package/dist/types/util/files.d.ts +4 -0
  109. package/package.json +1 -1
  110. package/dist/cjs/isEqual-d2a13a24.js.map +0 -1
  111. package/dist/cjs/pickBy-3ef47bf2.js.map +0 -1
  112. package/dist/collection/components/file/file-metadata.js.map +0 -1
  113. package/dist/collection/components/file/file.types.js.map +0 -1
  114. package/dist/esm/isEqual-c5a636a4.js.map +0 -1
  115. package/dist/esm/pickBy-d359eb12.js.map +0 -1
  116. package/dist/lime-elements/p-1c67a941.entry.js +0 -2
  117. package/dist/lime-elements/p-a88039bf.entry.js.map +0 -1
  118. package/dist/lime-elements/p-ad8cb388.js +0 -2
  119. package/dist/lime-elements/p-ad8cb388.js.map +0 -1
  120. package/dist/lime-elements/p-ade76f1d.js.map +0 -1
  121. package/dist/lime-elements/p-b106a23e.entry.js +0 -2
  122. package/dist/lime-elements/p-b106a23e.entry.js.map +0 -1
  123. package/dist/lime-elements/p-fb54539a.entry.js +0 -2
  124. /package/dist/collection/{components/file → global/shared-types}/file.types.js +0 -0
  125. /package/dist/lime-elements/{p-82077942.entry.js.map → p-b2439774.entry.js.map} +0 -0
  126. /package/dist/lime-elements/{p-fa607ed3.js.map → p-f4d83226.js.map} +0 -0
  127. /package/dist/types/{components/file → global/shared-types}/file.types.d.ts +0 -0
@@ -5,399 +5,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  const index = require('./index-38eb64b5.js');
6
6
  const translations = require('./translations-a384b596.js');
7
7
  const randomString = require('./random-string-c8445652.js');
8
- const getIconProps = require('./get-icon-props-50be7440.js');
8
+ const fileMetadata = require('./file-metadata-f259bba5.js');
9
9
  const component = require('./component-37425b99.js');
10
+ require('./get-icon-props-50be7440.js');
10
11
  require('./component-b37fd9bc.js');
11
12
  require('./component-a4eb183b.js');
12
13
  require('./ponyfill-98ca4766.js');
13
14
  require('./component-55b926ef.js');
14
15
 
15
- const DEFAULT_ICON = 'file';
16
- const CALENDAR_ICON = 'tear_off_calendar';
17
- const EMAIL_ICON = 'email';
18
- const HTML_ICON = 'internet';
19
- const TEXT_ICON = 'text_box';
20
- const EXCEL_ICON = 'ms_excel_copyrighted';
21
- const WORD_ICON = 'ms_word_copyrighted';
22
- const POWERPOINT_ICON = 'ms_powerpoint_copyrighted';
23
- const IMAGE_ICON = 'picture';
24
- const PHOTO_ICON = 'camera';
25
- const VECTOR_GRAPHIC_ICON = 'vector';
26
- const PRESENTATION_ICON = 'presentation_filled';
27
- const DOCUMENT_ICON = 'overview_pages_2';
28
- const SPREADSHEET_ICON = 'data_sheet';
29
- const AUDIO_ICON = 'audio_wave';
30
- const VIDEO_ICON = 'video_file';
31
- const COMPRESSED_ICON = 'condom_package';
32
- const MESSAGE_ICON = 'ms_outlook_copyrighted';
33
- const DATA_ICON = 'database';
34
- const filetypeIconTable = {
35
- // Message
36
- msg: MESSAGE_ICON,
37
- // Calendar
38
- ics: CALENDAR_ICON,
39
- ical: CALENDAR_ICON,
40
- icalendar: CALENDAR_ICON,
41
- ifb: CALENDAR_ICON,
42
- // Email
43
- email: EMAIL_ICON,
44
- eml: EMAIL_ICON,
45
- oft: EMAIL_ICON,
46
- ost: EMAIL_ICON,
47
- emlx: EMAIL_ICON,
48
- // Web
49
- html: HTML_ICON,
50
- xml: HTML_ICON,
51
- // Editable text
52
- txt: TEXT_ICON,
53
- rtf: TEXT_ICON,
54
- // Editable document
55
- dot: WORD_ICON,
56
- doc: WORD_ICON,
57
- docx: WORD_ICON,
58
- dotx: WORD_ICON,
59
- docm: WORD_ICON,
60
- dotm: WORD_ICON,
61
- odt: DOCUMENT_ICON,
62
- pages: DOCUMENT_ICON,
63
- // Portable document
64
- pdf: 'PDF_2',
65
- // Presentation
66
- ppt: POWERPOINT_ICON,
67
- pot: POWERPOINT_ICON,
68
- pps: POWERPOINT_ICON,
69
- pptx: POWERPOINT_ICON,
70
- pptm: POWERPOINT_ICON,
71
- potx: POWERPOINT_ICON,
72
- potm: POWERPOINT_ICON,
73
- ppam: POWERPOINT_ICON,
74
- ppsx: POWERPOINT_ICON,
75
- ppsm: POWERPOINT_ICON,
76
- sldx: POWERPOINT_ICON,
77
- sldm: POWERPOINT_ICON,
78
- odp: PRESENTATION_ICON,
79
- key: PRESENTATION_ICON,
80
- // Spreadsheet
81
- xls: EXCEL_ICON,
82
- xlsx: EXCEL_ICON,
83
- csv: SPREADSHEET_ICON,
84
- numbers: SPREADSHEET_ICON,
85
- // Image
86
- jpg: PHOTO_ICON,
87
- jpeg: PHOTO_ICON,
88
- heic: PHOTO_ICON,
89
- bmp: IMAGE_ICON,
90
- png: IMAGE_ICON,
91
- gif: IMAGE_ICON,
92
- // Editable image
93
- psd: 'adobe_photoshop_copyrighted',
94
- ai: 'adobe_illustrator_copyrighted',
95
- // Vector graphic
96
- svg: VECTOR_GRAPHIC_ICON,
97
- svgz: VECTOR_GRAPHIC_ICON,
98
- ep: VECTOR_GRAPHIC_ICON,
99
- eps: VECTOR_GRAPHIC_ICON,
100
- sketch: VECTOR_GRAPHIC_ICON,
101
- // Audio
102
- mp3: AUDIO_ICON,
103
- wav: AUDIO_ICON,
104
- wma: AUDIO_ICON,
105
- ogg: AUDIO_ICON,
106
- // Video
107
- avi: VIDEO_ICON,
108
- flv: VIDEO_ICON,
109
- h264: VIDEO_ICON,
110
- mov: VIDEO_ICON,
111
- mp4: VIDEO_ICON,
112
- mwv: VIDEO_ICON,
113
- // Compressed
114
- zip: COMPRESSED_ICON,
115
- '7z': COMPRESSED_ICON,
116
- rar: COMPRESSED_ICON,
117
- // Data
118
- json: 'json',
119
- yaml: DATA_ICON,
120
- sql: DATA_ICON,
121
- db: DATA_ICON,
122
- dbf: DATA_ICON,
123
- };
124
- function getIconForFile(extension) {
125
- return filetypeIconTable[extension.toLowerCase()] || DEFAULT_ICON;
126
- }
127
-
128
- const DEFAULT_ICON_FILL_COLOR = 'rgb(var(--color-gray-dark))';
129
- const CALENDAR_ICON_FILL_COLOR = 'rgb(var(--color-cyan-dark))';
130
- const EMAIL_ICON_FILL_COLOR = 'rgb(var(--color-gray-dark))';
131
- const HTML_ICON_FILL_COLOR = 'rgb(var(--color-blue-dark))';
132
- const TEXT_ICON_FILL_COLOR = 'rgb(var(--color-yellow-darker))';
133
- const EXCEL_ICON_FILL_COLOR = 'rgb(var(--color-green-dark))';
134
- const POWERPOINT_ICON_FILL_COLOR = 'rgb(var(--color-coral-dark))';
135
- const WORD_ICON_FILL_COLOR = 'rgb(var(--color-sky-dark))';
136
- const IMAGE_ICON_FILL_COLOR = 'rgb(var(--color-lime-dark))';
137
- const VECTOR_GRAPHIC_FILL_COLOR = 'rgb(var(--color-magenta-dark))';
138
- const PRESENTATION_ICON_FILL_COLOR = 'rgb(var(--color-blue-dark))';
139
- const DOCUMENT_ICON_FILL_COLOR = 'rgb(var(--color-orange-dark))';
140
- const SPREADSHEET_ICON_FILL_COLOR = 'rgb(var(--color-green-dark))';
141
- const AUDIO_ICON_FILL_COLOR = 'rgb(var(--color-indigo-dark))';
142
- const VIDEO_ICON_FILL_COLOR = 'rgb(var(--color-red-dark))';
143
- const COMPRESSED_ICON_FILL_COLOR = 'rgb(var(--color-brown-default))';
144
- const MESSAGE_ICON_FILL_COLOR = 'rgb(var(--color-yellow-dark))';
145
- const PDF_ICON_FILL_COLOR = 'rgb(var(--color-red-dark))';
146
- const DATA_ICON_FILL_COLOR = 'rgb(var(--color-glaucous-dark))';
147
- const filetypeFillColorTable = {
148
- // Message
149
- msg: MESSAGE_ICON_FILL_COLOR,
150
- // Calendar
151
- ics: CALENDAR_ICON_FILL_COLOR,
152
- ical: CALENDAR_ICON_FILL_COLOR,
153
- icalendar: CALENDAR_ICON_FILL_COLOR,
154
- ifb: CALENDAR_ICON_FILL_COLOR,
155
- // Email
156
- email: EMAIL_ICON_FILL_COLOR,
157
- eml: EMAIL_ICON_FILL_COLOR,
158
- oft: EMAIL_ICON_FILL_COLOR,
159
- ost: EMAIL_ICON_FILL_COLOR,
160
- emlx: EMAIL_ICON_FILL_COLOR,
161
- // Web
162
- html: HTML_ICON_FILL_COLOR,
163
- xml: HTML_ICON_FILL_COLOR,
164
- // Editable text
165
- txt: TEXT_ICON_FILL_COLOR,
166
- rtf: TEXT_ICON_FILL_COLOR,
167
- // Editable document
168
- dot: WORD_ICON_FILL_COLOR,
169
- doc: WORD_ICON_FILL_COLOR,
170
- docx: WORD_ICON_FILL_COLOR,
171
- dotx: WORD_ICON_FILL_COLOR,
172
- docm: WORD_ICON_FILL_COLOR,
173
- dotm: WORD_ICON_FILL_COLOR,
174
- odt: DOCUMENT_ICON_FILL_COLOR,
175
- pages: DOCUMENT_ICON_FILL_COLOR,
176
- // Portable document
177
- pdf: PDF_ICON_FILL_COLOR,
178
- // Presentation
179
- ppt: POWERPOINT_ICON_FILL_COLOR,
180
- pot: POWERPOINT_ICON_FILL_COLOR,
181
- pps: POWERPOINT_ICON_FILL_COLOR,
182
- pptx: POWERPOINT_ICON_FILL_COLOR,
183
- pptm: POWERPOINT_ICON_FILL_COLOR,
184
- potx: POWERPOINT_ICON_FILL_COLOR,
185
- potm: POWERPOINT_ICON_FILL_COLOR,
186
- ppam: POWERPOINT_ICON_FILL_COLOR,
187
- ppsx: POWERPOINT_ICON_FILL_COLOR,
188
- ppsm: POWERPOINT_ICON_FILL_COLOR,
189
- sldx: POWERPOINT_ICON_FILL_COLOR,
190
- sldm: POWERPOINT_ICON_FILL_COLOR,
191
- odp: PRESENTATION_ICON_FILL_COLOR,
192
- key: PRESENTATION_ICON_FILL_COLOR,
193
- // Spreadsheet
194
- xls: EXCEL_ICON_FILL_COLOR,
195
- xlsx: EXCEL_ICON_FILL_COLOR,
196
- csv: DEFAULT_ICON_FILL_COLOR,
197
- numbers: SPREADSHEET_ICON_FILL_COLOR,
198
- // Image
199
- bmp: IMAGE_ICON_FILL_COLOR,
200
- jpg: IMAGE_ICON_FILL_COLOR,
201
- jpeg: IMAGE_ICON_FILL_COLOR,
202
- heic: IMAGE_ICON_FILL_COLOR,
203
- png: IMAGE_ICON_FILL_COLOR,
204
- gif: IMAGE_ICON_FILL_COLOR,
205
- // Editable image
206
- psd: PRESENTATION_ICON_FILL_COLOR,
207
- ai: DOCUMENT_ICON_FILL_COLOR,
208
- // Vector graphic
209
- svg: VECTOR_GRAPHIC_FILL_COLOR,
210
- svgz: VECTOR_GRAPHIC_FILL_COLOR,
211
- ep: VECTOR_GRAPHIC_FILL_COLOR,
212
- eps: VECTOR_GRAPHIC_FILL_COLOR,
213
- sketch: VECTOR_GRAPHIC_FILL_COLOR,
214
- // Audio
215
- mp3: AUDIO_ICON_FILL_COLOR,
216
- wav: AUDIO_ICON_FILL_COLOR,
217
- wma: AUDIO_ICON_FILL_COLOR,
218
- ogg: AUDIO_ICON_FILL_COLOR,
219
- // Video
220
- flv: VIDEO_ICON_FILL_COLOR,
221
- h264: VIDEO_ICON_FILL_COLOR,
222
- mov: VIDEO_ICON_FILL_COLOR,
223
- mp4: VIDEO_ICON_FILL_COLOR,
224
- mwv: VIDEO_ICON_FILL_COLOR,
225
- // Compressed
226
- zip: COMPRESSED_ICON_FILL_COLOR,
227
- '7z': COMPRESSED_ICON_FILL_COLOR,
228
- rar: COMPRESSED_ICON_FILL_COLOR,
229
- // Data
230
- json: DATA_ICON_FILL_COLOR,
231
- yaml: DATA_ICON_FILL_COLOR,
232
- sql: DATA_ICON_FILL_COLOR,
233
- db: DATA_ICON_FILL_COLOR,
234
- dbf: DATA_ICON_FILL_COLOR,
235
- };
236
- function getIconFillColorForFile(extension) {
237
- return (filetypeFillColorTable[extension.toLowerCase()] ||
238
- DEFAULT_ICON_FILL_COLOR);
239
- }
240
-
241
- const DEFAULT_ICON_BACKGROUND_COLOR = 'rgba(var(--color-gray-lighter), 0.4)';
242
- const CALENDAR_ICON_BACKGROUND_COLOR = 'rgba(var(--color-cyan-lighter), 0.4)';
243
- const EMAIL_ICON_BACKGROUND_COLOR = 'rgba(var(--color-gray-lighter), 0.4)';
244
- const HTML_ICON_BACKGROUND_COLOR = 'rgba(var(--color-blue-lighter), 0.4)';
245
- const TEXT_ICON_BACKGROUND_COLOR = 'rgba(var(--color-yellow-lighter), 0.4)';
246
- const EXCEL_ICON_BACKGROUND_COLOR = 'rgba(var(--color-green-lighter), 0.4)';
247
- const POWERPOINT_ICON_BACKGROUND_COLOR = 'rgba(var(--color-coral-lighter), 0.4)';
248
- const WORD_ICON_BACKGROUND_COLOR = 'rgba(var(--color-sky-lighter), 0.4)';
249
- const IMAGE_ICON_BACKGROUND_COLOR = 'rgba(var(--color-lime-lighter), 0.4)';
250
- const VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR = 'rgba(var(--color-magenta-lighter), 0.4)';
251
- const PRESENTATION_BACKGROUND_COLOR = 'rgba(var(--color-blue-lighter), 0.4)';
252
- const DOCUMENT_ICON_BACKGROUND_COLOR = 'rgba(var(--color-orange-lighter), 0.4)';
253
- const SPREADSHEET_ICON_BACKGROUND_COLOR = 'rgba(var(--color-green-lighter), 0.4)';
254
- const AUDIO_ICON_BACKGROUND_COLOR = 'rgba(var(--color-indigo-lighter), 0.4)';
255
- const VIDEO_ICON_BACKGROUND_COLOR = 'rgba(var(--color-red-lighter), 0.4)';
256
- const COMPRESSED_ICON_BACKGROUND_COLOR = 'rgba(var(--color-orange-lighter), 0.4)';
257
- const MESSAGE_ICON_BACKGROUND_COLOR = 'rgba(var(--color-yellow-lighter), 0.4)';
258
- const PDF_ICON_BACKGROUND_COLOR = 'rgba(var(--color-red-lighter), 0.4)';
259
- const DATA_ICON_BACKGROUND_COLOR = 'rgba(var(--color-glaucous-lighter), 0.4)';
260
- const filetypeBackgroundColorTable = {
261
- // Message
262
- msg: MESSAGE_ICON_BACKGROUND_COLOR,
263
- // Calendar
264
- ics: CALENDAR_ICON_BACKGROUND_COLOR,
265
- ical: CALENDAR_ICON_BACKGROUND_COLOR,
266
- icalendar: CALENDAR_ICON_BACKGROUND_COLOR,
267
- // Email
268
- ifb: CALENDAR_ICON_BACKGROUND_COLOR,
269
- email: EMAIL_ICON_BACKGROUND_COLOR,
270
- eml: EMAIL_ICON_BACKGROUND_COLOR,
271
- oft: EMAIL_ICON_BACKGROUND_COLOR,
272
- ost: EMAIL_ICON_BACKGROUND_COLOR,
273
- emlx: EMAIL_ICON_BACKGROUND_COLOR,
274
- // Web
275
- html: HTML_ICON_BACKGROUND_COLOR,
276
- xml: HTML_ICON_BACKGROUND_COLOR,
277
- // Editable text
278
- txt: TEXT_ICON_BACKGROUND_COLOR,
279
- rtf: TEXT_ICON_BACKGROUND_COLOR,
280
- // Editable document
281
- dot: WORD_ICON_BACKGROUND_COLOR,
282
- doc: WORD_ICON_BACKGROUND_COLOR,
283
- docx: WORD_ICON_BACKGROUND_COLOR,
284
- dotx: WORD_ICON_BACKGROUND_COLOR,
285
- docm: WORD_ICON_BACKGROUND_COLOR,
286
- dotm: WORD_ICON_BACKGROUND_COLOR,
287
- odt: DOCUMENT_ICON_BACKGROUND_COLOR,
288
- pages: DOCUMENT_ICON_BACKGROUND_COLOR,
289
- // Portable document
290
- pdf: PDF_ICON_BACKGROUND_COLOR,
291
- // Presentation
292
- ppt: POWERPOINT_ICON_BACKGROUND_COLOR,
293
- pot: POWERPOINT_ICON_BACKGROUND_COLOR,
294
- pps: POWERPOINT_ICON_BACKGROUND_COLOR,
295
- pptx: POWERPOINT_ICON_BACKGROUND_COLOR,
296
- pptm: POWERPOINT_ICON_BACKGROUND_COLOR,
297
- potx: POWERPOINT_ICON_BACKGROUND_COLOR,
298
- potm: POWERPOINT_ICON_BACKGROUND_COLOR,
299
- ppam: POWERPOINT_ICON_BACKGROUND_COLOR,
300
- ppsx: POWERPOINT_ICON_BACKGROUND_COLOR,
301
- ppsm: POWERPOINT_ICON_BACKGROUND_COLOR,
302
- sldx: POWERPOINT_ICON_BACKGROUND_COLOR,
303
- sldm: POWERPOINT_ICON_BACKGROUND_COLOR,
304
- odp: PRESENTATION_BACKGROUND_COLOR,
305
- key: PRESENTATION_BACKGROUND_COLOR,
306
- // Spreadsheet
307
- xls: EXCEL_ICON_BACKGROUND_COLOR,
308
- xlsx: EXCEL_ICON_BACKGROUND_COLOR,
309
- csv: DEFAULT_ICON_BACKGROUND_COLOR,
310
- numbers: SPREADSHEET_ICON_BACKGROUND_COLOR,
311
- // Image
312
- bmp: IMAGE_ICON_BACKGROUND_COLOR,
313
- jpg: IMAGE_ICON_BACKGROUND_COLOR,
314
- jpeg: IMAGE_ICON_BACKGROUND_COLOR,
315
- heic: IMAGE_ICON_BACKGROUND_COLOR,
316
- png: IMAGE_ICON_BACKGROUND_COLOR,
317
- gif: IMAGE_ICON_BACKGROUND_COLOR,
318
- // Editable image
319
- psd: PRESENTATION_BACKGROUND_COLOR,
320
- ai: DOCUMENT_ICON_BACKGROUND_COLOR,
321
- // Vector graphic
322
- svg: VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR,
323
- svgz: VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR,
324
- ep: VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR,
325
- eps: VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR,
326
- sketch: VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR,
327
- // Audio
328
- mp3: AUDIO_ICON_BACKGROUND_COLOR,
329
- wav: AUDIO_ICON_BACKGROUND_COLOR,
330
- wma: AUDIO_ICON_BACKGROUND_COLOR,
331
- ogg: AUDIO_ICON_BACKGROUND_COLOR,
332
- // Video
333
- flv: VIDEO_ICON_BACKGROUND_COLOR,
334
- h264: VIDEO_ICON_BACKGROUND_COLOR,
335
- mov: VIDEO_ICON_BACKGROUND_COLOR,
336
- mp4: VIDEO_ICON_BACKGROUND_COLOR,
337
- mwv: VIDEO_ICON_BACKGROUND_COLOR,
338
- // Compressed:
339
- zip: COMPRESSED_ICON_BACKGROUND_COLOR,
340
- '7z': COMPRESSED_ICON_BACKGROUND_COLOR,
341
- rar: COMPRESSED_ICON_BACKGROUND_COLOR,
342
- // Data
343
- json: DATA_ICON_BACKGROUND_COLOR,
344
- yaml: DATA_ICON_BACKGROUND_COLOR,
345
- sql: DATA_ICON_BACKGROUND_COLOR,
346
- db: DATA_ICON_BACKGROUND_COLOR,
347
- dbf: DATA_ICON_BACKGROUND_COLOR,
348
- };
349
- function getIconBackgroundColorForFile(extension) {
350
- return (filetypeBackgroundColorTable[extension.toLowerCase()] ||
351
- DEFAULT_ICON_BACKGROUND_COLOR);
352
- }
353
-
354
- function getFileIcon(file) {
355
- const name = getIconProps.getIconName(file.icon);
356
- if (name) {
357
- return name;
358
- }
359
- const extension = getExtension(file);
360
- if (!extension) {
361
- return;
362
- }
363
- return getIconForFile(extension);
364
- }
365
- function getFileColor(file) {
366
- const color = getIconProps.getIconColor(file.icon, file.iconColor);
367
- if (color) {
368
- return color;
369
- }
370
- const extension = getExtension(file);
371
- if (!extension) {
372
- return;
373
- }
374
- return getIconFillColorForFile(extension);
375
- }
376
- function getFileBackgroundColor(file) {
377
- const backgroundColor = getIconProps.getIconBackgroundColor(file.icon, file.iconBackgroundColor);
378
- if (backgroundColor) {
379
- return backgroundColor;
380
- }
381
- const extension = getExtension(file);
382
- if (!extension) {
383
- return;
384
- }
385
- return getIconBackgroundColorForFile(extension);
386
- }
387
- function getFileExtensionTitle(file) {
388
- const name = getIconProps.getIconName(file.icon);
389
- if (name) {
390
- return name;
391
- }
392
- return getExtension(file);
393
- }
394
- function getExtension(file) {
395
- if (!file) {
396
- return;
397
- }
398
- return file.filename.split('.').pop();
399
- }
400
-
401
16
  const fileCss = ":host{--icon-background-color:rgb(var(--contrast-400));--icon-color:rgb(var(--contrast-1100))}";
402
17
 
403
18
  const CHIP_SET_TAG_NAME = 'limel-chip-set';
@@ -484,10 +99,10 @@ const File = class {
484
99
  }
485
100
  return [
486
101
  Object.assign(Object.assign({}, DEFAULT_FILE_CHIP), { text: this.value.filename, id: this.value.id, icon: {
487
- name: getFileIcon(this.value),
488
- title: getFileExtensionTitle(this.value),
489
- color: getFileColor(this.value),
490
- backgroundColor: getFileBackgroundColor(this.value),
102
+ name: fileMetadata.getFileIcon(this.value),
103
+ title: fileMetadata.getFileExtensionTitle(this.value),
104
+ color: fileMetadata.getFileColor(this.value),
105
+ backgroundColor: fileMetadata.getFileBackgroundColor(this.value),
491
106
  }, href: this.value.href }),
492
107
  ];
493
108
  }
@@ -1 +1 @@
1
- {"file":"limel-file.entry.cjs.js","mappings":"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","names":["getIconName","getIconColor","getIconBackgroundColor","createRandomString","MDCTextField","h","translate"],"sources":["./src/components/file/icons.ts","./src/components/file/icon-fill-colors.ts","./src/components/file/icon-background-colors.ts","./src/components/file/file-metadata.ts","./src/components/file/file.scss?tag=limel-file&encapsulation=shadow","./src/components/file/file.tsx"],"sourcesContent":["const DEFAULT_ICON = 'file';\nconst CALENDAR_ICON = 'tear_off_calendar';\nconst EMAIL_ICON = 'email';\nconst HTML_ICON = 'internet';\nconst TEXT_ICON = 'text_box';\nconst EXCEL_ICON = 'ms_excel_copyrighted';\nconst WORD_ICON = 'ms_word_copyrighted';\nconst POWERPOINT_ICON = 'ms_powerpoint_copyrighted';\nconst IMAGE_ICON = 'picture';\nconst PHOTO_ICON = 'camera';\nconst VECTOR_GRAPHIC_ICON = 'vector';\nconst PRESENTATION_ICON = 'presentation_filled';\nconst DOCUMENT_ICON = 'overview_pages_2';\nconst SPREADSHEET_ICON = 'data_sheet';\nconst AUDIO_ICON = 'audio_wave';\nconst VIDEO_ICON = 'video_file';\nconst COMPRESSED_ICON = 'condom_package';\nconst MESSAGE_ICON = 'ms_outlook_copyrighted';\nconst DATA_ICON = 'database';\n\nconst filetypeIconTable: Record<string, string> = {\n // Message\n msg: MESSAGE_ICON,\n\n // Calendar\n ics: CALENDAR_ICON,\n ical: CALENDAR_ICON,\n icalendar: CALENDAR_ICON,\n ifb: CALENDAR_ICON,\n\n // Email\n email: EMAIL_ICON,\n eml: EMAIL_ICON,\n oft: EMAIL_ICON,\n ost: EMAIL_ICON,\n emlx: EMAIL_ICON,\n\n // Web\n html: HTML_ICON,\n xml: HTML_ICON,\n\n // Editable text\n txt: TEXT_ICON,\n rtf: TEXT_ICON,\n\n // Editable document\n dot: WORD_ICON,\n doc: WORD_ICON,\n docx: WORD_ICON,\n dotx: WORD_ICON,\n docm: WORD_ICON,\n dotm: WORD_ICON,\n odt: DOCUMENT_ICON,\n pages: DOCUMENT_ICON,\n\n // Portable document\n pdf: 'PDF_2',\n\n // Presentation\n ppt: POWERPOINT_ICON,\n pot: POWERPOINT_ICON,\n pps: POWERPOINT_ICON,\n pptx: POWERPOINT_ICON,\n pptm: POWERPOINT_ICON,\n potx: POWERPOINT_ICON,\n potm: POWERPOINT_ICON,\n ppam: POWERPOINT_ICON,\n ppsx: POWERPOINT_ICON,\n ppsm: POWERPOINT_ICON,\n sldx: POWERPOINT_ICON,\n sldm: POWERPOINT_ICON,\n odp: PRESENTATION_ICON,\n key: PRESENTATION_ICON,\n\n // Spreadsheet\n xls: EXCEL_ICON,\n xlsx: EXCEL_ICON,\n csv: SPREADSHEET_ICON,\n numbers: SPREADSHEET_ICON,\n\n // Image\n jpg: PHOTO_ICON,\n jpeg: PHOTO_ICON,\n heic: PHOTO_ICON,\n bmp: IMAGE_ICON,\n png: IMAGE_ICON,\n gif: IMAGE_ICON,\n\n // Editable image\n psd: 'adobe_photoshop_copyrighted',\n ai: 'adobe_illustrator_copyrighted',\n\n // Vector graphic\n svg: VECTOR_GRAPHIC_ICON,\n svgz: VECTOR_GRAPHIC_ICON,\n ep: VECTOR_GRAPHIC_ICON,\n eps: VECTOR_GRAPHIC_ICON,\n sketch: VECTOR_GRAPHIC_ICON,\n\n // Audio\n mp3: AUDIO_ICON,\n wav: AUDIO_ICON,\n wma: AUDIO_ICON,\n ogg: AUDIO_ICON,\n\n // Video\n avi: VIDEO_ICON,\n flv: VIDEO_ICON,\n h264: VIDEO_ICON,\n mov: VIDEO_ICON,\n mp4: VIDEO_ICON,\n mwv: VIDEO_ICON,\n\n // Compressed\n zip: COMPRESSED_ICON,\n '7z': COMPRESSED_ICON,\n rar: COMPRESSED_ICON,\n\n // Data\n json: 'json',\n yaml: DATA_ICON,\n sql: DATA_ICON,\n db: DATA_ICON,\n dbf: DATA_ICON,\n};\n\nexport function getIconForFile(extension: string): string {\n return filetypeIconTable[extension.toLowerCase()] || DEFAULT_ICON;\n}\n","const DEFAULT_ICON_FILL_COLOR = 'rgb(var(--color-gray-dark))';\nconst CALENDAR_ICON_FILL_COLOR = 'rgb(var(--color-cyan-dark))';\nconst EMAIL_ICON_FILL_COLOR = 'rgb(var(--color-gray-dark))';\nconst HTML_ICON_FILL_COLOR = 'rgb(var(--color-blue-dark))';\nconst TEXT_ICON_FILL_COLOR = 'rgb(var(--color-yellow-darker))';\nconst EXCEL_ICON_FILL_COLOR = 'rgb(var(--color-green-dark))';\nconst POWERPOINT_ICON_FILL_COLOR = 'rgb(var(--color-coral-dark))';\nconst WORD_ICON_FILL_COLOR = 'rgb(var(--color-sky-dark))';\nconst IMAGE_ICON_FILL_COLOR = 'rgb(var(--color-lime-dark))';\nconst VECTOR_GRAPHIC_FILL_COLOR = 'rgb(var(--color-magenta-dark))';\nconst PRESENTATION_ICON_FILL_COLOR = 'rgb(var(--color-blue-dark))';\nconst DOCUMENT_ICON_FILL_COLOR = 'rgb(var(--color-orange-dark))';\nconst SPREADSHEET_ICON_FILL_COLOR = 'rgb(var(--color-green-dark))';\nconst AUDIO_ICON_FILL_COLOR = 'rgb(var(--color-indigo-dark))';\nconst VIDEO_ICON_FILL_COLOR = 'rgb(var(--color-red-dark))';\nconst COMPRESSED_ICON_FILL_COLOR = 'rgb(var(--color-brown-default))';\nconst MESSAGE_ICON_FILL_COLOR = 'rgb(var(--color-yellow-dark))';\nconst PDF_ICON_FILL_COLOR = 'rgb(var(--color-red-dark))';\nconst DATA_ICON_FILL_COLOR = 'rgb(var(--color-glaucous-dark))';\n\nconst filetypeFillColorTable: Record<string, string> = {\n // Message\n msg: MESSAGE_ICON_FILL_COLOR,\n\n // Calendar\n ics: CALENDAR_ICON_FILL_COLOR,\n ical: CALENDAR_ICON_FILL_COLOR,\n icalendar: CALENDAR_ICON_FILL_COLOR,\n ifb: CALENDAR_ICON_FILL_COLOR,\n\n // Email\n email: EMAIL_ICON_FILL_COLOR,\n eml: EMAIL_ICON_FILL_COLOR,\n oft: EMAIL_ICON_FILL_COLOR,\n ost: EMAIL_ICON_FILL_COLOR,\n emlx: EMAIL_ICON_FILL_COLOR,\n\n // Web\n html: HTML_ICON_FILL_COLOR,\n xml: HTML_ICON_FILL_COLOR,\n\n // Editable text\n txt: TEXT_ICON_FILL_COLOR,\n rtf: TEXT_ICON_FILL_COLOR,\n\n // Editable document\n dot: WORD_ICON_FILL_COLOR,\n doc: WORD_ICON_FILL_COLOR,\n docx: WORD_ICON_FILL_COLOR,\n dotx: WORD_ICON_FILL_COLOR,\n docm: WORD_ICON_FILL_COLOR,\n dotm: WORD_ICON_FILL_COLOR,\n odt: DOCUMENT_ICON_FILL_COLOR,\n pages: DOCUMENT_ICON_FILL_COLOR,\n\n // Portable document\n pdf: PDF_ICON_FILL_COLOR,\n\n // Presentation\n ppt: POWERPOINT_ICON_FILL_COLOR,\n pot: POWERPOINT_ICON_FILL_COLOR,\n pps: POWERPOINT_ICON_FILL_COLOR,\n pptx: POWERPOINT_ICON_FILL_COLOR,\n pptm: POWERPOINT_ICON_FILL_COLOR,\n potx: POWERPOINT_ICON_FILL_COLOR,\n potm: POWERPOINT_ICON_FILL_COLOR,\n ppam: POWERPOINT_ICON_FILL_COLOR,\n ppsx: POWERPOINT_ICON_FILL_COLOR,\n ppsm: POWERPOINT_ICON_FILL_COLOR,\n sldx: POWERPOINT_ICON_FILL_COLOR,\n sldm: POWERPOINT_ICON_FILL_COLOR,\n odp: PRESENTATION_ICON_FILL_COLOR,\n key: PRESENTATION_ICON_FILL_COLOR,\n\n // Spreadsheet\n xls: EXCEL_ICON_FILL_COLOR,\n xlsx: EXCEL_ICON_FILL_COLOR,\n csv: DEFAULT_ICON_FILL_COLOR,\n numbers: SPREADSHEET_ICON_FILL_COLOR,\n\n // Image\n bmp: IMAGE_ICON_FILL_COLOR,\n jpg: IMAGE_ICON_FILL_COLOR,\n jpeg: IMAGE_ICON_FILL_COLOR,\n heic: IMAGE_ICON_FILL_COLOR,\n png: IMAGE_ICON_FILL_COLOR,\n gif: IMAGE_ICON_FILL_COLOR,\n\n // Editable image\n psd: PRESENTATION_ICON_FILL_COLOR,\n ai: DOCUMENT_ICON_FILL_COLOR,\n\n // Vector graphic\n svg: VECTOR_GRAPHIC_FILL_COLOR,\n svgz: VECTOR_GRAPHIC_FILL_COLOR,\n ep: VECTOR_GRAPHIC_FILL_COLOR,\n eps: VECTOR_GRAPHIC_FILL_COLOR,\n sketch: VECTOR_GRAPHIC_FILL_COLOR,\n\n // Audio\n mp3: AUDIO_ICON_FILL_COLOR,\n wav: AUDIO_ICON_FILL_COLOR,\n wma: AUDIO_ICON_FILL_COLOR,\n ogg: AUDIO_ICON_FILL_COLOR,\n\n // Video\n flv: VIDEO_ICON_FILL_COLOR,\n h264: VIDEO_ICON_FILL_COLOR,\n mov: VIDEO_ICON_FILL_COLOR,\n mp4: VIDEO_ICON_FILL_COLOR,\n mwv: VIDEO_ICON_FILL_COLOR,\n\n // Compressed\n zip: COMPRESSED_ICON_FILL_COLOR,\n '7z': COMPRESSED_ICON_FILL_COLOR,\n rar: COMPRESSED_ICON_FILL_COLOR,\n\n // Data\n json: DATA_ICON_FILL_COLOR,\n yaml: DATA_ICON_FILL_COLOR,\n sql: DATA_ICON_FILL_COLOR,\n db: DATA_ICON_FILL_COLOR,\n dbf: DATA_ICON_FILL_COLOR,\n};\n\nexport function getIconFillColorForFile(extension: string): string {\n return (\n filetypeFillColorTable[extension.toLowerCase()] ||\n DEFAULT_ICON_FILL_COLOR\n );\n}\n","const DEFAULT_ICON_BACKGROUND_COLOR = 'rgba(var(--color-gray-lighter), 0.4)';\nconst CALENDAR_ICON_BACKGROUND_COLOR = 'rgba(var(--color-cyan-lighter), 0.4)';\nconst EMAIL_ICON_BACKGROUND_COLOR = 'rgba(var(--color-gray-lighter), 0.4)';\nconst HTML_ICON_BACKGROUND_COLOR = 'rgba(var(--color-blue-lighter), 0.4)';\nconst TEXT_ICON_BACKGROUND_COLOR = 'rgba(var(--color-yellow-lighter), 0.4)';\nconst EXCEL_ICON_BACKGROUND_COLOR = 'rgba(var(--color-green-lighter), 0.4)';\nconst POWERPOINT_ICON_BACKGROUND_COLOR =\n 'rgba(var(--color-coral-lighter), 0.4)';\nconst WORD_ICON_BACKGROUND_COLOR = 'rgba(var(--color-sky-lighter), 0.4)';\nconst IMAGE_ICON_BACKGROUND_COLOR = 'rgba(var(--color-lime-lighter), 0.4)';\nconst VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR =\n 'rgba(var(--color-magenta-lighter), 0.4)';\nconst PRESENTATION_BACKGROUND_COLOR = 'rgba(var(--color-blue-lighter), 0.4)';\nconst DOCUMENT_ICON_BACKGROUND_COLOR = 'rgba(var(--color-orange-lighter), 0.4)';\nconst SPREADSHEET_ICON_BACKGROUND_COLOR =\n 'rgba(var(--color-green-lighter), 0.4)';\nconst AUDIO_ICON_BACKGROUND_COLOR = 'rgba(var(--color-indigo-lighter), 0.4)';\nconst VIDEO_ICON_BACKGROUND_COLOR = 'rgba(var(--color-red-lighter), 0.4)';\nconst COMPRESSED_ICON_BACKGROUND_COLOR =\n 'rgba(var(--color-orange-lighter), 0.4)';\nconst MESSAGE_ICON_BACKGROUND_COLOR = 'rgba(var(--color-yellow-lighter), 0.4)';\nconst PDF_ICON_BACKGROUND_COLOR = 'rgba(var(--color-red-lighter), 0.4)';\nconst DATA_ICON_BACKGROUND_COLOR = 'rgba(var(--color-glaucous-lighter), 0.4)';\n\nconst filetypeBackgroundColorTable: Record<string, string> = {\n // Message\n msg: MESSAGE_ICON_BACKGROUND_COLOR,\n\n // Calendar\n ics: CALENDAR_ICON_BACKGROUND_COLOR,\n ical: CALENDAR_ICON_BACKGROUND_COLOR,\n icalendar: CALENDAR_ICON_BACKGROUND_COLOR,\n\n // Email\n ifb: CALENDAR_ICON_BACKGROUND_COLOR,\n email: EMAIL_ICON_BACKGROUND_COLOR,\n eml: EMAIL_ICON_BACKGROUND_COLOR,\n oft: EMAIL_ICON_BACKGROUND_COLOR,\n ost: EMAIL_ICON_BACKGROUND_COLOR,\n emlx: EMAIL_ICON_BACKGROUND_COLOR,\n\n // Web\n html: HTML_ICON_BACKGROUND_COLOR,\n xml: HTML_ICON_BACKGROUND_COLOR,\n\n // Editable text\n txt: TEXT_ICON_BACKGROUND_COLOR,\n rtf: TEXT_ICON_BACKGROUND_COLOR,\n\n // Editable document\n dot: WORD_ICON_BACKGROUND_COLOR,\n doc: WORD_ICON_BACKGROUND_COLOR,\n docx: WORD_ICON_BACKGROUND_COLOR,\n dotx: WORD_ICON_BACKGROUND_COLOR,\n docm: WORD_ICON_BACKGROUND_COLOR,\n dotm: WORD_ICON_BACKGROUND_COLOR,\n odt: DOCUMENT_ICON_BACKGROUND_COLOR,\n pages: DOCUMENT_ICON_BACKGROUND_COLOR,\n\n // Portable document\n pdf: PDF_ICON_BACKGROUND_COLOR,\n\n // Presentation\n ppt: POWERPOINT_ICON_BACKGROUND_COLOR,\n pot: POWERPOINT_ICON_BACKGROUND_COLOR,\n pps: POWERPOINT_ICON_BACKGROUND_COLOR,\n pptx: POWERPOINT_ICON_BACKGROUND_COLOR,\n pptm: POWERPOINT_ICON_BACKGROUND_COLOR,\n potx: POWERPOINT_ICON_BACKGROUND_COLOR,\n potm: POWERPOINT_ICON_BACKGROUND_COLOR,\n ppam: POWERPOINT_ICON_BACKGROUND_COLOR,\n ppsx: POWERPOINT_ICON_BACKGROUND_COLOR,\n ppsm: POWERPOINT_ICON_BACKGROUND_COLOR,\n sldx: POWERPOINT_ICON_BACKGROUND_COLOR,\n sldm: POWERPOINT_ICON_BACKGROUND_COLOR,\n odp: PRESENTATION_BACKGROUND_COLOR,\n key: PRESENTATION_BACKGROUND_COLOR,\n\n // Spreadsheet\n xls: EXCEL_ICON_BACKGROUND_COLOR,\n xlsx: EXCEL_ICON_BACKGROUND_COLOR,\n csv: DEFAULT_ICON_BACKGROUND_COLOR,\n numbers: SPREADSHEET_ICON_BACKGROUND_COLOR,\n\n // Image\n bmp: IMAGE_ICON_BACKGROUND_COLOR,\n jpg: IMAGE_ICON_BACKGROUND_COLOR,\n jpeg: IMAGE_ICON_BACKGROUND_COLOR,\n heic: IMAGE_ICON_BACKGROUND_COLOR,\n png: IMAGE_ICON_BACKGROUND_COLOR,\n gif: IMAGE_ICON_BACKGROUND_COLOR,\n\n // Editable image\n psd: PRESENTATION_BACKGROUND_COLOR,\n ai: DOCUMENT_ICON_BACKGROUND_COLOR,\n\n // Vector graphic\n svg: VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR,\n svgz: VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR,\n ep: VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR,\n eps: VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR,\n sketch: VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR,\n\n // Audio\n mp3: AUDIO_ICON_BACKGROUND_COLOR,\n wav: AUDIO_ICON_BACKGROUND_COLOR,\n wma: AUDIO_ICON_BACKGROUND_COLOR,\n ogg: AUDIO_ICON_BACKGROUND_COLOR,\n\n // Video\n flv: VIDEO_ICON_BACKGROUND_COLOR,\n h264: VIDEO_ICON_BACKGROUND_COLOR,\n mov: VIDEO_ICON_BACKGROUND_COLOR,\n mp4: VIDEO_ICON_BACKGROUND_COLOR,\n mwv: VIDEO_ICON_BACKGROUND_COLOR,\n\n // Compressed:\n zip: COMPRESSED_ICON_BACKGROUND_COLOR,\n '7z': COMPRESSED_ICON_BACKGROUND_COLOR,\n rar: COMPRESSED_ICON_BACKGROUND_COLOR,\n\n // Data\n json: DATA_ICON_BACKGROUND_COLOR,\n yaml: DATA_ICON_BACKGROUND_COLOR,\n sql: DATA_ICON_BACKGROUND_COLOR,\n db: DATA_ICON_BACKGROUND_COLOR,\n dbf: DATA_ICON_BACKGROUND_COLOR,\n};\n\nexport function getIconBackgroundColorForFile(extension: string): string {\n return (\n filetypeBackgroundColorTable[extension.toLowerCase()] ||\n DEFAULT_ICON_BACKGROUND_COLOR\n );\n}\n","import { FileInfo } from './file.types';\nimport { getIconForFile } from './icons';\nimport { getIconFillColorForFile } from './icon-fill-colors';\nimport { getIconBackgroundColorForFile } from './icon-background-colors';\nimport {\n getIconBackgroundColor,\n getIconColor,\n getIconName,\n} from '../icon/get-icon-props';\n\nexport function getFileIcon(file: FileInfo) {\n const name = getIconName(file.icon);\n\n if (name) {\n return name;\n }\n\n const extension = getExtension(file);\n if (!extension) {\n return;\n }\n\n return getIconForFile(extension);\n}\n\nexport function getFileColor(file: FileInfo) {\n const color = getIconColor(file.icon, file.iconColor);\n\n if (color) {\n return color;\n }\n\n const extension = getExtension(file);\n if (!extension) {\n return;\n }\n\n return getIconFillColorForFile(extension);\n}\n\nexport function getFileBackgroundColor(file: FileInfo) {\n const backgroundColor = getIconBackgroundColor(\n file.icon,\n file.iconBackgroundColor,\n );\n\n if (backgroundColor) {\n return backgroundColor;\n }\n\n const extension = getExtension(file);\n if (!extension) {\n return;\n }\n\n return getIconBackgroundColorForFile(extension);\n}\n\nexport function getFileExtensionTitle(file: FileInfo) {\n const name = getIconName(file.icon);\n\n if (name) {\n return name;\n }\n\n return getExtension(file);\n}\n\nexport function getExtension(file: FileInfo) {\n if (!file) {\n return;\n }\n\n return file.filename.split('.').pop();\n}\n","/**\n * @prop --icon-background-color: Background color of the icon. Defaults to `--contrast-400`.\n * @prop --icon-color: Color of the icon. Defaults to `--contrast-1100`.\n */\n\n:host {\n --icon-background-color: rgb(var(--contrast-400));\n --icon-color: rgb(var(--contrast-1100));\n}\n","import translate from '../../global/translations';\nimport { Chip } from '../chip-set/chip.types';\nimport { FileInfo } from '../file/file.types';\nimport { Languages } from '../date-picker/date.types';\nimport { MDCTextField } from '@material/textfield';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Prop,\n State,\n} from '@stencil/core';\nimport { createRandomString } from '../../util/random-string';\nimport {\n getFileBackgroundColor,\n getFileColor,\n getFileExtensionTitle,\n getFileIcon,\n} from './file-metadata';\n\nconst CHIP_SET_TAG_NAME = 'limel-chip-set';\nconst DEFAULT_FILE_CHIP: Chip = {\n id: null,\n text: null,\n removable: true,\n};\n\n/**\n * This component lets end-users select a *single* file from their device\n * storage. Regardless of the user's device or operating system, this component\n * opens up a file picker dialog that allows the user to choose a file.\n *\n * ## Using correct labels\n *\n * This file picker can be used in different contexts. The component's distinct\n * visual design including the upload icon hints end-users that this is not a\n * normal input field like other fields in the form for example.\n *\n * :::important\n * you need to use a descriptive `label` that clarifies the\n * functionality of the file picker, and/or provides users with clear\n * instructions.\n *\n * Depending on the context, you may need to avoid labels such as:\n * - File\n * - Document\n *\n * and instead consider using labels like:\n * - Attach a file\n * - Upload a file\n * - Choose a document\n * - Choose a file\n *\n * and similar phrases...\n * :::\n *\n * @exampleComponent limel-example-file\n * @exampleComponent limel-example-file-custom-icon\n * @exampleComponent limel-example-file-accepted-types\n * @exampleComponent limel-example-file-composite\n */\n@Component({\n tag: 'limel-file',\n shadow: true,\n styleUrl: 'file.scss',\n})\nexport class File {\n /**\n * The selected file.\n */\n @Prop()\n public value: FileInfo;\n\n /**\n * The input label.\n */\n @Prop({ reflect: true })\n public label: string;\n\n /**\n * Set to `true` to indicate that the field is required.\n */\n @Prop({ reflect: true })\n public required: boolean = false;\n\n /**\n * True if the input should be disabled\n */\n @Prop({ reflect: true })\n public disabled: boolean = false;\n\n /**\n * Set to `true` to disable adding and removing files, but allow interaction\n * with any already existing file.\n */\n @Prop({ reflect: true })\n public readonly: boolean = false;\n\n /**\n * Set to `true` to indicate that the current value of the chosen file is\n * invalid.\n */\n @Prop({ reflect: true })\n public invalid = false;\n\n /**\n * The [accepted file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers)\n */\n @Prop({ reflect: true })\n public accept: string = '*';\n\n /**\n * Defines the localisation for translations.\n */\n @Prop()\n public language: Languages = 'en';\n\n /**\n * Dispatched when a file is selected/deselected\n */\n @Event()\n private change: EventEmitter<FileInfo>;\n\n /**\n * Dispatched when clicking on a chip\n */\n @Event()\n private interact: EventEmitter<number | string>;\n\n @Element()\n private element: HTMLLimelFileElement;\n\n @State()\n private isDraggingOverDropZone = false;\n\n private fileInput: HTMLInputElement;\n private fileInputId = createRandomString();\n private chipSet;\n private mdcTextField;\n\n constructor() {\n this.handleFileSelection = this.handleFileSelection.bind(this);\n this.handleFileChange = this.handleFileChange.bind(this);\n this.handleChipSetChange = this.handleChipSetChange.bind(this);\n this.handleFileDrop = this.handleFileDrop.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleKeyUp = this.handleKeyUp.bind(this);\n this.handleChipInteract = this.handleChipInteract.bind(this);\n }\n\n public connectedCallback() {\n this.initialize();\n }\n\n public componentDidLoad() {\n this.fileInput = this.element.shadowRoot.getElementById(\n this.fileInputId,\n ) as HTMLInputElement;\n this.chipSet = this.element.shadowRoot.querySelector(CHIP_SET_TAG_NAME);\n this.initialize();\n }\n\n private initialize() {\n if (!this.chipSet) {\n return;\n }\n\n this.mdcTextField = new MDCTextField(\n this.chipSet.shadowRoot.querySelector('.mdc-text-field'),\n );\n }\n\n public disconnectedCallback() {\n if (this.mdcTextField) {\n this.mdcTextField.destroy();\n }\n }\n\n public render() {\n return [\n <input\n hidden={true}\n id={this.fileInputId}\n onChange={this.handleFileChange}\n type=\"file\"\n accept={this.accept}\n disabled={this.disabled || this.readonly}\n />,\n <limel-chip-set\n class={{\n 'is-file-picker': true,\n 'shows-dropzone': true,\n 'highlight-dropzone': this.isDraggingOverDropZone,\n }}\n disabled={this.disabled}\n readonly={this.readonly}\n invalid={this.invalid}\n label={this.label}\n leadingIcon=\"upload_to_cloud\"\n language={this.language}\n onChange={this.handleChipSetChange}\n onClick={this.handleClick}\n onInteract={this.handleChipInteract}\n onKeyDown={this.handleKeyDown}\n onKeyUp={this.handleKeyUp}\n required={this.required}\n type=\"input\"\n value={this.chipArray}\n title={this.getTranslation('drag-and-drop-tips')}\n onDragEnter={this.handleDragEnter}\n onDragOver={this.preventAndStop}\n onDragLeave={this.handleDragLeave}\n onDrop={this.handleFileDrop}\n />,\n ];\n }\n\n private handleDragEnter = (event: DragEvent) => {\n this.isDraggingOverDropZone = true;\n this.preventAndStop(event);\n };\n\n private handleDragLeave = () => {\n this.isDraggingOverDropZone = false;\n };\n\n private handleFileDrop = (event: DragEvent) => {\n this.preventAndStop(event);\n this.isDraggingOverDropZone = false;\n const dataTransfer = event.dataTransfer;\n this.handleFile(dataTransfer.files[0]);\n };\n\n private get chipArray() {\n if (!this.value) {\n return [];\n }\n\n return [\n {\n ...DEFAULT_FILE_CHIP,\n text: this.value.filename,\n id: this.value.id,\n icon: {\n name: getFileIcon(this.value),\n title: getFileExtensionTitle(this.value),\n color: getFileColor(this.value),\n backgroundColor: getFileBackgroundColor(this.value),\n },\n href: this.value.href,\n },\n ];\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (\n event.code === 'Tab' ||\n event.code === 'Backspace' ||\n event.code === 'Enter'\n ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n }\n\n private handleKeyUp(event: KeyboardEvent) {\n if (event.code === 'Enter' && !this.value) {\n this.fileInput.click();\n }\n }\n\n private handleClick = (event: Event) => {\n if (event && 'Lime' in event && (event.Lime as any).chip) {\n // This is a click on a chip, so we don't need to do anything here.\n return;\n }\n\n this.handleFileSelection(event);\n };\n\n private handleFileSelection(event: Event) {\n event.stopPropagation();\n event.preventDefault();\n if (!this.value) {\n this.fileInput.click();\n }\n }\n\n private handleFileChange(event: Event) {\n if (this.fileInput.files.length > 0) {\n event.stopPropagation();\n this.handleFile(this.fileInput.files[0]);\n }\n }\n\n private handleFile(file) {\n const limeFile: FileInfo = {\n id: createRandomString(),\n filename: file.name,\n contentType: file.type,\n size: file.size,\n fileContent: file,\n };\n this.change.emit(limeFile);\n this.chipSet.blur();\n this.mdcTextField.valid = true;\n }\n\n private handleChipSetChange(event: CustomEvent) {\n event.stopPropagation();\n const file = !event.detail.length ? event.detail[0] : null;\n this.chipSet.blur();\n if (!file) {\n this.fileInput.value = '';\n this.change.emit(file);\n if (this.required) {\n this.mdcTextField.valid = false;\n }\n }\n }\n\n private handleChipInteract(event: CustomEvent<Chip>) {\n event.stopPropagation();\n event.preventDefault();\n this.interact.emit(event.detail.id);\n }\n\n private preventAndStop(event: Event) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private getTranslation(key: string) {\n return translate.get(`file.${key}`, this.language);\n }\n}\n"],"version":3}
1
+ {"file":"limel-file.entry.cjs.js","mappings":"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","names":["createRandomString","MDCTextField","h","getFileIcon","getFileExtensionTitle","getFileColor","getFileBackgroundColor","translate"],"sources":["./src/components/file/file.scss?tag=limel-file&encapsulation=shadow","./src/components/file/file.tsx"],"sourcesContent":["/**\n * @prop --icon-background-color: Background color of the icon. Defaults to `--contrast-400`.\n * @prop --icon-color: Color of the icon. Defaults to `--contrast-1100`.\n */\n\n:host {\n --icon-background-color: rgb(var(--contrast-400));\n --icon-color: rgb(var(--contrast-1100));\n}\n","import translate from '../../global/translations';\nimport { Chip } from '../chip-set/chip.types';\nimport { Languages } from '../date-picker/date.types';\nimport { MDCTextField } from '@material/textfield';\nimport {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Prop,\n State,\n} from '@stencil/core';\nimport { createRandomString } from '../../util/random-string';\nimport {\n getFileBackgroundColor,\n getFileColor,\n getFileExtensionTitle,\n getFileIcon,\n} from '../../util/file-metadata';\nimport { FileInfo } from '../../global/shared-types/file.types';\n\nconst CHIP_SET_TAG_NAME = 'limel-chip-set';\nconst DEFAULT_FILE_CHIP: Chip = {\n id: null,\n text: null,\n removable: true,\n};\n\n/**\n * This component lets end-users select a *single* file from their device\n * storage. Regardless of the user's device or operating system, this component\n * opens up a file picker dialog that allows the user to choose a file.\n *\n * ## Using correct labels\n *\n * This file picker can be used in different contexts. The component's distinct\n * visual design including the upload icon hints end-users that this is not a\n * normal input field like other fields in the form for example.\n *\n * :::important\n * you need to use a descriptive `label` that clarifies the\n * functionality of the file picker, and/or provides users with clear\n * instructions.\n *\n * Depending on the context, you may need to avoid labels such as:\n * - File\n * - Document\n *\n * and instead consider using labels like:\n * - Attach a file\n * - Upload a file\n * - Choose a document\n * - Choose a file\n *\n * and similar phrases...\n * :::\n *\n * @exampleComponent limel-example-file\n * @exampleComponent limel-example-file-custom-icon\n * @exampleComponent limel-example-file-accepted-types\n * @exampleComponent limel-example-file-composite\n */\n@Component({\n tag: 'limel-file',\n shadow: true,\n styleUrl: 'file.scss',\n})\nexport class File {\n /**\n * The selected file.\n */\n @Prop()\n public value: FileInfo;\n\n /**\n * The input label.\n */\n @Prop({ reflect: true })\n public label: string;\n\n /**\n * Set to `true` to indicate that the field is required.\n */\n @Prop({ reflect: true })\n public required: boolean = false;\n\n /**\n * True if the input should be disabled\n */\n @Prop({ reflect: true })\n public disabled: boolean = false;\n\n /**\n * Set to `true` to disable adding and removing files, but allow interaction\n * with any already existing file.\n */\n @Prop({ reflect: true })\n public readonly: boolean = false;\n\n /**\n * Set to `true` to indicate that the current value of the chosen file is\n * invalid.\n */\n @Prop({ reflect: true })\n public invalid = false;\n\n /**\n * The [accepted file types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers)\n */\n @Prop({ reflect: true })\n public accept: string = '*';\n\n /**\n * Defines the localisation for translations.\n */\n @Prop()\n public language: Languages = 'en';\n\n /**\n * Dispatched when a file is selected/deselected\n */\n @Event()\n private change: EventEmitter<FileInfo>;\n\n /**\n * Dispatched when clicking on a chip\n */\n @Event()\n private interact: EventEmitter<number | string>;\n\n @Element()\n private element: HTMLLimelFileElement;\n\n @State()\n private isDraggingOverDropZone = false;\n\n private fileInput: HTMLInputElement;\n private fileInputId = createRandomString();\n private chipSet;\n private mdcTextField;\n\n constructor() {\n this.handleFileSelection = this.handleFileSelection.bind(this);\n this.handleFileChange = this.handleFileChange.bind(this);\n this.handleChipSetChange = this.handleChipSetChange.bind(this);\n this.handleFileDrop = this.handleFileDrop.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleKeyUp = this.handleKeyUp.bind(this);\n this.handleChipInteract = this.handleChipInteract.bind(this);\n }\n\n public connectedCallback() {\n this.initialize();\n }\n\n public componentDidLoad() {\n this.fileInput = this.element.shadowRoot.getElementById(\n this.fileInputId,\n ) as HTMLInputElement;\n this.chipSet = this.element.shadowRoot.querySelector(CHIP_SET_TAG_NAME);\n this.initialize();\n }\n\n private initialize() {\n if (!this.chipSet) {\n return;\n }\n\n this.mdcTextField = new MDCTextField(\n this.chipSet.shadowRoot.querySelector('.mdc-text-field'),\n );\n }\n\n public disconnectedCallback() {\n if (this.mdcTextField) {\n this.mdcTextField.destroy();\n }\n }\n\n public render() {\n return [\n <input\n hidden={true}\n id={this.fileInputId}\n onChange={this.handleFileChange}\n type=\"file\"\n accept={this.accept}\n disabled={this.disabled || this.readonly}\n />,\n <limel-chip-set\n class={{\n 'is-file-picker': true,\n 'shows-dropzone': true,\n 'highlight-dropzone': this.isDraggingOverDropZone,\n }}\n disabled={this.disabled}\n readonly={this.readonly}\n invalid={this.invalid}\n label={this.label}\n leadingIcon=\"upload_to_cloud\"\n language={this.language}\n onChange={this.handleChipSetChange}\n onClick={this.handleClick}\n onInteract={this.handleChipInteract}\n onKeyDown={this.handleKeyDown}\n onKeyUp={this.handleKeyUp}\n required={this.required}\n type=\"input\"\n value={this.chipArray}\n title={this.getTranslation('drag-and-drop-tips')}\n onDragEnter={this.handleDragEnter}\n onDragOver={this.preventAndStop}\n onDragLeave={this.handleDragLeave}\n onDrop={this.handleFileDrop}\n />,\n ];\n }\n\n private handleDragEnter = (event: DragEvent) => {\n this.isDraggingOverDropZone = true;\n this.preventAndStop(event);\n };\n\n private handleDragLeave = () => {\n this.isDraggingOverDropZone = false;\n };\n\n private handleFileDrop = (event: DragEvent) => {\n this.preventAndStop(event);\n this.isDraggingOverDropZone = false;\n const dataTransfer = event.dataTransfer;\n this.handleFile(dataTransfer.files[0]);\n };\n\n private get chipArray() {\n if (!this.value) {\n return [];\n }\n\n return [\n {\n ...DEFAULT_FILE_CHIP,\n text: this.value.filename,\n id: this.value.id,\n icon: {\n name: getFileIcon(this.value),\n title: getFileExtensionTitle(this.value),\n color: getFileColor(this.value),\n backgroundColor: getFileBackgroundColor(this.value),\n },\n href: this.value.href,\n },\n ];\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (\n event.code === 'Tab' ||\n event.code === 'Backspace' ||\n event.code === 'Enter'\n ) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n }\n\n private handleKeyUp(event: KeyboardEvent) {\n if (event.code === 'Enter' && !this.value) {\n this.fileInput.click();\n }\n }\n\n private handleClick = (event: Event) => {\n if (event && 'Lime' in event && (event.Lime as any).chip) {\n // This is a click on a chip, so we don't need to do anything here.\n return;\n }\n\n this.handleFileSelection(event);\n };\n\n private handleFileSelection(event: Event) {\n event.stopPropagation();\n event.preventDefault();\n if (!this.value) {\n this.fileInput.click();\n }\n }\n\n private handleFileChange(event: Event) {\n if (this.fileInput.files.length > 0) {\n event.stopPropagation();\n this.handleFile(this.fileInput.files[0]);\n }\n }\n\n private handleFile(file) {\n const limeFile: FileInfo = {\n id: createRandomString(),\n filename: file.name,\n contentType: file.type,\n size: file.size,\n fileContent: file,\n };\n this.change.emit(limeFile);\n this.chipSet.blur();\n this.mdcTextField.valid = true;\n }\n\n private handleChipSetChange(event: CustomEvent) {\n event.stopPropagation();\n const file = !event.detail.length ? event.detail[0] : null;\n this.chipSet.blur();\n if (!file) {\n this.fileInput.value = '';\n this.change.emit(file);\n if (this.required) {\n this.mdcTextField.valid = false;\n }\n }\n }\n\n private handleChipInteract(event: CustomEvent<Chip>) {\n event.stopPropagation();\n event.preventDefault();\n this.interact.emit(event.detail.id);\n }\n\n private preventAndStop(event: Event) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n private getTranslation(key: string) {\n return translate.get(`file.${key}`, this.language);\n }\n}\n"],"version":3}