@limetech/lime-elements 37.9.0 → 37.10.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 (130) hide show
  1. package/CHANGELOG.md +17 -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/components/picker/picker.js +1 -1
  39. package/dist/collection/components/picker/searcher.types.js.map +1 -1
  40. package/dist/collection/global/shared-types/file.types.js.map +1 -0
  41. package/dist/collection/interface.js +1 -1
  42. package/dist/collection/interface.js.map +1 -1
  43. package/dist/collection/{components/file → util}/file-metadata.js +4 -4
  44. package/dist/collection/util/file-metadata.js.map +1 -0
  45. package/dist/collection/util/files.js +37 -0
  46. package/dist/collection/util/files.js.map +1 -0
  47. package/dist/esm/{_arrayIncludesWith-969bccda.js → _arrayIncludesWith-8b8a8b46.js} +2 -2
  48. package/dist/esm/{_arrayIncludesWith-969bccda.js.map → _arrayIncludesWith-8b8a8b46.js.map} +1 -1
  49. package/dist/esm/_baseForOwn-3dd6837f.js +54 -0
  50. package/dist/esm/_baseForOwn-3dd6837f.js.map +1 -0
  51. package/dist/esm/{isEqual-c5a636a4.js → _baseIsEqual-633b7929.js} +2 -34
  52. package/dist/esm/_baseIsEqual-633b7929.js.map +1 -0
  53. package/dist/esm/{pickBy-d359eb12.js → _baseIteratee-2b2723f9.js} +7 -304
  54. package/dist/esm/_baseIteratee-2b2723f9.js.map +1 -0
  55. package/dist/esm/file-metadata-9a4780e2.js +391 -0
  56. package/dist/esm/file-metadata-9a4780e2.js.map +1 -0
  57. package/dist/esm/isEqual-d8fb9edc.js +37 -0
  58. package/dist/esm/isEqual-d8fb9edc.js.map +1 -0
  59. package/dist/esm/lime-elements.js +1 -1
  60. package/dist/esm/limel-chip_2.entry.js +2 -1
  61. package/dist/esm/limel-chip_2.entry.js.map +1 -1
  62. package/dist/esm/limel-dialog.entry.js +2 -1
  63. package/dist/esm/limel-dialog.entry.js.map +1 -1
  64. package/dist/esm/limel-file-dropzone.entry.js +251 -0
  65. package/dist/esm/limel-file-dropzone.entry.js.map +1 -0
  66. package/dist/esm/limel-file.entry.js +2 -387
  67. package/dist/esm/limel-file.entry.js.map +1 -1
  68. package/dist/esm/limel-form.entry.js +6 -52
  69. package/dist/esm/limel-form.entry.js.map +1 -1
  70. package/dist/esm/limel-tab-bar.entry.js +3 -2
  71. package/dist/esm/limel-tab-bar.entry.js.map +1 -1
  72. package/dist/esm/limel-table.entry.js +8 -6
  73. package/dist/esm/limel-table.entry.js.map +1 -1
  74. package/dist/esm/loader.js +1 -1
  75. package/dist/esm/pickBy-240917e2.js +306 -0
  76. package/dist/esm/pickBy-240917e2.js.map +1 -0
  77. package/dist/lime-elements/lime-elements.esm.js +1 -1
  78. package/dist/lime-elements/lime-elements.esm.js.map +1 -1
  79. package/dist/lime-elements/p-0c24c682.entry.js +2 -0
  80. package/dist/lime-elements/p-0c24c682.entry.js.map +1 -0
  81. package/dist/lime-elements/p-2e9fe8fd.js +2 -0
  82. package/dist/lime-elements/p-2e9fe8fd.js.map +1 -0
  83. package/dist/lime-elements/p-4cd3360b.entry.js +2 -0
  84. package/dist/lime-elements/p-4cd3360b.entry.js.map +1 -0
  85. package/dist/lime-elements/p-51ec4f02.js +2 -0
  86. package/dist/lime-elements/p-51ec4f02.js.map +1 -0
  87. package/dist/lime-elements/p-5def744e.js +2 -0
  88. package/dist/lime-elements/p-5def744e.js.map +1 -0
  89. package/dist/lime-elements/{p-b51fd0c7.entry.js → p-862f048d.entry.js} +15 -15
  90. package/dist/lime-elements/{p-b51fd0c7.entry.js.map → p-862f048d.entry.js.map} +1 -1
  91. package/dist/lime-elements/p-8bc1584b.js +2 -0
  92. package/dist/lime-elements/p-8bc1584b.js.map +1 -0
  93. package/dist/lime-elements/{p-a88039bf.entry.js → p-a20848fc.entry.js} +5 -5
  94. package/dist/lime-elements/p-a20848fc.entry.js.map +1 -0
  95. package/dist/lime-elements/p-aaf6dada.entry.js +2 -0
  96. package/dist/lime-elements/{p-1c67a941.entry.js.map → p-aaf6dada.entry.js.map} +1 -1
  97. package/dist/lime-elements/{p-82077942.entry.js → p-b2439774.entry.js} +2 -2
  98. package/dist/lime-elements/p-c5db5254.entry.js +2 -0
  99. package/dist/lime-elements/{p-fb54539a.entry.js.map → p-c5db5254.entry.js.map} +1 -1
  100. package/dist/lime-elements/{p-ade76f1d.js → p-cb91d37d.js} +2 -2
  101. package/dist/lime-elements/p-cb91d37d.js.map +1 -0
  102. package/dist/lime-elements/p-ce1c1f74.js +2 -0
  103. package/dist/lime-elements/p-ce1c1f74.js.map +1 -0
  104. package/dist/lime-elements/{p-fa607ed3.js → p-f4d83226.js} +2 -2
  105. package/dist/types/components/file/file.d.ts +1 -1
  106. package/dist/types/components/file-dropzone/file-dropzone.d.ts +71 -0
  107. package/dist/types/components/picker/searcher.types.d.ts +1 -1
  108. package/dist/types/components.d.ts +114 -2
  109. package/dist/types/interface.d.ts +1 -1
  110. package/dist/types/{components/file → util}/file-metadata.d.ts +1 -1
  111. package/dist/types/util/files.d.ts +4 -0
  112. package/package.json +1 -1
  113. package/dist/cjs/isEqual-d2a13a24.js.map +0 -1
  114. package/dist/cjs/pickBy-3ef47bf2.js.map +0 -1
  115. package/dist/collection/components/file/file-metadata.js.map +0 -1
  116. package/dist/collection/components/file/file.types.js.map +0 -1
  117. package/dist/esm/isEqual-c5a636a4.js.map +0 -1
  118. package/dist/esm/pickBy-d359eb12.js.map +0 -1
  119. package/dist/lime-elements/p-1c67a941.entry.js +0 -2
  120. package/dist/lime-elements/p-a88039bf.entry.js.map +0 -1
  121. package/dist/lime-elements/p-ad8cb388.js +0 -2
  122. package/dist/lime-elements/p-ad8cb388.js.map +0 -1
  123. package/dist/lime-elements/p-ade76f1d.js.map +0 -1
  124. package/dist/lime-elements/p-b106a23e.entry.js +0 -2
  125. package/dist/lime-elements/p-b106a23e.entry.js.map +0 -1
  126. package/dist/lime-elements/p-fb54539a.entry.js +0 -2
  127. /package/dist/collection/{components/file → global/shared-types}/file.types.js +0 -0
  128. /package/dist/lime-elements/{p-82077942.entry.js.map → p-b2439774.entry.js.map} +0 -0
  129. /package/dist/lime-elements/{p-fa607ed3.js.map → p-f4d83226.js.map} +0 -0
  130. /package/dist/types/{components/file → global/shared-types}/file.types.d.ts +0 -0
@@ -1,399 +1,14 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-232e9616.js';
2
2
  import { t as translate } from './translations-dea847ae.js';
3
3
  import { c as createRandomString } from './random-string-812b1c35.js';
4
- import { g as getIconName, a as getIconColor, b as getIconBackgroundColor } from './get-icon-props-0b65f85e.js';
4
+ import { g as getFileIcon, a as getFileExtensionTitle, b as getFileColor, c as getFileBackgroundColor } from './file-metadata-9a4780e2.js';
5
5
  import { M as MDCTextField } from './component-58f68f3e.js';
6
+ import './get-icon-props-0b65f85e.js';
6
7
  import './component-8b6ce3e9.js';
7
8
  import './component-f972b8db.js';
8
9
  import './ponyfill-30263d5e.js';
9
10
  import './component-fc0a08f6.js';
10
11
 
11
- const DEFAULT_ICON = 'file';
12
- const CALENDAR_ICON = 'tear_off_calendar';
13
- const EMAIL_ICON = 'email';
14
- const HTML_ICON = 'internet';
15
- const TEXT_ICON = 'text_box';
16
- const EXCEL_ICON = 'ms_excel_copyrighted';
17
- const WORD_ICON = 'ms_word_copyrighted';
18
- const POWERPOINT_ICON = 'ms_powerpoint_copyrighted';
19
- const IMAGE_ICON = 'picture';
20
- const PHOTO_ICON = 'camera';
21
- const VECTOR_GRAPHIC_ICON = 'vector';
22
- const PRESENTATION_ICON = 'presentation_filled';
23
- const DOCUMENT_ICON = 'overview_pages_2';
24
- const SPREADSHEET_ICON = 'data_sheet';
25
- const AUDIO_ICON = 'audio_wave';
26
- const VIDEO_ICON = 'video_file';
27
- const COMPRESSED_ICON = 'condom_package';
28
- const MESSAGE_ICON = 'ms_outlook_copyrighted';
29
- const DATA_ICON = 'database';
30
- const filetypeIconTable = {
31
- // Message
32
- msg: MESSAGE_ICON,
33
- // Calendar
34
- ics: CALENDAR_ICON,
35
- ical: CALENDAR_ICON,
36
- icalendar: CALENDAR_ICON,
37
- ifb: CALENDAR_ICON,
38
- // Email
39
- email: EMAIL_ICON,
40
- eml: EMAIL_ICON,
41
- oft: EMAIL_ICON,
42
- ost: EMAIL_ICON,
43
- emlx: EMAIL_ICON,
44
- // Web
45
- html: HTML_ICON,
46
- xml: HTML_ICON,
47
- // Editable text
48
- txt: TEXT_ICON,
49
- rtf: TEXT_ICON,
50
- // Editable document
51
- dot: WORD_ICON,
52
- doc: WORD_ICON,
53
- docx: WORD_ICON,
54
- dotx: WORD_ICON,
55
- docm: WORD_ICON,
56
- dotm: WORD_ICON,
57
- odt: DOCUMENT_ICON,
58
- pages: DOCUMENT_ICON,
59
- // Portable document
60
- pdf: 'PDF_2',
61
- // Presentation
62
- ppt: POWERPOINT_ICON,
63
- pot: POWERPOINT_ICON,
64
- pps: POWERPOINT_ICON,
65
- pptx: POWERPOINT_ICON,
66
- pptm: POWERPOINT_ICON,
67
- potx: POWERPOINT_ICON,
68
- potm: POWERPOINT_ICON,
69
- ppam: POWERPOINT_ICON,
70
- ppsx: POWERPOINT_ICON,
71
- ppsm: POWERPOINT_ICON,
72
- sldx: POWERPOINT_ICON,
73
- sldm: POWERPOINT_ICON,
74
- odp: PRESENTATION_ICON,
75
- key: PRESENTATION_ICON,
76
- // Spreadsheet
77
- xls: EXCEL_ICON,
78
- xlsx: EXCEL_ICON,
79
- csv: SPREADSHEET_ICON,
80
- numbers: SPREADSHEET_ICON,
81
- // Image
82
- jpg: PHOTO_ICON,
83
- jpeg: PHOTO_ICON,
84
- heic: PHOTO_ICON,
85
- bmp: IMAGE_ICON,
86
- png: IMAGE_ICON,
87
- gif: IMAGE_ICON,
88
- // Editable image
89
- psd: 'adobe_photoshop_copyrighted',
90
- ai: 'adobe_illustrator_copyrighted',
91
- // Vector graphic
92
- svg: VECTOR_GRAPHIC_ICON,
93
- svgz: VECTOR_GRAPHIC_ICON,
94
- ep: VECTOR_GRAPHIC_ICON,
95
- eps: VECTOR_GRAPHIC_ICON,
96
- sketch: VECTOR_GRAPHIC_ICON,
97
- // Audio
98
- mp3: AUDIO_ICON,
99
- wav: AUDIO_ICON,
100
- wma: AUDIO_ICON,
101
- ogg: AUDIO_ICON,
102
- // Video
103
- avi: VIDEO_ICON,
104
- flv: VIDEO_ICON,
105
- h264: VIDEO_ICON,
106
- mov: VIDEO_ICON,
107
- mp4: VIDEO_ICON,
108
- mwv: VIDEO_ICON,
109
- // Compressed
110
- zip: COMPRESSED_ICON,
111
- '7z': COMPRESSED_ICON,
112
- rar: COMPRESSED_ICON,
113
- // Data
114
- json: 'json',
115
- yaml: DATA_ICON,
116
- sql: DATA_ICON,
117
- db: DATA_ICON,
118
- dbf: DATA_ICON,
119
- };
120
- function getIconForFile(extension) {
121
- return filetypeIconTable[extension.toLowerCase()] || DEFAULT_ICON;
122
- }
123
-
124
- const DEFAULT_ICON_FILL_COLOR = 'rgb(var(--color-gray-dark))';
125
- const CALENDAR_ICON_FILL_COLOR = 'rgb(var(--color-cyan-dark))';
126
- const EMAIL_ICON_FILL_COLOR = 'rgb(var(--color-gray-dark))';
127
- const HTML_ICON_FILL_COLOR = 'rgb(var(--color-blue-dark))';
128
- const TEXT_ICON_FILL_COLOR = 'rgb(var(--color-yellow-darker))';
129
- const EXCEL_ICON_FILL_COLOR = 'rgb(var(--color-green-dark))';
130
- const POWERPOINT_ICON_FILL_COLOR = 'rgb(var(--color-coral-dark))';
131
- const WORD_ICON_FILL_COLOR = 'rgb(var(--color-sky-dark))';
132
- const IMAGE_ICON_FILL_COLOR = 'rgb(var(--color-lime-dark))';
133
- const VECTOR_GRAPHIC_FILL_COLOR = 'rgb(var(--color-magenta-dark))';
134
- const PRESENTATION_ICON_FILL_COLOR = 'rgb(var(--color-blue-dark))';
135
- const DOCUMENT_ICON_FILL_COLOR = 'rgb(var(--color-orange-dark))';
136
- const SPREADSHEET_ICON_FILL_COLOR = 'rgb(var(--color-green-dark))';
137
- const AUDIO_ICON_FILL_COLOR = 'rgb(var(--color-indigo-dark))';
138
- const VIDEO_ICON_FILL_COLOR = 'rgb(var(--color-red-dark))';
139
- const COMPRESSED_ICON_FILL_COLOR = 'rgb(var(--color-brown-default))';
140
- const MESSAGE_ICON_FILL_COLOR = 'rgb(var(--color-yellow-dark))';
141
- const PDF_ICON_FILL_COLOR = 'rgb(var(--color-red-dark))';
142
- const DATA_ICON_FILL_COLOR = 'rgb(var(--color-glaucous-dark))';
143
- const filetypeFillColorTable = {
144
- // Message
145
- msg: MESSAGE_ICON_FILL_COLOR,
146
- // Calendar
147
- ics: CALENDAR_ICON_FILL_COLOR,
148
- ical: CALENDAR_ICON_FILL_COLOR,
149
- icalendar: CALENDAR_ICON_FILL_COLOR,
150
- ifb: CALENDAR_ICON_FILL_COLOR,
151
- // Email
152
- email: EMAIL_ICON_FILL_COLOR,
153
- eml: EMAIL_ICON_FILL_COLOR,
154
- oft: EMAIL_ICON_FILL_COLOR,
155
- ost: EMAIL_ICON_FILL_COLOR,
156
- emlx: EMAIL_ICON_FILL_COLOR,
157
- // Web
158
- html: HTML_ICON_FILL_COLOR,
159
- xml: HTML_ICON_FILL_COLOR,
160
- // Editable text
161
- txt: TEXT_ICON_FILL_COLOR,
162
- rtf: TEXT_ICON_FILL_COLOR,
163
- // Editable document
164
- dot: WORD_ICON_FILL_COLOR,
165
- doc: WORD_ICON_FILL_COLOR,
166
- docx: WORD_ICON_FILL_COLOR,
167
- dotx: WORD_ICON_FILL_COLOR,
168
- docm: WORD_ICON_FILL_COLOR,
169
- dotm: WORD_ICON_FILL_COLOR,
170
- odt: DOCUMENT_ICON_FILL_COLOR,
171
- pages: DOCUMENT_ICON_FILL_COLOR,
172
- // Portable document
173
- pdf: PDF_ICON_FILL_COLOR,
174
- // Presentation
175
- ppt: POWERPOINT_ICON_FILL_COLOR,
176
- pot: POWERPOINT_ICON_FILL_COLOR,
177
- pps: POWERPOINT_ICON_FILL_COLOR,
178
- pptx: POWERPOINT_ICON_FILL_COLOR,
179
- pptm: POWERPOINT_ICON_FILL_COLOR,
180
- potx: POWERPOINT_ICON_FILL_COLOR,
181
- potm: POWERPOINT_ICON_FILL_COLOR,
182
- ppam: POWERPOINT_ICON_FILL_COLOR,
183
- ppsx: POWERPOINT_ICON_FILL_COLOR,
184
- ppsm: POWERPOINT_ICON_FILL_COLOR,
185
- sldx: POWERPOINT_ICON_FILL_COLOR,
186
- sldm: POWERPOINT_ICON_FILL_COLOR,
187
- odp: PRESENTATION_ICON_FILL_COLOR,
188
- key: PRESENTATION_ICON_FILL_COLOR,
189
- // Spreadsheet
190
- xls: EXCEL_ICON_FILL_COLOR,
191
- xlsx: EXCEL_ICON_FILL_COLOR,
192
- csv: DEFAULT_ICON_FILL_COLOR,
193
- numbers: SPREADSHEET_ICON_FILL_COLOR,
194
- // Image
195
- bmp: IMAGE_ICON_FILL_COLOR,
196
- jpg: IMAGE_ICON_FILL_COLOR,
197
- jpeg: IMAGE_ICON_FILL_COLOR,
198
- heic: IMAGE_ICON_FILL_COLOR,
199
- png: IMAGE_ICON_FILL_COLOR,
200
- gif: IMAGE_ICON_FILL_COLOR,
201
- // Editable image
202
- psd: PRESENTATION_ICON_FILL_COLOR,
203
- ai: DOCUMENT_ICON_FILL_COLOR,
204
- // Vector graphic
205
- svg: VECTOR_GRAPHIC_FILL_COLOR,
206
- svgz: VECTOR_GRAPHIC_FILL_COLOR,
207
- ep: VECTOR_GRAPHIC_FILL_COLOR,
208
- eps: VECTOR_GRAPHIC_FILL_COLOR,
209
- sketch: VECTOR_GRAPHIC_FILL_COLOR,
210
- // Audio
211
- mp3: AUDIO_ICON_FILL_COLOR,
212
- wav: AUDIO_ICON_FILL_COLOR,
213
- wma: AUDIO_ICON_FILL_COLOR,
214
- ogg: AUDIO_ICON_FILL_COLOR,
215
- // Video
216
- flv: VIDEO_ICON_FILL_COLOR,
217
- h264: VIDEO_ICON_FILL_COLOR,
218
- mov: VIDEO_ICON_FILL_COLOR,
219
- mp4: VIDEO_ICON_FILL_COLOR,
220
- mwv: VIDEO_ICON_FILL_COLOR,
221
- // Compressed
222
- zip: COMPRESSED_ICON_FILL_COLOR,
223
- '7z': COMPRESSED_ICON_FILL_COLOR,
224
- rar: COMPRESSED_ICON_FILL_COLOR,
225
- // Data
226
- json: DATA_ICON_FILL_COLOR,
227
- yaml: DATA_ICON_FILL_COLOR,
228
- sql: DATA_ICON_FILL_COLOR,
229
- db: DATA_ICON_FILL_COLOR,
230
- dbf: DATA_ICON_FILL_COLOR,
231
- };
232
- function getIconFillColorForFile(extension) {
233
- return (filetypeFillColorTable[extension.toLowerCase()] ||
234
- DEFAULT_ICON_FILL_COLOR);
235
- }
236
-
237
- const DEFAULT_ICON_BACKGROUND_COLOR = 'rgba(var(--color-gray-lighter), 0.4)';
238
- const CALENDAR_ICON_BACKGROUND_COLOR = 'rgba(var(--color-cyan-lighter), 0.4)';
239
- const EMAIL_ICON_BACKGROUND_COLOR = 'rgba(var(--color-gray-lighter), 0.4)';
240
- const HTML_ICON_BACKGROUND_COLOR = 'rgba(var(--color-blue-lighter), 0.4)';
241
- const TEXT_ICON_BACKGROUND_COLOR = 'rgba(var(--color-yellow-lighter), 0.4)';
242
- const EXCEL_ICON_BACKGROUND_COLOR = 'rgba(var(--color-green-lighter), 0.4)';
243
- const POWERPOINT_ICON_BACKGROUND_COLOR = 'rgba(var(--color-coral-lighter), 0.4)';
244
- const WORD_ICON_BACKGROUND_COLOR = 'rgba(var(--color-sky-lighter), 0.4)';
245
- const IMAGE_ICON_BACKGROUND_COLOR = 'rgba(var(--color-lime-lighter), 0.4)';
246
- const VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR = 'rgba(var(--color-magenta-lighter), 0.4)';
247
- const PRESENTATION_BACKGROUND_COLOR = 'rgba(var(--color-blue-lighter), 0.4)';
248
- const DOCUMENT_ICON_BACKGROUND_COLOR = 'rgba(var(--color-orange-lighter), 0.4)';
249
- const SPREADSHEET_ICON_BACKGROUND_COLOR = 'rgba(var(--color-green-lighter), 0.4)';
250
- const AUDIO_ICON_BACKGROUND_COLOR = 'rgba(var(--color-indigo-lighter), 0.4)';
251
- const VIDEO_ICON_BACKGROUND_COLOR = 'rgba(var(--color-red-lighter), 0.4)';
252
- const COMPRESSED_ICON_BACKGROUND_COLOR = 'rgba(var(--color-orange-lighter), 0.4)';
253
- const MESSAGE_ICON_BACKGROUND_COLOR = 'rgba(var(--color-yellow-lighter), 0.4)';
254
- const PDF_ICON_BACKGROUND_COLOR = 'rgba(var(--color-red-lighter), 0.4)';
255
- const DATA_ICON_BACKGROUND_COLOR = 'rgba(var(--color-glaucous-lighter), 0.4)';
256
- const filetypeBackgroundColorTable = {
257
- // Message
258
- msg: MESSAGE_ICON_BACKGROUND_COLOR,
259
- // Calendar
260
- ics: CALENDAR_ICON_BACKGROUND_COLOR,
261
- ical: CALENDAR_ICON_BACKGROUND_COLOR,
262
- icalendar: CALENDAR_ICON_BACKGROUND_COLOR,
263
- // Email
264
- ifb: CALENDAR_ICON_BACKGROUND_COLOR,
265
- email: EMAIL_ICON_BACKGROUND_COLOR,
266
- eml: EMAIL_ICON_BACKGROUND_COLOR,
267
- oft: EMAIL_ICON_BACKGROUND_COLOR,
268
- ost: EMAIL_ICON_BACKGROUND_COLOR,
269
- emlx: EMAIL_ICON_BACKGROUND_COLOR,
270
- // Web
271
- html: HTML_ICON_BACKGROUND_COLOR,
272
- xml: HTML_ICON_BACKGROUND_COLOR,
273
- // Editable text
274
- txt: TEXT_ICON_BACKGROUND_COLOR,
275
- rtf: TEXT_ICON_BACKGROUND_COLOR,
276
- // Editable document
277
- dot: WORD_ICON_BACKGROUND_COLOR,
278
- doc: WORD_ICON_BACKGROUND_COLOR,
279
- docx: WORD_ICON_BACKGROUND_COLOR,
280
- dotx: WORD_ICON_BACKGROUND_COLOR,
281
- docm: WORD_ICON_BACKGROUND_COLOR,
282
- dotm: WORD_ICON_BACKGROUND_COLOR,
283
- odt: DOCUMENT_ICON_BACKGROUND_COLOR,
284
- pages: DOCUMENT_ICON_BACKGROUND_COLOR,
285
- // Portable document
286
- pdf: PDF_ICON_BACKGROUND_COLOR,
287
- // Presentation
288
- ppt: POWERPOINT_ICON_BACKGROUND_COLOR,
289
- pot: POWERPOINT_ICON_BACKGROUND_COLOR,
290
- pps: POWERPOINT_ICON_BACKGROUND_COLOR,
291
- pptx: POWERPOINT_ICON_BACKGROUND_COLOR,
292
- pptm: POWERPOINT_ICON_BACKGROUND_COLOR,
293
- potx: POWERPOINT_ICON_BACKGROUND_COLOR,
294
- potm: POWERPOINT_ICON_BACKGROUND_COLOR,
295
- ppam: POWERPOINT_ICON_BACKGROUND_COLOR,
296
- ppsx: POWERPOINT_ICON_BACKGROUND_COLOR,
297
- ppsm: POWERPOINT_ICON_BACKGROUND_COLOR,
298
- sldx: POWERPOINT_ICON_BACKGROUND_COLOR,
299
- sldm: POWERPOINT_ICON_BACKGROUND_COLOR,
300
- odp: PRESENTATION_BACKGROUND_COLOR,
301
- key: PRESENTATION_BACKGROUND_COLOR,
302
- // Spreadsheet
303
- xls: EXCEL_ICON_BACKGROUND_COLOR,
304
- xlsx: EXCEL_ICON_BACKGROUND_COLOR,
305
- csv: DEFAULT_ICON_BACKGROUND_COLOR,
306
- numbers: SPREADSHEET_ICON_BACKGROUND_COLOR,
307
- // Image
308
- bmp: IMAGE_ICON_BACKGROUND_COLOR,
309
- jpg: IMAGE_ICON_BACKGROUND_COLOR,
310
- jpeg: IMAGE_ICON_BACKGROUND_COLOR,
311
- heic: IMAGE_ICON_BACKGROUND_COLOR,
312
- png: IMAGE_ICON_BACKGROUND_COLOR,
313
- gif: IMAGE_ICON_BACKGROUND_COLOR,
314
- // Editable image
315
- psd: PRESENTATION_BACKGROUND_COLOR,
316
- ai: DOCUMENT_ICON_BACKGROUND_COLOR,
317
- // Vector graphic
318
- svg: VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR,
319
- svgz: VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR,
320
- ep: VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR,
321
- eps: VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR,
322
- sketch: VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR,
323
- // Audio
324
- mp3: AUDIO_ICON_BACKGROUND_COLOR,
325
- wav: AUDIO_ICON_BACKGROUND_COLOR,
326
- wma: AUDIO_ICON_BACKGROUND_COLOR,
327
- ogg: AUDIO_ICON_BACKGROUND_COLOR,
328
- // Video
329
- flv: VIDEO_ICON_BACKGROUND_COLOR,
330
- h264: VIDEO_ICON_BACKGROUND_COLOR,
331
- mov: VIDEO_ICON_BACKGROUND_COLOR,
332
- mp4: VIDEO_ICON_BACKGROUND_COLOR,
333
- mwv: VIDEO_ICON_BACKGROUND_COLOR,
334
- // Compressed:
335
- zip: COMPRESSED_ICON_BACKGROUND_COLOR,
336
- '7z': COMPRESSED_ICON_BACKGROUND_COLOR,
337
- rar: COMPRESSED_ICON_BACKGROUND_COLOR,
338
- // Data
339
- json: DATA_ICON_BACKGROUND_COLOR,
340
- yaml: DATA_ICON_BACKGROUND_COLOR,
341
- sql: DATA_ICON_BACKGROUND_COLOR,
342
- db: DATA_ICON_BACKGROUND_COLOR,
343
- dbf: DATA_ICON_BACKGROUND_COLOR,
344
- };
345
- function getIconBackgroundColorForFile(extension) {
346
- return (filetypeBackgroundColorTable[extension.toLowerCase()] ||
347
- DEFAULT_ICON_BACKGROUND_COLOR);
348
- }
349
-
350
- function getFileIcon(file) {
351
- const name = getIconName(file.icon);
352
- if (name) {
353
- return name;
354
- }
355
- const extension = getExtension(file);
356
- if (!extension) {
357
- return;
358
- }
359
- return getIconForFile(extension);
360
- }
361
- function getFileColor(file) {
362
- const color = getIconColor(file.icon, file.iconColor);
363
- if (color) {
364
- return color;
365
- }
366
- const extension = getExtension(file);
367
- if (!extension) {
368
- return;
369
- }
370
- return getIconFillColorForFile(extension);
371
- }
372
- function getFileBackgroundColor(file) {
373
- const backgroundColor = getIconBackgroundColor(file.icon, file.iconBackgroundColor);
374
- if (backgroundColor) {
375
- return backgroundColor;
376
- }
377
- const extension = getExtension(file);
378
- if (!extension) {
379
- return;
380
- }
381
- return getIconBackgroundColorForFile(extension);
382
- }
383
- function getFileExtensionTitle(file) {
384
- const name = getIconName(file.icon);
385
- if (name) {
386
- return name;
387
- }
388
- return getExtension(file);
389
- }
390
- function getExtension(file) {
391
- if (!file) {
392
- return;
393
- }
394
- return file.filename.split('.').pop();
395
- }
396
-
397
12
  const fileCss = ":host{--icon-background-color:rgb(var(--contrast-400));--icon-color:rgb(var(--contrast-1100))}";
398
13
 
399
14
  const CHIP_SET_TAG_NAME = 'limel-chip-set';
@@ -1 +1 @@
1
- {"file":"limel-file.entry.js","mappings":"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","names":[],"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.js","mappings":"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","names":[],"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}
@@ -1,14 +1,17 @@
1
1
  import { r as registerInstance, c as createEvent, h as h$1, g as getElement } from './index-232e9616.js';
2
2
  import { c as createCommonjsModule, a as commonjsGlobal } from './_commonjsHelpers-5ec8f9b7.js';
3
- import { k as keys$5, g as getTag$1, m as mapToArray$1, a as isBuffer, b as isTypedArray$1, c as isArguments$3, d as isPrototype$1, e as baseKeys$1, S as Set$2, s as setToArray$1, f as SetCache$1, h as cacheHas$1, i as isEqual$1 } from './isEqual-c5a636a4.js';
3
+ import { g as getTag$1, m as mapToArray$1, k as keys$5, a as isBuffer, c as isTypedArray$1, i as isArguments$3, d as isPrototype$1, e as baseKeys$1, f as Set$2, s as setToArray$1, h as SetCache$1, j as cacheHas$1 } from './_baseIsEqual-633b7929.js';
4
4
  import { i as isArray$4 } from './isArray-80298bc7.js';
5
5
  import { b as isArrayLike$1 } from './isArrayLike-385e0f31.js';
6
- import { g as getPrototype$1, t as toString$3, b as baseIteratee$1, a as get$3, p as pickBy, h as has$1, n as negate } from './pickBy-d359eb12.js';
6
+ import { t as toString$3, b as baseIteratee$1, g as get$3 } from './_baseIteratee-2b2723f9.js';
7
+ import { g as getPrototype$1, p as pickBy, h as has$1, n as negate } from './pickBy-240917e2.js';
8
+ import { i as isEqual$1 } from './isEqual-d8fb9edc.js';
7
9
  import { a as arrayMap$1 } from './identity-87aa3962.js';
8
10
  import { b as baseAssignValue$1 } from './_assignValue-fb2bf80a.js';
11
+ import { b as baseForOwn$1 } from './_baseForOwn-3dd6837f.js';
9
12
  import { b as baseGetTag$1 } from './isObject-c74e273c.js';
10
13
  import { i as isObjectLike$1 } from './isObjectLike-38996507.js';
11
- import { a as arrayIncludes$1, b as arrayIncludesWith$1, c as baseRest$1, d as baseFlatten$1, i as isArrayLikeObject$1 } from './_arrayIncludesWith-969bccda.js';
14
+ import { a as arrayIncludes$1, b as arrayIncludesWith$1, c as baseRest$1, d as baseFlatten$1, i as isArrayLikeObject$1 } from './_arrayIncludesWith-8b8a8b46.js';
12
15
  import { m as moment } from './moment-be8ab0fa.js';
13
16
  import { i as isMultiple } from './multiple-4beb2761.js';
14
17
  import { c as createRandomString } from './random-string-812b1c35.js';
@@ -579,55 +582,6 @@ function createCompounder(callback) {
579
582
  };
580
583
  }
581
584
 
582
- /**
583
- * Creates a base function for methods like `_.forIn` and `_.forOwn`.
584
- *
585
- * @private
586
- * @param {boolean} [fromRight] Specify iterating from right to left.
587
- * @returns {Function} Returns the new base function.
588
- */
589
- function createBaseFor$1(fromRight) {
590
- return function(object, iteratee, keysFunc) {
591
- var index = -1,
592
- iterable = Object(object),
593
- props = keysFunc(object),
594
- length = props.length;
595
-
596
- while (length--) {
597
- var key = props[fromRight ? length : ++index];
598
- if (iteratee(iterable[key], key, iterable) === false) {
599
- break;
600
- }
601
- }
602
- return object;
603
- };
604
- }
605
-
606
- /**
607
- * The base implementation of `baseForOwn` which iterates over `object`
608
- * properties returned by `keysFunc` and invokes `iteratee` for each property.
609
- * Iteratee functions may exit iteration early by explicitly returning `false`.
610
- *
611
- * @private
612
- * @param {Object} object The object to iterate over.
613
- * @param {Function} iteratee The function invoked per iteration.
614
- * @param {Function} keysFunc The function to get the keys of `object`.
615
- * @returns {Object} Returns `object`.
616
- */
617
- var baseFor$1 = createBaseFor$1();
618
-
619
- /**
620
- * The base implementation of `_.forOwn` without support for iteratee shorthands.
621
- *
622
- * @private
623
- * @param {Object} object The object to iterate over.
624
- * @param {Function} iteratee The function invoked per iteration.
625
- * @returns {Object} Returns `object`.
626
- */
627
- function baseForOwn$1(object, iteratee) {
628
- return object && baseFor$1(object, iteratee, keys$5);
629
- }
630
-
631
585
  /**
632
586
  * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array
633
587
  * of key-value pairs for `object` corresponding to the property names of `props`.