overview-components 1.1.161 → 1.1.165
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.
- package/dist/assets/generated/locales/de.js +269 -0
- package/dist/assets/generated/locales/de.js.map +1 -0
- package/dist/assets/generated/locales/en.js +269 -0
- package/dist/assets/generated/locales/en.js.map +1 -0
- package/dist/assets/generated/locales/fr.js +269 -0
- package/dist/assets/generated/locales/fr.js.map +1 -0
- package/dist/assets/generated/locales/hr.js +269 -0
- package/dist/assets/generated/locales/hr.js.map +1 -0
- package/dist/assets/generated/locales/it.js +269 -0
- package/dist/assets/generated/locales/it.js.map +1 -0
- package/dist/assets/generated/locales/pl.js +269 -0
- package/dist/assets/generated/locales/pl.js.map +1 -0
- package/dist/assets/generated/locales/ro.js +269 -0
- package/dist/assets/generated/locales/ro.js.map +1 -0
- package/dist/assets/generated/locales/sk.js +269 -0
- package/dist/assets/generated/locales/sk.js.map +1 -0
- package/dist/assets/generated/locales/sr.js +269 -0
- package/dist/assets/generated/locales/sr.js.map +1 -0
- package/dist/assets/icons/iconGlyphs.js +691 -0
- package/dist/assets/icons/iconGlyphs.js.map +1 -0
- package/dist/assets/illustration/aichatbot-illustration.js +144 -0
- package/dist/assets/illustration/aichatbot-illustration.js.map +1 -0
- package/dist/assets/illustration/delete-illustration.js +88 -0
- package/dist/assets/illustration/delete-illustration.js.map +1 -0
- package/dist/assets/illustration/no-content.js +159 -0
- package/dist/assets/illustration/no-content.js.map +1 -0
- package/dist/assets/illustration/no-preview.js +125 -0
- package/dist/assets/illustration/no-preview.js.map +1 -0
- package/dist/assets/illustration/not-found.js +98 -0
- package/dist/assets/illustration/not-found.js.map +1 -0
- package/dist/assets/illustration/settings-illustration.js +168 -0
- package/dist/assets/illustration/settings-illustration.js.map +1 -0
- package/dist/components/components-settings/attachments-tab-settings.js +318 -0
- package/dist/components/components-settings/attachments-tab-settings.js.map +1 -0
- package/dist/components/components-settings/data-grid-settings.js +553 -0
- package/dist/components/components-settings/data-grid-settings.js.map +1 -0
- package/dist/components/components-settings/section-tab-settings.js +719 -0
- package/dist/components/components-settings/section-tab-settings.js.map +1 -0
- package/dist/components/components-settings/tabs-overview-settings.js +421 -0
- package/dist/components/components-settings/tabs-overview-settings.js.map +1 -0
- package/dist/components/index.js +30 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/lit-ai-filter-assistant.js +443 -0
- package/dist/components/lit-ai-filter-assistant.js.map +1 -0
- package/dist/components/lit-attachments-tab.js +2044 -0
- package/dist/components/lit-attachments-tab.js.map +1 -0
- package/dist/components/lit-badge.js +124 -0
- package/dist/components/lit-badge.js.map +1 -0
- package/dist/components/lit-case-variables-tab.d.ts +2 -0
- package/dist/components/lit-case-variables-tab.d.ts.map +1 -1
- package/dist/components/lit-case-variables-tab.js +3763 -0
- package/dist/components/lit-case-variables-tab.js.map +1 -0
- package/dist/components/lit-chart.js +727 -0
- package/dist/components/lit-chart.js.map +1 -0
- package/dist/components/lit-data-grid-tanstack.js +2550 -0
- package/dist/components/lit-data-grid-tanstack.js.map +1 -0
- package/dist/components/lit-filter-builder.js +701 -0
- package/dist/components/lit-filter-builder.js.map +1 -0
- package/dist/components/lit-filter-modal.js +349 -0
- package/dist/components/lit-filter-modal.js.map +1 -0
- package/dist/components/lit-multiselect-item.js +707 -0
- package/dist/components/lit-multiselect-item.js.map +1 -0
- package/dist/components/lit-section-tab.js +268 -0
- package/dist/components/lit-section-tab.js.map +1 -0
- package/dist/components/lit-tabs-overview.js +356 -0
- package/dist/components/lit-tabs-overview.js.map +1 -0
- package/dist/components/modals/lit-confirm-modal.js +121 -0
- package/dist/components/modals/lit-confirm-modal.js.map +1 -0
- package/dist/components/modals/lit-delete-modal.js +131 -0
- package/dist/components/modals/lit-delete-modal.js.map +1 -0
- package/dist/components/react-wrappers/ai-filter-assistant.js +9 -0
- package/dist/components/react-wrappers/ai-filter-assistant.js.map +1 -0
- package/dist/components/react-wrappers/attachments-tab.js +9 -0
- package/dist/components/react-wrappers/attachments-tab.js.map +1 -0
- package/dist/components/react-wrappers/badge.js +9 -0
- package/dist/components/react-wrappers/badge.js.map +1 -0
- package/dist/components/react-wrappers/button.js +9 -0
- package/dist/components/react-wrappers/button.js.map +1 -0
- package/dist/components/react-wrappers/calendar.js +9 -0
- package/dist/components/react-wrappers/calendar.js.map +1 -0
- package/dist/components/react-wrappers/case-variables-tab.js +9 -0
- package/dist/components/react-wrappers/case-variables-tab.js.map +1 -0
- package/dist/components/react-wrappers/chart.js +9 -0
- package/dist/components/react-wrappers/chart.js.map +1 -0
- package/dist/components/react-wrappers/data-grid-tanstack.js +9 -0
- package/dist/components/react-wrappers/data-grid-tanstack.js.map +1 -0
- package/dist/components/react-wrappers/filter-builder.js +12 -0
- package/dist/components/react-wrappers/filter-builder.js.map +1 -0
- package/dist/components/react-wrappers/filter-modal.js +9 -0
- package/dist/components/react-wrappers/filter-modal.js.map +1 -0
- package/dist/components/react-wrappers/index.js +27 -0
- package/dist/components/react-wrappers/index.js.map +1 -0
- package/dist/components/react-wrappers/progress-bar.js +9 -0
- package/dist/components/react-wrappers/progress-bar.js.map +1 -0
- package/dist/components/react-wrappers/section-tab.js +9 -0
- package/dist/components/react-wrappers/section-tab.js.map +1 -0
- package/dist/components/react-wrappers/tabs-overview.js +9 -0
- package/dist/components/react-wrappers/tabs-overview.js.map +1 -0
- package/dist/data/translations.js +2768 -0
- package/dist/data/translations.js.map +1 -0
- package/dist/index.js +7 -19890
- package/dist/index.js.map +1 -0
- package/dist/schemas/index.js +18 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/lit-attachments-tab-document.schema.js +39 -0
- package/dist/schemas/lit-attachments-tab-document.schema.js.map +1 -0
- package/dist/schemas/lit-attachments-tab-settings-value.schema.js +30 -0
- package/dist/schemas/lit-attachments-tab-settings-value.schema.js.map +1 -0
- package/dist/schemas/lit-attachments-tab.schema.js +68 -0
- package/dist/schemas/lit-attachments-tab.schema.js.map +1 -0
- package/dist/schemas/lit-case-variables-tab-cell.schema.d.ts +3 -0
- package/dist/schemas/lit-case-variables-tab-cell.schema.d.ts.map +1 -1
- package/dist/schemas/lit-case-variables-tab-cell.schema.js +226 -0
- package/dist/schemas/lit-case-variables-tab-cell.schema.js.map +1 -0
- package/dist/schemas/lit-case-variables-tab-rows.schema.d.ts +3 -0
- package/dist/schemas/lit-case-variables-tab-rows.schema.d.ts.map +1 -1
- package/dist/schemas/lit-case-variables-tab-rows.schema.js +6 -0
- package/dist/schemas/lit-case-variables-tab-rows.schema.js.map +1 -0
- package/dist/schemas/lit-case-variables-tab.schema.d.ts +6 -0
- package/dist/schemas/lit-case-variables-tab.schema.d.ts.map +1 -1
- package/dist/schemas/lit-case-variables-tab.schema.js +27 -0
- package/dist/schemas/lit-case-variables-tab.schema.js.map +1 -0
- package/dist/schemas/lit-data-grid-tanstack-column-array.schema.js +6 -0
- package/dist/schemas/lit-data-grid-tanstack-column-array.schema.js.map +1 -0
- package/dist/schemas/lit-data-grid-tanstack-column-custom-filter-array.schema.js +6 -0
- package/dist/schemas/lit-data-grid-tanstack-column-custom-filter-array.schema.js.map +1 -0
- package/dist/schemas/lit-data-grid-tanstack-column-custom-filter.schema.js +11 -0
- package/dist/schemas/lit-data-grid-tanstack-column-custom-filter.schema.js.map +1 -0
- package/dist/schemas/lit-data-grid-tanstack-column.schema.js +79 -0
- package/dist/schemas/lit-data-grid-tanstack-column.schema.js.map +1 -0
- package/dist/schemas/lit-data-grid-tanstack.schema.js +108 -0
- package/dist/schemas/lit-data-grid-tanstack.schema.js.map +1 -0
- package/dist/schemas/lit-filter-builder.schema.js +61 -0
- package/dist/schemas/lit-filter-builder.schema.js.map +1 -0
- package/dist/schemas/lit-section-tab-schema.js +37 -0
- package/dist/schemas/lit-section-tab-schema.js.map +1 -0
- package/dist/schemas/lit-tabs-overview-tab-array.schema.js +6 -0
- package/dist/schemas/lit-tabs-overview-tab-array.schema.js.map +1 -0
- package/dist/schemas/lit-tabs-overview-tab.schema.js +32 -0
- package/dist/schemas/lit-tabs-overview-tab.schema.js.map +1 -0
- package/dist/schemas/lit-tabs-overview.schema.js +29 -0
- package/dist/schemas/lit-tabs-overview.schema.js.map +1 -0
- package/dist/scripts/translate-locales.js +241 -0
- package/dist/scripts/translate-locales.js.map +1 -0
- package/dist/shared/filter-inputs.js +429 -0
- package/dist/shared/filter-inputs.js.map +1 -0
- package/dist/shared/index.js +40 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/lit-button.js +159 -0
- package/dist/shared/lit-button.js.map +1 -0
- package/dist/shared/lit-calendar.js +485 -0
- package/dist/shared/lit-calendar.js.map +1 -0
- package/dist/shared/lit-case-variables-tab-cell.d.ts +2 -0
- package/dist/shared/lit-case-variables-tab-cell.d.ts.map +1 -1
- package/dist/shared/lit-case-variables-tab-cell.js +235 -0
- package/dist/shared/lit-case-variables-tab-cell.js.map +1 -0
- package/dist/shared/lit-checkbox.js +184 -0
- package/dist/shared/lit-checkbox.js.map +1 -0
- package/dist/shared/lit-custom-popper.js +116 -0
- package/dist/shared/lit-custom-popper.js.map +1 -0
- package/dist/shared/lit-data-grid-action-buttons-popover.js +295 -0
- package/dist/shared/lit-data-grid-action-buttons-popover.js.map +1 -0
- package/dist/shared/lit-data-grid-density-popover.js +84 -0
- package/dist/shared/lit-data-grid-density-popover.js.map +1 -0
- package/dist/shared/lit-data-grid-export-popover.js +68 -0
- package/dist/shared/lit-data-grid-export-popover.js.map +1 -0
- package/dist/shared/lit-data-grid-operators-popover.js +114 -0
- package/dist/shared/lit-data-grid-operators-popover.js.map +1 -0
- package/dist/shared/lit-data-grid-row-actions.js +87 -0
- package/dist/shared/lit-data-grid-row-actions.js.map +1 -0
- package/dist/shared/lit-date-picker.js +608 -0
- package/dist/shared/lit-date-picker.js.map +1 -0
- package/dist/shared/lit-document-thumbnail.js +383 -0
- package/dist/shared/lit-document-thumbnail.js.map +1 -0
- package/dist/shared/lit-filter-input.js +115 -0
- package/dist/shared/lit-filter-input.js.map +1 -0
- package/dist/shared/lit-icon-button.js +165 -0
- package/dist/shared/lit-icon-button.js.map +1 -0
- package/dist/shared/lit-icon.d.ts.map +1 -1
- package/dist/shared/lit-icon.js +337 -0
- package/dist/shared/lit-icon.js.map +1 -0
- package/dist/shared/lit-input.js +282 -0
- package/dist/shared/lit-input.js.map +1 -0
- package/dist/shared/lit-label.js +103 -0
- package/dist/shared/lit-label.js.map +1 -0
- package/dist/shared/lit-loader.js +68 -0
- package/dist/shared/lit-loader.js.map +1 -0
- package/dist/shared/lit-loading-bar.js +91 -0
- package/dist/shared/lit-loading-bar.js.map +1 -0
- package/dist/shared/lit-menu-item.js +98 -0
- package/dist/shared/lit-menu-item.js.map +1 -0
- package/dist/shared/lit-menu.js +29 -0
- package/dist/shared/lit-menu.js.map +1 -0
- package/dist/shared/lit-modal-body.js +24 -0
- package/dist/shared/lit-modal-body.js.map +1 -0
- package/dist/shared/lit-modal-footer.js +21 -0
- package/dist/shared/lit-modal-footer.js.map +1 -0
- package/dist/shared/lit-modal-header.js +34 -0
- package/dist/shared/lit-modal-header.js.map +1 -0
- package/dist/shared/lit-modal.js +168 -0
- package/dist/shared/lit-modal.js.map +1 -0
- package/dist/shared/lit-overflow-tooltip.js +114 -0
- package/dist/shared/lit-overflow-tooltip.js.map +1 -0
- package/dist/shared/lit-pill.js +87 -0
- package/dist/shared/lit-pill.js.map +1 -0
- package/dist/shared/lit-progress-bar.js +130 -0
- package/dist/shared/lit-progress-bar.js.map +1 -0
- package/dist/shared/lit-responsive-button.js +106 -0
- package/dist/shared/lit-responsive-button.js.map +1 -0
- package/dist/shared/lit-select-field.js +457 -0
- package/dist/shared/lit-select-field.js.map +1 -0
- package/dist/shared/lit-select.js +668 -0
- package/dist/shared/lit-select.js.map +1 -0
- package/dist/shared/lit-settings.js +76 -0
- package/dist/shared/lit-settings.js.map +1 -0
- package/dist/shared/lit-text-field.js +252 -0
- package/dist/shared/lit-text-field.js.map +1 -0
- package/dist/shared/lit-toggle.js +240 -0
- package/dist/shared/lit-toggle.js.map +1 -0
- package/dist/shared/lit-tooltip.js +165 -0
- package/dist/shared/lit-tooltip.js.map +1 -0
- package/dist/shared/simple-popper.js +285 -0
- package/dist/shared/simple-popper.js.map +1 -0
- package/dist/shared/simple-tooltip.js +249 -0
- package/dist/shared/simple-tooltip.js.map +1 -0
- package/dist/shared/styles/button-shared-styles.js +494 -0
- package/dist/shared/styles/button-shared-styles.js.map +1 -0
- package/dist/styles.js +169 -0
- package/dist/styles.js.map +1 -0
- package/dist/utils/custom-filters.js +42 -0
- package/dist/utils/custom-filters.js.map +1 -0
- package/dist/utils/date.js +21 -0
- package/dist/utils/date.js.map +1 -0
- package/dist/utils/file-type-utils.js +55 -0
- package/dist/utils/file-type-utils.js.map +1 -0
- package/dist/utils/formatNumber.js +62 -0
- package/dist/utils/formatNumber.js.map +1 -0
- package/dist/utils/getOperatorByType.js +70 -0
- package/dist/utils/getOperatorByType.js.map +1 -0
- package/dist/utils/getOverviewValue.js +175 -0
- package/dist/utils/getOverviewValue.js.map +1 -0
- package/dist/utils/localization.js +433 -0
- package/dist/utils/localization.js.map +1 -0
- package/dist/utils/pdf-thumbnail-generator.js +91 -0
- package/dist/utils/pdf-thumbnail-generator.js.map +1 -0
- package/dist/utils/utils.js +94 -0
- package/dist/utils/utils.js.map +1 -0
- package/package.json +21 -58
- package/README.md +0 -82
- package/dist/icons.js +0 -692
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { LitElement, html, css } from 'lit';
|
|
8
|
+
import { property, state } from 'lit/decorators.js';
|
|
9
|
+
import { computePosition, flip, shift, offset, autoUpdate } from '@floating-ui/dom';
|
|
10
|
+
import './lit-icon.js';
|
|
11
|
+
import { getFileTypeIcon } from '../utils/file-type-utils.js';
|
|
12
|
+
/**
|
|
13
|
+
* A reusable component for displaying document thumbnails
|
|
14
|
+
* Shows actual thumbnail if available, falls back to file type icon
|
|
15
|
+
* Shows larger preview on hover anchored next to the thumbnail (portaled to body)
|
|
16
|
+
*/
|
|
17
|
+
export class LitDocumentThumbnail extends LitElement {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this.fileType = '';
|
|
21
|
+
this.size = 40;
|
|
22
|
+
this.enableHoverPreview = true;
|
|
23
|
+
this.previewMaxWidth = 300;
|
|
24
|
+
this.previewMaxHeight = 300;
|
|
25
|
+
this.enableThumbnailDetail = true;
|
|
26
|
+
this.previewPlacement = 'right';
|
|
27
|
+
this.imageError = false;
|
|
28
|
+
this.showPreview = false;
|
|
29
|
+
this.longPressTimer = null;
|
|
30
|
+
this.touchStarted = false;
|
|
31
|
+
// Portal element appended to document.body
|
|
32
|
+
this.portalEl = null;
|
|
33
|
+
// Cleanup function for autoUpdate
|
|
34
|
+
this.cleanupAutoUpdate = null;
|
|
35
|
+
this.handleDocumentTouch = (event) => {
|
|
36
|
+
// Only handle if this instance has an active preview
|
|
37
|
+
if (!this.showPreview)
|
|
38
|
+
return;
|
|
39
|
+
const touch = event.touches[0];
|
|
40
|
+
const touchX = touch.clientX;
|
|
41
|
+
const touchY = touch.clientY;
|
|
42
|
+
// Check if touch is within this component
|
|
43
|
+
const componentRect = this.getBoundingClientRect();
|
|
44
|
+
const isTouchInComponent = touchX >= componentRect.left &&
|
|
45
|
+
touchX <= componentRect.right &&
|
|
46
|
+
touchY >= componentRect.top &&
|
|
47
|
+
touchY <= componentRect.bottom;
|
|
48
|
+
if (isTouchInComponent) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
// Check if touch is within the preview
|
|
52
|
+
if (this.portalEl) {
|
|
53
|
+
const previewRect = this.portalEl.getBoundingClientRect();
|
|
54
|
+
const isTouchInPreview = touchX >= previewRect.left &&
|
|
55
|
+
touchX <= previewRect.right &&
|
|
56
|
+
touchY >= previewRect.top &&
|
|
57
|
+
touchY <= previewRect.bottom;
|
|
58
|
+
if (isTouchInPreview) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// Touch is outside both thumbnail and preview, close it
|
|
63
|
+
this.closePreview();
|
|
64
|
+
};
|
|
65
|
+
this.handleMouseEnter = () => {
|
|
66
|
+
const showImage = this.thumbnail && !this.imageError;
|
|
67
|
+
if (!this.enableHoverPreview || !this.enableThumbnailDetail || !showImage)
|
|
68
|
+
return;
|
|
69
|
+
// Close any other active preview
|
|
70
|
+
if (LitDocumentThumbnail.activePreviewInstance &&
|
|
71
|
+
LitDocumentThumbnail.activePreviewInstance !== this) {
|
|
72
|
+
LitDocumentThumbnail.activePreviewInstance.closePreview();
|
|
73
|
+
}
|
|
74
|
+
this.showPreview = true;
|
|
75
|
+
LitDocumentThumbnail.activePreviewInstance = this;
|
|
76
|
+
this.showPortal();
|
|
77
|
+
this.startAutoUpdate();
|
|
78
|
+
};
|
|
79
|
+
this.handleMouseLeave = () => {
|
|
80
|
+
if (!this.showPreview)
|
|
81
|
+
return;
|
|
82
|
+
this.closePreview();
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
connectedCallback() {
|
|
86
|
+
super.connectedCallback();
|
|
87
|
+
// Add global touch listener to close preview when touching outside
|
|
88
|
+
document.addEventListener('touchstart', this.handleDocumentTouch, { passive: true });
|
|
89
|
+
}
|
|
90
|
+
disconnectedCallback() {
|
|
91
|
+
super.disconnectedCallback();
|
|
92
|
+
// Clean up timer to prevent memory leaks
|
|
93
|
+
if (this.longPressTimer) {
|
|
94
|
+
clearTimeout(this.longPressTimer);
|
|
95
|
+
this.longPressTimer = null;
|
|
96
|
+
}
|
|
97
|
+
// Remove global touch listener
|
|
98
|
+
document.removeEventListener('touchstart', this.handleDocumentTouch);
|
|
99
|
+
// Clear active instance if it's this one
|
|
100
|
+
if (LitDocumentThumbnail.activePreviewInstance === this) {
|
|
101
|
+
LitDocumentThumbnail.activePreviewInstance = null;
|
|
102
|
+
}
|
|
103
|
+
this.removePortal();
|
|
104
|
+
}
|
|
105
|
+
createPortal() {
|
|
106
|
+
if (this.portalEl)
|
|
107
|
+
return this.portalEl;
|
|
108
|
+
const maxW = this.previewMaxWidth || 300;
|
|
109
|
+
const maxH = this.previewMaxHeight || 300;
|
|
110
|
+
const styles = getComputedStyle(this);
|
|
111
|
+
const borderColor = styles.getPropertyValue('--border-color').trim() || '#d0d3db';
|
|
112
|
+
const bgColor = styles.getPropertyValue('--background-paper').trim() || '#fff';
|
|
113
|
+
const portal = document.createElement('div');
|
|
114
|
+
portal.style.cssText = `
|
|
115
|
+
position: fixed;
|
|
116
|
+
z-index: 999999;
|
|
117
|
+
border-radius: 0.5rem;
|
|
118
|
+
border: 1px solid ${borderColor};
|
|
119
|
+
background: ${bgColor};
|
|
120
|
+
box-shadow: 0 0.5rem 1.5rem rgba(0, 0, 0, 0.35);
|
|
121
|
+
overflow: hidden;
|
|
122
|
+
pointer-events: none;
|
|
123
|
+
opacity: 0;
|
|
124
|
+
transition: opacity 0.15s ease-in-out;
|
|
125
|
+
padding: 0.25rem;
|
|
126
|
+
max-width: ${maxW}px;
|
|
127
|
+
max-height: ${maxH}px;
|
|
128
|
+
`;
|
|
129
|
+
const img = document.createElement('img');
|
|
130
|
+
img.src = this.thumbnail || '';
|
|
131
|
+
img.alt = 'Document preview';
|
|
132
|
+
img.style.cssText = `
|
|
133
|
+
max-width: 100%;
|
|
134
|
+
max-height: 100%;
|
|
135
|
+
object-fit: contain;
|
|
136
|
+
display: block;
|
|
137
|
+
border-radius: 0.375rem;
|
|
138
|
+
`;
|
|
139
|
+
// Reposition after image loads so computePosition uses final dimensions
|
|
140
|
+
img.addEventListener('load', () => {
|
|
141
|
+
this.updatePreviewPosition();
|
|
142
|
+
});
|
|
143
|
+
portal.appendChild(img);
|
|
144
|
+
document.body.appendChild(portal);
|
|
145
|
+
this.portalEl = portal;
|
|
146
|
+
return portal;
|
|
147
|
+
}
|
|
148
|
+
removePortal() {
|
|
149
|
+
this.stopAutoUpdate();
|
|
150
|
+
if (this.portalEl) {
|
|
151
|
+
this.portalEl.remove();
|
|
152
|
+
this.portalEl = null;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
showPortal() {
|
|
156
|
+
const portal = this.createPortal();
|
|
157
|
+
portal.style.opacity = '1';
|
|
158
|
+
}
|
|
159
|
+
hidePortal() {
|
|
160
|
+
if (this.portalEl) {
|
|
161
|
+
this.portalEl.style.opacity = '0';
|
|
162
|
+
// Remove after transition
|
|
163
|
+
setTimeout(() => {
|
|
164
|
+
this.removePortal();
|
|
165
|
+
}, 150);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
handleImageError() {
|
|
169
|
+
this.imageError = true;
|
|
170
|
+
}
|
|
171
|
+
handleTouchStart(_event) {
|
|
172
|
+
if (!this.thumbnail || this.imageError || !this.enableThumbnailDetail)
|
|
173
|
+
return;
|
|
174
|
+
// Close any other active preview
|
|
175
|
+
if (LitDocumentThumbnail.activePreviewInstance &&
|
|
176
|
+
LitDocumentThumbnail.activePreviewInstance !== this) {
|
|
177
|
+
LitDocumentThumbnail.activePreviewInstance.closePreview();
|
|
178
|
+
}
|
|
179
|
+
this.touchStarted = true;
|
|
180
|
+
this.longPressTimer = window.setTimeout(() => {
|
|
181
|
+
this.showPreview = true;
|
|
182
|
+
LitDocumentThumbnail.activePreviewInstance = this;
|
|
183
|
+
this.showPortal();
|
|
184
|
+
this.startAutoUpdate();
|
|
185
|
+
// Haptic feedback if supported
|
|
186
|
+
if ('vibrate' in navigator) {
|
|
187
|
+
navigator.vibrate(50);
|
|
188
|
+
}
|
|
189
|
+
}, 500);
|
|
190
|
+
}
|
|
191
|
+
handleTouchEnd() {
|
|
192
|
+
if (this.longPressTimer) {
|
|
193
|
+
clearTimeout(this.longPressTimer);
|
|
194
|
+
this.longPressTimer = null;
|
|
195
|
+
}
|
|
196
|
+
this.touchStarted = false;
|
|
197
|
+
}
|
|
198
|
+
closePreview() {
|
|
199
|
+
if (this.longPressTimer) {
|
|
200
|
+
clearTimeout(this.longPressTimer);
|
|
201
|
+
this.longPressTimer = null;
|
|
202
|
+
}
|
|
203
|
+
this.touchStarted = false;
|
|
204
|
+
this.showPreview = false;
|
|
205
|
+
this.stopAutoUpdate();
|
|
206
|
+
this.hidePortal();
|
|
207
|
+
if (LitDocumentThumbnail.activePreviewInstance === this) {
|
|
208
|
+
LitDocumentThumbnail.activePreviewInstance = null;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
handleTouchMove() {
|
|
212
|
+
// Cancel long press if user moves finger (scrolling)
|
|
213
|
+
if (this.longPressTimer) {
|
|
214
|
+
clearTimeout(this.longPressTimer);
|
|
215
|
+
this.longPressTimer = null;
|
|
216
|
+
}
|
|
217
|
+
this.touchStarted = false;
|
|
218
|
+
}
|
|
219
|
+
startAutoUpdate() {
|
|
220
|
+
const container = this.shadowRoot?.querySelector('.thumbnail-container');
|
|
221
|
+
if (!container || !this.portalEl)
|
|
222
|
+
return;
|
|
223
|
+
this.cleanupAutoUpdate = autoUpdate(container, this.portalEl, () => {
|
|
224
|
+
this.updatePreviewPosition();
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
stopAutoUpdate() {
|
|
228
|
+
if (this.cleanupAutoUpdate) {
|
|
229
|
+
this.cleanupAutoUpdate();
|
|
230
|
+
this.cleanupAutoUpdate = null;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
async updatePreviewPosition() {
|
|
234
|
+
const container = this.shadowRoot?.querySelector('.thumbnail-container');
|
|
235
|
+
if (!container || !this.portalEl)
|
|
236
|
+
return;
|
|
237
|
+
const { x, y } = await computePosition(container, this.portalEl, {
|
|
238
|
+
strategy: 'fixed',
|
|
239
|
+
placement: this.previewPlacement,
|
|
240
|
+
middleware: [
|
|
241
|
+
offset(10),
|
|
242
|
+
flip({ fallbackPlacements: ['right', 'left', 'bottom', 'top'] }),
|
|
243
|
+
shift({ padding: 8 }),
|
|
244
|
+
],
|
|
245
|
+
});
|
|
246
|
+
Object.assign(this.portalEl.style, {
|
|
247
|
+
left: `${x}px`,
|
|
248
|
+
top: `${y}px`,
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
render() {
|
|
252
|
+
const containerSize = this.size || 40;
|
|
253
|
+
const iconSize = Math.floor(containerSize * 0.6);
|
|
254
|
+
const showImage = this.thumbnail && !this.imageError;
|
|
255
|
+
const fallbackIcon = getFileTypeIcon(this.fileType);
|
|
256
|
+
const showHoverPreview = this.enableHoverPreview && this.enableThumbnailDetail && showImage;
|
|
257
|
+
return html `
|
|
258
|
+
<div
|
|
259
|
+
class="thumbnail-container ${this.showPreview ? 'touch-preview-active' : ''}"
|
|
260
|
+
style="width: ${containerSize}px; height: ${containerSize}px;"
|
|
261
|
+
@mouseenter="${showHoverPreview ? this.handleMouseEnter : null}"
|
|
262
|
+
@mouseleave="${showHoverPreview ? this.handleMouseLeave : null}"
|
|
263
|
+
@touchstart="${showHoverPreview ? this.handleTouchStart : null}"
|
|
264
|
+
@touchend="${showHoverPreview ? this.handleTouchEnd : null}"
|
|
265
|
+
@touchmove="${this.handleTouchMove}"
|
|
266
|
+
@touchcancel="${this.handleTouchEnd}"
|
|
267
|
+
>
|
|
268
|
+
${showImage
|
|
269
|
+
? html `
|
|
270
|
+
<img
|
|
271
|
+
class="thumbnail-image"
|
|
272
|
+
src="${this.thumbnail}"
|
|
273
|
+
alt="Document thumbnail"
|
|
274
|
+
@error="${this.handleImageError}"
|
|
275
|
+
/>
|
|
276
|
+
`
|
|
277
|
+
: html `
|
|
278
|
+
<div class="thumbnail-icon">
|
|
279
|
+
<lit-icon icon="${fallbackIcon}" size="${iconSize}px"></lit-icon>
|
|
280
|
+
</div>
|
|
281
|
+
`}
|
|
282
|
+
</div>
|
|
283
|
+
`;
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
// Static property to track which instance has an active preview
|
|
287
|
+
LitDocumentThumbnail.activePreviewInstance = null;
|
|
288
|
+
LitDocumentThumbnail.styles = css `
|
|
289
|
+
:host {
|
|
290
|
+
display: inline-block;
|
|
291
|
+
position: relative;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.thumbnail-container {
|
|
295
|
+
display: flex;
|
|
296
|
+
align-items: center;
|
|
297
|
+
justify-content: center;
|
|
298
|
+
border: 0.0625rem solid var(--border-color, #d0d3db);
|
|
299
|
+
border-radius: 0.5rem;
|
|
300
|
+
overflow: hidden;
|
|
301
|
+
flex-shrink: 0;
|
|
302
|
+
cursor: pointer;
|
|
303
|
+
transition: all 0.2s ease;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
.thumbnail-container:hover {
|
|
307
|
+
border-color: var(--border-color, #d0d3db);
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
.thumbnail-image {
|
|
311
|
+
width: 100%;
|
|
312
|
+
height: 100%;
|
|
313
|
+
object-fit: cover;
|
|
314
|
+
display: block;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
.thumbnail-icon {
|
|
318
|
+
display: flex;
|
|
319
|
+
align-items: center;
|
|
320
|
+
justify-content: center;
|
|
321
|
+
width: 100%;
|
|
322
|
+
height: 100%;
|
|
323
|
+
background: var(--color-primary-light, #f0fadf);
|
|
324
|
+
color: var(--color-primary-main, #76b703);
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
.thumbnail-icon lit-icon {
|
|
328
|
+
top: -1px;
|
|
329
|
+
display: flex;
|
|
330
|
+
color: inherit;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
/* Visual feedback during long press */
|
|
334
|
+
.touch-preview-active {
|
|
335
|
+
opacity: 0.7;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
.thumbnail-container.touch-preview-active {
|
|
339
|
+
touch-action: none;
|
|
340
|
+
-webkit-user-select: none;
|
|
341
|
+
user-select: none;
|
|
342
|
+
}
|
|
343
|
+
`;
|
|
344
|
+
__decorate([
|
|
345
|
+
property({ type: String })
|
|
346
|
+
], LitDocumentThumbnail.prototype, "thumbnail", void 0);
|
|
347
|
+
__decorate([
|
|
348
|
+
property({ type: String })
|
|
349
|
+
], LitDocumentThumbnail.prototype, "fileType", void 0);
|
|
350
|
+
__decorate([
|
|
351
|
+
property({ type: Number })
|
|
352
|
+
], LitDocumentThumbnail.prototype, "size", void 0);
|
|
353
|
+
__decorate([
|
|
354
|
+
property({ type: Boolean })
|
|
355
|
+
], LitDocumentThumbnail.prototype, "enableHoverPreview", void 0);
|
|
356
|
+
__decorate([
|
|
357
|
+
property({ type: Number })
|
|
358
|
+
], LitDocumentThumbnail.prototype, "previewMaxWidth", void 0);
|
|
359
|
+
__decorate([
|
|
360
|
+
property({ type: Number })
|
|
361
|
+
], LitDocumentThumbnail.prototype, "previewMaxHeight", void 0);
|
|
362
|
+
__decorate([
|
|
363
|
+
property({ type: Boolean })
|
|
364
|
+
], LitDocumentThumbnail.prototype, "enableThumbnailDetail", void 0);
|
|
365
|
+
__decorate([
|
|
366
|
+
property({ type: String })
|
|
367
|
+
], LitDocumentThumbnail.prototype, "previewPlacement", void 0);
|
|
368
|
+
__decorate([
|
|
369
|
+
state()
|
|
370
|
+
], LitDocumentThumbnail.prototype, "imageError", void 0);
|
|
371
|
+
__decorate([
|
|
372
|
+
state()
|
|
373
|
+
], LitDocumentThumbnail.prototype, "showPreview", void 0);
|
|
374
|
+
__decorate([
|
|
375
|
+
state()
|
|
376
|
+
], LitDocumentThumbnail.prototype, "longPressTimer", void 0);
|
|
377
|
+
__decorate([
|
|
378
|
+
state()
|
|
379
|
+
], LitDocumentThumbnail.prototype, "touchStarted", void 0);
|
|
380
|
+
if (!window.customElements.get('lit-document-thumbnail')) {
|
|
381
|
+
window.customElements.define('lit-document-thumbnail', LitDocumentThumbnail);
|
|
382
|
+
}
|
|
383
|
+
//# sourceMappingURL=lit-document-thumbnail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lit-document-thumbnail.js","sourceRoot":"","sources":["../../src/shared/lit-document-thumbnail.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { css, html, LitElement } from 'lit';
|
|
8
|
+
import { property } from 'lit/decorators.js';
|
|
9
|
+
import { msg } from '@lit/localize';
|
|
10
|
+
import './lit-icon.js';
|
|
11
|
+
export class LitFilterInput extends LitElement {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.value = '';
|
|
15
|
+
this.placeholder = msg('Hledat...');
|
|
16
|
+
}
|
|
17
|
+
handleInput(e) {
|
|
18
|
+
const input = e.target;
|
|
19
|
+
this.value = input.value;
|
|
20
|
+
this.onChange?.(this.value);
|
|
21
|
+
this.requestUpdate();
|
|
22
|
+
}
|
|
23
|
+
handleClear() {
|
|
24
|
+
this.value = '';
|
|
25
|
+
this.onChange?.(this.value);
|
|
26
|
+
this.requestUpdate();
|
|
27
|
+
}
|
|
28
|
+
render() {
|
|
29
|
+
return html `
|
|
30
|
+
<div class="filter-container">
|
|
31
|
+
<div class="filter-input-wrapper">
|
|
32
|
+
<lit-icon icon="search" size="1rem"></lit-icon>
|
|
33
|
+
<input
|
|
34
|
+
type="text"
|
|
35
|
+
class="filter-input"
|
|
36
|
+
placeholder="${this.placeholder}"
|
|
37
|
+
.value="${this.value}"
|
|
38
|
+
@input="${this.handleInput}"
|
|
39
|
+
/>
|
|
40
|
+
${this.value
|
|
41
|
+
? html `
|
|
42
|
+
<div class="clear-button" @click="${this.handleClear}">
|
|
43
|
+
<lit-icon icon="close" size="0.875rem"></lit-icon>
|
|
44
|
+
</div>
|
|
45
|
+
`
|
|
46
|
+
: null}
|
|
47
|
+
</div>
|
|
48
|
+
</div>
|
|
49
|
+
`;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
LitFilterInput.styles = css `
|
|
53
|
+
:host {
|
|
54
|
+
display: block;
|
|
55
|
+
position: sticky;
|
|
56
|
+
top: 0;
|
|
57
|
+
z-index: 10;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.filter-container {
|
|
61
|
+
padding: 0 0 0.5rem 0;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.filter-input-wrapper {
|
|
65
|
+
display: flex;
|
|
66
|
+
align-items: center;
|
|
67
|
+
gap: 0.5rem;
|
|
68
|
+
padding: 0.5rem 0.75rem;
|
|
69
|
+
background: var(--background-paper, #ffffff);
|
|
70
|
+
border-radius: 0.5rem;
|
|
71
|
+
border: 1px solid var(--border-color, #e5e7eb);
|
|
72
|
+
color: var(--text-primary, #111827);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.filter-input-wrapper:focus-within {
|
|
76
|
+
border-color: var(--color-primary-main, #84bd00);
|
|
77
|
+
outline: 2px solid var(--color-primary-light, #f0fadf);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.filter-input {
|
|
81
|
+
flex: 1;
|
|
82
|
+
border: none;
|
|
83
|
+
outline: none;
|
|
84
|
+
background: transparent;
|
|
85
|
+
font-size: 0.8125rem;
|
|
86
|
+
font-weight: 400;
|
|
87
|
+
color: var(--color-secondary-main, #111827);
|
|
88
|
+
font-family: inherit;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.filter-input::placeholder {
|
|
92
|
+
color: var(--text-secondary, #6b7280);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.clear-button {
|
|
96
|
+
cursor: pointer;
|
|
97
|
+
display: flex;
|
|
98
|
+
align-items: center;
|
|
99
|
+
justify-content: center;
|
|
100
|
+
color: var(--text-primary, #6b7280);
|
|
101
|
+
}
|
|
102
|
+
`;
|
|
103
|
+
__decorate([
|
|
104
|
+
property({ type: String })
|
|
105
|
+
], LitFilterInput.prototype, "value", void 0);
|
|
106
|
+
__decorate([
|
|
107
|
+
property({ type: String })
|
|
108
|
+
], LitFilterInput.prototype, "placeholder", void 0);
|
|
109
|
+
__decorate([
|
|
110
|
+
property({ type: Function })
|
|
111
|
+
], LitFilterInput.prototype, "onChange", void 0);
|
|
112
|
+
if (!window.customElements.get('lit-filter-input')) {
|
|
113
|
+
window.customElements.define('lit-filter-input', LitFilterInput);
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=lit-filter-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lit-filter-input.js","sourceRoot":"","sources":["../../src/shared/lit-filter-input.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,eAAe,CAAC;AAEvB,MAAM,OAAO,cAAe,SAAQ,UAAU;IAA9C;;QACgC,UAAK,GAAW,EAAE,CAAC;QACnB,gBAAW,GAAY,GAAG,CAAC,WAAW,CAAC,CAAC;IA2FxE,CAAC;IAxFW,WAAW,CAAC,CAAQ;QACxB,MAAM,KAAK,GAAG,CAAC,CAAC,MAA0B,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAEO,WAAW;QACf,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAsDD,MAAM;QACF,OAAO,IAAI,CAAA;;;;;;;uCAOoB,IAAI,CAAC,WAAW;kCACrB,IAAI,CAAC,KAAK;kCACV,IAAI,CAAC,WAAW;;sBAE5B,IAAI,CAAC,KAAK;YACR,CAAC,CAAC,IAAI,CAAA;kEACoC,IAAI,CAAC,WAAW;;;2BAGvD;YACH,CAAC,CAAC,IAAI;;;SAGrB,CAAC;IACN,CAAC;;AA1EM,qBAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkDlB,AAlDY,CAkDX;AAnE0B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6CAAoB;AACnB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mDAAyC;AACtC;IAA7B,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;gDAAoC;AA4FrE,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;IACjD,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { LitElement, html, css } from 'lit';
|
|
8
|
+
import { property } from 'lit/decorators.js';
|
|
9
|
+
import './lit-icon.js';
|
|
10
|
+
// styles
|
|
11
|
+
import buttonStyles from './styles/button-shared-styles.js';
|
|
12
|
+
export class IconButton extends LitElement {
|
|
13
|
+
constructor() {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
// Define properties for size, variant, and color with default values
|
|
16
|
+
this.variant = 'contained';
|
|
17
|
+
this.color = 'primary';
|
|
18
|
+
this.size = 'medium';
|
|
19
|
+
this.disabled = false;
|
|
20
|
+
this.active = false;
|
|
21
|
+
this.icon = 'add';
|
|
22
|
+
this.marked = false;
|
|
23
|
+
this.loading = false;
|
|
24
|
+
}
|
|
25
|
+
// Render method to define the component's template
|
|
26
|
+
render() {
|
|
27
|
+
const classes = `button--${this.size} button--${this.variant} button--${this.color} ${this.active ? 'active' : ''}`;
|
|
28
|
+
const iconSize = this.size === 'large'
|
|
29
|
+
? '1.5rem'
|
|
30
|
+
: this.size === 'medium' || this.marked
|
|
31
|
+
? '1.25rem'
|
|
32
|
+
: this.size === 'small'
|
|
33
|
+
? '1rem'
|
|
34
|
+
: '0.75rem';
|
|
35
|
+
return html `
|
|
36
|
+
<button ?disabled=${this.disabled || this.loading} class=${classes}>
|
|
37
|
+
${this.loading
|
|
38
|
+
? html `<div class="spinner spinner--${this.size}"></div>`
|
|
39
|
+
: ''}
|
|
40
|
+
<slot name="icon"
|
|
41
|
+
>${this.icon &&
|
|
42
|
+
html `<lit-icon
|
|
43
|
+
class="out-ai ${this.loading ? 'icon-hidden' : ''}"
|
|
44
|
+
.isActive="${this.marked}"
|
|
45
|
+
size="${iconSize}"
|
|
46
|
+
icon=${this.icon}
|
|
47
|
+
></lit-icon>`}</slot
|
|
48
|
+
>
|
|
49
|
+
</button>
|
|
50
|
+
`;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Define CSS styles for different sizes and variants
|
|
54
|
+
IconButton.styles = [
|
|
55
|
+
// styles,
|
|
56
|
+
buttonStyles,
|
|
57
|
+
css `
|
|
58
|
+
/* Base styles for icon button */
|
|
59
|
+
|
|
60
|
+
button {
|
|
61
|
+
cursor: pointer;
|
|
62
|
+
font-size: inherit;
|
|
63
|
+
position: relative;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* Size variations */
|
|
67
|
+
|
|
68
|
+
.button--mini {
|
|
69
|
+
width: 12px;
|
|
70
|
+
height: 12px;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.button--small {
|
|
74
|
+
width: 20px;
|
|
75
|
+
height: 20px;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.button--medium {
|
|
79
|
+
width: 48px;
|
|
80
|
+
height: 36px;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.button--large {
|
|
84
|
+
width: 48px;
|
|
85
|
+
height: 48px;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* Loading spinner */
|
|
89
|
+
.spinner {
|
|
90
|
+
border: 2px solid transparent;
|
|
91
|
+
border-top: 2px solid currentColor;
|
|
92
|
+
border-radius: 50%;
|
|
93
|
+
animation: spin 0.8s linear infinite;
|
|
94
|
+
position: absolute;
|
|
95
|
+
top: 50%;
|
|
96
|
+
left: 50%;
|
|
97
|
+
transform: translate(-50%, -50%);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.spinner--mini {
|
|
101
|
+
width: 8px;
|
|
102
|
+
height: 8px;
|
|
103
|
+
border-width: 1px;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.spinner--small {
|
|
107
|
+
width: 12px;
|
|
108
|
+
height: 12px;
|
|
109
|
+
border-width: 1.5px;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.spinner--medium {
|
|
113
|
+
width: 16px;
|
|
114
|
+
height: 16px;
|
|
115
|
+
border-width: 2px;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.spinner--large {
|
|
119
|
+
width: 20px;
|
|
120
|
+
height: 20px;
|
|
121
|
+
border-width: 2px;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@keyframes spin {
|
|
125
|
+
0% {
|
|
126
|
+
transform: translate(-50%, -50%) rotate(0deg);
|
|
127
|
+
}
|
|
128
|
+
100% {
|
|
129
|
+
transform: translate(-50%, -50%) rotate(360deg);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.icon-hidden {
|
|
134
|
+
visibility: hidden;
|
|
135
|
+
}
|
|
136
|
+
`,
|
|
137
|
+
];
|
|
138
|
+
__decorate([
|
|
139
|
+
property({ type: String })
|
|
140
|
+
], IconButton.prototype, "variant", void 0);
|
|
141
|
+
__decorate([
|
|
142
|
+
property({ type: String })
|
|
143
|
+
], IconButton.prototype, "color", void 0);
|
|
144
|
+
__decorate([
|
|
145
|
+
property({ type: String })
|
|
146
|
+
], IconButton.prototype, "size", void 0);
|
|
147
|
+
__decorate([
|
|
148
|
+
property({ type: Boolean })
|
|
149
|
+
], IconButton.prototype, "disabled", void 0);
|
|
150
|
+
__decorate([
|
|
151
|
+
property({ type: Boolean, reflect: true })
|
|
152
|
+
], IconButton.prototype, "active", void 0);
|
|
153
|
+
__decorate([
|
|
154
|
+
property({ type: String })
|
|
155
|
+
], IconButton.prototype, "icon", void 0);
|
|
156
|
+
__decorate([
|
|
157
|
+
property({ type: Boolean })
|
|
158
|
+
], IconButton.prototype, "marked", void 0);
|
|
159
|
+
__decorate([
|
|
160
|
+
property({ type: Boolean })
|
|
161
|
+
], IconButton.prototype, "loading", void 0);
|
|
162
|
+
if (!window.customElements.get('lit-icon-button')) {
|
|
163
|
+
window.customElements.define('lit-icon-button', IconButton);
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=lit-icon-button.js.map
|