@limetech/lime-elements 37.11.3 → 37.11.5

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 (109) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/lime-elements.cjs.js +1 -1
  3. package/dist/cjs/limel-breadcrumbs_3.cjs.entry.js +14 -15
  4. package/dist/cjs/limel-breadcrumbs_3.cjs.entry.js.map +1 -1
  5. package/dist/cjs/{limel-file-dropzone.cjs.entry.js → limel-file-dropzone_2.cjs.entry.js} +98 -7
  6. package/dist/cjs/limel-file-dropzone_2.cjs.entry.js.map +1 -0
  7. package/dist/cjs/limel-file.cjs.entry.js +18 -115
  8. package/dist/cjs/limel-file.cjs.entry.js.map +1 -1
  9. package/dist/cjs/limel-picker.cjs.entry.js +218 -2
  10. package/dist/cjs/limel-picker.cjs.entry.js.map +1 -1
  11. package/dist/cjs/loader.cjs.js +1 -1
  12. package/dist/collection/components/file/file.css +1 -5
  13. package/dist/collection/components/file/file.js +18 -116
  14. package/dist/collection/components/file/file.js.map +1 -1
  15. package/dist/collection/components/file-dropzone/file-dropzone.css +1 -1
  16. package/dist/collection/components/menu/menu.js +14 -17
  17. package/dist/collection/components/menu/menu.js.map +1 -1
  18. package/dist/esm/{_arrayIncludesWith-8b8a8b46.js → _arrayIncludesWith-b9a433b0.js} +2 -2
  19. package/dist/esm/{_arrayIncludesWith-8b8a8b46.js.map → _arrayIncludesWith-b9a433b0.js.map} +1 -1
  20. package/dist/esm/{_baseForOwn-3dd6837f.js → _baseForOwn-c95521ce.js} +2 -2
  21. package/dist/esm/{_baseForOwn-3dd6837f.js.map → _baseForOwn-c95521ce.js.map} +1 -1
  22. package/dist/esm/{_baseIsEqual-633b7929.js → _baseIsEqual-69d97809.js} +2 -2
  23. package/dist/esm/{_baseIsEqual-633b7929.js.map → _baseIsEqual-69d97809.js.map} +1 -1
  24. package/dist/esm/{_baseIteratee-2b2723f9.js → _baseIteratee-11a1b266.js} +2 -2
  25. package/dist/esm/{_baseIteratee-2b2723f9.js.map → _baseIteratee-11a1b266.js.map} +1 -1
  26. package/dist/esm/{isEqual-d8fb9edc.js → isEqual-8daa0ea4.js} +2 -2
  27. package/dist/esm/{isEqual-d8fb9edc.js.map → isEqual-8daa0ea4.js.map} +1 -1
  28. package/dist/esm/lime-elements.js +1 -1
  29. package/dist/esm/limel-breadcrumbs_3.entry.js +14 -15
  30. package/dist/esm/limel-breadcrumbs_3.entry.js.map +1 -1
  31. package/dist/esm/limel-chip_2.entry.js +2 -2
  32. package/dist/esm/limel-dialog.entry.js +2 -2
  33. package/dist/esm/{limel-file-dropzone.entry.js → limel-file-dropzone_2.entry.js} +99 -9
  34. package/dist/esm/limel-file-dropzone_2.entry.js.map +1 -0
  35. package/dist/esm/limel-file.entry.js +19 -116
  36. package/dist/esm/limel-file.entry.js.map +1 -1
  37. package/dist/esm/limel-form.entry.js +6 -6
  38. package/dist/esm/limel-picker.entry.js +217 -1
  39. package/dist/esm/limel-picker.entry.js.map +1 -1
  40. package/dist/esm/limel-tab-bar.entry.js +3 -3
  41. package/dist/esm/limel-table.entry.js +4 -4
  42. package/dist/esm/loader.js +1 -1
  43. package/dist/esm/{pickBy-240917e2.js → pickBy-7e02d413.js} +3 -3
  44. package/dist/esm/{pickBy-240917e2.js.map → pickBy-7e02d413.js.map} +1 -1
  45. package/dist/lime-elements/lime-elements.esm.js +1 -1
  46. package/dist/lime-elements/lime-elements.esm.js.map +1 -1
  47. package/dist/lime-elements/p-042e5620.entry.js +16 -0
  48. package/dist/lime-elements/p-042e5620.entry.js.map +1 -0
  49. package/dist/lime-elements/p-160569a4.js +2 -0
  50. package/dist/lime-elements/{p-00064897.entry.js → p-1d7a37ce.entry.js} +5 -5
  51. package/dist/lime-elements/p-1d7a37ce.entry.js.map +1 -0
  52. package/dist/lime-elements/p-35859f0c.entry.js +2 -0
  53. package/dist/lime-elements/p-35859f0c.entry.js.map +1 -0
  54. package/dist/lime-elements/{p-cb91d37d.js → p-48ed11c0.js} +2 -2
  55. package/dist/lime-elements/{p-c5db5254.entry.js → p-6b4e5f5b.entry.js} +2 -2
  56. package/dist/lime-elements/p-6eb17fd8.js +2 -0
  57. package/dist/lime-elements/{p-aaf6dada.entry.js → p-6f76bc3c.entry.js} +2 -2
  58. package/dist/lime-elements/{p-ee405625.entry.js → p-7b48a33b.entry.js} +2 -2
  59. package/dist/lime-elements/{p-ce1c1f74.js → p-85f4296f.js} +2 -2
  60. package/dist/lime-elements/{p-b2439774.entry.js → p-91e67b12.entry.js} +2 -2
  61. package/dist/lime-elements/{p-2e9fe8fd.js → p-99f6893d.js} +2 -2
  62. package/dist/lime-elements/{p-f4d83226.js → p-cfef0bcd.js} +2 -2
  63. package/dist/lime-elements/p-e5e3d118.entry.js +2 -0
  64. package/dist/lime-elements/p-e5e3d118.entry.js.map +1 -0
  65. package/dist/lime-elements/{p-a20848fc.entry.js → p-fb44db4d.entry.js} +2 -2
  66. package/dist/lime-elements/{p-a20848fc.entry.js.map → p-fb44db4d.entry.js.map} +1 -1
  67. package/dist/types/components/file/file.d.ts +4 -22
  68. package/dist/types/components/menu/menu.d.ts +2 -4
  69. package/dist/types/components.d.ts +1 -1
  70. package/package.json +2 -2
  71. package/dist/cjs/files-dcef6c99.js +0 -44
  72. package/dist/cjs/files-dcef6c99.js.map +0 -1
  73. package/dist/cjs/index.es-75b5e7c4.js +0 -222
  74. package/dist/cjs/index.es-75b5e7c4.js.map +0 -1
  75. package/dist/cjs/limel-file-dropzone.cjs.entry.js.map +0 -1
  76. package/dist/cjs/limel-file-input.cjs.entry.js +0 -67
  77. package/dist/cjs/limel-file-input.cjs.entry.js.map +0 -1
  78. package/dist/esm/files-79d9caeb.js +0 -41
  79. package/dist/esm/files-79d9caeb.js.map +0 -1
  80. package/dist/esm/index.es-61c13ecf.js +0 -220
  81. package/dist/esm/index.es-61c13ecf.js.map +0 -1
  82. package/dist/esm/limel-file-dropzone.entry.js.map +0 -1
  83. package/dist/esm/limel-file-input.entry.js +0 -63
  84. package/dist/esm/limel-file-input.entry.js.map +0 -1
  85. package/dist/lime-elements/p-00064897.entry.js.map +0 -1
  86. package/dist/lime-elements/p-09cb3405.js +0 -2
  87. package/dist/lime-elements/p-09cb3405.js.map +0 -1
  88. package/dist/lime-elements/p-0c24c682.entry.js +0 -2
  89. package/dist/lime-elements/p-0c24c682.entry.js.map +0 -1
  90. package/dist/lime-elements/p-51ec4f02.js +0 -2
  91. package/dist/lime-elements/p-5def744e.js +0 -2
  92. package/dist/lime-elements/p-8d13a44f.entry.js +0 -2
  93. package/dist/lime-elements/p-8d13a44f.entry.js.map +0 -1
  94. package/dist/lime-elements/p-97107e34.js +0 -16
  95. package/dist/lime-elements/p-97107e34.js.map +0 -1
  96. package/dist/lime-elements/p-ec42b48f.entry.js +0 -2
  97. package/dist/lime-elements/p-ec42b48f.entry.js.map +0 -1
  98. package/dist/lime-elements/p-f358c948.entry.js +0 -2
  99. package/dist/lime-elements/p-f358c948.entry.js.map +0 -1
  100. /package/dist/lime-elements/{p-5def744e.js.map → p-160569a4.js.map} +0 -0
  101. /package/dist/lime-elements/{p-cb91d37d.js.map → p-48ed11c0.js.map} +0 -0
  102. /package/dist/lime-elements/{p-c5db5254.entry.js.map → p-6b4e5f5b.entry.js.map} +0 -0
  103. /package/dist/lime-elements/{p-51ec4f02.js.map → p-6eb17fd8.js.map} +0 -0
  104. /package/dist/lime-elements/{p-aaf6dada.entry.js.map → p-6f76bc3c.entry.js.map} +0 -0
  105. /package/dist/lime-elements/{p-ee405625.entry.js.map → p-7b48a33b.entry.js.map} +0 -0
  106. /package/dist/lime-elements/{p-ce1c1f74.js.map → p-85f4296f.js.map} +0 -0
  107. /package/dist/lime-elements/{p-b2439774.entry.js.map → p-91e67b12.entry.js.map} +0 -0
  108. /package/dist/lime-elements/{p-2e9fe8fd.js.map → p-99f6893d.js.map} +0 -0
  109. /package/dist/lime-elements/{p-f4d83226.js.map → p-cfef0bcd.js.map} +0 -0
@@ -77,28 +77,10 @@ export declare class File {
77
77
  * Dispatched when clicking on a chip
78
78
  */
79
79
  private interact;
80
- private element;
81
- private isDraggingOverDropZone;
82
- private fileInput;
83
- private fileInputId;
84
- private chipSet;
85
- private mdcTextField;
86
- constructor();
87
- connectedCallback(): void;
88
- componentDidLoad(): void;
89
- private initialize;
90
- disconnectedCallback(): void;
91
- render(): any[];
92
- private handleDragEnter;
93
- private handleDragLeave;
94
- private handleFileDrop;
95
- private get chipArray();
96
- private handleKeyDown;
97
- private handleKeyUp;
98
- private handleClick;
99
- private handleFileSelection;
100
- private handleFileChange;
101
- private handleFile;
80
+ render(): any;
81
+ private handleNewFiles;
82
+ private getChipArray;
83
+ private renderChipset;
102
84
  private handleChipSetChange;
103
85
  private handleChipInteract;
104
86
  private preventAndStop;
@@ -95,7 +95,7 @@ export declare class Menu {
95
95
  /**
96
96
  * Is emitted when a menu item with a sub-menu is selected.
97
97
  */
98
- navigateMenu: EventEmitter<MenuItem>;
98
+ navigateMenu: EventEmitter<MenuItem | null>;
99
99
  private host;
100
100
  private loadingSubItems;
101
101
  private menuBreadCrumb;
@@ -105,15 +105,13 @@ export declare class Menu {
105
105
  private searchInput;
106
106
  private portalId;
107
107
  private triggerElement;
108
- private debouncedSearch;
108
+ private selectedMenuItem?;
109
109
  constructor();
110
- componentDidLoad(): void;
111
110
  componentDidRender(): void;
112
111
  render(): any;
113
112
  protected itemsWatcher(): void;
114
113
  protected openWatcher(newValue: boolean): void;
115
114
  protected currentSubMenuWatcher(): void;
116
- protected createDebouncedSearcher(newValue: MenuSearcher): void;
117
115
  private renderLoader;
118
116
  private renderBreadcrumb;
119
117
  private handleBreadcrumbsSelect;
@@ -5777,7 +5777,7 @@ declare namespace LocalJSX {
5777
5777
  /**
5778
5778
  * Is emitted when a menu item with a sub-menu is selected.
5779
5779
  */
5780
- "onNavigateMenu"?: (event: LimelMenuCustomEvent<MenuItem>) => void;
5780
+ "onNavigateMenu"?: (event: LimelMenuCustomEvent<MenuItem | null>) => void;
5781
5781
  /**
5782
5782
  * Is emitted when a menu item is selected.
5783
5783
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limetech/lime-elements",
3
- "version": "37.11.3",
3
+ "version": "37.11.5",
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.65",
57
+ "@types/react": "^18.2.66",
58
58
  "@types/react-dom": "^18.2.22",
59
59
  "@types/tabulator-tables": "^4.9.4",
60
60
  "@typescript-eslint/eslint-plugin": "^7.2.0",
@@ -1,44 +0,0 @@
1
- 'use strict';
2
-
3
- const fileMetadata = require('./file-metadata-f259bba5.js');
4
-
5
- function createFileInfo(file) {
6
- const limeFile = {
7
- id: crypto.randomUUID(),
8
- filename: file.name,
9
- contentType: file.type,
10
- size: file.size,
11
- fileContent: file,
12
- };
13
- limeFile.icon = {
14
- name: fileMetadata.getFileIcon(limeFile),
15
- title: fileMetadata.getFileExtensionTitle(limeFile),
16
- color: fileMetadata.getFileColor(limeFile),
17
- backgroundColor: fileMetadata.getFileBackgroundColor(limeFile),
18
- };
19
- return limeFile;
20
- }
21
- function isTypeAccepted(file, accept) {
22
- if (accept === undefined || accept === '*') {
23
- return true;
24
- }
25
- const acceptList = accept.split(',').map((raw) => raw.trim());
26
- return acceptList.some((acceptedType) => {
27
- if (acceptedType === file.contentType) {
28
- return true;
29
- }
30
- if (acceptedType.endsWith('/*')) {
31
- const baseType = acceptedType.split('/')[0];
32
- return file.contentType.startsWith(`${baseType}/`);
33
- }
34
- if (acceptedType.startsWith('.')) {
35
- const fileType = acceptedType.split('.')[1];
36
- return file.contentType.endsWith(`/${fileType}`);
37
- }
38
- });
39
- }
40
-
41
- exports.createFileInfo = createFileInfo;
42
- exports.isTypeAccepted = isTypeAccepted;
43
-
44
- //# sourceMappingURL=files-dcef6c99.js.map
@@ -1 +0,0 @@
1
- {"file":"files-dcef6c99.js","mappings":";;;;SAQgB,cAAc,CAAC,IAAU;EACrC,MAAM,QAAQ,GAAa;IACvB,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;IACvB,QAAQ,EAAE,IAAI,CAAC,IAAI;IACnB,WAAW,EAAE,IAAI,CAAC,IAAI;IACtB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,WAAW,EAAE,IAAI;GACpB,CAAC;EACF,QAAQ,CAAC,IAAI,GAAG;IACZ,IAAI,EAAEA,wBAAW,CAAC,QAAQ,CAAC;IAC3B,KAAK,EAAEC,kCAAqB,CAAC,QAAQ,CAAC;IACtC,KAAK,EAAEC,yBAAY,CAAC,QAAQ,CAAC;IAC7B,eAAe,EAAEC,mCAAsB,CAAC,QAAQ,CAAC;GACpD,CAAC;EAEF,OAAO,QAAQ,CAAC;AACpB,CAAC;SAEe,cAAc,CAAC,IAAc,EAAE,MAAe;EAC1D,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,GAAG,EAAE;IACxC,OAAO,IAAI,CAAC;GACf;EAED,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;EAE9D,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,YAAoB;IACxC,IAAI,YAAY,KAAK,IAAI,CAAC,WAAW,EAAE;MACnC,OAAO,IAAI,CAAC;KACf;IAED,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;MAC7B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;MAE5C,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;KACtD;IAED,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;MAC9B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;MAE5C,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;KACpD;GACJ,CAAC,CAAC;AACP;;;;;","names":["getFileIcon","getFileExtensionTitle","getFileColor","getFileBackgroundColor"],"sources":["./src/util/files.ts"],"sourcesContent":["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"],"version":3}
@@ -1,222 +0,0 @@
1
- 'use strict';
2
-
3
- /* global setTimeout, clearTimeout */
4
-
5
- var dist = function debounce(fn) {
6
- var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
7
- var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
8
-
9
- var lastCallAt = void 0;
10
- var deferred = void 0;
11
- var timer = void 0;
12
- var pendingArgs = [];
13
- return function debounced() {
14
- var currentWait = getWait(wait);
15
- var currentTime = new Date().getTime();
16
-
17
- var isCold = !lastCallAt || currentTime - lastCallAt > currentWait;
18
-
19
- lastCallAt = currentTime;
20
-
21
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
22
- args[_key] = arguments[_key];
23
- }
24
-
25
- if (isCold && options.leading) {
26
- return options.accumulate ? Promise.resolve(fn.call(this, [args])).then(function (result) {
27
- return result[0];
28
- }) : Promise.resolve(fn.call.apply(fn, [this].concat(args)));
29
- }
30
-
31
- if (deferred) {
32
- clearTimeout(timer);
33
- } else {
34
- deferred = defer();
35
- }
36
-
37
- pendingArgs.push(args);
38
- timer = setTimeout(flush.bind(this), currentWait);
39
-
40
- if (options.accumulate) {
41
- var argsIndex = pendingArgs.length - 1;
42
- return deferred.promise.then(function (results) {
43
- return results[argsIndex];
44
- });
45
- }
46
-
47
- return deferred.promise;
48
- };
49
-
50
- function flush() {
51
- var thisDeferred = deferred;
52
- clearTimeout(timer);
53
-
54
- Promise.resolve(options.accumulate ? fn.call(this, pendingArgs) : fn.apply(this, pendingArgs[pendingArgs.length - 1])).then(thisDeferred.resolve, thisDeferred.reject);
55
-
56
- pendingArgs = [];
57
- deferred = null;
58
- }
59
- };
60
-
61
- function getWait(wait) {
62
- return typeof wait === 'function' ? wait() : wait;
63
- }
64
-
65
- function defer() {
66
- var deferred = {};
67
- deferred.promise = new Promise(function (resolve, reject) {
68
- deferred.resolve = resolve;
69
- deferred.reject = reject;
70
- });
71
- return deferred;
72
- }
73
-
74
- function createImperativePromise(promiseArg) {
75
- var resolve = null;
76
- var reject = null;
77
- var wrappedPromise = new Promise(function (_resolve, _reject) {
78
- resolve = _resolve;
79
- reject = _reject;
80
- });
81
- promiseArg && promiseArg.then(function (val) {
82
- resolve && resolve(val);
83
- }, function (error) {
84
- reject && reject(error);
85
- });
86
- return {
87
- promise: wrappedPromise,
88
- resolve: function (value) {
89
- resolve && resolve(value);
90
- },
91
- reject: function (reason) {
92
- reject && reject(reason);
93
- },
94
- cancel: function () {
95
- resolve = null;
96
- reject = null;
97
- }
98
- };
99
- }
100
-
101
- // see https://stackoverflow.com/a/54825370/82609
102
- function onlyResolvesLast(asyncFunction) {
103
- var cancelPrevious = null;
104
- var wrappedFunction = function () {
105
- var args = [];
106
- for (var _i = 0; _i < arguments.length; _i++) {
107
- args[_i] = arguments[_i];
108
- }
109
- cancelPrevious && cancelPrevious();
110
- var initialPromise = asyncFunction.apply(void 0, args);
111
- var _a = createImperativePromise(initialPromise), promise = _a.promise, cancel = _a.cancel;
112
- cancelPrevious = cancel;
113
- return promise;
114
- };
115
- return wrappedFunction; // TODO fix TS
116
- }
117
-
118
- /*! *****************************************************************************
119
- Copyright (c) Microsoft Corporation. All rights reserved.
120
- Licensed under the Apache License, Version 2.0 (the "License"); you may not use
121
- this file except in compliance with the License. You may obtain a copy of the
122
- License at http://www.apache.org/licenses/LICENSE-2.0
123
-
124
- THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
125
- KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
126
- WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
127
- MERCHANTABLITY OR NON-INFRINGEMENT.
128
-
129
- See the Apache Version 2.0 License for specific language governing permissions
130
- and limitations under the License.
131
- ***************************************************************************** */
132
-
133
- var __assign = function() {
134
- __assign = Object.assign || function __assign(t) {
135
- for (var s, i = 1, n = arguments.length; i < n; i++) {
136
- s = arguments[i];
137
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
138
- }
139
- return t;
140
- };
141
- return __assign.apply(this, arguments);
142
- };
143
-
144
- var DefaultOptions = {
145
- // One distinct debounced function is created per key and added to an internal cache
146
- // By default, the key is null, which means that all the calls
147
- // will share the same debounced function
148
- key: function () {
149
- var _args = [];
150
- for (var _i = 0; _i < arguments.length; _i++) {
151
- _args[_i] = arguments[_i];
152
- }
153
- return null;
154
- },
155
- // By default, a debounced function will only resolve
156
- // the last promise it returned
157
- // Former calls will stay unresolved, so that you don't have
158
- // to handle concurrency issues in your code
159
- // Setting this to false means all returned promises will resolve to the last result
160
- onlyResolvesLast: true,
161
- };
162
- // We create a debouncing function cache, because when wrapping the original function,
163
- // we may actually want to route the function call to different debounced functions depending function paameters
164
- var DebounceCache = /** @class */ (function () {
165
- function DebounceCache(config) {
166
- this.config = config;
167
- this.debounceSingleton = null;
168
- this.debounceCache = {}; // when key feature is used
169
- }
170
- DebounceCache.prototype._createDebouncedFunction = function () {
171
- var debouncedFunc = dist(this.config.func, this.config.wait, this.config.options); // TODO TS
172
- if (this.config.options.onlyResolvesLast) {
173
- debouncedFunc = onlyResolvesLast(debouncedFunc);
174
- }
175
- return {
176
- func: debouncedFunc,
177
- };
178
- };
179
- DebounceCache.prototype.getDebouncedFunction = function (args) {
180
- var _a;
181
- var key = (_a = this.config.options).key.apply(_a, args);
182
- if (key === null || typeof key === 'undefined') {
183
- if (!this.debounceSingleton) {
184
- this.debounceSingleton = this._createDebouncedFunction();
185
- }
186
- return this.debounceSingleton;
187
- }
188
- else {
189
- if (!this.debounceCache[key]) {
190
- this.debounceCache[key] = this._createDebouncedFunction();
191
- }
192
- return this.debounceCache[key];
193
- }
194
- };
195
- return DebounceCache;
196
- }());
197
- function AwesomeDebouncePromise(func, wait, options) {
198
- var finalOptions = __assign({}, DefaultOptions, options);
199
- var debounceCache = new DebounceCache({
200
- func: func,
201
- wait: wait,
202
- options: finalOptions,
203
- });
204
- var AwesomeDebouncePromiseWrapper = (function () {
205
- var args = [];
206
- for (var _i = 0; _i < arguments.length; _i++) {
207
- args[_i] = arguments[_i];
208
- }
209
- var debouncedFn = debounceCache.getDebouncedFunction(args).func;
210
- return debouncedFn.apply(void 0, args);
211
- }); // TODO fix TS
212
- /*
213
- AwesomeDebouncePromiseWrapper.cancel = (key?: string) => {
214
-
215
- };
216
- */
217
- return AwesomeDebouncePromiseWrapper;
218
- }
219
-
220
- exports.AwesomeDebouncePromise = AwesomeDebouncePromise;
221
-
222
- //# sourceMappingURL=index.es-75b5e7c4.js.map
@@ -1 +0,0 @@
1
- {"file":"index.es-75b5e7c4.js","mappings":"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","names":["DebouncePromise"],"sources":["./node_modules/debounce-promise/dist/index.js","./node_modules/awesome-imperative-promise/dist/index.es.js","./node_modules/awesome-only-resolves-last-promise/dist/index.es.js","./node_modules/awesome-debounce-promise/dist/index.es.js"],"sourcesContent":["'use strict';\n\n/* global setTimeout, clearTimeout */\n\nmodule.exports = function debounce(fn) {\n var wait = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var lastCallAt = void 0;\n var deferred = void 0;\n var timer = void 0;\n var pendingArgs = [];\n return function debounced() {\n var currentWait = getWait(wait);\n var currentTime = new Date().getTime();\n\n var isCold = !lastCallAt || currentTime - lastCallAt > currentWait;\n\n lastCallAt = currentTime;\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (isCold && options.leading) {\n return options.accumulate ? Promise.resolve(fn.call(this, [args])).then(function (result) {\n return result[0];\n }) : Promise.resolve(fn.call.apply(fn, [this].concat(args)));\n }\n\n if (deferred) {\n clearTimeout(timer);\n } else {\n deferred = defer();\n }\n\n pendingArgs.push(args);\n timer = setTimeout(flush.bind(this), currentWait);\n\n if (options.accumulate) {\n var argsIndex = pendingArgs.length - 1;\n return deferred.promise.then(function (results) {\n return results[argsIndex];\n });\n }\n\n return deferred.promise;\n };\n\n function flush() {\n var thisDeferred = deferred;\n clearTimeout(timer);\n\n Promise.resolve(options.accumulate ? fn.call(this, pendingArgs) : fn.apply(this, pendingArgs[pendingArgs.length - 1])).then(thisDeferred.resolve, thisDeferred.reject);\n\n pendingArgs = [];\n deferred = null;\n }\n};\n\nfunction getWait(wait) {\n return typeof wait === 'function' ? wait() : wait;\n}\n\nfunction defer() {\n var deferred = {};\n deferred.promise = new Promise(function (resolve, reject) {\n deferred.resolve = resolve;\n deferred.reject = reject;\n });\n return deferred;\n}\n//# sourceMappingURL=index.js.map","function createImperativePromise(promiseArg) {\r\n var resolve = null;\r\n var reject = null;\r\n var wrappedPromise = new Promise(function (_resolve, _reject) {\r\n resolve = _resolve;\r\n reject = _reject;\r\n });\r\n promiseArg && promiseArg.then(function (val) {\r\n resolve && resolve(val);\r\n }, function (error) {\r\n reject && reject(error);\r\n });\r\n return {\r\n promise: wrappedPromise,\r\n resolve: function (value) {\r\n resolve && resolve(value);\r\n },\r\n reject: function (reason) {\r\n reject && reject(reason);\r\n },\r\n cancel: function () {\r\n resolve = null;\r\n reject = null;\r\n }\r\n };\r\n}\n\nexport { createImperativePromise };\n//# sourceMappingURL=index.es.js.map\n","import { createImperativePromise } from 'awesome-imperative-promise';\n\n// see https://stackoverflow.com/a/54825370/82609\r\nfunction onlyResolvesLast(asyncFunction) {\r\n var cancelPrevious = null;\r\n var wrappedFunction = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n cancelPrevious && cancelPrevious();\r\n var initialPromise = asyncFunction.apply(void 0, args);\r\n var _a = createImperativePromise(initialPromise), promise = _a.promise, cancel = _a.cancel;\r\n cancelPrevious = cancel;\r\n return promise;\r\n };\r\n return wrappedFunction; // TODO fix TS\r\n}\n\nexport { onlyResolvesLast };\n//# sourceMappingURL=index.es.js.map\n","import DebouncePromise from 'debounce-promise';\nimport { onlyResolvesLast } from 'awesome-only-resolves-last-promise';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar DefaultOptions = {\r\n // One distinct debounced function is created per key and added to an internal cache\r\n // By default, the key is null, which means that all the calls\r\n // will share the same debounced function\r\n key: function () {\r\n var _args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n _args[_i] = arguments[_i];\r\n }\r\n return null;\r\n },\r\n // By default, a debounced function will only resolve\r\n // the last promise it returned\r\n // Former calls will stay unresolved, so that you don't have\r\n // to handle concurrency issues in your code\r\n // Setting this to false means all returned promises will resolve to the last result\r\n onlyResolvesLast: true,\r\n};\r\n// We create a debouncing function cache, because when wrapping the original function,\r\n// we may actually want to route the function call to different debounced functions depending function paameters\r\nvar DebounceCache = /** @class */ (function () {\r\n function DebounceCache(config) {\r\n this.config = config;\r\n this.debounceSingleton = null;\r\n this.debounceCache = {}; // when key feature is used\r\n }\r\n DebounceCache.prototype._createDebouncedFunction = function () {\r\n var debouncedFunc = DebouncePromise(this.config.func, this.config.wait, this.config.options); // TODO TS\r\n if (this.config.options.onlyResolvesLast) {\r\n debouncedFunc = onlyResolvesLast(debouncedFunc);\r\n }\r\n return {\r\n func: debouncedFunc,\r\n };\r\n };\r\n DebounceCache.prototype.getDebouncedFunction = function (args) {\r\n var _a;\r\n var key = (_a = this.config.options).key.apply(_a, args);\r\n if (key === null || typeof key === 'undefined') {\r\n if (!this.debounceSingleton) {\r\n this.debounceSingleton = this._createDebouncedFunction();\r\n }\r\n return this.debounceSingleton;\r\n }\r\n else {\r\n if (!this.debounceCache[key]) {\r\n this.debounceCache[key] = this._createDebouncedFunction();\r\n }\r\n return this.debounceCache[key];\r\n }\r\n };\r\n return DebounceCache;\r\n}());\r\nfunction AwesomeDebouncePromise(func, wait, options) {\r\n var finalOptions = __assign({}, DefaultOptions, options);\r\n var debounceCache = new DebounceCache({\r\n func: func,\r\n wait: wait,\r\n options: finalOptions,\r\n });\r\n var AwesomeDebouncePromiseWrapper = (function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var debouncedFn = debounceCache.getDebouncedFunction(args).func;\r\n return debouncedFn.apply(void 0, args);\r\n }); // TODO fix TS\r\n /*\r\n AwesomeDebouncePromiseWrapper.cancel = (key?: string) => {\r\n \n };\r\n */\r\n return AwesomeDebouncePromiseWrapper;\r\n}\n\nexport default AwesomeDebouncePromise;\n//# sourceMappingURL=index.es.js.map\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"limel-file-dropzone.entry.cjs.js","mappings":"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","names":["isArrayLike","baseForOwn","isArray","baseIteratee","h","files","createFileInfo","isTypeAccepted","Host"],"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/components/file-dropzone/file-dropzone.scss?tag=limel-file-dropzone&encapsulation=shadow","./src/components/file-dropzone/file-dropzone.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",":host(limel-file-dropzone) {\n display: grid;\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"],"version":3}
@@ -1,67 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const index = require('./index-38eb64b5.js');
6
- const randomString = require('./random-string-c8445652.js');
7
- const files = require('./files-dcef6c99.js');
8
- require('./file-metadata-f259bba5.js');
9
- require('./get-icon-props-50be7440.js');
10
-
11
- const FileInput = class {
12
- constructor(hostRef) {
13
- index.registerInstance(this, hostRef);
14
- this.filesSelected = index.createEvent(this, "filesSelected", 7);
15
- this.fileInputId = randomString.createRandomString();
16
- this.handleClick = (event) => {
17
- if (this.disabled) {
18
- event.stopPropagation();
19
- event.preventDefault();
20
- return;
21
- }
22
- this.triggerFileDialog();
23
- event.stopPropagation();
24
- };
25
- this.handleKeyUp = (event) => {
26
- event.stopPropagation();
27
- event.preventDefault();
28
- if (event.code === 'Enter') {
29
- this.triggerFileDialog();
30
- }
31
- };
32
- this.handleFileChange = (event) => {
33
- const files$1 = Array.from(this.fileInput.files);
34
- if (files$1.length > 0) {
35
- event.stopPropagation();
36
- this.filesSelected.emit(files$1.map(files.createFileInfo));
37
- this.fileInput.value = '';
38
- }
39
- };
40
- this.accept = '*';
41
- this.disabled = false;
42
- this.multiple = false;
43
- }
44
- componentDidLoad() {
45
- this.fileInput = this.element.shadowRoot.getElementById(this.fileInputId);
46
- }
47
- render() {
48
- return (index.h(index.Host, { onClick: this.handleClick, onKeyUp: this.handleKeyUp, onKeyDown: this.handleKeyDown }, index.h("input", { hidden: true, id: this.fileInputId, onChange: this.handleFileChange, type: "file", accept: this.accept, disabled: this.disabled, multiple: this.multiple }), index.h("slot", null)));
49
- }
50
- handleKeyDown(event) {
51
- if (event.code === 'Tab' ||
52
- event.code === 'Backspace' ||
53
- event.code === 'Enter') {
54
- return;
55
- }
56
- event.preventDefault();
57
- event.stopPropagation();
58
- }
59
- triggerFileDialog() {
60
- this.fileInput.click();
61
- }
62
- get element() { return index.getElement(this); }
63
- };
64
-
65
- exports.limel_file_input = FileInput;
66
-
67
- //# sourceMappingURL=limel-file-input.cjs.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"limel-file-input.entry.cjs.js","mappings":";;;;;;;;;;MAkCa,SAAS;;;;IAqCV,gBAAW,GAAGA,+BAAkB,EAAE,CAAC;IA6BnC,gBAAW,GAAG,CAAC,KAAY;MAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE;QACf,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,cAAc,EAAE,CAAC;QAEvB,OAAO;OACV;MAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;MAEzB,KAAK,CAAC,eAAe,EAAE,CAAC;KAC3B,CAAC;IAEM,gBAAW,GAAG,CAAC,KAAoB;MACvC,KAAK,CAAC,eAAe,EAAE,CAAC;MACxB,KAAK,CAAC,cAAc,EAAE,CAAC;MAEvB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;QACxB,IAAI,CAAC,iBAAiB,EAAE,CAAC;OAC5B;KACJ,CAAC;IAmBM,qBAAgB,GAAG,CAAC,KAAY;MACpC,MAAMC,OAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;MAC/C,IAAIA,OAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QAClB,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAACA,OAAK,CAAC,GAAG,CAACC,oBAAc,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;OAC7B;KACJ,CAAC;kBAnGsB,GAAG;oBAMA,KAAK;oBAML,KAAK;;EAczB,gBAAgB;IACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CACnD,IAAI,CAAC,WAAW,CACC,CAAC;GACzB;EAEM,MAAM;IACT,QACIC,QAACC,UAAI,IACD,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAE,IAAI,CAAC,aAAa,IAE7BD,mBACI,MAAM,EAAE,IAAI,EACZ,EAAE,EAAE,IAAI,CAAC,WAAW,EACpB,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAC/B,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,GACzB,EACFA,qBAAQ,CACL,EACT;GACL;EAwBO,aAAa,CAAC,KAAoB;IACtC,IACI,KAAK,CAAC,IAAI,KAAK,KAAK;MACpB,KAAK,CAAC,IAAI,KAAK,WAAW;MAC1B,KAAK,CAAC,IAAI,KAAK,OAAO,EACxB;MACE,OAAO;KACV;IAED,KAAK,CAAC,cAAc,EAAE,CAAC;IACvB,KAAK,CAAC,eAAe,EAAE,CAAC;GAC3B;EAEO,iBAAiB;IACrB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;GAC1B;;;;;;","names":["createRandomString","files","createFileInfo","h","Host"],"sources":["./src/components/file-input/file-input.tsx"],"sourcesContent":["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"],"version":3}
@@ -1,41 +0,0 @@
1
- import { g as getFileIcon, a as getFileExtensionTitle, b as getFileColor, c as getFileBackgroundColor } from './file-metadata-9a4780e2.js';
2
-
3
- function createFileInfo(file) {
4
- const limeFile = {
5
- id: crypto.randomUUID(),
6
- filename: file.name,
7
- contentType: file.type,
8
- size: file.size,
9
- fileContent: file,
10
- };
11
- limeFile.icon = {
12
- name: getFileIcon(limeFile),
13
- title: getFileExtensionTitle(limeFile),
14
- color: getFileColor(limeFile),
15
- backgroundColor: getFileBackgroundColor(limeFile),
16
- };
17
- return limeFile;
18
- }
19
- function isTypeAccepted(file, accept) {
20
- if (accept === undefined || accept === '*') {
21
- return true;
22
- }
23
- const acceptList = accept.split(',').map((raw) => raw.trim());
24
- return acceptList.some((acceptedType) => {
25
- if (acceptedType === file.contentType) {
26
- return true;
27
- }
28
- if (acceptedType.endsWith('/*')) {
29
- const baseType = acceptedType.split('/')[0];
30
- return file.contentType.startsWith(`${baseType}/`);
31
- }
32
- if (acceptedType.startsWith('.')) {
33
- const fileType = acceptedType.split('.')[1];
34
- return file.contentType.endsWith(`/${fileType}`);
35
- }
36
- });
37
- }
38
-
39
- export { createFileInfo as c, isTypeAccepted as i };
40
-
41
- //# sourceMappingURL=files-79d9caeb.js.map
@@ -1 +0,0 @@
1
- {"file":"files-79d9caeb.js","mappings":";;SAQgB,cAAc,CAAC,IAAU;EACrC,MAAM,QAAQ,GAAa;IACvB,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;IACvB,QAAQ,EAAE,IAAI,CAAC,IAAI;IACnB,WAAW,EAAE,IAAI,CAAC,IAAI;IACtB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,WAAW,EAAE,IAAI;GACpB,CAAC;EACF,QAAQ,CAAC,IAAI,GAAG;IACZ,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC;IAC3B,KAAK,EAAE,qBAAqB,CAAC,QAAQ,CAAC;IACtC,KAAK,EAAE,YAAY,CAAC,QAAQ,CAAC;IAC7B,eAAe,EAAE,sBAAsB,CAAC,QAAQ,CAAC;GACpD,CAAC;EAEF,OAAO,QAAQ,CAAC;AACpB,CAAC;SAEe,cAAc,CAAC,IAAc,EAAE,MAAe;EAC1D,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,GAAG,EAAE;IACxC,OAAO,IAAI,CAAC;GACf;EAED,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;EAE9D,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,YAAoB;IACxC,IAAI,YAAY,KAAK,IAAI,CAAC,WAAW,EAAE;MACnC,OAAO,IAAI,CAAC;KACf;IAED,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;MAC7B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;MAE5C,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;KACtD;IAED,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;MAC9B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;MAE5C,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,QAAQ,EAAE,CAAC,CAAC;KACpD;GACJ,CAAC,CAAC;AACP;;;;","names":[],"sources":["./src/util/files.ts"],"sourcesContent":["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"],"version":3}