@limetech/lime-elements 37.4.1 → 37.5.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 (52) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/dist/cjs/lime-elements.cjs.js +1 -1
  3. package/dist/cjs/limel-chip_2.cjs.entry.js +34 -4
  4. package/dist/cjs/limel-chip_2.cjs.entry.js.map +1 -1
  5. package/dist/cjs/limel-circular-progress.cjs.entry.js +41 -0
  6. package/dist/cjs/limel-circular-progress.cjs.entry.js.map +1 -0
  7. package/dist/cjs/limel-file.cjs.entry.js +8 -1
  8. package/dist/cjs/limel-file.cjs.entry.js.map +1 -1
  9. package/dist/cjs/{limel-circular-progress_2.cjs.entry.js → limel-linear-progress.cjs.entry.js} +1 -34
  10. package/dist/cjs/limel-linear-progress.cjs.entry.js.map +1 -0
  11. package/dist/cjs/loader.cjs.js +1 -1
  12. package/dist/collection/components/chip/chip.css +80 -0
  13. package/dist/collection/components/chip/chip.js +57 -2
  14. package/dist/collection/components/chip/chip.js.map +1 -1
  15. package/dist/collection/components/chip-set/chip-set.js +43 -1
  16. package/dist/collection/components/chip-set/chip-set.js.map +1 -1
  17. package/dist/collection/components/file/file.js +8 -1
  18. package/dist/collection/components/file/file.js.map +1 -1
  19. package/dist/collection/style/color-palette-extended.css +5 -0
  20. package/dist/esm/lime-elements.js +1 -1
  21. package/dist/esm/limel-chip_2.entry.js +34 -4
  22. package/dist/esm/limel-chip_2.entry.js.map +1 -1
  23. package/dist/esm/limel-circular-progress.entry.js +37 -0
  24. package/dist/esm/limel-circular-progress.entry.js.map +1 -0
  25. package/dist/esm/limel-file.entry.js +8 -1
  26. package/dist/esm/limel-file.entry.js.map +1 -1
  27. package/dist/esm/{limel-circular-progress_2.entry.js → limel-linear-progress.entry.js} +2 -34
  28. package/dist/esm/limel-linear-progress.entry.js.map +1 -0
  29. package/dist/esm/loader.js +1 -1
  30. package/dist/lime-elements/lime-elements.esm.js +1 -1
  31. package/dist/lime-elements/lime-elements.esm.js.map +1 -1
  32. package/dist/lime-elements/{p-f6288a1d.entry.js → p-67426b7b.entry.js} +5 -5
  33. package/dist/lime-elements/p-67426b7b.entry.js.map +1 -0
  34. package/dist/lime-elements/p-8f4d4900.entry.js +2 -0
  35. package/dist/lime-elements/p-8f4d4900.entry.js.map +1 -0
  36. package/dist/lime-elements/p-b106a23e.entry.js +2 -0
  37. package/dist/lime-elements/p-b106a23e.entry.js.map +1 -0
  38. package/dist/lime-elements/p-d5557031.entry.js +2 -0
  39. package/dist/lime-elements/p-d5557031.entry.js.map +1 -0
  40. package/dist/lime-elements/style/color-palette-extended.css +5 -0
  41. package/dist/types/components/chip/chip.d.ts +16 -0
  42. package/dist/types/components/chip-set/chip-set.d.ts +30 -0
  43. package/dist/types/components/file/file.d.ts +1 -0
  44. package/dist/types/components.d.ts +124 -0
  45. package/package.json +2 -2
  46. package/dist/cjs/limel-circular-progress_2.cjs.entry.js.map +0 -1
  47. package/dist/esm/limel-circular-progress_2.entry.js.map +0 -1
  48. package/dist/lime-elements/p-b851bdfb.entry.js +0 -2
  49. package/dist/lime-elements/p-b851bdfb.entry.js.map +0 -1
  50. package/dist/lime-elements/p-f6288a1d.entry.js.map +0 -1
  51. package/dist/lime-elements/p-fdae60a1.entry.js +0 -2
  52. package/dist/lime-elements/p-fdae60a1.entry.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"names":["DEFAULT_ICON","CALENDAR_ICON","EMAIL_ICON","HTML_ICON","TEXT_ICON","EXCEL_ICON","WORD_ICON","POWERPOINT_ICON","IMAGE_ICON","PHOTO_ICON","VECTOR_GRAPHIC_ICON","PRESENTATION_ICON","DOCUMENT_ICON","SPREADSHEET_ICON","AUDIO_ICON","VIDEO_ICON","COMPRESSED_ICON","MESSAGE_ICON","DATA_ICON","filetypeIconTable","msg","ics","ical","icalendar","ifb","email","eml","oft","ost","emlx","html","xml","txt","rtf","dot","doc","docx","dotx","docm","dotm","odt","pages","pdf","ppt","pot","pps","pptx","pptm","potx","potm","ppam","ppsx","ppsm","sldx","sldm","odp","key","xls","xlsx","csv","numbers","jpg","jpeg","heic","bmp","png","gif","psd","ai","svg","svgz","ep","eps","sketch","mp3","wav","wma","ogg","avi","flv","h264","mov","mp4","mwv","zip","rar","json","yaml","sql","db","dbf","getIconForFile","extension","toLowerCase","DEFAULT_ICON_FILL_COLOR","CALENDAR_ICON_FILL_COLOR","EMAIL_ICON_FILL_COLOR","HTML_ICON_FILL_COLOR","TEXT_ICON_FILL_COLOR","EXCEL_ICON_FILL_COLOR","POWERPOINT_ICON_FILL_COLOR","WORD_ICON_FILL_COLOR","IMAGE_ICON_FILL_COLOR","VECTOR_GRAPHIC_FILL_COLOR","PRESENTATION_ICON_FILL_COLOR","DOCUMENT_ICON_FILL_COLOR","SPREADSHEET_ICON_FILL_COLOR","AUDIO_ICON_FILL_COLOR","VIDEO_ICON_FILL_COLOR","COMPRESSED_ICON_FILL_COLOR","MESSAGE_ICON_FILL_COLOR","PDF_ICON_FILL_COLOR","DATA_ICON_FILL_COLOR","filetypeFillColorTable","getIconFillColorForFile","DEFAULT_ICON_BACKGROUND_COLOR","CALENDAR_ICON_BACKGROUND_COLOR","EMAIL_ICON_BACKGROUND_COLOR","HTML_ICON_BACKGROUND_COLOR","TEXT_ICON_BACKGROUND_COLOR","EXCEL_ICON_BACKGROUND_COLOR","POWERPOINT_ICON_BACKGROUND_COLOR","WORD_ICON_BACKGROUND_COLOR","IMAGE_ICON_BACKGROUND_COLOR","VECTOR_GRAPHIC_ICON_BACKGROUND_COLOR","PRESENTATION_BACKGROUND_COLOR","DOCUMENT_ICON_BACKGROUND_COLOR","SPREADSHEET_ICON_BACKGROUND_COLOR","AUDIO_ICON_BACKGROUND_COLOR","VIDEO_ICON_BACKGROUND_COLOR","COMPRESSED_ICON_BACKGROUND_COLOR","MESSAGE_ICON_BACKGROUND_COLOR","PDF_ICON_BACKGROUND_COLOR","DATA_ICON_BACKGROUND_COLOR","filetypeBackgroundColorTable","getIconBackgroundColorForFile","getFileIcon","file","name","getIconName","icon","getExtension","getFileColor","color","getIconColor","iconColor","getFileBackgroundColor","backgroundColor","getIconBackgroundColor","iconBackgroundColor","getFileExtensionTitle","filename","split","pop","fileCss","CHIP_SET_TAG_NAME","DEFAULT_FILE_CHIP","id","text","removable","File","constructor","hostRef","this","fileInputId","createRandomString","handleDragEnter","event","isDraggingOverDropZone","preventAndStop","handleDragLeave","handleFileDrop","dataTransfer","handleFile","files","handleFileSelection","bind","handleFileChange","handleChipSetChange","handleKeyDown","handleKeyUp","handleChipInteract","connectedCallback","initialize","componentDidLoad","fileInput","element","shadowRoot","getElementById","chipSet","querySelector","mdcTextField","MDCTextField","disconnectedCallback","destroy","render","h","hidden","onChange","type","accept","disabled","readonly","class","invalid","label","leadingIcon","language","onClick","onInteract","onKeyDown","onKeyUp","required","value","chipArray","title","getTranslation","onDragEnter","onDragOver","onDragLeave","onDrop","href","code","preventDefault","stopPropagation","click","length","limeFile","contentType","size","fileContent","change","emit","blur","valid","detail","interact","translate","get"],"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.handleFileSelection}\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 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"],"mappings":"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"}