@limetech/lime-elements 37.18.0 → 37.19.0-dev.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 (54) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/cjs/file-metadata-062e1135.js +58 -0
  3. package/dist/cjs/file-metadata-062e1135.js.map +1 -0
  4. package/dist/{esm/file-metadata-9a4780e2.js → cjs/icons-8ecb9740.js} +36 -50
  5. package/dist/cjs/icons-8ecb9740.js.map +1 -0
  6. package/dist/cjs/index.cjs.js +6 -0
  7. package/dist/cjs/index.cjs.js.map +1 -1
  8. package/dist/cjs/limel-file-dropzone_2.cjs.entry.js +2 -1
  9. package/dist/cjs/limel-file-dropzone_2.cjs.entry.js.map +1 -1
  10. package/dist/cjs/limel-file.cjs.entry.js +2 -1
  11. package/dist/cjs/limel-file.cjs.entry.js.map +1 -1
  12. package/dist/collection/components/file/icon-background-colors.js +11 -0
  13. package/dist/collection/components/file/icon-background-colors.js.map +1 -1
  14. package/dist/collection/components/file/icon-fill-colors.js +11 -0
  15. package/dist/collection/components/file/icon-fill-colors.js.map +1 -1
  16. package/dist/collection/components/file/icons.js +9 -0
  17. package/dist/collection/components/file/icons.js.map +1 -1
  18. package/dist/collection/components/file/index.js +4 -0
  19. package/dist/collection/components/file/index.js.map +1 -0
  20. package/dist/collection/interface.js +3 -2
  21. package/dist/collection/interface.js.map +1 -1
  22. package/dist/esm/file-metadata-f5ba6228.js +53 -0
  23. package/dist/esm/file-metadata-f5ba6228.js.map +1 -0
  24. package/dist/{cjs/file-metadata-f259bba5.js → esm/icons-d4830de7.js} +33 -56
  25. package/dist/esm/icons-d4830de7.js.map +1 -0
  26. package/dist/esm/index.js +2 -0
  27. package/dist/esm/index.js.map +1 -1
  28. package/dist/esm/limel-file-dropzone_2.entry.js +2 -1
  29. package/dist/esm/limel-file-dropzone_2.entry.js.map +1 -1
  30. package/dist/esm/limel-file.entry.js +2 -1
  31. package/dist/esm/limel-file.entry.js.map +1 -1
  32. package/dist/lime-elements/index.esm.js +1 -1
  33. package/dist/lime-elements/index.esm.js.map +1 -1
  34. package/dist/lime-elements/lime-elements.esm.js +1 -1
  35. package/dist/lime-elements/p-35e7a41b.js +2 -0
  36. package/dist/lime-elements/p-35e7a41b.js.map +1 -0
  37. package/dist/lime-elements/p-48b9449e.js +2 -0
  38. package/dist/lime-elements/p-48b9449e.js.map +1 -0
  39. package/dist/lime-elements/p-6c36f090.entry.js +2 -0
  40. package/dist/lime-elements/{p-fc91537a.entry.js.map → p-6c36f090.entry.js.map} +1 -1
  41. package/dist/lime-elements/p-a1ffb47f.entry.js +2 -0
  42. package/dist/lime-elements/{p-c9ffb1b4.entry.js.map → p-a1ffb47f.entry.js.map} +1 -1
  43. package/dist/types/components/file/icon-background-colors.d.ts +11 -0
  44. package/dist/types/components/file/icon-fill-colors.d.ts +11 -0
  45. package/dist/types/components/file/icons.d.ts +9 -0
  46. package/dist/types/components/file/index.d.ts +4 -0
  47. package/dist/types/interface.d.ts +3 -2
  48. package/package.json +2 -2
  49. package/dist/cjs/file-metadata-f259bba5.js.map +0 -1
  50. package/dist/esm/file-metadata-9a4780e2.js.map +0 -1
  51. package/dist/lime-elements/p-8bc1584b.js +0 -2
  52. package/dist/lime-elements/p-8bc1584b.js.map +0 -1
  53. package/dist/lime-elements/p-c9ffb1b4.entry.js +0 -2
  54. package/dist/lime-elements/p-fc91537a.entry.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"names":["arrayAggregator","array","setter","iteratee","accumulator","index","length","value","createBaseEach","eachFunc","fromRight","collection","isArrayLike","iterable","Object","baseEach","baseForOwn","baseAggregator","key","createAggregator","initializer","func","isArray","baseIteratee","partition","result","push","createFileInfo","file","limeFile","id","crypto","randomUUID","filename","name","contentType","type","size","fileContent","icon","getFileIcon","title","getFileExtensionTitle","color","getFileColor","backgroundColor","getFileBackgroundColor","isTypeAccepted","accept","undefined","acceptList","split","map","raw","trim","some","acceptedType","endsWith","baseType","startsWith","fileType","fileDropzoneCss","FileDropzone","this","renderOnDragLayout","disabled","hasFileToDrop","h","class","renderText","renderHelperText","text","helperText","handleDrop","event","stopPropagation","preventDefault","files","Array","from","dataTransfer","fileInfos","acceptedFileInfos","rejectedFileInfos","filesSelected","emit","filesRejected","handleDragOver","handleDragLeave","render","Host","onDrop","onDragOver","onDragLeave","FileInput","fileInputId","createRandomString","handleClick","triggerFileDialog","handleKeyUp","code","handleFileChange","fileInput","componentDidLoad","element","shadowRoot","getElementById","onClick","onKeyUp","onKeyDown","handleKeyDown","hidden","onChange","multiple","click"],"sources":["./node_modules/lodash-es/_arrayAggregator.js","./node_modules/lodash-es/_createBaseEach.js","./node_modules/lodash-es/_baseEach.js","./node_modules/lodash-es/_baseAggregator.js","./node_modules/lodash-es/_createAggregator.js","./node_modules/lodash-es/partition.js","./src/util/files.ts","./src/components/file-dropzone/file-dropzone.scss?tag=limel-file-dropzone&encapsulation=shadow","./src/components/file-dropzone/file-dropzone.tsx","./src/components/file-input/file-input.tsx"],"sourcesContent":["/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nexport default arrayAggregator;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import baseEach from './_baseEach.js';\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nexport default baseAggregator;\n","import arrayAggregator from './_arrayAggregator.js';\nimport baseAggregator from './_baseAggregator.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nexport default createAggregator;\n","import createAggregator from './_createAggregator.js';\n\n/**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\nvar partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n}, function() { return [[], []]; });\n\nexport default partition;\n","import { FileInfo } from '../global/shared-types/file.types';\nimport {\n getFileBackgroundColor,\n getFileColor,\n getFileExtensionTitle,\n getFileIcon,\n} from './file-metadata';\n\nexport function createFileInfo(file: File): FileInfo {\n const limeFile: FileInfo = {\n id: crypto.randomUUID(),\n filename: file.name,\n contentType: file.type,\n size: file.size,\n fileContent: file,\n };\n limeFile.icon = {\n name: getFileIcon(limeFile),\n title: getFileExtensionTitle(limeFile),\n color: getFileColor(limeFile),\n backgroundColor: getFileBackgroundColor(limeFile),\n };\n\n return limeFile;\n}\n\nexport function isTypeAccepted(file: FileInfo, accept?: string): boolean {\n if (accept === undefined || accept === '*') {\n return true;\n }\n\n const acceptList = accept.split(',').map((raw) => raw.trim());\n\n return acceptList.some((acceptedType: string) => {\n if (acceptedType === file.contentType) {\n return true;\n }\n\n if (acceptedType.endsWith('/*')) {\n const baseType = acceptedType.split('/')[0];\n\n return file.contentType.startsWith(`${baseType}/`);\n }\n\n if (acceptedType.startsWith('.')) {\n const fileType = acceptedType.split('.')[1];\n\n return file.contentType.endsWith(`/${fileType}`);\n }\n });\n}\n",":host(limel-file-dropzone) {\n display: block;\n position: relative;\n}\n\n.has-file-to-drop {\n animation: display-drop-zone 0.6s ease forwards;\n\n box-sizing: border-box;\n isolation: isolate;\n z-index: 1;\n position: absolute;\n inset: 0.25rem;\n\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 0.5rem;\n\n color: rgb(var(--contrast-700));\n\n border: 0.125rem dashed rgb(var(--color-cyan-light));\n border-radius: 0.75rem;\n}\n\n.text-helpertext {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n}\n\n.icon {\n width: clamp(2rem, 5vh, 7rem);\n}\n\n.text {\n font-size: clamp(1rem, 2vh, 1.75rem);\n}\n\n.helper-text {\n font-size: clamp(0.75rem, 1.5vh, 1rem);\n}\n\n@keyframes display-drop-zone {\n 0% {\n background-color: rgb(var(--contrast-1100), 0);\n backdrop-filter: blur(0);\n -webkit-backdrop-filter: blur(0);\n scale: 0.9;\n opacity: 0;\n }\n\n 50% {\n scale: 1;\n opacity: 1;\n }\n\n 100% {\n background-color: rgb(var(--contrast-1100), 0.8);\n backdrop-filter: blur(0.25rem);\n -webkit-backdrop-filter: blur(0.25rem);\n }\n}\n","import {\n Component,\n h,\n Event,\n EventEmitter,\n Host,\n Prop,\n State,\n} from '@stencil/core';\nimport { FileInfo } from '../../global/shared-types/file.types';\nimport { createFileInfo, isTypeAccepted } from '../../util/files';\nimport { partition } from 'lodash-es';\n\n/**\n * This component enables you to seamlessly convert any region of the user interface into\n * a file dropzone area, just by wrapping it inside the `limel-file-dropzone`.\n *\n * The file dropzone can then be used to allow end-users to upload files\n * by dragging and dropping them into the specified area, for example to trigger an upload process.\n *\n * After receiving the files, the component emits a `filesSelected` event. For unsupported\n * files (specified with the `accept` prop) a `filesRejected` event will be emitted.\n *\n * The event detail would be an array of `FileInfo` objects,\n * each representing a file dropped into the dropzone.\n *\n * @exampleComponent limel-example-file-dropzone\n * @exampleComponent limel-example-file-dropzone-type-filtering\n * @private\n */\n@Component({\n tag: 'limel-file-dropzone',\n shadow: true,\n styleUrl: 'file-dropzone.scss',\n})\nexport class FileDropzone {\n /**\n * Specifies the types of files that the dropzone will accept. By default, all file types are accepted.\n *\n * For media files, formats can be specified using: `audio/*`, `video/*`, `image/*`.\n * Unique file type specifiers can also be used, for example: `.jpg`, `.pdf`.\n * A comma-separated list of file extensions or MIME types is also acceptable, e.g., `image/png, image/jpeg` or\n * `.png, .jpg, .jpeg`.\n *\n * @see [HTML attribute: accept](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept) for more\n * details.\n */\n @Prop({ reflect: true })\n public accept: string = '*';\n\n /**\n * Set to `true` to disable the file dropzone.\n */\n @Prop()\n public disabled: boolean = false;\n\n /**\n * Is displayed when the user is dragging a file over the dropzone.\n * A suitable text could for instance be \"Drop your files here\".\n */\n @Prop()\n public text: string;\n\n /**\n * Is displayed to provide supplementary information to the end users,\n * for instance, which filetypes or file sizes are accepted.\n */\n @Prop()\n public helperText?: string = '';\n\n /**\n * Sets to true when there is a file to drop\n */\n @State()\n private hasFileToDrop: boolean = false;\n\n /**\n * Emitted when files are selected\n */\n @Event()\n filesSelected: EventEmitter<FileInfo[]>;\n\n /**\n * Emitted when files are selected but do not conform with the `accept` property specifications.\n * This can happen when the file types or formats of the selected files are not among the ones allowed by the dropzone,\n * as defined by the `accept` property.\n *\n * @see `accept` for details on how to specify acceptable file types.\n */\n @Event()\n filesRejected: EventEmitter<FileInfo[]>;\n\n public render() {\n return (\n <Host\n onDrop={this.handleDrop}\n onDragOver={this.handleDragOver}\n onDragLeave={this.handleDragLeave}\n >\n <slot />\n {this.renderOnDragLayout()}\n </Host>\n );\n }\n\n private renderOnDragLayout = () => {\n if (this.disabled || !this.hasFileToDrop) {\n return;\n }\n\n return (\n <div class=\"has-file-to-drop\">\n <limel-icon class=\"icon\" name=\"upload_2\" />\n <div class=\"text-helpertext\">\n {this.renderText()}\n {this.renderHelperText()}\n </div>\n </div>\n );\n };\n\n private renderText = () => {\n if (!this.text) {\n return;\n }\n\n return <span class=\"text\">{this.text}</span>;\n };\n\n private renderHelperText = () => {\n if (!this.helperText) {\n return;\n }\n\n return <span class=\"helper-text\">{this.helperText}</span>;\n };\n\n private handleDrop = (event: DragEvent) => {\n event.stopPropagation();\n event.preventDefault();\n this.hasFileToDrop = false;\n\n if (this.disabled) {\n return;\n }\n\n const files: File[] = Array.from(event.dataTransfer.files);\n const fileInfos: FileInfo[] = files.map(createFileInfo);\n\n const [acceptedFileInfos, rejectedFileInfos] = partition(\n fileInfos,\n (file) => isTypeAccepted(file, this.accept),\n );\n\n if (acceptedFileInfos.length > 0) {\n this.filesSelected.emit(acceptedFileInfos);\n }\n\n if (rejectedFileInfos.length > 0) {\n this.filesRejected.emit(rejectedFileInfos);\n }\n };\n\n private handleDragOver = (event: DragEvent) => {\n this.hasFileToDrop = true;\n event.preventDefault();\n };\n\n private handleDragLeave = (event: DragEvent) => {\n this.hasFileToDrop = false;\n event.preventDefault();\n };\n}\n","import {\n h,\n Event,\n EventEmitter,\n Host,\n Component,\n Element,\n Prop,\n} from '@stencil/core';\nimport { createRandomString } from '../../util/random-string';\nimport { FileInfo } from '../../global/shared-types/file.types';\nimport { createFileInfo } from '../../util/files';\n\n/**\n * This component enables you to seamlessly transform any other clickable component that\n * generates a `click` event into a file input selector.\n *\n * To use it, just wrap any clickable component inside the `limel-file-input` component.\n * Upon reception of the `click` event this component will open the native file selection\n * dialog.\n *\n * After receiving the files, the component emits a `filesSelected` event.\n *\n * The event detail would be an array of `FileInfo` objects,\n * each representing a file dropped into the dropzone.\n *\n * @exampleComponent limel-example-file-input\n * @exampleComponent limel-example-file-input-type-filtering\n * @private\n */\n@Component({\n tag: 'limel-file-input',\n shadow: true,\n})\nexport class FileInput {\n /**\n * Specifies the types of files that the dropzone will accept. By default, all file types are accepted.\n *\n * For media files, formats can be specified using: `audio/*`, `video/*`, `image/*`.\n * Unique file type specifiers can also be used, for example: `.jpg`, `.pdf`.\n * A comma-separated list of file extensions or MIME types is also acceptable, e.g., `image/png, image/jpeg` or\n * `.png, .jpg, .jpeg`.\n *\n * @see [HTML attribute: accept](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept) for more\n * details.\n */\n @Prop({ reflect: true })\n public accept: string = '*';\n\n /**\n * Set to `true` to disable file input selection.\n */\n @Prop({ reflect: true })\n public disabled: boolean = false;\n\n /**\n * Set to `true` to enable selection of multiple files\n */\n @Prop({ reflect: true })\n public multiple: boolean = false;\n\n /**\n * Emitted when files are selected\n */\n @Event()\n filesSelected: EventEmitter<FileInfo[]>;\n\n @Element()\n private element: HTMLLimelFileElement;\n\n private fileInput: HTMLInputElement;\n private fileInputId = createRandomString();\n\n public componentDidLoad() {\n this.fileInput = this.element.shadowRoot.getElementById(\n this.fileInputId,\n ) as HTMLInputElement;\n }\n\n public render() {\n return (\n <Host\n onClick={this.handleClick}\n onKeyUp={this.handleKeyUp}\n onKeyDown={this.handleKeyDown}\n >\n <input\n hidden={true}\n id={this.fileInputId}\n onChange={this.handleFileChange}\n type=\"file\"\n accept={this.accept}\n disabled={this.disabled}\n multiple={this.multiple}\n />\n <slot />\n </Host>\n );\n }\n\n private handleClick = (event: Event) => {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n\n return;\n }\n\n this.triggerFileDialog();\n\n event.stopPropagation();\n };\n\n private handleKeyUp = (event: KeyboardEvent) => {\n event.stopPropagation();\n event.preventDefault();\n\n if (event.code === 'Enter') {\n this.triggerFileDialog();\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 triggerFileDialog() {\n this.fileInput.click();\n }\n\n private handleFileChange = (event: Event) => {\n const files = Array.from(this.fileInput.files);\n if (files.length > 0) {\n event.stopPropagation();\n this.filesSelected.emit(files.map(createFileInfo));\n this.fileInput.value = '';\n }\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["arrayAggregator","array","setter","iteratee","accumulator","index","length","value","createBaseEach","eachFunc","fromRight","collection","isArrayLike","iterable","Object","baseEach","baseForOwn","baseAggregator","key","createAggregator","initializer","func","isArray","baseIteratee","partition","result","push","createFileInfo","file","limeFile","id","crypto","randomUUID","filename","name","contentType","type","size","fileContent","icon","getFileIcon","title","getFileExtensionTitle","color","getFileColor","backgroundColor","getFileBackgroundColor","isTypeAccepted","accept","undefined","acceptList","split","map","raw","trim","some","acceptedType","endsWith","baseType","startsWith","fileType","fileDropzoneCss","FileDropzone","this","renderOnDragLayout","disabled","hasFileToDrop","h","class","renderText","renderHelperText","text","helperText","handleDrop","event","stopPropagation","preventDefault","files","Array","from","dataTransfer","fileInfos","acceptedFileInfos","rejectedFileInfos","filesSelected","emit","filesRejected","handleDragOver","handleDragLeave","render","Host","onDrop","onDragOver","onDragLeave","FileInput","fileInputId","createRandomString","handleClick","triggerFileDialog","handleKeyUp","code","handleFileChange","fileInput","componentDidLoad","element","shadowRoot","getElementById","onClick","onKeyUp","onKeyDown","handleKeyDown","hidden","onChange","multiple","click"],"sources":["./node_modules/lodash-es/_arrayAggregator.js","./node_modules/lodash-es/_createBaseEach.js","./node_modules/lodash-es/_baseEach.js","./node_modules/lodash-es/_baseAggregator.js","./node_modules/lodash-es/_createAggregator.js","./node_modules/lodash-es/partition.js","./src/util/files.ts","./src/components/file-dropzone/file-dropzone.scss?tag=limel-file-dropzone&encapsulation=shadow","./src/components/file-dropzone/file-dropzone.tsx","./src/components/file-input/file-input.tsx"],"sourcesContent":["/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nexport default arrayAggregator;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import baseEach from './_baseEach.js';\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nexport default baseAggregator;\n","import arrayAggregator from './_arrayAggregator.js';\nimport baseAggregator from './_baseAggregator.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nexport default createAggregator;\n","import createAggregator from './_createAggregator.js';\n\n/**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\nvar partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n}, function() { return [[], []]; });\n\nexport default partition;\n","import { FileInfo } from '../global/shared-types/file.types';\nimport {\n getFileBackgroundColor,\n getFileColor,\n getFileExtensionTitle,\n getFileIcon,\n} from './file-metadata';\n\nexport function createFileInfo(file: File): FileInfo {\n const limeFile: FileInfo = {\n id: crypto.randomUUID(),\n filename: file.name,\n contentType: file.type,\n size: file.size,\n fileContent: file,\n };\n limeFile.icon = {\n name: getFileIcon(limeFile),\n title: getFileExtensionTitle(limeFile),\n color: getFileColor(limeFile),\n backgroundColor: getFileBackgroundColor(limeFile),\n };\n\n return limeFile;\n}\n\nexport function isTypeAccepted(file: FileInfo, accept?: string): boolean {\n if (accept === undefined || accept === '*') {\n return true;\n }\n\n const acceptList = accept.split(',').map((raw) => raw.trim());\n\n return acceptList.some((acceptedType: string) => {\n if (acceptedType === file.contentType) {\n return true;\n }\n\n if (acceptedType.endsWith('/*')) {\n const baseType = acceptedType.split('/')[0];\n\n return file.contentType.startsWith(`${baseType}/`);\n }\n\n if (acceptedType.startsWith('.')) {\n const fileType = acceptedType.split('.')[1];\n\n return file.contentType.endsWith(`/${fileType}`);\n }\n });\n}\n",":host(limel-file-dropzone) {\n display: block;\n position: relative;\n}\n\n.has-file-to-drop {\n animation: display-drop-zone 0.6s ease forwards;\n\n box-sizing: border-box;\n isolation: isolate;\n z-index: 1;\n position: absolute;\n inset: 0.25rem;\n\n overflow: hidden;\n display: flex;\n justify-content: center;\n align-items: center;\n gap: 0.5rem;\n\n color: rgb(var(--contrast-700));\n\n border: 0.125rem dashed rgb(var(--color-cyan-light));\n border-radius: 0.75rem;\n}\n\n.text-helpertext {\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n}\n\n.icon {\n width: clamp(2rem, 5vh, 7rem);\n}\n\n.text {\n font-size: clamp(1rem, 2vh, 1.75rem);\n}\n\n.helper-text {\n font-size: clamp(0.75rem, 1.5vh, 1rem);\n}\n\n@keyframes display-drop-zone {\n 0% {\n background-color: rgb(var(--contrast-1100), 0);\n backdrop-filter: blur(0);\n -webkit-backdrop-filter: blur(0);\n scale: 0.9;\n opacity: 0;\n }\n\n 50% {\n scale: 1;\n opacity: 1;\n }\n\n 100% {\n background-color: rgb(var(--contrast-1100), 0.8);\n backdrop-filter: blur(0.25rem);\n -webkit-backdrop-filter: blur(0.25rem);\n }\n}\n","import {\n Component,\n h,\n Event,\n EventEmitter,\n Host,\n Prop,\n State,\n} from '@stencil/core';\nimport { FileInfo } from '../../global/shared-types/file.types';\nimport { createFileInfo, isTypeAccepted } from '../../util/files';\nimport { partition } from 'lodash-es';\n\n/**\n * This component enables you to seamlessly convert any region of the user interface into\n * a file dropzone area, just by wrapping it inside the `limel-file-dropzone`.\n *\n * The file dropzone can then be used to allow end-users to upload files\n * by dragging and dropping them into the specified area, for example to trigger an upload process.\n *\n * After receiving the files, the component emits a `filesSelected` event. For unsupported\n * files (specified with the `accept` prop) a `filesRejected` event will be emitted.\n *\n * The event detail would be an array of `FileInfo` objects,\n * each representing a file dropped into the dropzone.\n *\n * @exampleComponent limel-example-file-dropzone\n * @exampleComponent limel-example-file-dropzone-type-filtering\n * @private\n */\n@Component({\n tag: 'limel-file-dropzone',\n shadow: true,\n styleUrl: 'file-dropzone.scss',\n})\nexport class FileDropzone {\n /**\n * Specifies the types of files that the dropzone will accept. By default, all file types are accepted.\n *\n * For media files, formats can be specified using: `audio/*`, `video/*`, `image/*`.\n * Unique file type specifiers can also be used, for example: `.jpg`, `.pdf`.\n * A comma-separated list of file extensions or MIME types is also acceptable, e.g., `image/png, image/jpeg` or\n * `.png, .jpg, .jpeg`.\n *\n * @see [HTML attribute: accept](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept) for more\n * details.\n */\n @Prop({ reflect: true })\n public accept: string = '*';\n\n /**\n * Set to `true` to disable the file dropzone.\n */\n @Prop()\n public disabled: boolean = false;\n\n /**\n * Is displayed when the user is dragging a file over the dropzone.\n * A suitable text could for instance be \"Drop your files here\".\n */\n @Prop()\n public text: string;\n\n /**\n * Is displayed to provide supplementary information to the end users,\n * for instance, which filetypes or file sizes are accepted.\n */\n @Prop()\n public helperText?: string = '';\n\n /**\n * Sets to true when there is a file to drop\n */\n @State()\n private hasFileToDrop: boolean = false;\n\n /**\n * Emitted when files are selected\n */\n @Event()\n filesSelected: EventEmitter<FileInfo[]>;\n\n /**\n * Emitted when files are selected but do not conform with the `accept` property specifications.\n * This can happen when the file types or formats of the selected files are not among the ones allowed by the dropzone,\n * as defined by the `accept` property.\n *\n * @see `accept` for details on how to specify acceptable file types.\n */\n @Event()\n filesRejected: EventEmitter<FileInfo[]>;\n\n public render() {\n return (\n <Host\n onDrop={this.handleDrop}\n onDragOver={this.handleDragOver}\n onDragLeave={this.handleDragLeave}\n >\n <slot />\n {this.renderOnDragLayout()}\n </Host>\n );\n }\n\n private renderOnDragLayout = () => {\n if (this.disabled || !this.hasFileToDrop) {\n return;\n }\n\n return (\n <div class=\"has-file-to-drop\">\n <limel-icon class=\"icon\" name=\"upload_2\" />\n <div class=\"text-helpertext\">\n {this.renderText()}\n {this.renderHelperText()}\n </div>\n </div>\n );\n };\n\n private renderText = () => {\n if (!this.text) {\n return;\n }\n\n return <span class=\"text\">{this.text}</span>;\n };\n\n private renderHelperText = () => {\n if (!this.helperText) {\n return;\n }\n\n return <span class=\"helper-text\">{this.helperText}</span>;\n };\n\n private handleDrop = (event: DragEvent) => {\n event.stopPropagation();\n event.preventDefault();\n this.hasFileToDrop = false;\n\n if (this.disabled) {\n return;\n }\n\n const files: File[] = Array.from(event.dataTransfer.files);\n const fileInfos: FileInfo[] = files.map(createFileInfo);\n\n const [acceptedFileInfos, rejectedFileInfos] = partition(\n fileInfos,\n (file) => isTypeAccepted(file, this.accept),\n );\n\n if (acceptedFileInfos.length > 0) {\n this.filesSelected.emit(acceptedFileInfos);\n }\n\n if (rejectedFileInfos.length > 0) {\n this.filesRejected.emit(rejectedFileInfos);\n }\n };\n\n private handleDragOver = (event: DragEvent) => {\n this.hasFileToDrop = true;\n event.preventDefault();\n };\n\n private handleDragLeave = (event: DragEvent) => {\n this.hasFileToDrop = false;\n event.preventDefault();\n };\n}\n","import {\n h,\n Event,\n EventEmitter,\n Host,\n Component,\n Element,\n Prop,\n} from '@stencil/core';\nimport { createRandomString } from '../../util/random-string';\nimport { FileInfo } from '../../global/shared-types/file.types';\nimport { createFileInfo } from '../../util/files';\n\n/**\n * This component enables you to seamlessly transform any other clickable component that\n * generates a `click` event into a file input selector.\n *\n * To use it, just wrap any clickable component inside the `limel-file-input` component.\n * Upon reception of the `click` event this component will open the native file selection\n * dialog.\n *\n * After receiving the files, the component emits a `filesSelected` event.\n *\n * The event detail would be an array of `FileInfo` objects,\n * each representing a file dropped into the dropzone.\n *\n * @exampleComponent limel-example-file-input\n * @exampleComponent limel-example-file-input-type-filtering\n * @private\n */\n@Component({\n tag: 'limel-file-input',\n shadow: true,\n})\nexport class FileInput {\n /**\n * Specifies the types of files that the dropzone will accept. By default, all file types are accepted.\n *\n * For media files, formats can be specified using: `audio/*`, `video/*`, `image/*`.\n * Unique file type specifiers can also be used, for example: `.jpg`, `.pdf`.\n * A comma-separated list of file extensions or MIME types is also acceptable, e.g., `image/png, image/jpeg` or\n * `.png, .jpg, .jpeg`.\n *\n * @see [HTML attribute: accept](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/accept) for more\n * details.\n */\n @Prop({ reflect: true })\n public accept: string = '*';\n\n /**\n * Set to `true` to disable file input selection.\n */\n @Prop({ reflect: true })\n public disabled: boolean = false;\n\n /**\n * Set to `true` to enable selection of multiple files\n */\n @Prop({ reflect: true })\n public multiple: boolean = false;\n\n /**\n * Emitted when files are selected\n */\n @Event()\n filesSelected: EventEmitter<FileInfo[]>;\n\n @Element()\n private element: HTMLLimelFileElement;\n\n private fileInput: HTMLInputElement;\n private fileInputId = createRandomString();\n\n public componentDidLoad() {\n this.fileInput = this.element.shadowRoot.getElementById(\n this.fileInputId,\n ) as HTMLInputElement;\n }\n\n public render() {\n return (\n <Host\n onClick={this.handleClick}\n onKeyUp={this.handleKeyUp}\n onKeyDown={this.handleKeyDown}\n >\n <input\n hidden={true}\n id={this.fileInputId}\n onChange={this.handleFileChange}\n type=\"file\"\n accept={this.accept}\n disabled={this.disabled}\n multiple={this.multiple}\n />\n <slot />\n </Host>\n );\n }\n\n private handleClick = (event: Event) => {\n if (this.disabled) {\n event.stopPropagation();\n event.preventDefault();\n\n return;\n }\n\n this.triggerFileDialog();\n\n event.stopPropagation();\n };\n\n private handleKeyUp = (event: KeyboardEvent) => {\n event.stopPropagation();\n event.preventDefault();\n\n if (event.code === 'Enter') {\n this.triggerFileDialog();\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 triggerFileDialog() {\n this.fileInput.click();\n }\n\n private handleFileChange = (event: Event) => {\n const files = Array.from(this.fileInput.files);\n if (files.length > 0) {\n event.stopPropagation();\n this.filesSelected.emit(files.map(createFileInfo));\n this.fileInput.value = '';\n }\n };\n}\n"],"mappings":"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"}
@@ -1,2 +1,13 @@
1
+ /**
2
+ * Takes a file extension as argument and returns the background color to use.
3
+ * While some file types have a fairly universally accepted icon color, like
4
+ * blue for Word documents, others are more arbitrary. This function provides
5
+ * a convention that we use at Lime. If you are using this code in your own
6
+ * project, you may or may not find this helper useful.
7
+ *
8
+ * @param extension - The file extension (without the dot).
9
+ * @returns The color to use for the icon.
10
+ * @public
11
+ */
1
12
  export declare function getIconBackgroundColorForFile(extension: string): string;
2
13
  //# sourceMappingURL=icon-background-colors.d.ts.map
@@ -1,2 +1,13 @@
1
+ /**
2
+ * Takes a file extension as argument and returns the fill color to use.
3
+ * While some file types have a fairly universally accepted icon color, like
4
+ * blue for Word documents, others are more arbitrary. This function provides
5
+ * a convention that we use at Lime. If you are using this code in your own
6
+ * project, you may or may not find this helper useful.
7
+ *
8
+ * @param extension - The file extension (without the dot).
9
+ * @returns The color to use for the icon.
10
+ * @public
11
+ */
1
12
  export declare function getIconFillColorForFile(extension: string): string;
2
13
  //# sourceMappingURL=icon-fill-colors.d.ts.map
@@ -1,2 +1,11 @@
1
+ /**
2
+ * Takes a file extension as argument and returns the corresponding icon name.
3
+ * Uses the names from the private icon package `lime-icons8`. If you are using
4
+ * a different icon package, this functions is probably not useful for you.
5
+ *
6
+ * @param extension - The file extension (without the dot).
7
+ * @returns The name of the icon to use.
8
+ * @public
9
+ */
1
10
  export declare function getIconForFile(extension: string): string;
2
11
  //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1,4 @@
1
+ export * from './icon-background-colors';
2
+ export * from './icon-fill-colors';
3
+ export * from './icons';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -9,7 +9,7 @@ export * from './components/collapsible-section/action';
9
9
  export * from './components/date-picker/date.types';
10
10
  export * from './components/dialog/dialog.types';
11
11
  export * from './components/dock/dock.types';
12
- export * from './global/shared-types/file.types';
12
+ export * from './components/file';
13
13
  export * from './components/flex-container/flex-container.types';
14
14
  export { EventEmitter, ValidationStatus, FormError, ValidationError, FormComponent, FormInfo, LimeSchemaOptions, LimeLayoutOptions, FormComponentOptions, FormLayoutOptions, GridLayoutOptions, RowLayoutOptions, FormLayoutType, ReplaceObjectType, FormSchemaArrayItem, FormSubKeySchema, } from './components/form/form.types';
15
15
  export * from './components/help/help.types';
@@ -28,6 +28,7 @@ export * from './components/select/option.types';
28
28
  export * from './components/spinner/spinner.types';
29
29
  export * from './components/tab-panel/tab-panel.types';
30
30
  export * from './components/table/table.types';
31
- export * from './global/shared-types/separator.types';
31
+ export * from './global/shared-types/file.types';
32
32
  export * from './global/shared-types/icon.types';
33
+ export * from './global/shared-types/separator.types';
33
34
  //# sourceMappingURL=interface.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limetech/lime-elements",
3
- "version": "37.18.0",
3
+ "version": "37.19.0-dev.1",
4
4
  "description": "Lime Elements",
5
5
  "author": "Lime Technologies",
6
6
  "license": "Apache-2.0",
@@ -54,7 +54,7 @@
54
54
  "@types/html-escaper": "^3.0.2",
55
55
  "@types/jest": "^27.4.0",
56
56
  "@types/lodash-es": "^4.17.12",
57
- "@types/react": "^18.2.77",
57
+ "@types/react": "^18.2.79",
58
58
  "@types/react-dom": "^18.2.25",
59
59
  "@types/tabulator-tables": "^4.9.4",
60
60
  "@typescript-eslint/eslint-plugin": "^7.5.0",
@@ -1 +0,0 @@
1
- {"file":"file-metadata-f259bba5.js","mappings":"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","names":["getIconName","getIconColor","getIconBackgroundColor"],"sources":["./src/components/file/icon-background-colors.ts","./src/components/file/icon-fill-colors.ts","./src/components/file/icons.ts","./src/util/file-metadata.ts"],"sourcesContent":["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","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 = '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","import { FileInfo } from '../global/shared-types/file.types';\nimport { getIconBackgroundColorForFile } from '../components/file/icon-background-colors';\nimport { getIconFillColorForFile } from '../components/file/icon-fill-colors';\nimport { getIconForFile } from '../components/file/icons';\nimport {\n getIconBackgroundColor,\n getIconColor,\n getIconName,\n} from '../components/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"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"file-metadata-9a4780e2.js","mappings":"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","names":[],"sources":["./src/components/file/icon-background-colors.ts","./src/components/file/icon-fill-colors.ts","./src/components/file/icons.ts","./src/util/file-metadata.ts"],"sourcesContent":["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","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 = '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","import { FileInfo } from '../global/shared-types/file.types';\nimport { getIconBackgroundColorForFile } from '../components/file/icon-background-colors';\nimport { getIconFillColorForFile } from '../components/file/icon-fill-colors';\nimport { getIconForFile } from '../components/file/icons';\nimport {\n getIconBackgroundColor,\n getIconColor,\n getIconName,\n} from '../components/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"],"version":3}
@@ -1,2 +0,0 @@
1
- import{g as o,a as r,b as t}from"./p-2f777fdb.js";const c="rgba(var(--color-gray-lighter), 0.4)";const a="rgba(var(--color-cyan-lighter), 0.4)";const s="rgba(var(--color-gray-lighter), 0.4)";const e="rgba(var(--color-blue-lighter), 0.4)";const n="rgba(var(--color-yellow-lighter), 0.4)";const l="rgba(var(--color-green-lighter), 0.4)";const g="rgba(var(--color-coral-lighter), 0.4)";const p="rgba(var(--color-sky-lighter), 0.4)";const i="rgba(var(--color-lime-lighter), 0.4)";const d="rgba(var(--color-magenta-lighter), 0.4)";const m="rgba(var(--color-blue-lighter), 0.4)";const b="rgba(var(--color-orange-lighter), 0.4)";const v="rgba(var(--color-green-lighter), 0.4)";const f="rgba(var(--color-indigo-lighter), 0.4)";const h="rgba(var(--color-red-lighter), 0.4)";const u="rgba(var(--color-orange-lighter), 0.4)";const x="rgba(var(--color-yellow-lighter), 0.4)";const k="rgba(var(--color-red-lighter), 0.4)";const y="rgba(var(--color-glaucous-lighter), 0.4)";const _={msg:x,ics:a,ical:a,icalendar:a,ifb:a,email:s,eml:s,oft:s,ost:s,emlx:s,html:e,xml:e,txt:n,rtf:n,dot:p,doc:p,docx:p,dotx:p,docm:p,dotm:p,odt:b,pages:b,pdf:k,ppt:g,pot:g,pps:g,pptx:g,pptm:g,potx:g,potm:g,ppam:g,ppsx:g,ppsm:g,sldx:g,sldm:g,odp:m,key:m,xls:l,xlsx:l,csv:c,numbers:v,bmp:i,jpg:i,jpeg:i,heic:i,png:i,gif:i,psd:m,ai:b,svg:d,svgz:d,ep:d,eps:d,sketch:d,mp3:f,wav:f,wma:f,ogg:f,flv:h,h264:h,mov:h,mp4:h,mwv:h,zip:u,"7z":u,rar:u,json:y,yaml:y,sql:y,db:y,dbf:y};function w(o){return _[o.toLowerCase()]||c}const j="rgb(var(--color-gray-dark))";const z="rgb(var(--color-cyan-dark))";const q="rgb(var(--color-gray-dark))";const D="rgb(var(--color-blue-dark))";const F="rgb(var(--color-yellow-darker))";const P="rgb(var(--color-green-dark))";const A="rgb(var(--color-coral-dark))";const B="rgb(var(--color-sky-dark))";const C="rgb(var(--color-lime-dark))";const E="rgb(var(--color-magenta-dark))";const G="rgb(var(--color-blue-dark))";const H="rgb(var(--color-orange-dark))";const I="rgb(var(--color-green-dark))";const J="rgb(var(--color-indigo-dark))";const K="rgb(var(--color-red-dark))";const L="rgb(var(--color-brown-default))";const M="rgb(var(--color-yellow-dark))";const N="rgb(var(--color-red-dark))";const O="rgb(var(--color-glaucous-dark))";const Q={msg:M,ics:z,ical:z,icalendar:z,ifb:z,email:q,eml:q,oft:q,ost:q,emlx:q,html:D,xml:D,txt:F,rtf:F,dot:B,doc:B,docx:B,dotx:B,docm:B,dotm:B,odt:H,pages:H,pdf:N,ppt:A,pot:A,pps:A,pptx:A,pptm:A,potx:A,potm:A,ppam:A,ppsx:A,ppsm:A,sldx:A,sldm:A,odp:G,key:G,xls:P,xlsx:P,csv:j,numbers:I,bmp:C,jpg:C,jpeg:C,heic:C,png:C,gif:C,psd:G,ai:H,svg:E,svgz:E,ep:E,eps:E,sketch:E,mp3:J,wav:J,wma:J,ogg:J,flv:K,h264:K,mov:K,mp4:K,mwv:K,zip:L,"7z":L,rar:L,json:O,yaml:O,sql:O,db:O,dbf:O};function R(o){return Q[o.toLowerCase()]||j}const S="file";const T="tear_off_calendar";const U="email";const V="internet";const W="text_box";const X="ms_excel_copyrighted";const Y="ms_word_copyrighted";const Z="ms_powerpoint_copyrighted";const $="picture";const oo="camera";const ro="vector";const to="presentation_filled";const co="overview_pages_2";const ao="data_sheet";const so="audio_wave";const eo="video_file";const no="condom_package";const lo="ms_outlook_copyrighted";const go="database";const po={msg:lo,ics:T,ical:T,icalendar:T,ifb:T,email:U,eml:U,oft:U,ost:U,emlx:U,html:V,xml:V,txt:W,rtf:W,dot:Y,doc:Y,docx:Y,dotx:Y,docm:Y,dotm:Y,odt:co,pages:co,pdf:"PDF_2",ppt:Z,pot:Z,pps:Z,pptx:Z,pptm:Z,potx:Z,potm:Z,ppam:Z,ppsx:Z,ppsm:Z,sldx:Z,sldm:Z,odp:to,key:to,xls:X,xlsx:X,csv:ao,numbers:ao,jpg:oo,jpeg:oo,heic:oo,bmp:$,png:$,gif:$,psd:"adobe_photoshop_copyrighted",ai:"adobe_illustrator_copyrighted",svg:ro,svgz:ro,ep:ro,eps:ro,sketch:ro,mp3:so,wav:so,wma:so,ogg:so,avi:eo,flv:eo,h264:eo,mov:eo,mp4:eo,mwv:eo,zip:no,"7z":no,rar:no,json:"json",yaml:go,sql:go,db:go,dbf:go};function io(o){return po[o.toLowerCase()]||S}function mo(r){const t=o(r.icon);if(t){return t}const c=ho(r);if(!c){return}return io(c)}function bo(o){const t=r(o.icon,o.iconColor);if(t){return t}const c=ho(o);if(!c){return}return R(c)}function vo(o){const r=t(o.icon,o.iconBackgroundColor);if(r){return r}const c=ho(o);if(!c){return}return w(c)}function fo(r){const t=o(r.icon);if(t){return t}return ho(r)}function ho(o){if(!o){return}return o.filename.split(".").pop()}export{fo as a,bo as b,vo as c,mo as g};
2
- //# sourceMappingURL=p-8bc1584b.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["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","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","bmp","jpg","jpeg","heic","png","gif","psd","ai","svg","svgz","ep","eps","sketch","mp3","wav","wma","ogg","flv","h264","mov","mp4","mwv","zip","rar","json","yaml","sql","db","dbf","getIconBackgroundColorForFile","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","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","avi","getIconForFile","getFileIcon","file","name","getIconName","icon","getExtension","getFileColor","color","getIconColor","iconColor","getFileBackgroundColor","backgroundColor","getIconBackgroundColor","iconBackgroundColor","getFileExtensionTitle","filename","split","pop"],"sources":["./src/components/file/icon-background-colors.ts","./src/components/file/icon-fill-colors.ts","./src/components/file/icons.ts","./src/util/file-metadata.ts"],"sourcesContent":["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","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 = '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","import { FileInfo } from '../global/shared-types/file.types';\nimport { getIconBackgroundColorForFile } from '../components/file/icon-background-colors';\nimport { getIconFillColorForFile } from '../components/file/icon-fill-colors';\nimport { getIconForFile } from '../components/file/icons';\nimport {\n getIconBackgroundColor,\n getIconColor,\n getIconName,\n} from '../components/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"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as e,H as r,g as s}from"./p-443111b3.js";import{g as n,a as o,b as a,c as l}from"./p-8bc1584b.js";import{b as c}from"./p-160569a4.js";import{b as h}from"./p-9acf7b5d.js";import{b as f}from"./p-99f6893d.js";import{i as p}from"./p-0b1af919.js";import{c as u}from"./p-3ccdc4a3.js";import"./p-2f777fdb.js";import"./p-48ed11c0.js";import"./p-eda23c05.js";import"./p-c93050d6.js";import"./p-4c3358cb.js";import"./p-858c6b82.js";import"./p-d529bb7d.js";import"./p-669626e5.js";function d(t,i,e,r){var s=-1,n=t==null?0:t.length;while(++s<n){var o=t[s];i(r,o,e(o),t)}return r}function m(t,i){return function(e,r){if(e==null){return e}if(!h(e)){return t(e,r)}var s=e.length,n=i?s:-1,o=Object(e);while(i?n--:++n<s){if(r(o[n],n,o)===false){break}}return e}}var b=m(c);function g(t,i,e,r){b(t,(function(t,s,n){i(r,t,e(t),n)}));return r}function j(t,i){return function(e,r){var s=p(e)?d:g,n=i?i():{};return s(e,t,f(r),n)}}var v=j((function(t,i,e){t[e?0:1].push(i)}),(function(){return[[],[]]}));function y(t){const i={id:crypto.randomUUID(),filename:t.name,contentType:t.type,size:t.size,fileContent:t};i.icon={name:n(i),title:o(i),color:a(i),backgroundColor:l(i)};return i}function x(t,i){if(i===undefined||i==="*"){return true}const e=i.split(",").map((t=>t.trim()));return e.some((i=>{if(i===t.contentType){return true}if(i.endsWith("/*")){const e=i.split("/")[0];return t.contentType.startsWith(`${e}/`)}if(i.startsWith(".")){const e=i.split(".")[1];return t.contentType.endsWith(`/${e}`)}}))}const k=":host(limel-file-dropzone){display:block;position:relative}.has-file-to-drop{animation:display-drop-zone 0.6s ease forwards;box-sizing:border-box;isolation:isolate;z-index:1;position:absolute;inset:0.25rem;overflow:hidden;display:flex;justify-content:center;align-items:center;gap:0.5rem;color:rgb(var(--contrast-700));border:0.125rem dashed rgb(var(--color-cyan-light));border-radius:0.75rem}.text-helpertext{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.icon{width:clamp(2rem, 5vh, 7rem)}.text{font-size:clamp(1rem, 2vh, 1.75rem)}.helper-text{font-size:clamp(0.75rem, 1.5vh, 1rem)}@keyframes display-drop-zone{0%{background-color:rgb(var(--contrast-1100), 0);backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);scale:0.9;opacity:0}50%{scale:1;opacity:1}100%{background-color:rgb(var(--contrast-1100), 0.8);backdrop-filter:blur(0.25rem);-webkit-backdrop-filter:blur(0.25rem)}}";const w=class{constructor(r){t(this,r);this.filesSelected=i(this,"filesSelected",7);this.filesRejected=i(this,"filesRejected",7);this.renderOnDragLayout=()=>{if(this.disabled||!this.hasFileToDrop){return}return e("div",{class:"has-file-to-drop"},e("limel-icon",{class:"icon",name:"upload_2"}),e("div",{class:"text-helpertext"},this.renderText(),this.renderHelperText()))};this.renderText=()=>{if(!this.text){return}return e("span",{class:"text"},this.text)};this.renderHelperText=()=>{if(!this.helperText){return}return e("span",{class:"helper-text"},this.helperText)};this.handleDrop=t=>{t.stopPropagation();t.preventDefault();this.hasFileToDrop=false;if(this.disabled){return}const i=Array.from(t.dataTransfer.files);const e=i.map(y);const[r,s]=v(e,(t=>x(t,this.accept)));if(r.length>0){this.filesSelected.emit(r)}if(s.length>0){this.filesRejected.emit(s)}};this.handleDragOver=t=>{this.hasFileToDrop=true;t.preventDefault()};this.handleDragLeave=t=>{this.hasFileToDrop=false;t.preventDefault()};this.accept="*";this.disabled=false;this.text=undefined;this.helperText="";this.hasFileToDrop=false}render(){return e(r,{onDrop:this.handleDrop,onDragOver:this.handleDragOver,onDragLeave:this.handleDragLeave},e("slot",null),this.renderOnDragLayout())}};w.style=k;const z=class{constructor(e){t(this,e);this.filesSelected=i(this,"filesSelected",7);this.fileInputId=u();this.handleClick=t=>{if(this.disabled){t.stopPropagation();t.preventDefault();return}this.triggerFileDialog();t.stopPropagation()};this.handleKeyUp=t=>{t.stopPropagation();t.preventDefault();if(t.code==="Enter"){this.triggerFileDialog()}};this.handleFileChange=t=>{const i=Array.from(this.fileInput.files);if(i.length>0){t.stopPropagation();this.filesSelected.emit(i.map(y));this.fileInput.value=""}};this.accept="*";this.disabled=false;this.multiple=false}componentDidLoad(){this.fileInput=this.element.shadowRoot.getElementById(this.fileInputId)}render(){return e(r,{onClick:this.handleClick,onKeyUp:this.handleKeyUp,onKeyDown:this.handleKeyDown},e("input",{hidden:true,id:this.fileInputId,onChange:this.handleFileChange,type:"file",accept:this.accept,disabled:this.disabled,multiple:this.multiple}),e("slot",null))}handleKeyDown(t){if(t.code==="Tab"||t.code==="Backspace"||t.code==="Enter"){return}t.preventDefault();t.stopPropagation()}triggerFileDialog(){this.fileInput.click()}get element(){return s(this)}};export{w as limel_file_dropzone,z as limel_file_input};
2
- //# sourceMappingURL=p-c9ffb1b4.entry.js.map
@@ -1,2 +0,0 @@
1
- import{r as t,c as i,h as s}from"./p-443111b3.js";import{t as e}from"./p-3ee3dcdc.js";import{g as h,a as n,b as r,c as l}from"./p-8bc1584b.js";import"./p-2f777fdb.js";const a="";const o={id:null,text:null,removable:true};const d=class{constructor(s){t(this,s);this.change=i(this,"change",7);this.interact=i(this,"interact",7);this.handleNewFiles=t=>{this.preventAndStop(t);this.change.emit(t.detail[0])};this.handleChipSetChange=t=>{t.stopPropagation();const i=!t.detail.length?t.detail[0]:null;if(!i){this.change.emit(i)}};this.handleChipInteract=t=>{this.preventAndStop(t);this.interact.emit(t.detail.id)};this.value=undefined;this.label=undefined;this.required=false;this.disabled=false;this.readonly=false;this.invalid=false;this.accept="*";this.language="en"}render(){return s("limel-file-dropzone",{disabled:this.disabled||this.readonly||!!this.value,accept:this.accept,onFilesSelected:this.handleNewFiles},this.renderChipset())}getChipArray(){if(!this.value){return[]}return[Object.assign(Object.assign({},o),{text:this.value.filename,id:this.value.id,icon:{name:h(this.value),title:n(this.value),color:r(this.value),backgroundColor:l(this.value)},href:this.value.href})]}renderChipset(){const t=s("limel-chip-set",{disabled:this.disabled,readonly:this.readonly,invalid:this.invalid,label:this.label,leadingIcon:"upload_to_cloud",language:this.language,onChange:this.handleChipSetChange,onInteract:this.handleChipInteract,required:this.required,type:"input",value:this.getChipArray(),title:this.getTranslation("drag-and-drop-tips")});if(this.value){return t}return s("limel-file-input",{accept:this.accept,disabled:this.disabled||this.readonly},t)}preventAndStop(t){t.stopPropagation();t.preventDefault()}getTranslation(t){return e.get(`file.${t}`,this.language)}};d.style=a;export{d as limel_file};
2
- //# sourceMappingURL=p-fc91537a.entry.js.map