@maggioli-design-system/mds-input-tip 1.2.2 → 1.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. package/dist/cjs/{index-442db91d.js → index-66d8bb25.js} +143 -58
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/mds-input-tip.cjs.entry.js +7 -1
  4. package/dist/cjs/mds-input-tip.cjs.js +2 -2
  5. package/dist/collection/collection-manifest.json +1 -1
  6. package/dist/collection/common/floating-controller.js +180 -0
  7. package/dist/collection/common/slot.js +19 -0
  8. package/dist/collection/components/mds-input-tip/mds-input-tip.js +10 -0
  9. package/dist/collection/dictionary/animation.js +5 -0
  10. package/dist/collection/dictionary/file-extensions.js +6 -59
  11. package/dist/collection/dictionary/tree.js +13 -0
  12. package/dist/collection/fixtures/filenames.js +62 -1
  13. package/dist/collection/type/animation.js +1 -0
  14. package/dist/collection/type/tree.js +1 -0
  15. package/dist/collection/type/variant-file-format.js +5 -0
  16. package/dist/components/mds-input-tip.js +6 -0
  17. package/dist/documentation.d.ts +8 -0
  18. package/dist/documentation.json +8 -4
  19. package/dist/esm/{index-8fed469d.js → index-4e431d49.js} +143 -58
  20. package/dist/esm/loader.js +2 -2
  21. package/dist/esm/mds-input-tip.entry.js +7 -1
  22. package/dist/esm/mds-input-tip.js +3 -3
  23. package/dist/esm-es5/index-4e431d49.js +1 -0
  24. package/dist/esm-es5/loader.js +1 -1
  25. package/dist/esm-es5/mds-input-tip.entry.js +1 -1
  26. package/dist/esm-es5/mds-input-tip.js +1 -1
  27. package/dist/mds-input-tip/mds-input-tip.esm.js +1 -1
  28. package/dist/mds-input-tip/mds-input-tip.js +1 -1
  29. package/dist/mds-input-tip/{p-4486a5e4.entry.js → p-3bf85392.entry.js} +1 -1
  30. package/dist/mds-input-tip/{p-fadf816e.system.entry.js → p-5c7f52a4.system.entry.js} +1 -1
  31. package/dist/mds-input-tip/p-7eeec96b.system.js +2 -0
  32. package/dist/mds-input-tip/p-b8376582.js +2 -0
  33. package/dist/mds-input-tip/{p-c915dfb3.system.js → p-c7ede63a.system.js} +1 -1
  34. package/dist/stats.json +60 -36
  35. package/dist/types/common/floating-controller.d.ts +46 -0
  36. package/dist/types/common/slot.d.ts +3 -0
  37. package/dist/types/dictionary/animation.d.ts +2 -0
  38. package/dist/types/dictionary/tree.d.ts +4 -0
  39. package/dist/types/fixtures/filenames.d.ts +62 -1
  40. package/dist/types/type/animation.d.ts +1 -0
  41. package/dist/types/type/file-types.d.ts +1 -1
  42. package/dist/types/type/tree.d.ts +3 -0
  43. package/dist/types/type/variant-file-format.d.ts +1 -1
  44. package/documentation.json +49 -15
  45. package/package.json +4 -4
  46. package/src/common/floating-controller.ts +263 -0
  47. package/src/common/slot.ts +24 -0
  48. package/src/dictionary/animation.ts +8 -0
  49. package/src/dictionary/file-extensions.ts +6 -60
  50. package/src/dictionary/tree.ts +21 -0
  51. package/src/fixtures/filenames.ts +63 -0
  52. package/src/fixtures/icons.json +21 -0
  53. package/src/fixtures/iconsauce.json +6 -0
  54. package/src/meta/file-format/locale.el.json +26 -21
  55. package/src/meta/file-format/locale.en.json +26 -21
  56. package/src/meta/file-format/locale.es.json +26 -21
  57. package/src/meta/file-format/locale.it.json +26 -21
  58. package/src/type/animation.ts +3 -0
  59. package/src/type/file-types.ts +6 -0
  60. package/src/type/tree.ts +12 -0
  61. package/src/type/variant-file-format.ts +6 -0
  62. package/www/build/mds-input-tip.esm.js +1 -1
  63. package/www/build/mds-input-tip.js +1 -1
  64. package/www/build/{p-4486a5e4.entry.js → p-3bf85392.entry.js} +1 -1
  65. package/www/build/{p-fadf816e.system.entry.js → p-5c7f52a4.system.entry.js} +1 -1
  66. package/www/build/p-7eeec96b.system.js +2 -0
  67. package/www/build/p-b8376582.js +2 -0
  68. package/www/build/{p-c915dfb3.system.js → p-c7ede63a.system.js} +1 -1
  69. package/dist/esm-es5/index-8fed469d.js +0 -1
  70. package/dist/mds-input-tip/p-37c61f56.system.js +0 -2
  71. package/dist/mds-input-tip/p-3e967425.js +0 -2
  72. package/www/build/p-37c61f56.system.js +0 -2
  73. package/www/build/p-3e967425.js +0 -2
@@ -1,8 +1,8 @@
1
1
  {
2
- "timestamp": "2024-12-04T15:30:05",
2
+ "timestamp": "2025-02-06T07:52:44",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
- "version": "4.22.2",
5
+ "version": "4.25.1",
6
6
  "typescriptVersion": "5.5.4"
7
7
  },
8
8
  "components": [
@@ -38,7 +38,9 @@
38
38
  }
39
39
  ],
40
40
  "optional": true,
41
- "required": false
41
+ "required": false,
42
+ "getter": false,
43
+ "setter": false
42
44
  },
43
45
  {
44
46
  "name": "position",
@@ -74,7 +76,9 @@
74
76
  }
75
77
  ],
76
78
  "optional": true,
77
- "required": false
79
+ "required": false,
80
+ "getter": false,
81
+ "setter": false
78
82
  }
79
83
  ],
80
84
  "methods": [],
@@ -219,6 +223,11 @@
219
223
  "docstring": "",
220
224
  "path": "src/type/button.ts"
221
225
  },
226
+ "src/type/text.ts::TypographyTruncateType": {
227
+ "declaration": "export type TypographyTruncateType =\n | 'all'\n | 'none'\n | 'word'",
228
+ "docstring": "",
229
+ "path": "src/type/text.ts"
230
+ },
222
231
  "src/type/variant.ts::ChipVariantType": {
223
232
  "declaration": "export type ChipVariantType =\n | 'primary'\n | 'secondary'\n | 'dark'\n | 'error'\n | 'info'\n | 'success'\n | 'warning'",
224
233
  "docstring": "",
@@ -250,7 +259,7 @@
250
259
  "path": "src/components/mds-dropdown/meta/event-detail.ts"
251
260
  },
252
261
  "src/type/file-types.ts::ExtensionSuffixType": {
253
- "declaration": "export type ExtensionSuffixType =\n | '7z'\n | 'ace'\n | 'ai'\n | 'db'\n | 'default'\n | 'dmg'\n | 'doc'\n | 'docm'\n | 'docx'\n | 'eml'\n | 'eps'\n | 'exe'\n | 'flac'\n | 'gif'\n | 'heic'\n | 'htm'\n | 'html'\n | 'jpe'\n | 'jpeg'\n | 'jpg'\n | 'js'\n | 'json'\n | 'jsx'\n | 'm2v'\n | 'mp2'\n | 'mp3'\n | 'mp4'\n | 'mp4v'\n | 'mpeg'\n | 'mpg'\n | 'mpg4'\n | 'mpga'\n | 'odp'\n | 'ods'\n | 'odt'\n | 'pdf'\n | 'php'\n | 'png'\n | 'ppt'\n | 'rar'\n | 'rtf'\n | 'sass'\n | 'shtml'\n | 'svg'\n | 'tar'\n | 'tiff'\n | 'ts'\n | 'txt'\n | 'wav'\n | 'webp'\n | 'xar'\n | 'xls'\n | 'xlsx'\n | 'zip'",
262
+ "declaration": "export type ExtensionSuffixType =\n | '7z'\n | 'ace'\n | 'ai'\n | 'db'\n | 'default'\n | 'dmg'\n | 'doc'\n | 'docm'\n | 'docx'\n | 'eml'\n | 'eps'\n | 'exe'\n | 'flac'\n | 'gif'\n | 'heic'\n | 'htm'\n | 'html'\n | 'jpe'\n | 'jpeg'\n | 'jpg'\n | 'js'\n | 'json'\n | 'jsx'\n | 'm2v'\n | 'mp2'\n | 'mp3'\n | 'mp4'\n | 'mp4v'\n | 'mpeg'\n | 'mpg'\n | 'mpg4'\n | 'mpga'\n | 'odf'\n | 'odp'\n | 'ods'\n | 'odt'\n | 'odt'\n | 'ole'\n | 'p7m'\n | 'pdf'\n | 'php'\n | 'png'\n | 'ppt'\n | 'rar'\n | 'rtf'\n | 'sass'\n | 'shtml'\n | 'svg'\n | 'tar'\n | 'tiff'\n | 'ts'\n | 'tsd'\n | 'txt'\n | 'wav'\n | 'webp'\n | 'xar'\n | 'xls'\n | 'xlsx'\n | 'xml'\n | 'zip'",
254
263
  "docstring": "",
255
264
  "path": "src/type/file-types.ts"
256
265
  },
@@ -259,11 +268,6 @@
259
268
  "docstring": "",
260
269
  "path": "src/components/mds-file/meta/event-detail.ts"
261
270
  },
262
- "src/type/text.ts::TypographyTruncateType": {
263
- "declaration": "export type TypographyTruncateType =\n | 'all'\n | 'none'\n | 'word'",
264
- "docstring": "",
265
- "path": "src/type/text.ts"
266
- },
267
271
  "src/components/mds-file-preview/meta/event-detail.ts::MdsFilePreviewEventDetail": {
268
272
  "declaration": "export interface MdsFilePreviewEventDetail {\n extension: string\n filename: string\n target: HTMLMdsFilePreviewElement\n}",
269
273
  "docstring": "",
@@ -489,11 +493,6 @@
489
493
  "docstring": "",
490
494
  "path": "src/components/mds-progress/meta/types.ts"
491
495
  },
492
- "src/type/date.ts::ISO8601Date": {
493
- "declaration": "type ISO8601Date = ISO8601DateFormat<string, 'ISO8601Date'>",
494
- "docstring": "",
495
- "path": "src/type/date.ts"
496
- },
497
496
  "src/components/mds-push-notification/meta/types.ts::NotificationDateFormatType": {
498
497
  "declaration": "string",
499
498
  "docstring": "",
@@ -524,6 +523,11 @@
524
523
  "docstring": "",
525
524
  "path": "src/components/mds-stepper-bar-item/meta/event-detail.ts"
526
525
  },
526
+ "src/type/animation.ts::HorizontalActionsAnimationType": {
527
+ "declaration": "export type HorizontalActionsAnimationType =\n | 'fade'\n | 'slide'",
528
+ "docstring": "",
529
+ "path": "src/type/animation.ts"
530
+ },
527
531
  "src/components/mds-tab/meta/event-detail.ts::MdsTabEventDetail": {
528
532
  "declaration": "export interface MdsTabEventDetail {\n id: number\n value?: string\n}",
529
533
  "docstring": "",
@@ -544,6 +548,16 @@
544
548
  "docstring": "",
545
549
  "path": "src/components/mds-tab-item/meta/event-detail.ts"
546
550
  },
551
+ "src/components/mds-table/meta/event-detail.ts::MdsTableSelectionEventDetail": {
552
+ "declaration": "export interface MdsTableSelectionEventDetail {\n rows: MdsTableRowSelection[]\n}",
553
+ "docstring": "",
554
+ "path": "src/components/mds-table/meta/event-detail.ts"
555
+ },
556
+ "src/components/mds-table/meta/type.ts::MdsTableRowSelection": {
557
+ "declaration": "{\n index: number\n value?: string | number\n}",
558
+ "docstring": "",
559
+ "path": "src/components/mds-table/meta/type.ts"
560
+ },
547
561
  "src/components/mds-table-header-cell/meta/types.ts::SortDirectionType": {
548
562
  "declaration": "export type SortDirectionType =\n | 'ascending'\n | 'descending'\n | 'none'",
549
563
  "docstring": "",
@@ -574,6 +588,26 @@
574
588
  "docstring": "",
575
589
  "path": "src/type/typography.ts"
576
590
  },
591
+ "src/type/tree.ts::TreeAppearance": {
592
+ "declaration": "export type TreeAppearance =\n | 'none'\n | 'depth'",
593
+ "docstring": "",
594
+ "path": "src/type/tree.ts"
595
+ },
596
+ "src/type/tree.ts::TreeIcon": {
597
+ "declaration": "export type TreeIcon =\n | 'folder'\n | 'chevron'",
598
+ "docstring": "",
599
+ "path": "src/type/tree.ts"
600
+ },
601
+ "src/type/tree.ts::TreeActions": {
602
+ "declaration": "export type TreeActions =\n | 'auto'\n | 'visible'",
603
+ "docstring": "",
604
+ "path": "src/type/tree.ts"
605
+ },
606
+ "src/components/mds-tree-item/meta/event-detail.ts::MdsTreeItemEventDetail": {
607
+ "declaration": "export interface MdsTreeItemEventDetail {\n element: HTMLMdsTreeItemElement\n}",
608
+ "docstring": "",
609
+ "path": "src/components/mds-tree-item/meta/event-detail.ts"
610
+ },
577
611
  "src/components/mds-usage/meta/types.ts::UsageType": {
578
612
  "declaration": "export type UsageType =\n | 'do'\n | 'dont'\n | 'info'\n | 'warn'",
579
613
  "docstring": "",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maggioli-design-system/mds-input-tip",
3
- "version": "1.2.2",
3
+ "version": "1.2.3",
4
4
  "description": "mds-input-tip is a web-component from Magma Design System, built with StencilJS, TypeScript, Storybook. It's based on the web-component standard and it's designed to be agnostic from the JavaScript framework you are using.",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -24,9 +24,9 @@
24
24
  "test": "stencil test --spec --e2e"
25
25
  },
26
26
  "dependencies": {
27
- "@maggioli-design-system/mds-input-tip-item": "1.2.2",
28
- "@maggioli-design-system/styles": "15.5.0",
29
- "@stencil/core": "4.22.2"
27
+ "@maggioli-design-system/mds-input-tip-item": "1.2.3",
28
+ "@maggioli-design-system/styles": "15.7.0",
29
+ "@stencil/core": "4.25.1"
30
30
  },
31
31
  "license": "MIT",
32
32
  "author": {
@@ -0,0 +1,263 @@
1
+ import {
2
+ arrow,
3
+ autoPlacement,
4
+ autoUpdate,
5
+ computePosition,
6
+ flip,
7
+ Middleware,
8
+ MiddlewareData,
9
+ offset,
10
+ shift,
11
+ } from '@floating-ui/dom'
12
+ import { FloatingUIPlacement, FloatingUIStrategy } from '@type/floating-ui'
13
+ import { cssDurationToMilliseconds } from './unit'
14
+ import { setAttributeIfEmpty } from './aria'
15
+ import { HTMLStencilElement } from '@stencil/core/internal'
16
+
17
+ export interface FloatingElement extends PositionOptions {
18
+ host: HTMLFloatingElement,
19
+ }
20
+
21
+ export interface HTMLFloatingElement extends HTMLStencilElement, PositionOptions {
22
+ visible: boolean,
23
+ }
24
+
25
+ export interface PositionOptions {
26
+ arrow: boolean;
27
+ arrowPadding: number;
28
+ autoPlacement: boolean;
29
+ flip: boolean;
30
+ offset: number;
31
+ placement: FloatingUIPlacement;
32
+ shift: boolean;
33
+ shiftPadding: number;
34
+ strategy: FloatingUIStrategy;
35
+ }
36
+
37
+ export class FloatingController {
38
+ private _caller: HTMLElement
39
+ private readonly _host: HTMLFloatingElement
40
+ arrowEl: HTMLElement | undefined
41
+
42
+ private cleanupAutoUpdate: () => void
43
+
44
+ constructor (host: HTMLFloatingElement, arrowEl?: HTMLElement) {
45
+ this._host = host
46
+ this.arrowEl = arrowEl
47
+ }
48
+
49
+ updateCaller (target: string): HTMLElement {
50
+ // search caller in document or rootNode of host (if target is in shadowDOM)
51
+ const caller = (this._host.parentElement?.shadowRoot?.querySelector(target) as HTMLElement) ??
52
+ ((this._host.getRootNode() as HTMLElement).querySelector(target) as HTMLElement)
53
+
54
+ if (!caller) {
55
+ throw Error(`Target not found: ${target}`)
56
+ }
57
+
58
+ this._caller = caller
59
+
60
+ setAttributeIfEmpty(this._caller, 'aria-haspopup', 'true')
61
+ setAttributeIfEmpty(this._caller, 'aria-controls', target)
62
+ setAttributeIfEmpty(this._host, 'role', 'menu')
63
+ setAttributeIfEmpty(this._host, 'aria-labelledby', target)
64
+ return caller
65
+ }
66
+
67
+ private readonly arrowInset = (
68
+ middleware: MiddlewareData,
69
+ arrowPosition: string,
70
+ ): { bottom?: string; left?: string; right?: string; top?: string } => {
71
+ const { arrow } = middleware
72
+ const inset = { bottom: '', left: '', right: '', top: '' }
73
+
74
+ if (arrow === undefined) {
75
+ return {}
76
+ }
77
+
78
+ switch (arrowPosition) {
79
+ case 'bottom':
80
+ inset.left = arrow.x !== null ? `${arrow.x}px` : ''
81
+ inset.top = '100%'
82
+ break
83
+ case 'left':
84
+ inset.right = '100%'
85
+ inset.top = arrow.y !== null ? `${arrow.y}px` : ''
86
+ break
87
+ case 'right':
88
+ inset.left = '100%'
89
+ inset.top = arrow.y !== null ? `${arrow.y}px` : ''
90
+ break
91
+ case 'top':
92
+ inset.left = arrow.x !== null ? `${arrow.x}px` : ''
93
+ inset.top = ''
94
+ break
95
+ default:
96
+ break
97
+ }
98
+ return inset
99
+ }
100
+
101
+ private readonly arrowTransform = (
102
+ arrowPosition: string,
103
+ ): { transform: string } => {
104
+ let transformProps = this._host.arrow && this._host.visible ? 'scale(1)' : 'scale(0)'
105
+ switch (arrowPosition) {
106
+ case 'bottom':
107
+ transformProps = `rotate(180deg) ${transformProps} translate(0, -100%)`
108
+ break
109
+ case 'left':
110
+ transformProps = `rotate(-90deg) ${transformProps} translate(50%, -50%)`
111
+ break
112
+ case 'right':
113
+ transformProps = `rotate(90deg) ${transformProps} translate(-50%, -50%)`
114
+ break
115
+ case 'top':
116
+ transformProps = `rotate(0deg) ${transformProps} translate(0, 0)`
117
+ break
118
+ default:
119
+ break
120
+ }
121
+ return { transform: transformProps }
122
+ }
123
+
124
+ private readonly arrowTransformOrigin = (
125
+ arrowPosition: string,
126
+ ): { transformOrigin: string } => {
127
+ switch (arrowPosition) {
128
+ case 'bottom':
129
+ return { transformOrigin: 'center top' }
130
+ case 'left':
131
+ return { transformOrigin: 'right center' }
132
+ case 'right':
133
+ return { transformOrigin: 'left center' }
134
+ case 'top':
135
+ return { transformOrigin: 'center bottom' }
136
+ default:
137
+ return { transformOrigin: 'center top' }
138
+ }
139
+ }
140
+
141
+ private readonly calculatePosition = (): void => {
142
+ if (!this._caller) return
143
+
144
+ const middleware: Middleware[] = new Array<Middleware>()
145
+ const config: { padding?: number } = {}
146
+
147
+ if (this._host.shiftPadding) {
148
+ config.padding = this._host.shiftPadding
149
+ }
150
+
151
+ if (this._host.autoPlacement) {
152
+ middleware.push(autoPlacement())
153
+ }
154
+
155
+ if (this._host.offset) {
156
+ middleware.push(offset(this._host.offset))
157
+ }
158
+
159
+ if (!this._host.autoPlacement && this._host.flip) {
160
+ middleware.push(flip(config))
161
+ }
162
+
163
+ if (this._host.shift) {
164
+ middleware.push(shift(config))
165
+ }
166
+
167
+ if (this.arrowEl && this._host.arrow) {
168
+ middleware.push(
169
+ arrow({
170
+ element: this.arrowEl,
171
+ padding: this._host.arrowPadding,
172
+ }),
173
+ )
174
+ }
175
+
176
+ computePosition(this._caller, this._host, {
177
+ middleware,
178
+ placement: this._host.placement,
179
+ strategy: this._host.strategy,
180
+ }).then(({ x, y, placement, middlewareData }) => {
181
+ Object.assign(this._host.style, {
182
+ left: `${x}px`,
183
+ top: `${y}px`,
184
+ })
185
+
186
+ const arrowStyle = {}
187
+ const arrowPosition = {
188
+ top: 'bottom',
189
+ right: 'left',
190
+ bottom: 'top',
191
+ left: 'right',
192
+ }[placement.split('-')[0]]
193
+
194
+ if (arrowPosition && this.arrowEl) {
195
+ Object.assign(arrowStyle, this.arrowTransform(arrowPosition))
196
+ Object.assign(
197
+ arrowStyle,
198
+ this.arrowInset(middlewareData, arrowPosition),
199
+ )
200
+ Object.assign(arrowStyle, this.arrowTransformOrigin(arrowPosition))
201
+ Object.assign(this.arrowEl.style, arrowStyle)
202
+ }
203
+ })
204
+ }
205
+
206
+ updatePosition (): void {
207
+ if (this.cleanupAutoUpdate) this.cleanupAutoUpdate()
208
+ this.cleanupAutoUpdate = autoUpdate(this._caller, this._host, this.calculatePosition)
209
+ }
210
+
211
+ dismiss (): void {
212
+ this.cleanupAutoUpdate()
213
+ }
214
+ }
215
+
216
+ export class Backdrop {
217
+ private readonly defaultBackdropId = 'mds-backdrop'
218
+ private readonly backdropBackgroundVisible = 'rgba(var(--magma-backdrop-color, 0 0 0) / var(--magma-backdrop-opacity, 0.1))'
219
+ private readonly backdropBackgroundHidden = 'rgba(var(--magma-backdrop-color, 0 0 0) / 0)'
220
+
221
+ private readonly backdropId
222
+ private readonly cssBackdropZIndex
223
+ private readonly cssBackdropDuration
224
+
225
+ private backdropEl: HTMLElement
226
+ private backdropTimer: NodeJS.Timeout
227
+
228
+ constructor (backdropId?: string) {
229
+ this.backdropId = backdropId ?? this.defaultBackdropId
230
+ this.cssBackdropZIndex = `var(--${this.backdropId}-z-index)`
231
+ this.cssBackdropDuration = `var(--${this.backdropId}-duration)`
232
+ }
233
+
234
+ attachBackdrop (): void {
235
+ if (!this.backdropEl) {
236
+ this.backdropEl = document.createElement('div')
237
+ this.backdropEl.className = this.backdropId
238
+ this.backdropEl.style.inset = '0'
239
+ this.backdropEl.style.pointerEvents = 'none'
240
+ this.backdropEl.style.position = 'fixed'
241
+ this.backdropEl.style.transition = `background-color ${this.cssBackdropDuration} ease-out`
242
+ this.backdropEl.style.zIndex = this.cssBackdropZIndex
243
+ }
244
+ this.backdropEl.style.backgroundColor = this.backdropBackgroundHidden
245
+ document.body.appendChild(this.backdropEl)
246
+
247
+ clearTimeout(this.backdropTimer)
248
+ this.backdropTimer = setTimeout(() => {
249
+ this.backdropEl.style.backgroundColor = this.backdropBackgroundVisible
250
+ }, 1)
251
+ }
252
+
253
+ detachBackdrop (): void {
254
+ if (!this.backdropEl) {
255
+ return
256
+ }
257
+ this.backdropEl.style.backgroundColor = 'transparent'
258
+ clearTimeout(this.backdropTimer)
259
+ this.backdropTimer = setTimeout(() => {
260
+ this.backdropEl.remove()
261
+ }, cssDurationToMilliseconds(this.cssBackdropDuration))
262
+ }
263
+ }
@@ -0,0 +1,24 @@
1
+ const hasSlottedElements = (el: HTMLElement, name?: string): boolean => {
2
+ const query = name ? `slot[name="${name}"]` : 'slot:not([name])'
3
+
4
+ const slot: HTMLSlotElement = el.shadowRoot?.querySelector(query) as HTMLSlotElement
5
+ if (slot) {
6
+ return slot.assignedElements({ flatten: true }).length > 0
7
+ }
8
+ return false
9
+ }
10
+
11
+ const hasSlottedNodes = (el: HTMLElement, name?: string): boolean => {
12
+ const query = name ? `slot[name="${name}"]` : 'slot:not([name])'
13
+
14
+ const slot: HTMLSlotElement = el.shadowRoot?.querySelector(query) as HTMLSlotElement
15
+ if (slot) {
16
+ return slot.assignedNodes().length > 0
17
+ }
18
+ return false
19
+ }
20
+
21
+ export {
22
+ hasSlottedElements,
23
+ hasSlottedNodes,
24
+ }
@@ -0,0 +1,8 @@
1
+ const horizontalActionsAnimationDictionary = [
2
+ 'fade',
3
+ 'slide',
4
+ ]
5
+
6
+ export {
7
+ horizontalActionsAnimationDictionary,
8
+ }
@@ -26,8 +26,8 @@ const fileExtensionsDictionary: FileExtenstion = {
26
26
  exe: { format: 'executable', description: 'fileEXE' },
27
27
  flac: { format: 'audio', description: 'uncompressedAudio' },
28
28
  gif: { format: 'image', description: 'compressedImage', preview: true },
29
- htm: { format: 'markup', description: 'documentWeb' },
30
29
  heic: { format: 'image', description: 'imageHEFF' },
30
+ htm: { format: 'markup', description: 'documentWeb' },
31
31
  html: { format: 'markup', description: 'documentWeb' },
32
32
  jpe: { format: 'image', description: 'compressedImage', preview: true },
33
33
  jpeg: { format: 'image', description: 'compressedImage', preview: true },
@@ -44,9 +44,12 @@ const fileExtensionsDictionary: FileExtenstion = {
44
44
  mpg4: { format: 'video', description: 'videoSD' },
45
45
  mpg: { format: 'video', description: 'videoSD' },
46
46
  mpga: { format: 'audio', description: 'compressedAudio' },
47
+ odf: { format: 'document', description: 'openDocumentFormat' },
47
48
  odp: { format: 'slide', description: 'slideLO' },
48
49
  ods: { format: 'spreadsheet', description: 'spreadsheetLO' },
49
50
  odt: { format: 'text', description: 'documentLO' },
51
+ ole: { format: 'document', description: 'objectLinkingAndEmbedding' },
52
+ p7m: { format: 'certificate', description: 'documentDigitalSingnature' },
50
53
  pdf: { format: 'document', description: 'documentAdobe' },
51
54
  php: { format: 'code', description: 'filePHP' },
52
55
  png: { format: 'image', description: 'imagePNG', preview: true },
@@ -59,6 +62,7 @@ const fileExtensionsDictionary: FileExtenstion = {
59
62
  tar: { format: 'archive', description: 'uncompressedArchive' },
60
63
  tiff: { format: 'image', description: 'imageTIFF' },
61
64
  ts: { format: 'code', description: 'fileTS' },
65
+ tsd: { format: 'certificate', description: 'certificateTSD' },
62
66
  tsx: { format: 'code', description: 'fileTSX' },
63
67
  txt: { format: 'text', description: 'documentTXT' },
64
68
  wav: { format: 'audio', description: 'uncompressedAudio' },
@@ -66,68 +70,10 @@ const fileExtensionsDictionary: FileExtenstion = {
66
70
  xar: { format: 'archive', description: 'compressedArchive' },
67
71
  xls: { format: 'spreadsheet', description: 'spreadsheetMS' },
68
72
  xlsx: { format: 'spreadsheet', description: 'spreadsheetMS' },
73
+ xml: { format: 'markup', description: 'extensibleMarkupLanguage' },
69
74
  zip: { format: 'archive', description: 'compressedArchive' },
70
75
  }
71
76
 
72
- // const fileExtensionsDictionary: FileExtenstion = {
73
- // '7z': { format: 'archive', description: 'Archivio compresso' },
74
- // ace: { format: 'archive', description: 'Archivio compresso' },
75
- // ai: { format: 'vector', description: 'Vettoriale Adobe Illustrator' },
76
- // dart: { format: 'code', description: 'Dart' },
77
- // db: { format: 'data', description: 'File di database' },
78
- // default: { format: 'attachment', description: 'Formato sconosciuto' },
79
- // dmg: { format: 'executable', description: 'Apple Disk Image' },
80
- // doc: { format: 'text', description: 'Documento Microsoft Word' },
81
- // docm: { format: 'text', description: 'Documento Microsoft Word' },
82
- // docx: { format: 'text', description: 'Documento Microsoft Word Compresso' },
83
- // eml: { format: 'email', description: 'E-mail di posta elettronica' },
84
- // eps: { format: 'vector', description: 'Vettoriale Corel Draw' },
85
- // exe: { format: 'executable', description: 'File eseguibile Windows' },
86
- // flac: { format: 'audio', description: 'Audio non compresso' },
87
- // gif: { format: 'image', description: 'Immagine compressa', preview: true },
88
- // htm: { format: 'markup', description: 'Pagina web' },
89
- // heic: { format: 'image', description: 'High Efficiency Image File Format' },
90
- // html: { format: 'markup', description: 'Pagina web' },
91
- // jpe: { format: 'image', description: 'Immagine compressa', preview: true },
92
- // jpeg: { format: 'image', description: 'Immagine compressa', preview: true },
93
- // jpg: { format: 'image', description: 'Immagine compressa', preview: true },
94
- // js: { format: 'code', description: 'JavaScript' },
95
- // json: { format: 'data', description: 'JavaScript Object Notation' },
96
- // jsx: { format: 'code', description: 'JavaScript' },
97
- // m2v: { format: 'video', description: 'Filmato SD' },
98
- // mp2: { format: 'audio', description: 'Audio compresso' },
99
- // mp3: { format: 'audio', description: 'Audio compresso' },
100
- // mp4: { format: 'video', description: 'Filmato HD' },
101
- // mp4v: { format: 'video', description: 'Filmato HD' },
102
- // mpeg: { format: 'video', description: 'Filmato SD' },
103
- // mpg4: { format: 'video', description: 'Filmato SD' },
104
- // mpg: { format: 'video', description: 'Filmato SD' },
105
- // mpga: { format: 'audio', description: 'Audio compresso' },
106
- // odp: { format: 'slide', description: 'Slide di presentazione LibreOffice' },
107
- // ods: { format: 'spreadsheet', description: 'Foglio di calcolo LibreOffice' },
108
- // odt: { format: 'text', description: 'File di testo LibreOffice' },
109
- // pdf: { format: 'document', description: 'Documento Adobe' },
110
- // php: { format: 'code', description: 'Hypertext Preprocessor' },
111
- // png: { format: 'image', description: 'Immagine Portable Network Graphics', preview: true },
112
- // ppt: { format: 'slide', description: 'Slide di presentazione PowerPoint' },
113
- // rar: { format: 'archive', description: 'Archivio compresso' },
114
- // rtf: { format: 'text', description: 'Documento di testo Rich Text Format' },
115
- // sass: { format: 'code', description: 'Syntactically Awesome StyleSheets' },
116
- // shtml: { format: 'markup', description: 'Pagina web' },
117
- // svg: { format: 'vector', description: 'Scalable Vector Graphics', preview: true },
118
- // tar: { format: 'archive', description: 'Archivio non compresso' },
119
- // tiff: { format: 'image', description: 'Tag Image File Format' },
120
- // ts: { format: 'code', description: 'TypeScript' },
121
- // tsx: { format: 'code', description: 'TypeScript Extended Syntax' },
122
- // txt: { format: 'text', description: 'Documento di testo non formattato' },
123
- // wav: { format: 'audio', description: 'Audio non compresso' },
124
- // webp: { format: 'image', description: 'Immagine Web Picture', preview: true },
125
- // xar: { format: 'archive', description: 'Archivio compresso' },
126
- // xls: { format: 'spreadsheet', description: 'Foglio di calcolo Office' },
127
- // xlsx: { format: 'spreadsheet', description: 'Foglio di calcolo Office' },
128
- // zip: { format: 'archive', description: 'Archivio compresso' },
129
- // }
130
-
131
77
  const genericMimeToExt: Map<string, string[]> = new Map([
132
78
  ['image', ['.png', '.jpg', '.jpeg', '.tiff', '.webp', '.jpe', '.gif', '.heic']],
133
79
  ['audio', ['.mp2', '.mp3', '.mpga', '.wav', '.flac']],
@@ -0,0 +1,21 @@
1
+ const treeActionsDictionary = [
2
+ 'auto',
3
+ 'visible',
4
+ ]
5
+
6
+ const treeAppearanceDictionary = [
7
+ 'depth',
8
+ 'none',
9
+ ]
10
+
11
+ const treeIconDictionary = [
12
+ 'folder',
13
+ 'chevron',
14
+ ]
15
+
16
+ export {
17
+ treeActionsDictionary,
18
+ treeAppearanceDictionary,
19
+ treeIconDictionary,
20
+ }
21
+
@@ -55,6 +55,69 @@ const filesList = [
55
55
  'wooden.jsx',
56
56
  ]
57
57
 
58
+ const namedFilesList = {
59
+ '7z': 'frozen_haptic.7z',
60
+ 'No extension file': 'this_is_an_extensionless_file',
61
+ 'png with URL': 'https://i2.wp.com/clipart.info/images/ccovers/1495750818Apple-PNG-Clip-Art.png',
62
+ ace: 'sky_marketing.ace',
63
+ ai: 'foreground_overriding.ai',
64
+ db: 'matrix_black_hat.db',
65
+ default: 'copying.default',
66
+ dmg: 'protocol_designer.dmg',
67
+ doc: 'forges.doc',
68
+ docm: 'officer_somalia.docm',
69
+ docx: 'upgradable_gold.docx',
70
+ eml: 'brunei_logistical.eml',
71
+ eps: 'alarm_circuit_plastic.eps',
72
+ exe: 'rss_systematic_avon.exe',
73
+ flac: 'liaison_panel_central.flac',
74
+ gif: 'initiatives_group.gif',
75
+ htm: 'books_monetize_arizona.htm',
76
+ html: 'flexibility_auto_money.html',
77
+ jpe: 'intelligent_radical.jpe',
78
+ jpeg: 'iowa_installation.jpeg',
79
+ jpg: 'buckinghamshire_macao.jpg',
80
+ js: 'monitor.js',
81
+ json: 'calculating.json',
82
+ jsx: 'wooden.jsx',
83
+ m2v: 'interface_bedfordshire_solid.m2v',
84
+ mp2: 'explicit.mp2',
85
+ mp3: 'optimization_radical.mp3',
86
+ mp4: 'nebraska.mp4',
87
+ mp4v: 'reduced_regional_greenland.mp4v',
88
+ mpeg: 'impactful_alarm_handmade.mpeg',
89
+ mpg4: 'revolutionize.mpg4',
90
+ mpg: 'complexity_deposit.mpg',
91
+ mpga: 'ports_copy_granite.mpga',
92
+ odf: 'This is a file_to_read.odf',
93
+ odp: 'needs_based_solid.odp',
94
+ ods: 'compressing_black_colorado.ods',
95
+ odt: 'salad_compressing.odt',
96
+ ole: 'Document-RPF_Open-new.ole',
97
+ p7m: 'file with certificate from government.pdf.p7m',
98
+ pdf: 'connect_local_visualize.pdf',
99
+ php: 'fish.php',
100
+ png: 'awesome_orchestration.png',
101
+ ppt: 'gorgeous_manager_savings.ppt',
102
+ rar: 'unbranded.rar',
103
+ rtf: 'pound.rtf',
104
+ sass: 'open_source_gorgeous.sass',
105
+ shtml: 'brand.shtml',
106
+ svg: 'b2c_tan_sports.svg',
107
+ tar: 'graphic_frozen_bedfordshire.tar',
108
+ ts: 'forge_face.ts',
109
+ tsd: 'Marked file-7483274hy6Fg6R8.tsd',
110
+ txt: 'bedfordshire_iceland_identity.txt',
111
+ wav: 'synergistic.wav',
112
+ webp: 'open_source.webp',
113
+ xar: 'wisconsin_bypassing_small.xar',
114
+ xls: 'metrics_lempira_account.xls',
115
+ xlsx: 'hdd_navigate_panama.xlsx',
116
+ xml: 'Markup language.xml',
117
+ zip: 'tuna_table_fall.zip',
118
+ }
119
+
58
120
  export {
59
121
  filesList,
122
+ namedFilesList,
60
123
  }